* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2011-03-06 21:40 Alexey Shvetsov
0 siblings, 0 replies; 18+ messages in thread
From: Alexey Shvetsov @ 2011-03-06 21:40 UTC (permalink / raw
To: gentoo-commits
commit: 3708b3bad75b82729fffb3605964e7abdf137262
Author: Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 6 21:39:30 2011 +0000
Commit: Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
CommitDate: Sun Mar 6 21:40:05 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=3708b3ba
Initial import =) may not work
(Portage version: 2.2.0_alpha26/git/Linux x86_64, signed Manifest commit with key F82F92E6)
---
sci-chemistry/ambertools/ambertools-1.4.ebuild | 94 ++++++++++++++++++++
sci-chemistry/ambertools/files/1.4-Makefile.patch | 30 ++++++
.../ambertools/files/1.4-configure-fftw.patch | 86 ++++++++++++++++++
sci-chemistry/ambertools/files/1.4-configure.patch | 27 ++++++
sci-chemistry/ambertools/metadata.xml | 10 ++
5 files changed, 247 insertions(+), 0 deletions(-)
diff --git a/sci-chemistry/ambertools/ambertools-1.4.ebuild b/sci-chemistry/ambertools/ambertools-1.4.ebuild
new file mode 100644
index 0000000..2ba836c
--- /dev/null
+++ b/sci-chemistry/ambertools/ambertools-1.4.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+
+inherit toolchain-funcs eutils fortran
+
+FORTRAN="g77 gfortran ifc"
+
+DESCRIPTION="A suite of programs for carrying out complete molecular mechanics investigations"
+HOMEPAGE="http://ambermd.org/#AmberTools"
+SRC_URI="AmberTools-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="mpi openmp lapack X"
+RESTRICT="fetch"
+
+RDEPEND="
+ virtual/cblas
+ virtual/lapack
+ sci-libs/cifparse-obj
+ sci-chemistry/mopac7
+ sci-libs/netcdf
+ sci-chemistry/reduce"
+DEPEND="${RDEPEND}
+ dev-util/byacc
+ dev-libs/libf2c
+ sys-devel/ucpp"
+S="${WORKDIR}/amber11"
+
+pkg_nofetch() {
+ einfo "Go to ${HOMEPAGE} and get ${A}"
+ einfo "Place it in ${DISTDIR}"
+}
+
+pkg_setup() {
+ need_fortran "${FORTRAN}"
+ if use openmp &&
+ [[ $(tc-getCC)$ == *gcc* ]] &&
+ ( [[ $(gcc-major-version)$(gcc-minor-version) -lt 42 ]] ||
+ ! has_version sys-devel/gcc[openmp] )
+ then
+ ewarn "You are using gcc and OpenMP is only available with gcc >= 4.2 "
+ ewarn "If you want to build ${PN} with OpenMP, abort now,"
+ ewarn "and switch CC to an OpenMP capable compiler"
+ fi
+ AMBERHOME="${S}"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${PV}-configure.patch"
+ epatch "${FILESDIR}/${PV}-configure-fftw.patch"
+ epatch "${FILESDIR}/${PV}-Makefile.patch"
+ cd AmberTools/src
+ rm -r byacc c9x-complex cifparse netcdf reduce ucpp-1.3 || die
+}
+
+src_configure() {
+ cd AmberTools/src
+ sed -e "s:\\\\\$(LIBDIR)/arpack.a:/usr/$(get_libdir)/libarpack.a:g" \
+ -e "s:\\\\\$(LIBDIR)/lapack.a:/usr/$(get_libdir)/libclapack.a:g" \
+ -e "s:\\\\\$(LIBDIR)/blas.a:/usr/$(get_libdir)/libcblas.a:g" \
+ -e "s:CFLAGS=:CFLAGS=${CFLAGS} -DBINTRAJ :g" \
+ -e "s:FFLAGS=:FFLAGS=${FFLAGS} :g" \
+ -e "s:LDFLAGS=$ldflags:LDFLAGS=${LDFLAGS}:g" \
+ -e "s:fc=g77:fc=${FORTRANC}:g" \
+ -e "s:NETCDFLIB=\$netcdflib:NETCDFLIB=/usr/$(get_libdir)/libnetcdf.a:g" \
+ -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
+ -e "s:-O3::g" \
+ -i configure
+# -e "s:\\\\\$(LIBDIR)/f2c.a:/usr/$(get_libdir)/libf2c.a:g" \
+
+ local myconf
+
+ use X || myconf="${myconf} -noX11"
+
+ for x in mpi openmp lapack; do
+ use ${x} && myconf="${myconf/lapack/scalapack} -${x}"
+ done
+
+ ./configure \
+ ${myconf} \
+ -nobintraj \
+ gnu
+# $(expr match "$(tc-getCC)" '.*\([a-z]cc\)')
+}
+
+src_compile() {
+ cd AmberTools/src
+ emake -f Makefile || die
+}
diff --git a/sci-chemistry/ambertools/files/1.4-Makefile.patch b/sci-chemistry/ambertools/files/1.4-Makefile.patch
new file mode 100644
index 0000000..7a893e6
--- /dev/null
+++ b/sci-chemistry/ambertools/files/1.4-Makefile.patch
@@ -0,0 +1,30 @@
+--- amber11/AmberTools/src/Makefile.orig 2011-03-07 00:08:41.000000000 +0300
++++ amber11/AmberTools/src/Makefile 2011-03-07 00:10:01.000000000 +0300
+@@ -11,12 +11,12 @@
+ serial: configured_serial $(NETCDFLIB)
+ @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 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 etc && $(MAKE) install )
+ (cd chamber && $(MAKE) install )
+ (cd pbsa && $(MAKE) install )
+@@ -30,7 +30,7 @@
+ (cd ptraj && $(MAKE) install )
+
+ # miscellaneous:
+- (cd reduce && $(MAKE) install )
++# (cd reduce && $(MAKE) install )
+
+ # leap and gleap:
+ (cd leap && $(MAKE) install )
diff --git a/sci-chemistry/ambertools/files/1.4-configure-fftw.patch b/sci-chemistry/ambertools/files/1.4-configure-fftw.patch
new file mode 100644
index 0000000..b91f0fc
--- /dev/null
+++ b/sci-chemistry/ambertools/files/1.4-configure-fftw.patch
@@ -0,0 +1,86 @@
+--- amber11/AmberTools/src/configure.orig 2011-03-07 00:28:56.000000000 +0300
++++ amber11/AmberTools/src/configure 2011-03-07 00:30:55.000000000 +0300
+@@ -1241,24 +1241,24 @@
+ #--------------------------------------------------------------------------
+ # Configure fftw-3.2.2:
+ #--------------------------------------------------------------------------
+- if [ "$mdgx" = 'yes' ]; then
+- mdgxflag="--prefix=$AMBERHOME --disable-fortran"
+- echo
+- echo "Configuring fftw-3.2.2; (may be time-consuming)"
+- echo
+- cd fftw-3.2.2 && \
+- env CC="$cc" CFLAGS="$cflags" ./configure $mdgxflag \
+- > ../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."
+- exit 1
+- else
+- echo " fftw-3.2.2 configure succeeded."
+- fi
+- cd ..
+- fi
++ #if [ "$mdgx" = 'yes' ]; then
++ # mdgxflag="--prefix=$AMBERHOME --disable-fortran"
++ # echo
++ # echo "Configuring fftw-3.2.2; (may be time-consuming)"
++ # echo
++ # cd fftw-3.2.2 && \
++ # env CC="$cc" CFLAGS="$cflags" ./configure $mdgxflag \
++ # > ../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."
++ # exit 1
++ # else
++ # echo " fftw-3.2.2 configure succeeded."
++ # fi
++ # cd ..
++ #fi
+
+ #--------------------------------------------------------------------------
+ # Set up MPI 3D-RISM in NAB and SANDER
+@@ -1307,23 +1307,23 @@
+ echo
+ echo "Configuring fftw-2.1.5; (may be time-consuming)"
+ echo
+- cd fftw-2.1.5
+- if [ "$mpi" = 'yes' ]; then
+- ./configure $rismflag --enable-mpi CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
+- > ../fftw2_config.log 2>&1
+- else
+- ./configure $rismflag CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
+- > ../fftw2_config.log 2>&1
+- fi
+- ncerror=$?
+- if [ $ncerror -gt 0 ]; then
+- echo " Error: fftw configure returned $ncerror"
+- echo " fftw configure failed! Check the fftw2_config.log file."
+- exit 1
+- else
+- echo " fftw-2.1.5 configure succeeded."
+- fi
+- cd ..
++ # cd fftw-2.1.5
++ # if [ "$mpi" = 'yes' ]; then
++ # ./configure $rismflag --enable-mpi CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
++ # > ../fftw2_config.log 2>&1
++ # else
++ # ./configure $rismflag CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
++ # > ../fftw2_config.log 2>&1
++ # fi
++ # ncerror=$?
++ # if [ $ncerror -gt 0 ]; then
++ # echo " Error: fftw configure returned $ncerror"
++ # echo " fftw configure failed! Check the fftw2_config.log file."
++ # exit 1
++ # else
++ # echo " fftw-2.1.5 configure succeeded."
++ # fi
++ # cd ..
+ flibs_fftw2="\$(LIBDIR)/libdrfftw.a \$(LIBDIR)/libdfftw.a"
+ if [ "$mpi" = 'yes' ]; then
+ flibs_fftw2="\$(LIBDIR)/libdrfftw_mpi.a \$(LIBDIR)/libdfftw_mpi.a $flibs_fftw2"
diff --git a/sci-chemistry/ambertools/files/1.4-configure.patch b/sci-chemistry/ambertools/files/1.4-configure.patch
new file mode 100644
index 0000000..ce5377e
--- /dev/null
+++ b/sci-chemistry/ambertools/files/1.4-configure.patch
@@ -0,0 +1,27 @@
+--- amber11/AmberTools/src/configure.orig 2011-03-07 00:05:24.000000000 +0300
++++ amber11/AmberTools/src/configure 2011-03-07 00:07:59.000000000 +0300
+@@ -288,11 +288,11 @@
+ mpi_flag=
+ lex=flex
+ flibs_mkl=
+-lapack=install
+-blas=install
++lapack=skip
++blas=skip
+ f2c=skip
+-ucpp=install
+-cpp="\$(BINDIR)/ucpp -l"
++ucpp=skip
++cpp="\$(EPREFIX)/usr/bin/ucpp -l"
+
+ #-----------------------------------
+ # skip building of sleap?
+@@ -1451,7 +1451,7 @@
+ LDFLAGS=$ldflags \$(AMBERBUILDFLAGS)
+
+ LEX= $lex
+-YACC= \$(BINDIR)/yacc
++YACC= \$(EPREFIX)/usr/bin/yacc
+ AR= ar rv
+ M4= $m4
+ RANLIB=$ranlib
diff --git a/sci-chemistry/ambertools/metadata.xml b/sci-chemistry/ambertools/metadata.xml
new file mode 100644
index 0000000..20e218e
--- /dev/null
+++ b/sci-chemistry/ambertools/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-chemistry</herd>
+ <maintainer>
+ <email>alexxy@gentoo.org</email>
+ <name>Alexey Shvetsov</name>
+ </maintainer>
+</pkgmetadata>
+
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2011-03-07 1:49 Alexey Shvetsov
0 siblings, 0 replies; 18+ messages in thread
From: Alexey Shvetsov @ 2011-03-07 1:49 UTC (permalink / raw
To: gentoo-commits
commit: bdbd22b46c3db66d057fbc4e3cbb8f9ea95349ea
Author: Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 7 00:50:20 2011 +0000
Commit: Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
CommitDate: Mon Mar 7 00:50:20 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=bdbd22b4
More updates and fixes
(Portage version: 2.2.0_alpha26/git/Linux x86_64, signed Manifest commit with key F82F92E6)
---
sci-chemistry/ambertools/ambertools-1.4.ebuild | 24 +-
sci-chemistry/ambertools/files/1.4-Makefile.patch | 30 --
.../ambertools/files/1.4-configure-fftw.patch | 86 ------
sci-chemistry/ambertools/files/1.4-configure.patch | 27 --
.../ambertools/files/ambertools-1.4-gentoo.patch | 289 ++++++++++++++++++++
5 files changed, 301 insertions(+), 155 deletions(-)
diff --git a/sci-chemistry/ambertools/ambertools-1.4.ebuild b/sci-chemistry/ambertools/ambertools-1.4.ebuild
index 2ba836c..d5fb35b 100644
--- a/sci-chemistry/ambertools/ambertools-1.4.ebuild
+++ b/sci-chemistry/ambertools/ambertools-1.4.ebuild
@@ -15,12 +15,13 @@ SRC_URI="AmberTools-${PV}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
-IUSE="mpi openmp lapack X"
+IUSE="mpi openmp X"
RESTRICT="fetch"
RDEPEND="
virtual/cblas
virtual/lapack
+ sci-libs/arpack
sci-libs/cifparse-obj
sci-chemistry/mopac7
sci-libs/netcdf
@@ -51,34 +52,33 @@ pkg_setup() {
}
src_prepare() {
- epatch "${FILESDIR}/${PV}-configure.patch"
- epatch "${FILESDIR}/${PV}-configure-fftw.patch"
- epatch "${FILESDIR}/${PV}-Makefile.patch"
+ epatch "${FILESDIR}/${P}-gentoo.patch"
cd AmberTools/src
- rm -r byacc c9x-complex cifparse netcdf reduce ucpp-1.3 || die
+ rm -r arpack blas lapack fftw-2.1.5 c9x-complex cifparse netcdf pnetcdf reduce ucpp-1.3 || die
}
src_configure() {
cd AmberTools/src
- sed -e "s:\\\\\$(LIBDIR)/arpack.a:/usr/$(get_libdir)/libarpack.a:g" \
- -e "s:\\\\\$(LIBDIR)/lapack.a:/usr/$(get_libdir)/libclapack.a:g" \
- -e "s:\\\\\$(LIBDIR)/blas.a:/usr/$(get_libdir)/libcblas.a:g" \
+ sed -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
+ -e "s:\\\\\$(LIBDIR)/lapack.a:$(pkg-config lapack --libs) -lclapack:g" \
+ -e "s:\\\\\$(LIBDIR)/blas.a:$(pkg-config blas cblas --libs):g" \
+ -e "s:\\\\\$(LIBDIR)/libdrfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
+ -e "s:\\\\\$(LIBDIR)/libdfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
-e "s:CFLAGS=:CFLAGS=${CFLAGS} -DBINTRAJ :g" \
-e "s:FFLAGS=:FFLAGS=${FFLAGS} :g" \
-e "s:LDFLAGS=$ldflags:LDFLAGS=${LDFLAGS}:g" \
-e "s:fc=g77:fc=${FORTRANC}:g" \
- -e "s:NETCDFLIB=\$netcdflib:NETCDFLIB=/usr/$(get_libdir)/libnetcdf.a:g" \
+ -e "s:NETCDFLIB=\$netcdflib:NETCDFLIB=$(pkg-config netcdf --libs):g" \
-e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
-e "s:-O3::g" \
-i configure
-# -e "s:\\\\\$(LIBDIR)/f2c.a:/usr/$(get_libdir)/libf2c.a:g" \
local myconf
use X || myconf="${myconf} -noX11"
- for x in mpi openmp lapack; do
- use ${x} && myconf="${myconf/lapack/scalapack} -${x}"
+ for x in mpi openmp; do
+ use ${x} && myconf="${myconf} -${x}"
done
./configure \
diff --git a/sci-chemistry/ambertools/files/1.4-Makefile.patch b/sci-chemistry/ambertools/files/1.4-Makefile.patch
deleted file mode 100644
index 7a893e6..0000000
--- a/sci-chemistry/ambertools/files/1.4-Makefile.patch
+++ /dev/null
@@ -1,30 +0,0 @@
---- amber11/AmberTools/src/Makefile.orig 2011-03-07 00:08:41.000000000 +0300
-+++ amber11/AmberTools/src/Makefile 2011-03-07 00:10:01.000000000 +0300
-@@ -11,12 +11,12 @@
- serial: configured_serial $(NETCDFLIB)
- @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 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 etc && $(MAKE) install )
- (cd chamber && $(MAKE) install )
- (cd pbsa && $(MAKE) install )
-@@ -30,7 +30,7 @@
- (cd ptraj && $(MAKE) install )
-
- # miscellaneous:
-- (cd reduce && $(MAKE) install )
-+# (cd reduce && $(MAKE) install )
-
- # leap and gleap:
- (cd leap && $(MAKE) install )
diff --git a/sci-chemistry/ambertools/files/1.4-configure-fftw.patch b/sci-chemistry/ambertools/files/1.4-configure-fftw.patch
deleted file mode 100644
index b91f0fc..0000000
--- a/sci-chemistry/ambertools/files/1.4-configure-fftw.patch
+++ /dev/null
@@ -1,86 +0,0 @@
---- amber11/AmberTools/src/configure.orig 2011-03-07 00:28:56.000000000 +0300
-+++ amber11/AmberTools/src/configure 2011-03-07 00:30:55.000000000 +0300
-@@ -1241,24 +1241,24 @@
- #--------------------------------------------------------------------------
- # Configure fftw-3.2.2:
- #--------------------------------------------------------------------------
-- if [ "$mdgx" = 'yes' ]; then
-- mdgxflag="--prefix=$AMBERHOME --disable-fortran"
-- echo
-- echo "Configuring fftw-3.2.2; (may be time-consuming)"
-- echo
-- cd fftw-3.2.2 && \
-- env CC="$cc" CFLAGS="$cflags" ./configure $mdgxflag \
-- > ../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."
-- exit 1
-- else
-- echo " fftw-3.2.2 configure succeeded."
-- fi
-- cd ..
-- fi
-+ #if [ "$mdgx" = 'yes' ]; then
-+ # mdgxflag="--prefix=$AMBERHOME --disable-fortran"
-+ # echo
-+ # echo "Configuring fftw-3.2.2; (may be time-consuming)"
-+ # echo
-+ # cd fftw-3.2.2 && \
-+ # env CC="$cc" CFLAGS="$cflags" ./configure $mdgxflag \
-+ # > ../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."
-+ # exit 1
-+ # else
-+ # echo " fftw-3.2.2 configure succeeded."
-+ # fi
-+ # cd ..
-+ #fi
-
- #--------------------------------------------------------------------------
- # Set up MPI 3D-RISM in NAB and SANDER
-@@ -1307,23 +1307,23 @@
- echo
- echo "Configuring fftw-2.1.5; (may be time-consuming)"
- echo
-- cd fftw-2.1.5
-- if [ "$mpi" = 'yes' ]; then
-- ./configure $rismflag --enable-mpi CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
-- > ../fftw2_config.log 2>&1
-- else
-- ./configure $rismflag CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
-- > ../fftw2_config.log 2>&1
-- fi
-- ncerror=$?
-- if [ $ncerror -gt 0 ]; then
-- echo " Error: fftw configure returned $ncerror"
-- echo " fftw configure failed! Check the fftw2_config.log file."
-- exit 1
-- else
-- echo " fftw-2.1.5 configure succeeded."
-- fi
-- cd ..
-+ # cd fftw-2.1.5
-+ # if [ "$mpi" = 'yes' ]; then
-+ # ./configure $rismflag --enable-mpi CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
-+ # > ../fftw2_config.log 2>&1
-+ # else
-+ # ./configure $rismflag CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
-+ # > ../fftw2_config.log 2>&1
-+ # fi
-+ # ncerror=$?
-+ # if [ $ncerror -gt 0 ]; then
-+ # echo " Error: fftw configure returned $ncerror"
-+ # echo " fftw configure failed! Check the fftw2_config.log file."
-+ # exit 1
-+ # else
-+ # echo " fftw-2.1.5 configure succeeded."
-+ # fi
-+ # cd ..
- flibs_fftw2="\$(LIBDIR)/libdrfftw.a \$(LIBDIR)/libdfftw.a"
- if [ "$mpi" = 'yes' ]; then
- flibs_fftw2="\$(LIBDIR)/libdrfftw_mpi.a \$(LIBDIR)/libdfftw_mpi.a $flibs_fftw2"
diff --git a/sci-chemistry/ambertools/files/1.4-configure.patch b/sci-chemistry/ambertools/files/1.4-configure.patch
deleted file mode 100644
index ce5377e..0000000
--- a/sci-chemistry/ambertools/files/1.4-configure.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- amber11/AmberTools/src/configure.orig 2011-03-07 00:05:24.000000000 +0300
-+++ amber11/AmberTools/src/configure 2011-03-07 00:07:59.000000000 +0300
-@@ -288,11 +288,11 @@
- mpi_flag=
- lex=flex
- flibs_mkl=
--lapack=install
--blas=install
-+lapack=skip
-+blas=skip
- f2c=skip
--ucpp=install
--cpp="\$(BINDIR)/ucpp -l"
-+ucpp=skip
-+cpp="\$(EPREFIX)/usr/bin/ucpp -l"
-
- #-----------------------------------
- # skip building of sleap?
-@@ -1451,7 +1451,7 @@
- LDFLAGS=$ldflags \$(AMBERBUILDFLAGS)
-
- LEX= $lex
--YACC= \$(BINDIR)/yacc
-+YACC= \$(EPREFIX)/usr/bin/yacc
- AR= ar rv
- M4= $m4
- RANLIB=$ranlib
diff --git a/sci-chemistry/ambertools/files/ambertools-1.4-gentoo.patch b/sci-chemistry/ambertools/files/ambertools-1.4-gentoo.patch
new file mode 100644
index 0000000..c067928
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-1.4-gentoo.patch
@@ -0,0 +1,289 @@
+diff -urN amber11.orig/AmberTools/src/configure amber11/AmberTools/src/configure
+--- amber11.orig/AmberTools/src/configure 2010-04-23 18:17:17.000000000 +0400
++++ amber11/AmberTools/src/configure 2011-03-07 03:39:14.000000000 +0300
+@@ -288,11 +288,11 @@
+ mpi_flag=
+ lex=flex
+ flibs_mkl=
+-lapack=install
+-blas=install
++lapack=skip
++blas=skip
+ f2c=skip
+-ucpp=install
+-cpp="\$(BINDIR)/ucpp -l"
++ucpp=skip
++cpp="\$(EPREFIX)/usr/bin/ucpp -l"
+
+ #-----------------------------------
+ # skip building of sleap?
+@@ -1241,24 +1241,24 @@
+ #--------------------------------------------------------------------------
+ # Configure fftw-3.2.2:
+ #--------------------------------------------------------------------------
+- if [ "$mdgx" = 'yes' ]; then
+- mdgxflag="--prefix=$AMBERHOME --disable-fortran"
+- echo
+- echo "Configuring fftw-3.2.2; (may be time-consuming)"
+- echo
+- cd fftw-3.2.2 && \
+- env CC="$cc" CFLAGS="$cflags" ./configure $mdgxflag \
+- > ../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."
+- exit 1
+- else
+- echo " fftw-3.2.2 configure succeeded."
+- fi
+- cd ..
+- fi
++ #if [ "$mdgx" = 'yes' ]; then
++ # mdgxflag="--prefix=$AMBERHOME --disable-fortran"
++ # echo
++ # echo "Configuring fftw-3.2.2; (may be time-consuming)"
++ # echo
++ # cd fftw-3.2.2 && \
++ # env CC="$cc" CFLAGS="$cflags" ./configure $mdgxflag \
++ # > ../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."
++ # exit 1
++ # else
++ # echo " fftw-3.2.2 configure succeeded."
++ # fi
++ # cd ..
++ #fi
+
+ #--------------------------------------------------------------------------
+ # Set up MPI 3D-RISM in NAB and SANDER
+@@ -1307,23 +1307,23 @@
+ echo
+ echo "Configuring fftw-2.1.5; (may be time-consuming)"
+ echo
+- cd fftw-2.1.5
+- if [ "$mpi" = 'yes' ]; then
+- ./configure $rismflag --enable-mpi CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
+- > ../fftw2_config.log 2>&1
+- else
+- ./configure $rismflag CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
+- > ../fftw2_config.log 2>&1
+- fi
+- ncerror=$?
+- if [ $ncerror -gt 0 ]; then
+- echo " Error: fftw configure returned $ncerror"
+- echo " fftw configure failed! Check the fftw2_config.log file."
+- exit 1
+- else
+- echo " fftw-2.1.5 configure succeeded."
+- fi
+- cd ..
++ # cd fftw-2.1.5
++ # if [ "$mpi" = 'yes' ]; then
++ # ./configure $rismflag --enable-mpi CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
++ # > ../fftw2_config.log 2>&1
++ # else
++ # ./configure $rismflag CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
++ # > ../fftw2_config.log 2>&1
++ # fi
++ # ncerror=$?
++ # if [ $ncerror -gt 0 ]; then
++ # echo " Error: fftw configure returned $ncerror"
++ # echo " fftw configure failed! Check the fftw2_config.log file."
++ # exit 1
++ # else
++ # echo " fftw-2.1.5 configure succeeded."
++ # fi
++ # cd ..
+ flibs_fftw2="\$(LIBDIR)/libdrfftw.a \$(LIBDIR)/libdfftw.a"
+ if [ "$mpi" = 'yes' ]; then
+ flibs_fftw2="\$(LIBDIR)/libdrfftw_mpi.a \$(LIBDIR)/libdfftw_mpi.a $flibs_fftw2"
+diff -urN amber11.orig/AmberTools/src/Makefile amber11/AmberTools/src/Makefile
+--- amber11.orig/AmberTools/src/Makefile 2010-04-14 17:36:31.000000000 +0400
++++ amber11/AmberTools/src/Makefile 2011-03-07 03:39:38.000000000 +0300
+@@ -8,15 +8,15 @@
+
+ install: serial
+
+-serial: configured_serial $(NETCDFLIB)
++serial: configured_serial
+ @echo "Starting installation of ${AMBERTOOLS} serial at `date`".
+ # utility routines and libraries:
+- (cd ucpp-1.3 && $(MAKE) $(UCPP) )
++# (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 arpack && $(MAKE) install );
++# (cd lapack && $(MAKE) $(LAPACK) )
++# (cd blas && $(MAKE) $(BLAS) )
++# (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) )
+ (cd etc && $(MAKE) install )
+ (cd chamber && $(MAKE) install )
+ (cd pbsa && $(MAKE) install )
+@@ -30,14 +30,14 @@
+ (cd ptraj && $(MAKE) install )
+
+ # miscellaneous:
+- (cd reduce && $(MAKE) install )
++# (cd reduce && $(MAKE) install )
+
+ # leap and gleap:
+ (cd leap && $(MAKE) install )
+ (cd gleap && $(MAKE) install )
+
+ # nab:
+- (cd cifparse && $(MAKE) install )
++# (cd cifparse && $(MAKE) install )
+ (cd nab && $(MAKE) install )
+ (cd nss && $(MAKE) install )
+
+@@ -50,15 +50,15 @@
+
+ nabonly: $(NETCDFLIB)
+ # utility routines and libraries:
+- (cd ucpp-1.3 && $(MAKE) $(UCPP) )
++# (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 arpack && $(MAKE) install );
++# (cd lapack && $(MAKE) $(LAPACK) )
++# (cd blas && $(MAKE) $(BLAS) )
++# (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) )
+
+ # nab:
+- (cd cifparse && $(MAKE) install )
++# (cd cifparse && $(MAKE) install )
+ (cd nab && $(MAKE) install )
+ (cd nss && $(MAKE) install )
+
+diff -urN amber11.orig/AmberTools/src/pbsa/Makefile amber11/AmberTools/src/pbsa/Makefile
+--- amber11.orig/AmberTools/src/pbsa/Makefile 2010-04-14 17:26:17.000000000 +0400
++++ amber11/AmberTools/src/pbsa/Makefile 2011-03-07 03:39:15.000000000 +0300
+@@ -47,10 +47,10 @@
+ $(LIBDIR)/libpbsa.a $(LIBDIR)/libFpbsa.a
+
+ #---------------------------------------------------------------------------
+-pbsa$(SFX): $(OBJ) syslib netlib c9x-complex
++pbsa$(SFX): $(OBJ) syslib
+ $(FC) -o pbsa$(SFX) $(OBJ) ../lib/nxtsec.o $(FLIBSF) $(LDFLAGS)
+
+-simplepbsa$(SFX): simplepbsa.o gopt.o libpbsa.a sfflib syslib netlib c9x-complex
++simplepbsa$(SFX): simplepbsa.o gopt.o libpbsa.a sfflib syslib
+ $(FC) -o simplepbsa$(SFX) simplepbsa.o gopt.o libpbsa.a \
+ $(LIBDIR)/libsff.a ../lib/nxtsec.o $(FLIBSF) $(LDFLAGS)
+ /bin/mv simplepbsa$(SFX) $(BINDIR)
+@@ -76,15 +76,15 @@
+ sfflib:
+ cd ../sff && $(MAKE) install
+
+-netlib:
+- cd ../lapack && $(MAKE) $(LAPACK)
+- cd ../blas && $(MAKE) $(BLAS)
+- cd ../arpack && $(MAKE) install
+-
+-c9x-complex:
+- @if test $(C9XCOMPLEX) != "skip"; then \
+- cd ../c9x-complex && $(MAKE) libmc.a; \
+- fi
++#netlib:
++# cd ../lapack && $(MAKE) $(LAPACK)
++# cd ../blas && $(MAKE) $(BLAS)
++# cd ../arpack && $(MAKE) install
++
++#c9x-complex:
++# @if test $(C9XCOMPLEX) != "skip"; then \
++# cd ../c9x-complex && $(MAKE) libmc.a; \
++# fi
+
+ %.LIBPBSA.o: %.f
+ $(FPP) -DLIBPBSA $< > _$<
+diff -urN amber11.orig/AmberTools/src/ptraj/Makefile amber11/AmberTools/src/ptraj/Makefile
+--- amber11.orig/AmberTools/src/ptraj/Makefile 2010-03-31 07:05:16.000000000 +0400
++++ amber11/AmberTools/src/ptraj/Makefile 2011-03-07 03:39:16.000000000 +0300
+@@ -60,20 +60,20 @@
+ rdparm$(SFX): libs $(NETCDFLIB) $(OBJECTS)
+ $(CC) $(LDFLAGS) -o rdparm$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM)
+
+-ptraj$(SFX): libs netlib $(NETCDFLIB) $(OBJECTS)
++ptraj$(SFX): libs $(NETCDFLIB) $(OBJECTS)
+ $(CC) $(LDFLAGS) -o ptraj$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM)
+
+-ptraj.MPI$(SFX): libs netlib $(PNETCDFLIB) $(OBJECTS)
++ptraj.MPI$(SFX): libs $(PNETCDFLIB) $(OBJECTS)
+ $(CC) $(LDFLAGS) -o ptraj.MPI$(SFX) $(OBJECTS) $(LIBS) $(PNETCDFLIB) $(LM)
+ #
+
+ libs:
+ cd pdb && $(MAKE)
+- cd ../arpack && $(MAKE)
++# cd ../arpack && $(MAKE)
+
+-netlib:
+- cd ../lapack; $(MAKE) $(LAPACK)
+- cd ../blas; $(MAKE) $(BLAS)
++#netlib:
++# cd ../lapack; $(MAKE) $(LAPACK)
++# cd ../blas; $(MAKE) $(BLAS)
+
+ clean:
+ cd pdb; $(MAKE) clean
+diff -urN amber11.orig/AmberTools/src/ptraj/netcdf_ptraj.h amber11/AmberTools/src/ptraj/netcdf_ptraj.h
+--- amber11.orig/AmberTools/src/ptraj/netcdf_ptraj.h 2010-03-31 07:05:16.000000000 +0400
++++ amber11/AmberTools/src/ptraj/netcdf_ptraj.h 2011-03-07 03:39:17.000000000 +0300
+@@ -4,7 +4,7 @@
+ # include "../pnetcdf/include/pnetcdf.h"
+ # define nc_strerror ncmpi_strerror
+ # else
+-# include "../netcdf/include/netcdf.h"
++# include <netcdf.h>
+ # endif
+ #endif
+
+diff -urN amber11.orig/AmberTools/src/ptraj/ptraj.h amber11/AmberTools/src/ptraj/ptraj.h
+--- amber11.orig/AmberTools/src/ptraj/ptraj.h 2010-03-31 07:05:16.000000000 +0400
++++ amber11/AmberTools/src/ptraj/ptraj.h 2011-03-07 03:39:17.000000000 +0300
+@@ -94,7 +94,7 @@
+ #define nc_strerror ncmpi_strerror
+ #include "../pnetcdf/include/pnetcdf.h"
+ #else
+-#include "../netcdf/include/netcdf.h"
++#include <netcdf.h>
+ #endif
+ #endif
+
+diff -urN amber11.orig/AmberTools/src/sqm/Makefile amber11/AmberTools/src/sqm/Makefile
+--- amber11.orig/AmberTools/src/sqm/Makefile 2010-04-14 16:13:28.000000000 +0400
++++ amber11/AmberTools/src/sqm/Makefile 2011-03-07 03:39:17.000000000 +0300
+@@ -77,7 +77,7 @@
+ install: sqm$(SFX)
+ mv sqm$(SFX) $(BINDIR)
+
+-sqm$(SFX): $(SQMOBJ) $(QMOBJ) netlib sys
++sqm$(SFX): $(SQMOBJ) $(QMOBJ) sys
+ $(FC) -o sqm$(SFX) $(SQMOBJ) $(QMOBJ) $(FLIBSF) ../lib/sys.a $(LDFLAGS)
+
+ #-----------LIBS
+@@ -93,10 +93,10 @@
+ sys:
+ cd ../lib; $(MAKE) sys.a
+
+-netlib:
+- cd ../lapack; $(MAKE) $(LAPACK)
+- cd ../blas; $(MAKE) $(BLAS)
+- cd ../arpack && $(MAKE) install
++#netlib:
++# cd ../lapack; $(MAKE) $(LAPACK)
++# cd ../blas; $(MAKE) $(BLAS)
++# cd ../arpack && $(MAKE) install
+
+ clean:
+ /bin/rm -f *.o _*.f *.mod *.d sqm$(SFX)
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2011-03-08 13:40 Alexey Shvetsov
0 siblings, 0 replies; 18+ messages in thread
From: Alexey Shvetsov @ 2011-03-08 13:40 UTC (permalink / raw
To: gentoo-commits
commit: fce91f0e433467027ef88ae12368ad1ba2cb72cf
Author: Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 8 13:40:18 2011 +0000
Commit: Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
CommitDate: Tue Mar 8 13:40:18 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=fce91f0e
[ambertools] apply upstream bugfixes
---
sci-chemistry/ambertools/ambertools-1.4.ebuild | 1 +
.../files/ambertools-1.4-bugfix_1-18.patch | 9025 ++++++++++++++++++++
2 files changed, 9026 insertions(+), 0 deletions(-)
diff --git a/sci-chemistry/ambertools/ambertools-1.4.ebuild b/sci-chemistry/ambertools/ambertools-1.4.ebuild
index 9e1297e..fda14ee 100644
--- a/sci-chemistry/ambertools/ambertools-1.4.ebuild
+++ b/sci-chemistry/ambertools/ambertools-1.4.ebuild
@@ -52,6 +52,7 @@ pkg_setup() {
}
src_prepare() {
+ epatch "${FILESDIR}/${P}-bugfix_1-18.patch"
epatch "${FILESDIR}/${P}-gentoo.patch"
cd AmberTools/src
rm -r arpack blas lapack fftw-2.1.5 c9x-complex cifparse netcdf pnetcdf reduce ucpp-1.3 || die
diff --git a/sci-chemistry/ambertools/files/ambertools-1.4-bugfix_1-18.patch b/sci-chemistry/ambertools/files/ambertools-1.4-bugfix_1-18.patch
new file mode 100644
index 0000000..2bc899b
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-1.4-bugfix_1-18.patch
@@ -0,0 +1,9025 @@
+diff -urN amber11.orig/AmberTools/src/gleap/leapsrc/plugins.cpp amber11/AmberTools/src/gleap/leapsrc/plugins.cpp
+--- amber11.orig/AmberTools/src/gleap/leapsrc/plugins.cpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/leapsrc/plugins.cpp 2011-03-08 16:38:44.000000000 +0300
+@@ -37,7 +37,7 @@
+
+ amber::help_command g_help_command;
+ amber::add_command g_add_command2;
+-amber::addions_command g_addions_command2;
++amber::addions_command g_addions_command2( "addions" );
+ amber::addmap_command g_addpdbatommap_command2( "addpdbatommap" );
+ amber::addmap_command g_addpdbresmap_command2( "addpdbresmap" );
+ amber::null_command g_addatomtypes_command2( "addatomtypes" );
+diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/ambfmt/parm.cpp amber11/AmberTools/src/gleap/mortsrc/ambfmt/parm.cpp
+--- amber11.orig/AmberTools/src/gleap/mortsrc/ambfmt/parm.cpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/mortsrc/ambfmt/parm.cpp 2011-03-08 16:38:44.000000000 +0300
+@@ -110,7 +110,7 @@
+ assert( tmp.size() == 3 );
+ atmvec as(tmp);
+
+- angl_t an = angl_t::create( as[0], as[1], as[2] );
++ angl_t an = angl_t::frcget( as[0], as[1], as[2] );
+ set_les( an );
+
+ atom_t pa1( *pff, as[0].get_i(TYPEID)-1 );
+@@ -277,6 +277,15 @@
+ copy_dparm(pdihs[i], SCEE, di);
+ copy_dparm(pdihs[i], SCNB, di);
+ set_les( di );
++
++ /*
++ std::cout << as[0].get_s(NAME) << "-";
++ std::cout << as[1].get_s(NAME) << "-";
++ std::cout << as[2].get_s(NAME) << "-";
++ std::cout << as[3].get_s(NAME) << " SCEE=" << di.get_d(SCEE) << std::endl;
++ */
++
++
+ }
+ }
+ }
+@@ -434,6 +443,8 @@
+ parm_gbsa( *ai, gbtype );
+ }
+
++ //std::cout << " atom parameter assigned." << std::endl;
++
+ bonditer_t bi = mol.bond_begin();
+ bonditer_t be = mol.bond_end();
+ for( ; bi != be; ++bi )
+@@ -441,6 +452,8 @@
+ parm_bond( &ff, *bi );
+ }
+
++ //std::cout << " bond parameter assigned." << std::endl;
++
+ bool fw = fixed_water();
+ ai = mol.atom_begin();
+ ae = mol.atom_end();
+diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/ambfmt/prep.cpp amber11/AmberTools/src/gleap/mortsrc/ambfmt/prep.cpp
+--- amber11.orig/AmberTools/src/gleap/mortsrc/ambfmt/prep.cpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/mortsrc/ambfmt/prep.cpp 2011-03-08 16:38:44.000000000 +0300
+@@ -39,7 +39,7 @@
+ resd_t r = resd_t::create( m );
+ r.set_s(NAME, name);
+ r.set_s(TYPE, name.length()<3?name:name.substr(0,3));
+-
++ //std::cout << "Loading model " << name << std::endl;
+ // CORR/CHANGE, if CHANGE then sort line according
+ // the first column, no supported any more.
+ string use_first_column;
+@@ -55,9 +55,13 @@
+ is >> cutoff;
+ is.ignore(MAX_LINE_WIDTH, '\n');
+
++ vector<numvec> crdlst;
++ vector<int> nbrmap;
++
++ // stacks
+ vector<atom_t> atoms;
+- vector<numvec> crds;
+ vector<int> nunfills;
++ vector<int> idxstack;
+
+ int head = 0;
+ int tail = 0;
+@@ -71,7 +75,7 @@
+ string name, type, chain;
+ ls >> name >> type >> chain;
+
+-
++ //std::cout << " processing atom " << name << std::endl;
+ string curt;
+ vector<string> terms;
+ while(ls >> curt)
+@@ -96,22 +100,31 @@
+ double angl = atof( terms[4].c_str() );
+ double tors = atof( terms[5].c_str() );
+ pchg = (terms.size()==7) ? atof( terms[6].c_str() ) : 0.0;
+- int len = crds.size();
+- if(len==0)
++ if( idxstack.size()==0 )
+ {
+ pos = makevec(0.0, 0.0, 0.0);
+- }
+- else if(len==1)
+- {
+- pos = zmatrix(crds[len-1], dist);
+- }
+- else if(len==2)
+- {
+- pos = zmatrix(crds[len-1], dist, crds[len-2], angl);
++ crdlst.push_back( pos );
++ nbrmap.push_back( -1 );
+ }
+ else
+- {
+- pos = zmatrix(crds[len-1], dist, crds[len-2], angl, crds[len-3], tors);
++ {
++ int nbr1 = idxstack.back();
++ int nbr2 = nbrmap[nbr1];
++ int nbr3 = (nbr2==-1) ? -1 : nbrmap[nbr2];
++ if(nbr2==-1)
++ {
++ pos = zmatrix(crdlst[nbr1], dist);
++ }
++ else if(nbr3==-1)
++ {
++ pos = zmatrix(crdlst[nbr1], dist, crdlst[nbr2], angl);
++ }
++ else
++ {
++ pos = zmatrix(crdlst[nbr1], dist, crdlst[nbr2], angl, crdlst[nbr3], tors);
++ }
++ crdlst.push_back( pos );
++ nbrmap.push_back( nbr1 );
+ }
+ }
+
+@@ -127,7 +140,7 @@
+
+ if(atoms.size() > 0)
+ {
+- assert( nunfills.size()==crds.size() );
++ assert( nunfills.size()==idxstack.size() );
+ bond_t::create(atom, atoms.back() ).set_i(ORDER, 1);
+ nunfills.back() -= 1;
+ }
+@@ -145,7 +158,7 @@
+
+ if( nunfills.size()>0 && nunfills.back()==0 )
+ {
+- crds.pop_back();
++ idxstack.pop_back();
+ atoms.pop_back();
+ nunfills.pop_back();
+ }
+@@ -153,7 +166,7 @@
+ int nunfill = get_nunfill(chain);
+ if(nunfill > 0)
+ {
+- crds.push_back(pos);
++ idxstack.push_back(crdlst.size()-1);
+ if(type != "DU")
+ atoms.push_back(atom);
+ nunfills.push_back(nunfill);
+diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/capbox/addions.cpp amber11/AmberTools/src/gleap/mortsrc/capbox/addions.cpp
+--- amber11.orig/AmberTools/src/gleap/mortsrc/capbox/addions.cpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/mortsrc/capbox/addions.cpp 2011-03-08 16:38:44.000000000 +0300
+@@ -83,11 +83,82 @@
+
+ void addions( molecule_t& m, const molecule_t& ion, int num_ion, double shlext, double resolution )
+ {
++ vector<molecule_t> ionlst(num_ion, ion);
+ mort_ionee ionee(m);
+- addions_core( ionee, ion, num_ion, shlext, resolution );
++ addions_core( ionee, ionlst, shlext, resolution );
++ m.cleanup();
+ }
+
+- void addions_core( ionee_i& ionee, const molecule_t& ion, int num_ion, double shlext, double resolution )
++ void addions( molecule_t& m, const molecule_t& ion1, int numion1, const molecule_t& ion2, int numion2, double shlext, double resolution )
++ {
++ vector<molecule_t> ionlst;
++ int minnumion = std::min( numion1, numion2 );
++ for( int i=0; i < minnumion; ++i )
++ {
++ ionlst.push_back( ion1 );
++ ionlst.push_back( ion2 );
++ }
++
++ int moreadd = std::max( numion1, numion2 ) - minnumion;
++ if( moreadd > 0 )
++ {
++ const molecule_t* padd = (minnumion==numion1) ? &ion2 : &ion1;
++ for( int i=0; i < moreadd; ++i )
++ {
++ ionlst.push_back( *padd );
++ }
++ }
++
++ mort_ionee ionee(m);
++ addions_core( ionee, ionlst, shlext, resolution );
++ m.cleanup();
++ }
++
++ double get_ionvdwr( const molecule_t& ion )
++ {
++ double r = get_vdwr( ion.atom_begin()->get_s(TYPE) );
++ if( ion.natom() > 1 )
++ {
++ std::cout << "Info: polyatomic ion, radius set to " << r*2.5 << " (2.5 times first atom)" << std::endl;
++ r *= 2.5;
++ }
++ return r;
++ }
++
++ double get_minvdwr( const vector<molecule_t>& ionlst )
++ {
++ double minr = 1000.0;
++ int numion = ionlst.size();
++ for( int i=0; i < numion; ++i )
++ {
++ double r = get_ionvdwr( ionlst[i] );
++ minr = std::min( r, minr );
++ }
++
++ if( numion > 5 )
++ {
++ double f = exp( log(numion+1.0)/3.0 );
++ if( f > 1.0 ) minr *= f;
++ }
++
++ return minr;
++ }
++
++ double get_maxvdwr( const vector<molecule_t>& ionlst )
++ {
++ double maxr = 0.0;
++ int numion = ionlst.size();
++ for( int i=0; i < numion; ++i )
++ {
++ double r = get_ionvdwr( ionlst[i] );
++ maxr = std::max( r, maxr );
++ }
++
++ return maxr;
++ }
++
++
++ void addions_core( ionee_i& ionee, const vector<molecule_t>& ionlst, double shlext, double resolution )
+ {
+ int natom = ionee.natom();
+ int nresd = ionee.nresd();
+@@ -98,8 +169,8 @@
+
+ if( solute_natom != ionee.natom() )
+ {
+- std::cout << "Info: solute natom, total natom: " << solute_natom << " " << natom << std::endl;
+- std::cout << " solute nresd, total nresd: " << solute_nresd << " " << nresd << std::endl;
++ std::cout << "Info: Number of solute atoms: " << solute_natom << ", total number of atoms: " << natom << std::endl;
++ std::cout << " Number of solute residues: " << solute_nresd << ", total number of residues: " << nresd << std::endl;
+ }
+
+ vector<double>& pcord = ionee.getcord();
+@@ -111,23 +182,12 @@
+ minmaxpos( pcord, pmin, pmax, solute_natom );
+
+ double max_radius = *std::max_element( pvdwr.begin(), pvdwr.end() );
+- double ion_radius = get_vdwr( ion.atom_begin()->get_s(TYPE) );
+- if( ion.natom() > 1 )
+- {
+- std::cout << "Info: polyatomic ion, radius set to " << ion_radius*2.5 << " (2.5 times first atom)" << std::endl;
+- ion_radius *= 2.5;
+- }
+-
+- if( std::abs( charge(ion) ) < 0.1 )
+- {
+- throw std::runtime_error( "Error: the ion you chose is in fact netural, thus add ion won't work" );
+- }
++ double ion_radius = get_maxvdwr( ionlst );
+
+ double buffer = ion_radius + max_radius + shlext;
+ std::cout << "Info: rmax, rion, shell: " << max_radius << " " << ion_radius << " " << shlext << std::endl;
+-
+- std::cout << "Info: pmin: " << pmin[0] << " " << pmin[1] << " " << pmin[2] << std::endl;
+- std::cout << "Info: pmax: " << pmax[0] << " " << pmax[1] << " " << pmax[2] << std::endl;
++ //std::cout << "Info: pmin: " << pmin[0] << " " << pmin[1] << " " << pmin[2] << std::endl;
++ //std::cout << "Info: pmax: " << pmax[0] << " " << pmax[1] << " " << pmax[2] << std::endl;
+
+
+ pmin -= makevec(buffer, buffer, buffer);
+@@ -151,9 +211,20 @@
+ std::pair<double, numvec> max = make_pair(-1e20, numvec(3));
+ tree.calculate( capbox::elepot_t(&pcord[0], &pchrg[0], solute_natom), min, max );
+
+- for( int i=0; i < num_ion; ++i )
++ int numion = ionlst.size();
++ for( int i=0; i < numion; ++i )
+ {
+- numvec pos = charge(ion)>0 ? min.second : max.second;
++ if( std::abs( charge(ionlst[i]) ) < 0.1 )
++ {
++ throw std::runtime_error( "Error: the ion you chose is in fact netural, thus add ion won't work" );
++ }
++
++ std::cout << "min potential: " << min.first << " x,y,z: " << min.second[0] << " " << min.second[1] << " " << min.second[2] << std::endl;
++ std::cout << "max potential: " << max.first << " x,y,z: " << max.second[0] << " " << max.second[1] << " " << max.second[2] << std::endl;
++
++
++
++ numvec pos = charge(ionlst[i])>0 ? min.second : max.second;
+
+ if( nosolvent )
+ {
+@@ -161,8 +232,8 @@
+ std::cout << "Info: new ion will be placed at: ";
+ std::cout << pos[0] << " " << pos[1] << " " << pos[2] << " " << std::endl;
+
+- numvec sft = pos - center(ion);
+- ionee.insert_resd( ion, sft, -1 );
++ numvec sft = pos - center(ionlst[i]);
++ ionee.insert_resd( ionlst[i], sft, -1 );
+ }
+ else
+ {
+@@ -171,19 +242,19 @@
+ {
+ // solvent present, find the nearest solvent residue, use ion to replace it.
+ // besides the ion must be before solvent, after the solute
+- numvec sft = pos - center(ion);
+- ionee.insert_resd( ion, sft, solute_nresd+i );
++ numvec sft = pos - center(ionlst[i]);
++ ionee.insert_resd( ionlst[i], sft, solute_nresd+i );
+ ionee.remove_resd( rid );
+ }
+ else
+ {
+ // no bump atom: insert residue directly, no need to delete solvent residue
+- numvec sft = pos - center(ion);
+- ionee.insert_resd( ion, sft, solute_nresd+i );
++ numvec sft = pos - center(ionlst[i]);
++ ionee.insert_resd( ionlst[i], sft, solute_nresd+i );
+ }
+ }
+
+- if( i < num_ion-1 )
++ if( i < numion-1 )
+ {
+ // more ions to add: cut a sphere from the tree, make sure no overlapping
+ // the radius is 2*ion_radius, to avoid in the future ion
+@@ -193,7 +264,7 @@
+
+ min.first = 1e20;
+ max.first =-1e20;
+- tree.calculate(elepot_t(pos, charge(ion)), min, max);
++ tree.calculate(elepot_t(pos, charge(ionlst[i])), min, max);
+ }
+ }
+
+diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/capbox/addions.hpp amber11/AmberTools/src/gleap/mortsrc/capbox/addions.hpp
+--- amber11.orig/AmberTools/src/gleap/mortsrc/capbox/addions.hpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/mortsrc/capbox/addions.hpp 2011-03-08 16:38:44.000000000 +0300
+@@ -91,7 +91,7 @@
+
+ if( i != m_natom )
+ {
+- throw std::runtime_error( "Error: there are atoms do not belong to any residue" );
++ throw std::runtime_error( "Error: Atoms are present that are part of no residue!" );
+ }
+
+ m_pcord = &m_cord;
+@@ -178,9 +178,11 @@
+ vector<string> m_type;
+ };
+
+- void addions_core( ionee_i& ionee, const molecule_t& ion, int nion, double shlext, double resolution );
+-
++ void addions_core( ionee_i& ionee, const vector<molecule_t>& ionlst, double shlext, double resolution );
++
+ void addions( molecule_t& m, const molecule_t& ion, int nion, double shlext, double res );
++
++ void addions( molecule_t& m, const molecule_t& ion1, int numion1, const molecule_t& ion2, int numion2, double shlext, double res );
+ }
+
+
+diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/capbox/solvate.cpp amber11/AmberTools/src/gleap/mortsrc/capbox/solvate.cpp
+--- amber11.orig/AmberTools/src/gleap/mortsrc/capbox/solvate.cpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/mortsrc/capbox/solvate.cpp 2011-03-08 16:38:44.000000000 +0300
+@@ -126,13 +126,23 @@
+ return cap.extent();
+ }
+
+- numvec solvatebox_core( solute_i& solute, const molecule_t& m, double buffer, double closeness )
++ numvec solvatebox_core( solute_i& solute, const molecule_t& m, double buffer, double closeness, bool iso )
+ {
+ funstack_t::push( "solvatebox" );
+
+ numvec extent = regionlize( solute, true );
+ extent += scalar_numvec(extent.size(), 2*buffer);
+
++ if( iso )
++ {
++ double extmax = std::max( extent[0], std::max(extent[1], extent[2]) );
++ extent[0] = extmax;
++ extent[1] = extmax;
++ extent[2] = extmax;
++ }
++
++
++
+ box_region box( extent );
+ out_solute inn( solute, closeness );
+ solvate( solute, m, and_region(box, inn) );
+@@ -180,10 +190,10 @@
+ mol.set_v( CAP, makevec(capcnt[0],capcnt[1],capcnt[2],caprad) );
+ }
+
+- void solvatebox(molecule_t& mol, const molecule_t& svt, double buffer, double closeness)
++ void solvatebox(molecule_t& mol, const molecule_t& svt, double buffer, double closeness, bool iso)
+ {
+ mort_solute solute(mol);
+- numvec extent = solvatebox_core( solute, svt, buffer, closeness );
++ numvec extent = solvatebox_core( solute, svt, buffer, closeness, iso );
+
+ mol.set_i( SOLUTE, BOX );
+ mol.set_v( BOX, makevec(extent[0], extent[1], extent[2], 90.0) );
+diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/capbox/solvate.hpp amber11/AmberTools/src/gleap/mortsrc/capbox/solvate.hpp
+--- amber11.orig/AmberTools/src/gleap/mortsrc/capbox/solvate.hpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/mortsrc/capbox/solvate.hpp 2011-03-08 16:38:44.000000000 +0300
+@@ -10,7 +10,7 @@
+
+ numvec solvatecap_core( solute_i& solute, const molecule_t& m, const numvec& capcnt, double caprad, double closeness );
+
+- numvec solvatebox_core( solute_i& solute, const molecule_t& m, double buffer, double closeness );
++ numvec solvatebox_core( solute_i& solute, const molecule_t& m, double buffer, double closeness, bool iso );
+
+ double solvateoct_core( solute_i& solute, const molecule_t& m, double buffer, double closeness );
+
+@@ -18,7 +18,7 @@
+
+ void solvatecap( molecule_t& mol, const molecule_t& svt, const numvec& capcnt, double caprad, double closeness );
+
+- void solvatebox( molecule_t& mol, const molecule_t& svt, double buffer, double closeness );
++ void solvatebox( molecule_t& mol, const molecule_t& svt, double buffer, double closeness, bool iso );
+
+ void solvateoct( molecule_t& mol, const molecule_t& svt, double buffer, double closeness );
+
+diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/pdbent/atom.cpp amber11/AmberTools/src/gleap/mortsrc/pdbent/atom.cpp
+--- amber11.orig/AmberTools/src/gleap/mortsrc/pdbent/atom.cpp 2010-04-06 04:38:00.000000000 +0400
++++ amber11/AmberTools/src/gleap/mortsrc/pdbent/atom.cpp 2011-03-08 16:38:44.000000000 +0300
+@@ -57,9 +57,9 @@
+ {
+ funstack_t::push( "pdbent::write_atom" );
+
+- os << "ATOM ";
++ os << "ATOM ";
+
+- write_iparm( os, atom, ID, "%5d" );
++ write_iparm( os, atom, ID, "%6d" );
+
+ write_atom_name( os, atom );
+
+@@ -102,7 +102,15 @@
+ os << ' ';
+ }
+
+- os << format( "%4d " ) % (atom.resd().relid()+1);
++ int rid = atom.resd().relid() + 1;
++ if( rid < 10000 )
++ {
++ os << format( "%4d " ) % rid;
++ }
++ else
++ {
++ os << format( "%5d " ) % rid;
++ }
+ }
+
+ } // namespace pdbent
+diff -urN amber11.orig/AmberTools/src/gleap/plugins/addions.cpp amber11/AmberTools/src/gleap/plugins/addions.cpp
+--- amber11.orig/AmberTools/src/gleap/plugins/addions.cpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/plugins/addions.cpp 2011-03-08 16:38:44.000000000 +0300
+@@ -4,15 +4,33 @@
+
+ namespace amber
+ {
++ int get_numion( double dstchg, double ionchg )
++ {
++ if( dstchg * ionchg >= 0 )
++ {
++ throw std::runtime_error( "Error: molecule and ion are both positive (or negative), can not make neutral" );
++ }
++
++ return int( -dstchg/ionchg+0.5);
++ }
++
++
+
+- addions_command::addions_command( )
+- :command_i( "addions" )
++ addions_command::addions_command( const char* cmd )
++ :command_i( cmd )
+ {
+ }
+
+- addions_command::addions_command( const string& dest, const string& ion, int number )
+- :m_dest( dest ), m_ion( ion ), m_number( number )
++ addions_command::addions_command( const string& dest, const string& ion1, int numion1 )
++ :m_dest( dest ), m_ion1( ion1 ), m_numion1( numion1 )
+ {
++ m_runtyp = 1;
++ }
++
++ addions_command::addions_command( const string& dest, const string& ion1, int numion1, const string& ion2, int numion2 )
++ :m_dest( dest ), m_ion1( ion1 ), m_numion1( numion1 ), m_ion2(ion2), m_numion2(numion2)
++ {
++ m_runtyp = 2;
+ }
+
+ addions_command::~addions_command()
+@@ -21,28 +39,42 @@
+
+ bool addions_command::exec()
+ {
++ double shell_extent = 4.0;
++ double resolution = 1.0;
+ molecule_ptr pdst = content().get_mol( m_dest );
+- molecule_ptr pion = content().get_mol( m_ion );
+
+- if( m_number==0 )
++ if( m_runtyp==1 )
+ {
+- double dstchg = charge( *pdst );
+- double ionchg = charge( *pion );
+- if( dstchg * ionchg >= 0 )
++ molecule_ptr pion = content().get_mol( m_ion1 );
++ if( m_numion1==0 )
+ {
+- throw std::runtime_error( "Error: molecule and ion are both positive (or negative), can not make neutral" );
++ m_numion1 = get_numion( charge(*pdst), charge(*pion) );
+ }
+-
+- m_number = int( -dstchg/ionchg+0.5);
++
++ assert( pdst != NULL && pion != NULL );
++ addions( *pdst, *pion, m_numion1, shell_extent, resolution);
+ }
+-
+-
+- assert( pdst != NULL && pion != NULL );
++ else if( m_runtyp==2 )
++ {
++ molecule_ptr pion1 = content().get_mol( m_ion1 );
++ molecule_ptr pion2 = content().get_mol( m_ion2 );
++ if( m_numion1==0 && m_numion2==0 )
++ {
++ throw std::runtime_error( "Error: while addions2, numion1 and numion2 cannot both be zero" );
++ }
+
+- double shell_extent = 4.0;
+- double resolution = 1.0;
++ if( m_numion1==0 )
++ {
++ m_numion1 = get_numion( charge(*pdst)+m_numion2*charge(*pion2), charge(*pion1) );
++ }
++ else if( m_numion2==0 )
++ {
++ m_numion2 = get_numion( charge(*pdst)+m_numion1*charge(*pion1), charge(*pion2) );
++ }
++
++ addions( *pdst, *pion1, m_numion1, *pion2, m_numion2, shell_extent, resolution );
++ }
+
+- addions( *pdst, *pion, m_number, shell_extent, resolution);
+ return true;
+ }
+
+@@ -53,22 +85,29 @@
+
+ const char* addions_command::info( ) const
+ {
+- return " usage: addion mol ion1 numIon1 ";
++ return " usage: addions mol ion1 numIon1 ";
+ }
+
+ shared_ptr< command_i > addions_command::clone( const vector< string >& args ) const
+ {
+- if( args.size()!=3 && args.size()!=4 )
++ if( args.size()==3 || args.size()==4 )
+ {
+- throw std::runtime_error( "Error: wrong number of arguments " );
++ int numb = args.size()==3 ? 0 : atoi(args[3].c_str());
++ return shared_ptr< command_i >( new addions_command(args[1], args[2], numb) );
+ }
+
+- int numb = args.size()==3 ? 0 : atoi(args[3].c_str());
+-
+- return shared_ptr< command_i >( new addions_command(args[1], args[2], numb) );
++ if( args.size()==6 )
++ {
++ int nion1 = atoi( args[3].c_str() );
++ int nion2 = atoi( args[5].c_str() );
++ return shared_ptr< command_i >( new addions_command(args[1], args[2], nion1, args[4], nion2 ) );
++ }
++
++ throw std::runtime_error( "Error: Wrong number of arguments!" );
+ }
+
+- addions_command g_addions_command;
++ addions_command g_addions_command( "addions" );
++ addions_command g_addions2_command( "addions2" );
+
+ } // namespace amber
+
+diff -urN amber11.orig/AmberTools/src/gleap/plugins/addions.hpp amber11/AmberTools/src/gleap/plugins/addions.hpp
+--- amber11.orig/AmberTools/src/gleap/plugins/addions.hpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/plugins/addions.hpp 2011-03-08 16:38:44.000000000 +0300
+@@ -11,10 +11,12 @@
+ {
+ public:
+
+- addions_command();
++ addions_command( const char* cmdnam );
+
+ addions_command( const string& dest, const string& ion, int number );
+-
++
++ addions_command( const string& dest, const string& ion1, int numion1, const string& ion2, int numion2 );
++
+ virtual ~addions_command();
+
+ virtual bool exec();
+@@ -28,10 +30,12 @@
+ private:
+
+ string m_dest;
++ string m_ion1;
++ int m_numion1;
++ string m_ion2;
++ int m_numion2;
+
+- string m_ion;
+-
+- int m_number;
++ int m_runtyp;
+ };
+
+ } // namespace amber
+diff -urN amber11.orig/AmberTools/src/gleap/plugins/check.cpp amber11/AmberTools/src/gleap/plugins/check.cpp
+--- amber11.orig/AmberTools/src/gleap/plugins/check.cpp 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/src/gleap/plugins/check.cpp 2011-03-08 16:38:44.000000000 +0300
+@@ -0,0 +1,415 @@
++#include <object.hpp>
++#include "check.hpp"
++
++namespace amber
++{
++ void check_charge( const molecule_t& m )
++ {
++ std::cout << "Checking charge: ";
++ double chg = charge( m );
++ double dif = std::abs( chg - int(chg) );
++ if( dif > 0.01 && dif < 0.99 )
++ {
++ std::cout << std::endl;
++ std::cout << "Warning: non-integral total charge: " << chg << std::endl;
++ }
++ else
++ {
++ std::cout << chg << ", OK!" << std::endl;
++ }
++ }
++
++ void check_bond_length( const molecule_t& m, double lowcutoff, double hghcutoff )
++ {
++ std::cout << "Checking bond lengths: ";
++ bool ok = true;
++ bonditer_t bi = m.bond_begin();
++ for( ; bi != m.bond_end(); ++bi )
++ {
++ atom_t a1 = atom_1st( *bi );
++ atom_t a2 = atom_2nd( *bi );
++ double ln = dist( a1, a2 );
++ if( ln < lowcutoff || ln > hghcutoff )
++ {
++ resd_t r1 = a1.resd();
++ resd_t r2 = a2.resd();
++ ok = false;
++ std::cout << std::endl;
++ std::cout << format("Warning: There is a bond of %4.2f angstroms between: ") % ln;
++ std::cout << r1.get_s(NAME) << "." << a1.get_s(NAME) << " and ";
++ std::cout << r2.get_s(NAME) << "." << a2.get_s(NAME);
++ }
++ }
++
++ if( ok )
++ {
++ std::cout << "OK!" << std::endl;
++ }
++ else
++ {
++ std::cout << std::endl;
++ }
++ }
++
++ void check_atom_distance( const molecule_t& m, double cutoff )
++ {
++ std::cout << "Checking nonbonded atom contacts: ";
++ bool ok = true;
++ atomiter_t ai = m.atom_begin();
++ for( ; ai != m.atom_end(); ++ai )
++ {
++ atomiter_t aj = ai + 1;
++ for( ; aj != m.atom_end(); ++aj )
++ {
++ if( bond_t::has(*ai, *aj) )
++ {
++ continue;
++ }
++
++ double d = dist( *ai, *aj );
++ if( d < cutoff )
++ {
++ ok = false;
++ resd_t r1 = ai->resd();
++ resd_t r2 = aj->resd();
++ std::cout << std::endl;
++ std::cout << format( "Warning: Close contact of %4.2f Angstroms between atoms ") % d;
++ std::cout << r1.get_s(NAME) << "." << ai->name() << " and ";
++ std::cout << r2.get_s(NAME) << "." << aj->name();
++ }
++ }
++ }
++
++ if( ok )
++ {
++ std::cout << "OK!" << std::endl;
++ }
++ else
++ {
++ std::cout << std::endl;
++ }
++ }
++
++ void check_atom_params( const molecule_t& m, const molecule_t& ff )
++ {
++ std::cout << "Checking atom parameters: ";
++ bool ok = true;
++ atomiter_t ai = m.atom_begin();
++ for( ; ai != m.atom_end(); ++ai )
++ {
++ string t = ai->type();
++ if( !atom_t::has(ff, t) )
++ {
++ ok = false;
++ std::cout << "Warning: could not find parameters for atom: " << t << std::endl;
++ }
++ }
++
++ if( ok )
++ {
++ std::cout << "OK!" << std::endl;
++ }
++ else
++ {
++ std::cout << std::endl;
++ }
++ }
++
++ void check_bond_params( const molecule_t& m, const molecule_t& ff )
++ {
++ std::cout << "Checking bond parameters: ";
++ bool ok = true;
++ bonditer_t bi = m.bond_begin();
++ for( ; bi != m.bond_end(); ++bi )
++ {
++ atom_t a1 = atom_1st( *bi );
++ atom_t a2 = atom_2nd( *bi );
++ string t1 = a1.type();
++ string t2 = a2.type();
++
++ atom_t pa1(ff, -1), pa2(ff, -1);
++
++ if( atom_t::get(ff, t1, pa1) && atom_t::get(ff, t2, pa2) )
++ {
++ if( bond_t::has(pa1, pa2) )
++ {
++ continue;
++ }
++ }
++
++ ok = false;
++ std::cout << std::endl;
++ std::cout << "Warning: could not find parameters for bond " << t1 << "-" << t2 << std::endl;
++ }
++
++ if( ok )
++ {
++ std::cout << "OK!" << std::endl;
++ }
++ else
++ {
++ std::cout << std::endl;
++ }
++ }
++
++ void check_angl_params( const molecule_t& m, const molecule_t& ff )
++ {
++ std::cout << "Checking angle parameters: ";
++ bool ok = true;
++ atomiter_t ai = m.atom_begin();
++ for( ; ai != m.atom_end(); ++ai )
++ {
++ atomiter_t aj = ai->atom_begin();
++ for( ; aj != ai->atom_end(); ++aj )
++ {
++ atomiter_t ak = aj + 1;
++ for( ; ak != ai->atom_end(); ++ak )
++ {
++ string t1 = ai->type();
++ string t2 = aj->type();
++ string t3 = ak->type();
++ atom_t pa1(ff, -1);
++ atom_t pa2(ff, -1);
++ atom_t pa3(ff, -1);
++ if( atom_t::get(ff, t1, pa1) && atom_t::get(ff, t2, pa2) && atom_t::get(ff, t3, pa3) )
++ {
++ if( angl_t::has(pa2, pa1, pa3) )
++ {
++ continue;
++ }
++ }
++
++ ok = false;
++ std::cout << std::endl;
++ std::cout << "Warning: could not find parameters for angle " << t2 << "-" << t1 << "-" << t3;
++ }
++ }
++ }
++
++ if( ok )
++ {
++ std::cout << "OK!" << std::endl;
++ }
++ else
++ {
++ std::cout << std::endl;
++ }
++ }
++
++ check_command::check_command()
++ : command_i( "check" )
++ {
++ }
++
++ check_command::check_command( bool checkmolcharge, bool checkatomparams,
++ bool checkbondparams, bool checkangleparams,
++ bool checkbondlength, bool checkatomclashes,
++ const string& molnam )
++ : m_checkmolcharge(checkmolcharge), m_checkatomparams(checkatomparams),
++ m_checkbondparams(checkbondparams), m_checkangleparams(checkangleparams),
++ m_checkbondlength(checkbondlength), m_checkatomclashes(checkatomclashes),
++ m_molnam( molnam )
++ {
++ }
++
++ check_command::~check_command( )
++ {
++ }
++
++ bool check_command::exec( )
++ {
++ int ndot = std::count( m_molnam.begin(), m_molnam.end(), '.' );
++ if( ndot != 0 )
++ {
++ throw std::runtime_error( "Error: Arguments, other than flags, must be units!" );
++ }
++
++ std::cout << "Checking unit \"" << m_molnam << "\"" << std::endl;
++
++ molecule_ptr pmol = content().get_mol( m_molnam );
++ molecule_ptr parm = content().get_mol( "_amberffp" );
++
++ if (m_checkmolcharge == true)
++ {
++ check_charge( *pmol );
++ }
++
++ if (m_checkatomparams == true)
++ {
++ check_atom_params( *pmol, *parm );
++ }
++
++ if (m_checkbondparams == true)
++ {
++ check_bond_params( *pmol, *parm );
++ }
++
++ if (m_checkangleparams == true)
++ {
++ check_angl_params( *pmol, *parm );
++ }
++
++ if (m_checkbondlength == true)
++ {
++ check_bond_length( *pmol, 0.5, 3.0 );
++ }
++
++ if (m_checkatomclashes == true)
++ {
++ check_atom_distance( *pmol, 1.5 );
++ }
++
++ return true;
++ }
++
++ void check_command::undo()
++ {
++ }
++
++ const char* check_command::info() const
++ {
++ return "check unit";
++ }
++
++ command_ptr check_command::clone( const vector< string >& args ) const
++ {
++ bool checkall = false;
++ bool checkmolcharge = false;
++ bool checkatomparams = false;
++ bool checkbondparams = false;
++ bool checkangleparams = false;
++ bool checkbondlength = false;
++ bool checkatomclashes = false;
++ bool nocheckatomclashes = false;
++
++ std::string unit = "";
++
++ int i;
++
++ //if( args.size()!=2 )
++ //{
++ // throw std::runtime_error( "Error: Wrong number of arguments!" );
++ //}
++
++ for (i = 1; i < args.size(); i++)
++ {
++ if (args[i] == "-charge")
++ {
++ checkmolcharge = true;
++ std::cout << "charge check requested" << std::endl;
++ }
++ else if (args[i] == "-atomparams")
++ {
++ checkatomparams = true;
++ std::cout << "atom parameter check requested" << std::endl;
++ }
++ else if (args[i] == "-bondparams")
++ {
++ checkbondparams = true;
++ std::cout << "bond parameter check requested" << std::endl;
++ }
++ else if (args[i] == "-angleparams")
++ {
++ checkangleparams = true;
++ std::cout << "angle parameter check requested" << std::endl;
++ }
++ else if (args[i] == "-bondlength")
++ {
++ checkbondlength = true;
++ std::cout << "bond length check requested" << std::endl;
++ }
++ else if (args[i] == "-clashes")
++ {
++ if (nocheckatomclashes == true)
++ {
++ throw std::runtime_error("Error: can't use -clashes and -noclashes together!");
++ }
++
++ checkatomclashes = true;
++ std::cout << "atom proximity (clash) check requested" << std::endl;
++ }
++ else if (args[i] == "-noclashes")
++ {
++ if (checkatomclashes == true)
++ {
++ throw std::runtime_error("Error: can't use -clashes and -noclashes together!");
++ }
++ if (checkall == true)
++ {
++ throw std::runtime_error("Error: can't use -all and -noclashes together!");
++ }
++
++ nocheckatomclashes = true;
++ // Set everything else, too
++ checkmolcharge = true;
++ checkatomparams = true;
++ checkbondparams = true;
++ checkangleparams = true;
++ checkbondlength = true;
++ checkatomclashes = false;
++ checkall = false;
++ std::cout << "all except atom proximity (clash) check requested" << std::endl;
++ }
++ else if (args[i] == "-all")
++ {
++ if (nocheckatomclashes == true)
++ {
++ throw std::runtime_error("Error: can't use -all and -noclashes together!");
++ }
++
++ checkall = true;
++ }
++ else if (args[i].substr(0,1) == "-")
++ {
++ throw std::runtime_error("Error: in check, unrecognised flag: " + args[i] + "\n"
++ + " Allowed flags:" + "\n"
++ + " -charge" + "\n"
++ + " -atomparams" + "\n"
++ + " -bondparams" + "\n"
++ + " -angleparams" + "\n"
++ + " -bondlength" + "\n"
++ + " -clashes" + "\n"
++ + " -noclashes" + "\n"
++ + " -all" );
++ }
++ else if (unit == "")
++ {
++ unit = args[i];
++ }
++ else
++ {
++ throw std::runtime_error("Error: Too many arguments!");
++ }
++ }
++
++ if (unit == "")
++ {
++ throw std::runtime_error("Error: A unit must be supplied as an argument!");
++ }
++
++ // If everything is false except possibly checkall (whose truth
++ // or falsity is irrelevant), we want to check everything
++ if (checkmolcharge == false && checkatomparams == false
++ && checkbondparams == false && checkangleparams == false
++ && checkbondlength == false && checkatomclashes == false
++ && nocheckatomclashes == false)
++ {
++ checkmolcharge = true;
++ checkatomparams = true;
++ checkbondparams = true;
++ checkangleparams = true;
++ checkbondlength = true;
++ checkatomclashes = true;
++ std::cout << "all checks requested" << std::endl;
++ }
++
++ return shared_ptr< command_i >( new check_command(checkmolcharge, checkatomparams,
++ checkbondparams, checkangleparams,
++ checkbondlength, checkatomclashes,
++ unit ) );
++ }
++
++} // namespace amber
++
++amber::check_command g_check_command;
++
+diff -urN amber11.orig/AmberTools/src/gleap/plugins/check.hpp amber11/AmberTools/src/gleap/plugins/check.hpp
+--- amber11.orig/AmberTools/src/gleap/plugins/check.hpp 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/src/gleap/plugins/check.hpp 2011-03-08 16:38:44.000000000 +0300
+@@ -0,0 +1,49 @@
++#ifndef GLEAP_PLUGINS_CHECK_HPP
++#define GLEAP_PLUGINS_CHECK_HPP
++
++#include <guilib.hpp>
++
++namespace amber
++{
++
++ using namespace mort;
++
++ class check_command : public command_i
++ {
++ public:
++
++ check_command();
++
++ check_command( bool checkmolcharge, bool checkatomparams,
++ bool checkbondparams, bool checkangleparams,
++ bool checkbondlength, bool checkatomclashes,
++ const string& molnam );
++
++ virtual ~check_command();
++
++ virtual bool exec();
++
++ virtual void undo();
++
++ virtual const char* info( ) const;
++
++ virtual shared_ptr< command_i > clone( const vector<string>& args ) const;
++
++ private:
++
++ bool m_checkmolcharge;
++ bool m_checkatomparams;
++ bool m_checkbondparams;
++ bool m_checkangleparams;
++ bool m_checkbondlength;
++ bool m_checkatomclashes;
++ string m_molnam;
++
++ };
++
++} // namespace amber
++
++
++
++#endif
++
+diff -urN amber11.orig/AmberTools/src/gleap/plugins/loadpdb.cpp amber11/AmberTools/src/gleap/plugins/loadpdb.cpp
+--- amber11.orig/AmberTools/src/gleap/plugins/loadpdb.cpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/plugins/loadpdb.cpp 2011-03-08 16:38:44.000000000 +0300
+@@ -31,28 +31,29 @@
+ throw std::runtime_error( "Error: file " + m_file + " doesn't exist" );
+ }
+
+-
+ molecule_ptr pmol( new molecule_t() );
+
+ read_pdb( is, *pmol );
+
+ string disulf = "auto";
+ mortenv().get_s("disulfide", disulf);
+- console_t* pcon = (disulf=="auto") ? NULL : console().get();
++ if( disulf!="off" )
++ {
++ console_t* pcon = (disulf=="auto") ? NULL : console().get();
+
+- double disulfcut = 2.1;
+- string tmp;
+- if( mortenv().get_s("disulfcut", tmp) )
+- {
+- disulfcut = atof( tmp.c_str() );
+- }
++ double disulfcut = 2.1;
++ string tmp;
++ if( mortenv().get_s("disulfcut", tmp) )
++ {
++ disulfcut = atof( tmp.c_str() );
++ }
+
+- disulfide( *pmol, disulfcut, pcon );
++ disulfide( *pmol, disulfcut, pcon );
++ }
+
+ namemap_ptr nmap = content().get_nmap( "_namemap" );
+ if( nmap != NULL )
+ {
+-
+ if( m_action=="loadpdb" )
+ {
+ mdlize_mdb( *pmol, content() );
+diff -urN amber11.orig/AmberTools/src/gleap/plugins/merge.cpp amber11/AmberTools/src/gleap/plugins/merge.cpp
+--- amber11.orig/AmberTools/src/gleap/plugins/merge.cpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/plugins/merge.cpp 2011-03-08 16:38:44.000000000 +0300
+@@ -241,6 +241,12 @@
+
+
+ morf_t resd = merge(*pmol, *pseg, -1);
++ if( i==1 )
++ {
++ // for the first residue. the head atom need to be unset for counting nunit in topology.
++ resd.set_i(HEAD, 0);
++ }
++
+ resd.get_i(HEAD, head);
+
+ if( m_action == "sequence" && i > 1)
+diff -urN amber11.orig/AmberTools/src/gleap/plugins/set.cpp amber11/AmberTools/src/gleap/plugins/set.cpp
+--- amber11.orig/AmberTools/src/gleap/plugins/set.cpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/plugins/set.cpp 2011-03-08 16:38:44.000000000 +0300
+@@ -4,6 +4,29 @@
+
+ namespace amber
+ {
++ vector<string> split( const string& a )
++ {
++ size_t bgn = a.find( '{' );
++ if( bgn==string::npos ) bgn = 0;
++ else bgn = bgn + 1;
++
++ size_t end = a.rfind( '}' );
++ if( end==string::npos ) end = a.length();
++
++ vector<string> result;
++ std::istringstream is( a.substr(bgn, end - bgn) );
++ string s;
++ while( is >> s )
++ {
++ result.push_back( s );
++ }
++
++ return result;
++ }
++
++
++
++
+ numvec atov(const string& a, int len)
+ {
+ std::istringstream is(a);
+@@ -98,9 +121,23 @@
+ }
+ else if( parm == "box" )
+ {
++ numvec box(4);
+ obj.set_i(SOLUTE, BOX);
+- obj.set_v(BOX, atov4d(value) );
+- return true;
++ vector<string> itmlst = split( value );
++ if( itmlst.size()==3 || itmlst.size()==4 )
++ {
++ box[0] = atof( itmlst[0].c_str() );
++ box[1] = atof( itmlst[1].c_str() );
++ box[2] = atof( itmlst[2].c_str() );
++ box[3] = (itmlst.size()==4) ? atof(itmlst[3].c_str()) : 90.0;
++ obj.set_v(BOX, box);
++ return true;
++ }
++ else
++ {
++ std::cout << "Error: cannot understand box value: " << value << std::endl;
++ return false;
++ }
+ }
+ else if( parm == "cap" )
+ {
+diff -urN amber11.orig/AmberTools/src/gleap/plugins/solvate.cpp amber11/AmberTools/src/gleap/plugins/solvate.cpp
+--- amber11.orig/AmberTools/src/gleap/plugins/solvate.cpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/plugins/solvate.cpp 2011-03-08 16:38:44.000000000 +0300
+@@ -11,9 +11,9 @@
+ }
+
+ solvate_command::solvate_command( const string& action, const string& solute, const string& solvent,
+- const string& center, const string& extent, double closeness )
++ const string& center, const string& extent, double closeness, bool iso )
+ : m_action( action ), m_solute( solute ), m_center( center ), m_solvent( solvent ),
+- m_extent( extent ), m_closeness( closeness )
++ m_extent( extent ), m_closeness( closeness ), m_iso(iso)
+ {
+ }
+
+@@ -33,7 +33,7 @@
+ {
+ double length = atof( m_extent.c_str() );
+
+- solvatebox( *psolute, *psolvent, length, m_closeness );
++ solvatebox( *psolute, *psolvent, length, m_closeness, m_iso );
+
+ return true;
+ }
+@@ -103,7 +103,48 @@
+
+ shared_ptr< command_i > solvate_command::clone( const vector< string >& args ) const
+ {
+- if( args[0]=="solvatebox" || args[0]=="solvateshell" || args[0]=="solvateoct" )
++ if( args[0]=="solvatebox" )
++ {
++ bool iso = false;
++ double closeness = 1.0;
++ if( args.size()==4 )
++ {
++ iso = false;
++ closeness = 1.0;
++ }
++ else if( args.size()==5 )
++ {
++ if( args[4]=="iso" )
++ {
++ iso = true;
++ closeness = 1.0;
++ }
++ else
++ {
++ iso = false;
++ closeness = atof( args[4].c_str() );
++ }
++ }
++ else if( args.size()==6 )
++ {
++ if( args[5] != "iso" )
++ {
++ throw std::runtime_error( "Error: cannot understand argument: " + args[5] );
++ }
++
++ iso = true;
++ closeness = atof( args[4].c_str() );
++ }
++ else
++ {
++ throw std::runtime_error( "Error: wrong number of argument." );
++ }
++
++ return shared_ptr<command_i>( new solvate_command(args[0], args[1], args[2], "", args[3], closeness, iso) );
++ }
++
++
++ if( args[0]=="solvateshell" || args[0]=="solvateoct" )
+ {
+ if( args.size()!=4 && args.size()!=5 )
+ {
+@@ -111,7 +152,7 @@
+ }
+
+ double closeness = (args.size()==4) ? 1.0 : atof( args[4].c_str() );
+- return shared_ptr< command_i >( new solvate_command( args[0], args[1], args[2], "", args[3], closeness ) );
++ return shared_ptr<command_i>( new solvate_command(args[0], args[1], args[2], "", args[3], closeness, false) );
+ }
+
+ assert( args[0] == "solvatecap" );
+@@ -122,7 +163,7 @@
+ }
+
+ double closeness = (args.size()==5) ? 1.0 : atof( args[5].c_str() );
+- return shared_ptr< command_i >( new solvate_command( args[0], args[1], args[2], args[3], args[4], closeness ) );
++ return shared_ptr< command_i >( new solvate_command( args[0], args[1], args[2], args[3], args[4], closeness,false) );
+ }
+
+ } // namespace amber
+diff -urN amber11.orig/AmberTools/src/gleap/plugins/solvate.hpp amber11/AmberTools/src/gleap/plugins/solvate.hpp
+--- amber11.orig/AmberTools/src/gleap/plugins/solvate.hpp 2010-03-31 07:05:14.000000000 +0400
++++ amber11/AmberTools/src/gleap/plugins/solvate.hpp 2011-03-08 16:38:44.000000000 +0300
+@@ -13,7 +13,7 @@
+
+ solvate_command( const string& type );
+
+- solvate_command( const string& action, const string& solute, const string& solvent, const string& center, const string& extent, double closeness );
++ solvate_command( const string& action, const string& solute, const string& solvent, const string& center, const string& extent, double closeness, bool iso );
+
+ virtual ~solvate_command( );
+
+@@ -38,6 +38,8 @@
+ string m_extent;
+
+ double m_closeness;
++
++ bool m_iso;
+ };
+
+ } // namespace amber
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/basics.c amber11/AmberTools/src/leap/src/leap/basics.c
+--- amber11.orig/AmberTools/src/leap/src/leap/basics.c 2010-03-31 07:05:15.000000000 +0400
++++ amber11/AmberTools/src/leap/src/leap/basics.c 2011-03-08 16:38:44.000000000 +0300
+@@ -462,7 +462,7 @@
+ SmPMallocList = mPMem;
+
+ sTrailer = ((char*)mPMem)+sizeof(MEMHEADER)+lSize;
+- memcpy( sTrailer, mPMem->sCheck, TRAILERLEN );
++ memmove( sTrailer, mPMem->sCheck, TRAILERLEN );
+
+ return ((char*)mPMem) + sizeof(MEMHEADER);
+ }
+@@ -528,7 +528,7 @@
+ if ( mPMem == NULL ) {
+ DFATAL(( "Could not malloc in REALLOC: %s\n", strerror(errno) ));
+ }
+- memcpy( mPMem, mPPrevious,
++ memmove( mPMem, mPPrevious,
+ MIN( lSize, mPPrevious->lSize) + sizeof(MEMHEADER)+TRAILERLEN );
+
+ strcpy( mPPrevious->sCheck, FREESTR );
+@@ -540,7 +540,8 @@
+ /* Fill the trailer */
+
+ sTrailer = ((char*)mPMem)+sizeof(MEMHEADER)+lSize;
+- strcpy( sTrailer, mPMem->sCheck );
++ memmove( sTrailer, mPMem->sCheck, strlen(mPMem->sCheck) );
++ sTrailer[strlen(mPMem->sCheck)]='\0';
+
+ return ((char*)mPMem) + sizeof(MEMHEADER);
+ }
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/database.c amber11/AmberTools/src/leap/src/leap/database.c
+--- amber11.orig/AmberTools/src/leap/src/leap/database.c 2010-03-31 07:05:15.000000000 +0400
++++ amber11/AmberTools/src/leap/src/leap/database.c 2011-03-08 16:38:44.000000000 +0300
+@@ -594,6 +594,7 @@
+ sStripString( char *sLine, char *sStr )
+ {
+ char c, *sCur, *sStart;
++int mylength;
+
+ sCur = sLine;
+ sStart = sStr;
+@@ -615,8 +616,10 @@
+ (*sStr++) = c;
+ } while ( (*sCur) != '\0' );
+ *sStr = '\0';
+- strcpy( sLine, sCur );
+-
++ mylength=strlen(sCur);
++ //strcpy( sLine, sCur );
++ memmove(sLine, sCur, mylength);
++ sLine[mylength]='\0';
+ return(sStart);
+ }
+
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/sort.c amber11/AmberTools/src/leap/src/leap/sort.c
+--- amber11.orig/AmberTools/src/leap/src/leap/sort.c 2010-03-31 07:05:15.000000000 +0400
++++ amber11/AmberTools/src/leap/src/leap/sort.c 2011-03-08 16:38:44.000000000 +0300
+@@ -217,9 +217,9 @@
+ /* If false then swap it with the bottom of the false */
+ /* group, and leave the current pointer where it is */
+
+- memcpy( PSwapBuffer, PCur, iElementSize );
+- memcpy( PCur, PTop, iElementSize );
+- memcpy( PTop, PSwapBuffer, iElementSize );
++ memmove( PSwapBuffer, PCur, iElementSize );
++ memmove( PCur, PTop, iElementSize );
++ memmove( PTop, PSwapBuffer, iElementSize );
+
+ PTop = (char*)PTop - iElementSize;
+ iBottomFalse--;
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/stringExtra.c amber11/AmberTools/src/leap/src/leap/stringExtra.c
+--- amber11.orig/AmberTools/src/leap/src/leap/stringExtra.c 2010-03-31 07:05:15.000000000 +0400
++++ amber11/AmberTools/src/leap/src/leap/stringExtra.c 2011-03-08 16:38:44.000000000 +0300
+@@ -130,10 +130,13 @@
+ sRemoveLeadingSpaces( char *sLine )
+ {
+ char *sTemp;
+-
++int mylength;
+ sTemp = sLine;
+ while ( (*sTemp==' ') && ( *sTemp!='\0' )) sTemp++;
+- strcpy( sLine, sTemp );
++ mylength=strlen(sTemp);
++ //strcpy( sLine, sTemp );
++ memmove(sLine, sTemp, mylength);
++ sLine[mylength]='\0';
+ return(sLine);
+ }
+
+@@ -152,6 +155,7 @@
+ sRemoveFirstString( char *sLine, char *sHead )
+ {
+ char *sTemp;
++int mylength;
+
+ sTemp = sLine;
+ while ( (*sTemp!=' ') && ( *sTemp!='\0' )) sTemp++;
+@@ -163,7 +167,11 @@
+ *sTemp = '\0';
+ strcpy( sHead, sLine );
+ sTemp++;
+- strcpy( sLine, sTemp );
++ mylength=strlen(sTemp);
++ //strcpy( sLine, sTemp );
++ memmove(sLine, sTemp, mylength);
++ sLine[mylength]='\0';
++
+ }
+
+
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/xaCommand.c amber11/AmberTools/src/leap/src/leap/xaCommand.c
+--- amber11.orig/AmberTools/src/leap/src/leap/xaCommand.c 2010-03-31 07:05:15.000000000 +0400
++++ amber11/AmberTools/src/leap/src/leap/xaCommand.c 2011-03-08 16:38:44.000000000 +0300
+@@ -837,7 +837,7 @@
+ * at the top of the list
+ */
+ qsort( saPNames, iNumber, sizeof(STRING),
+- (int (*) (void *, void *) )ziXACCompareTwoDirectoryEntries );
++ (int (*) (const void *, const void *) )ziXACCompareTwoDirectoryEntries );
+
+ /*
+ * Reformulate as an array of pointers to char
+diff -urN amber11.orig/AmberTools/src/pbsa/pb_init.f amber11/AmberTools/src/pbsa/pb_init.f
+--- amber11.orig/AmberTools/src/pbsa/pb_init.f 2010-03-31 07:05:15.000000000 +0400
++++ amber11/AmberTools/src/pbsa/pb_init.f 2011-03-08 16:38:44.000000000 +0300
+@@ -153,6 +153,7 @@
+
+ integer ires, iatm, jatm, maxmax, ic, i, j, jp, idum
+ integer alloc_err(64)
++ _REAL_ maxnbr_l, maxnba_l
+ _REAL_ rinchk
+ _REAL_ ucrgh(natom), ucrga(natom)
+ character (len=4) :: residue, resid(natom)
+@@ -207,16 +208,24 @@
+
+ ! allocate pb nblists
+
+- maxnba = natom * ( sqrt( max(cutnb,cutsa,cutfd) ) )**3 / 3.0d0
+- maxnbr = natom * ( sqrt( cutres ) + 3.0d0 )**3 / 3.0d0
++ maxnba_l = dble(natom) * ( sqrt( max(cutnb,cutsa,cutfd) ) )**3 / 3.0d0
++ maxnbr_l = dble(natom) * ( sqrt( cutres ) + 3.0d0 )**3 / 3.0d0
+ if ( natom >= 65536 ) then
+ write(6,'(a)') "PB Warnning: natom**2 exceeds integer limit (2147483647)."
+ maxmax = 2147483647
+ else
+ maxmax = ceiling(dble(natom)/2*dble(natom))
+- endif
+- if ( maxnba > maxmax ) maxnba = maxmax
+- if ( maxnbr > maxmax ) maxnbr = maxmax
++ end if
++ if ( maxnbr_l > maxmax ) then
++ maxnbr = maxmax
++ else
++ maxnbr = int(maxnbr_l)
++ end if
++ if ( maxnba_l > maxmax ) then
++ maxnba = maxmax
++ else
++ maxnba = int(maxnba_l)
++ end if
+
+ allocate( iar1pb (6,0:natom), stat = alloc_err(24) )
+ allocate( iprshrt( maxnba ), stat = alloc_err(25) )
+diff -urN amber11.orig/AmberTools/src/ptraj/actions.c amber11/AmberTools/src/ptraj/actions.c
+--- amber11.orig/AmberTools/src/ptraj/actions.c 2010-03-31 07:05:16.000000000 +0400
++++ amber11/AmberTools/src/ptraj/actions.c 2011-03-08 16:38:44.000000000 +0300
+@@ -3655,6 +3655,8 @@
+ {
+ action->mask = processAtomMask("*", action->state);
+ }
++ if (action->mask==NULL)
++ return INVALID_ARGUMENTS_RETURN_CODE;
+ /* Create a new "substate" trajInfo->state containing only some atoms: */
+ modifyStateByMask(&trajInfo->state, &action->state, action->mask, 0);
+ trajInfo->atoms = trajInfo->state->atoms;
+@@ -16406,6 +16408,10 @@
+ residues[i].antiparallelSheetProb = 0;
+ residues[i].turnProb = 0;
+ residues[i].isActive = 0;
++ residues[i].H=-1;
++ residues[i].C=-1;
++ residues[i].N=-1;
++ residues[i].O=-1;
+ }
+ actRes = 0;
+ for (i = 0; i < action->state->atoms; i++) {
+diff -urN amber11.orig/AmberTools/src/ptraj/cluster.c amber11/AmberTools/src/ptraj/cluster.c
+--- amber11.orig/AmberTools/src/ptraj/cluster.c 2010-03-31 07:05:16.000000000 +0400
++++ amber11/AmberTools/src/ptraj/cluster.c 2011-03-08 16:38:44.000000000 +0300
+@@ -4041,7 +4041,7 @@
+ OutputTrajInfo = (trajectoryInfo*)action->carg2;
+ }
+
+- if (!FirstOutputFlag)
++ if (FirstOutputFlag==NULL)
+ {
+ FirstOutputFlag = (int*)SafeMalloc(__FILE__, __LINE__, sizeof(int) * This->ClusterCount);
+ memset(FirstOutputFlag, 1, sizeof(int) * This->ClusterCount);
+@@ -4089,7 +4089,7 @@
+ * to avoid crashing out if we hit the OS-level file-size limit:
+ */
+ FileNumber[ClusterIndex] = FileNumber[ClusterIndex] + 1;
+- fclose(OutputFiles[ClusterIndex]);
++ safe_fclose(OutputFiles[ClusterIndex]);
+ FirstOutputFlag[ClusterIndex] = 1;
+ FirstFlag = 1;
+ }
+diff -urN amber11.orig/AmberTools/src/ptraj/io.c amber11/AmberTools/src/ptraj/io.c
+--- amber11.orig/AmberTools/src/ptraj/io.c 2010-03-31 07:05:16.000000000 +0400
++++ amber11/AmberTools/src/ptraj/io.c 2011-03-08 16:38:44.000000000 +0300
+@@ -673,6 +673,107 @@
+ }
+ }
+
++/* gzipFileSize()
++ * DRR: Return the uncompressed size in bytes of gzipped file by peeking
++ * at the last 4 bytes.
++ * NOTE: long long int should be equivalent to off_t.
++ */
++long long int gzipFileSize(char *filename) {
++ FILE *infile;
++ unsigned char b1,b2,b3,b4;
++ long long int val,temp;
++
++ if (filename==NULL) return -1;
++ if ( (infile = fopen(filename,"rb"))==NULL ) {
++ fprintf(stdout,"Error: gzipFileSize: Could not open %s for reading.\n",filename);
++ return -1;
++ }
++
++ // Place 4 bytes from the end
++ fseek(infile, -4, SEEK_END);
++
++ b1=0; b2=0; b3=0; b4=0;
++ fread(&b4,1,1,infile);
++ fread(&b3,1,1,infile);
++ fread(&b2,1,1,infile);
++ fread(&b1,1,1,infile);
++
++ val = 0;
++ temp = (long long int) b1;
++ temp <<= 24;
++ val = val | temp;
++ temp = (long long int) b2;
++ temp <<= 16;
++ val = val | temp;
++ temp = (long long int) b3;
++ temp <<= 8;
++ val = val | temp;
++ temp = (long long int) b4;
++ val = val | temp;
++
++ //val = (b1 << 24) | (b2 << 16) + (b3 << 8) + b4;
++
++ fclose(infile);
++
++ if (prnlev>0) fprintf(stdout,"gzipFileSize: Uncompressed size of %s: %lli\n",filename,val);
++
++ return val;
++}
++
++/*
++ * bzip2FileSize()
++ * DRR: Return the uncompressed size of bzip2 file in bytes by counting
++ * all characters using bzcat and wc.
++ */
++long long int bzip2FileSize(char *filename) {
++ long long int val;
++ char *command;
++ FILE *pipe;
++
++ if (filename==NULL) return -1;
++ // Use bzcat <file> | wc -c to calc file size
++ command=(char*) malloc( (15 + strlen(filename)) * sizeof(char));
++ sprintf(command,"bzcat %s | wc -c",filename);
++ if ((pipe=popen(command,"r"))==NULL) {
++ fprintf(stdout,"Error: bzip2FileSize: Could not open %s for reading.\n",filename);
++ fprintf(stdout," Check that bzcat and wc are present on your system.\n");
++ return -1;
++ }
++ fscanf(pipe,"%lli",&val);
++ pclose(pipe);
++
++ if (prnlev>0) fprintf(stdout,"bzip2FileSize: Uncompressed size of %s: %lli\n",filename,val);
++
++ return val;
++}
++
++/*
++ * zipFileSize()
++ * DRR: Return the uncompressed size of zip file in bytes by counting
++ * all characters using unzip and wc.
++ */
++long long int zipFileSize(char *filename) {
++ long long int val;
++ char *command;
++ FILE *pipe;
++
++ if (filename==NULL) return -1;
++ // Use unzip -p <file> | wc -c to calc file size
++ command=(char*) malloc( (18 + strlen(filename)) * sizeof(char));
++ sprintf(command,"unzip -p %s | wc -c",filename);
++ if ((pipe=popen(command,"r"))==NULL) {
++ fprintf(stdout,"Error: zipFileSize: Could not open %s for reading.\n",filename);
++ fprintf(stdout," Check that unzip and wc are present on your system.\n");
++ return -1;
++ }
++ fscanf(pipe,"%lli",&val);
++ pclose(pipe);
++
++ if (prnlev>0) fprintf(stdout,"zipFileSize: Uncompressed size of %s: %lli\n",filename,val);
++
++ return val;
++}
++
+ /* DAN ROE:
+ * id_Filesig(): Attempt to identify the file type by first 3 hex vals.
+ * A filename or an open stream should be supplied.
+@@ -689,7 +790,7 @@
+ * -2: Internal error
+ */
+ int id_Filesig(char *filename, FILE *infile) {
+- int *h;
++ unsigned char *h;
+ int i, type;
+
+ /* Check that either filename or infile is specified, but not both */
+@@ -712,7 +813,7 @@
+ rewind(infile);
+
+ /* Read first 3 bytes from file */
+- h=(int*) calloc(3,sizeof(int));
++ h=(unsigned char*) calloc(3,sizeof(unsigned char));
+ fread(h,1,1,infile);
+ fread(h+1,1,1,infile);
+ fread(h+2,1,1,infile);
+diff -urN amber11.orig/AmberTools/src/ptraj/io.h amber11/AmberTools/src/ptraj/io.h
+--- amber11.orig/AmberTools/src/ptraj/io.h 2010-03-31 07:05:16.000000000 +0400
++++ amber11/AmberTools/src/ptraj/io.h 2011-03-08 16:38:44.000000000 +0300
+@@ -76,6 +76,9 @@
+
+ extern void doSystem(char *);
+ extern char * promptToOpenFile( FILE **, char *, char *, char *);
++extern long long int gzipFileSize(char *);
++extern long long int bzip2FileSize(char *);
++extern long long int zipFileSize(char *);
+ extern int id_Filesig(char *,FILE *);
+ extern int openFile( FILE **, char *, char *);
+ extern int promptUserResponse(FILE *, FILE *, char *, char *, int);
+@@ -94,6 +97,9 @@
+
+ extern void doSystem();
+ extern char * promptToOpenFile();
++extern long long int gzipFileSize();
++extern long long int bzip2FileSize();
++extern long long int zipFileSize();
+ extern int id_Filesig();
+ extern int openFile();
+ extern int promptUserResponse();
+diff -urN amber11.orig/AmberTools/src/ptraj/ptraj.c amber11/AmberTools/src/ptraj/ptraj.c
+--- amber11.orig/AmberTools/src/ptraj/ptraj.c 2010-04-23 18:17:17.000000000 +0400
++++ amber11/AmberTools/src/ptraj/ptraj.c 2011-03-08 16:38:44.000000000 +0300
+@@ -2058,7 +2058,8 @@
+ int lines_per_set;
+ int start = 1;
+ int stop = 1;
+- int frame_lines, frame_size, title_size, seekable;
++ int frame_lines, title_size, seekable;
++ long long int file_size, frame_size;
+ long int endoffset;
+ float *binposScratch;
+ FILE *fp;
+@@ -2414,12 +2415,34 @@
+ fprintf(stderr, "WARNING in %s: Could not find file status for %s\n", ROUTINE, filename);
+ return NULL;
+ }
++
++ // Determine Uncompressed File Size for Nframes calculation
++ file_size=0;
++ if (trajInfo->compressType==1) // Gzip
++ file_size=gzipFileSize(filename);
++ else if (trajInfo->compressType==2) // Bzip2
++ file_size=bzip2FileSize(filename);
++ else if (trajInfo->compressType==3) // Zip
++ file_size=zipFileSize(filename);
++ if (file_size<0) {
++ fprintf(stdout,
++ "ERROR in %s: Could not calculate uncompressed file size for %s\n",
++ ROUTINE, filename);
++ return NULL;
++ }
++ if (file_size==0) file_size=frame_stat.st_size;
++
+ if (prnlev>0)
+- fprintf(stdout,"[%i] Title offset %u Frame Size %u File size %lu\n",
+- worldrank,trajInfo->titleSize,trajInfo->frameSize,frame_stat.st_size);
+- if (((frame_stat.st_size - trajInfo->titleSize) % (trajInfo->frameSize)) == 0) {
++ fprintf(stdout,"[%i] Title offset %u Frame Size %u File size %lli\n",
++ worldrank,trajInfo->titleSize,trajInfo->frameSize,file_size);
++ frame_size = (long long int) trajInfo->titleSize;
++ file_size = file_size - frame_size; // Subtract title size from file total size.
++ frame_size = (long long int) trajInfo->frameSize;
++ trajInfo->Nframes = (int) (file_size / frame_size);
++ if (prnlev>0) fprintf(stdout," File has %i frames.\n",trajInfo->Nframes);
++ if ( (file_size % frame_size) == 0 ) {
+ seekable = 1;
+- stop = (int) ((frame_stat.st_size - trajInfo->titleSize) / trajInfo->frameSize);
++ stop = trajInfo->Nframes;
+ } else {
+ stop = -1;
+ seekable = 0;
+@@ -2538,7 +2561,8 @@
+ printfone(" With this version of the code, this will likely lead to program failure!!!\n");
+ }
+
+-
++ // Set number of frames. Amber trajectory sets Nframes above
++ if (trajInfo->Nframes==0 && stop>0) trajInfo->Nframes=stop;
+ trajInfo->start = start;
+ trajInfo->stop = stop;
+ trajInfo->offset = 1;
+@@ -4182,7 +4206,7 @@
+ fprintf(stderr,"Could not get replica temperature from file# %i\n",i);
+ break;
+ }
+- fprintf(stdout," Replica %i mytemp=%lf ",i,repTemp); //DEBUG
++ if (prnlev>0) fprintf(stdout," Replica %i mytemp=%lf ",i,repTemp); //DEBUG
+ if (repTemp==currentCoordinateInfo->remdtrajtemp) {
+ if (prnlev>0) fprintf(stdout,
+ " REMD target temperature (%lf) found (%lf) at replica index %i\n",
+@@ -7078,6 +7102,7 @@
+ stackType *sp, *argumentStack;
+ ptrajState *startingState, *currentState, **statep;
+ char *continuation;
++ int totalFrames;
+
+ int readCoordinates;
+ int processCoordinates;
+@@ -7140,8 +7165,8 @@
+ */
+
+ argumentStack = NULL;
+- while ( (bufferp = fgets(buffer, BUFFER_SIZE, infile)) != NULL &&
+- strcmp(bufferp, "go\n") != 0 ) {
++ while ( (bufferp = fgets(buffer, BUFFER_SIZE, infile)) != NULL ) {
++ if ( strncmp(bufferp, "go", 2) == 0 ) break;
+
+ continuation = bufferp;
+ while ( continuation != NULL ) {
+@@ -7218,18 +7243,25 @@
+ */
+
+ startingState->maxFrames = 0;
++ totalFrames=0;
+ for (sp = transformFileStack; sp != NULL; sp = sp->next) {
+ currentCoordinateInfo = (coordinateInfo *) sp->entry;
+
++ fprintf(stdout," %s: %i frames.\n",currentCoordinateInfo->filename,currentCoordinateInfo->Nframes);
++
+ startingState->maxFrames += (currentCoordinateInfo->stop -
+ currentCoordinateInfo->start) /
+ currentCoordinateInfo->offset + 1;
++ // In case we dont know how many frames will be processed, use total number of frames
++ totalFrames += currentCoordinateInfo->Nframes;
+ }
+
+ printfone("\nPTRAJ: Successfully read the input file.\n");
+- if (startingState->maxFrames == -1)
++ if (startingState->maxFrames == -1) {
+ printfone(" Coordinate processing will occur until EOF (unknown number of frames).\n");
+- else
++ // Use total frames for action memory alloc.
++ startingState->maxFrames = totalFrames;
++ } else
+ printfone(" Coordinate processing will occur on %i frames.\n",
+ startingState->maxFrames);
+ printfone(" Summary of I/O and actions follows:\n\n");
+diff -urN amber11.orig/AmberTools/src/ptraj/trajectory.c amber11/AmberTools/src/ptraj/trajectory.c
+--- amber11.orig/AmberTools/src/ptraj/trajectory.c 2010-03-31 07:05:16.000000000 +0400
++++ amber11/AmberTools/src/ptraj/trajectory.c 2011-03-08 16:38:44.000000000 +0300
+@@ -2341,15 +2341,22 @@
+
+ /* trajFile_fseek()
+ * Wrapper for fseek. Seek to a given frame.
++ * fseeko is used for better compatibility with large files. To avoid
++ * losing bits each variable is explicitly converted to off_t in offset
++ * calculation.
+ */
+ int trajFile_fseek(coordinateInfo *C, int frame) {
+ int err;
++ off_t offset;
+
+ if (C==NULL) return -1;
+
+- if (C->isMPI==0)
+- err=fseek(C->file, C->titleSize+(frame*C->frameSize), SEEK_SET);
+- else
++ if (C->isMPI==0) {
++ offset = (off_t) frame;
++ offset *= (off_t) C->frameSize;
++ offset += (off_t) C->titleSize;
++ err=fseeko(C->file, offset, SEEK_SET);
++ } else
+ err=parallel_fseek(C,frame);
+
+ return err;
+diff -urN amber11.orig/AmberTools/src/ptraj/trajectory.h amber11/AmberTools/src/ptraj/trajectory.h
+--- amber11.orig/AmberTools/src/ptraj/trajectory.h 2010-03-31 07:05:16.000000000 +0400
++++ amber11/AmberTools/src/ptraj/trajectory.h 2011-03-08 16:38:44.000000000 +0300
+@@ -168,6 +168,7 @@
+ char *filename; // File name
+ int start; // Frame to start processing
+ int stop; // Frame to end processing
++ int Nframes; // Total number of frames in the file.
+ int offset; // # of frames to skip
+ int append; // File will be appended to
+ int isBox; // File has box information
+@@ -230,6 +231,7 @@
+ _p_->filename = NULL; \
+ _p_->start = 1; \
+ _p_->stop = -1; \
++ _p_->Nframes = 0; \
+ _p_->offset = 1; \
+ _p_->append = 0; \
+ _p_->isBox = 0; \
+diff -urN amber11.orig/AmberTools/src/rism/amber_rism_interface.f amber11/AmberTools/src/rism/amber_rism_interface.f
+--- amber11.orig/AmberTools/src/rism/amber_rism_interface.f 2010-04-07 16:55:55.000000000 +0400
++++ amber11/AmberTools/src/rism/amber_rism_interface.f 2011-03-08 16:38:44.000000000 +0300
+@@ -501,7 +501,8 @@
+ call timer_stop(TIME_REORIENT)
+ !linproj predict
+ call timer_start(TIME_CRDINTERP)
+- call fce_force(fce_o,ff,rism_3d%solu%ratu)
++ if(rismprm%apply_rism_force==1)&
++ call fce_force(fce_o,ff,rism_3d%solu%ratu)
+ call timer_stop(TIME_CRDINTERP)
+
+ call timer_start(TIME_REORIENT)
+@@ -537,16 +538,17 @@
+ end if
+ #else /*SANDER*/
+ #endif /*SANDER*/
+- call rism3d_force(rism_3d,ff)
+- if(rismprm%zerofrc==1)then
++ if(rismprm%apply_rism_force==1)then
++ call rism3d_force(rism_3d,ff)
++ if(rismprm%zerofrc==1)then
+ #ifdef MPI
+- call corr_drift(ff,rism_3d%solu%mass,rism_3d%solu%natom,&
+- mpirank,mpisize,mpicomm)
++ call corr_drift(ff,rism_3d%solu%mass,rism_3d%solu%natom,&
++ mpirank,mpisize,mpicomm)
+ #else
+- call corr_drift(ff,rism_3d%solu%mass,rism_3d%solu%natom)
++ call corr_drift(ff,rism_3d%solu%mass,rism_3d%solu%natom)
+ #endif /*MPI*/
++ end if
+ end if
+-
+ !get the excess chemical potential
+ call timer_start(TIME_EXCHEM)
+ if(rismprm%gauss_fluct == 0)then
+@@ -563,12 +565,12 @@
+ #endif /*defined(MPI)*/
+ end if
+ call timer_stop(TIME_EXCHEM)
+-
++
+ #ifdef RISM_CRDINTERP
+ call timer_start(TIME_REORIENT)
+ call orient(rism_3d,ff,qback)
+ call timer_stop(TIME_REORIENT)
+- if(rismprm%fcestride >0)then
++ if(rismprm%fcestride >0 .and. rismprm%apply_rism_force==1)then
+ call timer_start(TIME_SAVECRDINTERP)
+ call fce_update(fce_o,ff,rism_3d%solu%ratu)
+ call timer_stop(TIME_SAVECRDINTERP)
+@@ -586,7 +588,6 @@
+
+ end if
+ if(rismprm%apply_rism_force==1) frc = frc+ff
+- call flush(6)
+ return
+ end subroutine rism_force
+
+@@ -1087,6 +1088,7 @@
+ subroutine rism_writeSolvDistF(this,step)
+ use amber_rism_interface
+ use rism3d_opendx
++ use safemem
+ implicit none
+ #if defined(MPI)
+ include 'mpif.h'
+@@ -1097,9 +1099,18 @@
+ character(len=16) :: cstep
+ character(len=64) :: suffix
+ integer :: unit = 99,iostat=0
++#ifdef MPI
++ integer :: err
++ _REAL_, pointer::work(:,:,:)=>NULL()
++#endif /*MPI*/
+ #ifdef RISM_DEBUG
+ write(6,*) "printrism"
+ #endif
++#ifdef MPI
++ if(len_trim(guvfile) /= 0 .or. len_trim(huvfile) /= 0)then
++ work => reallocate_pointer(work, this%ng3(1), this%ng3(2), this%nz_local)
++ end if
++#endif /*MPI*/
+ !................... outputting Guv and Cuv profiles ...................
+ do iv=1,this%solv%natom
+ write(cstep,'(i16)') step
+@@ -1112,9 +1123,15 @@
+ call mexit(6,1)
+ end if
+ # if defined(MPI)
++ do k=1,this%nz_local
++ do j=1,this%ng3(2)
++ do i=1,this%ng3(1)
++ work(i,j,k) = this%guv(i+(j-1)*(this%ng3(1)+2)+(k-1)*(this%ng3(1)+2)*this%ng3(2),iv)
++ end do
++ end do
++ end do
+ call writeDX(unit,&
+- (/(((this%guv(i+(j-1)*(this%ng3(1)+2)+(k-1)*(this%ng3(1)+2)*this%ng3(2),iv)&
+- ,i=1,this%ng3(1)),j=1,this%ng3(2)),k=1,this%nz_local)/),&
++ work,&
+ this%boxlen,this%ng3_local,this%ng3(3),this%ratucm,&
+ mpirank,mpisize,mpicomm)
+ # else
+@@ -1131,9 +1148,16 @@
+ call mexit(6,1)
+ end if
+ # if defined(MPI)
++
++ do k=1,this%nz_local
++ do j=1,this%ng3(2)
++ do i=1,this%ng3(1)
++ work(i,j,k) =this%huv(i+(j-1)*(this%ng3(1)+2)+(k-1)*(this%ng3(1)+2)*this%ng3(2),iv)
++ end do
++ end do
++ end do
+ call writeDX(unit,&
+- (/(((this%huv(i+(j-1)*(this%ng3(1)+2)+(k-1)*(this%ng3(1)+2)*this%ng3(2),iv)&
+- ,i=1,this%ng3(1)),j=1,this%ng3(2)),k=1,this%nz_local)/),&
++ work,&
+ this%boxlen,this%ng3_local,this%ng3(3),this%ratucm,&
+ mpirank,mpisize,mpicomm)
+ # else
+@@ -1160,6 +1184,9 @@
+ if(mpirank==0)close(unit)
+ endif
+ end do
++#ifdef MPI
++ err = safe_deallocate(work)
++#endif /*MPI*/
+ end subroutine rism_writeSolvDistF
+
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+diff -urN amber11.orig/AmberTools/src/rism/rism3d_c.f amber11/AmberTools/src/rism/rism3d_c.f
+--- amber11.orig/AmberTools/src/rism/rism3d_c.f 2010-04-07 16:55:55.000000000 +0400
++++ amber11/AmberTools/src/rism/rism3d_c.f 2011-03-08 16:38:44.000000000 +0300
+@@ -911,7 +911,7 @@
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ subroutine rism3d_aexchem_sp (this,xmu0,xmu0sp,egf)
+ use constants, only : PI,KB,AMBER_ELECTROSTATIC2
+- use rism_util, only : gaussquad_legendre
++ use rism_util, only : gaussquad_legendre, checksum
+ implicit none
+ #if defined(MPI)
+ include 'mpif.h'
+@@ -947,132 +947,130 @@
+ call flush(6)
+ #endif /*RISM_DEBUG*/
+
++ !.....total charge of solute
++ qut = sum(this%solu%charge)
+ !.....getting the numerical long-range contribution
+ egf = 0
+- eqkt = AMBER_ELECTROSTATIC2/KB/this%solv%temperature
+-
+- Nintmx = 200
+- if(Nintmx > ntvlmx)then
+- write(6,'(1X,"Nintmx gt ntvlmx",I10)')ntvlmx
+- call mexit(6,1)
+- endif
+-
+- !.....initialize gauss-legendre integration
+- call gaussquad_legendre (0d0,1d0,argum,weight,Nintmx)
+- sumhc = 0.d0
+- sumh2 = 0.d0
+-
+- !.....k loop
+- do ik = 1, Nintmx
+-
+- k = argum(ik)/(1.d0-argum(ik))
+-
+- !.....Bessel part
+- sumb = 0.d0
+-
+- do i=2,this%solu%natom
+- do j=1,i-1
+-
+- !......... site separation ..........
+- dx = this%solu%ratu(1,i) - this%solu%ratu(1,j)
+- dy = this%solu%ratu(2,i) - this%solu%ratu(2,j)
+- dz = this%solu%ratu(3,i) - this%solu%ratu(3,j)
+-
+- r2 = dx*dx + dy*dy + dz*dz
+-
+- xarg = this%solv%xappa*k*sqrt(r2)
+- if(xarg == 0.d0) &
+- sumb = sumb + 1.d0*this%solu%charge(i)*this%solu%charge(j)
+- if(xarg /= 0.d0) &
+- sumb = sumb + sin(xarg)/xarg *this%solu%charge(i)*this%solu%charge(j)
+
++ if(this%mpirank==0)then
++ eqkt = AMBER_ELECTROSTATIC2/KB/this%solv%temperature
++ Nintmx = 200
++ if(Nintmx > ntvlmx)then
++ write(6,'(1X,"Nintmx gt ntvlmx",I10)')ntvlmx
++ call mexit(6,1)
++ endif
++
++ !.....initialize gauss-legendre integration
++ call gaussquad_legendre (0d0,1d0,argum,weight,Nintmx)
++ sumhc = 0.d0
++ sumh2 = 0.d0
++
++ !.....k loop
++ do ik = 1, Nintmx
++
++ k = argum(ik)/(1.d0-argum(ik))
++
++ !.....Bessel part
++ sumb = 0.d0
++
++ do i=2,this%solu%natom
++ do j=1,i-1
++
++ !......... site separation ..........
++ dx = this%solu%ratu(1,i) - this%solu%ratu(1,j)
++ dy = this%solu%ratu(2,i) - this%solu%ratu(2,j)
++ dz = this%solu%ratu(3,i) - this%solu%ratu(3,j)
++
++ r2 = dx*dx + dy*dy + dz*dz
++
++ xarg = this%solv%xappa*k*sqrt(r2)
++ if(xarg == 0.d0) &
++ sumb = sumb + 1.d0*this%solu%charge(i)*this%solu%charge(j)
++ if(xarg /= 0.d0) &
++ sumb = sumb + sin(xarg)/xarg *this%solu%charge(i)*this%solu%charge(j)
++
++ enddo
+ enddo
+- enddo
+-
+- sumb = sumb*2.d0
+-
+- do i=1,this%solu%natom
+- sumb = sumb + 1.d0*this%solu%charge(i)*this%solu%charge(i)
+- enddo
+-
+- !.....end of Bessel part
+-
+- x2arg = (k*this%solv%xappa*this%solv%smear)**2
+- k2 = k**2
+-
+- denom = argum(ik)**2+(1.0d0-argum(ik))**2
+-
+- sumhc = sumhc + &
+- exp(-x2arg/2.d0)/denom*sumb*weight(ik)
+- sumh2 = sumh2 + &
+- exp(-x2arg/2.d0)*argum(ik)**2/(denom**2)*sumb*weight(ik)
+-
+- enddo
+-
+- !.....end of k-loop
+-
+- !.....total charge of solute
+- qut = 0.d0
+- do i = 1,this%solu%natom
+- qut = qut + this%solu%charge(i)
+- enddo
+- !.....site xappa
+- if (this%closure == KH) then
++
++ sumb = sumb*2.d0
++
++ do i=1,this%solu%natom
++ sumb = sumb + 1.d0*this%solu%charge(i)*this%solu%charge(i)
++ enddo
++
++ !.....end of Bessel part
++
++ x2arg = (k*this%solv%xappa*this%solv%smear)**2
++ k2 = k**2
++
++ denom = argum(ik)**2+(1.0d0-argum(ik))**2
++
++ sumhc = sumhc + &
++ exp(-x2arg/2.d0)/denom*sumb*weight(ik)
++ sumh2 = sumh2 + &
++ exp(-x2arg/2.d0)*argum(ik)**2/(denom**2)*sumb*weight(ik)
++
++ enddo
++
++ !.....end of k-loop
++
++ !.....site xappa
++ if (this%closure == KH) then
++ do iv = 1,this%solv%natom
++ if(qut*this%solv%charge_sp(iv) <= 0.d0) &
++ xmuh2lr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge_sp(iv)**2
++ if(qut*this%solv%charge_sp(iv) > 0.d0) &
++ xmuh2lr(iv) = 0.d0
++ xmuhclr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge(iv)*this%solv%charge_sp(iv)
++ enddo
++ else
++ do iv = 1,this%solv%natom
++ xmuh2lr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge_sp(iv)**2
++ xmuhclr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge(iv)*this%solv%charge_sp(iv)
++ enddo
++ endif
++
++ !.....unit for xappa
+ do iv = 1,this%solv%natom
+- if(qut*this%solv%charge_sp(iv) <= 0.d0) &
+- xmuh2lr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge_sp(iv)**2
+- if(qut*this%solv%charge_sp(iv) > 0.d0) &
+- xmuh2lr(iv) = 0.d0
+- xmuhclr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge(iv)*this%solv%charge_sp(iv)
++ xmuh2lr(iv) = xmuh2lr(iv) * eqkt
++ xmuhclr(iv) = xmuhclr(iv) * eqkt
+ enddo
+- else
++
++ !.....divided by total xappa
++ if(this%solv%xappa /= 0.d0)then
++ do iv = 1,this%solv%natom
++ xmuh2lr(iv) = xmuh2lr(iv) / this%solv%xappa
++ xmuhclr(iv) = xmuhclr(iv) / this%solv%xappa
++ enddo
++ else
++ do iv = 1,this%solv%natom
++ xmuh2lr(iv) = 0.d0
++ xmuhclr(iv) = 0.d0
++ enddo
++ endif
++
++ !.....multiplying xmulr by integral
+ do iv = 1,this%solv%natom
+- xmuh2lr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge_sp(iv)**2
+- xmuhclr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge(iv)*this%solv%charge_sp(iv)
++ xmuh2lr(iv) = xmuh2lr(iv)*sumh2
++ xmuhclr(iv) = - xmuhclr(iv)*sumhc
+ enddo
+- endif
+-
+- !.....unit for xappa
+- do iv = 1,this%solv%natom
+- xmuh2lr(iv) = xmuh2lr(iv) * eqkt
+- xmuhclr(iv) = xmuhclr(iv) * eqkt
+- enddo
+-
+- !.....divided by total xappa
+- if(this%solv%xappa /= 0.d0)then
++
++ sumh2 = 0.d0
++ sumhc = 0.d0
+ do iv = 1,this%solv%natom
+- xmuh2lr(iv) = xmuh2lr(iv) / this%solv%xappa
+- xmuhclr(iv) = xmuhclr(iv) / this%solv%xappa
++ sumh2 = sumh2 + xmuh2lr(iv)
++ sumhc = sumhc + xmuhclr(iv)
+ enddo
+- else
++
++ !.....J devided by KT
++ sumh2 = sumh2 / (PI*this%solv%dielconst) * eqkt
++ sumhc = sumhc / PI * eqkt
+ do iv = 1,this%solv%natom
+- xmuh2lr(iv) = 0.d0
+- xmuhclr(iv) = 0.d0
++ xmuh2lr(iv) = xmuh2lr(iv) / (PI*this%solv%dielconst) * eqkt
++ xmuhclr(iv) = xmuhclr(iv) / PI * eqkt
+ enddo
+- endif
+-
+- !.....multiplying xmulr by integral
+- do iv = 1,this%solv%natom
+- xmuh2lr(iv) = xmuh2lr(iv)*sumh2
+- xmuhclr(iv) = - xmuhclr(iv)*sumhc
+- enddo
+-
+- sumh2 = 0.d0
+- sumhc = 0.d0
+- do iv = 1,this%solv%natom
+- sumh2 = sumh2 + xmuh2lr(iv)
+- sumhc = sumhc + xmuhclr(iv)
+- enddo
+-
+- !.....J devided by KT
+- sumh2 = sumh2 / (PI*this%solv%dielconst) * eqkt
+- sumhc = sumhc / PI * eqkt
+- do iv = 1,this%solv%natom
+- xmuh2lr(iv) = xmuh2lr(iv) / (PI*this%solv%dielconst) * eqkt
+- xmuhclr(iv) = xmuhclr(iv) / PI * eqkt
+- enddo
+- xmulr = sumh2 + sumhc
+-
++ xmulr = sumh2 + sumhc
++ end if
+ !.................. calculating xMu0 by PLHNC closure ..................
+ if (this%closure == KH) then
+ dxmu = 0.d0
+@@ -1232,13 +1230,20 @@
+ xmu0sp(iv) = xmu0sp(iv) * (this%boxvol/this%ngr)
+ enddo
+
+- !.....add long-range part
+- xmu0 = xmu0 + (xmulr)
+- egf = egf + (xmulr)
+- do iv=1,this%solv%natom
+- xmu0sp(iv) = xmu0sp(iv) + xmuh2lr(iv) + xmuhclr(iv)
+- enddo
+-
++ !.....add long-range part but only on the master process so we don't over count
++ !.....this contribution.
++!!$ write(0,*) "pre lr", this%mpirank, xmu0
++!!$ write(0,*) checksum(this%huv,product(shape(this%huv)),this%mpicomm), &
++!!$ checksum(this%cuv,product(shape(this%cuv)),this%mpicomm), &
++!!$ checksum(this%uuv,product(shape(this%uuv)),this%mpicomm)
++ if(this%mpirank==0)then
++ xmu0 = xmu0 + (xmulr)
++ egf = egf + (xmulr)
++ do iv=1,this%solv%natom
++ xmu0sp(iv) = xmu0sp(iv) + xmuh2lr(iv) + xmuhclr(iv)
++ enddo
++ end if
++!!$ write(0,*) "post lr", this%mpirank, xmu0
+ return
+ end subroutine rism3d_aexchem_sp
+
+@@ -2322,6 +2327,7 @@
+ subroutine asympch(this,huvk0)
+ use constants, only : PI, FOURPI,&
+ AMBER_ELECTROSTATIC2,KB
++ use rism_util, only : checksum
+ implicit none
+ #if defined(MPI)
+ include 'mpif.h'
+@@ -2339,9 +2345,7 @@
+ _REAL_ :: xappa2,smear2_4
+ _REAL_ :: asymhr_coeff
+ _REAL_,save :: asymhr_coeff_at_cut=0,asymcr_coeff_at_cut=0
+- _REAL_,save :: erfcAtCut=0,erfcAtNegCut=0,cut=15.5d0
+-!! _REAL_,save :: erfcAtCut=0,erfcAtNegCut=0,cut=999d0
+-! !linear spacing of the grid
++ _REAL_,save :: erfcAtCut=0,erfcAtNegCut=0,cut=4d0,maxcut
+ !offset :: z-axis offset (important for spatially distributed MPI)
+ _REAL_ :: offset
+ ! !number of gridpoints in each direction to use
+@@ -2351,7 +2355,7 @@
+ _REAL_ :: erfc
+ external erfc
+ integer :: irank,ierr,i
+- _REAL_:: checksum,mpitmp
++ _REAL_:: mpitmp
+
+ half_smear_root_pi=sqrt(PI)*this%solv%smear/2d0
+ half_xappa_smear=this%solv%xappa*this%solv%smear/2d0
+@@ -2361,7 +2365,9 @@
+ asymhr_coeff=exp(-(this%solv%xappa**2)*(this%solv%smear**2)/4d0)* &
+ (2d0*exp(-(this%solv%smear*this%solv%xappa/2d0)**2)/(sqrt(PI)*this%solv%smear) &
+ - this%solv%xappa * erfc(this%solv%xappa*this%solv%smear/2d0))
+- do while(exp(-quarter_xappa2_smear2)-asymhr_coeff_at_cut > 1d-7 .and. 1d0-asymcr_coeff_at_cut > 1d-7)
++ maxcut = sqrt(sum(this%boxlen**2))
++ do while((exp(-quarter_xappa2_smear2)-asymhr_coeff_at_cut > 1d-7 .or. 1d0-asymcr_coeff_at_cut > 1d-7)&
++ .and. cut < maxcut)
+ erfcAtCut = erfc(cut)
+ erfcAtNegCut = erfc(-cut)
+ asymhr_coeff_at_cut=exp(-quarter_xappa2_smear2) &
+@@ -2370,10 +2376,10 @@
+ !(erfcAtNegCut - erfcAtCut)/2d0
+ asymcr_coeff_at_cut=(1d0-erfc(cut/this%solv%smear))
+ cut = cut+.1d0
+- ! write(6,*)'cut coeff',asymhr_coeff_at_cut,asymcr_coeff_at_cut
++! write(0,*)'cut coeff',this%mpirank,asymhr_coeff_at_cut,asymcr_coeff_at_cut
+ end do
+ #ifdef RISM_DEBUG
+- write(6,*)'cut coeff',cut,asymhr_coeff_at_cut,asymcr_coeff_at_cut
++ write(0,*)'cut coeff',cut,exp(-quarter_xappa2_smear2)-asymhr_coeff_at_cut,asymcr_coeff_at_cut
+ #endif /*RISM_DEBUG*/
+ !.....initialize
+ this%asymcr=0d0
+@@ -2569,7 +2575,7 @@
+ this%asymcr = this%asymcr * factor
+ this%asymhr = this%asymhr * factor
+ this%asymck = this%asymck * (factor / this%boxvol)
+- this%asymhk = this%asymhk * (factor / this%boxvol)/2d0/PI**2
++ this%asymhk = this%asymhk * (factor / this%boxvol)
+
+ !?WHY IS THIS ONLY FOR ny_start==0?!
+ if(this%ny_start==0)then
+@@ -2591,35 +2597,22 @@
+ end if
+ #ifdef RISM_DEBUG
+ # ifdef MPI
+- checksum = sum(this%asymck)
+-# ifdef USE_MPI_IN_PLACE
+- call mpi_allreduce(MPI_IN_PLACE,checksum,1,MPI_DOUBLE_PRECISION,mpi_sum,this%mpicomm,ierr)
+-# else
+- call mpi_allreduce(checksum,mpitmp,1,MPI_DOUBLE_PRECISION,mpi_sum,this%mpicomm,ierr)
+- checksum = mpitmp
+-# endif /*USE_MPI_IN_PLACE*/
+- if(this%mpirank == 0)then
+- write(6,*) "SUM this%asymck", this%mpirank, checksum
++ write(6,*) "SUM this%asymhr", this%mpirank, &
++ checksum(this%asymhr,product(shape(this%asymhr)), this%mpicomm), sum(this%asymhr)
++ write(6,*) "SUM this%asymcr", this%mpirank, &
++ checksum(this%asymcr,product(shape(this%asymcr)), this%mpicomm), sum(this%asymcr)
+ call flush(6)
+- end if
+- checksum = sum(this%asymhk)
+-# ifdef USE_MPI_IN_PLACE
+- call mpi_allreduce(MPI_IN_PLACE,checksum,1,MPI_DOUBLE_PRECISION,mpi_sum,this%mpicomm,ierr)
+-# else
+- call mpi_allreduce(checksum,mpitmp,1,MPI_DOUBLE_PRECISION,mpi_sum,this%mpicomm,ierr)
+- checksum = mpitmp
+-# endif /*USE_MPI_IN_PLACE*/
+- if(this%mpirank == 0)then
+- write(6,*) "SUM this%asymhk", this%mpirank, checksum
+- call flush(6)
+- end if
+ # else
+- write(6,*)"SUM this%asymcr ",size(this%asymcr),sum(this%asymcr),&
+- sum(this%asymcr(1:this%ngr_local/2)),sum(this%asymcr(this%ngr_local/2+1:this%ngr_local))
+- write(6,*)"SUM this%asymhr ",size(this%asymhr),sum(this%asymhr),&
+- sum(this%asymhr(1:this%ngr_local/2)),sum(this%asymhr(this%ngr_local/2+1:this%ngr_local))
++ write(6,*) cut, asymhr_coeff_at_cut, asymcr_coeff_at_cut
++ write(6,*)"SUM this%asymcr ",size(this%asymcr),sum(this%asymcr),&
++ sum(this%asymcr(1:this%ngr_local/2)),sum(this%asymcr(this%ngr_local/2+1:this%ngr_local))
++ write(6,*)"SUM this%asymhr ",size(this%asymhr),sum(this%asymhr),&
++ sum(this%asymhr(1:this%ngr_local/2)),sum(this%asymhr(this%ngr_local/2+1:this%ngr_local))
++ stop
++# endif /*MPI */
+ #endif /*RISM_DEBUG*/
+ #ifdef RISM_DEBUG
++# ifdef MPI
+ write(6,*) "RANK",this%mpirank,factor,this%boxvol
+ write(6,'(a,i4,f15.10,f15.10)') "SUM this%asymck",this%ngk,sum(this%asymck),sum(this%asymck(3:))
+ write(6,'(a,i4,f15.10,f15.10)') "SUM this%asymhk",this%ngk,sum(this%asymhk),sum(this%asymhk(3:))
+diff -urN amber11.orig/AmberTools/src/rism/rism3d_opendx.f amber11/AmberTools/src/rism/rism3d_opendx.f
+--- amber11.orig/AmberTools/src/rism/rism3d_opendx.f 2010-04-07 16:55:55.000000000 +0400
++++ amber11/AmberTools/src/rism/rism3d_opendx.f 2011-03-08 16:38:44.000000000 +0300
+@@ -55,28 +55,37 @@
+ contains
+ subroutine writeDX (unit, data, rism_box, n,nz_total,ratucm &
+ #ifdef MPI
+- ,rank,size,comm &
++ ,rank,nproc,comm &
+ #endif /*MPI*/
+ )
++ use safemem
+ implicit none
+ #if defined(MPI)
+ include 'mpif.h'
+- integer, intent(in) :: rank,size,comm
++ integer, intent(in) :: rank,nproc,comm
+ #else
+- integer,parameter :: rank = 0, size=1
++ integer,parameter :: rank = 0, nproc=1
+ #endif /*defined(MPI)*/
+ integer, intent(in) :: nz_total
+ integer,intent(in) :: unit, n(3)
+ _REAL_,intent(in) :: data(n(1),n(2),n(3)), rism_box(3),ratucm(3)
+ integer :: i,j,k, irank, ierr,count,icount
+- integer :: nz_offset(size),nz_local(size)
++ integer :: nz_offset(nproc),nz_local(nproc)
+ integer, parameter :: dataperline=3
+- _REAL_ :: z_data(nz_total)
++#ifdef MPI
++ integer :: err
++ _REAL_,pointer :: z_data(:)=>NULL()
++#endif /*MPI*/
+ #ifdef RISM_DEBUG
++
+ write(6,*) "writeDX",rism_box,ratucm
+ call flush(6)
+ #endif /*RISM_DEBUG*/
+-
++!!$ do i = 1,nproc
++!!$ if(rank==i)&
++!!$ write(0,*) "DX",rank,sum(data)/(rank+1),n(3)
++!!$ call mpi_barrier(comm,ierr)
++!!$ end do
+ if(rank==0)then
+ write(unit,"(a,i8,i8,i8)") "object 1 class gridpositions counts",n(1),n(2),nz_total
+ write(unit,"(a,3(f15.8))") "origin ",ratucm(1)-rism_box(1)/2,ratucm(2)-rism_box(2)/2,ratucm(3)-rism_box(3)/2
+@@ -89,9 +98,14 @@
+ end if
+ count = 0
+ #if defined(MPI)
++ z_data =>reallocate_pointer(z_data,nz_total)
+ call mpi_gather(n(3),1,mpi_integer,nz_local,1,mpi_integer,0,comm,ierr)
+ nz_offset(1) = 0
+- nz_offset(2:) = nz_local(1:size-1)
++ do i = 2, nproc
++ nz_offset(i) =sum( nz_local(1:i-1))
++ end do
++!!$ if(rank==0)&
++!!$ write(0,*) "NZ",rank,nz_offset, nz_local
+ #endif /*defined(MPI)*/
+ do i=1,n(1)
+ do j=1,n(2)
+@@ -122,5 +136,8 @@
+ end if
+ write(unit,"(a)") 'object "Untitled" call field'
+ end if
++#ifdef MPI
++ err = safe_deallocate(z_data)
++#endif /*MPI*/
+ end subroutine writeDX
+ end module rism3d_opendx
+diff -urN amber11.orig/AmberTools/src/rism/rism_fft.f amber11/AmberTools/src/rism/rism_fft.f
+--- amber11.orig/AmberTools/src/rism/rism_fft.f 2010-04-07 16:55:55.000000000 +0400
++++ amber11/AmberTools/src/rism/rism_fft.f 2011-03-08 16:38:44.000000000 +0300
+@@ -205,19 +205,23 @@
+ ! Normalizing while Forward FFT (KEY=1) *
+ !***********************************************************************
+ subroutine rlft3i (data, ng3, key,n_local,plan)
++ use safemem
+ implicit none
+ integer :: ng3(3), key
+ integer :: n_local
+ integer*8,intent(in) :: plan
+- _REAL_ :: data((ng3(1)+2)*ng3(2)*n_local)
+- _REAL_ :: work((ng3(1)+2)*ng3(2)*n_local)
++! _REAL_ :: data((ng3(1)+2)*ng3(2)*n_local)
++! _REAL_ :: work((ng3(1)+2)*ng3(2)*n_local)
++ _REAL_ :: data(:)
++ _REAL_,pointer :: work(:)
+ integer :: ngr, ngr_local,ngk_local, ig, ierr
+ integer, parameter :: FFTW_TRANSPOSED_ORDER=1, FFTW_NORMAL_ORDER=0
+ !....................... R-space data array size .......................
+ # ifdef RISM_DEBUG
+- write(6,*) "rlft3i",n_local
+- call flush(6)
++ write(0,*) "rlft3i",n_local
++ call flush(0)
+ # endif /*RISM_DEBUG*/
++ work=>reallocate_pointer(work,size(data))
+ ngr = ng3(1)*ng3(2)*ng3(3)
+ ngr_local = ng3(1)*ng3(2)*n_local
+ ngk_local = (ng3(1)+2)*ng3(2)*n_local
+@@ -230,6 +234,7 @@
+ call rfftwnd_f77_mpi( plan,1,data,work,1, &
+ FFTW_TRANSPOSED_ORDER)
+ end if
++ ierr = safe_deallocate(work)
+ end subroutine rlft3i
+
+ #else /*defined(MPI)*/
+diff -urN amber11.orig/AmberTools/src/sff/mm_options.l amber11/AmberTools/src/sff/mm_options.l
+--- amber11.orig/AmberTools/src/sff/mm_options.l 2010-03-31 07:05:17.000000000 +0400
++++ amber11/AmberTools/src/sff/mm_options.l 2011-03-08 16:38:44.000000000 +0300
+@@ -75,7 +75,7 @@
+ dynamic_loops[=\ ][01] { ECHO; dynamic_loops = atoi( &yytext[14] ); }
+ static_arrays[=\ ][01] { ECHO; static_arrays = atoi( &yytext[14] ); }
+ blocksize[=\ ][0-9]+ { ECHO; blocksize = atoi( &yytext[10] ); }
+-gbsa[=\ ][0-5] { ECHO; gbsa = atoi( &yytext[5] ); }
++gbsa[=\ ][01] { ECHO; gbsa = atoi( &yytext[5] ); }
+ dim[=\ ][34] { ECHO; dim = atoi( &yytext[4] ); }
+
+ rism[=\ ][01] { ECHO; rismData.rism = atoi( &yytext[5] ); }
+diff -urN amber11.orig/AmberTools/src/sff/sff2.c amber11/AmberTools/src/sff/sff2.c
+--- amber11.orig/AmberTools/src/sff/sff2.c 2010-03-31 07:05:17.000000000 +0400
++++ amber11/AmberTools/src/sff/sff2.c 2011-03-08 16:38:44.000000000 +0300
+@@ -1384,6 +1384,7 @@
+ e = ct2 * (ct2 * (ct2 * 32.0 - 48.0) + 18.0) - 1.0;
+ df = ct * (ct2 * (ct2 * 192.0 - 192.0) + 36.0);
+ ddf = ct2 * (ct2 * 960.0 - 576.0) + 36.0;
++ break;
+
+ default:
+ fprintf(stderr, "bad periodicity: %d\n", iper);
+@@ -4557,7 +4558,7 @@
+ qi2h = 0.5 * qi * qi;
+ qid2h = qi2h * dielfac;
+
+- if ((gbsa == 1) || (gbsa == 4) || (gbsa == 5)) {
++ if ((gbsa == 4) || (gbsa == 5)) {
+ vdwdenom = 1.0 / (ri + rwater);
+ vdwterm =
+ alphanp * (prm->Gvdw[i]) * vdwdenom * vdwdenom *
+diff -urN amber11.orig/AmberTools/src/sqm/qm2_load_params_and_allocate.f amber11/AmberTools/src/sqm/qm2_load_params_and_allocate.f
+--- amber11.orig/AmberTools/src/sqm/qm2_load_params_and_allocate.f 2010-04-14 16:13:28.000000000 +0400
++++ amber11/AmberTools/src/sqm/qm2_load_params_and_allocate.f 2011-03-08 16:38:44.000000000 +0300
+@@ -136,9 +136,12 @@
+ n_atomic_orb=natomic_orbs(iqm_atomic)
+ if (n_atomic_orb>1) nheavy_atoms=nheavy_atoms+1
+ ! Check we don't bust any static arrays
+- if (n_atomic_orb > MAX_VALENCE_ORBITALS) then
+- write (6,*) 'n_atomic_orb of ',n_atomic_orb,' exceeds max_valence_orbitals of MAX_VALENCE_ORBITALS'
+- call sander_bomb('qm2_load_params.f','exceeded max','Check qmmm_module.f and parameters.h')
++ ! DFTB is independent of this and checks are done in qm2_dftb_load_params
++ if ( .not. qmmm_nml%qmtheory%DFTB ) then
++ if (n_atomic_orb > MAX_VALENCE_ORBITALS) then
++ write (6,*) 'n_atomic_orb of ',n_atomic_orb,' exceeds max_valence_orbitals of MAX_VALENCE_ORBITALS'
++ call sander_bomb('qm2_load_params.f','exceeded max','Check qmmm_module.f and parameters.h')
++ end if
+ end if
+ qm2_params%natomic_orbs(i)=n_atomic_orb
+ qm2_params%orb_loc(1,i)=qm2_struct%norbs+1
+diff -urN amber11.orig/AmberTools/src/sqm/qm2_scf.f amber11/AmberTools/src/sqm/qm2_scf.f
+--- amber11.orig/AmberTools/src/sqm/qm2_scf.f 2010-03-31 07:05:17.000000000 +0400
++++ amber11/AmberTools/src/sqm/qm2_scf.f 2011-03-08 16:38:44.000000000 +0300
+@@ -33,9 +33,9 @@
+ qm_gb, qmmm_mpi, qmmm_scratch
+ use constants, only : EV_TO_KCAL, zero, two
+
+- use qm2_iterator_mod, only : scf_iterator_value
+- use qm2_iterator_mod, only : diis_iterator_value
+- use qm2_iterator_mod, only : remaining_diis_tokens
++ use qm2_iterator_mod, only : scf_iterator_value ! this is an integer function
++ use qm2_iterator_mod, only : diis_iterator_value ! this is an integer function
++ use qm2_iterator_mod, only : remaining_diis_tokens ! this is an integer function
+
+
+ implicit none
+@@ -75,21 +75,24 @@
+ !again. This is used to force the last few SCF steps to be full diagonalisations.
+ logical fock_predict_active !Set to true if we are attempting to predict the fock matrix on this QMMM call.
+
+- logical diis_is_off, errmat_is_converged
+ character(len=1) :: fock_extrap_flag
+- logical dont_turn_off_diis
+
++ ! DIIS
++ ! While DIIS will accelerate SCF convergence it will do so at a very high cost
++ ! since Fock matrix builds and diagonalizations for semiempirical methods are
++ ! cheaper than the overhead generated by the matrix multiplications required for DIIS
++ ! Thus switch DIIS only on if we have difficulty in converging the SCF
++ ! switch DIIS on after SCF step 100 if user turns on DIIS by setting ndiis_attempts > 0
++ integer, parameter :: switch_on_diis = 100 ! don't set this to values lower than 3!!!
++ ! switch DIIS on as a last resort if SCF did not converge until iteration 800
++ integer, parameter :: switch_on_diis_last_resort = 800
++ logical diis_is_off, errmat_is_converged, errmat_is_on
++ logical dont_turn_off_diis
+ _REAL_ :: errval
+
+-! scf_iterator_value is a function
+-! integer :: scf_iterator_value
+-
+ ! current_scf_errval is a function
+ _REAL_ :: current_scf_errval
+
+-! remaining_diis_tokens is a function
+-! integer :: remaining_diis_tokens
+-
+ !qm2_Helect is a function
+ _REAL_ qm2_HELECT
+
+@@ -141,12 +144,13 @@
+ ! i = remaining_diis_tokens( qmmm_nml%ndiis_attempts )
+ i = remaining_diis_tokens( 0 )
+ dont_turn_off_diis = .FALSE.
++ diis_is_off = qmmm_nml%ndiis_attempts < 1 .OR. qmmm_nml%ndiis_matrices < 2
++ errmat_is_on = qmmm_nml%errconv < 1.0D-02
++ errval = -1.0D0 ! initialize errval to unrealistic value
+
+ fock_extrap_flag = " "
+
+
+-
+-
+ if (qmmm_nml%verbosity > 2 .and. qmmm_mpi%commqmmm_master) then
+ write(6,'("QMMM: ")')
+ write(6,'("QMMM: SCF Convergence Information")')
+@@ -214,8 +218,18 @@
+ energy_diff = scf_energy - eold
+
+ if (qmmm_mpi%commqmmm_master) then
+- CALL pack_diis(SIZE(fock_matrix),fock_matrix,den_matrix)
+- errval = current_scf_errval()
++ ! do this only if we need it, this seriously affects performance
++ if ( .not. errmat_is_on ) then
++ ! check if we shall switch calculation of the error matrix on for diis
++ if ( ( ( .not. diis_is_off ) .and. (scf_iteration+qmmm_nml%ndiis_matrices >= switch_on_diis) ) &
++ .or. (scf_iteration+qmmm_nml%ndiis_matrices >= switch_on_diis_last_resort) ) then
++ errmat_is_on = .true.
++ end if
++ end if
++ if ( errmat_is_on ) then
++ CALL pack_diis(SIZE(fock_matrix),fock_matrix,den_matrix)
++ errval = current_scf_errval()
++ end if
+ end if
+
+
+@@ -290,7 +304,7 @@
+ ! IF THE USER REQUESTED US TO!! The default value of
+ ! qmmm_nml%ndiis_attempts is 0, so this requires a form
+ ! of human intervention
+- if ( scf_iteration == 100 ) then
++ if ( scf_iteration == switch_on_diis ) then
+ i = remaining_diis_tokens( qmmm_nml%ndiis_attempts )
+ dont_turn_off_diis = .TRUE.
+
+@@ -306,7 +320,7 @@
+ ! turn the (default OFF) diis parameters on.
+ ! I guess we should turn diis ON for the user.
+ ! I mean, we're at iteration #800. What else can we do?
+- if ( scf_iteration == 800 ) then
++ if ( scf_iteration == switch_on_diis_last_resort ) then
+ i = remaining_diis_tokens( 100 )
+ dont_turn_off_diis = .TRUE.
+
+@@ -329,8 +343,8 @@
+ ! end if
+
+
+- diis_is_off = qmmm_nml%ndiis_attempts < 1 .OR. qmmm_nml%ndiis_matrices < 2
+- errmat_is_converged = errval < qmmm_nml%errconv !.OR. diis_is_off
++ ! Is the error matrix converged? Set to true if we don't check for the error matrix
++ errmat_is_converged = errval < qmmm_nml%errconv .OR. ( .not. errmat_is_on )
+
+
+ if (abs(energy_diff) < qmmm_nml%scfconv .AND. &
+@@ -379,7 +393,7 @@
+ ! We have decided that we have not converged
+ ! We must diagonalize a fock matrix so that the next iteration can form a new guess
+ ! density matrix, provided a set of trial orbitals
+- if (qmmm_mpi%commqmmm_master) then
++ if (qmmm_mpi%commqmmm_master .and. (.not. diis_is_off) .and. ( scf_iteration >= switch_on_diis ) ) then
+ CALL diis_extrap( qm2_struct%matsize, fock_matrix , fock_extrap_flag )
+ end if
+
+@@ -1941,10 +1955,6 @@
+ _REAL_,intent(out) :: pf(npf) ! packed fock matrix
+ character(len=1),intent(out) :: extrap_flag
+
+-! integer :: scf_iterator_value
+-! integer :: diis_iterator_value
+-! integer :: diis_iterator_prev_value
+-! integer :: remaining_diis_tokens
+ _REAL_ :: current_scf_errval
+
+ logical :: HAVE_DIIS_DATA
+@@ -1975,7 +1985,6 @@
+ ERR_IS_SMALL = current_scf_errval() < 0.5d0
+ HAVE_DIIS_TOKENS = remaining_diis_tokens() > 0
+ EXTRAPOLATE = HAVE_DIIS_DATA .AND. ERR_IS_SMALL .AND. HAVE_DIIS_TOKENS
+-
+ IF ( .NOT. EXTRAPOLATE ) THEN
+ pf = qm2_struct%diis_fock( : , diis_idx )
+ RETURN
+diff -urN amber11.orig/AmberTools/src/sqm/qmmm_module.f amber11/AmberTools/src/sqm/qmmm_module.f
+--- amber11.orig/AmberTools/src/sqm/qmmm_module.f 2010-04-14 16:13:28.000000000 +0400
++++ amber11/AmberTools/src/sqm/qmmm_module.f 2011-03-08 16:38:44.000000000 +0300
+@@ -84,7 +84,7 @@
+ !--------- SIZE / ARRAY LIMITATIONS -----------------------
+
+ ! Locks maximum valence orbitals at 4 = S,P (no D or F - code is not present)
+- integer, parameter :: MAX_VALENCE_ORBITALS =4
++ integer, parameter :: MAX_VALENCE_ORBITALS = 4
+ integer, parameter :: MAX_VALENCE_DIMENSION = MAX_VALENCE_ORBITALS*(MAX_VALENCE_ORBITALS+1)/2
+
+ !----------------------------------------------------------
+diff -urN amber11.orig/AmberTools/src/sqm/sqm.f amber11/AmberTools/src/sqm/sqm.f
+--- amber11.orig/AmberTools/src/sqm/sqm.f 2010-04-14 16:13:28.000000000 +0400
++++ amber11/AmberTools/src/sqm/sqm.f 2011-03-08 16:38:44.000000000 +0300
+@@ -13,7 +13,7 @@
+
+ implicit none
+
+- _REAL_ x(3000), f(3000), escf, reff(1000), onereff(1000), work(18000), scf_mchg(1000)
++ _REAL_ x(3000), f(3000), escf, reff(1000), onereff(1000), work(18000)
+ character(len=8) atnam(1000)
+ _REAL_ born_radii(1000), one_born_radii(1000)
+ _REAL_ intdiel, extdiel, Arad
+@@ -104,20 +104,23 @@
+ call allocate_qmgb(qmmm_struct%nquant_nlink)
+
+ allocate( qmmm_struct%dxyzqm(3, qmmm_struct%nquant_nlink), stat = ier )
+- REQUIRE(ier == 0) !Deallocated in deallocate qmmm
++ REQUIRE(ier == 0)
++
++ allocate ( qm2_struct%scf_mchg(qmmm_struct%nquant_nlink), stat = ier )
++ REQUIRE(ier == 0)
+
+ if (maxcyc < 1) then
+ ! ------------------------
+ ! Single point calculation
+ ! ------------------------
+ call sqm_energy(natom, x, escf, born_radii, one_born_radii, &
+- intdiel, extdiel, Arad, scf_mchg )
++ intdiel, extdiel, Arad, qm2_struct%scf_mchg )
+ else
+ ! ---------------------
+ ! Geometry optimization
+ ! ---------------------
+ call xmin(natom, x, f, escf, xmin_iter, maxcyc, born_radii, &
+- one_born_radii, intdiel, extdiel, Arad, scf_mchg, grms_tol, ntpr)
++ one_born_radii, intdiel, extdiel, Arad, qm2_struct%scf_mchg, grms_tol, ntpr)
+ end if
+
+ ! ----------------
+@@ -140,7 +143,7 @@
+
+ write(6,*) ''
+ call qm2_print_charges(1,qmmm_nml%dftb_chg,qmmm_struct%nquant_nlink, &
+- scf_mchg,qmmm_struct%iqm_atomic_numbers)
++ qm2_struct%scf_mchg,qmmm_struct%iqm_atomic_numbers)
+
+ write(6,*) ''
+ write(6,*) 'Final Structure'
+@@ -150,6 +153,12 @@
+ write(6,*) ' --------- Calculation Completed ----------'
+ write(6,*)
+
++ deallocate( qmmm_struct%dxyzqm, stat = ier )
++ REQUIRE(ier == 0)
++
++ deallocate ( qm2_struct%scf_mchg, stat = ier )
++ REQUIRE(ier == 0)
++
+ call mexit(6,0)
+
+ end program sqm
+diff -urN amber11.orig/AmberTools/test/check_slko_files.x amber11/AmberTools/test/check_slko_files.x
+--- amber11.orig/AmberTools/test/check_slko_files.x 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/test/check_slko_files.x 2011-03-08 16:38:44.000000000 +0300
+@@ -0,0 +1,14 @@
++#!/bin/csh -f
++#checks if cc.spl file exists - if it does then it
++#assumes that all slko files are installed.
++
++if( -r $AMBERHOME/dat/slko/C-C.skf ) then
++ #Exists
++ exit(0)
++else
++ echo "DFTB SLKO files not found - Skipping DFTB tests..."
++ echo ""
++ exit(1)
++endif
++
++
+diff -urN amber11.orig/AmberTools/test/nab/cuv.H1.4.dx.check amber11/AmberTools/test/nab/cuv.H1.4.dx.check
+--- amber11.orig/AmberTools/test/nab/cuv.H1.4.dx.check 2010-04-07 16:55:55.000000000 +0400
++++ amber11/AmberTools/test/nab/cuv.H1.4.dx.check 2011-03-08 16:38:44.000000000 +0300
+@@ -344,7 +344,7 @@
+ 0.70282E-001 0.80739E-001 0.91198E-001
+ 0.94417E-001 0.91703E-001 0.77197E-001
+ 0.50502E-001 0.19853E-001 -0.36599E-003
+- 0.22738E-005 0.16691E-001 0.36195E-001
++ 0.22736E-005 0.16691E-001 0.36195E-001
+ 0.49401E-001 0.53981E-001 0.53966E-001
+ 0.47335E-001 0.56527E-001 0.67703E-001
+ 0.78860E-001 0.90368E-001 0.10008E+000
+diff -urN amber11.orig/AmberTools/test/nab/huv.H1.4.dx.check amber11/AmberTools/test/nab/huv.H1.4.dx.check
+--- amber11.orig/AmberTools/test/nab/huv.H1.4.dx.check 2010-04-07 16:55:55.000000000 +0400
++++ amber11/AmberTools/test/nab/huv.H1.4.dx.check 2011-03-08 16:38:44.000000000 +0300
+@@ -37,7 +37,7 @@
+ -0.39322E-002 -0.18784E-002 -0.58137E-002
+ 0.10207E-002 0.62249E-003 -0.98638E-003
+ 0.37094E-003 -0.28752E-003 0.22042E-004
+- -0.99891E-004 0.15368E-003 -0.19634E-004
++ -0.99891E-004 0.15368E-003 -0.19635E-004
+ 0.35824E-003 -0.40488E-003 0.40397E-003
+ 0.14213E-003 0.61945E-002 -0.76858E-002
+ 0.81862E-002 -0.54091E-002 0.13352E-002
+@@ -58,7 +58,7 @@
+ 0.22994E-002 -0.34751E-002 -0.37733E-001
+ -0.16433E-001 -0.59317E-002 0.71093E-002
+ -0.46373E-002 0.32238E-002 -0.25894E-002
+- 0.22145E-002 -0.65291E-004 -0.12695E-003
++ 0.22145E-002 -0.65292E-004 -0.12695E-003
+ -0.16873E-003 0.45506E-003 -0.14159E-002
+ 0.16342E-002 -0.79582E-002 0.56556E-002
+ -0.43786E-001 -0.46923E-002 -0.27685E-002
+@@ -96,11 +96,11 @@
+ 0.34445E-003 0.33513E-002 0.63723E-003
+ -0.45516E-003 0.16641E-004 -0.90223E-004
+ 0.10300E-003 -0.99252E-004 0.15249E-004
+- -0.10662E-004 -0.19945E-004 -0.63404E-006
++ -0.10662E-004 -0.19945E-004 -0.63406E-006
+ 0.11124E-004 -0.28230E-004 -0.31534E-003
+ -0.33642E-002 -0.57217E-003 -0.27793E-002
+ -0.74846E-003 0.29526E-003 -0.94696E-004
+- 0.64217E-004 -0.66025E-004 -0.40449E-005
++ 0.64216E-004 -0.66025E-004 -0.40449E-005
+ -0.30799E-004 -0.16361E-004 -0.62269E-004
+ -0.51020E-005 -0.16001E-003 0.92448E-004
+ -0.57830E-003 -0.21012E-002 -0.69590E-003
+@@ -117,7 +117,7 @@
+ -0.21378E-002 -0.44258E-003 -0.15111E-002
+ -0.13934E-002 0.53131E-003 -0.22947E-003
+ -0.74937E-005 -0.46655E-004 -0.61371E-004
+- 0.61593E-004 0.13955E-004 0.16010E-003
++ 0.61594E-004 0.13955E-004 0.16010E-003
+ -0.17966E-003 0.34275E-003 -0.36108E-003
+ 0.76113E-003 0.23418E-002 0.29182E-003
+ 0.19046E-002 0.12879E-002 -0.85274E-003
+@@ -131,7 +131,7 @@
+ -0.24936E-003 0.43593E-003 -0.38975E-003
+ 0.48502E-003 -0.28550E-003 0.94466E-003
+ 0.27789E-002 0.71808E-003 0.38223E-002
+- -0.14124E-004 -0.13567E-002 0.12326E-002
++ -0.14125E-004 -0.13567E-002 0.12326E-002
+ -0.66934E-003 0.45864E-003 -0.28062E-003
+ -0.43706E-003 0.34374E-003 -0.56160E-003
+ 0.23427E-003 -0.19776E-003 -0.12917E-003
+@@ -182,7 +182,7 @@
+ -0.11703E-002 0.14706E-002 -0.40144E-003
+ 0.10286E-003 0.45475E-004 -0.49081E-004
+ -0.47357E-004 0.54489E-006 -0.61082E-004
+- 0.65984E-004 -0.69587E-004 -0.10541E-003
++ 0.65984E-004 -0.69588E-004 -0.10541E-003
+ 0.64247E-003 0.25698E-002 0.28005E-002
+ 0.27413E-002 0.12876E-002 -0.75471E-003
+ 0.57492E-004 0.66448E-004 -0.42928E-004
+@@ -229,7 +229,7 @@
+ -0.40783E-002 0.30972E-002 -0.35632E-002
+ -0.14974E-004 0.13258E-002 -0.10864E-002
+ 0.34485E-003 -0.16911E-003 -0.62126E-004
+- 0.72158E-004 -0.22208E-004 0.77266E-004
++ 0.72158E-004 -0.22208E-004 0.77265E-004
+ 0.24040E-003 -0.72533E-003 0.13593E-002
+ -0.16119E-002 0.10078E-001 -0.20050E-001
+ 0.72175E-002 -0.45419E-002 0.45478E-003
+@@ -292,7 +292,7 @@
+ 0.33230E-003 -0.62327E-003 0.36713E-003
+ -0.30819E-002 -0.32037E-003 -0.17162E-002
+ -0.14580E-002 0.46999E-003 -0.97290E-004
+- -0.73333E-004 0.14729E-006 -0.11485E-003
++ -0.73333E-004 0.14727E-006 -0.11485E-003
+ -0.10058E-003 0.62528E-004 -0.17489E-003
+ 0.15221E-003 -0.46879E-003 0.25396E-003
+ -0.52915E-003 -0.27851E-002 0.22929E-002
+@@ -318,7 +318,7 @@
+ -0.68610E-003 0.64051E-003 -0.81356E-003
+ 0.24281E-003 -0.94464E-003 -0.31260E-002
+ 0.48815E-002 -0.32512E-002 -0.12194E-002
+- 0.15282E-002 -0.10747E-002 0.37017E-003
++ 0.15282E-002 -0.10747E-002 0.37016E-003
+ -0.43401E-003 0.37194E-003 0.90390E-003
+ -0.87376E-003 0.10045E-002 -0.10100E-002
+ 0.89048E-003 -0.53634E-003 0.18096E-002
+@@ -355,14 +355,14 @@
+ 0.26923E-003 -0.62333E-003 0.92867E-003
+ -0.23947E-002 0.40142E-002 -0.86299E-002
+ 0.45605E-002 -0.33767E-001 0.48411E-002
+- -0.86790E-002 0.13146E-002 -0.92538E-004
++ -0.86790E-002 0.13146E-002 -0.92539E-004
+ -0.33552E-003 -0.15197E-003 0.54828E-004
+ -0.61954E-003 0.61334E-003 -0.71350E-003
+ 0.88754E-003 -0.46185E-003 -0.11825E-002
+ 0.49261E-002 -0.92336E-002 0.11674E-001
+ -0.57510E-002 0.61122E-002 0.39077E-003
+ -0.16127E-002 0.13002E-002 -0.76188E-003
+- 0.68127E-003 0.46393E-003 -0.60936E-003
++ 0.68127E-003 0.46394E-003 -0.60936E-003
+ 0.83803E-003 -0.13684E-002 0.18949E-002
+ -0.20507E-002 0.86720E-003 0.55761E-002
+ -0.38872E-002 0.87045E-002 0.57034E-003
+@@ -384,7 +384,7 @@
+ 0.14459E-002 -0.36764E-002 -0.16466E-002
+ 0.78190E-003 -0.21388E-003 -0.13391E-003
+ -0.71292E-004 -0.25972E-004 0.81385E-005
+- -0.75784E-005 0.84210E-004 -0.57027E-004
++ -0.75783E-005 0.84210E-004 -0.57027E-004
+ 0.24646E-003 -0.15344E-004 0.44974E-003
+ 0.29483E-002 -0.13186E-002 0.30172E-002
+ 0.14066E-002 -0.51937E-003 0.13804E-003
+@@ -425,7 +425,7 @@
+ 0.15873E-002 -0.26341E-002 0.28432E-002
+ 0.49007E-003 0.10263E-001 -0.44098E-001
+ 0.25985E-003 -0.50604E-002 0.20816E-002
+- -0.97801E-005 -0.13212E-003 -0.22909E-003
++ -0.97796E-005 -0.13212E-003 -0.22909E-003
+ 0.48134E-003 0.52250E-002 -0.61139E-002
+ 0.74868E-002 -0.97022E-002 0.12736E-001
+ -0.13924E-001 0.13569E-001 -0.16048E-001
+@@ -442,13 +442,13 @@
+ -0.17468E-001 0.24222E-001 -0.13107E+000
+ -0.65242E-001 0.19459E-001 -0.38769E-002
+ -0.13998E-002 0.28896E-002 -0.44039E-002
+- 0.52052E-002 0.11744E-002 0.25963E-003
++ 0.52052E-002 0.11744E-002 0.25964E-003
+ -0.21866E-002 0.47172E-002 -0.81182E-002
+ 0.10154E-001 -0.15684E-001 0.18417E-001
+ -0.10597E+000 0.22097E-001 0.78443E-003
+ -0.56097E-002 0.55039E-002 -0.44612E-002
+ 0.32653E-002 -0.22953E-002 -0.13331E-002
+- 0.91243E-003 -0.94485E-004 -0.12826E-002
++ 0.91243E-003 -0.94484E-004 -0.12826E-002
+ 0.43961E-002 -0.78443E-002 0.13464E-001
+ -0.13779E-002 0.40528E-001 -0.22036E-002
+ 0.10425E-001 -0.96531E-003 -0.13430E-002
+@@ -512,13 +512,13 @@
+ 0.11827E-001 -0.45014E-002 0.27467E-002
+ -0.41543E-003 -0.71183E-003 0.52608E-003
+ -0.64382E-003 0.45191E-003 0.50605E-003
+- -0.44980E-003 0.37809E-003 -0.38388E-004
++ -0.44981E-003 0.37809E-003 -0.38389E-004
+ -0.49061E-003 -0.81143E-003 0.86459E-002
+ -0.45388E-002 -0.19539E-001 -0.35704E-002
+- -0.21204E-002 0.67039E-003 0.70119E-003
++ -0.21204E-002 0.67038E-003 0.70119E-003
+ -0.74427E-003 0.55233E-003 -0.45289E-003
+ -0.11702E-002 0.10513E-002 -0.10446E-002
+- 0.48184E-003 -0.52832E-003 0.40688E-002
++ 0.48184E-003 -0.52833E-003 0.40688E-002
+ -0.13663E-001 -0.53287E-002 0.80893E-001
+ 0.13554E-001 0.87640E-003 -0.12860E-002
+ -0.94409E-003 0.13653E-002 -0.14728E-002
+@@ -570,12 +570,12 @@
+ 0.55487E-003 0.57562E-002 -0.85141E-003
+ 0.10230E-001 0.16214E-002 -0.31963E-002
+ 0.16965E-002 -0.39151E-003 0.11883E-003
+- 0.27054E-005 -0.64436E-004 0.29371E-004
++ 0.27053E-005 -0.64436E-004 0.29371E-004
+ -0.24818E-003 0.15603E-003 -0.36597E-003
+ -0.15165E-003 -0.30508E-003 -0.55843E-002
+ 0.25615E-002 -0.87369E-002 -0.12896E-002
+ 0.21029E-002 -0.12728E-002 0.23925E-003
+- -0.20980E-003 -0.40398E-004 -0.37869E-004
++ -0.20980E-003 -0.40397E-004 -0.37869E-004
+ -0.22762E-004 0.97304E-004 -0.13256E-003
+ 0.76121E-004 0.46124E-003 -0.11364E-003
+ 0.51685E-002 -0.25639E-002 0.77172E-002
+@@ -627,7 +627,7 @@
+ -0.13873E-001 0.13771E-001 -0.15353E-001
+ 0.19554E-001 -0.31206E-001 0.64687E-002
+ 0.12878E+000 0.43115E+000 0.18311E+000
+- -0.42341E-001 0.49587E-002 0.50176E-002
++ -0.42341E-001 0.49588E-002 0.50176E-002
+ -0.10381E-001 0.12020E-001 -0.13237E-001
+ -0.18428E-001 0.21596E-001 -0.25230E-001
+ 0.33125E-001 -0.42929E-001 0.59353E-001
+@@ -693,12 +693,12 @@
+ -0.13202E-001 -0.15081E-001 0.28654E-002
+ 0.45947E-002 -0.39497E-002 0.16991E-002
+ -0.85009E-003 0.46037E-003 -0.41389E-003
+- -0.11503E-004 -0.26360E-004 0.13328E-004
++ -0.11503E-004 -0.26361E-004 0.13328E-004
+ 0.44265E-003 -0.10259E-002 -0.89230E-003
+ 0.43360E-002 0.12999E-001 0.67878E-002
+ -0.14383E-001 -0.53637E-003 0.27114E-002
+ -0.14313E-002 0.43554E-003 -0.55232E-004
+- 0.54550E-004 -0.19917E-002 0.19778E-002
++ 0.54549E-004 -0.19917E-002 0.19778E-002
+ -0.22171E-002 0.17858E-002 -0.28501E-002
+ 0.81796E-002 -0.15748E-001 -0.97599E-002
+ 0.11465E-001 0.41396E-001 -0.12368E-001
+@@ -737,7 +737,7 @@
+ 0.33287E-001 -0.21712E-001 0.12598E-001
+ -0.78119E-002 0.22442E-002 -0.20161E-001
+ 0.21504E-001 -0.24273E-001 0.27271E-001
+- -0.28503E-001 0.16461E-001 -0.41419E-004
++ -0.28503E-001 0.16461E-001 -0.41414E-004
+ -0.12990E+000 0.75360E-001 -0.11560E+000
+ -0.19544E-001 0.27969E-001 -0.25346E-001
+ 0.21675E-001 -0.20092E-001 0.19462E-001
+@@ -766,7 +766,7 @@
+ -0.47737E-003 -0.51835E-004 0.58766E-003
+ -0.52596E-003 0.72315E-003 -0.11079E-001
+ -0.25431E-001 -0.12595E-001 0.68054E-002
+- -0.18857E-002 0.60829E-004 0.13868E-003
++ -0.18857E-002 0.60830E-004 0.13868E-003
+ -0.55933E-003 0.34562E-003 -0.15041E-003
+ 0.80074E-004 -0.32555E-003 0.67842E-003
+ -0.15202E-002 0.14050E-002 -0.80795E-003
+@@ -798,7 +798,7 @@
+ -0.27721E-002 0.29741E-002 -0.49061E-003
+ -0.72566E-002 0.14443E-001 -0.11927E-001
+ 0.82051E-001 0.95570E-002 0.10700E-002
+- -0.33922E-004 0.14627E-003 0.88681E-003
++ -0.33919E-004 0.14627E-003 0.88681E-003
+ -0.13081E-002 0.21604E-002 0.33550E-002
+ -0.40840E-002 0.36977E-002 -0.35055E-002
+ 0.41269E-003 0.67781E-002 0.27814E-002
+@@ -892,9 +892,9 @@
+ 0.63672E-002 -0.57904E-002 0.46308E-002
+ -0.36396E-002 -0.26400E-002 0.17391E-002
+ -0.14131E-002 0.78246E-003 -0.61051E-003
+- 0.63366E-003 0.24693E-001 0.29656E-001
++ 0.63365E-003 0.24693E-001 0.29656E-001
+ 0.13438E+000 0.27901E-001 -0.22954E-001
+- 0.12869E-001 -0.76758E-002 0.58582E-002
++ 0.12869E-001 -0.76757E-002 0.58582E-002
+ -0.46806E-002 0.36183E-002 0.68827E-002
+ -0.57133E-002 0.56860E-002 -0.66211E-002
+ 0.99125E-002 -0.15797E-001 -0.52503E-002
+@@ -908,7 +908,7 @@
+ -0.45900E-001 0.36916E-001 -0.30142E-001
+ 0.26465E-001 0.50030E-001 -0.48827E-001
+ 0.51561E-001 -0.58944E-001 0.74179E-001
+- -0.94716E-001 0.36687E-001 -0.46168E+000
++ -0.94715E-001 0.36687E-001 -0.46168E+000
+ -0.10000E+001 -0.17472E+000 0.15670E+000
+ -0.98122E-001 0.78741E-001 -0.64288E-001
+ 0.58448E-001 -0.52472E-001 0.59653E-001
+@@ -931,7 +931,7 @@
+ -0.21260E-001 0.26058E-001 -0.35050E-001
+ 0.44521E-001 -0.58930E-001 -0.46967E-002
+ -0.62950E+000 -0.10000E+001 -0.58023E+000
+- 0.84660E-001 -0.20803E-001 -0.24936E-003
++ 0.84661E-001 -0.20803E-001 -0.24937E-003
+ -0.56711E-002 0.77515E-002 -0.12967E-001
+ -0.33634E-001 0.36370E-001 -0.40813E-001
+ 0.52730E-001 -0.69416E-001 0.11055E+000
+@@ -940,7 +940,7 @@
+ -0.50993E-001 0.42341E-001 -0.35645E-001
+ 0.34334E-001 0.13016E-002 -0.18908E-002
+ 0.21484E-002 -0.35223E-002 0.43357E-002
+- -0.52692E-002 -0.30889E-001 -0.10458E+000
++ -0.52692E-002 -0.30890E-001 -0.10458E+000
+ 0.59570E-001 -0.10076E+000 -0.14057E-001
+ 0.10367E-001 -0.60574E-002 0.13132E-002
+ 0.10164E-003 -0.11144E-002 -0.80129E-003
+@@ -1070,7 +1070,7 @@
+ -0.27848E-002 0.34661E-002 -0.63123E-002
+ 0.10345E-001 -0.10633E-001 -0.26698E-001
+ 0.37697E-001 -0.14235E-001 -0.27804E-003
+- -0.11597E-002 0.47695E-005 0.21900E-003
++ -0.11597E-002 0.47700E-005 0.21900E-003
+ -0.12610E-002 0.14246E-002 0.19513E-002
+ -0.22230E-002 0.25913E-002 -0.34398E-002
+ 0.62826E-002 -0.11033E-001 0.11857E-001
+@@ -1096,7 +1096,7 @@
+ 0.17629E-001 -0.16578E-001 0.17704E-001
+ -0.21181E-001 0.31547E-001 -0.44986E-001
+ 0.53814E-001 0.61709E-001 0.41895E-001
+- -0.58391E-002 0.71644E-001 -0.50130E-001
++ -0.58392E-002 0.71644E-001 -0.50130E-001
+ 0.37052E-001 -0.27166E-001 0.23023E-001
+ -0.18847E-001 -0.57070E-002 0.32394E-002
+ -0.47133E-002 0.71203E-002 -0.17409E-001
+@@ -1107,7 +1107,7 @@
+ 0.49908E-002 0.25980E-002 -0.10390E-001
+ 0.32835E-001 -0.45644E-001 0.28388E-001
+ 0.32651E+000 0.74550E+000 0.24253E-001
+- 0.23336E-001 -0.11200E-002 -0.67666E-003
++ 0.23336E-001 -0.11200E-002 -0.67665E-003
+ 0.71472E-002 -0.62491E-002 0.83474E-002
+ 0.87319E-002 -0.53331E-002 -0.65393E-002
+ 0.88129E-002 -0.14593E-001 -0.30915E-001
+@@ -1176,7 +1176,7 @@
+ -0.12868E-002 0.13040E-002 -0.18307E-002
+ 0.20870E-002 -0.20382E-002 -0.55964E-003
+ 0.10698E-001 -0.18290E-001 -0.17347E-001
+- -0.20057E-001 0.63536E-002 0.17849E-002
++ -0.20057E-001 0.63535E-002 0.17849E-002
+ -0.22938E-002 0.16177E-002 -0.12481E-002
+ 0.13489E-002 0.17604E-002 -0.20387E-002
+ 0.25830E-002 -0.26311E-002 0.23498E-002
+@@ -1185,10 +1185,10 @@
+ 0.18402E-003 0.20794E-002 -0.11926E-002
+ 0.85856E-003 -0.15532E-002 -0.58085E-003
+ 0.92325E-003 -0.15671E-002 0.13684E-002
+- -0.42686E-004 -0.63990E-002 0.22899E-001
++ -0.42684E-004 -0.63990E-002 0.22899E-001
+ -0.20083E-001 -0.31172E-001 -0.30073E-001
+ 0.24308E-001 -0.79050E-002 0.21845E-002
+- -0.11634E-002 0.88798E-003 -0.46213E-005
++ -0.11634E-002 0.88799E-003 -0.46216E-005
+ -0.36939E-002 0.25957E-002 -0.19040E-002
+ 0.22213E-002 -0.44518E-002 0.13471E-001
+ -0.31065E-001 0.13930E-001 0.26443E-001
+@@ -1216,7 +1216,7 @@
+ 0.12872E+000 -0.22970E+000 0.37029E-001
+ -0.71820E-002 -0.61730E-002 0.60023E-002
+ -0.62195E-002 0.33179E-002 0.35063E-002
+- -0.15743E-002 0.24932E-003 0.59944E-003
++ -0.15743E-002 0.24932E-003 0.59943E-003
+ 0.50805E-002 -0.22435E-001 0.78080E-001
+ -0.11217E+000 0.27769E+000 0.13301E-001
+ 0.48142E-001 -0.25712E-001 0.18216E-001
+@@ -1234,8 +1234,8 @@
+ -0.37349E-002 0.40923E-002 0.33100E-003
+ -0.73044E-003 0.14901E-002 -0.27451E-002
+ 0.39569E-002 -0.39194E-002 -0.22396E-002
+- 0.69572E-002 0.15456E-001 0.68766E-003
+- -0.55836E-002 -0.59161E-004 0.28366E-003
++ 0.69572E-002 0.15456E-001 0.68765E-003
++ -0.55836E-002 -0.59162E-004 0.28366E-003
+ 0.59373E-005 -0.29036E-003 -0.28278E-003
+ -0.93105E-004 0.55976E-004 -0.22540E-003
+ 0.63416E-003 -0.86325E-003 -0.56872E-003
+@@ -1259,13 +1259,13 @@
+ -0.21463E-002 -0.95702E-003 0.16305E-002
+ -0.48868E-003 0.37838E-003 -0.98649E-004
+ 0.17415E-003 -0.39204E-003 0.40478E-003
+- -0.47636E-003 0.25159E-003 0.32794E-005
++ -0.47636E-003 0.25159E-003 0.32795E-005
+ -0.27191E-003 -0.25541E-002 0.80677E-002
+ 0.23348E-001 0.22086E-002 0.10997E-002
+ -0.16811E-002 0.61473E-003 -0.17759E-003
+ -0.60773E-004 0.91723E-004 0.50744E-003
+ -0.63597E-003 0.55533E-003 -0.33123E-003
+- -0.68908E-005 0.25682E-003 0.26735E-002
++ -0.68909E-005 0.25682E-003 0.26735E-002
+ -0.91015E-002 -0.22651E-001 -0.42938E-002
+ -0.10604E-002 0.20136E-002 -0.89377E-003
+ 0.20609E-003 0.28182E-004 -0.21460E-003
+@@ -1273,7 +1273,7 @@
+ 0.63594E-004 0.46567E-003 -0.90712E-003
+ -0.31638E-002 0.94292E-002 0.26064E-001
+ 0.58926E-002 0.14824E-003 -0.26379E-002
+- 0.13364E-002 -0.27849E-003 0.67584E-007
++ 0.13364E-002 -0.27849E-003 0.67664E-007
+ 0.21329E-003 0.75173E-003 -0.70904E-003
+ 0.24518E-003 -0.31473E-003 -0.44500E-003
+ -0.26955E-003 0.56039E-002 -0.11484E-001
+@@ -1298,7 +1298,7 @@
+ -0.74153E-002 0.51462E-002 -0.85486E-002
+ 0.10486E-001 -0.12082E-001 0.13714E-001
+ -0.11389E-001 0.19279E-002 0.36232E-001
+- -0.48818E-001 0.17388E+000 -0.35474E-002
++ -0.48818E-001 0.17388E+000 -0.35475E-002
+ -0.97685E-002 0.97677E-002 -0.64763E-002
+ 0.62604E-002 -0.67795E-002 0.78175E-002
+ 0.18823E-001 -0.16976E-001 0.13255E-001
+@@ -1310,7 +1310,7 @@
+ -0.59406E-002 0.53394E-002 -0.13726E-002
+ -0.50565E-002 0.17728E-001 0.83748E-001
+ -0.37446E-001 0.12400E+000 -0.15472E-001
+- -0.38171E-003 0.54899E-002 -0.24982E-002
++ -0.38172E-003 0.54899E-002 -0.24982E-002
+ -0.85504E-004 0.30624E-002 0.30068E-002
+ -0.46418E-002 0.65796E-002 -0.90030E-002
+ 0.10723E-001 -0.66793E-002 -0.19808E-001
+@@ -1330,7 +1330,7 @@
+ 0.99945E-003 -0.12217E-002 0.75822E-003
+ -0.58237E-003 0.70553E-004 0.47287E-004
+ -0.92834E-003 0.22845E-002 -0.35398E-003
+- -0.49955E-002 -0.32604E-001 0.29414E-003
++ -0.49955E-002 -0.32604E-001 0.29415E-003
+ 0.26270E-002 0.12013E-003 0.18530E-003
+ -0.67394E-003 0.78294E-003 -0.77240E-003
+ -0.39514E-003 0.36294E-003 -0.34122E-003
+@@ -1340,7 +1340,7 @@
+ -0.43384E-003 0.62665E-003 -0.53140E-003
+ 0.35037E-003 0.11598E-003 -0.33590E-004
+ 0.77756E-004 -0.11361E-003 0.29272E-004
+- 0.53713E-003 0.24967E-002 -0.95835E-002
++ 0.53714E-003 0.24967E-002 -0.95835E-002
+ -0.23813E-001 -0.28729E-002 0.35840E-003
+ 0.75277E-003 0.14870E-003 -0.18813E-003
+ 0.13874E-003 0.53665E-005 -0.82118E-004
+@@ -1383,7 +1383,7 @@
+ 0.14890E-002 -0.11973E-002 0.75295E-003
+ -0.10473E-002 0.10737E-002 -0.99465E-003
+ 0.10667E-002 0.18484E-003 -0.15909E-002
+- -0.44370E-003 0.65566E-002 0.16554E-001
++ -0.44371E-003 0.65566E-002 0.16554E-001
+ 0.15235E-001 -0.16429E-001 0.79078E-002
+ -0.29231E-002 0.16543E-002 -0.11884E-002
+ 0.10008E-002 0.22131E-002 -0.11833E-002
+@@ -1395,7 +1395,7 @@
+ -0.34902E-002 0.51729E-002 -0.78836E-002
+ 0.96755E-002 -0.80416E-002 -0.15180E-001
+ 0.48776E-001 -0.11424E+000 0.12364E-001
+- 0.32693E-002 -0.19227E-002 -0.65699E-004
++ 0.32693E-002 -0.19227E-002 -0.65698E-004
+ 0.16871E-003 0.29036E-004 -0.95792E-003
+ -0.31449E-002 0.21159E-002 -0.34442E-003
+ 0.30292E-003 0.22482E-002 -0.56246E-002
+@@ -1476,10 +1476,10 @@
+ -0.15578E-002 0.14449E-002 -0.13015E-002
+ 0.35158E-002 0.18690E-001 0.71087E-002
+ -0.33624E-002 -0.86947E-004 0.13615E-002
+- -0.25872E-003 -0.28246E-003 0.49430E-003
++ -0.25873E-003 -0.28246E-003 0.49430E-003
+ 0.20061E-002 -0.22055E-002 0.25174E-002
+ -0.32849E-002 0.24711E-002 -0.12430E-002
+- 0.31615E-004 -0.16073E-002 -0.13936E-001
++ 0.31616E-004 -0.16073E-002 -0.13936E-001
+ -0.78198E-002 0.10677E-001 -0.53430E-002
+ 0.19467E-002 -0.20078E-002 0.18727E-002
+ -0.18399E-002 -0.24069E-002 0.18144E-002
+@@ -1523,13 +1523,13 @@
+ -0.57937E-004 0.38925E-004 -0.25529E-003
+ -0.80223E-004 0.62244E-003 -0.92409E-003
+ -0.50111E-002 -0.15028E-001 -0.48849E-002
+- 0.10809E-002 0.94785E-003 -0.90578E-003
++ 0.10809E-002 0.94785E-003 -0.90579E-003
+ 0.21632E-003 0.48547E-004 -0.10362E-003
+ 0.65746E-004 -0.57485E-004 -0.10330E-003
+ 0.17296E-003 -0.10843E-003 -0.17317E-003
+ 0.24191E-003 0.53215E-002 0.12629E-001
+ 0.39700E-002 -0.84627E-004 -0.65947E-003
+- 0.46649E-003 -0.16035E-003 0.28558E-005
++ 0.46649E-003 -0.16035E-003 0.28557E-005
+ -0.74149E-004 -0.74431E-004 0.89221E-004
+ 0.14291E-004 -0.10742E-003 0.75570E-004
+ 0.32302E-003 -0.45917E-003 -0.47563E-002
+@@ -1555,7 +1555,7 @@
+ -0.24567E-003 0.25650E-003 -0.22210E-003
+ 0.35310E-003 -0.54501E-003 0.49667E-003
+ 0.46922E-002 0.53681E-003 0.53276E-002
+- -0.25038E-004 -0.47621E-003 0.25061E-003
++ -0.25039E-004 -0.47621E-003 0.25061E-003
+ -0.14151E-003 0.25689E-003 -0.23625E-003
+ -0.39925E-003 0.24288E-003 -0.45878E-003
+ 0.19103E-003 -0.46845E-003 0.39169E-003
+@@ -1602,7 +1602,7 @@
+ -0.42312E-002 0.26362E-002 0.71520E-003
+ -0.20235E-003 -0.89467E-004 0.11620E-002
+ -0.32420E-002 0.52388E-002 0.58477E-003
+- -0.67996E-002 0.56024E-005 0.55241E-003
++ -0.67996E-002 0.56018E-005 0.55241E-003
+ 0.13967E-001 -0.58142E-002 0.37372E-002
+ -0.25763E-002 0.19323E-002 -0.10220E-002
+ -0.13957E-003 0.89996E-004 -0.29649E-003
+@@ -1726,7 +1726,7 @@
+ -0.65025E-004 0.20691E-004 0.20988E-004
+ 0.29987E-003 -0.69971E-003 -0.25561E-002
+ -0.47408E-002 -0.17716E-002 -0.10624E-002
+- 0.72365E-003 -0.12367E-003 0.91100E-004
++ 0.72365E-003 -0.12367E-003 0.91099E-004
+ -0.11286E-003 0.65700E-004 -0.38225E-004
+ -0.18443E-004 -0.10315E-004 -0.41438E-004
+ -0.23530E-004 -0.27346E-003 0.79396E-003
+diff -urN amber11.orig/AmberTools/test/nab/huv.O.4.dx.check amber11/AmberTools/test/nab/huv.O.4.dx.check
+--- amber11.orig/AmberTools/test/nab/huv.O.4.dx.check 2010-04-07 16:55:55.000000000 +0400
++++ amber11/AmberTools/test/nab/huv.O.4.dx.check 2011-03-08 16:38:44.000000000 +0300
+@@ -42,10 +42,10 @@
+ -0.26664E-002 0.76462E-002 -0.65646E-002
+ 0.65013E-002 -0.98756E-002 0.51997E-002
+ -0.15412E-002 0.14894E-002 -0.58327E-003
+- 0.74208E-003 -0.46330E-005 0.26925E-003
++ 0.74208E-003 -0.46331E-005 0.26925E-003
+ -0.21081E-003 0.19041E-003 -0.70176E-003
+ 0.40604E-002 -0.59967E-002 0.25324E-001
+- -0.58949E-001 0.48671E-001 -0.63192E-002
++ -0.58949E-001 0.48671E-001 -0.63193E-002
+ -0.14555E-002 0.17515E-002 -0.12653E-002
+ 0.59124E-003 -0.44081E-004 -0.46024E-003
+ -0.33221E-003 0.43262E-003 -0.73462E-003
+@@ -55,10 +55,10 @@
+ 0.29042E-002 -0.18964E-002 0.77617E-003
+ -0.18302E-003 0.26483E-004 0.13553E-002
+ -0.75012E-003 0.17059E-002 -0.70949E-003
+- 0.15620E-001 0.67864E-002 -0.96628E-001
++ 0.15620E-001 0.67863E-002 -0.96628E-001
+ -0.15238E-001 -0.64540E-002 0.11108E-001
+ -0.71349E-002 0.42594E-002 -0.24297E-002
+- 0.14742E-002 0.50969E-003 -0.14490E-003
++ 0.14742E-002 0.50969E-003 -0.14489E-003
+ -0.15852E-002 0.26525E-002 -0.54371E-002
+ 0.63513E-002 -0.19991E-001 0.88607E-003
+ -0.90619E-001 -0.26234E-001 0.54685E-002
+@@ -74,7 +74,7 @@
+ -0.67192E-002 0.20436E-002 0.15087E-002
+ -0.12351E-001 -0.10538E-001 0.30347E-002
+ -0.24133E-002 0.57521E-003 -0.89346E-003
+- -0.19758E-003 0.85846E-004 0.21885E-003
++ -0.19759E-003 0.85846E-004 0.21885E-003
+ 0.59427E-004 0.40476E-003 -0.45294E-003
+ 0.17127E-002 0.22700E-002 -0.36055E-002
+ -0.94861E-002 -0.31257E-002 0.59927E-002
+@@ -89,13 +89,13 @@
+ -0.21190E-003 0.38823E-003 -0.99192E-004
+ 0.14844E-002 -0.48467E-002 -0.10472E-001
+ -0.56834E-002 0.17312E-002 0.44869E-003
+- 0.59430E-004 -0.99269E-004 0.22702E-003
++ 0.59429E-004 -0.99269E-004 0.22702E-003
+ -0.46728E-004 -0.99733E-004 -0.59632E-005
+ -0.15996E-003 0.21334E-003 -0.60938E-003
+ 0.46539E-003 -0.16741E-002 0.53916E-002
+ 0.73981E-002 0.59857E-002 -0.16663E-002
+ 0.12223E-003 -0.48450E-003 0.17812E-003
+- -0.11241E-003 -0.53881E-005 0.24248E-003
++ -0.11241E-003 -0.53882E-005 0.24248E-003
+ -0.20069E-003 0.17999E-003 -0.24877E-003
+ 0.30370E-003 -0.44718E-003 0.73307E-003
+ -0.42363E-002 -0.80946E-002 -0.48617E-002
+@@ -172,7 +172,7 @@
+ 0.18498E-002 -0.73133E-003 0.88568E-003
+ -0.14499E-003 -0.13914E-004 -0.23519E-003
+ 0.28978E-003 -0.69524E-003 0.99658E-003
+- -0.19354E-002 -0.38389E-003 -0.15309E-003
++ -0.19354E-002 -0.38389E-003 -0.15308E-003
+ 0.11672E-001 0.37757E-002 -0.51548E-002
+ -0.91017E-003 0.87189E-003 -0.57806E-003
+ 0.16146E-003 -0.22842E-003 0.37037E-004
+@@ -181,7 +181,7 @@
+ -0.96518E-003 -0.13418E-001 -0.54575E-002
+ 0.20411E-002 0.10281E-002 -0.33249E-003
+ 0.17999E-003 0.19469E-003 0.23293E-004
+- -0.45970E-005 -0.10166E-003 0.26448E-004
++ -0.45969E-005 -0.10166E-003 0.26448E-004
+ -0.60871E-004 0.21195E-003 -0.53324E-003
+ 0.48474E-003 0.57259E-003 0.14242E-001
+ 0.41534E-002 -0.65370E-003 -0.53279E-003
+@@ -259,7 +259,7 @@
+ 0.23319E-002 -0.18642E-002 0.17647E-002
+ -0.49400E-003 0.48144E-003 0.46341E-002
+ 0.17097E-001 0.13221E-001 0.13122E-001
+- 0.88689E-002 -0.14616E-002 0.73569E-004
++ 0.88689E-002 -0.14616E-002 0.73570E-004
+ 0.16176E-002 -0.17425E-002 0.23255E-002
+ 0.10067E-002 -0.10794E-002 0.61036E-003
+ -0.79346E-003 -0.18114E-003 0.10066E-002
+@@ -296,7 +296,7 @@
+ -0.79564E-003 0.73627E-003 -0.10642E-002
+ 0.89864E-003 -0.15015E-002 0.74366E-003
+ -0.10995E-002 -0.91302E-003 -0.14389E-002
+- -0.62659E-002 0.16322E-003 0.39747E-003
++ -0.62659E-002 0.16322E-003 0.39746E-003
+ -0.93576E-003 0.27055E-003 -0.70408E-003
+ 0.55227E-003 0.91932E-003 -0.80784E-003
+ 0.10504E-002 -0.99128E-003 0.13799E-002
+@@ -333,7 +333,7 @@
+ 0.11332E-002 -0.36329E-002 0.45738E-002
+ -0.64277E-002 0.84257E-002 -0.10759E-001
+ 0.10170E-001 -0.10632E-001 -0.65535E-002
+- 0.50679E-001 -0.70621E-001 0.91916E-002
++ 0.50679E-001 -0.70621E-001 0.91917E-002
+ 0.32587E-002 -0.38023E-002 0.34644E-002
+ -0.32950E-002 0.30559E-002 -0.13480E-003
+ 0.19650E-002 -0.34448E-002 0.59077E-002
+@@ -364,7 +364,7 @@
+ 0.19684E-002 -0.10859E-002 0.12621E-002
+ -0.43675E-003 0.74924E-003 -0.10527E-002
+ 0.16471E-002 -0.24027E-002 0.31736E-002
+- -0.29570E-002 -0.47347E-004 -0.17740E-002
++ -0.29570E-002 -0.47348E-004 -0.17740E-002
+ 0.12840E-002 0.13132E-001 -0.86557E-002
+ -0.65506E-003 0.21598E-002 -0.13016E-002
+ 0.84158E-003 -0.68238E-003 -0.21792E-003
+@@ -387,7 +387,7 @@
+ -0.60950E-003 0.93571E-003 -0.76457E-003
+ 0.12784E-002 -0.70392E-003 0.15756E-002
+ -0.13275E-003 0.45733E-002 0.69172E-002
+- -0.41320E-003 -0.14128E-004 0.54688E-003
++ -0.41320E-003 -0.14127E-004 0.54688E-003
+ -0.19076E-004 0.49968E-003 -0.38501E-003
+ 0.43234E-003 -0.22011E-003 -0.83980E-005
+ 0.30076E-003 -0.68470E-003 0.24934E-002
+@@ -507,13 +507,13 @@
+ 0.78218E-002 -0.41701E-002 -0.79742E-003
+ 0.32867E-002 -0.37463E-002 0.34769E-002
+ -0.26528E-002 -0.24349E-002 0.21354E-002
+- -0.24623E-002 0.90930E-003 0.54718E-003
++ -0.24623E-002 0.90930E-003 0.54717E-003
+ -0.17165E-002 0.28721E-003 -0.10121E-001
+ 0.35717E-001 -0.26042E-002 0.34331E-002
+ -0.19519E-003 -0.26581E-002 0.27915E-002
+ -0.33505E-002 0.24742E-002 0.26514E-002
+ -0.19360E-002 0.14202E-002 -0.31884E-003
+- -0.74542E-003 -0.87196E-003 0.41982E-002
++ -0.74541E-003 -0.87196E-003 0.41982E-002
+ 0.13483E-001 -0.64738E-001 -0.11160E-001
+ 0.55671E-003 -0.98428E-003 0.33064E-002
+ -0.35116E-002 0.31262E-002 -0.26684E-002
+@@ -524,7 +524,7 @@
+ -0.22229E-002 0.28090E-002 -0.29004E-002
+ 0.20027E-002 -0.27248E-002 0.44242E-002
+ -0.69761E-002 0.87857E-002 -0.91317E-002
+- 0.23035E-002 -0.51691E-002 0.21490E-001
++ 0.23035E-002 -0.51692E-002 0.21490E-001
+ -0.37282E-001 -0.18265E+000 0.58260E-001
+ -0.16382E-001 0.57561E-002 -0.21236E-002
+ 0.14273E-003 0.11916E-002 0.90109E-003
+@@ -556,7 +556,7 @@
+ 0.12840E-001 -0.78465E-002 0.66047E-002
+ -0.46569E-002 0.17062E-002 -0.20716E-002
+ 0.25710E-002 -0.29188E-002 0.15776E-002
+- 0.10926E-002 -0.65054E-002 -0.64167E-004
++ 0.10926E-002 -0.65054E-002 -0.64166E-004
+ 0.42370E-002 0.33049E-001 -0.26709E-001
+ 0.72769E-002 -0.60839E-004 -0.13599E-002
+ 0.14205E-002 -0.14190E-002 -0.17898E-002
+@@ -589,7 +589,7 @@
+ -0.11534E-002 -0.28262E-003 -0.41205E-003
+ 0.12794E-002 -0.27790E-002 0.41709E-002
+ -0.68711E-002 0.84175E-002 -0.75839E-002
+- -0.28437E-001 0.50508E-003 0.41340E-002
++ -0.28437E-001 0.50507E-003 0.41340E-002
+ -0.61449E-003 -0.18493E-002 0.12523E-002
+ -0.11168E-002 0.69345E-003 -0.83917E-004
+ 0.57404E-003 -0.17705E-002 0.28814E-002
+@@ -611,14 +611,14 @@
+ -0.13675E-002 0.26363E-002 -0.43034E-002
+ 0.41848E-002 0.12480E-002 -0.36641E-002
+ -0.34640E-001 0.87778E-001 0.58409E-001
+- -0.21333E-001 0.74525E-002 -0.48739E-002
++ -0.21333E-001 0.74524E-002 -0.48739E-002
+ 0.30753E-002 -0.18387E-002 0.69893E-003
+- 0.71286E-003 0.44580E-003 -0.24335E-002
+- 0.43811E-002 -0.38330E-002 -0.13636E-002
++ 0.71285E-003 0.44580E-003 -0.24335E-002
++ 0.43812E-002 -0.38330E-002 -0.13635E-002
+ -0.13480E-001 0.11325E+000 -0.29436E+000
+ -0.10004E+000 0.41518E-001 -0.16200E-001
+ 0.94931E-002 -0.61992E-002 0.43081E-002
+- -0.25405E-002 -0.34159E-002 0.55821E-003
++ -0.25405E-002 -0.34159E-002 0.55820E-003
+ 0.27477E-002 -0.42526E-002 0.30568E-002
+ 0.47572E-002 0.23098E-001 -0.11741E+000
+ 0.20977E+000 0.38183E+000 -0.15864E+000
+@@ -640,11 +640,11 @@
+ -0.21429E+000 -0.70469E-001 0.64050E-001
+ -0.48755E-001 0.39460E-001 -0.31552E-001
+ 0.27718E-001 -0.23853E-001 -0.11746E-002
+- -0.76642E-004 0.19535E-002 -0.28967E-002
++ -0.76641E-004 0.19535E-002 -0.28967E-002
+ 0.23194E-002 0.14434E-001 -0.39994E-001
+ 0.20057E+000 -0.14250E+000 0.15546E+000
+ -0.10132E-001 -0.19003E-002 0.31489E-002
+- -0.13663E-003 -0.61045E-003 0.13419E-002
++ -0.13663E-003 -0.61046E-003 0.13419E-002
+ -0.56599E-002 0.65318E-002 -0.99441E-002
+ 0.14290E-001 -0.21240E-001 0.25559E-001
+ -0.26500E-001 -0.45351E-001 0.12464E+000
+@@ -654,7 +654,7 @@
+ -0.67183E-003 -0.17567E-002 0.59214E-002
+ -0.10795E-001 0.19998E-001 0.21432E-003
+ -0.57072E-001 -0.26436E-001 0.40361E-001
+- -0.15950E-001 0.39954E-002 0.38634E-004
++ -0.15950E-001 0.39954E-002 0.38633E-004
+ -0.19542E-002 0.20302E-002 0.41282E-002
+ -0.37590E-002 0.25828E-002 -0.18860E-002
+ 0.84274E-003 0.59538E-003 -0.40063E-002
+@@ -695,7 +695,7 @@
+ 0.36780E-002 -0.41785E-002 0.43203E-002
+ 0.67542E-002 -0.67533E-002 0.79253E-002
+ -0.75232E-002 0.71990E-002 -0.10331E-001
+- 0.88066E-002 0.69559E-002 0.27927E-001
++ 0.88065E-002 0.69559E-002 0.27927E-001
+ -0.45171E-001 0.11785E-001 -0.37993E-002
+ 0.44794E-002 -0.60610E-002 0.70033E-002
+ -0.62684E-002 -0.97638E-002 0.97810E-002
+@@ -730,7 +730,7 @@
+ -0.28215E+000 0.56642E+000 0.92065E+000
+ 0.10006E+001 -0.46958E+000 0.29382E+000
+ -0.20618E+000 0.16462E+000 -0.13004E+000
+- 0.10753E+000 -0.15069E-002 0.65807E-003
++ 0.10753E+000 -0.15069E-002 0.65808E-003
+ -0.59134E-002 0.17916E-001 -0.43687E-001
+ 0.85179E-001 -0.72107E-001 0.17888E+000
+ 0.27398E+000 0.17046E+000 -0.12239E+000
+@@ -805,7 +805,7 @@
+ -0.92333E-001 -0.73061E-001 -0.12402E+000
+ 0.49643E-001 -0.24501E-001 0.12081E-001
+ -0.77686E-002 0.65912E-002 -0.68733E-002
+- -0.52386E-001 0.55294E-001 -0.60917E-001
++ -0.52386E-001 0.55294E-001 -0.60918E-001
+ 0.72284E-001 -0.90668E-001 0.13640E+000
+ -0.30725E+000 0.68114E+000 -0.63520E+000
+ 0.69895E+000 -0.30705E+000 0.16706E+000
+@@ -815,7 +815,7 @@
+ -0.16169E+000 0.42947E+000 -0.10000E+001
+ -0.10000E+001 -0.10000E+001 0.34773E+000
+ -0.16448E+000 0.95838E-001 -0.65437E-001
+- 0.53108E-001 -0.49594E-001 0.10228E-004
++ 0.53108E-001 -0.49594E-001 0.10227E-004
+ -0.83130E-002 0.19382E-001 -0.43694E-001
+ 0.82990E-001 -0.15068E+000 0.19264E+000
+ -0.10000E+001 -0.10000E+001 -0.10000E+001
+@@ -853,7 +853,7 @@
+ -0.15840E+000 0.15063E+000 -0.97388E-001
+ -0.22784E-002 0.85043E-002 -0.62997E-002
+ 0.44880E-002 -0.39095E-002 0.45371E-002
+- 0.70889E-004 -0.68019E-003 0.59256E-003
++ 0.70888E-004 -0.68019E-003 0.59256E-003
+ -0.84557E-004 -0.36226E-002 0.15213E-001
+ -0.31110E-001 0.13861E+000 -0.15051E+000
+ 0.81020E-001 -0.11901E-001 0.36571E-002
+@@ -880,10 +880,10 @@
+ -0.36432E+000 0.48476E-001 -0.13337E-001
+ -0.85939E-003 0.62937E-002 -0.90302E-002
+ 0.96864E-002 -0.10054E-001 -0.12074E-001
+- 0.12686E-001 -0.13788E-001 0.15535E-001
++ 0.12686E-001 -0.13788E-001 0.15534E-001
+ -0.12609E-001 0.43721E-002 0.38811E-001
+ -0.54071E-002 0.36037E+000 -0.26901E-001
+- -0.91861E-004 0.75691E-002 -0.10423E-001
++ -0.91871E-004 0.75691E-002 -0.10423E-001
+ 0.13325E-001 -0.12466E-001 0.12184E-001
+ 0.16486E-001 -0.16264E-001 0.18217E-001
+ -0.18145E-001 0.15178E-001 -0.90728E-002
+@@ -943,7 +943,7 @@
+ -0.29396E-001 -0.11815E-001 -0.23817E+000
+ -0.18515E+000 -0.25452E+000 0.27722E-001
+ 0.16855E-002 -0.72308E-002 0.20876E-002
+- 0.64586E-003 -0.38825E-002 0.21534E-002
++ 0.64585E-003 -0.38825E-002 0.21535E-002
+ 0.21199E-003 -0.19208E-002 0.42601E-002
+ -0.22560E-002 -0.69878E-002 0.71728E-001
+ 0.78877E-002 0.44965E+000 -0.21828E-001
+@@ -1064,7 +1064,7 @@
+ 0.62403E-002 -0.60207E-002 0.73668E-002
+ -0.70398E-002 0.11315E-001 -0.95645E-002
+ -0.32328E-002 0.87432E-001 -0.15443E+000
+- 0.46011E-001 -0.18490E-003 -0.10438E-003
++ 0.46011E-001 -0.18489E-003 -0.10438E-003
+ 0.37293E-002 -0.27929E-002 0.52303E-002
+ -0.50491E-002 -0.64016E-002 0.64120E-002
+ -0.66729E-002 0.70889E-002 -0.10324E-001
+@@ -1089,7 +1089,7 @@
+ -0.29061E-001 0.21213E-001 -0.17088E-001
+ 0.15692E-001 -0.12454E-001 -0.16919E-001
+ 0.14774E-001 -0.13566E-001 0.14799E-001
+- -0.20251E-001 0.21467E-001 0.51689E-002
++ -0.20251E-001 0.21467E-001 0.51690E-002
+ -0.17781E+000 0.16897E+000 -0.17823E-001
+ -0.62278E-001 0.48487E-001 -0.35890E-001
+ 0.27828E-001 -0.25327E-001 0.20069E-001
+@@ -1107,7 +1107,7 @@
+ -0.22781E-001 0.41204E-001 -0.58124E-001
+ 0.92982E-001 -0.99577E-001 0.51029E-001
+ 0.38111E+000 0.12849E+001 -0.41711E-001
+- 0.46704E-001 -0.59395E-002 0.38283E-002
++ 0.46704E-001 -0.59395E-002 0.38284E-002
+ 0.24958E-002 0.34276E-002 -0.52601E-002
+ -0.10267E-001 0.31273E-001 -0.64242E-001
+ 0.80909E-001 -0.99093E-001 0.32420E-001
+@@ -1144,13 +1144,13 @@
+ -0.40730E-002 0.49874E-002 -0.73690E-002
+ 0.73535E-002 -0.95872E-002 0.77701E-002
+ 0.63260E-002 -0.93757E-001 0.13558E+000
+- -0.89965E-001 0.17086E-001 -0.10569E-001
++ -0.89964E-001 0.17086E-001 -0.10569E-001
+ 0.42904E-002 -0.19884E-002 -0.52517E-003
+ 0.16988E-002 0.51231E-002 -0.58474E-002
+ 0.72663E-002 -0.82602E-002 0.11856E-001
+ -0.10246E-001 -0.30199E-002 0.86203E-001
+ -0.14974E+000 0.68805E-001 -0.10227E-001
+- 0.55756E-002 -0.95949E-004 -0.69091E-003
++ 0.55756E-002 -0.95950E-004 -0.69091E-003
+ 0.22362E-002 -0.35971E-002 -0.60713E-002
+ 0.60472E-002 -0.79022E-002 0.78322E-002
+ -0.12783E-001 0.10462E-001 0.31255E-002
+@@ -1260,7 +1260,7 @@
+ 0.10679E-002 -0.90389E-003 0.16602E-002
+ -0.11913E-002 -0.20977E-002 0.20942E-002
+ -0.18004E-002 0.16284E-002 -0.18577E-002
+- 0.22835E-002 -0.67831E-002 0.25191E-004
++ 0.22835E-002 -0.67831E-002 0.25192E-004
+ 0.76945E-001 -0.45030E-002 -0.18644E-002
+ -0.90606E-004 -0.93679E-003 0.16082E-002
+ -0.17131E-002 0.17442E-002 0.26104E-002
+@@ -1381,7 +1381,7 @@
+ 0.69183E-002 -0.44728E-001 -0.18229E-001
+ 0.19727E-001 -0.83985E-002 0.19649E-002
+ -0.81000E-003 0.18733E-002 -0.62522E-003
+- -0.12105E-002 -0.72607E-005 0.89095E-003
++ -0.12105E-002 -0.72605E-005 0.89095E-003
+ -0.15643E-002 0.48042E-002 -0.83264E-002
+ 0.65796E-002 -0.21426E-001 0.49776E-001
+ 0.39843E-002 -0.24431E-001 0.15999E-001
+@@ -1414,7 +1414,7 @@
+ 0.23073E-001 -0.17327E-001 0.14432E-001
+ -0.10868E-001 0.93471E-002 -0.68998E-002
+ -0.26163E-002 0.31335E-002 -0.16844E-002
+- -0.29736E-003 0.27007E-002 -0.34378E-002
++ -0.29736E-003 0.27007E-002 -0.34377E-002
+ -0.10124E-001 0.16906E-001 -0.27972E-001
+ -0.46722E-001 -0.99915E-002 0.74033E-002
+ -0.49759E-002 0.33691E-002 -0.30633E-002
+@@ -1490,7 +1490,7 @@
+ 0.56865E-003 -0.25998E-002 0.23230E-003
+ -0.48411E-003 0.19935E-002 -0.43491E-002
+ 0.86658E-002 -0.20913E-001 0.67877E-001
+- -0.12506E+000 0.30915E+000 -0.45000E-001
++ -0.12506E+000 0.30915E+000 -0.45001E-001
+ 0.79047E-002 -0.21891E-003 -0.32671E-003
+ -0.91926E-003 0.50793E-003 0.11241E-003
+ 0.15086E-001 -0.89428E-002 -0.35368E-003
+@@ -1507,7 +1507,7 @@
+ -0.30669E-003 -0.89002E-003 -0.12172E-002
+ 0.45842E-002 -0.33508E-002 -0.14322E-001
+ 0.66905E-002 0.40619E-001 -0.51873E-001
+- -0.65372E-002 0.52189E-002 -0.46499E-002
++ -0.65372E-002 0.52190E-002 -0.46499E-002
+ 0.43349E-002 -0.38558E-002 0.59891E-003
+ 0.34349E-003 -0.86951E-003 0.19112E-002
+ -0.11810E-002 -0.18282E-002 0.31268E-002
+@@ -1524,7 +1524,7 @@
+ 0.12391E-003 -0.17626E-003 0.37440E-002
+ -0.73418E-002 -0.43798E-001 0.49519E-002
+ 0.14953E-002 0.20774E-002 -0.22890E-002
+- 0.11235E-002 0.53678E-004 0.34160E-004
++ 0.11235E-002 0.53679E-004 0.34160E-004
+ -0.92654E-003 0.75587E-003 -0.15990E-002
+ 0.13713E-002 -0.14112E-002 0.18715E-002
+ -0.44715E-002 0.85039E-002 0.41635E-001
+@@ -1534,13 +1534,13 @@
+ 0.11901E-002 -0.16300E-002 0.17072E-002
+ -0.20384E-002 0.41606E-002 -0.83538E-002
+ -0.36935E-001 -0.18397E-003 0.75164E-003
+- 0.32749E-004 -0.54313E-004 -0.55384E-003
++ 0.32749E-004 -0.54314E-004 -0.55384E-003
+ 0.59897E-003 -0.55366E-003 -0.85402E-003
+ 0.60344E-003 -0.12434E-002 0.99286E-003
+ -0.13524E-002 0.82954E-003 -0.21224E-002
+ 0.41911E-002 0.38989E-001 -0.21565E-002
+ 0.91862E-003 -0.97115E-003 0.27219E-003
+- 0.52312E-005 -0.71291E-003 0.34833E-003
++ 0.52313E-005 -0.71291E-003 0.34833E-003
+ -0.48047E-003 0.23123E-003 -0.44657E-003
+ 0.33067E-003 -0.41250E-003 0.10632E-003
+ -0.22842E-002 0.73852E-002 0.61030E-002
+@@ -1574,7 +1574,7 @@
+ 0.99674E-002 -0.24989E-002 0.30342E-003
+ -0.53277E-003 0.79955E-003 -0.21966E-003
+ -0.59661E-003 0.35264E-003 -0.65872E-004
+- 0.11436E-002 0.38480E-003 -0.35781E-002
++ 0.11436E-002 0.38479E-003 -0.35781E-002
+ 0.36223E-002 -0.75229E-002 0.15451E-001
+ 0.40636E-002 -0.14021E-001 0.68264E-002
+ -0.25865E-002 0.28621E-002 -0.14937E-002
+@@ -1607,7 +1607,7 @@
+ -0.72048E-002 0.52170E-002 -0.32634E-002
+ -0.19081E-002 0.22332E-002 -0.24117E-002
+ 0.23217E-002 0.50866E-003 -0.17204E-002
+- -0.75871E-002 0.73309E-002 0.25632E-005
++ -0.75871E-002 0.73309E-002 0.25651E-005
+ -0.21416E-001 -0.12367E-001 0.49953E-002
+ -0.41626E-002 0.41883E-002 -0.30311E-002
+ 0.19037E-002 0.31388E-003 -0.26396E-003
+@@ -1640,8 +1640,8 @@
+ 0.33179E-003 -0.34087E-003 0.23211E-003
+ -0.32071E-003 -0.56331E-004 0.14792E-003
+ -0.41476E-003 -0.10262E-002 -0.21101E-001
+- -0.94099E-004 -0.10972E-002 0.73413E-003
+- -0.43772E-003 -0.10434E-003 0.72385E-004
++ -0.94100E-004 -0.10972E-002 0.73413E-003
++ -0.43772E-003 -0.10434E-003 0.72384E-004
+ -0.27691E-003 -0.27499E-003 0.40064E-003
+ -0.26074E-003 0.46773E-003 -0.13622E-003
+ 0.20913E-003 -0.18338E-003 0.73660E-003
+@@ -1683,7 +1683,7 @@
+ 0.38887E-003 -0.10225E-003 -0.35480E-003
+ 0.21989E-002 -0.46306E-002 0.27804E-001
+ -0.46260E-001 0.99268E-001 -0.12849E-001
+- 0.69339E-002 -0.28353E-002 0.32796E-002
++ 0.69340E-002 -0.28353E-002 0.32796E-002
+ -0.19358E-002 0.10950E-002 -0.18272E-003
+ 0.56051E-002 -0.38298E-002 0.13655E-003
+ 0.13715E-002 -0.54991E-002 0.85791E-002
+diff -urN amber11.orig/AmberTools/test/nab/Makefile amber11/AmberTools/test/nab/Makefile
+--- amber11.orig/AmberTools/test/nab/Makefile 2010-04-01 08:14:34.000000000 +0400
++++ amber11/AmberTools/test/nab/Makefile 2011-03-08 16:38:44.000000000 +0300
+@@ -12,7 +12,7 @@
+ rattle_md_test rembed_test dhfrndpmtx_test asp_test \
+ aspnb_test prm_test cif_test xmin_test \
+ lmod_test nmode1_test nmode2_test nmode3_test ips_test \
+- pbsa_test rism_test rism_md_test rism_dist rism_hnc
++ pbsa_test rism_test rism_md_test rism_dist rism_hnc rism_ion
+
+ duplex_test::
+ @./Run.duplex
+@@ -112,3 +112,6 @@
+
+ rism_dist::
+ @./Run.rism_dist
++
++rism_ion::
++ @sh ./Run.rism_ion
+diff -urN amber11.orig/AmberTools/test/nab/Na+.parm7 amber11/AmberTools/test/nab/Na+.parm7
+--- amber11.orig/AmberTools/test/nab/Na+.parm7 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/test/nab/Na+.parm7 2011-03-08 16:38:44.000000000 +0300
+@@ -0,0 +1,124 @@
++%VERSION VERSION_STAMP = V0001.000 DATE = 06/20/07 15:21:17
++%FLAG TITLE
++%FORMAT(20a4)
++
++%FLAG POINTERS
++%FORMAT(10I8)
++ 1 1 0 0 0 0 0 0 0 0
++ 1 1 0 0 0 0 0 0 1 0
++ 0 0 0 0 0 0 0 1 1 0
++ 0
++%FLAG ATOM_NAME
++%FORMAT(20a4)
++Na+
++%FLAG CHARGE
++%FORMAT(5E16.8)
++ 1.82223000E+01
++%FLAG MASS
++%FORMAT(5E16.8)
++ 2.29900000E+01
++%FLAG ATOM_TYPE_INDEX
++%FORMAT(10I8)
++ 1
++%FLAG NUMBER_EXCLUDED_ATOMS
++%FORMAT(10I8)
++ 1
++%FLAG NONBONDED_PARM_INDEX
++%FORMAT(10I8)
++ 1
++%FLAG RESIDUE_LABEL
++%FORMAT(20a4)
++Na+
++%FLAG RESIDUE_POINTER
++%FORMAT(10I8)
++ 1
++%FLAG BOND_FORCE_CONSTANT
++%FORMAT(5E16.8)
++
++%FLAG BOND_EQUIL_VALUE
++%FORMAT(5E16.8)
++
++%FLAG ANGLE_FORCE_CONSTANT
++%FORMAT(5E16.8)
++
++%FLAG ANGLE_EQUIL_VALUE
++%FORMAT(5E16.8)
++
++%FLAG DIHEDRAL_FORCE_CONSTANT
++%FORMAT(5E16.8)
++
++%FLAG DIHEDRAL_PERIODICITY
++%FORMAT(5E16.8)
++
++%FLAG DIHEDRAL_PHASE
++%FORMAT(5E16.8)
++
++%FLAG SOLTY
++%FORMAT(5E16.8)
++ 0.00000000E+00
++%FLAG LENNARD_JONES_ACOEF
++%FORMAT(5E16.8)
++ 2.04815198E+04
++%FLAG LENNARD_JONES_BCOEF
++%FORMAT(5E16.8)
++ 1.50643699E+01
++%FLAG BONDS_INC_HYDROGEN
++%FORMAT(10I8)
++
++%FLAG BONDS_WITHOUT_HYDROGEN
++%FORMAT(10I8)
++
++%FLAG ANGLES_INC_HYDROGEN
++%FORMAT(10I8)
++
++%FLAG ANGLES_WITHOUT_HYDROGEN
++%FORMAT(10I8)
++
++%FLAG DIHEDRALS_INC_HYDROGEN
++%FORMAT(10I8)
++
++%FLAG DIHEDRALS_WITHOUT_HYDROGEN
++%FORMAT(10I8)
++
++%FLAG EXCLUDED_ATOMS_LIST
++%FORMAT(10I8)
++ 0
++%FLAG HBOND_ACOEF
++%FORMAT(5E16.8)
++
++%FLAG HBOND_BCOEF
++%FORMAT(5E16.8)
++
++%FLAG HBCUT
++%FORMAT(5E16.8)
++
++%FLAG AMBER_ATOM_TYPE
++%FORMAT(20a4)
++IP
++%FLAG TREE_CHAIN_CLASSIFICATION
++%FORMAT(20a4)
++M
++%FLAG JOIN_ARRAY
++%FORMAT(10I8)
++ 0
++%FLAG IROTAT
++%FORMAT(10I8)
++ 0
++%FLAG SOLVENT_POINTERS
++%FORMAT(3I8)
++ 1 1 2
++%FLAG ATOMS_PER_MOLECULE
++%FORMAT(10I8)
++ 1
++%FLAG BOX_DIMENSIONS
++%FORMAT(5E16.8)
++ 9.00000000E+01 2.56000000E+01 2.56000000E+01 2.56000000E+01
++%FLAG RADIUS_SET
++%FORMAT(1a80)
++modified Bondi radii (mbondi)
++%FLAG RADII
++%FORMAT(5E16.8)
++ 1.50000000E+00
++%FLAG SCREEN
++%FORMAT(5E16.8)
++ 8.00000000E-01
+diff -urN amber11.orig/AmberTools/test/nab/Na+.pdb amber11/AmberTools/test/nab/Na+.pdb
+--- amber11.orig/AmberTools/test/nab/Na+.pdb 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/test/nab/Na+.pdb 2011-03-08 16:38:44.000000000 +0300
+@@ -0,0 +1,4 @@
++REMARK
++ATOM 1 Na+ Na+ 1 0.000 0.000 0.000 1.00 0.00 N
++TER
++END
+diff -urN amber11.orig/AmberTools/test/nab/rismion.nab amber11/AmberTools/test/nab/rismion.nab
+--- amber11.orig/AmberTools/test/nab/rismion.nab 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/test/nab/rismion.nab 2011-03-08 16:38:44.000000000 +0300
+@@ -0,0 +1,22 @@
++molecule m;
++float m_xyz[dynamic], f_xyz[dynamic], v_xyz[dynamic];
++float dgrad, fret;
++int ier, i;
++
++m = getpdb("Na+.pdb");
++readparm(m, "Na+.parm7");
++allocate m_xyz[3*m.natoms];
++allocate f_xyz[3*m.natoms];
++allocate v_xyz[3*m.natoms];
++mm_options( "e_debug=0, ntpr=1, ntpr_md=1, cut=999.0, dt=0.001, rattle=0, tempi=0, zerov=0");
++mm_options( "rism=1, apply_rism_force=0");
++mm_options( "buffer=12, solvcut=999");
++mm_options( "progress=1, xvvfile=../rism1d/spc/spc-nacl.xvv.save");
++mme_init( m, NULL, "::Z", m_xyz, NULL);
++
++setxyz_from_mol( m, NULL, m_xyz );
++
++ier = md(3*m.natoms,0,m_xyz,f_xyz,v_xyz, mme );
++
++if(mytaskid==0)
++ printf( "md returns %d\n", ier );
+diff -urN amber11.orig/AmberTools/test/nab/rismion.out.check amber11/AmberTools/test/nab/rismion.out.check
+--- amber11.orig/AmberTools/test/nab/rismion.out.check 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/test/nab/rismion.out.check 2011-03-08 16:38:44.000000000 +0300
+@@ -0,0 +1,24 @@
++Reading parm file (Na+.parm7)
++title:
++
++ mm_options: e_debug=0
++ mm_options: ntpr=1
++ mm_options: ntpr_md=1
++ mm_options: cut=999.0
++ mm_options: dt=0.001
++ mm_options: rattle=0
++ mm_options: tempi=0
++ mm_options: zerov=0
++ mm_options: rism=1
++ mm_options: apply_rism_force=0
++ mm_options: buffer=12
++ mm_options: solvcut=999
++ mm_options: progress=1
++ mm_options: xvvfile=../rism1d/spc/spc-nacl.xvv.save
++| New format PARM file being parsed.
++| Version = 0.001 Date = 04:06:10 Time = 16:41:39
++ iter Total bad vdW elect nonpolar genBorn frms
++ nblist_box, number of atoms= 1
++ nblist_box, number of pairs= 0
++ff: 0 -73.97 0.00 0.00 0.00 0.00 -73.97 0.00e+00
++md returns 0
+diff -urN amber11.orig/AmberTools/test/nab/Run.rism_ion amber11/AmberTools/test/nab/Run.rism_ion
+--- amber11.orig/AmberTools/test/nab/Run.rism_ion 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/test/nab/Run.rism_ion 2011-03-08 16:38:44.000000000 +0300
+@@ -0,0 +1,39 @@
++#!/bin/sh
++
++toomany() {
++ echo "${0}: This test requires 1, 2, 3, 4, 6, 8, 12 or 24 processes"
++ echo "for meaningful comparison."
++ exit 0
++}
++
++if [ -n "${DO_PARALLEL}" ] ; then
++ numprocs=`echo $DO_PARALLEL | awk -f ../numprocs.awk `
++ if [ ! \( "$numprocs" -eq "12" -o "$numprocs" -eq "24"\
++ -o "$numprocs" -eq "8" -o "$numprocs" -eq "6"\
++ -o "$numprocs" -eq "3" -o "$numprocs" -eq "4"\
++ -o "$numprocs" -eq "2" -o "$numprocs" -le "1" \) ]; then
++ echo " DO_PARALLEL set to $DO_PARALLEL"
++ toomany
++ elif [ -n "${MP_PROCS}" ]; then
++ if [ ! \( "$MP_PROCS" -eq "12" -o "$MP_PROCS" -eq "24"\
++ -o "$MP_PROCS" -eq "8" -o "$MP_PROCS" -eq "6"\
++ -o "$MP_PROCS" -eq "3" -o "$MP_PROCS" -eq "4"\
++ -o "$MP_PROCS" -eq "2" -o "$MP_PROCS" -le "1" \) ]; then
++# --- For IBM AIX ---
++ echo " MP_PROCS set to "$MP_PROCS
++ toomany
++ fi
++ fi
++fi
++. ../program_error.sh
++
++echo "Running test for ionic solvent and charge solute"
++echo "(this tests the 3D-RISM-KH implementation)"
++echo ""
++../../bin/nab -o sff rismion.nab || error
++$DO_PARALLEL ./sff > rismion.out || error
++
++../dacdif rismion.out.check rismion.out
++
++rm -f sff rismion.c
++exit 0
+diff -urN amber11.orig/AmberTools/test/sleap/glycam/n.pdb.save amber11/AmberTools/test/sleap/glycam/n.pdb.save
+--- amber11.orig/AmberTools/test/sleap/glycam/n.pdb.save 2010-03-31 07:05:23.000000000 +0400
++++ amber11/AmberTools/test/sleap/glycam/n.pdb.save 2011-03-08 16:38:44.000000000 +0300
+@@ -8,13 +8,13 @@
+ ATOM 8 O4 6LB 1 5.435 3.303 2.147 1.00 0.00
+ ATOM 9 H4O 6LB 1 5.122 4.155 1.839 1.00 0.00
+ ATOM 10 C3 6LB 1 5.271 3.073 -0.262 1.00 0.00
+-ATOM 11 H3 6LB 1 4.894 2.740 -1.242 1.00 0.00
+-ATOM 12 O3 6LB 1 6.571 3.630 -0.399 1.00 0.00
+-ATOM 13 H3O 6LB 1 7.188 2.917 -0.649 1.00 0.00
+-ATOM 14 C2 6LB 1 4.314 4.119 0.310 1.00 0.00
+-ATOM 15 H2 6LB 1 3.733 4.482 1.177 1.00 0.00
+-ATOM 16 O2 6LB 1 5.419 4.938 -0.016 1.00 0.00
+-ATOM 17 H2O 6LB 1 6.213 5.114 -0.520 1.00 0.00
++ATOM 11 H3 6LB 1 5.706 2.518 -1.108 1.00 0.00
++ATOM 12 O3 6LB 1 5.591 4.453 -0.363 1.00 0.00
++ATOM 13 H3O 6LB 1 6.553 4.558 -0.232 1.00 0.00
++ATOM 14 C2 6LB 1 3.753 2.890 -0.273 1.00 0.00
++ATOM 15 H2 6LB 1 3.395 3.508 0.570 1.00 0.00
++ATOM 16 O2 6LB 1 3.239 3.287 -1.528 1.00 0.00
++ATOM 17 H2O 6LB 1 2.352 3.631 -1.425 1.00 0.00
+ ATOM 18 C6 6LB 1 5.842 0.516 2.583 1.00 0.00
+ ATOM 19 H61 6LB 1 6.928 0.603 2.654 1.00 0.00
+ ATOM 20 H62 6LB 1 5.375 1.096 3.383 1.00 0.00
+@@ -37,7 +37,7 @@
+ ATOM 37 C2 VLB 2 4.686 -2.097 4.639 1.00 0.00
+ ATOM 38 H2 VLB 2 4.209 -2.878 4.019 1.00 0.00
+ ATOM 39 O2 VLB 2 3.816 -1.039 4.992 1.00 0.00
+-ATOM 40 H2O VLB 2 2.957 -1.387 4.762 1.00 0.00
++ATOM 40 H2O VLB 2 4.332 -0.238 5.050 1.00 0.00
+ ATOM 41 O3 VLB 2 4.014 -3.472 6.508 1.00 0.00
+ ATOM 42 C1 VLB 3 2.893 -2.701 6.920 1.00 0.00
+ ATOM 43 H1 VLB 3 3.071 -1.648 6.648 1.00 0.00
+@@ -57,7 +57,7 @@
+ ATOM 57 C2 VLB 3 1.614 -3.056 6.171 1.00 0.00
+ ATOM 58 H2 VLB 3 1.323 -4.090 6.432 1.00 0.00
+ ATOM 59 O2 VLB 3 1.793 -2.849 4.782 1.00 0.00
+-ATOM 60 H2O VLB 3 1.405 -3.634 4.401 1.00 0.00
++ATOM 60 H2O VLB 3 2.476 -2.193 4.666 1.00 0.00
+ ATOM 61 O3 VLB 3 -0.763 -2.638 6.079 1.00 0.00
+ ATOM 62 C1 3GB 4 -0.905 -2.644 4.665 1.00 0.00
+ ATOM 63 H1 3GB 4 0.044 -2.311 4.215 1.00 0.00
+@@ -68,7 +68,7 @@
+ ATOM 68 H61 3GB 4 -3.380 -0.533 1.560 1.00 0.00
+ ATOM 69 H62 3GB 4 -4.134 -1.031 3.099 1.00 0.00
+ ATOM 70 O6 3GB 4 -2.909 0.649 3.114 1.00 0.00
+-ATOM 71 H6O 3GB 4 -3.688 0.628 3.666 1.00 0.00
++ATOM 71 H6O 3GB 4 -2.709 0.580 4.045 1.00 0.00
+ ATOM 72 C4 3GB 4 -2.352 -2.990 2.187 1.00 0.00
+ ATOM 73 H4 3GB 4 -3.330 -3.384 2.501 1.00 0.00
+ ATOM 74 O4 3GB 4 -2.343 -2.789 0.771 1.00 0.00
+@@ -78,7 +78,7 @@
+ ATOM 78 C2 3GB 4 -1.106 -4.042 4.090 1.00 0.00
+ ATOM 79 H2 3GB 4 -2.075 -4.437 4.446 1.00 0.00
+ ATOM 80 O2 3GB 4 -0.002 -4.864 4.416 1.00 0.00
+-ATOM 81 H2O 3GB 4 0.874 -5.115 4.125 1.00 0.00
++ATOM 81 H2O 3GB 4 -0.154 -5.298 5.256 1.00 0.00
+ ATOM 82 O3 3GB 4 -1.600 -5.254 2.060 1.00 0.00
+ ATOM 83 C1 0GB 5 -0.735 -6.360 2.282 1.00 0.00
+ ATOM 84 H1 0GB 5 0.116 -6.024 2.897 1.00 0.00
+@@ -89,7 +89,7 @@
+ ATOM 89 H61 0GB 5 1.836 -9.117 -0.171 1.00 0.00
+ ATOM 90 H62 0GB 5 0.236 -8.623 -0.788 1.00 0.00
+ ATOM 91 O6 0GB 5 1.789 -7.246 -0.898 1.00 0.00
+-ATOM 92 H6O 0GB 5 1.142 -7.286 -1.600 1.00 0.00
++ATOM 92 H6O 0GB 5 1.207 -6.488 -0.919 1.00 0.00
+ ATOM 93 C4 0GB 5 0.134 -9.099 1.971 1.00 0.00
+ ATOM 94 H4 0GB 5 -0.679 -9.576 1.404 1.00 0.00
+ ATOM 95 O4 0GB 5 1.193 -10.038 2.180 1.00 0.00
+@@ -103,49 +103,49 @@
+ ATOM 103 O2 0GB 5 -1.753 -6.949 4.385 1.00 0.00
+ ATOM 104 H2O 0GB 5 -2.644 -6.603 4.344 1.00 0.00
+ TER
+-ATOM 105 C1 3LB 6 10.501 -4.485 3.172 1.00 0.00
+-ATOM 106 H1 3LB 6 10.220 -5.544 3.293 1.00 0.00
+-ATOM 107 O5 3LB 6 11.709 -4.218 3.853 1.00 0.00
+-ATOM 108 C5 3LB 6 12.798 -5.075 3.481 1.00 0.00
+-ATOM 109 H5 3LB 6 12.529 -6.122 3.711 1.00 0.00
+-ATOM 110 C6 3LB 6 13.974 -4.687 4.358 1.00 0.00
+-ATOM 111 H61 3LB 6 14.831 -5.300 4.073 1.00 0.00
+-ATOM 112 H62 3LB 6 14.206 -3.632 4.190 1.00 0.00
+-ATOM 113 O6 3LB 6 13.745 -4.955 5.727 1.00 0.00
+-ATOM 114 H6O 3LB 6 13.914 -4.037 5.928 1.00 0.00
+-ATOM 115 C4 3LB 6 13.095 -4.959 1.987 1.00 0.00
+-ATOM 116 H4 3LB 6 13.857 -5.698 1.700 1.00 0.00
+-ATOM 117 O4 3LB 6 13.583 -3.638 1.737 1.00 0.00
+-ATOM 118 H4O 3LB 6 13.207 -3.313 0.918 1.00 0.00
+-ATOM 119 C3 3LB 6 11.834 -5.224 1.182 1.00 0.00
+-ATOM 120 H3 3LB 6 11.550 -6.279 1.318 1.00 0.00
+-ATOM 121 C2 3LB 6 10.690 -4.332 1.666 1.00 0.00
+-ATOM 122 H2 3LB 6 11.034 -3.304 1.454 1.00 0.00
+-ATOM 123 O2 3LB 6 9.498 -4.685 0.991 1.00 0.00
+-ATOM 124 H2O 3LB 6 9.019 -5.430 0.628 1.00 0.00
+-ATOM 125 O3 3LB 6 12.104 -4.961 -0.188 1.00 0.00
+-ATOM 126 C1 0GB 7 11.081 -5.133 -1.159 1.00 0.00
+-ATOM 127 H1 0GB 7 10.154 -5.434 -0.645 1.00 0.00
+-ATOM 128 O5 0GB 7 11.461 -6.115 -2.101 1.00 0.00
+-ATOM 129 C5 0GB 7 10.440 -6.444 -3.054 1.00 0.00
+-ATOM 130 H5 0GB 7 9.559 -6.842 -2.518 1.00 0.00
+-ATOM 131 C6 0GB 7 11.002 -7.552 -3.925 1.00 0.00
+-ATOM 132 H61 0GB 7 10.258 -7.800 -4.686 1.00 0.00
+-ATOM 133 H62 0GB 7 11.913 -7.191 -4.409 1.00 0.00
+-ATOM 134 O6 0GB 7 11.234 -8.746 -3.207 1.00 0.00
+-ATOM 135 H6O 0GB 7 12.148 -8.727 -3.483 1.00 0.00
+-ATOM 136 C4 0GB 7 10.017 -5.207 -3.846 1.00 0.00
+-ATOM 137 H4 0GB 7 10.852 -4.864 -4.475 1.00 0.00
+-ATOM 138 O4 0GB 7 8.908 -5.572 -4.672 1.00 0.00
+-ATOM 139 H4O 0GB 7 9.006 -5.159 -5.530 1.00 0.00
+-ATOM 140 C3 0GB 7 9.603 -4.096 -2.897 1.00 0.00
+-ATOM 141 H3 0GB 7 8.685 -4.408 -2.376 1.00 0.00
+-ATOM 142 O3 0GB 7 9.362 -2.917 -3.653 1.00 0.00
+-ATOM 143 H3O 0GB 7 8.751 -3.136 -4.381 1.00 0.00
+-ATOM 144 C2 0GB 7 10.699 -3.835 -1.863 1.00 0.00
+-ATOM 145 H2 0GB 7 11.561 -3.486 -2.459 1.00 0.00
+-ATOM 146 O2 0GB 7 10.240 -2.889 -0.917 1.00 0.00
+-ATOM 147 H2O 0GB 7 10.975 -2.374 -0.585 1.00 0.00
++ATOM 105 C1 3LB 6 3.394 1.433 0.000 1.00 0.00
++ATOM 106 H1 3LB 6 3.836 0.891 -0.851 1.00 0.00
++ATOM 107 O5 3LB 6 3.973 0.998 1.212 1.00 0.00
++ATOM 108 C5 3LB 6 5.405 1.087 1.247 1.00 0.00
++ATOM 109 H5 3LB 6 5.826 0.451 0.448 1.00 0.00
++ATOM 110 C6 3LB 6 5.842 0.516 2.583 1.00 0.00
++ATOM 111 H61 3LB 6 6.928 0.603 2.654 1.00 0.00
++ATOM 112 H62 3LB 6 5.375 1.096 3.383 1.00 0.00
++ATOM 113 O6 3LB 6 5.555 -0.862 2.707 1.00 0.00
++ATOM 114 H6O 3LB 6 4.615 -0.981 2.592 1.00 0.00
++ATOM 115 C4 3LB 6 5.865 2.527 1.025 1.00 0.00
++ATOM 116 H4 3LB 6 6.962 2.560 0.948 1.00 0.00
++ATOM 117 O4 3LB 6 5.435 3.303 2.147 1.00 0.00
++ATOM 118 H4O 3LB 6 5.122 4.155 1.839 1.00 0.00
++ATOM 119 C3 3LB 6 5.271 3.073 -0.262 1.00 0.00
++ATOM 120 H3 3LB 6 5.706 2.518 -1.108 1.00 0.00
++ATOM 121 C2 3LB 6 3.753 2.890 -0.273 1.00 0.00
++ATOM 122 H2 3LB 6 3.395 3.508 0.570 1.00 0.00
++ATOM 123 O2 3LB 6 3.238 3.288 -1.530 1.00 0.00
++ATOM 124 H2O 3LB 6 2.351 3.631 -1.427 1.00 0.00
++ATOM 125 O3 3LB 6 5.591 4.453 -0.363 1.00 0.00
++ATOM 126 C1 0GB 7 5.149 5.205 -1.484 1.00 0.00
++ATOM 127 H1 0GB 7 4.548 4.549 -2.133 1.00 0.00
++ATOM 128 O5 0GB 7 6.255 5.718 -2.197 1.00 0.00
++ATOM 129 C5 0GB 7 5.911 6.393 -3.416 1.00 0.00
++ATOM 130 H5 0GB 7 5.402 5.682 -4.091 1.00 0.00
++ATOM 131 C6 0GB 7 7.218 6.805 -4.066 1.00 0.00
++ATOM 132 H61 0GB 7 6.987 7.354 -4.981 1.00 0.00
++ATOM 133 H62 0GB 7 7.764 7.455 -3.378 1.00 0.00
++ATOM 134 O6 0GB 7 8.002 5.699 -4.466 1.00 0.00
++ATOM 135 H6O 0GB 7 8.174 5.164 -3.694 1.00 0.00
++ATOM 136 C4 0GB 7 4.976 7.569 -3.140 1.00 0.00
++ATOM 137 H4 0GB 7 5.507 8.340 -2.562 1.00 0.00
++ATOM 138 O4 0GB 7 4.562 8.106 -4.399 1.00 0.00
++ATOM 139 H4O 0GB 7 4.551 9.062 -4.345 1.00 0.00
++ATOM 140 C3 0GB 7 3.759 7.096 -2.362 1.00 0.00
++ATOM 141 H3 0GB 7 3.169 6.430 -3.010 1.00 0.00
++ATOM 142 O3 0GB 7 2.987 8.230 -1.991 1.00 0.00
++ATOM 143 H3O 0GB 7 2.828 8.771 -2.788 1.00 0.00
++ATOM 144 C2 0GB 7 4.185 6.326 -1.112 1.00 0.00
++ATOM 145 H2 0GB 7 4.726 7.072 -0.501 1.00 0.00
++ATOM 146 O2 0GB 7 3.042 5.790 -0.474 1.00 0.00
++ATOM 147 H2O 0GB 7 3.187 5.738 0.470 1.00 0.00
+ CONECT 1 2 3 14
+ CONECT 2 1
+ CONECT 3 1 4
+@@ -173,7 +173,7 @@
+ CONECT 25 24 26 27 31
+ CONECT 26 25
+ CONECT 27 25 28 29 30
+-CONECT 28 27 105
++CONECT 28 27
+ CONECT 29 27
+ CONECT 30 27
+ CONECT 31 25 32 33 35
+@@ -250,7 +250,7 @@
+ CONECT 102 101
+ CONECT 103 101 104
+ CONECT 104 103
+-CONECT 105 28 106 107 121
++CONECT 105 106 107 121
+ CONECT 106 105
+ CONECT 107 105 108
+ CONECT 108 107 109 110 115
+diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_amino91.lib.save amber11/AmberTools/test/sleap/oldleap/ff91/all_amino91.lib.save
+--- amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_amino91.lib.save 2010-03-31 07:05:23.000000000 +0400
++++ amber11/AmberTools/test/sleap/oldleap/ff91/all_amino91.lib.save 2011-03-08 16:38:44.000000000 +0300
+@@ -256,7 +256,7 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.230747 4.925147 1.196914
+- 4.828085 5.500165 0.713033
++ 3.983296 5.433818 1.972557
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.SER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -368,7 +368,7 @@
+ 1.784422 4.436955 2.124895
+ 1.764698 4.397850 0.345787
+ 3.971494 2.947416 2.411212
+- 4.374397 3.770738 2.696536
++ 3.724043 3.456087 3.186855
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.THR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -500,15 +500,15 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.857033 4.748192 2.579338
+- 5.821217 4.249596 2.480083
+- 4.990360 5.695010 3.102655
+- 4.176711 4.112860 3.146449
+- 5.226485 5.898474 0.401698
+- 5.794506 5.938748 1.331123
+- 5.883342 6.134649 -0.435476
+- 4.414018 6.624028 0.441300
++ 5.354265 4.863179 1.185791
++ 3.853427 5.762894 -0.062862
++ 2.773446 5.910110 -0.054565
++ 4.351509 6.732051 -0.090207
++ 4.134162 5.185701 -0.943848
++ 3.881095 5.817649 2.426715
++ 4.181612 5.279606 3.325770
++ 4.379188 6.786828 2.400358
++ 2.801124 5.964886 2.435947
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.LEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -648,12 +648,12 @@
+ 3.671552 3.399212 3.380613
+ 3.485641 1.869279 2.490736
+ 4.230199 4.986696 1.245167
+- 3.258221 5.469711 1.345449
+- 4.638709 4.784431 2.235272
+- 5.178160 5.906245 0.482655
+- 5.735477 5.933935 1.418994
+- 5.840562 6.170139 -0.341774
+- 4.354989 6.619215 0.529171
++ 5.312304 4.855747 1.245167
++ 3.931816 5.541027 0.355344
++ 3.812283 5.761636 2.490333
++ 4.110763 5.208108 3.380624
++ 4.296680 6.738088 2.490828
++ 2.730275 5.893388 2.490801
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.ILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -781,9 +781,9 @@
+ 3.716963 3.477633 3.370556
+ 3.499621 1.931327 2.516833
+ 4.274181 5.009604 1.194574
+- 4.690774 4.823320 2.184447
+- 4.954792 5.645336 0.628258
+- 3.310286 5.508600 1.294624
++ 3.973778 5.548459 0.295968
++ 3.993550 5.587589 2.075074
++ 5.354265 4.863179 1.185791
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.VAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -897,10 +897,10 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.253694 5.017114 1.232141
+- 3.666601 5.213107 2.293908
+- 5.062354 5.920372 0.673198
+- 5.699537 6.377296 0.036552
+- 4.754312 6.389897 1.512695
++ 5.005295 5.340406 0.315070
++ 3.984875 5.817912 2.265912
++ 4.408006 6.733705 2.314738
++ 3.359598 5.504301 2.994456
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.ASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1024,13 +1024,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.220277 5.927344 0.433563
+- 4.913588 6.591689 1.420998
+- 6.050965 6.373808 -0.511346
+- 5.971268 7.107959 0.177690
+- 6.636748 6.497679 -1.324743
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.906966 5.848446 2.410297
++ 3.138947 5.408353 3.262885
++ 4.458847 7.061526 2.488328
++ 4.248421 7.659050 3.274958
++ 5.084275 7.376210 1.760376
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.GLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1185,20 +1185,20 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.125319 6.253797 -0.719124
+- 6.688164 6.300372 -1.556463
+- 6.117846 7.301883 0.099632
+- 5.907135 8.163840 1.090353
+- 5.292210 7.913283 1.851398
+- 6.363014 9.065005 1.077109
+- 6.926823 7.627695 -0.904511
+- 7.501836 7.713669 -1.730386
+- 6.873063 8.384728 -0.238094
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.540311 7.142726 2.424478
++ 5.151800 7.375491 1.655062
++ 4.364270 8.040994 3.389374
++ 3.575005 7.807613 4.434120
++ 3.088928 6.925430 4.508833
++ 3.465343 8.513638 5.147984
++ 5.006244 9.201290 3.286985
++ 5.604850 9.375324 2.492326
++ 4.892201 9.903050 4.004360
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.ARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1333,13 +1333,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 4.722990 6.580423 1.708019
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 3.339711 5.691917 3.169798
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.HID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1467,13 +1467,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 6.629203 7.441424 -0.586231
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.896295 7.605082 0.676854
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.HIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1605,14 +1605,14 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 4.722990 6.580423 1.708019
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 6.629203 7.441424 -0.586231
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 3.339711 5.691917 3.169798
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.896295 7.605082 0.676854
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.HIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1770,20 +1770,20 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 4.941957 6.093161 0.993054
+- 4.555798 6.518222 1.919501
+- 5.833674 6.587638 -0.009560
+- 5.727864 7.297382 0.701192
+- 6.577083 6.691104 -1.083216
+- 6.699953 7.881667 -0.356949
+- 7.350710 8.089828 -1.206234
+- 6.471604 8.773711 0.684306
+- 7.153163 9.167983 -0.069436
+- 6.163215 9.539474 1.752484
+- 6.850900 10.076243 1.098979
+- 5.726463 10.185215 2.927374
+- 6.404130 10.841773 2.381664
+- 5.125146 10.546906 4.138818
++ 4.023443 5.931088 2.293236
++ 3.368827 5.705470 3.135064
++ 4.811936 7.073557 1.949805
++ 4.882911 7.922013 2.493114
++ 5.427345 6.842058 0.816764
++ 6.297161 7.689048 0.119607
++ 6.531228 8.676646 0.517052
++ 6.814097 7.187003 -1.069017
++ 7.498083 7.791848 -1.664355
++ 6.482667 5.953109 -1.505090
++ 6.897672 5.575635 -2.439640
++ 5.604046 5.117349 -0.785625
++ 5.358725 4.126563 -1.168065
++ 5.083391 5.623006 0.411551
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.TRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1930,16 +1930,16 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.021223 6.053049 0.839188
+- 4.662984 6.521610 1.755820
+- 5.904492 6.742286 -0.000329
+- 5.724114 7.440373 0.817130
+- 6.758713 7.099630 -1.050381
+- 6.738282 7.947511 -0.365705
+- 7.536653 7.157250 -2.212917
+- 7.655187 8.096815 -1.673224
+- 8.214242 6.953605 -3.420974
+- 8.451251 7.942064 -3.027432
++ 3.911603 5.857254 2.409885
++ 3.236109 5.513847 3.193390
++ 4.490005 7.129516 2.492349
++ 4.264839 7.776656 3.340058
++ 5.357612 7.570590 1.486013
++ 5.807939 8.561136 1.550217
++ 5.646816 6.739401 0.397212
++ 6.322310 7.082808 -0.386292
++ 5.068414 5.467139 0.314748
++ 5.293580 4.820000 -0.532961
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.PHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2086,17 +2086,17 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 5.102503 5.984523 0.660315
+- 4.777863 6.502414 1.562811
+- 5.985574 6.611197 -0.227077
+- 5.846174 7.352316 0.559949
+- 6.824378 6.891857 -1.312267
+- 6.854321 7.991157 -0.512116
+- 6.305234 7.900783 0.270147
+- 7.573657 6.866032 -2.494602
+- 7.737299 7.827553 -2.007982
+- 8.211756 6.577405 -3.706841
+- 8.492629 7.576371 -3.373257
++ 4.059917 5.918914 2.227275
++ 3.400094 5.668222 3.057870
++ 4.699989 7.163550 2.192787
++ 4.538509 7.881896 2.996531
++ 5.547468 7.485540 1.125968
++ 6.169252 8.694615 1.092466
++ 5.956320 9.246984 1.848209
++ 5.754874 6.562895 0.093637
++ 6.414696 6.813587 -0.736958
++ 5.114801 5.318259 0.128125
++ 5.276282 4.599913 -0.675619
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.TYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2219,11 +2219,11 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 3.302423 5.493308 1.295046
+- 4.682911 4.808028 2.184869
+- 5.220383 5.890117 0.404729
+- 6.306867 5.987364 1.035359
+- 4.568248 6.850423 -0.085305
++ 5.347407 4.849844 1.186161
++ 3.966920 5.535124 0.296338
++ 3.873721 5.805373 2.428701
++ 4.594575 5.679017 3.454373
++ 2.855955 6.542075 2.333709
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.GLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2328,8 +2328,8 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.275095 5.011382 1.194525
+- 5.214909 5.080371 2.030940
+- 3.476290 5.943429 0.910275
++ 3.669104 5.954940 0.620005
++ 5.407723 5.091882 1.740669
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.ASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2471,18 +2471,18 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.145332 6.228186 -0.769897
+- 7.203874 5.974714 -0.827698
+- 5.823386 6.659994 -1.717522
+- 5.933539 7.203239 0.309601
+- 6.482814 7.265694 1.154880
+- 6.528435 7.362078 -0.491005
+- 5.203409 7.900796 0.330212
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.578316 7.173413 2.389148
++ 5.658401 7.026988 2.380365
++ 4.277913 7.712268 1.490542
++ 4.199407 7.952315 3.576852
++ 4.478064 7.453372 4.409622
++ 4.661173 8.850231 3.551971
++ 3.198660 8.088474 3.584954
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.LYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2600,11 +2600,11 @@
+ 4.419995 0.019280 -0.902255
+ 3.955884 -0.274036 0.790585
+ 5.547124 1.172442 0.544698
+- 6.078592 2.122578 0.598404
+- 6.005141 0.543154 -0.218399
+- 5.532142 0.472642 1.882665
+- 6.368845 0.104645 1.288859
+- 5.876555 1.272377 2.538335
++ 6.413547 0.741633 0.042886
++ 5.652946 1.047940 1.622381
++ 5.369090 2.628183 0.185221
++ 5.690639 3.251042 1.019939
++ 5.969291 2.861853 -0.694128
+ 3.933608 2.871277 -0.104508
+ 3.932642 3.351380 0.874062
+ 2.872953 3.958248 -0.204456
+@@ -2714,9 +2714,9 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.309567 5.303525 1.366033
+- 5.145787 5.839753 0.481671
+- 4.563172 5.041444 1.938780
+- 3.657120 5.491212 1.354764
++ 3.725381 5.622023 2.517634
++ 4.051868 5.551722 0.788945
++ 4.957920 5.101954 1.372960
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.CYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2819,8 +2819,8 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.309567 5.303525 1.366033
+- 4.563172 5.041444 1.938780
+- 3.657120 5.491212 1.354764
++ 4.051868 5.551722 0.788945
++ 4.957920 5.101954 1.372960
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.CYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2950,15 +2950,15 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.402881 6.076526 0.265157
+- 5.724538 5.972445 0.854008
+- 4.818486 6.422214 0.269993
+- 6.377314 6.105674 -1.224148
+- 6.034578 6.467191 -2.193651
+- 6.303017 6.908485 -0.490613
+- 7.415066 5.781911 -1.303828
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.817297 5.981271 2.651702
++ 4.055297 5.545795 3.115122
++ 3.149245 5.995564 2.531107
++ 4.753204 7.463130 2.340945
++ 4.433578 7.904044 1.396734
++ 4.585895 8.175303 3.148978
++ 5.814065 7.218764 2.286557
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.MET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_aminoct91.lib.save amber11/AmberTools/test/sleap/oldleap/ff91/all_aminoct91.lib.save
+--- amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_aminoct91.lib.save 2010-03-31 07:05:23.000000000 +0400
++++ amber11/AmberTools/test/sleap/oldleap/ff91/all_aminoct91.lib.save 2011-03-08 16:38:44.000000000 +0300
+@@ -272,7 +272,7 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.230747 4.925147 1.196914
+- 4.828085 5.500165 0.713033
++ 3.983296 5.433818 1.972557
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -390,7 +390,7 @@
+ 1.784422 4.436955 2.124895
+ 1.764698 4.397850 0.345787
+ 3.971494 2.947416 2.411212
+- 4.374397 3.770738 2.696536
++ 3.724043 3.456087 3.186855
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -528,15 +528,15 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.857033 4.748192 2.579338
+- 5.821217 4.249596 2.480083
+- 4.990360 5.695010 3.102655
+- 4.176711 4.112860 3.146449
+- 5.226485 5.898474 0.401698
+- 5.794506 5.938748 1.331123
+- 5.883342 6.134649 -0.435476
+- 4.414018 6.624028 0.441300
++ 5.354265 4.863179 1.185791
++ 3.853427 5.762894 -0.062862
++ 2.773446 5.910110 -0.054565
++ 4.351509 6.732051 -0.090207
++ 4.134162 5.185701 -0.943848
++ 3.881095 5.817649 2.426715
++ 4.181612 5.279606 3.325770
++ 4.379188 6.786828 2.400358
++ 2.801124 5.964886 2.435947
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -682,12 +682,12 @@
+ 3.671552 3.399212 3.380613
+ 3.485641 1.869279 2.490736
+ 4.230199 4.986696 1.245167
+- 3.258221 5.469711 1.345449
+- 4.638709 4.784431 2.235272
+- 5.178160 5.906245 0.482655
+- 5.735477 5.933935 1.418994
+- 5.840562 6.170139 -0.341774
+- 4.354989 6.619215 0.529171
++ 5.312304 4.855747 1.245167
++ 3.931816 5.541027 0.355344
++ 3.812283 5.761636 2.490333
++ 4.110763 5.208108 3.380624
++ 4.296680 6.738088 2.490828
++ 2.730275 5.893388 2.490801
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -821,9 +821,9 @@
+ 3.716963 3.477633 3.370556
+ 3.499621 1.931327 2.516833
+ 4.274181 5.009604 1.194574
+- 4.690774 4.823320 2.184447
+- 4.954792 5.645336 0.628258
+- 3.310286 5.508600 1.294624
++ 3.973778 5.548459 0.295968
++ 3.993550 5.587589 2.075074
++ 5.354265 4.863179 1.185791
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -943,10 +943,10 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.253694 5.017114 1.232141
+- 3.666601 5.213107 2.293908
+- 5.062354 5.920372 0.673198
+- 5.699537 6.377296 0.036552
+- 4.754312 6.389897 1.512695
++ 5.005295 5.340406 0.315070
++ 3.984875 5.817912 2.265912
++ 4.408006 6.733705 2.314738
++ 3.359598 5.504301 2.994456
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -1076,13 +1076,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.220277 5.927344 0.433563
+- 4.913588 6.591689 1.420998
+- 6.050965 6.373808 -0.511346
+- 5.971268 7.107959 0.177690
+- 6.636748 6.497679 -1.324743
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.906966 5.848446 2.410297
++ 3.138947 5.408353 3.262885
++ 4.458847 7.061526 2.488328
++ 4.248421 7.659050 3.274958
++ 5.084275 7.376210 1.760376
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -1243,20 +1243,20 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.125319 6.253797 -0.719124
+- 6.688164 6.300372 -1.556463
+- 6.117846 7.301883 0.099632
+- 5.907135 8.163840 1.090353
+- 5.292210 7.913283 1.851398
+- 6.363014 9.065005 1.077109
+- 6.926823 7.627695 -0.904511
+- 7.501836 7.713669 -1.730386
+- 6.873063 8.384728 -0.238094
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.540311 7.142726 2.424478
++ 5.151800 7.375491 1.655062
++ 4.364270 8.040994 3.389374
++ 3.575005 7.807613 4.434120
++ 3.088928 6.925430 4.508833
++ 3.465343 8.513638 5.147984
++ 5.006244 9.201290 3.286985
++ 5.604850 9.375324 2.492326
++ 4.892201 9.903050 4.004360
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -1397,13 +1397,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 4.722990 6.580423 1.708019
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 3.339711 5.691917 3.169798
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -1537,13 +1537,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 6.629203 7.441424 -0.586231
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.896295 7.605082 0.676854
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -1681,14 +1681,14 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 4.722990 6.580423 1.708019
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 6.629203 7.441424 -0.586231
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 3.339711 5.691917 3.169798
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.896295 7.605082 0.676854
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -1852,20 +1852,20 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 4.941957 6.093161 0.993054
+- 4.555798 6.518222 1.919501
+- 5.833674 6.587638 -0.009560
+- 5.727864 7.297382 0.701192
+- 6.577083 6.691104 -1.083216
+- 6.699953 7.881667 -0.356949
+- 7.350710 8.089828 -1.206234
+- 6.471604 8.773711 0.684306
+- 7.153163 9.167983 -0.069436
+- 6.163215 9.539474 1.752484
+- 6.850900 10.076243 1.098979
+- 5.726463 10.185215 2.927374
+- 6.404130 10.841773 2.381664
+- 5.125146 10.546906 4.138818
++ 4.023443 5.931088 2.293236
++ 3.368827 5.705470 3.135064
++ 4.811936 7.073557 1.949805
++ 4.882911 7.922013 2.493114
++ 5.427345 6.842058 0.816764
++ 6.297161 7.689048 0.119607
++ 6.531228 8.676646 0.517052
++ 6.814097 7.187003 -1.069017
++ 7.498083 7.791848 -1.664355
++ 6.482667 5.953109 -1.505090
++ 6.897672 5.575635 -2.439640
++ 5.604046 5.117349 -0.785625
++ 5.358725 4.126563 -1.168065
++ 5.083391 5.623006 0.411551
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2018,16 +2018,16 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.021223 6.053049 0.839188
+- 4.662984 6.521610 1.755820
+- 5.904492 6.742286 -0.000329
+- 5.724114 7.440373 0.817130
+- 6.758713 7.099630 -1.050381
+- 6.738282 7.947511 -0.365705
+- 7.536653 7.157250 -2.212917
+- 7.655187 8.096815 -1.673224
+- 8.214242 6.953605 -3.420974
+- 8.451251 7.942064 -3.027432
++ 3.911603 5.857254 2.409885
++ 3.236109 5.513847 3.193390
++ 4.490005 7.129516 2.492349
++ 4.264839 7.776656 3.340058
++ 5.357612 7.570590 1.486013
++ 5.807939 8.561136 1.550217
++ 5.646816 6.739401 0.397212
++ 6.322310 7.082808 -0.386292
++ 5.068414 5.467139 0.314748
++ 5.293580 4.820000 -0.532961
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2180,17 +2180,17 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 5.102503 5.984523 0.660315
+- 4.777863 6.502414 1.562811
+- 5.985574 6.611197 -0.227077
+- 5.846174 7.352316 0.559949
+- 6.824378 6.891857 -1.312267
+- 6.854321 7.991157 -0.512116
+- 6.305234 7.900783 0.270147
+- 7.573657 6.866032 -2.494602
+- 7.737299 7.827553 -2.007982
+- 8.211756 6.577405 -3.706841
+- 8.492629 7.576371 -3.373257
++ 4.059917 5.918914 2.227275
++ 3.400094 5.668222 3.057870
++ 4.699989 7.163550 2.192787
++ 4.538509 7.881896 2.996531
++ 5.547468 7.485540 1.125968
++ 6.169252 8.694615 1.092466
++ 5.956320 9.246984 1.848209
++ 5.754874 6.562895 0.093637
++ 6.414696 6.813587 -0.736958
++ 5.114801 5.318259 0.128125
++ 5.276282 4.599913 -0.675619
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2319,11 +2319,11 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 3.302423 5.493308 1.295046
+- 4.682911 4.808028 2.184869
+- 5.220383 5.890117 0.404729
+- 6.306867 5.987364 1.035359
+- 4.568248 6.850423 -0.085305
++ 5.347407 4.849844 1.186161
++ 3.966920 5.535124 0.296338
++ 3.873721 5.805373 2.428701
++ 4.594575 5.679017 3.454373
++ 2.855955 6.542075 2.333709
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2434,8 +2434,8 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.275095 5.011382 1.194525
+- 5.214909 5.080371 2.030940
+- 3.476290 5.943429 0.910275
++ 3.669104 5.954940 0.620005
++ 5.407723 5.091882 1.740669
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2583,18 +2583,18 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.145332 6.228186 -0.769897
+- 7.203874 5.974714 -0.827698
+- 5.823386 6.659994 -1.717522
+- 5.933539 7.203239 0.309601
+- 6.482814 7.265694 1.154880
+- 6.528435 7.362078 -0.491005
+- 5.203409 7.900796 0.330212
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.578316 7.173413 2.389148
++ 5.658401 7.026988 2.380365
++ 4.277913 7.712268 1.490542
++ 4.199407 7.952315 3.576852
++ 4.478064 7.453372 4.409622
++ 4.661173 8.850231 3.551971
++ 3.198660 8.088474 3.584954
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2718,11 +2718,11 @@
+ 4.419995 0.019280 -0.902255
+ 3.955884 -0.274036 0.790585
+ 5.547124 1.172442 0.544698
+- 6.078592 2.122578 0.598404
+- 6.005141 0.543154 -0.218399
+- 5.532142 0.472642 1.882665
+- 6.368845 0.104645 1.288859
+- 5.876555 1.272377 2.538335
++ 6.413547 0.741633 0.042886
++ 5.652946 1.047940 1.622381
++ 5.369090 2.628183 0.185221
++ 5.690639 3.251042 1.019939
++ 5.969291 2.861853 -0.694128
+ 3.933608 2.871277 -0.104508
+ 3.932642 3.351380 0.874062
+ 2.872953 3.958248 -0.204456
+@@ -2838,9 +2838,9 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.309567 5.303525 1.366033
+- 5.145787 5.839753 0.481671
+- 4.563172 5.041444 1.938780
+- 3.657120 5.491212 1.354764
++ 3.725381 5.622023 2.517634
++ 4.051868 5.551722 0.788945
++ 4.957920 5.101954 1.372960
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2949,8 +2949,8 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.309567 5.303525 1.366033
+- 4.563172 5.041444 1.938780
+- 3.657120 5.491212 1.354764
++ 4.051868 5.551722 0.788945
++ 4.957920 5.101954 1.372960
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -3086,15 +3086,15 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.402881 6.076526 0.265157
+- 5.724538 5.972445 0.854008
+- 4.818486 6.422214 0.269993
+- 6.377314 6.105674 -1.224148
+- 6.034578 6.467191 -2.193651
+- 6.303017 6.908485 -0.490613
+- 7.415066 5.781911 -1.303828
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.817297 5.981271 2.651702
++ 4.055297 5.545795 3.115122
++ 3.149245 5.995564 2.531107
++ 4.753204 7.463130 2.340945
++ 4.433578 7.904044 1.396734
++ 4.585895 8.175303 3.148978
++ 5.814065 7.218764 2.286557
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_aminont91.lib.save amber11/AmberTools/test/sleap/oldleap/ff91/all_aminont91.lib.save
+--- amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_aminont91.lib.save 2010-03-31 07:05:23.000000000 +0400
++++ amber11/AmberTools/test/sleap/oldleap/ff91/all_aminont91.lib.save 2011-03-08 16:38:44.000000000 +0300
+@@ -290,7 +290,7 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.230747 4.925147 1.196914
+- 4.828085 5.500165 0.713033
++ 3.983296 5.433818 1.972557
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NSER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -414,7 +414,7 @@
+ 1.784422 4.436955 2.124895
+ 1.764698 4.397850 0.345787
+ 3.971494 2.947416 2.411212
+- 4.374397 3.770738 2.696536
++ 3.724043 3.456087 3.186855
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NTHR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -558,15 +558,15 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.857033 4.748192 2.579338
+- 5.821217 4.249596 2.480083
+- 4.990360 5.695010 3.102655
+- 4.176711 4.112860 3.146449
+- 5.226485 5.898474 0.401698
+- 5.794506 5.938748 1.331123
+- 5.883342 6.134649 -0.435476
+- 4.414018 6.624028 0.441300
++ 5.354265 4.863179 1.185791
++ 3.853427 5.762894 -0.062862
++ 2.773446 5.910110 -0.054565
++ 4.351509 6.732051 -0.090207
++ 4.134162 5.185701 -0.943848
++ 3.881095 5.817649 2.426715
++ 4.181612 5.279606 3.325770
++ 4.379188 6.786828 2.400358
++ 2.801124 5.964886 2.435947
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NLEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -718,12 +718,12 @@
+ 3.671552 3.399212 3.380613
+ 3.485641 1.869279 2.490736
+ 4.230199 4.986696 1.245167
+- 4.638709 4.784431 2.235272
+- 3.258221 5.469711 1.345449
+- 5.178160 5.906245 0.482655
+- 5.735477 5.933935 1.418994
+- 5.840562 6.170139 -0.341774
+- 4.354989 6.619215 0.529171
++ 3.931816 5.541027 0.355344
++ 5.312304 4.855747 1.245167
++ 3.812283 5.761636 2.490333
++ 4.110763 5.208108 3.380624
++ 4.296680 6.738088 2.490828
++ 2.730275 5.893388 2.490801
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -863,9 +863,9 @@
+ 3.716963 3.477633 3.370556
+ 3.499621 1.931327 2.516833
+ 4.274181 5.009604 1.194574
+- 4.690774 4.823320 2.184447
+- 4.954792 5.645336 0.628258
+- 3.310286 5.508600 1.294624
++ 3.973778 5.548459 0.295968
++ 3.993550 5.587589 2.075074
++ 5.354265 4.863179 1.185791
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NVAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -991,10 +991,10 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.253694 5.017114 1.232141
+- 3.666601 5.213107 2.293908
+- 5.062354 5.920372 0.673198
+- 5.699537 6.377296 0.036552
+- 4.754312 6.389897 1.512695
++ 5.005295 5.340406 0.315070
++ 3.984875 5.817912 2.265912
++ 4.408006 6.733705 2.314738
++ 3.359598 5.504301 2.994456
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1130,13 +1130,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.220277 5.927344 0.433563
+- 4.913588 6.591689 1.420998
+- 6.050965 6.373808 -0.511346
+- 5.971268 7.107959 0.177690
+- 6.636748 6.497679 -1.324743
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.906966 5.848446 2.410297
++ 3.138947 5.408353 3.262885
++ 4.458847 7.061526 2.488328
++ 4.248421 7.659050 3.274958
++ 5.084275 7.376210 1.760376
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NGLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1303,20 +1303,20 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.125319 6.253797 -0.719124
+- 6.688164 6.300372 -1.556463
+- 6.117846 7.301883 0.099632
+- 5.907135 8.163840 1.090353
+- 5.292210 7.913283 1.851398
+- 6.363014 9.065005 1.077109
+- 6.926823 7.627695 -0.904511
+- 7.501836 7.713669 -1.730386
+- 6.873063 8.384728 -0.238094
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.540311 7.142726 2.424478
++ 5.151800 7.375491 1.655062
++ 4.364270 8.040994 3.389374
++ 3.575005 7.807613 4.434120
++ 3.088928 6.925430 4.508833
++ 3.465343 8.513638 5.147984
++ 5.006244 9.201290 3.286985
++ 5.604850 9.375324 2.492326
++ 4.892201 9.903050 4.004360
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1463,13 +1463,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 4.722990 6.580423 1.708019
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 3.339711 5.691917 3.169798
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NHID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1609,13 +1609,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 6.629203 7.441424 -0.586231
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.896295 7.605082 0.676854
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NHIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1759,14 +1759,14 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 4.722990 6.580423 1.708019
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 6.629203 7.441424 -0.586231
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 3.339711 5.691917 3.169798
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.896295 7.605082 0.676854
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NHIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1936,20 +1936,20 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 4.941957 6.093161 0.993054
+- 4.555798 6.518222 1.919501
+- 5.833674 6.587638 -0.009560
+- 5.727864 7.297382 0.701192
+- 6.577083 6.691104 -1.083216
+- 6.699953 7.881667 -0.356949
+- 7.350710 8.089828 -1.206234
+- 6.471604 8.773711 0.684306
+- 7.153163 9.167983 -0.069436
+- 6.163215 9.539474 1.752484
+- 6.850900 10.076243 1.098979
+- 5.726463 10.185215 2.927374
+- 6.404130 10.841773 2.381664
+- 5.125146 10.546906 4.138818
++ 4.023443 5.931088 2.293236
++ 3.368827 5.705470 3.135064
++ 4.811936 7.073557 1.949805
++ 4.882911 7.922013 2.493114
++ 5.427345 6.842058 0.816764
++ 6.297161 7.689048 0.119607
++ 6.531228 8.676646 0.517052
++ 6.814097 7.187003 -1.069017
++ 7.498083 7.791848 -1.664355
++ 6.482667 5.953109 -1.505090
++ 6.897672 5.575635 -2.439640
++ 5.604046 5.117349 -0.785625
++ 5.358725 4.126563 -1.168065
++ 5.083391 5.623006 0.411551
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NTRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2108,16 +2108,16 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.021223 6.053049 0.839188
+- 4.662984 6.521610 1.755820
+- 5.904492 6.742286 -0.000329
+- 5.724114 7.440373 0.817130
+- 6.758713 7.099630 -1.050381
+- 6.738282 7.947511 -0.365705
+- 7.536653 7.157250 -2.212917
+- 7.655187 8.096815 -1.673224
+- 8.214242 6.953605 -3.420974
+- 8.451251 7.942064 -3.027432
++ 3.911603 5.857254 2.409885
++ 3.236109 5.513847 3.193390
++ 4.490005 7.129516 2.492349
++ 4.264839 7.776656 3.340058
++ 5.357612 7.570590 1.486013
++ 5.807939 8.561136 1.550217
++ 5.646816 6.739401 0.397212
++ 6.322310 7.082808 -0.386292
++ 5.068414 5.467139 0.314748
++ 5.293580 4.820000 -0.532961
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NPHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2276,17 +2276,17 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 5.102503 5.984523 0.660315
+- 4.777863 6.502414 1.562811
+- 5.985574 6.611197 -0.227077
+- 5.846174 7.352316 0.559949
+- 6.824378 6.891857 -1.312267
+- 6.854321 7.991157 -0.512116
+- 6.305234 7.900783 0.270147
+- 7.573657 6.866032 -2.494602
+- 7.737299 7.827553 -2.007982
+- 8.211756 6.577405 -3.706841
+- 8.492629 7.576371 -3.373257
++ 4.059917 5.918914 2.227275
++ 3.400094 5.668222 3.057870
++ 4.699989 7.163550 2.192787
++ 4.538509 7.881896 2.996531
++ 5.547468 7.485540 1.125968
++ 6.169252 8.694615 1.092466
++ 5.956320 9.246984 1.848209
++ 5.754874 6.562895 0.093637
++ 6.414696 6.813587 -0.736958
++ 5.114801 5.318259 0.128125
++ 5.276282 4.599913 -0.675619
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NTYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2421,11 +2421,11 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 3.302423 5.493308 1.295046
+- 4.682911 4.808028 2.184869
+- 5.220383 5.890117 0.404729
+- 6.306867 5.987364 1.035359
+- 4.568248 6.850423 -0.085305
++ 5.347407 4.849844 1.186161
++ 3.966920 5.535124 0.296338
++ 3.873721 5.805373 2.428701
++ 4.594575 5.679017 3.454373
++ 2.855955 6.542075 2.333709
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NGLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2542,8 +2542,8 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.275095 5.011382 1.194525
+- 5.214909 5.080371 2.030940
+- 3.476290 5.943429 0.910275
++ 3.669104 5.954940 0.620005
++ 5.407723 5.091882 1.740669
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2697,18 +2697,18 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.145332 6.228186 -0.769897
+- 7.203874 5.974714 -0.827698
+- 5.823386 6.659994 -1.717522
+- 5.933539 7.203239 0.309601
+- 6.482814 7.265694 1.154880
+- 6.528435 7.362078 -0.491005
+- 5.203409 7.900796 0.330212
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.578316 7.173413 2.389148
++ 5.658401 7.026988 2.380365
++ 4.277913 7.712268 1.490542
++ 4.199407 7.952315 3.576852
++ 4.478064 7.453372 4.409622
++ 4.661173 8.850231 3.551971
++ 3.198660 8.088474 3.584954
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NLYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2838,11 +2838,11 @@
+ 4.408167 0.002206 -0.902255
+ 3.942020 -0.287863 0.790585
+ 5.543318 1.147472 0.544698
+- 6.081407 2.093874 0.598404
+- 5.996931 0.515001 -0.218399
+- 5.523452 0.447794 1.882665
+- 6.357566 0.073964 1.288859
+- 5.873440 1.245104 2.538335
++ 6.406713 0.710625 0.042886
++ 5.648269 1.022234 1.622381
++ 5.375452 2.604420 0.185221
++ 5.701342 3.225018 1.019939
++ 5.977270 2.833894 -0.694128
+ 3.941702 2.857530 -0.104508
+ 3.944087 3.337627 0.874062
+ 2.888662 3.951879 -0.204456
+@@ -2964,9 +2964,9 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.309567 5.303525 1.366033
+- 5.145787 5.839753 0.481671
+- 4.563172 5.041444 1.938780
+- 3.657120 5.491212 1.354764
++ 3.725381 5.622023 2.517634
++ 4.051868 5.551722 0.788945
++ 4.957920 5.101954 1.372960
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NCYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -3081,8 +3081,8 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.309567 5.303525 1.366033
+- 4.563172 5.041444 1.938780
+- 3.657120 5.491212 1.354764
++ 4.051868 5.551722 0.788945
++ 4.957920 5.101954 1.372960
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NCYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -3224,15 +3224,15 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.402881 6.076526 0.265157
+- 5.724538 5.972445 0.854008
+- 4.818486 6.422214 0.269993
+- 6.377314 6.105674 -1.224148
+- 6.034578 6.467191 -2.193651
+- 6.303017 6.908485 -0.490613
+- 7.415066 5.781911 -1.303828
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.817297 5.981271 2.651702
++ 4.055297 5.545795 3.115122
++ 3.149245 5.995564 2.531107
++ 4.753204 7.463130 2.340945
++ 4.433578 7.904044 1.396734
++ 4.585895 8.175303 3.148978
++ 5.814065 7.218764 2.286557
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NMET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_nucleic91.lib.save amber11/AmberTools/test/sleap/oldleap/ff91/all_nucleic91.lib.save
+--- amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_nucleic91.lib.save 2010-03-31 07:05:23.000000000 +0400
++++ amber11/AmberTools/test/sleap/oldleap/ff91/all_nucleic91.lib.save 2011-03-08 16:38:44.000000000 +0300
+@@ -162,27 +162,27 @@
+ 3.710733 0.830490 -3.744234
+ 1.911850 1.246480 -4.585645
+ 1.227112 2.479938 -4.747250
+- 1.435744 3.548600 -4.696894
+- 1.460583 2.154521 -6.213536
+- 0.611235 3.180043 -6.535735
+- -0.465186 3.098120 -6.567442
+- 1.349267 3.870896 -7.353068
+- -0.036082 3.758044 -7.339885
+- 0.351402 4.533174 -8.439444
+- -0.960336 4.612555 -8.701439
+- -1.624968 4.152050 -8.096212
+- -1.284404 5.132893 -9.504140
+- 1.216752 5.151275 -9.254748
+- -0.058580 5.292957 -9.604538
+- 0.617022 5.800159 -10.277374
+- -1.311694 5.457396 -9.985412
+- -2.648827 5.295295 -9.894316
++ 1.476326 2.910069 -5.717291
++ -0.266632 2.222549 -4.860734
++ -1.220065 2.003738 -3.901574
++ -0.944101 1.997212 -2.857447
++ -2.424721 1.879538 -4.374202
++ -2.264060 2.025899 -5.747107
++ -3.171716 1.996442 -6.812608
++ -4.488141 1.800018 -6.657550
++ -4.872966 1.663197 -5.733813
++ -5.095547 1.788787 -7.464416
++ -2.681111 2.175962 -8.046577
++ -1.373728 2.370469 -8.194275
++ -0.957583 2.517234 -9.180015
++ -0.428694 2.418225 -7.273933
++ -0.949520 2.234705 -6.042040
+ 2.953825 2.805883 -3.147902
+ 2.001837 3.312549 -3.306355
+ 1.598529 3.379160 -3.566738
+ 1.132115 3.871151 -2.713214
+ 1.786595 4.328794 -4.619224
+- 1.990348 5.218376 -4.321352
++ 0.918045 4.664210 -4.853138
+ 3.951586 3.479347 -3.901109
+ !entry.RADE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+ 1 30 0 0 0 0
+@@ -367,25 +367,25 @@
+ 3.710733 0.830490 -3.744234
+ 1.911850 1.246480 -4.585645
+ 1.227112 2.479938 -4.747250
+- 1.435744 3.548600 -4.696894
+- 1.485202 2.137699 -6.174261
+- 0.655381 3.211408 -6.264512
+- -0.423435 3.161813 -6.254680
+- 1.273874 3.921103 -7.246041
+- 2.001469 4.404856 -7.897723
+- -0.138537 4.008754 -7.451742
+- 0.496986 4.687819 -8.388428
+- 1.506269 4.703628 -8.353806
+- -0.021913 5.169907 -9.108453
+- -1.467764 3.981289 -7.487821
+- -2.803489 3.801409 -7.305937
+- -2.649940 4.509819 -8.312007
++ 1.476326 2.910069 -5.717291
++ -0.230375 2.189658 -4.854806
++ -0.988446 1.979043 -3.745496
++ -0.535467 2.020843 -2.765974
++ -2.318623 1.714239 -3.846032
++ -2.910767 1.548015 -2.946124
++ -2.871582 1.669472 -5.164035
++ -4.156011 1.417550 -5.334852
++ -4.717568 1.261374 -4.510012
++ -4.549259 1.385324 -6.264593
++ -2.122766 1.876681 -6.243498
++ -0.794090 2.140091 -6.121697
++ -0.063349 2.338641 -7.103631
+ 2.953825 2.805883 -3.147902
+ 3.277337 2.955353 -2.117806
+ 1.598529 3.379160 -3.566738
+ 1.132115 3.871151 -2.713214
+ 1.786595 4.328794 -4.619224
+- 1.990348 5.218376 -4.321352
++ 0.918045 4.664210 -4.853138
+ 3.951586 3.479347 -3.901109
+ !entry.RCYT.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+ 1 28 0 0 0 0
+@@ -581,28 +581,28 @@
+ 3.710733 0.830490 -3.744234
+ 1.911850 1.246480 -4.585645
+ 1.227112 2.479938 -4.747250
+- 1.435744 3.548600 -4.696894
+- 1.485985 2.137078 -6.173971
+- 0.630205 3.182508 -6.455250
+- -0.447083 3.109089 -6.476705
+- 1.375610 3.824568 -7.320253
+- -0.009195 3.704817 -7.311681
+- 0.430021 4.484569 -8.414167
+- -0.743299 4.619666 -8.757634
+- 1.449094 5.077582 -9.169036
+- 2.230864 5.470422 -9.653301
+- 0.193424 5.321243 -9.687036
+- 1.134074 5.907027 -10.440452
+- 2.131730 5.897532 -10.283319
+- 0.809583 6.430577 -11.240890
+- -1.093830 5.428430 -10.003875
+- -2.446615 5.292973 -9.968886
++ 1.476326 2.910069 -5.717291
++ -0.230179 2.188641 -4.854706
++ -1.148250 1.950412 -3.852312
++ -0.834533 1.961464 -2.818939
++ -2.363371 1.722968 -4.285727
++ -2.247746 1.815662 -5.667805
++ -3.226774 1.665775 -6.685370
++ -4.425333 1.414365 -6.570704
++ -2.671302 1.843175 -7.958154
++ -3.284184 1.755160 -8.743412
++ -1.346177 2.129674 -8.215759
++ -1.013622 2.261923 -9.507083
++ -1.624549 2.163147 -10.305276
++ -0.043809 2.463028 -9.704869
++ -0.430928 2.271846 -7.261291
++ -0.954757 2.102421 -6.017708
+ 2.953825 2.805883 -3.147902
+ 3.277337 2.955353 -2.117806
+ 1.598529 3.379160 -3.566738
+ 1.132115 3.871151 -2.713214
+ 1.786595 4.328794 -4.619224
+- 1.990348 5.218376 -4.321352
++ 0.918045 4.664210 -4.853138
+ 3.951586 3.479347 -3.901109
+ !entry.RGUA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+ 1 31 0 0 0 0
+@@ -876,24 +876,24 @@
+ 3.710733 0.830490 -3.744234
+ 1.911850 1.246480 -4.585645
+ 1.227112 2.479938 -4.747250
+- 1.435744 3.548600 -4.696894
+- 1.462119 2.152380 -6.223183
+- 0.621409 3.225476 -6.359458
+- -0.457084 3.168437 -6.359671
+- 1.227187 3.969404 -7.294982
+- 1.951054 4.453936 -7.950226
+- -0.178556 4.113730 -7.571852
+- 0.321873 4.770160 -8.483756
+- -1.548942 3.990804 -7.465412
+- -1.150751 4.582332 -8.289814
+- -2.922393 3.884686 -7.383122
+- -2.754887 4.581962 -8.370112
++ 1.476326 2.910069 -5.717291
++ -0.276459 2.220856 -4.861481
++ -1.084733 2.020834 -3.773554
++ -0.665763 2.042111 -2.778360
++ -2.406530 1.849990 -3.912354
++ -3.030993 1.692292 -3.032992
++ -3.019582 1.871650 -5.215158
++ -4.219997 1.724488 -5.439315
++ -2.132048 2.078389 -6.251470
++ -2.549647 2.102845 -7.258005
++ -0.768247 2.257235 -6.139841
++ -0.062611 2.434266 -7.119196
+ 2.953825 2.805883 -3.147902
+ 3.102654 2.968023 -2.080353
+ 1.598529 3.379160 -3.566738
+ 1.132115 3.871151 -2.713214
+ 1.786595 4.328794 -4.619224
+- 1.990348 5.218376 -4.321352
++ 0.918045 4.664210 -4.853138
+ 3.951586 3.479347 -3.901109
+ !entry.RURA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+ 1 27 0 0 0 0
+@@ -1080,21 +1080,21 @@
+ 3.710733 0.830490 -3.744234
+ 1.911850 1.246480 -4.585645
+ 1.227112 2.479938 -4.747250
+- 1.435744 3.548600 -4.696894
+- 1.460583 2.154521 -6.213536
+- 0.611235 3.180043 -6.535735
+- -0.465186 3.098120 -6.567442
+- 1.349267 3.870896 -7.353068
+- -0.036082 3.758044 -7.339885
+- 0.351402 4.533174 -8.439444
+- -0.960336 4.612555 -8.701439
+- -1.624968 4.152050 -8.096212
+- -1.284404 5.132893 -9.504140
+- 1.216752 5.151275 -9.254748
+- -0.058580 5.292957 -9.604538
+- 0.617022 5.800159 -10.277374
+- -1.311694 5.457396 -9.985412
+- -2.648827 5.295295 -9.894316
++ 1.476326 2.910069 -5.717291
++ -0.266632 2.222549 -4.860734
++ -1.220065 2.003738 -3.901574
++ -0.944101 1.997212 -2.857447
++ -2.424721 1.879538 -4.374202
++ -2.264060 2.025899 -5.747107
++ -3.171716 1.996442 -6.812608
++ -4.488141 1.800018 -6.657550
++ -4.872966 1.663197 -5.733813
++ -5.095547 1.788787 -7.464416
++ -2.681111 2.175962 -8.046577
++ -1.373728 2.370469 -8.194275
++ -0.957583 2.517234 -9.180015
++ -0.428694 2.418225 -7.273933
++ -0.949520 2.234705 -6.042040
+ 2.953825 2.805883 -3.147902
+ 3.102654 2.968023 -2.080353
+ 1.598529 3.379160 -3.566738
+@@ -1279,19 +1279,19 @@
+ 3.710733 0.830490 -3.744234
+ 1.911850 1.246480 -4.585645
+ 1.227112 2.479938 -4.747250
+- 1.435744 3.548600 -4.696894
+- 1.485202 2.137699 -6.174261
+- 0.655381 3.211408 -6.264512
+- -0.423435 3.161813 -6.254680
+- 1.273874 3.921103 -7.246041
+- 2.001469 4.404856 -7.897723
+- -0.138537 4.008754 -7.451742
+- 0.496986 4.687819 -8.388428
+- 1.506269 4.703628 -8.353806
+- -0.021913 5.169907 -9.108453
+- -1.467764 3.981289 -7.487821
+- -2.803489 3.801409 -7.305937
+- -2.649940 4.509819 -8.312007
++ 1.476326 2.910069 -5.717291
++ -0.230375 2.189658 -4.854806
++ -0.988446 1.979043 -3.745496
++ -0.535467 2.020843 -2.765974
++ -2.318623 1.714239 -3.846032
++ -2.910767 1.548015 -2.946124
++ -2.871582 1.669472 -5.164035
++ -4.156011 1.417550 -5.334852
++ -4.717568 1.261374 -4.510012
++ -4.549259 1.385324 -6.264593
++ -2.122766 1.876681 -6.243498
++ -0.794090 2.140091 -6.121697
++ -0.063349 2.338641 -7.103631
+ 2.953825 2.805883 -3.147902
+ 3.277337 2.955353 -2.117806
+ 1.598529 3.379160 -3.566738
+@@ -1487,22 +1487,22 @@
+ 3.710733 0.830490 -3.744234
+ 1.911850 1.246480 -4.585645
+ 1.227112 2.479938 -4.747250
+- 1.435744 3.548600 -4.696894
+- 1.485985 2.137078 -6.173971
+- 0.630205 3.182508 -6.455250
+- -0.447083 3.109089 -6.476705
+- 1.375610 3.824568 -7.320253
+- -0.009195 3.704817 -7.311681
+- 0.430021 4.484569 -8.414167
+- -0.743299 4.619666 -8.757634
+- 1.449094 5.077582 -9.169036
+- 2.230864 5.470422 -9.653301
+- 0.193424 5.321243 -9.687036
+- 1.134074 5.907027 -10.440452
+- 2.131730 5.897532 -10.283319
+- 0.809583 6.430577 -11.240890
+- -1.093830 5.428430 -10.003875
+- -2.446615 5.292973 -9.968886
++ 1.476326 2.910069 -5.717291
++ -0.230179 2.188641 -4.854706
++ -1.148250 1.950412 -3.852312
++ -0.834533 1.961464 -2.818939
++ -2.363371 1.722968 -4.285727
++ -2.247746 1.815662 -5.667805
++ -3.226774 1.665775 -6.685370
++ -4.425333 1.414365 -6.570704
++ -2.671302 1.843175 -7.958154
++ -3.284184 1.755160 -8.743412
++ -1.346177 2.129674 -8.215759
++ -1.013622 2.261923 -9.507083
++ -1.624549 2.163147 -10.305276
++ -0.043809 2.463028 -9.704869
++ -0.430928 2.271846 -7.261291
++ -0.954757 2.102421 -6.017708
+ 2.953825 2.805883 -3.147902
+ 3.277337 2.955353 -2.117806
+ 1.598529 3.379160 -3.566738
+@@ -1788,21 +1788,21 @@
+ 3.710733 0.830490 -3.744234
+ 1.911850 1.246480 -4.585645
+ 1.227112 2.479938 -4.747250
+- 1.435744 3.548600 -4.696894
+- 1.462119 2.152380 -6.223183
+- 0.621409 3.225476 -6.359458
+- -0.457084 3.168437 -6.359671
+- 1.227187 3.969404 -7.294982
+- 2.191055 4.651430 -8.220076
+- 2.843927 3.908200 -8.677753
+- 1.638142 5.177191 -8.998511
+- 2.792502 5.365208 -7.657153
+- -0.178556 4.113730 -7.571852
+- 0.321873 4.770160 -8.483756
+- -1.548942 3.990804 -7.465412
+- -1.150751 4.582332 -8.289814
+- -2.922393 3.884686 -7.383122
+- -2.754887 4.581962 -8.370112
++ 1.476326 2.910069 -5.717291
++ -0.276459 2.220856 -4.861481
++ -1.084733 2.020834 -3.773554
++ -0.665763 2.042111 -2.778360
++ -2.406530 1.849990 -3.912354
++ -3.300021 1.630344 -2.727690
++ -3.231144 2.486293 -2.056343
++ -4.330132 1.515881 -3.065138
++ -2.988981 0.729023 -2.199511
++ -3.019582 1.871650 -5.215158
++ -4.219997 1.724488 -5.439315
++ -2.132048 2.078389 -6.251470
++ -2.549647 2.102845 -7.258005
++ -0.768247 2.257235 -6.139841
++ -0.062611 2.434266 -7.119196
+ 2.953825 2.805883 -3.147902
+ 3.102654 2.968023 -2.080353
+ 1.598529 3.379160 -3.566738
+diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_amino94.lib.save amber11/AmberTools/test/sleap/oldleap/ff94/all_amino94.lib.save
+--- amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_amino94.lib.save 2010-03-31 07:05:23.000000000 +0400
++++ amber11/AmberTools/test/sleap/oldleap/ff94/all_amino94.lib.save 2011-03-08 16:38:44.000000000 +0300
+@@ -260,7 +260,7 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.230747 4.925147 1.196914
+- 4.828085 5.500165 0.713033
++ 3.983296 5.433818 1.972557
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.SER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -372,7 +372,7 @@
+ 1.784422 4.436955 2.124895
+ 1.764698 4.397850 0.345787
+ 3.971494 2.947416 2.411212
+- 4.374397 3.770738 2.696536
++ 3.724043 3.456087 3.186855
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.THR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -504,15 +504,15 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.857033 4.748192 2.579338
+- 5.821217 4.249596 2.480083
+- 4.990360 5.695010 3.102655
+- 4.176711 4.112860 3.146449
+- 5.226485 5.898474 0.401698
+- 5.794506 5.938748 1.331123
+- 5.883342 6.134649 -0.435476
+- 4.414018 6.624028 0.441300
++ 5.354265 4.863179 1.185791
++ 3.853427 5.762894 -0.062862
++ 2.773446 5.910110 -0.054565
++ 4.351509 6.732051 -0.090207
++ 4.134162 5.185701 -0.943848
++ 3.881095 5.817649 2.426715
++ 4.181612 5.279606 3.325770
++ 4.379188 6.786828 2.400358
++ 2.801124 5.964886 2.435947
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.LEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -652,12 +652,12 @@
+ 3.671552 3.399212 3.380613
+ 3.485641 1.869279 2.490736
+ 4.230199 4.986696 1.245167
+- 3.258221 5.469711 1.345449
+- 4.638709 4.784431 2.235272
+- 5.178160 5.906245 0.482655
+- 5.735477 5.933935 1.418994
+- 5.840562 6.170139 -0.341774
+- 4.354989 6.619215 0.529171
++ 5.312304 4.855747 1.245167
++ 3.931816 5.541027 0.355344
++ 3.812283 5.761636 2.490333
++ 4.110763 5.208108 3.380624
++ 4.296680 6.738088 2.490828
++ 2.730275 5.893388 2.490801
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.ILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -785,9 +785,9 @@
+ 3.716963 3.477633 3.370556
+ 3.499621 1.931327 2.516833
+ 4.274181 5.009604 1.194574
+- 4.690774 4.823320 2.184447
+- 4.954792 5.645336 0.628258
+- 3.310286 5.508600 1.294624
++ 3.973778 5.548459 0.295968
++ 3.993550 5.587589 2.075074
++ 5.354265 4.863179 1.185791
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.VAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -901,10 +901,10 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.253694 5.017114 1.232141
+- 3.666601 5.213107 2.293908
+- 5.062354 5.920372 0.673198
+- 5.699537 6.377296 0.036552
+- 4.754312 6.389897 1.512695
++ 5.005295 5.340406 0.315070
++ 3.984875 5.817912 2.265912
++ 4.408006 6.733705 2.314738
++ 3.359598 5.504301 2.994456
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.ASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1028,13 +1028,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.220277 5.927344 0.433563
+- 4.913588 6.591689 1.420998
+- 6.050965 6.373808 -0.511346
+- 5.971268 7.107959 0.177690
+- 6.636748 6.497679 -1.324743
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.906966 5.848446 2.410297
++ 3.138947 5.408353 3.262885
++ 4.458847 7.061526 2.488328
++ 4.248421 7.659050 3.274958
++ 5.084275 7.376210 1.760376
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.GLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1189,20 +1189,20 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.125319 6.253797 -0.719124
+- 6.688164 6.300372 -1.556463
+- 6.117846 7.301883 0.099632
+- 5.907135 8.163840 1.090353
+- 5.292210 7.913283 1.851398
+- 6.363014 9.065005 1.077109
+- 6.926823 7.627695 -0.904511
+- 7.501836 7.713669 -1.730386
+- 6.873063 8.384728 -0.238094
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.540311 7.142726 2.424478
++ 5.151800 7.375491 1.655062
++ 4.364270 8.040994 3.389374
++ 3.575005 7.807613 4.434120
++ 3.088928 6.925430 4.508833
++ 3.465343 8.513638 5.147984
++ 5.006244 9.201290 3.286985
++ 5.604850 9.375324 2.492326
++ 4.892201 9.903050 4.004360
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.ARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1337,13 +1337,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 4.722990 6.580423 1.708019
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 3.339711 5.691917 3.169798
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.HID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1471,13 +1471,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 6.629203 7.441424 -0.586231
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.896295 7.605082 0.676854
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.HIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1609,14 +1609,14 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 4.722990 6.580423 1.708019
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 6.629203 7.441424 -0.586231
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 3.339711 5.691917 3.169798
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.896295 7.605082 0.676854
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.HIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1774,20 +1774,20 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 4.941957 6.093161 0.993054
+- 4.555798 6.518222 1.919501
+- 5.833674 6.587638 -0.009560
+- 5.727864 7.297382 0.701192
+- 6.577083 6.691104 -1.083216
+- 6.699953 7.881667 -0.356949
+- 7.350710 8.089828 -1.206234
+- 6.471604 8.773711 0.684306
+- 7.153163 9.167983 -0.069436
+- 6.163215 9.539474 1.752484
+- 6.850900 10.076243 1.098979
+- 5.726463 10.185215 2.927374
+- 6.404130 10.841773 2.381664
+- 5.125146 10.546906 4.138818
++ 4.023443 5.931088 2.293236
++ 3.368827 5.705470 3.135064
++ 4.811936 7.073557 1.949805
++ 4.882911 7.922013 2.493114
++ 5.427345 6.842058 0.816764
++ 6.297161 7.689048 0.119607
++ 6.531228 8.676646 0.517052
++ 6.814097 7.187003 -1.069017
++ 7.498083 7.791848 -1.664355
++ 6.482667 5.953109 -1.505090
++ 6.897672 5.575635 -2.439640
++ 5.604046 5.117349 -0.785625
++ 5.358725 4.126563 -1.168065
++ 5.083391 5.623006 0.411551
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.TRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1934,16 +1934,16 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.021223 6.053049 0.839188
+- 4.662984 6.521610 1.755820
+- 5.904492 6.742286 -0.000329
+- 5.724114 7.440373 0.817130
+- 6.758713 7.099630 -1.050381
+- 6.738282 7.947511 -0.365705
+- 7.536653 7.157250 -2.212917
+- 7.655187 8.096815 -1.673224
+- 8.214242 6.953605 -3.420974
+- 8.451251 7.942064 -3.027432
++ 3.911603 5.857254 2.409885
++ 3.236109 5.513847 3.193390
++ 4.490005 7.129516 2.492349
++ 4.264839 7.776656 3.340058
++ 5.357612 7.570590 1.486013
++ 5.807939 8.561136 1.550217
++ 5.646816 6.739401 0.397212
++ 6.322310 7.082808 -0.386292
++ 5.068414 5.467139 0.314748
++ 5.293580 4.820000 -0.532961
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.PHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2090,17 +2090,17 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 5.102503 5.984523 0.660315
+- 4.777863 6.502414 1.562811
+- 5.985574 6.611197 -0.227077
+- 5.846174 7.352316 0.559949
+- 6.824378 6.891857 -1.312267
+- 6.854321 7.991157 -0.512116
+- 6.305234 7.900783 0.270147
+- 7.573657 6.866032 -2.494602
+- 7.737299 7.827553 -2.007982
+- 8.211756 6.577405 -3.706841
+- 8.492629 7.576371 -3.373257
++ 4.059917 5.918914 2.227275
++ 3.400094 5.668222 3.057870
++ 4.699989 7.163550 2.192787
++ 4.538509 7.881896 2.996531
++ 5.547468 7.485540 1.125968
++ 6.169252 8.694615 1.092466
++ 5.956320 9.246984 1.848209
++ 5.754874 6.562895 0.093637
++ 6.414696 6.813587 -0.736958
++ 5.114801 5.318259 0.128125
++ 5.276282 4.599913 -0.675619
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.TYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2223,11 +2223,11 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 3.302423 5.493308 1.295046
+- 4.682911 4.808028 2.184869
+- 5.220383 5.890117 0.404729
+- 6.306867 5.987364 1.035359
+- 4.568248 6.850423 -0.085305
++ 5.347407 4.849844 1.186161
++ 3.966920 5.535124 0.296338
++ 3.873721 5.805373 2.428701
++ 4.594575 5.679017 3.454373
++ 2.855955 6.542075 2.333709
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.GLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2332,8 +2332,8 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.275095 5.011382 1.194525
+- 5.214909 5.080371 2.030940
+- 3.476290 5.943429 0.910275
++ 3.669104 5.954940 0.620005
++ 5.407723 5.091882 1.740669
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.ASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2475,18 +2475,18 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.145332 6.228186 -0.769897
+- 7.203874 5.974714 -0.827698
+- 5.823386 6.659994 -1.717522
+- 5.933539 7.203239 0.309601
+- 6.482814 7.265694 1.154880
+- 6.528435 7.362078 -0.491005
+- 5.203409 7.900796 0.330212
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.578316 7.173413 2.389148
++ 5.658401 7.026988 2.380365
++ 4.277913 7.712268 1.490542
++ 4.199407 7.952315 3.576852
++ 4.478064 7.453372 4.409622
++ 4.661173 8.850231 3.551971
++ 3.198660 8.088474 3.584954
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.LYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2634,17 +2634,17 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.145332 6.228186 -0.769897
+- 7.203874 5.974714 -0.827698
+- 5.823386 6.659994 -1.717522
+- 5.933539 7.203239 0.309601
+- 6.528435 7.362078 -0.491005
+- 5.203409 7.900796 0.330212
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.578316 7.173413 2.389148
++ 5.658401 7.026988 2.380365
++ 4.277913 7.712268 1.490542
++ 4.199407 7.952315 3.576852
++ 4.661173 8.850231 3.551971
++ 3.198660 8.088474 3.584954
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.LYN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2761,11 +2761,11 @@
+ 4.419995 0.019280 -0.902255
+ 3.955884 -0.274036 0.790585
+ 5.547124 1.172442 0.544698
+- 6.078592 2.122578 0.598404
+- 6.005141 0.543154 -0.218399
+- 5.532142 0.472642 1.882665
+- 5.876555 1.272377 2.538335
+- 6.368845 0.104645 1.288859
++ 6.413547 0.741633 0.042886
++ 5.652946 1.047940 1.622381
++ 5.369090 2.628183 0.185221
++ 5.969291 2.861853 -0.694128
++ 5.690639 3.251042 1.019939
+ 3.933608 2.871277 -0.104508
+ 3.611466 3.488572 0.734105
+ 3.505165 3.526388 -1.409786
+@@ -2867,7 +2867,7 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.309567 5.303525 1.366033
+- 5.145787 5.839753 0.481671
++ 3.725381 5.622023 2.517634
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.CYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -3079,13 +3079,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.402881 6.076526 0.265157
+- 6.377314 6.105674 -1.224148
+- 6.034578 6.467191 -2.193651
+- 6.303017 6.908485 -0.490613
+- 7.415066 5.781911 -1.303828
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.817297 5.981271 2.651702
++ 4.753204 7.463130 2.340945
++ 4.433578 7.904044 1.396734
++ 4.585895 8.175303 3.148978
++ 5.814065 7.218764 2.286557
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.MET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -3196,9 +3196,9 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.275095 5.011382 1.194525
+- 5.214909 5.080371 2.030940
+- 3.476290 5.943429 0.910275
+- 4.245574 6.470767 0.682862
++ 3.669104 5.954940 0.620005
++ 5.407723 5.091882 1.740669
++ 5.742895 5.987180 1.652921
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.ASH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -3317,12 +3317,12 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 3.302423 5.493308 1.295046
+- 4.682911 4.808028 2.184869
+- 5.220383 5.890117 0.404729
+- 6.306867 5.987364 1.035359
+- 4.568248 6.850423 -0.085305
+- 5.508873 7.035106 -0.033194
++ 5.347407 4.849844 1.186161
++ 3.966920 5.535124 0.296338
++ 3.873721 5.805373 2.428701
++ 4.594575 5.679017 3.454373
++ 2.855955 6.542075 2.333709
++ 2.710512 6.996629 3.166671
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.GLH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_aminoct94.lib.save amber11/AmberTools/test/sleap/oldleap/ff94/all_aminoct94.lib.save
+--- amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_aminoct94.lib.save 2010-03-31 07:05:23.000000000 +0400
++++ amber11/AmberTools/test/sleap/oldleap/ff94/all_aminoct94.lib.save 2011-03-08 16:38:44.000000000 +0300
+@@ -272,7 +272,7 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.230747 4.925147 1.196914
+- 4.828085 5.500165 0.713033
++ 3.983296 5.433818 1.972557
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -390,7 +390,7 @@
+ 1.784422 4.436955 2.124895
+ 1.764698 4.397850 0.345787
+ 3.971494 2.947416 2.411212
+- 4.374397 3.770738 2.696536
++ 3.724043 3.456087 3.186855
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -528,15 +528,15 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.857033 4.748192 2.579338
+- 5.821217 4.249596 2.480083
+- 4.990360 5.695010 3.102655
+- 4.176711 4.112860 3.146449
+- 5.226485 5.898474 0.401698
+- 5.794506 5.938748 1.331123
+- 5.883342 6.134649 -0.435476
+- 4.414018 6.624028 0.441300
++ 5.354265 4.863179 1.185791
++ 3.853427 5.762894 -0.062862
++ 2.773446 5.910110 -0.054565
++ 4.351509 6.732051 -0.090207
++ 4.134162 5.185701 -0.943848
++ 3.881095 5.817649 2.426715
++ 4.181612 5.279606 3.325770
++ 4.379188 6.786828 2.400358
++ 2.801124 5.964886 2.435947
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -682,12 +682,12 @@
+ 3.671552 3.399212 3.380613
+ 3.485641 1.869279 2.490736
+ 4.230199 4.986696 1.245167
+- 3.258221 5.469711 1.345449
+- 4.638709 4.784431 2.235272
+- 5.178160 5.906245 0.482655
+- 5.735477 5.933935 1.418994
+- 5.840562 6.170139 -0.341774
+- 4.354989 6.619215 0.529171
++ 5.312304 4.855747 1.245167
++ 3.931816 5.541027 0.355344
++ 3.812283 5.761636 2.490333
++ 4.110763 5.208108 3.380624
++ 4.296680 6.738088 2.490828
++ 2.730275 5.893388 2.490801
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -821,9 +821,9 @@
+ 3.716963 3.477633 3.370556
+ 3.499621 1.931327 2.516833
+ 4.274181 5.009604 1.194574
+- 4.690774 4.823320 2.184447
+- 4.954792 5.645336 0.628258
+- 3.310286 5.508600 1.294624
++ 3.973778 5.548459 0.295968
++ 3.993550 5.587589 2.075074
++ 5.354265 4.863179 1.185791
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -943,10 +943,10 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.253694 5.017114 1.232141
+- 3.666601 5.213107 2.293908
+- 5.062354 5.920372 0.673198
+- 5.699537 6.377296 0.036552
+- 4.754312 6.389897 1.512695
++ 5.005295 5.340406 0.315070
++ 3.984875 5.817912 2.265912
++ 4.408006 6.733705 2.314738
++ 3.359598 5.504301 2.994456
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -1076,13 +1076,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.220277 5.927344 0.433563
+- 4.913588 6.591689 1.420998
+- 6.050965 6.373808 -0.511346
+- 5.971268 7.107959 0.177690
+- 6.636748 6.497679 -1.324743
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.906966 5.848446 2.410297
++ 3.138947 5.408353 3.262885
++ 4.458847 7.061526 2.488328
++ 4.248421 7.659050 3.274958
++ 5.084275 7.376210 1.760376
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -1243,20 +1243,20 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.125319 6.253797 -0.719124
+- 6.688164 6.300372 -1.556463
+- 6.117846 7.301883 0.099632
+- 5.907135 8.163840 1.090353
+- 5.292210 7.913283 1.851398
+- 6.363014 9.065005 1.077109
+- 6.926823 7.627695 -0.904511
+- 7.501836 7.713669 -1.730386
+- 6.873063 8.384728 -0.238094
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.540311 7.142726 2.424478
++ 5.151800 7.375491 1.655062
++ 4.364270 8.040994 3.389374
++ 3.575005 7.807613 4.434120
++ 3.088928 6.925430 4.508833
++ 3.465343 8.513638 5.147984
++ 5.006244 9.201290 3.286985
++ 5.604850 9.375324 2.492326
++ 4.892201 9.903050 4.004360
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -1397,13 +1397,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 4.722990 6.580423 1.708019
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 3.339711 5.691917 3.169798
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -1537,13 +1537,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 6.629203 7.441424 -0.586231
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.896295 7.605082 0.676854
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -1681,14 +1681,14 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 4.722990 6.580423 1.708019
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 6.629203 7.441424 -0.586231
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 3.339711 5.691917 3.169798
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.896295 7.605082 0.676854
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -1852,20 +1852,20 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 4.941957 6.093161 0.993054
+- 4.555798 6.518222 1.919501
+- 5.833674 6.587638 -0.009560
+- 5.727864 7.297382 0.701192
+- 6.577083 6.691104 -1.083216
+- 6.699953 7.881667 -0.356949
+- 7.350710 8.089828 -1.206234
+- 6.471604 8.773711 0.684306
+- 7.153163 9.167983 -0.069436
+- 6.163215 9.539474 1.752484
+- 6.850900 10.076243 1.098979
+- 5.726463 10.185215 2.927374
+- 6.404130 10.841773 2.381664
+- 5.125146 10.546906 4.138818
++ 4.023443 5.931088 2.293236
++ 3.368827 5.705470 3.135064
++ 4.811936 7.073557 1.949805
++ 4.882911 7.922013 2.493114
++ 5.427345 6.842058 0.816764
++ 6.297161 7.689048 0.119607
++ 6.531228 8.676646 0.517052
++ 6.814097 7.187003 -1.069017
++ 7.498083 7.791848 -1.664355
++ 6.482667 5.953109 -1.505090
++ 6.897672 5.575635 -2.439640
++ 5.604046 5.117349 -0.785625
++ 5.358725 4.126563 -1.168065
++ 5.083391 5.623006 0.411551
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2018,16 +2018,16 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.021223 6.053049 0.839188
+- 4.662984 6.521610 1.755820
+- 5.904492 6.742286 -0.000329
+- 5.724114 7.440373 0.817130
+- 6.758713 7.099630 -1.050381
+- 6.738282 7.947511 -0.365705
+- 7.536653 7.157250 -2.212917
+- 7.655187 8.096815 -1.673224
+- 8.214242 6.953605 -3.420974
+- 8.451251 7.942064 -3.027432
++ 3.911603 5.857254 2.409885
++ 3.236109 5.513847 3.193390
++ 4.490005 7.129516 2.492349
++ 4.264839 7.776656 3.340058
++ 5.357612 7.570590 1.486013
++ 5.807939 8.561136 1.550217
++ 5.646816 6.739401 0.397212
++ 6.322310 7.082808 -0.386292
++ 5.068414 5.467139 0.314748
++ 5.293580 4.820000 -0.532961
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2180,17 +2180,17 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 5.102503 5.984523 0.660315
+- 4.777863 6.502414 1.562811
+- 5.985574 6.611197 -0.227077
+- 5.846174 7.352316 0.559949
+- 6.824378 6.891857 -1.312267
+- 6.854321 7.991157 -0.512116
+- 6.305234 7.900783 0.270147
+- 7.573657 6.866032 -2.494602
+- 7.737299 7.827553 -2.007982
+- 8.211756 6.577405 -3.706841
+- 8.492629 7.576371 -3.373257
++ 4.059917 5.918914 2.227275
++ 3.400094 5.668222 3.057870
++ 4.699989 7.163550 2.192787
++ 4.538509 7.881896 2.996531
++ 5.547468 7.485540 1.125968
++ 6.169252 8.694615 1.092466
++ 5.956320 9.246984 1.848209
++ 5.754874 6.562895 0.093637
++ 6.414696 6.813587 -0.736958
++ 5.114801 5.318259 0.128125
++ 5.276282 4.599913 -0.675619
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2319,11 +2319,11 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 3.302423 5.493308 1.295046
+- 4.682911 4.808028 2.184869
+- 5.220383 5.890117 0.404729
+- 6.306867 5.987364 1.035359
+- 4.568248 6.850423 -0.085305
++ 5.347407 4.849844 1.186161
++ 3.966920 5.535124 0.296338
++ 3.873721 5.805373 2.428701
++ 4.594575 5.679017 3.454373
++ 2.855955 6.542075 2.333709
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2434,8 +2434,8 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.275095 5.011382 1.194525
+- 5.214909 5.080371 2.030940
+- 3.476290 5.943429 0.910275
++ 3.669104 5.954940 0.620005
++ 5.407723 5.091882 1.740669
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2583,18 +2583,18 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.145332 6.228186 -0.769897
+- 7.203874 5.974714 -0.827698
+- 5.823386 6.659994 -1.717522
+- 5.933539 7.203239 0.309601
+- 6.482814 7.265694 1.154880
+- 6.528435 7.362078 -0.491005
+- 5.203409 7.900796 0.330212
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.578316 7.173413 2.389148
++ 5.658401 7.026988 2.380365
++ 4.277913 7.712268 1.490542
++ 4.199407 7.952315 3.576852
++ 4.478064 7.453372 4.409622
++ 4.661173 8.850231 3.551971
++ 3.198660 8.088474 3.584954
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -2718,11 +2718,11 @@
+ 4.419995 0.019280 -0.902255
+ 3.955884 -0.274036 0.790585
+ 5.547124 1.172442 0.544698
+- 6.078592 2.122578 0.598404
+- 6.005141 0.543154 -0.218399
+- 5.532142 0.472642 1.882665
+- 5.876555 1.272377 2.538335
+- 6.368845 0.104645 1.288859
++ 6.413547 0.741633 0.042886
++ 5.652946 1.047940 1.622381
++ 5.369090 2.628183 0.185221
++ 5.969291 2.861853 -0.694128
++ 5.690639 3.251042 1.019939
+ 3.933608 2.871277 -0.104508
+ 3.611466 3.488572 0.734105
+ 3.505165 3.526388 -1.409786
+@@ -2830,7 +2830,7 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.309567 5.303525 1.366033
+- 5.145787 5.839753 0.481671
++ 3.725381 5.622023 2.517634
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+@@ -3054,13 +3054,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.402881 6.076526 0.265157
+- 6.377314 6.105674 -1.224148
+- 6.034578 6.467191 -2.193651
+- 6.303017 6.908485 -0.490613
+- 7.415066 5.781911 -1.303828
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.817297 5.981271 2.651702
++ 4.753204 7.463130 2.340945
++ 4.433578 7.904044 1.396734
++ 4.585895 8.175303 3.148978
++ 5.814065 7.218764 2.286557
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ 6.204451 3.702005 0.000000
+diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_aminont94.lib.save amber11/AmberTools/test/sleap/oldleap/ff94/all_aminont94.lib.save
+--- amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_aminont94.lib.save 2010-03-31 07:05:23.000000000 +0400
++++ amber11/AmberTools/test/sleap/oldleap/ff94/all_aminont94.lib.save 2011-03-08 16:38:44.000000000 +0300
+@@ -290,7 +290,7 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.230747 4.925147 1.196914
+- 4.828085 5.500165 0.713033
++ 3.983296 5.433818 1.972557
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NSER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -414,7 +414,7 @@
+ 1.784422 4.436955 2.124895
+ 1.764698 4.397850 0.345787
+ 3.971494 2.947416 2.411212
+- 4.374397 3.770738 2.696536
++ 3.724043 3.456087 3.186855
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NTHR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -558,15 +558,15 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.857033 4.748192 2.579338
+- 5.821217 4.249596 2.480083
+- 4.990360 5.695010 3.102655
+- 4.176711 4.112860 3.146449
+- 5.226485 5.898474 0.401698
+- 5.794506 5.938748 1.331123
+- 5.883342 6.134649 -0.435476
+- 4.414018 6.624028 0.441300
++ 5.354265 4.863179 1.185791
++ 3.853427 5.762894 -0.062862
++ 2.773446 5.910110 -0.054565
++ 4.351509 6.732051 -0.090207
++ 4.134162 5.185701 -0.943848
++ 3.881095 5.817649 2.426715
++ 4.181612 5.279606 3.325770
++ 4.379188 6.786828 2.400358
++ 2.801124 5.964886 2.435947
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NLEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -718,12 +718,12 @@
+ 3.671552 3.399212 3.380613
+ 3.485641 1.869279 2.490736
+ 4.230199 4.986696 1.245167
+- 4.638709 4.784431 2.235272
+- 3.258221 5.469711 1.345449
+- 5.178160 5.906245 0.482655
+- 5.735477 5.933935 1.418994
+- 5.840562 6.170139 -0.341774
+- 4.354989 6.619215 0.529171
++ 3.931816 5.541027 0.355344
++ 5.312304 4.855747 1.245167
++ 3.812283 5.761636 2.490333
++ 4.110763 5.208108 3.380624
++ 4.296680 6.738088 2.490828
++ 2.730275 5.893388 2.490801
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -863,9 +863,9 @@
+ 3.716963 3.477633 3.370556
+ 3.499621 1.931327 2.516833
+ 4.274181 5.009604 1.194574
+- 4.690774 4.823320 2.184447
+- 4.954792 5.645336 0.628258
+- 3.310286 5.508600 1.294624
++ 3.973778 5.548459 0.295968
++ 3.993550 5.587589 2.075074
++ 5.354265 4.863179 1.185791
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NVAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -991,10 +991,10 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.253694 5.017114 1.232141
+- 3.666601 5.213107 2.293908
+- 5.062354 5.920372 0.673198
+- 5.699537 6.377296 0.036552
+- 4.754312 6.389897 1.512695
++ 5.005295 5.340406 0.315070
++ 3.984875 5.817912 2.265912
++ 4.408006 6.733705 2.314738
++ 3.359598 5.504301 2.994456
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1130,13 +1130,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.220277 5.927344 0.433563
+- 4.913588 6.591689 1.420998
+- 6.050965 6.373808 -0.511346
+- 5.971268 7.107959 0.177690
+- 6.636748 6.497679 -1.324743
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.906966 5.848446 2.410297
++ 3.138947 5.408353 3.262885
++ 4.458847 7.061526 2.488328
++ 4.248421 7.659050 3.274958
++ 5.084275 7.376210 1.760376
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NGLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1303,20 +1303,20 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.125319 6.253797 -0.719124
+- 6.688164 6.300372 -1.556463
+- 6.117846 7.301883 0.099632
+- 5.907135 8.163840 1.090353
+- 5.292210 7.913283 1.851398
+- 6.363014 9.065005 1.077109
+- 6.926823 7.627695 -0.904511
+- 7.501836 7.713669 -1.730386
+- 6.873063 8.384728 -0.238094
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.540311 7.142726 2.424478
++ 5.151800 7.375491 1.655062
++ 4.364270 8.040994 3.389374
++ 3.575005 7.807613 4.434120
++ 3.088928 6.925430 4.508833
++ 3.465343 8.513638 5.147984
++ 5.006244 9.201290 3.286985
++ 5.604850 9.375324 2.492326
++ 4.892201 9.903050 4.004360
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1463,13 +1463,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 4.722990 6.580423 1.708019
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 3.339711 5.691917 3.169798
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NHID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1609,13 +1609,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 6.629203 7.441424 -0.586231
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.896295 7.605082 0.676854
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NHIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1759,14 +1759,14 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.003504 6.072258 0.881472
+- 4.722990 6.580423 1.708019
+- 5.824163 6.508104 -0.056055
+- 5.654216 7.217462 0.753902
+- 6.562760 6.595751 -1.134430
+- 6.629203 7.441424 -0.586231
+- 7.210678 6.375009 -2.309622
+- 7.387392 7.342143 -1.838959
++ 3.942772 5.885090 2.382967
++ 3.339711 5.691917 3.169798
++ 4.624266 6.997644 2.182496
++ 4.563036 7.811879 2.904557
++ 5.294008 6.891449 1.061662
++ 5.896295 7.605082 0.676854
++ 5.058971 5.678865 0.492455
++ 5.537740 5.417840 -0.451339
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NHIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -1936,20 +1936,20 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 4.941957 6.093161 0.993054
+- 4.555798 6.518222 1.919501
+- 5.833674 6.587638 -0.009560
+- 5.727864 7.297382 0.701192
+- 6.577083 6.691104 -1.083216
+- 6.699953 7.881667 -0.356949
+- 7.350710 8.089828 -1.206234
+- 6.471604 8.773711 0.684306
+- 7.153163 9.167983 -0.069436
+- 6.163215 9.539474 1.752484
+- 6.850900 10.076243 1.098979
+- 5.726463 10.185215 2.927374
+- 6.404130 10.841773 2.381664
+- 5.125146 10.546906 4.138818
++ 4.023443 5.931088 2.293236
++ 3.368827 5.705470 3.135064
++ 4.811936 7.073557 1.949805
++ 4.882911 7.922013 2.493114
++ 5.427345 6.842058 0.816764
++ 6.297161 7.689048 0.119607
++ 6.531228 8.676646 0.517052
++ 6.814097 7.187003 -1.069017
++ 7.498083 7.791848 -1.664355
++ 6.482667 5.953109 -1.505090
++ 6.897672 5.575635 -2.439640
++ 5.604046 5.117349 -0.785625
++ 5.358725 4.126563 -1.168065
++ 5.083391 5.623006 0.411551
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NTRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2108,16 +2108,16 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.200807 5.026066 1.321085
+- 5.021223 6.053049 0.839188
+- 4.662984 6.521610 1.755820
+- 5.904492 6.742286 -0.000329
+- 5.724114 7.440373 0.817130
+- 6.758713 7.099630 -1.050381
+- 6.738282 7.947511 -0.365705
+- 7.536653 7.157250 -2.212917
+- 7.655187 8.096815 -1.673224
+- 8.214242 6.953605 -3.420974
+- 8.451251 7.942064 -3.027432
++ 3.911603 5.857254 2.409885
++ 3.236109 5.513847 3.193390
++ 4.490005 7.129516 2.492349
++ 4.264839 7.776656 3.340058
++ 5.357612 7.570590 1.486013
++ 5.807939 8.561136 1.550217
++ 5.646816 6.739401 0.397212
++ 6.322310 7.082808 -0.386292
++ 5.068414 5.467139 0.314748
++ 5.293580 4.820000 -0.532961
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NPHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2276,17 +2276,17 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 5.102503 5.984523 0.660315
+- 4.777863 6.502414 1.562811
+- 5.985574 6.611197 -0.227077
+- 5.846174 7.352316 0.559949
+- 6.824378 6.891857 -1.312267
+- 6.854321 7.991157 -0.512116
+- 6.305234 7.900783 0.270147
+- 7.573657 6.866032 -2.494602
+- 7.737299 7.827553 -2.007982
+- 8.211756 6.577405 -3.706841
+- 8.492629 7.576371 -3.373257
++ 4.059917 5.918914 2.227275
++ 3.400094 5.668222 3.057870
++ 4.699989 7.163550 2.192787
++ 4.538509 7.881896 2.996531
++ 5.547468 7.485540 1.125968
++ 6.169252 8.694615 1.092466
++ 5.956320 9.246984 1.848209
++ 5.754874 6.562895 0.093637
++ 6.414696 6.813587 -0.736958
++ 5.114801 5.318259 0.128125
++ 5.276282 4.599913 -0.675619
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NTYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2421,11 +2421,11 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.267323 4.996269 1.194944
+- 3.302423 5.493308 1.295046
+- 4.682911 4.808028 2.184869
+- 5.220383 5.890117 0.404729
+- 6.306867 5.987364 1.035359
+- 4.568248 6.850423 -0.085305
++ 5.347407 4.849844 1.186161
++ 3.966920 5.535124 0.296338
++ 3.873721 5.805373 2.428701
++ 4.594575 5.679017 3.454373
++ 2.855955 6.542075 2.333709
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NGLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2542,8 +2542,8 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.275095 5.011382 1.194525
+- 5.214909 5.080371 2.030940
+- 3.476290 5.943429 0.910275
++ 3.669104 5.954940 0.620005
++ 5.407723 5.091882 1.740669
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2697,18 +2697,18 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.226485 5.898474 0.401698
+- 4.414018 6.624028 0.441300
+- 5.794506 5.938748 1.331123
+- 6.145332 6.228186 -0.769897
+- 7.203874 5.974714 -0.827698
+- 5.823386 6.659994 -1.717522
+- 5.933539 7.203239 0.309601
+- 6.482814 7.265694 1.154880
+- 6.528435 7.362078 -0.491005
+- 5.203409 7.900796 0.330212
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.881095 5.817649 2.426715
++ 2.801124 5.964886 2.435947
++ 4.181612 5.279606 3.325770
++ 4.578316 7.173413 2.389148
++ 5.658401 7.026988 2.380365
++ 4.277913 7.712268 1.490542
++ 4.199407 7.952315 3.576852
++ 4.478064 7.453372 4.409622
++ 4.661173 8.850231 3.551971
++ 3.198660 8.088474 3.584954
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NLYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -2838,11 +2838,11 @@
+ 4.408167 0.002206 -0.902255
+ 3.942020 -0.287863 0.790585
+ 5.543318 1.147472 0.544698
+- 6.081407 2.093874 0.598404
+- 5.996931 0.515001 -0.218399
+- 5.523452 0.447794 1.882665
+- 5.873440 1.245104 2.538335
+- 6.357566 0.073964 1.288859
++ 6.406713 0.710625 0.042886
++ 5.648269 1.022234 1.622381
++ 5.375452 2.604420 0.185221
++ 5.977270 2.833894 -0.694128
++ 5.701342 3.225018 1.019939
+ 3.941702 2.857530 -0.104508
+ 3.623877 3.477058 0.734105
+ 3.517843 3.515616 -1.409786
+@@ -2956,7 +2956,7 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.309567 5.303525 1.366033
+- 5.145787 5.839753 0.481671
++ 3.725381 5.622023 2.517634
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NCYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -3192,13 +3192,13 @@
+ 2.496989 3.801078 1.241373
+ 3.877477 3.115798 2.131196
+ 4.274181 5.009604 1.194574
+- 3.310286 5.508600 1.294624
+- 4.690774 4.823320 2.184447
+- 5.402881 6.076526 0.265157
+- 6.377314 6.105674 -1.224148
+- 6.034578 6.467191 -2.193651
+- 6.303017 6.908485 -0.490613
+- 7.415066 5.781911 -1.303828
++ 5.354265 4.863179 1.185791
++ 3.973778 5.548459 0.295968
++ 3.817297 5.981271 2.651702
++ 4.753204 7.463130 2.340945
++ 4.433578 7.904044 1.396734
++ 4.585895 8.175303 3.148978
++ 5.814065 7.218764 2.286557
+ 5.485538 2.705208 0.000000
+ 6.008821 1.593175 0.000000
+ !entry.NMET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_nucleic94.lib.save amber11/AmberTools/test/sleap/oldleap/ff94/all_nucleic94.lib.save
+--- amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_nucleic94.lib.save 2010-03-31 07:05:23.000000000 +0400
++++ amber11/AmberTools/test/sleap/oldleap/ff94/all_nucleic94.lib.save 2011-03-08 16:38:44.000000000 +0300
+@@ -181,21 +181,21 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.825854 0.331961 5.463505
+- 2.973744 -0.351218 5.767666
+- 3.198298 -1.353172 5.432908
+- 3.262456 0.147686 6.932887
+- 3.554407 -1.123002 6.450998
+- 3.970615 -1.030384 7.784487
+- 4.371751 -2.299375 7.628436
+- 4.806122 -2.789852 8.397106
+- 4.239728 -2.765377 6.742145
+- 4.154910 -0.430195 8.968298
+- 4.588103 -1.686764 8.920565
+- 4.748481 -1.226887 9.884511
+- 5.030638 -2.930357 8.914329
+- 5.276823 -4.138026 8.363485
++ 2.623224 0.684847 5.224690
++ 2.631874 -0.707517 3.706295
++ 2.874735 -1.252950 2.473241
++ 2.981754 -0.611820 1.610746
++ 3.015083 -2.545282 2.486669
++ 2.854431 -2.887097 3.824373
++ 2.890057 -4.114829 4.496241
++ 3.109804 -5.286605 3.884480
++ 3.124371 -6.141804 4.421623
++ 3.260868 -5.314611 2.886234
++ 2.691903 -4.099290 5.821417
++ 2.474287 -2.933307 6.423105
++ 2.312232 -2.898303 7.490303
++ 2.418509 -1.722706 5.899909
++ 2.621151 -1.767164 4.565946
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+@@ -394,21 +394,21 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.821628 0.329290 5.472166
+- 3.045980 -0.266556 5.623252
+- 3.300321 -1.253530 5.266050
+- 3.400654 0.078938 6.868419
+- 3.596750 0.739775 8.200650
+- 2.627095 1.008594 8.619702
+- 4.106045 0.052544 8.876247
+- 4.199810 1.639079 8.075463
+- 3.886987 -1.267611 6.713863
+- 4.193797 -1.026107 7.880244
+- 4.182336 -2.491705 6.149271
+- 4.473391 -2.322796 7.186024
+- 4.489928 -3.724276 5.610241
+- 4.916436 -3.803915 6.750481
++ 2.623224 0.684847 5.224690
++ 2.632951 -0.717026 3.703395
++ 2.875701 -1.078946 2.404555
++ 2.959028 -0.321296 1.639425
++ 3.067013 -2.361001 2.064944
++ 3.333430 -2.767543 0.645879
++ 4.242250 -2.280529 0.292378
++ 3.457938 -3.849191 0.594530
++ 2.493973 -2.468751 0.018077
++ 3.022943 -3.401289 3.059659
++ 3.186167 -4.600916 2.842510
++ 2.773364 -2.946913 4.338586
++ 2.730574 -3.698393 5.126967
++ 2.572586 -1.635482 4.718372
++ 2.357489 -1.330164 5.879800
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+@@ -612,22 +612,22 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.809468 0.366314 5.430851
+- 2.985443 -0.303283 5.701265
+- 3.220128 -1.300453 5.359250
+- 3.217392 0.174542 6.898755
+- 3.501851 -1.098776 6.419335
+- 3.907092 -0.959542 7.773142
+- 4.306119 -2.122793 7.750193
+- 4.034999 -0.202628 8.943920
+- 4.092163 0.401223 9.738965
+- 4.527564 -1.484195 9.083085
+- 4.671337 -0.799117 10.225713
+- 4.406357 0.160408 10.396586
+- 5.109266 -1.288479 10.993073
+- 4.937775 -2.746085 8.992209
+- 5.203174 -3.983662 8.494648
++ 2.623224 0.684847 5.224690
++ 2.590680 -0.679098 3.703090
++ 2.813126 -1.180187 2.436667
++ 2.923918 -0.505423 1.600713
++ 2.866567 -2.487992 2.382906
++ 2.666616 -2.884782 3.699977
++ 2.618169 -4.183246 4.272728
++ 2.745111 -5.274676 3.719947
++ 2.392358 -4.124071 5.653129
++ 2.340242 -4.991533 6.147896
++ 2.235991 -2.964895 6.385427
++ 2.027971 -3.123388 7.699660
++ 1.962797 -3.996113 8.203846
++ 1.903765 -2.280234 8.241661
++ 2.283795 -1.749407 5.847650
++ 2.502701 -1.789347 4.505978
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+@@ -819,19 +819,19 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.810222 0.365622 5.431037
+- 3.040503 -0.202936 5.543946
+- 3.303784 -1.184927 5.179558
+- 3.350889 0.129864 6.825549
+- 3.478253 0.640008 7.780343
+- 3.798907 -1.207335 6.588738
+- 4.083865 -0.848420 7.826630
+- 4.553596 -1.522140 8.414470
+- 3.834435 0.071716 8.160148
+- 4.146081 -2.428628 6.192742
+- 4.391834 -3.604440 5.555033
+- 4.829292 -3.701644 6.711226
++ 2.623224 0.684847 5.224690
++ 2.591673 -0.679108 3.703398
++ 2.814053 -0.989708 2.398148
++ 2.904088 -0.203069 1.663647
++ 2.926420 -2.283840 1.995414
++ 3.104659 -2.514231 0.945056
++ 2.799915 -3.288854 3.004791
++ 2.898410 -4.565463 2.683902
++ 2.803322 -5.244627 3.425383
++ 3.063325 -4.838262 1.725527
++ 2.582464 -2.976080 4.279070
++ 2.473124 -1.675585 4.661638
++ 2.270623 -1.344205 5.839254
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+@@ -1043,21 +1043,21 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.398936 0.755791 5.236576
+- 5.570721 0.053476 5.133763
+- 5.651435 -0.952100 4.748143
+- 6.248368 0.547472 6.127122
+- 6.337852 -0.727929 5.581736
+- 7.186443 -0.642297 6.691944
+- 7.489983 -1.917831 6.415398
+- 8.153280 -2.415516 6.991980
+- 7.055473 -2.381556 5.630375
+- 7.773936 -0.045280 7.737899
+- 8.144838 -1.308931 7.552106
+- 8.632452 -0.851805 8.400438
+- 8.538915 -2.559764 7.402037
+- 8.562807 -3.771388 6.807145
++ 5.071990 1.095268 4.737463
++ 4.538874 -0.297045 3.315659
++ 4.336740 -0.846471 2.077041
++ 4.152394 -0.207224 1.226289
++ 4.452852 -2.140973 2.049069
++ 4.754050 -2.480049 3.362997
++ 4.997986 -3.708205 3.989198
++ 4.976769 -4.883498 3.345899
++ 5.160704 -5.738821 3.850568
++ 4.776841 -4.914031 2.356355
++ 5.265289 -3.689348 5.302131
++ 5.284973 -2.519883 5.935270
++ 5.498266 -2.482169 6.993326
++ 5.072682 -1.308518 5.455764
++ 4.806134 -1.356364 4.133205
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+@@ -1274,21 +1274,21 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.397885 0.753191 5.246175
+- 5.590532 0.136915 4.972869
+- 5.691792 -0.854182 4.555888
+- 6.355081 0.476418 6.019675
+- 7.005380 1.133878 7.200716
+- 6.241886 1.418905 7.924551
+- 7.704141 0.438210 7.665344
+- 7.543334 2.022951 6.871696
+- 6.737960 -0.878090 5.715845
+- 7.428954 -0.641760 6.705579
+- 6.803084 -2.106960 5.091315
+- 7.433797 -1.942952 5.965044
+- 6.888321 -3.344512 4.486667
+- 7.677782 -3.431286 5.412745
++ 5.071990 1.095268 4.737463
++ 4.538744 -0.306572 3.312620
++ 4.316895 -0.672508 2.011169
++ 4.145425 0.083640 1.259346
++ 4.360306 -1.957588 1.633963
++ 4.118872 -2.368537 0.211701
++ 4.859526 -1.896818 -0.434064
++ 4.201263 -3.452119 0.127068
++ 3.120134 -2.055722 -0.092882
++ 4.642734 -2.996992 2.589722
++ 4.702936 -4.199185 2.336724
++ 4.852811 -2.538498 3.874265
++ 5.070419 -3.289156 4.634040
++ 4.814710 -1.223887 4.292292
++ 5.014652 -0.915008 5.455485
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+@@ -1510,22 +1510,22 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.372913 0.790414 5.211298
+- 5.559757 0.101208 5.067090
+- 5.647583 -0.899755 4.671160
+- 6.194776 0.575080 6.110305
+- 6.278024 -0.702826 5.569817
+- 7.123995 -0.570401 6.702600
+- 7.472741 -1.740173 6.551245
+- 7.656517 0.184264 7.754694
+- 7.991655 0.787072 8.478783
+- 8.146732 -1.105376 7.724367
+- 8.683403 -0.422802 8.744993
+- 8.507987 0.541027 8.990678
+- 9.349613 -0.919433 9.319121
+- 8.481202 -2.373962 7.505920
+- 8.540900 -3.615812 6.954699
++ 5.071990 1.095268 4.737463
++ 4.499521 -0.267941 3.326572
++ 4.267491 -0.772686 2.063324
++ 4.096298 -0.099873 1.236030
++ 4.278725 -2.081203 2.002024
++ 4.535077 -2.474587 3.310318
++ 4.665007 -3.772057 3.872536
++ 4.578030 -4.865461 3.315935
++ 4.925900 -3.709107 5.246571
++ 5.032497 -4.575574 5.734292
++ 5.047695 -2.547474 5.981536
++ 5.299246 -2.702459 7.288556
++ 5.396714 -3.573970 7.789625
++ 5.381197 -1.857343 7.835514
++ 4.927816 -1.332957 5.452878
++ 4.673984 -1.376560 4.117488
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+@@ -1735,19 +1735,19 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.373674 0.789709 5.211219
+- 5.559264 0.200618 4.899855
+- 5.666544 -0.785646 4.473035
+- 6.294463 0.528171 5.996117
+- 6.748720 1.036110 6.846852
+- 6.613356 -0.816346 5.628040
+- 7.310127 -0.462256 6.691775
+- 7.941913 -1.143751 7.087389
+- 7.204329 0.461930 7.085204
+- 6.784882 -2.043285 5.144201
+- 6.779159 -3.223049 4.467648
+- 7.584089 -3.327568 5.405072
++ 5.071990 1.095268 4.737463
++ 4.500559 -0.267967 3.326521
++ 4.258187 -0.582249 2.025720
++ 4.103951 0.202771 1.300217
++ 4.205645 -1.878082 1.616262
++ 4.010240 -2.111427 0.569617
++ 4.416190 -2.880836 2.613787
++ 4.378882 -4.158916 2.285883
++ 4.532450 -4.836391 3.019057
++ 4.201751 -4.434440 1.330472
++ 4.652634 -2.564463 3.883788
++ 4.701224 -1.262318 4.273223
++ 4.918947 -0.927591 5.447171
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+@@ -1953,27 +1953,27 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.825854 0.331961 5.463505
+- 2.973744 -0.351218 5.767666
+- 3.198298 -1.353172 5.432908
+- 3.262456 0.147686 6.932887
+- 3.554407 -1.123002 6.450998
+- 3.970615 -1.030384 7.784487
+- 4.371751 -2.299375 7.628436
+- 4.806122 -2.789852 8.397106
+- 4.239728 -2.765377 6.742145
+- 4.154910 -0.430195 8.968298
+- 4.588103 -1.686764 8.920565
+- 4.748481 -1.226887 9.884511
+- 5.030638 -2.930357 8.914329
+- 5.276823 -4.138026 8.363485
++ 2.623224 0.684847 5.224690
++ 2.631874 -0.707517 3.706295
++ 2.874735 -1.252950 2.473241
++ 2.981754 -0.611820 1.610746
++ 3.015083 -2.545282 2.486669
++ 2.854431 -2.887097 3.824373
++ 2.890057 -4.114829 4.496241
++ 3.109804 -5.286605 3.884480
++ 3.124371 -6.141804 4.421623
++ 3.260868 -5.314611 2.886234
++ 2.691903 -4.099290 5.821417
++ 2.474287 -2.933307 6.423105
++ 2.312232 -2.898303 7.490303
++ 2.418509 -1.722706 5.899909
++ 2.621151 -1.767164 4.565946
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+ 4.177807 1.697081 2.650726
+ 4.070872 1.663908 4.714248
+- 4.904136 2.139152 4.751846
++ 4.591405 0.857803 4.743234
+ 2.785622 3.721368 4.515694
+ !entry.RA5.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+ 1 31 0 0 0 0
+@@ -2160,24 +2160,24 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.821628 0.329290 5.472166
+- 3.045980 -0.266556 5.623252
+- 3.300321 -1.253530 5.266050
+- 3.400654 0.078938 6.868419
+- 3.529160 0.584527 7.825480
+- 3.886987 -1.267611 6.713863
+- 4.193797 -1.026107 7.880244
+- 4.182336 -2.491705 6.149271
+- 4.473391 -2.322796 7.186024
+- 4.489928 -3.724276 5.610241
+- 4.916436 -3.803915 6.750481
++ 2.623224 0.684847 5.224690
++ 2.632951 -0.717026 3.703395
++ 2.875701 -1.078946 2.404555
++ 2.959028 -0.321296 1.639425
++ 3.067013 -2.361001 2.064944
++ 3.258724 -2.626638 1.025337
++ 3.022943 -3.401289 3.059659
++ 3.186167 -4.600916 2.842510
++ 2.773364 -2.946913 4.338586
++ 2.730574 -3.698393 5.126967
++ 2.572586 -1.635482 4.718372
++ 2.357489 -1.330164 5.879800
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+ 4.177807 1.697081 2.650726
+ 4.070872 1.663908 4.714248
+- 4.904136 2.139152 4.751846
++ 4.591405 0.857803 4.743234
+ 2.785622 3.721368 4.515694
+ !entry.RU5.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+ 1 28 0 0 0 0
+@@ -2378,28 +2378,28 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.809468 0.366314 5.430851
+- 2.985443 -0.303283 5.701265
+- 3.220128 -1.300453 5.359250
+- 3.217392 0.174542 6.898755
+- 3.501851 -1.098776 6.419335
+- 3.907092 -0.959542 7.773142
+- 4.306119 -2.122793 7.750193
+- 4.034999 -0.202628 8.943920
+- 4.092163 0.401223 9.738965
+- 4.527564 -1.484195 9.083085
+- 4.671337 -0.799117 10.225713
+- 4.406357 0.160408 10.396586
+- 5.109266 -1.288479 10.993073
+- 4.937775 -2.746085 8.992209
+- 5.203174 -3.983662 8.494648
++ 2.623224 0.684847 5.224690
++ 2.590680 -0.679098 3.703090
++ 2.813126 -1.180187 2.436667
++ 2.923918 -0.505423 1.600713
++ 2.866567 -2.487992 2.382906
++ 2.666616 -2.884782 3.699977
++ 2.618169 -4.183246 4.272728
++ 2.745111 -5.274676 3.719947
++ 2.392358 -4.124071 5.653129
++ 2.340242 -4.991533 6.147896
++ 2.235991 -2.964895 6.385427
++ 2.027971 -3.123388 7.699660
++ 1.962797 -3.996113 8.203846
++ 1.903765 -2.280234 8.241661
++ 2.283795 -1.749407 5.847650
++ 2.502701 -1.789347 4.505978
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+ 4.177807 1.697081 2.650726
+ 4.070872 1.663908 4.714248
+- 4.904136 2.139152 4.751846
++ 4.591405 0.857803 4.743234
+ 2.785622 3.721368 4.515694
+ !entry.RG5.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+ 1 32 0 0 0 0
+@@ -2591,25 +2591,25 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.810222 0.365622 5.431037
+- 3.040503 -0.202936 5.543946
+- 3.303784 -1.184927 5.179558
+- 3.350889 0.129864 6.825549
+- 3.478253 0.640008 7.780343
+- 3.798907 -1.207335 6.588738
+- 4.083865 -0.848420 7.826630
+- 4.553596 -1.522140 8.414470
+- 3.834435 0.071716 8.160148
+- 4.146081 -2.428628 6.192742
+- 4.391834 -3.604440 5.555033
+- 4.829292 -3.701644 6.711226
++ 2.623224 0.684847 5.224690
++ 2.591673 -0.679108 3.703398
++ 2.814053 -0.989708 2.398148
++ 2.904088 -0.203069 1.663647
++ 2.926420 -2.283840 1.995414
++ 3.104659 -2.514231 0.945056
++ 2.799915 -3.288854 3.004791
++ 2.898410 -4.565463 2.683902
++ 2.803322 -5.244627 3.425383
++ 3.063325 -4.838262 1.725527
++ 2.582464 -2.976080 4.279070
++ 2.473124 -1.675585 4.661638
++ 2.270623 -1.344205 5.839254
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+ 4.177807 1.697081 2.650726
+ 4.070872 1.663908 4.714248
+- 4.904136 2.139152 4.751846
++ 4.591405 0.857803 4.743234
+ 2.785622 3.721368 4.515694
+ !entry.RC5.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+ 1 29 0 0 0 0
+@@ -2821,27 +2821,27 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.398936 0.755791 5.236576
+- 5.570721 0.053476 5.133763
+- 5.651435 -0.952100 4.748143
+- 6.248368 0.547472 6.127122
+- 6.337852 -0.727929 5.581736
+- 7.186443 -0.642297 6.691944
+- 7.489983 -1.917831 6.415398
+- 8.153280 -2.415516 6.991980
+- 7.055473 -2.381556 5.630375
+- 7.773936 -0.045280 7.737899
+- 8.144838 -1.308931 7.552106
+- 8.632452 -0.851805 8.400438
+- 8.538915 -2.559764 7.402037
+- 8.562807 -3.771388 6.807145
++ 5.071990 1.095268 4.737463
++ 4.538874 -0.297045 3.315659
++ 4.336740 -0.846471 2.077041
++ 4.152394 -0.207224 1.226289
++ 4.452852 -2.140973 2.049069
++ 4.754050 -2.480049 3.362997
++ 4.997986 -3.708205 3.989198
++ 4.976769 -4.883498 3.345899
++ 5.160704 -5.738821 3.850568
++ 4.776841 -4.914031 2.356355
++ 5.265289 -3.689348 5.302131
++ 5.284973 -2.519883 5.935270
++ 5.498266 -2.482169 6.993326
++ 5.072682 -1.308518 5.455764
++ 4.806134 -1.356364 4.133205
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+ 5.668203 2.081314 1.781304
+ 6.272975 2.049937 3.757138
+- 7.076220 2.511153 3.504793
++ 6.759270 1.235224 3.610988
+ 5.029888 4.128641 3.998289
+ 5.911975 4.450154 3.797910
+ !entry.RA3.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -3046,24 +3046,24 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.397885 0.753191 5.246175
+- 5.590532 0.136915 4.972869
+- 5.691792 -0.854182 4.555888
+- 6.355081 0.476418 6.019675
+- 6.811115 0.979784 6.872175
+- 6.737960 -0.878090 5.715845
+- 7.428954 -0.641760 6.705579
+- 6.803084 -2.106960 5.091315
+- 7.433797 -1.942952 5.965044
+- 6.888321 -3.344512 4.486667
+- 7.677782 -3.431286 5.412745
++ 5.071990 1.095268 4.737463
++ 4.538744 -0.306572 3.312620
++ 4.316895 -0.672508 2.011169
++ 4.145425 0.083640 1.259346
++ 4.360306 -1.957588 1.633963
++ 4.180681 -2.226400 0.593014
++ 4.642734 -2.996992 2.589722
++ 4.702936 -4.199185 2.336724
++ 4.852811 -2.538498 3.874265
++ 5.070419 -3.289156 4.634040
++ 4.814710 -1.223887 4.292292
++ 5.014652 -0.915008 5.455485
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+ 5.668203 2.081314 1.781304
+ 6.272975 2.049937 3.757138
+- 7.076220 2.511153 3.504793
++ 6.759270 1.235224 3.610988
+ 5.029888 4.128641 3.998289
+ 5.911975 4.450154 3.797910
+ !entry.RU3.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -3282,28 +3282,28 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.372913 0.790414 5.211298
+- 5.559757 0.101208 5.067090
+- 5.647583 -0.899755 4.671160
+- 6.194776 0.575080 6.110305
+- 6.278024 -0.702826 5.569817
+- 7.123995 -0.570401 6.702600
+- 7.472741 -1.740173 6.551245
+- 7.656517 0.184264 7.754694
+- 7.991655 0.787072 8.478783
+- 8.146732 -1.105376 7.724367
+- 8.683403 -0.422802 8.744993
+- 8.507987 0.541027 8.990678
+- 9.349613 -0.919433 9.319121
+- 8.481202 -2.373962 7.505920
+- 8.540900 -3.615812 6.954699
++ 5.071990 1.095268 4.737463
++ 4.499521 -0.267941 3.326572
++ 4.267491 -0.772686 2.063324
++ 4.096298 -0.099873 1.236030
++ 4.278725 -2.081203 2.002024
++ 4.535077 -2.474587 3.310318
++ 4.665007 -3.772057 3.872536
++ 4.578030 -4.865461 3.315935
++ 4.925900 -3.709107 5.246571
++ 5.032497 -4.575574 5.734292
++ 5.047695 -2.547474 5.981536
++ 5.299246 -2.702459 7.288556
++ 5.396714 -3.573970 7.789625
++ 5.381197 -1.857343 7.835514
++ 4.927816 -1.332957 5.452878
++ 4.673984 -1.376560 4.117488
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+ 5.668203 2.081314 1.781304
+ 6.272975 2.049937 3.757138
+- 7.076220 2.511153 3.504793
++ 6.759270 1.235224 3.610988
+ 5.029888 4.128641 3.998289
+ 5.911975 4.450154 3.797910
+ !entry.RG3.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -3513,25 +3513,25 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.373674 0.789709 5.211219
+- 5.559264 0.200618 4.899855
+- 5.666544 -0.785646 4.473035
+- 6.294463 0.528171 5.996117
+- 6.748720 1.036110 6.846852
+- 6.613356 -0.816346 5.628040
+- 7.310127 -0.462256 6.691775
+- 7.941913 -1.143751 7.087389
+- 7.204329 0.461930 7.085204
+- 6.784882 -2.043285 5.144201
+- 6.779159 -3.223049 4.467648
+- 7.584089 -3.327568 5.405072
++ 5.071990 1.095268 4.737463
++ 4.500559 -0.267967 3.326521
++ 4.258187 -0.582249 2.025720
++ 4.103951 0.202771 1.300217
++ 4.205645 -1.878082 1.616262
++ 4.010240 -2.111427 0.569617
++ 4.416190 -2.880836 2.613787
++ 4.378882 -4.158916 2.285883
++ 4.532450 -4.836391 3.019057
++ 4.201751 -4.434440 1.330472
++ 4.652634 -2.564463 3.883788
++ 4.701224 -1.262318 4.273223
++ 4.918947 -0.927591 5.447171
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+ 5.668203 2.081314 1.781304
+ 6.272975 2.049937 3.757138
+- 7.076220 2.511153 3.504793
++ 6.759270 1.235224 3.610988
+ 5.029888 4.128641 3.998289
+ 5.911975 4.450154 3.797910
+ !entry.RC3.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -3739,21 +3739,21 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.398936 0.755791 5.236576
+- 5.570721 0.053476 5.133763
+- 5.651435 -0.952100 4.748143
+- 6.248368 0.547472 6.127122
+- 6.337852 -0.727929 5.581736
+- 7.186443 -0.642297 6.691944
+- 7.489983 -1.917831 6.415398
+- 8.153280 -2.415516 6.991980
+- 7.055473 -2.381556 5.630375
+- 7.773936 -0.045280 7.737899
+- 8.144838 -1.308931 7.552106
+- 8.632452 -0.851805 8.400438
+- 8.538915 -2.559764 7.402037
+- 8.562807 -3.771388 6.807145
++ 5.071990 1.095268 4.737463
++ 4.538874 -0.297045 3.315659
++ 4.336740 -0.846471 2.077041
++ 4.152394 -0.207224 1.226289
++ 4.452852 -2.140973 2.049069
++ 4.754050 -2.480049 3.362997
++ 4.997986 -3.708205 3.989198
++ 4.976769 -4.883498 3.345899
++ 5.160704 -5.738821 3.850568
++ 4.776841 -4.914031 2.356355
++ 5.265289 -3.689348 5.302131
++ 5.284973 -2.519883 5.935270
++ 5.498266 -2.482169 6.993326
++ 5.072682 -1.308518 5.455764
++ 4.806134 -1.356364 4.133205
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+@@ -3964,21 +3964,21 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.397885 0.753191 5.246175
+- 5.590532 0.136915 4.972869
+- 5.691792 -0.854182 4.555888
+- 6.355081 0.476418 6.019675
+- 7.005380 1.133878 7.200716
+- 6.241886 1.418905 7.924551
+- 7.704141 0.438210 7.665344
+- 7.543334 2.022951 6.871696
+- 6.737960 -0.878090 5.715845
+- 7.428954 -0.641760 6.705579
+- 6.803084 -2.106960 5.091315
+- 7.433797 -1.942952 5.965044
+- 6.888321 -3.344512 4.486667
+- 7.677782 -3.431286 5.412745
++ 5.071990 1.095268 4.737463
++ 4.538744 -0.306572 3.312620
++ 4.316895 -0.672508 2.011169
++ 4.145425 0.083640 1.259346
++ 4.360306 -1.957588 1.633963
++ 4.118872 -2.368537 0.211701
++ 4.859526 -1.896818 -0.434064
++ 4.201263 -3.452119 0.127068
++ 3.120134 -2.055722 -0.092882
++ 4.642734 -2.996992 2.589722
++ 4.702936 -4.199185 2.336724
++ 4.852811 -2.538498 3.874265
++ 5.070419 -3.289156 4.634040
++ 4.814710 -1.223887 4.292292
++ 5.014652 -0.915008 5.455485
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+@@ -4194,22 +4194,22 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.372913 0.790414 5.211298
+- 5.559757 0.101208 5.067090
+- 5.647583 -0.899755 4.671160
+- 6.194776 0.575080 6.110305
+- 6.278024 -0.702826 5.569817
+- 7.123995 -0.570401 6.702600
+- 7.472741 -1.740173 6.551245
+- 7.656517 0.184264 7.754694
+- 7.991655 0.787072 8.478783
+- 8.146732 -1.105376 7.724367
+- 8.683403 -0.422802 8.744993
+- 8.507987 0.541027 8.990678
+- 9.349613 -0.919433 9.319121
+- 8.481202 -2.373962 7.505920
+- 8.540900 -3.615812 6.954699
++ 5.071990 1.095268 4.737463
++ 4.499521 -0.267941 3.326572
++ 4.267491 -0.772686 2.063324
++ 4.096298 -0.099873 1.236030
++ 4.278725 -2.081203 2.002024
++ 4.535077 -2.474587 3.310318
++ 4.665007 -3.772057 3.872536
++ 4.578030 -4.865461 3.315935
++ 4.925900 -3.709107 5.246571
++ 5.032497 -4.575574 5.734292
++ 5.047695 -2.547474 5.981536
++ 5.299246 -2.702459 7.288556
++ 5.396714 -3.573970 7.789625
++ 5.381197 -1.857343 7.835514
++ 4.927816 -1.332957 5.452878
++ 4.673984 -1.376560 4.117488
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+@@ -4413,19 +4413,19 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.373674 0.789709 5.211219
+- 5.559264 0.200618 4.899855
+- 5.666544 -0.785646 4.473035
+- 6.294463 0.528171 5.996117
+- 6.748720 1.036110 6.846852
+- 6.613356 -0.816346 5.628040
+- 7.310127 -0.462256 6.691775
+- 7.941913 -1.143751 7.087389
+- 7.204329 0.461930 7.085204
+- 6.784882 -2.043285 5.144201
+- 6.779159 -3.223049 4.467648
+- 7.584089 -3.327568 5.405072
++ 5.071990 1.095268 4.737463
++ 4.500559 -0.267967 3.326521
++ 4.258187 -0.582249 2.025720
++ 4.103951 0.202771 1.300217
++ 4.205645 -1.878082 1.616262
++ 4.010240 -2.111427 0.569617
++ 4.416190 -2.880836 2.613787
++ 4.378882 -4.158916 2.285883
++ 4.532450 -4.836391 3.019057
++ 4.201751 -4.434440 1.330472
++ 4.652634 -2.564463 3.883788
++ 4.701224 -1.262318 4.273223
++ 4.918947 -0.927591 5.447171
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+@@ -4639,27 +4639,27 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.398936 0.755791 5.236576
+- 5.570721 0.053476 5.133763
+- 5.651435 -0.952100 4.748143
+- 6.248368 0.547472 6.127122
+- 6.337852 -0.727929 5.581736
+- 7.186443 -0.642297 6.691944
+- 7.489983 -1.917831 6.415398
+- 8.153280 -2.415516 6.991980
+- 7.055473 -2.381556 5.630375
+- 7.773936 -0.045280 7.737899
+- 8.144838 -1.308931 7.552106
+- 8.632452 -0.851805 8.400438
+- 8.538915 -2.559764 7.402037
+- 8.562807 -3.771388 6.807145
++ 5.071990 1.095268 4.737463
++ 4.538874 -0.297045 3.315659
++ 4.336740 -0.846471 2.077041
++ 4.152394 -0.207224 1.226289
++ 4.452852 -2.140973 2.049069
++ 4.754050 -2.480049 3.362997
++ 4.997986 -3.708205 3.989198
++ 4.976769 -4.883498 3.345899
++ 5.160704 -5.738821 3.850568
++ 4.776841 -4.914031 2.356355
++ 5.265289 -3.689348 5.302131
++ 5.284973 -2.519883 5.935270
++ 5.498266 -2.482169 6.993326
++ 5.072682 -1.308518 5.455764
++ 4.806134 -1.356364 4.133205
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+ 5.668203 2.081314 1.781304
+ 6.272975 2.049937 3.757138
+- 7.076220 2.511153 3.504793
++ 6.759270 1.235224 3.610988
+ 5.029888 4.128641 3.998289
+ !entry.RA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+ 1 33 0 0 0 0
+@@ -4858,24 +4858,24 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.397885 0.753191 5.246175
+- 5.590532 0.136915 4.972869
+- 5.691792 -0.854182 4.555888
+- 6.355081 0.476418 6.019675
+- 6.811115 0.979784 6.872175
+- 6.737960 -0.878090 5.715845
+- 7.428954 -0.641760 6.705579
+- 6.803084 -2.106960 5.091315
+- 7.433797 -1.942952 5.965044
+- 6.888321 -3.344512 4.486667
+- 7.677782 -3.431286 5.412745
++ 5.071990 1.095268 4.737463
++ 4.538744 -0.306572 3.312620
++ 4.316895 -0.672508 2.011169
++ 4.145425 0.083640 1.259346
++ 4.360306 -1.957588 1.633963
++ 4.180681 -2.226400 0.593014
++ 4.642734 -2.996992 2.589722
++ 4.702936 -4.199185 2.336724
++ 4.852811 -2.538498 3.874265
++ 5.070419 -3.289156 4.634040
++ 4.814710 -1.223887 4.292292
++ 5.014652 -0.915008 5.455485
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+ 5.668203 2.081314 1.781304
+ 6.272975 2.049937 3.757138
+- 7.076220 2.511153 3.504793
++ 6.759270 1.235224 3.610988
+ 5.029888 4.128641 3.998289
+ !entry.RU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+ 1 30 0 0 0 0
+@@ -5088,28 +5088,28 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.372913 0.790414 5.211298
+- 5.559757 0.101208 5.067090
+- 5.647583 -0.899755 4.671160
+- 6.194776 0.575080 6.110305
+- 6.278024 -0.702826 5.569817
+- 7.123995 -0.570401 6.702600
+- 7.472741 -1.740173 6.551245
+- 7.656517 0.184264 7.754694
+- 7.991655 0.787072 8.478783
+- 8.146732 -1.105376 7.724367
+- 8.683403 -0.422802 8.744993
+- 8.507987 0.541027 8.990678
+- 9.349613 -0.919433 9.319121
+- 8.481202 -2.373962 7.505920
+- 8.540900 -3.615812 6.954699
++ 5.071990 1.095268 4.737463
++ 4.499521 -0.267941 3.326572
++ 4.267491 -0.772686 2.063324
++ 4.096298 -0.099873 1.236030
++ 4.278725 -2.081203 2.002024
++ 4.535077 -2.474587 3.310318
++ 4.665007 -3.772057 3.872536
++ 4.578030 -4.865461 3.315935
++ 4.925900 -3.709107 5.246571
++ 5.032497 -4.575574 5.734292
++ 5.047695 -2.547474 5.981536
++ 5.299246 -2.702459 7.288556
++ 5.396714 -3.573970 7.789625
++ 5.381197 -1.857343 7.835514
++ 4.927816 -1.332957 5.452878
++ 4.673984 -1.376560 4.117488
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+ 5.668203 2.081314 1.781304
+ 6.272975 2.049937 3.757138
+- 7.076220 2.511153 3.504793
++ 6.759270 1.235224 3.610988
+ 5.029888 4.128641 3.998289
+ !entry.RG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+ 1 34 0 0 0 0
+@@ -5313,25 +5313,25 @@
+ 2.447108 3.477366 3.933855
+ 3.228110 1.605160 3.977232
+ 4.558604 1.150942 3.777549
+- 5.569373 1.557427 3.742678
+- 4.373674 0.789709 5.211219
+- 5.559264 0.200618 4.899855
+- 5.666544 -0.785646 4.473035
+- 6.294463 0.528171 5.996117
+- 6.748720 1.036110 6.846852
+- 6.613356 -0.816346 5.628040
+- 7.310127 -0.462256 6.691775
+- 7.941913 -1.143751 7.087389
+- 7.204329 0.461930 7.085204
+- 6.784882 -2.043285 5.144201
+- 6.779159 -3.223049 4.467648
+- 7.584089 -3.327568 5.405072
++ 5.071990 1.095268 4.737463
++ 4.500559 -0.267967 3.326521
++ 4.258187 -0.582249 2.025720
++ 4.103951 0.202771 1.300217
++ 4.205645 -1.878082 1.616262
++ 4.010240 -2.111427 0.569617
++ 4.416190 -2.880836 2.613787
++ 4.378882 -4.158916 2.285883
++ 4.532450 -4.836391 3.019057
++ 4.201751 -4.434440 1.330472
++ 4.652634 -2.564463 3.883788
++ 4.701224 -1.262318 4.273223
++ 4.918947 -0.927591 5.447171
+ 4.415598 3.377823 2.961313
+ 4.412064 3.941488 2.028377
+ 5.230436 2.095693 2.779428
+ 5.668203 2.081314 1.781304
+ 6.272975 2.049937 3.757138
+- 7.076220 2.511153 3.504793
++ 6.759270 1.235224 3.610988
+ 5.029888 4.128641 3.998289
+ !entry.RC.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+ 1 31 0 0 0 0
+@@ -5531,21 +5531,21 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.825854 0.331961 5.463505
+- 2.973744 -0.351218 5.767666
+- 3.198298 -1.353172 5.432908
+- 3.262456 0.147686 6.932887
+- 3.554407 -1.123002 6.450998
+- 3.970615 -1.030384 7.784487
+- 4.371751 -2.299375 7.628436
+- 4.806122 -2.789852 8.397106
+- 4.239728 -2.765377 6.742145
+- 4.154910 -0.430195 8.968298
+- 4.588103 -1.686764 8.920565
+- 4.748481 -1.226887 9.884511
+- 5.030638 -2.930357 8.914329
+- 5.276823 -4.138026 8.363485
++ 2.623224 0.684847 5.224690
++ 2.631874 -0.707517 3.706295
++ 2.874735 -1.252950 2.473241
++ 2.981754 -0.611820 1.610746
++ 3.015083 -2.545282 2.486669
++ 2.854431 -2.887097 3.824373
++ 2.890057 -4.114829 4.496241
++ 3.109804 -5.286605 3.884480
++ 3.124371 -6.141804 4.421623
++ 3.260868 -5.314611 2.886234
++ 2.691903 -4.099290 5.821417
++ 2.474287 -2.933307 6.423105
++ 2.312232 -2.898303 7.490303
++ 2.418509 -1.722706 5.899909
++ 2.621151 -1.767164 4.565946
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+@@ -5750,21 +5750,21 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.821628 0.329290 5.472166
+- 3.045980 -0.266556 5.623252
+- 3.300321 -1.253530 5.266050
+- 3.400654 0.078938 6.868419
+- 3.596750 0.739775 8.200650
+- 2.627095 1.008594 8.619702
+- 4.106045 0.052544 8.876247
+- 4.199810 1.639079 8.075463
+- 3.886987 -1.267611 6.713863
+- 4.193797 -1.026107 7.880244
+- 4.182336 -2.491705 6.149271
+- 4.473391 -2.322796 7.186024
+- 4.489928 -3.724276 5.610241
+- 4.916436 -3.803915 6.750481
++ 2.623224 0.684847 5.224690
++ 2.632951 -0.717026 3.703395
++ 2.875701 -1.078946 2.404555
++ 2.959028 -0.321296 1.639425
++ 3.067013 -2.361001 2.064944
++ 3.333430 -2.767543 0.645879
++ 4.242250 -2.280529 0.292378
++ 3.457938 -3.849191 0.594530
++ 2.493973 -2.468751 0.018077
++ 3.022943 -3.401289 3.059659
++ 3.186167 -4.600916 2.842510
++ 2.773364 -2.946913 4.338586
++ 2.730574 -3.698393 5.126967
++ 2.572586 -1.635482 4.718372
++ 2.357489 -1.330164 5.879800
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+@@ -5974,22 +5974,22 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.809468 0.366314 5.430851
+- 2.985443 -0.303283 5.701265
+- 3.220128 -1.300453 5.359250
+- 3.217392 0.174542 6.898755
+- 3.501851 -1.098776 6.419335
+- 3.907092 -0.959542 7.773142
+- 4.306119 -2.122793 7.750193
+- 4.034999 -0.202628 8.943920
+- 4.092163 0.401223 9.738965
+- 4.527564 -1.484195 9.083085
+- 4.671337 -0.799117 10.225713
+- 4.406357 0.160408 10.396586
+- 5.109266 -1.288479 10.993073
+- 4.937775 -2.746085 8.992209
+- 5.203174 -3.983662 8.494648
++ 2.623224 0.684847 5.224690
++ 2.590680 -0.679098 3.703090
++ 2.813126 -1.180187 2.436667
++ 2.923918 -0.505423 1.600713
++ 2.866567 -2.487992 2.382906
++ 2.666616 -2.884782 3.699977
++ 2.618169 -4.183246 4.272728
++ 2.745111 -5.274676 3.719947
++ 2.392358 -4.124071 5.653129
++ 2.340242 -4.991533 6.147896
++ 2.235991 -2.964895 6.385427
++ 2.027971 -3.123388 7.699660
++ 1.962797 -3.996113 8.203846
++ 1.903765 -2.280234 8.241661
++ 2.283795 -1.749407 5.847650
++ 2.502701 -1.789347 4.505978
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+@@ -6187,19 +6187,19 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.810222 0.365622 5.431037
+- 3.040503 -0.202936 5.543946
+- 3.303784 -1.184927 5.179558
+- 3.350889 0.129864 6.825549
+- 3.478253 0.640008 7.780343
+- 3.798907 -1.207335 6.588738
+- 4.083865 -0.848420 7.826630
+- 4.553596 -1.522140 8.414470
+- 3.834435 0.071716 8.160148
+- 4.146081 -2.428628 6.192742
+- 4.391834 -3.604440 5.555033
+- 4.829292 -3.701644 6.711226
++ 2.623224 0.684847 5.224690
++ 2.591673 -0.679108 3.703398
++ 2.814053 -0.989708 2.398148
++ 2.904088 -0.203069 1.663647
++ 2.926420 -2.283840 1.995414
++ 3.104659 -2.514231 0.945056
++ 2.799915 -3.288854 3.004791
++ 2.898410 -4.565463 2.683902
++ 2.803322 -5.244627 3.425383
++ 3.063325 -4.838262 1.725527
++ 2.582464 -2.976080 4.279070
++ 2.473124 -1.675585 4.661638
++ 2.270623 -1.344205 5.839254
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+@@ -6407,27 +6407,27 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.825854 0.331961 5.463505
+- 2.973744 -0.351218 5.767666
+- 3.198298 -1.353172 5.432908
+- 3.262456 0.147686 6.932887
+- 3.554407 -1.123002 6.450998
+- 3.970615 -1.030384 7.784487
+- 4.371751 -2.299375 7.628436
+- 4.806122 -2.789852 8.397106
+- 4.239728 -2.765377 6.742145
+- 4.154910 -0.430195 8.968298
+- 4.588103 -1.686764 8.920565
+- 4.748481 -1.226887 9.884511
+- 5.030638 -2.930357 8.914329
+- 5.276823 -4.138026 8.363485
++ 2.623224 0.684847 5.224690
++ 2.631874 -0.707517 3.706295
++ 2.874735 -1.252950 2.473241
++ 2.981754 -0.611820 1.610746
++ 3.015083 -2.545282 2.486669
++ 2.854431 -2.887097 3.824373
++ 2.890057 -4.114829 4.496241
++ 3.109804 -5.286605 3.884480
++ 3.124371 -6.141804 4.421623
++ 3.260868 -5.314611 2.886234
++ 2.691903 -4.099290 5.821417
++ 2.474287 -2.933307 6.423105
++ 2.312232 -2.898303 7.490303
++ 2.418509 -1.722706 5.899909
++ 2.621151 -1.767164 4.565946
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+ 4.177807 1.697081 2.650726
+ 4.070872 1.663908 4.714248
+- 4.904136 2.139152 4.751846
++ 4.591405 0.857803 4.743234
+ 2.785622 3.721368 4.515694
+ 3.677533 4.057871 4.629091
+ !entry.RAN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -6620,24 +6620,24 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.821628 0.329290 5.472166
+- 3.045980 -0.266556 5.623252
+- 3.300321 -1.253530 5.266050
+- 3.400654 0.078938 6.868419
+- 3.529160 0.584527 7.825480
+- 3.886987 -1.267611 6.713863
+- 4.193797 -1.026107 7.880244
+- 4.182336 -2.491705 6.149271
+- 4.473391 -2.322796 7.186024
+- 4.489928 -3.724276 5.610241
+- 4.916436 -3.803915 6.750481
++ 2.623224 0.684847 5.224690
++ 2.632951 -0.717026 3.703395
++ 2.875701 -1.078946 2.404555
++ 2.959028 -0.321296 1.639425
++ 3.067013 -2.361001 2.064944
++ 3.258724 -2.626638 1.025337
++ 3.022943 -3.401289 3.059659
++ 3.186167 -4.600916 2.842510
++ 2.773364 -2.946913 4.338586
++ 2.730574 -3.698393 5.126967
++ 2.572586 -1.635482 4.718372
++ 2.357489 -1.330164 5.879800
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+ 4.177807 1.697081 2.650726
+ 4.070872 1.663908 4.714248
+- 4.904136 2.139152 4.751846
++ 4.591405 0.857803 4.743234
+ 2.785622 3.721368 4.515694
+ 3.677533 4.057871 4.629091
+ !entry.RUN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -6844,28 +6844,28 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.809468 0.366314 5.430851
+- 2.985443 -0.303283 5.701265
+- 3.220128 -1.300453 5.359250
+- 3.217392 0.174542 6.898755
+- 3.501851 -1.098776 6.419335
+- 3.907092 -0.959542 7.773142
+- 4.306119 -2.122793 7.750193
+- 4.034999 -0.202628 8.943920
+- 4.092163 0.401223 9.738965
+- 4.527564 -1.484195 9.083085
+- 4.671337 -0.799117 10.225713
+- 4.406357 0.160408 10.396586
+- 5.109266 -1.288479 10.993073
+- 4.937775 -2.746085 8.992209
+- 5.203174 -3.983662 8.494648
++ 2.623224 0.684847 5.224690
++ 2.590680 -0.679098 3.703090
++ 2.813126 -1.180187 2.436667
++ 2.923918 -0.505423 1.600713
++ 2.866567 -2.487992 2.382906
++ 2.666616 -2.884782 3.699977
++ 2.618169 -4.183246 4.272728
++ 2.745111 -5.274676 3.719947
++ 2.392358 -4.124071 5.653129
++ 2.340242 -4.991533 6.147896
++ 2.235991 -2.964895 6.385427
++ 2.027971 -3.123388 7.699660
++ 1.962797 -3.996113 8.203846
++ 1.903765 -2.280234 8.241661
++ 2.283795 -1.749407 5.847650
++ 2.502701 -1.789347 4.505978
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+ 4.177807 1.697081 2.650726
+ 4.070872 1.663908 4.714248
+- 4.904136 2.139152 4.751846
++ 4.591405 0.857803 4.743234
+ 2.785622 3.721368 4.515694
+ 3.677533 4.057871 4.629091
+ !entry.RGN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+@@ -7063,25 +7063,25 @@
+ 0.391890 3.029890 3.571783
+ 1.142222 1.169994 3.879663
+ 2.468198 0.737932 4.147078
+- 3.422991 1.160472 4.460013
+- 1.810222 0.365622 5.431037
+- 3.040503 -0.202936 5.543946
+- 3.303784 -1.184927 5.179558
+- 3.350889 0.129864 6.825549
+- 3.478253 0.640008 7.780343
+- 3.798907 -1.207335 6.588738
+- 4.083865 -0.848420 7.826630
+- 4.553596 -1.522140 8.414470
+- 3.834435 0.071716 8.160148
+- 4.146081 -2.428628 6.192742
+- 4.391834 -3.604440 5.555033
+- 4.829292 -3.701644 6.711226
++ 2.623224 0.684847 5.224690
++ 2.591673 -0.679108 3.703398
++ 2.814053 -0.989708 2.398148
++ 2.904088 -0.203069 1.663647
++ 2.926420 -2.283840 1.995414
++ 3.104659 -2.514231 0.945056
++ 2.799915 -3.288854 3.004791
++ 2.898410 -4.565463 2.683902
++ 2.803322 -5.244627 3.425383
++ 3.063325 -4.838262 1.725527
++ 2.582464 -2.976080 4.279070
++ 2.473124 -1.675585 4.661638
++ 2.270623 -1.344205 5.839254
+ 2.575655 2.966926 3.331156
+ 2.881929 3.535802 2.453274
+ 3.424925 1.698847 3.438931
+ 4.177807 1.697081 2.650726
+ 4.070872 1.663908 4.714248
+- 4.904136 2.139152 4.751846
++ 4.591405 0.857803 4.743234
+ 2.785622 3.721368 4.515694
+ 3.677533 4.057871 4.629091
+ !entry.RCN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+diff -urN amber11.orig/AmberTools/test/sqm/nma/nma.dftb.go.in amber11/AmberTools/test/sqm/nma/nma.dftb.go.in
+--- amber11.orig/AmberTools/test/sqm/nma/nma.dftb.go.in 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/test/sqm/nma/nma.dftb.go.in 2011-03-08 16:38:44.000000000 +0300
+@@ -0,0 +1,30 @@
++Run DFTB geometry optimization for NMA
++ &qmmm
++ qm_theory = 'DFTB',
++ qmcharge = 0,
++ ! SCF settings
++ scfconv = 1.0d-10, ! kcal/mol
++ errconv = 1.d-06, ! au
++ tight_p_conv = 0,
++ diag_routine = 1,
++ itrmax = 100,
++ ! Geometry optimization settings
++ maxcyc = 100,
++ grms_tol = 0.001, ! kcal/(mol*A)
++ ! Output
++ ntpr = 101,
++ verbosity = 0,
++ /
++ 6 C -0.767000 3.380000 4.245000
++ 6 C -1.809707 2.570219 4.710852
++ 7 N -2.661673 2.646098 3.869189
++ 6 C -3.662846 1.855199 3.619926
++ 8 O -1.634379 2.116691 5.584678
++ 1 H 0.218271 3.164467 4.684075
++ 1 H -0.578839 3.210298 3.174581
++ 1 H -1.024346 4.421330 4.488732
++ 1 H -2.569216 3.204198 3.074324
++ 1 H -3.347225 0.824359 3.812610
++ 1 H -4.529359 1.998602 4.311686
++ 1 H -4.036138 1.906340 2.552627
++
+diff -urN amber11.orig/AmberTools/test/sqm/nma/nma.dftb.go.out.save amber11/AmberTools/test/sqm/nma/nma.dftb.go.out.save
+--- amber11.orig/AmberTools/test/sqm/nma/nma.dftb.go.out.save 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/test/sqm/nma/nma.dftb.go.out.save 2011-03-08 16:38:44.000000000 +0300
+@@ -0,0 +1,81 @@
++ --------------------------------------------------------
++ AMBER SQM VERSION 1.4
++
++ By
++ Ross C. Walker, Michael F. Crowley, Scott Brozell,
++ Tim Giese, Andreas W. Goetz and David A. Case
++
++ --------------------------------------------------------
++
++
++--------------------------------------------------------------------------------
++ QM CALCULATION INFO
++--------------------------------------------------------------------------------
++
++| QMMM: Citation for AMBER QMMM Run:
++| QMMM: R.C. Walker, M.F. Crowley and D.A. Case, J. COMP. CHEM. 29:1019, 2008
++
++| QMMM: DFTB Calculation - Additional citation for AMBER DFTB QMMM Run:
++| QMMM: Seabra, G.M., Walker, R.C. et al., J. PHYS. CHEM. A., 111, 5655, (2007)
++
++
++QMMM: SINGLET STATE CALCULATION
++QMMM: RHF CALCULATION, NO. OF DOUBLY OCCUPIED LEVELS = 15
++
++| QMMM: *** SCF convergence criteria ***
++| QMMM: Energy change : 0.1D-09 kcal/mol
++| QMMM: Error matrix |FP-PF| : 0.1D-05 au
++| QMMM: Density matrix change : 0.5D-06
++| QMMM: Maximum number of SCF cycles : 100
++ DFTB: Number of atom types = 4
++
++ Parameter files:
++ TYP (AT) TYP (AT) SK integral FILE
++| 1 1 (C ) 1 (C ) /Users/andi/sources/amber/dat/slko/C-C.skf
++| 2 1 (C ) 2 (N ) /Users/andi/sources/amber/dat/slko/C-N.skf
++| 3 1 (C ) 3 (O ) /Users/andi/sources/amber/dat/slko/C-O.skf
++| 4 1 (C ) 4 (H ) /Users/andi/sources/amber/dat/slko/C-H.skf
++| 5 2 (N ) 1 (C ) /Users/andi/sources/amber/dat/slko/N-C.skf
++| 6 2 (N ) 2 (N ) /Users/andi/sources/amber/dat/slko/N-N.skf
++| 7 2 (N ) 3 (O ) /Users/andi/sources/amber/dat/slko/N-O.skf
++| 8 2 (N ) 4 (H ) /Users/andi/sources/amber/dat/slko/N-H.skf
++| 9 3 (O ) 1 (C ) /Users/andi/sources/amber/dat/slko/O-C.skf
++| 10 3 (O ) 2 (N ) /Users/andi/sources/amber/dat/slko/O-N.skf
++| 11 3 (O ) 3 (O ) /Users/andi/sources/amber/dat/slko/O-O.skf
++| 12 3 (O ) 4 (H ) /Users/andi/sources/amber/dat/slko/O-H.skf
++| 13 4 (H ) 1 (C ) /Users/andi/sources/amber/dat/slko/H-C.skf
++| 14 4 (H ) 2 (N ) /Users/andi/sources/amber/dat/slko/H-N.skf
++| 15 4 (H ) 3 (O ) /Users/andi/sources/amber/dat/slko/H-O.skf
++| 16 4 (H ) 4 (H ) /Users/andi/sources/amber/dat/slko/H-H.skf
++
++--------------------------------------------------------------------------------
++ RESULTS
++--------------------------------------------------------------------------------
++
++ ... geometry converged !
++
++ Heat of formation = -1220.84132946 kcal/mol ( -52.93965264 eV)
++ Total SCF energy = -8463.39103876 kcal/mol ( -367.00017513 eV)
++
++ Atomic Charges for Step 1 :
++ Atom Element Mulliken Charge
++ 1 C -0.279
++ 2 C 0.493
++ 3 N -0.250
++ 4 C -0.073
++ 5 O -0.507
++ 6 H 0.096
++ 7 H 0.073
++ 8 H 0.073
++ 9 H 0.186
++ 10 H 0.097
++ 11 H 0.045
++ 12 H 0.045
++ Total Mulliken Charge = 0.000
++
++
++ Final Structure
++
++
++ --------- Calculation Completed ----------
++
+diff -urN amber11.orig/AmberTools/test/sqm/nma/nma.dftb.sp.in amber11/AmberTools/test/sqm/nma/nma.dftb.sp.in
+--- amber11.orig/AmberTools/test/sqm/nma/nma.dftb.sp.in 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/test/sqm/nma/nma.dftb.sp.in 2011-03-08 16:38:44.000000000 +0300
+@@ -0,0 +1,30 @@
++Run PM3 single point calculation for NMA
++ &qmmm
++ qm_theory = 'DFTB',
++ qmcharge = 0,
++ ! SCF settings
++ scfconv = 1.0d-10, ! kcal/mol
++ errconv = 1.d-06, ! au
++ tight_p_conv = 0,
++ diag_routine = 1,
++ itrmax = 100,
++ ! Geometry optimization settings
++ maxcyc = 0,
++ grms_tol = 0.02, ! kcal/(mol*A)
++ ! Output
++ ntpr = 10,
++ verbosity = 0,
++ /
++ 6 C -0.767000 3.380000 4.245000
++ 6 C -1.809707 2.570219 4.710852
++ 7 N -2.661673 2.646098 3.869189
++ 6 C -3.662846 1.855199 3.619926
++ 8 O -1.634379 2.116691 5.584678
++ 1 H 0.218271 3.164467 4.684075
++ 1 H -0.578839 3.210298 3.174581
++ 1 H -1.024346 4.421330 4.488732
++ 1 H -2.569216 3.204198 3.074324
++ 1 H -3.347225 0.824359 3.812610
++ 1 H -4.529359 1.998602 4.311686
++ 1 H -4.036138 1.906340 2.552627
++
+diff -urN amber11.orig/AmberTools/test/sqm/nma/nma.dftb.sp.out.save amber11/AmberTools/test/sqm/nma/nma.dftb.sp.out.save
+--- amber11.orig/AmberTools/test/sqm/nma/nma.dftb.sp.out.save 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/test/sqm/nma/nma.dftb.sp.out.save 2011-03-08 16:38:44.000000000 +0300
+@@ -0,0 +1,111 @@
++ --------------------------------------------------------
++ AMBER SQM VERSION 1.4
++
++ By
++ Ross C. Walker, Michael F. Crowley, Scott Brozell,
++ Tim Giese, Andreas W. Goetz and David A. Case
++
++ --------------------------------------------------------
++
++
++--------------------------------------------------------------------------------
++ QM CALCULATION INFO
++--------------------------------------------------------------------------------
++
++| QMMM: Citation for AMBER QMMM Run:
++| QMMM: R.C. Walker, M.F. Crowley and D.A. Case, J. COMP. CHEM. 29:1019, 2008
++
++| QMMM: DFTB Calculation - Additional citation for AMBER DFTB QMMM Run:
++| QMMM: Seabra, G.M., Walker, R.C. et al., J. PHYS. CHEM. A., 111, 5655, (2007)
++
++
++QMMM: SINGLET STATE CALCULATION
++QMMM: RHF CALCULATION, NO. OF DOUBLY OCCUPIED LEVELS = 15
++
++| QMMM: *** SCF convergence criteria ***
++| QMMM: Energy change : 0.1D-09 kcal/mol
++| QMMM: Error matrix |FP-PF| : 0.1D-05 au
++| QMMM: Density matrix change : 0.5D-06
++| QMMM: Maximum number of SCF cycles : 100
++ DFTB: Number of atom types = 4
++
++ Parameter files:
++ TYP (AT) TYP (AT) SK integral FILE
++| 1 1 (C ) 1 (C ) /Users/andi/sources/amber/dat/slko/C-C.skf
++| 2 1 (C ) 2 (N ) /Users/andi/sources/amber/dat/slko/C-N.skf
++| 3 1 (C ) 3 (O ) /Users/andi/sources/amber/dat/slko/C-O.skf
++| 4 1 (C ) 4 (H ) /Users/andi/sources/amber/dat/slko/C-H.skf
++| 5 2 (N ) 1 (C ) /Users/andi/sources/amber/dat/slko/N-C.skf
++| 6 2 (N ) 2 (N ) /Users/andi/sources/amber/dat/slko/N-N.skf
++| 7 2 (N ) 3 (O ) /Users/andi/sources/amber/dat/slko/N-O.skf
++| 8 2 (N ) 4 (H ) /Users/andi/sources/amber/dat/slko/N-H.skf
++| 9 3 (O ) 1 (C ) /Users/andi/sources/amber/dat/slko/O-C.skf
++| 10 3 (O ) 2 (N ) /Users/andi/sources/amber/dat/slko/O-N.skf
++| 11 3 (O ) 3 (O ) /Users/andi/sources/amber/dat/slko/O-O.skf
++| 12 3 (O ) 4 (H ) /Users/andi/sources/amber/dat/slko/O-H.skf
++| 13 4 (H ) 1 (C ) /Users/andi/sources/amber/dat/slko/H-C.skf
++| 14 4 (H ) 2 (N ) /Users/andi/sources/amber/dat/slko/H-N.skf
++| 15 4 (H ) 3 (O ) /Users/andi/sources/amber/dat/slko/H-O.skf
++| 16 4 (H ) 4 (H ) /Users/andi/sources/amber/dat/slko/H-H.skf
++
++ QMMM: QM Region Cartesian Coordinates (*=link atom)
++ QMMM: QM_NO. MM_NO. ATOM X Y Z
++ QMMM: 1 1 C -0.7670 3.3800 4.2450
++ QMMM: 2 2 C -1.8097 2.5702 4.7109
++ QMMM: 3 3 N -2.6617 2.6461 3.8692
++ QMMM: 4 4 C -3.6628 1.8552 3.6199
++ QMMM: 5 5 O -1.6344 2.1167 5.5847
++ QMMM: 6 6 H 0.2183 3.1645 4.6841
++ QMMM: 7 7 H -0.5788 3.2103 3.1746
++ QMMM: 8 8 H -1.0243 4.4213 4.4887
++ QMMM: 9 9 H -2.5692 3.2042 3.0743
++ QMMM: 10 10 H -3.3472 0.8244 3.8126
++ QMMM: 11 11 H -4.5294 1.9986 4.3117
++ QMMM: 12 12 H -4.0361 1.9063 2.5526
++
++--------------------------------------------------------------------------------
++ RESULTS
++--------------------------------------------------------------------------------
++
++
++ Heat of formation = -1039.27301701 kcal/mol ( -45.06625979 eV)
++ Total SCF energy = -8281.82272631 kcal/mol ( -359.12678229 eV)
++ Electronic energy = -8895.69306749 kcal/mol ( -385.74619780 eV)
++ Core-core repulsion = 613.87034117 kcal/mol ( 26.61941551 eV)
++
++ Atomic Charges for Step 1 :
++ Atom Element Mulliken Charge
++ 1 C -0.347
++ 2 C 0.560
++ 3 N -0.202
++ 4 C -0.066
++ 5 O -0.439
++ 6 H 0.077
++ 7 H 0.048
++ 8 H 0.072
++ 9 H 0.187
++ 10 H 0.044
++ 11 H 0.029
++ 12 H 0.037
++ Total Mulliken Charge = 0.000
++
++
++ Final Structure
++
++ QMMM: QM Region Cartesian Coordinates (*=link atom)
++ QMMM: QM_NO. MM_NO. ATOM X Y Z
++ QMMM: 1 1 C -0.7670 3.3800 4.2450
++ QMMM: 2 2 C -1.8097 2.5702 4.7109
++ QMMM: 3 3 N -2.6617 2.6461 3.8692
++ QMMM: 4 4 C -3.6628 1.8552 3.6199
++ QMMM: 5 5 O -1.6344 2.1167 5.5847
++ QMMM: 6 6 H 0.2183 3.1645 4.6841
++ QMMM: 7 7 H -0.5788 3.2103 3.1746
++ QMMM: 8 8 H -1.0243 4.4213 4.4887
++ QMMM: 9 9 H -2.5692 3.2042 3.0743
++ QMMM: 10 10 H -3.3472 0.8244 3.8126
++ QMMM: 11 11 H -4.5294 1.9986 4.3117
++ QMMM: 12 12 H -4.0361 1.9063 2.5526
++
++ --------- Calculation Completed ----------
++
+diff -urN amber11.orig/AmberTools/test/sqm/nma/Run amber11/AmberTools/test/sqm/nma/Run
+--- amber11.orig/AmberTools/test/sqm/nma/Run 2010-04-14 17:26:17.000000000 +0400
++++ amber11/AmberTools/test/sqm/nma/Run 2011-03-08 16:38:44.000000000 +0300
+@@ -3,8 +3,19 @@
+ set SQM = ../../../exe/sqm
+ set SPDIFF = ../../dacdif
+ set GODIFF = "../../dacdif -a 0.01"
+-set SPTESTS = (nma.pm3.sp nma.pm6.sp)
+-set GOTESTS = (nma.pm3.go nma.pm6.go)
++
++# check if slko files for DFTB are installed
++../../check_slko_files.x
++if( $status > 0) then
++ # no slko files - do not run DFTB tests
++ set SPTESTS = (nma.pm3.sp nma.pm6.sp)
++ set GOTESTS = (nma.pm3.go nma.pm6.go)
++else
++ # slko files present - run DFTB tests
++ set SPTESTS = (nma.pm3.sp nma.pm6.sp nma.dftb.sp)
++ set GOTESTS = (nma.pm3.go nma.pm6.go nma.dftb.go)
++endif
++
+
+ # single point tests
+ foreach i ($SPTESTS)
+diff -urN amber11.orig/dat/leap/lib/amoeba_aminoct.off amber11/dat/leap/lib/amoeba_aminoct.off
+--- amber11.orig/dat/leap/lib/amoeba_aminoct.off 2010-03-31 07:05:27.000000000 +0400
++++ amber11/dat/leap/lib/amoeba_aminoct.off 2011-03-08 16:38:44.000000000 +0300
+@@ -638,24 +638,24 @@
+ !entry.CCYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg str
+ "N" "7" 0 1 131072 1 7 -0.382100
+ "H" "10" 0 1 131072 2 1 0.268100
+- "CA" "8" 0 1 131072 3 6 -0.131800
++ "CA" "44" 0 1 131072 3 6 -0.131800
+ "HA" "12" 0 1 131072 4 1 0.093800
+- "CB" "" 0 1 131072 5 6 -0.194300
+- "HB2" "" 0 1 131072 6 1 0.122800
+- "HB3" "" 0 1 131072 7 1 0.122800
+- "SG" "" 0 1 131072 8 16 -0.052900
++ "CB" "45" 0 1 131072 5 6 -0.194300
++ "HB2" "46" 0 1 131072 6 1 0.122800
++ "HB3" "46" 0 1 131072 7 1 0.122800
++ "SG" "49" 0 1 131072 8 16 -0.052900
+ "C" "192" 0 1 131072 9 6 0.761800
+ "O" "193" 0 1 131072 10 8 -0.804100
+ "OXT" "193" 0 1 131072 11 8 -0.804100
+ !entry.CCYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+ "N" "7" 0 -1 0.0
+ "H" "10" 0 -1 0.0
+- "CA" "8" 0 -1 0.0
++ "CA" "44" 0 -1 0.0
+ "HA" "12" 0 -1 0.0
+- "CB" "" 0 -1 0.0
+- "HB2" "" 0 -1 0.0
+- "HB3" "" 0 -1 0.0
+- "SG" "" 0 -1 0.0
++ "CB" "45" 0 -1 0.0
++ "HB2" "46" 0 -1 0.0
++ "HB3" "46" 0 -1 0.0
++ "SG" "49" 0 -1 0.0
+ "C" "192" 0 -1 0.0
+ "O" "193" 0 -1 0.0
+ "OXT" "193" 0 -1 0.0
+diff -urN amber11.orig/dat/leap/lib/amoeba_aminont.off amber11/dat/leap/lib/amoeba_aminont.off
+--- amber11.orig/dat/leap/lib/amoeba_aminont.off 2010-03-31 07:05:27.000000000 +0400
++++ amber11/dat/leap/lib/amoeba_aminont.off 2011-03-08 16:38:44.000000000 +0300
+@@ -736,12 +736,12 @@
+ "H1" "191" 0 1 131072 2 1 0.181500
+ "H2" "191" 0 1 131072 3 1 0.181500
+ "H3" "191" 0 1 131072 4 1 0.181500
+- "CA" "8" 0 1 131072 5 6 0.105500
++ "CA" "44" 0 1 131072 5 6 0.105500
+ "HA" "12" 0 1 131072 6 1 0.092200
+- "CB" "" 0 1 131072 7 6 -0.027700
+- "HB2" "" 0 1 131072 8 1 0.068000
+- "HB3" "" 0 1 131072 9 1 0.068000
+- "SG" "" 0 1 131072 10 16 -0.098400
++ "CB" "45" 0 1 131072 7 6 -0.027700
++ "HB2" "46" 0 1 131072 8 1 0.068000
++ "HB3" "46" 0 1 131072 9 1 0.068000
++ "SG" "49" 0 1 131072 10 16 -0.098400
+ "C" "9" 0 1 131072 11 6 0.612300
+ "O" "11" 0 1 131072 12 8 -0.571300
+ !entry.NCYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+diff -urN amber11.orig/dat/leap/lib/amoeba_amino.off amber11/dat/leap/lib/amoeba_amino.off
+--- amber11.orig/dat/leap/lib/amoeba_amino.off 2010-03-31 07:05:27.000000000 +0400
++++ amber11/dat/leap/lib/amoeba_amino.off 2011-03-08 16:38:44.000000000 +0300
+@@ -880,23 +880,23 @@
+ !entry.CYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg str
+ "N" "7" 0 1 131072 1 7 -0.435921
+ "H" "10" 0 1 131072 2 1 0.290077
+- "CA" "8" 0 1 131072 3 6 -0.030547
++ "CA" "44" 0 1 131072 3 6 -0.030547
+ "HA" "12" 0 1 131072 4 1 0.132146
+- "CB" "" 0 1 131072 5 6 -0.033006
+- "HB2" "" 0 1 131072 6 1 0.078951
+- "HB3" "" 0 1 131072 7 1 0.078951
+- "SG" "" 0 1 131072 8 16 -0.132272
++ "CB" "45" 0 1 131072 5 6 -0.033006
++ "HB2" "46" 0 1 131072 6 1 0.078951
++ "HB3" "46" 0 1 131072 7 1 0.078951
++ "SG" "49" 0 1 131072 8 16 -0.132272
+ "C" "9" 0 1 131072 9 6 0.624788
+ "O" "11" 0 1 131072 10 8 -0.573167
+ !entry.CYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+ "N" "7" 0 -1 0.0
+ "H" "10" 0 -1 0.0
+- "CA" "8" 0 -1 0.0
++ "CA" "44" 0 -1 0.0
+ "HA" "12" 0 -1 0.0
+- "CB" "" 0 -1 0.0
+- "HB2" "" 0 -1 0.0
+- "HB3" "" 0 -1 0.0
+- "SG" "" 0 -1 0.0
++ "CB" "45" 0 -1 0.0
++ "HB2" "46" 0 -1 0.0
++ "HB3" "46" 0 -1 0.0
++ "SG" "49" 0 -1 0.0
+ "C" "9" 0 -1 0.0
+ "O" "11" 0 -1 0.0
+ !entry.CYX.unit.boundbox array dbl
+@@ -990,16 +990,16 @@
+ "H" "10" 0 -1 0.0
+ "CA" "8" 0 -1 0.0
+ "HA" "12" 0 -1 0.0
+- "CB" "" 0 -1 0.0
+- "HB2" "" 0 -1 0.0
+- "HB3" "" 0 -1 0.0
+- "CG" "" 0 -1 0.0
+- "HG2" "" 0 -1 0.0
+- "HG3" "" 0 -1 0.0
+- "CD" "" 0 -1 0.0
+- "OE1" "" 0 -1 0.0
+- "OE2" "" 0 -1 0.0
+- "HE2" "" 0 -1 0.0
++ "CB" "144" 0 -1 0.0
++ "HB2" "145" 0 -1 0.0
++ "HB3" "145" 0 -1 0.0
++ "CG" "146" 0 -1 0.0
++ "HG2" "147" 0 -1 0.0
++ "HG3" "147" 0 -1 0.0
++ "CD" "148" 0 -1 0.0
++ "OE1" "149" 0 -1 0.0
++ "OE2" "149" 0 -1 0.0
++ "HE2" "10" 0 -1 0.0
+ "C" "9" 0 -1 0.0
+ "O" "11" 0 -1 0.0
+ !entry.GLH.unit.boundbox array dbl
+@@ -2147,21 +2147,21 @@
+ "H" "10" 0 -1 0.0
+ "CA" "8" 0 -1 0.0
+ "HA" "12" 0 -1 0.0
+- "CB" "" 0 -1 0.0
+- "HB2" "" 0 -1 0.0
+- "HB3" "" 0 -1 0.0
+- "CG" "" 0 -1 0.0
+- "HG2" "" 0 -1 0.0
+- "HG3" "" 0 -1 0.0
+- "CD" "" 0 -1 0.0
+- "HD2" "" 0 -1 0.0
+- "HD3" "" 0 -1 0.0
+- "CE" "" 0 -1 0.0
+- "HE2" "" 0 -1 0.0
+- "HE3" "" 0 -1 0.0
+- "NZ" "" 0 -1 0.0
+- "HZ2" "" 0 -1 0.0
+- "HZ3" "" 0 -1 0.0
++ "CB" "159" 0 -1 0.0
++ "HB2" "160" 0 -1 0.0
++ "HB3" "160" 0 -1 0.0
++ "CG" "161" 0 -1 0.0
++ "HG2" "162" 0 -1 0.0
++ "HG3" "162" 0 -1 0.0
++ "CD" "163" 0 -1 0.0
++ "HD2" "164" 0 -1 0.0
++ "HD3" "164" 0 -1 0.0
++ "CE" "165" 0 -1 0.0
++ "HE2" "166" 0 -1 0.0
++ "HE3" "166" 0 -1 0.0
++ "NZ" "167" 0 -1 0.0
++ "HZ2" "168" 0 -1 0.0
++ "HZ3" "168" 0 -1 0.0
+ "C" "9" 0 -1 0.0
+ "O" "11" 0 -1 0.0
+ !entry.LYN.unit.boundbox array dbl
+diff -urN amber11.orig/dat/leap/parm/gaff.dat amber11/dat/leap/parm/gaff.dat
+--- amber11.orig/dat/leap/parm/gaff.dat 2010-03-31 07:05:27.000000000 +0400
++++ amber11/dat/leap/parm/gaff.dat 2011-03-08 16:38:44.000000000 +0300
+@@ -16,6 +16,7 @@
+ cy 12.01 0.360 Sp3 carbons in square systems
+ cu 12.01 0.360 Sp2 carbons in triangle systems
+ cv 12.01 0.360 Sp2 carbons in square systems
++cz 12.01 0.360 Sp2 carbon in guanidine group
+ h1 1.008 0.135 H bonded to aliphatic carbon with 1 electrwd. group
+ h2 1.008 0.135 H bonded to aliphatic carbon with 2 electrwd. group
+ h3 1.008 0.135 H bonded to aliphatic carbon with 3 electrwd. group
+@@ -852,11 +853,6 @@
+ s6-ss 139.6 2.1180 SOURCE3 5 0.0209
+ sh-sh 158.9 2.0580 SOURCE2 1 0.0000
+ sh-ss 155.8 2.0670 SOURCE3 3 0.0029
+-Si-c3 189.8 1.8928 SOURCE4 77 0.0061
+-Si-ca 191.1 1.8898 SOURCE4 11 0.0028
+-Si-ha 186.3 1.4887 SOURCE4 6 0.0040
+-Si-oh 267.6 1.6792 SOURCE4 6 0.0035
+-Si-os 287.7 1.6524 SOURCE4 22 0.0057
+ s -s 169.0 2.0300 SOURCE3 1 0.0000
+ s -s2 229.2 1.8970 SOURCE1 5 0.0000
+ s -s4 152.8 2.0760 SOURCE3 4 0.0345
+@@ -1091,7 +1087,6 @@
+ hc-c2-s6 54.150 115.450 SOURCE3 1
+ hc-c2-sh 53.550 115.630 SOURCE3 1
+ hc-c2-ss 54.900 115.620 SOURCE3 1
+-hn-c2-n4 0.000 112.740 SOURCE3 1
+ hx-c2-n4 48.420 113.030 SOURCE3 3 0.3873
+ i -c2-i 60.960 117.940 SOURCE3 1 0.0000
+ n1-c2-n1 73.610 124.150 HF/6-31G* 1
+@@ -1464,9 +1459,6 @@
+ s6-c3-s6 102.050 111.750 SOURCE3 1 0.0000
+ sh-c3-sh 97.420 116.260 SOURCE3 1 0.0000
+ sh-c3-ss 99.850 110.730 SOURCE3 1
+-Si-c3-c3 74.610 114.340 SOURCE4 26 1.1613
+-Si-c3-h1 51.040 110.900 SOURCE4 17 1.0270
+-Si-c3-hc 50.960 111.210 SOURCE4 222 0.4865
+ s -c3-s 93.400 123.350 SOURCE3 1 0.0000
+ ss-c3-ss 99.950 110.570 SOURCE4 15 1.4311
+ br-ca-br 67.310 117.600 SOURCE3 1
+@@ -1500,7 +1492,6 @@
+ ca-ca-i 58.590 118.470 SOURCE3 10 0.6181
+ ca-ca-n1 68.920 118.500 HF/6-31G* 1
+ ca-ca-n2 70.950 119.570 SOURCE3 1
+-ca-ca-n3 0.000 121.190 SOURCE3 1
+ ca-ca-n4 67.280 118.410 SOURCE3 6 0.1691
+ ca-ca-n 67.970 119.890 SOURCE3 18 0.2095
+ ca-ca-na 70.210 118.340 SOURCE3 54 3.6168
+@@ -1540,7 +1531,6 @@
+ cf-ca-nb 68.080 118.140 SOURCE4 12 1.1775
+ cg-ca-cp 65.330 121.530 SOURCE4 12 0.1831
+ c -ca-ha 46.510 115.900 SOURCE3 1
+-c -ca-hc 0.000 120.000 SOURCE3 1
+ cl-ca-cl 62.630 118.720 SOURCE3 1
+ cl-ca-cp 62.600 120.310 SOURCE4 18 0.5607
+ cl-ca-nb 65.810 116.150 SOURCE4 50 0.6047
+@@ -1606,7 +1596,6 @@
+ s4-ca-s4 104.060 105.810 SOURCE3 1
+ s6-ca-s6 105.770 105.810 SOURCE3 1
+ sh-ca-sh 98.150 120.240 SOURCE3 1
+-Si-ca-ca 73.850 121.430 SOURCE4 19 0.4235
+ s -ca-s 98.380 125.140 SOURCE3 1
+ ss-ca-ss 100.760 115.150 SOURCE3 1
+ br-c -br 66.910 113.100 SOURCE3 1
+@@ -1636,7 +1625,6 @@
+ c3-c -n 67.860 115.150 SOURCE3 153 2.7443
+ c3-c -ne 68.090 111.390 SOURCE4 11 2.1430
+ c3-c -nf 67.430 113.380 SOURCE3 1 same_as_c3-c-ne
+-c3-c -nh 0.000 113.580 SOURCE3 1
+ c3-c -o 68.030 123.110 SOURCE3 267 3.0977
+ c3-c -oh 69.840 112.200 SOURCE3 14 1.8324
+ c3-c -os 69.260 111.960 SOURCE3 15 2.3072
+@@ -1832,7 +1820,6 @@
+ ha-cc-os 52.490 110.860 SOURCE3 7 1.3846
+ ha-cc-pd 42.350 121.760 SOURCE3 84 same_as_ha-cd-pc
+ ha-cc-ss 53.490 121.640 SOURCE2 5 1.3276
+-c -c -hc 0.000 117.080 SOURCE3 1
+ ch-c -ch 65.440 115.380 SOURCE3 1 same_as_cg-c-cg
+ ch-c -ha 47.800 113.900 SOURCE2 1 same_as_cg-c-ha
+ ch-c -o 70.210 122.310 SOURCE3 2 same_as_cg-c-o
+@@ -2183,7 +2170,6 @@
+ c -cf-n 66.600 116.790 SOURCE4 8 0.8255
+ c -cf-nh 65.940 122.760 SOURCE3 1 same_as_c-ce-nh
+ f -c -f 72.220 107.350 SOURCE2 2 0.2500
+-f -c -h 0.000 109.900 SOURCE2 1 0.0000
+ h4-cf-n2 52.210 122.140 SOURCE4 11 0.9297
+ h4-cf-ne 52.280 120.210 SOURCE4 6 0.8104
+ ha-cf-n1 52.480 115.960 SOURCE3 2 3.5425
+@@ -2239,34 +2225,20 @@
+ cf-ch-cg 57.400 177.900 SOURCE4 8 0.4883
+ cf-ch-n1 59.370 178.120 SOURCE4 22 1.5200
+ cg-ch-ch 58.680 179.670 SOURCE4 7 0.1439
+-hc-c -hc 0.000 115.680 SOURCE3 1
+-hc-c -n 0.000 120.000 SOURCE3 1
+-hc-c -nh 0.000 112.700 SOURCE3 1
+-hc-c -o 0.000 120.000 SOURCE3 1
+-hc-c -oh 0.000 113.700 SOURCE3 1
+-hc-c -os 0.000 113.580 SOURCE3 1
+ n1-ch-nf 64.660 176.170 SOURCE2 3 same_as_n1-cg-ne
+-h -c -o 0.000 127.300 SOURCE2 1 0.0000
+ i -c -i 59.790 116.450 SOURCE3 1 0.0000
+ i -c -o 55.510 122.020 SOURCE3 4 1.2961
+ f -cl-f 50.000 87.500 SOURCE2 1 estimated_force_constant
+ n2-c -n2 71.830 110.310 SOURCE3 1
+-n2-c -na 0.000 118.600 SOURCE3 1
+ n2-c -o 73.020 122.500 SOURCE3 1
+-n3-c -n3 0.000 112.980 SOURCE3 1
+-n3-c -o 0.000 122.260 SOURCE3 1
+ n4-c -n4 64.710 114.640 SOURCE3 1 0.0000
+ n4-c -o 69.580 118.830 SOURCE3 4 3.8516
+-na-c -na 0.000 115.400 SOURCE3 1
+-na-c -o 0.000 122.850 SOURCE3 1
+ nc-c -o 74.050 123.980 SOURCE4 66 0.9502
+ nd-c -o 73.720 121.760 SOURCE4 55 1.1138
+ ne-c -ne 73.220 110.310 SOURCE3 1 0.0000
+ ne-c -o 72.940 126.030 SOURCE4 39 0.9885
+ nf-c -nf 73.070 110.310 SOURCE3 1 same_as_ne-c-ne
+ nf-c -o 73.320 124.390 SOURCE3 3 same_as_ne-c-o
+-nh-c -nh 0.000 110.980 SOURCE3 1
+-nh-c -o 0.000 124.620 SOURCE3 1
+ n -c -n 74.800 113.380 SOURCE4 635 1.4358
+ n -c -nc 72.690 117.050 SOURCE4 54 0.7020
+ n -c -nd 71.900 117.060 SOURCE4 23 0.9856
+@@ -2318,10 +2290,10 @@
+ py-c -py 57.520 123.800 SOURCE3 1 0.0000
+ ca-cq-ca 67.000 118.240 SOURCE4 5 0.2181
+ ca-cq-cq 64.220 120.410 SOURCE4 12 1.4029
+-ca-cq-nb 0.000 122.970 SOURCE3 2 0.0000
++ca-cq-nb 69.270 121.650 SOURCE4 63 same as ca-cp-nb
+ cp-cq-cq 62.640 124.470 SOURCE4 5 1.0864
+ cq-cq-cq 72.200 90.000 SOURCE3 4 0.0000
+-cq-cq-nb 0.000 116.430 SOURCE3 2 0.0000
++cq-cq-nb 68.050 116.600 SOURCE4 88 same as cp-cp-nb
+ s4-c -s4 98.110 108.810 SOURCE3 1
+ s6-c -s6 95.130 115.750 SOURCE3 1
+ sh-c -sh 100.060 115.330 SOURCE3 1 0.0000
+@@ -2454,9 +2426,6 @@
+ n -cy-s6 82.570 103.450 SOURCE4 6 0.7197
+ n -cy-ss 82.030 105.120 SOURCE4 69 0.3987
+ nh-cz-nh 72.970 120.170 SOURCE4 26 0.3964
+-ca-i -cl 0.000 90.210 SOURCE3 2 estimated_force_constant
+-ca-i -o 0.000 97.080 SOURCE3 5 0.2233,estimated_force_constant
+-cl-i -cl 0.000 179.580 SOURCE3 1 estimated_force_constant
+ br-n1-c1 51.100 180.000 HF/6-31G* 1
+ c1-n1-c1 64.910 179.920 HF/6-31G* 1
+ c1-n1-c2 60.250 177.730 HF/6-31G* 1
+@@ -2729,7 +2698,6 @@
+ c2-n3-c2 66.220 124.680 SOURCE3 1
+ c2-n3-hn 49.110 119.380 SOURCE3 1
+ c3-n3-c3 64.010 110.900 SOURCE3 40 2.3048
+-c3-n3-ca 0.000 116.390 SOURCE3 1
+ c3-n3-cl 62.170 107.230 SOURCE3 3 0.3673
+ c3-n3-cx 62.450 116.320 SOURCE4 24 0.5119
+ c3-n3-cy 61.690 118.260 SOURCE4 14 0.8788
+@@ -2753,7 +2721,6 @@
+ c3-n3-sh 78.550 112.700 SOURCE3 1 0.0000
+ c3-n3-ss 77.950 116.010 SOURCE3 3 1.1944
+ c3-n3-sy 79.010 115.270 SOURCE4 108 1.7647
+-c -n3-c 0.000 127.170 SOURCE3 1
+ cl-n3-cl 61.850 108.280 SOURCE3 1 0.0000
+ cl-n3-hn 42.590 104.390 SOURCE3 2 0.0000
+ cl-n3-n3 63.750 107.650 SOURCE3 1 0.0000
+@@ -2824,7 +2791,6 @@
+ c1-n4-hn 48.620 110.190 SOURCE3 7 1.0847
+ c2-n4-c2 63.010 112.580 SOURCE3 1 0.0000
+ c2-n4-c3 63.100 110.960 SOURCE4 13 2.4632
+-c2-n4-h4 0.000 112.460 SOURCE3 1
+ c2-n4-hn 46.430 111.360 SOURCE3 13 1.2672
+ c3-n4-c3 62.840 110.640 SOURCE3 13 1.3060
+ c3-n4-ca 63.610 110.400 SOURCE4 46 1.4643
+@@ -3002,10 +2968,6 @@
+ ca-na-s 75.010 125.640 SOURCE3 1
+ ca-na-sh 76.630 125.440 SOURCE3 1
+ ca-na-ss 74.880 129.910 SOURCE4 8 0.1449
+-c -na-c 0.000 126.400 SOURCE3 1
+-c -na-c2 0.000 125.090 SOURCE3 1
+-c -na-c3 0.000 117.600 SOURCE3 1
+-c -na-ca 0.000 125.200 SOURCE3 1
+ cc-na-cc 68.940 109.900 SOURCE3 109 1.5547
+ cc-na-cd 63.880 128.010 SOURCE3 1 0.0000
+ cc-na-ce 63.050 126.610 SOURCE4 8 0.5158
+@@ -3058,7 +3020,6 @@
+ cd-na-s 74.800 125.660 SOURCE3 8 0.1880
+ cd-na-sh 76.830 123.960 SOURCE3 10 0.3424
+ cd-na-ss 77.930 119.180 SOURCE3 36 5.0538
+-c -na-hn 0.000 118.000 SOURCE3 1
+ cl-na-cl 56.330 122.800 SOURCE3 1
+ cl-na-nc 59.890 119.360 SOURCE3 4 1.7128
+ cl-na-nd 59.890 119.360 SOURCE3 4 same_as_cl-na-nc
+@@ -3067,7 +3028,6 @@
+ cl-na-pc 58.780 120.510 SOURCE3 3 2.1985
+ cl-na-pd 58.780 120.510 SOURCE3 3 same_as_cl-na-pc
+ cl-na-ss 77.180 111.910 SOURCE3 1 0.0000
+-c -na-n 0.000 124.660 SOURCE3 1
+ f -na-f 62.220 120.200 SOURCE3 1
+ f -na-nc 66.640 118.050 SOURCE3 4 1.7931
+ f -na-nd 66.640 118.050 SOURCE3 4 same_as_f-na-nc
+@@ -3231,7 +3191,7 @@
+ sy-na-sy 96.930 123.200 SOURCE3 1
+ ca-nb-ca 68.590 115.860 SOURCE3 46 1.1645
+ ca-nb-cp 68.010 118.040 SOURCE4 58 0.7819
+-ca-nb-cq 0.000 117.040 SOURCE3 2 0.0000
++ca-nb-cq 68.010 118.040 SOURCE4 58 same as ca-nb-cp
+ ca-nb-nb 69.370 118.890 SOURCE3 10 0.6031
+ cp-nb-nb 68.790 121.110 SOURCE4 12 0.4315
+ nb-nb-nb 70.440 121.040 SOURCE3 1 0.0000
+@@ -3597,8 +3557,6 @@
+ ca-nh-sh 78.190 121.410 SOURCE3 1 0.0000
+ ca-nh-ss 78.160 121.500 SOURCE3 3 2.6255
+ ca-nh-sy 76.750 125.260 SOURCE4 41 1.7517
+-c -nh-c 0.000 119.570 SOURCE3 1
+-c -nh-ca 0.000 123.570 SOURCE3 1
+ cc-nh-cx 63.320 122.820 SOURCE4 42 1.1841
+ cc-nh-hn 48.860 117.160 SOURCE3 11 2.6137
+ cc-nh-n2 68.230 119.660 SOURCE4 5 1.3903
+@@ -3610,10 +3568,8 @@
+ ce-nh-sy 80.450 112.970 SOURCE4 7 1.0636
+ cf-nh-hn 48.620 115.620 SOURCE4 16 1.3549
+ cf-nh-o 67.070 129.430 SOURCE3 1 same_as_ce-nh-o
+-c -nh-hn 0.000 115.730 SOURCE3 1
+ cl-nh-cl 62.930 106.600 SOURCE3 1
+ cl-nh-hn 43.080 104.140 SOURCE3 1 0.0000
+-c -nh-n4 0.000 111.350 SOURCE3 1
+ cx-nh-cx 86.530 62.020 SOURCE4 45 0.6189
+ cx-nh-hn 45.790 118.890 SOURCE4 8 0.1391
+ cz-nh-hn 48.790 121.240 SOURCE4 40 0.5682
+@@ -3783,7 +3739,6 @@
+ ho-oh-sh 54.390 106.240 SOURCE3 2 0.0661
+ ho-oh-ss 54.540 107.060 SOURCE3 4 0.9967
+ ho-oh-sy 55.940 106.410 SOURCE4 33 0.3729
+-Si-oh-ho 52.570 115.710 SOURCE4 5 0.1738
+ br-os-br 65.080 110.630 SOURCE3 1 0.0000
+ c1-os-c1 66.990 115.020 SOURCE3 1 0.0000
+ c1-os-c3 64.470 113.390 SOURCE3 1 0.0000
+@@ -3892,7 +3847,6 @@
+ s4-os-s4 99.450 111.630 SOURCE3 1 0.0000
+ s6-os-s6 103.740 119.070 SOURCE3 2 0.4318
+ sh-os-sh 97.950 118.950 SOURCE3 1 0.0000
+-Si-os-c3 74.830 124.640 SOURCE4 9 0.2879
+ s -os-s 91.270 118.080 SOURCE3 1 0.0000
+ ss-os-ss 97.420 115.640 SOURCE3 1 0.0000
+ br-p2-br 65.020 108.600 SOURCE3 1
+@@ -4615,7 +4569,6 @@
+ f -s4-f 43.790 92.710 SOURCE2 3 0.1490
+ f -s4-o 43.870 106.810 SOURCE2 2 0.0100
+ f -s4-s 47.340 107.500 SOURCE2 1 0.0000
+-hn-s4-hs 0.000 86.990 SOURCE3 1
+ hs-s4-hs 23.650 87.000 SOURCE3 2 0.0202
+ hs-s4-n1 32.050 90.510 HF/6-31G* 1
+ hs-s4-o 31.160 110.270 SOURCE3 5 0.1908
+@@ -4789,12 +4742,6 @@
+ hs-sh-s6 33.980 93.830 SOURCE3 3 1.2561
+ hs-sh-sh 33.890 99.070 SOURCE3 2 0.0000
+ hs-sh-ss 33.730 99.170 SOURCE3 3 0.2457
+-c3-Si-c3 34.810 109.820 SOURCE4 88 0.5569
+-c3-Si-ca 34.800 110.090 SOURCE4 26 0.7331
+-c3-Si-oh 38.160 107.440 SOURCE4 8 1.5150
+-c3-Si-os 38.140 108.750 SOURCE4 38 0.7301
+-ha-Si-ha 19.530 108.770 SOURCE4 5 0.5372
+-os-Si-os 42.630 108.350 SOURCE4 15 1.7995
+ br-ss-br 41.920 102.920 SOURCE3 1 0.0000
+ br-ss-c3 39.460 99.030 SOURCE3 1 0.0000
+ c1-ss-c1 41.480 98.300 SOURCE2 1 0.0000
+@@ -4813,7 +4760,6 @@
+ c3-ss-cl 37.940 99.400 SOURCE2 1 0.0000
+ c3-ss-cy 38.750 94.320 SOURCE4 62 0.3646
+ c3-ss-f 39.670 97.490 SOURCE3 1 0.0000
+-c3-ss-ha 0.000 96.500 SOURCE2 1 0.0000
+ c3-ss-i 35.060 100.000 SOURCE3 1 0.0000
+ c3-ss-n1 41.250 98.440 HF/6-31G* 1
+ c3-ss-n2 41.260 96.420 SOURCE3 5 1.3604
+@@ -5883,7 +5829,7 @@
+ were replaced with those newly generated. Here are the numbers:
+
+ Bond length: 59 low quality parameters were replaced and 56 new parameters
+-were introduced. $j
++were introduced.
+
+ Bond angle: 437 low quality parameters were replaced and 618 new
+ parameters were introduced.
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2011-06-05 0:21 Reinis Danne
0 siblings, 0 replies; 18+ messages in thread
From: Reinis Danne @ 2011-06-05 0:21 UTC (permalink / raw
To: gentoo-commits
commit: 4d853f44a3343aa0603be06fad6cc11e1d4b770f
Author: Reinis Danne <rei4dan <AT> gmail <DOT> com>
AuthorDate: Sat Jun 4 11:32:33 2011 +0000
Commit: Reinis Danne <rei4dan <AT> gmail <DOT> com>
CommitDate: Sat Jun 4 11:32:33 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=4d853f44
sci-chemistry/ambertools: Version bump to 1.5
---
sci-chemistry/ambertools/ChangeLog | 6 +
sci-chemistry/ambertools/ambertools-1.5.ebuild | 139 +
.../files/ambertools-1.5-bugfix_1-3.patch | 3831 ++++++++++++++++++++
.../ambertools/files/ambertools-1.5-gentoo.patch | 386 ++
4 files changed, 4362 insertions(+), 0 deletions(-)
diff --git a/sci-chemistry/ambertools/ChangeLog b/sci-chemistry/ambertools/ChangeLog
index 9c558c3..26101af 100644
--- a/sci-chemistry/ambertools/ChangeLog
+++ b/sci-chemistry/ambertools/ChangeLog
@@ -2,6 +2,12 @@
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+*ambertools-1.5 (04 Jun 2011)
+
+ 04 Jun 2011; Reinis Danne <rei4dan@gmail.com> +ambertools-1.5.ebuild,
+ +files/ambertools-1.5-bugfix_1-3.patch, +files/ambertools-1.5-gentoo.patch:
+ Version bump.
+
15 Mar 2011; Justin Lecher <jlec@gentoo.org> ambertools-1.4.ebuild:
Remove fortran.eclass
diff --git a/sci-chemistry/ambertools/ambertools-1.5.ebuild b/sci-chemistry/ambertools/ambertools-1.5.ebuild
new file mode 100644
index 0000000..776a56f
--- /dev/null
+++ b/sci-chemistry/ambertools/ambertools-1.5.ebuild
@@ -0,0 +1,139 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="4"
+
+inherit toolchain-funcs eutils
+
+DESCRIPTION="A suite of programs for carrying out complete molecular mechanics investigations"
+HOMEPAGE="http://ambermd.org/#AmberTools"
+SRC_URI="AmberTools-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="mpi openmp X"
+RESTRICT="fetch"
+
+RDEPEND="
+ virtual/cblas
+ virtual/lapack
+ sci-libs/clapack
+ sci-libs/arpack
+ sci-libs/cifparse-obj
+ sci-chemistry/mopac7
+ sci-libs/netcdf
+ sci-libs/fftw:2.1
+ sci-chemistry/reduce"
+DEPEND="${RDEPEND}
+ dev-util/byacc
+ dev-libs/libf2c
+ sys-devel/ucpp"
+S="${WORKDIR}/amber11"
+
+pkg_nofetch() {
+ einfo "Go to ${HOMEPAGE} and get ${A}"
+ einfo "Place it in ${DISTDIR}"
+}
+
+pkg_setup() {
+ if use openmp &&
+ [[ $(tc-getCC)$ == *gcc* ]] &&
+ ( [[ $(gcc-major-version)$(gcc-minor-version) -lt 42 ]] ||
+ ! has_version sys-devel/gcc[openmp] )
+ then
+ ewarn "You are using gcc and OpenMP is only available with gcc >= 4.2 "
+ ewarn "If you want to build ${PN} with OpenMP, abort now,"
+ ewarn "and switch CC to an OpenMP capable compiler"
+ fi
+ AMBERHOME="${S}"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/${P}-bugfix_1-3.patch"
+ epatch "${FILESDIR}/${P}-gentoo.patch"
+ cd AmberTools/src
+ rm -r arpack blas lapack fftw-2.1.5 c9x-complex cifparse netcdf pnetcdf reduce ucpp-1.3 || die
+}
+
+src_configure() {
+ cd AmberTools/src
+ sed -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
+ -e "s:\\\\\$(LIBDIR)/lapack.a:$(pkg-config lapack --libs) -lclapack:g" \
+ -e "s:\\\\\$(LIBDIR)/blas.a:$(pkg-config blas cblas --libs):g" \
+ -e "s:\\\\\$(LIBDIR)/libdrfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
+ -e "s:\\\\\$(LIBDIR)/libdfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
+ -e "s:CFLAGS=:CFLAGS=${CFLAGS} -DBINTRAJ :g" \
+ -e "s:FFLAGS=:FFLAGS=${FFLAGS} :g" \
+ -e "s:LDFLAGS=$ldflags:LDFLAGS=${LDFLAGS}:g" \
+ -e "s:fc=g77:fc=$(tc-getFC):g" \
+ -e "s:\$netcdflib:$(pkg-config netcdf --libs):g" \
+ -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
+ -e "s:-O3::g" \
+ -i configure || die
+ sed -e "s:arsecond_:arscnd_:g" \
+ -i sff/time.c \
+ -i sff/sff.h \
+ -i sff/sff.c || die
+ sed -e "s:\$(NAB):\$(NAB) -lrfftw:g" \
+ -i nss/Makefile || die
+
+ local myconf
+
+ use X || myconf="${myconf} -noX11"
+
+ for x in mpi openmp; do
+ use ${x} && myconf="${myconf} -${x}"
+ done
+
+ ./configure \
+ ${myconf} \
+ -nobintraj \
+ -nomdgx \
+ -nopython \
+ -nomtkpp \
+ gnu
+# $(expr match "$(tc-getCC)" '.*\([a-z]cc\)')
+}
+
+src_compile() {
+ cd AmberTools/src
+ emake || die
+}
+
+src_install() {
+ rm -r bin/chemistry bin/MMPBSA_mods
+ rm bin/ante-MMPBSA.py bin/extractFrcmod.py
+ for x in bin/*
+ do dobin ${x} || die
+ done
+ rm "${ED}/usr/bin/yacc"
+ dobin AmberTools/src/antechamber/mopac.sh
+ sed -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
+ -i "${ED}/usr/bin/mopac.sh" || die
+ # Make symlinks untill binpath for amber will be fixed
+ dodir /usr/share/${PN}/bin
+ cd "${ED}/usr/bin"
+ for x in *
+ do dosym /usr/bin/${x} /usr/share/${PN}/bin/${x}
+ done
+ cd "${S}"
+# sed -e "s:\$AMBERHOME/dat:\$AMBERHOME/share/ambertools/dat:g" \
+# -i "${ED}/usr/bin/xleap" \
+# -i "${ED}/usr/bin/tleap" || die
+ dodoc doc/AmberTools.pdf doc/leap_pg.pdf
+ dolib.a lib/*
+ insinto /usr/include/${PN}
+ doins include/*
+ insinto /usr/share/${PN}
+ doins -r dat
+ cd AmberTools
+ doins -r benchmarks
+ doins -r examples
+ doins -r test
+ cat >> "${T}"/99ambertools <<- EOF
+ AMBERHOME="${EPREFIX}/usr/share/ambertools"
+ EOF
+ doenvd "${T}"/99ambertools
+}
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_1-3.patch b/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_1-3.patch
new file mode 100644
index 0000000..1aebcab
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_1-3.patch
@@ -0,0 +1,3831 @@
+diff -urN amber11//AmberTools/src/cpptraj/src/Action_Center.cpp amber11.new//AmberTools/src/cpptraj/src/Action_Center.cpp
+--- amber11//AmberTools/src/cpptraj/src/Action_Center.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Action_Center.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -72,7 +72,7 @@
+ // else
+ // mass = NULL;
+
+- if (!origin && P->ifbox==0) {
++ if (!origin && P->BoxType==0) {
+ mprintf(" Error: Center::setup: Box center specified but no box information.\n");
+ //fprintf(stdout," Centering on origin.\n");
+ return 1;
+diff -urN amber11//AmberTools/src/cpptraj/src/Action_Closest.cpp amber11.new//AmberTools/src/cpptraj/src/Action_Closest.cpp
+--- amber11//AmberTools/src/cpptraj/src/Action_Closest.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Action_Closest.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -181,8 +181,8 @@
+ // NOTE: Should box be figured out from read-in coords?
+ imageType = 0;
+ if (!noimage) {
+- imageType = P->ifbox;
+- if (P->ifbox==0) {
++ imageType = P->BoxType;
++ if (P->BoxType==0) {
+ mprintf(" Warning: Closest::setup: ");
+ mprintf(" Imaging specified but no box information in prmtop %s\n",P->parmName);
+ mprintf(" No imaging can occur..\n");
+diff -urN amber11//AmberTools/src/cpptraj/src/Action_Distance.cpp amber11.new//AmberTools/src/cpptraj/src/Action_Distance.cpp
+--- amber11//AmberTools/src/cpptraj/src/Action_Distance.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Action_Distance.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -68,6 +68,11 @@
+ return 0;
+ }
+
++/*
++ * Distance::setup()
++ * Determine what atoms each mask pertains to for the current parm file.
++ * Also determine whether imaging should be performed.
++ */
+ int Distance::setup() {
+
+ if ( Mask1.SetupMask(P,debug) ) return 1;
+@@ -89,8 +94,8 @@
+ // Check imaging - check box based on prmtop box
+ imageType = 0;
+ if (!noimage) {
+- imageType = P->ifbox;
+- if (P->ifbox==0 && debug>0) {
++ imageType = P->BoxType;
++ if (P->BoxType==0 && debug>0) {
+ mprintf(" Warning: No box info in %s, disabling imaging.\n",P->parmName);
+ }
+ }
+diff -urN amber11//AmberTools/src/cpptraj/src/Action_Image.cpp amber11.new//AmberTools/src/cpptraj/src/Action_Image.cpp
+--- amber11//AmberTools/src/cpptraj/src/Action_Image.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Action_Image.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -98,14 +98,14 @@
+ useMass = false;
+ }
+
+- if (P->ifbox==0) {
++ if (P->BoxType==0) {
+ mprintf(" Error: Image::setup: Parm %s does not contain box information.\n",
+ P->parmName);
+ return 1;
+ }
+
+ ortho = false;
+- if (P->ifbox==1 && triclinic==OFF) ortho=true;
++ if (P->BoxType==1 && triclinic==OFF) ortho=true;
+
+ if (triclinic == FAMILIAR) {
+ if (ComMask!=NULL) {
+diff -urN amber11//AmberTools/src/cpptraj/src/Action_Outtraj.cpp amber11.new//AmberTools/src/cpptraj/src/Action_Outtraj.cpp
+--- amber11//AmberTools/src/cpptraj/src/Action_Outtraj.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Action_Outtraj.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -6,6 +6,9 @@
+ // CONSTRUCTOR
+ Outtraj::Outtraj() {
+ //fprintf(stderr,"Outtraj Con\n");
++ min=0.0;
++ max=0.0;
++ Dset=NULL;
+ }
+
+ // DESTRUCTOR
+@@ -13,11 +16,40 @@
+
+ /*
+ * Outtraj::init()
+- * Action wrapper for trajout
++ * Action wrapper for trajout.
++ * Expected call: outtraj <filename> [ trajout args ]
++ * [maxmin <dataset> min <min> max <max>
+ */
+ int Outtraj::init() {
++ char *datasetName;
++
++#ifdef MPI
++ mprintf("ERROR: OUTTRAJ currently not functional with MPI.\n");
++ return 1;
++#endif
++
++ mprintf(" OUTTRAJ: Will write to [%s]\n",A->Arg(1));
++ outtraj.SetDebug(debug);
++ // If maxmin, get the name of the dataset as well as the max and min values.
++ datasetName = A->getKeyString("maxmin",NULL);
++ if (datasetName!=NULL) {
++ Dset = DSL->Get(datasetName);
++ if (Dset==NULL) {
++ mprintf("Error: Outtraj maxmin: Could not get dataset %s\n",datasetName);
++ return 1;
++ } else {
++ // Currently dont allow for string datasets
++ if (Dset->Type()==STRING) {
++ mprintf("Error: Outtraj maxmin: String dataset (%s) not supported.\n",datasetName);
++ return 1;
++ }
++ max = A->getKeyDouble("max",0.0);
++ min = A->getKeyDouble("min",0.0);
++ mprintf(" maxmin: Printing trajectory frames based on %lf <= %s <= %lf\n",
++ min, datasetName, max);
++ }
++ }
+
+- mprintf(" OUTTRAJ: [%s]\n",A->ArgLine());
+ return ( outtraj.Add(A,PFL,worldsize) );
+ }
+
+@@ -33,8 +65,32 @@
+ * Outtraj::action()
+ */
+ int Outtraj::action() {
++ double dVal;
++ int iVal;
+
+- return ( outtraj.Write(currentFrame, F, P) );
++ // If dataset defined, check if frame is within max/min
++ if (Dset!=NULL) {
++ if (Dset->Type() == DOUBLE) {
++ if (Dset->Get(&dVal, currentFrame)) return 1;
++ } else if (Dset->Type() == INT) {
++ if (Dset->Get(&iVal, currentFrame)) return 1;
++ dVal = (double) iVal;
++ } else
++ return 1;
++ //mprintf("DBG: maxmin: dVal = %lf\n",dVal);
++ // If value from dataset not within min/max, exit now.
++ if (dVal < min || dVal > max) return 0;
++ }
++ if ( outtraj.Write(currentFrame, F, P) != 0 ) return 1;
++ return 0;
+ }
+
++/*
++ * Outtraj::print()
++ * Close trajectory.
++ */
++void Outtraj::print() {
++ mprintf(" OUTTRAJ: [%s] Wrote %i frames.\n",A->Arg(1),outtraj.front()->CurrentFrame());
++ outtraj.Close();
++}
+
+diff -urN amber11//AmberTools/src/cpptraj/src/Action_Outtraj.h amber11.new//AmberTools/src/cpptraj/src/Action_Outtraj.h
+--- amber11//AmberTools/src/cpptraj/src/Action_Outtraj.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Action_Outtraj.h 2011-05-19 18:35:57.000000000 +0300
+@@ -6,6 +6,9 @@
+
+ class Outtraj: public Action {
+ TrajoutList outtraj;
++ double max;
++ double min;
++ DataSet *Dset;
+ public:
+ Outtraj();
+ ~Outtraj();
+@@ -13,5 +16,6 @@
+ int init();
+ //int setup();
+ int action();
++ void print();
+ };
+ #endif
+diff -urN amber11//AmberTools/src/cpptraj/src/Action_Rms2d.cpp amber11.new//AmberTools/src/cpptraj/src/Action_Rms2d.cpp
+--- amber11//AmberTools/src/cpptraj/src/Action_Rms2d.cpp 1970-01-01 03:00:00.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Action_Rms2d.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -0,0 +1,71 @@
++// Rms2d
++#include "Action_Rms2d.h"
++#include "CpptrajStdio.h"
++
++// CONSTRUCTOR
++Rms2d::Rms2d() {
++ //fprintf(stderr,"Rms2d Con\n");
++ nofit=false;
++ useMass=false;
++}
++
++// DESTRUCTOR
++Rms2d::~Rms2d() { }
++
++/*
++ * Rms2d::init()
++ * Expected call: rms2d <mask> <refmask> [rmsout filename] [mass] [nofit]
++ * Dataset name will be the last arg checked for. Check order is:
++ * 1) Keywords
++ * 2) Masks
++ * 3) Dataset name
++ */
++int Rms2d::init() {
++ char *mask0, *maskRef;
++
++ // Get keywords
++ nofit = A->hasKey("nofit");
++ useMass = A->hasKey("mass");
++ rmsdFile = A->getKeyString("rmsout",NULL);
++
++ // Get the RMS mask string for frames
++ mask0 = A->getNextMask();
++ FrameMask.SetMaskString(mask0);
++ // Get RMS mask string for reference
++ maskRef = A->getNextMask();
++ // If no reference mask specified, make same as RMS mask
++ if (maskRef==NULL) maskRef=mask0;
++ RefMask.SetMaskString(maskRef);
++
++ mprintf(" RMS2D: (%s) to (%s)",FrameMask.maskString,RefMask.maskString);
++ if (nofit)
++ mprintf(" (no fitting)");
++ if (useMass)
++ mprintf(" (mass-weighted)");
++ if (rmsdFile!=NULL)
++ mprintf(" output to %s",rmsdFile);
++ mprintf("\n");
++
++ return 0;
++}
++
++/*
++ * Rms2d::setup()
++ * Not important for Rms2d, initial pass is only for storing frames.
++ */
++int Rms2d::setup() {
++ return 0;
++}
++
++/*
++ * Rms2d::action()
++ * Store current frame as a reference frame.
++ */
++int Rms2d::action() {
++
++ ReferenceFrames.Add(F,P);
++
++ return 0;
++}
++
++
+diff -urN amber11//AmberTools/src/cpptraj/src/Action_Rms2d.h amber11.new//AmberTools/src/cpptraj/src/Action_Rms2d.h
+--- amber11//AmberTools/src/cpptraj/src/Action_Rms2d.h 1970-01-01 03:00:00.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Action_Rms2d.h 2011-05-19 18:35:57.000000000 +0300
+@@ -0,0 +1,21 @@
++#ifndef INC_ACTION_RMS2D_H
++#define INC_ACTION_RMS2D_H
++// Rms2d
++#include "Action.h"
++
++class Rms2d: public Action {
++ FrameList ReferenceFrames;
++ bool nofit;
++ bool useMass;
++ AtomMask RefMask;
++ AtomMask FrameMask;
++ char *rmsdFile;
++ public:
++ Rms2d();
++ ~Rms2d();
++
++ int init();
++ int setup();
++ int action();
++};
++#endif
+diff -urN amber11//AmberTools/src/cpptraj/src/AmberNetcdf.cpp amber11.new//AmberTools/src/cpptraj/src/AmberNetcdf.cpp
+--- amber11//AmberTools/src/cpptraj/src/AmberNetcdf.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/AmberNetcdf.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -49,6 +49,7 @@
+ * and close calls.
+ */
+ void AmberNetcdf::close() {
++ if (ncid<0) return;
+ checkNCerr(nc_close(ncid),"Closing netcdf file.");
+ if (debug>0) rprintf("Successfully closed ncid %i\n",ncid);
+ ncid=-1;
+@@ -92,8 +93,10 @@
+ * Open the netcdf file, read all dimension and variable IDs, close.
+ */
+ int AmberNetcdf::SetupRead() {
+- char *attrText; // For checking conventions and version
+- int spatial; // For checking spatial dimensions
++ char *attrText; // For checking conventions and version
++ int spatial; // For checking spatial dimensions
++ double box[6]; // For checking box type
++ size_t start[3], count[3]; // For checking box type
+
+ if (open()) return 1;
+
+@@ -147,15 +150,15 @@
+ if ( nc_inq_varid(ncid,"cell_lengths",&cellLengthVID)==NC_NOERR ) {
+ if (checkNCerr(nc_inq_varid(ncid,"cell_angles",&cellAngleVID),
+ "Getting cell angles.")!=0) return 1;
+- if (debug>0) mprintf(" Netcdf Box information found.\n");
+- if (P->ifbox==0) {
+- mprintf("Warning: Netcdf file contains box info but no box info found\n");
+- mprintf(" in associated parmfile %s; defaulting to orthogonal.\n",
+- P->parmName);
+- isBox=1;
+- } else {
+- isBox=P->ifbox;
+- }
++ if (debug>0) mprintf(" Netcdf Box information found.\n");
++ // Determine box type from angles
++ start[0]=0; start[1]=0; start[2]=0;
++ count[0]=1; count[1]=3; count[2]=0;
++ if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, box),
++ "Getting cell lengths.")!=0 ) return 1;
++ if ( checkNCerr(nc_get_vara_double(ncid, cellAngleVID, start, count, box+3),
++ "Getting cell angles.")!=0 ) return 1;
++ CheckBoxType(box);
+ }
+
+ // Replica Temperatures
+@@ -258,7 +261,7 @@
+ "Defining cell angular variable.")) return 1;
+
+ // Box Info
+- if (isBox>0) {
++ if (BoxType!=0) {
+ dimensionID[0]=frameDID;
+ dimensionID[1]=cell_spatialDID;
+ if (checkNCerr(nc_def_var(ncid,"cell_lengths",NC_DOUBLE,2,dimensionID,&cellLengthVID),
+@@ -362,7 +365,7 @@
+ "Getting frame %i",set)!=0 ) return 1;
+
+ // Read box info
+- if (isBox!=0) {
++ if (BoxType!=0) {
+ count [1]=3;
+ count [2]=0;
+ if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, F->box),
+@@ -399,7 +402,7 @@
+ F->frameToFloat(Coord);
+
+ // write coords
+- start[0]=set;
++ start[0]=currentFrame;
+ start[1]=0;
+ start[2]=0;
+ count[0]=1;
+@@ -409,7 +412,7 @@
+ "Netcdf Writing frame %i",set)) return 1;
+
+ // write box
+- if (isBox>0 && cellLengthVID!=-1) {
++ if (BoxType!=0 && cellLengthVID!=-1) {
+ count[1]=3;
+ count[2]=0;
+ if (checkNCerr(nc_put_vara_double(ncid,cellLengthVID,start,count,F->box),
+@@ -427,6 +430,8 @@
+
+ nc_sync(ncid); // Necessary after every write??
+
++ currentFrame++;
++
+ return 0;
+ }
+
+diff -urN amber11//AmberTools/src/cpptraj/src/AmberParm.cpp amber11.new//AmberTools/src/cpptraj/src/AmberParm.cpp
+--- amber11//AmberTools/src/cpptraj/src/AmberParm.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/AmberParm.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -1,6 +1,12 @@
+ /* AmberParm.cpp
+- * Class that holds parameter information. Can be read in from Amber Topology
+- * or PDB files.
++ * Class that holds parameter information. Can be read in from Amber Topology,
++ * PDB, or Mol2 files (implemented in the ReadParmXXX functions). The following
++ * parameters of AmberParm must always be set:
++ * The NATOM, NRES, and IFBOX entries of the values array.
++ * The names, resnames, resnums arrays.
++ * The natom and nres variables.
++ * NOTES:
++ * Eventually make the mol2 read parm function use the AddBond function.
+ */
+ #include <cstdlib>
+ #include <cstring>
+@@ -11,7 +17,7 @@
+ #include "CpptrajStdio.h"
+
+ #define AMBERPOINTERS 31
+-
++#define TRUNCOCTBETA 109.4712206344906917365733534097672
+ #define ELECTOAMBER 18.2223
+ #define AMBERTOELEC 1/ELECTOAMBER
+ // =============================================================
+@@ -203,7 +209,9 @@
+ bondsh=NULL;
+ types=NULL;
+ atomsPerMol=NULL;
+- Box=NULL;
++ Box[0]=0.0; Box[1]=0.0; Box[2]=0.0;
++ Box[3]=0.0; Box[4]=0.0; Box[5]=0.0;
++ BoxType=0;
+ pindex=0;
+ parmFrames=0;
+ outFrame=0;
+@@ -217,7 +225,6 @@
+ solventMoleculeStop=NULL;
+ natom=0;
+ nres=0;
+- ifbox=0;
+ parmName=NULL;
+ SurfaceInfo=NULL;
+ }
+@@ -234,7 +241,6 @@
+ if (bonds!=NULL) free(bonds);
+ if (bondsh!=NULL) free(bondsh);
+ if (atomsPerMol!=NULL) free(atomsPerMol);
+- if (Box!=NULL) free(Box);
+ if (solventMoleculeStart!=NULL) free(solventMoleculeStart);
+ if (solventMoleculeStop!=NULL) free(solventMoleculeStop);
+ if (solventMask!=NULL) free(solventMask);
+@@ -271,54 +277,7 @@
+ return NULL;
+ }
+
+-/*
+- * AmberParm::OpenParm()
+- * Attempt to open file and read in parameters.
+- */
+-int AmberParm::OpenParm(char *filename) {
+- if ( File.SetupFile(filename,READ,UNKNOWN_FORMAT, UNKNOWN_TYPE,debug) ) return 1;
+-
+- // Copy parm filename to parmName. Separate from File.filename in case of stripped parm
+- parmName=(char*) malloc( (strlen(File.basefilename)+1) * sizeof(char));
+- strcpy(parmName,File.basefilename);
+-
+- if ( File.OpenFile() ) return 1;
+-
+- switch (File.fileFormat) {
+- case AMBERPARM : if (ReadParmAmber()) return 1; break;
+- case PDBFILE : if (ReadParmPDB() ) return 1; break;
+- case MOL2FILE : if (ReadParmMol2() ) return 1; break;
+- default:
+- rprintf("Unknown parameter file type: %s\n",File.filename);
+- return 1;
+- }
+-
+- File.CloseFile();
+-
+- // Create a last dummy residue in resnums that holds natom, which would be
+- // the atom number of the next residue if it existed. Atom #s in resnums
+- // should correspond with cpptraj atom #s (start from 0) instead of Amber
+- // atom #s (start from 1).
+- // Do this to be consistent with ptrajmask selection behavior - saves an
+- // if-then statement.
+- resnums=(int*) realloc(resnums,(nres+1)*sizeof(int));
+- resnums[nres]=natom;
+- // DEBUG
+- //fprintf(stdout,"==== DEBUG ==== Resnums for %s:\n",File.filename);
+- //for (err=0; err<nres; err++)
+- // fprintf(stdout," %i: %i\n",err,resnums[err]);
+-
+- // Set up solvent information
+- SetSolventInfo();
+-
+- if (debug>0) {
+- mprintf(" Number of atoms= %i\n",natom);
+- mprintf(" Number of residues= %i\n",nres);
+- }
+-
+- return 0;
+-}
+-
++// ---------========= ROUTINES PERTAINING TO SURFACE AREA =========---------
+ /*
+ * AmberParm::AssignLCPO()
+ * Assign parameters for LCPO method. All radii are incremented by 1.4 Ang.
+@@ -478,6 +437,7 @@
+ return 0;
+ }
+
++// ---------========= ROUTINES PERTAINING TO SOLVENT INFO =========---------
+ /*
+ * AmberParm::SetSolventInfo()
+ * Assuming atomsPerMol has been read in, set solvent information.
+@@ -536,7 +496,56 @@
+
+ return 0;
+ }
+-
++
++// --------========= ROUTINES PERTAINING TO READING PARAMETERS =========--------
++/*
++ * AmberParm::OpenParm()
++ * Attempt to open file and read in parameters.
++ */
++int AmberParm::OpenParm(char *filename) {
++ if ( File.SetupFile(filename,READ,UNKNOWN_FORMAT, UNKNOWN_TYPE,debug) ) return 1;
++
++ // Copy parm filename to parmName. Separate from File.filename in case of stripped parm
++ parmName=(char*) malloc( (strlen(File.basefilename)+1) * sizeof(char));
++ strcpy(parmName,File.basefilename);
++
++ if ( File.OpenFile() ) return 1;
++
++ switch (File.fileFormat) {
++ case AMBERPARM : if (ReadParmAmber()) return 1; break;
++ case PDBFILE : if (ReadParmPDB() ) return 1; break;
++ case MOL2FILE : if (ReadParmMol2() ) return 1; break;
++ default:
++ rprintf("Unknown parameter file type: %s\n",File.filename);
++ return 1;
++ }
++
++ File.CloseFile();
++
++ // Create a last dummy residue in resnums that holds natom, which would be
++ // the atom number of the next residue if it existed. Atom #s in resnums
++ // should correspond with cpptraj atom #s (start from 0) instead of Amber
++ // atom #s (start from 1).
++ // Do this to be consistent with ptrajmask selection behavior - saves an
++ // if-then statement.
++ resnums=(int*) realloc(resnums,(nres+1)*sizeof(int));
++ resnums[nres]=natom;
++ // DEBUG
++ //fprintf(stdout,"==== DEBUG ==== Resnums for %s:\n",File.filename);
++ //for (err=0; err<nres; err++)
++ // fprintf(stdout," %i: %i\n",err,resnums[err]);
++
++ // Set up solvent information
++ SetSolventInfo();
++
++ if (debug>0) {
++ mprintf(" Number of atoms= %i\n",natom);
++ mprintf(" Number of residues= %i\n",nres);
++ }
++
++ return 0;
++}
++
+ /*
+ * AmberParm::ReadParmAmber()
+ * Read parameters from Amber Topology file
+@@ -544,6 +553,7 @@
+ int AmberParm::ReadParmAmber() {
+ int err, atom;
+ int *solvent_pointer;
++ double *boxFromParm;
+
+ if (debug>0) mprintf("Reading Amber Topology file %s\n",parmName);
+
+@@ -555,7 +565,6 @@
+
+ natom=values[NATOM];
+ nres=values[NRES];
+- ifbox=values[IFBOX];
+ if (debug>0)
+ mprintf(" Amber top contains %i atoms, %i residues.\n",natom,nres);
+
+@@ -583,7 +592,8 @@
+ if (bonds==NULL) {mprintf("Error in bonds w/o H.\n"); err++;}
+ bondsh=(int*) getFlagFileValues("BONDS_INC_HYDROGEN",values[NBONH]*3);
+ if (bondsh==NULL) {mprintf("Error in bonds inc H.\n"); err++;}
+- if (ifbox>0) {
++ // Get solvent info if IFBOX>0
++ if (values[IFBOX]>0) {
+ solvent_pointer=(int*) getFlagFileValues("SOLVENT_POINTERS",3);
+ if (solvent_pointer==NULL) {
+ mprintf("Error in solvent pointers.\n");
+@@ -596,12 +606,20 @@
+ }
+ atomsPerMol=(int*) getFlagFileValues("ATOMS_PER_MOLECULE",molecules);
+ if (atomsPerMol==NULL) {mprintf("Error in atoms per molecule.\n"); err++;}
+- Box=(double*) getFlagFileValues("BOX_DIMENSIONS",4);
+- if (Box==NULL) {mprintf("Error in Box information.\n"); err++;}
++ // boxFromParm = {OLDBETA, BOX(1), BOX(2), BOX(3)}
++ boxFromParm=(double*) getFlagFileValues("BOX_DIMENSIONS",4);
++ if (boxFromParm==NULL) {mprintf("Error in Box information.\n"); err++;}
++ // Determine box type: 1-Ortho, 2-Nonortho
++ SetBoxInfo(boxFromParm[0],boxFromParm[1],boxFromParm[2],boxFromParm[3]);
++ free(boxFromParm);
+ if (debug>0) {
+ mprintf(" %s contains box info: %i mols, first solvent mol is %i\n",
+ parmName, molecules, firstSolvMol);
+- mprintf(" BOX: %lf %lf %lf %lf\n",Box[0],Box[1],Box[2],Box[3]);
++ mprintf(" BOX: %lf %lf %lf | %lf %lf %lf\n",Box[0],Box[1],Box[2],Box[3],Box[4],Box[5]);
++ if (BoxType==1)
++ mprintf(" Box is orthogonal.\n");
++ else
++ mprintf(" Box is non-orthogonal.\n");
+ }
+ }
+
+@@ -686,6 +704,7 @@
+ values = (int*) calloc(AMBERPOINTERS, sizeof(int));
+ values[NATOM] = natom;
+ values[NRES] = nres;
++ values[IFBOX] = 0;
+
+ if (debug>0)
+ mprintf(" PDB contains %i atoms, %i residues, %i molecules.\n",
+@@ -799,6 +818,7 @@
+ values[NRES] = nres;
+ values[NBONH] = numbondsh;
+ values[MBONA] = numbonds;
++ values[IFBOX] = 0;
+
+ mprintf(" Mol2 contains %i atoms, %i residues,\n", natom,nres);
+ mprintf(" %i bonds to H, %i other bonds.\n", numbondsh,numbonds);
+@@ -806,6 +826,61 @@
+ return 0;
+ }
+
++// ---------===========================================================---------
++/*
++ * AmberParm::SetBoxInfo()
++ * Given 3 box lengths and an angle determine the box type and set
++ * the box information. If called with negative beta, set no box.
++ * Currently recognized betas:
++ * 90.00 - Orthogonal
++ * 109.47 - Truncated octahedral
++ * 60.00 - Rhombic dodecahedron
++ * Any other beta just sets all angles to beta and a warning is printed.
++ */
++int AmberParm::SetBoxInfo(double beta, double bx, double by, double bz) {
++ int ifbox=0;
++
++ // Determine box type from beta (none, ortho, non-ortho (truncated oct/triclinic)
++ if (beta<=0.0) {
++ if (BoxType>0)
++ mprintf(" %s: Removing box information.\n",parmName);
++ BoxType=0;
++ ifbox=0;
++ Box[0]=0.0; Box[1]=0.0; Box[2]=0.0;
++ Box[3]=0.0; Box[4]=0.0; Box[5]=0.0;
++ } else if (beta == 90.0) {
++ BoxType=1;
++ ifbox=1;
++ Box[0]=bx; Box[1]=by; Box[2]=bz;
++ Box[3]=90.0; Box[4]=90.0; Box[5]=90.0;
++ if (debug>0) mprintf(" %s: Setting box to be orthogonal.\n",parmName);
++ } else if (beta > 109.47 && beta < 109.48) {
++ BoxType=2;
++ ifbox=2;
++ Box[0]=bx; Box[1]=by; Box[2]=bz;
++ //Box[3] = TRUNCOCTBETA;
++ Box[3] = beta;
++ Box[4]=Box[3]; Box[5]=Box[3];
++ if (debug>0) mprintf(" %s: Setting box to be a truncated octahedron, angle is %lf\n",
++ parmName,Box[3]);
++ } else if (beta == 60.0) {
++ BoxType=2;
++ ifbox=1;
++ Box[0]=bx; Box[1]=by; Box[2]=bz;
++ Box[3]=60.0; Box[4]=90.0; Box[5]=60.0;
++ if (debug>0)
++ mprintf(" %s: Setting box to be a rhombic dodecahedron, alpha=gamma=60.0, beta=90.0\n",
++ parmName);
++ } else {
++ BoxType=2;
++ ifbox=1;
++ Box[0]=bx; Box[1]=by; Box[2]=bz;
++ Box[3]=beta; Box[4]=beta; Box[5]=beta;
++ mprintf(" Warning: %s: Unrecognized box type, beta is %lf\n",beta);
++ }
++ return 0;
++}
++
+ /*
+ * AmberParm::AtomInfo()
+ * Print parm information for atom.
+@@ -829,8 +904,8 @@
+ */
+ void AmberParm::Info(char *buffer) {
+
+- sprintf(buffer,"%i atoms, %i res, box %i, %i mol, %i solvent mol, %i frames",
+- natom,nres,ifbox,molecules,solventMolecules,parmFrames);
++ sprintf(buffer,"%i atoms, %i res, boxtype %i, %i mol, %i solvent mol, %i frames",
++ natom,nres,BoxType,molecules,solventMolecules,parmFrames);
+ }
+
+ // NOTE: The following atomToX functions do not do any memory checks!
+@@ -963,6 +1038,7 @@
+ return bonds;
+ }
+
++// ---------===========================================================---------
+ /*
+ * AmberParm::modifyStateByMap()
+ * Currently only intended for use with AtomMap.
+@@ -1028,24 +1104,21 @@
+ // Set up new parm information
+ newParm->natom = this->natom;
+ newParm->nres = this->nres;
+- newParm->ifbox = this->ifbox;
+ newParm->parmFrames = this->parmFrames;
+
+ // Give mapped parm the same pindex as original parm
+ newParm->pindex = this->pindex;
+
+ // Copy box information
+- if (this->Box!=NULL) {
+- newParm->Box=(double*) malloc(4*sizeof(double));
+- for (int i=0; i<4; i++)
+- newParm->Box[i] = this->Box[i];
+- }
++ for (int i=0; i<6; i++)
++ newParm->Box[i] = this->Box[i];
++ newParm->BoxType=this->BoxType;
+
+ // Set values up
+ // NOTE: Eventually set all pointers up?
+ newParm->values[NATOM] = newParm->natom;
+ newParm->values[NRES] = newParm->nres;
+- newParm->values[IFBOX] = newParm->ifbox;
++ newParm->values[IFBOX] = this->values[IFBOX];
+
+ return newParm;
+ }
+@@ -1152,7 +1225,6 @@
+ // Set up new parm information
+ newParm->natom = j;
+ newParm->nres = jres+1;
+- newParm->ifbox = this->ifbox;
+ newParm->parmFrames = this->parmFrames;
+ if (this->molecules>0)
+ newParm->molecules = jmol+1;
+@@ -1184,26 +1256,25 @@
+ }
+
+ // Copy box information
+- if (this->Box!=NULL) {
+- newParm->Box=(double*) malloc(4*sizeof(double));
+- for (i=0; i<4; i++)
+- newParm->Box[i] = this->Box[i];
+- }
++ for (i=0; i<6; i++)
++ newParm->Box[i] = this->Box[i];
++ newParm->BoxType=this->BoxType;
+
+ // Set values up
+ // NOTE: Eventually set all pointers up?
+ newParm->values[NATOM] = newParm->natom;
+ newParm->values[NRES] = newParm->nres;
+- newParm->values[IFBOX] = newParm->ifbox;
++ newParm->values[IFBOX] = this->values[IFBOX];
+
+ mprintf(" New parmtop contains %i atoms.\n",newParm->natom);
+ mprintf(" %i residues.\n",newParm->nres);
+ mprintf(" %i molecules.\n",newParm->molecules);
+- mprintf(" %i solvent molcules.\n",newParm->solventMolecules);
++ mprintf(" %i solvent molecules.\n",newParm->solventMolecules);
+
+ return newParm;
+ }
+
++// ---------===========================================================---------
+ /*
+ * AmberParm::DataToBuffer()
+ * Return char buffer containing N data elements stored in I, D, or C with
+@@ -1267,6 +1338,7 @@
+ char *buffer;
+ int solvent_pointer[3];
+ int atom;
++ double parmBox[4];
+
+ if (parmName==NULL) return 1;
+
+@@ -1346,7 +1418,7 @@
+ }
+
+ // SOLVENT POINTERS
+- if (ifbox>0) {
++ if (values[IFBOX]>0) {
+ PrintFlagFormat(&outfile, "%FLAG SOLVENT_POINTERS", "%FORMAT(3I8)");
+ solvent_pointer[0]=finalSoluteRes;
+ solvent_pointer[1]=molecules;
+@@ -1360,8 +1432,12 @@
+ outfile.IO->Write(buffer, sizeof(char), BufferSize);
+
+ // BOX DIMENSIONS
++ parmBox[0] = Box[4]; // beta
++ parmBox[1] = Box[0]; // boxX
++ parmBox[2] = Box[1]; // boxY
++ parmBox[3] = Box[2]; // boxZ
+ PrintFlagFormat(&outfile, "%FLAG BOX_DIMENSIONS", "%FORMAT(5E16.8)");
+- buffer = DataToBuffer(buffer,"%FORMAT(5E16.8)", NULL, Box, NULL, 4);
++ buffer = DataToBuffer(buffer,"%FORMAT(5E16.8)", NULL, parmBox, NULL, 4);
+ outfile.IO->Write(buffer, sizeof(char), BufferSize);
+ }
+
+diff -urN amber11//AmberTools/src/cpptraj/src/AmberParm.h amber11.new//AmberTools/src/cpptraj/src/AmberParm.h
+--- amber11//AmberTools/src/cpptraj/src/AmberParm.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/AmberParm.h 2011-05-19 18:35:57.000000000 +0300
+@@ -75,14 +75,14 @@
+ int *resnums; // IPRES(NRES)
+ int natom; // NATOM
+ int nres; // NRES
+- int ifbox; // IFBOX
+ int finalSoluteRes; // IPTRES
+ int molecules; // NSPM
+ int firstSolvMol; // NSPSOL
+ int *atomsPerMol; // NSP(NSPM)
+ double *mass; // AMASS(NATOM)
+ double *charge; // CHARGE(NATOM)
+- double *Box; // OLDBETA, BOX(1), BOX(2), BOX(3)
++ double Box[6]; // X, Y, Z, alpha, beta, gamma
++ int BoxType; // 0: None, 1: Orthogonal, 2: Non-orthogonal
+ // From Ptraj
+ char *solventMask; // T for atoms in the solvent
+ int solventMolecules; // number of solvent molecules
+@@ -96,6 +96,7 @@
+ ~AmberParm();
+ void ResName(char *, int);
+ int OpenParm(char *);
++ int SetBoxInfo(double,double,double,double);
+ int SetSurfaceInfo();
+ int SetSolventInfo();
+ void AtomInfo(int);
+diff -urN amber11//AmberTools/src/cpptraj/src/AmberRestart.cpp amber11.new//AmberTools/src/cpptraj/src/AmberRestart.cpp
+--- amber11//AmberTools/src/cpptraj/src/AmberRestart.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/AmberRestart.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -109,7 +109,7 @@
+ frameSize+=frameSize;
+
+ // If box coords are present, allocate extra space for them
+- if (isBox>0) {
++ if (BoxType!=0) {
+ numBoxCoords=6;
+ frameSize+=((numBoxCoords*12)+1);
+ }
+@@ -167,13 +167,12 @@
+
+ // If 0 probably at EOF. No box or velo.
+ // } else if (lineSize==0) {
+- isBox=0;
++ BoxType=0;
+ hasVelocity=0;
+
+ // If 36 or 72 (+1 newline) box info.
+ } else if (lineSize==37 || lineSize==73) {
+- isBox=1;
+- numBoxCoords = (lineSize-1) / 12;
++ getBoxType(frameBuffer,lineSize);
+ hasVelocity=0;
+
+ // If filled framebuffer again, has velocity info. Check for box after velocity.
+@@ -182,15 +181,14 @@
+ if (File->IO->Gets(buffer,82)==0) {
+ lineSize=strlen(buffer);
+ if (lineSize==37 || lineSize==73) {
+- isBox=1;
+- numBoxCoords = (lineSize-1) / 12;
++ getBoxType(buffer,lineSize);
+ } else {
+ mprintf("Error: AmberRestart::SetupRead():\n");
+ mprintf(" Expect only 3 or 6 box coords in box coord line.\n");
+ return 1;
+ }
+ } else
+- isBox=0;
++ BoxType=0;
+
+ // Otherwise, who knows what was read?
+ } else {
+@@ -202,12 +200,12 @@
+
+ // Recalculate the frame size
+ if (hasVelocity) frameSize+=frameSize;
+- if (isBox) frameSize+=( (numBoxCoords*12) + 1 );
++ if (BoxType!=0) frameSize+=( (numBoxCoords*12) + 1 );
+ frameBuffer=(char*) realloc(frameBuffer, frameSize*sizeof(char));
+
+ if (debug > 0) {
+- mprintf(" Amber Restart isBox=%i hasVelocity=%i numBoxCoords=%i\n",
+- isBox,hasVelocity,numBoxCoords);
++ mprintf(" Amber Restart BoxType=%i hasVelocity=%i numBoxCoords=%i\n",
++ BoxType,hasVelocity,numBoxCoords);
+ mprintf(" Amber Restart frameSize= %i\n",frameSize);
+ }
+
+@@ -221,6 +219,20 @@
+ }
+
+ /*
++ * AmberRestart::getBoxType()
++ * Based on input buffer, determine box type and num box coords.
++ */
++void AmberRestart::getBoxType(char *boxline, int boxlineSize) {
++ double box[6];
++ numBoxCoords = (boxlineSize-1) / 12;
++ if (numBoxCoords>3) {
++ sscanf(boxline, "%8lf%8lf%8lf%8lf%8lf%8lf",box,box+1,box+2,box+3,box+4,box+5);
++ CheckBoxType(box);
++ } else
++ BoxType = P->BoxType;
++}
++
++/*
+ * AmberRestart::getFrame()
+ * Get the restart file frame. If velocities are present, read those too.
+ */
+@@ -251,7 +263,7 @@
+ //F->V->printAtomCoord(0);
+ }
+ // Convert box to Frame if present
+- if (isBox) {
++ if (BoxType!=0) {
+ if ( (bufferPosition = F->BufferToBox(bufferPosition, numBoxCoords, 12))==NULL ) {
+ mprintf("Error: AmberRestart::getFrame: * detected in box coordinates of %s\n",
+ trajfilename);
+@@ -287,7 +299,7 @@
+ if (F->V!=NULL) // NOTE: Use hasVelocity in addition/instead?
+ bufferPosition = F->V->FrameToBuffer(bufferPosition,"%12.7lf",12,6);
+ // Write box to buffer
+- if (isBox)
++ if (BoxType!=0)
+ bufferPosition = F->BoxToBuffer(bufferPosition, numBoxCoords, "%12.7lf",12);
+
+ //if (seekable) fseek(fp, titleSize+(set*frameSize),SEEK_SET);
+@@ -297,6 +309,8 @@
+
+ File->IO->Close();
+
++ currentFrame++;
++
+ return 0;
+ }
+
+diff -urN amber11//AmberTools/src/cpptraj/src/AmberRestart.h amber11.new//AmberTools/src/cpptraj/src/AmberRestart.h
+--- amber11//AmberTools/src/cpptraj/src/AmberRestart.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/AmberRestart.h 2011-05-19 18:35:57.000000000 +0300
+@@ -14,6 +14,7 @@
+
+ int SetupRead();
+ int SetupWrite();
++ void getBoxType(char *, int);
+
+ public:
+
+diff -urN amber11//AmberTools/src/cpptraj/src/AmberRestartNC.cpp amber11.new//AmberTools/src/cpptraj/src/AmberRestartNC.cpp
+--- amber11//AmberTools/src/cpptraj/src/AmberRestartNC.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/AmberRestartNC.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -60,15 +60,8 @@
+ /*
+ * AmberRestartNC::open()
+ * Open up Netcdf restart file and set all dimension and variable IDs.
+- * This is done every time the file is opened up since Im not sure
+- * the variable IDs stay the same throughout each opening.
+- * Could eventually be separated.
+- * NOTE: Replace attrText allocs with static buffer?
+ */
+ int AmberRestartNC::open() {
+- char *attrText; // For checking conventions and version
+- int spatial; // For checking spatial dimensions
+-
+ mprintf("DEBUG: AmberRestartNC::open() called for %s, ncid=%i\n",File->filename,ncid);
+ // If already open, return
+ if (ncid!=-1) return 0;
+@@ -94,6 +87,23 @@
+ // Netcdf files are always seekable
+ seekable=1;
+
++ return 0;
++}
++
++/*
++ * AmberRestartNC::SetupRead()
++ * Set up netcdf restart file for reading, get all variable and dimension IDs.
++ * Also check number of atoms against associated parmtop.
++ * NOTE: Replace attrText allocs with static buffer?
++ */
++int AmberRestartNC::SetupRead() {
++ char *attrText; // For checking conventions and version
++ int spatial; // For checking spatial dimensions
++ double box[6];
++ size_t start[2], count[2];
++
++ if (open()) return 1;
++
+ // Get global attributes
+ if (title==NULL) title = GetAttrText(ncid,NC_GLOBAL, "title");
+ attrText = GetAttrText(ncid,NC_GLOBAL, "Conventions");
+@@ -147,20 +157,18 @@
+ mprintf(" Netcdf restart time= %lf\n",restartTime);
+
+ // Box info
+- // NOTE: If no box info found in parm should really try to determine correct
+- // box type from angles.
+ if ( nc_inq_varid(ncid,"cell_lengths",&cellLengthVID)==NC_NOERR ) {
+ if (checkNCerr(nc_inq_varid(ncid,"cell_angles",&cellAngleVID),
+ "Getting cell angles.")!=0) return 1;
+- if (debug>0) mprintf(" Netcdf restart Box information found.\n");
+- if (P->ifbox==0) {
+- mprintf("Warning: Netcdf restart file contains box info but no box info found\n");
+- mprintf(" in associated parmfile %s; defaulting to orthogonal.\n",
+- P->parmName);
+- isBox=1;
+- } else {
+- isBox=P->ifbox;
+- }
++ if (debug>0) mprintf(" Netcdf restart Box information found.\n");
++ // Determine box type from angles
++ start[0]=0; start[1]=0;
++ count[0]=3; count[1]=0;
++ if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, box),
++ "Getting cell lengths.")!=0 ) return 1;
++ if ( checkNCerr(nc_get_vara_double(ncid, cellAngleVID, start, count, box+3),
++ "Getting cell angles.")!=0 ) return 1;
++ CheckBoxType(box);
+ }
+
+ // Replica Temperatures
+@@ -175,15 +183,6 @@
+ //int cell_spatialDID, cell_angularDID;
+ //int spatialVID, cell_spatialVID, cell_angularVID;
+
+- return 0;
+-}
+-
+-/*
+- * AmberRestartNC::SetupRead()
+- * Just a frontend to open for now. Also check number of atoms.
+- */
+-int AmberRestartNC::SetupRead() {
+- if (open()) return 1;
+ if (ncatom!=P->natom) {
+ mprintf("Warning: Number of atoms in NetCDF restart file %s (%i) does not\n",
+ File->filename,ncatom);
+@@ -210,7 +209,7 @@
+ */
+ int AmberRestartNC::setupWriteForSet(int set) {
+ int dimensionID[NC_MAX_VAR_DIMS];
+- size_t start[3], count[3];
++ size_t start[2], count[2];
+ char buffer[1024];
+ char xyz[3];
+ char abc[15] = { 'a', 'l', 'p', 'h', 'a',
+@@ -280,7 +279,7 @@
+ "Defining cell angular variable.")) return 1;
+
+ // Box Info
+- if (isBox>0) {
++ if (BoxType!=0) {
+ dimensionID[0]=cell_spatialDID;
+ if (checkNCerr(nc_def_var(ncid,"cell_lengths",NC_DOUBLE,1,dimensionID,&cellLengthVID),
+ "Defining cell length variable.")) return 1;
+@@ -388,9 +387,9 @@
+ }
+
+ // Read box info
+- if (isBox!=0) {
+- count [0]=3;
+- count [1]=0;
++ if (BoxType!=0) {
++ count[0]=3;
++ count[1]=0;
+ if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, F->box),
+ "Getting cell lengths.")!=0 ) return 1;
+ if ( checkNCerr(nc_get_vara_double(ncid, cellAngleVID, start, count, &(F->box[3])),
+@@ -425,7 +424,7 @@
+ }
+
+ // write box
+- if (isBox>0 && cellLengthVID!=-1) {
++ if (BoxType!=0 && cellLengthVID!=-1) {
+ count[0]=3;
+ count[1]=0;
+ if (checkNCerr(nc_put_vara_double(ncid,cellLengthVID,start,count,F->box),
+@@ -439,6 +438,8 @@
+ // Close file for this set
+ close();
+
++ currentFrame++;
++
+ return 0;
+ }
+
+diff -urN amber11//AmberTools/src/cpptraj/src/AmberTraj.cpp amber11.new//AmberTools/src/cpptraj/src/AmberTraj.cpp
+--- amber11//AmberTools/src/cpptraj/src/AmberTraj.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/AmberTraj.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -104,16 +104,18 @@
+ rprintf("Error: AmberTraj::getFrame: * detected in coordinates of %s\n",trajfilename);
+ return 1;
+ }
+- if (isBox) {
++ if (BoxType!=0) {
+ if ( (bufferPosition = F->BufferToBox(bufferPosition,numBoxCoords,8))==NULL ) {
+ rprintf("Error: AmberTraj::getFrame: * detected in box coordinates of %s\n",
+ trajfilename);
+ return 1;
+ }
+- // Set box angles to parmtop default
+- F->box[3] = P->Box[0];
+- F->box[4] = P->Box[0];
+- F->box[5] = P->Box[0];
++ // Set box angles to parmtop default if not read in
++ if (numBoxCoords==3) {
++ F->box[3] = P->Box[3];
++ F->box[4] = P->Box[4];
++ F->box[5] = P->Box[5];
++ }
+ }
+ return 0;
+ }
+@@ -138,20 +140,22 @@
+ }
+
+ bufferPosition = F->FrameToBuffer(bufferPosition,"%8.3lf",8,10);
+- if (isBox)
++ if (BoxType!=0)
+ bufferPosition = F->BoxToBuffer(bufferPosition,numBoxCoords,"%8.3lf",8);
+
+ outFrameSize = (int) (bufferPosition - frameBuffer);
+
+ //if (seekable)
+ // NOTE: Seek only needs to happen when traj file changes
+- offset = (off_t) set;
+- offset *= (off_t) outFrameSize;
+- offset += (off_t) titleSize;
+- File->IO->Seek( offset);
++ //offset = (off_t) currentFrame;
++ //offset *= (off_t) outFrameSize;
++ //offset += (off_t) titleSize;
++ //File->IO->Seek( offset);
+
+ if (File->IO->Write(frameBuffer,sizeof(char),outFrameSize)) return 1;
+
++ currentFrame++;
++
+ return 0;
+ }
+
+@@ -165,6 +169,7 @@
+ int frame_lines;
+ int lineSize;
+ long long int file_size, frame_size;
++ double box[6]; // For checking box coordinates
+
+ // Attempt to open the file. open() sets the title and titleSize
+ if (open()) return 1;
+@@ -219,7 +224,7 @@
+
+ if (strncmp(buffer,"REMD",4)==0 || strncmp(buffer,"HREMD",5)==0) {
+ // REMD header - no box coords
+- isBox=0;
++ BoxType=0;
+ } else if (lineSize<80) {
+ /* Line is shorter than 80 chars, indicates box coords.
+ * Length of the line HAS to be a multiple of 8, and probably could be
+@@ -228,21 +233,22 @@
+ */
+ if (debug>0) mprintf(" Box line is %i chars.\n",lineSize);
+ if ( ((lineSize-1)%24)!=0 ) {
+- rprintf("Error in box coord line.\nExpect only 3 or 6 box coords.\n");
++ mprintf("Error in box coord line. Expect only 3 or 6 box coords.\n");
+ return 1;
+ }
+ numBoxCoords=(lineSize-1) / 8;
+ if (debug>0) mprintf(" Detected %i box coords.\n",numBoxCoords);
+- frameSize+=lineSize;
++ // Determine box type based on angles. Angles are usually not printed
++ // for orthogonal and truncated octahedral boxes, but check here just
++ // to be safe. If no angles present use parmtop Box Type.
++ if (numBoxCoords>3) {
++ sscanf(buffer, "%8lf%8lf%8lf%8lf%8lf%8lf",box,box+1,box+2,box+3,box+4,box+5);
++ CheckBoxType(box);
++ } else
++ BoxType = P->BoxType;
+ // Reallocate frame buffer accordingly
++ frameSize+=lineSize;
+ frameBuffer=(char*) realloc(frameBuffer,frameSize * sizeof(char));
+- if (P->ifbox==0) {
+- rprintf( "Warning: Box coords detected in trajectory but not defined in topology!\n");
+- rprintf(" Setting box type to rectangular.\n");
+- isBox=1;
+- } else {
+- isBox = P->ifbox;
+- }
+ }
+ }
+
+@@ -315,7 +321,9 @@
+ frameSize += hasREMD;
+
+ // If box coords are present, allocate extra space for them
+- if (isBox>0) {
++ // NOTE: Currently only writing box lengths for all box types. This means
++ // writing triclinic box type is currently not supported.
++ if (BoxType!=0) {
+ numBoxCoords=3; // Only write out box lengths for trajectories
+ frameSize+=((numBoxCoords*8)+1);
+ }
+diff -urN amber11//AmberTools/src/cpptraj/src/ArgList.cpp amber11.new//AmberTools/src/cpptraj/src/ArgList.cpp
+--- amber11//AmberTools/src/cpptraj/src/ArgList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/ArgList.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -147,6 +147,16 @@
+ }
+
+ /*
++ * ArgList::Arg()
++ * Return arg at specified position.
++ */
++char *ArgList::Arg(int pos) {
++ if (pos>-1 && pos<nargs)
++ return arglist[pos];
++ return NULL;
++}
++
++/*
+ * ArgList::Command()
+ * Check the first arg for command
+ * Mark and return. Return even if marked.
+diff -urN amber11//AmberTools/src/cpptraj/src/ArgList.h amber11.new//AmberTools/src/cpptraj/src/ArgList.h
+--- amber11//AmberTools/src/cpptraj/src/ArgList.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/ArgList.h 2011-05-19 18:35:57.000000000 +0300
+@@ -15,6 +15,7 @@
+ void Add(char *);
+ void print();
+ char *ArgLine();
++ char *Arg(int);
+
+ char *Command();
+ int CommandIs(const char *);
+diff -urN amber11//AmberTools/src/cpptraj/src/AtomMap.cpp amber11.new//AmberTools/src/cpptraj/src/AtomMap.cpp
+--- amber11//AmberTools/src/cpptraj/src/AtomMap.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/AtomMap.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -6,6 +6,7 @@
+ #include "TorsionRoutines.h"
+ // DEBUG
+ #include "Mol2File.h"
++#include <cstdio>
+
+ //--------- PRIVATE ROUTINES ---------------------------------------
+ /*
+@@ -463,21 +464,27 @@
+ // Write atommap out as a mol2 file, useful for checking bond info
+ void atommap::WriteMol2(char *m2filename) {
+ Mol2File outfile;
+- int *Selected;
++ AtomMask M1;
+ // Temporary parm to play with
+ AmberParm *tmpParm;
++ Frame *tmpFrame;
+
+ // Create mask containing all atoms
+- Selected = (int*) malloc(natom*sizeof(int));
+- for (int atom=0; atom<natom; atom++) Selected[atom]=atom;
++ //for (int atom=0; atom<natom; atom++) Selected[atom]=atom;
+ // Fake strip, just use as crap way to copy
+- tmpParm = P->modifyStateByMask(Selected,natom);
+- free(Selected);
++ //tmpParm = P->modifyStateByMask(Selected,natom);
++ //free(Selected);
+ // Modify the bonds array to include this info
+- tmpParm->ResetBondInfo();
+- for (int atom=0; atom<natom; atom++)
+- for (int bond=0; bond < M[atom].nbond; bond++)
+- tmpParm->AddBond(atom, M[atom].bond[bond], 0);
++ //tmpParm->ResetBondInfo();
++ //for (int atom=0; atom<natom; atom++)
++ // for (int bond=0; bond < M[atom].nbond; bond++)
++ // tmpParm->AddBond(atom, M[atom].bond[bond], 0);
++ // Create mask with all mapped atoms
++ for (int atom=0; atom<natom; atom++) {if (M[atom].isMapped) M1.AddAtom(atom);}
++ // Strip so only mapped atoms remain
++ tmpParm = P->modifyStateByMask(M1.Selected,M1.Nselected);
++ tmpFrame = new Frame(M1.Nselected,NULL);
++ tmpFrame->SetFrameFromMask(F, &M1);
+
+ // Trajectory Setup
+ outfile.File=new PtrajFile();
+@@ -485,13 +492,14 @@
+ outfile.trajfilename = outfile.File->basefilename;
+ outfile.debug=debug;
+ outfile.SetTitle(m2filename);
+- outfile.P=P;
++ outfile.P=tmpParm;
+ outfile.SetupWrite();
+ outfile.open();
+- outfile.F=F;
++ outfile.F=tmpFrame;
+ outfile.writeFrame(0);
+ outfile.close();
+ delete tmpParm;
++ delete tmpFrame;
+ }
+ // ============================================================================
+
+@@ -1032,6 +1040,13 @@
+ int iterations=0;
+
+ numAtomsMapped=MapUniqueAtoms(Ref, Tgt);
++ // DEBUG
++ //char name[1024];
++ //sprintf(name,"Ref.%i.mol2",iterations);
++ //Ref->WriteMol2(name);
++ //sprintf(name,"Tgt.%i.mol2",iterations);
++ //Tgt->WriteMol2(name);
++ // END DEBUG
+ if (debug>0)
+ mprintf("* MapUniqueAtoms: %i atoms mapped.\n",numAtomsMapped);
+ if (numAtomsMapped==0) return 1;
+@@ -1045,17 +1060,35 @@
+ iterations++;
+ // First assign based on bonds to unique (already mapped) atoms.
+ numAtomsMapped=mapBondsToUnique(Ref,Tgt);
++ // DEBUG
++ //sprintf(name,"Ref.%i.u.mol2",iterations);
++ //Ref->WriteMol2(name);
++ //sprintf(name,"Tgt.%i.u.mol2",iterations);
++ //Tgt->WriteMol2(name);
++ // END DEBUG
+ if (debug>0)
+ mprintf("* [%3i] mapBondsToUnique: %i atoms mapped.\n",iterations,numAtomsMapped);
+ if (numAtomsMapped<0) return 1;
+ // Next assign based on chirality
+ numAtomsMapped=mapChiral(Ref,Tgt);
++ // DEBUG
++ //sprintf(name,"Ref.%i.c.mol2",iterations);
++ //Ref->WriteMol2(name);
++ //sprintf(name,"Tgt.%i.c.mol2",iterations);
++ //Tgt->WriteMol2(name);
++ // END DEBUG
+ if (debug>0)
+ mprintf("* [%3i] mapChiral: %i atoms mapped.\n",iterations,numAtomsMapped);
+ if (numAtomsMapped<0) return 1;
+ if (numAtomsMapped>0) continue;
+ // Last assign based on index/element
+ numAtomsMapped=mapByIndex(Ref,Tgt);
++ // DEBUG
++ //sprintf(name,"Ref.%i.i.mol2",iterations);
++ //Ref->WriteMol2(name);
++ //sprintf(name,"Tgt.%i.i.mol2",iterations);
++ //Tgt->WriteMol2(name);
++ // END DEBUG
+ if (debug>0)
+ mprintf("* [%3i] mapByIndex: %i atoms mapped.\n",iterations,numAtomsMapped);
+ if (numAtomsMapped<0) return 1;
+diff -urN amber11//AmberTools/src/cpptraj/src/cpptrajdepend amber11.new//AmberTools/src/cpptraj/src/cpptrajdepend
+--- amber11//AmberTools/src/cpptraj/src/cpptrajdepend 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/cpptrajdepend 2011-05-19 18:35:57.000000000 +0300
+@@ -2,7 +2,7 @@
+ AmberNetcdf.o : AmberNetcdf.cpp AmberNetcdf.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h NetcdfRoutines.h PtrajFile.h Range.h TrajFile.h
+ AmberParm.o : AmberParm.cpp AmberParm.h BaseFileIO.h CpptrajStdio.h Mol2FileRoutines.h PDBfileRoutines.h PtrajFile.h
+ AmberTraj.o : AmberTraj.cpp AmberParm.h AmberTraj.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PtrajFile.h Range.h TrajFile.h
+-TrajFile.o : TrajFile.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PtrajFile.h PtrajMpi.h Range.h TrajFile.h
++TrajFile.o : TrajFile.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PtrajFile.h Range.h TrajFile.h
+ Frame.o : Frame.cpp AmberParm.h AtomMask.h BaseFileIO.h CpptrajStdio.h DistRoutines.h Frame.h PtrajFile.h TorsionRoutines.h vectormath.h
+ PtrajState.o : PtrajState.cpp Action.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajActionList.h PtrajFile.h PtrajMpi.h PtrajState.h Range.h ReferenceList.h TrajFile.h TrajinList.h TrajoutList.h
+ ArgList.o : ArgList.cpp ArgList.h CpptrajStdio.h
+@@ -13,7 +13,7 @@
+ TrajoutList.o : TrajoutList.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h Frame.h ParmFileList.h PtrajFile.h Range.h TrajFile.h TrajoutList.h
+ ReferenceList.o : ReferenceList.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h Frame.h FrameList.h ParmFileList.h PtrajFile.h Range.h ReferenceList.h TrajFile.h
+ CoordFileList.o : CoordFileList.cpp AmberNetcdf.h AmberParm.h AmberRestart.h AmberRestartNC.h AmberTraj.h ArgList.h AtomMask.h BaseFileIO.h Conflib.h CoordFileList.h CpptrajStdio.h Frame.h Mol2File.h PDBfile.h ParmFileList.h PtrajFile.h Range.h RemdTraj.h TrajFile.h TrajinList.h
+-PtrajActionList.o : PtrajActionList.cpp Action.h Action_Angle.h Action_Center.h Action_Closest.h Action_DSSP.h Action_Dihedral.h Action_Distance.h Action_Hbond.h Action_Image.h Action_Mask.h Action_NAstruct.h Action_Outtraj.h Action_Pucker.h Action_Radgyr.h Action_Rmsd.h Action_Strip.h Action_Surf.h AmberParm.h ArgList.h AtomMap.h AtomMask.h AxisType.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajActionList.h PtrajFile.h Range.h TrajFile.h TrajoutList.h
++PtrajActionList.o : PtrajActionList.cpp Action.h Action_Angle.h Action_Center.h Action_Closest.h Action_DSSP.h Action_Dihedral.h Action_Distance.h Action_Hbond.h Action_Image.h Action_Mask.h Action_NAstruct.h Action_Outtraj.h Action_Pucker.h Action_Radgyr.h Action_Rms2d.h Action_Rmsd.h Action_Strip.h Action_Surf.h AmberParm.h ArgList.h AtomMap.h AtomMask.h AxisType.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajActionList.h PtrajFile.h Range.h TrajFile.h TrajoutList.h
+ DataSet.o : DataSet.cpp CpptrajStdio.h DataSet.h
+ DataSetList.o : DataSetList.cpp CpptrajStdio.h DataSet.h DataSetList.h intDataSet.h mapDataSet.h stringDataSet.h
+ vectormath.o : vectormath.cpp CpptrajStdio.h vectormath.h
+@@ -23,9 +23,9 @@
+ DataFile.o : DataFile.cpp BaseFileIO.h CpptrajStdio.h DataFile.h DataSet.h PtrajFile.h
+ DataFileList.o : DataFileList.cpp BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h PtrajFile.h
+ PDBfile.o : PDBfile.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PDBfile.h PDBfileRoutines.h PtrajFile.h Range.h TrajFile.h
+-PtrajFile.o : PtrajFile.cpp BaseFileIO.h Bzip2File.h CpptrajStdio.h GzipFile.h MpiFile.h NetcdfRoutines.h PDBfileRoutines.h PtrajFile.h PtrajMpi.h StdFile.h
++PtrajFile.o : PtrajFile.cpp BaseFileIO.h Bzip2File.h CpptrajStdio.h GzipFile.h Mol2FileRoutines.h MpiFile.h NetcdfRoutines.h PDBfileRoutines.h PtrajFile.h PtrajMpi.h StdFile.h
+ PDBfileRoutines.o : PDBfileRoutines.cpp PDBfileRoutines.h
+-AtomMap.o : AtomMap.cpp Action.h AmberParm.h ArgList.h AtomMap.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h PDBfileRoutines.h ParmFileList.h PtrajFile.h TorsionRoutines.h
++AtomMap.o : AtomMap.cpp Action.h AmberParm.h ArgList.h AtomMap.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h Mol2File.h ParmFileList.h PtrajFile.h Range.h TorsionRoutines.h TrajFile.h
+ BaseFileIO.o : BaseFileIO.cpp BaseFileIO.h PtrajMpi.h
+ StdFile.o : StdFile.cpp BaseFileIO.h StdFile.h
+ GzipFile.o : GzipFile.cpp BaseFileIO.h CpptrajStdio.h GzipFile.h
+@@ -62,3 +62,4 @@
+ Action_Pucker.o : Action_Pucker.cpp Action.h Action_Pucker.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajFile.h
+ Range.o : Range.cpp ArgList.h CpptrajStdio.h Range.h
+ Action_Outtraj.o : Action_Outtraj.cpp Action.h Action_Outtraj.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajFile.h PtrajMpi.h Range.h TrajFile.h TrajoutList.h
++Action_Rms2d.o : Action_Rms2d.cpp Action.h Action_Rms2d.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajFile.h
+diff -urN amber11//AmberTools/src/cpptraj/src/DataFile.cpp amber11.new//AmberTools/src/cpptraj/src/DataFile.cpp
+--- amber11//AmberTools/src/cpptraj/src/DataFile.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/DataFile.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -66,6 +66,49 @@
+ }
+
+ /*
++ * DataFile::SetPrecision()
++ * Set precision of the specified dataset to width.precision. If '*' specified
++ * set for all datasets in file.
++ */
++void DataFile::SetPrecision(char *dsetName, int widthIn, int precisionIn) {
++ int precision, dset;
++ DataSet *Dset = NULL;
++
++ if (dsetName==NULL) {
++ mprintf("Error: SetPrecision must be called with dataset name or '*'.\n");
++ return;
++ }
++ if (widthIn<1) {
++ mprintf("Error: SetPrecision (%s): Cannot set width < 1.\n",filename);
++ return;
++ }
++ precision=precisionIn;
++ if (precisionIn<0) precision=0;
++ // If <dsetName>=='*' specified set precision for all data sets
++ if (dsetName[0]=='*') {
++ mprintf(" Setting width.precision for all sets in %s to %i.%i\n",
++ filename,widthIn,precision);
++ for (dset=0; dset<Nsets; dset++)
++ SetList[dset]->SetPrecision(widthIn,precision);
++
++ // Otherwise find dataset <dsetName> and set precision
++ } else {
++ mprintf(" Setting width.precision for dataset %s to %i.%i\n",
++ dsetName,widthIn,precision);
++ for (dset=0; dset<Nsets; dset++) {
++ if ( strcmp(SetList[dset]->Name(), dsetName)==0 ) {
++ Dset=SetList[dset];
++ break;
++ }
++ }
++ if (Dset!=NULL)
++ Dset->SetPrecision(widthIn,precision);
++ else
++ mprintf("Error: Dataset %s not found in datafile %s\n",dsetName,filename);
++ }
++}
++
++/*
+ * DataFile::AddSet()
+ * Add given set to this datafile
+ */
+diff -urN amber11//AmberTools/src/cpptraj/src/DataFile.h amber11.new//AmberTools/src/cpptraj/src/DataFile.h
+--- amber11//AmberTools/src/cpptraj/src/DataFile.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/DataFile.h 2011-05-19 18:35:57.000000000 +0300
+@@ -30,6 +30,7 @@
+ void SetXlabel(char*);
+ void SetInverted();
+ void SetNoXcol();
++ void SetPrecision(char *, int, int);
+ int AddSet(DataSet *);
+ int NameIs(char *);
+ void DataSetNames();
+diff -urN amber11//AmberTools/src/cpptraj/src/DataSet.cpp amber11.new//AmberTools/src/cpptraj/src/DataSet.cpp
+--- amber11//AmberTools/src/cpptraj/src/DataSet.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/DataSet.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -1,6 +1,7 @@
+ // DataSet
+ #include <cstdlib>
+ #include <cstring>
++#include <cstdio> // sprintf
+ #include "DataSet.h"
+ #include "CpptrajStdio.h"
+
+@@ -11,12 +12,73 @@
+ N=0;
+ isDynamic=false;
+ current=0;
++ width = 0;
++ precision = 0;
++ format = NULL;
++ dType = UNKNOWN_DATA;
+ }
+
+ // DESTRUCTOR
+ DataSet::~DataSet() {
+ //fprintf(stderr,"DataSet Destructor\n");
+ if (name!=NULL) free(name);
++ if (format!=NULL) free(format);
++}
++
++/*
++ * DataSet::setFormatString()
++ * Set up the output format string for each data element based on the given
++ * dataType and the current width, and precision.
++ */
++void DataSet::setFormatString() {
++ size_t stringWidth = 0;
++ int wWidth = 0;
++ int pWidth = 0;
++
++ if (format!=NULL) {free(format); format=NULL;}
++
++ // Calc num of chars necessary to hold width
++ wWidth = (width / 10) + 1;
++
++ switch (dType) {
++ case DOUBLE :
++ // Calc num of chars necessary to hold precision
++ pWidth = (precision / 10) + 1;
++ // String fmt: " %w.plf\0"
++ stringWidth = pWidth + wWidth + 6;
++ format = (char*) malloc( stringWidth * sizeof(char) );
++ sprintf(format, " %%%i.%ilf", width, precision);
++ break;
++ case STRING :
++ // String fmt: " %s"
++ format = (char*) malloc( 4 * sizeof(char) );
++ strcpy(format, " %s");
++ break;
++ case INT :
++ // String fmt: " %wi"
++ stringWidth = wWidth + 4;
++ format = (char*) malloc( stringWidth * sizeof(char) );
++ sprintf(format, " %%%ii", width);
++ break;
++ case UNKNOWN_DATA :
++ mprintf("Internal Error: setFormatString called with unknown data type.\n");
++ }
++
++ if (format==NULL)
++ mprintf("Error: setFormatString: Could not allocate memory for string.\n");
++ // DEBUG
++ //else
++ // mprintf("DEBUG: Format string: [%s]\n",format);
++}
++
++/*
++ * DataSet::SetPrecision()
++ * Set dataset width and precision and recalc output format string.
++ */
++void DataSet::SetPrecision(int widthIn, int precisionIn) {
++ width=widthIn;
++ precision=precisionIn;
++ setFormatString();
+ }
+
+ /*
+diff -urN amber11//AmberTools/src/cpptraj/src/DataSet.h amber11.new//AmberTools/src/cpptraj/src/DataSet.h
+--- amber11//AmberTools/src/cpptraj/src/DataSet.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/DataSet.h 2011-05-19 18:35:57.000000000 +0300
+@@ -36,12 +36,18 @@
+ class DataSet {
+ protected:
+ char *name; // Name of the dataset
++ dataType dType; // The dataset type
+ int N; // Number of data elements
+ int current; // The current data element
++ int width; // The output width of a data element
++ int precision; // The output precision of a data element (if applicable)
++ char *format; // Format of output
++
+ bool isDynamic; // True : N is not known, reallocate as N increases
+ // False: N is known, allocate for N
+ // If not isDynamic, Allocate will reserve space for N data elements
+ virtual int Allocate( ) { return 0; }
++ void setFormatString();
+
+ public:
+
+@@ -51,13 +57,16 @@
+ virtual int Xmax() { return 0; }
+ virtual int isEmpty(int) { return 0; }
+ virtual void Add( int, void * ) { return; }
++ virtual int Get( void *, int ) { return 1; }
+ virtual char *Write(char*, int) { return 0; }
+ virtual int Width() { return 0; }
+ virtual int Sync() { return 0; }
+
++ void SetPrecision(int,int);
+ int Setup(char*,int);
+ void Info();
+ char *Name() { return name; }
+ int CheckSet();
++ dataType Type() {return dType;}
+ };
+ #endif
+diff -urN amber11//AmberTools/src/cpptraj/src/Frame.cpp amber11.new//AmberTools/src/cpptraj/src/Frame.cpp
+--- amber11//AmberTools/src/cpptraj/src/Frame.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Frame.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -61,6 +61,40 @@
+ }
+
+ /*
++ * Frame::ZeroCoords()
++ * Set all coords to 0.0
++ */
++void Frame::ZeroCoords() {
++ for (int coord=0; coord < N; coord++)
++ X[coord]=0.0;
++}
++
++/*
++ * Frame::AddCoord()
++ * Add the coord values from the input frame to the coord values of
++ * this frame.
++ */
++void Frame::AddCoord(Frame *FrameIn) {
++ if (FrameIn->N != this->N) {
++ mprintf("Error: Frame::AddCoord: Attempting to add %i coords to %i coords.\n",
++ FrameIn->N,this->N);
++ } else {
++ for (int coord=0; coord < N; coord++)
++ this->X[coord] += FrameIn->X[coord];
++ }
++}
++
++/*
++ * Frame::Divide()
++ * Divide all coord values by input. Dont do it if the number is too small.
++ */
++void Frame::Divide(double divisor) {
++ if (divisor < SMALL) return;
++ for (int coord=0; coord < N; coord++)
++ X[coord] /= divisor;
++}
++
++/*
+ * Frame::Copy()
+ * Return a copy of the frame
+ */
+@@ -423,21 +457,21 @@
+ * Based on useMassIn, calculate geometric center (false) or center of mass
+ * (true) of the atoms in each mask.
+ */
+-double Frame::DIST2(AtomMask *Mask1, AtomMask *Mask2, bool useMassIn, int ifbox,
++double Frame::DIST2(AtomMask *Mask1, AtomMask *Mask2, bool useMassIn, int boxType,
+ double *ucell, double *recip) {
+ double a1[3], a2[3];
+
+ COM(Mask1, a1, useMassIn);
+ COM(Mask2, a2, useMassIn);
+
+- if (ifbox == 0)
++ if (boxType == 0)
+ return DIST2_NoImage(a1, a2);
+- else if (ifbox == 1)
++ else if (boxType == 1)
+ return DIST2_ImageOrtho(a1, a2, this->box);
+- else if (ifbox == 2)
++ else if (boxType == 2)
+ return DIST2_ImageNonOrtho(a1, a2, ucell, recip);
+
+- mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", ifbox);
++ mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", boxType);
+
+ return (-1.0);
+ }
+@@ -445,8 +479,11 @@
+ /*
+ * Frame::DIST2()
+ * Return the distance between atoms A1 and A2 with optional imaging.
++ * 0 = None
++ * 1 = Orthorhombic
++ * 2 = Non-orthorhombic
+ */
+-double Frame::DIST2(int A1, int A2, int ifbox, double *ucell, double *recip) {
++double Frame::DIST2(int A1, int A2, int boxType, double *ucell, double *recip) {
+ int atom3;
+ double a1[3], a2[3];
+
+@@ -459,14 +496,14 @@
+ a2[1] = X[atom3+1];
+ a2[2] = X[atom3+2];
+
+- if (ifbox == 0)
++ if (boxType == 0)
+ return DIST2_NoImage(a1, a2);
+- else if (ifbox == 1)
++ else if (boxType == 1)
+ return DIST2_ImageOrtho(a1, a2, this->box);
+- else if (ifbox == 2)
++ else if (boxType == 2)
+ return DIST2_ImageNonOrtho(a1, a2, ucell, recip);
+
+- mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", ifbox);
++ mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", boxType);
+
+ return (-1.0);
+ }
+diff -urN amber11//AmberTools/src/cpptraj/src/Frame.h amber11.new//AmberTools/src/cpptraj/src/Frame.h
+--- amber11//AmberTools/src/cpptraj/src/Frame.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Frame.h 2011-05-19 18:35:57.000000000 +0300
+@@ -22,6 +22,9 @@
+ Frame(AtomMask *, double *);
+ virtual ~Frame(); // Destructor is virtual since this class can be inherited
+
++ void ZeroCoords();
++ void AddCoord(Frame*);
++ void Divide(double);
+ void printAtomCoord(int);
+ void GetCoord(double *, int);
+ void SetCoord(int, double *);
+diff -urN amber11//AmberTools/src/cpptraj/src/FrameList.cpp amber11.new//AmberTools/src/cpptraj/src/FrameList.cpp
+--- amber11//AmberTools/src/cpptraj/src/FrameList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/FrameList.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -13,7 +13,8 @@
+ delete frameList[i];
+ }
+
+-/* FrameList::Add()
++/*
++ * FrameList::Add()
+ * Add given Frame to the FrameList. Store trajectory name that this frame
+ * came from in frameNames. Store the associated parm in FrameParm.
+ */
+@@ -29,6 +30,18 @@
+ FrameParm.Add(P);
+ Nframe++;
+ return 0;
++}
++
++/*
++ * FrameList::Add()
++ * Add given Frame to the FrameList. Store the associated parm in FrameParm.
++ */
++int FrameList::Add(Frame *F, AmberParm *P) {
++ if (F==NULL || P==NULL) return 1;
++ frameList.push_back(F);
++ FrameParm.Add(P);
++ Nframe++;
++ return 0;
+ }
+
+ /*
+diff -urN amber11//AmberTools/src/cpptraj/src/FrameList.h amber11.new//AmberTools/src/cpptraj/src/FrameList.h
+--- amber11//AmberTools/src/cpptraj/src/FrameList.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/FrameList.h 2011-05-19 18:35:57.000000000 +0300
+@@ -18,6 +18,7 @@
+ ~FrameList();
+
+ int Add(Frame *, char *, AmberParm *,int);
++ int Add(Frame *, AmberParm *);
+ AmberParm *GetFrameParm(int);
+ int GetFrameIndex(char *);
+ Frame *GetFrame(int idx);
+diff -urN amber11//AmberTools/src/cpptraj/src/intDataSet.cpp amber11.new//AmberTools/src/cpptraj/src/intDataSet.cpp
+--- amber11//AmberTools/src/cpptraj/src/intDataSet.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/intDataSet.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -5,6 +5,14 @@
+ #include "PtrajMpi.h"
+ #include "CpptrajStdio.h"
+ using namespace std;
++
++// CONSTRUCTOR
++intDataSet::intDataSet() {
++ width=12;
++ dType=INT;
++ setFormatString();
++}
++
+ /*
+ * intDataSet::Xmax(()
+ * Return the maximum X value added to this set. By convention this is
+@@ -34,6 +42,21 @@
+ }
+
+ /*
++ * intDataSet::Get()
++ * Get data at frame, put into vOut. Return 1 if no data at frame.
++ */
++int intDataSet::Get(void *vOut, int frame) {
++ int *value;
++
++ if (vOut==NULL) return 1;
++ value = (int*) vOut;
++ it=Data.find( frame );
++ if (it == Data.end()) return 1;
++ *value = (*it).second;
++ return 0;
++}
++
++/*
+ * intDataSet::isEmpty()
+ */
+ int intDataSet::isEmpty(int frame) {
+@@ -52,17 +75,17 @@
+ it = Data.find( frame );
+ if (it == Data.end())
+ //sprintf(buffer," %12s","NoData");
+- sprintf(buffer," %12i", 0);
++ sprintf(buffer, format, 0);
+ else
+- sprintf(buffer," %12i",(*it).second);
+- return (buffer + 13);
++ sprintf(buffer, format, (*it).second);
++ return (buffer + width + 1);
+ }
+
+ /*
+ * intDataSet::Width()
+ */
+ int intDataSet::Width() {
+- return 13;
++ return (width + 1);
+ }
+
+ /*
+diff -urN amber11//AmberTools/src/cpptraj/src/intDataSet.h amber11.new//AmberTools/src/cpptraj/src/intDataSet.h
+--- amber11//AmberTools/src/cpptraj/src/intDataSet.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/intDataSet.h 2011-05-19 18:35:57.000000000 +0300
+@@ -11,9 +11,12 @@
+ std::map<int,int> Data;
+ std::map<int,int>::iterator it;
+ public:
++ intDataSet();
++
+ int Xmax();
+ int isEmpty(int);
+ void Add( int, void * );
++ int Get(void *, int);
+ char *Write(char *, int);
+ int Width();
+ int Sync();
+diff -urN amber11//AmberTools/src/cpptraj/src/main.cpp amber11.new//AmberTools/src/cpptraj/src/main.cpp
+--- amber11//AmberTools/src/cpptraj/src/main.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/main.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -6,7 +6,7 @@
+ #include "PtrajMpi.h"
+ #include "CpptrajStdio.h"
+ #ifndef CPPTRAJ_VERSION_STRING
+-#define CPPTRAJ_VERSION_STRING "V1.0.5"
++#define CPPTRAJ_VERSION_STRING "V1.0.8"
+ #endif
+
+ void Usage(char *programName) {
+diff -urN amber11//AmberTools/src/cpptraj/src/Makefile amber11.new//AmberTools/src/cpptraj/src/Makefile
+--- amber11//AmberTools/src/cpptraj/src/Makefile 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Makefile 2011-05-19 18:35:57.000000000 +0300
+@@ -16,7 +16,8 @@
+ Action_Radgyr.cpp Conflib.cpp Action_Mask.cpp Action_Closest.cpp \
+ NetcdfRoutines.cpp AmberRestartNC.cpp CpptrajStdio.cpp Mol2File.cpp \
+ Mol2FileRoutines.cpp Action_NAstruct.cpp DistRoutines.cpp AxisType.cpp \
+- TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp
++ TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp \
++ Action_Rms2d.cpp
+
+ OBJECTS=main.o AmberNetcdf.o AmberParm.o AmberTraj.o TrajFile.o \
+ Frame.o PtrajState.o ArgList.o ptrajmask.o Action_Distance.o \
+@@ -32,7 +33,8 @@
+ Action_Radgyr.o Conflib.o Action_Mask.o Action_Closest.o \
+ NetcdfRoutines.o AmberRestartNC.o CpptrajStdio.o Mol2File.o \
+ Mol2FileRoutines.o Action_NAstruct.o DistRoutines.o AxisType.o \
+- TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o
++ TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o \
++ Action_Rms2d.o
+
+ HEADERS=AmberNetcdf.h AmberParm.h AmberTraj.h TrajFile.h \
+ Frame.h PtrajState.h ArgList.h ptrajmask.h Action.h Action_Distance.h \
+@@ -48,7 +50,8 @@
+ Action_Radgyr.h Conflib.h Action_Mask.h Action_Closest.h \
+ NetcdfRoutines.h AmberRestartNC.h CpptrajStdio.h Mol2File.h \
+ Mol2FileRoutines.h Action_NAstruct.h DistRoutines.h AxisType.h \
+- TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h
++ TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h \
++ Action_Rms2d.h
+
+ all: cpptraj$(SFX)
+
+diff -urN amber11//AmberTools/src/cpptraj/src/Makefile_at amber11.new//AmberTools/src/cpptraj/src/Makefile_at
+--- amber11//AmberTools/src/cpptraj/src/Makefile_at 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Makefile_at 2011-05-19 18:35:57.000000000 +0300
+@@ -16,7 +16,8 @@
+ Action_Radgyr.cpp Conflib.cpp Action_Mask.cpp Action_Closest.cpp \
+ NetcdfRoutines.cpp AmberRestartNC.cpp CpptrajStdio.cpp Mol2File.cpp \
+ Mol2FileRoutines.cpp Action_NAstruct.cpp DistRoutines.cpp AxisType.cpp \
+- TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp
++ TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp \
++ Action_Rms2d.cpp
+
+ OBJECTS=main.o AmberNetcdf.o AmberParm.o AmberTraj.o TrajFile.o \
+ Frame.o PtrajState.o ArgList.o ptrajmask.o Action_Distance.o \
+@@ -32,7 +33,8 @@
+ Action_Radgyr.o Conflib.o Action_Mask.o Action_Closest.o \
+ NetcdfRoutines.o AmberRestartNC.o CpptrajStdio.o Mol2File.o \
+ Mol2FileRoutines.o Action_NAstruct.o DistRoutines.o AxisType.o \
+- TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o
++ TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o \
++ Action_Rms2d.o
+
+ HEADERS=AmberNetcdf.h AmberParm.h AmberTraj.h TrajFile.h \
+ Frame.h PtrajState.h ArgList.h ptrajmask.h Action.h Action_Distance.h \
+@@ -48,7 +50,8 @@
+ Action_Radgyr.h Conflib.h Action_Mask.h Action_Closest.h \
+ NetcdfRoutines.h AmberRestartNC.h CpptrajStdio.h Mol2File.h \
+ Mol2FileRoutines.h Action_NAstruct.h DistRoutines.h AxisType.h \
+- TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h
++ TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h \
++ Action_Rms2d.h
+
+ all: cpptraj$(SFX)
+
+diff -urN amber11//AmberTools/src/cpptraj/src/mapDataSet.cpp amber11.new//AmberTools/src/cpptraj/src/mapDataSet.cpp
+--- amber11//AmberTools/src/cpptraj/src/mapDataSet.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/mapDataSet.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -6,6 +6,14 @@
+ #include "CpptrajStdio.h"
+ using namespace std;
+
++// CONSTRUCTOR
++mapDataSet::mapDataSet() {
++ width = 12;
++ precision = 4;
++ dType=DOUBLE;
++ setFormatString();
++}
++
+ /*
+ * mapDataSet::Xmax(()
+ * Return the maximum X value added to this set. By convention this is
+@@ -35,6 +43,23 @@
+ }
+
+ /*
++ * mapDataSet::Get()
++ * Get data at frame, put into vOut. Return 1 if no data at frame.
++ */
++int mapDataSet::Get(void *vOut, int frame) {
++ double *value;
++
++ if (vOut==NULL) return 1;
++ //mprintf("DEBUG: Attempting to get double frame %i\n",frame);
++ value = (double*) vOut;
++ it=Data.find( frame );
++ if (it == Data.end()) return 1;
++ //mprintf("DEBUG: Double frame %i is %lf\n",frame,(*it).second);
++ *value = (*it).second;
++ return 0;
++}
++
++/*
+ * mapDataSet::isEmpty()
+ */
+ int mapDataSet::isEmpty(int frame) {
+@@ -53,17 +78,17 @@
+ it = Data.find( frame );
+ if (it == Data.end())
+ //sprintf(buffer," %12s","NoData");
+- sprintf(buffer," %12.4lf", 0.0);
++ sprintf(buffer, format, 0.0);
+ else
+- sprintf(buffer," %12.4lf",(*it).second);
+- return (buffer + 13);
++ sprintf(buffer, format,(*it).second);
++ return (buffer + width + 1);
+ }
+
+ /*
+ * mapDataSet::Width()
+ */
+ int mapDataSet::Width() {
+- return 13;
++ return (width + 1);
+ }
+
+ /*
+diff -urN amber11//AmberTools/src/cpptraj/src/mapDataSet.h amber11.new//AmberTools/src/cpptraj/src/mapDataSet.h
+--- amber11//AmberTools/src/cpptraj/src/mapDataSet.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/mapDataSet.h 2011-05-19 18:35:57.000000000 +0300
+@@ -7,14 +7,16 @@
+ */
+ #include <map>
+ #include "DataSet.h"
+-//using namespace std;
+ class mapDataSet : public DataSet {
+ std::map<int,double> Data;
+ std::map<int,double>::iterator it;
+ public:
++ mapDataSet();
++
+ int Xmax();
+ int isEmpty(int);
+ void Add( int, void * );
++ int Get(void *, int);
+ char *Write(char *, int);
+ int Width();
+ int Sync();
+diff -urN amber11//AmberTools/src/cpptraj/src/Mol2File.cpp amber11.new//AmberTools/src/cpptraj/src/Mol2File.cpp
+--- amber11//AmberTools/src/cpptraj/src/Mol2File.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/Mol2File.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -239,6 +239,8 @@
+ if (writeMode==2)
+ File->IO->Close();
+
++ currentFrame++;
++
+ return 0;
+ }
+
+diff -urN amber11//AmberTools/src/cpptraj/src/PDBfile.cpp amber11.new//AmberTools/src/cpptraj/src/PDBfile.cpp
+--- amber11//AmberTools/src/cpptraj/src/PDBfile.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/PDBfile.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -207,6 +207,9 @@
+ } else if (writeMode==1) {
+ File->IO->Printf("ENDMDL\n");
+ }
++
++ currentFrame++;
++
+ return 0;
+ }
+
+diff -urN amber11//AmberTools/src/cpptraj/src/PtrajActionList.cpp amber11.new//AmberTools/src/cpptraj/src/PtrajActionList.cpp
+--- amber11//AmberTools/src/cpptraj/src/PtrajActionList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/PtrajActionList.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -20,6 +20,7 @@
+ #include "Action_NAstruct.h"
+ #include "Action_Pucker.h"
+ #include "Action_Outtraj.h"
++#include "Action_Rms2d.h"
+
+ // Constructor
+ PtrajActionList::PtrajActionList() {
+@@ -56,6 +57,7 @@
+
+ // Decide what action this is based on the command.
+ if (A->CommandIs("distance")) {Act=new Distance;}
++ else if (A->CommandIs("rms2d")) {Act=new Rms2d; }
+ else if (A->CommandIs("rmsd",3)) {Act=new Rmsd; }
+ else if (A->CommandIs("dihedral")) {Act=new Dihedral;}
+ else if (A->CommandIs("atommap")) {Act=new AtomMap; }
+@@ -166,6 +168,8 @@
+ err = ActionList[act]->DoAction(FrameAddress, frameIn);
+ if (err==1) {
+ // Treat actions that fail as if they could not be set up
++ mprintf("Warning: Action [%s] failed, frame %i.\n",ActionList[act]->CmdLine(),
++ frameIn);
+ ActionList[act]->noSetup=1;
+ } else if (err==2) {
+ // Return value of 2 requests return to original frame
+diff -urN amber11//AmberTools/src/cpptraj/src/PtrajFile.cpp amber11.new//AmberTools/src/cpptraj/src/PtrajFile.cpp
+--- amber11//AmberTools/src/cpptraj/src/PtrajFile.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/PtrajFile.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -113,6 +113,7 @@
+ void PtrajFile::CloseFile() {
+ if (isOpen) {
+ IO->Close();
++ if (debug>0) rprintf("Closed %s.\n",filename);
+ isOpen=0;
+ }
+ }
+diff -urN amber11//AmberTools/src/cpptraj/src/PtrajMpi.c amber11.new//AmberTools/src/cpptraj/src/PtrajMpi.c
+--- amber11//AmberTools/src/cpptraj/src/PtrajMpi.c 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/PtrajMpi.c 2011-05-19 18:35:57.000000000 +0300
+@@ -460,7 +460,10 @@
+ }
+
+ err = MPI_Allreduce(input, Return, count, currentType, currentOp, MPI_COMM_WORLD);
+- if (err!=MPI_SUCCESS) printMPIerr(err, "Performing allreduce for %i elements\n",count);
++ if (err!=MPI_SUCCESS) {
++ printMPIerr(err, "Performing allreduce.\n");
++ rprintf("Error: allreduce failed for %i elements.\n",count);
++ }
+
+ if (parallel_check_error(err)!=0) return 1;
+ return 0;
+diff -urN amber11//AmberTools/src/cpptraj/src/PtrajState.cpp amber11.new//AmberTools/src/cpptraj/src/PtrajState.cpp
+--- amber11//AmberTools/src/cpptraj/src/PtrajState.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/PtrajState.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -7,7 +7,8 @@
+ #include "CpptrajStdio.h"
+
+ // Constructor
+-PtrajState::PtrajState() {
++PtrajState::PtrajState() {
++ TotalErrors=0;
+ debug=0;
+ showProgress=1;
+ }
+@@ -291,6 +292,7 @@
+ char *df_cmd = NULL;
+ char *name1 = NULL;
+ char *name2 = NULL;
++ int width,precision;
+ DataFile *df;
+
+ if (DF_Args.empty()) return;
+@@ -349,6 +351,19 @@
+ }
+ mprintf(" Not printing x column for datafile %s\n",name1);
+ df->SetNoXcol();
++
++ // datafile precision
++ // Usage: datafile precision <filename> <dataset> [<width>] [<precision>]
++ // If width/precision not specified default to 12.4
++ } else if ( strcmp(df_cmd,"precision")==0 ) {
++ if (df==NULL) {
++ mprintf("Error: datafile precision: DataFile %s does not exist.\n",name1);
++ continue;
++ }
++ name2 = A->getNextString();
++ width = A->getNextInteger(12);
++ precision = A->getNextInteger(4);
++ df->SetPrecision(name2,width,precision);
+ }
+
+ } // END loop over datafile args
+@@ -374,7 +389,7 @@
+
+ // ========== S E T U P P H A S E ==========
+ // Calculate frame division among trajectories
+- maxFrames=trajFileList.SetupFrames();
++ maxFrames=trajFileList.SetupFrames(worldrank,worldsize);
+
+ // Parameter file information
+ parmFileList.Print();
+diff -urN amber11//AmberTools/src/cpptraj/src/PtrajState.h amber11.new//AmberTools/src/cpptraj/src/PtrajState.h
+--- amber11//AmberTools/src/cpptraj/src/PtrajState.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/PtrajState.h 2011-05-19 18:35:57.000000000 +0300
+@@ -20,6 +20,7 @@
+ DataFileList DFL; // List of datafiles that data sets will be written to
+ ArgList *A; // Current argument list
+ std::list<ArgList*> DF_Args; // List of commands pertaining to datafile creation etc
++ int TotalErrors; // Sum of all returned error statuses
+ int debug;
+
+ void SetGlobalDebug(int); // Set debug level for all components
+diff -urN amber11//AmberTools/src/cpptraj/src/ReferenceList.cpp amber11.new//AmberTools/src/cpptraj/src/ReferenceList.cpp
+--- amber11//AmberTools/src/cpptraj/src/ReferenceList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/ReferenceList.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -20,11 +20,15 @@
+ */
+ int ReferenceList::Add(ArgList *A, ParmFileList *parmFileList, int worldsize) {
+ TrajFile *T;
+- int startArg;
++ int startArg,stopArg,offsetArg;
++ bool average = false;
+
+ // Set up common arguments from arglist
+ if (this->ProcessArgList(A,parmFileList)) return 1;
+
++ // Check if we want to obtain the average structure
++ average = A->hasKey("average");
++
+ // Set up basic file to determine type and format
+ T = this->SetupTrajectory(trajfilename, fileAccess, UNKNOWN_FORMAT, UNKNOWN_TYPE);
+
+@@ -45,10 +49,18 @@
+ // Get user-specified start arg
+ // NOTE: For compatibility with ptraj start from 1
+ startArg=A->getNextInteger(1);
+- T->SetArgs(startArg,startArg,1);
++ stopArg=startArg;
++ offsetArg=1;
++ // Get user-specified stop and offset only if getting avg structure
++ if (average) {
++ stopArg=A->getNextInteger(-1);
++ offsetArg=A->getNextInteger(1);
++ }
++ T->SetArgs(startArg,stopArg,offsetArg);
+
+ // Add to trajectory file list
+- this->push_back(T);
++ this->push_back(T);
++ Average.push_back(average);
+
+ return 0;
+ }
+@@ -60,9 +72,11 @@
+ * place that frame in refFrames.
+ */
+ int ReferenceList::SetupRefFrames(FrameList *refFrames) {
+- int trajFrames;
+- Frame *F;
++ int trajFrames, global_set;
++ double Nframes;
++ Frame *F, *AvgFrame;
+ int skipValue;
++ int refTrajNum = 0;
+
+ mprintf("\nREFERENCE COORDS:\n");
+ if (this->empty()) {
+@@ -72,7 +86,13 @@
+
+ for (it = this->begin(); it != this->end(); it++) {
+ // Setup the reference traj for reading. Should only be 1 frame.
+- trajFrames=(*it)->setupFrameInfo(-1);
++ // NOTE: For MPI, calling setupFrameInfo with worldrank 0, worldsize 1 for
++ // all ranks. This is to ensure each thread has a copy of the ref
++ // struct.
++ // Calling setupFrameInfo with -1 to ensure the Parm frame count is
++ // not updated.
++
++ trajFrames=(*it)->setupFrameInfo(-1,0,1);
+ if ((*it)->total_read_frames<1) {
+ rprintf("Error: No frames could be read for reference %s, skipping\n",
+ (*it)->trajfilename);
+@@ -89,12 +109,34 @@
+ skipValue=(*it)->skip;
+ (*it)->skip=0;
+ }
+- (*it)->Begin(&trajFrames, 0);
+- // Get and copy the 1 frame from Traj, then close
+- // NOTE: What happens when not seekable?
++ // Start trajectory read
++ global_set=0;
++ (*it)->Begin(&global_set, 0);
+ (*it)->PrintInfo(1);
+- (*it)->NextFrame(&trajFrames);
+- F=(*it)->F->Copy();
++ // If averaging requested, loop over specified frames and avg coords.
++ if (Average[refTrajNum++]) {
++ mprintf(" Averaging over %i frames.\n",trajFrames);
++ AvgFrame = new Frame((*it)->P->natom, (*it)->P->mass);
++ AvgFrame->ZeroCoords();
++ global_set = 0;
++ Nframes = 0.0;
++ while ( (*it)->NextFrame(&global_set) ) {
++ AvgFrame->AddCoord( (*it)->F );
++ Nframes++;
++ }
++ if (Nframes < 1.0) {
++ mprintf("Error: reference average: # frames read is less than 1.\n");
++ F=NULL;
++ } else {
++ AvgFrame->Divide( Nframes );
++ F=AvgFrame->Copy();
++ }
++ delete AvgFrame;
++ // If no averaging, get and copy the 1 frame from Traj, then close
++ } else {
++ (*it)->NextFrame(&trajFrames);
++ F=(*it)->F->Copy();
++ }
+ // DEBUG
+ //fprintf(stdout,"DEBUG: Ref Coord Atom 0\n");
+ //F->printAtomCoord(0);
+diff -urN amber11//AmberTools/src/cpptraj/src/ReferenceList.h amber11.new//AmberTools/src/cpptraj/src/ReferenceList.h
+--- amber11//AmberTools/src/cpptraj/src/ReferenceList.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/ReferenceList.h 2011-05-19 18:35:57.000000000 +0300
+@@ -5,7 +5,7 @@
+ #include "FrameList.h"
+
+ class ReferenceList : public CoordFileList {
+-
++ std::vector<bool> Average;
+ public:
+
+ ReferenceList();
+diff -urN amber11//AmberTools/src/cpptraj/src/RemdTraj.cpp amber11.new//AmberTools/src/cpptraj/src/RemdTraj.cpp
+--- amber11//AmberTools/src/cpptraj/src/RemdTraj.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/RemdTraj.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -88,7 +88,7 @@
+ // NOTE: Should check that this is the case for ALL frames.
+ stop = T->Frames;
+ Frames = T->Frames;
+- isBox = T->isBox;
++ BoxType = T->BoxType;
+ trajfilename = T->File->basefilename;
+ // Add it to the list
+ REMDtraj.push_back(T);
+@@ -190,12 +190,12 @@
+ return 1;
+ }
+ // Check that #Frames and box info matches
+- if ( Frames!=T->Frames || isBox!=T->isBox ) {
++ if ( Frames!=T->Frames || BoxType!=T->BoxType ) {
+ mprintf(
+- " ERROR: REMDTRAJ: #Frames (%i) or box info (%i) in replica does not match\n",
+- T->Frames, T->isBox);
+- mprintf(" values in lowest replica (Frames=%i, box=%i)\n",
+- Frames,isBox);
++ " ERROR: REMDTRAJ: #Frames (%i) or box type (%i) in replica does not match\n",
++ T->Frames, T->BoxType);
++ mprintf(" values in lowest replica (Frames=%i, boxtype=%i)\n",
++ Frames,BoxType);
+ delete T;
+ free(repFilename);
+ free(Prefix);
+diff -urN amber11//AmberTools/src/cpptraj/src/stringDataSet.cpp amber11.new//AmberTools/src/cpptraj/src/stringDataSet.cpp
+--- amber11//AmberTools/src/cpptraj/src/stringDataSet.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/stringDataSet.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -6,6 +6,13 @@
+ #include "PtrajMpi.h"
+ #include "CpptrajStdio.h"
+ using namespace std;
++
++// CONSTRUCTOR
++stringDataSet::stringDataSet() {
++ dType=STRING;
++ setFormatString();
++}
++
+ /*
+ * stringDataSet::Xmax(()
+ * Return the maximum X value added to this set. By convention this is
+@@ -54,10 +61,10 @@
+
+ it = Data.find( frame );
+ if (it == Data.end()) {
+- sprintf(buffer," %s", "NoData");
++ sprintf(buffer, format, "NoData");
+ return (buffer + 7);
+ } else
+- sprintf(buffer," %s",(*it).second.c_str());
++ sprintf(buffer, format, (*it).second.c_str());
+
+ return (buffer + (*it).second.size() + 1);
+ }
+diff -urN amber11//AmberTools/src/cpptraj/src/stringDataSet.h amber11.new//AmberTools/src/cpptraj/src/stringDataSet.h
+--- amber11//AmberTools/src/cpptraj/src/stringDataSet.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/stringDataSet.h 2011-05-19 18:35:57.000000000 +0300
+@@ -12,6 +12,8 @@
+ std::map<int,std::string> Data;
+ std::map<int,std::string>::iterator it;
+ public:
++ stringDataSet();
++
+ int Xmax();
+ int isEmpty(int);
+ void Add( int, void * );
+diff -urN amber11//AmberTools/src/cpptraj/src/TrajFile.cpp amber11.new//AmberTools/src/cpptraj/src/TrajFile.cpp
+--- amber11//AmberTools/src/cpptraj/src/TrajFile.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/TrajFile.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -2,7 +2,6 @@
+ #include <cstdlib>
+ #include <cstring>
+ #include "TrajFile.h"
+-#include "PtrajMpi.h" // worldrank and worldsize needed to calc frame division
+ #include "CpptrajStdio.h"
+
+ // CONSTRUCTOR
+@@ -18,7 +17,7 @@
+ start=0;
+ stop=-1;
+ offset=1;
+- isBox=0;
++ BoxType=0;
+ title=NULL;
+ P=NULL;
+ frameskip=0;
+@@ -45,12 +44,17 @@
+ void TrajFile::SetTitle(char *titleIn) {
+ size_t titleSize;
+
++ //mprintf("DEBUG: Attempting to set title for %s: [%s]\n",trajfilename,titleIn);
+ if (titleIn==NULL) return;
+ titleSize = strlen(titleIn);
+- if (titleSize==0) return;
++ //mprintf(" Title size is %i\n",titleSize);
++ if (titleSize==0) {
++ mprintf("Warning: TrajFile::SetTitle(): Title for %s is 0 length.\n",trajfilename);
++ return;
++ }
+ this->title = (char*) malloc( (titleSize+1) * sizeof(char));
+ if (this->title==NULL) {
+- mprintf("Error: TrajFile::SetTitle(): Could not allocate memory for title.\n");
++ mprintf("Error: SetTitle: Could not allocate memory for title of %s.\n",trajfilename);
+ return;
+ }
+ strcpy(this->title, titleIn);
+@@ -59,6 +63,30 @@
+ }
+
+ /*
++ * TrajFile::CheckBoxType()
++ * Set the trajectory box type (ortho/nonortho) based on box angles.
++ * Check the current box type against the associated parmfile box type.
++ * Print a warning if they are different.
++ */
++void TrajFile::CheckBoxType(double *box) {
++ // Determine orthogonal / non-orthogonal from angles
++ if (box[3]==0.0 || box[4]==0.0 || box[5]==0.0)
++ BoxType=0;
++ else if (box[3]==90.0 && box[4]==90.0 && box[5]==90.0)
++ BoxType=1;
++ else
++ BoxType=2;
++ if (P->BoxType != BoxType) {
++ mprintf("Warning: %s contains box info of type %i (beta %lf)\n",trajfilename,
++ BoxType,box[4]);
++ mprintf(" but associated parmfile %s has box type %i (beta %lf)\n",P->parmName,
++ P->BoxType,P->Box[4]);
++ //mprintf(" Box information from trajectory will be used.\n");
++ }
++ if (debug>0) mprintf(" %s: Box type is %i (beta=%lf)\n",trajfilename,BoxType,box[4]);
++}
++
++/*
+ * TrajFile::PrintInfo()
+ * Print general trajectory information. Call TrajFile->Info for specific information.
+ */
+@@ -68,7 +96,7 @@
+
+ mprintf(", Parm %i",P->pindex);
+
+- if (isBox) mprintf(" (with box info)");
++ if (BoxType>0) mprintf(" (with box info)");
+
+ if (showExtended==0) {
+ mprintf("\n");
+@@ -85,7 +113,7 @@
+ mprintf(": Writing %i frames", P->parmFrames);
+ if (File->access==APPEND) mprintf(", appended"); // NOTE: Dangerous if REMD
+ }
+- if (debug>0) mprintf(", %i atoms, Box %i, seekable %i",P->natom,isBox,seekable);
++ if (debug>0) mprintf(", %i atoms, Box %i, seekable %i",P->natom,BoxType,seekable);
+ mprintf("\n");
+ }
+
+@@ -164,7 +192,7 @@
+ * Note that the input frames start counting from 1, output starts counting from 0!
+ * If called with maxFrames=-1 dont update the frame in parm file.
+ */
+-int TrajFile::setupFrameInfo(int maxFrames) {
++int TrajFile::setupFrameInfo(int maxFrames, int worldrank, int worldsize) {
+ int Nframes;
+ int ptraj_start_frame, ptraj_end_frame;
+ int traj_start_frame, traj_end_frame;
+diff -urN amber11//AmberTools/src/cpptraj/src/TrajFile.h amber11.new//AmberTools/src/cpptraj/src/TrajFile.h
+--- amber11//AmberTools/src/cpptraj/src/TrajFile.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/TrajFile.h 2011-05-19 18:35:57.000000000 +0300
+@@ -25,44 +25,44 @@
+ int offset; // Number of frames to skip while processing
+
+ // --== Inherited by child classes ==--
+- virtual int open() { return 0; } // Open the file, prepare for coord read/write
+- virtual void close() {} // Close the file
++ virtual int open() { return 0; } // Open the file, prepare for coord read/write
++ virtual void close() {} // Close the file
++
++ void CheckBoxType(double *); // Check that traj boxtype matches parm
+
+ public:
+ int debug; // Level of debug information to print
+ char *trajfilename; // The base trajectory filename
+- // NOTE: I hate that the following are public. Only necessary for REMD processing!!
++ // NOTE: I hate that the 2 following are public. Only necessary for REMD processing!!
+ int Frames; // Total number of frames in trajectory
+ int total_read_frames; // Total number of frames that will be read
+- int isBox; // >0 means trajectory has box information
+-
++ int BoxType; // 0: None, 1: Ortho, 2: NonOrtho
+ Range *FrameRange; // list of frames to be written out
+ int hasTemperature; // 1 means trajectory has temperature information
+ PtrajFile *File; // Class that handles basic file IO
+ AmberParm *P; // Memory address of the associated parmfile
+ Frame *F; // Hold coordinates of the current frame
+- int skip; /* READ: If =1 do not process this input trajectory
+- WRITE: If =1 this traj has been set up for write */
++ int skip; // READ: If =1 do not process this input trajectory
++ // WRITE: If =1 this traj has been set up for write
+
+ TrajFile(); // Constructor
+ virtual ~TrajFile(); // Destructor - virtual since this class is inherited.
+
+- int Start() { return start; }
++ int Start() { return start; }
++ int CurrentFrame() { return currentFrame; }
+ void SetTitle(char *); // Set trajectory title.
+ void PrintInfo(int); // Print trajectory Information
+- int setupFrameInfo(int); // Set actual start/stop based on total #frames and #threads
+- int Begin(int *, int); /* Prepare traj for processing. Set output start value, calcd in
+- * setupFrameInfo. Allocate memory for F.
+- */
+- int Begin(); // Prepare trajectory for output
+- int NextFrame(int*); // Put the next target frame into F.
+- void End(); // Close trajectory and free F memory
+- void progressBar(); // Display trajectory progress to screen
+-// void progressBar2(); // Display trajectory progress to screen
+-
+- void SetArgs(int,int,int); // Set the stop, start, and offset args from user input
++ int Begin(int *, int); // Prepare traj for processing. Set output start value, calcd in
++ // setupFrameInfo. Allocate memory for F.
++ int Begin(); // Prepare trajectory for output
++ int NextFrame(int*); // Put the next target frame into F.
++ void End(); // Close trajectory and free F memory
++ void progressBar(); // Display trajectory progress to screen
++// void progressBar2(); // Display trajectory progress to screen
++ int setupFrameInfo(int,int,int); // Set actual start/stop based on total #frames and #threads
++ void SetArgs(int,int,int); // Set the stop, start, and offset args from user input
+ // --== Inherited by child classes ==--
+- virtual int getFrame(int) { return 1; } // Read the next coord frame into F
++ virtual int getFrame(int) { return 1; } // Read specified frame into F
+ virtual int SetupRead() { return 1; } // Set file up for reading
+ virtual int WriteArgs(ArgList*){ return 0; } // (Opt.) Process any args related to writing
+ virtual int SetupWrite() { return 1; } // Set file up for writing
+diff -urN amber11//AmberTools/src/cpptraj/src/TrajinList.cpp amber11.new//AmberTools/src/cpptraj/src/TrajinList.cpp
+--- amber11//AmberTools/src/cpptraj/src/TrajinList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/TrajinList.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -70,7 +70,7 @@
+ * actual start and stop and how many frames total will be processed.
+ * Return the number of frames to be processed.
+ */
+-int TrajinList::SetupFrames() {
++int TrajinList::SetupFrames(int worldrank, int worldsize) {
+ int maxFrames, trajFrames;
+
+ mprintf("\nTRAJECTORIES:\n");
+@@ -78,7 +78,7 @@
+ maxFrames=0;
+
+ for (it = this->begin(); it != this->end(); it++) {
+- trajFrames = (*it)->setupFrameInfo(maxFrames);
++ trajFrames = (*it)->setupFrameInfo(maxFrames,worldrank,worldsize);
+ if (trajFrames==-1) {
+ maxFrames=-1;
+ }
+diff -urN amber11//AmberTools/src/cpptraj/src/TrajinList.h amber11.new//AmberTools/src/cpptraj/src/TrajinList.h
+--- amber11//AmberTools/src/cpptraj/src/TrajinList.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/TrajinList.h 2011-05-19 18:35:57.000000000 +0300
+@@ -13,7 +13,7 @@
+ // NOTE: worldsize is passed in as last arg to avoid include of PtrajMpi
+ int Add(ArgList *A, ParmFileList *, int);
+ // TRAJIN: Set up frames to be processed
+- int SetupFrames();
++ int SetupFrames(int,int);
+ };
+ #endif
+
+diff -urN amber11//AmberTools/src/cpptraj/src/TrajoutList.cpp amber11.new//AmberTools/src/cpptraj/src/TrajoutList.cpp
+--- amber11//AmberTools/src/cpptraj/src/TrajoutList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11.new//AmberTools/src/cpptraj/src/TrajoutList.cpp 2011-05-19 18:35:57.000000000 +0300
+@@ -20,7 +20,6 @@
+ */
+ int TrajoutList::Add(ArgList *A, ParmFileList *parmFileList, int worldsize) {
+ TrajFile *T;
+- int boxInfo;
+ FileFormat writeFormat;
+ FileType writeType;
+ char *onlyframes;
+@@ -29,7 +28,6 @@
+ if (this->ProcessArgList(A,parmFileList)) return 1;
+
+ // Init variables
+- boxInfo=0;
+ writeFormat=AMBERTRAJ;
+ writeType=UNKNOWN_TYPE;
+
+@@ -56,10 +54,6 @@
+ if (worldsize>1 && writeFormat!=AMBERRESTART)
+ writeType=MPIFILE;
+
+- // Set box info from parm file unless nobox is set.
+- boxInfo=P->ifbox;
+- if (A->hasKey("nobox")) boxInfo=0;
+-
+ // Set up basic file for given type and format
+ // If type is unknown it will be determined from extension or will be standard (default)
+ T = this->SetupTrajectory(trajfilename, fileAccess, writeFormat, writeType);
+@@ -90,10 +84,11 @@
+ // Set parameter file
+ T->P=P;
+
+- // Set box information (only needed for write)
+- T->isBox=boxInfo;
++ // Set box type from parm file unless "nobox" specified
++ T->BoxType=P->BoxType;
++ if (A->hasKey("nobox")) T->BoxType=0;
+
+- // No setup here; Write is set up after first frame read in PtrajState::Run
++ // No more setup here; Write is set up when first frame written.
+ // Add to trajectory file list
+ this->push_back(T);
+
+diff -urN amber11//AmberTools/src/leap/src/leap/amber.c amber11.new//AmberTools/src/leap/src/leap/amber.c
+--- amber11//AmberTools/src/leap/src/leap/amber.c 2011-03-10 20:12:06.000000000 +0200
++++ amber11.new//AmberTools/src/leap/src/leap/amber.c 2011-05-19 18:35:57.000000000 +0300
+@@ -36,6 +36,10 @@
+ * UNITs and PARMSETs.
+ */
+
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
++
+ #include "basics.h"
+ #include "vector.h"
+ #include "classes.h"
+@@ -240,23 +244,47 @@
+ *
+ * Read the proper torsion parameter terms.
+ */
++
++/* Arunima Singh added reading in of scee and scnb fields for proper torsions 20110420 */
+ static void
+ zAmberReadParmSetPropers( PARMSET psParms, FILE *fIn )
+ {
+ STRING sLine;
+-int iRead, iN;
++int iRead, iN, iRead2, iRead3;
+ STRING saStr[10];
+-double dDivisions, dKp, dP0, dN;
++double dDivisions, dKp, dP0, dN, dScee, dScnb;
++char *cScee, *cScnb;
+
+ memset(saStr, 0, sizeof(saStr)); /* for Purify */
+ while (1) {
+ FGETS( sLine, fIn );
+ NODASHES(sLine);
+- iRead = sscanf( sLine, "%s %s %s %s %lf %lf %lf %lf",
++
++ iRead = sscanf( sLine, "%s %s %s %s %lf %lf %lf %lf ",
+ saStr[0], saStr[1], saStr[2], saStr[3],
+ &dDivisions, &dKp, &dP0, &dN );
+- if ( iRead <= 0 )
++
++ cScee = strstr(sLine, "SCEE");
++ if(cScee!=NULL) {
++ iRead2 = sscanf( cScee, "SCEE=%lf", &dScee);
++ iRead++;
++ }
++
++ cScnb = strstr(sLine, "SCNB");
++ if(cScnb!=NULL) {
++ iRead3 = sscanf( cScnb, "SCNB=%lf", &dScnb);
++ iRead++;
++ }
++
++ if ( iRead <= 0 )
+ break;
++
++ if ( iRead == 8 ) /*Arunima Singh*/
++ {
++ dScee = 1.2;
++ dScnb = 2.0;
++ }
++
+ MESSAGE(( "Read: %s\n", sLine ));
+
+ if ( sLine[0] == ' ' && sLine[1] == ' ') {
+@@ -277,14 +305,37 @@
+ zAmberConvertWildCard( saStr[3] );
+ iParmSetAddProperTerm( psParms,
+ saStr[0], saStr[1], saStr[2], saStr[3],
+- abs(iN), dKp, dP0*DEGTORAD, "" );
++ abs(iN), dKp, dP0*DEGTORAD, dScee, dScnb, "" );
++
++
+ while( iN < 0 ) {
+ FGETS( sLine, fIn );
+ NODASHES(sLine);
+ MESSAGE(( "Read extra term: %s\n", sLine ));
+- iRead = sscanf( &sLine[11], "%lf %lf %lf %lf",
++ iRead = sscanf( &sLine[11], "%lf %lf %lf %lf ",
+ &dDivisions, &dKp, &dP0, &dN );
+- if ( iRead<=0 ) break;
++
++ cScee = strstr(sLine, "SCEE");
++ if(cScee!=NULL) {
++ iRead2 = sscanf( cScee, "SCEE=%lf", &dScee);
++ iRead++;
++ }
++
++ cScnb = strstr(sLine, "SCNB");
++ if(cScnb!=NULL) {
++ iRead3 = sscanf( cScnb, "SCNB=%lf", &dScnb);
++ iRead++;
++ }
++
++
++ if ( iRead == 4 ) /*Arunima Singh*/
++ {
++ dScee = 1.2;
++ dScnb = 2.0;
++ }
++
++
++ if ( iRead<=0 ) break;
+
+ if ( dDivisions == 0.0 )
+ dDivisions = 1.0;
+@@ -292,7 +343,7 @@
+ iN = (int)floor(dN+0.5);
+ iParmSetAddProperTerm( psParms,
+ saStr[0], saStr[1], saStr[2], saStr[3],
+- abs(iN), dKp, dP0*DEGTORAD, "" );
++ abs(iN), dKp, dP0*DEGTORAD, dScee, dScnb, "" );
+ }
+ if ( iRead <= 0 )
+ break;
+@@ -311,7 +362,7 @@
+ STRING sLine;
+ int iRead, iN;
+ STRING saStr[10];
+-double dKp, dP0, dN;
++double dKp, dP0, dN, dScee, dScnb;
+ BOOL bPrintLine;
+
+ memset(saStr, 0, sizeof(saStr)); /* for Purify */
+@@ -335,6 +386,8 @@
+ zAmberConvertWildCard( saStr[2] );
+ zAmberConvertWildCard( saStr[3] );
+ iN = (int)dN;
++ dScee = 0.0;
++ dScnb = 0.0;
+
+ /*
+ * check everything in case a format or other user error
+@@ -362,7 +415,7 @@
+
+ iParmSetAddImproperTerm( psParms,
+ saStr[0], saStr[1], saStr[2], saStr[3],
+- iN, dKp, dP0*DEGTORAD, "" );
++ iN, dKp, dP0*DEGTORAD, dScee, dScnb, "" );
+ }
+ if ( iRead > 0 )
+ VP0(( "WARNING: incomplete Improper Torsion line:\n%s", sLine ));
+diff -urN amber11//AmberTools/src/leap/src/leap/build.c amber11.new//AmberTools/src/leap/src/leap/build.c
+--- amber11//AmberTools/src/leap/src/leap/build.c 2011-03-10 20:12:06.000000000 +0200
++++ amber11.new//AmberTools/src/leap/src/leap/build.c 2011-05-19 18:35:57.000000000 +0300
+@@ -42,8 +42,9 @@
+ *
+ */
+
+-
+-
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
+
+ #include "basics.h"
+
+@@ -1567,7 +1568,7 @@
+ LOOP lAtoms, lTemp;
+ ATOM aAtom, aAtom1, aAtom2, aAtom3, aAtom4;
+ BOOL bM1, bM2, bM3, bM4, bOneMinimizedAtom;
+-double dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0;
++double dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dScee, dScnb;
+ STRING sAtom1, sAtom2, sAtom3, sAtom4, sDesc;
+ PARMSET psTemp;
+ TORSION tTorsion;
+@@ -1757,7 +1758,7 @@
+ ParmSetTORSIONTerm( tTorsion, i,
+ &iIndex,
+ sAtom1, sAtom2, sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+ if ( !bMinimizerAddTorsion( mStrain,
+ aAtom1, aAtom2, aAtom3, aAtom4,
+ (double)iN, dKp, dP0 )) {
+diff -urN amber11//AmberTools/src/leap/src/leap/model.c amber11.new//AmberTools/src/leap/src/leap/model.c
+--- amber11//AmberTools/src/leap/src/leap/model.c 2011-04-14 15:30:17.000000000 +0300
++++ amber11.new//AmberTools/src/leap/src/leap/model.c 2011-05-19 18:35:57.000000000 +0300
+@@ -39,7 +39,9 @@
+ * are determined from atom types.
+ */
+
+-
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
+
+
+ #include "basics.h"
+@@ -781,16 +783,6 @@
+ maPAtom++;
+ }
+ }
+- if ( iAtomCoordination(aX) !=
+- 1 + maPAtom - &(mtTorsions.maaXBonds[0]) ) {
+- VP0(( "Error: Atom %s has force field coordination %i\n"
+- " but only %i bonded neighbors.\n"
+- " The cause may be an incorrect atom type, and\n"
+- " the effect may be a crash very soon.\n",
+- sContainerFullDescriptor((CONTAINER)aX,s1),
+- iAtomCoordination(aX),
+- 1 + maPAtom - &(mtTorsions.maaXBonds[0]) ));
+- }
+ for ( i=iAtomCoordination(aX); i<MAXBONDS; i++ ) {
+ maPAtom->aAtom = NULL;
+ maPAtom++;
+@@ -824,16 +816,6 @@
+ maPAtom++;
+ }
+ }
+- if ( iAtomCoordination(aY) !=
+- 1 + maPAtom - &(mtTorsions.maaYBonds[0]) ) {
+- VP0(( "Error: Atom %s has force field coordination %i\n"
+- " but only %i bonded neighbors.\n"
+- " The cause may be an incorrect atom type, and\n"
+- " the effect may be a crash very soon.\n",
+- sContainerFullDescriptor((CONTAINER)aY,s1),
+- iAtomCoordination(aY),
+- 1 + maPAtom - &(mtTorsions.maaYBonds[0]) ));
+- }
+ for ( i=iAtomCoordination(aY); i<MAXBONDS; i++ ) {
+ maPAtom->aAtom = NULL;
+ maPAtom++;
+@@ -1205,6 +1187,8 @@
+ int iN;
+ double dK;
+ double dE;
++ double dSce; /*Arunima Singh*/
++ double dScn; /*Arunima Singh*/
+ } H_PROPERPARMt;
+
+ typedef struct {
+@@ -1222,12 +1206,13 @@
+
+ /* Keep iHybrid2 <= iHybrid3 */
+
++/* Arunima Singh 20110413. Added Scee and Scnb AMBER defaults of 1.2 and 2.0 */
+ #define TFORCE 20.0
+ static H_PROPERPARMt SppaPropers[] = {
+-{ HSP3, HSP3, 3, 1.0, 0.0 }, /* Non bond */
+-{ HSP2, HSP3, 6, -2.0, 0.0 }, /* Non bond */
+-{ HSP2, HSP2, 2, -4.0, 0.0 }, /* Pi bond overlap */
+-{ HSP1, HSP1, 1, 0.0, 0.0 } /* Not interesting */
++{ HSP3, HSP3, 3, 1.0, 0.0, 1.2, 2.0 }, /* Non bond */
++{ HSP2, HSP3, 6, -2.0, 0.0, 1.2, 2.0 }, /* Non bond */
++{ HSP2, HSP2, 2, -4.0, 0.0, 1.2, 2.0 }, /* Pi bond overlap */
++{ HSP1, HSP1, 1, 0.0, 0.0, 1.2, 2.0 } /* Not interesting */
+ };
+
+ #define AFORCE 100.0
+@@ -1290,6 +1275,8 @@
+ SppaPropers[i].iN,
+ SppaPropers[i].dK,
+ SppaPropers[i].dE,
++ SppaPropers[i].dSce,
++ SppaPropers[i].dScn,
+ sDesc );
+ }
+ }
+diff -urN amber11//AmberTools/src/leap/src/leap/parmSet.c amber11.new//AmberTools/src/leap/src/leap/parmSet.c
+--- amber11//AmberTools/src/leap/src/leap/parmSet.c 2011-03-10 20:12:06.000000000 +0200
++++ amber11.new//AmberTools/src/leap/src/leap/parmSet.c 2011-05-19 18:35:57.000000000 +0300
+@@ -54,7 +54,9 @@
+ * search routines REQUIRE pre-ordering.
+ */
+
+-
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
+
+ #include "basics.h"
+
+@@ -965,6 +967,8 @@
+ /*
+ * copy into 1 vararray & set iType
+ */
++
++ /*Arunima Singh added scee and scnb into the database */
+ vaTorsTypes = vaVarArrayCopy2( psLib->vaTorsions, psLib->vaImpropers );
+ tP = PVAI(vaTorsTypes,TORSIONPARMt,0);
+ for (i=0; i<iVarArrayElementCount(psLib->vaTorsions); i++, tP++)
+@@ -980,8 +984,12 @@
+ 7, "n",
+ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->iN),
+ iVarArrayElementSize(vaTorsTypes),
+- 0, NULL, NULL, 0,
+- 0, NULL, NULL, 0,
++ 9, "scee",
++ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->dScee),
++ iVarArrayElementSize(vaTorsTypes),
++ 10, "scnb",
++ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->dScnb),
++ iVarArrayElementSize(vaTorsTypes),
+ 0, NULL, NULL, 0,
+ 0, NULL, NULL, 0,
+ 0, NULL, NULL, 0,
+@@ -1008,7 +1016,7 @@
+ 4, "type4",
+ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->sType4),
+ iVarArrayElementSize(vaTorsTypes),
+- 9, "desc",
++ 11, "desc",
+ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->sDesc),
+ iVarArrayElementSize(vaTorsTypes)
+ );
+@@ -1586,10 +1594,15 @@
+ * Add a torsion parameter to the PARMSET.
+ * Return the index.
+ */
++
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
++
+ int
+ iParmSetAddProperTerm( PARMSET psLib,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int iN, double dKp, double dP0, char *sDesc )
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
+ {
+ TORSIONPARMt tpTorsion;
+
+@@ -1605,6 +1618,8 @@
+ tpTorsion.dKp = dKp;
+ tpTorsion.iN = iN;
+ tpTorsion.dP0 = dP0;
++ tpTorsion.dScee = dScee;
++ tpTorsion.dScnb = dScnb;
+ strcpy( tpTorsion.sOrder, "0123" );
+ if ( sDesc != NULL )
+ strcpy( tpTorsion.sDesc, sDesc );
+@@ -1633,7 +1648,7 @@
+ int
+ iParmSetAddImproperTerm( PARMSET psLib,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int iN, double dKp, double dP0, char *sDesc )
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
+ {
+ TORSIONPARMt tpImproper;
+ orderStr sOrder;
+@@ -2022,7 +2037,7 @@
+ void
+ ParmSetTORSIONTerm( TORSION tTorsion, int iTorsionIndex, int *iPParmSetIndex,
+ char *cPType1, char *cPType2, char *cPType3, char *cPType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDesc )
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc )
+ {
+ TORSION_MATCHt *tmPCur;
+
+@@ -2035,6 +2050,8 @@
+ *iPN = tmPCur->tpTorsion.iN;
+ *dPKp = tmPCur->tpTorsion.dKp;
+ *dPP0 = tmPCur->tpTorsion.dP0;
++ *dPScee = tmPCur->tpTorsion.dScee;
++ *dPScnb = tmPCur->tpTorsion.dScnb;
+ strcpy(sDesc, tmPCur->tpTorsion.sDesc);
+ }
+
+@@ -2050,7 +2067,7 @@
+ BOOL
+ bParmSetTORSIONAddProperTerm( TORSION tTorsion,
+ char *cPType1, char *cPType2, char *cPType3, char *cPType4,
+- int iN, double dKp, double dP0, char *sDesc )
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
+ {
+ TORSIONPARMt tpTorsion;
+
+@@ -2066,6 +2083,8 @@
+ tpTorsion.iN = iN;
+ tpTorsion.dKp = dKp;
+ tpTorsion.dP0 = dP0;
++ tpTorsion.dScee = dScee;
++ tpTorsion.dScnb = dScnb;
+ strcpy(tpTorsion.sDesc, sDesc);
+ strcpy( tpTorsion.sOrder, "0123" );
+
+@@ -2087,7 +2106,7 @@
+ BOOL
+ bParmSetTORSIONAddImproperTerm( TORSION tTorsion,
+ char *cPType1, char *cPType2, char *cPType3, char *cPType4,
+- int iN, double dKp, double dP0, char *sDesc )
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
+ {
+ TORSIONPARMt tpTorsion;
+ orderStr sOrder;
+@@ -2104,6 +2123,8 @@
+ tpTorsion.iN = iN;
+ tpTorsion.dKp = dKp;
+ tpTorsion.dP0 = dP0;
++ tpTorsion.dScee = dScee;
++ tpTorsion.dScnb = dScnb;
+ strcpy(tpTorsion.sDesc, sDesc);
+ strcpy( tpTorsion.sOrder, sOrder );
+
+@@ -2516,7 +2537,7 @@
+ void
+ ParmSetTorsion( PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDesc)
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc)
+ {
+ TORSIONPARMt *tpPTorsion;
+
+@@ -2531,6 +2552,8 @@
+ strcpy( sType4, WILD_CARD_TYPE );
+ *iPN = 0;
+ *dPKp = 0;
++ *dPScee = 0;
++ *dPScnb = 0;
+ *dPP0 = 0;
+ strcpy( sDesc, "??" );
+ return;
+@@ -2543,7 +2566,10 @@
+ *iPN = tpPTorsion->iN;
+ *dPKp = tpPTorsion->dKp;
+ *dPP0 = tpPTorsion->dP0;
++ *dPScee = tpPTorsion->dScee;
++ *dPScnb = tpPTorsion->dScnb;
+ strcpy( sDesc, tpPTorsion->sDesc );
++
+ }
+
+
+@@ -2557,7 +2583,7 @@
+ void
+ ParmSetImproper( PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDesc)
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc)
+ {
+ TORSIONPARMt *tpPImproper;
+
+@@ -2573,6 +2599,8 @@
+ *iPN = 0;
+ *dPKp = 0;
+ *dPP0 = 0;
++ *dPScee = 0;
++ *dPScnb = 0;
+ strcpy( sDesc, "??" );
+ return;
+ }
+@@ -2584,6 +2612,8 @@
+ *iPN = tpPImproper->iN;
+ *dPKp = tpPImproper->dKp;
+ *dPP0 = tpPImproper->dP0;
++ *dPScee = tpPImproper->dScee;
++ *dPScnb = tpPImproper->dScnb;
+ strcpy( sDesc, tpPImproper->sDesc );
+ }
+
+@@ -2740,7 +2770,7 @@
+ void
+ ParmSetUpdateTorsion( PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDescription)
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDescription)
+ {
+ TORSIONPARMt *tpPTorsion;
+ orderStr sOrder;
+@@ -2754,6 +2784,8 @@
+ if ( iPN != (int*)NULL ) tpPTorsion->iN = *iPN;
+ if ( dPKp != (double*)NULL) tpPTorsion->dKp = *dPKp;
+ if ( dPP0 != (double*)NULL) tpPTorsion->dP0 = *dPP0;
++ if ( dPScee != (double*)NULL) tpPTorsion->dScee = *dPScee;
++ if ( dPScnb != (double*)NULL) tpPTorsion->dScnb = *dPScnb;
+ if (sDescription != (char*)NULL ) strcpy(tpPTorsion->sDesc, sDescription);
+
+ strcpy( sOrder, "0123" );
+@@ -2777,7 +2809,7 @@
+ void
+ ParmSetUpdateImproper( PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDescription)
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDescription)
+ {
+ TORSIONPARMt *tpPTorsion;
+ orderStr sOrder;
+@@ -2790,6 +2822,8 @@
+ if ( iPN != (int*)NULL ) tpPTorsion->iN = *iPN;
+ if ( dPKp != (double*)NULL) tpPTorsion->dKp = *dPKp;
+ if ( dPP0 != (double*)NULL) tpPTorsion->dP0 = *dPP0;
++ if ( dPScee != (double*)NULL) tpPTorsion->dScee = *dPScee;
++ if ( dPScnb != (double*)NULL) tpPTorsion->dScnb = *dPScnb;
+ if (sDescription != (char*)NULL ) strcpy(tpPTorsion->sDesc, sDescription);
+
+ strcpy( sOrder, "0123" );
+@@ -2979,6 +3013,7 @@
+ tpPCur->sType1, tpPCur->sType2,
+ tpPCur->sType3, tpPCur->sType4,
+ tpPCur->iN, tpPCur->dKp, tpPCur->dP0/DEGTORAD,
++ tpPCur->dScee, tpPCur->dScnb,
+ tpPCur->sOrder, tpPCur->sDesc );
+ }
+ }
+@@ -2996,6 +3031,7 @@
+ tpPCur->sType1, tpPCur->sType2,
+ tpPCur->sType3, tpPCur->sType4,
+ tpPCur->iN, tpPCur->dKp, tpPCur->dP0/DEGTORAD,
++ tpPCur->dScee, tpPCur->dScnb,
+ tpPCur->sDesc );
+ }
+ }
+diff -urN amber11//AmberTools/src/leap/src/leap/parmSet.h amber11.new//AmberTools/src/leap/src/leap/parmSet.h
+--- amber11//AmberTools/src/leap/src/leap/parmSet.h 2011-03-10 20:12:06.000000000 +0200
++++ amber11.new//AmberTools/src/leap/src/leap/parmSet.h 2011-05-19 18:35:57.000000000 +0300
+@@ -42,6 +42,9 @@
+ *
+ *
+ */
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
+
+ #ifndef PARMSET_H
+ #define PARMSET_H
+@@ -96,6 +99,8 @@
+ int iN;
+ double dKp;
+ double dP0;
++ double dScee; /* for propers */ /* Arunima Singh */
++ double dScnb; /* for propers */ /* Arunima Singh */
+ orderStr sOrder; /* for impropers */
+ DESCRIPTION sDesc;
+ } TORSIONPARMt;
+@@ -158,10 +163,10 @@
+ double dKt, double dT0, double dTkub, double dRkub, char *sDesc);
+ extern int iParmSetAddProperTerm(PARMSET psLib,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int iN, double dKp, double dP0, char *sDesc);
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc); /* for proper dihedrals */ /* Arunima Singh */
+ extern int iParmSetAddImproperTerm(PARMSET psLib,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int iN, double dKp, double dP0, char *sDesc);
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc); /* Arunima Singh : added for proper dihedrals, but has to be included in impropers to maintain common data structure usage */
+ extern int iParmSetAddHBond(PARMSET psLib, char *sType1, char *sType2,
+ double dA, double dB, char *sDesc);
+
+@@ -216,15 +221,15 @@
+ extern void ParmSetTORSIONTerm(TORSION tTorsion, int iTorsionIndex,
+ int *iPParmSetIndex,
+ char *cPTyp1, char *cPTyp2, char *cPTyp3, char *cPTyp4,
+- int *iPN, double *dPKp, double *dPP0, char *sDesc );
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc );
+ extern BOOL bParmSetTORSIONAddProperTerm(TORSION tTorsion,
+ char *cPType1, char *cPType2,
+ char *cPType3, char *cPType4,
+- int iN, double dKp, double dP0, char *sDesc);
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc);
+ extern BOOL bParmSetTORSIONAddImproperTerm(TORSION tTorsion,
+ char *cPType1, char *cPType2,
+ char *cPType3, char *cPType4,
+- int iN, double dKp, double dP0, char *sDesc);
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc);
+ extern void ParmSetTORSIONOrderAtoms();
+ extern void ParmSetImproperOrderAtoms( TORSION tTorsion, int iTorsionIndex,
+ char *cPaTypes[4], int iaIndexes[4] );
+@@ -268,10 +273,10 @@
+ char *sDesc);
+ extern void ParmSetTorsion(PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDesc);
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc);
+ extern void ParmSetImproper(PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDesc);
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc);
+ extern void ParmSetHBond(PARMSET psLib, int i, char *sType1, char *sType2,
+ double *dPA, double *dPB, char *sDesc);
+
+@@ -296,11 +301,11 @@
+ double *dPKt, double *dPT0, char *sDescription);
+ extern void ParmSetUpdateTorsion(PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0,
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb,
+ char *sDescription);
+ extern void ParmSetUpdateImproper(PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0,
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb,
+ char *sDescription);
+ extern void ParmSetUpdateHBond(PARMSET psLib, int i,
+ char *sType1, char *sType2,
+diff -urN amber11//AmberTools/src/leap/src/leap/unitio.c amber11.new//AmberTools/src/leap/src/leap/unitio.c
+--- amber11//AmberTools/src/leap/src/leap/unitio.c 2011-03-10 20:12:06.000000000 +0200
++++ amber11.new//AmberTools/src/leap/src/leap/unitio.c 2011-05-19 18:35:57.000000000 +0300
+@@ -70,6 +70,10 @@
+ * zbUnitIOIndexBondParameters and zUnitDoAtoms are now "extern functions"
+ */
+
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
++
+ #include <time.h>
+
+ #include "basics.h"
+@@ -1585,7 +1589,9 @@
+ tC.dKp = tpA->dKp;
+ tC.iN = tpA->iN;
+ tC.dP0 = tpA->dP0;
+- VarArrayAdd(vaB, (GENP) & tC);
++ tC.dScee = tpA->dScee;
++ tC.dScnb = tpA->dScnb;
++ VarArrayAdd(vaB, (GENP) & tC);
+ iIndex++;
+ iOldIndex = iParmOffset + iA + 1;
+
+@@ -1615,6 +1621,10 @@
+ continue;
+ if (tpB->dP0 != tpA->dP0)
+ continue;
++ if (tpB->dScee != tpA->dScee)
++ continue;
++ if (tpB->dScnb != tpA->dScnb)
++ continue;
+
+ /*
+ * B is a duplicate of A
+@@ -1698,12 +1708,12 @@
+ int iTerm, iPertTerm;
+ BOOL bDone, bUse, bUsePert, bCopy, bCopyPert, bEnd, bPertEnd;
+ int iN, iPertIndex, iPertN, iLastN, iLastPertN;
+- double dKp, dP0, dPertKp, dPertP0;
++ double dKp, dP0, dScee, dScnb, dPertKp, dPertP0, dPertScee, dPertScnb;
+ BOOL bCalc14, bCalcPert14;
+ #ifdef DEBUG2
+ STRING s1, s2, s3, s4;
+ int iTParm, iTmp;
+- double dTK, dTP;
++ double dTK, dTP, dTScee, dTScnb;
+ STRING sT1, sT2, sT3, sT4, sTemp;
+ #endif
+ STRING sDesc;
+@@ -2016,9 +2026,9 @@
+ ParmSetTORSIONTerm(tTorsion, i,
+ &iTParm,
+ sT1, sT2, sT3, sT4,
+- &iTmp, &dTK, &dTP, sTemp);
+- MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf\n",
+- i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP));
++ &iTmp, &dTK, &dTP, &dTScee, &dTScnb, sTemp);
++ MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
++ i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP, dTScee, dTScnb));
+ }
+ if (bPerturbTorsion) {
+ MESSAGE(("Pert%s %s-%s-%s-%s found %d terms\n",
+@@ -2029,9 +2039,9 @@
+ ParmSetTORSIONTerm(tPertTorsion, i,
+ &iTParm,
+ sT1, sT2, sT3, sT4,
+- &iTmp, &dTK, &dTP, sTemp);
+- MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf\n",
+- i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP));
++ &iTmp, &dTK, &dTP, &dTScee, &dTScnb, sTemp);
++ MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
++ i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP dTScee, dTScnb));
+ }
+ }
+ #endif
+@@ -2061,7 +2071,7 @@
+ ParmSetTORSIONTerm(tTorsion, iTerm,
+ &iIndex,
+ sAtom1, sAtom2, sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc);
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
+ MESSAGE(("First non-perturbed multiplicity: %d\n", iN));
+ } else {
+ if (bProper) {
+@@ -2082,7 +2092,7 @@
+ ParmSetTORSIONTerm(tPertTorsion, iPertTerm,
+ &iPertIndex,
+ sPert1, sPert2, sPert3, sPert4,
+- &iPertN, &dPertKp, &dPertP0, sDesc);
++ &iPertN, &dPertKp, &dPertP0, &dPertScee, &dPertScnb, sDesc);
+ MESSAGE(("First perturbed multiplicity: %d\n", iPertN));
+ } else
+ bPertEnd = TRUE;
+@@ -2175,14 +2185,14 @@
+ if (bProper)
+ iIndex = iParmSetAddProperTerm(uUnit->psParameters,
+ sAtom1, sAtom2, sAtom3,
+- sAtom4, iN, dKp, dP0,
+- sDesc);
++ sAtom4, iN, dKp, dP0,
++ dScee, dScnb, sDesc);
+ /* else if ( !GDefaults.iCharmm ) ???---should I do this???? */
+ else
+ iIndex = iParmSetAddImproperTerm(uUnit->psParameters,
+ sAtom1, sAtom2,
+ sAtom3, sAtom4, iN,
+- dKp, dP0, sDesc);
++ dKp, dP0, dScee, dScnb, sDesc);
+ }
+ if (bCopyPert) {
+ if (bProper) {
+@@ -2190,13 +2200,13 @@
+ sPert1, sPert2,
+ sPert3, sPert4,
+ iPertN, dPertKp,
+- dPertP0, sDesc);
++ dPertP0, dScee, dScnb, sDesc);
+ } else {
+ iPertIndex =
+ iParmSetAddImproperTerm(uUnit->psParameters,
+ sPert1, sPert2, sPert3,
+ sPert4, iPertN, dPertKp,
+- dPertP0, sDesc);
++ dPertP0, dScee, dScnb, sDesc);
+ }
+ MESSAGE(("iPertIndex = %d\n", iPertIndex));
+ }
+@@ -2215,7 +2225,7 @@
+ ParmSetTORSIONTerm(tTorsion, iTerm,
+ &iIndex,
+ sAtom1, sAtom2, sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc);
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
+ }
+ MESSAGE(
+ ("Advancing non-perturbed multiplicity to %d\n",
+@@ -2231,7 +2241,7 @@
+ ParmSetTORSIONTerm(tPertTorsion, iPertTerm,
+ &iPertIndex,
+ sPert1, sPert2, sPert3, sPert4,
+- &iPertN, &dPertKp, &dPertP0, sDesc);
++ &iPertN, &dPertKp, &dPertP0, &dPertScee, &dPertScnb, sDesc);
+ }
+ MESSAGE(
+ ("Advancing perturbed multiplicity to %d\n",
+@@ -3988,7 +3998,7 @@
+ SAVEATOMt *saPAtom;
+ SAVETORSIONt *stPTorsion;
+ SAVERESTRAINTt *srPRestraint;
+- double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0,
++ double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dScee, dScnb,
+ dC, dD, dTemp;
+ STRING sAtom1, sAtom2, sAtom3, sAtom4, sType1, sType2;
+ int iN, iAtoms, iMaxAtoms, iTemp, iAtom, iCalc14, iProper;
+@@ -4585,16 +4595,16 @@
+ iParmSetTotalImproperParms(uUnit->psParameters)));
+ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
+ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
+- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
+- MESSAGE(("Torsion %d %s-%s-%s-%s %d %lf %lf\n",
+- i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0));
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
++ MESSAGE(("Torsion %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
++ i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0, dScee, dScnb));
+ FortranWriteDouble(dKp);
+ }
+ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
+ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
+- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
+- MESSAGE(("Improper %d %s-%s-%s-%s %d %lf %lf\n",
+- i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0));
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
++ MESSAGE(("Improper %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
++ i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0, dScee, dScnb));
+ FortranWriteDouble(dKp);
+ }
+ /* Write the torsion RESTRAINT constants AND set the index */
+@@ -4612,13 +4622,13 @@
+ FortranFormat(5, DBLFORMAT);
+ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
+ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
+- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
+ dTemp = iN;
+ FortranWriteDouble(dTemp);
+ }
+ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
+ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
+- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
+ dTemp = iN;
+ FortranWriteDouble(dTemp);
+ }
+@@ -4637,12 +4647,12 @@
+ FortranFormat(5, DBLFORMAT);
+ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
+ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
+- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
+ FortranWriteDouble(dP0);
+ }
+ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
+ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
+- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
+ FortranWriteDouble(dP0);
+ }
+ /* Write the torsion RESTRAINT constants AND set the index */
+@@ -4650,6 +4660,60 @@
+ RESTRAINTLOOP(RESTRAINTTORSION, dN, i + 1);
+ FortranEndLine();
+
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added Printing SCEE/SCNB */
++
++
++ /* -17.5A- SCEE for torsions */
++ FortranDebug("-17.5A-");
++
++ MESSAGE(("Writing SCEE scale factor for torsion interaction\n"));
++ FortranFormat(1, "%-80s");
++ FortranWriteString("%FLAG SCEE_SCALE_FACTOR");
++ FortranWriteString("%FORMAT(5E16.8)");
++ FortranFormat(5, DBLFORMAT);
++ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
++ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
++ FortranWriteDouble(dScee);
++ }
++ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
++ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
++ FortranWriteDouble(dScee);
++ }
++ /* Write the torsion RESTRAINT constants AND set the index */
++ /* for where the interaction can find its constants */
++ RESTRAINTLOOP(RESTRAINTTORSION, dX0, i + 1);
++ FortranEndLine();
++
++ /* -17.5B- SCNB for torsions */
++ FortranDebug("-17.5B-");
++
++ MESSAGE(("Writing SCNB scale factor for torsion interaction\n"));
++ FortranFormat(1, "%-80s");
++ FortranWriteString("%FLAG SCNB_SCALE_FACTOR");
++ FortranWriteString("%FORMAT(5E16.8)");
++ FortranFormat(5, DBLFORMAT);
++ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
++ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
++ FortranWriteDouble(dScnb);
++ }
++ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
++ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
++ FortranWriteDouble(dScnb);
++ }
++ /* Write the torsion RESTRAINT constants AND set the index */
++ /* for where the interaction can find its constants */
++ RESTRAINTLOOP(RESTRAINTTORSION, dX0, i + 1);
++ FortranEndLine();
++
++ /* Arunima Singh */
++ /* End of adding SCEE/SCNB */
++
+ /* -18- Not used, reserved for future use, uses NATYP */
+ /* Corresponds to the AMBER SOLTY array */
+ FortranDebug("-18-");
+@@ -6009,7 +6073,7 @@
+ SAVEATOMt *saPAtom;
+ SAVETORSIONt *stPTorsion;
+ SAVERESTRAINTt *srPRestraint;
+-double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dC, dD, dTemp;
++double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dScee, dScnb, dC, dD, dTemp;
+ STRING sAtom1, sAtom2, sAtom3, sAtom4, sType1, sType2;
+ int iN, iAtoms, iMaxAtoms, iTemp, iAtom, iCalc14, iProper;
+ int iElement, iHybridization, iStart, iFirstSolvent;
+@@ -6547,19 +6611,19 @@
+ for ( i=0; i<iParmSetTotalTorsionParms(uUnit->psParameters); i++ ) {
+ ParmSetTorsion( uUnit->psParameters, i, sAtom1, sAtom2,
+ sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
+- MESSAGE(( "Torsion %d %s-%s-%s-%s %d %lf %lf\n",
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
++ MESSAGE(( "Torsion %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
+ i, sAtom1, sAtom2, sAtom3, sAtom4,
+- iN, dKp, dP0 ));
++ iN, dKp, dP0, dScee, dScnb ));
+ FortranWriteDouble( dKp );
+ }
+ for ( i=0; i<iParmSetTotalImproperParms(uUnit->psParameters); i++ ) {
+ ParmSetImproper( uUnit->psParameters, i, sAtom1, sAtom2,
+ sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
+- MESSAGE(( "Improper %d %s-%s-%s-%s %d %lf %lf\n",
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
++ MESSAGE(( "Improper %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
+ i, sAtom1, sAtom2, sAtom3, sAtom4,
+- iN, dKp, dP0 ));
++ iN, dKp, dP0, dScee, dScnb ));
+ FortranWriteDouble( dKp );
+ }
+ /* Write the torsion RESTRAINT constants AND set the index */
+@@ -6575,14 +6639,14 @@
+ for ( i=0; i<iParmSetTotalTorsionParms(uUnit->psParameters); i++ ) {
+ ParmSetTorsion( uUnit->psParameters, i, sAtom1, sAtom2,
+ sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+ dTemp = iN;
+ FortranWriteDouble( dTemp );
+ }
+ for ( i=0; i<iParmSetTotalImproperParms(uUnit->psParameters); i++ ) {
+ ParmSetImproper( uUnit->psParameters, i, sAtom1, sAtom2,
+ sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+ dTemp = iN;
+ FortranWriteDouble( dTemp );
+ }
+@@ -6599,13 +6663,13 @@
+ for ( i=0; i<iParmSetTotalTorsionParms(uUnit->psParameters); i++ ) {
+ ParmSetTorsion( uUnit->psParameters, i, sAtom1, sAtom2,
+ sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+ FortranWriteDouble( dP0 );
+ }
+ for ( i=0; i<iParmSetTotalImproperParms(uUnit->psParameters); i++ ) {
+ ParmSetImproper( uUnit->psParameters, i, sAtom1, sAtom2,
+ sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+ FortranWriteDouble( dP0 );
+ }
+ /* Write the torsion RESTRAINT constants AND set the index */
+diff -urN amber11//AmberTools/src/leap/src/leap/xaImproperParmTable.c amber11.new//AmberTools/src/leap/src/leap/xaImproperParmTable.c
+--- amber11//AmberTools/src/leap/src/leap/xaImproperParmTable.c 2011-03-10 20:12:06.000000000 +0200
++++ amber11.new//AmberTools/src/leap/src/leap/xaImproperParmTable.c 2011-05-19 18:35:57.000000000 +0300
+@@ -37,7 +37,9 @@
+ * Handle editing of parameters in a table format.
+ */
+
+-
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
+
+ #include <X11/IntrinsicP.h>
+ #include <X11/StringDefs.h>
+@@ -59,7 +61,10 @@
+ #define NC 4
+ #define KPC 5
+ #define P0C 6
+-#define DESCC 7
++#define SCEE 7 /*Arunima Singh*/
++#define SCNB 8 /*Arunima Singh*/
++#define DESCC 9 /*Arunima Singh: Changed value from 7 to 9 to include scee and scnb*/
++
+
+ #define MAXTYPELEN 5
+ #define DESCLEN 32
+@@ -129,13 +134,15 @@
+ int iN;
+ double dKp;
+ double dP0;
++double dScee;
++double dScnb;
+ char sDesc[DESCLEN];
+
+
+ iptPCur = (IMPROPERPARMTABLEt*)PXATClientPointer(tTable);
+
+ ParmSetImproper( iptPCur->psParmSet, iRow,
+- sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, sDesc );
++ sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+
+ switch ( iCol ) {
+ case TYPE1C:
+@@ -171,6 +178,14 @@
+ }
+ return(SsBuffer);
+ break;
++ case SCEE:
++ sprintf( SsBuffer, DBLFMT, dScee );
++ return(SsBuffer);
++ break;
++ case SCNB:
++ sprintf( SsBuffer, DBLFMT, dScnb );
++ return(SsBuffer);
++ break;
+ case DESCC:
+ strcpy( SsBuffer, sDesc );
+ return( SsBuffer );
+@@ -259,6 +274,16 @@
+ if ( !strcmp( cPData, "0" )) break;
+ return("P0 field must be '0' or 'Pi'.");
+ break;
++ case SCEE:
++ if ( !bStringToDouble( cPData, &dValue ) ) {
++ return("Invalid character in Scee field.");
++ }
++ break;
++ case SCNB:
++ if ( !bStringToDouble( cPData, &dValue ) ) {
++ return("Invalid character in Scnb field.");
++ }
++ break;
+ case DESCC:
+ if ( strlen(cPData)>DESCLEN-1 ) {
+ sprintf( SsError, "%s %d characters.",
+@@ -384,11 +409,33 @@
+ return("P0 field must be '0' or 'Pi'.");
+ }
+
++ /*
++ * Scee
++ */
++ *iPErrCol = 7;
++ cPData = col[7];
++ if ( !bStringToDouble( cPData, &dValue ) ) {
++ return("Invalid character in Scee field.");
++ } else if ( dValue < 0.0 ) {
++ return("Scee cannot be negative.");
++ }
++
++ /*
++ * Scnb
++ */
++ *iPErrCol = 8;
++ cPData = col[8];
++ if ( !bStringToInt( cPData, &iValue ) ) {
++ return("Invalid character in Scnb field.");
++ } else if ( dValue < 0.0 ) {
++ return("Scnb cannot be negative.");
++ }
++
+ /*
+ * Desc
+ */
+- *iPErrCol = 7;
+- cPData = col[7];
++ *iPErrCol = 9;
++ cPData = col[9];
+ if ( strlen(cPData) > DESCLEN-1 ) {
+ sprintf( SsError, "%s %d characters.",
+ "Parameter Description cannot be longer than",
+@@ -413,7 +460,8 @@
+ int iN;
+ double dKp;
+ double dP0;
+-
++double dScee;
++double dScnb;
+
+ iptPCur = (IMPROPERPARMTABLEt*) PXATClientPointer(tTable);
+ psParmSet = iptPCur->psParmSet;
+@@ -444,7 +492,7 @@
+ col[0], col[1], col[2], col[3] ));
+ if ( iRow != iParmSetAddImproperTerm( psParmSet,
+ col[0], col[1], col[2], col[3],
+- iN, dKp, dP0, col[7] ) )
++ iN, dKp, dP0, dScee, dScnb, col[9] ) )
+ DFATAL(( "programming err 2 in zXAIPTAcceptRow\n" ));
+ } else {
+ /*
+@@ -452,7 +500,7 @@
+ */
+ ParmSetUpdateImproper( psParmSet, iRow,
+ col[0], col[1], col[2], col[3],
+- &iN, &dKp, &dP0, col[7] );
++ &iN, &dKp, &dP0, &dScee, &dScnb, col[9] );
+ }
+ }
+
+diff -urN amber11//AmberTools/src/leap/src/leap/xaTorsionParmTable.c amber11.new//AmberTools/src/leap/src/leap/xaTorsionParmTable.c
+--- amber11//AmberTools/src/leap/src/leap/xaTorsionParmTable.c 2011-03-10 20:12:06.000000000 +0200
++++ amber11.new//AmberTools/src/leap/src/leap/xaTorsionParmTable.c 2011-05-19 18:35:57.000000000 +0300
+@@ -37,6 +37,9 @@
+ * Handle editing of parameters in a table format.
+ */
+
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
+
+ #include <X11/IntrinsicP.h>
+ #include <X11/StringDefs.h>
+@@ -58,7 +61,9 @@
+ #define NC 4
+ #define KPC 5
+ #define P0C 6
+-#define DESCC 7
++#define SCEE 7 /*Arunima Singh*/
++#define SCNB 8 /*Arunima Singh*/
++#define DESCC 9 /*Arunima Singh: Changed value from 7 to 9 to include scee and scnb*/
+
+ #define MAXTYPELEN 5
+ #define DESCLEN 32
+@@ -112,7 +117,7 @@
+ * zcPXATPTGetElement
+ *
+ * Get the values for the elements of the TABLE from the
+- * particular Torsion Parmeter Entry.
++ * particular Torsion Parameter Entry.
+ */
+ static char *
+ zcPXATPTGetElement( TABLE tTable, int iCol, int iRow )
+@@ -126,13 +131,15 @@
+ int iN;
+ double dKp;
+ double dP0;
++double dScee;
++double dScnb;
+ char sDesc[DESCLEN];
+
+
+ tptPCur = (TORSIONPARMTABLEt*)PXATClientPointer(tTable);
+
+ ParmSetTorsion( tptPCur->psParmSet, iRow,
+- sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, sDesc );
++ sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+
+ switch ( iCol ) {
+ case TYPE1C:
+@@ -168,6 +175,14 @@
+ }
+ return(SsBuffer);
+ break;
++ case SCEE:
++ sprintf( SsBuffer, DBLFMT, dScee );
++ return(SsBuffer);
++ break;
++ case SCNB:
++ sprintf( SsBuffer, DBLFMT, dScnb );
++ return(SsBuffer);
++ break;
+ case DESCC:
+ strcpy( SsBuffer, sDesc );
+ return( SsBuffer );
+@@ -256,6 +271,16 @@
+ if ( !strcmp( cPData, "0" )) break;
+ return("P0 field must be '0' or 'Pi'.");
+ break;
++ case SCEE:
++ if ( !bStringToDouble( cPData, &dValue ) ) {
++ return("Invalid character in Scee field.");
++ }
++ break;
++ case SCNB:
++ if ( !bStringToDouble( cPData, &dValue ) ) {
++ return("Invalid character in Scnb field.");
++ }
++ break;
+ case DESCC:
+ if ( strlen(cPData)>DESCLEN-1 ) {
+ sprintf( SsError, "%s %d characters.",
+@@ -379,11 +404,33 @@
+ return("P0 field must be '0' or 'Pi'.");
+ }
+
++ /*
++ * Scee
++ */
++ *iPErrCol = 7;
++ cPData = col[7];
++ if ( !bStringToDouble( cPData, &dValue ) ) {
++ return("Invalid character in Scee field.");
++ } else if ( dValue < 0.0 ) {
++ return("Scee cannot be negative.");
++ }
++
++ /*
++ * Scnb
++ */
++ *iPErrCol = 8;
++ cPData = col[8];
++ if ( !bStringToInt( cPData, &iValue ) ) {
++ return("Invalid character in Scnb field.");
++ } else if ( dValue < 0.0 ) {
++ return("Scnb cannot be negative.");
++ }
++
+ /*
+ * Desc
+ */
+- *iPErrCol = 7;
+- cPData = col[7];
++ *iPErrCol = 9;
++ cPData = col[9];
+ if ( strlen(cPData) > DESCLEN-1 ) {
+ sprintf( SsError, "%s %d characters.",
+ "Parameter Description cannot be longer than",
+@@ -408,6 +455,8 @@
+ int iN;
+ double dKp;
+ double dP0;
++double dScee;
++double dScnb;
+
+ tptPCur = (TORSIONPARMTABLEt*) PXATClientPointer(tTable);
+ psParmSet = tptPCur->psParmSet;
+@@ -438,15 +487,15 @@
+ col[0], col[1], col[2], col[3] ));
+ if ( iRow != iParmSetAddProperTerm( psParmSet,
+ col[0], col[1], col[2], col[3],
+- iN, dKp, dP0, col[7] ) )
+- DFATAL(( "programming err 2 in zXATPTAcceptRow\n" ));
++ iN, dKp, dP0, dScee, dScnb, col[9] ) ) /*Arunima singh*/
++ DFATAL(( "programming err 2 in zXATPTAcceptRow\n" ));
+ } else {
+ /*
+ * update row in place
+ */
+ ParmSetUpdateTorsion( psParmSet, iRow,
+ col[0], col[1], col[2], col[3],
+- &iN, &dKp, &dP0, col[7] );
++ &iN, &dKp, &dP0, &dScee, &dScnb, col[9] ); /*Arunima singh*/
+ }
+ }
+
+diff -urN amber11//AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py amber11.new//AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py
+--- amber11//AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py 2011-04-14 15:30:17.000000000 +0300
++++ amber11.new//AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py 2011-05-19 18:35:57.000000000 +0300
+@@ -371,7 +371,7 @@
+ coords_received = _scaledistance(coords_tosend, chdist)
+
+ for i in range(3):
+- new_coords.append(coords_received[x+3])
++ new_coords.append(coords_received[i+3])
+
+ coords_tosend = []
+ coords_received = []
+diff -urN amber11//AmberTools/src/mmpbsa_py/setup.sh amber11.new//AmberTools/src/mmpbsa_py/setup.sh
+--- amber11//AmberTools/src/mmpbsa_py/setup.sh 2011-04-14 15:30:18.000000000 +0300
++++ amber11.new//AmberTools/src/mmpbsa_py/setup.sh 2011-05-19 18:35:57.000000000 +0300
+@@ -10,7 +10,8 @@
+
+ # require AMBERHOME
+ if [ -z $AMBERHOME ]; then
+- export AMBERHOME=`dirname \`dirname $PWD\``
++ AMBERHOME=`dirname \`dirname $PWD\``
++ export AMBERHOME=`dirname $AMBERHOME`
+ echo "AMBERHOME is not set. Assuming it is $AMBERHOME"
+ fi
+
+diff -urN amber11//AmberTools/test/nab/Run.prm amber11.new//AmberTools/test/nab/Run.prm
+--- amber11//AmberTools/test/nab/Run.prm 2011-04-14 15:30:23.000000000 +0300
++++ amber11.new//AmberTools/test/nab/Run.prm 2011-05-19 18:35:57.000000000 +0300
+@@ -17,7 +17,7 @@
+
+ echo "checking the prmtop file:"
+ echo ""
+-tail -3209 tprmtop > tprmtop1
++tail -3228 tprmtop > tprmtop1
+ ../dacdif tprmtop.check tprmtop1
+
+ rm -f prm prm.c tleap.out leap.log tprmcrd prm.out1 tprmtop
+diff -urN amber11//AmberTools/test/nab/tprmtop.check amber11.new//AmberTools/test/nab/tprmtop.check
+--- amber11//AmberTools/test/nab/tprmtop.check 2011-03-10 20:12:18.000000000 +0200
++++ amber11.new//AmberTools/test/nab/tprmtop.check 2011-05-19 18:35:57.000000000 +0300
+@@ -1,3 +1,4 @@
++%VERSION VERSION_STAMP = V0001.000 DATE = 05/09/11 12:59:19
+ %FLAG TITLE
+ %FORMAT(20a4)
+
+@@ -541,6 +542,24 @@
+ 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00
+ 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00
+ 3.14159400E+00 3.14159400E+00 3.14159400E+00
++%FLAG SCEE_SCALE_FACTOR
++%FORMAT(5E16.8)
++ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
++ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
++ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
++ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
++ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
++ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
++ 0.00000000E+00 0.00000000E+00 0.00000000E+00
++%FLAG SCNB_SCALE_FACTOR
++%FORMAT(5E16.8)
++ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
++ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
++ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
++ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
++ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
++ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
++ 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ %FLAG SOLTY
+ %FORMAT(5E16.8)
+ 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-gentoo.patch b/sci-chemistry/ambertools/files/ambertools-1.5-gentoo.patch
new file mode 100644
index 0000000..0e41d26
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-1.5-gentoo.patch
@@ -0,0 +1,386 @@
+diff -urN amber11.orig/AmberTools/src/configure amber11/AmberTools/src/configure
+--- amber11.orig/AmberTools/src/configure 2011-04-14 15:30:55.000000000 +0300
++++ amber11/AmberTools/src/configure 2011-06-04 12:26:45.000000000 +0300
+@@ -293,7 +293,8 @@
+ echo "Your AMBERHOME environment variable is not set! It should be set to"
+ echo "$ambhome NOT doing so may cause errors when you compile. Continue"
+ echo "anyway? (yes or no)"
+- read answer
++ #read answer
++ answer='yes'
+ if [ "$answer" = 'yes' -o "$answer" = 'Yes' -o "$answer" = 'YES' -o "$answer" = 'y' -o "$answer" = 'Y' ]; then
+ echo ""
+ echo "Continuing anyway... Setting AMBERHOME to $ambhome temporarily"
+@@ -356,11 +357,11 @@
+ mpi_flag=
+ lex=flex
+ flibs_mkl=
+-lapack=install
+-blas=install
++lapack=skip
++blas=skip
+ f2c=skip
+-ucpp=install
+-cpp="\$(BINDIR)/ucpp -l"
++ucpp=skip
++cpp="\$(EPREFIX)/usr/bin/ucpp -l"
+
+ #-----------------------------------
+ # skip building of sleap?
+@@ -1655,24 +1656,24 @@
+ #--------------------------------------------------------------------------
+ # Configure fftw-3.2.2:
+ #--------------------------------------------------------------------------
+- if [ "$mdgx" = 'yes' ]; then
+- mdgxflag="--prefix=$AMBERHOME --disable-fortran"
+- echo
+- echo "Configuring fftw-3.2.2 (may be time-consuming)..."
+- echo
+- cd fftw-3.2.2 && \
+- env CC="$cc" CFLAGS="$cflags $cnooptflags" \
+- ./configure $mdgxflag > ../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."
+- exit 1
+- else
+- echo " fftw-3.2.2 configure succeeded."
+- fi
+- cd ..
+- fi
++ #if [ "$mdgx" = 'yes' ]; then
++ # mdgxflag="--prefix=$AMBERHOME --disable-fortran"
++ # echo
++ # echo "Configuring fftw-3.2.2 (may be time-consuming)..."
++ # echo
++ # cd fftw-3.2.2 && \
++ # env CC="$cc" CFLAGS="$cflags $cnooptflags" \
++ # ./configure $mdgxflag > ../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."
++ # exit 1
++ # else
++ # echo " fftw-3.2.2 configure succeeded."
++ # fi
++ # cd ..
++ #fi
+
+ #--------------------------------------------------------------------------
+ # Configure python
+@@ -1792,27 +1793,27 @@
+ echo
+ echo "Configuring fftw-2.1.5 (may be time-consuming)..."
+ echo
+- cd fftw-2.1.5
+- if [ "$mpi" = 'yes' ]; then
+- ./configure $rismflag --enable-mpi \
+- CC="$cc" CFLAGS="$cflags $coptflags" \
+- F77="$fc" FFLAGS="$fflags $foptflags" \
+- FLIBS="$flibs_arch" > ../fftw2_config.log 2>&1
+- else
+- ./configure $rismflag \
+- CC="$cc" CFLAGS="$cflags $coptflags" \
+- F77="$fc" FFLAGS="$fflags $foptflags" \
+- FLIBS="$flibs_arch" > ../fftw2_config.log 2>&1
+- fi
+- ncerror=$?
+- if [ $ncerror -gt 0 ]; then
+- echo " Error: fftw configure returned $ncerror"
+- echo " fftw configure failed! Check the fftw2_config.log file."
+- exit 1
+- else
+- echo " fftw-2.1.5 configure succeeded."
+- fi
+- cd ..
++ # cd fftw-2.1.5
++ # if [ "$mpi" = 'yes' ]; then
++ # ./configure $rismflag --enable-mpi \
++ # CC="$cc" CFLAGS="$cflags $coptflags" \
++ # F77="$fc" FFLAGS="$fflags $foptflags" \
++ # FLIBS="$flibs_arch" > ../fftw2_config.log 2>&1
++ # else
++ # ./configure $rismflag \
++ # CC="$cc" CFLAGS="$cflags $coptflags" \
++ # F77="$fc" FFLAGS="$fflags $foptflags" \
++ # FLIBS="$flibs_arch" > ../fftw2_config.log 2>&1
++ # fi
++ # ncerror=$?
++ # if [ $ncerror -gt 0 ]; then
++ # echo " Error: fftw configure returned $ncerror"
++ # echo " fftw configure failed! Check the fftw2_config.log file."
++ # exit 1
++ # else
++ # echo " fftw-2.1.5 configure succeeded."
++ # fi
++ # cd ..
+ flibs_fftw2="-ldrfftw -ldfftw"
+ if [ "$mpi" = 'yes' ]; then
+ flibs_fftw2="-ldrfftw_mpi -ldfftw_mpi $flibs_fftw2"
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Makefile_at amber11/AmberTools/src/cpptraj/src/Makefile_at
+--- amber11.orig/AmberTools/src/cpptraj/src/Makefile_at 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Makefile_at 2011-05-20 00:45:48.000000000 +0300
+@@ -65,8 +65,8 @@
+ -/bin/rm FindDepend.o
+ -/bin/rm findDepend
+
+-cpptraj$(SFX): $(NETCDFLIB) $(OBJECTS)
+- $(CXX) $(LDFLAGS) -o cpptraj$(SFX) $(OBJECTS) $(NETCDFLIB) $(ZLIB) $(BZLIB)
++cpptraj$(SFX): $(OBJECTS)
++ $(CXX) $(LDFLAGS) -o cpptraj$(SFX) $(OBJECTS) $(NETCDFLIB) $(ZLIB) $(BZLIB) -lgomp
+
+ $(NETCDFLIB): ../../netcdf_config.log
+ cd ../../netcdf/src && $(MAKE) install
+diff -urN amber11.orig/AmberTools/src/Makefile amber11/AmberTools/src/Makefile
+--- amber11.orig/AmberTools/src/Makefile 2011-04-14 15:30:12.000000000 +0300
++++ amber11/AmberTools/src/Makefile 2011-05-19 23:36:36.000000000 +0300
+@@ -8,15 +8,15 @@
+
+ install: $(INSTALLTYPE)
+
+-serial: configured_serial $(NETCDFLIB) $(PYINSTALL) $(MTKPP)
++serial: configured_serial
+ @echo "Starting installation of ${AMBERTOOLS} serial at `date`".
+ # utility routines and libraries:
+- (cd ucpp-1.3 && $(MAKE) $(UCPP) )
++# (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 arpack && $(MAKE) install );
++# (cd lapack && $(MAKE) $(LAPACK) )
++# (cd blas && $(MAKE) $(BLAS) )
++# (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) )
+ (cd etc && $(MAKE) install )
+ (cd chamber && $(MAKE) install )
+ (cd pbsa && $(MAKE) install )
+@@ -32,7 +32,7 @@
+ (cd cpptraj && $(MAKE) $(CPPTRAJ))
+
+ # miscellaneous:
+- (cd reduce && $(MAKE) install )
++# (cd reduce && $(MAKE) install )
+
+ # leap and gleap:
+ (cd leap && $(MAKE) install )
+@@ -42,7 +42,7 @@
+ (cd rism && $(MAKE) install )
+
+ # nab:
+- (cd cifparse && $(MAKE) install )
++# (cd cifparse && $(MAKE) install )
+ (cd sff && $(MAKE) install )
+ (cd pbsa && $(MAKE) libinstall )
+ (cd nab && $(MAKE) install )
+@@ -63,19 +63,19 @@
+ @echo "Installation of ${AMBERTOOLS} serial is complete at `date`."
+ @echo ""
+
+-nabonly: $(NETCDFLIB)
++nabonly:
+ # utility routines and libraries:
+- (cd ucpp-1.3 && $(MAKE) $(UCPP) )
++# (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 arpack && $(MAKE) install );
++# (cd lapack && $(MAKE) $(LAPACK) )
++# (cd blas && $(MAKE) $(BLAS) )
++# (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) )
+ (cd pbsa && $(MAKE) libinstall )
+ (cd rism && $(MAKE) install )
+
+ # nab:
+- (cd cifparse && $(MAKE) install )
++# (cd cifparse && $(MAKE) install )
+ (cd sff && $(MAKE) install )
+ (cd nab && $(MAKE) install )
+ (cd nss && $(MAKE) install )
+diff -urN amber11.orig/AmberTools/src/mdgx/Makefile amber11/AmberTools/src/mdgx/Makefile
+--- amber11.orig/AmberTools/src/mdgx/Makefile 2011-04-14 15:30:17.000000000 +0300
++++ amber11/AmberTools/src/mdgx/Makefile 2011-05-20 12:44:38.000000000 +0300
+@@ -109,7 +109,7 @@
+
+ FFTW_LIBS = $(LIBDIR)/libfftw3.a
+
+-mdgx$(SFX) : $(MDGX_OBJS) $(FFTW_LIBS) $(NETCDFLIB)
++mdgx$(SFX) : $(MDGX_OBJS)
+ $(CC) $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \
+ -o $@ $(MDGX_OBJS) $(FFTW_LIBS) $(NETCDFLIB) $(LM)
+
+diff -urN amber11.orig/AmberTools/src/pbsa/Makefile amber11/AmberTools/src/pbsa/Makefile
+--- amber11.orig/AmberTools/src/pbsa/Makefile 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/pbsa/Makefile 2011-05-19 22:27:40.000000000 +0300
+@@ -148,7 +148,7 @@
+ )
+
+ #---------------------------------------------------------------------------
+-pbsa$(SFX): $(OBJ) syslib netlib c9x-complex configured_serial
++pbsa$(SFX): $(OBJ) syslib configured_serial
+ $(FC) $(FFLAGS) $(AMBERFFLAGS) -o pbsa$(SFX) $(OBJ) \
+ ../lib/nxtsec.o ../lib/random.o \
+ $(FLIBSF) $(LDFLAGS) $(AMBERLDFLAGS)
+@@ -158,7 +158,7 @@
+ ../lib/nxtsec.o ../lib/random.o \
+ $(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) $(FFLAGS) $(AMBERFFLAGS) -o simplepbsa$(SFX) simplepbsa.o gopt.o \
+ libpbsa.a $(LIBDIR)/libsff.a ../lib/nxtsec.o $(FLIBSF) \
+ $(LDFLAGS) $(AMBERLDFLAGS)
+@@ -194,15 +194,15 @@
+ sfflib:
+ cd ../sff && $(MAKE) install
+
+-netlib:
+- cd ../lapack && $(MAKE) $(LAPACK)
+- cd ../blas && $(MAKE) $(BLAS)
+- cd ../arpack && $(MAKE) install
+-
+-c9x-complex:
+- @if test $(C9XCOMPLEX) != "skip"; then \
+- cd ../c9x-complex && $(MAKE) libmc.a; \
+- fi
++#netlib:
++# cd ../lapack && $(MAKE) $(LAPACK)
++# cd ../blas && $(MAKE) $(BLAS)
++# cd ../arpack && $(MAKE) install
++
++#c9x-complex:
++# @if test $(C9XCOMPLEX) != "skip"; then \
++# cd ../c9x-complex && $(MAKE) libmc.a; \
++# fi
+
+ %.LIBPBSA.o: %.f
+ $(FPP) $(FPPFLAGS) $(AMBERFPPFLAGS) -DLIBPBSA $< > _$<
+diff -urN amber11.orig/AmberTools/src/ptraj/Makefile amber11/AmberTools/src/ptraj/Makefile
+--- amber11.orig/AmberTools/src/ptraj/Makefile 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/ptraj/Makefile 2011-05-19 23:38:36.000000000 +0300
+@@ -57,25 +57,25 @@
+ pubfft.o: pubfft.f
+ $(FC) -c $(FREEFORMAT_FLAG) $(FOPTFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $<
+
+-rdparm$(SFX): libs $(NETCDFLIB) $(OBJECTS)
++rdparm$(SFX): libs $(OBJECTS)
+ $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \
+ -o rdparm$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM)
+
+-ptraj$(SFX): libs netlib $(NETCDFLIB) $(OBJECTS)
++ptraj$(SFX): libs $(OBJECTS)
+ $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \
+ -o ptraj$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM)
+
+-ptraj.MPI$(SFX): libs netlib $(PNETCDFLIB) $(OBJECTS)
++ptraj.MPI$(SFX): libs $(PNETCDFLIB) $(OBJECTS)
+ $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \
+ -o ptraj.MPI$(SFX) $(OBJECTS) $(LIBS) $(PNETCDFLIB) $(LM)
+
+ libs:
+ cd pdb && $(MAKE)
+- cd ../arpack && $(MAKE)
++# cd ../arpack && $(MAKE)
+
+-netlib:
+- cd ../lapack && $(MAKE) $(LAPACK)
+- cd ../blas && $(MAKE) $(BLAS)
++#netlib:
++# cd ../lapack && $(MAKE) $(LAPACK)
++# cd ../blas && $(MAKE) $(BLAS)
+
+ clean:
+ cd pdb && $(MAKE) clean
+diff -urN amber11.orig/AmberTools/src/ptraj/netcdf_ptraj.h amber11/AmberTools/src/ptraj/netcdf_ptraj.h
+--- amber11.orig/AmberTools/src/ptraj/netcdf_ptraj.h 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/ptraj/netcdf_ptraj.h 2011-05-19 22:30:43.000000000 +0300
+@@ -4,7 +4,7 @@
+ # include "../../include/pnetcdf.h"
+ # define nc_strerror ncmpi_strerror
+ # else
+-# include "../../include/netcdf.h"
++# include <netcdf.h>
+ # endif
+ #endif
+
+diff -urN amber11.orig/AmberTools/src/ptraj/ptraj.h amber11/AmberTools/src/ptraj/ptraj.h
+--- amber11.orig/AmberTools/src/ptraj/ptraj.h 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/ptraj/ptraj.h 2011-06-04 13:25:01.000000000 +0300
+@@ -94,7 +94,7 @@
+ #define nc_strerror ncmpi_strerror
+ #include "../../include/pnetcdf.h"
+ #else
+-#include "../../include/netcdf.h"
++#include <netcdf.h>
+ #endif
+ #endif
+
+diff -urN amber11.orig/AmberTools/src/rism/Makefile amber11/AmberTools/src/rism/Makefile
+--- amber11.orig/AmberTools/src/rism/Makefile 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/rism/Makefile 2011-05-20 01:07:26.000000000 +0300
+@@ -49,7 +49,7 @@
+ mdiis_orig_c.o mdiis_blas_c.o mdiis_blas2_c.o mdiis_c.o \
+ fce_c.o erfcfun.o safemem.o blend.o timer_c.o
+
+-librism: $(LIBOBJ) $(FLIBS_FFTW2)
++librism: $(LIBOBJ)
+ $(AR) $(LIBDIR)/$@.a $(LIBOBJ)
+ $(RANLIB) $(LIBDIR)/$@.a
+
+diff -urN amber11.orig/AmberTools/src/sff/AmberNetcdf.c amber11/AmberTools/src/sff/AmberNetcdf.c
+--- amber11.orig/AmberTools/src/sff/AmberNetcdf.c 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/sff/AmberNetcdf.c 2011-05-20 10:49:06.000000000 +0300
+@@ -27,7 +27,7 @@
+ #endif
+
+ #ifdef BINTRAJ
+-#include "../../include/netcdf.h"
++#include <netcdf.h>
+
+ #define NCFRAME "frame"
+ #define NCSPATIAL "spatial"
+diff -urN amber11.orig/AmberTools/src/sff/Makefile amber11/AmberTools/src/sff/Makefile
+--- amber11.orig/AmberTools/src/sff/Makefile 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/sff/Makefile 2011-05-20 09:53:27.000000000 +0300
+@@ -1,7 +1,7 @@
+ include ../config.h
+
+ .c.o:
+- $(CC) -c -Dflex $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(RISMSFF) -o $@ $<
++ $(CC) -c -Dflex $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(RISMSFF) $(NETCDFLIB) -o $@ $<
+
+ OBJS = binpos.o conjgrad.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 \
+diff -urN amber11.orig/AmberTools/src/sqm/Makefile amber11/AmberTools/src/sqm/Makefile
+--- amber11.orig/AmberTools/src/sqm/Makefile 2011-04-14 15:30:20.000000000 +0300
++++ amber11/AmberTools/src/sqm/Makefile 2011-05-19 22:31:49.000000000 +0300
+@@ -77,7 +77,7 @@
+ install: sqm$(SFX)
+ mv sqm$(SFX) $(BINDIR)
+
+-sqm$(SFX): $(SQMOBJ) $(QMOBJ) netlib sys
++sqm$(SFX): $(SQMOBJ) $(QMOBJ) sys
+ $(FC) $(FFLAGS) $(AMBERFFLAGS) -o sqm$(SFX) $(SQMOBJ) $(QMOBJ) \
+ $(FLIBSF) ../lib/sys.a $(LDFLAGS) $(AMBERLDFLAGS)
+
+@@ -94,10 +94,10 @@
+ sys:
+ cd ../lib; $(MAKE) sys.a
+
+-netlib:
+- cd ../lapack; $(MAKE) $(LAPACK)
+- cd ../blas; $(MAKE) $(BLAS)
+- cd ../arpack && $(MAKE) install
++#netlib:
++# cd ../lapack; $(MAKE) $(LAPACK)
++# cd ../blas; $(MAKE) $(BLAS)
++# cd ../arpack && $(MAKE) install
+
+ clean:
+ /bin/rm -f *.o _*.f *.mod *.d sqm$(SFX)
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2011-06-25 17:21 Justin Lecher
0 siblings, 0 replies; 18+ messages in thread
From: Justin Lecher @ 2011-06-25 17:21 UTC (permalink / raw
To: gentoo-commits
commit: a45778629384b0ca72fcad0f6026f3bec4f4fbe6
Author: Justin Lecher <jlec <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 24 20:31:53 2011 +0000
Commit: Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Fri Jun 24 20:31:53 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=a4577862
Cleaned ebuild
(Portage version: 2.2.0_alpha41/git/Linux x86_64, signed Manifest commit with key 70EB7916)
---
sci-chemistry/ambertools/ChangeLog | 5 +
sci-chemistry/ambertools/ambertools-1.4.ebuild | 6 +-
sci-chemistry/ambertools/ambertools-1.5.ebuild | 6 +-
.../files/ambertools-1.4-bugfix_1-18.patch | 9025 --------------------
.../files/ambertools-1.5-bugfix_1-3.patch | 3831 ---------
5 files changed, 13 insertions(+), 12860 deletions(-)
diff --git a/sci-chemistry/ambertools/ChangeLog b/sci-chemistry/ambertools/ChangeLog
index 9d1fcad..d51fa1a 100644
--- a/sci-chemistry/ambertools/ChangeLog
+++ b/sci-chemistry/ambertools/ChangeLog
@@ -2,6 +2,11 @@
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+ 24 Jun 2011; Justin Lecher <jlec@gentoo.org> ambertools-1.4.ebuild,
+ -files/ambertools-1.4-bugfix_1-18.patch, ambertools-1.5.ebuild,
+ -files/ambertools-1.5-bugfix_1-3.patch:
+ Cleaned ebuild
+
23 Jun 2011; Justin Lecher <jlec@gentoo.org> ambertools-1.4.ebuild,
ambertools-1.5.ebuild:
Streamlined fortran-2 eclass usage
diff --git a/sci-chemistry/ambertools/ambertools-1.4.ebuild b/sci-chemistry/ambertools/ambertools-1.4.ebuild
index 8820dc6..5e75cdb 100644
--- a/sci-chemistry/ambertools/ambertools-1.4.ebuild
+++ b/sci-chemistry/ambertools/ambertools-1.4.ebuild
@@ -8,7 +8,9 @@ inherit eutils fortran-2 toolchain-funcs
DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
HOMEPAGE="http://ambermd.org/#AmberTools"
-SRC_URI="AmberTools-${PV}.tar.bz2"
+SRC_URI="
+ AmberTools-${PV}.tar.bz2
+ mirror://gentoo/${P}-bugfix_1-18.patch.xz"
LICENSE="GPL-2"
SLOT="0"
@@ -48,7 +50,7 @@ pkg_setup() {
src_prepare() {
epatch \
- "${FILESDIR}/${P}-bugfix_1-18.patch" \
+ "${WORKDIR}/${P}-bugfix_1-18.patch" \
"${FILESDIR}/${P}-gentoo.patch"
cd AmberTools/src
rm -r arpack blas lapack fftw-2.1.5 c9x-complex cifparse netcdf pnetcdf reduce ucpp-1.3 || die
diff --git a/sci-chemistry/ambertools/ambertools-1.5.ebuild b/sci-chemistry/ambertools/ambertools-1.5.ebuild
index 0788a8d..9ac9755 100644
--- a/sci-chemistry/ambertools/ambertools-1.5.ebuild
+++ b/sci-chemistry/ambertools/ambertools-1.5.ebuild
@@ -8,7 +8,9 @@ inherit eutils fortran-2 toolchain-funcs
DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
HOMEPAGE="http://ambermd.org/#AmberTools"
-SRC_URI="AmberTools-${PV}.tar.bz2"
+SRC_URI="
+ AmberTools-${PV}.tar.bz2
+ mirror://gentoo/${P}-bugfix_1-3.patch.xz"
LICENSE="GPL-2"
SLOT="0"
@@ -50,7 +52,7 @@ pkg_setup() {
src_prepare() {
epatch \
- "${FILESDIR}/${P}-bugfix_1-3.patch" \
+ "${WORKDIR}/${P}-bugfix_1-3.patch" \
"${FILESDIR}/${P}-gentoo.patch"
cd AmberTools/src
rm -r arpack blas lapack fftw-2.1.5 c9x-complex cifparse netcdf pnetcdf reduce ucpp-1.3 || die
diff --git a/sci-chemistry/ambertools/files/ambertools-1.4-bugfix_1-18.patch b/sci-chemistry/ambertools/files/ambertools-1.4-bugfix_1-18.patch
deleted file mode 100644
index 2bc899b..0000000
--- a/sci-chemistry/ambertools/files/ambertools-1.4-bugfix_1-18.patch
+++ /dev/null
@@ -1,9025 +0,0 @@
-diff -urN amber11.orig/AmberTools/src/gleap/leapsrc/plugins.cpp amber11/AmberTools/src/gleap/leapsrc/plugins.cpp
---- amber11.orig/AmberTools/src/gleap/leapsrc/plugins.cpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/leapsrc/plugins.cpp 2011-03-08 16:38:44.000000000 +0300
-@@ -37,7 +37,7 @@
-
- amber::help_command g_help_command;
- amber::add_command g_add_command2;
--amber::addions_command g_addions_command2;
-+amber::addions_command g_addions_command2( "addions" );
- amber::addmap_command g_addpdbatommap_command2( "addpdbatommap" );
- amber::addmap_command g_addpdbresmap_command2( "addpdbresmap" );
- amber::null_command g_addatomtypes_command2( "addatomtypes" );
-diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/ambfmt/parm.cpp amber11/AmberTools/src/gleap/mortsrc/ambfmt/parm.cpp
---- amber11.orig/AmberTools/src/gleap/mortsrc/ambfmt/parm.cpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/mortsrc/ambfmt/parm.cpp 2011-03-08 16:38:44.000000000 +0300
-@@ -110,7 +110,7 @@
- assert( tmp.size() == 3 );
- atmvec as(tmp);
-
-- angl_t an = angl_t::create( as[0], as[1], as[2] );
-+ angl_t an = angl_t::frcget( as[0], as[1], as[2] );
- set_les( an );
-
- atom_t pa1( *pff, as[0].get_i(TYPEID)-1 );
-@@ -277,6 +277,15 @@
- copy_dparm(pdihs[i], SCEE, di);
- copy_dparm(pdihs[i], SCNB, di);
- set_les( di );
-+
-+ /*
-+ std::cout << as[0].get_s(NAME) << "-";
-+ std::cout << as[1].get_s(NAME) << "-";
-+ std::cout << as[2].get_s(NAME) << "-";
-+ std::cout << as[3].get_s(NAME) << " SCEE=" << di.get_d(SCEE) << std::endl;
-+ */
-+
-+
- }
- }
- }
-@@ -434,6 +443,8 @@
- parm_gbsa( *ai, gbtype );
- }
-
-+ //std::cout << " atom parameter assigned." << std::endl;
-+
- bonditer_t bi = mol.bond_begin();
- bonditer_t be = mol.bond_end();
- for( ; bi != be; ++bi )
-@@ -441,6 +452,8 @@
- parm_bond( &ff, *bi );
- }
-
-+ //std::cout << " bond parameter assigned." << std::endl;
-+
- bool fw = fixed_water();
- ai = mol.atom_begin();
- ae = mol.atom_end();
-diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/ambfmt/prep.cpp amber11/AmberTools/src/gleap/mortsrc/ambfmt/prep.cpp
---- amber11.orig/AmberTools/src/gleap/mortsrc/ambfmt/prep.cpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/mortsrc/ambfmt/prep.cpp 2011-03-08 16:38:44.000000000 +0300
-@@ -39,7 +39,7 @@
- resd_t r = resd_t::create( m );
- r.set_s(NAME, name);
- r.set_s(TYPE, name.length()<3?name:name.substr(0,3));
--
-+ //std::cout << "Loading model " << name << std::endl;
- // CORR/CHANGE, if CHANGE then sort line according
- // the first column, no supported any more.
- string use_first_column;
-@@ -55,9 +55,13 @@
- is >> cutoff;
- is.ignore(MAX_LINE_WIDTH, '\n');
-
-+ vector<numvec> crdlst;
-+ vector<int> nbrmap;
-+
-+ // stacks
- vector<atom_t> atoms;
-- vector<numvec> crds;
- vector<int> nunfills;
-+ vector<int> idxstack;
-
- int head = 0;
- int tail = 0;
-@@ -71,7 +75,7 @@
- string name, type, chain;
- ls >> name >> type >> chain;
-
--
-+ //std::cout << " processing atom " << name << std::endl;
- string curt;
- vector<string> terms;
- while(ls >> curt)
-@@ -96,22 +100,31 @@
- double angl = atof( terms[4].c_str() );
- double tors = atof( terms[5].c_str() );
- pchg = (terms.size()==7) ? atof( terms[6].c_str() ) : 0.0;
-- int len = crds.size();
-- if(len==0)
-+ if( idxstack.size()==0 )
- {
- pos = makevec(0.0, 0.0, 0.0);
-- }
-- else if(len==1)
-- {
-- pos = zmatrix(crds[len-1], dist);
-- }
-- else if(len==2)
-- {
-- pos = zmatrix(crds[len-1], dist, crds[len-2], angl);
-+ crdlst.push_back( pos );
-+ nbrmap.push_back( -1 );
- }
- else
-- {
-- pos = zmatrix(crds[len-1], dist, crds[len-2], angl, crds[len-3], tors);
-+ {
-+ int nbr1 = idxstack.back();
-+ int nbr2 = nbrmap[nbr1];
-+ int nbr3 = (nbr2==-1) ? -1 : nbrmap[nbr2];
-+ if(nbr2==-1)
-+ {
-+ pos = zmatrix(crdlst[nbr1], dist);
-+ }
-+ else if(nbr3==-1)
-+ {
-+ pos = zmatrix(crdlst[nbr1], dist, crdlst[nbr2], angl);
-+ }
-+ else
-+ {
-+ pos = zmatrix(crdlst[nbr1], dist, crdlst[nbr2], angl, crdlst[nbr3], tors);
-+ }
-+ crdlst.push_back( pos );
-+ nbrmap.push_back( nbr1 );
- }
- }
-
-@@ -127,7 +140,7 @@
-
- if(atoms.size() > 0)
- {
-- assert( nunfills.size()==crds.size() );
-+ assert( nunfills.size()==idxstack.size() );
- bond_t::create(atom, atoms.back() ).set_i(ORDER, 1);
- nunfills.back() -= 1;
- }
-@@ -145,7 +158,7 @@
-
- if( nunfills.size()>0 && nunfills.back()==0 )
- {
-- crds.pop_back();
-+ idxstack.pop_back();
- atoms.pop_back();
- nunfills.pop_back();
- }
-@@ -153,7 +166,7 @@
- int nunfill = get_nunfill(chain);
- if(nunfill > 0)
- {
-- crds.push_back(pos);
-+ idxstack.push_back(crdlst.size()-1);
- if(type != "DU")
- atoms.push_back(atom);
- nunfills.push_back(nunfill);
-diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/capbox/addions.cpp amber11/AmberTools/src/gleap/mortsrc/capbox/addions.cpp
---- amber11.orig/AmberTools/src/gleap/mortsrc/capbox/addions.cpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/mortsrc/capbox/addions.cpp 2011-03-08 16:38:44.000000000 +0300
-@@ -83,11 +83,82 @@
-
- void addions( molecule_t& m, const molecule_t& ion, int num_ion, double shlext, double resolution )
- {
-+ vector<molecule_t> ionlst(num_ion, ion);
- mort_ionee ionee(m);
-- addions_core( ionee, ion, num_ion, shlext, resolution );
-+ addions_core( ionee, ionlst, shlext, resolution );
-+ m.cleanup();
- }
-
-- void addions_core( ionee_i& ionee, const molecule_t& ion, int num_ion, double shlext, double resolution )
-+ void addions( molecule_t& m, const molecule_t& ion1, int numion1, const molecule_t& ion2, int numion2, double shlext, double resolution )
-+ {
-+ vector<molecule_t> ionlst;
-+ int minnumion = std::min( numion1, numion2 );
-+ for( int i=0; i < minnumion; ++i )
-+ {
-+ ionlst.push_back( ion1 );
-+ ionlst.push_back( ion2 );
-+ }
-+
-+ int moreadd = std::max( numion1, numion2 ) - minnumion;
-+ if( moreadd > 0 )
-+ {
-+ const molecule_t* padd = (minnumion==numion1) ? &ion2 : &ion1;
-+ for( int i=0; i < moreadd; ++i )
-+ {
-+ ionlst.push_back( *padd );
-+ }
-+ }
-+
-+ mort_ionee ionee(m);
-+ addions_core( ionee, ionlst, shlext, resolution );
-+ m.cleanup();
-+ }
-+
-+ double get_ionvdwr( const molecule_t& ion )
-+ {
-+ double r = get_vdwr( ion.atom_begin()->get_s(TYPE) );
-+ if( ion.natom() > 1 )
-+ {
-+ std::cout << "Info: polyatomic ion, radius set to " << r*2.5 << " (2.5 times first atom)" << std::endl;
-+ r *= 2.5;
-+ }
-+ return r;
-+ }
-+
-+ double get_minvdwr( const vector<molecule_t>& ionlst )
-+ {
-+ double minr = 1000.0;
-+ int numion = ionlst.size();
-+ for( int i=0; i < numion; ++i )
-+ {
-+ double r = get_ionvdwr( ionlst[i] );
-+ minr = std::min( r, minr );
-+ }
-+
-+ if( numion > 5 )
-+ {
-+ double f = exp( log(numion+1.0)/3.0 );
-+ if( f > 1.0 ) minr *= f;
-+ }
-+
-+ return minr;
-+ }
-+
-+ double get_maxvdwr( const vector<molecule_t>& ionlst )
-+ {
-+ double maxr = 0.0;
-+ int numion = ionlst.size();
-+ for( int i=0; i < numion; ++i )
-+ {
-+ double r = get_ionvdwr( ionlst[i] );
-+ maxr = std::max( r, maxr );
-+ }
-+
-+ return maxr;
-+ }
-+
-+
-+ void addions_core( ionee_i& ionee, const vector<molecule_t>& ionlst, double shlext, double resolution )
- {
- int natom = ionee.natom();
- int nresd = ionee.nresd();
-@@ -98,8 +169,8 @@
-
- if( solute_natom != ionee.natom() )
- {
-- std::cout << "Info: solute natom, total natom: " << solute_natom << " " << natom << std::endl;
-- std::cout << " solute nresd, total nresd: " << solute_nresd << " " << nresd << std::endl;
-+ std::cout << "Info: Number of solute atoms: " << solute_natom << ", total number of atoms: " << natom << std::endl;
-+ std::cout << " Number of solute residues: " << solute_nresd << ", total number of residues: " << nresd << std::endl;
- }
-
- vector<double>& pcord = ionee.getcord();
-@@ -111,23 +182,12 @@
- minmaxpos( pcord, pmin, pmax, solute_natom );
-
- double max_radius = *std::max_element( pvdwr.begin(), pvdwr.end() );
-- double ion_radius = get_vdwr( ion.atom_begin()->get_s(TYPE) );
-- if( ion.natom() > 1 )
-- {
-- std::cout << "Info: polyatomic ion, radius set to " << ion_radius*2.5 << " (2.5 times first atom)" << std::endl;
-- ion_radius *= 2.5;
-- }
--
-- if( std::abs( charge(ion) ) < 0.1 )
-- {
-- throw std::runtime_error( "Error: the ion you chose is in fact netural, thus add ion won't work" );
-- }
-+ double ion_radius = get_maxvdwr( ionlst );
-
- double buffer = ion_radius + max_radius + shlext;
- std::cout << "Info: rmax, rion, shell: " << max_radius << " " << ion_radius << " " << shlext << std::endl;
--
-- std::cout << "Info: pmin: " << pmin[0] << " " << pmin[1] << " " << pmin[2] << std::endl;
-- std::cout << "Info: pmax: " << pmax[0] << " " << pmax[1] << " " << pmax[2] << std::endl;
-+ //std::cout << "Info: pmin: " << pmin[0] << " " << pmin[1] << " " << pmin[2] << std::endl;
-+ //std::cout << "Info: pmax: " << pmax[0] << " " << pmax[1] << " " << pmax[2] << std::endl;
-
-
- pmin -= makevec(buffer, buffer, buffer);
-@@ -151,9 +211,20 @@
- std::pair<double, numvec> max = make_pair(-1e20, numvec(3));
- tree.calculate( capbox::elepot_t(&pcord[0], &pchrg[0], solute_natom), min, max );
-
-- for( int i=0; i < num_ion; ++i )
-+ int numion = ionlst.size();
-+ for( int i=0; i < numion; ++i )
- {
-- numvec pos = charge(ion)>0 ? min.second : max.second;
-+ if( std::abs( charge(ionlst[i]) ) < 0.1 )
-+ {
-+ throw std::runtime_error( "Error: the ion you chose is in fact netural, thus add ion won't work" );
-+ }
-+
-+ std::cout << "min potential: " << min.first << " x,y,z: " << min.second[0] << " " << min.second[1] << " " << min.second[2] << std::endl;
-+ std::cout << "max potential: " << max.first << " x,y,z: " << max.second[0] << " " << max.second[1] << " " << max.second[2] << std::endl;
-+
-+
-+
-+ numvec pos = charge(ionlst[i])>0 ? min.second : max.second;
-
- if( nosolvent )
- {
-@@ -161,8 +232,8 @@
- std::cout << "Info: new ion will be placed at: ";
- std::cout << pos[0] << " " << pos[1] << " " << pos[2] << " " << std::endl;
-
-- numvec sft = pos - center(ion);
-- ionee.insert_resd( ion, sft, -1 );
-+ numvec sft = pos - center(ionlst[i]);
-+ ionee.insert_resd( ionlst[i], sft, -1 );
- }
- else
- {
-@@ -171,19 +242,19 @@
- {
- // solvent present, find the nearest solvent residue, use ion to replace it.
- // besides the ion must be before solvent, after the solute
-- numvec sft = pos - center(ion);
-- ionee.insert_resd( ion, sft, solute_nresd+i );
-+ numvec sft = pos - center(ionlst[i]);
-+ ionee.insert_resd( ionlst[i], sft, solute_nresd+i );
- ionee.remove_resd( rid );
- }
- else
- {
- // no bump atom: insert residue directly, no need to delete solvent residue
-- numvec sft = pos - center(ion);
-- ionee.insert_resd( ion, sft, solute_nresd+i );
-+ numvec sft = pos - center(ionlst[i]);
-+ ionee.insert_resd( ionlst[i], sft, solute_nresd+i );
- }
- }
-
-- if( i < num_ion-1 )
-+ if( i < numion-1 )
- {
- // more ions to add: cut a sphere from the tree, make sure no overlapping
- // the radius is 2*ion_radius, to avoid in the future ion
-@@ -193,7 +264,7 @@
-
- min.first = 1e20;
- max.first =-1e20;
-- tree.calculate(elepot_t(pos, charge(ion)), min, max);
-+ tree.calculate(elepot_t(pos, charge(ionlst[i])), min, max);
- }
- }
-
-diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/capbox/addions.hpp amber11/AmberTools/src/gleap/mortsrc/capbox/addions.hpp
---- amber11.orig/AmberTools/src/gleap/mortsrc/capbox/addions.hpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/mortsrc/capbox/addions.hpp 2011-03-08 16:38:44.000000000 +0300
-@@ -91,7 +91,7 @@
-
- if( i != m_natom )
- {
-- throw std::runtime_error( "Error: there are atoms do not belong to any residue" );
-+ throw std::runtime_error( "Error: Atoms are present that are part of no residue!" );
- }
-
- m_pcord = &m_cord;
-@@ -178,9 +178,11 @@
- vector<string> m_type;
- };
-
-- void addions_core( ionee_i& ionee, const molecule_t& ion, int nion, double shlext, double resolution );
--
-+ void addions_core( ionee_i& ionee, const vector<molecule_t>& ionlst, double shlext, double resolution );
-+
- void addions( molecule_t& m, const molecule_t& ion, int nion, double shlext, double res );
-+
-+ void addions( molecule_t& m, const molecule_t& ion1, int numion1, const molecule_t& ion2, int numion2, double shlext, double res );
- }
-
-
-diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/capbox/solvate.cpp amber11/AmberTools/src/gleap/mortsrc/capbox/solvate.cpp
---- amber11.orig/AmberTools/src/gleap/mortsrc/capbox/solvate.cpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/mortsrc/capbox/solvate.cpp 2011-03-08 16:38:44.000000000 +0300
-@@ -126,13 +126,23 @@
- return cap.extent();
- }
-
-- numvec solvatebox_core( solute_i& solute, const molecule_t& m, double buffer, double closeness )
-+ numvec solvatebox_core( solute_i& solute, const molecule_t& m, double buffer, double closeness, bool iso )
- {
- funstack_t::push( "solvatebox" );
-
- numvec extent = regionlize( solute, true );
- extent += scalar_numvec(extent.size(), 2*buffer);
-
-+ if( iso )
-+ {
-+ double extmax = std::max( extent[0], std::max(extent[1], extent[2]) );
-+ extent[0] = extmax;
-+ extent[1] = extmax;
-+ extent[2] = extmax;
-+ }
-+
-+
-+
- box_region box( extent );
- out_solute inn( solute, closeness );
- solvate( solute, m, and_region(box, inn) );
-@@ -180,10 +190,10 @@
- mol.set_v( CAP, makevec(capcnt[0],capcnt[1],capcnt[2],caprad) );
- }
-
-- void solvatebox(molecule_t& mol, const molecule_t& svt, double buffer, double closeness)
-+ void solvatebox(molecule_t& mol, const molecule_t& svt, double buffer, double closeness, bool iso)
- {
- mort_solute solute(mol);
-- numvec extent = solvatebox_core( solute, svt, buffer, closeness );
-+ numvec extent = solvatebox_core( solute, svt, buffer, closeness, iso );
-
- mol.set_i( SOLUTE, BOX );
- mol.set_v( BOX, makevec(extent[0], extent[1], extent[2], 90.0) );
-diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/capbox/solvate.hpp amber11/AmberTools/src/gleap/mortsrc/capbox/solvate.hpp
---- amber11.orig/AmberTools/src/gleap/mortsrc/capbox/solvate.hpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/mortsrc/capbox/solvate.hpp 2011-03-08 16:38:44.000000000 +0300
-@@ -10,7 +10,7 @@
-
- numvec solvatecap_core( solute_i& solute, const molecule_t& m, const numvec& capcnt, double caprad, double closeness );
-
-- numvec solvatebox_core( solute_i& solute, const molecule_t& m, double buffer, double closeness );
-+ numvec solvatebox_core( solute_i& solute, const molecule_t& m, double buffer, double closeness, bool iso );
-
- double solvateoct_core( solute_i& solute, const molecule_t& m, double buffer, double closeness );
-
-@@ -18,7 +18,7 @@
-
- void solvatecap( molecule_t& mol, const molecule_t& svt, const numvec& capcnt, double caprad, double closeness );
-
-- void solvatebox( molecule_t& mol, const molecule_t& svt, double buffer, double closeness );
-+ void solvatebox( molecule_t& mol, const molecule_t& svt, double buffer, double closeness, bool iso );
-
- void solvateoct( molecule_t& mol, const molecule_t& svt, double buffer, double closeness );
-
-diff -urN amber11.orig/AmberTools/src/gleap/mortsrc/pdbent/atom.cpp amber11/AmberTools/src/gleap/mortsrc/pdbent/atom.cpp
---- amber11.orig/AmberTools/src/gleap/mortsrc/pdbent/atom.cpp 2010-04-06 04:38:00.000000000 +0400
-+++ amber11/AmberTools/src/gleap/mortsrc/pdbent/atom.cpp 2011-03-08 16:38:44.000000000 +0300
-@@ -57,9 +57,9 @@
- {
- funstack_t::push( "pdbent::write_atom" );
-
-- os << "ATOM ";
-+ os << "ATOM ";
-
-- write_iparm( os, atom, ID, "%5d" );
-+ write_iparm( os, atom, ID, "%6d" );
-
- write_atom_name( os, atom );
-
-@@ -102,7 +102,15 @@
- os << ' ';
- }
-
-- os << format( "%4d " ) % (atom.resd().relid()+1);
-+ int rid = atom.resd().relid() + 1;
-+ if( rid < 10000 )
-+ {
-+ os << format( "%4d " ) % rid;
-+ }
-+ else
-+ {
-+ os << format( "%5d " ) % rid;
-+ }
- }
-
- } // namespace pdbent
-diff -urN amber11.orig/AmberTools/src/gleap/plugins/addions.cpp amber11/AmberTools/src/gleap/plugins/addions.cpp
---- amber11.orig/AmberTools/src/gleap/plugins/addions.cpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/plugins/addions.cpp 2011-03-08 16:38:44.000000000 +0300
-@@ -4,15 +4,33 @@
-
- namespace amber
- {
-+ int get_numion( double dstchg, double ionchg )
-+ {
-+ if( dstchg * ionchg >= 0 )
-+ {
-+ throw std::runtime_error( "Error: molecule and ion are both positive (or negative), can not make neutral" );
-+ }
-+
-+ return int( -dstchg/ionchg+0.5);
-+ }
-+
-+
-
-- addions_command::addions_command( )
-- :command_i( "addions" )
-+ addions_command::addions_command( const char* cmd )
-+ :command_i( cmd )
- {
- }
-
-- addions_command::addions_command( const string& dest, const string& ion, int number )
-- :m_dest( dest ), m_ion( ion ), m_number( number )
-+ addions_command::addions_command( const string& dest, const string& ion1, int numion1 )
-+ :m_dest( dest ), m_ion1( ion1 ), m_numion1( numion1 )
- {
-+ m_runtyp = 1;
-+ }
-+
-+ addions_command::addions_command( const string& dest, const string& ion1, int numion1, const string& ion2, int numion2 )
-+ :m_dest( dest ), m_ion1( ion1 ), m_numion1( numion1 ), m_ion2(ion2), m_numion2(numion2)
-+ {
-+ m_runtyp = 2;
- }
-
- addions_command::~addions_command()
-@@ -21,28 +39,42 @@
-
- bool addions_command::exec()
- {
-+ double shell_extent = 4.0;
-+ double resolution = 1.0;
- molecule_ptr pdst = content().get_mol( m_dest );
-- molecule_ptr pion = content().get_mol( m_ion );
-
-- if( m_number==0 )
-+ if( m_runtyp==1 )
- {
-- double dstchg = charge( *pdst );
-- double ionchg = charge( *pion );
-- if( dstchg * ionchg >= 0 )
-+ molecule_ptr pion = content().get_mol( m_ion1 );
-+ if( m_numion1==0 )
- {
-- throw std::runtime_error( "Error: molecule and ion are both positive (or negative), can not make neutral" );
-+ m_numion1 = get_numion( charge(*pdst), charge(*pion) );
- }
--
-- m_number = int( -dstchg/ionchg+0.5);
-+
-+ assert( pdst != NULL && pion != NULL );
-+ addions( *pdst, *pion, m_numion1, shell_extent, resolution);
- }
--
--
-- assert( pdst != NULL && pion != NULL );
-+ else if( m_runtyp==2 )
-+ {
-+ molecule_ptr pion1 = content().get_mol( m_ion1 );
-+ molecule_ptr pion2 = content().get_mol( m_ion2 );
-+ if( m_numion1==0 && m_numion2==0 )
-+ {
-+ throw std::runtime_error( "Error: while addions2, numion1 and numion2 cannot both be zero" );
-+ }
-
-- double shell_extent = 4.0;
-- double resolution = 1.0;
-+ if( m_numion1==0 )
-+ {
-+ m_numion1 = get_numion( charge(*pdst)+m_numion2*charge(*pion2), charge(*pion1) );
-+ }
-+ else if( m_numion2==0 )
-+ {
-+ m_numion2 = get_numion( charge(*pdst)+m_numion1*charge(*pion1), charge(*pion2) );
-+ }
-+
-+ addions( *pdst, *pion1, m_numion1, *pion2, m_numion2, shell_extent, resolution );
-+ }
-
-- addions( *pdst, *pion, m_number, shell_extent, resolution);
- return true;
- }
-
-@@ -53,22 +85,29 @@
-
- const char* addions_command::info( ) const
- {
-- return " usage: addion mol ion1 numIon1 ";
-+ return " usage: addions mol ion1 numIon1 ";
- }
-
- shared_ptr< command_i > addions_command::clone( const vector< string >& args ) const
- {
-- if( args.size()!=3 && args.size()!=4 )
-+ if( args.size()==3 || args.size()==4 )
- {
-- throw std::runtime_error( "Error: wrong number of arguments " );
-+ int numb = args.size()==3 ? 0 : atoi(args[3].c_str());
-+ return shared_ptr< command_i >( new addions_command(args[1], args[2], numb) );
- }
-
-- int numb = args.size()==3 ? 0 : atoi(args[3].c_str());
--
-- return shared_ptr< command_i >( new addions_command(args[1], args[2], numb) );
-+ if( args.size()==6 )
-+ {
-+ int nion1 = atoi( args[3].c_str() );
-+ int nion2 = atoi( args[5].c_str() );
-+ return shared_ptr< command_i >( new addions_command(args[1], args[2], nion1, args[4], nion2 ) );
-+ }
-+
-+ throw std::runtime_error( "Error: Wrong number of arguments!" );
- }
-
-- addions_command g_addions_command;
-+ addions_command g_addions_command( "addions" );
-+ addions_command g_addions2_command( "addions2" );
-
- } // namespace amber
-
-diff -urN amber11.orig/AmberTools/src/gleap/plugins/addions.hpp amber11/AmberTools/src/gleap/plugins/addions.hpp
---- amber11.orig/AmberTools/src/gleap/plugins/addions.hpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/plugins/addions.hpp 2011-03-08 16:38:44.000000000 +0300
-@@ -11,10 +11,12 @@
- {
- public:
-
-- addions_command();
-+ addions_command( const char* cmdnam );
-
- addions_command( const string& dest, const string& ion, int number );
--
-+
-+ addions_command( const string& dest, const string& ion1, int numion1, const string& ion2, int numion2 );
-+
- virtual ~addions_command();
-
- virtual bool exec();
-@@ -28,10 +30,12 @@
- private:
-
- string m_dest;
-+ string m_ion1;
-+ int m_numion1;
-+ string m_ion2;
-+ int m_numion2;
-
-- string m_ion;
--
-- int m_number;
-+ int m_runtyp;
- };
-
- } // namespace amber
-diff -urN amber11.orig/AmberTools/src/gleap/plugins/check.cpp amber11/AmberTools/src/gleap/plugins/check.cpp
---- amber11.orig/AmberTools/src/gleap/plugins/check.cpp 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/src/gleap/plugins/check.cpp 2011-03-08 16:38:44.000000000 +0300
-@@ -0,0 +1,415 @@
-+#include <object.hpp>
-+#include "check.hpp"
-+
-+namespace amber
-+{
-+ void check_charge( const molecule_t& m )
-+ {
-+ std::cout << "Checking charge: ";
-+ double chg = charge( m );
-+ double dif = std::abs( chg - int(chg) );
-+ if( dif > 0.01 && dif < 0.99 )
-+ {
-+ std::cout << std::endl;
-+ std::cout << "Warning: non-integral total charge: " << chg << std::endl;
-+ }
-+ else
-+ {
-+ std::cout << chg << ", OK!" << std::endl;
-+ }
-+ }
-+
-+ void check_bond_length( const molecule_t& m, double lowcutoff, double hghcutoff )
-+ {
-+ std::cout << "Checking bond lengths: ";
-+ bool ok = true;
-+ bonditer_t bi = m.bond_begin();
-+ for( ; bi != m.bond_end(); ++bi )
-+ {
-+ atom_t a1 = atom_1st( *bi );
-+ atom_t a2 = atom_2nd( *bi );
-+ double ln = dist( a1, a2 );
-+ if( ln < lowcutoff || ln > hghcutoff )
-+ {
-+ resd_t r1 = a1.resd();
-+ resd_t r2 = a2.resd();
-+ ok = false;
-+ std::cout << std::endl;
-+ std::cout << format("Warning: There is a bond of %4.2f angstroms between: ") % ln;
-+ std::cout << r1.get_s(NAME) << "." << a1.get_s(NAME) << " and ";
-+ std::cout << r2.get_s(NAME) << "." << a2.get_s(NAME);
-+ }
-+ }
-+
-+ if( ok )
-+ {
-+ std::cout << "OK!" << std::endl;
-+ }
-+ else
-+ {
-+ std::cout << std::endl;
-+ }
-+ }
-+
-+ void check_atom_distance( const molecule_t& m, double cutoff )
-+ {
-+ std::cout << "Checking nonbonded atom contacts: ";
-+ bool ok = true;
-+ atomiter_t ai = m.atom_begin();
-+ for( ; ai != m.atom_end(); ++ai )
-+ {
-+ atomiter_t aj = ai + 1;
-+ for( ; aj != m.atom_end(); ++aj )
-+ {
-+ if( bond_t::has(*ai, *aj) )
-+ {
-+ continue;
-+ }
-+
-+ double d = dist( *ai, *aj );
-+ if( d < cutoff )
-+ {
-+ ok = false;
-+ resd_t r1 = ai->resd();
-+ resd_t r2 = aj->resd();
-+ std::cout << std::endl;
-+ std::cout << format( "Warning: Close contact of %4.2f Angstroms between atoms ") % d;
-+ std::cout << r1.get_s(NAME) << "." << ai->name() << " and ";
-+ std::cout << r2.get_s(NAME) << "." << aj->name();
-+ }
-+ }
-+ }
-+
-+ if( ok )
-+ {
-+ std::cout << "OK!" << std::endl;
-+ }
-+ else
-+ {
-+ std::cout << std::endl;
-+ }
-+ }
-+
-+ void check_atom_params( const molecule_t& m, const molecule_t& ff )
-+ {
-+ std::cout << "Checking atom parameters: ";
-+ bool ok = true;
-+ atomiter_t ai = m.atom_begin();
-+ for( ; ai != m.atom_end(); ++ai )
-+ {
-+ string t = ai->type();
-+ if( !atom_t::has(ff, t) )
-+ {
-+ ok = false;
-+ std::cout << "Warning: could not find parameters for atom: " << t << std::endl;
-+ }
-+ }
-+
-+ if( ok )
-+ {
-+ std::cout << "OK!" << std::endl;
-+ }
-+ else
-+ {
-+ std::cout << std::endl;
-+ }
-+ }
-+
-+ void check_bond_params( const molecule_t& m, const molecule_t& ff )
-+ {
-+ std::cout << "Checking bond parameters: ";
-+ bool ok = true;
-+ bonditer_t bi = m.bond_begin();
-+ for( ; bi != m.bond_end(); ++bi )
-+ {
-+ atom_t a1 = atom_1st( *bi );
-+ atom_t a2 = atom_2nd( *bi );
-+ string t1 = a1.type();
-+ string t2 = a2.type();
-+
-+ atom_t pa1(ff, -1), pa2(ff, -1);
-+
-+ if( atom_t::get(ff, t1, pa1) && atom_t::get(ff, t2, pa2) )
-+ {
-+ if( bond_t::has(pa1, pa2) )
-+ {
-+ continue;
-+ }
-+ }
-+
-+ ok = false;
-+ std::cout << std::endl;
-+ std::cout << "Warning: could not find parameters for bond " << t1 << "-" << t2 << std::endl;
-+ }
-+
-+ if( ok )
-+ {
-+ std::cout << "OK!" << std::endl;
-+ }
-+ else
-+ {
-+ std::cout << std::endl;
-+ }
-+ }
-+
-+ void check_angl_params( const molecule_t& m, const molecule_t& ff )
-+ {
-+ std::cout << "Checking angle parameters: ";
-+ bool ok = true;
-+ atomiter_t ai = m.atom_begin();
-+ for( ; ai != m.atom_end(); ++ai )
-+ {
-+ atomiter_t aj = ai->atom_begin();
-+ for( ; aj != ai->atom_end(); ++aj )
-+ {
-+ atomiter_t ak = aj + 1;
-+ for( ; ak != ai->atom_end(); ++ak )
-+ {
-+ string t1 = ai->type();
-+ string t2 = aj->type();
-+ string t3 = ak->type();
-+ atom_t pa1(ff, -1);
-+ atom_t pa2(ff, -1);
-+ atom_t pa3(ff, -1);
-+ if( atom_t::get(ff, t1, pa1) && atom_t::get(ff, t2, pa2) && atom_t::get(ff, t3, pa3) )
-+ {
-+ if( angl_t::has(pa2, pa1, pa3) )
-+ {
-+ continue;
-+ }
-+ }
-+
-+ ok = false;
-+ std::cout << std::endl;
-+ std::cout << "Warning: could not find parameters for angle " << t2 << "-" << t1 << "-" << t3;
-+ }
-+ }
-+ }
-+
-+ if( ok )
-+ {
-+ std::cout << "OK!" << std::endl;
-+ }
-+ else
-+ {
-+ std::cout << std::endl;
-+ }
-+ }
-+
-+ check_command::check_command()
-+ : command_i( "check" )
-+ {
-+ }
-+
-+ check_command::check_command( bool checkmolcharge, bool checkatomparams,
-+ bool checkbondparams, bool checkangleparams,
-+ bool checkbondlength, bool checkatomclashes,
-+ const string& molnam )
-+ : m_checkmolcharge(checkmolcharge), m_checkatomparams(checkatomparams),
-+ m_checkbondparams(checkbondparams), m_checkangleparams(checkangleparams),
-+ m_checkbondlength(checkbondlength), m_checkatomclashes(checkatomclashes),
-+ m_molnam( molnam )
-+ {
-+ }
-+
-+ check_command::~check_command( )
-+ {
-+ }
-+
-+ bool check_command::exec( )
-+ {
-+ int ndot = std::count( m_molnam.begin(), m_molnam.end(), '.' );
-+ if( ndot != 0 )
-+ {
-+ throw std::runtime_error( "Error: Arguments, other than flags, must be units!" );
-+ }
-+
-+ std::cout << "Checking unit \"" << m_molnam << "\"" << std::endl;
-+
-+ molecule_ptr pmol = content().get_mol( m_molnam );
-+ molecule_ptr parm = content().get_mol( "_amberffp" );
-+
-+ if (m_checkmolcharge == true)
-+ {
-+ check_charge( *pmol );
-+ }
-+
-+ if (m_checkatomparams == true)
-+ {
-+ check_atom_params( *pmol, *parm );
-+ }
-+
-+ if (m_checkbondparams == true)
-+ {
-+ check_bond_params( *pmol, *parm );
-+ }
-+
-+ if (m_checkangleparams == true)
-+ {
-+ check_angl_params( *pmol, *parm );
-+ }
-+
-+ if (m_checkbondlength == true)
-+ {
-+ check_bond_length( *pmol, 0.5, 3.0 );
-+ }
-+
-+ if (m_checkatomclashes == true)
-+ {
-+ check_atom_distance( *pmol, 1.5 );
-+ }
-+
-+ return true;
-+ }
-+
-+ void check_command::undo()
-+ {
-+ }
-+
-+ const char* check_command::info() const
-+ {
-+ return "check unit";
-+ }
-+
-+ command_ptr check_command::clone( const vector< string >& args ) const
-+ {
-+ bool checkall = false;
-+ bool checkmolcharge = false;
-+ bool checkatomparams = false;
-+ bool checkbondparams = false;
-+ bool checkangleparams = false;
-+ bool checkbondlength = false;
-+ bool checkatomclashes = false;
-+ bool nocheckatomclashes = false;
-+
-+ std::string unit = "";
-+
-+ int i;
-+
-+ //if( args.size()!=2 )
-+ //{
-+ // throw std::runtime_error( "Error: Wrong number of arguments!" );
-+ //}
-+
-+ for (i = 1; i < args.size(); i++)
-+ {
-+ if (args[i] == "-charge")
-+ {
-+ checkmolcharge = true;
-+ std::cout << "charge check requested" << std::endl;
-+ }
-+ else if (args[i] == "-atomparams")
-+ {
-+ checkatomparams = true;
-+ std::cout << "atom parameter check requested" << std::endl;
-+ }
-+ else if (args[i] == "-bondparams")
-+ {
-+ checkbondparams = true;
-+ std::cout << "bond parameter check requested" << std::endl;
-+ }
-+ else if (args[i] == "-angleparams")
-+ {
-+ checkangleparams = true;
-+ std::cout << "angle parameter check requested" << std::endl;
-+ }
-+ else if (args[i] == "-bondlength")
-+ {
-+ checkbondlength = true;
-+ std::cout << "bond length check requested" << std::endl;
-+ }
-+ else if (args[i] == "-clashes")
-+ {
-+ if (nocheckatomclashes == true)
-+ {
-+ throw std::runtime_error("Error: can't use -clashes and -noclashes together!");
-+ }
-+
-+ checkatomclashes = true;
-+ std::cout << "atom proximity (clash) check requested" << std::endl;
-+ }
-+ else if (args[i] == "-noclashes")
-+ {
-+ if (checkatomclashes == true)
-+ {
-+ throw std::runtime_error("Error: can't use -clashes and -noclashes together!");
-+ }
-+ if (checkall == true)
-+ {
-+ throw std::runtime_error("Error: can't use -all and -noclashes together!");
-+ }
-+
-+ nocheckatomclashes = true;
-+ // Set everything else, too
-+ checkmolcharge = true;
-+ checkatomparams = true;
-+ checkbondparams = true;
-+ checkangleparams = true;
-+ checkbondlength = true;
-+ checkatomclashes = false;
-+ checkall = false;
-+ std::cout << "all except atom proximity (clash) check requested" << std::endl;
-+ }
-+ else if (args[i] == "-all")
-+ {
-+ if (nocheckatomclashes == true)
-+ {
-+ throw std::runtime_error("Error: can't use -all and -noclashes together!");
-+ }
-+
-+ checkall = true;
-+ }
-+ else if (args[i].substr(0,1) == "-")
-+ {
-+ throw std::runtime_error("Error: in check, unrecognised flag: " + args[i] + "\n"
-+ + " Allowed flags:" + "\n"
-+ + " -charge" + "\n"
-+ + " -atomparams" + "\n"
-+ + " -bondparams" + "\n"
-+ + " -angleparams" + "\n"
-+ + " -bondlength" + "\n"
-+ + " -clashes" + "\n"
-+ + " -noclashes" + "\n"
-+ + " -all" );
-+ }
-+ else if (unit == "")
-+ {
-+ unit = args[i];
-+ }
-+ else
-+ {
-+ throw std::runtime_error("Error: Too many arguments!");
-+ }
-+ }
-+
-+ if (unit == "")
-+ {
-+ throw std::runtime_error("Error: A unit must be supplied as an argument!");
-+ }
-+
-+ // If everything is false except possibly checkall (whose truth
-+ // or falsity is irrelevant), we want to check everything
-+ if (checkmolcharge == false && checkatomparams == false
-+ && checkbondparams == false && checkangleparams == false
-+ && checkbondlength == false && checkatomclashes == false
-+ && nocheckatomclashes == false)
-+ {
-+ checkmolcharge = true;
-+ checkatomparams = true;
-+ checkbondparams = true;
-+ checkangleparams = true;
-+ checkbondlength = true;
-+ checkatomclashes = true;
-+ std::cout << "all checks requested" << std::endl;
-+ }
-+
-+ return shared_ptr< command_i >( new check_command(checkmolcharge, checkatomparams,
-+ checkbondparams, checkangleparams,
-+ checkbondlength, checkatomclashes,
-+ unit ) );
-+ }
-+
-+} // namespace amber
-+
-+amber::check_command g_check_command;
-+
-diff -urN amber11.orig/AmberTools/src/gleap/plugins/check.hpp amber11/AmberTools/src/gleap/plugins/check.hpp
---- amber11.orig/AmberTools/src/gleap/plugins/check.hpp 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/src/gleap/plugins/check.hpp 2011-03-08 16:38:44.000000000 +0300
-@@ -0,0 +1,49 @@
-+#ifndef GLEAP_PLUGINS_CHECK_HPP
-+#define GLEAP_PLUGINS_CHECK_HPP
-+
-+#include <guilib.hpp>
-+
-+namespace amber
-+{
-+
-+ using namespace mort;
-+
-+ class check_command : public command_i
-+ {
-+ public:
-+
-+ check_command();
-+
-+ check_command( bool checkmolcharge, bool checkatomparams,
-+ bool checkbondparams, bool checkangleparams,
-+ bool checkbondlength, bool checkatomclashes,
-+ const string& molnam );
-+
-+ virtual ~check_command();
-+
-+ virtual bool exec();
-+
-+ virtual void undo();
-+
-+ virtual const char* info( ) const;
-+
-+ virtual shared_ptr< command_i > clone( const vector<string>& args ) const;
-+
-+ private:
-+
-+ bool m_checkmolcharge;
-+ bool m_checkatomparams;
-+ bool m_checkbondparams;
-+ bool m_checkangleparams;
-+ bool m_checkbondlength;
-+ bool m_checkatomclashes;
-+ string m_molnam;
-+
-+ };
-+
-+} // namespace amber
-+
-+
-+
-+#endif
-+
-diff -urN amber11.orig/AmberTools/src/gleap/plugins/loadpdb.cpp amber11/AmberTools/src/gleap/plugins/loadpdb.cpp
---- amber11.orig/AmberTools/src/gleap/plugins/loadpdb.cpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/plugins/loadpdb.cpp 2011-03-08 16:38:44.000000000 +0300
-@@ -31,28 +31,29 @@
- throw std::runtime_error( "Error: file " + m_file + " doesn't exist" );
- }
-
--
- molecule_ptr pmol( new molecule_t() );
-
- read_pdb( is, *pmol );
-
- string disulf = "auto";
- mortenv().get_s("disulfide", disulf);
-- console_t* pcon = (disulf=="auto") ? NULL : console().get();
-+ if( disulf!="off" )
-+ {
-+ console_t* pcon = (disulf=="auto") ? NULL : console().get();
-
-- double disulfcut = 2.1;
-- string tmp;
-- if( mortenv().get_s("disulfcut", tmp) )
-- {
-- disulfcut = atof( tmp.c_str() );
-- }
-+ double disulfcut = 2.1;
-+ string tmp;
-+ if( mortenv().get_s("disulfcut", tmp) )
-+ {
-+ disulfcut = atof( tmp.c_str() );
-+ }
-
-- disulfide( *pmol, disulfcut, pcon );
-+ disulfide( *pmol, disulfcut, pcon );
-+ }
-
- namemap_ptr nmap = content().get_nmap( "_namemap" );
- if( nmap != NULL )
- {
--
- if( m_action=="loadpdb" )
- {
- mdlize_mdb( *pmol, content() );
-diff -urN amber11.orig/AmberTools/src/gleap/plugins/merge.cpp amber11/AmberTools/src/gleap/plugins/merge.cpp
---- amber11.orig/AmberTools/src/gleap/plugins/merge.cpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/plugins/merge.cpp 2011-03-08 16:38:44.000000000 +0300
-@@ -241,6 +241,12 @@
-
-
- morf_t resd = merge(*pmol, *pseg, -1);
-+ if( i==1 )
-+ {
-+ // for the first residue. the head atom need to be unset for counting nunit in topology.
-+ resd.set_i(HEAD, 0);
-+ }
-+
- resd.get_i(HEAD, head);
-
- if( m_action == "sequence" && i > 1)
-diff -urN amber11.orig/AmberTools/src/gleap/plugins/set.cpp amber11/AmberTools/src/gleap/plugins/set.cpp
---- amber11.orig/AmberTools/src/gleap/plugins/set.cpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/plugins/set.cpp 2011-03-08 16:38:44.000000000 +0300
-@@ -4,6 +4,29 @@
-
- namespace amber
- {
-+ vector<string> split( const string& a )
-+ {
-+ size_t bgn = a.find( '{' );
-+ if( bgn==string::npos ) bgn = 0;
-+ else bgn = bgn + 1;
-+
-+ size_t end = a.rfind( '}' );
-+ if( end==string::npos ) end = a.length();
-+
-+ vector<string> result;
-+ std::istringstream is( a.substr(bgn, end - bgn) );
-+ string s;
-+ while( is >> s )
-+ {
-+ result.push_back( s );
-+ }
-+
-+ return result;
-+ }
-+
-+
-+
-+
- numvec atov(const string& a, int len)
- {
- std::istringstream is(a);
-@@ -98,9 +121,23 @@
- }
- else if( parm == "box" )
- {
-+ numvec box(4);
- obj.set_i(SOLUTE, BOX);
-- obj.set_v(BOX, atov4d(value) );
-- return true;
-+ vector<string> itmlst = split( value );
-+ if( itmlst.size()==3 || itmlst.size()==4 )
-+ {
-+ box[0] = atof( itmlst[0].c_str() );
-+ box[1] = atof( itmlst[1].c_str() );
-+ box[2] = atof( itmlst[2].c_str() );
-+ box[3] = (itmlst.size()==4) ? atof(itmlst[3].c_str()) : 90.0;
-+ obj.set_v(BOX, box);
-+ return true;
-+ }
-+ else
-+ {
-+ std::cout << "Error: cannot understand box value: " << value << std::endl;
-+ return false;
-+ }
- }
- else if( parm == "cap" )
- {
-diff -urN amber11.orig/AmberTools/src/gleap/plugins/solvate.cpp amber11/AmberTools/src/gleap/plugins/solvate.cpp
---- amber11.orig/AmberTools/src/gleap/plugins/solvate.cpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/plugins/solvate.cpp 2011-03-08 16:38:44.000000000 +0300
-@@ -11,9 +11,9 @@
- }
-
- solvate_command::solvate_command( const string& action, const string& solute, const string& solvent,
-- const string& center, const string& extent, double closeness )
-+ const string& center, const string& extent, double closeness, bool iso )
- : m_action( action ), m_solute( solute ), m_center( center ), m_solvent( solvent ),
-- m_extent( extent ), m_closeness( closeness )
-+ m_extent( extent ), m_closeness( closeness ), m_iso(iso)
- {
- }
-
-@@ -33,7 +33,7 @@
- {
- double length = atof( m_extent.c_str() );
-
-- solvatebox( *psolute, *psolvent, length, m_closeness );
-+ solvatebox( *psolute, *psolvent, length, m_closeness, m_iso );
-
- return true;
- }
-@@ -103,7 +103,48 @@
-
- shared_ptr< command_i > solvate_command::clone( const vector< string >& args ) const
- {
-- if( args[0]=="solvatebox" || args[0]=="solvateshell" || args[0]=="solvateoct" )
-+ if( args[0]=="solvatebox" )
-+ {
-+ bool iso = false;
-+ double closeness = 1.0;
-+ if( args.size()==4 )
-+ {
-+ iso = false;
-+ closeness = 1.0;
-+ }
-+ else if( args.size()==5 )
-+ {
-+ if( args[4]=="iso" )
-+ {
-+ iso = true;
-+ closeness = 1.0;
-+ }
-+ else
-+ {
-+ iso = false;
-+ closeness = atof( args[4].c_str() );
-+ }
-+ }
-+ else if( args.size()==6 )
-+ {
-+ if( args[5] != "iso" )
-+ {
-+ throw std::runtime_error( "Error: cannot understand argument: " + args[5] );
-+ }
-+
-+ iso = true;
-+ closeness = atof( args[4].c_str() );
-+ }
-+ else
-+ {
-+ throw std::runtime_error( "Error: wrong number of argument." );
-+ }
-+
-+ return shared_ptr<command_i>( new solvate_command(args[0], args[1], args[2], "", args[3], closeness, iso) );
-+ }
-+
-+
-+ if( args[0]=="solvateshell" || args[0]=="solvateoct" )
- {
- if( args.size()!=4 && args.size()!=5 )
- {
-@@ -111,7 +152,7 @@
- }
-
- double closeness = (args.size()==4) ? 1.0 : atof( args[4].c_str() );
-- return shared_ptr< command_i >( new solvate_command( args[0], args[1], args[2], "", args[3], closeness ) );
-+ return shared_ptr<command_i>( new solvate_command(args[0], args[1], args[2], "", args[3], closeness, false) );
- }
-
- assert( args[0] == "solvatecap" );
-@@ -122,7 +163,7 @@
- }
-
- double closeness = (args.size()==5) ? 1.0 : atof( args[5].c_str() );
-- return shared_ptr< command_i >( new solvate_command( args[0], args[1], args[2], args[3], args[4], closeness ) );
-+ return shared_ptr< command_i >( new solvate_command( args[0], args[1], args[2], args[3], args[4], closeness,false) );
- }
-
- } // namespace amber
-diff -urN amber11.orig/AmberTools/src/gleap/plugins/solvate.hpp amber11/AmberTools/src/gleap/plugins/solvate.hpp
---- amber11.orig/AmberTools/src/gleap/plugins/solvate.hpp 2010-03-31 07:05:14.000000000 +0400
-+++ amber11/AmberTools/src/gleap/plugins/solvate.hpp 2011-03-08 16:38:44.000000000 +0300
-@@ -13,7 +13,7 @@
-
- solvate_command( const string& type );
-
-- solvate_command( const string& action, const string& solute, const string& solvent, const string& center, const string& extent, double closeness );
-+ solvate_command( const string& action, const string& solute, const string& solvent, const string& center, const string& extent, double closeness, bool iso );
-
- virtual ~solvate_command( );
-
-@@ -38,6 +38,8 @@
- string m_extent;
-
- double m_closeness;
-+
-+ bool m_iso;
- };
-
- } // namespace amber
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/basics.c amber11/AmberTools/src/leap/src/leap/basics.c
---- amber11.orig/AmberTools/src/leap/src/leap/basics.c 2010-03-31 07:05:15.000000000 +0400
-+++ amber11/AmberTools/src/leap/src/leap/basics.c 2011-03-08 16:38:44.000000000 +0300
-@@ -462,7 +462,7 @@
- SmPMallocList = mPMem;
-
- sTrailer = ((char*)mPMem)+sizeof(MEMHEADER)+lSize;
-- memcpy( sTrailer, mPMem->sCheck, TRAILERLEN );
-+ memmove( sTrailer, mPMem->sCheck, TRAILERLEN );
-
- return ((char*)mPMem) + sizeof(MEMHEADER);
- }
-@@ -528,7 +528,7 @@
- if ( mPMem == NULL ) {
- DFATAL(( "Could not malloc in REALLOC: %s\n", strerror(errno) ));
- }
-- memcpy( mPMem, mPPrevious,
-+ memmove( mPMem, mPPrevious,
- MIN( lSize, mPPrevious->lSize) + sizeof(MEMHEADER)+TRAILERLEN );
-
- strcpy( mPPrevious->sCheck, FREESTR );
-@@ -540,7 +540,8 @@
- /* Fill the trailer */
-
- sTrailer = ((char*)mPMem)+sizeof(MEMHEADER)+lSize;
-- strcpy( sTrailer, mPMem->sCheck );
-+ memmove( sTrailer, mPMem->sCheck, strlen(mPMem->sCheck) );
-+ sTrailer[strlen(mPMem->sCheck)]='\0';
-
- return ((char*)mPMem) + sizeof(MEMHEADER);
- }
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/database.c amber11/AmberTools/src/leap/src/leap/database.c
---- amber11.orig/AmberTools/src/leap/src/leap/database.c 2010-03-31 07:05:15.000000000 +0400
-+++ amber11/AmberTools/src/leap/src/leap/database.c 2011-03-08 16:38:44.000000000 +0300
-@@ -594,6 +594,7 @@
- sStripString( char *sLine, char *sStr )
- {
- char c, *sCur, *sStart;
-+int mylength;
-
- sCur = sLine;
- sStart = sStr;
-@@ -615,8 +616,10 @@
- (*sStr++) = c;
- } while ( (*sCur) != '\0' );
- *sStr = '\0';
-- strcpy( sLine, sCur );
--
-+ mylength=strlen(sCur);
-+ //strcpy( sLine, sCur );
-+ memmove(sLine, sCur, mylength);
-+ sLine[mylength]='\0';
- return(sStart);
- }
-
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/sort.c amber11/AmberTools/src/leap/src/leap/sort.c
---- amber11.orig/AmberTools/src/leap/src/leap/sort.c 2010-03-31 07:05:15.000000000 +0400
-+++ amber11/AmberTools/src/leap/src/leap/sort.c 2011-03-08 16:38:44.000000000 +0300
-@@ -217,9 +217,9 @@
- /* If false then swap it with the bottom of the false */
- /* group, and leave the current pointer where it is */
-
-- memcpy( PSwapBuffer, PCur, iElementSize );
-- memcpy( PCur, PTop, iElementSize );
-- memcpy( PTop, PSwapBuffer, iElementSize );
-+ memmove( PSwapBuffer, PCur, iElementSize );
-+ memmove( PCur, PTop, iElementSize );
-+ memmove( PTop, PSwapBuffer, iElementSize );
-
- PTop = (char*)PTop - iElementSize;
- iBottomFalse--;
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/stringExtra.c amber11/AmberTools/src/leap/src/leap/stringExtra.c
---- amber11.orig/AmberTools/src/leap/src/leap/stringExtra.c 2010-03-31 07:05:15.000000000 +0400
-+++ amber11/AmberTools/src/leap/src/leap/stringExtra.c 2011-03-08 16:38:44.000000000 +0300
-@@ -130,10 +130,13 @@
- sRemoveLeadingSpaces( char *sLine )
- {
- char *sTemp;
--
-+int mylength;
- sTemp = sLine;
- while ( (*sTemp==' ') && ( *sTemp!='\0' )) sTemp++;
-- strcpy( sLine, sTemp );
-+ mylength=strlen(sTemp);
-+ //strcpy( sLine, sTemp );
-+ memmove(sLine, sTemp, mylength);
-+ sLine[mylength]='\0';
- return(sLine);
- }
-
-@@ -152,6 +155,7 @@
- sRemoveFirstString( char *sLine, char *sHead )
- {
- char *sTemp;
-+int mylength;
-
- sTemp = sLine;
- while ( (*sTemp!=' ') && ( *sTemp!='\0' )) sTemp++;
-@@ -163,7 +167,11 @@
- *sTemp = '\0';
- strcpy( sHead, sLine );
- sTemp++;
-- strcpy( sLine, sTemp );
-+ mylength=strlen(sTemp);
-+ //strcpy( sLine, sTemp );
-+ memmove(sLine, sTemp, mylength);
-+ sLine[mylength]='\0';
-+
- }
-
-
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/xaCommand.c amber11/AmberTools/src/leap/src/leap/xaCommand.c
---- amber11.orig/AmberTools/src/leap/src/leap/xaCommand.c 2010-03-31 07:05:15.000000000 +0400
-+++ amber11/AmberTools/src/leap/src/leap/xaCommand.c 2011-03-08 16:38:44.000000000 +0300
-@@ -837,7 +837,7 @@
- * at the top of the list
- */
- qsort( saPNames, iNumber, sizeof(STRING),
-- (int (*) (void *, void *) )ziXACCompareTwoDirectoryEntries );
-+ (int (*) (const void *, const void *) )ziXACCompareTwoDirectoryEntries );
-
- /*
- * Reformulate as an array of pointers to char
-diff -urN amber11.orig/AmberTools/src/pbsa/pb_init.f amber11/AmberTools/src/pbsa/pb_init.f
---- amber11.orig/AmberTools/src/pbsa/pb_init.f 2010-03-31 07:05:15.000000000 +0400
-+++ amber11/AmberTools/src/pbsa/pb_init.f 2011-03-08 16:38:44.000000000 +0300
-@@ -153,6 +153,7 @@
-
- integer ires, iatm, jatm, maxmax, ic, i, j, jp, idum
- integer alloc_err(64)
-+ _REAL_ maxnbr_l, maxnba_l
- _REAL_ rinchk
- _REAL_ ucrgh(natom), ucrga(natom)
- character (len=4) :: residue, resid(natom)
-@@ -207,16 +208,24 @@
-
- ! allocate pb nblists
-
-- maxnba = natom * ( sqrt( max(cutnb,cutsa,cutfd) ) )**3 / 3.0d0
-- maxnbr = natom * ( sqrt( cutres ) + 3.0d0 )**3 / 3.0d0
-+ maxnba_l = dble(natom) * ( sqrt( max(cutnb,cutsa,cutfd) ) )**3 / 3.0d0
-+ maxnbr_l = dble(natom) * ( sqrt( cutres ) + 3.0d0 )**3 / 3.0d0
- if ( natom >= 65536 ) then
- write(6,'(a)') "PB Warnning: natom**2 exceeds integer limit (2147483647)."
- maxmax = 2147483647
- else
- maxmax = ceiling(dble(natom)/2*dble(natom))
-- endif
-- if ( maxnba > maxmax ) maxnba = maxmax
-- if ( maxnbr > maxmax ) maxnbr = maxmax
-+ end if
-+ if ( maxnbr_l > maxmax ) then
-+ maxnbr = maxmax
-+ else
-+ maxnbr = int(maxnbr_l)
-+ end if
-+ if ( maxnba_l > maxmax ) then
-+ maxnba = maxmax
-+ else
-+ maxnba = int(maxnba_l)
-+ end if
-
- allocate( iar1pb (6,0:natom), stat = alloc_err(24) )
- allocate( iprshrt( maxnba ), stat = alloc_err(25) )
-diff -urN amber11.orig/AmberTools/src/ptraj/actions.c amber11/AmberTools/src/ptraj/actions.c
---- amber11.orig/AmberTools/src/ptraj/actions.c 2010-03-31 07:05:16.000000000 +0400
-+++ amber11/AmberTools/src/ptraj/actions.c 2011-03-08 16:38:44.000000000 +0300
-@@ -3655,6 +3655,8 @@
- {
- action->mask = processAtomMask("*", action->state);
- }
-+ if (action->mask==NULL)
-+ return INVALID_ARGUMENTS_RETURN_CODE;
- /* Create a new "substate" trajInfo->state containing only some atoms: */
- modifyStateByMask(&trajInfo->state, &action->state, action->mask, 0);
- trajInfo->atoms = trajInfo->state->atoms;
-@@ -16406,6 +16408,10 @@
- residues[i].antiparallelSheetProb = 0;
- residues[i].turnProb = 0;
- residues[i].isActive = 0;
-+ residues[i].H=-1;
-+ residues[i].C=-1;
-+ residues[i].N=-1;
-+ residues[i].O=-1;
- }
- actRes = 0;
- for (i = 0; i < action->state->atoms; i++) {
-diff -urN amber11.orig/AmberTools/src/ptraj/cluster.c amber11/AmberTools/src/ptraj/cluster.c
---- amber11.orig/AmberTools/src/ptraj/cluster.c 2010-03-31 07:05:16.000000000 +0400
-+++ amber11/AmberTools/src/ptraj/cluster.c 2011-03-08 16:38:44.000000000 +0300
-@@ -4041,7 +4041,7 @@
- OutputTrajInfo = (trajectoryInfo*)action->carg2;
- }
-
-- if (!FirstOutputFlag)
-+ if (FirstOutputFlag==NULL)
- {
- FirstOutputFlag = (int*)SafeMalloc(__FILE__, __LINE__, sizeof(int) * This->ClusterCount);
- memset(FirstOutputFlag, 1, sizeof(int) * This->ClusterCount);
-@@ -4089,7 +4089,7 @@
- * to avoid crashing out if we hit the OS-level file-size limit:
- */
- FileNumber[ClusterIndex] = FileNumber[ClusterIndex] + 1;
-- fclose(OutputFiles[ClusterIndex]);
-+ safe_fclose(OutputFiles[ClusterIndex]);
- FirstOutputFlag[ClusterIndex] = 1;
- FirstFlag = 1;
- }
-diff -urN amber11.orig/AmberTools/src/ptraj/io.c amber11/AmberTools/src/ptraj/io.c
---- amber11.orig/AmberTools/src/ptraj/io.c 2010-03-31 07:05:16.000000000 +0400
-+++ amber11/AmberTools/src/ptraj/io.c 2011-03-08 16:38:44.000000000 +0300
-@@ -673,6 +673,107 @@
- }
- }
-
-+/* gzipFileSize()
-+ * DRR: Return the uncompressed size in bytes of gzipped file by peeking
-+ * at the last 4 bytes.
-+ * NOTE: long long int should be equivalent to off_t.
-+ */
-+long long int gzipFileSize(char *filename) {
-+ FILE *infile;
-+ unsigned char b1,b2,b3,b4;
-+ long long int val,temp;
-+
-+ if (filename==NULL) return -1;
-+ if ( (infile = fopen(filename,"rb"))==NULL ) {
-+ fprintf(stdout,"Error: gzipFileSize: Could not open %s for reading.\n",filename);
-+ return -1;
-+ }
-+
-+ // Place 4 bytes from the end
-+ fseek(infile, -4, SEEK_END);
-+
-+ b1=0; b2=0; b3=0; b4=0;
-+ fread(&b4,1,1,infile);
-+ fread(&b3,1,1,infile);
-+ fread(&b2,1,1,infile);
-+ fread(&b1,1,1,infile);
-+
-+ val = 0;
-+ temp = (long long int) b1;
-+ temp <<= 24;
-+ val = val | temp;
-+ temp = (long long int) b2;
-+ temp <<= 16;
-+ val = val | temp;
-+ temp = (long long int) b3;
-+ temp <<= 8;
-+ val = val | temp;
-+ temp = (long long int) b4;
-+ val = val | temp;
-+
-+ //val = (b1 << 24) | (b2 << 16) + (b3 << 8) + b4;
-+
-+ fclose(infile);
-+
-+ if (prnlev>0) fprintf(stdout,"gzipFileSize: Uncompressed size of %s: %lli\n",filename,val);
-+
-+ return val;
-+}
-+
-+/*
-+ * bzip2FileSize()
-+ * DRR: Return the uncompressed size of bzip2 file in bytes by counting
-+ * all characters using bzcat and wc.
-+ */
-+long long int bzip2FileSize(char *filename) {
-+ long long int val;
-+ char *command;
-+ FILE *pipe;
-+
-+ if (filename==NULL) return -1;
-+ // Use bzcat <file> | wc -c to calc file size
-+ command=(char*) malloc( (15 + strlen(filename)) * sizeof(char));
-+ sprintf(command,"bzcat %s | wc -c",filename);
-+ if ((pipe=popen(command,"r"))==NULL) {
-+ fprintf(stdout,"Error: bzip2FileSize: Could not open %s for reading.\n",filename);
-+ fprintf(stdout," Check that bzcat and wc are present on your system.\n");
-+ return -1;
-+ }
-+ fscanf(pipe,"%lli",&val);
-+ pclose(pipe);
-+
-+ if (prnlev>0) fprintf(stdout,"bzip2FileSize: Uncompressed size of %s: %lli\n",filename,val);
-+
-+ return val;
-+}
-+
-+/*
-+ * zipFileSize()
-+ * DRR: Return the uncompressed size of zip file in bytes by counting
-+ * all characters using unzip and wc.
-+ */
-+long long int zipFileSize(char *filename) {
-+ long long int val;
-+ char *command;
-+ FILE *pipe;
-+
-+ if (filename==NULL) return -1;
-+ // Use unzip -p <file> | wc -c to calc file size
-+ command=(char*) malloc( (18 + strlen(filename)) * sizeof(char));
-+ sprintf(command,"unzip -p %s | wc -c",filename);
-+ if ((pipe=popen(command,"r"))==NULL) {
-+ fprintf(stdout,"Error: zipFileSize: Could not open %s for reading.\n",filename);
-+ fprintf(stdout," Check that unzip and wc are present on your system.\n");
-+ return -1;
-+ }
-+ fscanf(pipe,"%lli",&val);
-+ pclose(pipe);
-+
-+ if (prnlev>0) fprintf(stdout,"zipFileSize: Uncompressed size of %s: %lli\n",filename,val);
-+
-+ return val;
-+}
-+
- /* DAN ROE:
- * id_Filesig(): Attempt to identify the file type by first 3 hex vals.
- * A filename or an open stream should be supplied.
-@@ -689,7 +790,7 @@
- * -2: Internal error
- */
- int id_Filesig(char *filename, FILE *infile) {
-- int *h;
-+ unsigned char *h;
- int i, type;
-
- /* Check that either filename or infile is specified, but not both */
-@@ -712,7 +813,7 @@
- rewind(infile);
-
- /* Read first 3 bytes from file */
-- h=(int*) calloc(3,sizeof(int));
-+ h=(unsigned char*) calloc(3,sizeof(unsigned char));
- fread(h,1,1,infile);
- fread(h+1,1,1,infile);
- fread(h+2,1,1,infile);
-diff -urN amber11.orig/AmberTools/src/ptraj/io.h amber11/AmberTools/src/ptraj/io.h
---- amber11.orig/AmberTools/src/ptraj/io.h 2010-03-31 07:05:16.000000000 +0400
-+++ amber11/AmberTools/src/ptraj/io.h 2011-03-08 16:38:44.000000000 +0300
-@@ -76,6 +76,9 @@
-
- extern void doSystem(char *);
- extern char * promptToOpenFile( FILE **, char *, char *, char *);
-+extern long long int gzipFileSize(char *);
-+extern long long int bzip2FileSize(char *);
-+extern long long int zipFileSize(char *);
- extern int id_Filesig(char *,FILE *);
- extern int openFile( FILE **, char *, char *);
- extern int promptUserResponse(FILE *, FILE *, char *, char *, int);
-@@ -94,6 +97,9 @@
-
- extern void doSystem();
- extern char * promptToOpenFile();
-+extern long long int gzipFileSize();
-+extern long long int bzip2FileSize();
-+extern long long int zipFileSize();
- extern int id_Filesig();
- extern int openFile();
- extern int promptUserResponse();
-diff -urN amber11.orig/AmberTools/src/ptraj/ptraj.c amber11/AmberTools/src/ptraj/ptraj.c
---- amber11.orig/AmberTools/src/ptraj/ptraj.c 2010-04-23 18:17:17.000000000 +0400
-+++ amber11/AmberTools/src/ptraj/ptraj.c 2011-03-08 16:38:44.000000000 +0300
-@@ -2058,7 +2058,8 @@
- int lines_per_set;
- int start = 1;
- int stop = 1;
-- int frame_lines, frame_size, title_size, seekable;
-+ int frame_lines, title_size, seekable;
-+ long long int file_size, frame_size;
- long int endoffset;
- float *binposScratch;
- FILE *fp;
-@@ -2414,12 +2415,34 @@
- fprintf(stderr, "WARNING in %s: Could not find file status for %s\n", ROUTINE, filename);
- return NULL;
- }
-+
-+ // Determine Uncompressed File Size for Nframes calculation
-+ file_size=0;
-+ if (trajInfo->compressType==1) // Gzip
-+ file_size=gzipFileSize(filename);
-+ else if (trajInfo->compressType==2) // Bzip2
-+ file_size=bzip2FileSize(filename);
-+ else if (trajInfo->compressType==3) // Zip
-+ file_size=zipFileSize(filename);
-+ if (file_size<0) {
-+ fprintf(stdout,
-+ "ERROR in %s: Could not calculate uncompressed file size for %s\n",
-+ ROUTINE, filename);
-+ return NULL;
-+ }
-+ if (file_size==0) file_size=frame_stat.st_size;
-+
- if (prnlev>0)
-- fprintf(stdout,"[%i] Title offset %u Frame Size %u File size %lu\n",
-- worldrank,trajInfo->titleSize,trajInfo->frameSize,frame_stat.st_size);
-- if (((frame_stat.st_size - trajInfo->titleSize) % (trajInfo->frameSize)) == 0) {
-+ fprintf(stdout,"[%i] Title offset %u Frame Size %u File size %lli\n",
-+ worldrank,trajInfo->titleSize,trajInfo->frameSize,file_size);
-+ frame_size = (long long int) trajInfo->titleSize;
-+ file_size = file_size - frame_size; // Subtract title size from file total size.
-+ frame_size = (long long int) trajInfo->frameSize;
-+ trajInfo->Nframes = (int) (file_size / frame_size);
-+ if (prnlev>0) fprintf(stdout," File has %i frames.\n",trajInfo->Nframes);
-+ if ( (file_size % frame_size) == 0 ) {
- seekable = 1;
-- stop = (int) ((frame_stat.st_size - trajInfo->titleSize) / trajInfo->frameSize);
-+ stop = trajInfo->Nframes;
- } else {
- stop = -1;
- seekable = 0;
-@@ -2538,7 +2561,8 @@
- printfone(" With this version of the code, this will likely lead to program failure!!!\n");
- }
-
--
-+ // Set number of frames. Amber trajectory sets Nframes above
-+ if (trajInfo->Nframes==0 && stop>0) trajInfo->Nframes=stop;
- trajInfo->start = start;
- trajInfo->stop = stop;
- trajInfo->offset = 1;
-@@ -4182,7 +4206,7 @@
- fprintf(stderr,"Could not get replica temperature from file# %i\n",i);
- break;
- }
-- fprintf(stdout," Replica %i mytemp=%lf ",i,repTemp); //DEBUG
-+ if (prnlev>0) fprintf(stdout," Replica %i mytemp=%lf ",i,repTemp); //DEBUG
- if (repTemp==currentCoordinateInfo->remdtrajtemp) {
- if (prnlev>0) fprintf(stdout,
- " REMD target temperature (%lf) found (%lf) at replica index %i\n",
-@@ -7078,6 +7102,7 @@
- stackType *sp, *argumentStack;
- ptrajState *startingState, *currentState, **statep;
- char *continuation;
-+ int totalFrames;
-
- int readCoordinates;
- int processCoordinates;
-@@ -7140,8 +7165,8 @@
- */
-
- argumentStack = NULL;
-- while ( (bufferp = fgets(buffer, BUFFER_SIZE, infile)) != NULL &&
-- strcmp(bufferp, "go\n") != 0 ) {
-+ while ( (bufferp = fgets(buffer, BUFFER_SIZE, infile)) != NULL ) {
-+ if ( strncmp(bufferp, "go", 2) == 0 ) break;
-
- continuation = bufferp;
- while ( continuation != NULL ) {
-@@ -7218,18 +7243,25 @@
- */
-
- startingState->maxFrames = 0;
-+ totalFrames=0;
- for (sp = transformFileStack; sp != NULL; sp = sp->next) {
- currentCoordinateInfo = (coordinateInfo *) sp->entry;
-
-+ fprintf(stdout," %s: %i frames.\n",currentCoordinateInfo->filename,currentCoordinateInfo->Nframes);
-+
- startingState->maxFrames += (currentCoordinateInfo->stop -
- currentCoordinateInfo->start) /
- currentCoordinateInfo->offset + 1;
-+ // In case we dont know how many frames will be processed, use total number of frames
-+ totalFrames += currentCoordinateInfo->Nframes;
- }
-
- printfone("\nPTRAJ: Successfully read the input file.\n");
-- if (startingState->maxFrames == -1)
-+ if (startingState->maxFrames == -1) {
- printfone(" Coordinate processing will occur until EOF (unknown number of frames).\n");
-- else
-+ // Use total frames for action memory alloc.
-+ startingState->maxFrames = totalFrames;
-+ } else
- printfone(" Coordinate processing will occur on %i frames.\n",
- startingState->maxFrames);
- printfone(" Summary of I/O and actions follows:\n\n");
-diff -urN amber11.orig/AmberTools/src/ptraj/trajectory.c amber11/AmberTools/src/ptraj/trajectory.c
---- amber11.orig/AmberTools/src/ptraj/trajectory.c 2010-03-31 07:05:16.000000000 +0400
-+++ amber11/AmberTools/src/ptraj/trajectory.c 2011-03-08 16:38:44.000000000 +0300
-@@ -2341,15 +2341,22 @@
-
- /* trajFile_fseek()
- * Wrapper for fseek. Seek to a given frame.
-+ * fseeko is used for better compatibility with large files. To avoid
-+ * losing bits each variable is explicitly converted to off_t in offset
-+ * calculation.
- */
- int trajFile_fseek(coordinateInfo *C, int frame) {
- int err;
-+ off_t offset;
-
- if (C==NULL) return -1;
-
-- if (C->isMPI==0)
-- err=fseek(C->file, C->titleSize+(frame*C->frameSize), SEEK_SET);
-- else
-+ if (C->isMPI==0) {
-+ offset = (off_t) frame;
-+ offset *= (off_t) C->frameSize;
-+ offset += (off_t) C->titleSize;
-+ err=fseeko(C->file, offset, SEEK_SET);
-+ } else
- err=parallel_fseek(C,frame);
-
- return err;
-diff -urN amber11.orig/AmberTools/src/ptraj/trajectory.h amber11/AmberTools/src/ptraj/trajectory.h
---- amber11.orig/AmberTools/src/ptraj/trajectory.h 2010-03-31 07:05:16.000000000 +0400
-+++ amber11/AmberTools/src/ptraj/trajectory.h 2011-03-08 16:38:44.000000000 +0300
-@@ -168,6 +168,7 @@
- char *filename; // File name
- int start; // Frame to start processing
- int stop; // Frame to end processing
-+ int Nframes; // Total number of frames in the file.
- int offset; // # of frames to skip
- int append; // File will be appended to
- int isBox; // File has box information
-@@ -230,6 +231,7 @@
- _p_->filename = NULL; \
- _p_->start = 1; \
- _p_->stop = -1; \
-+ _p_->Nframes = 0; \
- _p_->offset = 1; \
- _p_->append = 0; \
- _p_->isBox = 0; \
-diff -urN amber11.orig/AmberTools/src/rism/amber_rism_interface.f amber11/AmberTools/src/rism/amber_rism_interface.f
---- amber11.orig/AmberTools/src/rism/amber_rism_interface.f 2010-04-07 16:55:55.000000000 +0400
-+++ amber11/AmberTools/src/rism/amber_rism_interface.f 2011-03-08 16:38:44.000000000 +0300
-@@ -501,7 +501,8 @@
- call timer_stop(TIME_REORIENT)
- !linproj predict
- call timer_start(TIME_CRDINTERP)
-- call fce_force(fce_o,ff,rism_3d%solu%ratu)
-+ if(rismprm%apply_rism_force==1)&
-+ call fce_force(fce_o,ff,rism_3d%solu%ratu)
- call timer_stop(TIME_CRDINTERP)
-
- call timer_start(TIME_REORIENT)
-@@ -537,16 +538,17 @@
- end if
- #else /*SANDER*/
- #endif /*SANDER*/
-- call rism3d_force(rism_3d,ff)
-- if(rismprm%zerofrc==1)then
-+ if(rismprm%apply_rism_force==1)then
-+ call rism3d_force(rism_3d,ff)
-+ if(rismprm%zerofrc==1)then
- #ifdef MPI
-- call corr_drift(ff,rism_3d%solu%mass,rism_3d%solu%natom,&
-- mpirank,mpisize,mpicomm)
-+ call corr_drift(ff,rism_3d%solu%mass,rism_3d%solu%natom,&
-+ mpirank,mpisize,mpicomm)
- #else
-- call corr_drift(ff,rism_3d%solu%mass,rism_3d%solu%natom)
-+ call corr_drift(ff,rism_3d%solu%mass,rism_3d%solu%natom)
- #endif /*MPI*/
-+ end if
- end if
--
- !get the excess chemical potential
- call timer_start(TIME_EXCHEM)
- if(rismprm%gauss_fluct == 0)then
-@@ -563,12 +565,12 @@
- #endif /*defined(MPI)*/
- end if
- call timer_stop(TIME_EXCHEM)
--
-+
- #ifdef RISM_CRDINTERP
- call timer_start(TIME_REORIENT)
- call orient(rism_3d,ff,qback)
- call timer_stop(TIME_REORIENT)
-- if(rismprm%fcestride >0)then
-+ if(rismprm%fcestride >0 .and. rismprm%apply_rism_force==1)then
- call timer_start(TIME_SAVECRDINTERP)
- call fce_update(fce_o,ff,rism_3d%solu%ratu)
- call timer_stop(TIME_SAVECRDINTERP)
-@@ -586,7 +588,6 @@
-
- end if
- if(rismprm%apply_rism_force==1) frc = frc+ff
-- call flush(6)
- return
- end subroutine rism_force
-
-@@ -1087,6 +1088,7 @@
- subroutine rism_writeSolvDistF(this,step)
- use amber_rism_interface
- use rism3d_opendx
-+ use safemem
- implicit none
- #if defined(MPI)
- include 'mpif.h'
-@@ -1097,9 +1099,18 @@
- character(len=16) :: cstep
- character(len=64) :: suffix
- integer :: unit = 99,iostat=0
-+#ifdef MPI
-+ integer :: err
-+ _REAL_, pointer::work(:,:,:)=>NULL()
-+#endif /*MPI*/
- #ifdef RISM_DEBUG
- write(6,*) "printrism"
- #endif
-+#ifdef MPI
-+ if(len_trim(guvfile) /= 0 .or. len_trim(huvfile) /= 0)then
-+ work => reallocate_pointer(work, this%ng3(1), this%ng3(2), this%nz_local)
-+ end if
-+#endif /*MPI*/
- !................... outputting Guv and Cuv profiles ...................
- do iv=1,this%solv%natom
- write(cstep,'(i16)') step
-@@ -1112,9 +1123,15 @@
- call mexit(6,1)
- end if
- # if defined(MPI)
-+ do k=1,this%nz_local
-+ do j=1,this%ng3(2)
-+ do i=1,this%ng3(1)
-+ work(i,j,k) = this%guv(i+(j-1)*(this%ng3(1)+2)+(k-1)*(this%ng3(1)+2)*this%ng3(2),iv)
-+ end do
-+ end do
-+ end do
- call writeDX(unit,&
-- (/(((this%guv(i+(j-1)*(this%ng3(1)+2)+(k-1)*(this%ng3(1)+2)*this%ng3(2),iv)&
-- ,i=1,this%ng3(1)),j=1,this%ng3(2)),k=1,this%nz_local)/),&
-+ work,&
- this%boxlen,this%ng3_local,this%ng3(3),this%ratucm,&
- mpirank,mpisize,mpicomm)
- # else
-@@ -1131,9 +1148,16 @@
- call mexit(6,1)
- end if
- # if defined(MPI)
-+
-+ do k=1,this%nz_local
-+ do j=1,this%ng3(2)
-+ do i=1,this%ng3(1)
-+ work(i,j,k) =this%huv(i+(j-1)*(this%ng3(1)+2)+(k-1)*(this%ng3(1)+2)*this%ng3(2),iv)
-+ end do
-+ end do
-+ end do
- call writeDX(unit,&
-- (/(((this%huv(i+(j-1)*(this%ng3(1)+2)+(k-1)*(this%ng3(1)+2)*this%ng3(2),iv)&
-- ,i=1,this%ng3(1)),j=1,this%ng3(2)),k=1,this%nz_local)/),&
-+ work,&
- this%boxlen,this%ng3_local,this%ng3(3),this%ratucm,&
- mpirank,mpisize,mpicomm)
- # else
-@@ -1160,6 +1184,9 @@
- if(mpirank==0)close(unit)
- endif
- end do
-+#ifdef MPI
-+ err = safe_deallocate(work)
-+#endif /*MPI*/
- end subroutine rism_writeSolvDistF
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-diff -urN amber11.orig/AmberTools/src/rism/rism3d_c.f amber11/AmberTools/src/rism/rism3d_c.f
---- amber11.orig/AmberTools/src/rism/rism3d_c.f 2010-04-07 16:55:55.000000000 +0400
-+++ amber11/AmberTools/src/rism/rism3d_c.f 2011-03-08 16:38:44.000000000 +0300
-@@ -911,7 +911,7 @@
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- subroutine rism3d_aexchem_sp (this,xmu0,xmu0sp,egf)
- use constants, only : PI,KB,AMBER_ELECTROSTATIC2
-- use rism_util, only : gaussquad_legendre
-+ use rism_util, only : gaussquad_legendre, checksum
- implicit none
- #if defined(MPI)
- include 'mpif.h'
-@@ -947,132 +947,130 @@
- call flush(6)
- #endif /*RISM_DEBUG*/
-
-+ !.....total charge of solute
-+ qut = sum(this%solu%charge)
- !.....getting the numerical long-range contribution
- egf = 0
-- eqkt = AMBER_ELECTROSTATIC2/KB/this%solv%temperature
--
-- Nintmx = 200
-- if(Nintmx > ntvlmx)then
-- write(6,'(1X,"Nintmx gt ntvlmx",I10)')ntvlmx
-- call mexit(6,1)
-- endif
--
-- !.....initialize gauss-legendre integration
-- call gaussquad_legendre (0d0,1d0,argum,weight,Nintmx)
-- sumhc = 0.d0
-- sumh2 = 0.d0
--
-- !.....k loop
-- do ik = 1, Nintmx
--
-- k = argum(ik)/(1.d0-argum(ik))
--
-- !.....Bessel part
-- sumb = 0.d0
--
-- do i=2,this%solu%natom
-- do j=1,i-1
--
-- !......... site separation ..........
-- dx = this%solu%ratu(1,i) - this%solu%ratu(1,j)
-- dy = this%solu%ratu(2,i) - this%solu%ratu(2,j)
-- dz = this%solu%ratu(3,i) - this%solu%ratu(3,j)
--
-- r2 = dx*dx + dy*dy + dz*dz
--
-- xarg = this%solv%xappa*k*sqrt(r2)
-- if(xarg == 0.d0) &
-- sumb = sumb + 1.d0*this%solu%charge(i)*this%solu%charge(j)
-- if(xarg /= 0.d0) &
-- sumb = sumb + sin(xarg)/xarg *this%solu%charge(i)*this%solu%charge(j)
-
-+ if(this%mpirank==0)then
-+ eqkt = AMBER_ELECTROSTATIC2/KB/this%solv%temperature
-+ Nintmx = 200
-+ if(Nintmx > ntvlmx)then
-+ write(6,'(1X,"Nintmx gt ntvlmx",I10)')ntvlmx
-+ call mexit(6,1)
-+ endif
-+
-+ !.....initialize gauss-legendre integration
-+ call gaussquad_legendre (0d0,1d0,argum,weight,Nintmx)
-+ sumhc = 0.d0
-+ sumh2 = 0.d0
-+
-+ !.....k loop
-+ do ik = 1, Nintmx
-+
-+ k = argum(ik)/(1.d0-argum(ik))
-+
-+ !.....Bessel part
-+ sumb = 0.d0
-+
-+ do i=2,this%solu%natom
-+ do j=1,i-1
-+
-+ !......... site separation ..........
-+ dx = this%solu%ratu(1,i) - this%solu%ratu(1,j)
-+ dy = this%solu%ratu(2,i) - this%solu%ratu(2,j)
-+ dz = this%solu%ratu(3,i) - this%solu%ratu(3,j)
-+
-+ r2 = dx*dx + dy*dy + dz*dz
-+
-+ xarg = this%solv%xappa*k*sqrt(r2)
-+ if(xarg == 0.d0) &
-+ sumb = sumb + 1.d0*this%solu%charge(i)*this%solu%charge(j)
-+ if(xarg /= 0.d0) &
-+ sumb = sumb + sin(xarg)/xarg *this%solu%charge(i)*this%solu%charge(j)
-+
-+ enddo
- enddo
-- enddo
--
-- sumb = sumb*2.d0
--
-- do i=1,this%solu%natom
-- sumb = sumb + 1.d0*this%solu%charge(i)*this%solu%charge(i)
-- enddo
--
-- !.....end of Bessel part
--
-- x2arg = (k*this%solv%xappa*this%solv%smear)**2
-- k2 = k**2
--
-- denom = argum(ik)**2+(1.0d0-argum(ik))**2
--
-- sumhc = sumhc + &
-- exp(-x2arg/2.d0)/denom*sumb*weight(ik)
-- sumh2 = sumh2 + &
-- exp(-x2arg/2.d0)*argum(ik)**2/(denom**2)*sumb*weight(ik)
--
-- enddo
--
-- !.....end of k-loop
--
-- !.....total charge of solute
-- qut = 0.d0
-- do i = 1,this%solu%natom
-- qut = qut + this%solu%charge(i)
-- enddo
-- !.....site xappa
-- if (this%closure == KH) then
-+
-+ sumb = sumb*2.d0
-+
-+ do i=1,this%solu%natom
-+ sumb = sumb + 1.d0*this%solu%charge(i)*this%solu%charge(i)
-+ enddo
-+
-+ !.....end of Bessel part
-+
-+ x2arg = (k*this%solv%xappa*this%solv%smear)**2
-+ k2 = k**2
-+
-+ denom = argum(ik)**2+(1.0d0-argum(ik))**2
-+
-+ sumhc = sumhc + &
-+ exp(-x2arg/2.d0)/denom*sumb*weight(ik)
-+ sumh2 = sumh2 + &
-+ exp(-x2arg/2.d0)*argum(ik)**2/(denom**2)*sumb*weight(ik)
-+
-+ enddo
-+
-+ !.....end of k-loop
-+
-+ !.....site xappa
-+ if (this%closure == KH) then
-+ do iv = 1,this%solv%natom
-+ if(qut*this%solv%charge_sp(iv) <= 0.d0) &
-+ xmuh2lr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge_sp(iv)**2
-+ if(qut*this%solv%charge_sp(iv) > 0.d0) &
-+ xmuh2lr(iv) = 0.d0
-+ xmuhclr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge(iv)*this%solv%charge_sp(iv)
-+ enddo
-+ else
-+ do iv = 1,this%solv%natom
-+ xmuh2lr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge_sp(iv)**2
-+ xmuhclr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge(iv)*this%solv%charge_sp(iv)
-+ enddo
-+ endif
-+
-+ !.....unit for xappa
- do iv = 1,this%solv%natom
-- if(qut*this%solv%charge_sp(iv) <= 0.d0) &
-- xmuh2lr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge_sp(iv)**2
-- if(qut*this%solv%charge_sp(iv) > 0.d0) &
-- xmuh2lr(iv) = 0.d0
-- xmuhclr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge(iv)*this%solv%charge_sp(iv)
-+ xmuh2lr(iv) = xmuh2lr(iv) * eqkt
-+ xmuhclr(iv) = xmuhclr(iv) * eqkt
- enddo
-- else
-+
-+ !.....divided by total xappa
-+ if(this%solv%xappa /= 0.d0)then
-+ do iv = 1,this%solv%natom
-+ xmuh2lr(iv) = xmuh2lr(iv) / this%solv%xappa
-+ xmuhclr(iv) = xmuhclr(iv) / this%solv%xappa
-+ enddo
-+ else
-+ do iv = 1,this%solv%natom
-+ xmuh2lr(iv) = 0.d0
-+ xmuhclr(iv) = 0.d0
-+ enddo
-+ endif
-+
-+ !.....multiplying xmulr by integral
- do iv = 1,this%solv%natom
-- xmuh2lr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge_sp(iv)**2
-- xmuhclr(iv) = 4.d0*PI/(this%solv%dielconst) * this%solv%rho(iv)*this%solv%charge(iv)*this%solv%charge_sp(iv)
-+ xmuh2lr(iv) = xmuh2lr(iv)*sumh2
-+ xmuhclr(iv) = - xmuhclr(iv)*sumhc
- enddo
-- endif
--
-- !.....unit for xappa
-- do iv = 1,this%solv%natom
-- xmuh2lr(iv) = xmuh2lr(iv) * eqkt
-- xmuhclr(iv) = xmuhclr(iv) * eqkt
-- enddo
--
-- !.....divided by total xappa
-- if(this%solv%xappa /= 0.d0)then
-+
-+ sumh2 = 0.d0
-+ sumhc = 0.d0
- do iv = 1,this%solv%natom
-- xmuh2lr(iv) = xmuh2lr(iv) / this%solv%xappa
-- xmuhclr(iv) = xmuhclr(iv) / this%solv%xappa
-+ sumh2 = sumh2 + xmuh2lr(iv)
-+ sumhc = sumhc + xmuhclr(iv)
- enddo
-- else
-+
-+ !.....J devided by KT
-+ sumh2 = sumh2 / (PI*this%solv%dielconst) * eqkt
-+ sumhc = sumhc / PI * eqkt
- do iv = 1,this%solv%natom
-- xmuh2lr(iv) = 0.d0
-- xmuhclr(iv) = 0.d0
-+ xmuh2lr(iv) = xmuh2lr(iv) / (PI*this%solv%dielconst) * eqkt
-+ xmuhclr(iv) = xmuhclr(iv) / PI * eqkt
- enddo
-- endif
--
-- !.....multiplying xmulr by integral
-- do iv = 1,this%solv%natom
-- xmuh2lr(iv) = xmuh2lr(iv)*sumh2
-- xmuhclr(iv) = - xmuhclr(iv)*sumhc
-- enddo
--
-- sumh2 = 0.d0
-- sumhc = 0.d0
-- do iv = 1,this%solv%natom
-- sumh2 = sumh2 + xmuh2lr(iv)
-- sumhc = sumhc + xmuhclr(iv)
-- enddo
--
-- !.....J devided by KT
-- sumh2 = sumh2 / (PI*this%solv%dielconst) * eqkt
-- sumhc = sumhc / PI * eqkt
-- do iv = 1,this%solv%natom
-- xmuh2lr(iv) = xmuh2lr(iv) / (PI*this%solv%dielconst) * eqkt
-- xmuhclr(iv) = xmuhclr(iv) / PI * eqkt
-- enddo
-- xmulr = sumh2 + sumhc
--
-+ xmulr = sumh2 + sumhc
-+ end if
- !.................. calculating xMu0 by PLHNC closure ..................
- if (this%closure == KH) then
- dxmu = 0.d0
-@@ -1232,13 +1230,20 @@
- xmu0sp(iv) = xmu0sp(iv) * (this%boxvol/this%ngr)
- enddo
-
-- !.....add long-range part
-- xmu0 = xmu0 + (xmulr)
-- egf = egf + (xmulr)
-- do iv=1,this%solv%natom
-- xmu0sp(iv) = xmu0sp(iv) + xmuh2lr(iv) + xmuhclr(iv)
-- enddo
--
-+ !.....add long-range part but only on the master process so we don't over count
-+ !.....this contribution.
-+!!$ write(0,*) "pre lr", this%mpirank, xmu0
-+!!$ write(0,*) checksum(this%huv,product(shape(this%huv)),this%mpicomm), &
-+!!$ checksum(this%cuv,product(shape(this%cuv)),this%mpicomm), &
-+!!$ checksum(this%uuv,product(shape(this%uuv)),this%mpicomm)
-+ if(this%mpirank==0)then
-+ xmu0 = xmu0 + (xmulr)
-+ egf = egf + (xmulr)
-+ do iv=1,this%solv%natom
-+ xmu0sp(iv) = xmu0sp(iv) + xmuh2lr(iv) + xmuhclr(iv)
-+ enddo
-+ end if
-+!!$ write(0,*) "post lr", this%mpirank, xmu0
- return
- end subroutine rism3d_aexchem_sp
-
-@@ -2322,6 +2327,7 @@
- subroutine asympch(this,huvk0)
- use constants, only : PI, FOURPI,&
- AMBER_ELECTROSTATIC2,KB
-+ use rism_util, only : checksum
- implicit none
- #if defined(MPI)
- include 'mpif.h'
-@@ -2339,9 +2345,7 @@
- _REAL_ :: xappa2,smear2_4
- _REAL_ :: asymhr_coeff
- _REAL_,save :: asymhr_coeff_at_cut=0,asymcr_coeff_at_cut=0
-- _REAL_,save :: erfcAtCut=0,erfcAtNegCut=0,cut=15.5d0
--!! _REAL_,save :: erfcAtCut=0,erfcAtNegCut=0,cut=999d0
--! !linear spacing of the grid
-+ _REAL_,save :: erfcAtCut=0,erfcAtNegCut=0,cut=4d0,maxcut
- !offset :: z-axis offset (important for spatially distributed MPI)
- _REAL_ :: offset
- ! !number of gridpoints in each direction to use
-@@ -2351,7 +2355,7 @@
- _REAL_ :: erfc
- external erfc
- integer :: irank,ierr,i
-- _REAL_:: checksum,mpitmp
-+ _REAL_:: mpitmp
-
- half_smear_root_pi=sqrt(PI)*this%solv%smear/2d0
- half_xappa_smear=this%solv%xappa*this%solv%smear/2d0
-@@ -2361,7 +2365,9 @@
- asymhr_coeff=exp(-(this%solv%xappa**2)*(this%solv%smear**2)/4d0)* &
- (2d0*exp(-(this%solv%smear*this%solv%xappa/2d0)**2)/(sqrt(PI)*this%solv%smear) &
- - this%solv%xappa * erfc(this%solv%xappa*this%solv%smear/2d0))
-- do while(exp(-quarter_xappa2_smear2)-asymhr_coeff_at_cut > 1d-7 .and. 1d0-asymcr_coeff_at_cut > 1d-7)
-+ maxcut = sqrt(sum(this%boxlen**2))
-+ do while((exp(-quarter_xappa2_smear2)-asymhr_coeff_at_cut > 1d-7 .or. 1d0-asymcr_coeff_at_cut > 1d-7)&
-+ .and. cut < maxcut)
- erfcAtCut = erfc(cut)
- erfcAtNegCut = erfc(-cut)
- asymhr_coeff_at_cut=exp(-quarter_xappa2_smear2) &
-@@ -2370,10 +2376,10 @@
- !(erfcAtNegCut - erfcAtCut)/2d0
- asymcr_coeff_at_cut=(1d0-erfc(cut/this%solv%smear))
- cut = cut+.1d0
-- ! write(6,*)'cut coeff',asymhr_coeff_at_cut,asymcr_coeff_at_cut
-+! write(0,*)'cut coeff',this%mpirank,asymhr_coeff_at_cut,asymcr_coeff_at_cut
- end do
- #ifdef RISM_DEBUG
-- write(6,*)'cut coeff',cut,asymhr_coeff_at_cut,asymcr_coeff_at_cut
-+ write(0,*)'cut coeff',cut,exp(-quarter_xappa2_smear2)-asymhr_coeff_at_cut,asymcr_coeff_at_cut
- #endif /*RISM_DEBUG*/
- !.....initialize
- this%asymcr=0d0
-@@ -2569,7 +2575,7 @@
- this%asymcr = this%asymcr * factor
- this%asymhr = this%asymhr * factor
- this%asymck = this%asymck * (factor / this%boxvol)
-- this%asymhk = this%asymhk * (factor / this%boxvol)/2d0/PI**2
-+ this%asymhk = this%asymhk * (factor / this%boxvol)
-
- !?WHY IS THIS ONLY FOR ny_start==0?!
- if(this%ny_start==0)then
-@@ -2591,35 +2597,22 @@
- end if
- #ifdef RISM_DEBUG
- # ifdef MPI
-- checksum = sum(this%asymck)
--# ifdef USE_MPI_IN_PLACE
-- call mpi_allreduce(MPI_IN_PLACE,checksum,1,MPI_DOUBLE_PRECISION,mpi_sum,this%mpicomm,ierr)
--# else
-- call mpi_allreduce(checksum,mpitmp,1,MPI_DOUBLE_PRECISION,mpi_sum,this%mpicomm,ierr)
-- checksum = mpitmp
--# endif /*USE_MPI_IN_PLACE*/
-- if(this%mpirank == 0)then
-- write(6,*) "SUM this%asymck", this%mpirank, checksum
-+ write(6,*) "SUM this%asymhr", this%mpirank, &
-+ checksum(this%asymhr,product(shape(this%asymhr)), this%mpicomm), sum(this%asymhr)
-+ write(6,*) "SUM this%asymcr", this%mpirank, &
-+ checksum(this%asymcr,product(shape(this%asymcr)), this%mpicomm), sum(this%asymcr)
- call flush(6)
-- end if
-- checksum = sum(this%asymhk)
--# ifdef USE_MPI_IN_PLACE
-- call mpi_allreduce(MPI_IN_PLACE,checksum,1,MPI_DOUBLE_PRECISION,mpi_sum,this%mpicomm,ierr)
--# else
-- call mpi_allreduce(checksum,mpitmp,1,MPI_DOUBLE_PRECISION,mpi_sum,this%mpicomm,ierr)
-- checksum = mpitmp
--# endif /*USE_MPI_IN_PLACE*/
-- if(this%mpirank == 0)then
-- write(6,*) "SUM this%asymhk", this%mpirank, checksum
-- call flush(6)
-- end if
- # else
-- write(6,*)"SUM this%asymcr ",size(this%asymcr),sum(this%asymcr),&
-- sum(this%asymcr(1:this%ngr_local/2)),sum(this%asymcr(this%ngr_local/2+1:this%ngr_local))
-- write(6,*)"SUM this%asymhr ",size(this%asymhr),sum(this%asymhr),&
-- sum(this%asymhr(1:this%ngr_local/2)),sum(this%asymhr(this%ngr_local/2+1:this%ngr_local))
-+ write(6,*) cut, asymhr_coeff_at_cut, asymcr_coeff_at_cut
-+ write(6,*)"SUM this%asymcr ",size(this%asymcr),sum(this%asymcr),&
-+ sum(this%asymcr(1:this%ngr_local/2)),sum(this%asymcr(this%ngr_local/2+1:this%ngr_local))
-+ write(6,*)"SUM this%asymhr ",size(this%asymhr),sum(this%asymhr),&
-+ sum(this%asymhr(1:this%ngr_local/2)),sum(this%asymhr(this%ngr_local/2+1:this%ngr_local))
-+ stop
-+# endif /*MPI */
- #endif /*RISM_DEBUG*/
- #ifdef RISM_DEBUG
-+# ifdef MPI
- write(6,*) "RANK",this%mpirank,factor,this%boxvol
- write(6,'(a,i4,f15.10,f15.10)') "SUM this%asymck",this%ngk,sum(this%asymck),sum(this%asymck(3:))
- write(6,'(a,i4,f15.10,f15.10)') "SUM this%asymhk",this%ngk,sum(this%asymhk),sum(this%asymhk(3:))
-diff -urN amber11.orig/AmberTools/src/rism/rism3d_opendx.f amber11/AmberTools/src/rism/rism3d_opendx.f
---- amber11.orig/AmberTools/src/rism/rism3d_opendx.f 2010-04-07 16:55:55.000000000 +0400
-+++ amber11/AmberTools/src/rism/rism3d_opendx.f 2011-03-08 16:38:44.000000000 +0300
-@@ -55,28 +55,37 @@
- contains
- subroutine writeDX (unit, data, rism_box, n,nz_total,ratucm &
- #ifdef MPI
-- ,rank,size,comm &
-+ ,rank,nproc,comm &
- #endif /*MPI*/
- )
-+ use safemem
- implicit none
- #if defined(MPI)
- include 'mpif.h'
-- integer, intent(in) :: rank,size,comm
-+ integer, intent(in) :: rank,nproc,comm
- #else
-- integer,parameter :: rank = 0, size=1
-+ integer,parameter :: rank = 0, nproc=1
- #endif /*defined(MPI)*/
- integer, intent(in) :: nz_total
- integer,intent(in) :: unit, n(3)
- _REAL_,intent(in) :: data(n(1),n(2),n(3)), rism_box(3),ratucm(3)
- integer :: i,j,k, irank, ierr,count,icount
-- integer :: nz_offset(size),nz_local(size)
-+ integer :: nz_offset(nproc),nz_local(nproc)
- integer, parameter :: dataperline=3
-- _REAL_ :: z_data(nz_total)
-+#ifdef MPI
-+ integer :: err
-+ _REAL_,pointer :: z_data(:)=>NULL()
-+#endif /*MPI*/
- #ifdef RISM_DEBUG
-+
- write(6,*) "writeDX",rism_box,ratucm
- call flush(6)
- #endif /*RISM_DEBUG*/
--
-+!!$ do i = 1,nproc
-+!!$ if(rank==i)&
-+!!$ write(0,*) "DX",rank,sum(data)/(rank+1),n(3)
-+!!$ call mpi_barrier(comm,ierr)
-+!!$ end do
- if(rank==0)then
- write(unit,"(a,i8,i8,i8)") "object 1 class gridpositions counts",n(1),n(2),nz_total
- write(unit,"(a,3(f15.8))") "origin ",ratucm(1)-rism_box(1)/2,ratucm(2)-rism_box(2)/2,ratucm(3)-rism_box(3)/2
-@@ -89,9 +98,14 @@
- end if
- count = 0
- #if defined(MPI)
-+ z_data =>reallocate_pointer(z_data,nz_total)
- call mpi_gather(n(3),1,mpi_integer,nz_local,1,mpi_integer,0,comm,ierr)
- nz_offset(1) = 0
-- nz_offset(2:) = nz_local(1:size-1)
-+ do i = 2, nproc
-+ nz_offset(i) =sum( nz_local(1:i-1))
-+ end do
-+!!$ if(rank==0)&
-+!!$ write(0,*) "NZ",rank,nz_offset, nz_local
- #endif /*defined(MPI)*/
- do i=1,n(1)
- do j=1,n(2)
-@@ -122,5 +136,8 @@
- end if
- write(unit,"(a)") 'object "Untitled" call field'
- end if
-+#ifdef MPI
-+ err = safe_deallocate(z_data)
-+#endif /*MPI*/
- end subroutine writeDX
- end module rism3d_opendx
-diff -urN amber11.orig/AmberTools/src/rism/rism_fft.f amber11/AmberTools/src/rism/rism_fft.f
---- amber11.orig/AmberTools/src/rism/rism_fft.f 2010-04-07 16:55:55.000000000 +0400
-+++ amber11/AmberTools/src/rism/rism_fft.f 2011-03-08 16:38:44.000000000 +0300
-@@ -205,19 +205,23 @@
- ! Normalizing while Forward FFT (KEY=1) *
- !***********************************************************************
- subroutine rlft3i (data, ng3, key,n_local,plan)
-+ use safemem
- implicit none
- integer :: ng3(3), key
- integer :: n_local
- integer*8,intent(in) :: plan
-- _REAL_ :: data((ng3(1)+2)*ng3(2)*n_local)
-- _REAL_ :: work((ng3(1)+2)*ng3(2)*n_local)
-+! _REAL_ :: data((ng3(1)+2)*ng3(2)*n_local)
-+! _REAL_ :: work((ng3(1)+2)*ng3(2)*n_local)
-+ _REAL_ :: data(:)
-+ _REAL_,pointer :: work(:)
- integer :: ngr, ngr_local,ngk_local, ig, ierr
- integer, parameter :: FFTW_TRANSPOSED_ORDER=1, FFTW_NORMAL_ORDER=0
- !....................... R-space data array size .......................
- # ifdef RISM_DEBUG
-- write(6,*) "rlft3i",n_local
-- call flush(6)
-+ write(0,*) "rlft3i",n_local
-+ call flush(0)
- # endif /*RISM_DEBUG*/
-+ work=>reallocate_pointer(work,size(data))
- ngr = ng3(1)*ng3(2)*ng3(3)
- ngr_local = ng3(1)*ng3(2)*n_local
- ngk_local = (ng3(1)+2)*ng3(2)*n_local
-@@ -230,6 +234,7 @@
- call rfftwnd_f77_mpi( plan,1,data,work,1, &
- FFTW_TRANSPOSED_ORDER)
- end if
-+ ierr = safe_deallocate(work)
- end subroutine rlft3i
-
- #else /*defined(MPI)*/
-diff -urN amber11.orig/AmberTools/src/sff/mm_options.l amber11/AmberTools/src/sff/mm_options.l
---- amber11.orig/AmberTools/src/sff/mm_options.l 2010-03-31 07:05:17.000000000 +0400
-+++ amber11/AmberTools/src/sff/mm_options.l 2011-03-08 16:38:44.000000000 +0300
-@@ -75,7 +75,7 @@
- dynamic_loops[=\ ][01] { ECHO; dynamic_loops = atoi( &yytext[14] ); }
- static_arrays[=\ ][01] { ECHO; static_arrays = atoi( &yytext[14] ); }
- blocksize[=\ ][0-9]+ { ECHO; blocksize = atoi( &yytext[10] ); }
--gbsa[=\ ][0-5] { ECHO; gbsa = atoi( &yytext[5] ); }
-+gbsa[=\ ][01] { ECHO; gbsa = atoi( &yytext[5] ); }
- dim[=\ ][34] { ECHO; dim = atoi( &yytext[4] ); }
-
- rism[=\ ][01] { ECHO; rismData.rism = atoi( &yytext[5] ); }
-diff -urN amber11.orig/AmberTools/src/sff/sff2.c amber11/AmberTools/src/sff/sff2.c
---- amber11.orig/AmberTools/src/sff/sff2.c 2010-03-31 07:05:17.000000000 +0400
-+++ amber11/AmberTools/src/sff/sff2.c 2011-03-08 16:38:44.000000000 +0300
-@@ -1384,6 +1384,7 @@
- e = ct2 * (ct2 * (ct2 * 32.0 - 48.0) + 18.0) - 1.0;
- df = ct * (ct2 * (ct2 * 192.0 - 192.0) + 36.0);
- ddf = ct2 * (ct2 * 960.0 - 576.0) + 36.0;
-+ break;
-
- default:
- fprintf(stderr, "bad periodicity: %d\n", iper);
-@@ -4557,7 +4558,7 @@
- qi2h = 0.5 * qi * qi;
- qid2h = qi2h * dielfac;
-
-- if ((gbsa == 1) || (gbsa == 4) || (gbsa == 5)) {
-+ if ((gbsa == 4) || (gbsa == 5)) {
- vdwdenom = 1.0 / (ri + rwater);
- vdwterm =
- alphanp * (prm->Gvdw[i]) * vdwdenom * vdwdenom *
-diff -urN amber11.orig/AmberTools/src/sqm/qm2_load_params_and_allocate.f amber11/AmberTools/src/sqm/qm2_load_params_and_allocate.f
---- amber11.orig/AmberTools/src/sqm/qm2_load_params_and_allocate.f 2010-04-14 16:13:28.000000000 +0400
-+++ amber11/AmberTools/src/sqm/qm2_load_params_and_allocate.f 2011-03-08 16:38:44.000000000 +0300
-@@ -136,9 +136,12 @@
- n_atomic_orb=natomic_orbs(iqm_atomic)
- if (n_atomic_orb>1) nheavy_atoms=nheavy_atoms+1
- ! Check we don't bust any static arrays
-- if (n_atomic_orb > MAX_VALENCE_ORBITALS) then
-- write (6,*) 'n_atomic_orb of ',n_atomic_orb,' exceeds max_valence_orbitals of MAX_VALENCE_ORBITALS'
-- call sander_bomb('qm2_load_params.f','exceeded max','Check qmmm_module.f and parameters.h')
-+ ! DFTB is independent of this and checks are done in qm2_dftb_load_params
-+ if ( .not. qmmm_nml%qmtheory%DFTB ) then
-+ if (n_atomic_orb > MAX_VALENCE_ORBITALS) then
-+ write (6,*) 'n_atomic_orb of ',n_atomic_orb,' exceeds max_valence_orbitals of MAX_VALENCE_ORBITALS'
-+ call sander_bomb('qm2_load_params.f','exceeded max','Check qmmm_module.f and parameters.h')
-+ end if
- end if
- qm2_params%natomic_orbs(i)=n_atomic_orb
- qm2_params%orb_loc(1,i)=qm2_struct%norbs+1
-diff -urN amber11.orig/AmberTools/src/sqm/qm2_scf.f amber11/AmberTools/src/sqm/qm2_scf.f
---- amber11.orig/AmberTools/src/sqm/qm2_scf.f 2010-03-31 07:05:17.000000000 +0400
-+++ amber11/AmberTools/src/sqm/qm2_scf.f 2011-03-08 16:38:44.000000000 +0300
-@@ -33,9 +33,9 @@
- qm_gb, qmmm_mpi, qmmm_scratch
- use constants, only : EV_TO_KCAL, zero, two
-
-- use qm2_iterator_mod, only : scf_iterator_value
-- use qm2_iterator_mod, only : diis_iterator_value
-- use qm2_iterator_mod, only : remaining_diis_tokens
-+ use qm2_iterator_mod, only : scf_iterator_value ! this is an integer function
-+ use qm2_iterator_mod, only : diis_iterator_value ! this is an integer function
-+ use qm2_iterator_mod, only : remaining_diis_tokens ! this is an integer function
-
-
- implicit none
-@@ -75,21 +75,24 @@
- !again. This is used to force the last few SCF steps to be full diagonalisations.
- logical fock_predict_active !Set to true if we are attempting to predict the fock matrix on this QMMM call.
-
-- logical diis_is_off, errmat_is_converged
- character(len=1) :: fock_extrap_flag
-- logical dont_turn_off_diis
-
-+ ! DIIS
-+ ! While DIIS will accelerate SCF convergence it will do so at a very high cost
-+ ! since Fock matrix builds and diagonalizations for semiempirical methods are
-+ ! cheaper than the overhead generated by the matrix multiplications required for DIIS
-+ ! Thus switch DIIS only on if we have difficulty in converging the SCF
-+ ! switch DIIS on after SCF step 100 if user turns on DIIS by setting ndiis_attempts > 0
-+ integer, parameter :: switch_on_diis = 100 ! don't set this to values lower than 3!!!
-+ ! switch DIIS on as a last resort if SCF did not converge until iteration 800
-+ integer, parameter :: switch_on_diis_last_resort = 800
-+ logical diis_is_off, errmat_is_converged, errmat_is_on
-+ logical dont_turn_off_diis
- _REAL_ :: errval
-
--! scf_iterator_value is a function
--! integer :: scf_iterator_value
--
- ! current_scf_errval is a function
- _REAL_ :: current_scf_errval
-
--! remaining_diis_tokens is a function
--! integer :: remaining_diis_tokens
--
- !qm2_Helect is a function
- _REAL_ qm2_HELECT
-
-@@ -141,12 +144,13 @@
- ! i = remaining_diis_tokens( qmmm_nml%ndiis_attempts )
- i = remaining_diis_tokens( 0 )
- dont_turn_off_diis = .FALSE.
-+ diis_is_off = qmmm_nml%ndiis_attempts < 1 .OR. qmmm_nml%ndiis_matrices < 2
-+ errmat_is_on = qmmm_nml%errconv < 1.0D-02
-+ errval = -1.0D0 ! initialize errval to unrealistic value
-
- fock_extrap_flag = " "
-
-
--
--
- if (qmmm_nml%verbosity > 2 .and. qmmm_mpi%commqmmm_master) then
- write(6,'("QMMM: ")')
- write(6,'("QMMM: SCF Convergence Information")')
-@@ -214,8 +218,18 @@
- energy_diff = scf_energy - eold
-
- if (qmmm_mpi%commqmmm_master) then
-- CALL pack_diis(SIZE(fock_matrix),fock_matrix,den_matrix)
-- errval = current_scf_errval()
-+ ! do this only if we need it, this seriously affects performance
-+ if ( .not. errmat_is_on ) then
-+ ! check if we shall switch calculation of the error matrix on for diis
-+ if ( ( ( .not. diis_is_off ) .and. (scf_iteration+qmmm_nml%ndiis_matrices >= switch_on_diis) ) &
-+ .or. (scf_iteration+qmmm_nml%ndiis_matrices >= switch_on_diis_last_resort) ) then
-+ errmat_is_on = .true.
-+ end if
-+ end if
-+ if ( errmat_is_on ) then
-+ CALL pack_diis(SIZE(fock_matrix),fock_matrix,den_matrix)
-+ errval = current_scf_errval()
-+ end if
- end if
-
-
-@@ -290,7 +304,7 @@
- ! IF THE USER REQUESTED US TO!! The default value of
- ! qmmm_nml%ndiis_attempts is 0, so this requires a form
- ! of human intervention
-- if ( scf_iteration == 100 ) then
-+ if ( scf_iteration == switch_on_diis ) then
- i = remaining_diis_tokens( qmmm_nml%ndiis_attempts )
- dont_turn_off_diis = .TRUE.
-
-@@ -306,7 +320,7 @@
- ! turn the (default OFF) diis parameters on.
- ! I guess we should turn diis ON for the user.
- ! I mean, we're at iteration #800. What else can we do?
-- if ( scf_iteration == 800 ) then
-+ if ( scf_iteration == switch_on_diis_last_resort ) then
- i = remaining_diis_tokens( 100 )
- dont_turn_off_diis = .TRUE.
-
-@@ -329,8 +343,8 @@
- ! end if
-
-
-- diis_is_off = qmmm_nml%ndiis_attempts < 1 .OR. qmmm_nml%ndiis_matrices < 2
-- errmat_is_converged = errval < qmmm_nml%errconv !.OR. diis_is_off
-+ ! Is the error matrix converged? Set to true if we don't check for the error matrix
-+ errmat_is_converged = errval < qmmm_nml%errconv .OR. ( .not. errmat_is_on )
-
-
- if (abs(energy_diff) < qmmm_nml%scfconv .AND. &
-@@ -379,7 +393,7 @@
- ! We have decided that we have not converged
- ! We must diagonalize a fock matrix so that the next iteration can form a new guess
- ! density matrix, provided a set of trial orbitals
-- if (qmmm_mpi%commqmmm_master) then
-+ if (qmmm_mpi%commqmmm_master .and. (.not. diis_is_off) .and. ( scf_iteration >= switch_on_diis ) ) then
- CALL diis_extrap( qm2_struct%matsize, fock_matrix , fock_extrap_flag )
- end if
-
-@@ -1941,10 +1955,6 @@
- _REAL_,intent(out) :: pf(npf) ! packed fock matrix
- character(len=1),intent(out) :: extrap_flag
-
--! integer :: scf_iterator_value
--! integer :: diis_iterator_value
--! integer :: diis_iterator_prev_value
--! integer :: remaining_diis_tokens
- _REAL_ :: current_scf_errval
-
- logical :: HAVE_DIIS_DATA
-@@ -1975,7 +1985,6 @@
- ERR_IS_SMALL = current_scf_errval() < 0.5d0
- HAVE_DIIS_TOKENS = remaining_diis_tokens() > 0
- EXTRAPOLATE = HAVE_DIIS_DATA .AND. ERR_IS_SMALL .AND. HAVE_DIIS_TOKENS
--
- IF ( .NOT. EXTRAPOLATE ) THEN
- pf = qm2_struct%diis_fock( : , diis_idx )
- RETURN
-diff -urN amber11.orig/AmberTools/src/sqm/qmmm_module.f amber11/AmberTools/src/sqm/qmmm_module.f
---- amber11.orig/AmberTools/src/sqm/qmmm_module.f 2010-04-14 16:13:28.000000000 +0400
-+++ amber11/AmberTools/src/sqm/qmmm_module.f 2011-03-08 16:38:44.000000000 +0300
-@@ -84,7 +84,7 @@
- !--------- SIZE / ARRAY LIMITATIONS -----------------------
-
- ! Locks maximum valence orbitals at 4 = S,P (no D or F - code is not present)
-- integer, parameter :: MAX_VALENCE_ORBITALS =4
-+ integer, parameter :: MAX_VALENCE_ORBITALS = 4
- integer, parameter :: MAX_VALENCE_DIMENSION = MAX_VALENCE_ORBITALS*(MAX_VALENCE_ORBITALS+1)/2
-
- !----------------------------------------------------------
-diff -urN amber11.orig/AmberTools/src/sqm/sqm.f amber11/AmberTools/src/sqm/sqm.f
---- amber11.orig/AmberTools/src/sqm/sqm.f 2010-04-14 16:13:28.000000000 +0400
-+++ amber11/AmberTools/src/sqm/sqm.f 2011-03-08 16:38:44.000000000 +0300
-@@ -13,7 +13,7 @@
-
- implicit none
-
-- _REAL_ x(3000), f(3000), escf, reff(1000), onereff(1000), work(18000), scf_mchg(1000)
-+ _REAL_ x(3000), f(3000), escf, reff(1000), onereff(1000), work(18000)
- character(len=8) atnam(1000)
- _REAL_ born_radii(1000), one_born_radii(1000)
- _REAL_ intdiel, extdiel, Arad
-@@ -104,20 +104,23 @@
- call allocate_qmgb(qmmm_struct%nquant_nlink)
-
- allocate( qmmm_struct%dxyzqm(3, qmmm_struct%nquant_nlink), stat = ier )
-- REQUIRE(ier == 0) !Deallocated in deallocate qmmm
-+ REQUIRE(ier == 0)
-+
-+ allocate ( qm2_struct%scf_mchg(qmmm_struct%nquant_nlink), stat = ier )
-+ REQUIRE(ier == 0)
-
- if (maxcyc < 1) then
- ! ------------------------
- ! Single point calculation
- ! ------------------------
- call sqm_energy(natom, x, escf, born_radii, one_born_radii, &
-- intdiel, extdiel, Arad, scf_mchg )
-+ intdiel, extdiel, Arad, qm2_struct%scf_mchg )
- else
- ! ---------------------
- ! Geometry optimization
- ! ---------------------
- call xmin(natom, x, f, escf, xmin_iter, maxcyc, born_radii, &
-- one_born_radii, intdiel, extdiel, Arad, scf_mchg, grms_tol, ntpr)
-+ one_born_radii, intdiel, extdiel, Arad, qm2_struct%scf_mchg, grms_tol, ntpr)
- end if
-
- ! ----------------
-@@ -140,7 +143,7 @@
-
- write(6,*) ''
- call qm2_print_charges(1,qmmm_nml%dftb_chg,qmmm_struct%nquant_nlink, &
-- scf_mchg,qmmm_struct%iqm_atomic_numbers)
-+ qm2_struct%scf_mchg,qmmm_struct%iqm_atomic_numbers)
-
- write(6,*) ''
- write(6,*) 'Final Structure'
-@@ -150,6 +153,12 @@
- write(6,*) ' --------- Calculation Completed ----------'
- write(6,*)
-
-+ deallocate( qmmm_struct%dxyzqm, stat = ier )
-+ REQUIRE(ier == 0)
-+
-+ deallocate ( qm2_struct%scf_mchg, stat = ier )
-+ REQUIRE(ier == 0)
-+
- call mexit(6,0)
-
- end program sqm
-diff -urN amber11.orig/AmberTools/test/check_slko_files.x amber11/AmberTools/test/check_slko_files.x
---- amber11.orig/AmberTools/test/check_slko_files.x 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/test/check_slko_files.x 2011-03-08 16:38:44.000000000 +0300
-@@ -0,0 +1,14 @@
-+#!/bin/csh -f
-+#checks if cc.spl file exists - if it does then it
-+#assumes that all slko files are installed.
-+
-+if( -r $AMBERHOME/dat/slko/C-C.skf ) then
-+ #Exists
-+ exit(0)
-+else
-+ echo "DFTB SLKO files not found - Skipping DFTB tests..."
-+ echo ""
-+ exit(1)
-+endif
-+
-+
-diff -urN amber11.orig/AmberTools/test/nab/cuv.H1.4.dx.check amber11/AmberTools/test/nab/cuv.H1.4.dx.check
---- amber11.orig/AmberTools/test/nab/cuv.H1.4.dx.check 2010-04-07 16:55:55.000000000 +0400
-+++ amber11/AmberTools/test/nab/cuv.H1.4.dx.check 2011-03-08 16:38:44.000000000 +0300
-@@ -344,7 +344,7 @@
- 0.70282E-001 0.80739E-001 0.91198E-001
- 0.94417E-001 0.91703E-001 0.77197E-001
- 0.50502E-001 0.19853E-001 -0.36599E-003
-- 0.22738E-005 0.16691E-001 0.36195E-001
-+ 0.22736E-005 0.16691E-001 0.36195E-001
- 0.49401E-001 0.53981E-001 0.53966E-001
- 0.47335E-001 0.56527E-001 0.67703E-001
- 0.78860E-001 0.90368E-001 0.10008E+000
-diff -urN amber11.orig/AmberTools/test/nab/huv.H1.4.dx.check amber11/AmberTools/test/nab/huv.H1.4.dx.check
---- amber11.orig/AmberTools/test/nab/huv.H1.4.dx.check 2010-04-07 16:55:55.000000000 +0400
-+++ amber11/AmberTools/test/nab/huv.H1.4.dx.check 2011-03-08 16:38:44.000000000 +0300
-@@ -37,7 +37,7 @@
- -0.39322E-002 -0.18784E-002 -0.58137E-002
- 0.10207E-002 0.62249E-003 -0.98638E-003
- 0.37094E-003 -0.28752E-003 0.22042E-004
-- -0.99891E-004 0.15368E-003 -0.19634E-004
-+ -0.99891E-004 0.15368E-003 -0.19635E-004
- 0.35824E-003 -0.40488E-003 0.40397E-003
- 0.14213E-003 0.61945E-002 -0.76858E-002
- 0.81862E-002 -0.54091E-002 0.13352E-002
-@@ -58,7 +58,7 @@
- 0.22994E-002 -0.34751E-002 -0.37733E-001
- -0.16433E-001 -0.59317E-002 0.71093E-002
- -0.46373E-002 0.32238E-002 -0.25894E-002
-- 0.22145E-002 -0.65291E-004 -0.12695E-003
-+ 0.22145E-002 -0.65292E-004 -0.12695E-003
- -0.16873E-003 0.45506E-003 -0.14159E-002
- 0.16342E-002 -0.79582E-002 0.56556E-002
- -0.43786E-001 -0.46923E-002 -0.27685E-002
-@@ -96,11 +96,11 @@
- 0.34445E-003 0.33513E-002 0.63723E-003
- -0.45516E-003 0.16641E-004 -0.90223E-004
- 0.10300E-003 -0.99252E-004 0.15249E-004
-- -0.10662E-004 -0.19945E-004 -0.63404E-006
-+ -0.10662E-004 -0.19945E-004 -0.63406E-006
- 0.11124E-004 -0.28230E-004 -0.31534E-003
- -0.33642E-002 -0.57217E-003 -0.27793E-002
- -0.74846E-003 0.29526E-003 -0.94696E-004
-- 0.64217E-004 -0.66025E-004 -0.40449E-005
-+ 0.64216E-004 -0.66025E-004 -0.40449E-005
- -0.30799E-004 -0.16361E-004 -0.62269E-004
- -0.51020E-005 -0.16001E-003 0.92448E-004
- -0.57830E-003 -0.21012E-002 -0.69590E-003
-@@ -117,7 +117,7 @@
- -0.21378E-002 -0.44258E-003 -0.15111E-002
- -0.13934E-002 0.53131E-003 -0.22947E-003
- -0.74937E-005 -0.46655E-004 -0.61371E-004
-- 0.61593E-004 0.13955E-004 0.16010E-003
-+ 0.61594E-004 0.13955E-004 0.16010E-003
- -0.17966E-003 0.34275E-003 -0.36108E-003
- 0.76113E-003 0.23418E-002 0.29182E-003
- 0.19046E-002 0.12879E-002 -0.85274E-003
-@@ -131,7 +131,7 @@
- -0.24936E-003 0.43593E-003 -0.38975E-003
- 0.48502E-003 -0.28550E-003 0.94466E-003
- 0.27789E-002 0.71808E-003 0.38223E-002
-- -0.14124E-004 -0.13567E-002 0.12326E-002
-+ -0.14125E-004 -0.13567E-002 0.12326E-002
- -0.66934E-003 0.45864E-003 -0.28062E-003
- -0.43706E-003 0.34374E-003 -0.56160E-003
- 0.23427E-003 -0.19776E-003 -0.12917E-003
-@@ -182,7 +182,7 @@
- -0.11703E-002 0.14706E-002 -0.40144E-003
- 0.10286E-003 0.45475E-004 -0.49081E-004
- -0.47357E-004 0.54489E-006 -0.61082E-004
-- 0.65984E-004 -0.69587E-004 -0.10541E-003
-+ 0.65984E-004 -0.69588E-004 -0.10541E-003
- 0.64247E-003 0.25698E-002 0.28005E-002
- 0.27413E-002 0.12876E-002 -0.75471E-003
- 0.57492E-004 0.66448E-004 -0.42928E-004
-@@ -229,7 +229,7 @@
- -0.40783E-002 0.30972E-002 -0.35632E-002
- -0.14974E-004 0.13258E-002 -0.10864E-002
- 0.34485E-003 -0.16911E-003 -0.62126E-004
-- 0.72158E-004 -0.22208E-004 0.77266E-004
-+ 0.72158E-004 -0.22208E-004 0.77265E-004
- 0.24040E-003 -0.72533E-003 0.13593E-002
- -0.16119E-002 0.10078E-001 -0.20050E-001
- 0.72175E-002 -0.45419E-002 0.45478E-003
-@@ -292,7 +292,7 @@
- 0.33230E-003 -0.62327E-003 0.36713E-003
- -0.30819E-002 -0.32037E-003 -0.17162E-002
- -0.14580E-002 0.46999E-003 -0.97290E-004
-- -0.73333E-004 0.14729E-006 -0.11485E-003
-+ -0.73333E-004 0.14727E-006 -0.11485E-003
- -0.10058E-003 0.62528E-004 -0.17489E-003
- 0.15221E-003 -0.46879E-003 0.25396E-003
- -0.52915E-003 -0.27851E-002 0.22929E-002
-@@ -318,7 +318,7 @@
- -0.68610E-003 0.64051E-003 -0.81356E-003
- 0.24281E-003 -0.94464E-003 -0.31260E-002
- 0.48815E-002 -0.32512E-002 -0.12194E-002
-- 0.15282E-002 -0.10747E-002 0.37017E-003
-+ 0.15282E-002 -0.10747E-002 0.37016E-003
- -0.43401E-003 0.37194E-003 0.90390E-003
- -0.87376E-003 0.10045E-002 -0.10100E-002
- 0.89048E-003 -0.53634E-003 0.18096E-002
-@@ -355,14 +355,14 @@
- 0.26923E-003 -0.62333E-003 0.92867E-003
- -0.23947E-002 0.40142E-002 -0.86299E-002
- 0.45605E-002 -0.33767E-001 0.48411E-002
-- -0.86790E-002 0.13146E-002 -0.92538E-004
-+ -0.86790E-002 0.13146E-002 -0.92539E-004
- -0.33552E-003 -0.15197E-003 0.54828E-004
- -0.61954E-003 0.61334E-003 -0.71350E-003
- 0.88754E-003 -0.46185E-003 -0.11825E-002
- 0.49261E-002 -0.92336E-002 0.11674E-001
- -0.57510E-002 0.61122E-002 0.39077E-003
- -0.16127E-002 0.13002E-002 -0.76188E-003
-- 0.68127E-003 0.46393E-003 -0.60936E-003
-+ 0.68127E-003 0.46394E-003 -0.60936E-003
- 0.83803E-003 -0.13684E-002 0.18949E-002
- -0.20507E-002 0.86720E-003 0.55761E-002
- -0.38872E-002 0.87045E-002 0.57034E-003
-@@ -384,7 +384,7 @@
- 0.14459E-002 -0.36764E-002 -0.16466E-002
- 0.78190E-003 -0.21388E-003 -0.13391E-003
- -0.71292E-004 -0.25972E-004 0.81385E-005
-- -0.75784E-005 0.84210E-004 -0.57027E-004
-+ -0.75783E-005 0.84210E-004 -0.57027E-004
- 0.24646E-003 -0.15344E-004 0.44974E-003
- 0.29483E-002 -0.13186E-002 0.30172E-002
- 0.14066E-002 -0.51937E-003 0.13804E-003
-@@ -425,7 +425,7 @@
- 0.15873E-002 -0.26341E-002 0.28432E-002
- 0.49007E-003 0.10263E-001 -0.44098E-001
- 0.25985E-003 -0.50604E-002 0.20816E-002
-- -0.97801E-005 -0.13212E-003 -0.22909E-003
-+ -0.97796E-005 -0.13212E-003 -0.22909E-003
- 0.48134E-003 0.52250E-002 -0.61139E-002
- 0.74868E-002 -0.97022E-002 0.12736E-001
- -0.13924E-001 0.13569E-001 -0.16048E-001
-@@ -442,13 +442,13 @@
- -0.17468E-001 0.24222E-001 -0.13107E+000
- -0.65242E-001 0.19459E-001 -0.38769E-002
- -0.13998E-002 0.28896E-002 -0.44039E-002
-- 0.52052E-002 0.11744E-002 0.25963E-003
-+ 0.52052E-002 0.11744E-002 0.25964E-003
- -0.21866E-002 0.47172E-002 -0.81182E-002
- 0.10154E-001 -0.15684E-001 0.18417E-001
- -0.10597E+000 0.22097E-001 0.78443E-003
- -0.56097E-002 0.55039E-002 -0.44612E-002
- 0.32653E-002 -0.22953E-002 -0.13331E-002
-- 0.91243E-003 -0.94485E-004 -0.12826E-002
-+ 0.91243E-003 -0.94484E-004 -0.12826E-002
- 0.43961E-002 -0.78443E-002 0.13464E-001
- -0.13779E-002 0.40528E-001 -0.22036E-002
- 0.10425E-001 -0.96531E-003 -0.13430E-002
-@@ -512,13 +512,13 @@
- 0.11827E-001 -0.45014E-002 0.27467E-002
- -0.41543E-003 -0.71183E-003 0.52608E-003
- -0.64382E-003 0.45191E-003 0.50605E-003
-- -0.44980E-003 0.37809E-003 -0.38388E-004
-+ -0.44981E-003 0.37809E-003 -0.38389E-004
- -0.49061E-003 -0.81143E-003 0.86459E-002
- -0.45388E-002 -0.19539E-001 -0.35704E-002
-- -0.21204E-002 0.67039E-003 0.70119E-003
-+ -0.21204E-002 0.67038E-003 0.70119E-003
- -0.74427E-003 0.55233E-003 -0.45289E-003
- -0.11702E-002 0.10513E-002 -0.10446E-002
-- 0.48184E-003 -0.52832E-003 0.40688E-002
-+ 0.48184E-003 -0.52833E-003 0.40688E-002
- -0.13663E-001 -0.53287E-002 0.80893E-001
- 0.13554E-001 0.87640E-003 -0.12860E-002
- -0.94409E-003 0.13653E-002 -0.14728E-002
-@@ -570,12 +570,12 @@
- 0.55487E-003 0.57562E-002 -0.85141E-003
- 0.10230E-001 0.16214E-002 -0.31963E-002
- 0.16965E-002 -0.39151E-003 0.11883E-003
-- 0.27054E-005 -0.64436E-004 0.29371E-004
-+ 0.27053E-005 -0.64436E-004 0.29371E-004
- -0.24818E-003 0.15603E-003 -0.36597E-003
- -0.15165E-003 -0.30508E-003 -0.55843E-002
- 0.25615E-002 -0.87369E-002 -0.12896E-002
- 0.21029E-002 -0.12728E-002 0.23925E-003
-- -0.20980E-003 -0.40398E-004 -0.37869E-004
-+ -0.20980E-003 -0.40397E-004 -0.37869E-004
- -0.22762E-004 0.97304E-004 -0.13256E-003
- 0.76121E-004 0.46124E-003 -0.11364E-003
- 0.51685E-002 -0.25639E-002 0.77172E-002
-@@ -627,7 +627,7 @@
- -0.13873E-001 0.13771E-001 -0.15353E-001
- 0.19554E-001 -0.31206E-001 0.64687E-002
- 0.12878E+000 0.43115E+000 0.18311E+000
-- -0.42341E-001 0.49587E-002 0.50176E-002
-+ -0.42341E-001 0.49588E-002 0.50176E-002
- -0.10381E-001 0.12020E-001 -0.13237E-001
- -0.18428E-001 0.21596E-001 -0.25230E-001
- 0.33125E-001 -0.42929E-001 0.59353E-001
-@@ -693,12 +693,12 @@
- -0.13202E-001 -0.15081E-001 0.28654E-002
- 0.45947E-002 -0.39497E-002 0.16991E-002
- -0.85009E-003 0.46037E-003 -0.41389E-003
-- -0.11503E-004 -0.26360E-004 0.13328E-004
-+ -0.11503E-004 -0.26361E-004 0.13328E-004
- 0.44265E-003 -0.10259E-002 -0.89230E-003
- 0.43360E-002 0.12999E-001 0.67878E-002
- -0.14383E-001 -0.53637E-003 0.27114E-002
- -0.14313E-002 0.43554E-003 -0.55232E-004
-- 0.54550E-004 -0.19917E-002 0.19778E-002
-+ 0.54549E-004 -0.19917E-002 0.19778E-002
- -0.22171E-002 0.17858E-002 -0.28501E-002
- 0.81796E-002 -0.15748E-001 -0.97599E-002
- 0.11465E-001 0.41396E-001 -0.12368E-001
-@@ -737,7 +737,7 @@
- 0.33287E-001 -0.21712E-001 0.12598E-001
- -0.78119E-002 0.22442E-002 -0.20161E-001
- 0.21504E-001 -0.24273E-001 0.27271E-001
-- -0.28503E-001 0.16461E-001 -0.41419E-004
-+ -0.28503E-001 0.16461E-001 -0.41414E-004
- -0.12990E+000 0.75360E-001 -0.11560E+000
- -0.19544E-001 0.27969E-001 -0.25346E-001
- 0.21675E-001 -0.20092E-001 0.19462E-001
-@@ -766,7 +766,7 @@
- -0.47737E-003 -0.51835E-004 0.58766E-003
- -0.52596E-003 0.72315E-003 -0.11079E-001
- -0.25431E-001 -0.12595E-001 0.68054E-002
-- -0.18857E-002 0.60829E-004 0.13868E-003
-+ -0.18857E-002 0.60830E-004 0.13868E-003
- -0.55933E-003 0.34562E-003 -0.15041E-003
- 0.80074E-004 -0.32555E-003 0.67842E-003
- -0.15202E-002 0.14050E-002 -0.80795E-003
-@@ -798,7 +798,7 @@
- -0.27721E-002 0.29741E-002 -0.49061E-003
- -0.72566E-002 0.14443E-001 -0.11927E-001
- 0.82051E-001 0.95570E-002 0.10700E-002
-- -0.33922E-004 0.14627E-003 0.88681E-003
-+ -0.33919E-004 0.14627E-003 0.88681E-003
- -0.13081E-002 0.21604E-002 0.33550E-002
- -0.40840E-002 0.36977E-002 -0.35055E-002
- 0.41269E-003 0.67781E-002 0.27814E-002
-@@ -892,9 +892,9 @@
- 0.63672E-002 -0.57904E-002 0.46308E-002
- -0.36396E-002 -0.26400E-002 0.17391E-002
- -0.14131E-002 0.78246E-003 -0.61051E-003
-- 0.63366E-003 0.24693E-001 0.29656E-001
-+ 0.63365E-003 0.24693E-001 0.29656E-001
- 0.13438E+000 0.27901E-001 -0.22954E-001
-- 0.12869E-001 -0.76758E-002 0.58582E-002
-+ 0.12869E-001 -0.76757E-002 0.58582E-002
- -0.46806E-002 0.36183E-002 0.68827E-002
- -0.57133E-002 0.56860E-002 -0.66211E-002
- 0.99125E-002 -0.15797E-001 -0.52503E-002
-@@ -908,7 +908,7 @@
- -0.45900E-001 0.36916E-001 -0.30142E-001
- 0.26465E-001 0.50030E-001 -0.48827E-001
- 0.51561E-001 -0.58944E-001 0.74179E-001
-- -0.94716E-001 0.36687E-001 -0.46168E+000
-+ -0.94715E-001 0.36687E-001 -0.46168E+000
- -0.10000E+001 -0.17472E+000 0.15670E+000
- -0.98122E-001 0.78741E-001 -0.64288E-001
- 0.58448E-001 -0.52472E-001 0.59653E-001
-@@ -931,7 +931,7 @@
- -0.21260E-001 0.26058E-001 -0.35050E-001
- 0.44521E-001 -0.58930E-001 -0.46967E-002
- -0.62950E+000 -0.10000E+001 -0.58023E+000
-- 0.84660E-001 -0.20803E-001 -0.24936E-003
-+ 0.84661E-001 -0.20803E-001 -0.24937E-003
- -0.56711E-002 0.77515E-002 -0.12967E-001
- -0.33634E-001 0.36370E-001 -0.40813E-001
- 0.52730E-001 -0.69416E-001 0.11055E+000
-@@ -940,7 +940,7 @@
- -0.50993E-001 0.42341E-001 -0.35645E-001
- 0.34334E-001 0.13016E-002 -0.18908E-002
- 0.21484E-002 -0.35223E-002 0.43357E-002
-- -0.52692E-002 -0.30889E-001 -0.10458E+000
-+ -0.52692E-002 -0.30890E-001 -0.10458E+000
- 0.59570E-001 -0.10076E+000 -0.14057E-001
- 0.10367E-001 -0.60574E-002 0.13132E-002
- 0.10164E-003 -0.11144E-002 -0.80129E-003
-@@ -1070,7 +1070,7 @@
- -0.27848E-002 0.34661E-002 -0.63123E-002
- 0.10345E-001 -0.10633E-001 -0.26698E-001
- 0.37697E-001 -0.14235E-001 -0.27804E-003
-- -0.11597E-002 0.47695E-005 0.21900E-003
-+ -0.11597E-002 0.47700E-005 0.21900E-003
- -0.12610E-002 0.14246E-002 0.19513E-002
- -0.22230E-002 0.25913E-002 -0.34398E-002
- 0.62826E-002 -0.11033E-001 0.11857E-001
-@@ -1096,7 +1096,7 @@
- 0.17629E-001 -0.16578E-001 0.17704E-001
- -0.21181E-001 0.31547E-001 -0.44986E-001
- 0.53814E-001 0.61709E-001 0.41895E-001
-- -0.58391E-002 0.71644E-001 -0.50130E-001
-+ -0.58392E-002 0.71644E-001 -0.50130E-001
- 0.37052E-001 -0.27166E-001 0.23023E-001
- -0.18847E-001 -0.57070E-002 0.32394E-002
- -0.47133E-002 0.71203E-002 -0.17409E-001
-@@ -1107,7 +1107,7 @@
- 0.49908E-002 0.25980E-002 -0.10390E-001
- 0.32835E-001 -0.45644E-001 0.28388E-001
- 0.32651E+000 0.74550E+000 0.24253E-001
-- 0.23336E-001 -0.11200E-002 -0.67666E-003
-+ 0.23336E-001 -0.11200E-002 -0.67665E-003
- 0.71472E-002 -0.62491E-002 0.83474E-002
- 0.87319E-002 -0.53331E-002 -0.65393E-002
- 0.88129E-002 -0.14593E-001 -0.30915E-001
-@@ -1176,7 +1176,7 @@
- -0.12868E-002 0.13040E-002 -0.18307E-002
- 0.20870E-002 -0.20382E-002 -0.55964E-003
- 0.10698E-001 -0.18290E-001 -0.17347E-001
-- -0.20057E-001 0.63536E-002 0.17849E-002
-+ -0.20057E-001 0.63535E-002 0.17849E-002
- -0.22938E-002 0.16177E-002 -0.12481E-002
- 0.13489E-002 0.17604E-002 -0.20387E-002
- 0.25830E-002 -0.26311E-002 0.23498E-002
-@@ -1185,10 +1185,10 @@
- 0.18402E-003 0.20794E-002 -0.11926E-002
- 0.85856E-003 -0.15532E-002 -0.58085E-003
- 0.92325E-003 -0.15671E-002 0.13684E-002
-- -0.42686E-004 -0.63990E-002 0.22899E-001
-+ -0.42684E-004 -0.63990E-002 0.22899E-001
- -0.20083E-001 -0.31172E-001 -0.30073E-001
- 0.24308E-001 -0.79050E-002 0.21845E-002
-- -0.11634E-002 0.88798E-003 -0.46213E-005
-+ -0.11634E-002 0.88799E-003 -0.46216E-005
- -0.36939E-002 0.25957E-002 -0.19040E-002
- 0.22213E-002 -0.44518E-002 0.13471E-001
- -0.31065E-001 0.13930E-001 0.26443E-001
-@@ -1216,7 +1216,7 @@
- 0.12872E+000 -0.22970E+000 0.37029E-001
- -0.71820E-002 -0.61730E-002 0.60023E-002
- -0.62195E-002 0.33179E-002 0.35063E-002
-- -0.15743E-002 0.24932E-003 0.59944E-003
-+ -0.15743E-002 0.24932E-003 0.59943E-003
- 0.50805E-002 -0.22435E-001 0.78080E-001
- -0.11217E+000 0.27769E+000 0.13301E-001
- 0.48142E-001 -0.25712E-001 0.18216E-001
-@@ -1234,8 +1234,8 @@
- -0.37349E-002 0.40923E-002 0.33100E-003
- -0.73044E-003 0.14901E-002 -0.27451E-002
- 0.39569E-002 -0.39194E-002 -0.22396E-002
-- 0.69572E-002 0.15456E-001 0.68766E-003
-- -0.55836E-002 -0.59161E-004 0.28366E-003
-+ 0.69572E-002 0.15456E-001 0.68765E-003
-+ -0.55836E-002 -0.59162E-004 0.28366E-003
- 0.59373E-005 -0.29036E-003 -0.28278E-003
- -0.93105E-004 0.55976E-004 -0.22540E-003
- 0.63416E-003 -0.86325E-003 -0.56872E-003
-@@ -1259,13 +1259,13 @@
- -0.21463E-002 -0.95702E-003 0.16305E-002
- -0.48868E-003 0.37838E-003 -0.98649E-004
- 0.17415E-003 -0.39204E-003 0.40478E-003
-- -0.47636E-003 0.25159E-003 0.32794E-005
-+ -0.47636E-003 0.25159E-003 0.32795E-005
- -0.27191E-003 -0.25541E-002 0.80677E-002
- 0.23348E-001 0.22086E-002 0.10997E-002
- -0.16811E-002 0.61473E-003 -0.17759E-003
- -0.60773E-004 0.91723E-004 0.50744E-003
- -0.63597E-003 0.55533E-003 -0.33123E-003
-- -0.68908E-005 0.25682E-003 0.26735E-002
-+ -0.68909E-005 0.25682E-003 0.26735E-002
- -0.91015E-002 -0.22651E-001 -0.42938E-002
- -0.10604E-002 0.20136E-002 -0.89377E-003
- 0.20609E-003 0.28182E-004 -0.21460E-003
-@@ -1273,7 +1273,7 @@
- 0.63594E-004 0.46567E-003 -0.90712E-003
- -0.31638E-002 0.94292E-002 0.26064E-001
- 0.58926E-002 0.14824E-003 -0.26379E-002
-- 0.13364E-002 -0.27849E-003 0.67584E-007
-+ 0.13364E-002 -0.27849E-003 0.67664E-007
- 0.21329E-003 0.75173E-003 -0.70904E-003
- 0.24518E-003 -0.31473E-003 -0.44500E-003
- -0.26955E-003 0.56039E-002 -0.11484E-001
-@@ -1298,7 +1298,7 @@
- -0.74153E-002 0.51462E-002 -0.85486E-002
- 0.10486E-001 -0.12082E-001 0.13714E-001
- -0.11389E-001 0.19279E-002 0.36232E-001
-- -0.48818E-001 0.17388E+000 -0.35474E-002
-+ -0.48818E-001 0.17388E+000 -0.35475E-002
- -0.97685E-002 0.97677E-002 -0.64763E-002
- 0.62604E-002 -0.67795E-002 0.78175E-002
- 0.18823E-001 -0.16976E-001 0.13255E-001
-@@ -1310,7 +1310,7 @@
- -0.59406E-002 0.53394E-002 -0.13726E-002
- -0.50565E-002 0.17728E-001 0.83748E-001
- -0.37446E-001 0.12400E+000 -0.15472E-001
-- -0.38171E-003 0.54899E-002 -0.24982E-002
-+ -0.38172E-003 0.54899E-002 -0.24982E-002
- -0.85504E-004 0.30624E-002 0.30068E-002
- -0.46418E-002 0.65796E-002 -0.90030E-002
- 0.10723E-001 -0.66793E-002 -0.19808E-001
-@@ -1330,7 +1330,7 @@
- 0.99945E-003 -0.12217E-002 0.75822E-003
- -0.58237E-003 0.70553E-004 0.47287E-004
- -0.92834E-003 0.22845E-002 -0.35398E-003
-- -0.49955E-002 -0.32604E-001 0.29414E-003
-+ -0.49955E-002 -0.32604E-001 0.29415E-003
- 0.26270E-002 0.12013E-003 0.18530E-003
- -0.67394E-003 0.78294E-003 -0.77240E-003
- -0.39514E-003 0.36294E-003 -0.34122E-003
-@@ -1340,7 +1340,7 @@
- -0.43384E-003 0.62665E-003 -0.53140E-003
- 0.35037E-003 0.11598E-003 -0.33590E-004
- 0.77756E-004 -0.11361E-003 0.29272E-004
-- 0.53713E-003 0.24967E-002 -0.95835E-002
-+ 0.53714E-003 0.24967E-002 -0.95835E-002
- -0.23813E-001 -0.28729E-002 0.35840E-003
- 0.75277E-003 0.14870E-003 -0.18813E-003
- 0.13874E-003 0.53665E-005 -0.82118E-004
-@@ -1383,7 +1383,7 @@
- 0.14890E-002 -0.11973E-002 0.75295E-003
- -0.10473E-002 0.10737E-002 -0.99465E-003
- 0.10667E-002 0.18484E-003 -0.15909E-002
-- -0.44370E-003 0.65566E-002 0.16554E-001
-+ -0.44371E-003 0.65566E-002 0.16554E-001
- 0.15235E-001 -0.16429E-001 0.79078E-002
- -0.29231E-002 0.16543E-002 -0.11884E-002
- 0.10008E-002 0.22131E-002 -0.11833E-002
-@@ -1395,7 +1395,7 @@
- -0.34902E-002 0.51729E-002 -0.78836E-002
- 0.96755E-002 -0.80416E-002 -0.15180E-001
- 0.48776E-001 -0.11424E+000 0.12364E-001
-- 0.32693E-002 -0.19227E-002 -0.65699E-004
-+ 0.32693E-002 -0.19227E-002 -0.65698E-004
- 0.16871E-003 0.29036E-004 -0.95792E-003
- -0.31449E-002 0.21159E-002 -0.34442E-003
- 0.30292E-003 0.22482E-002 -0.56246E-002
-@@ -1476,10 +1476,10 @@
- -0.15578E-002 0.14449E-002 -0.13015E-002
- 0.35158E-002 0.18690E-001 0.71087E-002
- -0.33624E-002 -0.86947E-004 0.13615E-002
-- -0.25872E-003 -0.28246E-003 0.49430E-003
-+ -0.25873E-003 -0.28246E-003 0.49430E-003
- 0.20061E-002 -0.22055E-002 0.25174E-002
- -0.32849E-002 0.24711E-002 -0.12430E-002
-- 0.31615E-004 -0.16073E-002 -0.13936E-001
-+ 0.31616E-004 -0.16073E-002 -0.13936E-001
- -0.78198E-002 0.10677E-001 -0.53430E-002
- 0.19467E-002 -0.20078E-002 0.18727E-002
- -0.18399E-002 -0.24069E-002 0.18144E-002
-@@ -1523,13 +1523,13 @@
- -0.57937E-004 0.38925E-004 -0.25529E-003
- -0.80223E-004 0.62244E-003 -0.92409E-003
- -0.50111E-002 -0.15028E-001 -0.48849E-002
-- 0.10809E-002 0.94785E-003 -0.90578E-003
-+ 0.10809E-002 0.94785E-003 -0.90579E-003
- 0.21632E-003 0.48547E-004 -0.10362E-003
- 0.65746E-004 -0.57485E-004 -0.10330E-003
- 0.17296E-003 -0.10843E-003 -0.17317E-003
- 0.24191E-003 0.53215E-002 0.12629E-001
- 0.39700E-002 -0.84627E-004 -0.65947E-003
-- 0.46649E-003 -0.16035E-003 0.28558E-005
-+ 0.46649E-003 -0.16035E-003 0.28557E-005
- -0.74149E-004 -0.74431E-004 0.89221E-004
- 0.14291E-004 -0.10742E-003 0.75570E-004
- 0.32302E-003 -0.45917E-003 -0.47563E-002
-@@ -1555,7 +1555,7 @@
- -0.24567E-003 0.25650E-003 -0.22210E-003
- 0.35310E-003 -0.54501E-003 0.49667E-003
- 0.46922E-002 0.53681E-003 0.53276E-002
-- -0.25038E-004 -0.47621E-003 0.25061E-003
-+ -0.25039E-004 -0.47621E-003 0.25061E-003
- -0.14151E-003 0.25689E-003 -0.23625E-003
- -0.39925E-003 0.24288E-003 -0.45878E-003
- 0.19103E-003 -0.46845E-003 0.39169E-003
-@@ -1602,7 +1602,7 @@
- -0.42312E-002 0.26362E-002 0.71520E-003
- -0.20235E-003 -0.89467E-004 0.11620E-002
- -0.32420E-002 0.52388E-002 0.58477E-003
-- -0.67996E-002 0.56024E-005 0.55241E-003
-+ -0.67996E-002 0.56018E-005 0.55241E-003
- 0.13967E-001 -0.58142E-002 0.37372E-002
- -0.25763E-002 0.19323E-002 -0.10220E-002
- -0.13957E-003 0.89996E-004 -0.29649E-003
-@@ -1726,7 +1726,7 @@
- -0.65025E-004 0.20691E-004 0.20988E-004
- 0.29987E-003 -0.69971E-003 -0.25561E-002
- -0.47408E-002 -0.17716E-002 -0.10624E-002
-- 0.72365E-003 -0.12367E-003 0.91100E-004
-+ 0.72365E-003 -0.12367E-003 0.91099E-004
- -0.11286E-003 0.65700E-004 -0.38225E-004
- -0.18443E-004 -0.10315E-004 -0.41438E-004
- -0.23530E-004 -0.27346E-003 0.79396E-003
-diff -urN amber11.orig/AmberTools/test/nab/huv.O.4.dx.check amber11/AmberTools/test/nab/huv.O.4.dx.check
---- amber11.orig/AmberTools/test/nab/huv.O.4.dx.check 2010-04-07 16:55:55.000000000 +0400
-+++ amber11/AmberTools/test/nab/huv.O.4.dx.check 2011-03-08 16:38:44.000000000 +0300
-@@ -42,10 +42,10 @@
- -0.26664E-002 0.76462E-002 -0.65646E-002
- 0.65013E-002 -0.98756E-002 0.51997E-002
- -0.15412E-002 0.14894E-002 -0.58327E-003
-- 0.74208E-003 -0.46330E-005 0.26925E-003
-+ 0.74208E-003 -0.46331E-005 0.26925E-003
- -0.21081E-003 0.19041E-003 -0.70176E-003
- 0.40604E-002 -0.59967E-002 0.25324E-001
-- -0.58949E-001 0.48671E-001 -0.63192E-002
-+ -0.58949E-001 0.48671E-001 -0.63193E-002
- -0.14555E-002 0.17515E-002 -0.12653E-002
- 0.59124E-003 -0.44081E-004 -0.46024E-003
- -0.33221E-003 0.43262E-003 -0.73462E-003
-@@ -55,10 +55,10 @@
- 0.29042E-002 -0.18964E-002 0.77617E-003
- -0.18302E-003 0.26483E-004 0.13553E-002
- -0.75012E-003 0.17059E-002 -0.70949E-003
-- 0.15620E-001 0.67864E-002 -0.96628E-001
-+ 0.15620E-001 0.67863E-002 -0.96628E-001
- -0.15238E-001 -0.64540E-002 0.11108E-001
- -0.71349E-002 0.42594E-002 -0.24297E-002
-- 0.14742E-002 0.50969E-003 -0.14490E-003
-+ 0.14742E-002 0.50969E-003 -0.14489E-003
- -0.15852E-002 0.26525E-002 -0.54371E-002
- 0.63513E-002 -0.19991E-001 0.88607E-003
- -0.90619E-001 -0.26234E-001 0.54685E-002
-@@ -74,7 +74,7 @@
- -0.67192E-002 0.20436E-002 0.15087E-002
- -0.12351E-001 -0.10538E-001 0.30347E-002
- -0.24133E-002 0.57521E-003 -0.89346E-003
-- -0.19758E-003 0.85846E-004 0.21885E-003
-+ -0.19759E-003 0.85846E-004 0.21885E-003
- 0.59427E-004 0.40476E-003 -0.45294E-003
- 0.17127E-002 0.22700E-002 -0.36055E-002
- -0.94861E-002 -0.31257E-002 0.59927E-002
-@@ -89,13 +89,13 @@
- -0.21190E-003 0.38823E-003 -0.99192E-004
- 0.14844E-002 -0.48467E-002 -0.10472E-001
- -0.56834E-002 0.17312E-002 0.44869E-003
-- 0.59430E-004 -0.99269E-004 0.22702E-003
-+ 0.59429E-004 -0.99269E-004 0.22702E-003
- -0.46728E-004 -0.99733E-004 -0.59632E-005
- -0.15996E-003 0.21334E-003 -0.60938E-003
- 0.46539E-003 -0.16741E-002 0.53916E-002
- 0.73981E-002 0.59857E-002 -0.16663E-002
- 0.12223E-003 -0.48450E-003 0.17812E-003
-- -0.11241E-003 -0.53881E-005 0.24248E-003
-+ -0.11241E-003 -0.53882E-005 0.24248E-003
- -0.20069E-003 0.17999E-003 -0.24877E-003
- 0.30370E-003 -0.44718E-003 0.73307E-003
- -0.42363E-002 -0.80946E-002 -0.48617E-002
-@@ -172,7 +172,7 @@
- 0.18498E-002 -0.73133E-003 0.88568E-003
- -0.14499E-003 -0.13914E-004 -0.23519E-003
- 0.28978E-003 -0.69524E-003 0.99658E-003
-- -0.19354E-002 -0.38389E-003 -0.15309E-003
-+ -0.19354E-002 -0.38389E-003 -0.15308E-003
- 0.11672E-001 0.37757E-002 -0.51548E-002
- -0.91017E-003 0.87189E-003 -0.57806E-003
- 0.16146E-003 -0.22842E-003 0.37037E-004
-@@ -181,7 +181,7 @@
- -0.96518E-003 -0.13418E-001 -0.54575E-002
- 0.20411E-002 0.10281E-002 -0.33249E-003
- 0.17999E-003 0.19469E-003 0.23293E-004
-- -0.45970E-005 -0.10166E-003 0.26448E-004
-+ -0.45969E-005 -0.10166E-003 0.26448E-004
- -0.60871E-004 0.21195E-003 -0.53324E-003
- 0.48474E-003 0.57259E-003 0.14242E-001
- 0.41534E-002 -0.65370E-003 -0.53279E-003
-@@ -259,7 +259,7 @@
- 0.23319E-002 -0.18642E-002 0.17647E-002
- -0.49400E-003 0.48144E-003 0.46341E-002
- 0.17097E-001 0.13221E-001 0.13122E-001
-- 0.88689E-002 -0.14616E-002 0.73569E-004
-+ 0.88689E-002 -0.14616E-002 0.73570E-004
- 0.16176E-002 -0.17425E-002 0.23255E-002
- 0.10067E-002 -0.10794E-002 0.61036E-003
- -0.79346E-003 -0.18114E-003 0.10066E-002
-@@ -296,7 +296,7 @@
- -0.79564E-003 0.73627E-003 -0.10642E-002
- 0.89864E-003 -0.15015E-002 0.74366E-003
- -0.10995E-002 -0.91302E-003 -0.14389E-002
-- -0.62659E-002 0.16322E-003 0.39747E-003
-+ -0.62659E-002 0.16322E-003 0.39746E-003
- -0.93576E-003 0.27055E-003 -0.70408E-003
- 0.55227E-003 0.91932E-003 -0.80784E-003
- 0.10504E-002 -0.99128E-003 0.13799E-002
-@@ -333,7 +333,7 @@
- 0.11332E-002 -0.36329E-002 0.45738E-002
- -0.64277E-002 0.84257E-002 -0.10759E-001
- 0.10170E-001 -0.10632E-001 -0.65535E-002
-- 0.50679E-001 -0.70621E-001 0.91916E-002
-+ 0.50679E-001 -0.70621E-001 0.91917E-002
- 0.32587E-002 -0.38023E-002 0.34644E-002
- -0.32950E-002 0.30559E-002 -0.13480E-003
- 0.19650E-002 -0.34448E-002 0.59077E-002
-@@ -364,7 +364,7 @@
- 0.19684E-002 -0.10859E-002 0.12621E-002
- -0.43675E-003 0.74924E-003 -0.10527E-002
- 0.16471E-002 -0.24027E-002 0.31736E-002
-- -0.29570E-002 -0.47347E-004 -0.17740E-002
-+ -0.29570E-002 -0.47348E-004 -0.17740E-002
- 0.12840E-002 0.13132E-001 -0.86557E-002
- -0.65506E-003 0.21598E-002 -0.13016E-002
- 0.84158E-003 -0.68238E-003 -0.21792E-003
-@@ -387,7 +387,7 @@
- -0.60950E-003 0.93571E-003 -0.76457E-003
- 0.12784E-002 -0.70392E-003 0.15756E-002
- -0.13275E-003 0.45733E-002 0.69172E-002
-- -0.41320E-003 -0.14128E-004 0.54688E-003
-+ -0.41320E-003 -0.14127E-004 0.54688E-003
- -0.19076E-004 0.49968E-003 -0.38501E-003
- 0.43234E-003 -0.22011E-003 -0.83980E-005
- 0.30076E-003 -0.68470E-003 0.24934E-002
-@@ -507,13 +507,13 @@
- 0.78218E-002 -0.41701E-002 -0.79742E-003
- 0.32867E-002 -0.37463E-002 0.34769E-002
- -0.26528E-002 -0.24349E-002 0.21354E-002
-- -0.24623E-002 0.90930E-003 0.54718E-003
-+ -0.24623E-002 0.90930E-003 0.54717E-003
- -0.17165E-002 0.28721E-003 -0.10121E-001
- 0.35717E-001 -0.26042E-002 0.34331E-002
- -0.19519E-003 -0.26581E-002 0.27915E-002
- -0.33505E-002 0.24742E-002 0.26514E-002
- -0.19360E-002 0.14202E-002 -0.31884E-003
-- -0.74542E-003 -0.87196E-003 0.41982E-002
-+ -0.74541E-003 -0.87196E-003 0.41982E-002
- 0.13483E-001 -0.64738E-001 -0.11160E-001
- 0.55671E-003 -0.98428E-003 0.33064E-002
- -0.35116E-002 0.31262E-002 -0.26684E-002
-@@ -524,7 +524,7 @@
- -0.22229E-002 0.28090E-002 -0.29004E-002
- 0.20027E-002 -0.27248E-002 0.44242E-002
- -0.69761E-002 0.87857E-002 -0.91317E-002
-- 0.23035E-002 -0.51691E-002 0.21490E-001
-+ 0.23035E-002 -0.51692E-002 0.21490E-001
- -0.37282E-001 -0.18265E+000 0.58260E-001
- -0.16382E-001 0.57561E-002 -0.21236E-002
- 0.14273E-003 0.11916E-002 0.90109E-003
-@@ -556,7 +556,7 @@
- 0.12840E-001 -0.78465E-002 0.66047E-002
- -0.46569E-002 0.17062E-002 -0.20716E-002
- 0.25710E-002 -0.29188E-002 0.15776E-002
-- 0.10926E-002 -0.65054E-002 -0.64167E-004
-+ 0.10926E-002 -0.65054E-002 -0.64166E-004
- 0.42370E-002 0.33049E-001 -0.26709E-001
- 0.72769E-002 -0.60839E-004 -0.13599E-002
- 0.14205E-002 -0.14190E-002 -0.17898E-002
-@@ -589,7 +589,7 @@
- -0.11534E-002 -0.28262E-003 -0.41205E-003
- 0.12794E-002 -0.27790E-002 0.41709E-002
- -0.68711E-002 0.84175E-002 -0.75839E-002
-- -0.28437E-001 0.50508E-003 0.41340E-002
-+ -0.28437E-001 0.50507E-003 0.41340E-002
- -0.61449E-003 -0.18493E-002 0.12523E-002
- -0.11168E-002 0.69345E-003 -0.83917E-004
- 0.57404E-003 -0.17705E-002 0.28814E-002
-@@ -611,14 +611,14 @@
- -0.13675E-002 0.26363E-002 -0.43034E-002
- 0.41848E-002 0.12480E-002 -0.36641E-002
- -0.34640E-001 0.87778E-001 0.58409E-001
-- -0.21333E-001 0.74525E-002 -0.48739E-002
-+ -0.21333E-001 0.74524E-002 -0.48739E-002
- 0.30753E-002 -0.18387E-002 0.69893E-003
-- 0.71286E-003 0.44580E-003 -0.24335E-002
-- 0.43811E-002 -0.38330E-002 -0.13636E-002
-+ 0.71285E-003 0.44580E-003 -0.24335E-002
-+ 0.43812E-002 -0.38330E-002 -0.13635E-002
- -0.13480E-001 0.11325E+000 -0.29436E+000
- -0.10004E+000 0.41518E-001 -0.16200E-001
- 0.94931E-002 -0.61992E-002 0.43081E-002
-- -0.25405E-002 -0.34159E-002 0.55821E-003
-+ -0.25405E-002 -0.34159E-002 0.55820E-003
- 0.27477E-002 -0.42526E-002 0.30568E-002
- 0.47572E-002 0.23098E-001 -0.11741E+000
- 0.20977E+000 0.38183E+000 -0.15864E+000
-@@ -640,11 +640,11 @@
- -0.21429E+000 -0.70469E-001 0.64050E-001
- -0.48755E-001 0.39460E-001 -0.31552E-001
- 0.27718E-001 -0.23853E-001 -0.11746E-002
-- -0.76642E-004 0.19535E-002 -0.28967E-002
-+ -0.76641E-004 0.19535E-002 -0.28967E-002
- 0.23194E-002 0.14434E-001 -0.39994E-001
- 0.20057E+000 -0.14250E+000 0.15546E+000
- -0.10132E-001 -0.19003E-002 0.31489E-002
-- -0.13663E-003 -0.61045E-003 0.13419E-002
-+ -0.13663E-003 -0.61046E-003 0.13419E-002
- -0.56599E-002 0.65318E-002 -0.99441E-002
- 0.14290E-001 -0.21240E-001 0.25559E-001
- -0.26500E-001 -0.45351E-001 0.12464E+000
-@@ -654,7 +654,7 @@
- -0.67183E-003 -0.17567E-002 0.59214E-002
- -0.10795E-001 0.19998E-001 0.21432E-003
- -0.57072E-001 -0.26436E-001 0.40361E-001
-- -0.15950E-001 0.39954E-002 0.38634E-004
-+ -0.15950E-001 0.39954E-002 0.38633E-004
- -0.19542E-002 0.20302E-002 0.41282E-002
- -0.37590E-002 0.25828E-002 -0.18860E-002
- 0.84274E-003 0.59538E-003 -0.40063E-002
-@@ -695,7 +695,7 @@
- 0.36780E-002 -0.41785E-002 0.43203E-002
- 0.67542E-002 -0.67533E-002 0.79253E-002
- -0.75232E-002 0.71990E-002 -0.10331E-001
-- 0.88066E-002 0.69559E-002 0.27927E-001
-+ 0.88065E-002 0.69559E-002 0.27927E-001
- -0.45171E-001 0.11785E-001 -0.37993E-002
- 0.44794E-002 -0.60610E-002 0.70033E-002
- -0.62684E-002 -0.97638E-002 0.97810E-002
-@@ -730,7 +730,7 @@
- -0.28215E+000 0.56642E+000 0.92065E+000
- 0.10006E+001 -0.46958E+000 0.29382E+000
- -0.20618E+000 0.16462E+000 -0.13004E+000
-- 0.10753E+000 -0.15069E-002 0.65807E-003
-+ 0.10753E+000 -0.15069E-002 0.65808E-003
- -0.59134E-002 0.17916E-001 -0.43687E-001
- 0.85179E-001 -0.72107E-001 0.17888E+000
- 0.27398E+000 0.17046E+000 -0.12239E+000
-@@ -805,7 +805,7 @@
- -0.92333E-001 -0.73061E-001 -0.12402E+000
- 0.49643E-001 -0.24501E-001 0.12081E-001
- -0.77686E-002 0.65912E-002 -0.68733E-002
-- -0.52386E-001 0.55294E-001 -0.60917E-001
-+ -0.52386E-001 0.55294E-001 -0.60918E-001
- 0.72284E-001 -0.90668E-001 0.13640E+000
- -0.30725E+000 0.68114E+000 -0.63520E+000
- 0.69895E+000 -0.30705E+000 0.16706E+000
-@@ -815,7 +815,7 @@
- -0.16169E+000 0.42947E+000 -0.10000E+001
- -0.10000E+001 -0.10000E+001 0.34773E+000
- -0.16448E+000 0.95838E-001 -0.65437E-001
-- 0.53108E-001 -0.49594E-001 0.10228E-004
-+ 0.53108E-001 -0.49594E-001 0.10227E-004
- -0.83130E-002 0.19382E-001 -0.43694E-001
- 0.82990E-001 -0.15068E+000 0.19264E+000
- -0.10000E+001 -0.10000E+001 -0.10000E+001
-@@ -853,7 +853,7 @@
- -0.15840E+000 0.15063E+000 -0.97388E-001
- -0.22784E-002 0.85043E-002 -0.62997E-002
- 0.44880E-002 -0.39095E-002 0.45371E-002
-- 0.70889E-004 -0.68019E-003 0.59256E-003
-+ 0.70888E-004 -0.68019E-003 0.59256E-003
- -0.84557E-004 -0.36226E-002 0.15213E-001
- -0.31110E-001 0.13861E+000 -0.15051E+000
- 0.81020E-001 -0.11901E-001 0.36571E-002
-@@ -880,10 +880,10 @@
- -0.36432E+000 0.48476E-001 -0.13337E-001
- -0.85939E-003 0.62937E-002 -0.90302E-002
- 0.96864E-002 -0.10054E-001 -0.12074E-001
-- 0.12686E-001 -0.13788E-001 0.15535E-001
-+ 0.12686E-001 -0.13788E-001 0.15534E-001
- -0.12609E-001 0.43721E-002 0.38811E-001
- -0.54071E-002 0.36037E+000 -0.26901E-001
-- -0.91861E-004 0.75691E-002 -0.10423E-001
-+ -0.91871E-004 0.75691E-002 -0.10423E-001
- 0.13325E-001 -0.12466E-001 0.12184E-001
- 0.16486E-001 -0.16264E-001 0.18217E-001
- -0.18145E-001 0.15178E-001 -0.90728E-002
-@@ -943,7 +943,7 @@
- -0.29396E-001 -0.11815E-001 -0.23817E+000
- -0.18515E+000 -0.25452E+000 0.27722E-001
- 0.16855E-002 -0.72308E-002 0.20876E-002
-- 0.64586E-003 -0.38825E-002 0.21534E-002
-+ 0.64585E-003 -0.38825E-002 0.21535E-002
- 0.21199E-003 -0.19208E-002 0.42601E-002
- -0.22560E-002 -0.69878E-002 0.71728E-001
- 0.78877E-002 0.44965E+000 -0.21828E-001
-@@ -1064,7 +1064,7 @@
- 0.62403E-002 -0.60207E-002 0.73668E-002
- -0.70398E-002 0.11315E-001 -0.95645E-002
- -0.32328E-002 0.87432E-001 -0.15443E+000
-- 0.46011E-001 -0.18490E-003 -0.10438E-003
-+ 0.46011E-001 -0.18489E-003 -0.10438E-003
- 0.37293E-002 -0.27929E-002 0.52303E-002
- -0.50491E-002 -0.64016E-002 0.64120E-002
- -0.66729E-002 0.70889E-002 -0.10324E-001
-@@ -1089,7 +1089,7 @@
- -0.29061E-001 0.21213E-001 -0.17088E-001
- 0.15692E-001 -0.12454E-001 -0.16919E-001
- 0.14774E-001 -0.13566E-001 0.14799E-001
-- -0.20251E-001 0.21467E-001 0.51689E-002
-+ -0.20251E-001 0.21467E-001 0.51690E-002
- -0.17781E+000 0.16897E+000 -0.17823E-001
- -0.62278E-001 0.48487E-001 -0.35890E-001
- 0.27828E-001 -0.25327E-001 0.20069E-001
-@@ -1107,7 +1107,7 @@
- -0.22781E-001 0.41204E-001 -0.58124E-001
- 0.92982E-001 -0.99577E-001 0.51029E-001
- 0.38111E+000 0.12849E+001 -0.41711E-001
-- 0.46704E-001 -0.59395E-002 0.38283E-002
-+ 0.46704E-001 -0.59395E-002 0.38284E-002
- 0.24958E-002 0.34276E-002 -0.52601E-002
- -0.10267E-001 0.31273E-001 -0.64242E-001
- 0.80909E-001 -0.99093E-001 0.32420E-001
-@@ -1144,13 +1144,13 @@
- -0.40730E-002 0.49874E-002 -0.73690E-002
- 0.73535E-002 -0.95872E-002 0.77701E-002
- 0.63260E-002 -0.93757E-001 0.13558E+000
-- -0.89965E-001 0.17086E-001 -0.10569E-001
-+ -0.89964E-001 0.17086E-001 -0.10569E-001
- 0.42904E-002 -0.19884E-002 -0.52517E-003
- 0.16988E-002 0.51231E-002 -0.58474E-002
- 0.72663E-002 -0.82602E-002 0.11856E-001
- -0.10246E-001 -0.30199E-002 0.86203E-001
- -0.14974E+000 0.68805E-001 -0.10227E-001
-- 0.55756E-002 -0.95949E-004 -0.69091E-003
-+ 0.55756E-002 -0.95950E-004 -0.69091E-003
- 0.22362E-002 -0.35971E-002 -0.60713E-002
- 0.60472E-002 -0.79022E-002 0.78322E-002
- -0.12783E-001 0.10462E-001 0.31255E-002
-@@ -1260,7 +1260,7 @@
- 0.10679E-002 -0.90389E-003 0.16602E-002
- -0.11913E-002 -0.20977E-002 0.20942E-002
- -0.18004E-002 0.16284E-002 -0.18577E-002
-- 0.22835E-002 -0.67831E-002 0.25191E-004
-+ 0.22835E-002 -0.67831E-002 0.25192E-004
- 0.76945E-001 -0.45030E-002 -0.18644E-002
- -0.90606E-004 -0.93679E-003 0.16082E-002
- -0.17131E-002 0.17442E-002 0.26104E-002
-@@ -1381,7 +1381,7 @@
- 0.69183E-002 -0.44728E-001 -0.18229E-001
- 0.19727E-001 -0.83985E-002 0.19649E-002
- -0.81000E-003 0.18733E-002 -0.62522E-003
-- -0.12105E-002 -0.72607E-005 0.89095E-003
-+ -0.12105E-002 -0.72605E-005 0.89095E-003
- -0.15643E-002 0.48042E-002 -0.83264E-002
- 0.65796E-002 -0.21426E-001 0.49776E-001
- 0.39843E-002 -0.24431E-001 0.15999E-001
-@@ -1414,7 +1414,7 @@
- 0.23073E-001 -0.17327E-001 0.14432E-001
- -0.10868E-001 0.93471E-002 -0.68998E-002
- -0.26163E-002 0.31335E-002 -0.16844E-002
-- -0.29736E-003 0.27007E-002 -0.34378E-002
-+ -0.29736E-003 0.27007E-002 -0.34377E-002
- -0.10124E-001 0.16906E-001 -0.27972E-001
- -0.46722E-001 -0.99915E-002 0.74033E-002
- -0.49759E-002 0.33691E-002 -0.30633E-002
-@@ -1490,7 +1490,7 @@
- 0.56865E-003 -0.25998E-002 0.23230E-003
- -0.48411E-003 0.19935E-002 -0.43491E-002
- 0.86658E-002 -0.20913E-001 0.67877E-001
-- -0.12506E+000 0.30915E+000 -0.45000E-001
-+ -0.12506E+000 0.30915E+000 -0.45001E-001
- 0.79047E-002 -0.21891E-003 -0.32671E-003
- -0.91926E-003 0.50793E-003 0.11241E-003
- 0.15086E-001 -0.89428E-002 -0.35368E-003
-@@ -1507,7 +1507,7 @@
- -0.30669E-003 -0.89002E-003 -0.12172E-002
- 0.45842E-002 -0.33508E-002 -0.14322E-001
- 0.66905E-002 0.40619E-001 -0.51873E-001
-- -0.65372E-002 0.52189E-002 -0.46499E-002
-+ -0.65372E-002 0.52190E-002 -0.46499E-002
- 0.43349E-002 -0.38558E-002 0.59891E-003
- 0.34349E-003 -0.86951E-003 0.19112E-002
- -0.11810E-002 -0.18282E-002 0.31268E-002
-@@ -1524,7 +1524,7 @@
- 0.12391E-003 -0.17626E-003 0.37440E-002
- -0.73418E-002 -0.43798E-001 0.49519E-002
- 0.14953E-002 0.20774E-002 -0.22890E-002
-- 0.11235E-002 0.53678E-004 0.34160E-004
-+ 0.11235E-002 0.53679E-004 0.34160E-004
- -0.92654E-003 0.75587E-003 -0.15990E-002
- 0.13713E-002 -0.14112E-002 0.18715E-002
- -0.44715E-002 0.85039E-002 0.41635E-001
-@@ -1534,13 +1534,13 @@
- 0.11901E-002 -0.16300E-002 0.17072E-002
- -0.20384E-002 0.41606E-002 -0.83538E-002
- -0.36935E-001 -0.18397E-003 0.75164E-003
-- 0.32749E-004 -0.54313E-004 -0.55384E-003
-+ 0.32749E-004 -0.54314E-004 -0.55384E-003
- 0.59897E-003 -0.55366E-003 -0.85402E-003
- 0.60344E-003 -0.12434E-002 0.99286E-003
- -0.13524E-002 0.82954E-003 -0.21224E-002
- 0.41911E-002 0.38989E-001 -0.21565E-002
- 0.91862E-003 -0.97115E-003 0.27219E-003
-- 0.52312E-005 -0.71291E-003 0.34833E-003
-+ 0.52313E-005 -0.71291E-003 0.34833E-003
- -0.48047E-003 0.23123E-003 -0.44657E-003
- 0.33067E-003 -0.41250E-003 0.10632E-003
- -0.22842E-002 0.73852E-002 0.61030E-002
-@@ -1574,7 +1574,7 @@
- 0.99674E-002 -0.24989E-002 0.30342E-003
- -0.53277E-003 0.79955E-003 -0.21966E-003
- -0.59661E-003 0.35264E-003 -0.65872E-004
-- 0.11436E-002 0.38480E-003 -0.35781E-002
-+ 0.11436E-002 0.38479E-003 -0.35781E-002
- 0.36223E-002 -0.75229E-002 0.15451E-001
- 0.40636E-002 -0.14021E-001 0.68264E-002
- -0.25865E-002 0.28621E-002 -0.14937E-002
-@@ -1607,7 +1607,7 @@
- -0.72048E-002 0.52170E-002 -0.32634E-002
- -0.19081E-002 0.22332E-002 -0.24117E-002
- 0.23217E-002 0.50866E-003 -0.17204E-002
-- -0.75871E-002 0.73309E-002 0.25632E-005
-+ -0.75871E-002 0.73309E-002 0.25651E-005
- -0.21416E-001 -0.12367E-001 0.49953E-002
- -0.41626E-002 0.41883E-002 -0.30311E-002
- 0.19037E-002 0.31388E-003 -0.26396E-003
-@@ -1640,8 +1640,8 @@
- 0.33179E-003 -0.34087E-003 0.23211E-003
- -0.32071E-003 -0.56331E-004 0.14792E-003
- -0.41476E-003 -0.10262E-002 -0.21101E-001
-- -0.94099E-004 -0.10972E-002 0.73413E-003
-- -0.43772E-003 -0.10434E-003 0.72385E-004
-+ -0.94100E-004 -0.10972E-002 0.73413E-003
-+ -0.43772E-003 -0.10434E-003 0.72384E-004
- -0.27691E-003 -0.27499E-003 0.40064E-003
- -0.26074E-003 0.46773E-003 -0.13622E-003
- 0.20913E-003 -0.18338E-003 0.73660E-003
-@@ -1683,7 +1683,7 @@
- 0.38887E-003 -0.10225E-003 -0.35480E-003
- 0.21989E-002 -0.46306E-002 0.27804E-001
- -0.46260E-001 0.99268E-001 -0.12849E-001
-- 0.69339E-002 -0.28353E-002 0.32796E-002
-+ 0.69340E-002 -0.28353E-002 0.32796E-002
- -0.19358E-002 0.10950E-002 -0.18272E-003
- 0.56051E-002 -0.38298E-002 0.13655E-003
- 0.13715E-002 -0.54991E-002 0.85791E-002
-diff -urN amber11.orig/AmberTools/test/nab/Makefile amber11/AmberTools/test/nab/Makefile
---- amber11.orig/AmberTools/test/nab/Makefile 2010-04-01 08:14:34.000000000 +0400
-+++ amber11/AmberTools/test/nab/Makefile 2011-03-08 16:38:44.000000000 +0300
-@@ -12,7 +12,7 @@
- rattle_md_test rembed_test dhfrndpmtx_test asp_test \
- aspnb_test prm_test cif_test xmin_test \
- lmod_test nmode1_test nmode2_test nmode3_test ips_test \
-- pbsa_test rism_test rism_md_test rism_dist rism_hnc
-+ pbsa_test rism_test rism_md_test rism_dist rism_hnc rism_ion
-
- duplex_test::
- @./Run.duplex
-@@ -112,3 +112,6 @@
-
- rism_dist::
- @./Run.rism_dist
-+
-+rism_ion::
-+ @sh ./Run.rism_ion
-diff -urN amber11.orig/AmberTools/test/nab/Na+.parm7 amber11/AmberTools/test/nab/Na+.parm7
---- amber11.orig/AmberTools/test/nab/Na+.parm7 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/test/nab/Na+.parm7 2011-03-08 16:38:44.000000000 +0300
-@@ -0,0 +1,124 @@
-+%VERSION VERSION_STAMP = V0001.000 DATE = 06/20/07 15:21:17
-+%FLAG TITLE
-+%FORMAT(20a4)
-+
-+%FLAG POINTERS
-+%FORMAT(10I8)
-+ 1 1 0 0 0 0 0 0 0 0
-+ 1 1 0 0 0 0 0 0 1 0
-+ 0 0 0 0 0 0 0 1 1 0
-+ 0
-+%FLAG ATOM_NAME
-+%FORMAT(20a4)
-+Na+
-+%FLAG CHARGE
-+%FORMAT(5E16.8)
-+ 1.82223000E+01
-+%FLAG MASS
-+%FORMAT(5E16.8)
-+ 2.29900000E+01
-+%FLAG ATOM_TYPE_INDEX
-+%FORMAT(10I8)
-+ 1
-+%FLAG NUMBER_EXCLUDED_ATOMS
-+%FORMAT(10I8)
-+ 1
-+%FLAG NONBONDED_PARM_INDEX
-+%FORMAT(10I8)
-+ 1
-+%FLAG RESIDUE_LABEL
-+%FORMAT(20a4)
-+Na+
-+%FLAG RESIDUE_POINTER
-+%FORMAT(10I8)
-+ 1
-+%FLAG BOND_FORCE_CONSTANT
-+%FORMAT(5E16.8)
-+
-+%FLAG BOND_EQUIL_VALUE
-+%FORMAT(5E16.8)
-+
-+%FLAG ANGLE_FORCE_CONSTANT
-+%FORMAT(5E16.8)
-+
-+%FLAG ANGLE_EQUIL_VALUE
-+%FORMAT(5E16.8)
-+
-+%FLAG DIHEDRAL_FORCE_CONSTANT
-+%FORMAT(5E16.8)
-+
-+%FLAG DIHEDRAL_PERIODICITY
-+%FORMAT(5E16.8)
-+
-+%FLAG DIHEDRAL_PHASE
-+%FORMAT(5E16.8)
-+
-+%FLAG SOLTY
-+%FORMAT(5E16.8)
-+ 0.00000000E+00
-+%FLAG LENNARD_JONES_ACOEF
-+%FORMAT(5E16.8)
-+ 2.04815198E+04
-+%FLAG LENNARD_JONES_BCOEF
-+%FORMAT(5E16.8)
-+ 1.50643699E+01
-+%FLAG BONDS_INC_HYDROGEN
-+%FORMAT(10I8)
-+
-+%FLAG BONDS_WITHOUT_HYDROGEN
-+%FORMAT(10I8)
-+
-+%FLAG ANGLES_INC_HYDROGEN
-+%FORMAT(10I8)
-+
-+%FLAG ANGLES_WITHOUT_HYDROGEN
-+%FORMAT(10I8)
-+
-+%FLAG DIHEDRALS_INC_HYDROGEN
-+%FORMAT(10I8)
-+
-+%FLAG DIHEDRALS_WITHOUT_HYDROGEN
-+%FORMAT(10I8)
-+
-+%FLAG EXCLUDED_ATOMS_LIST
-+%FORMAT(10I8)
-+ 0
-+%FLAG HBOND_ACOEF
-+%FORMAT(5E16.8)
-+
-+%FLAG HBOND_BCOEF
-+%FORMAT(5E16.8)
-+
-+%FLAG HBCUT
-+%FORMAT(5E16.8)
-+
-+%FLAG AMBER_ATOM_TYPE
-+%FORMAT(20a4)
-+IP
-+%FLAG TREE_CHAIN_CLASSIFICATION
-+%FORMAT(20a4)
-+M
-+%FLAG JOIN_ARRAY
-+%FORMAT(10I8)
-+ 0
-+%FLAG IROTAT
-+%FORMAT(10I8)
-+ 0
-+%FLAG SOLVENT_POINTERS
-+%FORMAT(3I8)
-+ 1 1 2
-+%FLAG ATOMS_PER_MOLECULE
-+%FORMAT(10I8)
-+ 1
-+%FLAG BOX_DIMENSIONS
-+%FORMAT(5E16.8)
-+ 9.00000000E+01 2.56000000E+01 2.56000000E+01 2.56000000E+01
-+%FLAG RADIUS_SET
-+%FORMAT(1a80)
-+modified Bondi radii (mbondi)
-+%FLAG RADII
-+%FORMAT(5E16.8)
-+ 1.50000000E+00
-+%FLAG SCREEN
-+%FORMAT(5E16.8)
-+ 8.00000000E-01
-diff -urN amber11.orig/AmberTools/test/nab/Na+.pdb amber11/AmberTools/test/nab/Na+.pdb
---- amber11.orig/AmberTools/test/nab/Na+.pdb 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/test/nab/Na+.pdb 2011-03-08 16:38:44.000000000 +0300
-@@ -0,0 +1,4 @@
-+REMARK
-+ATOM 1 Na+ Na+ 1 0.000 0.000 0.000 1.00 0.00 N
-+TER
-+END
-diff -urN amber11.orig/AmberTools/test/nab/rismion.nab amber11/AmberTools/test/nab/rismion.nab
---- amber11.orig/AmberTools/test/nab/rismion.nab 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/test/nab/rismion.nab 2011-03-08 16:38:44.000000000 +0300
-@@ -0,0 +1,22 @@
-+molecule m;
-+float m_xyz[dynamic], f_xyz[dynamic], v_xyz[dynamic];
-+float dgrad, fret;
-+int ier, i;
-+
-+m = getpdb("Na+.pdb");
-+readparm(m, "Na+.parm7");
-+allocate m_xyz[3*m.natoms];
-+allocate f_xyz[3*m.natoms];
-+allocate v_xyz[3*m.natoms];
-+mm_options( "e_debug=0, ntpr=1, ntpr_md=1, cut=999.0, dt=0.001, rattle=0, tempi=0, zerov=0");
-+mm_options( "rism=1, apply_rism_force=0");
-+mm_options( "buffer=12, solvcut=999");
-+mm_options( "progress=1, xvvfile=../rism1d/spc/spc-nacl.xvv.save");
-+mme_init( m, NULL, "::Z", m_xyz, NULL);
-+
-+setxyz_from_mol( m, NULL, m_xyz );
-+
-+ier = md(3*m.natoms,0,m_xyz,f_xyz,v_xyz, mme );
-+
-+if(mytaskid==0)
-+ printf( "md returns %d\n", ier );
-diff -urN amber11.orig/AmberTools/test/nab/rismion.out.check amber11/AmberTools/test/nab/rismion.out.check
---- amber11.orig/AmberTools/test/nab/rismion.out.check 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/test/nab/rismion.out.check 2011-03-08 16:38:44.000000000 +0300
-@@ -0,0 +1,24 @@
-+Reading parm file (Na+.parm7)
-+title:
-+
-+ mm_options: e_debug=0
-+ mm_options: ntpr=1
-+ mm_options: ntpr_md=1
-+ mm_options: cut=999.0
-+ mm_options: dt=0.001
-+ mm_options: rattle=0
-+ mm_options: tempi=0
-+ mm_options: zerov=0
-+ mm_options: rism=1
-+ mm_options: apply_rism_force=0
-+ mm_options: buffer=12
-+ mm_options: solvcut=999
-+ mm_options: progress=1
-+ mm_options: xvvfile=../rism1d/spc/spc-nacl.xvv.save
-+| New format PARM file being parsed.
-+| Version = 0.001 Date = 04:06:10 Time = 16:41:39
-+ iter Total bad vdW elect nonpolar genBorn frms
-+ nblist_box, number of atoms= 1
-+ nblist_box, number of pairs= 0
-+ff: 0 -73.97 0.00 0.00 0.00 0.00 -73.97 0.00e+00
-+md returns 0
-diff -urN amber11.orig/AmberTools/test/nab/Run.rism_ion amber11/AmberTools/test/nab/Run.rism_ion
---- amber11.orig/AmberTools/test/nab/Run.rism_ion 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/test/nab/Run.rism_ion 2011-03-08 16:38:44.000000000 +0300
-@@ -0,0 +1,39 @@
-+#!/bin/sh
-+
-+toomany() {
-+ echo "${0}: This test requires 1, 2, 3, 4, 6, 8, 12 or 24 processes"
-+ echo "for meaningful comparison."
-+ exit 0
-+}
-+
-+if [ -n "${DO_PARALLEL}" ] ; then
-+ numprocs=`echo $DO_PARALLEL | awk -f ../numprocs.awk `
-+ if [ ! \( "$numprocs" -eq "12" -o "$numprocs" -eq "24"\
-+ -o "$numprocs" -eq "8" -o "$numprocs" -eq "6"\
-+ -o "$numprocs" -eq "3" -o "$numprocs" -eq "4"\
-+ -o "$numprocs" -eq "2" -o "$numprocs" -le "1" \) ]; then
-+ echo " DO_PARALLEL set to $DO_PARALLEL"
-+ toomany
-+ elif [ -n "${MP_PROCS}" ]; then
-+ if [ ! \( "$MP_PROCS" -eq "12" -o "$MP_PROCS" -eq "24"\
-+ -o "$MP_PROCS" -eq "8" -o "$MP_PROCS" -eq "6"\
-+ -o "$MP_PROCS" -eq "3" -o "$MP_PROCS" -eq "4"\
-+ -o "$MP_PROCS" -eq "2" -o "$MP_PROCS" -le "1" \) ]; then
-+# --- For IBM AIX ---
-+ echo " MP_PROCS set to "$MP_PROCS
-+ toomany
-+ fi
-+ fi
-+fi
-+. ../program_error.sh
-+
-+echo "Running test for ionic solvent and charge solute"
-+echo "(this tests the 3D-RISM-KH implementation)"
-+echo ""
-+../../bin/nab -o sff rismion.nab || error
-+$DO_PARALLEL ./sff > rismion.out || error
-+
-+../dacdif rismion.out.check rismion.out
-+
-+rm -f sff rismion.c
-+exit 0
-diff -urN amber11.orig/AmberTools/test/sleap/glycam/n.pdb.save amber11/AmberTools/test/sleap/glycam/n.pdb.save
---- amber11.orig/AmberTools/test/sleap/glycam/n.pdb.save 2010-03-31 07:05:23.000000000 +0400
-+++ amber11/AmberTools/test/sleap/glycam/n.pdb.save 2011-03-08 16:38:44.000000000 +0300
-@@ -8,13 +8,13 @@
- ATOM 8 O4 6LB 1 5.435 3.303 2.147 1.00 0.00
- ATOM 9 H4O 6LB 1 5.122 4.155 1.839 1.00 0.00
- ATOM 10 C3 6LB 1 5.271 3.073 -0.262 1.00 0.00
--ATOM 11 H3 6LB 1 4.894 2.740 -1.242 1.00 0.00
--ATOM 12 O3 6LB 1 6.571 3.630 -0.399 1.00 0.00
--ATOM 13 H3O 6LB 1 7.188 2.917 -0.649 1.00 0.00
--ATOM 14 C2 6LB 1 4.314 4.119 0.310 1.00 0.00
--ATOM 15 H2 6LB 1 3.733 4.482 1.177 1.00 0.00
--ATOM 16 O2 6LB 1 5.419 4.938 -0.016 1.00 0.00
--ATOM 17 H2O 6LB 1 6.213 5.114 -0.520 1.00 0.00
-+ATOM 11 H3 6LB 1 5.706 2.518 -1.108 1.00 0.00
-+ATOM 12 O3 6LB 1 5.591 4.453 -0.363 1.00 0.00
-+ATOM 13 H3O 6LB 1 6.553 4.558 -0.232 1.00 0.00
-+ATOM 14 C2 6LB 1 3.753 2.890 -0.273 1.00 0.00
-+ATOM 15 H2 6LB 1 3.395 3.508 0.570 1.00 0.00
-+ATOM 16 O2 6LB 1 3.239 3.287 -1.528 1.00 0.00
-+ATOM 17 H2O 6LB 1 2.352 3.631 -1.425 1.00 0.00
- ATOM 18 C6 6LB 1 5.842 0.516 2.583 1.00 0.00
- ATOM 19 H61 6LB 1 6.928 0.603 2.654 1.00 0.00
- ATOM 20 H62 6LB 1 5.375 1.096 3.383 1.00 0.00
-@@ -37,7 +37,7 @@
- ATOM 37 C2 VLB 2 4.686 -2.097 4.639 1.00 0.00
- ATOM 38 H2 VLB 2 4.209 -2.878 4.019 1.00 0.00
- ATOM 39 O2 VLB 2 3.816 -1.039 4.992 1.00 0.00
--ATOM 40 H2O VLB 2 2.957 -1.387 4.762 1.00 0.00
-+ATOM 40 H2O VLB 2 4.332 -0.238 5.050 1.00 0.00
- ATOM 41 O3 VLB 2 4.014 -3.472 6.508 1.00 0.00
- ATOM 42 C1 VLB 3 2.893 -2.701 6.920 1.00 0.00
- ATOM 43 H1 VLB 3 3.071 -1.648 6.648 1.00 0.00
-@@ -57,7 +57,7 @@
- ATOM 57 C2 VLB 3 1.614 -3.056 6.171 1.00 0.00
- ATOM 58 H2 VLB 3 1.323 -4.090 6.432 1.00 0.00
- ATOM 59 O2 VLB 3 1.793 -2.849 4.782 1.00 0.00
--ATOM 60 H2O VLB 3 1.405 -3.634 4.401 1.00 0.00
-+ATOM 60 H2O VLB 3 2.476 -2.193 4.666 1.00 0.00
- ATOM 61 O3 VLB 3 -0.763 -2.638 6.079 1.00 0.00
- ATOM 62 C1 3GB 4 -0.905 -2.644 4.665 1.00 0.00
- ATOM 63 H1 3GB 4 0.044 -2.311 4.215 1.00 0.00
-@@ -68,7 +68,7 @@
- ATOM 68 H61 3GB 4 -3.380 -0.533 1.560 1.00 0.00
- ATOM 69 H62 3GB 4 -4.134 -1.031 3.099 1.00 0.00
- ATOM 70 O6 3GB 4 -2.909 0.649 3.114 1.00 0.00
--ATOM 71 H6O 3GB 4 -3.688 0.628 3.666 1.00 0.00
-+ATOM 71 H6O 3GB 4 -2.709 0.580 4.045 1.00 0.00
- ATOM 72 C4 3GB 4 -2.352 -2.990 2.187 1.00 0.00
- ATOM 73 H4 3GB 4 -3.330 -3.384 2.501 1.00 0.00
- ATOM 74 O4 3GB 4 -2.343 -2.789 0.771 1.00 0.00
-@@ -78,7 +78,7 @@
- ATOM 78 C2 3GB 4 -1.106 -4.042 4.090 1.00 0.00
- ATOM 79 H2 3GB 4 -2.075 -4.437 4.446 1.00 0.00
- ATOM 80 O2 3GB 4 -0.002 -4.864 4.416 1.00 0.00
--ATOM 81 H2O 3GB 4 0.874 -5.115 4.125 1.00 0.00
-+ATOM 81 H2O 3GB 4 -0.154 -5.298 5.256 1.00 0.00
- ATOM 82 O3 3GB 4 -1.600 -5.254 2.060 1.00 0.00
- ATOM 83 C1 0GB 5 -0.735 -6.360 2.282 1.00 0.00
- ATOM 84 H1 0GB 5 0.116 -6.024 2.897 1.00 0.00
-@@ -89,7 +89,7 @@
- ATOM 89 H61 0GB 5 1.836 -9.117 -0.171 1.00 0.00
- ATOM 90 H62 0GB 5 0.236 -8.623 -0.788 1.00 0.00
- ATOM 91 O6 0GB 5 1.789 -7.246 -0.898 1.00 0.00
--ATOM 92 H6O 0GB 5 1.142 -7.286 -1.600 1.00 0.00
-+ATOM 92 H6O 0GB 5 1.207 -6.488 -0.919 1.00 0.00
- ATOM 93 C4 0GB 5 0.134 -9.099 1.971 1.00 0.00
- ATOM 94 H4 0GB 5 -0.679 -9.576 1.404 1.00 0.00
- ATOM 95 O4 0GB 5 1.193 -10.038 2.180 1.00 0.00
-@@ -103,49 +103,49 @@
- ATOM 103 O2 0GB 5 -1.753 -6.949 4.385 1.00 0.00
- ATOM 104 H2O 0GB 5 -2.644 -6.603 4.344 1.00 0.00
- TER
--ATOM 105 C1 3LB 6 10.501 -4.485 3.172 1.00 0.00
--ATOM 106 H1 3LB 6 10.220 -5.544 3.293 1.00 0.00
--ATOM 107 O5 3LB 6 11.709 -4.218 3.853 1.00 0.00
--ATOM 108 C5 3LB 6 12.798 -5.075 3.481 1.00 0.00
--ATOM 109 H5 3LB 6 12.529 -6.122 3.711 1.00 0.00
--ATOM 110 C6 3LB 6 13.974 -4.687 4.358 1.00 0.00
--ATOM 111 H61 3LB 6 14.831 -5.300 4.073 1.00 0.00
--ATOM 112 H62 3LB 6 14.206 -3.632 4.190 1.00 0.00
--ATOM 113 O6 3LB 6 13.745 -4.955 5.727 1.00 0.00
--ATOM 114 H6O 3LB 6 13.914 -4.037 5.928 1.00 0.00
--ATOM 115 C4 3LB 6 13.095 -4.959 1.987 1.00 0.00
--ATOM 116 H4 3LB 6 13.857 -5.698 1.700 1.00 0.00
--ATOM 117 O4 3LB 6 13.583 -3.638 1.737 1.00 0.00
--ATOM 118 H4O 3LB 6 13.207 -3.313 0.918 1.00 0.00
--ATOM 119 C3 3LB 6 11.834 -5.224 1.182 1.00 0.00
--ATOM 120 H3 3LB 6 11.550 -6.279 1.318 1.00 0.00
--ATOM 121 C2 3LB 6 10.690 -4.332 1.666 1.00 0.00
--ATOM 122 H2 3LB 6 11.034 -3.304 1.454 1.00 0.00
--ATOM 123 O2 3LB 6 9.498 -4.685 0.991 1.00 0.00
--ATOM 124 H2O 3LB 6 9.019 -5.430 0.628 1.00 0.00
--ATOM 125 O3 3LB 6 12.104 -4.961 -0.188 1.00 0.00
--ATOM 126 C1 0GB 7 11.081 -5.133 -1.159 1.00 0.00
--ATOM 127 H1 0GB 7 10.154 -5.434 -0.645 1.00 0.00
--ATOM 128 O5 0GB 7 11.461 -6.115 -2.101 1.00 0.00
--ATOM 129 C5 0GB 7 10.440 -6.444 -3.054 1.00 0.00
--ATOM 130 H5 0GB 7 9.559 -6.842 -2.518 1.00 0.00
--ATOM 131 C6 0GB 7 11.002 -7.552 -3.925 1.00 0.00
--ATOM 132 H61 0GB 7 10.258 -7.800 -4.686 1.00 0.00
--ATOM 133 H62 0GB 7 11.913 -7.191 -4.409 1.00 0.00
--ATOM 134 O6 0GB 7 11.234 -8.746 -3.207 1.00 0.00
--ATOM 135 H6O 0GB 7 12.148 -8.727 -3.483 1.00 0.00
--ATOM 136 C4 0GB 7 10.017 -5.207 -3.846 1.00 0.00
--ATOM 137 H4 0GB 7 10.852 -4.864 -4.475 1.00 0.00
--ATOM 138 O4 0GB 7 8.908 -5.572 -4.672 1.00 0.00
--ATOM 139 H4O 0GB 7 9.006 -5.159 -5.530 1.00 0.00
--ATOM 140 C3 0GB 7 9.603 -4.096 -2.897 1.00 0.00
--ATOM 141 H3 0GB 7 8.685 -4.408 -2.376 1.00 0.00
--ATOM 142 O3 0GB 7 9.362 -2.917 -3.653 1.00 0.00
--ATOM 143 H3O 0GB 7 8.751 -3.136 -4.381 1.00 0.00
--ATOM 144 C2 0GB 7 10.699 -3.835 -1.863 1.00 0.00
--ATOM 145 H2 0GB 7 11.561 -3.486 -2.459 1.00 0.00
--ATOM 146 O2 0GB 7 10.240 -2.889 -0.917 1.00 0.00
--ATOM 147 H2O 0GB 7 10.975 -2.374 -0.585 1.00 0.00
-+ATOM 105 C1 3LB 6 3.394 1.433 0.000 1.00 0.00
-+ATOM 106 H1 3LB 6 3.836 0.891 -0.851 1.00 0.00
-+ATOM 107 O5 3LB 6 3.973 0.998 1.212 1.00 0.00
-+ATOM 108 C5 3LB 6 5.405 1.087 1.247 1.00 0.00
-+ATOM 109 H5 3LB 6 5.826 0.451 0.448 1.00 0.00
-+ATOM 110 C6 3LB 6 5.842 0.516 2.583 1.00 0.00
-+ATOM 111 H61 3LB 6 6.928 0.603 2.654 1.00 0.00
-+ATOM 112 H62 3LB 6 5.375 1.096 3.383 1.00 0.00
-+ATOM 113 O6 3LB 6 5.555 -0.862 2.707 1.00 0.00
-+ATOM 114 H6O 3LB 6 4.615 -0.981 2.592 1.00 0.00
-+ATOM 115 C4 3LB 6 5.865 2.527 1.025 1.00 0.00
-+ATOM 116 H4 3LB 6 6.962 2.560 0.948 1.00 0.00
-+ATOM 117 O4 3LB 6 5.435 3.303 2.147 1.00 0.00
-+ATOM 118 H4O 3LB 6 5.122 4.155 1.839 1.00 0.00
-+ATOM 119 C3 3LB 6 5.271 3.073 -0.262 1.00 0.00
-+ATOM 120 H3 3LB 6 5.706 2.518 -1.108 1.00 0.00
-+ATOM 121 C2 3LB 6 3.753 2.890 -0.273 1.00 0.00
-+ATOM 122 H2 3LB 6 3.395 3.508 0.570 1.00 0.00
-+ATOM 123 O2 3LB 6 3.238 3.288 -1.530 1.00 0.00
-+ATOM 124 H2O 3LB 6 2.351 3.631 -1.427 1.00 0.00
-+ATOM 125 O3 3LB 6 5.591 4.453 -0.363 1.00 0.00
-+ATOM 126 C1 0GB 7 5.149 5.205 -1.484 1.00 0.00
-+ATOM 127 H1 0GB 7 4.548 4.549 -2.133 1.00 0.00
-+ATOM 128 O5 0GB 7 6.255 5.718 -2.197 1.00 0.00
-+ATOM 129 C5 0GB 7 5.911 6.393 -3.416 1.00 0.00
-+ATOM 130 H5 0GB 7 5.402 5.682 -4.091 1.00 0.00
-+ATOM 131 C6 0GB 7 7.218 6.805 -4.066 1.00 0.00
-+ATOM 132 H61 0GB 7 6.987 7.354 -4.981 1.00 0.00
-+ATOM 133 H62 0GB 7 7.764 7.455 -3.378 1.00 0.00
-+ATOM 134 O6 0GB 7 8.002 5.699 -4.466 1.00 0.00
-+ATOM 135 H6O 0GB 7 8.174 5.164 -3.694 1.00 0.00
-+ATOM 136 C4 0GB 7 4.976 7.569 -3.140 1.00 0.00
-+ATOM 137 H4 0GB 7 5.507 8.340 -2.562 1.00 0.00
-+ATOM 138 O4 0GB 7 4.562 8.106 -4.399 1.00 0.00
-+ATOM 139 H4O 0GB 7 4.551 9.062 -4.345 1.00 0.00
-+ATOM 140 C3 0GB 7 3.759 7.096 -2.362 1.00 0.00
-+ATOM 141 H3 0GB 7 3.169 6.430 -3.010 1.00 0.00
-+ATOM 142 O3 0GB 7 2.987 8.230 -1.991 1.00 0.00
-+ATOM 143 H3O 0GB 7 2.828 8.771 -2.788 1.00 0.00
-+ATOM 144 C2 0GB 7 4.185 6.326 -1.112 1.00 0.00
-+ATOM 145 H2 0GB 7 4.726 7.072 -0.501 1.00 0.00
-+ATOM 146 O2 0GB 7 3.042 5.790 -0.474 1.00 0.00
-+ATOM 147 H2O 0GB 7 3.187 5.738 0.470 1.00 0.00
- CONECT 1 2 3 14
- CONECT 2 1
- CONECT 3 1 4
-@@ -173,7 +173,7 @@
- CONECT 25 24 26 27 31
- CONECT 26 25
- CONECT 27 25 28 29 30
--CONECT 28 27 105
-+CONECT 28 27
- CONECT 29 27
- CONECT 30 27
- CONECT 31 25 32 33 35
-@@ -250,7 +250,7 @@
- CONECT 102 101
- CONECT 103 101 104
- CONECT 104 103
--CONECT 105 28 106 107 121
-+CONECT 105 106 107 121
- CONECT 106 105
- CONECT 107 105 108
- CONECT 108 107 109 110 115
-diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_amino91.lib.save amber11/AmberTools/test/sleap/oldleap/ff91/all_amino91.lib.save
---- amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_amino91.lib.save 2010-03-31 07:05:23.000000000 +0400
-+++ amber11/AmberTools/test/sleap/oldleap/ff91/all_amino91.lib.save 2011-03-08 16:38:44.000000000 +0300
-@@ -256,7 +256,7 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.230747 4.925147 1.196914
-- 4.828085 5.500165 0.713033
-+ 3.983296 5.433818 1.972557
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.SER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -368,7 +368,7 @@
- 1.784422 4.436955 2.124895
- 1.764698 4.397850 0.345787
- 3.971494 2.947416 2.411212
-- 4.374397 3.770738 2.696536
-+ 3.724043 3.456087 3.186855
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.THR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -500,15 +500,15 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.857033 4.748192 2.579338
-- 5.821217 4.249596 2.480083
-- 4.990360 5.695010 3.102655
-- 4.176711 4.112860 3.146449
-- 5.226485 5.898474 0.401698
-- 5.794506 5.938748 1.331123
-- 5.883342 6.134649 -0.435476
-- 4.414018 6.624028 0.441300
-+ 5.354265 4.863179 1.185791
-+ 3.853427 5.762894 -0.062862
-+ 2.773446 5.910110 -0.054565
-+ 4.351509 6.732051 -0.090207
-+ 4.134162 5.185701 -0.943848
-+ 3.881095 5.817649 2.426715
-+ 4.181612 5.279606 3.325770
-+ 4.379188 6.786828 2.400358
-+ 2.801124 5.964886 2.435947
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.LEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -648,12 +648,12 @@
- 3.671552 3.399212 3.380613
- 3.485641 1.869279 2.490736
- 4.230199 4.986696 1.245167
-- 3.258221 5.469711 1.345449
-- 4.638709 4.784431 2.235272
-- 5.178160 5.906245 0.482655
-- 5.735477 5.933935 1.418994
-- 5.840562 6.170139 -0.341774
-- 4.354989 6.619215 0.529171
-+ 5.312304 4.855747 1.245167
-+ 3.931816 5.541027 0.355344
-+ 3.812283 5.761636 2.490333
-+ 4.110763 5.208108 3.380624
-+ 4.296680 6.738088 2.490828
-+ 2.730275 5.893388 2.490801
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.ILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -781,9 +781,9 @@
- 3.716963 3.477633 3.370556
- 3.499621 1.931327 2.516833
- 4.274181 5.009604 1.194574
-- 4.690774 4.823320 2.184447
-- 4.954792 5.645336 0.628258
-- 3.310286 5.508600 1.294624
-+ 3.973778 5.548459 0.295968
-+ 3.993550 5.587589 2.075074
-+ 5.354265 4.863179 1.185791
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.VAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -897,10 +897,10 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.253694 5.017114 1.232141
-- 3.666601 5.213107 2.293908
-- 5.062354 5.920372 0.673198
-- 5.699537 6.377296 0.036552
-- 4.754312 6.389897 1.512695
-+ 5.005295 5.340406 0.315070
-+ 3.984875 5.817912 2.265912
-+ 4.408006 6.733705 2.314738
-+ 3.359598 5.504301 2.994456
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.ASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1024,13 +1024,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.220277 5.927344 0.433563
-- 4.913588 6.591689 1.420998
-- 6.050965 6.373808 -0.511346
-- 5.971268 7.107959 0.177690
-- 6.636748 6.497679 -1.324743
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.906966 5.848446 2.410297
-+ 3.138947 5.408353 3.262885
-+ 4.458847 7.061526 2.488328
-+ 4.248421 7.659050 3.274958
-+ 5.084275 7.376210 1.760376
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.GLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1185,20 +1185,20 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.125319 6.253797 -0.719124
-- 6.688164 6.300372 -1.556463
-- 6.117846 7.301883 0.099632
-- 5.907135 8.163840 1.090353
-- 5.292210 7.913283 1.851398
-- 6.363014 9.065005 1.077109
-- 6.926823 7.627695 -0.904511
-- 7.501836 7.713669 -1.730386
-- 6.873063 8.384728 -0.238094
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.540311 7.142726 2.424478
-+ 5.151800 7.375491 1.655062
-+ 4.364270 8.040994 3.389374
-+ 3.575005 7.807613 4.434120
-+ 3.088928 6.925430 4.508833
-+ 3.465343 8.513638 5.147984
-+ 5.006244 9.201290 3.286985
-+ 5.604850 9.375324 2.492326
-+ 4.892201 9.903050 4.004360
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.ARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1333,13 +1333,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 4.722990 6.580423 1.708019
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 3.339711 5.691917 3.169798
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.HID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1467,13 +1467,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 6.629203 7.441424 -0.586231
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.896295 7.605082 0.676854
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.HIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1605,14 +1605,14 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 4.722990 6.580423 1.708019
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 6.629203 7.441424 -0.586231
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 3.339711 5.691917 3.169798
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.896295 7.605082 0.676854
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.HIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1770,20 +1770,20 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 4.941957 6.093161 0.993054
-- 4.555798 6.518222 1.919501
-- 5.833674 6.587638 -0.009560
-- 5.727864 7.297382 0.701192
-- 6.577083 6.691104 -1.083216
-- 6.699953 7.881667 -0.356949
-- 7.350710 8.089828 -1.206234
-- 6.471604 8.773711 0.684306
-- 7.153163 9.167983 -0.069436
-- 6.163215 9.539474 1.752484
-- 6.850900 10.076243 1.098979
-- 5.726463 10.185215 2.927374
-- 6.404130 10.841773 2.381664
-- 5.125146 10.546906 4.138818
-+ 4.023443 5.931088 2.293236
-+ 3.368827 5.705470 3.135064
-+ 4.811936 7.073557 1.949805
-+ 4.882911 7.922013 2.493114
-+ 5.427345 6.842058 0.816764
-+ 6.297161 7.689048 0.119607
-+ 6.531228 8.676646 0.517052
-+ 6.814097 7.187003 -1.069017
-+ 7.498083 7.791848 -1.664355
-+ 6.482667 5.953109 -1.505090
-+ 6.897672 5.575635 -2.439640
-+ 5.604046 5.117349 -0.785625
-+ 5.358725 4.126563 -1.168065
-+ 5.083391 5.623006 0.411551
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.TRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1930,16 +1930,16 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.021223 6.053049 0.839188
-- 4.662984 6.521610 1.755820
-- 5.904492 6.742286 -0.000329
-- 5.724114 7.440373 0.817130
-- 6.758713 7.099630 -1.050381
-- 6.738282 7.947511 -0.365705
-- 7.536653 7.157250 -2.212917
-- 7.655187 8.096815 -1.673224
-- 8.214242 6.953605 -3.420974
-- 8.451251 7.942064 -3.027432
-+ 3.911603 5.857254 2.409885
-+ 3.236109 5.513847 3.193390
-+ 4.490005 7.129516 2.492349
-+ 4.264839 7.776656 3.340058
-+ 5.357612 7.570590 1.486013
-+ 5.807939 8.561136 1.550217
-+ 5.646816 6.739401 0.397212
-+ 6.322310 7.082808 -0.386292
-+ 5.068414 5.467139 0.314748
-+ 5.293580 4.820000 -0.532961
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.PHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2086,17 +2086,17 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 5.102503 5.984523 0.660315
-- 4.777863 6.502414 1.562811
-- 5.985574 6.611197 -0.227077
-- 5.846174 7.352316 0.559949
-- 6.824378 6.891857 -1.312267
-- 6.854321 7.991157 -0.512116
-- 6.305234 7.900783 0.270147
-- 7.573657 6.866032 -2.494602
-- 7.737299 7.827553 -2.007982
-- 8.211756 6.577405 -3.706841
-- 8.492629 7.576371 -3.373257
-+ 4.059917 5.918914 2.227275
-+ 3.400094 5.668222 3.057870
-+ 4.699989 7.163550 2.192787
-+ 4.538509 7.881896 2.996531
-+ 5.547468 7.485540 1.125968
-+ 6.169252 8.694615 1.092466
-+ 5.956320 9.246984 1.848209
-+ 5.754874 6.562895 0.093637
-+ 6.414696 6.813587 -0.736958
-+ 5.114801 5.318259 0.128125
-+ 5.276282 4.599913 -0.675619
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.TYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2219,11 +2219,11 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 3.302423 5.493308 1.295046
-- 4.682911 4.808028 2.184869
-- 5.220383 5.890117 0.404729
-- 6.306867 5.987364 1.035359
-- 4.568248 6.850423 -0.085305
-+ 5.347407 4.849844 1.186161
-+ 3.966920 5.535124 0.296338
-+ 3.873721 5.805373 2.428701
-+ 4.594575 5.679017 3.454373
-+ 2.855955 6.542075 2.333709
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.GLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2328,8 +2328,8 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.275095 5.011382 1.194525
-- 5.214909 5.080371 2.030940
-- 3.476290 5.943429 0.910275
-+ 3.669104 5.954940 0.620005
-+ 5.407723 5.091882 1.740669
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.ASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2471,18 +2471,18 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.145332 6.228186 -0.769897
-- 7.203874 5.974714 -0.827698
-- 5.823386 6.659994 -1.717522
-- 5.933539 7.203239 0.309601
-- 6.482814 7.265694 1.154880
-- 6.528435 7.362078 -0.491005
-- 5.203409 7.900796 0.330212
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.578316 7.173413 2.389148
-+ 5.658401 7.026988 2.380365
-+ 4.277913 7.712268 1.490542
-+ 4.199407 7.952315 3.576852
-+ 4.478064 7.453372 4.409622
-+ 4.661173 8.850231 3.551971
-+ 3.198660 8.088474 3.584954
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.LYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2600,11 +2600,11 @@
- 4.419995 0.019280 -0.902255
- 3.955884 -0.274036 0.790585
- 5.547124 1.172442 0.544698
-- 6.078592 2.122578 0.598404
-- 6.005141 0.543154 -0.218399
-- 5.532142 0.472642 1.882665
-- 6.368845 0.104645 1.288859
-- 5.876555 1.272377 2.538335
-+ 6.413547 0.741633 0.042886
-+ 5.652946 1.047940 1.622381
-+ 5.369090 2.628183 0.185221
-+ 5.690639 3.251042 1.019939
-+ 5.969291 2.861853 -0.694128
- 3.933608 2.871277 -0.104508
- 3.932642 3.351380 0.874062
- 2.872953 3.958248 -0.204456
-@@ -2714,9 +2714,9 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.309567 5.303525 1.366033
-- 5.145787 5.839753 0.481671
-- 4.563172 5.041444 1.938780
-- 3.657120 5.491212 1.354764
-+ 3.725381 5.622023 2.517634
-+ 4.051868 5.551722 0.788945
-+ 4.957920 5.101954 1.372960
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.CYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2819,8 +2819,8 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.309567 5.303525 1.366033
-- 4.563172 5.041444 1.938780
-- 3.657120 5.491212 1.354764
-+ 4.051868 5.551722 0.788945
-+ 4.957920 5.101954 1.372960
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.CYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2950,15 +2950,15 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.402881 6.076526 0.265157
-- 5.724538 5.972445 0.854008
-- 4.818486 6.422214 0.269993
-- 6.377314 6.105674 -1.224148
-- 6.034578 6.467191 -2.193651
-- 6.303017 6.908485 -0.490613
-- 7.415066 5.781911 -1.303828
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.817297 5.981271 2.651702
-+ 4.055297 5.545795 3.115122
-+ 3.149245 5.995564 2.531107
-+ 4.753204 7.463130 2.340945
-+ 4.433578 7.904044 1.396734
-+ 4.585895 8.175303 3.148978
-+ 5.814065 7.218764 2.286557
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.MET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_aminoct91.lib.save amber11/AmberTools/test/sleap/oldleap/ff91/all_aminoct91.lib.save
---- amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_aminoct91.lib.save 2010-03-31 07:05:23.000000000 +0400
-+++ amber11/AmberTools/test/sleap/oldleap/ff91/all_aminoct91.lib.save 2011-03-08 16:38:44.000000000 +0300
-@@ -272,7 +272,7 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.230747 4.925147 1.196914
-- 4.828085 5.500165 0.713033
-+ 3.983296 5.433818 1.972557
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -390,7 +390,7 @@
- 1.784422 4.436955 2.124895
- 1.764698 4.397850 0.345787
- 3.971494 2.947416 2.411212
-- 4.374397 3.770738 2.696536
-+ 3.724043 3.456087 3.186855
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -528,15 +528,15 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.857033 4.748192 2.579338
-- 5.821217 4.249596 2.480083
-- 4.990360 5.695010 3.102655
-- 4.176711 4.112860 3.146449
-- 5.226485 5.898474 0.401698
-- 5.794506 5.938748 1.331123
-- 5.883342 6.134649 -0.435476
-- 4.414018 6.624028 0.441300
-+ 5.354265 4.863179 1.185791
-+ 3.853427 5.762894 -0.062862
-+ 2.773446 5.910110 -0.054565
-+ 4.351509 6.732051 -0.090207
-+ 4.134162 5.185701 -0.943848
-+ 3.881095 5.817649 2.426715
-+ 4.181612 5.279606 3.325770
-+ 4.379188 6.786828 2.400358
-+ 2.801124 5.964886 2.435947
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -682,12 +682,12 @@
- 3.671552 3.399212 3.380613
- 3.485641 1.869279 2.490736
- 4.230199 4.986696 1.245167
-- 3.258221 5.469711 1.345449
-- 4.638709 4.784431 2.235272
-- 5.178160 5.906245 0.482655
-- 5.735477 5.933935 1.418994
-- 5.840562 6.170139 -0.341774
-- 4.354989 6.619215 0.529171
-+ 5.312304 4.855747 1.245167
-+ 3.931816 5.541027 0.355344
-+ 3.812283 5.761636 2.490333
-+ 4.110763 5.208108 3.380624
-+ 4.296680 6.738088 2.490828
-+ 2.730275 5.893388 2.490801
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -821,9 +821,9 @@
- 3.716963 3.477633 3.370556
- 3.499621 1.931327 2.516833
- 4.274181 5.009604 1.194574
-- 4.690774 4.823320 2.184447
-- 4.954792 5.645336 0.628258
-- 3.310286 5.508600 1.294624
-+ 3.973778 5.548459 0.295968
-+ 3.993550 5.587589 2.075074
-+ 5.354265 4.863179 1.185791
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -943,10 +943,10 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.253694 5.017114 1.232141
-- 3.666601 5.213107 2.293908
-- 5.062354 5.920372 0.673198
-- 5.699537 6.377296 0.036552
-- 4.754312 6.389897 1.512695
-+ 5.005295 5.340406 0.315070
-+ 3.984875 5.817912 2.265912
-+ 4.408006 6.733705 2.314738
-+ 3.359598 5.504301 2.994456
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -1076,13 +1076,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.220277 5.927344 0.433563
-- 4.913588 6.591689 1.420998
-- 6.050965 6.373808 -0.511346
-- 5.971268 7.107959 0.177690
-- 6.636748 6.497679 -1.324743
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.906966 5.848446 2.410297
-+ 3.138947 5.408353 3.262885
-+ 4.458847 7.061526 2.488328
-+ 4.248421 7.659050 3.274958
-+ 5.084275 7.376210 1.760376
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -1243,20 +1243,20 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.125319 6.253797 -0.719124
-- 6.688164 6.300372 -1.556463
-- 6.117846 7.301883 0.099632
-- 5.907135 8.163840 1.090353
-- 5.292210 7.913283 1.851398
-- 6.363014 9.065005 1.077109
-- 6.926823 7.627695 -0.904511
-- 7.501836 7.713669 -1.730386
-- 6.873063 8.384728 -0.238094
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.540311 7.142726 2.424478
-+ 5.151800 7.375491 1.655062
-+ 4.364270 8.040994 3.389374
-+ 3.575005 7.807613 4.434120
-+ 3.088928 6.925430 4.508833
-+ 3.465343 8.513638 5.147984
-+ 5.006244 9.201290 3.286985
-+ 5.604850 9.375324 2.492326
-+ 4.892201 9.903050 4.004360
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -1397,13 +1397,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 4.722990 6.580423 1.708019
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 3.339711 5.691917 3.169798
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -1537,13 +1537,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 6.629203 7.441424 -0.586231
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.896295 7.605082 0.676854
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -1681,14 +1681,14 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 4.722990 6.580423 1.708019
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 6.629203 7.441424 -0.586231
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 3.339711 5.691917 3.169798
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.896295 7.605082 0.676854
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -1852,20 +1852,20 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 4.941957 6.093161 0.993054
-- 4.555798 6.518222 1.919501
-- 5.833674 6.587638 -0.009560
-- 5.727864 7.297382 0.701192
-- 6.577083 6.691104 -1.083216
-- 6.699953 7.881667 -0.356949
-- 7.350710 8.089828 -1.206234
-- 6.471604 8.773711 0.684306
-- 7.153163 9.167983 -0.069436
-- 6.163215 9.539474 1.752484
-- 6.850900 10.076243 1.098979
-- 5.726463 10.185215 2.927374
-- 6.404130 10.841773 2.381664
-- 5.125146 10.546906 4.138818
-+ 4.023443 5.931088 2.293236
-+ 3.368827 5.705470 3.135064
-+ 4.811936 7.073557 1.949805
-+ 4.882911 7.922013 2.493114
-+ 5.427345 6.842058 0.816764
-+ 6.297161 7.689048 0.119607
-+ 6.531228 8.676646 0.517052
-+ 6.814097 7.187003 -1.069017
-+ 7.498083 7.791848 -1.664355
-+ 6.482667 5.953109 -1.505090
-+ 6.897672 5.575635 -2.439640
-+ 5.604046 5.117349 -0.785625
-+ 5.358725 4.126563 -1.168065
-+ 5.083391 5.623006 0.411551
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2018,16 +2018,16 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.021223 6.053049 0.839188
-- 4.662984 6.521610 1.755820
-- 5.904492 6.742286 -0.000329
-- 5.724114 7.440373 0.817130
-- 6.758713 7.099630 -1.050381
-- 6.738282 7.947511 -0.365705
-- 7.536653 7.157250 -2.212917
-- 7.655187 8.096815 -1.673224
-- 8.214242 6.953605 -3.420974
-- 8.451251 7.942064 -3.027432
-+ 3.911603 5.857254 2.409885
-+ 3.236109 5.513847 3.193390
-+ 4.490005 7.129516 2.492349
-+ 4.264839 7.776656 3.340058
-+ 5.357612 7.570590 1.486013
-+ 5.807939 8.561136 1.550217
-+ 5.646816 6.739401 0.397212
-+ 6.322310 7.082808 -0.386292
-+ 5.068414 5.467139 0.314748
-+ 5.293580 4.820000 -0.532961
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2180,17 +2180,17 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 5.102503 5.984523 0.660315
-- 4.777863 6.502414 1.562811
-- 5.985574 6.611197 -0.227077
-- 5.846174 7.352316 0.559949
-- 6.824378 6.891857 -1.312267
-- 6.854321 7.991157 -0.512116
-- 6.305234 7.900783 0.270147
-- 7.573657 6.866032 -2.494602
-- 7.737299 7.827553 -2.007982
-- 8.211756 6.577405 -3.706841
-- 8.492629 7.576371 -3.373257
-+ 4.059917 5.918914 2.227275
-+ 3.400094 5.668222 3.057870
-+ 4.699989 7.163550 2.192787
-+ 4.538509 7.881896 2.996531
-+ 5.547468 7.485540 1.125968
-+ 6.169252 8.694615 1.092466
-+ 5.956320 9.246984 1.848209
-+ 5.754874 6.562895 0.093637
-+ 6.414696 6.813587 -0.736958
-+ 5.114801 5.318259 0.128125
-+ 5.276282 4.599913 -0.675619
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2319,11 +2319,11 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 3.302423 5.493308 1.295046
-- 4.682911 4.808028 2.184869
-- 5.220383 5.890117 0.404729
-- 6.306867 5.987364 1.035359
-- 4.568248 6.850423 -0.085305
-+ 5.347407 4.849844 1.186161
-+ 3.966920 5.535124 0.296338
-+ 3.873721 5.805373 2.428701
-+ 4.594575 5.679017 3.454373
-+ 2.855955 6.542075 2.333709
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2434,8 +2434,8 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.275095 5.011382 1.194525
-- 5.214909 5.080371 2.030940
-- 3.476290 5.943429 0.910275
-+ 3.669104 5.954940 0.620005
-+ 5.407723 5.091882 1.740669
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2583,18 +2583,18 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.145332 6.228186 -0.769897
-- 7.203874 5.974714 -0.827698
-- 5.823386 6.659994 -1.717522
-- 5.933539 7.203239 0.309601
-- 6.482814 7.265694 1.154880
-- 6.528435 7.362078 -0.491005
-- 5.203409 7.900796 0.330212
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.578316 7.173413 2.389148
-+ 5.658401 7.026988 2.380365
-+ 4.277913 7.712268 1.490542
-+ 4.199407 7.952315 3.576852
-+ 4.478064 7.453372 4.409622
-+ 4.661173 8.850231 3.551971
-+ 3.198660 8.088474 3.584954
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2718,11 +2718,11 @@
- 4.419995 0.019280 -0.902255
- 3.955884 -0.274036 0.790585
- 5.547124 1.172442 0.544698
-- 6.078592 2.122578 0.598404
-- 6.005141 0.543154 -0.218399
-- 5.532142 0.472642 1.882665
-- 6.368845 0.104645 1.288859
-- 5.876555 1.272377 2.538335
-+ 6.413547 0.741633 0.042886
-+ 5.652946 1.047940 1.622381
-+ 5.369090 2.628183 0.185221
-+ 5.690639 3.251042 1.019939
-+ 5.969291 2.861853 -0.694128
- 3.933608 2.871277 -0.104508
- 3.932642 3.351380 0.874062
- 2.872953 3.958248 -0.204456
-@@ -2838,9 +2838,9 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.309567 5.303525 1.366033
-- 5.145787 5.839753 0.481671
-- 4.563172 5.041444 1.938780
-- 3.657120 5.491212 1.354764
-+ 3.725381 5.622023 2.517634
-+ 4.051868 5.551722 0.788945
-+ 4.957920 5.101954 1.372960
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2949,8 +2949,8 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.309567 5.303525 1.366033
-- 4.563172 5.041444 1.938780
-- 3.657120 5.491212 1.354764
-+ 4.051868 5.551722 0.788945
-+ 4.957920 5.101954 1.372960
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -3086,15 +3086,15 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.402881 6.076526 0.265157
-- 5.724538 5.972445 0.854008
-- 4.818486 6.422214 0.269993
-- 6.377314 6.105674 -1.224148
-- 6.034578 6.467191 -2.193651
-- 6.303017 6.908485 -0.490613
-- 7.415066 5.781911 -1.303828
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.817297 5.981271 2.651702
-+ 4.055297 5.545795 3.115122
-+ 3.149245 5.995564 2.531107
-+ 4.753204 7.463130 2.340945
-+ 4.433578 7.904044 1.396734
-+ 4.585895 8.175303 3.148978
-+ 5.814065 7.218764 2.286557
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_aminont91.lib.save amber11/AmberTools/test/sleap/oldleap/ff91/all_aminont91.lib.save
---- amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_aminont91.lib.save 2010-03-31 07:05:23.000000000 +0400
-+++ amber11/AmberTools/test/sleap/oldleap/ff91/all_aminont91.lib.save 2011-03-08 16:38:44.000000000 +0300
-@@ -290,7 +290,7 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.230747 4.925147 1.196914
-- 4.828085 5.500165 0.713033
-+ 3.983296 5.433818 1.972557
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NSER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -414,7 +414,7 @@
- 1.784422 4.436955 2.124895
- 1.764698 4.397850 0.345787
- 3.971494 2.947416 2.411212
-- 4.374397 3.770738 2.696536
-+ 3.724043 3.456087 3.186855
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NTHR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -558,15 +558,15 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.857033 4.748192 2.579338
-- 5.821217 4.249596 2.480083
-- 4.990360 5.695010 3.102655
-- 4.176711 4.112860 3.146449
-- 5.226485 5.898474 0.401698
-- 5.794506 5.938748 1.331123
-- 5.883342 6.134649 -0.435476
-- 4.414018 6.624028 0.441300
-+ 5.354265 4.863179 1.185791
-+ 3.853427 5.762894 -0.062862
-+ 2.773446 5.910110 -0.054565
-+ 4.351509 6.732051 -0.090207
-+ 4.134162 5.185701 -0.943848
-+ 3.881095 5.817649 2.426715
-+ 4.181612 5.279606 3.325770
-+ 4.379188 6.786828 2.400358
-+ 2.801124 5.964886 2.435947
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NLEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -718,12 +718,12 @@
- 3.671552 3.399212 3.380613
- 3.485641 1.869279 2.490736
- 4.230199 4.986696 1.245167
-- 4.638709 4.784431 2.235272
-- 3.258221 5.469711 1.345449
-- 5.178160 5.906245 0.482655
-- 5.735477 5.933935 1.418994
-- 5.840562 6.170139 -0.341774
-- 4.354989 6.619215 0.529171
-+ 3.931816 5.541027 0.355344
-+ 5.312304 4.855747 1.245167
-+ 3.812283 5.761636 2.490333
-+ 4.110763 5.208108 3.380624
-+ 4.296680 6.738088 2.490828
-+ 2.730275 5.893388 2.490801
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -863,9 +863,9 @@
- 3.716963 3.477633 3.370556
- 3.499621 1.931327 2.516833
- 4.274181 5.009604 1.194574
-- 4.690774 4.823320 2.184447
-- 4.954792 5.645336 0.628258
-- 3.310286 5.508600 1.294624
-+ 3.973778 5.548459 0.295968
-+ 3.993550 5.587589 2.075074
-+ 5.354265 4.863179 1.185791
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NVAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -991,10 +991,10 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.253694 5.017114 1.232141
-- 3.666601 5.213107 2.293908
-- 5.062354 5.920372 0.673198
-- 5.699537 6.377296 0.036552
-- 4.754312 6.389897 1.512695
-+ 5.005295 5.340406 0.315070
-+ 3.984875 5.817912 2.265912
-+ 4.408006 6.733705 2.314738
-+ 3.359598 5.504301 2.994456
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1130,13 +1130,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.220277 5.927344 0.433563
-- 4.913588 6.591689 1.420998
-- 6.050965 6.373808 -0.511346
-- 5.971268 7.107959 0.177690
-- 6.636748 6.497679 -1.324743
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.906966 5.848446 2.410297
-+ 3.138947 5.408353 3.262885
-+ 4.458847 7.061526 2.488328
-+ 4.248421 7.659050 3.274958
-+ 5.084275 7.376210 1.760376
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NGLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1303,20 +1303,20 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.125319 6.253797 -0.719124
-- 6.688164 6.300372 -1.556463
-- 6.117846 7.301883 0.099632
-- 5.907135 8.163840 1.090353
-- 5.292210 7.913283 1.851398
-- 6.363014 9.065005 1.077109
-- 6.926823 7.627695 -0.904511
-- 7.501836 7.713669 -1.730386
-- 6.873063 8.384728 -0.238094
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.540311 7.142726 2.424478
-+ 5.151800 7.375491 1.655062
-+ 4.364270 8.040994 3.389374
-+ 3.575005 7.807613 4.434120
-+ 3.088928 6.925430 4.508833
-+ 3.465343 8.513638 5.147984
-+ 5.006244 9.201290 3.286985
-+ 5.604850 9.375324 2.492326
-+ 4.892201 9.903050 4.004360
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1463,13 +1463,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 4.722990 6.580423 1.708019
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 3.339711 5.691917 3.169798
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NHID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1609,13 +1609,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 6.629203 7.441424 -0.586231
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.896295 7.605082 0.676854
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NHIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1759,14 +1759,14 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 4.722990 6.580423 1.708019
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 6.629203 7.441424 -0.586231
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 3.339711 5.691917 3.169798
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.896295 7.605082 0.676854
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NHIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1936,20 +1936,20 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 4.941957 6.093161 0.993054
-- 4.555798 6.518222 1.919501
-- 5.833674 6.587638 -0.009560
-- 5.727864 7.297382 0.701192
-- 6.577083 6.691104 -1.083216
-- 6.699953 7.881667 -0.356949
-- 7.350710 8.089828 -1.206234
-- 6.471604 8.773711 0.684306
-- 7.153163 9.167983 -0.069436
-- 6.163215 9.539474 1.752484
-- 6.850900 10.076243 1.098979
-- 5.726463 10.185215 2.927374
-- 6.404130 10.841773 2.381664
-- 5.125146 10.546906 4.138818
-+ 4.023443 5.931088 2.293236
-+ 3.368827 5.705470 3.135064
-+ 4.811936 7.073557 1.949805
-+ 4.882911 7.922013 2.493114
-+ 5.427345 6.842058 0.816764
-+ 6.297161 7.689048 0.119607
-+ 6.531228 8.676646 0.517052
-+ 6.814097 7.187003 -1.069017
-+ 7.498083 7.791848 -1.664355
-+ 6.482667 5.953109 -1.505090
-+ 6.897672 5.575635 -2.439640
-+ 5.604046 5.117349 -0.785625
-+ 5.358725 4.126563 -1.168065
-+ 5.083391 5.623006 0.411551
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NTRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2108,16 +2108,16 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.021223 6.053049 0.839188
-- 4.662984 6.521610 1.755820
-- 5.904492 6.742286 -0.000329
-- 5.724114 7.440373 0.817130
-- 6.758713 7.099630 -1.050381
-- 6.738282 7.947511 -0.365705
-- 7.536653 7.157250 -2.212917
-- 7.655187 8.096815 -1.673224
-- 8.214242 6.953605 -3.420974
-- 8.451251 7.942064 -3.027432
-+ 3.911603 5.857254 2.409885
-+ 3.236109 5.513847 3.193390
-+ 4.490005 7.129516 2.492349
-+ 4.264839 7.776656 3.340058
-+ 5.357612 7.570590 1.486013
-+ 5.807939 8.561136 1.550217
-+ 5.646816 6.739401 0.397212
-+ 6.322310 7.082808 -0.386292
-+ 5.068414 5.467139 0.314748
-+ 5.293580 4.820000 -0.532961
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NPHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2276,17 +2276,17 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 5.102503 5.984523 0.660315
-- 4.777863 6.502414 1.562811
-- 5.985574 6.611197 -0.227077
-- 5.846174 7.352316 0.559949
-- 6.824378 6.891857 -1.312267
-- 6.854321 7.991157 -0.512116
-- 6.305234 7.900783 0.270147
-- 7.573657 6.866032 -2.494602
-- 7.737299 7.827553 -2.007982
-- 8.211756 6.577405 -3.706841
-- 8.492629 7.576371 -3.373257
-+ 4.059917 5.918914 2.227275
-+ 3.400094 5.668222 3.057870
-+ 4.699989 7.163550 2.192787
-+ 4.538509 7.881896 2.996531
-+ 5.547468 7.485540 1.125968
-+ 6.169252 8.694615 1.092466
-+ 5.956320 9.246984 1.848209
-+ 5.754874 6.562895 0.093637
-+ 6.414696 6.813587 -0.736958
-+ 5.114801 5.318259 0.128125
-+ 5.276282 4.599913 -0.675619
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NTYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2421,11 +2421,11 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 3.302423 5.493308 1.295046
-- 4.682911 4.808028 2.184869
-- 5.220383 5.890117 0.404729
-- 6.306867 5.987364 1.035359
-- 4.568248 6.850423 -0.085305
-+ 5.347407 4.849844 1.186161
-+ 3.966920 5.535124 0.296338
-+ 3.873721 5.805373 2.428701
-+ 4.594575 5.679017 3.454373
-+ 2.855955 6.542075 2.333709
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NGLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2542,8 +2542,8 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.275095 5.011382 1.194525
-- 5.214909 5.080371 2.030940
-- 3.476290 5.943429 0.910275
-+ 3.669104 5.954940 0.620005
-+ 5.407723 5.091882 1.740669
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2697,18 +2697,18 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.145332 6.228186 -0.769897
-- 7.203874 5.974714 -0.827698
-- 5.823386 6.659994 -1.717522
-- 5.933539 7.203239 0.309601
-- 6.482814 7.265694 1.154880
-- 6.528435 7.362078 -0.491005
-- 5.203409 7.900796 0.330212
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.578316 7.173413 2.389148
-+ 5.658401 7.026988 2.380365
-+ 4.277913 7.712268 1.490542
-+ 4.199407 7.952315 3.576852
-+ 4.478064 7.453372 4.409622
-+ 4.661173 8.850231 3.551971
-+ 3.198660 8.088474 3.584954
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NLYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2838,11 +2838,11 @@
- 4.408167 0.002206 -0.902255
- 3.942020 -0.287863 0.790585
- 5.543318 1.147472 0.544698
-- 6.081407 2.093874 0.598404
-- 5.996931 0.515001 -0.218399
-- 5.523452 0.447794 1.882665
-- 6.357566 0.073964 1.288859
-- 5.873440 1.245104 2.538335
-+ 6.406713 0.710625 0.042886
-+ 5.648269 1.022234 1.622381
-+ 5.375452 2.604420 0.185221
-+ 5.701342 3.225018 1.019939
-+ 5.977270 2.833894 -0.694128
- 3.941702 2.857530 -0.104508
- 3.944087 3.337627 0.874062
- 2.888662 3.951879 -0.204456
-@@ -2964,9 +2964,9 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.309567 5.303525 1.366033
-- 5.145787 5.839753 0.481671
-- 4.563172 5.041444 1.938780
-- 3.657120 5.491212 1.354764
-+ 3.725381 5.622023 2.517634
-+ 4.051868 5.551722 0.788945
-+ 4.957920 5.101954 1.372960
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NCYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -3081,8 +3081,8 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.309567 5.303525 1.366033
-- 4.563172 5.041444 1.938780
-- 3.657120 5.491212 1.354764
-+ 4.051868 5.551722 0.788945
-+ 4.957920 5.101954 1.372960
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NCYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -3224,15 +3224,15 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.402881 6.076526 0.265157
-- 5.724538 5.972445 0.854008
-- 4.818486 6.422214 0.269993
-- 6.377314 6.105674 -1.224148
-- 6.034578 6.467191 -2.193651
-- 6.303017 6.908485 -0.490613
-- 7.415066 5.781911 -1.303828
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.817297 5.981271 2.651702
-+ 4.055297 5.545795 3.115122
-+ 3.149245 5.995564 2.531107
-+ 4.753204 7.463130 2.340945
-+ 4.433578 7.904044 1.396734
-+ 4.585895 8.175303 3.148978
-+ 5.814065 7.218764 2.286557
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NMET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_nucleic91.lib.save amber11/AmberTools/test/sleap/oldleap/ff91/all_nucleic91.lib.save
---- amber11.orig/AmberTools/test/sleap/oldleap/ff91/all_nucleic91.lib.save 2010-03-31 07:05:23.000000000 +0400
-+++ amber11/AmberTools/test/sleap/oldleap/ff91/all_nucleic91.lib.save 2011-03-08 16:38:44.000000000 +0300
-@@ -162,27 +162,27 @@
- 3.710733 0.830490 -3.744234
- 1.911850 1.246480 -4.585645
- 1.227112 2.479938 -4.747250
-- 1.435744 3.548600 -4.696894
-- 1.460583 2.154521 -6.213536
-- 0.611235 3.180043 -6.535735
-- -0.465186 3.098120 -6.567442
-- 1.349267 3.870896 -7.353068
-- -0.036082 3.758044 -7.339885
-- 0.351402 4.533174 -8.439444
-- -0.960336 4.612555 -8.701439
-- -1.624968 4.152050 -8.096212
-- -1.284404 5.132893 -9.504140
-- 1.216752 5.151275 -9.254748
-- -0.058580 5.292957 -9.604538
-- 0.617022 5.800159 -10.277374
-- -1.311694 5.457396 -9.985412
-- -2.648827 5.295295 -9.894316
-+ 1.476326 2.910069 -5.717291
-+ -0.266632 2.222549 -4.860734
-+ -1.220065 2.003738 -3.901574
-+ -0.944101 1.997212 -2.857447
-+ -2.424721 1.879538 -4.374202
-+ -2.264060 2.025899 -5.747107
-+ -3.171716 1.996442 -6.812608
-+ -4.488141 1.800018 -6.657550
-+ -4.872966 1.663197 -5.733813
-+ -5.095547 1.788787 -7.464416
-+ -2.681111 2.175962 -8.046577
-+ -1.373728 2.370469 -8.194275
-+ -0.957583 2.517234 -9.180015
-+ -0.428694 2.418225 -7.273933
-+ -0.949520 2.234705 -6.042040
- 2.953825 2.805883 -3.147902
- 2.001837 3.312549 -3.306355
- 1.598529 3.379160 -3.566738
- 1.132115 3.871151 -2.713214
- 1.786595 4.328794 -4.619224
-- 1.990348 5.218376 -4.321352
-+ 0.918045 4.664210 -4.853138
- 3.951586 3.479347 -3.901109
- !entry.RADE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
- 1 30 0 0 0 0
-@@ -367,25 +367,25 @@
- 3.710733 0.830490 -3.744234
- 1.911850 1.246480 -4.585645
- 1.227112 2.479938 -4.747250
-- 1.435744 3.548600 -4.696894
-- 1.485202 2.137699 -6.174261
-- 0.655381 3.211408 -6.264512
-- -0.423435 3.161813 -6.254680
-- 1.273874 3.921103 -7.246041
-- 2.001469 4.404856 -7.897723
-- -0.138537 4.008754 -7.451742
-- 0.496986 4.687819 -8.388428
-- 1.506269 4.703628 -8.353806
-- -0.021913 5.169907 -9.108453
-- -1.467764 3.981289 -7.487821
-- -2.803489 3.801409 -7.305937
-- -2.649940 4.509819 -8.312007
-+ 1.476326 2.910069 -5.717291
-+ -0.230375 2.189658 -4.854806
-+ -0.988446 1.979043 -3.745496
-+ -0.535467 2.020843 -2.765974
-+ -2.318623 1.714239 -3.846032
-+ -2.910767 1.548015 -2.946124
-+ -2.871582 1.669472 -5.164035
-+ -4.156011 1.417550 -5.334852
-+ -4.717568 1.261374 -4.510012
-+ -4.549259 1.385324 -6.264593
-+ -2.122766 1.876681 -6.243498
-+ -0.794090 2.140091 -6.121697
-+ -0.063349 2.338641 -7.103631
- 2.953825 2.805883 -3.147902
- 3.277337 2.955353 -2.117806
- 1.598529 3.379160 -3.566738
- 1.132115 3.871151 -2.713214
- 1.786595 4.328794 -4.619224
-- 1.990348 5.218376 -4.321352
-+ 0.918045 4.664210 -4.853138
- 3.951586 3.479347 -3.901109
- !entry.RCYT.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
- 1 28 0 0 0 0
-@@ -581,28 +581,28 @@
- 3.710733 0.830490 -3.744234
- 1.911850 1.246480 -4.585645
- 1.227112 2.479938 -4.747250
-- 1.435744 3.548600 -4.696894
-- 1.485985 2.137078 -6.173971
-- 0.630205 3.182508 -6.455250
-- -0.447083 3.109089 -6.476705
-- 1.375610 3.824568 -7.320253
-- -0.009195 3.704817 -7.311681
-- 0.430021 4.484569 -8.414167
-- -0.743299 4.619666 -8.757634
-- 1.449094 5.077582 -9.169036
-- 2.230864 5.470422 -9.653301
-- 0.193424 5.321243 -9.687036
-- 1.134074 5.907027 -10.440452
-- 2.131730 5.897532 -10.283319
-- 0.809583 6.430577 -11.240890
-- -1.093830 5.428430 -10.003875
-- -2.446615 5.292973 -9.968886
-+ 1.476326 2.910069 -5.717291
-+ -0.230179 2.188641 -4.854706
-+ -1.148250 1.950412 -3.852312
-+ -0.834533 1.961464 -2.818939
-+ -2.363371 1.722968 -4.285727
-+ -2.247746 1.815662 -5.667805
-+ -3.226774 1.665775 -6.685370
-+ -4.425333 1.414365 -6.570704
-+ -2.671302 1.843175 -7.958154
-+ -3.284184 1.755160 -8.743412
-+ -1.346177 2.129674 -8.215759
-+ -1.013622 2.261923 -9.507083
-+ -1.624549 2.163147 -10.305276
-+ -0.043809 2.463028 -9.704869
-+ -0.430928 2.271846 -7.261291
-+ -0.954757 2.102421 -6.017708
- 2.953825 2.805883 -3.147902
- 3.277337 2.955353 -2.117806
- 1.598529 3.379160 -3.566738
- 1.132115 3.871151 -2.713214
- 1.786595 4.328794 -4.619224
-- 1.990348 5.218376 -4.321352
-+ 0.918045 4.664210 -4.853138
- 3.951586 3.479347 -3.901109
- !entry.RGUA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
- 1 31 0 0 0 0
-@@ -876,24 +876,24 @@
- 3.710733 0.830490 -3.744234
- 1.911850 1.246480 -4.585645
- 1.227112 2.479938 -4.747250
-- 1.435744 3.548600 -4.696894
-- 1.462119 2.152380 -6.223183
-- 0.621409 3.225476 -6.359458
-- -0.457084 3.168437 -6.359671
-- 1.227187 3.969404 -7.294982
-- 1.951054 4.453936 -7.950226
-- -0.178556 4.113730 -7.571852
-- 0.321873 4.770160 -8.483756
-- -1.548942 3.990804 -7.465412
-- -1.150751 4.582332 -8.289814
-- -2.922393 3.884686 -7.383122
-- -2.754887 4.581962 -8.370112
-+ 1.476326 2.910069 -5.717291
-+ -0.276459 2.220856 -4.861481
-+ -1.084733 2.020834 -3.773554
-+ -0.665763 2.042111 -2.778360
-+ -2.406530 1.849990 -3.912354
-+ -3.030993 1.692292 -3.032992
-+ -3.019582 1.871650 -5.215158
-+ -4.219997 1.724488 -5.439315
-+ -2.132048 2.078389 -6.251470
-+ -2.549647 2.102845 -7.258005
-+ -0.768247 2.257235 -6.139841
-+ -0.062611 2.434266 -7.119196
- 2.953825 2.805883 -3.147902
- 3.102654 2.968023 -2.080353
- 1.598529 3.379160 -3.566738
- 1.132115 3.871151 -2.713214
- 1.786595 4.328794 -4.619224
-- 1.990348 5.218376 -4.321352
-+ 0.918045 4.664210 -4.853138
- 3.951586 3.479347 -3.901109
- !entry.RURA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
- 1 27 0 0 0 0
-@@ -1080,21 +1080,21 @@
- 3.710733 0.830490 -3.744234
- 1.911850 1.246480 -4.585645
- 1.227112 2.479938 -4.747250
-- 1.435744 3.548600 -4.696894
-- 1.460583 2.154521 -6.213536
-- 0.611235 3.180043 -6.535735
-- -0.465186 3.098120 -6.567442
-- 1.349267 3.870896 -7.353068
-- -0.036082 3.758044 -7.339885
-- 0.351402 4.533174 -8.439444
-- -0.960336 4.612555 -8.701439
-- -1.624968 4.152050 -8.096212
-- -1.284404 5.132893 -9.504140
-- 1.216752 5.151275 -9.254748
-- -0.058580 5.292957 -9.604538
-- 0.617022 5.800159 -10.277374
-- -1.311694 5.457396 -9.985412
-- -2.648827 5.295295 -9.894316
-+ 1.476326 2.910069 -5.717291
-+ -0.266632 2.222549 -4.860734
-+ -1.220065 2.003738 -3.901574
-+ -0.944101 1.997212 -2.857447
-+ -2.424721 1.879538 -4.374202
-+ -2.264060 2.025899 -5.747107
-+ -3.171716 1.996442 -6.812608
-+ -4.488141 1.800018 -6.657550
-+ -4.872966 1.663197 -5.733813
-+ -5.095547 1.788787 -7.464416
-+ -2.681111 2.175962 -8.046577
-+ -1.373728 2.370469 -8.194275
-+ -0.957583 2.517234 -9.180015
-+ -0.428694 2.418225 -7.273933
-+ -0.949520 2.234705 -6.042040
- 2.953825 2.805883 -3.147902
- 3.102654 2.968023 -2.080353
- 1.598529 3.379160 -3.566738
-@@ -1279,19 +1279,19 @@
- 3.710733 0.830490 -3.744234
- 1.911850 1.246480 -4.585645
- 1.227112 2.479938 -4.747250
-- 1.435744 3.548600 -4.696894
-- 1.485202 2.137699 -6.174261
-- 0.655381 3.211408 -6.264512
-- -0.423435 3.161813 -6.254680
-- 1.273874 3.921103 -7.246041
-- 2.001469 4.404856 -7.897723
-- -0.138537 4.008754 -7.451742
-- 0.496986 4.687819 -8.388428
-- 1.506269 4.703628 -8.353806
-- -0.021913 5.169907 -9.108453
-- -1.467764 3.981289 -7.487821
-- -2.803489 3.801409 -7.305937
-- -2.649940 4.509819 -8.312007
-+ 1.476326 2.910069 -5.717291
-+ -0.230375 2.189658 -4.854806
-+ -0.988446 1.979043 -3.745496
-+ -0.535467 2.020843 -2.765974
-+ -2.318623 1.714239 -3.846032
-+ -2.910767 1.548015 -2.946124
-+ -2.871582 1.669472 -5.164035
-+ -4.156011 1.417550 -5.334852
-+ -4.717568 1.261374 -4.510012
-+ -4.549259 1.385324 -6.264593
-+ -2.122766 1.876681 -6.243498
-+ -0.794090 2.140091 -6.121697
-+ -0.063349 2.338641 -7.103631
- 2.953825 2.805883 -3.147902
- 3.277337 2.955353 -2.117806
- 1.598529 3.379160 -3.566738
-@@ -1487,22 +1487,22 @@
- 3.710733 0.830490 -3.744234
- 1.911850 1.246480 -4.585645
- 1.227112 2.479938 -4.747250
-- 1.435744 3.548600 -4.696894
-- 1.485985 2.137078 -6.173971
-- 0.630205 3.182508 -6.455250
-- -0.447083 3.109089 -6.476705
-- 1.375610 3.824568 -7.320253
-- -0.009195 3.704817 -7.311681
-- 0.430021 4.484569 -8.414167
-- -0.743299 4.619666 -8.757634
-- 1.449094 5.077582 -9.169036
-- 2.230864 5.470422 -9.653301
-- 0.193424 5.321243 -9.687036
-- 1.134074 5.907027 -10.440452
-- 2.131730 5.897532 -10.283319
-- 0.809583 6.430577 -11.240890
-- -1.093830 5.428430 -10.003875
-- -2.446615 5.292973 -9.968886
-+ 1.476326 2.910069 -5.717291
-+ -0.230179 2.188641 -4.854706
-+ -1.148250 1.950412 -3.852312
-+ -0.834533 1.961464 -2.818939
-+ -2.363371 1.722968 -4.285727
-+ -2.247746 1.815662 -5.667805
-+ -3.226774 1.665775 -6.685370
-+ -4.425333 1.414365 -6.570704
-+ -2.671302 1.843175 -7.958154
-+ -3.284184 1.755160 -8.743412
-+ -1.346177 2.129674 -8.215759
-+ -1.013622 2.261923 -9.507083
-+ -1.624549 2.163147 -10.305276
-+ -0.043809 2.463028 -9.704869
-+ -0.430928 2.271846 -7.261291
-+ -0.954757 2.102421 -6.017708
- 2.953825 2.805883 -3.147902
- 3.277337 2.955353 -2.117806
- 1.598529 3.379160 -3.566738
-@@ -1788,21 +1788,21 @@
- 3.710733 0.830490 -3.744234
- 1.911850 1.246480 -4.585645
- 1.227112 2.479938 -4.747250
-- 1.435744 3.548600 -4.696894
-- 1.462119 2.152380 -6.223183
-- 0.621409 3.225476 -6.359458
-- -0.457084 3.168437 -6.359671
-- 1.227187 3.969404 -7.294982
-- 2.191055 4.651430 -8.220076
-- 2.843927 3.908200 -8.677753
-- 1.638142 5.177191 -8.998511
-- 2.792502 5.365208 -7.657153
-- -0.178556 4.113730 -7.571852
-- 0.321873 4.770160 -8.483756
-- -1.548942 3.990804 -7.465412
-- -1.150751 4.582332 -8.289814
-- -2.922393 3.884686 -7.383122
-- -2.754887 4.581962 -8.370112
-+ 1.476326 2.910069 -5.717291
-+ -0.276459 2.220856 -4.861481
-+ -1.084733 2.020834 -3.773554
-+ -0.665763 2.042111 -2.778360
-+ -2.406530 1.849990 -3.912354
-+ -3.300021 1.630344 -2.727690
-+ -3.231144 2.486293 -2.056343
-+ -4.330132 1.515881 -3.065138
-+ -2.988981 0.729023 -2.199511
-+ -3.019582 1.871650 -5.215158
-+ -4.219997 1.724488 -5.439315
-+ -2.132048 2.078389 -6.251470
-+ -2.549647 2.102845 -7.258005
-+ -0.768247 2.257235 -6.139841
-+ -0.062611 2.434266 -7.119196
- 2.953825 2.805883 -3.147902
- 3.102654 2.968023 -2.080353
- 1.598529 3.379160 -3.566738
-diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_amino94.lib.save amber11/AmberTools/test/sleap/oldleap/ff94/all_amino94.lib.save
---- amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_amino94.lib.save 2010-03-31 07:05:23.000000000 +0400
-+++ amber11/AmberTools/test/sleap/oldleap/ff94/all_amino94.lib.save 2011-03-08 16:38:44.000000000 +0300
-@@ -260,7 +260,7 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.230747 4.925147 1.196914
-- 4.828085 5.500165 0.713033
-+ 3.983296 5.433818 1.972557
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.SER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -372,7 +372,7 @@
- 1.784422 4.436955 2.124895
- 1.764698 4.397850 0.345787
- 3.971494 2.947416 2.411212
-- 4.374397 3.770738 2.696536
-+ 3.724043 3.456087 3.186855
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.THR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -504,15 +504,15 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.857033 4.748192 2.579338
-- 5.821217 4.249596 2.480083
-- 4.990360 5.695010 3.102655
-- 4.176711 4.112860 3.146449
-- 5.226485 5.898474 0.401698
-- 5.794506 5.938748 1.331123
-- 5.883342 6.134649 -0.435476
-- 4.414018 6.624028 0.441300
-+ 5.354265 4.863179 1.185791
-+ 3.853427 5.762894 -0.062862
-+ 2.773446 5.910110 -0.054565
-+ 4.351509 6.732051 -0.090207
-+ 4.134162 5.185701 -0.943848
-+ 3.881095 5.817649 2.426715
-+ 4.181612 5.279606 3.325770
-+ 4.379188 6.786828 2.400358
-+ 2.801124 5.964886 2.435947
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.LEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -652,12 +652,12 @@
- 3.671552 3.399212 3.380613
- 3.485641 1.869279 2.490736
- 4.230199 4.986696 1.245167
-- 3.258221 5.469711 1.345449
-- 4.638709 4.784431 2.235272
-- 5.178160 5.906245 0.482655
-- 5.735477 5.933935 1.418994
-- 5.840562 6.170139 -0.341774
-- 4.354989 6.619215 0.529171
-+ 5.312304 4.855747 1.245167
-+ 3.931816 5.541027 0.355344
-+ 3.812283 5.761636 2.490333
-+ 4.110763 5.208108 3.380624
-+ 4.296680 6.738088 2.490828
-+ 2.730275 5.893388 2.490801
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.ILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -785,9 +785,9 @@
- 3.716963 3.477633 3.370556
- 3.499621 1.931327 2.516833
- 4.274181 5.009604 1.194574
-- 4.690774 4.823320 2.184447
-- 4.954792 5.645336 0.628258
-- 3.310286 5.508600 1.294624
-+ 3.973778 5.548459 0.295968
-+ 3.993550 5.587589 2.075074
-+ 5.354265 4.863179 1.185791
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.VAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -901,10 +901,10 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.253694 5.017114 1.232141
-- 3.666601 5.213107 2.293908
-- 5.062354 5.920372 0.673198
-- 5.699537 6.377296 0.036552
-- 4.754312 6.389897 1.512695
-+ 5.005295 5.340406 0.315070
-+ 3.984875 5.817912 2.265912
-+ 4.408006 6.733705 2.314738
-+ 3.359598 5.504301 2.994456
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.ASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1028,13 +1028,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.220277 5.927344 0.433563
-- 4.913588 6.591689 1.420998
-- 6.050965 6.373808 -0.511346
-- 5.971268 7.107959 0.177690
-- 6.636748 6.497679 -1.324743
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.906966 5.848446 2.410297
-+ 3.138947 5.408353 3.262885
-+ 4.458847 7.061526 2.488328
-+ 4.248421 7.659050 3.274958
-+ 5.084275 7.376210 1.760376
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.GLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1189,20 +1189,20 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.125319 6.253797 -0.719124
-- 6.688164 6.300372 -1.556463
-- 6.117846 7.301883 0.099632
-- 5.907135 8.163840 1.090353
-- 5.292210 7.913283 1.851398
-- 6.363014 9.065005 1.077109
-- 6.926823 7.627695 -0.904511
-- 7.501836 7.713669 -1.730386
-- 6.873063 8.384728 -0.238094
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.540311 7.142726 2.424478
-+ 5.151800 7.375491 1.655062
-+ 4.364270 8.040994 3.389374
-+ 3.575005 7.807613 4.434120
-+ 3.088928 6.925430 4.508833
-+ 3.465343 8.513638 5.147984
-+ 5.006244 9.201290 3.286985
-+ 5.604850 9.375324 2.492326
-+ 4.892201 9.903050 4.004360
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.ARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1337,13 +1337,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 4.722990 6.580423 1.708019
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 3.339711 5.691917 3.169798
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.HID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1471,13 +1471,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 6.629203 7.441424 -0.586231
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.896295 7.605082 0.676854
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.HIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1609,14 +1609,14 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 4.722990 6.580423 1.708019
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 6.629203 7.441424 -0.586231
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 3.339711 5.691917 3.169798
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.896295 7.605082 0.676854
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.HIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1774,20 +1774,20 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 4.941957 6.093161 0.993054
-- 4.555798 6.518222 1.919501
-- 5.833674 6.587638 -0.009560
-- 5.727864 7.297382 0.701192
-- 6.577083 6.691104 -1.083216
-- 6.699953 7.881667 -0.356949
-- 7.350710 8.089828 -1.206234
-- 6.471604 8.773711 0.684306
-- 7.153163 9.167983 -0.069436
-- 6.163215 9.539474 1.752484
-- 6.850900 10.076243 1.098979
-- 5.726463 10.185215 2.927374
-- 6.404130 10.841773 2.381664
-- 5.125146 10.546906 4.138818
-+ 4.023443 5.931088 2.293236
-+ 3.368827 5.705470 3.135064
-+ 4.811936 7.073557 1.949805
-+ 4.882911 7.922013 2.493114
-+ 5.427345 6.842058 0.816764
-+ 6.297161 7.689048 0.119607
-+ 6.531228 8.676646 0.517052
-+ 6.814097 7.187003 -1.069017
-+ 7.498083 7.791848 -1.664355
-+ 6.482667 5.953109 -1.505090
-+ 6.897672 5.575635 -2.439640
-+ 5.604046 5.117349 -0.785625
-+ 5.358725 4.126563 -1.168065
-+ 5.083391 5.623006 0.411551
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.TRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1934,16 +1934,16 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.021223 6.053049 0.839188
-- 4.662984 6.521610 1.755820
-- 5.904492 6.742286 -0.000329
-- 5.724114 7.440373 0.817130
-- 6.758713 7.099630 -1.050381
-- 6.738282 7.947511 -0.365705
-- 7.536653 7.157250 -2.212917
-- 7.655187 8.096815 -1.673224
-- 8.214242 6.953605 -3.420974
-- 8.451251 7.942064 -3.027432
-+ 3.911603 5.857254 2.409885
-+ 3.236109 5.513847 3.193390
-+ 4.490005 7.129516 2.492349
-+ 4.264839 7.776656 3.340058
-+ 5.357612 7.570590 1.486013
-+ 5.807939 8.561136 1.550217
-+ 5.646816 6.739401 0.397212
-+ 6.322310 7.082808 -0.386292
-+ 5.068414 5.467139 0.314748
-+ 5.293580 4.820000 -0.532961
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.PHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2090,17 +2090,17 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 5.102503 5.984523 0.660315
-- 4.777863 6.502414 1.562811
-- 5.985574 6.611197 -0.227077
-- 5.846174 7.352316 0.559949
-- 6.824378 6.891857 -1.312267
-- 6.854321 7.991157 -0.512116
-- 6.305234 7.900783 0.270147
-- 7.573657 6.866032 -2.494602
-- 7.737299 7.827553 -2.007982
-- 8.211756 6.577405 -3.706841
-- 8.492629 7.576371 -3.373257
-+ 4.059917 5.918914 2.227275
-+ 3.400094 5.668222 3.057870
-+ 4.699989 7.163550 2.192787
-+ 4.538509 7.881896 2.996531
-+ 5.547468 7.485540 1.125968
-+ 6.169252 8.694615 1.092466
-+ 5.956320 9.246984 1.848209
-+ 5.754874 6.562895 0.093637
-+ 6.414696 6.813587 -0.736958
-+ 5.114801 5.318259 0.128125
-+ 5.276282 4.599913 -0.675619
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.TYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2223,11 +2223,11 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 3.302423 5.493308 1.295046
-- 4.682911 4.808028 2.184869
-- 5.220383 5.890117 0.404729
-- 6.306867 5.987364 1.035359
-- 4.568248 6.850423 -0.085305
-+ 5.347407 4.849844 1.186161
-+ 3.966920 5.535124 0.296338
-+ 3.873721 5.805373 2.428701
-+ 4.594575 5.679017 3.454373
-+ 2.855955 6.542075 2.333709
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.GLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2332,8 +2332,8 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.275095 5.011382 1.194525
-- 5.214909 5.080371 2.030940
-- 3.476290 5.943429 0.910275
-+ 3.669104 5.954940 0.620005
-+ 5.407723 5.091882 1.740669
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.ASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2475,18 +2475,18 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.145332 6.228186 -0.769897
-- 7.203874 5.974714 -0.827698
-- 5.823386 6.659994 -1.717522
-- 5.933539 7.203239 0.309601
-- 6.482814 7.265694 1.154880
-- 6.528435 7.362078 -0.491005
-- 5.203409 7.900796 0.330212
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.578316 7.173413 2.389148
-+ 5.658401 7.026988 2.380365
-+ 4.277913 7.712268 1.490542
-+ 4.199407 7.952315 3.576852
-+ 4.478064 7.453372 4.409622
-+ 4.661173 8.850231 3.551971
-+ 3.198660 8.088474 3.584954
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.LYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2634,17 +2634,17 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.145332 6.228186 -0.769897
-- 7.203874 5.974714 -0.827698
-- 5.823386 6.659994 -1.717522
-- 5.933539 7.203239 0.309601
-- 6.528435 7.362078 -0.491005
-- 5.203409 7.900796 0.330212
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.578316 7.173413 2.389148
-+ 5.658401 7.026988 2.380365
-+ 4.277913 7.712268 1.490542
-+ 4.199407 7.952315 3.576852
-+ 4.661173 8.850231 3.551971
-+ 3.198660 8.088474 3.584954
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.LYN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2761,11 +2761,11 @@
- 4.419995 0.019280 -0.902255
- 3.955884 -0.274036 0.790585
- 5.547124 1.172442 0.544698
-- 6.078592 2.122578 0.598404
-- 6.005141 0.543154 -0.218399
-- 5.532142 0.472642 1.882665
-- 5.876555 1.272377 2.538335
-- 6.368845 0.104645 1.288859
-+ 6.413547 0.741633 0.042886
-+ 5.652946 1.047940 1.622381
-+ 5.369090 2.628183 0.185221
-+ 5.969291 2.861853 -0.694128
-+ 5.690639 3.251042 1.019939
- 3.933608 2.871277 -0.104508
- 3.611466 3.488572 0.734105
- 3.505165 3.526388 -1.409786
-@@ -2867,7 +2867,7 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.309567 5.303525 1.366033
-- 5.145787 5.839753 0.481671
-+ 3.725381 5.622023 2.517634
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.CYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -3079,13 +3079,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.402881 6.076526 0.265157
-- 6.377314 6.105674 -1.224148
-- 6.034578 6.467191 -2.193651
-- 6.303017 6.908485 -0.490613
-- 7.415066 5.781911 -1.303828
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.817297 5.981271 2.651702
-+ 4.753204 7.463130 2.340945
-+ 4.433578 7.904044 1.396734
-+ 4.585895 8.175303 3.148978
-+ 5.814065 7.218764 2.286557
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.MET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -3196,9 +3196,9 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.275095 5.011382 1.194525
-- 5.214909 5.080371 2.030940
-- 3.476290 5.943429 0.910275
-- 4.245574 6.470767 0.682862
-+ 3.669104 5.954940 0.620005
-+ 5.407723 5.091882 1.740669
-+ 5.742895 5.987180 1.652921
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.ASH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -3317,12 +3317,12 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 3.302423 5.493308 1.295046
-- 4.682911 4.808028 2.184869
-- 5.220383 5.890117 0.404729
-- 6.306867 5.987364 1.035359
-- 4.568248 6.850423 -0.085305
-- 5.508873 7.035106 -0.033194
-+ 5.347407 4.849844 1.186161
-+ 3.966920 5.535124 0.296338
-+ 3.873721 5.805373 2.428701
-+ 4.594575 5.679017 3.454373
-+ 2.855955 6.542075 2.333709
-+ 2.710512 6.996629 3.166671
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.GLH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_aminoct94.lib.save amber11/AmberTools/test/sleap/oldleap/ff94/all_aminoct94.lib.save
---- amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_aminoct94.lib.save 2010-03-31 07:05:23.000000000 +0400
-+++ amber11/AmberTools/test/sleap/oldleap/ff94/all_aminoct94.lib.save 2011-03-08 16:38:44.000000000 +0300
-@@ -272,7 +272,7 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.230747 4.925147 1.196914
-- 4.828085 5.500165 0.713033
-+ 3.983296 5.433818 1.972557
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -390,7 +390,7 @@
- 1.784422 4.436955 2.124895
- 1.764698 4.397850 0.345787
- 3.971494 2.947416 2.411212
-- 4.374397 3.770738 2.696536
-+ 3.724043 3.456087 3.186855
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -528,15 +528,15 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.857033 4.748192 2.579338
-- 5.821217 4.249596 2.480083
-- 4.990360 5.695010 3.102655
-- 4.176711 4.112860 3.146449
-- 5.226485 5.898474 0.401698
-- 5.794506 5.938748 1.331123
-- 5.883342 6.134649 -0.435476
-- 4.414018 6.624028 0.441300
-+ 5.354265 4.863179 1.185791
-+ 3.853427 5.762894 -0.062862
-+ 2.773446 5.910110 -0.054565
-+ 4.351509 6.732051 -0.090207
-+ 4.134162 5.185701 -0.943848
-+ 3.881095 5.817649 2.426715
-+ 4.181612 5.279606 3.325770
-+ 4.379188 6.786828 2.400358
-+ 2.801124 5.964886 2.435947
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -682,12 +682,12 @@
- 3.671552 3.399212 3.380613
- 3.485641 1.869279 2.490736
- 4.230199 4.986696 1.245167
-- 3.258221 5.469711 1.345449
-- 4.638709 4.784431 2.235272
-- 5.178160 5.906245 0.482655
-- 5.735477 5.933935 1.418994
-- 5.840562 6.170139 -0.341774
-- 4.354989 6.619215 0.529171
-+ 5.312304 4.855747 1.245167
-+ 3.931816 5.541027 0.355344
-+ 3.812283 5.761636 2.490333
-+ 4.110763 5.208108 3.380624
-+ 4.296680 6.738088 2.490828
-+ 2.730275 5.893388 2.490801
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -821,9 +821,9 @@
- 3.716963 3.477633 3.370556
- 3.499621 1.931327 2.516833
- 4.274181 5.009604 1.194574
-- 4.690774 4.823320 2.184447
-- 4.954792 5.645336 0.628258
-- 3.310286 5.508600 1.294624
-+ 3.973778 5.548459 0.295968
-+ 3.993550 5.587589 2.075074
-+ 5.354265 4.863179 1.185791
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -943,10 +943,10 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.253694 5.017114 1.232141
-- 3.666601 5.213107 2.293908
-- 5.062354 5.920372 0.673198
-- 5.699537 6.377296 0.036552
-- 4.754312 6.389897 1.512695
-+ 5.005295 5.340406 0.315070
-+ 3.984875 5.817912 2.265912
-+ 4.408006 6.733705 2.314738
-+ 3.359598 5.504301 2.994456
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -1076,13 +1076,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.220277 5.927344 0.433563
-- 4.913588 6.591689 1.420998
-- 6.050965 6.373808 -0.511346
-- 5.971268 7.107959 0.177690
-- 6.636748 6.497679 -1.324743
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.906966 5.848446 2.410297
-+ 3.138947 5.408353 3.262885
-+ 4.458847 7.061526 2.488328
-+ 4.248421 7.659050 3.274958
-+ 5.084275 7.376210 1.760376
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -1243,20 +1243,20 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.125319 6.253797 -0.719124
-- 6.688164 6.300372 -1.556463
-- 6.117846 7.301883 0.099632
-- 5.907135 8.163840 1.090353
-- 5.292210 7.913283 1.851398
-- 6.363014 9.065005 1.077109
-- 6.926823 7.627695 -0.904511
-- 7.501836 7.713669 -1.730386
-- 6.873063 8.384728 -0.238094
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.540311 7.142726 2.424478
-+ 5.151800 7.375491 1.655062
-+ 4.364270 8.040994 3.389374
-+ 3.575005 7.807613 4.434120
-+ 3.088928 6.925430 4.508833
-+ 3.465343 8.513638 5.147984
-+ 5.006244 9.201290 3.286985
-+ 5.604850 9.375324 2.492326
-+ 4.892201 9.903050 4.004360
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -1397,13 +1397,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 4.722990 6.580423 1.708019
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 3.339711 5.691917 3.169798
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -1537,13 +1537,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 6.629203 7.441424 -0.586231
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.896295 7.605082 0.676854
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -1681,14 +1681,14 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 4.722990 6.580423 1.708019
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 6.629203 7.441424 -0.586231
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 3.339711 5.691917 3.169798
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.896295 7.605082 0.676854
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -1852,20 +1852,20 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 4.941957 6.093161 0.993054
-- 4.555798 6.518222 1.919501
-- 5.833674 6.587638 -0.009560
-- 5.727864 7.297382 0.701192
-- 6.577083 6.691104 -1.083216
-- 6.699953 7.881667 -0.356949
-- 7.350710 8.089828 -1.206234
-- 6.471604 8.773711 0.684306
-- 7.153163 9.167983 -0.069436
-- 6.163215 9.539474 1.752484
-- 6.850900 10.076243 1.098979
-- 5.726463 10.185215 2.927374
-- 6.404130 10.841773 2.381664
-- 5.125146 10.546906 4.138818
-+ 4.023443 5.931088 2.293236
-+ 3.368827 5.705470 3.135064
-+ 4.811936 7.073557 1.949805
-+ 4.882911 7.922013 2.493114
-+ 5.427345 6.842058 0.816764
-+ 6.297161 7.689048 0.119607
-+ 6.531228 8.676646 0.517052
-+ 6.814097 7.187003 -1.069017
-+ 7.498083 7.791848 -1.664355
-+ 6.482667 5.953109 -1.505090
-+ 6.897672 5.575635 -2.439640
-+ 5.604046 5.117349 -0.785625
-+ 5.358725 4.126563 -1.168065
-+ 5.083391 5.623006 0.411551
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2018,16 +2018,16 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.021223 6.053049 0.839188
-- 4.662984 6.521610 1.755820
-- 5.904492 6.742286 -0.000329
-- 5.724114 7.440373 0.817130
-- 6.758713 7.099630 -1.050381
-- 6.738282 7.947511 -0.365705
-- 7.536653 7.157250 -2.212917
-- 7.655187 8.096815 -1.673224
-- 8.214242 6.953605 -3.420974
-- 8.451251 7.942064 -3.027432
-+ 3.911603 5.857254 2.409885
-+ 3.236109 5.513847 3.193390
-+ 4.490005 7.129516 2.492349
-+ 4.264839 7.776656 3.340058
-+ 5.357612 7.570590 1.486013
-+ 5.807939 8.561136 1.550217
-+ 5.646816 6.739401 0.397212
-+ 6.322310 7.082808 -0.386292
-+ 5.068414 5.467139 0.314748
-+ 5.293580 4.820000 -0.532961
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2180,17 +2180,17 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 5.102503 5.984523 0.660315
-- 4.777863 6.502414 1.562811
-- 5.985574 6.611197 -0.227077
-- 5.846174 7.352316 0.559949
-- 6.824378 6.891857 -1.312267
-- 6.854321 7.991157 -0.512116
-- 6.305234 7.900783 0.270147
-- 7.573657 6.866032 -2.494602
-- 7.737299 7.827553 -2.007982
-- 8.211756 6.577405 -3.706841
-- 8.492629 7.576371 -3.373257
-+ 4.059917 5.918914 2.227275
-+ 3.400094 5.668222 3.057870
-+ 4.699989 7.163550 2.192787
-+ 4.538509 7.881896 2.996531
-+ 5.547468 7.485540 1.125968
-+ 6.169252 8.694615 1.092466
-+ 5.956320 9.246984 1.848209
-+ 5.754874 6.562895 0.093637
-+ 6.414696 6.813587 -0.736958
-+ 5.114801 5.318259 0.128125
-+ 5.276282 4.599913 -0.675619
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2319,11 +2319,11 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 3.302423 5.493308 1.295046
-- 4.682911 4.808028 2.184869
-- 5.220383 5.890117 0.404729
-- 6.306867 5.987364 1.035359
-- 4.568248 6.850423 -0.085305
-+ 5.347407 4.849844 1.186161
-+ 3.966920 5.535124 0.296338
-+ 3.873721 5.805373 2.428701
-+ 4.594575 5.679017 3.454373
-+ 2.855955 6.542075 2.333709
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2434,8 +2434,8 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.275095 5.011382 1.194525
-- 5.214909 5.080371 2.030940
-- 3.476290 5.943429 0.910275
-+ 3.669104 5.954940 0.620005
-+ 5.407723 5.091882 1.740669
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2583,18 +2583,18 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.145332 6.228186 -0.769897
-- 7.203874 5.974714 -0.827698
-- 5.823386 6.659994 -1.717522
-- 5.933539 7.203239 0.309601
-- 6.482814 7.265694 1.154880
-- 6.528435 7.362078 -0.491005
-- 5.203409 7.900796 0.330212
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.578316 7.173413 2.389148
-+ 5.658401 7.026988 2.380365
-+ 4.277913 7.712268 1.490542
-+ 4.199407 7.952315 3.576852
-+ 4.478064 7.453372 4.409622
-+ 4.661173 8.850231 3.551971
-+ 3.198660 8.088474 3.584954
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -2718,11 +2718,11 @@
- 4.419995 0.019280 -0.902255
- 3.955884 -0.274036 0.790585
- 5.547124 1.172442 0.544698
-- 6.078592 2.122578 0.598404
-- 6.005141 0.543154 -0.218399
-- 5.532142 0.472642 1.882665
-- 5.876555 1.272377 2.538335
-- 6.368845 0.104645 1.288859
-+ 6.413547 0.741633 0.042886
-+ 5.652946 1.047940 1.622381
-+ 5.369090 2.628183 0.185221
-+ 5.969291 2.861853 -0.694128
-+ 5.690639 3.251042 1.019939
- 3.933608 2.871277 -0.104508
- 3.611466 3.488572 0.734105
- 3.505165 3.526388 -1.409786
-@@ -2830,7 +2830,7 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.309567 5.303525 1.366033
-- 5.145787 5.839753 0.481671
-+ 3.725381 5.622023 2.517634
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-@@ -3054,13 +3054,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.402881 6.076526 0.265157
-- 6.377314 6.105674 -1.224148
-- 6.034578 6.467191 -2.193651
-- 6.303017 6.908485 -0.490613
-- 7.415066 5.781911 -1.303828
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.817297 5.981271 2.651702
-+ 4.753204 7.463130 2.340945
-+ 4.433578 7.904044 1.396734
-+ 4.585895 8.175303 3.148978
-+ 5.814065 7.218764 2.286557
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- 6.204451 3.702005 0.000000
-diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_aminont94.lib.save amber11/AmberTools/test/sleap/oldleap/ff94/all_aminont94.lib.save
---- amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_aminont94.lib.save 2010-03-31 07:05:23.000000000 +0400
-+++ amber11/AmberTools/test/sleap/oldleap/ff94/all_aminont94.lib.save 2011-03-08 16:38:44.000000000 +0300
-@@ -290,7 +290,7 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.230747 4.925147 1.196914
-- 4.828085 5.500165 0.713033
-+ 3.983296 5.433818 1.972557
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NSER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -414,7 +414,7 @@
- 1.784422 4.436955 2.124895
- 1.764698 4.397850 0.345787
- 3.971494 2.947416 2.411212
-- 4.374397 3.770738 2.696536
-+ 3.724043 3.456087 3.186855
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NTHR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -558,15 +558,15 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.857033 4.748192 2.579338
-- 5.821217 4.249596 2.480083
-- 4.990360 5.695010 3.102655
-- 4.176711 4.112860 3.146449
-- 5.226485 5.898474 0.401698
-- 5.794506 5.938748 1.331123
-- 5.883342 6.134649 -0.435476
-- 4.414018 6.624028 0.441300
-+ 5.354265 4.863179 1.185791
-+ 3.853427 5.762894 -0.062862
-+ 2.773446 5.910110 -0.054565
-+ 4.351509 6.732051 -0.090207
-+ 4.134162 5.185701 -0.943848
-+ 3.881095 5.817649 2.426715
-+ 4.181612 5.279606 3.325770
-+ 4.379188 6.786828 2.400358
-+ 2.801124 5.964886 2.435947
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NLEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -718,12 +718,12 @@
- 3.671552 3.399212 3.380613
- 3.485641 1.869279 2.490736
- 4.230199 4.986696 1.245167
-- 4.638709 4.784431 2.235272
-- 3.258221 5.469711 1.345449
-- 5.178160 5.906245 0.482655
-- 5.735477 5.933935 1.418994
-- 5.840562 6.170139 -0.341774
-- 4.354989 6.619215 0.529171
-+ 3.931816 5.541027 0.355344
-+ 5.312304 4.855747 1.245167
-+ 3.812283 5.761636 2.490333
-+ 4.110763 5.208108 3.380624
-+ 4.296680 6.738088 2.490828
-+ 2.730275 5.893388 2.490801
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -863,9 +863,9 @@
- 3.716963 3.477633 3.370556
- 3.499621 1.931327 2.516833
- 4.274181 5.009604 1.194574
-- 4.690774 4.823320 2.184447
-- 4.954792 5.645336 0.628258
-- 3.310286 5.508600 1.294624
-+ 3.973778 5.548459 0.295968
-+ 3.993550 5.587589 2.075074
-+ 5.354265 4.863179 1.185791
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NVAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -991,10 +991,10 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.253694 5.017114 1.232141
-- 3.666601 5.213107 2.293908
-- 5.062354 5.920372 0.673198
-- 5.699537 6.377296 0.036552
-- 4.754312 6.389897 1.512695
-+ 5.005295 5.340406 0.315070
-+ 3.984875 5.817912 2.265912
-+ 4.408006 6.733705 2.314738
-+ 3.359598 5.504301 2.994456
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1130,13 +1130,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.220277 5.927344 0.433563
-- 4.913588 6.591689 1.420998
-- 6.050965 6.373808 -0.511346
-- 5.971268 7.107959 0.177690
-- 6.636748 6.497679 -1.324743
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.906966 5.848446 2.410297
-+ 3.138947 5.408353 3.262885
-+ 4.458847 7.061526 2.488328
-+ 4.248421 7.659050 3.274958
-+ 5.084275 7.376210 1.760376
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NGLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1303,20 +1303,20 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.125319 6.253797 -0.719124
-- 6.688164 6.300372 -1.556463
-- 6.117846 7.301883 0.099632
-- 5.907135 8.163840 1.090353
-- 5.292210 7.913283 1.851398
-- 6.363014 9.065005 1.077109
-- 6.926823 7.627695 -0.904511
-- 7.501836 7.713669 -1.730386
-- 6.873063 8.384728 -0.238094
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.540311 7.142726 2.424478
-+ 5.151800 7.375491 1.655062
-+ 4.364270 8.040994 3.389374
-+ 3.575005 7.807613 4.434120
-+ 3.088928 6.925430 4.508833
-+ 3.465343 8.513638 5.147984
-+ 5.006244 9.201290 3.286985
-+ 5.604850 9.375324 2.492326
-+ 4.892201 9.903050 4.004360
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1463,13 +1463,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 4.722990 6.580423 1.708019
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 3.339711 5.691917 3.169798
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NHID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1609,13 +1609,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 6.629203 7.441424 -0.586231
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.896295 7.605082 0.676854
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NHIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1759,14 +1759,14 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.003504 6.072258 0.881472
-- 4.722990 6.580423 1.708019
-- 5.824163 6.508104 -0.056055
-- 5.654216 7.217462 0.753902
-- 6.562760 6.595751 -1.134430
-- 6.629203 7.441424 -0.586231
-- 7.210678 6.375009 -2.309622
-- 7.387392 7.342143 -1.838959
-+ 3.942772 5.885090 2.382967
-+ 3.339711 5.691917 3.169798
-+ 4.624266 6.997644 2.182496
-+ 4.563036 7.811879 2.904557
-+ 5.294008 6.891449 1.061662
-+ 5.896295 7.605082 0.676854
-+ 5.058971 5.678865 0.492455
-+ 5.537740 5.417840 -0.451339
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NHIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -1936,20 +1936,20 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 4.941957 6.093161 0.993054
-- 4.555798 6.518222 1.919501
-- 5.833674 6.587638 -0.009560
-- 5.727864 7.297382 0.701192
-- 6.577083 6.691104 -1.083216
-- 6.699953 7.881667 -0.356949
-- 7.350710 8.089828 -1.206234
-- 6.471604 8.773711 0.684306
-- 7.153163 9.167983 -0.069436
-- 6.163215 9.539474 1.752484
-- 6.850900 10.076243 1.098979
-- 5.726463 10.185215 2.927374
-- 6.404130 10.841773 2.381664
-- 5.125146 10.546906 4.138818
-+ 4.023443 5.931088 2.293236
-+ 3.368827 5.705470 3.135064
-+ 4.811936 7.073557 1.949805
-+ 4.882911 7.922013 2.493114
-+ 5.427345 6.842058 0.816764
-+ 6.297161 7.689048 0.119607
-+ 6.531228 8.676646 0.517052
-+ 6.814097 7.187003 -1.069017
-+ 7.498083 7.791848 -1.664355
-+ 6.482667 5.953109 -1.505090
-+ 6.897672 5.575635 -2.439640
-+ 5.604046 5.117349 -0.785625
-+ 5.358725 4.126563 -1.168065
-+ 5.083391 5.623006 0.411551
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NTRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2108,16 +2108,16 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.200807 5.026066 1.321085
-- 5.021223 6.053049 0.839188
-- 4.662984 6.521610 1.755820
-- 5.904492 6.742286 -0.000329
-- 5.724114 7.440373 0.817130
-- 6.758713 7.099630 -1.050381
-- 6.738282 7.947511 -0.365705
-- 7.536653 7.157250 -2.212917
-- 7.655187 8.096815 -1.673224
-- 8.214242 6.953605 -3.420974
-- 8.451251 7.942064 -3.027432
-+ 3.911603 5.857254 2.409885
-+ 3.236109 5.513847 3.193390
-+ 4.490005 7.129516 2.492349
-+ 4.264839 7.776656 3.340058
-+ 5.357612 7.570590 1.486013
-+ 5.807939 8.561136 1.550217
-+ 5.646816 6.739401 0.397212
-+ 6.322310 7.082808 -0.386292
-+ 5.068414 5.467139 0.314748
-+ 5.293580 4.820000 -0.532961
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NPHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2276,17 +2276,17 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 5.102503 5.984523 0.660315
-- 4.777863 6.502414 1.562811
-- 5.985574 6.611197 -0.227077
-- 5.846174 7.352316 0.559949
-- 6.824378 6.891857 -1.312267
-- 6.854321 7.991157 -0.512116
-- 6.305234 7.900783 0.270147
-- 7.573657 6.866032 -2.494602
-- 7.737299 7.827553 -2.007982
-- 8.211756 6.577405 -3.706841
-- 8.492629 7.576371 -3.373257
-+ 4.059917 5.918914 2.227275
-+ 3.400094 5.668222 3.057870
-+ 4.699989 7.163550 2.192787
-+ 4.538509 7.881896 2.996531
-+ 5.547468 7.485540 1.125968
-+ 6.169252 8.694615 1.092466
-+ 5.956320 9.246984 1.848209
-+ 5.754874 6.562895 0.093637
-+ 6.414696 6.813587 -0.736958
-+ 5.114801 5.318259 0.128125
-+ 5.276282 4.599913 -0.675619
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NTYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2421,11 +2421,11 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.267323 4.996269 1.194944
-- 3.302423 5.493308 1.295046
-- 4.682911 4.808028 2.184869
-- 5.220383 5.890117 0.404729
-- 6.306867 5.987364 1.035359
-- 4.568248 6.850423 -0.085305
-+ 5.347407 4.849844 1.186161
-+ 3.966920 5.535124 0.296338
-+ 3.873721 5.805373 2.428701
-+ 4.594575 5.679017 3.454373
-+ 2.855955 6.542075 2.333709
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NGLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2542,8 +2542,8 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.275095 5.011382 1.194525
-- 5.214909 5.080371 2.030940
-- 3.476290 5.943429 0.910275
-+ 3.669104 5.954940 0.620005
-+ 5.407723 5.091882 1.740669
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2697,18 +2697,18 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.226485 5.898474 0.401698
-- 4.414018 6.624028 0.441300
-- 5.794506 5.938748 1.331123
-- 6.145332 6.228186 -0.769897
-- 7.203874 5.974714 -0.827698
-- 5.823386 6.659994 -1.717522
-- 5.933539 7.203239 0.309601
-- 6.482814 7.265694 1.154880
-- 6.528435 7.362078 -0.491005
-- 5.203409 7.900796 0.330212
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.881095 5.817649 2.426715
-+ 2.801124 5.964886 2.435947
-+ 4.181612 5.279606 3.325770
-+ 4.578316 7.173413 2.389148
-+ 5.658401 7.026988 2.380365
-+ 4.277913 7.712268 1.490542
-+ 4.199407 7.952315 3.576852
-+ 4.478064 7.453372 4.409622
-+ 4.661173 8.850231 3.551971
-+ 3.198660 8.088474 3.584954
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NLYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -2838,11 +2838,11 @@
- 4.408167 0.002206 -0.902255
- 3.942020 -0.287863 0.790585
- 5.543318 1.147472 0.544698
-- 6.081407 2.093874 0.598404
-- 5.996931 0.515001 -0.218399
-- 5.523452 0.447794 1.882665
-- 5.873440 1.245104 2.538335
-- 6.357566 0.073964 1.288859
-+ 6.406713 0.710625 0.042886
-+ 5.648269 1.022234 1.622381
-+ 5.375452 2.604420 0.185221
-+ 5.977270 2.833894 -0.694128
-+ 5.701342 3.225018 1.019939
- 3.941702 2.857530 -0.104508
- 3.623877 3.477058 0.734105
- 3.517843 3.515616 -1.409786
-@@ -2956,7 +2956,7 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.309567 5.303525 1.366033
-- 5.145787 5.839753 0.481671
-+ 3.725381 5.622023 2.517634
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NCYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -3192,13 +3192,13 @@
- 2.496989 3.801078 1.241373
- 3.877477 3.115798 2.131196
- 4.274181 5.009604 1.194574
-- 3.310286 5.508600 1.294624
-- 4.690774 4.823320 2.184447
-- 5.402881 6.076526 0.265157
-- 6.377314 6.105674 -1.224148
-- 6.034578 6.467191 -2.193651
-- 6.303017 6.908485 -0.490613
-- 7.415066 5.781911 -1.303828
-+ 5.354265 4.863179 1.185791
-+ 3.973778 5.548459 0.295968
-+ 3.817297 5.981271 2.651702
-+ 4.753204 7.463130 2.340945
-+ 4.433578 7.904044 1.396734
-+ 4.585895 8.175303 3.148978
-+ 5.814065 7.218764 2.286557
- 5.485538 2.705208 0.000000
- 6.008821 1.593175 0.000000
- !entry.NMET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-diff -urN amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_nucleic94.lib.save amber11/AmberTools/test/sleap/oldleap/ff94/all_nucleic94.lib.save
---- amber11.orig/AmberTools/test/sleap/oldleap/ff94/all_nucleic94.lib.save 2010-03-31 07:05:23.000000000 +0400
-+++ amber11/AmberTools/test/sleap/oldleap/ff94/all_nucleic94.lib.save 2011-03-08 16:38:44.000000000 +0300
-@@ -181,21 +181,21 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.825854 0.331961 5.463505
-- 2.973744 -0.351218 5.767666
-- 3.198298 -1.353172 5.432908
-- 3.262456 0.147686 6.932887
-- 3.554407 -1.123002 6.450998
-- 3.970615 -1.030384 7.784487
-- 4.371751 -2.299375 7.628436
-- 4.806122 -2.789852 8.397106
-- 4.239728 -2.765377 6.742145
-- 4.154910 -0.430195 8.968298
-- 4.588103 -1.686764 8.920565
-- 4.748481 -1.226887 9.884511
-- 5.030638 -2.930357 8.914329
-- 5.276823 -4.138026 8.363485
-+ 2.623224 0.684847 5.224690
-+ 2.631874 -0.707517 3.706295
-+ 2.874735 -1.252950 2.473241
-+ 2.981754 -0.611820 1.610746
-+ 3.015083 -2.545282 2.486669
-+ 2.854431 -2.887097 3.824373
-+ 2.890057 -4.114829 4.496241
-+ 3.109804 -5.286605 3.884480
-+ 3.124371 -6.141804 4.421623
-+ 3.260868 -5.314611 2.886234
-+ 2.691903 -4.099290 5.821417
-+ 2.474287 -2.933307 6.423105
-+ 2.312232 -2.898303 7.490303
-+ 2.418509 -1.722706 5.899909
-+ 2.621151 -1.767164 4.565946
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
-@@ -394,21 +394,21 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.821628 0.329290 5.472166
-- 3.045980 -0.266556 5.623252
-- 3.300321 -1.253530 5.266050
-- 3.400654 0.078938 6.868419
-- 3.596750 0.739775 8.200650
-- 2.627095 1.008594 8.619702
-- 4.106045 0.052544 8.876247
-- 4.199810 1.639079 8.075463
-- 3.886987 -1.267611 6.713863
-- 4.193797 -1.026107 7.880244
-- 4.182336 -2.491705 6.149271
-- 4.473391 -2.322796 7.186024
-- 4.489928 -3.724276 5.610241
-- 4.916436 -3.803915 6.750481
-+ 2.623224 0.684847 5.224690
-+ 2.632951 -0.717026 3.703395
-+ 2.875701 -1.078946 2.404555
-+ 2.959028 -0.321296 1.639425
-+ 3.067013 -2.361001 2.064944
-+ 3.333430 -2.767543 0.645879
-+ 4.242250 -2.280529 0.292378
-+ 3.457938 -3.849191 0.594530
-+ 2.493973 -2.468751 0.018077
-+ 3.022943 -3.401289 3.059659
-+ 3.186167 -4.600916 2.842510
-+ 2.773364 -2.946913 4.338586
-+ 2.730574 -3.698393 5.126967
-+ 2.572586 -1.635482 4.718372
-+ 2.357489 -1.330164 5.879800
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
-@@ -612,22 +612,22 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.809468 0.366314 5.430851
-- 2.985443 -0.303283 5.701265
-- 3.220128 -1.300453 5.359250
-- 3.217392 0.174542 6.898755
-- 3.501851 -1.098776 6.419335
-- 3.907092 -0.959542 7.773142
-- 4.306119 -2.122793 7.750193
-- 4.034999 -0.202628 8.943920
-- 4.092163 0.401223 9.738965
-- 4.527564 -1.484195 9.083085
-- 4.671337 -0.799117 10.225713
-- 4.406357 0.160408 10.396586
-- 5.109266 -1.288479 10.993073
-- 4.937775 -2.746085 8.992209
-- 5.203174 -3.983662 8.494648
-+ 2.623224 0.684847 5.224690
-+ 2.590680 -0.679098 3.703090
-+ 2.813126 -1.180187 2.436667
-+ 2.923918 -0.505423 1.600713
-+ 2.866567 -2.487992 2.382906
-+ 2.666616 -2.884782 3.699977
-+ 2.618169 -4.183246 4.272728
-+ 2.745111 -5.274676 3.719947
-+ 2.392358 -4.124071 5.653129
-+ 2.340242 -4.991533 6.147896
-+ 2.235991 -2.964895 6.385427
-+ 2.027971 -3.123388 7.699660
-+ 1.962797 -3.996113 8.203846
-+ 1.903765 -2.280234 8.241661
-+ 2.283795 -1.749407 5.847650
-+ 2.502701 -1.789347 4.505978
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
-@@ -819,19 +819,19 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.810222 0.365622 5.431037
-- 3.040503 -0.202936 5.543946
-- 3.303784 -1.184927 5.179558
-- 3.350889 0.129864 6.825549
-- 3.478253 0.640008 7.780343
-- 3.798907 -1.207335 6.588738
-- 4.083865 -0.848420 7.826630
-- 4.553596 -1.522140 8.414470
-- 3.834435 0.071716 8.160148
-- 4.146081 -2.428628 6.192742
-- 4.391834 -3.604440 5.555033
-- 4.829292 -3.701644 6.711226
-+ 2.623224 0.684847 5.224690
-+ 2.591673 -0.679108 3.703398
-+ 2.814053 -0.989708 2.398148
-+ 2.904088 -0.203069 1.663647
-+ 2.926420 -2.283840 1.995414
-+ 3.104659 -2.514231 0.945056
-+ 2.799915 -3.288854 3.004791
-+ 2.898410 -4.565463 2.683902
-+ 2.803322 -5.244627 3.425383
-+ 3.063325 -4.838262 1.725527
-+ 2.582464 -2.976080 4.279070
-+ 2.473124 -1.675585 4.661638
-+ 2.270623 -1.344205 5.839254
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
-@@ -1043,21 +1043,21 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.398936 0.755791 5.236576
-- 5.570721 0.053476 5.133763
-- 5.651435 -0.952100 4.748143
-- 6.248368 0.547472 6.127122
-- 6.337852 -0.727929 5.581736
-- 7.186443 -0.642297 6.691944
-- 7.489983 -1.917831 6.415398
-- 8.153280 -2.415516 6.991980
-- 7.055473 -2.381556 5.630375
-- 7.773936 -0.045280 7.737899
-- 8.144838 -1.308931 7.552106
-- 8.632452 -0.851805 8.400438
-- 8.538915 -2.559764 7.402037
-- 8.562807 -3.771388 6.807145
-+ 5.071990 1.095268 4.737463
-+ 4.538874 -0.297045 3.315659
-+ 4.336740 -0.846471 2.077041
-+ 4.152394 -0.207224 1.226289
-+ 4.452852 -2.140973 2.049069
-+ 4.754050 -2.480049 3.362997
-+ 4.997986 -3.708205 3.989198
-+ 4.976769 -4.883498 3.345899
-+ 5.160704 -5.738821 3.850568
-+ 4.776841 -4.914031 2.356355
-+ 5.265289 -3.689348 5.302131
-+ 5.284973 -2.519883 5.935270
-+ 5.498266 -2.482169 6.993326
-+ 5.072682 -1.308518 5.455764
-+ 4.806134 -1.356364 4.133205
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
-@@ -1274,21 +1274,21 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.397885 0.753191 5.246175
-- 5.590532 0.136915 4.972869
-- 5.691792 -0.854182 4.555888
-- 6.355081 0.476418 6.019675
-- 7.005380 1.133878 7.200716
-- 6.241886 1.418905 7.924551
-- 7.704141 0.438210 7.665344
-- 7.543334 2.022951 6.871696
-- 6.737960 -0.878090 5.715845
-- 7.428954 -0.641760 6.705579
-- 6.803084 -2.106960 5.091315
-- 7.433797 -1.942952 5.965044
-- 6.888321 -3.344512 4.486667
-- 7.677782 -3.431286 5.412745
-+ 5.071990 1.095268 4.737463
-+ 4.538744 -0.306572 3.312620
-+ 4.316895 -0.672508 2.011169
-+ 4.145425 0.083640 1.259346
-+ 4.360306 -1.957588 1.633963
-+ 4.118872 -2.368537 0.211701
-+ 4.859526 -1.896818 -0.434064
-+ 4.201263 -3.452119 0.127068
-+ 3.120134 -2.055722 -0.092882
-+ 4.642734 -2.996992 2.589722
-+ 4.702936 -4.199185 2.336724
-+ 4.852811 -2.538498 3.874265
-+ 5.070419 -3.289156 4.634040
-+ 4.814710 -1.223887 4.292292
-+ 5.014652 -0.915008 5.455485
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
-@@ -1510,22 +1510,22 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.372913 0.790414 5.211298
-- 5.559757 0.101208 5.067090
-- 5.647583 -0.899755 4.671160
-- 6.194776 0.575080 6.110305
-- 6.278024 -0.702826 5.569817
-- 7.123995 -0.570401 6.702600
-- 7.472741 -1.740173 6.551245
-- 7.656517 0.184264 7.754694
-- 7.991655 0.787072 8.478783
-- 8.146732 -1.105376 7.724367
-- 8.683403 -0.422802 8.744993
-- 8.507987 0.541027 8.990678
-- 9.349613 -0.919433 9.319121
-- 8.481202 -2.373962 7.505920
-- 8.540900 -3.615812 6.954699
-+ 5.071990 1.095268 4.737463
-+ 4.499521 -0.267941 3.326572
-+ 4.267491 -0.772686 2.063324
-+ 4.096298 -0.099873 1.236030
-+ 4.278725 -2.081203 2.002024
-+ 4.535077 -2.474587 3.310318
-+ 4.665007 -3.772057 3.872536
-+ 4.578030 -4.865461 3.315935
-+ 4.925900 -3.709107 5.246571
-+ 5.032497 -4.575574 5.734292
-+ 5.047695 -2.547474 5.981536
-+ 5.299246 -2.702459 7.288556
-+ 5.396714 -3.573970 7.789625
-+ 5.381197 -1.857343 7.835514
-+ 4.927816 -1.332957 5.452878
-+ 4.673984 -1.376560 4.117488
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
-@@ -1735,19 +1735,19 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.373674 0.789709 5.211219
-- 5.559264 0.200618 4.899855
-- 5.666544 -0.785646 4.473035
-- 6.294463 0.528171 5.996117
-- 6.748720 1.036110 6.846852
-- 6.613356 -0.816346 5.628040
-- 7.310127 -0.462256 6.691775
-- 7.941913 -1.143751 7.087389
-- 7.204329 0.461930 7.085204
-- 6.784882 -2.043285 5.144201
-- 6.779159 -3.223049 4.467648
-- 7.584089 -3.327568 5.405072
-+ 5.071990 1.095268 4.737463
-+ 4.500559 -0.267967 3.326521
-+ 4.258187 -0.582249 2.025720
-+ 4.103951 0.202771 1.300217
-+ 4.205645 -1.878082 1.616262
-+ 4.010240 -2.111427 0.569617
-+ 4.416190 -2.880836 2.613787
-+ 4.378882 -4.158916 2.285883
-+ 4.532450 -4.836391 3.019057
-+ 4.201751 -4.434440 1.330472
-+ 4.652634 -2.564463 3.883788
-+ 4.701224 -1.262318 4.273223
-+ 4.918947 -0.927591 5.447171
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
-@@ -1953,27 +1953,27 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.825854 0.331961 5.463505
-- 2.973744 -0.351218 5.767666
-- 3.198298 -1.353172 5.432908
-- 3.262456 0.147686 6.932887
-- 3.554407 -1.123002 6.450998
-- 3.970615 -1.030384 7.784487
-- 4.371751 -2.299375 7.628436
-- 4.806122 -2.789852 8.397106
-- 4.239728 -2.765377 6.742145
-- 4.154910 -0.430195 8.968298
-- 4.588103 -1.686764 8.920565
-- 4.748481 -1.226887 9.884511
-- 5.030638 -2.930357 8.914329
-- 5.276823 -4.138026 8.363485
-+ 2.623224 0.684847 5.224690
-+ 2.631874 -0.707517 3.706295
-+ 2.874735 -1.252950 2.473241
-+ 2.981754 -0.611820 1.610746
-+ 3.015083 -2.545282 2.486669
-+ 2.854431 -2.887097 3.824373
-+ 2.890057 -4.114829 4.496241
-+ 3.109804 -5.286605 3.884480
-+ 3.124371 -6.141804 4.421623
-+ 3.260868 -5.314611 2.886234
-+ 2.691903 -4.099290 5.821417
-+ 2.474287 -2.933307 6.423105
-+ 2.312232 -2.898303 7.490303
-+ 2.418509 -1.722706 5.899909
-+ 2.621151 -1.767164 4.565946
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
- 4.177807 1.697081 2.650726
- 4.070872 1.663908 4.714248
-- 4.904136 2.139152 4.751846
-+ 4.591405 0.857803 4.743234
- 2.785622 3.721368 4.515694
- !entry.RA5.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
- 1 31 0 0 0 0
-@@ -2160,24 +2160,24 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.821628 0.329290 5.472166
-- 3.045980 -0.266556 5.623252
-- 3.300321 -1.253530 5.266050
-- 3.400654 0.078938 6.868419
-- 3.529160 0.584527 7.825480
-- 3.886987 -1.267611 6.713863
-- 4.193797 -1.026107 7.880244
-- 4.182336 -2.491705 6.149271
-- 4.473391 -2.322796 7.186024
-- 4.489928 -3.724276 5.610241
-- 4.916436 -3.803915 6.750481
-+ 2.623224 0.684847 5.224690
-+ 2.632951 -0.717026 3.703395
-+ 2.875701 -1.078946 2.404555
-+ 2.959028 -0.321296 1.639425
-+ 3.067013 -2.361001 2.064944
-+ 3.258724 -2.626638 1.025337
-+ 3.022943 -3.401289 3.059659
-+ 3.186167 -4.600916 2.842510
-+ 2.773364 -2.946913 4.338586
-+ 2.730574 -3.698393 5.126967
-+ 2.572586 -1.635482 4.718372
-+ 2.357489 -1.330164 5.879800
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
- 4.177807 1.697081 2.650726
- 4.070872 1.663908 4.714248
-- 4.904136 2.139152 4.751846
-+ 4.591405 0.857803 4.743234
- 2.785622 3.721368 4.515694
- !entry.RU5.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
- 1 28 0 0 0 0
-@@ -2378,28 +2378,28 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.809468 0.366314 5.430851
-- 2.985443 -0.303283 5.701265
-- 3.220128 -1.300453 5.359250
-- 3.217392 0.174542 6.898755
-- 3.501851 -1.098776 6.419335
-- 3.907092 -0.959542 7.773142
-- 4.306119 -2.122793 7.750193
-- 4.034999 -0.202628 8.943920
-- 4.092163 0.401223 9.738965
-- 4.527564 -1.484195 9.083085
-- 4.671337 -0.799117 10.225713
-- 4.406357 0.160408 10.396586
-- 5.109266 -1.288479 10.993073
-- 4.937775 -2.746085 8.992209
-- 5.203174 -3.983662 8.494648
-+ 2.623224 0.684847 5.224690
-+ 2.590680 -0.679098 3.703090
-+ 2.813126 -1.180187 2.436667
-+ 2.923918 -0.505423 1.600713
-+ 2.866567 -2.487992 2.382906
-+ 2.666616 -2.884782 3.699977
-+ 2.618169 -4.183246 4.272728
-+ 2.745111 -5.274676 3.719947
-+ 2.392358 -4.124071 5.653129
-+ 2.340242 -4.991533 6.147896
-+ 2.235991 -2.964895 6.385427
-+ 2.027971 -3.123388 7.699660
-+ 1.962797 -3.996113 8.203846
-+ 1.903765 -2.280234 8.241661
-+ 2.283795 -1.749407 5.847650
-+ 2.502701 -1.789347 4.505978
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
- 4.177807 1.697081 2.650726
- 4.070872 1.663908 4.714248
-- 4.904136 2.139152 4.751846
-+ 4.591405 0.857803 4.743234
- 2.785622 3.721368 4.515694
- !entry.RG5.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
- 1 32 0 0 0 0
-@@ -2591,25 +2591,25 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.810222 0.365622 5.431037
-- 3.040503 -0.202936 5.543946
-- 3.303784 -1.184927 5.179558
-- 3.350889 0.129864 6.825549
-- 3.478253 0.640008 7.780343
-- 3.798907 -1.207335 6.588738
-- 4.083865 -0.848420 7.826630
-- 4.553596 -1.522140 8.414470
-- 3.834435 0.071716 8.160148
-- 4.146081 -2.428628 6.192742
-- 4.391834 -3.604440 5.555033
-- 4.829292 -3.701644 6.711226
-+ 2.623224 0.684847 5.224690
-+ 2.591673 -0.679108 3.703398
-+ 2.814053 -0.989708 2.398148
-+ 2.904088 -0.203069 1.663647
-+ 2.926420 -2.283840 1.995414
-+ 3.104659 -2.514231 0.945056
-+ 2.799915 -3.288854 3.004791
-+ 2.898410 -4.565463 2.683902
-+ 2.803322 -5.244627 3.425383
-+ 3.063325 -4.838262 1.725527
-+ 2.582464 -2.976080 4.279070
-+ 2.473124 -1.675585 4.661638
-+ 2.270623 -1.344205 5.839254
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
- 4.177807 1.697081 2.650726
- 4.070872 1.663908 4.714248
-- 4.904136 2.139152 4.751846
-+ 4.591405 0.857803 4.743234
- 2.785622 3.721368 4.515694
- !entry.RC5.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
- 1 29 0 0 0 0
-@@ -2821,27 +2821,27 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.398936 0.755791 5.236576
-- 5.570721 0.053476 5.133763
-- 5.651435 -0.952100 4.748143
-- 6.248368 0.547472 6.127122
-- 6.337852 -0.727929 5.581736
-- 7.186443 -0.642297 6.691944
-- 7.489983 -1.917831 6.415398
-- 8.153280 -2.415516 6.991980
-- 7.055473 -2.381556 5.630375
-- 7.773936 -0.045280 7.737899
-- 8.144838 -1.308931 7.552106
-- 8.632452 -0.851805 8.400438
-- 8.538915 -2.559764 7.402037
-- 8.562807 -3.771388 6.807145
-+ 5.071990 1.095268 4.737463
-+ 4.538874 -0.297045 3.315659
-+ 4.336740 -0.846471 2.077041
-+ 4.152394 -0.207224 1.226289
-+ 4.452852 -2.140973 2.049069
-+ 4.754050 -2.480049 3.362997
-+ 4.997986 -3.708205 3.989198
-+ 4.976769 -4.883498 3.345899
-+ 5.160704 -5.738821 3.850568
-+ 4.776841 -4.914031 2.356355
-+ 5.265289 -3.689348 5.302131
-+ 5.284973 -2.519883 5.935270
-+ 5.498266 -2.482169 6.993326
-+ 5.072682 -1.308518 5.455764
-+ 4.806134 -1.356364 4.133205
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
- 5.668203 2.081314 1.781304
- 6.272975 2.049937 3.757138
-- 7.076220 2.511153 3.504793
-+ 6.759270 1.235224 3.610988
- 5.029888 4.128641 3.998289
- 5.911975 4.450154 3.797910
- !entry.RA3.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -3046,24 +3046,24 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.397885 0.753191 5.246175
-- 5.590532 0.136915 4.972869
-- 5.691792 -0.854182 4.555888
-- 6.355081 0.476418 6.019675
-- 6.811115 0.979784 6.872175
-- 6.737960 -0.878090 5.715845
-- 7.428954 -0.641760 6.705579
-- 6.803084 -2.106960 5.091315
-- 7.433797 -1.942952 5.965044
-- 6.888321 -3.344512 4.486667
-- 7.677782 -3.431286 5.412745
-+ 5.071990 1.095268 4.737463
-+ 4.538744 -0.306572 3.312620
-+ 4.316895 -0.672508 2.011169
-+ 4.145425 0.083640 1.259346
-+ 4.360306 -1.957588 1.633963
-+ 4.180681 -2.226400 0.593014
-+ 4.642734 -2.996992 2.589722
-+ 4.702936 -4.199185 2.336724
-+ 4.852811 -2.538498 3.874265
-+ 5.070419 -3.289156 4.634040
-+ 4.814710 -1.223887 4.292292
-+ 5.014652 -0.915008 5.455485
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
- 5.668203 2.081314 1.781304
- 6.272975 2.049937 3.757138
-- 7.076220 2.511153 3.504793
-+ 6.759270 1.235224 3.610988
- 5.029888 4.128641 3.998289
- 5.911975 4.450154 3.797910
- !entry.RU3.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -3282,28 +3282,28 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.372913 0.790414 5.211298
-- 5.559757 0.101208 5.067090
-- 5.647583 -0.899755 4.671160
-- 6.194776 0.575080 6.110305
-- 6.278024 -0.702826 5.569817
-- 7.123995 -0.570401 6.702600
-- 7.472741 -1.740173 6.551245
-- 7.656517 0.184264 7.754694
-- 7.991655 0.787072 8.478783
-- 8.146732 -1.105376 7.724367
-- 8.683403 -0.422802 8.744993
-- 8.507987 0.541027 8.990678
-- 9.349613 -0.919433 9.319121
-- 8.481202 -2.373962 7.505920
-- 8.540900 -3.615812 6.954699
-+ 5.071990 1.095268 4.737463
-+ 4.499521 -0.267941 3.326572
-+ 4.267491 -0.772686 2.063324
-+ 4.096298 -0.099873 1.236030
-+ 4.278725 -2.081203 2.002024
-+ 4.535077 -2.474587 3.310318
-+ 4.665007 -3.772057 3.872536
-+ 4.578030 -4.865461 3.315935
-+ 4.925900 -3.709107 5.246571
-+ 5.032497 -4.575574 5.734292
-+ 5.047695 -2.547474 5.981536
-+ 5.299246 -2.702459 7.288556
-+ 5.396714 -3.573970 7.789625
-+ 5.381197 -1.857343 7.835514
-+ 4.927816 -1.332957 5.452878
-+ 4.673984 -1.376560 4.117488
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
- 5.668203 2.081314 1.781304
- 6.272975 2.049937 3.757138
-- 7.076220 2.511153 3.504793
-+ 6.759270 1.235224 3.610988
- 5.029888 4.128641 3.998289
- 5.911975 4.450154 3.797910
- !entry.RG3.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -3513,25 +3513,25 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.373674 0.789709 5.211219
-- 5.559264 0.200618 4.899855
-- 5.666544 -0.785646 4.473035
-- 6.294463 0.528171 5.996117
-- 6.748720 1.036110 6.846852
-- 6.613356 -0.816346 5.628040
-- 7.310127 -0.462256 6.691775
-- 7.941913 -1.143751 7.087389
-- 7.204329 0.461930 7.085204
-- 6.784882 -2.043285 5.144201
-- 6.779159 -3.223049 4.467648
-- 7.584089 -3.327568 5.405072
-+ 5.071990 1.095268 4.737463
-+ 4.500559 -0.267967 3.326521
-+ 4.258187 -0.582249 2.025720
-+ 4.103951 0.202771 1.300217
-+ 4.205645 -1.878082 1.616262
-+ 4.010240 -2.111427 0.569617
-+ 4.416190 -2.880836 2.613787
-+ 4.378882 -4.158916 2.285883
-+ 4.532450 -4.836391 3.019057
-+ 4.201751 -4.434440 1.330472
-+ 4.652634 -2.564463 3.883788
-+ 4.701224 -1.262318 4.273223
-+ 4.918947 -0.927591 5.447171
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
- 5.668203 2.081314 1.781304
- 6.272975 2.049937 3.757138
-- 7.076220 2.511153 3.504793
-+ 6.759270 1.235224 3.610988
- 5.029888 4.128641 3.998289
- 5.911975 4.450154 3.797910
- !entry.RC3.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -3739,21 +3739,21 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.398936 0.755791 5.236576
-- 5.570721 0.053476 5.133763
-- 5.651435 -0.952100 4.748143
-- 6.248368 0.547472 6.127122
-- 6.337852 -0.727929 5.581736
-- 7.186443 -0.642297 6.691944
-- 7.489983 -1.917831 6.415398
-- 8.153280 -2.415516 6.991980
-- 7.055473 -2.381556 5.630375
-- 7.773936 -0.045280 7.737899
-- 8.144838 -1.308931 7.552106
-- 8.632452 -0.851805 8.400438
-- 8.538915 -2.559764 7.402037
-- 8.562807 -3.771388 6.807145
-+ 5.071990 1.095268 4.737463
-+ 4.538874 -0.297045 3.315659
-+ 4.336740 -0.846471 2.077041
-+ 4.152394 -0.207224 1.226289
-+ 4.452852 -2.140973 2.049069
-+ 4.754050 -2.480049 3.362997
-+ 4.997986 -3.708205 3.989198
-+ 4.976769 -4.883498 3.345899
-+ 5.160704 -5.738821 3.850568
-+ 4.776841 -4.914031 2.356355
-+ 5.265289 -3.689348 5.302131
-+ 5.284973 -2.519883 5.935270
-+ 5.498266 -2.482169 6.993326
-+ 5.072682 -1.308518 5.455764
-+ 4.806134 -1.356364 4.133205
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
-@@ -3964,21 +3964,21 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.397885 0.753191 5.246175
-- 5.590532 0.136915 4.972869
-- 5.691792 -0.854182 4.555888
-- 6.355081 0.476418 6.019675
-- 7.005380 1.133878 7.200716
-- 6.241886 1.418905 7.924551
-- 7.704141 0.438210 7.665344
-- 7.543334 2.022951 6.871696
-- 6.737960 -0.878090 5.715845
-- 7.428954 -0.641760 6.705579
-- 6.803084 -2.106960 5.091315
-- 7.433797 -1.942952 5.965044
-- 6.888321 -3.344512 4.486667
-- 7.677782 -3.431286 5.412745
-+ 5.071990 1.095268 4.737463
-+ 4.538744 -0.306572 3.312620
-+ 4.316895 -0.672508 2.011169
-+ 4.145425 0.083640 1.259346
-+ 4.360306 -1.957588 1.633963
-+ 4.118872 -2.368537 0.211701
-+ 4.859526 -1.896818 -0.434064
-+ 4.201263 -3.452119 0.127068
-+ 3.120134 -2.055722 -0.092882
-+ 4.642734 -2.996992 2.589722
-+ 4.702936 -4.199185 2.336724
-+ 4.852811 -2.538498 3.874265
-+ 5.070419 -3.289156 4.634040
-+ 4.814710 -1.223887 4.292292
-+ 5.014652 -0.915008 5.455485
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
-@@ -4194,22 +4194,22 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.372913 0.790414 5.211298
-- 5.559757 0.101208 5.067090
-- 5.647583 -0.899755 4.671160
-- 6.194776 0.575080 6.110305
-- 6.278024 -0.702826 5.569817
-- 7.123995 -0.570401 6.702600
-- 7.472741 -1.740173 6.551245
-- 7.656517 0.184264 7.754694
-- 7.991655 0.787072 8.478783
-- 8.146732 -1.105376 7.724367
-- 8.683403 -0.422802 8.744993
-- 8.507987 0.541027 8.990678
-- 9.349613 -0.919433 9.319121
-- 8.481202 -2.373962 7.505920
-- 8.540900 -3.615812 6.954699
-+ 5.071990 1.095268 4.737463
-+ 4.499521 -0.267941 3.326572
-+ 4.267491 -0.772686 2.063324
-+ 4.096298 -0.099873 1.236030
-+ 4.278725 -2.081203 2.002024
-+ 4.535077 -2.474587 3.310318
-+ 4.665007 -3.772057 3.872536
-+ 4.578030 -4.865461 3.315935
-+ 4.925900 -3.709107 5.246571
-+ 5.032497 -4.575574 5.734292
-+ 5.047695 -2.547474 5.981536
-+ 5.299246 -2.702459 7.288556
-+ 5.396714 -3.573970 7.789625
-+ 5.381197 -1.857343 7.835514
-+ 4.927816 -1.332957 5.452878
-+ 4.673984 -1.376560 4.117488
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
-@@ -4413,19 +4413,19 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.373674 0.789709 5.211219
-- 5.559264 0.200618 4.899855
-- 5.666544 -0.785646 4.473035
-- 6.294463 0.528171 5.996117
-- 6.748720 1.036110 6.846852
-- 6.613356 -0.816346 5.628040
-- 7.310127 -0.462256 6.691775
-- 7.941913 -1.143751 7.087389
-- 7.204329 0.461930 7.085204
-- 6.784882 -2.043285 5.144201
-- 6.779159 -3.223049 4.467648
-- 7.584089 -3.327568 5.405072
-+ 5.071990 1.095268 4.737463
-+ 4.500559 -0.267967 3.326521
-+ 4.258187 -0.582249 2.025720
-+ 4.103951 0.202771 1.300217
-+ 4.205645 -1.878082 1.616262
-+ 4.010240 -2.111427 0.569617
-+ 4.416190 -2.880836 2.613787
-+ 4.378882 -4.158916 2.285883
-+ 4.532450 -4.836391 3.019057
-+ 4.201751 -4.434440 1.330472
-+ 4.652634 -2.564463 3.883788
-+ 4.701224 -1.262318 4.273223
-+ 4.918947 -0.927591 5.447171
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
-@@ -4639,27 +4639,27 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.398936 0.755791 5.236576
-- 5.570721 0.053476 5.133763
-- 5.651435 -0.952100 4.748143
-- 6.248368 0.547472 6.127122
-- 6.337852 -0.727929 5.581736
-- 7.186443 -0.642297 6.691944
-- 7.489983 -1.917831 6.415398
-- 8.153280 -2.415516 6.991980
-- 7.055473 -2.381556 5.630375
-- 7.773936 -0.045280 7.737899
-- 8.144838 -1.308931 7.552106
-- 8.632452 -0.851805 8.400438
-- 8.538915 -2.559764 7.402037
-- 8.562807 -3.771388 6.807145
-+ 5.071990 1.095268 4.737463
-+ 4.538874 -0.297045 3.315659
-+ 4.336740 -0.846471 2.077041
-+ 4.152394 -0.207224 1.226289
-+ 4.452852 -2.140973 2.049069
-+ 4.754050 -2.480049 3.362997
-+ 4.997986 -3.708205 3.989198
-+ 4.976769 -4.883498 3.345899
-+ 5.160704 -5.738821 3.850568
-+ 4.776841 -4.914031 2.356355
-+ 5.265289 -3.689348 5.302131
-+ 5.284973 -2.519883 5.935270
-+ 5.498266 -2.482169 6.993326
-+ 5.072682 -1.308518 5.455764
-+ 4.806134 -1.356364 4.133205
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
- 5.668203 2.081314 1.781304
- 6.272975 2.049937 3.757138
-- 7.076220 2.511153 3.504793
-+ 6.759270 1.235224 3.610988
- 5.029888 4.128641 3.998289
- !entry.RA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
- 1 33 0 0 0 0
-@@ -4858,24 +4858,24 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.397885 0.753191 5.246175
-- 5.590532 0.136915 4.972869
-- 5.691792 -0.854182 4.555888
-- 6.355081 0.476418 6.019675
-- 6.811115 0.979784 6.872175
-- 6.737960 -0.878090 5.715845
-- 7.428954 -0.641760 6.705579
-- 6.803084 -2.106960 5.091315
-- 7.433797 -1.942952 5.965044
-- 6.888321 -3.344512 4.486667
-- 7.677782 -3.431286 5.412745
-+ 5.071990 1.095268 4.737463
-+ 4.538744 -0.306572 3.312620
-+ 4.316895 -0.672508 2.011169
-+ 4.145425 0.083640 1.259346
-+ 4.360306 -1.957588 1.633963
-+ 4.180681 -2.226400 0.593014
-+ 4.642734 -2.996992 2.589722
-+ 4.702936 -4.199185 2.336724
-+ 4.852811 -2.538498 3.874265
-+ 5.070419 -3.289156 4.634040
-+ 4.814710 -1.223887 4.292292
-+ 5.014652 -0.915008 5.455485
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
- 5.668203 2.081314 1.781304
- 6.272975 2.049937 3.757138
-- 7.076220 2.511153 3.504793
-+ 6.759270 1.235224 3.610988
- 5.029888 4.128641 3.998289
- !entry.RU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
- 1 30 0 0 0 0
-@@ -5088,28 +5088,28 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.372913 0.790414 5.211298
-- 5.559757 0.101208 5.067090
-- 5.647583 -0.899755 4.671160
-- 6.194776 0.575080 6.110305
-- 6.278024 -0.702826 5.569817
-- 7.123995 -0.570401 6.702600
-- 7.472741 -1.740173 6.551245
-- 7.656517 0.184264 7.754694
-- 7.991655 0.787072 8.478783
-- 8.146732 -1.105376 7.724367
-- 8.683403 -0.422802 8.744993
-- 8.507987 0.541027 8.990678
-- 9.349613 -0.919433 9.319121
-- 8.481202 -2.373962 7.505920
-- 8.540900 -3.615812 6.954699
-+ 5.071990 1.095268 4.737463
-+ 4.499521 -0.267941 3.326572
-+ 4.267491 -0.772686 2.063324
-+ 4.096298 -0.099873 1.236030
-+ 4.278725 -2.081203 2.002024
-+ 4.535077 -2.474587 3.310318
-+ 4.665007 -3.772057 3.872536
-+ 4.578030 -4.865461 3.315935
-+ 4.925900 -3.709107 5.246571
-+ 5.032497 -4.575574 5.734292
-+ 5.047695 -2.547474 5.981536
-+ 5.299246 -2.702459 7.288556
-+ 5.396714 -3.573970 7.789625
-+ 5.381197 -1.857343 7.835514
-+ 4.927816 -1.332957 5.452878
-+ 4.673984 -1.376560 4.117488
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
- 5.668203 2.081314 1.781304
- 6.272975 2.049937 3.757138
-- 7.076220 2.511153 3.504793
-+ 6.759270 1.235224 3.610988
- 5.029888 4.128641 3.998289
- !entry.RG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
- 1 34 0 0 0 0
-@@ -5313,25 +5313,25 @@
- 2.447108 3.477366 3.933855
- 3.228110 1.605160 3.977232
- 4.558604 1.150942 3.777549
-- 5.569373 1.557427 3.742678
-- 4.373674 0.789709 5.211219
-- 5.559264 0.200618 4.899855
-- 5.666544 -0.785646 4.473035
-- 6.294463 0.528171 5.996117
-- 6.748720 1.036110 6.846852
-- 6.613356 -0.816346 5.628040
-- 7.310127 -0.462256 6.691775
-- 7.941913 -1.143751 7.087389
-- 7.204329 0.461930 7.085204
-- 6.784882 -2.043285 5.144201
-- 6.779159 -3.223049 4.467648
-- 7.584089 -3.327568 5.405072
-+ 5.071990 1.095268 4.737463
-+ 4.500559 -0.267967 3.326521
-+ 4.258187 -0.582249 2.025720
-+ 4.103951 0.202771 1.300217
-+ 4.205645 -1.878082 1.616262
-+ 4.010240 -2.111427 0.569617
-+ 4.416190 -2.880836 2.613787
-+ 4.378882 -4.158916 2.285883
-+ 4.532450 -4.836391 3.019057
-+ 4.201751 -4.434440 1.330472
-+ 4.652634 -2.564463 3.883788
-+ 4.701224 -1.262318 4.273223
-+ 4.918947 -0.927591 5.447171
- 4.415598 3.377823 2.961313
- 4.412064 3.941488 2.028377
- 5.230436 2.095693 2.779428
- 5.668203 2.081314 1.781304
- 6.272975 2.049937 3.757138
-- 7.076220 2.511153 3.504793
-+ 6.759270 1.235224 3.610988
- 5.029888 4.128641 3.998289
- !entry.RC.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
- 1 31 0 0 0 0
-@@ -5531,21 +5531,21 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.825854 0.331961 5.463505
-- 2.973744 -0.351218 5.767666
-- 3.198298 -1.353172 5.432908
-- 3.262456 0.147686 6.932887
-- 3.554407 -1.123002 6.450998
-- 3.970615 -1.030384 7.784487
-- 4.371751 -2.299375 7.628436
-- 4.806122 -2.789852 8.397106
-- 4.239728 -2.765377 6.742145
-- 4.154910 -0.430195 8.968298
-- 4.588103 -1.686764 8.920565
-- 4.748481 -1.226887 9.884511
-- 5.030638 -2.930357 8.914329
-- 5.276823 -4.138026 8.363485
-+ 2.623224 0.684847 5.224690
-+ 2.631874 -0.707517 3.706295
-+ 2.874735 -1.252950 2.473241
-+ 2.981754 -0.611820 1.610746
-+ 3.015083 -2.545282 2.486669
-+ 2.854431 -2.887097 3.824373
-+ 2.890057 -4.114829 4.496241
-+ 3.109804 -5.286605 3.884480
-+ 3.124371 -6.141804 4.421623
-+ 3.260868 -5.314611 2.886234
-+ 2.691903 -4.099290 5.821417
-+ 2.474287 -2.933307 6.423105
-+ 2.312232 -2.898303 7.490303
-+ 2.418509 -1.722706 5.899909
-+ 2.621151 -1.767164 4.565946
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
-@@ -5750,21 +5750,21 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.821628 0.329290 5.472166
-- 3.045980 -0.266556 5.623252
-- 3.300321 -1.253530 5.266050
-- 3.400654 0.078938 6.868419
-- 3.596750 0.739775 8.200650
-- 2.627095 1.008594 8.619702
-- 4.106045 0.052544 8.876247
-- 4.199810 1.639079 8.075463
-- 3.886987 -1.267611 6.713863
-- 4.193797 -1.026107 7.880244
-- 4.182336 -2.491705 6.149271
-- 4.473391 -2.322796 7.186024
-- 4.489928 -3.724276 5.610241
-- 4.916436 -3.803915 6.750481
-+ 2.623224 0.684847 5.224690
-+ 2.632951 -0.717026 3.703395
-+ 2.875701 -1.078946 2.404555
-+ 2.959028 -0.321296 1.639425
-+ 3.067013 -2.361001 2.064944
-+ 3.333430 -2.767543 0.645879
-+ 4.242250 -2.280529 0.292378
-+ 3.457938 -3.849191 0.594530
-+ 2.493973 -2.468751 0.018077
-+ 3.022943 -3.401289 3.059659
-+ 3.186167 -4.600916 2.842510
-+ 2.773364 -2.946913 4.338586
-+ 2.730574 -3.698393 5.126967
-+ 2.572586 -1.635482 4.718372
-+ 2.357489 -1.330164 5.879800
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
-@@ -5974,22 +5974,22 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.809468 0.366314 5.430851
-- 2.985443 -0.303283 5.701265
-- 3.220128 -1.300453 5.359250
-- 3.217392 0.174542 6.898755
-- 3.501851 -1.098776 6.419335
-- 3.907092 -0.959542 7.773142
-- 4.306119 -2.122793 7.750193
-- 4.034999 -0.202628 8.943920
-- 4.092163 0.401223 9.738965
-- 4.527564 -1.484195 9.083085
-- 4.671337 -0.799117 10.225713
-- 4.406357 0.160408 10.396586
-- 5.109266 -1.288479 10.993073
-- 4.937775 -2.746085 8.992209
-- 5.203174 -3.983662 8.494648
-+ 2.623224 0.684847 5.224690
-+ 2.590680 -0.679098 3.703090
-+ 2.813126 -1.180187 2.436667
-+ 2.923918 -0.505423 1.600713
-+ 2.866567 -2.487992 2.382906
-+ 2.666616 -2.884782 3.699977
-+ 2.618169 -4.183246 4.272728
-+ 2.745111 -5.274676 3.719947
-+ 2.392358 -4.124071 5.653129
-+ 2.340242 -4.991533 6.147896
-+ 2.235991 -2.964895 6.385427
-+ 2.027971 -3.123388 7.699660
-+ 1.962797 -3.996113 8.203846
-+ 1.903765 -2.280234 8.241661
-+ 2.283795 -1.749407 5.847650
-+ 2.502701 -1.789347 4.505978
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
-@@ -6187,19 +6187,19 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.810222 0.365622 5.431037
-- 3.040503 -0.202936 5.543946
-- 3.303784 -1.184927 5.179558
-- 3.350889 0.129864 6.825549
-- 3.478253 0.640008 7.780343
-- 3.798907 -1.207335 6.588738
-- 4.083865 -0.848420 7.826630
-- 4.553596 -1.522140 8.414470
-- 3.834435 0.071716 8.160148
-- 4.146081 -2.428628 6.192742
-- 4.391834 -3.604440 5.555033
-- 4.829292 -3.701644 6.711226
-+ 2.623224 0.684847 5.224690
-+ 2.591673 -0.679108 3.703398
-+ 2.814053 -0.989708 2.398148
-+ 2.904088 -0.203069 1.663647
-+ 2.926420 -2.283840 1.995414
-+ 3.104659 -2.514231 0.945056
-+ 2.799915 -3.288854 3.004791
-+ 2.898410 -4.565463 2.683902
-+ 2.803322 -5.244627 3.425383
-+ 3.063325 -4.838262 1.725527
-+ 2.582464 -2.976080 4.279070
-+ 2.473124 -1.675585 4.661638
-+ 2.270623 -1.344205 5.839254
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
-@@ -6407,27 +6407,27 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.825854 0.331961 5.463505
-- 2.973744 -0.351218 5.767666
-- 3.198298 -1.353172 5.432908
-- 3.262456 0.147686 6.932887
-- 3.554407 -1.123002 6.450998
-- 3.970615 -1.030384 7.784487
-- 4.371751 -2.299375 7.628436
-- 4.806122 -2.789852 8.397106
-- 4.239728 -2.765377 6.742145
-- 4.154910 -0.430195 8.968298
-- 4.588103 -1.686764 8.920565
-- 4.748481 -1.226887 9.884511
-- 5.030638 -2.930357 8.914329
-- 5.276823 -4.138026 8.363485
-+ 2.623224 0.684847 5.224690
-+ 2.631874 -0.707517 3.706295
-+ 2.874735 -1.252950 2.473241
-+ 2.981754 -0.611820 1.610746
-+ 3.015083 -2.545282 2.486669
-+ 2.854431 -2.887097 3.824373
-+ 2.890057 -4.114829 4.496241
-+ 3.109804 -5.286605 3.884480
-+ 3.124371 -6.141804 4.421623
-+ 3.260868 -5.314611 2.886234
-+ 2.691903 -4.099290 5.821417
-+ 2.474287 -2.933307 6.423105
-+ 2.312232 -2.898303 7.490303
-+ 2.418509 -1.722706 5.899909
-+ 2.621151 -1.767164 4.565946
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
- 4.177807 1.697081 2.650726
- 4.070872 1.663908 4.714248
-- 4.904136 2.139152 4.751846
-+ 4.591405 0.857803 4.743234
- 2.785622 3.721368 4.515694
- 3.677533 4.057871 4.629091
- !entry.RAN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -6620,24 +6620,24 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.821628 0.329290 5.472166
-- 3.045980 -0.266556 5.623252
-- 3.300321 -1.253530 5.266050
-- 3.400654 0.078938 6.868419
-- 3.529160 0.584527 7.825480
-- 3.886987 -1.267611 6.713863
-- 4.193797 -1.026107 7.880244
-- 4.182336 -2.491705 6.149271
-- 4.473391 -2.322796 7.186024
-- 4.489928 -3.724276 5.610241
-- 4.916436 -3.803915 6.750481
-+ 2.623224 0.684847 5.224690
-+ 2.632951 -0.717026 3.703395
-+ 2.875701 -1.078946 2.404555
-+ 2.959028 -0.321296 1.639425
-+ 3.067013 -2.361001 2.064944
-+ 3.258724 -2.626638 1.025337
-+ 3.022943 -3.401289 3.059659
-+ 3.186167 -4.600916 2.842510
-+ 2.773364 -2.946913 4.338586
-+ 2.730574 -3.698393 5.126967
-+ 2.572586 -1.635482 4.718372
-+ 2.357489 -1.330164 5.879800
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
- 4.177807 1.697081 2.650726
- 4.070872 1.663908 4.714248
-- 4.904136 2.139152 4.751846
-+ 4.591405 0.857803 4.743234
- 2.785622 3.721368 4.515694
- 3.677533 4.057871 4.629091
- !entry.RUN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -6844,28 +6844,28 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.809468 0.366314 5.430851
-- 2.985443 -0.303283 5.701265
-- 3.220128 -1.300453 5.359250
-- 3.217392 0.174542 6.898755
-- 3.501851 -1.098776 6.419335
-- 3.907092 -0.959542 7.773142
-- 4.306119 -2.122793 7.750193
-- 4.034999 -0.202628 8.943920
-- 4.092163 0.401223 9.738965
-- 4.527564 -1.484195 9.083085
-- 4.671337 -0.799117 10.225713
-- 4.406357 0.160408 10.396586
-- 5.109266 -1.288479 10.993073
-- 4.937775 -2.746085 8.992209
-- 5.203174 -3.983662 8.494648
-+ 2.623224 0.684847 5.224690
-+ 2.590680 -0.679098 3.703090
-+ 2.813126 -1.180187 2.436667
-+ 2.923918 -0.505423 1.600713
-+ 2.866567 -2.487992 2.382906
-+ 2.666616 -2.884782 3.699977
-+ 2.618169 -4.183246 4.272728
-+ 2.745111 -5.274676 3.719947
-+ 2.392358 -4.124071 5.653129
-+ 2.340242 -4.991533 6.147896
-+ 2.235991 -2.964895 6.385427
-+ 2.027971 -3.123388 7.699660
-+ 1.962797 -3.996113 8.203846
-+ 1.903765 -2.280234 8.241661
-+ 2.283795 -1.749407 5.847650
-+ 2.502701 -1.789347 4.505978
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
- 4.177807 1.697081 2.650726
- 4.070872 1.663908 4.714248
-- 4.904136 2.139152 4.751846
-+ 4.591405 0.857803 4.743234
- 2.785622 3.721368 4.515694
- 3.677533 4.057871 4.629091
- !entry.RGN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-@@ -7063,25 +7063,25 @@
- 0.391890 3.029890 3.571783
- 1.142222 1.169994 3.879663
- 2.468198 0.737932 4.147078
-- 3.422991 1.160472 4.460013
-- 1.810222 0.365622 5.431037
-- 3.040503 -0.202936 5.543946
-- 3.303784 -1.184927 5.179558
-- 3.350889 0.129864 6.825549
-- 3.478253 0.640008 7.780343
-- 3.798907 -1.207335 6.588738
-- 4.083865 -0.848420 7.826630
-- 4.553596 -1.522140 8.414470
-- 3.834435 0.071716 8.160148
-- 4.146081 -2.428628 6.192742
-- 4.391834 -3.604440 5.555033
-- 4.829292 -3.701644 6.711226
-+ 2.623224 0.684847 5.224690
-+ 2.591673 -0.679108 3.703398
-+ 2.814053 -0.989708 2.398148
-+ 2.904088 -0.203069 1.663647
-+ 2.926420 -2.283840 1.995414
-+ 3.104659 -2.514231 0.945056
-+ 2.799915 -3.288854 3.004791
-+ 2.898410 -4.565463 2.683902
-+ 2.803322 -5.244627 3.425383
-+ 3.063325 -4.838262 1.725527
-+ 2.582464 -2.976080 4.279070
-+ 2.473124 -1.675585 4.661638
-+ 2.270623 -1.344205 5.839254
- 2.575655 2.966926 3.331156
- 2.881929 3.535802 2.453274
- 3.424925 1.698847 3.438931
- 4.177807 1.697081 2.650726
- 4.070872 1.663908 4.714248
-- 4.904136 2.139152 4.751846
-+ 4.591405 0.857803 4.743234
- 2.785622 3.721368 4.515694
- 3.677533 4.057871 4.629091
- !entry.RCN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-diff -urN amber11.orig/AmberTools/test/sqm/nma/nma.dftb.go.in amber11/AmberTools/test/sqm/nma/nma.dftb.go.in
---- amber11.orig/AmberTools/test/sqm/nma/nma.dftb.go.in 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/test/sqm/nma/nma.dftb.go.in 2011-03-08 16:38:44.000000000 +0300
-@@ -0,0 +1,30 @@
-+Run DFTB geometry optimization for NMA
-+ &qmmm
-+ qm_theory = 'DFTB',
-+ qmcharge = 0,
-+ ! SCF settings
-+ scfconv = 1.0d-10, ! kcal/mol
-+ errconv = 1.d-06, ! au
-+ tight_p_conv = 0,
-+ diag_routine = 1,
-+ itrmax = 100,
-+ ! Geometry optimization settings
-+ maxcyc = 100,
-+ grms_tol = 0.001, ! kcal/(mol*A)
-+ ! Output
-+ ntpr = 101,
-+ verbosity = 0,
-+ /
-+ 6 C -0.767000 3.380000 4.245000
-+ 6 C -1.809707 2.570219 4.710852
-+ 7 N -2.661673 2.646098 3.869189
-+ 6 C -3.662846 1.855199 3.619926
-+ 8 O -1.634379 2.116691 5.584678
-+ 1 H 0.218271 3.164467 4.684075
-+ 1 H -0.578839 3.210298 3.174581
-+ 1 H -1.024346 4.421330 4.488732
-+ 1 H -2.569216 3.204198 3.074324
-+ 1 H -3.347225 0.824359 3.812610
-+ 1 H -4.529359 1.998602 4.311686
-+ 1 H -4.036138 1.906340 2.552627
-+
-diff -urN amber11.orig/AmberTools/test/sqm/nma/nma.dftb.go.out.save amber11/AmberTools/test/sqm/nma/nma.dftb.go.out.save
---- amber11.orig/AmberTools/test/sqm/nma/nma.dftb.go.out.save 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/test/sqm/nma/nma.dftb.go.out.save 2011-03-08 16:38:44.000000000 +0300
-@@ -0,0 +1,81 @@
-+ --------------------------------------------------------
-+ AMBER SQM VERSION 1.4
-+
-+ By
-+ Ross C. Walker, Michael F. Crowley, Scott Brozell,
-+ Tim Giese, Andreas W. Goetz and David A. Case
-+
-+ --------------------------------------------------------
-+
-+
-+--------------------------------------------------------------------------------
-+ QM CALCULATION INFO
-+--------------------------------------------------------------------------------
-+
-+| QMMM: Citation for AMBER QMMM Run:
-+| QMMM: R.C. Walker, M.F. Crowley and D.A. Case, J. COMP. CHEM. 29:1019, 2008
-+
-+| QMMM: DFTB Calculation - Additional citation for AMBER DFTB QMMM Run:
-+| QMMM: Seabra, G.M., Walker, R.C. et al., J. PHYS. CHEM. A., 111, 5655, (2007)
-+
-+
-+QMMM: SINGLET STATE CALCULATION
-+QMMM: RHF CALCULATION, NO. OF DOUBLY OCCUPIED LEVELS = 15
-+
-+| QMMM: *** SCF convergence criteria ***
-+| QMMM: Energy change : 0.1D-09 kcal/mol
-+| QMMM: Error matrix |FP-PF| : 0.1D-05 au
-+| QMMM: Density matrix change : 0.5D-06
-+| QMMM: Maximum number of SCF cycles : 100
-+ DFTB: Number of atom types = 4
-+
-+ Parameter files:
-+ TYP (AT) TYP (AT) SK integral FILE
-+| 1 1 (C ) 1 (C ) /Users/andi/sources/amber/dat/slko/C-C.skf
-+| 2 1 (C ) 2 (N ) /Users/andi/sources/amber/dat/slko/C-N.skf
-+| 3 1 (C ) 3 (O ) /Users/andi/sources/amber/dat/slko/C-O.skf
-+| 4 1 (C ) 4 (H ) /Users/andi/sources/amber/dat/slko/C-H.skf
-+| 5 2 (N ) 1 (C ) /Users/andi/sources/amber/dat/slko/N-C.skf
-+| 6 2 (N ) 2 (N ) /Users/andi/sources/amber/dat/slko/N-N.skf
-+| 7 2 (N ) 3 (O ) /Users/andi/sources/amber/dat/slko/N-O.skf
-+| 8 2 (N ) 4 (H ) /Users/andi/sources/amber/dat/slko/N-H.skf
-+| 9 3 (O ) 1 (C ) /Users/andi/sources/amber/dat/slko/O-C.skf
-+| 10 3 (O ) 2 (N ) /Users/andi/sources/amber/dat/slko/O-N.skf
-+| 11 3 (O ) 3 (O ) /Users/andi/sources/amber/dat/slko/O-O.skf
-+| 12 3 (O ) 4 (H ) /Users/andi/sources/amber/dat/slko/O-H.skf
-+| 13 4 (H ) 1 (C ) /Users/andi/sources/amber/dat/slko/H-C.skf
-+| 14 4 (H ) 2 (N ) /Users/andi/sources/amber/dat/slko/H-N.skf
-+| 15 4 (H ) 3 (O ) /Users/andi/sources/amber/dat/slko/H-O.skf
-+| 16 4 (H ) 4 (H ) /Users/andi/sources/amber/dat/slko/H-H.skf
-+
-+--------------------------------------------------------------------------------
-+ RESULTS
-+--------------------------------------------------------------------------------
-+
-+ ... geometry converged !
-+
-+ Heat of formation = -1220.84132946 kcal/mol ( -52.93965264 eV)
-+ Total SCF energy = -8463.39103876 kcal/mol ( -367.00017513 eV)
-+
-+ Atomic Charges for Step 1 :
-+ Atom Element Mulliken Charge
-+ 1 C -0.279
-+ 2 C 0.493
-+ 3 N -0.250
-+ 4 C -0.073
-+ 5 O -0.507
-+ 6 H 0.096
-+ 7 H 0.073
-+ 8 H 0.073
-+ 9 H 0.186
-+ 10 H 0.097
-+ 11 H 0.045
-+ 12 H 0.045
-+ Total Mulliken Charge = 0.000
-+
-+
-+ Final Structure
-+
-+
-+ --------- Calculation Completed ----------
-+
-diff -urN amber11.orig/AmberTools/test/sqm/nma/nma.dftb.sp.in amber11/AmberTools/test/sqm/nma/nma.dftb.sp.in
---- amber11.orig/AmberTools/test/sqm/nma/nma.dftb.sp.in 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/test/sqm/nma/nma.dftb.sp.in 2011-03-08 16:38:44.000000000 +0300
-@@ -0,0 +1,30 @@
-+Run PM3 single point calculation for NMA
-+ &qmmm
-+ qm_theory = 'DFTB',
-+ qmcharge = 0,
-+ ! SCF settings
-+ scfconv = 1.0d-10, ! kcal/mol
-+ errconv = 1.d-06, ! au
-+ tight_p_conv = 0,
-+ diag_routine = 1,
-+ itrmax = 100,
-+ ! Geometry optimization settings
-+ maxcyc = 0,
-+ grms_tol = 0.02, ! kcal/(mol*A)
-+ ! Output
-+ ntpr = 10,
-+ verbosity = 0,
-+ /
-+ 6 C -0.767000 3.380000 4.245000
-+ 6 C -1.809707 2.570219 4.710852
-+ 7 N -2.661673 2.646098 3.869189
-+ 6 C -3.662846 1.855199 3.619926
-+ 8 O -1.634379 2.116691 5.584678
-+ 1 H 0.218271 3.164467 4.684075
-+ 1 H -0.578839 3.210298 3.174581
-+ 1 H -1.024346 4.421330 4.488732
-+ 1 H -2.569216 3.204198 3.074324
-+ 1 H -3.347225 0.824359 3.812610
-+ 1 H -4.529359 1.998602 4.311686
-+ 1 H -4.036138 1.906340 2.552627
-+
-diff -urN amber11.orig/AmberTools/test/sqm/nma/nma.dftb.sp.out.save amber11/AmberTools/test/sqm/nma/nma.dftb.sp.out.save
---- amber11.orig/AmberTools/test/sqm/nma/nma.dftb.sp.out.save 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/test/sqm/nma/nma.dftb.sp.out.save 2011-03-08 16:38:44.000000000 +0300
-@@ -0,0 +1,111 @@
-+ --------------------------------------------------------
-+ AMBER SQM VERSION 1.4
-+
-+ By
-+ Ross C. Walker, Michael F. Crowley, Scott Brozell,
-+ Tim Giese, Andreas W. Goetz and David A. Case
-+
-+ --------------------------------------------------------
-+
-+
-+--------------------------------------------------------------------------------
-+ QM CALCULATION INFO
-+--------------------------------------------------------------------------------
-+
-+| QMMM: Citation for AMBER QMMM Run:
-+| QMMM: R.C. Walker, M.F. Crowley and D.A. Case, J. COMP. CHEM. 29:1019, 2008
-+
-+| QMMM: DFTB Calculation - Additional citation for AMBER DFTB QMMM Run:
-+| QMMM: Seabra, G.M., Walker, R.C. et al., J. PHYS. CHEM. A., 111, 5655, (2007)
-+
-+
-+QMMM: SINGLET STATE CALCULATION
-+QMMM: RHF CALCULATION, NO. OF DOUBLY OCCUPIED LEVELS = 15
-+
-+| QMMM: *** SCF convergence criteria ***
-+| QMMM: Energy change : 0.1D-09 kcal/mol
-+| QMMM: Error matrix |FP-PF| : 0.1D-05 au
-+| QMMM: Density matrix change : 0.5D-06
-+| QMMM: Maximum number of SCF cycles : 100
-+ DFTB: Number of atom types = 4
-+
-+ Parameter files:
-+ TYP (AT) TYP (AT) SK integral FILE
-+| 1 1 (C ) 1 (C ) /Users/andi/sources/amber/dat/slko/C-C.skf
-+| 2 1 (C ) 2 (N ) /Users/andi/sources/amber/dat/slko/C-N.skf
-+| 3 1 (C ) 3 (O ) /Users/andi/sources/amber/dat/slko/C-O.skf
-+| 4 1 (C ) 4 (H ) /Users/andi/sources/amber/dat/slko/C-H.skf
-+| 5 2 (N ) 1 (C ) /Users/andi/sources/amber/dat/slko/N-C.skf
-+| 6 2 (N ) 2 (N ) /Users/andi/sources/amber/dat/slko/N-N.skf
-+| 7 2 (N ) 3 (O ) /Users/andi/sources/amber/dat/slko/N-O.skf
-+| 8 2 (N ) 4 (H ) /Users/andi/sources/amber/dat/slko/N-H.skf
-+| 9 3 (O ) 1 (C ) /Users/andi/sources/amber/dat/slko/O-C.skf
-+| 10 3 (O ) 2 (N ) /Users/andi/sources/amber/dat/slko/O-N.skf
-+| 11 3 (O ) 3 (O ) /Users/andi/sources/amber/dat/slko/O-O.skf
-+| 12 3 (O ) 4 (H ) /Users/andi/sources/amber/dat/slko/O-H.skf
-+| 13 4 (H ) 1 (C ) /Users/andi/sources/amber/dat/slko/H-C.skf
-+| 14 4 (H ) 2 (N ) /Users/andi/sources/amber/dat/slko/H-N.skf
-+| 15 4 (H ) 3 (O ) /Users/andi/sources/amber/dat/slko/H-O.skf
-+| 16 4 (H ) 4 (H ) /Users/andi/sources/amber/dat/slko/H-H.skf
-+
-+ QMMM: QM Region Cartesian Coordinates (*=link atom)
-+ QMMM: QM_NO. MM_NO. ATOM X Y Z
-+ QMMM: 1 1 C -0.7670 3.3800 4.2450
-+ QMMM: 2 2 C -1.8097 2.5702 4.7109
-+ QMMM: 3 3 N -2.6617 2.6461 3.8692
-+ QMMM: 4 4 C -3.6628 1.8552 3.6199
-+ QMMM: 5 5 O -1.6344 2.1167 5.5847
-+ QMMM: 6 6 H 0.2183 3.1645 4.6841
-+ QMMM: 7 7 H -0.5788 3.2103 3.1746
-+ QMMM: 8 8 H -1.0243 4.4213 4.4887
-+ QMMM: 9 9 H -2.5692 3.2042 3.0743
-+ QMMM: 10 10 H -3.3472 0.8244 3.8126
-+ QMMM: 11 11 H -4.5294 1.9986 4.3117
-+ QMMM: 12 12 H -4.0361 1.9063 2.5526
-+
-+--------------------------------------------------------------------------------
-+ RESULTS
-+--------------------------------------------------------------------------------
-+
-+
-+ Heat of formation = -1039.27301701 kcal/mol ( -45.06625979 eV)
-+ Total SCF energy = -8281.82272631 kcal/mol ( -359.12678229 eV)
-+ Electronic energy = -8895.69306749 kcal/mol ( -385.74619780 eV)
-+ Core-core repulsion = 613.87034117 kcal/mol ( 26.61941551 eV)
-+
-+ Atomic Charges for Step 1 :
-+ Atom Element Mulliken Charge
-+ 1 C -0.347
-+ 2 C 0.560
-+ 3 N -0.202
-+ 4 C -0.066
-+ 5 O -0.439
-+ 6 H 0.077
-+ 7 H 0.048
-+ 8 H 0.072
-+ 9 H 0.187
-+ 10 H 0.044
-+ 11 H 0.029
-+ 12 H 0.037
-+ Total Mulliken Charge = 0.000
-+
-+
-+ Final Structure
-+
-+ QMMM: QM Region Cartesian Coordinates (*=link atom)
-+ QMMM: QM_NO. MM_NO. ATOM X Y Z
-+ QMMM: 1 1 C -0.7670 3.3800 4.2450
-+ QMMM: 2 2 C -1.8097 2.5702 4.7109
-+ QMMM: 3 3 N -2.6617 2.6461 3.8692
-+ QMMM: 4 4 C -3.6628 1.8552 3.6199
-+ QMMM: 5 5 O -1.6344 2.1167 5.5847
-+ QMMM: 6 6 H 0.2183 3.1645 4.6841
-+ QMMM: 7 7 H -0.5788 3.2103 3.1746
-+ QMMM: 8 8 H -1.0243 4.4213 4.4887
-+ QMMM: 9 9 H -2.5692 3.2042 3.0743
-+ QMMM: 10 10 H -3.3472 0.8244 3.8126
-+ QMMM: 11 11 H -4.5294 1.9986 4.3117
-+ QMMM: 12 12 H -4.0361 1.9063 2.5526
-+
-+ --------- Calculation Completed ----------
-+
-diff -urN amber11.orig/AmberTools/test/sqm/nma/Run amber11/AmberTools/test/sqm/nma/Run
---- amber11.orig/AmberTools/test/sqm/nma/Run 2010-04-14 17:26:17.000000000 +0400
-+++ amber11/AmberTools/test/sqm/nma/Run 2011-03-08 16:38:44.000000000 +0300
-@@ -3,8 +3,19 @@
- set SQM = ../../../exe/sqm
- set SPDIFF = ../../dacdif
- set GODIFF = "../../dacdif -a 0.01"
--set SPTESTS = (nma.pm3.sp nma.pm6.sp)
--set GOTESTS = (nma.pm3.go nma.pm6.go)
-+
-+# check if slko files for DFTB are installed
-+../../check_slko_files.x
-+if( $status > 0) then
-+ # no slko files - do not run DFTB tests
-+ set SPTESTS = (nma.pm3.sp nma.pm6.sp)
-+ set GOTESTS = (nma.pm3.go nma.pm6.go)
-+else
-+ # slko files present - run DFTB tests
-+ set SPTESTS = (nma.pm3.sp nma.pm6.sp nma.dftb.sp)
-+ set GOTESTS = (nma.pm3.go nma.pm6.go nma.dftb.go)
-+endif
-+
-
- # single point tests
- foreach i ($SPTESTS)
-diff -urN amber11.orig/dat/leap/lib/amoeba_aminoct.off amber11/dat/leap/lib/amoeba_aminoct.off
---- amber11.orig/dat/leap/lib/amoeba_aminoct.off 2010-03-31 07:05:27.000000000 +0400
-+++ amber11/dat/leap/lib/amoeba_aminoct.off 2011-03-08 16:38:44.000000000 +0300
-@@ -638,24 +638,24 @@
- !entry.CCYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg str
- "N" "7" 0 1 131072 1 7 -0.382100
- "H" "10" 0 1 131072 2 1 0.268100
-- "CA" "8" 0 1 131072 3 6 -0.131800
-+ "CA" "44" 0 1 131072 3 6 -0.131800
- "HA" "12" 0 1 131072 4 1 0.093800
-- "CB" "" 0 1 131072 5 6 -0.194300
-- "HB2" "" 0 1 131072 6 1 0.122800
-- "HB3" "" 0 1 131072 7 1 0.122800
-- "SG" "" 0 1 131072 8 16 -0.052900
-+ "CB" "45" 0 1 131072 5 6 -0.194300
-+ "HB2" "46" 0 1 131072 6 1 0.122800
-+ "HB3" "46" 0 1 131072 7 1 0.122800
-+ "SG" "49" 0 1 131072 8 16 -0.052900
- "C" "192" 0 1 131072 9 6 0.761800
- "O" "193" 0 1 131072 10 8 -0.804100
- "OXT" "193" 0 1 131072 11 8 -0.804100
- !entry.CCYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
- "N" "7" 0 -1 0.0
- "H" "10" 0 -1 0.0
-- "CA" "8" 0 -1 0.0
-+ "CA" "44" 0 -1 0.0
- "HA" "12" 0 -1 0.0
-- "CB" "" 0 -1 0.0
-- "HB2" "" 0 -1 0.0
-- "HB3" "" 0 -1 0.0
-- "SG" "" 0 -1 0.0
-+ "CB" "45" 0 -1 0.0
-+ "HB2" "46" 0 -1 0.0
-+ "HB3" "46" 0 -1 0.0
-+ "SG" "49" 0 -1 0.0
- "C" "192" 0 -1 0.0
- "O" "193" 0 -1 0.0
- "OXT" "193" 0 -1 0.0
-diff -urN amber11.orig/dat/leap/lib/amoeba_aminont.off amber11/dat/leap/lib/amoeba_aminont.off
---- amber11.orig/dat/leap/lib/amoeba_aminont.off 2010-03-31 07:05:27.000000000 +0400
-+++ amber11/dat/leap/lib/amoeba_aminont.off 2011-03-08 16:38:44.000000000 +0300
-@@ -736,12 +736,12 @@
- "H1" "191" 0 1 131072 2 1 0.181500
- "H2" "191" 0 1 131072 3 1 0.181500
- "H3" "191" 0 1 131072 4 1 0.181500
-- "CA" "8" 0 1 131072 5 6 0.105500
-+ "CA" "44" 0 1 131072 5 6 0.105500
- "HA" "12" 0 1 131072 6 1 0.092200
-- "CB" "" 0 1 131072 7 6 -0.027700
-- "HB2" "" 0 1 131072 8 1 0.068000
-- "HB3" "" 0 1 131072 9 1 0.068000
-- "SG" "" 0 1 131072 10 16 -0.098400
-+ "CB" "45" 0 1 131072 7 6 -0.027700
-+ "HB2" "46" 0 1 131072 8 1 0.068000
-+ "HB3" "46" 0 1 131072 9 1 0.068000
-+ "SG" "49" 0 1 131072 10 16 -0.098400
- "C" "9" 0 1 131072 11 6 0.612300
- "O" "11" 0 1 131072 12 8 -0.571300
- !entry.NCYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-diff -urN amber11.orig/dat/leap/lib/amoeba_amino.off amber11/dat/leap/lib/amoeba_amino.off
---- amber11.orig/dat/leap/lib/amoeba_amino.off 2010-03-31 07:05:27.000000000 +0400
-+++ amber11/dat/leap/lib/amoeba_amino.off 2011-03-08 16:38:44.000000000 +0300
-@@ -880,23 +880,23 @@
- !entry.CYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg str
- "N" "7" 0 1 131072 1 7 -0.435921
- "H" "10" 0 1 131072 2 1 0.290077
-- "CA" "8" 0 1 131072 3 6 -0.030547
-+ "CA" "44" 0 1 131072 3 6 -0.030547
- "HA" "12" 0 1 131072 4 1 0.132146
-- "CB" "" 0 1 131072 5 6 -0.033006
-- "HB2" "" 0 1 131072 6 1 0.078951
-- "HB3" "" 0 1 131072 7 1 0.078951
-- "SG" "" 0 1 131072 8 16 -0.132272
-+ "CB" "45" 0 1 131072 5 6 -0.033006
-+ "HB2" "46" 0 1 131072 6 1 0.078951
-+ "HB3" "46" 0 1 131072 7 1 0.078951
-+ "SG" "49" 0 1 131072 8 16 -0.132272
- "C" "9" 0 1 131072 9 6 0.624788
- "O" "11" 0 1 131072 10 8 -0.573167
- !entry.CYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
- "N" "7" 0 -1 0.0
- "H" "10" 0 -1 0.0
-- "CA" "8" 0 -1 0.0
-+ "CA" "44" 0 -1 0.0
- "HA" "12" 0 -1 0.0
-- "CB" "" 0 -1 0.0
-- "HB2" "" 0 -1 0.0
-- "HB3" "" 0 -1 0.0
-- "SG" "" 0 -1 0.0
-+ "CB" "45" 0 -1 0.0
-+ "HB2" "46" 0 -1 0.0
-+ "HB3" "46" 0 -1 0.0
-+ "SG" "49" 0 -1 0.0
- "C" "9" 0 -1 0.0
- "O" "11" 0 -1 0.0
- !entry.CYX.unit.boundbox array dbl
-@@ -990,16 +990,16 @@
- "H" "10" 0 -1 0.0
- "CA" "8" 0 -1 0.0
- "HA" "12" 0 -1 0.0
-- "CB" "" 0 -1 0.0
-- "HB2" "" 0 -1 0.0
-- "HB3" "" 0 -1 0.0
-- "CG" "" 0 -1 0.0
-- "HG2" "" 0 -1 0.0
-- "HG3" "" 0 -1 0.0
-- "CD" "" 0 -1 0.0
-- "OE1" "" 0 -1 0.0
-- "OE2" "" 0 -1 0.0
-- "HE2" "" 0 -1 0.0
-+ "CB" "144" 0 -1 0.0
-+ "HB2" "145" 0 -1 0.0
-+ "HB3" "145" 0 -1 0.0
-+ "CG" "146" 0 -1 0.0
-+ "HG2" "147" 0 -1 0.0
-+ "HG3" "147" 0 -1 0.0
-+ "CD" "148" 0 -1 0.0
-+ "OE1" "149" 0 -1 0.0
-+ "OE2" "149" 0 -1 0.0
-+ "HE2" "10" 0 -1 0.0
- "C" "9" 0 -1 0.0
- "O" "11" 0 -1 0.0
- !entry.GLH.unit.boundbox array dbl
-@@ -2147,21 +2147,21 @@
- "H" "10" 0 -1 0.0
- "CA" "8" 0 -1 0.0
- "HA" "12" 0 -1 0.0
-- "CB" "" 0 -1 0.0
-- "HB2" "" 0 -1 0.0
-- "HB3" "" 0 -1 0.0
-- "CG" "" 0 -1 0.0
-- "HG2" "" 0 -1 0.0
-- "HG3" "" 0 -1 0.0
-- "CD" "" 0 -1 0.0
-- "HD2" "" 0 -1 0.0
-- "HD3" "" 0 -1 0.0
-- "CE" "" 0 -1 0.0
-- "HE2" "" 0 -1 0.0
-- "HE3" "" 0 -1 0.0
-- "NZ" "" 0 -1 0.0
-- "HZ2" "" 0 -1 0.0
-- "HZ3" "" 0 -1 0.0
-+ "CB" "159" 0 -1 0.0
-+ "HB2" "160" 0 -1 0.0
-+ "HB3" "160" 0 -1 0.0
-+ "CG" "161" 0 -1 0.0
-+ "HG2" "162" 0 -1 0.0
-+ "HG3" "162" 0 -1 0.0
-+ "CD" "163" 0 -1 0.0
-+ "HD2" "164" 0 -1 0.0
-+ "HD3" "164" 0 -1 0.0
-+ "CE" "165" 0 -1 0.0
-+ "HE2" "166" 0 -1 0.0
-+ "HE3" "166" 0 -1 0.0
-+ "NZ" "167" 0 -1 0.0
-+ "HZ2" "168" 0 -1 0.0
-+ "HZ3" "168" 0 -1 0.0
- "C" "9" 0 -1 0.0
- "O" "11" 0 -1 0.0
- !entry.LYN.unit.boundbox array dbl
-diff -urN amber11.orig/dat/leap/parm/gaff.dat amber11/dat/leap/parm/gaff.dat
---- amber11.orig/dat/leap/parm/gaff.dat 2010-03-31 07:05:27.000000000 +0400
-+++ amber11/dat/leap/parm/gaff.dat 2011-03-08 16:38:44.000000000 +0300
-@@ -16,6 +16,7 @@
- cy 12.01 0.360 Sp3 carbons in square systems
- cu 12.01 0.360 Sp2 carbons in triangle systems
- cv 12.01 0.360 Sp2 carbons in square systems
-+cz 12.01 0.360 Sp2 carbon in guanidine group
- h1 1.008 0.135 H bonded to aliphatic carbon with 1 electrwd. group
- h2 1.008 0.135 H bonded to aliphatic carbon with 2 electrwd. group
- h3 1.008 0.135 H bonded to aliphatic carbon with 3 electrwd. group
-@@ -852,11 +853,6 @@
- s6-ss 139.6 2.1180 SOURCE3 5 0.0209
- sh-sh 158.9 2.0580 SOURCE2 1 0.0000
- sh-ss 155.8 2.0670 SOURCE3 3 0.0029
--Si-c3 189.8 1.8928 SOURCE4 77 0.0061
--Si-ca 191.1 1.8898 SOURCE4 11 0.0028
--Si-ha 186.3 1.4887 SOURCE4 6 0.0040
--Si-oh 267.6 1.6792 SOURCE4 6 0.0035
--Si-os 287.7 1.6524 SOURCE4 22 0.0057
- s -s 169.0 2.0300 SOURCE3 1 0.0000
- s -s2 229.2 1.8970 SOURCE1 5 0.0000
- s -s4 152.8 2.0760 SOURCE3 4 0.0345
-@@ -1091,7 +1087,6 @@
- hc-c2-s6 54.150 115.450 SOURCE3 1
- hc-c2-sh 53.550 115.630 SOURCE3 1
- hc-c2-ss 54.900 115.620 SOURCE3 1
--hn-c2-n4 0.000 112.740 SOURCE3 1
- hx-c2-n4 48.420 113.030 SOURCE3 3 0.3873
- i -c2-i 60.960 117.940 SOURCE3 1 0.0000
- n1-c2-n1 73.610 124.150 HF/6-31G* 1
-@@ -1464,9 +1459,6 @@
- s6-c3-s6 102.050 111.750 SOURCE3 1 0.0000
- sh-c3-sh 97.420 116.260 SOURCE3 1 0.0000
- sh-c3-ss 99.850 110.730 SOURCE3 1
--Si-c3-c3 74.610 114.340 SOURCE4 26 1.1613
--Si-c3-h1 51.040 110.900 SOURCE4 17 1.0270
--Si-c3-hc 50.960 111.210 SOURCE4 222 0.4865
- s -c3-s 93.400 123.350 SOURCE3 1 0.0000
- ss-c3-ss 99.950 110.570 SOURCE4 15 1.4311
- br-ca-br 67.310 117.600 SOURCE3 1
-@@ -1500,7 +1492,6 @@
- ca-ca-i 58.590 118.470 SOURCE3 10 0.6181
- ca-ca-n1 68.920 118.500 HF/6-31G* 1
- ca-ca-n2 70.950 119.570 SOURCE3 1
--ca-ca-n3 0.000 121.190 SOURCE3 1
- ca-ca-n4 67.280 118.410 SOURCE3 6 0.1691
- ca-ca-n 67.970 119.890 SOURCE3 18 0.2095
- ca-ca-na 70.210 118.340 SOURCE3 54 3.6168
-@@ -1540,7 +1531,6 @@
- cf-ca-nb 68.080 118.140 SOURCE4 12 1.1775
- cg-ca-cp 65.330 121.530 SOURCE4 12 0.1831
- c -ca-ha 46.510 115.900 SOURCE3 1
--c -ca-hc 0.000 120.000 SOURCE3 1
- cl-ca-cl 62.630 118.720 SOURCE3 1
- cl-ca-cp 62.600 120.310 SOURCE4 18 0.5607
- cl-ca-nb 65.810 116.150 SOURCE4 50 0.6047
-@@ -1606,7 +1596,6 @@
- s4-ca-s4 104.060 105.810 SOURCE3 1
- s6-ca-s6 105.770 105.810 SOURCE3 1
- sh-ca-sh 98.150 120.240 SOURCE3 1
--Si-ca-ca 73.850 121.430 SOURCE4 19 0.4235
- s -ca-s 98.380 125.140 SOURCE3 1
- ss-ca-ss 100.760 115.150 SOURCE3 1
- br-c -br 66.910 113.100 SOURCE3 1
-@@ -1636,7 +1625,6 @@
- c3-c -n 67.860 115.150 SOURCE3 153 2.7443
- c3-c -ne 68.090 111.390 SOURCE4 11 2.1430
- c3-c -nf 67.430 113.380 SOURCE3 1 same_as_c3-c-ne
--c3-c -nh 0.000 113.580 SOURCE3 1
- c3-c -o 68.030 123.110 SOURCE3 267 3.0977
- c3-c -oh 69.840 112.200 SOURCE3 14 1.8324
- c3-c -os 69.260 111.960 SOURCE3 15 2.3072
-@@ -1832,7 +1820,6 @@
- ha-cc-os 52.490 110.860 SOURCE3 7 1.3846
- ha-cc-pd 42.350 121.760 SOURCE3 84 same_as_ha-cd-pc
- ha-cc-ss 53.490 121.640 SOURCE2 5 1.3276
--c -c -hc 0.000 117.080 SOURCE3 1
- ch-c -ch 65.440 115.380 SOURCE3 1 same_as_cg-c-cg
- ch-c -ha 47.800 113.900 SOURCE2 1 same_as_cg-c-ha
- ch-c -o 70.210 122.310 SOURCE3 2 same_as_cg-c-o
-@@ -2183,7 +2170,6 @@
- c -cf-n 66.600 116.790 SOURCE4 8 0.8255
- c -cf-nh 65.940 122.760 SOURCE3 1 same_as_c-ce-nh
- f -c -f 72.220 107.350 SOURCE2 2 0.2500
--f -c -h 0.000 109.900 SOURCE2 1 0.0000
- h4-cf-n2 52.210 122.140 SOURCE4 11 0.9297
- h4-cf-ne 52.280 120.210 SOURCE4 6 0.8104
- ha-cf-n1 52.480 115.960 SOURCE3 2 3.5425
-@@ -2239,34 +2225,20 @@
- cf-ch-cg 57.400 177.900 SOURCE4 8 0.4883
- cf-ch-n1 59.370 178.120 SOURCE4 22 1.5200
- cg-ch-ch 58.680 179.670 SOURCE4 7 0.1439
--hc-c -hc 0.000 115.680 SOURCE3 1
--hc-c -n 0.000 120.000 SOURCE3 1
--hc-c -nh 0.000 112.700 SOURCE3 1
--hc-c -o 0.000 120.000 SOURCE3 1
--hc-c -oh 0.000 113.700 SOURCE3 1
--hc-c -os 0.000 113.580 SOURCE3 1
- n1-ch-nf 64.660 176.170 SOURCE2 3 same_as_n1-cg-ne
--h -c -o 0.000 127.300 SOURCE2 1 0.0000
- i -c -i 59.790 116.450 SOURCE3 1 0.0000
- i -c -o 55.510 122.020 SOURCE3 4 1.2961
- f -cl-f 50.000 87.500 SOURCE2 1 estimated_force_constant
- n2-c -n2 71.830 110.310 SOURCE3 1
--n2-c -na 0.000 118.600 SOURCE3 1
- n2-c -o 73.020 122.500 SOURCE3 1
--n3-c -n3 0.000 112.980 SOURCE3 1
--n3-c -o 0.000 122.260 SOURCE3 1
- n4-c -n4 64.710 114.640 SOURCE3 1 0.0000
- n4-c -o 69.580 118.830 SOURCE3 4 3.8516
--na-c -na 0.000 115.400 SOURCE3 1
--na-c -o 0.000 122.850 SOURCE3 1
- nc-c -o 74.050 123.980 SOURCE4 66 0.9502
- nd-c -o 73.720 121.760 SOURCE4 55 1.1138
- ne-c -ne 73.220 110.310 SOURCE3 1 0.0000
- ne-c -o 72.940 126.030 SOURCE4 39 0.9885
- nf-c -nf 73.070 110.310 SOURCE3 1 same_as_ne-c-ne
- nf-c -o 73.320 124.390 SOURCE3 3 same_as_ne-c-o
--nh-c -nh 0.000 110.980 SOURCE3 1
--nh-c -o 0.000 124.620 SOURCE3 1
- n -c -n 74.800 113.380 SOURCE4 635 1.4358
- n -c -nc 72.690 117.050 SOURCE4 54 0.7020
- n -c -nd 71.900 117.060 SOURCE4 23 0.9856
-@@ -2318,10 +2290,10 @@
- py-c -py 57.520 123.800 SOURCE3 1 0.0000
- ca-cq-ca 67.000 118.240 SOURCE4 5 0.2181
- ca-cq-cq 64.220 120.410 SOURCE4 12 1.4029
--ca-cq-nb 0.000 122.970 SOURCE3 2 0.0000
-+ca-cq-nb 69.270 121.650 SOURCE4 63 same as ca-cp-nb
- cp-cq-cq 62.640 124.470 SOURCE4 5 1.0864
- cq-cq-cq 72.200 90.000 SOURCE3 4 0.0000
--cq-cq-nb 0.000 116.430 SOURCE3 2 0.0000
-+cq-cq-nb 68.050 116.600 SOURCE4 88 same as cp-cp-nb
- s4-c -s4 98.110 108.810 SOURCE3 1
- s6-c -s6 95.130 115.750 SOURCE3 1
- sh-c -sh 100.060 115.330 SOURCE3 1 0.0000
-@@ -2454,9 +2426,6 @@
- n -cy-s6 82.570 103.450 SOURCE4 6 0.7197
- n -cy-ss 82.030 105.120 SOURCE4 69 0.3987
- nh-cz-nh 72.970 120.170 SOURCE4 26 0.3964
--ca-i -cl 0.000 90.210 SOURCE3 2 estimated_force_constant
--ca-i -o 0.000 97.080 SOURCE3 5 0.2233,estimated_force_constant
--cl-i -cl 0.000 179.580 SOURCE3 1 estimated_force_constant
- br-n1-c1 51.100 180.000 HF/6-31G* 1
- c1-n1-c1 64.910 179.920 HF/6-31G* 1
- c1-n1-c2 60.250 177.730 HF/6-31G* 1
-@@ -2729,7 +2698,6 @@
- c2-n3-c2 66.220 124.680 SOURCE3 1
- c2-n3-hn 49.110 119.380 SOURCE3 1
- c3-n3-c3 64.010 110.900 SOURCE3 40 2.3048
--c3-n3-ca 0.000 116.390 SOURCE3 1
- c3-n3-cl 62.170 107.230 SOURCE3 3 0.3673
- c3-n3-cx 62.450 116.320 SOURCE4 24 0.5119
- c3-n3-cy 61.690 118.260 SOURCE4 14 0.8788
-@@ -2753,7 +2721,6 @@
- c3-n3-sh 78.550 112.700 SOURCE3 1 0.0000
- c3-n3-ss 77.950 116.010 SOURCE3 3 1.1944
- c3-n3-sy 79.010 115.270 SOURCE4 108 1.7647
--c -n3-c 0.000 127.170 SOURCE3 1
- cl-n3-cl 61.850 108.280 SOURCE3 1 0.0000
- cl-n3-hn 42.590 104.390 SOURCE3 2 0.0000
- cl-n3-n3 63.750 107.650 SOURCE3 1 0.0000
-@@ -2824,7 +2791,6 @@
- c1-n4-hn 48.620 110.190 SOURCE3 7 1.0847
- c2-n4-c2 63.010 112.580 SOURCE3 1 0.0000
- c2-n4-c3 63.100 110.960 SOURCE4 13 2.4632
--c2-n4-h4 0.000 112.460 SOURCE3 1
- c2-n4-hn 46.430 111.360 SOURCE3 13 1.2672
- c3-n4-c3 62.840 110.640 SOURCE3 13 1.3060
- c3-n4-ca 63.610 110.400 SOURCE4 46 1.4643
-@@ -3002,10 +2968,6 @@
- ca-na-s 75.010 125.640 SOURCE3 1
- ca-na-sh 76.630 125.440 SOURCE3 1
- ca-na-ss 74.880 129.910 SOURCE4 8 0.1449
--c -na-c 0.000 126.400 SOURCE3 1
--c -na-c2 0.000 125.090 SOURCE3 1
--c -na-c3 0.000 117.600 SOURCE3 1
--c -na-ca 0.000 125.200 SOURCE3 1
- cc-na-cc 68.940 109.900 SOURCE3 109 1.5547
- cc-na-cd 63.880 128.010 SOURCE3 1 0.0000
- cc-na-ce 63.050 126.610 SOURCE4 8 0.5158
-@@ -3058,7 +3020,6 @@
- cd-na-s 74.800 125.660 SOURCE3 8 0.1880
- cd-na-sh 76.830 123.960 SOURCE3 10 0.3424
- cd-na-ss 77.930 119.180 SOURCE3 36 5.0538
--c -na-hn 0.000 118.000 SOURCE3 1
- cl-na-cl 56.330 122.800 SOURCE3 1
- cl-na-nc 59.890 119.360 SOURCE3 4 1.7128
- cl-na-nd 59.890 119.360 SOURCE3 4 same_as_cl-na-nc
-@@ -3067,7 +3028,6 @@
- cl-na-pc 58.780 120.510 SOURCE3 3 2.1985
- cl-na-pd 58.780 120.510 SOURCE3 3 same_as_cl-na-pc
- cl-na-ss 77.180 111.910 SOURCE3 1 0.0000
--c -na-n 0.000 124.660 SOURCE3 1
- f -na-f 62.220 120.200 SOURCE3 1
- f -na-nc 66.640 118.050 SOURCE3 4 1.7931
- f -na-nd 66.640 118.050 SOURCE3 4 same_as_f-na-nc
-@@ -3231,7 +3191,7 @@
- sy-na-sy 96.930 123.200 SOURCE3 1
- ca-nb-ca 68.590 115.860 SOURCE3 46 1.1645
- ca-nb-cp 68.010 118.040 SOURCE4 58 0.7819
--ca-nb-cq 0.000 117.040 SOURCE3 2 0.0000
-+ca-nb-cq 68.010 118.040 SOURCE4 58 same as ca-nb-cp
- ca-nb-nb 69.370 118.890 SOURCE3 10 0.6031
- cp-nb-nb 68.790 121.110 SOURCE4 12 0.4315
- nb-nb-nb 70.440 121.040 SOURCE3 1 0.0000
-@@ -3597,8 +3557,6 @@
- ca-nh-sh 78.190 121.410 SOURCE3 1 0.0000
- ca-nh-ss 78.160 121.500 SOURCE3 3 2.6255
- ca-nh-sy 76.750 125.260 SOURCE4 41 1.7517
--c -nh-c 0.000 119.570 SOURCE3 1
--c -nh-ca 0.000 123.570 SOURCE3 1
- cc-nh-cx 63.320 122.820 SOURCE4 42 1.1841
- cc-nh-hn 48.860 117.160 SOURCE3 11 2.6137
- cc-nh-n2 68.230 119.660 SOURCE4 5 1.3903
-@@ -3610,10 +3568,8 @@
- ce-nh-sy 80.450 112.970 SOURCE4 7 1.0636
- cf-nh-hn 48.620 115.620 SOURCE4 16 1.3549
- cf-nh-o 67.070 129.430 SOURCE3 1 same_as_ce-nh-o
--c -nh-hn 0.000 115.730 SOURCE3 1
- cl-nh-cl 62.930 106.600 SOURCE3 1
- cl-nh-hn 43.080 104.140 SOURCE3 1 0.0000
--c -nh-n4 0.000 111.350 SOURCE3 1
- cx-nh-cx 86.530 62.020 SOURCE4 45 0.6189
- cx-nh-hn 45.790 118.890 SOURCE4 8 0.1391
- cz-nh-hn 48.790 121.240 SOURCE4 40 0.5682
-@@ -3783,7 +3739,6 @@
- ho-oh-sh 54.390 106.240 SOURCE3 2 0.0661
- ho-oh-ss 54.540 107.060 SOURCE3 4 0.9967
- ho-oh-sy 55.940 106.410 SOURCE4 33 0.3729
--Si-oh-ho 52.570 115.710 SOURCE4 5 0.1738
- br-os-br 65.080 110.630 SOURCE3 1 0.0000
- c1-os-c1 66.990 115.020 SOURCE3 1 0.0000
- c1-os-c3 64.470 113.390 SOURCE3 1 0.0000
-@@ -3892,7 +3847,6 @@
- s4-os-s4 99.450 111.630 SOURCE3 1 0.0000
- s6-os-s6 103.740 119.070 SOURCE3 2 0.4318
- sh-os-sh 97.950 118.950 SOURCE3 1 0.0000
--Si-os-c3 74.830 124.640 SOURCE4 9 0.2879
- s -os-s 91.270 118.080 SOURCE3 1 0.0000
- ss-os-ss 97.420 115.640 SOURCE3 1 0.0000
- br-p2-br 65.020 108.600 SOURCE3 1
-@@ -4615,7 +4569,6 @@
- f -s4-f 43.790 92.710 SOURCE2 3 0.1490
- f -s4-o 43.870 106.810 SOURCE2 2 0.0100
- f -s4-s 47.340 107.500 SOURCE2 1 0.0000
--hn-s4-hs 0.000 86.990 SOURCE3 1
- hs-s4-hs 23.650 87.000 SOURCE3 2 0.0202
- hs-s4-n1 32.050 90.510 HF/6-31G* 1
- hs-s4-o 31.160 110.270 SOURCE3 5 0.1908
-@@ -4789,12 +4742,6 @@
- hs-sh-s6 33.980 93.830 SOURCE3 3 1.2561
- hs-sh-sh 33.890 99.070 SOURCE3 2 0.0000
- hs-sh-ss 33.730 99.170 SOURCE3 3 0.2457
--c3-Si-c3 34.810 109.820 SOURCE4 88 0.5569
--c3-Si-ca 34.800 110.090 SOURCE4 26 0.7331
--c3-Si-oh 38.160 107.440 SOURCE4 8 1.5150
--c3-Si-os 38.140 108.750 SOURCE4 38 0.7301
--ha-Si-ha 19.530 108.770 SOURCE4 5 0.5372
--os-Si-os 42.630 108.350 SOURCE4 15 1.7995
- br-ss-br 41.920 102.920 SOURCE3 1 0.0000
- br-ss-c3 39.460 99.030 SOURCE3 1 0.0000
- c1-ss-c1 41.480 98.300 SOURCE2 1 0.0000
-@@ -4813,7 +4760,6 @@
- c3-ss-cl 37.940 99.400 SOURCE2 1 0.0000
- c3-ss-cy 38.750 94.320 SOURCE4 62 0.3646
- c3-ss-f 39.670 97.490 SOURCE3 1 0.0000
--c3-ss-ha 0.000 96.500 SOURCE2 1 0.0000
- c3-ss-i 35.060 100.000 SOURCE3 1 0.0000
- c3-ss-n1 41.250 98.440 HF/6-31G* 1
- c3-ss-n2 41.260 96.420 SOURCE3 5 1.3604
-@@ -5883,7 +5829,7 @@
- were replaced with those newly generated. Here are the numbers:
-
- Bond length: 59 low quality parameters were replaced and 56 new parameters
--were introduced. $j
-+were introduced.
-
- Bond angle: 437 low quality parameters were replaced and 618 new
- parameters were introduced.
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_1-3.patch b/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_1-3.patch
deleted file mode 100644
index 1aebcab..0000000
--- a/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_1-3.patch
+++ /dev/null
@@ -1,3831 +0,0 @@
-diff -urN amber11//AmberTools/src/cpptraj/src/Action_Center.cpp amber11.new//AmberTools/src/cpptraj/src/Action_Center.cpp
---- amber11//AmberTools/src/cpptraj/src/Action_Center.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Action_Center.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -72,7 +72,7 @@
- // else
- // mass = NULL;
-
-- if (!origin && P->ifbox==0) {
-+ if (!origin && P->BoxType==0) {
- mprintf(" Error: Center::setup: Box center specified but no box information.\n");
- //fprintf(stdout," Centering on origin.\n");
- return 1;
-diff -urN amber11//AmberTools/src/cpptraj/src/Action_Closest.cpp amber11.new//AmberTools/src/cpptraj/src/Action_Closest.cpp
---- amber11//AmberTools/src/cpptraj/src/Action_Closest.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Action_Closest.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -181,8 +181,8 @@
- // NOTE: Should box be figured out from read-in coords?
- imageType = 0;
- if (!noimage) {
-- imageType = P->ifbox;
-- if (P->ifbox==0) {
-+ imageType = P->BoxType;
-+ if (P->BoxType==0) {
- mprintf(" Warning: Closest::setup: ");
- mprintf(" Imaging specified but no box information in prmtop %s\n",P->parmName);
- mprintf(" No imaging can occur..\n");
-diff -urN amber11//AmberTools/src/cpptraj/src/Action_Distance.cpp amber11.new//AmberTools/src/cpptraj/src/Action_Distance.cpp
---- amber11//AmberTools/src/cpptraj/src/Action_Distance.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Action_Distance.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -68,6 +68,11 @@
- return 0;
- }
-
-+/*
-+ * Distance::setup()
-+ * Determine what atoms each mask pertains to for the current parm file.
-+ * Also determine whether imaging should be performed.
-+ */
- int Distance::setup() {
-
- if ( Mask1.SetupMask(P,debug) ) return 1;
-@@ -89,8 +94,8 @@
- // Check imaging - check box based on prmtop box
- imageType = 0;
- if (!noimage) {
-- imageType = P->ifbox;
-- if (P->ifbox==0 && debug>0) {
-+ imageType = P->BoxType;
-+ if (P->BoxType==0 && debug>0) {
- mprintf(" Warning: No box info in %s, disabling imaging.\n",P->parmName);
- }
- }
-diff -urN amber11//AmberTools/src/cpptraj/src/Action_Image.cpp amber11.new//AmberTools/src/cpptraj/src/Action_Image.cpp
---- amber11//AmberTools/src/cpptraj/src/Action_Image.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Action_Image.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -98,14 +98,14 @@
- useMass = false;
- }
-
-- if (P->ifbox==0) {
-+ if (P->BoxType==0) {
- mprintf(" Error: Image::setup: Parm %s does not contain box information.\n",
- P->parmName);
- return 1;
- }
-
- ortho = false;
-- if (P->ifbox==1 && triclinic==OFF) ortho=true;
-+ if (P->BoxType==1 && triclinic==OFF) ortho=true;
-
- if (triclinic == FAMILIAR) {
- if (ComMask!=NULL) {
-diff -urN amber11//AmberTools/src/cpptraj/src/Action_Outtraj.cpp amber11.new//AmberTools/src/cpptraj/src/Action_Outtraj.cpp
---- amber11//AmberTools/src/cpptraj/src/Action_Outtraj.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Action_Outtraj.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -6,6 +6,9 @@
- // CONSTRUCTOR
- Outtraj::Outtraj() {
- //fprintf(stderr,"Outtraj Con\n");
-+ min=0.0;
-+ max=0.0;
-+ Dset=NULL;
- }
-
- // DESTRUCTOR
-@@ -13,11 +16,40 @@
-
- /*
- * Outtraj::init()
-- * Action wrapper for trajout
-+ * Action wrapper for trajout.
-+ * Expected call: outtraj <filename> [ trajout args ]
-+ * [maxmin <dataset> min <min> max <max>
- */
- int Outtraj::init() {
-+ char *datasetName;
-+
-+#ifdef MPI
-+ mprintf("ERROR: OUTTRAJ currently not functional with MPI.\n");
-+ return 1;
-+#endif
-+
-+ mprintf(" OUTTRAJ: Will write to [%s]\n",A->Arg(1));
-+ outtraj.SetDebug(debug);
-+ // If maxmin, get the name of the dataset as well as the max and min values.
-+ datasetName = A->getKeyString("maxmin",NULL);
-+ if (datasetName!=NULL) {
-+ Dset = DSL->Get(datasetName);
-+ if (Dset==NULL) {
-+ mprintf("Error: Outtraj maxmin: Could not get dataset %s\n",datasetName);
-+ return 1;
-+ } else {
-+ // Currently dont allow for string datasets
-+ if (Dset->Type()==STRING) {
-+ mprintf("Error: Outtraj maxmin: String dataset (%s) not supported.\n",datasetName);
-+ return 1;
-+ }
-+ max = A->getKeyDouble("max",0.0);
-+ min = A->getKeyDouble("min",0.0);
-+ mprintf(" maxmin: Printing trajectory frames based on %lf <= %s <= %lf\n",
-+ min, datasetName, max);
-+ }
-+ }
-
-- mprintf(" OUTTRAJ: [%s]\n",A->ArgLine());
- return ( outtraj.Add(A,PFL,worldsize) );
- }
-
-@@ -33,8 +65,32 @@
- * Outtraj::action()
- */
- int Outtraj::action() {
-+ double dVal;
-+ int iVal;
-
-- return ( outtraj.Write(currentFrame, F, P) );
-+ // If dataset defined, check if frame is within max/min
-+ if (Dset!=NULL) {
-+ if (Dset->Type() == DOUBLE) {
-+ if (Dset->Get(&dVal, currentFrame)) return 1;
-+ } else if (Dset->Type() == INT) {
-+ if (Dset->Get(&iVal, currentFrame)) return 1;
-+ dVal = (double) iVal;
-+ } else
-+ return 1;
-+ //mprintf("DBG: maxmin: dVal = %lf\n",dVal);
-+ // If value from dataset not within min/max, exit now.
-+ if (dVal < min || dVal > max) return 0;
-+ }
-+ if ( outtraj.Write(currentFrame, F, P) != 0 ) return 1;
-+ return 0;
- }
-
-+/*
-+ * Outtraj::print()
-+ * Close trajectory.
-+ */
-+void Outtraj::print() {
-+ mprintf(" OUTTRAJ: [%s] Wrote %i frames.\n",A->Arg(1),outtraj.front()->CurrentFrame());
-+ outtraj.Close();
-+}
-
-diff -urN amber11//AmberTools/src/cpptraj/src/Action_Outtraj.h amber11.new//AmberTools/src/cpptraj/src/Action_Outtraj.h
---- amber11//AmberTools/src/cpptraj/src/Action_Outtraj.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Action_Outtraj.h 2011-05-19 18:35:57.000000000 +0300
-@@ -6,6 +6,9 @@
-
- class Outtraj: public Action {
- TrajoutList outtraj;
-+ double max;
-+ double min;
-+ DataSet *Dset;
- public:
- Outtraj();
- ~Outtraj();
-@@ -13,5 +16,6 @@
- int init();
- //int setup();
- int action();
-+ void print();
- };
- #endif
-diff -urN amber11//AmberTools/src/cpptraj/src/Action_Rms2d.cpp amber11.new//AmberTools/src/cpptraj/src/Action_Rms2d.cpp
---- amber11//AmberTools/src/cpptraj/src/Action_Rms2d.cpp 1970-01-01 03:00:00.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Action_Rms2d.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -0,0 +1,71 @@
-+// Rms2d
-+#include "Action_Rms2d.h"
-+#include "CpptrajStdio.h"
-+
-+// CONSTRUCTOR
-+Rms2d::Rms2d() {
-+ //fprintf(stderr,"Rms2d Con\n");
-+ nofit=false;
-+ useMass=false;
-+}
-+
-+// DESTRUCTOR
-+Rms2d::~Rms2d() { }
-+
-+/*
-+ * Rms2d::init()
-+ * Expected call: rms2d <mask> <refmask> [rmsout filename] [mass] [nofit]
-+ * Dataset name will be the last arg checked for. Check order is:
-+ * 1) Keywords
-+ * 2) Masks
-+ * 3) Dataset name
-+ */
-+int Rms2d::init() {
-+ char *mask0, *maskRef;
-+
-+ // Get keywords
-+ nofit = A->hasKey("nofit");
-+ useMass = A->hasKey("mass");
-+ rmsdFile = A->getKeyString("rmsout",NULL);
-+
-+ // Get the RMS mask string for frames
-+ mask0 = A->getNextMask();
-+ FrameMask.SetMaskString(mask0);
-+ // Get RMS mask string for reference
-+ maskRef = A->getNextMask();
-+ // If no reference mask specified, make same as RMS mask
-+ if (maskRef==NULL) maskRef=mask0;
-+ RefMask.SetMaskString(maskRef);
-+
-+ mprintf(" RMS2D: (%s) to (%s)",FrameMask.maskString,RefMask.maskString);
-+ if (nofit)
-+ mprintf(" (no fitting)");
-+ if (useMass)
-+ mprintf(" (mass-weighted)");
-+ if (rmsdFile!=NULL)
-+ mprintf(" output to %s",rmsdFile);
-+ mprintf("\n");
-+
-+ return 0;
-+}
-+
-+/*
-+ * Rms2d::setup()
-+ * Not important for Rms2d, initial pass is only for storing frames.
-+ */
-+int Rms2d::setup() {
-+ return 0;
-+}
-+
-+/*
-+ * Rms2d::action()
-+ * Store current frame as a reference frame.
-+ */
-+int Rms2d::action() {
-+
-+ ReferenceFrames.Add(F,P);
-+
-+ return 0;
-+}
-+
-+
-diff -urN amber11//AmberTools/src/cpptraj/src/Action_Rms2d.h amber11.new//AmberTools/src/cpptraj/src/Action_Rms2d.h
---- amber11//AmberTools/src/cpptraj/src/Action_Rms2d.h 1970-01-01 03:00:00.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Action_Rms2d.h 2011-05-19 18:35:57.000000000 +0300
-@@ -0,0 +1,21 @@
-+#ifndef INC_ACTION_RMS2D_H
-+#define INC_ACTION_RMS2D_H
-+// Rms2d
-+#include "Action.h"
-+
-+class Rms2d: public Action {
-+ FrameList ReferenceFrames;
-+ bool nofit;
-+ bool useMass;
-+ AtomMask RefMask;
-+ AtomMask FrameMask;
-+ char *rmsdFile;
-+ public:
-+ Rms2d();
-+ ~Rms2d();
-+
-+ int init();
-+ int setup();
-+ int action();
-+};
-+#endif
-diff -urN amber11//AmberTools/src/cpptraj/src/AmberNetcdf.cpp amber11.new//AmberTools/src/cpptraj/src/AmberNetcdf.cpp
---- amber11//AmberTools/src/cpptraj/src/AmberNetcdf.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/AmberNetcdf.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -49,6 +49,7 @@
- * and close calls.
- */
- void AmberNetcdf::close() {
-+ if (ncid<0) return;
- checkNCerr(nc_close(ncid),"Closing netcdf file.");
- if (debug>0) rprintf("Successfully closed ncid %i\n",ncid);
- ncid=-1;
-@@ -92,8 +93,10 @@
- * Open the netcdf file, read all dimension and variable IDs, close.
- */
- int AmberNetcdf::SetupRead() {
-- char *attrText; // For checking conventions and version
-- int spatial; // For checking spatial dimensions
-+ char *attrText; // For checking conventions and version
-+ int spatial; // For checking spatial dimensions
-+ double box[6]; // For checking box type
-+ size_t start[3], count[3]; // For checking box type
-
- if (open()) return 1;
-
-@@ -147,15 +150,15 @@
- if ( nc_inq_varid(ncid,"cell_lengths",&cellLengthVID)==NC_NOERR ) {
- if (checkNCerr(nc_inq_varid(ncid,"cell_angles",&cellAngleVID),
- "Getting cell angles.")!=0) return 1;
-- if (debug>0) mprintf(" Netcdf Box information found.\n");
-- if (P->ifbox==0) {
-- mprintf("Warning: Netcdf file contains box info but no box info found\n");
-- mprintf(" in associated parmfile %s; defaulting to orthogonal.\n",
-- P->parmName);
-- isBox=1;
-- } else {
-- isBox=P->ifbox;
-- }
-+ if (debug>0) mprintf(" Netcdf Box information found.\n");
-+ // Determine box type from angles
-+ start[0]=0; start[1]=0; start[2]=0;
-+ count[0]=1; count[1]=3; count[2]=0;
-+ if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, box),
-+ "Getting cell lengths.")!=0 ) return 1;
-+ if ( checkNCerr(nc_get_vara_double(ncid, cellAngleVID, start, count, box+3),
-+ "Getting cell angles.")!=0 ) return 1;
-+ CheckBoxType(box);
- }
-
- // Replica Temperatures
-@@ -258,7 +261,7 @@
- "Defining cell angular variable.")) return 1;
-
- // Box Info
-- if (isBox>0) {
-+ if (BoxType!=0) {
- dimensionID[0]=frameDID;
- dimensionID[1]=cell_spatialDID;
- if (checkNCerr(nc_def_var(ncid,"cell_lengths",NC_DOUBLE,2,dimensionID,&cellLengthVID),
-@@ -362,7 +365,7 @@
- "Getting frame %i",set)!=0 ) return 1;
-
- // Read box info
-- if (isBox!=0) {
-+ if (BoxType!=0) {
- count [1]=3;
- count [2]=0;
- if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, F->box),
-@@ -399,7 +402,7 @@
- F->frameToFloat(Coord);
-
- // write coords
-- start[0]=set;
-+ start[0]=currentFrame;
- start[1]=0;
- start[2]=0;
- count[0]=1;
-@@ -409,7 +412,7 @@
- "Netcdf Writing frame %i",set)) return 1;
-
- // write box
-- if (isBox>0 && cellLengthVID!=-1) {
-+ if (BoxType!=0 && cellLengthVID!=-1) {
- count[1]=3;
- count[2]=0;
- if (checkNCerr(nc_put_vara_double(ncid,cellLengthVID,start,count,F->box),
-@@ -427,6 +430,8 @@
-
- nc_sync(ncid); // Necessary after every write??
-
-+ currentFrame++;
-+
- return 0;
- }
-
-diff -urN amber11//AmberTools/src/cpptraj/src/AmberParm.cpp amber11.new//AmberTools/src/cpptraj/src/AmberParm.cpp
---- amber11//AmberTools/src/cpptraj/src/AmberParm.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/AmberParm.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -1,6 +1,12 @@
- /* AmberParm.cpp
-- * Class that holds parameter information. Can be read in from Amber Topology
-- * or PDB files.
-+ * Class that holds parameter information. Can be read in from Amber Topology,
-+ * PDB, or Mol2 files (implemented in the ReadParmXXX functions). The following
-+ * parameters of AmberParm must always be set:
-+ * The NATOM, NRES, and IFBOX entries of the values array.
-+ * The names, resnames, resnums arrays.
-+ * The natom and nres variables.
-+ * NOTES:
-+ * Eventually make the mol2 read parm function use the AddBond function.
- */
- #include <cstdlib>
- #include <cstring>
-@@ -11,7 +17,7 @@
- #include "CpptrajStdio.h"
-
- #define AMBERPOINTERS 31
--
-+#define TRUNCOCTBETA 109.4712206344906917365733534097672
- #define ELECTOAMBER 18.2223
- #define AMBERTOELEC 1/ELECTOAMBER
- // =============================================================
-@@ -203,7 +209,9 @@
- bondsh=NULL;
- types=NULL;
- atomsPerMol=NULL;
-- Box=NULL;
-+ Box[0]=0.0; Box[1]=0.0; Box[2]=0.0;
-+ Box[3]=0.0; Box[4]=0.0; Box[5]=0.0;
-+ BoxType=0;
- pindex=0;
- parmFrames=0;
- outFrame=0;
-@@ -217,7 +225,6 @@
- solventMoleculeStop=NULL;
- natom=0;
- nres=0;
-- ifbox=0;
- parmName=NULL;
- SurfaceInfo=NULL;
- }
-@@ -234,7 +241,6 @@
- if (bonds!=NULL) free(bonds);
- if (bondsh!=NULL) free(bondsh);
- if (atomsPerMol!=NULL) free(atomsPerMol);
-- if (Box!=NULL) free(Box);
- if (solventMoleculeStart!=NULL) free(solventMoleculeStart);
- if (solventMoleculeStop!=NULL) free(solventMoleculeStop);
- if (solventMask!=NULL) free(solventMask);
-@@ -271,54 +277,7 @@
- return NULL;
- }
-
--/*
-- * AmberParm::OpenParm()
-- * Attempt to open file and read in parameters.
-- */
--int AmberParm::OpenParm(char *filename) {
-- if ( File.SetupFile(filename,READ,UNKNOWN_FORMAT, UNKNOWN_TYPE,debug) ) return 1;
--
-- // Copy parm filename to parmName. Separate from File.filename in case of stripped parm
-- parmName=(char*) malloc( (strlen(File.basefilename)+1) * sizeof(char));
-- strcpy(parmName,File.basefilename);
--
-- if ( File.OpenFile() ) return 1;
--
-- switch (File.fileFormat) {
-- case AMBERPARM : if (ReadParmAmber()) return 1; break;
-- case PDBFILE : if (ReadParmPDB() ) return 1; break;
-- case MOL2FILE : if (ReadParmMol2() ) return 1; break;
-- default:
-- rprintf("Unknown parameter file type: %s\n",File.filename);
-- return 1;
-- }
--
-- File.CloseFile();
--
-- // Create a last dummy residue in resnums that holds natom, which would be
-- // the atom number of the next residue if it existed. Atom #s in resnums
-- // should correspond with cpptraj atom #s (start from 0) instead of Amber
-- // atom #s (start from 1).
-- // Do this to be consistent with ptrajmask selection behavior - saves an
-- // if-then statement.
-- resnums=(int*) realloc(resnums,(nres+1)*sizeof(int));
-- resnums[nres]=natom;
-- // DEBUG
-- //fprintf(stdout,"==== DEBUG ==== Resnums for %s:\n",File.filename);
-- //for (err=0; err<nres; err++)
-- // fprintf(stdout," %i: %i\n",err,resnums[err]);
--
-- // Set up solvent information
-- SetSolventInfo();
--
-- if (debug>0) {
-- mprintf(" Number of atoms= %i\n",natom);
-- mprintf(" Number of residues= %i\n",nres);
-- }
--
-- return 0;
--}
--
-+// ---------========= ROUTINES PERTAINING TO SURFACE AREA =========---------
- /*
- * AmberParm::AssignLCPO()
- * Assign parameters for LCPO method. All radii are incremented by 1.4 Ang.
-@@ -478,6 +437,7 @@
- return 0;
- }
-
-+// ---------========= ROUTINES PERTAINING TO SOLVENT INFO =========---------
- /*
- * AmberParm::SetSolventInfo()
- * Assuming atomsPerMol has been read in, set solvent information.
-@@ -536,7 +496,56 @@
-
- return 0;
- }
--
-+
-+// --------========= ROUTINES PERTAINING TO READING PARAMETERS =========--------
-+/*
-+ * AmberParm::OpenParm()
-+ * Attempt to open file and read in parameters.
-+ */
-+int AmberParm::OpenParm(char *filename) {
-+ if ( File.SetupFile(filename,READ,UNKNOWN_FORMAT, UNKNOWN_TYPE,debug) ) return 1;
-+
-+ // Copy parm filename to parmName. Separate from File.filename in case of stripped parm
-+ parmName=(char*) malloc( (strlen(File.basefilename)+1) * sizeof(char));
-+ strcpy(parmName,File.basefilename);
-+
-+ if ( File.OpenFile() ) return 1;
-+
-+ switch (File.fileFormat) {
-+ case AMBERPARM : if (ReadParmAmber()) return 1; break;
-+ case PDBFILE : if (ReadParmPDB() ) return 1; break;
-+ case MOL2FILE : if (ReadParmMol2() ) return 1; break;
-+ default:
-+ rprintf("Unknown parameter file type: %s\n",File.filename);
-+ return 1;
-+ }
-+
-+ File.CloseFile();
-+
-+ // Create a last dummy residue in resnums that holds natom, which would be
-+ // the atom number of the next residue if it existed. Atom #s in resnums
-+ // should correspond with cpptraj atom #s (start from 0) instead of Amber
-+ // atom #s (start from 1).
-+ // Do this to be consistent with ptrajmask selection behavior - saves an
-+ // if-then statement.
-+ resnums=(int*) realloc(resnums,(nres+1)*sizeof(int));
-+ resnums[nres]=natom;
-+ // DEBUG
-+ //fprintf(stdout,"==== DEBUG ==== Resnums for %s:\n",File.filename);
-+ //for (err=0; err<nres; err++)
-+ // fprintf(stdout," %i: %i\n",err,resnums[err]);
-+
-+ // Set up solvent information
-+ SetSolventInfo();
-+
-+ if (debug>0) {
-+ mprintf(" Number of atoms= %i\n",natom);
-+ mprintf(" Number of residues= %i\n",nres);
-+ }
-+
-+ return 0;
-+}
-+
- /*
- * AmberParm::ReadParmAmber()
- * Read parameters from Amber Topology file
-@@ -544,6 +553,7 @@
- int AmberParm::ReadParmAmber() {
- int err, atom;
- int *solvent_pointer;
-+ double *boxFromParm;
-
- if (debug>0) mprintf("Reading Amber Topology file %s\n",parmName);
-
-@@ -555,7 +565,6 @@
-
- natom=values[NATOM];
- nres=values[NRES];
-- ifbox=values[IFBOX];
- if (debug>0)
- mprintf(" Amber top contains %i atoms, %i residues.\n",natom,nres);
-
-@@ -583,7 +592,8 @@
- if (bonds==NULL) {mprintf("Error in bonds w/o H.\n"); err++;}
- bondsh=(int*) getFlagFileValues("BONDS_INC_HYDROGEN",values[NBONH]*3);
- if (bondsh==NULL) {mprintf("Error in bonds inc H.\n"); err++;}
-- if (ifbox>0) {
-+ // Get solvent info if IFBOX>0
-+ if (values[IFBOX]>0) {
- solvent_pointer=(int*) getFlagFileValues("SOLVENT_POINTERS",3);
- if (solvent_pointer==NULL) {
- mprintf("Error in solvent pointers.\n");
-@@ -596,12 +606,20 @@
- }
- atomsPerMol=(int*) getFlagFileValues("ATOMS_PER_MOLECULE",molecules);
- if (atomsPerMol==NULL) {mprintf("Error in atoms per molecule.\n"); err++;}
-- Box=(double*) getFlagFileValues("BOX_DIMENSIONS",4);
-- if (Box==NULL) {mprintf("Error in Box information.\n"); err++;}
-+ // boxFromParm = {OLDBETA, BOX(1), BOX(2), BOX(3)}
-+ boxFromParm=(double*) getFlagFileValues("BOX_DIMENSIONS",4);
-+ if (boxFromParm==NULL) {mprintf("Error in Box information.\n"); err++;}
-+ // Determine box type: 1-Ortho, 2-Nonortho
-+ SetBoxInfo(boxFromParm[0],boxFromParm[1],boxFromParm[2],boxFromParm[3]);
-+ free(boxFromParm);
- if (debug>0) {
- mprintf(" %s contains box info: %i mols, first solvent mol is %i\n",
- parmName, molecules, firstSolvMol);
-- mprintf(" BOX: %lf %lf %lf %lf\n",Box[0],Box[1],Box[2],Box[3]);
-+ mprintf(" BOX: %lf %lf %lf | %lf %lf %lf\n",Box[0],Box[1],Box[2],Box[3],Box[4],Box[5]);
-+ if (BoxType==1)
-+ mprintf(" Box is orthogonal.\n");
-+ else
-+ mprintf(" Box is non-orthogonal.\n");
- }
- }
-
-@@ -686,6 +704,7 @@
- values = (int*) calloc(AMBERPOINTERS, sizeof(int));
- values[NATOM] = natom;
- values[NRES] = nres;
-+ values[IFBOX] = 0;
-
- if (debug>0)
- mprintf(" PDB contains %i atoms, %i residues, %i molecules.\n",
-@@ -799,6 +818,7 @@
- values[NRES] = nres;
- values[NBONH] = numbondsh;
- values[MBONA] = numbonds;
-+ values[IFBOX] = 0;
-
- mprintf(" Mol2 contains %i atoms, %i residues,\n", natom,nres);
- mprintf(" %i bonds to H, %i other bonds.\n", numbondsh,numbonds);
-@@ -806,6 +826,61 @@
- return 0;
- }
-
-+// ---------===========================================================---------
-+/*
-+ * AmberParm::SetBoxInfo()
-+ * Given 3 box lengths and an angle determine the box type and set
-+ * the box information. If called with negative beta, set no box.
-+ * Currently recognized betas:
-+ * 90.00 - Orthogonal
-+ * 109.47 - Truncated octahedral
-+ * 60.00 - Rhombic dodecahedron
-+ * Any other beta just sets all angles to beta and a warning is printed.
-+ */
-+int AmberParm::SetBoxInfo(double beta, double bx, double by, double bz) {
-+ int ifbox=0;
-+
-+ // Determine box type from beta (none, ortho, non-ortho (truncated oct/triclinic)
-+ if (beta<=0.0) {
-+ if (BoxType>0)
-+ mprintf(" %s: Removing box information.\n",parmName);
-+ BoxType=0;
-+ ifbox=0;
-+ Box[0]=0.0; Box[1]=0.0; Box[2]=0.0;
-+ Box[3]=0.0; Box[4]=0.0; Box[5]=0.0;
-+ } else if (beta == 90.0) {
-+ BoxType=1;
-+ ifbox=1;
-+ Box[0]=bx; Box[1]=by; Box[2]=bz;
-+ Box[3]=90.0; Box[4]=90.0; Box[5]=90.0;
-+ if (debug>0) mprintf(" %s: Setting box to be orthogonal.\n",parmName);
-+ } else if (beta > 109.47 && beta < 109.48) {
-+ BoxType=2;
-+ ifbox=2;
-+ Box[0]=bx; Box[1]=by; Box[2]=bz;
-+ //Box[3] = TRUNCOCTBETA;
-+ Box[3] = beta;
-+ Box[4]=Box[3]; Box[5]=Box[3];
-+ if (debug>0) mprintf(" %s: Setting box to be a truncated octahedron, angle is %lf\n",
-+ parmName,Box[3]);
-+ } else if (beta == 60.0) {
-+ BoxType=2;
-+ ifbox=1;
-+ Box[0]=bx; Box[1]=by; Box[2]=bz;
-+ Box[3]=60.0; Box[4]=90.0; Box[5]=60.0;
-+ if (debug>0)
-+ mprintf(" %s: Setting box to be a rhombic dodecahedron, alpha=gamma=60.0, beta=90.0\n",
-+ parmName);
-+ } else {
-+ BoxType=2;
-+ ifbox=1;
-+ Box[0]=bx; Box[1]=by; Box[2]=bz;
-+ Box[3]=beta; Box[4]=beta; Box[5]=beta;
-+ mprintf(" Warning: %s: Unrecognized box type, beta is %lf\n",beta);
-+ }
-+ return 0;
-+}
-+
- /*
- * AmberParm::AtomInfo()
- * Print parm information for atom.
-@@ -829,8 +904,8 @@
- */
- void AmberParm::Info(char *buffer) {
-
-- sprintf(buffer,"%i atoms, %i res, box %i, %i mol, %i solvent mol, %i frames",
-- natom,nres,ifbox,molecules,solventMolecules,parmFrames);
-+ sprintf(buffer,"%i atoms, %i res, boxtype %i, %i mol, %i solvent mol, %i frames",
-+ natom,nres,BoxType,molecules,solventMolecules,parmFrames);
- }
-
- // NOTE: The following atomToX functions do not do any memory checks!
-@@ -963,6 +1038,7 @@
- return bonds;
- }
-
-+// ---------===========================================================---------
- /*
- * AmberParm::modifyStateByMap()
- * Currently only intended for use with AtomMap.
-@@ -1028,24 +1104,21 @@
- // Set up new parm information
- newParm->natom = this->natom;
- newParm->nres = this->nres;
-- newParm->ifbox = this->ifbox;
- newParm->parmFrames = this->parmFrames;
-
- // Give mapped parm the same pindex as original parm
- newParm->pindex = this->pindex;
-
- // Copy box information
-- if (this->Box!=NULL) {
-- newParm->Box=(double*) malloc(4*sizeof(double));
-- for (int i=0; i<4; i++)
-- newParm->Box[i] = this->Box[i];
-- }
-+ for (int i=0; i<6; i++)
-+ newParm->Box[i] = this->Box[i];
-+ newParm->BoxType=this->BoxType;
-
- // Set values up
- // NOTE: Eventually set all pointers up?
- newParm->values[NATOM] = newParm->natom;
- newParm->values[NRES] = newParm->nres;
-- newParm->values[IFBOX] = newParm->ifbox;
-+ newParm->values[IFBOX] = this->values[IFBOX];
-
- return newParm;
- }
-@@ -1152,7 +1225,6 @@
- // Set up new parm information
- newParm->natom = j;
- newParm->nres = jres+1;
-- newParm->ifbox = this->ifbox;
- newParm->parmFrames = this->parmFrames;
- if (this->molecules>0)
- newParm->molecules = jmol+1;
-@@ -1184,26 +1256,25 @@
- }
-
- // Copy box information
-- if (this->Box!=NULL) {
-- newParm->Box=(double*) malloc(4*sizeof(double));
-- for (i=0; i<4; i++)
-- newParm->Box[i] = this->Box[i];
-- }
-+ for (i=0; i<6; i++)
-+ newParm->Box[i] = this->Box[i];
-+ newParm->BoxType=this->BoxType;
-
- // Set values up
- // NOTE: Eventually set all pointers up?
- newParm->values[NATOM] = newParm->natom;
- newParm->values[NRES] = newParm->nres;
-- newParm->values[IFBOX] = newParm->ifbox;
-+ newParm->values[IFBOX] = this->values[IFBOX];
-
- mprintf(" New parmtop contains %i atoms.\n",newParm->natom);
- mprintf(" %i residues.\n",newParm->nres);
- mprintf(" %i molecules.\n",newParm->molecules);
-- mprintf(" %i solvent molcules.\n",newParm->solventMolecules);
-+ mprintf(" %i solvent molecules.\n",newParm->solventMolecules);
-
- return newParm;
- }
-
-+// ---------===========================================================---------
- /*
- * AmberParm::DataToBuffer()
- * Return char buffer containing N data elements stored in I, D, or C with
-@@ -1267,6 +1338,7 @@
- char *buffer;
- int solvent_pointer[3];
- int atom;
-+ double parmBox[4];
-
- if (parmName==NULL) return 1;
-
-@@ -1346,7 +1418,7 @@
- }
-
- // SOLVENT POINTERS
-- if (ifbox>0) {
-+ if (values[IFBOX]>0) {
- PrintFlagFormat(&outfile, "%FLAG SOLVENT_POINTERS", "%FORMAT(3I8)");
- solvent_pointer[0]=finalSoluteRes;
- solvent_pointer[1]=molecules;
-@@ -1360,8 +1432,12 @@
- outfile.IO->Write(buffer, sizeof(char), BufferSize);
-
- // BOX DIMENSIONS
-+ parmBox[0] = Box[4]; // beta
-+ parmBox[1] = Box[0]; // boxX
-+ parmBox[2] = Box[1]; // boxY
-+ parmBox[3] = Box[2]; // boxZ
- PrintFlagFormat(&outfile, "%FLAG BOX_DIMENSIONS", "%FORMAT(5E16.8)");
-- buffer = DataToBuffer(buffer,"%FORMAT(5E16.8)", NULL, Box, NULL, 4);
-+ buffer = DataToBuffer(buffer,"%FORMAT(5E16.8)", NULL, parmBox, NULL, 4);
- outfile.IO->Write(buffer, sizeof(char), BufferSize);
- }
-
-diff -urN amber11//AmberTools/src/cpptraj/src/AmberParm.h amber11.new//AmberTools/src/cpptraj/src/AmberParm.h
---- amber11//AmberTools/src/cpptraj/src/AmberParm.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/AmberParm.h 2011-05-19 18:35:57.000000000 +0300
-@@ -75,14 +75,14 @@
- int *resnums; // IPRES(NRES)
- int natom; // NATOM
- int nres; // NRES
-- int ifbox; // IFBOX
- int finalSoluteRes; // IPTRES
- int molecules; // NSPM
- int firstSolvMol; // NSPSOL
- int *atomsPerMol; // NSP(NSPM)
- double *mass; // AMASS(NATOM)
- double *charge; // CHARGE(NATOM)
-- double *Box; // OLDBETA, BOX(1), BOX(2), BOX(3)
-+ double Box[6]; // X, Y, Z, alpha, beta, gamma
-+ int BoxType; // 0: None, 1: Orthogonal, 2: Non-orthogonal
- // From Ptraj
- char *solventMask; // T for atoms in the solvent
- int solventMolecules; // number of solvent molecules
-@@ -96,6 +96,7 @@
- ~AmberParm();
- void ResName(char *, int);
- int OpenParm(char *);
-+ int SetBoxInfo(double,double,double,double);
- int SetSurfaceInfo();
- int SetSolventInfo();
- void AtomInfo(int);
-diff -urN amber11//AmberTools/src/cpptraj/src/AmberRestart.cpp amber11.new//AmberTools/src/cpptraj/src/AmberRestart.cpp
---- amber11//AmberTools/src/cpptraj/src/AmberRestart.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/AmberRestart.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -109,7 +109,7 @@
- frameSize+=frameSize;
-
- // If box coords are present, allocate extra space for them
-- if (isBox>0) {
-+ if (BoxType!=0) {
- numBoxCoords=6;
- frameSize+=((numBoxCoords*12)+1);
- }
-@@ -167,13 +167,12 @@
-
- // If 0 probably at EOF. No box or velo.
- // } else if (lineSize==0) {
-- isBox=0;
-+ BoxType=0;
- hasVelocity=0;
-
- // If 36 or 72 (+1 newline) box info.
- } else if (lineSize==37 || lineSize==73) {
-- isBox=1;
-- numBoxCoords = (lineSize-1) / 12;
-+ getBoxType(frameBuffer,lineSize);
- hasVelocity=0;
-
- // If filled framebuffer again, has velocity info. Check for box after velocity.
-@@ -182,15 +181,14 @@
- if (File->IO->Gets(buffer,82)==0) {
- lineSize=strlen(buffer);
- if (lineSize==37 || lineSize==73) {
-- isBox=1;
-- numBoxCoords = (lineSize-1) / 12;
-+ getBoxType(buffer,lineSize);
- } else {
- mprintf("Error: AmberRestart::SetupRead():\n");
- mprintf(" Expect only 3 or 6 box coords in box coord line.\n");
- return 1;
- }
- } else
-- isBox=0;
-+ BoxType=0;
-
- // Otherwise, who knows what was read?
- } else {
-@@ -202,12 +200,12 @@
-
- // Recalculate the frame size
- if (hasVelocity) frameSize+=frameSize;
-- if (isBox) frameSize+=( (numBoxCoords*12) + 1 );
-+ if (BoxType!=0) frameSize+=( (numBoxCoords*12) + 1 );
- frameBuffer=(char*) realloc(frameBuffer, frameSize*sizeof(char));
-
- if (debug > 0) {
-- mprintf(" Amber Restart isBox=%i hasVelocity=%i numBoxCoords=%i\n",
-- isBox,hasVelocity,numBoxCoords);
-+ mprintf(" Amber Restart BoxType=%i hasVelocity=%i numBoxCoords=%i\n",
-+ BoxType,hasVelocity,numBoxCoords);
- mprintf(" Amber Restart frameSize= %i\n",frameSize);
- }
-
-@@ -221,6 +219,20 @@
- }
-
- /*
-+ * AmberRestart::getBoxType()
-+ * Based on input buffer, determine box type and num box coords.
-+ */
-+void AmberRestart::getBoxType(char *boxline, int boxlineSize) {
-+ double box[6];
-+ numBoxCoords = (boxlineSize-1) / 12;
-+ if (numBoxCoords>3) {
-+ sscanf(boxline, "%8lf%8lf%8lf%8lf%8lf%8lf",box,box+1,box+2,box+3,box+4,box+5);
-+ CheckBoxType(box);
-+ } else
-+ BoxType = P->BoxType;
-+}
-+
-+/*
- * AmberRestart::getFrame()
- * Get the restart file frame. If velocities are present, read those too.
- */
-@@ -251,7 +263,7 @@
- //F->V->printAtomCoord(0);
- }
- // Convert box to Frame if present
-- if (isBox) {
-+ if (BoxType!=0) {
- if ( (bufferPosition = F->BufferToBox(bufferPosition, numBoxCoords, 12))==NULL ) {
- mprintf("Error: AmberRestart::getFrame: * detected in box coordinates of %s\n",
- trajfilename);
-@@ -287,7 +299,7 @@
- if (F->V!=NULL) // NOTE: Use hasVelocity in addition/instead?
- bufferPosition = F->V->FrameToBuffer(bufferPosition,"%12.7lf",12,6);
- // Write box to buffer
-- if (isBox)
-+ if (BoxType!=0)
- bufferPosition = F->BoxToBuffer(bufferPosition, numBoxCoords, "%12.7lf",12);
-
- //if (seekable) fseek(fp, titleSize+(set*frameSize),SEEK_SET);
-@@ -297,6 +309,8 @@
-
- File->IO->Close();
-
-+ currentFrame++;
-+
- return 0;
- }
-
-diff -urN amber11//AmberTools/src/cpptraj/src/AmberRestart.h amber11.new//AmberTools/src/cpptraj/src/AmberRestart.h
---- amber11//AmberTools/src/cpptraj/src/AmberRestart.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/AmberRestart.h 2011-05-19 18:35:57.000000000 +0300
-@@ -14,6 +14,7 @@
-
- int SetupRead();
- int SetupWrite();
-+ void getBoxType(char *, int);
-
- public:
-
-diff -urN amber11//AmberTools/src/cpptraj/src/AmberRestartNC.cpp amber11.new//AmberTools/src/cpptraj/src/AmberRestartNC.cpp
---- amber11//AmberTools/src/cpptraj/src/AmberRestartNC.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/AmberRestartNC.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -60,15 +60,8 @@
- /*
- * AmberRestartNC::open()
- * Open up Netcdf restart file and set all dimension and variable IDs.
-- * This is done every time the file is opened up since Im not sure
-- * the variable IDs stay the same throughout each opening.
-- * Could eventually be separated.
-- * NOTE: Replace attrText allocs with static buffer?
- */
- int AmberRestartNC::open() {
-- char *attrText; // For checking conventions and version
-- int spatial; // For checking spatial dimensions
--
- mprintf("DEBUG: AmberRestartNC::open() called for %s, ncid=%i\n",File->filename,ncid);
- // If already open, return
- if (ncid!=-1) return 0;
-@@ -94,6 +87,23 @@
- // Netcdf files are always seekable
- seekable=1;
-
-+ return 0;
-+}
-+
-+/*
-+ * AmberRestartNC::SetupRead()
-+ * Set up netcdf restart file for reading, get all variable and dimension IDs.
-+ * Also check number of atoms against associated parmtop.
-+ * NOTE: Replace attrText allocs with static buffer?
-+ */
-+int AmberRestartNC::SetupRead() {
-+ char *attrText; // For checking conventions and version
-+ int spatial; // For checking spatial dimensions
-+ double box[6];
-+ size_t start[2], count[2];
-+
-+ if (open()) return 1;
-+
- // Get global attributes
- if (title==NULL) title = GetAttrText(ncid,NC_GLOBAL, "title");
- attrText = GetAttrText(ncid,NC_GLOBAL, "Conventions");
-@@ -147,20 +157,18 @@
- mprintf(" Netcdf restart time= %lf\n",restartTime);
-
- // Box info
-- // NOTE: If no box info found in parm should really try to determine correct
-- // box type from angles.
- if ( nc_inq_varid(ncid,"cell_lengths",&cellLengthVID)==NC_NOERR ) {
- if (checkNCerr(nc_inq_varid(ncid,"cell_angles",&cellAngleVID),
- "Getting cell angles.")!=0) return 1;
-- if (debug>0) mprintf(" Netcdf restart Box information found.\n");
-- if (P->ifbox==0) {
-- mprintf("Warning: Netcdf restart file contains box info but no box info found\n");
-- mprintf(" in associated parmfile %s; defaulting to orthogonal.\n",
-- P->parmName);
-- isBox=1;
-- } else {
-- isBox=P->ifbox;
-- }
-+ if (debug>0) mprintf(" Netcdf restart Box information found.\n");
-+ // Determine box type from angles
-+ start[0]=0; start[1]=0;
-+ count[0]=3; count[1]=0;
-+ if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, box),
-+ "Getting cell lengths.")!=0 ) return 1;
-+ if ( checkNCerr(nc_get_vara_double(ncid, cellAngleVID, start, count, box+3),
-+ "Getting cell angles.")!=0 ) return 1;
-+ CheckBoxType(box);
- }
-
- // Replica Temperatures
-@@ -175,15 +183,6 @@
- //int cell_spatialDID, cell_angularDID;
- //int spatialVID, cell_spatialVID, cell_angularVID;
-
-- return 0;
--}
--
--/*
-- * AmberRestartNC::SetupRead()
-- * Just a frontend to open for now. Also check number of atoms.
-- */
--int AmberRestartNC::SetupRead() {
-- if (open()) return 1;
- if (ncatom!=P->natom) {
- mprintf("Warning: Number of atoms in NetCDF restart file %s (%i) does not\n",
- File->filename,ncatom);
-@@ -210,7 +209,7 @@
- */
- int AmberRestartNC::setupWriteForSet(int set) {
- int dimensionID[NC_MAX_VAR_DIMS];
-- size_t start[3], count[3];
-+ size_t start[2], count[2];
- char buffer[1024];
- char xyz[3];
- char abc[15] = { 'a', 'l', 'p', 'h', 'a',
-@@ -280,7 +279,7 @@
- "Defining cell angular variable.")) return 1;
-
- // Box Info
-- if (isBox>0) {
-+ if (BoxType!=0) {
- dimensionID[0]=cell_spatialDID;
- if (checkNCerr(nc_def_var(ncid,"cell_lengths",NC_DOUBLE,1,dimensionID,&cellLengthVID),
- "Defining cell length variable.")) return 1;
-@@ -388,9 +387,9 @@
- }
-
- // Read box info
-- if (isBox!=0) {
-- count [0]=3;
-- count [1]=0;
-+ if (BoxType!=0) {
-+ count[0]=3;
-+ count[1]=0;
- if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, F->box),
- "Getting cell lengths.")!=0 ) return 1;
- if ( checkNCerr(nc_get_vara_double(ncid, cellAngleVID, start, count, &(F->box[3])),
-@@ -425,7 +424,7 @@
- }
-
- // write box
-- if (isBox>0 && cellLengthVID!=-1) {
-+ if (BoxType!=0 && cellLengthVID!=-1) {
- count[0]=3;
- count[1]=0;
- if (checkNCerr(nc_put_vara_double(ncid,cellLengthVID,start,count,F->box),
-@@ -439,6 +438,8 @@
- // Close file for this set
- close();
-
-+ currentFrame++;
-+
- return 0;
- }
-
-diff -urN amber11//AmberTools/src/cpptraj/src/AmberTraj.cpp amber11.new//AmberTools/src/cpptraj/src/AmberTraj.cpp
---- amber11//AmberTools/src/cpptraj/src/AmberTraj.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/AmberTraj.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -104,16 +104,18 @@
- rprintf("Error: AmberTraj::getFrame: * detected in coordinates of %s\n",trajfilename);
- return 1;
- }
-- if (isBox) {
-+ if (BoxType!=0) {
- if ( (bufferPosition = F->BufferToBox(bufferPosition,numBoxCoords,8))==NULL ) {
- rprintf("Error: AmberTraj::getFrame: * detected in box coordinates of %s\n",
- trajfilename);
- return 1;
- }
-- // Set box angles to parmtop default
-- F->box[3] = P->Box[0];
-- F->box[4] = P->Box[0];
-- F->box[5] = P->Box[0];
-+ // Set box angles to parmtop default if not read in
-+ if (numBoxCoords==3) {
-+ F->box[3] = P->Box[3];
-+ F->box[4] = P->Box[4];
-+ F->box[5] = P->Box[5];
-+ }
- }
- return 0;
- }
-@@ -138,20 +140,22 @@
- }
-
- bufferPosition = F->FrameToBuffer(bufferPosition,"%8.3lf",8,10);
-- if (isBox)
-+ if (BoxType!=0)
- bufferPosition = F->BoxToBuffer(bufferPosition,numBoxCoords,"%8.3lf",8);
-
- outFrameSize = (int) (bufferPosition - frameBuffer);
-
- //if (seekable)
- // NOTE: Seek only needs to happen when traj file changes
-- offset = (off_t) set;
-- offset *= (off_t) outFrameSize;
-- offset += (off_t) titleSize;
-- File->IO->Seek( offset);
-+ //offset = (off_t) currentFrame;
-+ //offset *= (off_t) outFrameSize;
-+ //offset += (off_t) titleSize;
-+ //File->IO->Seek( offset);
-
- if (File->IO->Write(frameBuffer,sizeof(char),outFrameSize)) return 1;
-
-+ currentFrame++;
-+
- return 0;
- }
-
-@@ -165,6 +169,7 @@
- int frame_lines;
- int lineSize;
- long long int file_size, frame_size;
-+ double box[6]; // For checking box coordinates
-
- // Attempt to open the file. open() sets the title and titleSize
- if (open()) return 1;
-@@ -219,7 +224,7 @@
-
- if (strncmp(buffer,"REMD",4)==0 || strncmp(buffer,"HREMD",5)==0) {
- // REMD header - no box coords
-- isBox=0;
-+ BoxType=0;
- } else if (lineSize<80) {
- /* Line is shorter than 80 chars, indicates box coords.
- * Length of the line HAS to be a multiple of 8, and probably could be
-@@ -228,21 +233,22 @@
- */
- if (debug>0) mprintf(" Box line is %i chars.\n",lineSize);
- if ( ((lineSize-1)%24)!=0 ) {
-- rprintf("Error in box coord line.\nExpect only 3 or 6 box coords.\n");
-+ mprintf("Error in box coord line. Expect only 3 or 6 box coords.\n");
- return 1;
- }
- numBoxCoords=(lineSize-1) / 8;
- if (debug>0) mprintf(" Detected %i box coords.\n",numBoxCoords);
-- frameSize+=lineSize;
-+ // Determine box type based on angles. Angles are usually not printed
-+ // for orthogonal and truncated octahedral boxes, but check here just
-+ // to be safe. If no angles present use parmtop Box Type.
-+ if (numBoxCoords>3) {
-+ sscanf(buffer, "%8lf%8lf%8lf%8lf%8lf%8lf",box,box+1,box+2,box+3,box+4,box+5);
-+ CheckBoxType(box);
-+ } else
-+ BoxType = P->BoxType;
- // Reallocate frame buffer accordingly
-+ frameSize+=lineSize;
- frameBuffer=(char*) realloc(frameBuffer,frameSize * sizeof(char));
-- if (P->ifbox==0) {
-- rprintf( "Warning: Box coords detected in trajectory but not defined in topology!\n");
-- rprintf(" Setting box type to rectangular.\n");
-- isBox=1;
-- } else {
-- isBox = P->ifbox;
-- }
- }
- }
-
-@@ -315,7 +321,9 @@
- frameSize += hasREMD;
-
- // If box coords are present, allocate extra space for them
-- if (isBox>0) {
-+ // NOTE: Currently only writing box lengths for all box types. This means
-+ // writing triclinic box type is currently not supported.
-+ if (BoxType!=0) {
- numBoxCoords=3; // Only write out box lengths for trajectories
- frameSize+=((numBoxCoords*8)+1);
- }
-diff -urN amber11//AmberTools/src/cpptraj/src/ArgList.cpp amber11.new//AmberTools/src/cpptraj/src/ArgList.cpp
---- amber11//AmberTools/src/cpptraj/src/ArgList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/ArgList.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -147,6 +147,16 @@
- }
-
- /*
-+ * ArgList::Arg()
-+ * Return arg at specified position.
-+ */
-+char *ArgList::Arg(int pos) {
-+ if (pos>-1 && pos<nargs)
-+ return arglist[pos];
-+ return NULL;
-+}
-+
-+/*
- * ArgList::Command()
- * Check the first arg for command
- * Mark and return. Return even if marked.
-diff -urN amber11//AmberTools/src/cpptraj/src/ArgList.h amber11.new//AmberTools/src/cpptraj/src/ArgList.h
---- amber11//AmberTools/src/cpptraj/src/ArgList.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/ArgList.h 2011-05-19 18:35:57.000000000 +0300
-@@ -15,6 +15,7 @@
- void Add(char *);
- void print();
- char *ArgLine();
-+ char *Arg(int);
-
- char *Command();
- int CommandIs(const char *);
-diff -urN amber11//AmberTools/src/cpptraj/src/AtomMap.cpp amber11.new//AmberTools/src/cpptraj/src/AtomMap.cpp
---- amber11//AmberTools/src/cpptraj/src/AtomMap.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/AtomMap.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -6,6 +6,7 @@
- #include "TorsionRoutines.h"
- // DEBUG
- #include "Mol2File.h"
-+#include <cstdio>
-
- //--------- PRIVATE ROUTINES ---------------------------------------
- /*
-@@ -463,21 +464,27 @@
- // Write atommap out as a mol2 file, useful for checking bond info
- void atommap::WriteMol2(char *m2filename) {
- Mol2File outfile;
-- int *Selected;
-+ AtomMask M1;
- // Temporary parm to play with
- AmberParm *tmpParm;
-+ Frame *tmpFrame;
-
- // Create mask containing all atoms
-- Selected = (int*) malloc(natom*sizeof(int));
-- for (int atom=0; atom<natom; atom++) Selected[atom]=atom;
-+ //for (int atom=0; atom<natom; atom++) Selected[atom]=atom;
- // Fake strip, just use as crap way to copy
-- tmpParm = P->modifyStateByMask(Selected,natom);
-- free(Selected);
-+ //tmpParm = P->modifyStateByMask(Selected,natom);
-+ //free(Selected);
- // Modify the bonds array to include this info
-- tmpParm->ResetBondInfo();
-- for (int atom=0; atom<natom; atom++)
-- for (int bond=0; bond < M[atom].nbond; bond++)
-- tmpParm->AddBond(atom, M[atom].bond[bond], 0);
-+ //tmpParm->ResetBondInfo();
-+ //for (int atom=0; atom<natom; atom++)
-+ // for (int bond=0; bond < M[atom].nbond; bond++)
-+ // tmpParm->AddBond(atom, M[atom].bond[bond], 0);
-+ // Create mask with all mapped atoms
-+ for (int atom=0; atom<natom; atom++) {if (M[atom].isMapped) M1.AddAtom(atom);}
-+ // Strip so only mapped atoms remain
-+ tmpParm = P->modifyStateByMask(M1.Selected,M1.Nselected);
-+ tmpFrame = new Frame(M1.Nselected,NULL);
-+ tmpFrame->SetFrameFromMask(F, &M1);
-
- // Trajectory Setup
- outfile.File=new PtrajFile();
-@@ -485,13 +492,14 @@
- outfile.trajfilename = outfile.File->basefilename;
- outfile.debug=debug;
- outfile.SetTitle(m2filename);
-- outfile.P=P;
-+ outfile.P=tmpParm;
- outfile.SetupWrite();
- outfile.open();
-- outfile.F=F;
-+ outfile.F=tmpFrame;
- outfile.writeFrame(0);
- outfile.close();
- delete tmpParm;
-+ delete tmpFrame;
- }
- // ============================================================================
-
-@@ -1032,6 +1040,13 @@
- int iterations=0;
-
- numAtomsMapped=MapUniqueAtoms(Ref, Tgt);
-+ // DEBUG
-+ //char name[1024];
-+ //sprintf(name,"Ref.%i.mol2",iterations);
-+ //Ref->WriteMol2(name);
-+ //sprintf(name,"Tgt.%i.mol2",iterations);
-+ //Tgt->WriteMol2(name);
-+ // END DEBUG
- if (debug>0)
- mprintf("* MapUniqueAtoms: %i atoms mapped.\n",numAtomsMapped);
- if (numAtomsMapped==0) return 1;
-@@ -1045,17 +1060,35 @@
- iterations++;
- // First assign based on bonds to unique (already mapped) atoms.
- numAtomsMapped=mapBondsToUnique(Ref,Tgt);
-+ // DEBUG
-+ //sprintf(name,"Ref.%i.u.mol2",iterations);
-+ //Ref->WriteMol2(name);
-+ //sprintf(name,"Tgt.%i.u.mol2",iterations);
-+ //Tgt->WriteMol2(name);
-+ // END DEBUG
- if (debug>0)
- mprintf("* [%3i] mapBondsToUnique: %i atoms mapped.\n",iterations,numAtomsMapped);
- if (numAtomsMapped<0) return 1;
- // Next assign based on chirality
- numAtomsMapped=mapChiral(Ref,Tgt);
-+ // DEBUG
-+ //sprintf(name,"Ref.%i.c.mol2",iterations);
-+ //Ref->WriteMol2(name);
-+ //sprintf(name,"Tgt.%i.c.mol2",iterations);
-+ //Tgt->WriteMol2(name);
-+ // END DEBUG
- if (debug>0)
- mprintf("* [%3i] mapChiral: %i atoms mapped.\n",iterations,numAtomsMapped);
- if (numAtomsMapped<0) return 1;
- if (numAtomsMapped>0) continue;
- // Last assign based on index/element
- numAtomsMapped=mapByIndex(Ref,Tgt);
-+ // DEBUG
-+ //sprintf(name,"Ref.%i.i.mol2",iterations);
-+ //Ref->WriteMol2(name);
-+ //sprintf(name,"Tgt.%i.i.mol2",iterations);
-+ //Tgt->WriteMol2(name);
-+ // END DEBUG
- if (debug>0)
- mprintf("* [%3i] mapByIndex: %i atoms mapped.\n",iterations,numAtomsMapped);
- if (numAtomsMapped<0) return 1;
-diff -urN amber11//AmberTools/src/cpptraj/src/cpptrajdepend amber11.new//AmberTools/src/cpptraj/src/cpptrajdepend
---- amber11//AmberTools/src/cpptraj/src/cpptrajdepend 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/cpptrajdepend 2011-05-19 18:35:57.000000000 +0300
-@@ -2,7 +2,7 @@
- AmberNetcdf.o : AmberNetcdf.cpp AmberNetcdf.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h NetcdfRoutines.h PtrajFile.h Range.h TrajFile.h
- AmberParm.o : AmberParm.cpp AmberParm.h BaseFileIO.h CpptrajStdio.h Mol2FileRoutines.h PDBfileRoutines.h PtrajFile.h
- AmberTraj.o : AmberTraj.cpp AmberParm.h AmberTraj.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PtrajFile.h Range.h TrajFile.h
--TrajFile.o : TrajFile.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PtrajFile.h PtrajMpi.h Range.h TrajFile.h
-+TrajFile.o : TrajFile.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PtrajFile.h Range.h TrajFile.h
- Frame.o : Frame.cpp AmberParm.h AtomMask.h BaseFileIO.h CpptrajStdio.h DistRoutines.h Frame.h PtrajFile.h TorsionRoutines.h vectormath.h
- PtrajState.o : PtrajState.cpp Action.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajActionList.h PtrajFile.h PtrajMpi.h PtrajState.h Range.h ReferenceList.h TrajFile.h TrajinList.h TrajoutList.h
- ArgList.o : ArgList.cpp ArgList.h CpptrajStdio.h
-@@ -13,7 +13,7 @@
- TrajoutList.o : TrajoutList.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h Frame.h ParmFileList.h PtrajFile.h Range.h TrajFile.h TrajoutList.h
- ReferenceList.o : ReferenceList.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h Frame.h FrameList.h ParmFileList.h PtrajFile.h Range.h ReferenceList.h TrajFile.h
- CoordFileList.o : CoordFileList.cpp AmberNetcdf.h AmberParm.h AmberRestart.h AmberRestartNC.h AmberTraj.h ArgList.h AtomMask.h BaseFileIO.h Conflib.h CoordFileList.h CpptrajStdio.h Frame.h Mol2File.h PDBfile.h ParmFileList.h PtrajFile.h Range.h RemdTraj.h TrajFile.h TrajinList.h
--PtrajActionList.o : PtrajActionList.cpp Action.h Action_Angle.h Action_Center.h Action_Closest.h Action_DSSP.h Action_Dihedral.h Action_Distance.h Action_Hbond.h Action_Image.h Action_Mask.h Action_NAstruct.h Action_Outtraj.h Action_Pucker.h Action_Radgyr.h Action_Rmsd.h Action_Strip.h Action_Surf.h AmberParm.h ArgList.h AtomMap.h AtomMask.h AxisType.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajActionList.h PtrajFile.h Range.h TrajFile.h TrajoutList.h
-+PtrajActionList.o : PtrajActionList.cpp Action.h Action_Angle.h Action_Center.h Action_Closest.h Action_DSSP.h Action_Dihedral.h Action_Distance.h Action_Hbond.h Action_Image.h Action_Mask.h Action_NAstruct.h Action_Outtraj.h Action_Pucker.h Action_Radgyr.h Action_Rms2d.h Action_Rmsd.h Action_Strip.h Action_Surf.h AmberParm.h ArgList.h AtomMap.h AtomMask.h AxisType.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajActionList.h PtrajFile.h Range.h TrajFile.h TrajoutList.h
- DataSet.o : DataSet.cpp CpptrajStdio.h DataSet.h
- DataSetList.o : DataSetList.cpp CpptrajStdio.h DataSet.h DataSetList.h intDataSet.h mapDataSet.h stringDataSet.h
- vectormath.o : vectormath.cpp CpptrajStdio.h vectormath.h
-@@ -23,9 +23,9 @@
- DataFile.o : DataFile.cpp BaseFileIO.h CpptrajStdio.h DataFile.h DataSet.h PtrajFile.h
- DataFileList.o : DataFileList.cpp BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h PtrajFile.h
- PDBfile.o : PDBfile.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PDBfile.h PDBfileRoutines.h PtrajFile.h Range.h TrajFile.h
--PtrajFile.o : PtrajFile.cpp BaseFileIO.h Bzip2File.h CpptrajStdio.h GzipFile.h MpiFile.h NetcdfRoutines.h PDBfileRoutines.h PtrajFile.h PtrajMpi.h StdFile.h
-+PtrajFile.o : PtrajFile.cpp BaseFileIO.h Bzip2File.h CpptrajStdio.h GzipFile.h Mol2FileRoutines.h MpiFile.h NetcdfRoutines.h PDBfileRoutines.h PtrajFile.h PtrajMpi.h StdFile.h
- PDBfileRoutines.o : PDBfileRoutines.cpp PDBfileRoutines.h
--AtomMap.o : AtomMap.cpp Action.h AmberParm.h ArgList.h AtomMap.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h PDBfileRoutines.h ParmFileList.h PtrajFile.h TorsionRoutines.h
-+AtomMap.o : AtomMap.cpp Action.h AmberParm.h ArgList.h AtomMap.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h Mol2File.h ParmFileList.h PtrajFile.h Range.h TorsionRoutines.h TrajFile.h
- BaseFileIO.o : BaseFileIO.cpp BaseFileIO.h PtrajMpi.h
- StdFile.o : StdFile.cpp BaseFileIO.h StdFile.h
- GzipFile.o : GzipFile.cpp BaseFileIO.h CpptrajStdio.h GzipFile.h
-@@ -62,3 +62,4 @@
- Action_Pucker.o : Action_Pucker.cpp Action.h Action_Pucker.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajFile.h
- Range.o : Range.cpp ArgList.h CpptrajStdio.h Range.h
- Action_Outtraj.o : Action_Outtraj.cpp Action.h Action_Outtraj.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajFile.h PtrajMpi.h Range.h TrajFile.h TrajoutList.h
-+Action_Rms2d.o : Action_Rms2d.cpp Action.h Action_Rms2d.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajFile.h
-diff -urN amber11//AmberTools/src/cpptraj/src/DataFile.cpp amber11.new//AmberTools/src/cpptraj/src/DataFile.cpp
---- amber11//AmberTools/src/cpptraj/src/DataFile.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/DataFile.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -66,6 +66,49 @@
- }
-
- /*
-+ * DataFile::SetPrecision()
-+ * Set precision of the specified dataset to width.precision. If '*' specified
-+ * set for all datasets in file.
-+ */
-+void DataFile::SetPrecision(char *dsetName, int widthIn, int precisionIn) {
-+ int precision, dset;
-+ DataSet *Dset = NULL;
-+
-+ if (dsetName==NULL) {
-+ mprintf("Error: SetPrecision must be called with dataset name or '*'.\n");
-+ return;
-+ }
-+ if (widthIn<1) {
-+ mprintf("Error: SetPrecision (%s): Cannot set width < 1.\n",filename);
-+ return;
-+ }
-+ precision=precisionIn;
-+ if (precisionIn<0) precision=0;
-+ // If <dsetName>=='*' specified set precision for all data sets
-+ if (dsetName[0]=='*') {
-+ mprintf(" Setting width.precision for all sets in %s to %i.%i\n",
-+ filename,widthIn,precision);
-+ for (dset=0; dset<Nsets; dset++)
-+ SetList[dset]->SetPrecision(widthIn,precision);
-+
-+ // Otherwise find dataset <dsetName> and set precision
-+ } else {
-+ mprintf(" Setting width.precision for dataset %s to %i.%i\n",
-+ dsetName,widthIn,precision);
-+ for (dset=0; dset<Nsets; dset++) {
-+ if ( strcmp(SetList[dset]->Name(), dsetName)==0 ) {
-+ Dset=SetList[dset];
-+ break;
-+ }
-+ }
-+ if (Dset!=NULL)
-+ Dset->SetPrecision(widthIn,precision);
-+ else
-+ mprintf("Error: Dataset %s not found in datafile %s\n",dsetName,filename);
-+ }
-+}
-+
-+/*
- * DataFile::AddSet()
- * Add given set to this datafile
- */
-diff -urN amber11//AmberTools/src/cpptraj/src/DataFile.h amber11.new//AmberTools/src/cpptraj/src/DataFile.h
---- amber11//AmberTools/src/cpptraj/src/DataFile.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/DataFile.h 2011-05-19 18:35:57.000000000 +0300
-@@ -30,6 +30,7 @@
- void SetXlabel(char*);
- void SetInverted();
- void SetNoXcol();
-+ void SetPrecision(char *, int, int);
- int AddSet(DataSet *);
- int NameIs(char *);
- void DataSetNames();
-diff -urN amber11//AmberTools/src/cpptraj/src/DataSet.cpp amber11.new//AmberTools/src/cpptraj/src/DataSet.cpp
---- amber11//AmberTools/src/cpptraj/src/DataSet.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/DataSet.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -1,6 +1,7 @@
- // DataSet
- #include <cstdlib>
- #include <cstring>
-+#include <cstdio> // sprintf
- #include "DataSet.h"
- #include "CpptrajStdio.h"
-
-@@ -11,12 +12,73 @@
- N=0;
- isDynamic=false;
- current=0;
-+ width = 0;
-+ precision = 0;
-+ format = NULL;
-+ dType = UNKNOWN_DATA;
- }
-
- // DESTRUCTOR
- DataSet::~DataSet() {
- //fprintf(stderr,"DataSet Destructor\n");
- if (name!=NULL) free(name);
-+ if (format!=NULL) free(format);
-+}
-+
-+/*
-+ * DataSet::setFormatString()
-+ * Set up the output format string for each data element based on the given
-+ * dataType and the current width, and precision.
-+ */
-+void DataSet::setFormatString() {
-+ size_t stringWidth = 0;
-+ int wWidth = 0;
-+ int pWidth = 0;
-+
-+ if (format!=NULL) {free(format); format=NULL;}
-+
-+ // Calc num of chars necessary to hold width
-+ wWidth = (width / 10) + 1;
-+
-+ switch (dType) {
-+ case DOUBLE :
-+ // Calc num of chars necessary to hold precision
-+ pWidth = (precision / 10) + 1;
-+ // String fmt: " %w.plf\0"
-+ stringWidth = pWidth + wWidth + 6;
-+ format = (char*) malloc( stringWidth * sizeof(char) );
-+ sprintf(format, " %%%i.%ilf", width, precision);
-+ break;
-+ case STRING :
-+ // String fmt: " %s"
-+ format = (char*) malloc( 4 * sizeof(char) );
-+ strcpy(format, " %s");
-+ break;
-+ case INT :
-+ // String fmt: " %wi"
-+ stringWidth = wWidth + 4;
-+ format = (char*) malloc( stringWidth * sizeof(char) );
-+ sprintf(format, " %%%ii", width);
-+ break;
-+ case UNKNOWN_DATA :
-+ mprintf("Internal Error: setFormatString called with unknown data type.\n");
-+ }
-+
-+ if (format==NULL)
-+ mprintf("Error: setFormatString: Could not allocate memory for string.\n");
-+ // DEBUG
-+ //else
-+ // mprintf("DEBUG: Format string: [%s]\n",format);
-+}
-+
-+/*
-+ * DataSet::SetPrecision()
-+ * Set dataset width and precision and recalc output format string.
-+ */
-+void DataSet::SetPrecision(int widthIn, int precisionIn) {
-+ width=widthIn;
-+ precision=precisionIn;
-+ setFormatString();
- }
-
- /*
-diff -urN amber11//AmberTools/src/cpptraj/src/DataSet.h amber11.new//AmberTools/src/cpptraj/src/DataSet.h
---- amber11//AmberTools/src/cpptraj/src/DataSet.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/DataSet.h 2011-05-19 18:35:57.000000000 +0300
-@@ -36,12 +36,18 @@
- class DataSet {
- protected:
- char *name; // Name of the dataset
-+ dataType dType; // The dataset type
- int N; // Number of data elements
- int current; // The current data element
-+ int width; // The output width of a data element
-+ int precision; // The output precision of a data element (if applicable)
-+ char *format; // Format of output
-+
- bool isDynamic; // True : N is not known, reallocate as N increases
- // False: N is known, allocate for N
- // If not isDynamic, Allocate will reserve space for N data elements
- virtual int Allocate( ) { return 0; }
-+ void setFormatString();
-
- public:
-
-@@ -51,13 +57,16 @@
- virtual int Xmax() { return 0; }
- virtual int isEmpty(int) { return 0; }
- virtual void Add( int, void * ) { return; }
-+ virtual int Get( void *, int ) { return 1; }
- virtual char *Write(char*, int) { return 0; }
- virtual int Width() { return 0; }
- virtual int Sync() { return 0; }
-
-+ void SetPrecision(int,int);
- int Setup(char*,int);
- void Info();
- char *Name() { return name; }
- int CheckSet();
-+ dataType Type() {return dType;}
- };
- #endif
-diff -urN amber11//AmberTools/src/cpptraj/src/Frame.cpp amber11.new//AmberTools/src/cpptraj/src/Frame.cpp
---- amber11//AmberTools/src/cpptraj/src/Frame.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Frame.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -61,6 +61,40 @@
- }
-
- /*
-+ * Frame::ZeroCoords()
-+ * Set all coords to 0.0
-+ */
-+void Frame::ZeroCoords() {
-+ for (int coord=0; coord < N; coord++)
-+ X[coord]=0.0;
-+}
-+
-+/*
-+ * Frame::AddCoord()
-+ * Add the coord values from the input frame to the coord values of
-+ * this frame.
-+ */
-+void Frame::AddCoord(Frame *FrameIn) {
-+ if (FrameIn->N != this->N) {
-+ mprintf("Error: Frame::AddCoord: Attempting to add %i coords to %i coords.\n",
-+ FrameIn->N,this->N);
-+ } else {
-+ for (int coord=0; coord < N; coord++)
-+ this->X[coord] += FrameIn->X[coord];
-+ }
-+}
-+
-+/*
-+ * Frame::Divide()
-+ * Divide all coord values by input. Dont do it if the number is too small.
-+ */
-+void Frame::Divide(double divisor) {
-+ if (divisor < SMALL) return;
-+ for (int coord=0; coord < N; coord++)
-+ X[coord] /= divisor;
-+}
-+
-+/*
- * Frame::Copy()
- * Return a copy of the frame
- */
-@@ -423,21 +457,21 @@
- * Based on useMassIn, calculate geometric center (false) or center of mass
- * (true) of the atoms in each mask.
- */
--double Frame::DIST2(AtomMask *Mask1, AtomMask *Mask2, bool useMassIn, int ifbox,
-+double Frame::DIST2(AtomMask *Mask1, AtomMask *Mask2, bool useMassIn, int boxType,
- double *ucell, double *recip) {
- double a1[3], a2[3];
-
- COM(Mask1, a1, useMassIn);
- COM(Mask2, a2, useMassIn);
-
-- if (ifbox == 0)
-+ if (boxType == 0)
- return DIST2_NoImage(a1, a2);
-- else if (ifbox == 1)
-+ else if (boxType == 1)
- return DIST2_ImageOrtho(a1, a2, this->box);
-- else if (ifbox == 2)
-+ else if (boxType == 2)
- return DIST2_ImageNonOrtho(a1, a2, ucell, recip);
-
-- mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", ifbox);
-+ mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", boxType);
-
- return (-1.0);
- }
-@@ -445,8 +479,11 @@
- /*
- * Frame::DIST2()
- * Return the distance between atoms A1 and A2 with optional imaging.
-+ * 0 = None
-+ * 1 = Orthorhombic
-+ * 2 = Non-orthorhombic
- */
--double Frame::DIST2(int A1, int A2, int ifbox, double *ucell, double *recip) {
-+double Frame::DIST2(int A1, int A2, int boxType, double *ucell, double *recip) {
- int atom3;
- double a1[3], a2[3];
-
-@@ -459,14 +496,14 @@
- a2[1] = X[atom3+1];
- a2[2] = X[atom3+2];
-
-- if (ifbox == 0)
-+ if (boxType == 0)
- return DIST2_NoImage(a1, a2);
-- else if (ifbox == 1)
-+ else if (boxType == 1)
- return DIST2_ImageOrtho(a1, a2, this->box);
-- else if (ifbox == 2)
-+ else if (boxType == 2)
- return DIST2_ImageNonOrtho(a1, a2, ucell, recip);
-
-- mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", ifbox);
-+ mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", boxType);
-
- return (-1.0);
- }
-diff -urN amber11//AmberTools/src/cpptraj/src/Frame.h amber11.new//AmberTools/src/cpptraj/src/Frame.h
---- amber11//AmberTools/src/cpptraj/src/Frame.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Frame.h 2011-05-19 18:35:57.000000000 +0300
-@@ -22,6 +22,9 @@
- Frame(AtomMask *, double *);
- virtual ~Frame(); // Destructor is virtual since this class can be inherited
-
-+ void ZeroCoords();
-+ void AddCoord(Frame*);
-+ void Divide(double);
- void printAtomCoord(int);
- void GetCoord(double *, int);
- void SetCoord(int, double *);
-diff -urN amber11//AmberTools/src/cpptraj/src/FrameList.cpp amber11.new//AmberTools/src/cpptraj/src/FrameList.cpp
---- amber11//AmberTools/src/cpptraj/src/FrameList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/FrameList.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -13,7 +13,8 @@
- delete frameList[i];
- }
-
--/* FrameList::Add()
-+/*
-+ * FrameList::Add()
- * Add given Frame to the FrameList. Store trajectory name that this frame
- * came from in frameNames. Store the associated parm in FrameParm.
- */
-@@ -29,6 +30,18 @@
- FrameParm.Add(P);
- Nframe++;
- return 0;
-+}
-+
-+/*
-+ * FrameList::Add()
-+ * Add given Frame to the FrameList. Store the associated parm in FrameParm.
-+ */
-+int FrameList::Add(Frame *F, AmberParm *P) {
-+ if (F==NULL || P==NULL) return 1;
-+ frameList.push_back(F);
-+ FrameParm.Add(P);
-+ Nframe++;
-+ return 0;
- }
-
- /*
-diff -urN amber11//AmberTools/src/cpptraj/src/FrameList.h amber11.new//AmberTools/src/cpptraj/src/FrameList.h
---- amber11//AmberTools/src/cpptraj/src/FrameList.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/FrameList.h 2011-05-19 18:35:57.000000000 +0300
-@@ -18,6 +18,7 @@
- ~FrameList();
-
- int Add(Frame *, char *, AmberParm *,int);
-+ int Add(Frame *, AmberParm *);
- AmberParm *GetFrameParm(int);
- int GetFrameIndex(char *);
- Frame *GetFrame(int idx);
-diff -urN amber11//AmberTools/src/cpptraj/src/intDataSet.cpp amber11.new//AmberTools/src/cpptraj/src/intDataSet.cpp
---- amber11//AmberTools/src/cpptraj/src/intDataSet.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/intDataSet.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -5,6 +5,14 @@
- #include "PtrajMpi.h"
- #include "CpptrajStdio.h"
- using namespace std;
-+
-+// CONSTRUCTOR
-+intDataSet::intDataSet() {
-+ width=12;
-+ dType=INT;
-+ setFormatString();
-+}
-+
- /*
- * intDataSet::Xmax(()
- * Return the maximum X value added to this set. By convention this is
-@@ -34,6 +42,21 @@
- }
-
- /*
-+ * intDataSet::Get()
-+ * Get data at frame, put into vOut. Return 1 if no data at frame.
-+ */
-+int intDataSet::Get(void *vOut, int frame) {
-+ int *value;
-+
-+ if (vOut==NULL) return 1;
-+ value = (int*) vOut;
-+ it=Data.find( frame );
-+ if (it == Data.end()) return 1;
-+ *value = (*it).second;
-+ return 0;
-+}
-+
-+/*
- * intDataSet::isEmpty()
- */
- int intDataSet::isEmpty(int frame) {
-@@ -52,17 +75,17 @@
- it = Data.find( frame );
- if (it == Data.end())
- //sprintf(buffer," %12s","NoData");
-- sprintf(buffer," %12i", 0);
-+ sprintf(buffer, format, 0);
- else
-- sprintf(buffer," %12i",(*it).second);
-- return (buffer + 13);
-+ sprintf(buffer, format, (*it).second);
-+ return (buffer + width + 1);
- }
-
- /*
- * intDataSet::Width()
- */
- int intDataSet::Width() {
-- return 13;
-+ return (width + 1);
- }
-
- /*
-diff -urN amber11//AmberTools/src/cpptraj/src/intDataSet.h amber11.new//AmberTools/src/cpptraj/src/intDataSet.h
---- amber11//AmberTools/src/cpptraj/src/intDataSet.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/intDataSet.h 2011-05-19 18:35:57.000000000 +0300
-@@ -11,9 +11,12 @@
- std::map<int,int> Data;
- std::map<int,int>::iterator it;
- public:
-+ intDataSet();
-+
- int Xmax();
- int isEmpty(int);
- void Add( int, void * );
-+ int Get(void *, int);
- char *Write(char *, int);
- int Width();
- int Sync();
-diff -urN amber11//AmberTools/src/cpptraj/src/main.cpp amber11.new//AmberTools/src/cpptraj/src/main.cpp
---- amber11//AmberTools/src/cpptraj/src/main.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/main.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -6,7 +6,7 @@
- #include "PtrajMpi.h"
- #include "CpptrajStdio.h"
- #ifndef CPPTRAJ_VERSION_STRING
--#define CPPTRAJ_VERSION_STRING "V1.0.5"
-+#define CPPTRAJ_VERSION_STRING "V1.0.8"
- #endif
-
- void Usage(char *programName) {
-diff -urN amber11//AmberTools/src/cpptraj/src/Makefile amber11.new//AmberTools/src/cpptraj/src/Makefile
---- amber11//AmberTools/src/cpptraj/src/Makefile 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Makefile 2011-05-19 18:35:57.000000000 +0300
-@@ -16,7 +16,8 @@
- Action_Radgyr.cpp Conflib.cpp Action_Mask.cpp Action_Closest.cpp \
- NetcdfRoutines.cpp AmberRestartNC.cpp CpptrajStdio.cpp Mol2File.cpp \
- Mol2FileRoutines.cpp Action_NAstruct.cpp DistRoutines.cpp AxisType.cpp \
-- TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp
-+ TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp \
-+ Action_Rms2d.cpp
-
- OBJECTS=main.o AmberNetcdf.o AmberParm.o AmberTraj.o TrajFile.o \
- Frame.o PtrajState.o ArgList.o ptrajmask.o Action_Distance.o \
-@@ -32,7 +33,8 @@
- Action_Radgyr.o Conflib.o Action_Mask.o Action_Closest.o \
- NetcdfRoutines.o AmberRestartNC.o CpptrajStdio.o Mol2File.o \
- Mol2FileRoutines.o Action_NAstruct.o DistRoutines.o AxisType.o \
-- TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o
-+ TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o \
-+ Action_Rms2d.o
-
- HEADERS=AmberNetcdf.h AmberParm.h AmberTraj.h TrajFile.h \
- Frame.h PtrajState.h ArgList.h ptrajmask.h Action.h Action_Distance.h \
-@@ -48,7 +50,8 @@
- Action_Radgyr.h Conflib.h Action_Mask.h Action_Closest.h \
- NetcdfRoutines.h AmberRestartNC.h CpptrajStdio.h Mol2File.h \
- Mol2FileRoutines.h Action_NAstruct.h DistRoutines.h AxisType.h \
-- TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h
-+ TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h \
-+ Action_Rms2d.h
-
- all: cpptraj$(SFX)
-
-diff -urN amber11//AmberTools/src/cpptraj/src/Makefile_at amber11.new//AmberTools/src/cpptraj/src/Makefile_at
---- amber11//AmberTools/src/cpptraj/src/Makefile_at 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Makefile_at 2011-05-19 18:35:57.000000000 +0300
-@@ -16,7 +16,8 @@
- Action_Radgyr.cpp Conflib.cpp Action_Mask.cpp Action_Closest.cpp \
- NetcdfRoutines.cpp AmberRestartNC.cpp CpptrajStdio.cpp Mol2File.cpp \
- Mol2FileRoutines.cpp Action_NAstruct.cpp DistRoutines.cpp AxisType.cpp \
-- TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp
-+ TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp \
-+ Action_Rms2d.cpp
-
- OBJECTS=main.o AmberNetcdf.o AmberParm.o AmberTraj.o TrajFile.o \
- Frame.o PtrajState.o ArgList.o ptrajmask.o Action_Distance.o \
-@@ -32,7 +33,8 @@
- Action_Radgyr.o Conflib.o Action_Mask.o Action_Closest.o \
- NetcdfRoutines.o AmberRestartNC.o CpptrajStdio.o Mol2File.o \
- Mol2FileRoutines.o Action_NAstruct.o DistRoutines.o AxisType.o \
-- TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o
-+ TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o \
-+ Action_Rms2d.o
-
- HEADERS=AmberNetcdf.h AmberParm.h AmberTraj.h TrajFile.h \
- Frame.h PtrajState.h ArgList.h ptrajmask.h Action.h Action_Distance.h \
-@@ -48,7 +50,8 @@
- Action_Radgyr.h Conflib.h Action_Mask.h Action_Closest.h \
- NetcdfRoutines.h AmberRestartNC.h CpptrajStdio.h Mol2File.h \
- Mol2FileRoutines.h Action_NAstruct.h DistRoutines.h AxisType.h \
-- TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h
-+ TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h \
-+ Action_Rms2d.h
-
- all: cpptraj$(SFX)
-
-diff -urN amber11//AmberTools/src/cpptraj/src/mapDataSet.cpp amber11.new//AmberTools/src/cpptraj/src/mapDataSet.cpp
---- amber11//AmberTools/src/cpptraj/src/mapDataSet.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/mapDataSet.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -6,6 +6,14 @@
- #include "CpptrajStdio.h"
- using namespace std;
-
-+// CONSTRUCTOR
-+mapDataSet::mapDataSet() {
-+ width = 12;
-+ precision = 4;
-+ dType=DOUBLE;
-+ setFormatString();
-+}
-+
- /*
- * mapDataSet::Xmax(()
- * Return the maximum X value added to this set. By convention this is
-@@ -35,6 +43,23 @@
- }
-
- /*
-+ * mapDataSet::Get()
-+ * Get data at frame, put into vOut. Return 1 if no data at frame.
-+ */
-+int mapDataSet::Get(void *vOut, int frame) {
-+ double *value;
-+
-+ if (vOut==NULL) return 1;
-+ //mprintf("DEBUG: Attempting to get double frame %i\n",frame);
-+ value = (double*) vOut;
-+ it=Data.find( frame );
-+ if (it == Data.end()) return 1;
-+ //mprintf("DEBUG: Double frame %i is %lf\n",frame,(*it).second);
-+ *value = (*it).second;
-+ return 0;
-+}
-+
-+/*
- * mapDataSet::isEmpty()
- */
- int mapDataSet::isEmpty(int frame) {
-@@ -53,17 +78,17 @@
- it = Data.find( frame );
- if (it == Data.end())
- //sprintf(buffer," %12s","NoData");
-- sprintf(buffer," %12.4lf", 0.0);
-+ sprintf(buffer, format, 0.0);
- else
-- sprintf(buffer," %12.4lf",(*it).second);
-- return (buffer + 13);
-+ sprintf(buffer, format,(*it).second);
-+ return (buffer + width + 1);
- }
-
- /*
- * mapDataSet::Width()
- */
- int mapDataSet::Width() {
-- return 13;
-+ return (width + 1);
- }
-
- /*
-diff -urN amber11//AmberTools/src/cpptraj/src/mapDataSet.h amber11.new//AmberTools/src/cpptraj/src/mapDataSet.h
---- amber11//AmberTools/src/cpptraj/src/mapDataSet.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/mapDataSet.h 2011-05-19 18:35:57.000000000 +0300
-@@ -7,14 +7,16 @@
- */
- #include <map>
- #include "DataSet.h"
--//using namespace std;
- class mapDataSet : public DataSet {
- std::map<int,double> Data;
- std::map<int,double>::iterator it;
- public:
-+ mapDataSet();
-+
- int Xmax();
- int isEmpty(int);
- void Add( int, void * );
-+ int Get(void *, int);
- char *Write(char *, int);
- int Width();
- int Sync();
-diff -urN amber11//AmberTools/src/cpptraj/src/Mol2File.cpp amber11.new//AmberTools/src/cpptraj/src/Mol2File.cpp
---- amber11//AmberTools/src/cpptraj/src/Mol2File.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/Mol2File.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -239,6 +239,8 @@
- if (writeMode==2)
- File->IO->Close();
-
-+ currentFrame++;
-+
- return 0;
- }
-
-diff -urN amber11//AmberTools/src/cpptraj/src/PDBfile.cpp amber11.new//AmberTools/src/cpptraj/src/PDBfile.cpp
---- amber11//AmberTools/src/cpptraj/src/PDBfile.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/PDBfile.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -207,6 +207,9 @@
- } else if (writeMode==1) {
- File->IO->Printf("ENDMDL\n");
- }
-+
-+ currentFrame++;
-+
- return 0;
- }
-
-diff -urN amber11//AmberTools/src/cpptraj/src/PtrajActionList.cpp amber11.new//AmberTools/src/cpptraj/src/PtrajActionList.cpp
---- amber11//AmberTools/src/cpptraj/src/PtrajActionList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/PtrajActionList.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -20,6 +20,7 @@
- #include "Action_NAstruct.h"
- #include "Action_Pucker.h"
- #include "Action_Outtraj.h"
-+#include "Action_Rms2d.h"
-
- // Constructor
- PtrajActionList::PtrajActionList() {
-@@ -56,6 +57,7 @@
-
- // Decide what action this is based on the command.
- if (A->CommandIs("distance")) {Act=new Distance;}
-+ else if (A->CommandIs("rms2d")) {Act=new Rms2d; }
- else if (A->CommandIs("rmsd",3)) {Act=new Rmsd; }
- else if (A->CommandIs("dihedral")) {Act=new Dihedral;}
- else if (A->CommandIs("atommap")) {Act=new AtomMap; }
-@@ -166,6 +168,8 @@
- err = ActionList[act]->DoAction(FrameAddress, frameIn);
- if (err==1) {
- // Treat actions that fail as if they could not be set up
-+ mprintf("Warning: Action [%s] failed, frame %i.\n",ActionList[act]->CmdLine(),
-+ frameIn);
- ActionList[act]->noSetup=1;
- } else if (err==2) {
- // Return value of 2 requests return to original frame
-diff -urN amber11//AmberTools/src/cpptraj/src/PtrajFile.cpp amber11.new//AmberTools/src/cpptraj/src/PtrajFile.cpp
---- amber11//AmberTools/src/cpptraj/src/PtrajFile.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/PtrajFile.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -113,6 +113,7 @@
- void PtrajFile::CloseFile() {
- if (isOpen) {
- IO->Close();
-+ if (debug>0) rprintf("Closed %s.\n",filename);
- isOpen=0;
- }
- }
-diff -urN amber11//AmberTools/src/cpptraj/src/PtrajMpi.c amber11.new//AmberTools/src/cpptraj/src/PtrajMpi.c
---- amber11//AmberTools/src/cpptraj/src/PtrajMpi.c 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/PtrajMpi.c 2011-05-19 18:35:57.000000000 +0300
-@@ -460,7 +460,10 @@
- }
-
- err = MPI_Allreduce(input, Return, count, currentType, currentOp, MPI_COMM_WORLD);
-- if (err!=MPI_SUCCESS) printMPIerr(err, "Performing allreduce for %i elements\n",count);
-+ if (err!=MPI_SUCCESS) {
-+ printMPIerr(err, "Performing allreduce.\n");
-+ rprintf("Error: allreduce failed for %i elements.\n",count);
-+ }
-
- if (parallel_check_error(err)!=0) return 1;
- return 0;
-diff -urN amber11//AmberTools/src/cpptraj/src/PtrajState.cpp amber11.new//AmberTools/src/cpptraj/src/PtrajState.cpp
---- amber11//AmberTools/src/cpptraj/src/PtrajState.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/PtrajState.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -7,7 +7,8 @@
- #include "CpptrajStdio.h"
-
- // Constructor
--PtrajState::PtrajState() {
-+PtrajState::PtrajState() {
-+ TotalErrors=0;
- debug=0;
- showProgress=1;
- }
-@@ -291,6 +292,7 @@
- char *df_cmd = NULL;
- char *name1 = NULL;
- char *name2 = NULL;
-+ int width,precision;
- DataFile *df;
-
- if (DF_Args.empty()) return;
-@@ -349,6 +351,19 @@
- }
- mprintf(" Not printing x column for datafile %s\n",name1);
- df->SetNoXcol();
-+
-+ // datafile precision
-+ // Usage: datafile precision <filename> <dataset> [<width>] [<precision>]
-+ // If width/precision not specified default to 12.4
-+ } else if ( strcmp(df_cmd,"precision")==0 ) {
-+ if (df==NULL) {
-+ mprintf("Error: datafile precision: DataFile %s does not exist.\n",name1);
-+ continue;
-+ }
-+ name2 = A->getNextString();
-+ width = A->getNextInteger(12);
-+ precision = A->getNextInteger(4);
-+ df->SetPrecision(name2,width,precision);
- }
-
- } // END loop over datafile args
-@@ -374,7 +389,7 @@
-
- // ========== S E T U P P H A S E ==========
- // Calculate frame division among trajectories
-- maxFrames=trajFileList.SetupFrames();
-+ maxFrames=trajFileList.SetupFrames(worldrank,worldsize);
-
- // Parameter file information
- parmFileList.Print();
-diff -urN amber11//AmberTools/src/cpptraj/src/PtrajState.h amber11.new//AmberTools/src/cpptraj/src/PtrajState.h
---- amber11//AmberTools/src/cpptraj/src/PtrajState.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/PtrajState.h 2011-05-19 18:35:57.000000000 +0300
-@@ -20,6 +20,7 @@
- DataFileList DFL; // List of datafiles that data sets will be written to
- ArgList *A; // Current argument list
- std::list<ArgList*> DF_Args; // List of commands pertaining to datafile creation etc
-+ int TotalErrors; // Sum of all returned error statuses
- int debug;
-
- void SetGlobalDebug(int); // Set debug level for all components
-diff -urN amber11//AmberTools/src/cpptraj/src/ReferenceList.cpp amber11.new//AmberTools/src/cpptraj/src/ReferenceList.cpp
---- amber11//AmberTools/src/cpptraj/src/ReferenceList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/ReferenceList.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -20,11 +20,15 @@
- */
- int ReferenceList::Add(ArgList *A, ParmFileList *parmFileList, int worldsize) {
- TrajFile *T;
-- int startArg;
-+ int startArg,stopArg,offsetArg;
-+ bool average = false;
-
- // Set up common arguments from arglist
- if (this->ProcessArgList(A,parmFileList)) return 1;
-
-+ // Check if we want to obtain the average structure
-+ average = A->hasKey("average");
-+
- // Set up basic file to determine type and format
- T = this->SetupTrajectory(trajfilename, fileAccess, UNKNOWN_FORMAT, UNKNOWN_TYPE);
-
-@@ -45,10 +49,18 @@
- // Get user-specified start arg
- // NOTE: For compatibility with ptraj start from 1
- startArg=A->getNextInteger(1);
-- T->SetArgs(startArg,startArg,1);
-+ stopArg=startArg;
-+ offsetArg=1;
-+ // Get user-specified stop and offset only if getting avg structure
-+ if (average) {
-+ stopArg=A->getNextInteger(-1);
-+ offsetArg=A->getNextInteger(1);
-+ }
-+ T->SetArgs(startArg,stopArg,offsetArg);
-
- // Add to trajectory file list
-- this->push_back(T);
-+ this->push_back(T);
-+ Average.push_back(average);
-
- return 0;
- }
-@@ -60,9 +72,11 @@
- * place that frame in refFrames.
- */
- int ReferenceList::SetupRefFrames(FrameList *refFrames) {
-- int trajFrames;
-- Frame *F;
-+ int trajFrames, global_set;
-+ double Nframes;
-+ Frame *F, *AvgFrame;
- int skipValue;
-+ int refTrajNum = 0;
-
- mprintf("\nREFERENCE COORDS:\n");
- if (this->empty()) {
-@@ -72,7 +86,13 @@
-
- for (it = this->begin(); it != this->end(); it++) {
- // Setup the reference traj for reading. Should only be 1 frame.
-- trajFrames=(*it)->setupFrameInfo(-1);
-+ // NOTE: For MPI, calling setupFrameInfo with worldrank 0, worldsize 1 for
-+ // all ranks. This is to ensure each thread has a copy of the ref
-+ // struct.
-+ // Calling setupFrameInfo with -1 to ensure the Parm frame count is
-+ // not updated.
-+
-+ trajFrames=(*it)->setupFrameInfo(-1,0,1);
- if ((*it)->total_read_frames<1) {
- rprintf("Error: No frames could be read for reference %s, skipping\n",
- (*it)->trajfilename);
-@@ -89,12 +109,34 @@
- skipValue=(*it)->skip;
- (*it)->skip=0;
- }
-- (*it)->Begin(&trajFrames, 0);
-- // Get and copy the 1 frame from Traj, then close
-- // NOTE: What happens when not seekable?
-+ // Start trajectory read
-+ global_set=0;
-+ (*it)->Begin(&global_set, 0);
- (*it)->PrintInfo(1);
-- (*it)->NextFrame(&trajFrames);
-- F=(*it)->F->Copy();
-+ // If averaging requested, loop over specified frames and avg coords.
-+ if (Average[refTrajNum++]) {
-+ mprintf(" Averaging over %i frames.\n",trajFrames);
-+ AvgFrame = new Frame((*it)->P->natom, (*it)->P->mass);
-+ AvgFrame->ZeroCoords();
-+ global_set = 0;
-+ Nframes = 0.0;
-+ while ( (*it)->NextFrame(&global_set) ) {
-+ AvgFrame->AddCoord( (*it)->F );
-+ Nframes++;
-+ }
-+ if (Nframes < 1.0) {
-+ mprintf("Error: reference average: # frames read is less than 1.\n");
-+ F=NULL;
-+ } else {
-+ AvgFrame->Divide( Nframes );
-+ F=AvgFrame->Copy();
-+ }
-+ delete AvgFrame;
-+ // If no averaging, get and copy the 1 frame from Traj, then close
-+ } else {
-+ (*it)->NextFrame(&trajFrames);
-+ F=(*it)->F->Copy();
-+ }
- // DEBUG
- //fprintf(stdout,"DEBUG: Ref Coord Atom 0\n");
- //F->printAtomCoord(0);
-diff -urN amber11//AmberTools/src/cpptraj/src/ReferenceList.h amber11.new//AmberTools/src/cpptraj/src/ReferenceList.h
---- amber11//AmberTools/src/cpptraj/src/ReferenceList.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/ReferenceList.h 2011-05-19 18:35:57.000000000 +0300
-@@ -5,7 +5,7 @@
- #include "FrameList.h"
-
- class ReferenceList : public CoordFileList {
--
-+ std::vector<bool> Average;
- public:
-
- ReferenceList();
-diff -urN amber11//AmberTools/src/cpptraj/src/RemdTraj.cpp amber11.new//AmberTools/src/cpptraj/src/RemdTraj.cpp
---- amber11//AmberTools/src/cpptraj/src/RemdTraj.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/RemdTraj.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -88,7 +88,7 @@
- // NOTE: Should check that this is the case for ALL frames.
- stop = T->Frames;
- Frames = T->Frames;
-- isBox = T->isBox;
-+ BoxType = T->BoxType;
- trajfilename = T->File->basefilename;
- // Add it to the list
- REMDtraj.push_back(T);
-@@ -190,12 +190,12 @@
- return 1;
- }
- // Check that #Frames and box info matches
-- if ( Frames!=T->Frames || isBox!=T->isBox ) {
-+ if ( Frames!=T->Frames || BoxType!=T->BoxType ) {
- mprintf(
-- " ERROR: REMDTRAJ: #Frames (%i) or box info (%i) in replica does not match\n",
-- T->Frames, T->isBox);
-- mprintf(" values in lowest replica (Frames=%i, box=%i)\n",
-- Frames,isBox);
-+ " ERROR: REMDTRAJ: #Frames (%i) or box type (%i) in replica does not match\n",
-+ T->Frames, T->BoxType);
-+ mprintf(" values in lowest replica (Frames=%i, boxtype=%i)\n",
-+ Frames,BoxType);
- delete T;
- free(repFilename);
- free(Prefix);
-diff -urN amber11//AmberTools/src/cpptraj/src/stringDataSet.cpp amber11.new//AmberTools/src/cpptraj/src/stringDataSet.cpp
---- amber11//AmberTools/src/cpptraj/src/stringDataSet.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/stringDataSet.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -6,6 +6,13 @@
- #include "PtrajMpi.h"
- #include "CpptrajStdio.h"
- using namespace std;
-+
-+// CONSTRUCTOR
-+stringDataSet::stringDataSet() {
-+ dType=STRING;
-+ setFormatString();
-+}
-+
- /*
- * stringDataSet::Xmax(()
- * Return the maximum X value added to this set. By convention this is
-@@ -54,10 +61,10 @@
-
- it = Data.find( frame );
- if (it == Data.end()) {
-- sprintf(buffer," %s", "NoData");
-+ sprintf(buffer, format, "NoData");
- return (buffer + 7);
- } else
-- sprintf(buffer," %s",(*it).second.c_str());
-+ sprintf(buffer, format, (*it).second.c_str());
-
- return (buffer + (*it).second.size() + 1);
- }
-diff -urN amber11//AmberTools/src/cpptraj/src/stringDataSet.h amber11.new//AmberTools/src/cpptraj/src/stringDataSet.h
---- amber11//AmberTools/src/cpptraj/src/stringDataSet.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/stringDataSet.h 2011-05-19 18:35:57.000000000 +0300
-@@ -12,6 +12,8 @@
- std::map<int,std::string> Data;
- std::map<int,std::string>::iterator it;
- public:
-+ stringDataSet();
-+
- int Xmax();
- int isEmpty(int);
- void Add( int, void * );
-diff -urN amber11//AmberTools/src/cpptraj/src/TrajFile.cpp amber11.new//AmberTools/src/cpptraj/src/TrajFile.cpp
---- amber11//AmberTools/src/cpptraj/src/TrajFile.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/TrajFile.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -2,7 +2,6 @@
- #include <cstdlib>
- #include <cstring>
- #include "TrajFile.h"
--#include "PtrajMpi.h" // worldrank and worldsize needed to calc frame division
- #include "CpptrajStdio.h"
-
- // CONSTRUCTOR
-@@ -18,7 +17,7 @@
- start=0;
- stop=-1;
- offset=1;
-- isBox=0;
-+ BoxType=0;
- title=NULL;
- P=NULL;
- frameskip=0;
-@@ -45,12 +44,17 @@
- void TrajFile::SetTitle(char *titleIn) {
- size_t titleSize;
-
-+ //mprintf("DEBUG: Attempting to set title for %s: [%s]\n",trajfilename,titleIn);
- if (titleIn==NULL) return;
- titleSize = strlen(titleIn);
-- if (titleSize==0) return;
-+ //mprintf(" Title size is %i\n",titleSize);
-+ if (titleSize==0) {
-+ mprintf("Warning: TrajFile::SetTitle(): Title for %s is 0 length.\n",trajfilename);
-+ return;
-+ }
- this->title = (char*) malloc( (titleSize+1) * sizeof(char));
- if (this->title==NULL) {
-- mprintf("Error: TrajFile::SetTitle(): Could not allocate memory for title.\n");
-+ mprintf("Error: SetTitle: Could not allocate memory for title of %s.\n",trajfilename);
- return;
- }
- strcpy(this->title, titleIn);
-@@ -59,6 +63,30 @@
- }
-
- /*
-+ * TrajFile::CheckBoxType()
-+ * Set the trajectory box type (ortho/nonortho) based on box angles.
-+ * Check the current box type against the associated parmfile box type.
-+ * Print a warning if they are different.
-+ */
-+void TrajFile::CheckBoxType(double *box) {
-+ // Determine orthogonal / non-orthogonal from angles
-+ if (box[3]==0.0 || box[4]==0.0 || box[5]==0.0)
-+ BoxType=0;
-+ else if (box[3]==90.0 && box[4]==90.0 && box[5]==90.0)
-+ BoxType=1;
-+ else
-+ BoxType=2;
-+ if (P->BoxType != BoxType) {
-+ mprintf("Warning: %s contains box info of type %i (beta %lf)\n",trajfilename,
-+ BoxType,box[4]);
-+ mprintf(" but associated parmfile %s has box type %i (beta %lf)\n",P->parmName,
-+ P->BoxType,P->Box[4]);
-+ //mprintf(" Box information from trajectory will be used.\n");
-+ }
-+ if (debug>0) mprintf(" %s: Box type is %i (beta=%lf)\n",trajfilename,BoxType,box[4]);
-+}
-+
-+/*
- * TrajFile::PrintInfo()
- * Print general trajectory information. Call TrajFile->Info for specific information.
- */
-@@ -68,7 +96,7 @@
-
- mprintf(", Parm %i",P->pindex);
-
-- if (isBox) mprintf(" (with box info)");
-+ if (BoxType>0) mprintf(" (with box info)");
-
- if (showExtended==0) {
- mprintf("\n");
-@@ -85,7 +113,7 @@
- mprintf(": Writing %i frames", P->parmFrames);
- if (File->access==APPEND) mprintf(", appended"); // NOTE: Dangerous if REMD
- }
-- if (debug>0) mprintf(", %i atoms, Box %i, seekable %i",P->natom,isBox,seekable);
-+ if (debug>0) mprintf(", %i atoms, Box %i, seekable %i",P->natom,BoxType,seekable);
- mprintf("\n");
- }
-
-@@ -164,7 +192,7 @@
- * Note that the input frames start counting from 1, output starts counting from 0!
- * If called with maxFrames=-1 dont update the frame in parm file.
- */
--int TrajFile::setupFrameInfo(int maxFrames) {
-+int TrajFile::setupFrameInfo(int maxFrames, int worldrank, int worldsize) {
- int Nframes;
- int ptraj_start_frame, ptraj_end_frame;
- int traj_start_frame, traj_end_frame;
-diff -urN amber11//AmberTools/src/cpptraj/src/TrajFile.h amber11.new//AmberTools/src/cpptraj/src/TrajFile.h
---- amber11//AmberTools/src/cpptraj/src/TrajFile.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/TrajFile.h 2011-05-19 18:35:57.000000000 +0300
-@@ -25,44 +25,44 @@
- int offset; // Number of frames to skip while processing
-
- // --== Inherited by child classes ==--
-- virtual int open() { return 0; } // Open the file, prepare for coord read/write
-- virtual void close() {} // Close the file
-+ virtual int open() { return 0; } // Open the file, prepare for coord read/write
-+ virtual void close() {} // Close the file
-+
-+ void CheckBoxType(double *); // Check that traj boxtype matches parm
-
- public:
- int debug; // Level of debug information to print
- char *trajfilename; // The base trajectory filename
-- // NOTE: I hate that the following are public. Only necessary for REMD processing!!
-+ // NOTE: I hate that the 2 following are public. Only necessary for REMD processing!!
- int Frames; // Total number of frames in trajectory
- int total_read_frames; // Total number of frames that will be read
-- int isBox; // >0 means trajectory has box information
--
-+ int BoxType; // 0: None, 1: Ortho, 2: NonOrtho
- Range *FrameRange; // list of frames to be written out
- int hasTemperature; // 1 means trajectory has temperature information
- PtrajFile *File; // Class that handles basic file IO
- AmberParm *P; // Memory address of the associated parmfile
- Frame *F; // Hold coordinates of the current frame
-- int skip; /* READ: If =1 do not process this input trajectory
-- WRITE: If =1 this traj has been set up for write */
-+ int skip; // READ: If =1 do not process this input trajectory
-+ // WRITE: If =1 this traj has been set up for write
-
- TrajFile(); // Constructor
- virtual ~TrajFile(); // Destructor - virtual since this class is inherited.
-
-- int Start() { return start; }
-+ int Start() { return start; }
-+ int CurrentFrame() { return currentFrame; }
- void SetTitle(char *); // Set trajectory title.
- void PrintInfo(int); // Print trajectory Information
-- int setupFrameInfo(int); // Set actual start/stop based on total #frames and #threads
-- int Begin(int *, int); /* Prepare traj for processing. Set output start value, calcd in
-- * setupFrameInfo. Allocate memory for F.
-- */
-- int Begin(); // Prepare trajectory for output
-- int NextFrame(int*); // Put the next target frame into F.
-- void End(); // Close trajectory and free F memory
-- void progressBar(); // Display trajectory progress to screen
--// void progressBar2(); // Display trajectory progress to screen
--
-- void SetArgs(int,int,int); // Set the stop, start, and offset args from user input
-+ int Begin(int *, int); // Prepare traj for processing. Set output start value, calcd in
-+ // setupFrameInfo. Allocate memory for F.
-+ int Begin(); // Prepare trajectory for output
-+ int NextFrame(int*); // Put the next target frame into F.
-+ void End(); // Close trajectory and free F memory
-+ void progressBar(); // Display trajectory progress to screen
-+// void progressBar2(); // Display trajectory progress to screen
-+ int setupFrameInfo(int,int,int); // Set actual start/stop based on total #frames and #threads
-+ void SetArgs(int,int,int); // Set the stop, start, and offset args from user input
- // --== Inherited by child classes ==--
-- virtual int getFrame(int) { return 1; } // Read the next coord frame into F
-+ virtual int getFrame(int) { return 1; } // Read specified frame into F
- virtual int SetupRead() { return 1; } // Set file up for reading
- virtual int WriteArgs(ArgList*){ return 0; } // (Opt.) Process any args related to writing
- virtual int SetupWrite() { return 1; } // Set file up for writing
-diff -urN amber11//AmberTools/src/cpptraj/src/TrajinList.cpp amber11.new//AmberTools/src/cpptraj/src/TrajinList.cpp
---- amber11//AmberTools/src/cpptraj/src/TrajinList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/TrajinList.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -70,7 +70,7 @@
- * actual start and stop and how many frames total will be processed.
- * Return the number of frames to be processed.
- */
--int TrajinList::SetupFrames() {
-+int TrajinList::SetupFrames(int worldrank, int worldsize) {
- int maxFrames, trajFrames;
-
- mprintf("\nTRAJECTORIES:\n");
-@@ -78,7 +78,7 @@
- maxFrames=0;
-
- for (it = this->begin(); it != this->end(); it++) {
-- trajFrames = (*it)->setupFrameInfo(maxFrames);
-+ trajFrames = (*it)->setupFrameInfo(maxFrames,worldrank,worldsize);
- if (trajFrames==-1) {
- maxFrames=-1;
- }
-diff -urN amber11//AmberTools/src/cpptraj/src/TrajinList.h amber11.new//AmberTools/src/cpptraj/src/TrajinList.h
---- amber11//AmberTools/src/cpptraj/src/TrajinList.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/TrajinList.h 2011-05-19 18:35:57.000000000 +0300
-@@ -13,7 +13,7 @@
- // NOTE: worldsize is passed in as last arg to avoid include of PtrajMpi
- int Add(ArgList *A, ParmFileList *, int);
- // TRAJIN: Set up frames to be processed
-- int SetupFrames();
-+ int SetupFrames(int,int);
- };
- #endif
-
-diff -urN amber11//AmberTools/src/cpptraj/src/TrajoutList.cpp amber11.new//AmberTools/src/cpptraj/src/TrajoutList.cpp
---- amber11//AmberTools/src/cpptraj/src/TrajoutList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11.new//AmberTools/src/cpptraj/src/TrajoutList.cpp 2011-05-19 18:35:57.000000000 +0300
-@@ -20,7 +20,6 @@
- */
- int TrajoutList::Add(ArgList *A, ParmFileList *parmFileList, int worldsize) {
- TrajFile *T;
-- int boxInfo;
- FileFormat writeFormat;
- FileType writeType;
- char *onlyframes;
-@@ -29,7 +28,6 @@
- if (this->ProcessArgList(A,parmFileList)) return 1;
-
- // Init variables
-- boxInfo=0;
- writeFormat=AMBERTRAJ;
- writeType=UNKNOWN_TYPE;
-
-@@ -56,10 +54,6 @@
- if (worldsize>1 && writeFormat!=AMBERRESTART)
- writeType=MPIFILE;
-
-- // Set box info from parm file unless nobox is set.
-- boxInfo=P->ifbox;
-- if (A->hasKey("nobox")) boxInfo=0;
--
- // Set up basic file for given type and format
- // If type is unknown it will be determined from extension or will be standard (default)
- T = this->SetupTrajectory(trajfilename, fileAccess, writeFormat, writeType);
-@@ -90,10 +84,11 @@
- // Set parameter file
- T->P=P;
-
-- // Set box information (only needed for write)
-- T->isBox=boxInfo;
-+ // Set box type from parm file unless "nobox" specified
-+ T->BoxType=P->BoxType;
-+ if (A->hasKey("nobox")) T->BoxType=0;
-
-- // No setup here; Write is set up after first frame read in PtrajState::Run
-+ // No more setup here; Write is set up when first frame written.
- // Add to trajectory file list
- this->push_back(T);
-
-diff -urN amber11//AmberTools/src/leap/src/leap/amber.c amber11.new//AmberTools/src/leap/src/leap/amber.c
---- amber11//AmberTools/src/leap/src/leap/amber.c 2011-03-10 20:12:06.000000000 +0200
-+++ amber11.new//AmberTools/src/leap/src/leap/amber.c 2011-05-19 18:35:57.000000000 +0300
-@@ -36,6 +36,10 @@
- * UNITs and PARMSETs.
- */
-
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-+
- #include "basics.h"
- #include "vector.h"
- #include "classes.h"
-@@ -240,23 +244,47 @@
- *
- * Read the proper torsion parameter terms.
- */
-+
-+/* Arunima Singh added reading in of scee and scnb fields for proper torsions 20110420 */
- static void
- zAmberReadParmSetPropers( PARMSET psParms, FILE *fIn )
- {
- STRING sLine;
--int iRead, iN;
-+int iRead, iN, iRead2, iRead3;
- STRING saStr[10];
--double dDivisions, dKp, dP0, dN;
-+double dDivisions, dKp, dP0, dN, dScee, dScnb;
-+char *cScee, *cScnb;
-
- memset(saStr, 0, sizeof(saStr)); /* for Purify */
- while (1) {
- FGETS( sLine, fIn );
- NODASHES(sLine);
-- iRead = sscanf( sLine, "%s %s %s %s %lf %lf %lf %lf",
-+
-+ iRead = sscanf( sLine, "%s %s %s %s %lf %lf %lf %lf ",
- saStr[0], saStr[1], saStr[2], saStr[3],
- &dDivisions, &dKp, &dP0, &dN );
-- if ( iRead <= 0 )
-+
-+ cScee = strstr(sLine, "SCEE");
-+ if(cScee!=NULL) {
-+ iRead2 = sscanf( cScee, "SCEE=%lf", &dScee);
-+ iRead++;
-+ }
-+
-+ cScnb = strstr(sLine, "SCNB");
-+ if(cScnb!=NULL) {
-+ iRead3 = sscanf( cScnb, "SCNB=%lf", &dScnb);
-+ iRead++;
-+ }
-+
-+ if ( iRead <= 0 )
- break;
-+
-+ if ( iRead == 8 ) /*Arunima Singh*/
-+ {
-+ dScee = 1.2;
-+ dScnb = 2.0;
-+ }
-+
- MESSAGE(( "Read: %s\n", sLine ));
-
- if ( sLine[0] == ' ' && sLine[1] == ' ') {
-@@ -277,14 +305,37 @@
- zAmberConvertWildCard( saStr[3] );
- iParmSetAddProperTerm( psParms,
- saStr[0], saStr[1], saStr[2], saStr[3],
-- abs(iN), dKp, dP0*DEGTORAD, "" );
-+ abs(iN), dKp, dP0*DEGTORAD, dScee, dScnb, "" );
-+
-+
- while( iN < 0 ) {
- FGETS( sLine, fIn );
- NODASHES(sLine);
- MESSAGE(( "Read extra term: %s\n", sLine ));
-- iRead = sscanf( &sLine[11], "%lf %lf %lf %lf",
-+ iRead = sscanf( &sLine[11], "%lf %lf %lf %lf ",
- &dDivisions, &dKp, &dP0, &dN );
-- if ( iRead<=0 ) break;
-+
-+ cScee = strstr(sLine, "SCEE");
-+ if(cScee!=NULL) {
-+ iRead2 = sscanf( cScee, "SCEE=%lf", &dScee);
-+ iRead++;
-+ }
-+
-+ cScnb = strstr(sLine, "SCNB");
-+ if(cScnb!=NULL) {
-+ iRead3 = sscanf( cScnb, "SCNB=%lf", &dScnb);
-+ iRead++;
-+ }
-+
-+
-+ if ( iRead == 4 ) /*Arunima Singh*/
-+ {
-+ dScee = 1.2;
-+ dScnb = 2.0;
-+ }
-+
-+
-+ if ( iRead<=0 ) break;
-
- if ( dDivisions == 0.0 )
- dDivisions = 1.0;
-@@ -292,7 +343,7 @@
- iN = (int)floor(dN+0.5);
- iParmSetAddProperTerm( psParms,
- saStr[0], saStr[1], saStr[2], saStr[3],
-- abs(iN), dKp, dP0*DEGTORAD, "" );
-+ abs(iN), dKp, dP0*DEGTORAD, dScee, dScnb, "" );
- }
- if ( iRead <= 0 )
- break;
-@@ -311,7 +362,7 @@
- STRING sLine;
- int iRead, iN;
- STRING saStr[10];
--double dKp, dP0, dN;
-+double dKp, dP0, dN, dScee, dScnb;
- BOOL bPrintLine;
-
- memset(saStr, 0, sizeof(saStr)); /* for Purify */
-@@ -335,6 +386,8 @@
- zAmberConvertWildCard( saStr[2] );
- zAmberConvertWildCard( saStr[3] );
- iN = (int)dN;
-+ dScee = 0.0;
-+ dScnb = 0.0;
-
- /*
- * check everything in case a format or other user error
-@@ -362,7 +415,7 @@
-
- iParmSetAddImproperTerm( psParms,
- saStr[0], saStr[1], saStr[2], saStr[3],
-- iN, dKp, dP0*DEGTORAD, "" );
-+ iN, dKp, dP0*DEGTORAD, dScee, dScnb, "" );
- }
- if ( iRead > 0 )
- VP0(( "WARNING: incomplete Improper Torsion line:\n%s", sLine ));
-diff -urN amber11//AmberTools/src/leap/src/leap/build.c amber11.new//AmberTools/src/leap/src/leap/build.c
---- amber11//AmberTools/src/leap/src/leap/build.c 2011-03-10 20:12:06.000000000 +0200
-+++ amber11.new//AmberTools/src/leap/src/leap/build.c 2011-05-19 18:35:57.000000000 +0300
-@@ -42,8 +42,9 @@
- *
- */
-
--
--
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-
- #include "basics.h"
-
-@@ -1567,7 +1568,7 @@
- LOOP lAtoms, lTemp;
- ATOM aAtom, aAtom1, aAtom2, aAtom3, aAtom4;
- BOOL bM1, bM2, bM3, bM4, bOneMinimizedAtom;
--double dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0;
-+double dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dScee, dScnb;
- STRING sAtom1, sAtom2, sAtom3, sAtom4, sDesc;
- PARMSET psTemp;
- TORSION tTorsion;
-@@ -1757,7 +1758,7 @@
- ParmSetTORSIONTerm( tTorsion, i,
- &iIndex,
- sAtom1, sAtom2, sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
- if ( !bMinimizerAddTorsion( mStrain,
- aAtom1, aAtom2, aAtom3, aAtom4,
- (double)iN, dKp, dP0 )) {
-diff -urN amber11//AmberTools/src/leap/src/leap/model.c amber11.new//AmberTools/src/leap/src/leap/model.c
---- amber11//AmberTools/src/leap/src/leap/model.c 2011-04-14 15:30:17.000000000 +0300
-+++ amber11.new//AmberTools/src/leap/src/leap/model.c 2011-05-19 18:35:57.000000000 +0300
-@@ -39,7 +39,9 @@
- * are determined from atom types.
- */
-
--
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-
-
- #include "basics.h"
-@@ -781,16 +783,6 @@
- maPAtom++;
- }
- }
-- if ( iAtomCoordination(aX) !=
-- 1 + maPAtom - &(mtTorsions.maaXBonds[0]) ) {
-- VP0(( "Error: Atom %s has force field coordination %i\n"
-- " but only %i bonded neighbors.\n"
-- " The cause may be an incorrect atom type, and\n"
-- " the effect may be a crash very soon.\n",
-- sContainerFullDescriptor((CONTAINER)aX,s1),
-- iAtomCoordination(aX),
-- 1 + maPAtom - &(mtTorsions.maaXBonds[0]) ));
-- }
- for ( i=iAtomCoordination(aX); i<MAXBONDS; i++ ) {
- maPAtom->aAtom = NULL;
- maPAtom++;
-@@ -824,16 +816,6 @@
- maPAtom++;
- }
- }
-- if ( iAtomCoordination(aY) !=
-- 1 + maPAtom - &(mtTorsions.maaYBonds[0]) ) {
-- VP0(( "Error: Atom %s has force field coordination %i\n"
-- " but only %i bonded neighbors.\n"
-- " The cause may be an incorrect atom type, and\n"
-- " the effect may be a crash very soon.\n",
-- sContainerFullDescriptor((CONTAINER)aY,s1),
-- iAtomCoordination(aY),
-- 1 + maPAtom - &(mtTorsions.maaYBonds[0]) ));
-- }
- for ( i=iAtomCoordination(aY); i<MAXBONDS; i++ ) {
- maPAtom->aAtom = NULL;
- maPAtom++;
-@@ -1205,6 +1187,8 @@
- int iN;
- double dK;
- double dE;
-+ double dSce; /*Arunima Singh*/
-+ double dScn; /*Arunima Singh*/
- } H_PROPERPARMt;
-
- typedef struct {
-@@ -1222,12 +1206,13 @@
-
- /* Keep iHybrid2 <= iHybrid3 */
-
-+/* Arunima Singh 20110413. Added Scee and Scnb AMBER defaults of 1.2 and 2.0 */
- #define TFORCE 20.0
- static H_PROPERPARMt SppaPropers[] = {
--{ HSP3, HSP3, 3, 1.0, 0.0 }, /* Non bond */
--{ HSP2, HSP3, 6, -2.0, 0.0 }, /* Non bond */
--{ HSP2, HSP2, 2, -4.0, 0.0 }, /* Pi bond overlap */
--{ HSP1, HSP1, 1, 0.0, 0.0 } /* Not interesting */
-+{ HSP3, HSP3, 3, 1.0, 0.0, 1.2, 2.0 }, /* Non bond */
-+{ HSP2, HSP3, 6, -2.0, 0.0, 1.2, 2.0 }, /* Non bond */
-+{ HSP2, HSP2, 2, -4.0, 0.0, 1.2, 2.0 }, /* Pi bond overlap */
-+{ HSP1, HSP1, 1, 0.0, 0.0, 1.2, 2.0 } /* Not interesting */
- };
-
- #define AFORCE 100.0
-@@ -1290,6 +1275,8 @@
- SppaPropers[i].iN,
- SppaPropers[i].dK,
- SppaPropers[i].dE,
-+ SppaPropers[i].dSce,
-+ SppaPropers[i].dScn,
- sDesc );
- }
- }
-diff -urN amber11//AmberTools/src/leap/src/leap/parmSet.c amber11.new//AmberTools/src/leap/src/leap/parmSet.c
---- amber11//AmberTools/src/leap/src/leap/parmSet.c 2011-03-10 20:12:06.000000000 +0200
-+++ amber11.new//AmberTools/src/leap/src/leap/parmSet.c 2011-05-19 18:35:57.000000000 +0300
-@@ -54,7 +54,9 @@
- * search routines REQUIRE pre-ordering.
- */
-
--
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-
- #include "basics.h"
-
-@@ -965,6 +967,8 @@
- /*
- * copy into 1 vararray & set iType
- */
-+
-+ /*Arunima Singh added scee and scnb into the database */
- vaTorsTypes = vaVarArrayCopy2( psLib->vaTorsions, psLib->vaImpropers );
- tP = PVAI(vaTorsTypes,TORSIONPARMt,0);
- for (i=0; i<iVarArrayElementCount(psLib->vaTorsions); i++, tP++)
-@@ -980,8 +984,12 @@
- 7, "n",
- (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->iN),
- iVarArrayElementSize(vaTorsTypes),
-- 0, NULL, NULL, 0,
-- 0, NULL, NULL, 0,
-+ 9, "scee",
-+ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->dScee),
-+ iVarArrayElementSize(vaTorsTypes),
-+ 10, "scnb",
-+ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->dScnb),
-+ iVarArrayElementSize(vaTorsTypes),
- 0, NULL, NULL, 0,
- 0, NULL, NULL, 0,
- 0, NULL, NULL, 0,
-@@ -1008,7 +1016,7 @@
- 4, "type4",
- (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->sType4),
- iVarArrayElementSize(vaTorsTypes),
-- 9, "desc",
-+ 11, "desc",
- (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->sDesc),
- iVarArrayElementSize(vaTorsTypes)
- );
-@@ -1586,10 +1594,15 @@
- * Add a torsion parameter to the PARMSET.
- * Return the index.
- */
-+
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-+
- int
- iParmSetAddProperTerm( PARMSET psLib,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int iN, double dKp, double dP0, char *sDesc )
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
- {
- TORSIONPARMt tpTorsion;
-
-@@ -1605,6 +1618,8 @@
- tpTorsion.dKp = dKp;
- tpTorsion.iN = iN;
- tpTorsion.dP0 = dP0;
-+ tpTorsion.dScee = dScee;
-+ tpTorsion.dScnb = dScnb;
- strcpy( tpTorsion.sOrder, "0123" );
- if ( sDesc != NULL )
- strcpy( tpTorsion.sDesc, sDesc );
-@@ -1633,7 +1648,7 @@
- int
- iParmSetAddImproperTerm( PARMSET psLib,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int iN, double dKp, double dP0, char *sDesc )
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
- {
- TORSIONPARMt tpImproper;
- orderStr sOrder;
-@@ -2022,7 +2037,7 @@
- void
- ParmSetTORSIONTerm( TORSION tTorsion, int iTorsionIndex, int *iPParmSetIndex,
- char *cPType1, char *cPType2, char *cPType3, char *cPType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDesc )
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc )
- {
- TORSION_MATCHt *tmPCur;
-
-@@ -2035,6 +2050,8 @@
- *iPN = tmPCur->tpTorsion.iN;
- *dPKp = tmPCur->tpTorsion.dKp;
- *dPP0 = tmPCur->tpTorsion.dP0;
-+ *dPScee = tmPCur->tpTorsion.dScee;
-+ *dPScnb = tmPCur->tpTorsion.dScnb;
- strcpy(sDesc, tmPCur->tpTorsion.sDesc);
- }
-
-@@ -2050,7 +2067,7 @@
- BOOL
- bParmSetTORSIONAddProperTerm( TORSION tTorsion,
- char *cPType1, char *cPType2, char *cPType3, char *cPType4,
-- int iN, double dKp, double dP0, char *sDesc )
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
- {
- TORSIONPARMt tpTorsion;
-
-@@ -2066,6 +2083,8 @@
- tpTorsion.iN = iN;
- tpTorsion.dKp = dKp;
- tpTorsion.dP0 = dP0;
-+ tpTorsion.dScee = dScee;
-+ tpTorsion.dScnb = dScnb;
- strcpy(tpTorsion.sDesc, sDesc);
- strcpy( tpTorsion.sOrder, "0123" );
-
-@@ -2087,7 +2106,7 @@
- BOOL
- bParmSetTORSIONAddImproperTerm( TORSION tTorsion,
- char *cPType1, char *cPType2, char *cPType3, char *cPType4,
-- int iN, double dKp, double dP0, char *sDesc )
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
- {
- TORSIONPARMt tpTorsion;
- orderStr sOrder;
-@@ -2104,6 +2123,8 @@
- tpTorsion.iN = iN;
- tpTorsion.dKp = dKp;
- tpTorsion.dP0 = dP0;
-+ tpTorsion.dScee = dScee;
-+ tpTorsion.dScnb = dScnb;
- strcpy(tpTorsion.sDesc, sDesc);
- strcpy( tpTorsion.sOrder, sOrder );
-
-@@ -2516,7 +2537,7 @@
- void
- ParmSetTorsion( PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDesc)
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc)
- {
- TORSIONPARMt *tpPTorsion;
-
-@@ -2531,6 +2552,8 @@
- strcpy( sType4, WILD_CARD_TYPE );
- *iPN = 0;
- *dPKp = 0;
-+ *dPScee = 0;
-+ *dPScnb = 0;
- *dPP0 = 0;
- strcpy( sDesc, "??" );
- return;
-@@ -2543,7 +2566,10 @@
- *iPN = tpPTorsion->iN;
- *dPKp = tpPTorsion->dKp;
- *dPP0 = tpPTorsion->dP0;
-+ *dPScee = tpPTorsion->dScee;
-+ *dPScnb = tpPTorsion->dScnb;
- strcpy( sDesc, tpPTorsion->sDesc );
-+
- }
-
-
-@@ -2557,7 +2583,7 @@
- void
- ParmSetImproper( PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDesc)
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc)
- {
- TORSIONPARMt *tpPImproper;
-
-@@ -2573,6 +2599,8 @@
- *iPN = 0;
- *dPKp = 0;
- *dPP0 = 0;
-+ *dPScee = 0;
-+ *dPScnb = 0;
- strcpy( sDesc, "??" );
- return;
- }
-@@ -2584,6 +2612,8 @@
- *iPN = tpPImproper->iN;
- *dPKp = tpPImproper->dKp;
- *dPP0 = tpPImproper->dP0;
-+ *dPScee = tpPImproper->dScee;
-+ *dPScnb = tpPImproper->dScnb;
- strcpy( sDesc, tpPImproper->sDesc );
- }
-
-@@ -2740,7 +2770,7 @@
- void
- ParmSetUpdateTorsion( PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDescription)
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDescription)
- {
- TORSIONPARMt *tpPTorsion;
- orderStr sOrder;
-@@ -2754,6 +2784,8 @@
- if ( iPN != (int*)NULL ) tpPTorsion->iN = *iPN;
- if ( dPKp != (double*)NULL) tpPTorsion->dKp = *dPKp;
- if ( dPP0 != (double*)NULL) tpPTorsion->dP0 = *dPP0;
-+ if ( dPScee != (double*)NULL) tpPTorsion->dScee = *dPScee;
-+ if ( dPScnb != (double*)NULL) tpPTorsion->dScnb = *dPScnb;
- if (sDescription != (char*)NULL ) strcpy(tpPTorsion->sDesc, sDescription);
-
- strcpy( sOrder, "0123" );
-@@ -2777,7 +2809,7 @@
- void
- ParmSetUpdateImproper( PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDescription)
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDescription)
- {
- TORSIONPARMt *tpPTorsion;
- orderStr sOrder;
-@@ -2790,6 +2822,8 @@
- if ( iPN != (int*)NULL ) tpPTorsion->iN = *iPN;
- if ( dPKp != (double*)NULL) tpPTorsion->dKp = *dPKp;
- if ( dPP0 != (double*)NULL) tpPTorsion->dP0 = *dPP0;
-+ if ( dPScee != (double*)NULL) tpPTorsion->dScee = *dPScee;
-+ if ( dPScnb != (double*)NULL) tpPTorsion->dScnb = *dPScnb;
- if (sDescription != (char*)NULL ) strcpy(tpPTorsion->sDesc, sDescription);
-
- strcpy( sOrder, "0123" );
-@@ -2979,6 +3013,7 @@
- tpPCur->sType1, tpPCur->sType2,
- tpPCur->sType3, tpPCur->sType4,
- tpPCur->iN, tpPCur->dKp, tpPCur->dP0/DEGTORAD,
-+ tpPCur->dScee, tpPCur->dScnb,
- tpPCur->sOrder, tpPCur->sDesc );
- }
- }
-@@ -2996,6 +3031,7 @@
- tpPCur->sType1, tpPCur->sType2,
- tpPCur->sType3, tpPCur->sType4,
- tpPCur->iN, tpPCur->dKp, tpPCur->dP0/DEGTORAD,
-+ tpPCur->dScee, tpPCur->dScnb,
- tpPCur->sDesc );
- }
- }
-diff -urN amber11//AmberTools/src/leap/src/leap/parmSet.h amber11.new//AmberTools/src/leap/src/leap/parmSet.h
---- amber11//AmberTools/src/leap/src/leap/parmSet.h 2011-03-10 20:12:06.000000000 +0200
-+++ amber11.new//AmberTools/src/leap/src/leap/parmSet.h 2011-05-19 18:35:57.000000000 +0300
-@@ -42,6 +42,9 @@
- *
- *
- */
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-
- #ifndef PARMSET_H
- #define PARMSET_H
-@@ -96,6 +99,8 @@
- int iN;
- double dKp;
- double dP0;
-+ double dScee; /* for propers */ /* Arunima Singh */
-+ double dScnb; /* for propers */ /* Arunima Singh */
- orderStr sOrder; /* for impropers */
- DESCRIPTION sDesc;
- } TORSIONPARMt;
-@@ -158,10 +163,10 @@
- double dKt, double dT0, double dTkub, double dRkub, char *sDesc);
- extern int iParmSetAddProperTerm(PARMSET psLib,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int iN, double dKp, double dP0, char *sDesc);
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc); /* for proper dihedrals */ /* Arunima Singh */
- extern int iParmSetAddImproperTerm(PARMSET psLib,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int iN, double dKp, double dP0, char *sDesc);
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc); /* Arunima Singh : added for proper dihedrals, but has to be included in impropers to maintain common data structure usage */
- extern int iParmSetAddHBond(PARMSET psLib, char *sType1, char *sType2,
- double dA, double dB, char *sDesc);
-
-@@ -216,15 +221,15 @@
- extern void ParmSetTORSIONTerm(TORSION tTorsion, int iTorsionIndex,
- int *iPParmSetIndex,
- char *cPTyp1, char *cPTyp2, char *cPTyp3, char *cPTyp4,
-- int *iPN, double *dPKp, double *dPP0, char *sDesc );
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc );
- extern BOOL bParmSetTORSIONAddProperTerm(TORSION tTorsion,
- char *cPType1, char *cPType2,
- char *cPType3, char *cPType4,
-- int iN, double dKp, double dP0, char *sDesc);
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc);
- extern BOOL bParmSetTORSIONAddImproperTerm(TORSION tTorsion,
- char *cPType1, char *cPType2,
- char *cPType3, char *cPType4,
-- int iN, double dKp, double dP0, char *sDesc);
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc);
- extern void ParmSetTORSIONOrderAtoms();
- extern void ParmSetImproperOrderAtoms( TORSION tTorsion, int iTorsionIndex,
- char *cPaTypes[4], int iaIndexes[4] );
-@@ -268,10 +273,10 @@
- char *sDesc);
- extern void ParmSetTorsion(PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDesc);
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc);
- extern void ParmSetImproper(PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDesc);
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc);
- extern void ParmSetHBond(PARMSET psLib, int i, char *sType1, char *sType2,
- double *dPA, double *dPB, char *sDesc);
-
-@@ -296,11 +301,11 @@
- double *dPKt, double *dPT0, char *sDescription);
- extern void ParmSetUpdateTorsion(PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0,
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb,
- char *sDescription);
- extern void ParmSetUpdateImproper(PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0,
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb,
- char *sDescription);
- extern void ParmSetUpdateHBond(PARMSET psLib, int i,
- char *sType1, char *sType2,
-diff -urN amber11//AmberTools/src/leap/src/leap/unitio.c amber11.new//AmberTools/src/leap/src/leap/unitio.c
---- amber11//AmberTools/src/leap/src/leap/unitio.c 2011-03-10 20:12:06.000000000 +0200
-+++ amber11.new//AmberTools/src/leap/src/leap/unitio.c 2011-05-19 18:35:57.000000000 +0300
-@@ -70,6 +70,10 @@
- * zbUnitIOIndexBondParameters and zUnitDoAtoms are now "extern functions"
- */
-
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-+
- #include <time.h>
-
- #include "basics.h"
-@@ -1585,7 +1589,9 @@
- tC.dKp = tpA->dKp;
- tC.iN = tpA->iN;
- tC.dP0 = tpA->dP0;
-- VarArrayAdd(vaB, (GENP) & tC);
-+ tC.dScee = tpA->dScee;
-+ tC.dScnb = tpA->dScnb;
-+ VarArrayAdd(vaB, (GENP) & tC);
- iIndex++;
- iOldIndex = iParmOffset + iA + 1;
-
-@@ -1615,6 +1621,10 @@
- continue;
- if (tpB->dP0 != tpA->dP0)
- continue;
-+ if (tpB->dScee != tpA->dScee)
-+ continue;
-+ if (tpB->dScnb != tpA->dScnb)
-+ continue;
-
- /*
- * B is a duplicate of A
-@@ -1698,12 +1708,12 @@
- int iTerm, iPertTerm;
- BOOL bDone, bUse, bUsePert, bCopy, bCopyPert, bEnd, bPertEnd;
- int iN, iPertIndex, iPertN, iLastN, iLastPertN;
-- double dKp, dP0, dPertKp, dPertP0;
-+ double dKp, dP0, dScee, dScnb, dPertKp, dPertP0, dPertScee, dPertScnb;
- BOOL bCalc14, bCalcPert14;
- #ifdef DEBUG2
- STRING s1, s2, s3, s4;
- int iTParm, iTmp;
-- double dTK, dTP;
-+ double dTK, dTP, dTScee, dTScnb;
- STRING sT1, sT2, sT3, sT4, sTemp;
- #endif
- STRING sDesc;
-@@ -2016,9 +2026,9 @@
- ParmSetTORSIONTerm(tTorsion, i,
- &iTParm,
- sT1, sT2, sT3, sT4,
-- &iTmp, &dTK, &dTP, sTemp);
-- MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf\n",
-- i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP));
-+ &iTmp, &dTK, &dTP, &dTScee, &dTScnb, sTemp);
-+ MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
-+ i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP, dTScee, dTScnb));
- }
- if (bPerturbTorsion) {
- MESSAGE(("Pert%s %s-%s-%s-%s found %d terms\n",
-@@ -2029,9 +2039,9 @@
- ParmSetTORSIONTerm(tPertTorsion, i,
- &iTParm,
- sT1, sT2, sT3, sT4,
-- &iTmp, &dTK, &dTP, sTemp);
-- MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf\n",
-- i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP));
-+ &iTmp, &dTK, &dTP, &dTScee, &dTScnb, sTemp);
-+ MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
-+ i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP dTScee, dTScnb));
- }
- }
- #endif
-@@ -2061,7 +2071,7 @@
- ParmSetTORSIONTerm(tTorsion, iTerm,
- &iIndex,
- sAtom1, sAtom2, sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc);
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
- MESSAGE(("First non-perturbed multiplicity: %d\n", iN));
- } else {
- if (bProper) {
-@@ -2082,7 +2092,7 @@
- ParmSetTORSIONTerm(tPertTorsion, iPertTerm,
- &iPertIndex,
- sPert1, sPert2, sPert3, sPert4,
-- &iPertN, &dPertKp, &dPertP0, sDesc);
-+ &iPertN, &dPertKp, &dPertP0, &dPertScee, &dPertScnb, sDesc);
- MESSAGE(("First perturbed multiplicity: %d\n", iPertN));
- } else
- bPertEnd = TRUE;
-@@ -2175,14 +2185,14 @@
- if (bProper)
- iIndex = iParmSetAddProperTerm(uUnit->psParameters,
- sAtom1, sAtom2, sAtom3,
-- sAtom4, iN, dKp, dP0,
-- sDesc);
-+ sAtom4, iN, dKp, dP0,
-+ dScee, dScnb, sDesc);
- /* else if ( !GDefaults.iCharmm ) ???---should I do this???? */
- else
- iIndex = iParmSetAddImproperTerm(uUnit->psParameters,
- sAtom1, sAtom2,
- sAtom3, sAtom4, iN,
-- dKp, dP0, sDesc);
-+ dKp, dP0, dScee, dScnb, sDesc);
- }
- if (bCopyPert) {
- if (bProper) {
-@@ -2190,13 +2200,13 @@
- sPert1, sPert2,
- sPert3, sPert4,
- iPertN, dPertKp,
-- dPertP0, sDesc);
-+ dPertP0, dScee, dScnb, sDesc);
- } else {
- iPertIndex =
- iParmSetAddImproperTerm(uUnit->psParameters,
- sPert1, sPert2, sPert3,
- sPert4, iPertN, dPertKp,
-- dPertP0, sDesc);
-+ dPertP0, dScee, dScnb, sDesc);
- }
- MESSAGE(("iPertIndex = %d\n", iPertIndex));
- }
-@@ -2215,7 +2225,7 @@
- ParmSetTORSIONTerm(tTorsion, iTerm,
- &iIndex,
- sAtom1, sAtom2, sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc);
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
- }
- MESSAGE(
- ("Advancing non-perturbed multiplicity to %d\n",
-@@ -2231,7 +2241,7 @@
- ParmSetTORSIONTerm(tPertTorsion, iPertTerm,
- &iPertIndex,
- sPert1, sPert2, sPert3, sPert4,
-- &iPertN, &dPertKp, &dPertP0, sDesc);
-+ &iPertN, &dPertKp, &dPertP0, &dPertScee, &dPertScnb, sDesc);
- }
- MESSAGE(
- ("Advancing perturbed multiplicity to %d\n",
-@@ -3988,7 +3998,7 @@
- SAVEATOMt *saPAtom;
- SAVETORSIONt *stPTorsion;
- SAVERESTRAINTt *srPRestraint;
-- double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0,
-+ double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dScee, dScnb,
- dC, dD, dTemp;
- STRING sAtom1, sAtom2, sAtom3, sAtom4, sType1, sType2;
- int iN, iAtoms, iMaxAtoms, iTemp, iAtom, iCalc14, iProper;
-@@ -4585,16 +4595,16 @@
- iParmSetTotalImproperParms(uUnit->psParameters)));
- for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
- ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
-- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
-- MESSAGE(("Torsion %d %s-%s-%s-%s %d %lf %lf\n",
-- i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0));
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
-+ MESSAGE(("Torsion %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
-+ i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0, dScee, dScnb));
- FortranWriteDouble(dKp);
- }
- for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
- ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
-- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
-- MESSAGE(("Improper %d %s-%s-%s-%s %d %lf %lf\n",
-- i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0));
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
-+ MESSAGE(("Improper %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
-+ i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0, dScee, dScnb));
- FortranWriteDouble(dKp);
- }
- /* Write the torsion RESTRAINT constants AND set the index */
-@@ -4612,13 +4622,13 @@
- FortranFormat(5, DBLFORMAT);
- for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
- ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
-- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
- dTemp = iN;
- FortranWriteDouble(dTemp);
- }
- for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
- ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
-- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
- dTemp = iN;
- FortranWriteDouble(dTemp);
- }
-@@ -4637,12 +4647,12 @@
- FortranFormat(5, DBLFORMAT);
- for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
- ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
-- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
- FortranWriteDouble(dP0);
- }
- for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
- ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
-- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
- FortranWriteDouble(dP0);
- }
- /* Write the torsion RESTRAINT constants AND set the index */
-@@ -4650,6 +4660,60 @@
- RESTRAINTLOOP(RESTRAINTTORSION, dN, i + 1);
- FortranEndLine();
-
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added Printing SCEE/SCNB */
-+
-+
-+ /* -17.5A- SCEE for torsions */
-+ FortranDebug("-17.5A-");
-+
-+ MESSAGE(("Writing SCEE scale factor for torsion interaction\n"));
-+ FortranFormat(1, "%-80s");
-+ FortranWriteString("%FLAG SCEE_SCALE_FACTOR");
-+ FortranWriteString("%FORMAT(5E16.8)");
-+ FortranFormat(5, DBLFORMAT);
-+ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
-+ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
-+ FortranWriteDouble(dScee);
-+ }
-+ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
-+ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
-+ FortranWriteDouble(dScee);
-+ }
-+ /* Write the torsion RESTRAINT constants AND set the index */
-+ /* for where the interaction can find its constants */
-+ RESTRAINTLOOP(RESTRAINTTORSION, dX0, i + 1);
-+ FortranEndLine();
-+
-+ /* -17.5B- SCNB for torsions */
-+ FortranDebug("-17.5B-");
-+
-+ MESSAGE(("Writing SCNB scale factor for torsion interaction\n"));
-+ FortranFormat(1, "%-80s");
-+ FortranWriteString("%FLAG SCNB_SCALE_FACTOR");
-+ FortranWriteString("%FORMAT(5E16.8)");
-+ FortranFormat(5, DBLFORMAT);
-+ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
-+ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
-+ FortranWriteDouble(dScnb);
-+ }
-+ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
-+ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
-+ FortranWriteDouble(dScnb);
-+ }
-+ /* Write the torsion RESTRAINT constants AND set the index */
-+ /* for where the interaction can find its constants */
-+ RESTRAINTLOOP(RESTRAINTTORSION, dX0, i + 1);
-+ FortranEndLine();
-+
-+ /* Arunima Singh */
-+ /* End of adding SCEE/SCNB */
-+
- /* -18- Not used, reserved for future use, uses NATYP */
- /* Corresponds to the AMBER SOLTY array */
- FortranDebug("-18-");
-@@ -6009,7 +6073,7 @@
- SAVEATOMt *saPAtom;
- SAVETORSIONt *stPTorsion;
- SAVERESTRAINTt *srPRestraint;
--double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dC, dD, dTemp;
-+double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dScee, dScnb, dC, dD, dTemp;
- STRING sAtom1, sAtom2, sAtom3, sAtom4, sType1, sType2;
- int iN, iAtoms, iMaxAtoms, iTemp, iAtom, iCalc14, iProper;
- int iElement, iHybridization, iStart, iFirstSolvent;
-@@ -6547,19 +6611,19 @@
- for ( i=0; i<iParmSetTotalTorsionParms(uUnit->psParameters); i++ ) {
- ParmSetTorsion( uUnit->psParameters, i, sAtom1, sAtom2,
- sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-- MESSAGE(( "Torsion %d %s-%s-%s-%s %d %lf %lf\n",
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
-+ MESSAGE(( "Torsion %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
- i, sAtom1, sAtom2, sAtom3, sAtom4,
-- iN, dKp, dP0 ));
-+ iN, dKp, dP0, dScee, dScnb ));
- FortranWriteDouble( dKp );
- }
- for ( i=0; i<iParmSetTotalImproperParms(uUnit->psParameters); i++ ) {
- ParmSetImproper( uUnit->psParameters, i, sAtom1, sAtom2,
- sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-- MESSAGE(( "Improper %d %s-%s-%s-%s %d %lf %lf\n",
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
-+ MESSAGE(( "Improper %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
- i, sAtom1, sAtom2, sAtom3, sAtom4,
-- iN, dKp, dP0 ));
-+ iN, dKp, dP0, dScee, dScnb ));
- FortranWriteDouble( dKp );
- }
- /* Write the torsion RESTRAINT constants AND set the index */
-@@ -6575,14 +6639,14 @@
- for ( i=0; i<iParmSetTotalTorsionParms(uUnit->psParameters); i++ ) {
- ParmSetTorsion( uUnit->psParameters, i, sAtom1, sAtom2,
- sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
- dTemp = iN;
- FortranWriteDouble( dTemp );
- }
- for ( i=0; i<iParmSetTotalImproperParms(uUnit->psParameters); i++ ) {
- ParmSetImproper( uUnit->psParameters, i, sAtom1, sAtom2,
- sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
- dTemp = iN;
- FortranWriteDouble( dTemp );
- }
-@@ -6599,13 +6663,13 @@
- for ( i=0; i<iParmSetTotalTorsionParms(uUnit->psParameters); i++ ) {
- ParmSetTorsion( uUnit->psParameters, i, sAtom1, sAtom2,
- sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
- FortranWriteDouble( dP0 );
- }
- for ( i=0; i<iParmSetTotalImproperParms(uUnit->psParameters); i++ ) {
- ParmSetImproper( uUnit->psParameters, i, sAtom1, sAtom2,
- sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
- FortranWriteDouble( dP0 );
- }
- /* Write the torsion RESTRAINT constants AND set the index */
-diff -urN amber11//AmberTools/src/leap/src/leap/xaImproperParmTable.c amber11.new//AmberTools/src/leap/src/leap/xaImproperParmTable.c
---- amber11//AmberTools/src/leap/src/leap/xaImproperParmTable.c 2011-03-10 20:12:06.000000000 +0200
-+++ amber11.new//AmberTools/src/leap/src/leap/xaImproperParmTable.c 2011-05-19 18:35:57.000000000 +0300
-@@ -37,7 +37,9 @@
- * Handle editing of parameters in a table format.
- */
-
--
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-
- #include <X11/IntrinsicP.h>
- #include <X11/StringDefs.h>
-@@ -59,7 +61,10 @@
- #define NC 4
- #define KPC 5
- #define P0C 6
--#define DESCC 7
-+#define SCEE 7 /*Arunima Singh*/
-+#define SCNB 8 /*Arunima Singh*/
-+#define DESCC 9 /*Arunima Singh: Changed value from 7 to 9 to include scee and scnb*/
-+
-
- #define MAXTYPELEN 5
- #define DESCLEN 32
-@@ -129,13 +134,15 @@
- int iN;
- double dKp;
- double dP0;
-+double dScee;
-+double dScnb;
- char sDesc[DESCLEN];
-
-
- iptPCur = (IMPROPERPARMTABLEt*)PXATClientPointer(tTable);
-
- ParmSetImproper( iptPCur->psParmSet, iRow,
-- sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, sDesc );
-+ sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
-
- switch ( iCol ) {
- case TYPE1C:
-@@ -171,6 +178,14 @@
- }
- return(SsBuffer);
- break;
-+ case SCEE:
-+ sprintf( SsBuffer, DBLFMT, dScee );
-+ return(SsBuffer);
-+ break;
-+ case SCNB:
-+ sprintf( SsBuffer, DBLFMT, dScnb );
-+ return(SsBuffer);
-+ break;
- case DESCC:
- strcpy( SsBuffer, sDesc );
- return( SsBuffer );
-@@ -259,6 +274,16 @@
- if ( !strcmp( cPData, "0" )) break;
- return("P0 field must be '0' or 'Pi'.");
- break;
-+ case SCEE:
-+ if ( !bStringToDouble( cPData, &dValue ) ) {
-+ return("Invalid character in Scee field.");
-+ }
-+ break;
-+ case SCNB:
-+ if ( !bStringToDouble( cPData, &dValue ) ) {
-+ return("Invalid character in Scnb field.");
-+ }
-+ break;
- case DESCC:
- if ( strlen(cPData)>DESCLEN-1 ) {
- sprintf( SsError, "%s %d characters.",
-@@ -384,11 +409,33 @@
- return("P0 field must be '0' or 'Pi'.");
- }
-
-+ /*
-+ * Scee
-+ */
-+ *iPErrCol = 7;
-+ cPData = col[7];
-+ if ( !bStringToDouble( cPData, &dValue ) ) {
-+ return("Invalid character in Scee field.");
-+ } else if ( dValue < 0.0 ) {
-+ return("Scee cannot be negative.");
-+ }
-+
-+ /*
-+ * Scnb
-+ */
-+ *iPErrCol = 8;
-+ cPData = col[8];
-+ if ( !bStringToInt( cPData, &iValue ) ) {
-+ return("Invalid character in Scnb field.");
-+ } else if ( dValue < 0.0 ) {
-+ return("Scnb cannot be negative.");
-+ }
-+
- /*
- * Desc
- */
-- *iPErrCol = 7;
-- cPData = col[7];
-+ *iPErrCol = 9;
-+ cPData = col[9];
- if ( strlen(cPData) > DESCLEN-1 ) {
- sprintf( SsError, "%s %d characters.",
- "Parameter Description cannot be longer than",
-@@ -413,7 +460,8 @@
- int iN;
- double dKp;
- double dP0;
--
-+double dScee;
-+double dScnb;
-
- iptPCur = (IMPROPERPARMTABLEt*) PXATClientPointer(tTable);
- psParmSet = iptPCur->psParmSet;
-@@ -444,7 +492,7 @@
- col[0], col[1], col[2], col[3] ));
- if ( iRow != iParmSetAddImproperTerm( psParmSet,
- col[0], col[1], col[2], col[3],
-- iN, dKp, dP0, col[7] ) )
-+ iN, dKp, dP0, dScee, dScnb, col[9] ) )
- DFATAL(( "programming err 2 in zXAIPTAcceptRow\n" ));
- } else {
- /*
-@@ -452,7 +500,7 @@
- */
- ParmSetUpdateImproper( psParmSet, iRow,
- col[0], col[1], col[2], col[3],
-- &iN, &dKp, &dP0, col[7] );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, col[9] );
- }
- }
-
-diff -urN amber11//AmberTools/src/leap/src/leap/xaTorsionParmTable.c amber11.new//AmberTools/src/leap/src/leap/xaTorsionParmTable.c
---- amber11//AmberTools/src/leap/src/leap/xaTorsionParmTable.c 2011-03-10 20:12:06.000000000 +0200
-+++ amber11.new//AmberTools/src/leap/src/leap/xaTorsionParmTable.c 2011-05-19 18:35:57.000000000 +0300
-@@ -37,6 +37,9 @@
- * Handle editing of parameters in a table format.
- */
-
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-
- #include <X11/IntrinsicP.h>
- #include <X11/StringDefs.h>
-@@ -58,7 +61,9 @@
- #define NC 4
- #define KPC 5
- #define P0C 6
--#define DESCC 7
-+#define SCEE 7 /*Arunima Singh*/
-+#define SCNB 8 /*Arunima Singh*/
-+#define DESCC 9 /*Arunima Singh: Changed value from 7 to 9 to include scee and scnb*/
-
- #define MAXTYPELEN 5
- #define DESCLEN 32
-@@ -112,7 +117,7 @@
- * zcPXATPTGetElement
- *
- * Get the values for the elements of the TABLE from the
-- * particular Torsion Parmeter Entry.
-+ * particular Torsion Parameter Entry.
- */
- static char *
- zcPXATPTGetElement( TABLE tTable, int iCol, int iRow )
-@@ -126,13 +131,15 @@
- int iN;
- double dKp;
- double dP0;
-+double dScee;
-+double dScnb;
- char sDesc[DESCLEN];
-
-
- tptPCur = (TORSIONPARMTABLEt*)PXATClientPointer(tTable);
-
- ParmSetTorsion( tptPCur->psParmSet, iRow,
-- sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, sDesc );
-+ sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
-
- switch ( iCol ) {
- case TYPE1C:
-@@ -168,6 +175,14 @@
- }
- return(SsBuffer);
- break;
-+ case SCEE:
-+ sprintf( SsBuffer, DBLFMT, dScee );
-+ return(SsBuffer);
-+ break;
-+ case SCNB:
-+ sprintf( SsBuffer, DBLFMT, dScnb );
-+ return(SsBuffer);
-+ break;
- case DESCC:
- strcpy( SsBuffer, sDesc );
- return( SsBuffer );
-@@ -256,6 +271,16 @@
- if ( !strcmp( cPData, "0" )) break;
- return("P0 field must be '0' or 'Pi'.");
- break;
-+ case SCEE:
-+ if ( !bStringToDouble( cPData, &dValue ) ) {
-+ return("Invalid character in Scee field.");
-+ }
-+ break;
-+ case SCNB:
-+ if ( !bStringToDouble( cPData, &dValue ) ) {
-+ return("Invalid character in Scnb field.");
-+ }
-+ break;
- case DESCC:
- if ( strlen(cPData)>DESCLEN-1 ) {
- sprintf( SsError, "%s %d characters.",
-@@ -379,11 +404,33 @@
- return("P0 field must be '0' or 'Pi'.");
- }
-
-+ /*
-+ * Scee
-+ */
-+ *iPErrCol = 7;
-+ cPData = col[7];
-+ if ( !bStringToDouble( cPData, &dValue ) ) {
-+ return("Invalid character in Scee field.");
-+ } else if ( dValue < 0.0 ) {
-+ return("Scee cannot be negative.");
-+ }
-+
-+ /*
-+ * Scnb
-+ */
-+ *iPErrCol = 8;
-+ cPData = col[8];
-+ if ( !bStringToInt( cPData, &iValue ) ) {
-+ return("Invalid character in Scnb field.");
-+ } else if ( dValue < 0.0 ) {
-+ return("Scnb cannot be negative.");
-+ }
-+
- /*
- * Desc
- */
-- *iPErrCol = 7;
-- cPData = col[7];
-+ *iPErrCol = 9;
-+ cPData = col[9];
- if ( strlen(cPData) > DESCLEN-1 ) {
- sprintf( SsError, "%s %d characters.",
- "Parameter Description cannot be longer than",
-@@ -408,6 +455,8 @@
- int iN;
- double dKp;
- double dP0;
-+double dScee;
-+double dScnb;
-
- tptPCur = (TORSIONPARMTABLEt*) PXATClientPointer(tTable);
- psParmSet = tptPCur->psParmSet;
-@@ -438,15 +487,15 @@
- col[0], col[1], col[2], col[3] ));
- if ( iRow != iParmSetAddProperTerm( psParmSet,
- col[0], col[1], col[2], col[3],
-- iN, dKp, dP0, col[7] ) )
-- DFATAL(( "programming err 2 in zXATPTAcceptRow\n" ));
-+ iN, dKp, dP0, dScee, dScnb, col[9] ) ) /*Arunima singh*/
-+ DFATAL(( "programming err 2 in zXATPTAcceptRow\n" ));
- } else {
- /*
- * update row in place
- */
- ParmSetUpdateTorsion( psParmSet, iRow,
- col[0], col[1], col[2], col[3],
-- &iN, &dKp, &dP0, col[7] );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, col[9] ); /*Arunima singh*/
- }
- }
-
-diff -urN amber11//AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py amber11.new//AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py
---- amber11//AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py 2011-04-14 15:30:17.000000000 +0300
-+++ amber11.new//AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py 2011-05-19 18:35:57.000000000 +0300
-@@ -371,7 +371,7 @@
- coords_received = _scaledistance(coords_tosend, chdist)
-
- for i in range(3):
-- new_coords.append(coords_received[x+3])
-+ new_coords.append(coords_received[i+3])
-
- coords_tosend = []
- coords_received = []
-diff -urN amber11//AmberTools/src/mmpbsa_py/setup.sh amber11.new//AmberTools/src/mmpbsa_py/setup.sh
---- amber11//AmberTools/src/mmpbsa_py/setup.sh 2011-04-14 15:30:18.000000000 +0300
-+++ amber11.new//AmberTools/src/mmpbsa_py/setup.sh 2011-05-19 18:35:57.000000000 +0300
-@@ -10,7 +10,8 @@
-
- # require AMBERHOME
- if [ -z $AMBERHOME ]; then
-- export AMBERHOME=`dirname \`dirname $PWD\``
-+ AMBERHOME=`dirname \`dirname $PWD\``
-+ export AMBERHOME=`dirname $AMBERHOME`
- echo "AMBERHOME is not set. Assuming it is $AMBERHOME"
- fi
-
-diff -urN amber11//AmberTools/test/nab/Run.prm amber11.new//AmberTools/test/nab/Run.prm
---- amber11//AmberTools/test/nab/Run.prm 2011-04-14 15:30:23.000000000 +0300
-+++ amber11.new//AmberTools/test/nab/Run.prm 2011-05-19 18:35:57.000000000 +0300
-@@ -17,7 +17,7 @@
-
- echo "checking the prmtop file:"
- echo ""
--tail -3209 tprmtop > tprmtop1
-+tail -3228 tprmtop > tprmtop1
- ../dacdif tprmtop.check tprmtop1
-
- rm -f prm prm.c tleap.out leap.log tprmcrd prm.out1 tprmtop
-diff -urN amber11//AmberTools/test/nab/tprmtop.check amber11.new//AmberTools/test/nab/tprmtop.check
---- amber11//AmberTools/test/nab/tprmtop.check 2011-03-10 20:12:18.000000000 +0200
-+++ amber11.new//AmberTools/test/nab/tprmtop.check 2011-05-19 18:35:57.000000000 +0300
-@@ -1,3 +1,4 @@
-+%VERSION VERSION_STAMP = V0001.000 DATE = 05/09/11 12:59:19
- %FLAG TITLE
- %FORMAT(20a4)
-
-@@ -541,6 +542,24 @@
- 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00
- 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00
- 3.14159400E+00 3.14159400E+00 3.14159400E+00
-+%FLAG SCEE_SCALE_FACTOR
-+%FORMAT(5E16.8)
-+ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
-+ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
-+ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
-+ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
-+ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
-+ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
-+ 0.00000000E+00 0.00000000E+00 0.00000000E+00
-+%FLAG SCNB_SCALE_FACTOR
-+%FORMAT(5E16.8)
-+ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
-+ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
-+ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
-+ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
-+ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
-+ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
-+ 0.00000000E+00 0.00000000E+00 0.00000000E+00
- %FLAG SOLTY
- %FORMAT(5E16.8)
- 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2011-07-28 13:08 Alexey Shvetsov
0 siblings, 0 replies; 18+ messages in thread
From: Alexey Shvetsov @ 2011-07-28 13:08 UTC (permalink / raw
To: gentoo-commits
commit: bbe17657b55b52de681189473db11225a8f82f2f
Author: Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 28 13:08:27 2011 +0000
Commit: Alexey Shvetsov <alexxy <AT> gentoo <DOT> org>
CommitDate: Thu Jul 28 13:08:27 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=bbe17657
[sci-chemistry/ambertools] Moved to tree =D
---
sci-chemistry/ambertools/ChangeLog | 29 --
sci-chemistry/ambertools/ambertools-1.4.ebuild | 133 -------
sci-chemistry/ambertools/ambertools-1.5-r1.ebuild | 140 -------
sci-chemistry/ambertools/ambertools-1.5.ebuild | 140 -------
.../ambertools/files/ambertools-1.4-gentoo.patch | 289 ---------------
.../ambertools/files/ambertools-1.5-gentoo.patch | 386 --------------------
sci-chemistry/ambertools/metadata.xml | 10 -
7 files changed, 0 insertions(+), 1127 deletions(-)
diff --git a/sci-chemistry/ambertools/ChangeLog b/sci-chemistry/ambertools/ChangeLog
deleted file mode 100644
index d51fa1a..0000000
--- a/sci-chemistry/ambertools/ChangeLog
+++ /dev/null
@@ -1,29 +0,0 @@
-# ChangeLog for sci-chemistry/ambertools
-# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: $
-
- 24 Jun 2011; Justin Lecher <jlec@gentoo.org> ambertools-1.4.ebuild,
- -files/ambertools-1.4-bugfix_1-18.patch, ambertools-1.5.ebuild,
- -files/ambertools-1.5-bugfix_1-3.patch:
- Cleaned ebuild
-
- 23 Jun 2011; Justin Lecher <jlec@gentoo.org> ambertools-1.4.ebuild,
- ambertools-1.5.ebuild:
- Streamlined fortran-2 eclass usage
-
- 21 Jun 2011; Justin Lecher <jlec@gentoo.org> ambertools-1.4.ebuild,
- ambertools-1.5.ebuild:
- Added fortran-2.eclass support
-
-*ambertools-1.5 (04 Jun 2011)
-
- 04 Jun 2011; Reinis Danne <rei4dan@gmail.com> +ambertools-1.5.ebuild,
- +files/ambertools-1.5-bugfix_1-3.patch, +files/ambertools-1.5-gentoo.patch:
- Version bump.
-
- 15 Mar 2011; Justin Lecher <jlec@gentoo.org> ambertools-1.4.ebuild:
- Remove fortran.eclass
-
- 14 Mar 2011; Justin Lecher <jlec@gentoo.org> ambertools-1.4.ebuild:
- Remove fortran.eclass removal
-
diff --git a/sci-chemistry/ambertools/ambertools-1.4.ebuild b/sci-chemistry/ambertools/ambertools-1.4.ebuild
deleted file mode 100644
index 5e75cdb..0000000
--- a/sci-chemistry/ambertools/ambertools-1.4.ebuild
+++ /dev/null
@@ -1,133 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=4
-
-inherit eutils fortran-2 toolchain-funcs
-
-DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
-HOMEPAGE="http://ambermd.org/#AmberTools"
-SRC_URI="
- AmberTools-${PV}.tar.bz2
- mirror://gentoo/${P}-bugfix_1-18.patch.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="mpi openmp X"
-
-RESTRICT="fetch"
-
-RDEPEND="
- virtual/cblas
- virtual/lapack
- sci-libs/arpack
- sci-libs/cifparse-obj
- sci-chemistry/mopac7
- sci-libs/netcdf
- sci-chemistry/reduce
- virtual/fortran"
-DEPEND="${RDEPEND}
- dev-util/byacc
- dev-libs/libf2c
- sys-devel/ucpp"
-S="${WORKDIR}/amber11"
-
-pkg_nofetch() {
- einfo "Go to ${HOMEPAGE} and get ${A}"
- einfo "Place it in ${DISTDIR}"
-}
-
-pkg_setup() {
- fortran-2_pkg_setup
- if use openmp; then
- tc-has-openmp || \
- die "Please select an openmp capable compiler like gcc[openmp]"
- fi
- AMBERHOME="${S}"
-}
-
-src_prepare() {
- epatch \
- "${WORKDIR}/${P}-bugfix_1-18.patch" \
- "${FILESDIR}/${P}-gentoo.patch"
- cd AmberTools/src
- rm -r arpack blas lapack fftw-2.1.5 c9x-complex cifparse netcdf pnetcdf reduce ucpp-1.3 || die
-}
-
-src_configure() {
- cd AmberTools/src
- sed -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
- -e "s:\\\\\$(LIBDIR)/lapack.a:$(pkg-config lapack --libs) -lclapack:g" \
- -e "s:\\\\\$(LIBDIR)/blas.a:$(pkg-config blas cblas --libs):g" \
- -e "s:\\\\\$(LIBDIR)/libdrfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
- -e "s:\\\\\$(LIBDIR)/libdfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
- -e "s:CFLAGS=:CFLAGS=${CFLAGS} -DBINTRAJ :g" \
- -e "s:FFLAGS=:FFLAGS=${FFLAGS} :g" \
- -e "s:LDFLAGS=$ldflags:LDFLAGS=${LDFLAGS}:g" \
- -e "s:fc=g77:fc=$(tc-getFC):g" \
- -e "s:NETCDFLIB=\$netcdflib:NETCDFLIB=$(pkg-config netcdf --libs):g" \
- -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
- -e "s:-O3::g" \
- -i configure || die
- sed -e "s:arsecond_:arscnd_:g" \
- -i sff/time.c \
- -i sff/sff.h \
- -i sff/sff.c || die
- sed -e "s:\$(NAB):\$(NAB) -lrfftw:g" \
- -i nss/Makefile || die
-
- local myconf
-
- use X || myconf="${myconf} -noX11"
-
- for x in mpi openmp; do
- use ${x} && myconf="${myconf} -${x}"
- done
-
- ./configure \
- ${myconf} \
- -nobintraj \
- gnu
-# $(expr match "$(tc-getCC)" '.*\([a-z]cc\)')
-}
-
-src_compile() {
- cd AmberTools/src
- emake || die
-}
-
-src_install() {
- for x in bin/*
- do dobin ${x} || die
- done
- rm "${ED}/usr/bin/yacc"
- dobin AmberTools/src/antechamber/mopac.sh
- sed -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
- -i "${ED}/usr/bin/mopac.sh" || die
- # Make symlinks untill binpath for amber will be fixed
- dodir /usr/share/${PN}/bin
- cd "${ED}/usr/bin"
- for x in *
- do dosym /usr/bin/${x} /usr/share/${PN}/bin/${x}
- done
- cd "${S}"
-# sed -e "s:\$AMBERHOME/dat:\$AMBERHOME/share/ambertools/dat:g" \
-# -i "${ED}/usr/bin/xleap" \
-# -i "${ED}/usr/bin/tleap" || die
- dodoc doc/AmberTools.pdf doc/leap_pg.pdf
- dolib.a lib/*
- insinto /usr/include/${PN}
- doins include/*
- insinto /usr/share/${PN}
- doins -r dat
- cd AmberTools
- doins -r benchmarks
- doins -r examples
- doins -r test
- cat >> "${T}"/99ambertools <<- EOF
- AMBERHOME="${EPREFIX}/usr/share/ambertools"
- EOF
- doenvd "${T}"/99ambertools
-}
diff --git a/sci-chemistry/ambertools/ambertools-1.5-r1.ebuild b/sci-chemistry/ambertools/ambertools-1.5-r1.ebuild
deleted file mode 100644
index da44cf5..0000000
--- a/sci-chemistry/ambertools/ambertools-1.5-r1.ebuild
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=4
-
-inherit eutils fortran-2 toolchain-funcs
-
-DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
-HOMEPAGE="http://ambermd.org/#AmberTools"
-SRC_URI="
- AmberTools-${PV}.tar.bz2
- mirror://gentoo/${P}-bugfix_1-10.patch.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="mpi openmp X"
-
-RESTRICT="fetch"
-
-RDEPEND="
- virtual/cblas
- virtual/lapack
- sci-libs/clapack
- sci-libs/arpack
- sci-libs/cifparse-obj
- sci-chemistry/mopac7
- sci-libs/netcdf
- sci-libs/fftw:2.1
- sci-chemistry/reduce
- virtual/fortran"
-DEPEND="${RDEPEND}
- dev-util/byacc
- dev-libs/libf2c
- sys-devel/ucpp"
-S="${WORKDIR}/amber11"
-
-pkg_nofetch() {
- einfo "Go to ${HOMEPAGE} and get ${A}"
- einfo "Place it in ${DISTDIR}"
-}
-
-pkg_setup() {
- fortran-2_pkg_setup
- if use openmp; then
- tc-has-openmp || \
- die "Please select an openmp capable compiler like gcc[openmp]"
- fi
- AMBERHOME="${S}"
-}
-
-src_prepare() {
- epatch \
- "${WORKDIR}/${P}-bugfix_1-10.patch" \
- "${FILESDIR}/${P}-gentoo.patch"
- cd AmberTools/src
- rm -r arpack blas lapack fftw-2.1.5 c9x-complex cifparse netcdf pnetcdf reduce ucpp-1.3 || die
-}
-
-src_configure() {
- cd AmberTools/src
- sed -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
- -e "s:\\\\\$(LIBDIR)/lapack.a:$(pkg-config lapack --libs) -lclapack:g" \
- -e "s:\\\\\$(LIBDIR)/blas.a:$(pkg-config blas cblas --libs):g" \
- -e "s:\\\\\$(LIBDIR)/libdrfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
- -e "s:\\\\\$(LIBDIR)/libdfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
- -e "s:CFLAGS=:CFLAGS=${CFLAGS} -DBINTRAJ :g" \
- -e "s:FFLAGS=:FFLAGS=${FFLAGS} :g" \
- -e "s:LDFLAGS=$ldflags:LDFLAGS=${LDFLAGS}:g" \
- -e "s:fc=g77:fc=$(tc-getFC):g" \
- -e "s:\$netcdflib:$(pkg-config netcdf --libs):g" \
- -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
- -e "s:-O3::g" \
- -i configure || die
- sed -e "s:arsecond_:arscnd_:g" \
- -i sff/time.c \
- -i sff/sff.h \
- -i sff/sff.c || die
- sed -e "s:\$(NAB):\$(NAB) -lrfftw:g" \
- -i nss/Makefile || die
-
- local myconf
-
- use X || myconf="${myconf} -noX11"
-
- for x in mpi openmp; do
- use ${x} && myconf="${myconf} -${x}"
- done
-
- ./configure \
- ${myconf} \
- -nobintraj \
- -nomdgx \
- -nopython \
- -nomtkpp \
- gnu
-# $(expr match "$(tc-getCC)" '.*\([a-z]cc\)')
-}
-
-src_compile() {
- cd AmberTools/src
- emake || die
-}
-
-src_install() {
- rm -r bin/chemistry bin/MMPBSA_mods
- rm bin/ante-MMPBSA.py bin/extractFrcmod.py
- for x in bin/*
- do dobin ${x} || die
- done
- rm "${ED}/usr/bin/yacc"
- dobin AmberTools/src/antechamber/mopac.sh
- sed -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
- -i "${ED}/usr/bin/mopac.sh" || die
- # Make symlinks untill binpath for amber will be fixed
- dodir /usr/share/${PN}/bin
- cd "${ED}/usr/bin"
- for x in *
- do dosym /usr/bin/${x} /usr/share/${PN}/bin/${x}
- done
- cd "${S}"
-# sed -e "s:\$AMBERHOME/dat:\$AMBERHOME/share/ambertools/dat:g" \
-# -i "${ED}/usr/bin/xleap" \
-# -i "${ED}/usr/bin/tleap" || die
- dodoc doc/AmberTools.pdf doc/leap_pg.pdf
- dolib.a lib/*
- insinto /usr/include/${PN}
- doins include/*
- insinto /usr/share/${PN}
- doins -r dat
- cd AmberTools
- doins -r benchmarks
- doins -r examples
- doins -r test
- cat >> "${T}"/99ambertools <<- EOF
- AMBERHOME="${EPREFIX}/usr/share/ambertools"
- EOF
- doenvd "${T}"/99ambertools
-}
diff --git a/sci-chemistry/ambertools/ambertools-1.5.ebuild b/sci-chemistry/ambertools/ambertools-1.5.ebuild
deleted file mode 100644
index 9ac9755..0000000
--- a/sci-chemistry/ambertools/ambertools-1.5.ebuild
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=4
-
-inherit eutils fortran-2 toolchain-funcs
-
-DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
-HOMEPAGE="http://ambermd.org/#AmberTools"
-SRC_URI="
- AmberTools-${PV}.tar.bz2
- mirror://gentoo/${P}-bugfix_1-3.patch.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="mpi openmp X"
-
-RESTRICT="fetch"
-
-RDEPEND="
- virtual/cblas
- virtual/lapack
- sci-libs/clapack
- sci-libs/arpack
- sci-libs/cifparse-obj
- sci-chemistry/mopac7
- sci-libs/netcdf
- sci-libs/fftw:2.1
- sci-chemistry/reduce
- virtual/fortran"
-DEPEND="${RDEPEND}
- dev-util/byacc
- dev-libs/libf2c
- sys-devel/ucpp"
-S="${WORKDIR}/amber11"
-
-pkg_nofetch() {
- einfo "Go to ${HOMEPAGE} and get ${A}"
- einfo "Place it in ${DISTDIR}"
-}
-
-pkg_setup() {
- fortran-2_pkg_setup
- if use openmp; then
- tc-has-openmp || \
- die "Please select an openmp capable compiler like gcc[openmp]"
- fi
- AMBERHOME="${S}"
-}
-
-src_prepare() {
- epatch \
- "${WORKDIR}/${P}-bugfix_1-3.patch" \
- "${FILESDIR}/${P}-gentoo.patch"
- cd AmberTools/src
- rm -r arpack blas lapack fftw-2.1.5 c9x-complex cifparse netcdf pnetcdf reduce ucpp-1.3 || die
-}
-
-src_configure() {
- cd AmberTools/src
- sed -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
- -e "s:\\\\\$(LIBDIR)/lapack.a:$(pkg-config lapack --libs) -lclapack:g" \
- -e "s:\\\\\$(LIBDIR)/blas.a:$(pkg-config blas cblas --libs):g" \
- -e "s:\\\\\$(LIBDIR)/libdrfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
- -e "s:\\\\\$(LIBDIR)/libdfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
- -e "s:CFLAGS=:CFLAGS=${CFLAGS} -DBINTRAJ :g" \
- -e "s:FFLAGS=:FFLAGS=${FFLAGS} :g" \
- -e "s:LDFLAGS=$ldflags:LDFLAGS=${LDFLAGS}:g" \
- -e "s:fc=g77:fc=$(tc-getFC):g" \
- -e "s:\$netcdflib:$(pkg-config netcdf --libs):g" \
- -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
- -e "s:-O3::g" \
- -i configure || die
- sed -e "s:arsecond_:arscnd_:g" \
- -i sff/time.c \
- -i sff/sff.h \
- -i sff/sff.c || die
- sed -e "s:\$(NAB):\$(NAB) -lrfftw:g" \
- -i nss/Makefile || die
-
- local myconf
-
- use X || myconf="${myconf} -noX11"
-
- for x in mpi openmp; do
- use ${x} && myconf="${myconf} -${x}"
- done
-
- ./configure \
- ${myconf} \
- -nobintraj \
- -nomdgx \
- -nopython \
- -nomtkpp \
- gnu
-# $(expr match "$(tc-getCC)" '.*\([a-z]cc\)')
-}
-
-src_compile() {
- cd AmberTools/src
- emake || die
-}
-
-src_install() {
- rm -r bin/chemistry bin/MMPBSA_mods
- rm bin/ante-MMPBSA.py bin/extractFrcmod.py
- for x in bin/*
- do dobin ${x} || die
- done
- rm "${ED}/usr/bin/yacc"
- dobin AmberTools/src/antechamber/mopac.sh
- sed -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
- -i "${ED}/usr/bin/mopac.sh" || die
- # Make symlinks untill binpath for amber will be fixed
- dodir /usr/share/${PN}/bin
- cd "${ED}/usr/bin"
- for x in *
- do dosym /usr/bin/${x} /usr/share/${PN}/bin/${x}
- done
- cd "${S}"
-# sed -e "s:\$AMBERHOME/dat:\$AMBERHOME/share/ambertools/dat:g" \
-# -i "${ED}/usr/bin/xleap" \
-# -i "${ED}/usr/bin/tleap" || die
- dodoc doc/AmberTools.pdf doc/leap_pg.pdf
- dolib.a lib/*
- insinto /usr/include/${PN}
- doins include/*
- insinto /usr/share/${PN}
- doins -r dat
- cd AmberTools
- doins -r benchmarks
- doins -r examples
- doins -r test
- cat >> "${T}"/99ambertools <<- EOF
- AMBERHOME="${EPREFIX}/usr/share/ambertools"
- EOF
- doenvd "${T}"/99ambertools
-}
diff --git a/sci-chemistry/ambertools/files/ambertools-1.4-gentoo.patch b/sci-chemistry/ambertools/files/ambertools-1.4-gentoo.patch
deleted file mode 100644
index c067928..0000000
--- a/sci-chemistry/ambertools/files/ambertools-1.4-gentoo.patch
+++ /dev/null
@@ -1,289 +0,0 @@
-diff -urN amber11.orig/AmberTools/src/configure amber11/AmberTools/src/configure
---- amber11.orig/AmberTools/src/configure 2010-04-23 18:17:17.000000000 +0400
-+++ amber11/AmberTools/src/configure 2011-03-07 03:39:14.000000000 +0300
-@@ -288,11 +288,11 @@
- mpi_flag=
- lex=flex
- flibs_mkl=
--lapack=install
--blas=install
-+lapack=skip
-+blas=skip
- f2c=skip
--ucpp=install
--cpp="\$(BINDIR)/ucpp -l"
-+ucpp=skip
-+cpp="\$(EPREFIX)/usr/bin/ucpp -l"
-
- #-----------------------------------
- # skip building of sleap?
-@@ -1241,24 +1241,24 @@
- #--------------------------------------------------------------------------
- # Configure fftw-3.2.2:
- #--------------------------------------------------------------------------
-- if [ "$mdgx" = 'yes' ]; then
-- mdgxflag="--prefix=$AMBERHOME --disable-fortran"
-- echo
-- echo "Configuring fftw-3.2.2; (may be time-consuming)"
-- echo
-- cd fftw-3.2.2 && \
-- env CC="$cc" CFLAGS="$cflags" ./configure $mdgxflag \
-- > ../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."
-- exit 1
-- else
-- echo " fftw-3.2.2 configure succeeded."
-- fi
-- cd ..
-- fi
-+ #if [ "$mdgx" = 'yes' ]; then
-+ # mdgxflag="--prefix=$AMBERHOME --disable-fortran"
-+ # echo
-+ # echo "Configuring fftw-3.2.2; (may be time-consuming)"
-+ # echo
-+ # cd fftw-3.2.2 && \
-+ # env CC="$cc" CFLAGS="$cflags" ./configure $mdgxflag \
-+ # > ../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."
-+ # exit 1
-+ # else
-+ # echo " fftw-3.2.2 configure succeeded."
-+ # fi
-+ # cd ..
-+ #fi
-
- #--------------------------------------------------------------------------
- # Set up MPI 3D-RISM in NAB and SANDER
-@@ -1307,23 +1307,23 @@
- echo
- echo "Configuring fftw-2.1.5; (may be time-consuming)"
- echo
-- cd fftw-2.1.5
-- if [ "$mpi" = 'yes' ]; then
-- ./configure $rismflag --enable-mpi CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
-- > ../fftw2_config.log 2>&1
-- else
-- ./configure $rismflag CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
-- > ../fftw2_config.log 2>&1
-- fi
-- ncerror=$?
-- if [ $ncerror -gt 0 ]; then
-- echo " Error: fftw configure returned $ncerror"
-- echo " fftw configure failed! Check the fftw2_config.log file."
-- exit 1
-- else
-- echo " fftw-2.1.5 configure succeeded."
-- fi
-- cd ..
-+ # cd fftw-2.1.5
-+ # if [ "$mpi" = 'yes' ]; then
-+ # ./configure $rismflag --enable-mpi CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
-+ # > ../fftw2_config.log 2>&1
-+ # else
-+ # ./configure $rismflag CC="$cc" CFLAGS="$cflags" F77="$fc" FFLAGS="$fflags" \
-+ # > ../fftw2_config.log 2>&1
-+ # fi
-+ # ncerror=$?
-+ # if [ $ncerror -gt 0 ]; then
-+ # echo " Error: fftw configure returned $ncerror"
-+ # echo " fftw configure failed! Check the fftw2_config.log file."
-+ # exit 1
-+ # else
-+ # echo " fftw-2.1.5 configure succeeded."
-+ # fi
-+ # cd ..
- flibs_fftw2="\$(LIBDIR)/libdrfftw.a \$(LIBDIR)/libdfftw.a"
- if [ "$mpi" = 'yes' ]; then
- flibs_fftw2="\$(LIBDIR)/libdrfftw_mpi.a \$(LIBDIR)/libdfftw_mpi.a $flibs_fftw2"
-diff -urN amber11.orig/AmberTools/src/Makefile amber11/AmberTools/src/Makefile
---- amber11.orig/AmberTools/src/Makefile 2010-04-14 17:36:31.000000000 +0400
-+++ amber11/AmberTools/src/Makefile 2011-03-07 03:39:38.000000000 +0300
-@@ -8,15 +8,15 @@
-
- install: serial
-
--serial: configured_serial $(NETCDFLIB)
-+serial: configured_serial
- @echo "Starting installation of ${AMBERTOOLS} serial at `date`".
- # utility routines and libraries:
-- (cd ucpp-1.3 && $(MAKE) $(UCPP) )
-+# (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 arpack && $(MAKE) install );
-+# (cd lapack && $(MAKE) $(LAPACK) )
-+# (cd blas && $(MAKE) $(BLAS) )
-+# (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) )
- (cd etc && $(MAKE) install )
- (cd chamber && $(MAKE) install )
- (cd pbsa && $(MAKE) install )
-@@ -30,14 +30,14 @@
- (cd ptraj && $(MAKE) install )
-
- # miscellaneous:
-- (cd reduce && $(MAKE) install )
-+# (cd reduce && $(MAKE) install )
-
- # leap and gleap:
- (cd leap && $(MAKE) install )
- (cd gleap && $(MAKE) install )
-
- # nab:
-- (cd cifparse && $(MAKE) install )
-+# (cd cifparse && $(MAKE) install )
- (cd nab && $(MAKE) install )
- (cd nss && $(MAKE) install )
-
-@@ -50,15 +50,15 @@
-
- nabonly: $(NETCDFLIB)
- # utility routines and libraries:
-- (cd ucpp-1.3 && $(MAKE) $(UCPP) )
-+# (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 arpack && $(MAKE) install );
-+# (cd lapack && $(MAKE) $(LAPACK) )
-+# (cd blas && $(MAKE) $(BLAS) )
-+# (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) )
-
- # nab:
-- (cd cifparse && $(MAKE) install )
-+# (cd cifparse && $(MAKE) install )
- (cd nab && $(MAKE) install )
- (cd nss && $(MAKE) install )
-
-diff -urN amber11.orig/AmberTools/src/pbsa/Makefile amber11/AmberTools/src/pbsa/Makefile
---- amber11.orig/AmberTools/src/pbsa/Makefile 2010-04-14 17:26:17.000000000 +0400
-+++ amber11/AmberTools/src/pbsa/Makefile 2011-03-07 03:39:15.000000000 +0300
-@@ -47,10 +47,10 @@
- $(LIBDIR)/libpbsa.a $(LIBDIR)/libFpbsa.a
-
- #---------------------------------------------------------------------------
--pbsa$(SFX): $(OBJ) syslib netlib c9x-complex
-+pbsa$(SFX): $(OBJ) syslib
- $(FC) -o pbsa$(SFX) $(OBJ) ../lib/nxtsec.o $(FLIBSF) $(LDFLAGS)
-
--simplepbsa$(SFX): simplepbsa.o gopt.o libpbsa.a sfflib syslib netlib c9x-complex
-+simplepbsa$(SFX): simplepbsa.o gopt.o libpbsa.a sfflib syslib
- $(FC) -o simplepbsa$(SFX) simplepbsa.o gopt.o libpbsa.a \
- $(LIBDIR)/libsff.a ../lib/nxtsec.o $(FLIBSF) $(LDFLAGS)
- /bin/mv simplepbsa$(SFX) $(BINDIR)
-@@ -76,15 +76,15 @@
- sfflib:
- cd ../sff && $(MAKE) install
-
--netlib:
-- cd ../lapack && $(MAKE) $(LAPACK)
-- cd ../blas && $(MAKE) $(BLAS)
-- cd ../arpack && $(MAKE) install
--
--c9x-complex:
-- @if test $(C9XCOMPLEX) != "skip"; then \
-- cd ../c9x-complex && $(MAKE) libmc.a; \
-- fi
-+#netlib:
-+# cd ../lapack && $(MAKE) $(LAPACK)
-+# cd ../blas && $(MAKE) $(BLAS)
-+# cd ../arpack && $(MAKE) install
-+
-+#c9x-complex:
-+# @if test $(C9XCOMPLEX) != "skip"; then \
-+# cd ../c9x-complex && $(MAKE) libmc.a; \
-+# fi
-
- %.LIBPBSA.o: %.f
- $(FPP) -DLIBPBSA $< > _$<
-diff -urN amber11.orig/AmberTools/src/ptraj/Makefile amber11/AmberTools/src/ptraj/Makefile
---- amber11.orig/AmberTools/src/ptraj/Makefile 2010-03-31 07:05:16.000000000 +0400
-+++ amber11/AmberTools/src/ptraj/Makefile 2011-03-07 03:39:16.000000000 +0300
-@@ -60,20 +60,20 @@
- rdparm$(SFX): libs $(NETCDFLIB) $(OBJECTS)
- $(CC) $(LDFLAGS) -o rdparm$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM)
-
--ptraj$(SFX): libs netlib $(NETCDFLIB) $(OBJECTS)
-+ptraj$(SFX): libs $(NETCDFLIB) $(OBJECTS)
- $(CC) $(LDFLAGS) -o ptraj$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM)
-
--ptraj.MPI$(SFX): libs netlib $(PNETCDFLIB) $(OBJECTS)
-+ptraj.MPI$(SFX): libs $(PNETCDFLIB) $(OBJECTS)
- $(CC) $(LDFLAGS) -o ptraj.MPI$(SFX) $(OBJECTS) $(LIBS) $(PNETCDFLIB) $(LM)
- #
-
- libs:
- cd pdb && $(MAKE)
-- cd ../arpack && $(MAKE)
-+# cd ../arpack && $(MAKE)
-
--netlib:
-- cd ../lapack; $(MAKE) $(LAPACK)
-- cd ../blas; $(MAKE) $(BLAS)
-+#netlib:
-+# cd ../lapack; $(MAKE) $(LAPACK)
-+# cd ../blas; $(MAKE) $(BLAS)
-
- clean:
- cd pdb; $(MAKE) clean
-diff -urN amber11.orig/AmberTools/src/ptraj/netcdf_ptraj.h amber11/AmberTools/src/ptraj/netcdf_ptraj.h
---- amber11.orig/AmberTools/src/ptraj/netcdf_ptraj.h 2010-03-31 07:05:16.000000000 +0400
-+++ amber11/AmberTools/src/ptraj/netcdf_ptraj.h 2011-03-07 03:39:17.000000000 +0300
-@@ -4,7 +4,7 @@
- # include "../pnetcdf/include/pnetcdf.h"
- # define nc_strerror ncmpi_strerror
- # else
--# include "../netcdf/include/netcdf.h"
-+# include <netcdf.h>
- # endif
- #endif
-
-diff -urN amber11.orig/AmberTools/src/ptraj/ptraj.h amber11/AmberTools/src/ptraj/ptraj.h
---- amber11.orig/AmberTools/src/ptraj/ptraj.h 2010-03-31 07:05:16.000000000 +0400
-+++ amber11/AmberTools/src/ptraj/ptraj.h 2011-03-07 03:39:17.000000000 +0300
-@@ -94,7 +94,7 @@
- #define nc_strerror ncmpi_strerror
- #include "../pnetcdf/include/pnetcdf.h"
- #else
--#include "../netcdf/include/netcdf.h"
-+#include <netcdf.h>
- #endif
- #endif
-
-diff -urN amber11.orig/AmberTools/src/sqm/Makefile amber11/AmberTools/src/sqm/Makefile
---- amber11.orig/AmberTools/src/sqm/Makefile 2010-04-14 16:13:28.000000000 +0400
-+++ amber11/AmberTools/src/sqm/Makefile 2011-03-07 03:39:17.000000000 +0300
-@@ -77,7 +77,7 @@
- install: sqm$(SFX)
- mv sqm$(SFX) $(BINDIR)
-
--sqm$(SFX): $(SQMOBJ) $(QMOBJ) netlib sys
-+sqm$(SFX): $(SQMOBJ) $(QMOBJ) sys
- $(FC) -o sqm$(SFX) $(SQMOBJ) $(QMOBJ) $(FLIBSF) ../lib/sys.a $(LDFLAGS)
-
- #-----------LIBS
-@@ -93,10 +93,10 @@
- sys:
- cd ../lib; $(MAKE) sys.a
-
--netlib:
-- cd ../lapack; $(MAKE) $(LAPACK)
-- cd ../blas; $(MAKE) $(BLAS)
-- cd ../arpack && $(MAKE) install
-+#netlib:
-+# cd ../lapack; $(MAKE) $(LAPACK)
-+# cd ../blas; $(MAKE) $(BLAS)
-+# cd ../arpack && $(MAKE) install
-
- clean:
- /bin/rm -f *.o _*.f *.mod *.d sqm$(SFX)
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-gentoo.patch b/sci-chemistry/ambertools/files/ambertools-1.5-gentoo.patch
deleted file mode 100644
index 0e41d26..0000000
--- a/sci-chemistry/ambertools/files/ambertools-1.5-gentoo.patch
+++ /dev/null
@@ -1,386 +0,0 @@
-diff -urN amber11.orig/AmberTools/src/configure amber11/AmberTools/src/configure
---- amber11.orig/AmberTools/src/configure 2011-04-14 15:30:55.000000000 +0300
-+++ amber11/AmberTools/src/configure 2011-06-04 12:26:45.000000000 +0300
-@@ -293,7 +293,8 @@
- echo "Your AMBERHOME environment variable is not set! It should be set to"
- echo "$ambhome NOT doing so may cause errors when you compile. Continue"
- echo "anyway? (yes or no)"
-- read answer
-+ #read answer
-+ answer='yes'
- if [ "$answer" = 'yes' -o "$answer" = 'Yes' -o "$answer" = 'YES' -o "$answer" = 'y' -o "$answer" = 'Y' ]; then
- echo ""
- echo "Continuing anyway... Setting AMBERHOME to $ambhome temporarily"
-@@ -356,11 +357,11 @@
- mpi_flag=
- lex=flex
- flibs_mkl=
--lapack=install
--blas=install
-+lapack=skip
-+blas=skip
- f2c=skip
--ucpp=install
--cpp="\$(BINDIR)/ucpp -l"
-+ucpp=skip
-+cpp="\$(EPREFIX)/usr/bin/ucpp -l"
-
- #-----------------------------------
- # skip building of sleap?
-@@ -1655,24 +1656,24 @@
- #--------------------------------------------------------------------------
- # Configure fftw-3.2.2:
- #--------------------------------------------------------------------------
-- if [ "$mdgx" = 'yes' ]; then
-- mdgxflag="--prefix=$AMBERHOME --disable-fortran"
-- echo
-- echo "Configuring fftw-3.2.2 (may be time-consuming)..."
-- echo
-- cd fftw-3.2.2 && \
-- env CC="$cc" CFLAGS="$cflags $cnooptflags" \
-- ./configure $mdgxflag > ../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."
-- exit 1
-- else
-- echo " fftw-3.2.2 configure succeeded."
-- fi
-- cd ..
-- fi
-+ #if [ "$mdgx" = 'yes' ]; then
-+ # mdgxflag="--prefix=$AMBERHOME --disable-fortran"
-+ # echo
-+ # echo "Configuring fftw-3.2.2 (may be time-consuming)..."
-+ # echo
-+ # cd fftw-3.2.2 && \
-+ # env CC="$cc" CFLAGS="$cflags $cnooptflags" \
-+ # ./configure $mdgxflag > ../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."
-+ # exit 1
-+ # else
-+ # echo " fftw-3.2.2 configure succeeded."
-+ # fi
-+ # cd ..
-+ #fi
-
- #--------------------------------------------------------------------------
- # Configure python
-@@ -1792,27 +1793,27 @@
- echo
- echo "Configuring fftw-2.1.5 (may be time-consuming)..."
- echo
-- cd fftw-2.1.5
-- if [ "$mpi" = 'yes' ]; then
-- ./configure $rismflag --enable-mpi \
-- CC="$cc" CFLAGS="$cflags $coptflags" \
-- F77="$fc" FFLAGS="$fflags $foptflags" \
-- FLIBS="$flibs_arch" > ../fftw2_config.log 2>&1
-- else
-- ./configure $rismflag \
-- CC="$cc" CFLAGS="$cflags $coptflags" \
-- F77="$fc" FFLAGS="$fflags $foptflags" \
-- FLIBS="$flibs_arch" > ../fftw2_config.log 2>&1
-- fi
-- ncerror=$?
-- if [ $ncerror -gt 0 ]; then
-- echo " Error: fftw configure returned $ncerror"
-- echo " fftw configure failed! Check the fftw2_config.log file."
-- exit 1
-- else
-- echo " fftw-2.1.5 configure succeeded."
-- fi
-- cd ..
-+ # cd fftw-2.1.5
-+ # if [ "$mpi" = 'yes' ]; then
-+ # ./configure $rismflag --enable-mpi \
-+ # CC="$cc" CFLAGS="$cflags $coptflags" \
-+ # F77="$fc" FFLAGS="$fflags $foptflags" \
-+ # FLIBS="$flibs_arch" > ../fftw2_config.log 2>&1
-+ # else
-+ # ./configure $rismflag \
-+ # CC="$cc" CFLAGS="$cflags $coptflags" \
-+ # F77="$fc" FFLAGS="$fflags $foptflags" \
-+ # FLIBS="$flibs_arch" > ../fftw2_config.log 2>&1
-+ # fi
-+ # ncerror=$?
-+ # if [ $ncerror -gt 0 ]; then
-+ # echo " Error: fftw configure returned $ncerror"
-+ # echo " fftw configure failed! Check the fftw2_config.log file."
-+ # exit 1
-+ # else
-+ # echo " fftw-2.1.5 configure succeeded."
-+ # fi
-+ # cd ..
- flibs_fftw2="-ldrfftw -ldfftw"
- if [ "$mpi" = 'yes' ]; then
- flibs_fftw2="-ldrfftw_mpi -ldfftw_mpi $flibs_fftw2"
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Makefile_at amber11/AmberTools/src/cpptraj/src/Makefile_at
---- amber11.orig/AmberTools/src/cpptraj/src/Makefile_at 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Makefile_at 2011-05-20 00:45:48.000000000 +0300
-@@ -65,8 +65,8 @@
- -/bin/rm FindDepend.o
- -/bin/rm findDepend
-
--cpptraj$(SFX): $(NETCDFLIB) $(OBJECTS)
-- $(CXX) $(LDFLAGS) -o cpptraj$(SFX) $(OBJECTS) $(NETCDFLIB) $(ZLIB) $(BZLIB)
-+cpptraj$(SFX): $(OBJECTS)
-+ $(CXX) $(LDFLAGS) -o cpptraj$(SFX) $(OBJECTS) $(NETCDFLIB) $(ZLIB) $(BZLIB) -lgomp
-
- $(NETCDFLIB): ../../netcdf_config.log
- cd ../../netcdf/src && $(MAKE) install
-diff -urN amber11.orig/AmberTools/src/Makefile amber11/AmberTools/src/Makefile
---- amber11.orig/AmberTools/src/Makefile 2011-04-14 15:30:12.000000000 +0300
-+++ amber11/AmberTools/src/Makefile 2011-05-19 23:36:36.000000000 +0300
-@@ -8,15 +8,15 @@
-
- install: $(INSTALLTYPE)
-
--serial: configured_serial $(NETCDFLIB) $(PYINSTALL) $(MTKPP)
-+serial: configured_serial
- @echo "Starting installation of ${AMBERTOOLS} serial at `date`".
- # utility routines and libraries:
-- (cd ucpp-1.3 && $(MAKE) $(UCPP) )
-+# (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 arpack && $(MAKE) install );
-+# (cd lapack && $(MAKE) $(LAPACK) )
-+# (cd blas && $(MAKE) $(BLAS) )
-+# (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) )
- (cd etc && $(MAKE) install )
- (cd chamber && $(MAKE) install )
- (cd pbsa && $(MAKE) install )
-@@ -32,7 +32,7 @@
- (cd cpptraj && $(MAKE) $(CPPTRAJ))
-
- # miscellaneous:
-- (cd reduce && $(MAKE) install )
-+# (cd reduce && $(MAKE) install )
-
- # leap and gleap:
- (cd leap && $(MAKE) install )
-@@ -42,7 +42,7 @@
- (cd rism && $(MAKE) install )
-
- # nab:
-- (cd cifparse && $(MAKE) install )
-+# (cd cifparse && $(MAKE) install )
- (cd sff && $(MAKE) install )
- (cd pbsa && $(MAKE) libinstall )
- (cd nab && $(MAKE) install )
-@@ -63,19 +63,19 @@
- @echo "Installation of ${AMBERTOOLS} serial is complete at `date`."
- @echo ""
-
--nabonly: $(NETCDFLIB)
-+nabonly:
- # utility routines and libraries:
-- (cd ucpp-1.3 && $(MAKE) $(UCPP) )
-+# (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 arpack && $(MAKE) install );
-+# (cd lapack && $(MAKE) $(LAPACK) )
-+# (cd blas && $(MAKE) $(BLAS) )
-+# (cd c9x-complex && $(MAKE) $(C9XCOMPLEX) )
- (cd pbsa && $(MAKE) libinstall )
- (cd rism && $(MAKE) install )
-
- # nab:
-- (cd cifparse && $(MAKE) install )
-+# (cd cifparse && $(MAKE) install )
- (cd sff && $(MAKE) install )
- (cd nab && $(MAKE) install )
- (cd nss && $(MAKE) install )
-diff -urN amber11.orig/AmberTools/src/mdgx/Makefile amber11/AmberTools/src/mdgx/Makefile
---- amber11.orig/AmberTools/src/mdgx/Makefile 2011-04-14 15:30:17.000000000 +0300
-+++ amber11/AmberTools/src/mdgx/Makefile 2011-05-20 12:44:38.000000000 +0300
-@@ -109,7 +109,7 @@
-
- FFTW_LIBS = $(LIBDIR)/libfftw3.a
-
--mdgx$(SFX) : $(MDGX_OBJS) $(FFTW_LIBS) $(NETCDFLIB)
-+mdgx$(SFX) : $(MDGX_OBJS)
- $(CC) $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \
- -o $@ $(MDGX_OBJS) $(FFTW_LIBS) $(NETCDFLIB) $(LM)
-
-diff -urN amber11.orig/AmberTools/src/pbsa/Makefile amber11/AmberTools/src/pbsa/Makefile
---- amber11.orig/AmberTools/src/pbsa/Makefile 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/pbsa/Makefile 2011-05-19 22:27:40.000000000 +0300
-@@ -148,7 +148,7 @@
- )
-
- #---------------------------------------------------------------------------
--pbsa$(SFX): $(OBJ) syslib netlib c9x-complex configured_serial
-+pbsa$(SFX): $(OBJ) syslib configured_serial
- $(FC) $(FFLAGS) $(AMBERFFLAGS) -o pbsa$(SFX) $(OBJ) \
- ../lib/nxtsec.o ../lib/random.o \
- $(FLIBSF) $(LDFLAGS) $(AMBERLDFLAGS)
-@@ -158,7 +158,7 @@
- ../lib/nxtsec.o ../lib/random.o \
- $(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) $(FFLAGS) $(AMBERFFLAGS) -o simplepbsa$(SFX) simplepbsa.o gopt.o \
- libpbsa.a $(LIBDIR)/libsff.a ../lib/nxtsec.o $(FLIBSF) \
- $(LDFLAGS) $(AMBERLDFLAGS)
-@@ -194,15 +194,15 @@
- sfflib:
- cd ../sff && $(MAKE) install
-
--netlib:
-- cd ../lapack && $(MAKE) $(LAPACK)
-- cd ../blas && $(MAKE) $(BLAS)
-- cd ../arpack && $(MAKE) install
--
--c9x-complex:
-- @if test $(C9XCOMPLEX) != "skip"; then \
-- cd ../c9x-complex && $(MAKE) libmc.a; \
-- fi
-+#netlib:
-+# cd ../lapack && $(MAKE) $(LAPACK)
-+# cd ../blas && $(MAKE) $(BLAS)
-+# cd ../arpack && $(MAKE) install
-+
-+#c9x-complex:
-+# @if test $(C9XCOMPLEX) != "skip"; then \
-+# cd ../c9x-complex && $(MAKE) libmc.a; \
-+# fi
-
- %.LIBPBSA.o: %.f
- $(FPP) $(FPPFLAGS) $(AMBERFPPFLAGS) -DLIBPBSA $< > _$<
-diff -urN amber11.orig/AmberTools/src/ptraj/Makefile amber11/AmberTools/src/ptraj/Makefile
---- amber11.orig/AmberTools/src/ptraj/Makefile 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/ptraj/Makefile 2011-05-19 23:38:36.000000000 +0300
-@@ -57,25 +57,25 @@
- pubfft.o: pubfft.f
- $(FC) -c $(FREEFORMAT_FLAG) $(FOPTFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $<
-
--rdparm$(SFX): libs $(NETCDFLIB) $(OBJECTS)
-+rdparm$(SFX): libs $(OBJECTS)
- $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \
- -o rdparm$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM)
-
--ptraj$(SFX): libs netlib $(NETCDFLIB) $(OBJECTS)
-+ptraj$(SFX): libs $(OBJECTS)
- $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \
- -o ptraj$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM)
-
--ptraj.MPI$(SFX): libs netlib $(PNETCDFLIB) $(OBJECTS)
-+ptraj.MPI$(SFX): libs $(PNETCDFLIB) $(OBJECTS)
- $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \
- -o ptraj.MPI$(SFX) $(OBJECTS) $(LIBS) $(PNETCDFLIB) $(LM)
-
- libs:
- cd pdb && $(MAKE)
-- cd ../arpack && $(MAKE)
-+# cd ../arpack && $(MAKE)
-
--netlib:
-- cd ../lapack && $(MAKE) $(LAPACK)
-- cd ../blas && $(MAKE) $(BLAS)
-+#netlib:
-+# cd ../lapack && $(MAKE) $(LAPACK)
-+# cd ../blas && $(MAKE) $(BLAS)
-
- clean:
- cd pdb && $(MAKE) clean
-diff -urN amber11.orig/AmberTools/src/ptraj/netcdf_ptraj.h amber11/AmberTools/src/ptraj/netcdf_ptraj.h
---- amber11.orig/AmberTools/src/ptraj/netcdf_ptraj.h 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/ptraj/netcdf_ptraj.h 2011-05-19 22:30:43.000000000 +0300
-@@ -4,7 +4,7 @@
- # include "../../include/pnetcdf.h"
- # define nc_strerror ncmpi_strerror
- # else
--# include "../../include/netcdf.h"
-+# include <netcdf.h>
- # endif
- #endif
-
-diff -urN amber11.orig/AmberTools/src/ptraj/ptraj.h amber11/AmberTools/src/ptraj/ptraj.h
---- amber11.orig/AmberTools/src/ptraj/ptraj.h 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/ptraj/ptraj.h 2011-06-04 13:25:01.000000000 +0300
-@@ -94,7 +94,7 @@
- #define nc_strerror ncmpi_strerror
- #include "../../include/pnetcdf.h"
- #else
--#include "../../include/netcdf.h"
-+#include <netcdf.h>
- #endif
- #endif
-
-diff -urN amber11.orig/AmberTools/src/rism/Makefile amber11/AmberTools/src/rism/Makefile
---- amber11.orig/AmberTools/src/rism/Makefile 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/rism/Makefile 2011-05-20 01:07:26.000000000 +0300
-@@ -49,7 +49,7 @@
- mdiis_orig_c.o mdiis_blas_c.o mdiis_blas2_c.o mdiis_c.o \
- fce_c.o erfcfun.o safemem.o blend.o timer_c.o
-
--librism: $(LIBOBJ) $(FLIBS_FFTW2)
-+librism: $(LIBOBJ)
- $(AR) $(LIBDIR)/$@.a $(LIBOBJ)
- $(RANLIB) $(LIBDIR)/$@.a
-
-diff -urN amber11.orig/AmberTools/src/sff/AmberNetcdf.c amber11/AmberTools/src/sff/AmberNetcdf.c
---- amber11.orig/AmberTools/src/sff/AmberNetcdf.c 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/sff/AmberNetcdf.c 2011-05-20 10:49:06.000000000 +0300
-@@ -27,7 +27,7 @@
- #endif
-
- #ifdef BINTRAJ
--#include "../../include/netcdf.h"
-+#include <netcdf.h>
-
- #define NCFRAME "frame"
- #define NCSPATIAL "spatial"
-diff -urN amber11.orig/AmberTools/src/sff/Makefile amber11/AmberTools/src/sff/Makefile
---- amber11.orig/AmberTools/src/sff/Makefile 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/sff/Makefile 2011-05-20 09:53:27.000000000 +0300
-@@ -1,7 +1,7 @@
- include ../config.h
-
- .c.o:
-- $(CC) -c -Dflex $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(RISMSFF) -o $@ $<
-+ $(CC) -c -Dflex $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(RISMSFF) $(NETCDFLIB) -o $@ $<
-
- OBJS = binpos.o conjgrad.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 \
-diff -urN amber11.orig/AmberTools/src/sqm/Makefile amber11/AmberTools/src/sqm/Makefile
---- amber11.orig/AmberTools/src/sqm/Makefile 2011-04-14 15:30:20.000000000 +0300
-+++ amber11/AmberTools/src/sqm/Makefile 2011-05-19 22:31:49.000000000 +0300
-@@ -77,7 +77,7 @@
- install: sqm$(SFX)
- mv sqm$(SFX) $(BINDIR)
-
--sqm$(SFX): $(SQMOBJ) $(QMOBJ) netlib sys
-+sqm$(SFX): $(SQMOBJ) $(QMOBJ) sys
- $(FC) $(FFLAGS) $(AMBERFFLAGS) -o sqm$(SFX) $(SQMOBJ) $(QMOBJ) \
- $(FLIBSF) ../lib/sys.a $(LDFLAGS) $(AMBERLDFLAGS)
-
-@@ -94,10 +94,10 @@
- sys:
- cd ../lib; $(MAKE) sys.a
-
--netlib:
-- cd ../lapack; $(MAKE) $(LAPACK)
-- cd ../blas; $(MAKE) $(BLAS)
-- cd ../arpack && $(MAKE) install
-+#netlib:
-+# cd ../lapack; $(MAKE) $(LAPACK)
-+# cd ../blas; $(MAKE) $(BLAS)
-+# cd ../arpack && $(MAKE) install
-
- clean:
- /bin/rm -f *.o _*.f *.mod *.d sqm$(SFX)
diff --git a/sci-chemistry/ambertools/metadata.xml b/sci-chemistry/ambertools/metadata.xml
deleted file mode 100644
index 20e218e..0000000
--- a/sci-chemistry/ambertools/metadata.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <herd>sci-chemistry</herd>
- <maintainer>
- <email>alexxy@gentoo.org</email>
- <name>Alexey Shvetsov</name>
- </maintainer>
-</pkgmetadata>
-
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2011-10-25 22:40 Reinis Danne
0 siblings, 0 replies; 18+ messages in thread
From: Reinis Danne @ 2011-10-25 22:40 UTC (permalink / raw
To: gentoo-commits
commit: e8d5143df06530547f5da4bab64f50a271ccb0ca
Author: Reinis Danne <rei4dan <AT> gmail <DOT> com>
AuthorDate: Tue Oct 25 22:29:20 2011 +0000
Commit: Reinis Danne <rei4dan <AT> gmail <DOT> com>
CommitDate: Tue Oct 25 22:29:20 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=e8d5143d
sci-chemistry/ambertools: Add bugfixes up to 21, other fixes
---
sci-chemistry/ambertools/ChangeLog | 22 +
sci-chemistry/ambertools/ambertools-1.5-r2.ebuild | 156 +
.../files/ambertools-1.5-bugfix_1-21.patch | 5330 ++++++++++++++++++++
.../ambertools/files/ambertools-1.5-gentoo2.patch | 1056 ++++
sci-chemistry/ambertools/metadata.xml | 10 +
5 files changed, 6574 insertions(+), 0 deletions(-)
diff --git a/sci-chemistry/ambertools/ChangeLog b/sci-chemistry/ambertools/ChangeLog
new file mode 100644
index 0000000..08267f6
--- /dev/null
+++ b/sci-chemistry/ambertools/ChangeLog
@@ -0,0 +1,22 @@
+# ChangeLog for sci-chemistry/ambertools
+# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ambertools/ChangeLog,v 1.2 2011/08/02 14:42:37 alexxy Exp $
+
+*ambertools-1.5-r2 (25 Oct 2011)
+
+ 25 Oct 2011; Reinis Danne <rei4dan@gmail.com> +ambertools-1.5-r2.ebuild,
+ +files/ambertools-1.5-bugfix_1-21.patch, +files/ambertools-1.5-gentoo2.patch,
+ +metadata.xml:
+ Add bugfixes up to bugfix 21, use system byacc, fix arpack unbundling,
+ respect *FLAGS, remove mpi use, don't build sleap (it is broken), enable
+ tests.
+
+ 02 Aug 2011; Alexey Shvetsov <alexxy@gentoo.org> ambertools-1.5-r1.ebuild:
+ Add ~amd64-linux keyword
+
+*ambertools-1.5-r1 (28 Jul 2011)
+
+ 28 Jul 2011; Alexey Shvetsov <alexxy@gentoo.org> +ambertools-1.5-r1.ebuild,
+ +files/ambertools-1.5-gentoo.patch, +metadata.xml:
+ Initial import to tree
+
diff --git a/sci-chemistry/ambertools/ambertools-1.5-r2.ebuild b/sci-chemistry/ambertools/ambertools-1.5-r2.ebuild
new file mode 100644
index 0000000..39413fd
--- /dev/null
+++ b/sci-chemistry/ambertools/ambertools-1.5-r2.ebuild
@@ -0,0 +1,156 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ambertools/ambertools-1.5-r1.ebuild,v 1.2 2011/08/02 14:42:37 alexxy Exp $
+
+EAPI=4
+
+inherit eutils fortran-2 toolchain-funcs
+
+DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
+HOMEPAGE="http://ambermd.org/#AmberTools"
+SRC_URI="
+ AmberTools-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="openmp X"
+
+RESTRICT="fetch"
+
+RDEPEND="
+ virtual/cblas
+ virtual/lapack
+ sci-libs/clapack
+ sci-libs/arpack
+ sci-libs/cifparse-obj
+ sci-chemistry/mopac7
+ sci-libs/netcdf
+ sci-libs/fftw:2.1
+ sci-chemistry/reduce
+ virtual/fortran"
+DEPEND="${RDEPEND}
+ dev-util/byacc
+ dev-libs/libf2c
+ sys-devel/ucpp"
+S="${WORKDIR}/amber11"
+
+pkg_nofetch() {
+ einfo "Go to ${HOMEPAGE} and get ${A}"
+ einfo "Place it in ${DISTDIR}"
+}
+
+pkg_setup() {
+ fortran-2_pkg_setup
+ if use openmp; then
+ tc-has-openmp || \
+ die "Please select an openmp capable compiler like gcc[openmp]"
+ fi
+ AMBERHOME="${S}"
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${P}-bugfix_1-21.patch" \
+ "${FILESDIR}/${P}-gentoo2.patch"
+ cd "${S}"/AmberTools/src
+ rm -r \
+ arpack \
+ blas \
+ byacc \
+ lapack \
+ fftw-2.1.5 \
+ fftw-3.2.2 \
+ c9x-complex \
+ cifparse \
+ netcdf \
+ pnetcdf \
+ reduce \
+ ucpp-1.3 \
+ || die
+}
+
+src_configure() {
+ cd "${S}"/AmberTools/src
+ sed -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
+ -e "s:\\\\\$(LIBDIR)/lapack.a:$(pkg-config lapack --libs) -lclapack:g" \
+ -e "s:\\\\\$(LIBDIR)/blas.a:$(pkg-config blas cblas --libs):g" \
+ -e "s:\\\\\$(LIBDIR)/libdrfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
+ -e "s:\\\\\$(LIBDIR)/libdfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
+ -e "s:GENTOO_CFLAGS:${CFLAGS} -DBINTRAJ :g" \
+ -e "s:GENTOO_CXXFLAGS:${CXXFLAGS}:g" \
+ -e "s:GENTOO_FFLAGS:${FFLAGS}:g" \
+ -e "s:GENTOO_LDFLAGS:${LDFLAGS}:g" \
+ -e "s:fc=g77:fc=$(tc-getFC):g" \
+ -e "s:\$netcdflib:$(pkg-config netcdf --libs):g" \
+ -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
+ -i configure || die
+ sed -e "s:arsecond_:arscnd_:g" \
+ -i sff/time.c \
+ -i sff/sff.h \
+ -i sff/sff.c || die
+ sed -e "s:\$(NAB):\$(NAB) -lrfftw:g" \
+ -i nss/Makefile || die
+
+ local myconf
+
+ use X || myconf="${myconf} -noX11"
+
+ use openmp && myconf="${myconf} -openmp"
+
+ ./configure \
+ ${myconf} \
+ -nobintraj \
+ -nomdgx \
+ -nomtkpp \
+ -nopython \
+ -nosleap \
+ gnu
+}
+
+src_compile() {
+ cd "${S}"/AmberTools/src
+ emake || die
+}
+
+src_test() {
+ cd "${S}"/AmberTools/test
+ make test || die
+}
+
+src_install() {
+ rm -r bin/chemistry bin/MMPBSA_mods
+ rm bin/ante-MMPBSA.py bin/extractFrcmod.py
+
+ for x in bin/*
+ do dobin ${x} || die
+ done
+
+ dobin AmberTools/src/antechamber/mopac.sh
+ sed -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
+ -i "${ED}/usr/bin/mopac.sh" || die
+
+ # Make symlinks untill binpath for amber will be fixed
+ dodir /usr/share/${PN}/bin
+ cd "${ED}/usr/bin"
+ for x in *
+ do dosym /usr/bin/${x} /usr/share/${PN}/bin/${x}
+ done
+ cd "${S}"
+
+ dodoc doc/AmberTools.pdf doc/leap_pg.pdf
+ dolib.a lib/*
+ insinto /usr/include/${PN}
+ doins include/*
+ insinto /usr/share/${PN}
+ doins -r dat
+ cd AmberTools
+ doins -r benchmarks
+ doins -r examples
+ doins -r test
+
+ cat >> "${T}"/99ambertools <<- EOF
+ AMBERHOME="${EPREFIX}/usr/share/ambertools"
+ EOF
+ doenvd "${T}"/99ambertools
+}
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_1-21.patch b/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_1-21.patch
new file mode 100644
index 0000000..911bc4d
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_1-21.patch
@@ -0,0 +1,5330 @@
+diff -urN amber11.orig/AmberTools/src/configure amber11/AmberTools/src/configure
+--- amber11.orig/AmberTools/src/configure 2011-04-14 15:30:55.000000000 +0300
++++ amber11/AmberTools/src/configure 2011-10-25 15:01:28.222288537 +0300
+@@ -650,7 +650,7 @@
+ if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
+ pmemd_cu_includes='-I$(CUDA_HOME)/include -IB40C -IB40C/KernelCommon'
+ pmemd_cu_defines='-DCUDA'
+- pmemd_cu_libs='-L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcufft -lcudart ./cuda/cuda.a'
++ pmemd_cu_libs='-L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcurand -lcufft -lcudart ./cuda/cuda.a'
+ if [ "$optimise" = 'no' ]; then
+ nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O0 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20'
+ else
+@@ -909,7 +909,7 @@
+
+ pmemd_cu_includes='-I$(CUDA_HOME)/include -IB40C -IB40C/KernelCommon'
+ pmemd_cu_defines='-DCUDA'
+- pmemd_cu_libs='-L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcufft -lcudart ./cuda/cuda.a'
++ pmemd_cu_libs='-L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcurand -lcufft -lcudart ./cuda/cuda.a'
+ if [ "$optimise" = 'yes' ]; then
+ nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O3 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20'
+ else
+@@ -2111,21 +2111,21 @@
+ echo "Change to \$AMBERHOME/src/ and type 'make clean' followed by"
+ echo "'make parallel_win'."
+ elif [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
+- echo "The next step is to cd to ../../src and type 'make install'"
++ echo "The next step is to cd to ../../src and type 'make $installtype'"
+ else
+ echo "If you have amber11, the most common next step is to "
+- echo "'cd ../../src; make clean; make install'. See the Users' Manual"
++ echo "'cd ../../src; make clean; make $installtype'. See the Users' Manual"
+ echo "for information on building a parallel version of AmberTools"
+ fi
+ elif [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
+- echo "The next step is to cd to ../../src and type 'make install'"
++ echo "The next step is to cd to ../../src and type 'make $installtype'"
+ elif [ "$windows" = 'yes' ]; then
+ echo "The next step is to switch to a dos shell with ifort enabled."
+ echo "Change to \$AMBERHOME/src/ and type 'make serial_win'."
+ elif [ "$openmp" = 'yes' ]; then
+ echo "The next step is to type 'make nabonly'"
+ else
+- echo "The next step is to type 'make install'"
++ echo "The next step is to type 'make $installtype'"
+ fi
+ echo " "
+
+@@ -2149,7 +2149,7 @@
+ echo " NOTE: after installing AmberTools, if you want to compile"
+ echo " Amber11 using AmberTools 1.5, you must run the "
+ echo " AT15_Amber11.py script first, e.g.:"
+- echo " cd $AMBERHOME; ./AT15_Amber11.py; make $installtype"
++ echo " cd $AMBERHOME; ./AT15_Amber11.py; cd src; make $installtype"
+ echo " (See the Amber11 Users' Manual for full instructions,"
+ echo " and be sure to have a backup, since the AT15_Amber11.py"
+ echo " script will modify your Amber11 files.)"
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Center.cpp amber11/AmberTools/src/cpptraj/src/Action_Center.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/Action_Center.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Action_Center.cpp 2011-10-25 15:01:28.108288642 +0300
+@@ -72,7 +72,7 @@
+ // else
+ // mass = NULL;
+
+- if (!origin && P->ifbox==0) {
++ if (!origin && P->BoxType==0) {
+ mprintf(" Error: Center::setup: Box center specified but no box information.\n");
+ //fprintf(stdout," Centering on origin.\n");
+ return 1;
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Closest.cpp amber11/AmberTools/src/cpptraj/src/Action_Closest.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/Action_Closest.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Action_Closest.cpp 2011-10-25 15:01:28.108288642 +0300
+@@ -181,8 +181,8 @@
+ // NOTE: Should box be figured out from read-in coords?
+ imageType = 0;
+ if (!noimage) {
+- imageType = P->ifbox;
+- if (P->ifbox==0) {
++ imageType = P->BoxType;
++ if (P->BoxType==0) {
+ mprintf(" Warning: Closest::setup: ");
+ mprintf(" Imaging specified but no box information in prmtop %s\n",P->parmName);
+ mprintf(" No imaging can occur..\n");
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Distance.cpp amber11/AmberTools/src/cpptraj/src/Action_Distance.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/Action_Distance.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Action_Distance.cpp 2011-10-25 15:01:28.194288563 +0300
+@@ -57,8 +57,6 @@
+ mprintf(" DISTANCE: %s to %s",Mask1.maskString, Mask2.maskString);
+ if (noimage)
+ mprintf(", non-imaged");
+- else
+- mprintf(", imaged");
+ if (useMass)
+ mprintf(", center of mass");
+ else
+@@ -68,6 +66,11 @@
+ return 0;
+ }
+
++/*
++ * Distance::setup()
++ * Determine what atoms each mask pertains to for the current parm file.
++ * Also determine whether imaging should be performed.
++ */
+ int Distance::setup() {
+
+ if ( Mask1.SetupMask(P,debug) ) return 1;
+@@ -89,11 +92,19 @@
+ // Check imaging - check box based on prmtop box
+ imageType = 0;
+ if (!noimage) {
+- imageType = P->ifbox;
+- if (P->ifbox==0 && debug>0) {
++ imageType = P->BoxType;
++ if (P->BoxType==0 && debug>0) {
+ mprintf(" Warning: No box info in %s, disabling imaging.\n",P->parmName);
+ }
+ }
++
++ // Print imaging info for this parm
++ mprintf(" DISTANCE: %s to %s",Mask1.maskString, Mask2.maskString);
++ if (imageType > 0)
++ mprintf(", imaged");
++ else
++ mprintf(", imaging off");
++ mprintf(".\n");
+
+ return 0;
+ }
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_DSSP.cpp amber11/AmberTools/src/cpptraj/src/Action_DSSP.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/Action_DSSP.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Action_DSSP.cpp 2011-10-25 15:01:28.195288561 +0300
+@@ -76,7 +76,7 @@
+ int selected, atom, res;
+ Residue RES;
+
+- // Set up mask
++ // Set up mask for this parm
+ if ( Mask.SetupMask(P,debug) ) return 1;
+ if ( Mask.None() ) {
+ mprintf(" Error: DSSP::setup: Mask has no atoms.\n");
+@@ -90,25 +90,25 @@
+ Nres=P->nres;
+ //mprintf(" DSSP: Setting up for %i residues.\n",Nres);
+
+- // Free up SecStruct if previously allocated.
+- // NOTE: In action setup, should check if Parm has really changed...
+- SecStruct.clear();
++ // Set up for each residue of the current Parm if not already set-up.
+ for (res = 0; res < Nres; res++) {
+- RES.sstype=SECSTRUCT_NULL;
+- RES.isSelected=false;
+- RES.C=-1;
+- RES.O=-1;
+- RES.N=-1;
+- RES.H=-1;
+- RES.CO_HN_Hbond.assign( Nres, 0 );
+- RES.SSprob[0]=0.0;
+- RES.SSprob[1]=0.0;
+- RES.SSprob[2]=0.0;
+- RES.SSprob[3]=0.0;
+- RES.SSprob[4]=0.0;
+- RES.SSprob[5]=0.0;
+- RES.SSprob[6]=0.0;
+- SecStruct.push_back(RES);
++ if (res>=(int)SecStruct.size()) {
++ RES.sstype=SECSTRUCT_NULL;
++ RES.isSelected=false;
++ RES.C=-1;
++ RES.O=-1;
++ RES.N=-1;
++ RES.H=-1;
++ RES.CO_HN_Hbond.assign( Nres, 0 );
++ RES.SSprob[0]=0.0;
++ RES.SSprob[1]=0.0;
++ RES.SSprob[2]=0.0;
++ RES.SSprob[3]=0.0;
++ RES.SSprob[4]=0.0;
++ RES.SSprob[5]=0.0;
++ RES.SSprob[6]=0.0;
++ SecStruct.push_back(RES);
++ }
+ }
+
+ // Go through all atoms in mask. Set up a residue for each C, O, N, and H atom
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Image.cpp amber11/AmberTools/src/cpptraj/src/Action_Image.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/Action_Image.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Action_Image.cpp 2011-10-25 15:01:28.110288640 +0300
+@@ -98,14 +98,14 @@
+ useMass = false;
+ }
+
+- if (P->ifbox==0) {
++ if (P->BoxType==0) {
+ mprintf(" Error: Image::setup: Parm %s does not contain box information.\n",
+ P->parmName);
+ return 1;
+ }
+
+ ortho = false;
+- if (P->ifbox==1 && triclinic==OFF) ortho=true;
++ if (P->BoxType==1 && triclinic==OFF) ortho=true;
+
+ if (triclinic == FAMILIAR) {
+ if (ComMask!=NULL) {
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Outtraj.cpp amber11/AmberTools/src/cpptraj/src/Action_Outtraj.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/Action_Outtraj.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Action_Outtraj.cpp 2011-10-25 15:01:28.129288623 +0300
+@@ -6,6 +6,9 @@
+ // CONSTRUCTOR
+ Outtraj::Outtraj() {
+ //fprintf(stderr,"Outtraj Con\n");
++ min=0.0;
++ max=0.0;
++ Dset=NULL;
+ }
+
+ // DESTRUCTOR
+@@ -13,11 +16,40 @@
+
+ /*
+ * Outtraj::init()
+- * Action wrapper for trajout
++ * Action wrapper for trajout.
++ * Expected call: outtraj <filename> [ trajout args ]
++ * [maxmin <dataset> min <min> max <max>
+ */
+ int Outtraj::init() {
++ char *datasetName;
++
++#ifdef MPI
++ mprintf("ERROR: OUTTRAJ currently not functional with MPI.\n");
++ return 1;
++#endif
++
++ mprintf(" OUTTRAJ: Will write to [%s]\n",A->Arg(1));
++ outtraj.SetDebug(debug);
++ // If maxmin, get the name of the dataset as well as the max and min values.
++ datasetName = A->getKeyString("maxmin",NULL);
++ if (datasetName!=NULL) {
++ Dset = DSL->Get(datasetName);
++ if (Dset==NULL) {
++ mprintf("Error: Outtraj maxmin: Could not get dataset %s\n",datasetName);
++ return 1;
++ } else {
++ // Currently dont allow for string datasets
++ if (Dset->Type()==STRING) {
++ mprintf("Error: Outtraj maxmin: String dataset (%s) not supported.\n",datasetName);
++ return 1;
++ }
++ max = A->getKeyDouble("max",0.0);
++ min = A->getKeyDouble("min",0.0);
++ mprintf(" maxmin: Printing trajectory frames based on %lf <= %s <= %lf\n",
++ min, datasetName, max);
++ }
++ }
+
+- mprintf(" OUTTRAJ: [%s]\n",A->ArgLine());
+ return ( outtraj.Add(A,PFL,worldsize) );
+ }
+
+@@ -33,8 +65,32 @@
+ * Outtraj::action()
+ */
+ int Outtraj::action() {
++ double dVal;
++ int iVal;
+
+- return ( outtraj.Write(currentFrame, F, P) );
++ // If dataset defined, check if frame is within max/min
++ if (Dset!=NULL) {
++ if (Dset->Type() == DOUBLE) {
++ if (Dset->Get(&dVal, currentFrame)) return 1;
++ } else if (Dset->Type() == INT) {
++ if (Dset->Get(&iVal, currentFrame)) return 1;
++ dVal = (double) iVal;
++ } else
++ return 1;
++ //mprintf("DBG: maxmin: dVal = %lf\n",dVal);
++ // If value from dataset not within min/max, exit now.
++ if (dVal < min || dVal > max) return 0;
++ }
++ if ( outtraj.Write(currentFrame, F, P) != 0 ) return 1;
++ return 0;
+ }
+
++/*
++ * Outtraj::print()
++ * Close trajectory.
++ */
++void Outtraj::print() {
++ mprintf(" OUTTRAJ: [%s] Wrote %i frames.\n",A->Arg(1),outtraj.front()->CurrentFrame());
++ outtraj.Close();
++}
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Outtraj.h amber11/AmberTools/src/cpptraj/src/Action_Outtraj.h
+--- amber11.orig/AmberTools/src/cpptraj/src/Action_Outtraj.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Action_Outtraj.h 2011-10-25 15:01:28.129288623 +0300
+@@ -6,6 +6,9 @@
+
+ class Outtraj: public Action {
+ TrajoutList outtraj;
++ double max;
++ double min;
++ DataSet *Dset;
+ public:
+ Outtraj();
+ ~Outtraj();
+@@ -13,5 +16,6 @@
+ int init();
+ //int setup();
+ int action();
++ void print();
+ };
+ #endif
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Rms2d.cpp amber11/AmberTools/src/cpptraj/src/Action_Rms2d.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/Action_Rms2d.cpp 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Action_Rms2d.cpp 2011-10-25 15:01:28.074288674 +0300
+@@ -0,0 +1,71 @@
++// Rms2d
++#include "Action_Rms2d.h"
++#include "CpptrajStdio.h"
++
++// CONSTRUCTOR
++Rms2d::Rms2d() {
++ //fprintf(stderr,"Rms2d Con\n");
++ nofit=false;
++ useMass=false;
++}
++
++// DESTRUCTOR
++Rms2d::~Rms2d() { }
++
++/*
++ * Rms2d::init()
++ * Expected call: rms2d <mask> <refmask> [rmsout filename] [mass] [nofit]
++ * Dataset name will be the last arg checked for. Check order is:
++ * 1) Keywords
++ * 2) Masks
++ * 3) Dataset name
++ */
++int Rms2d::init() {
++ char *mask0, *maskRef;
++
++ // Get keywords
++ nofit = A->hasKey("nofit");
++ useMass = A->hasKey("mass");
++ rmsdFile = A->getKeyString("rmsout",NULL);
++
++ // Get the RMS mask string for frames
++ mask0 = A->getNextMask();
++ FrameMask.SetMaskString(mask0);
++ // Get RMS mask string for reference
++ maskRef = A->getNextMask();
++ // If no reference mask specified, make same as RMS mask
++ if (maskRef==NULL) maskRef=mask0;
++ RefMask.SetMaskString(maskRef);
++
++ mprintf(" RMS2D: (%s) to (%s)",FrameMask.maskString,RefMask.maskString);
++ if (nofit)
++ mprintf(" (no fitting)");
++ if (useMass)
++ mprintf(" (mass-weighted)");
++ if (rmsdFile!=NULL)
++ mprintf(" output to %s",rmsdFile);
++ mprintf("\n");
++
++ return 0;
++}
++
++/*
++ * Rms2d::setup()
++ * Not important for Rms2d, initial pass is only for storing frames.
++ */
++int Rms2d::setup() {
++ return 0;
++}
++
++/*
++ * Rms2d::action()
++ * Store current frame as a reference frame.
++ */
++int Rms2d::action() {
++
++ ReferenceFrames.Add(F,P);
++
++ return 0;
++}
++
++
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Rms2d.h amber11/AmberTools/src/cpptraj/src/Action_Rms2d.h
+--- amber11.orig/AmberTools/src/cpptraj/src/Action_Rms2d.h 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Action_Rms2d.h 2011-10-25 15:01:28.075288673 +0300
+@@ -0,0 +1,21 @@
++#ifndef INC_ACTION_RMS2D_H
++#define INC_ACTION_RMS2D_H
++// Rms2d
++#include "Action.h"
++
++class Rms2d: public Action {
++ FrameList ReferenceFrames;
++ bool nofit;
++ bool useMass;
++ AtomMask RefMask;
++ AtomMask FrameMask;
++ char *rmsdFile;
++ public:
++ Rms2d();
++ ~Rms2d();
++
++ int init();
++ int setup();
++ int action();
++};
++#endif
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Rmsd.cpp amber11/AmberTools/src/cpptraj/src/Action_Rmsd.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/Action_Rmsd.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Action_Rmsd.cpp 2011-10-25 15:01:28.229288531 +0300
+@@ -256,6 +256,7 @@
+ PerResRMSD=new DataSetList();
+ resName[4]='\0';
+ for (it=ResRange.begin(); it!=ResRange.end(); it++) {
++ //res = *it - 1; // res is the internal resnumber, *it the user resnumber
+ // Get corresponding reference resnum - if none specified use current res
+ if (RefRange.empty())
+ refRes = (*it);
+@@ -263,7 +264,18 @@
+ refRes = RefRange.front();
+ RefRange.pop_front();
+ }
+- //res = *it - 1; // res is the internal resnumber, *it the user resnumber
++
++ // Check if either the residue num or the reference residue num out of range.
++ if ( (*it) < 1 || (*it) > P->nres) {
++ mprintf(" Warning: Rmsd: perres: Specified residue # %i is out of range.\n",*it);
++ continue;
++ }
++ if ( refRes < 1 || refRes > P->nres ) {
++ mprintf(" Warning: Rmsd: perres: Specified reference residue # %i is out of range.\n",
++ refRes);
++ continue;
++ }
++
+ // Setup Dataset Name to be name of this residue
+ P->ResName(resName,(*it)-1);
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberNetcdf.cpp amber11/AmberTools/src/cpptraj/src/AmberNetcdf.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/AmberNetcdf.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/AmberNetcdf.cpp 2011-10-25 15:01:28.131288621 +0300
+@@ -49,6 +49,7 @@
+ * and close calls.
+ */
+ void AmberNetcdf::close() {
++ if (ncid<0) return;
+ checkNCerr(nc_close(ncid),"Closing netcdf file.");
+ if (debug>0) rprintf("Successfully closed ncid %i\n",ncid);
+ ncid=-1;
+@@ -92,8 +93,10 @@
+ * Open the netcdf file, read all dimension and variable IDs, close.
+ */
+ int AmberNetcdf::SetupRead() {
+- char *attrText; // For checking conventions and version
+- int spatial; // For checking spatial dimensions
++ char *attrText; // For checking conventions and version
++ int spatial; // For checking spatial dimensions
++ double box[6]; // For checking box type
++ size_t start[3], count[3]; // For checking box type
+
+ if (open()) return 1;
+
+@@ -147,15 +150,15 @@
+ if ( nc_inq_varid(ncid,"cell_lengths",&cellLengthVID)==NC_NOERR ) {
+ if (checkNCerr(nc_inq_varid(ncid,"cell_angles",&cellAngleVID),
+ "Getting cell angles.")!=0) return 1;
+- if (debug>0) mprintf(" Netcdf Box information found.\n");
+- if (P->ifbox==0) {
+- mprintf("Warning: Netcdf file contains box info but no box info found\n");
+- mprintf(" in associated parmfile %s; defaulting to orthogonal.\n",
+- P->parmName);
+- isBox=1;
+- } else {
+- isBox=P->ifbox;
+- }
++ if (debug>0) mprintf(" Netcdf Box information found.\n");
++ // Determine box type from angles
++ start[0]=0; start[1]=0; start[2]=0;
++ count[0]=1; count[1]=3; count[2]=0;
++ if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, box),
++ "Getting cell lengths.")!=0 ) return 1;
++ if ( checkNCerr(nc_get_vara_double(ncid, cellAngleVID, start, count, box+3),
++ "Getting cell angles.")!=0 ) return 1;
++ CheckBoxType(box);
+ }
+
+ // Replica Temperatures
+@@ -258,7 +261,7 @@
+ "Defining cell angular variable.")) return 1;
+
+ // Box Info
+- if (isBox>0) {
++ if (BoxType!=0) {
+ dimensionID[0]=frameDID;
+ dimensionID[1]=cell_spatialDID;
+ if (checkNCerr(nc_def_var(ncid,"cell_lengths",NC_DOUBLE,2,dimensionID,&cellLengthVID),
+@@ -362,7 +365,7 @@
+ "Getting frame %i",set)!=0 ) return 1;
+
+ // Read box info
+- if (isBox!=0) {
++ if (BoxType!=0) {
+ count [1]=3;
+ count [2]=0;
+ if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, F->box),
+@@ -399,7 +402,7 @@
+ F->frameToFloat(Coord);
+
+ // write coords
+- start[0]=set;
++ start[0]=currentFrame;
+ start[1]=0;
+ start[2]=0;
+ count[0]=1;
+@@ -409,7 +412,7 @@
+ "Netcdf Writing frame %i",set)) return 1;
+
+ // write box
+- if (isBox>0 && cellLengthVID!=-1) {
++ if (BoxType!=0 && cellLengthVID!=-1) {
+ count[1]=3;
+ count[2]=0;
+ if (checkNCerr(nc_put_vara_double(ncid,cellLengthVID,start,count,F->box),
+@@ -427,6 +430,8 @@
+
+ nc_sync(ncid); // Necessary after every write??
+
++ currentFrame++;
++
+ return 0;
+ }
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberParm.cpp amber11/AmberTools/src/cpptraj/src/AmberParm.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/AmberParm.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/AmberParm.cpp 2011-10-25 15:01:28.231288529 +0300
+@@ -1,6 +1,12 @@
+ /* AmberParm.cpp
+- * Class that holds parameter information. Can be read in from Amber Topology
+- * or PDB files.
++ * Class that holds parameter information. Can be read in from Amber Topology,
++ * PDB, or Mol2 files (implemented in the ReadParmXXX functions). The following
++ * parameters of AmberParm must always be set:
++ * The NATOM, NRES, and IFBOX entries of the values array.
++ * The names, resnames, resnums arrays.
++ * The natom and nres variables.
++ * NOTES:
++ * Eventually make the mol2 read parm function use the AddBond function.
+ */
+ #include <cstdlib>
+ #include <cstring>
+@@ -11,7 +17,7 @@
+ #include "CpptrajStdio.h"
+
+ #define AMBERPOINTERS 31
+-
++#define TRUNCOCTBETA 109.4712206344906917365733534097672
+ #define ELECTOAMBER 18.2223
+ #define AMBERTOELEC 1/ELECTOAMBER
+ // =============================================================
+@@ -21,7 +27,7 @@
+ * Given a residue number, set buffer with residue name. Replace blanks with _
+ */
+ void AmberParm::ResName(char *buffer, int res) {
+- if (res<0 || res>nres) return;
++ if (res<0 || res>=nres) return;
+ strcpy(buffer, resnames[res]);
+ if (buffer[3]==' ') buffer[3]='_';
+ }
+@@ -203,7 +209,9 @@
+ bondsh=NULL;
+ types=NULL;
+ atomsPerMol=NULL;
+- Box=NULL;
++ Box[0]=0.0; Box[1]=0.0; Box[2]=0.0;
++ Box[3]=0.0; Box[4]=0.0; Box[5]=0.0;
++ BoxType=0;
+ pindex=0;
+ parmFrames=0;
+ outFrame=0;
+@@ -217,7 +225,6 @@
+ solventMoleculeStop=NULL;
+ natom=0;
+ nres=0;
+- ifbox=0;
+ parmName=NULL;
+ SurfaceInfo=NULL;
+ }
+@@ -234,7 +241,6 @@
+ if (bonds!=NULL) free(bonds);
+ if (bondsh!=NULL) free(bondsh);
+ if (atomsPerMol!=NULL) free(atomsPerMol);
+- if (Box!=NULL) free(Box);
+ if (solventMoleculeStart!=NULL) free(solventMoleculeStart);
+ if (solventMoleculeStop!=NULL) free(solventMoleculeStop);
+ if (solventMask!=NULL) free(solventMask);
+@@ -271,54 +277,7 @@
+ return NULL;
+ }
+
+-/*
+- * AmberParm::OpenParm()
+- * Attempt to open file and read in parameters.
+- */
+-int AmberParm::OpenParm(char *filename) {
+- if ( File.SetupFile(filename,READ,UNKNOWN_FORMAT, UNKNOWN_TYPE,debug) ) return 1;
+-
+- // Copy parm filename to parmName. Separate from File.filename in case of stripped parm
+- parmName=(char*) malloc( (strlen(File.basefilename)+1) * sizeof(char));
+- strcpy(parmName,File.basefilename);
+-
+- if ( File.OpenFile() ) return 1;
+-
+- switch (File.fileFormat) {
+- case AMBERPARM : if (ReadParmAmber()) return 1; break;
+- case PDBFILE : if (ReadParmPDB() ) return 1; break;
+- case MOL2FILE : if (ReadParmMol2() ) return 1; break;
+- default:
+- rprintf("Unknown parameter file type: %s\n",File.filename);
+- return 1;
+- }
+-
+- File.CloseFile();
+-
+- // Create a last dummy residue in resnums that holds natom, which would be
+- // the atom number of the next residue if it existed. Atom #s in resnums
+- // should correspond with cpptraj atom #s (start from 0) instead of Amber
+- // atom #s (start from 1).
+- // Do this to be consistent with ptrajmask selection behavior - saves an
+- // if-then statement.
+- resnums=(int*) realloc(resnums,(nres+1)*sizeof(int));
+- resnums[nres]=natom;
+- // DEBUG
+- //fprintf(stdout,"==== DEBUG ==== Resnums for %s:\n",File.filename);
+- //for (err=0; err<nres; err++)
+- // fprintf(stdout," %i: %i\n",err,resnums[err]);
+-
+- // Set up solvent information
+- SetSolventInfo();
+-
+- if (debug>0) {
+- mprintf(" Number of atoms= %i\n",natom);
+- mprintf(" Number of residues= %i\n",nres);
+- }
+-
+- return 0;
+-}
+-
++// ---------========= ROUTINES PERTAINING TO SURFACE AREA =========---------
+ /*
+ * AmberParm::AssignLCPO()
+ * Assign parameters for LCPO method. All radii are incremented by 1.4 Ang.
+@@ -478,6 +437,7 @@
+ return 0;
+ }
+
++// ---------========= ROUTINES PERTAINING TO SOLVENT INFO =========---------
+ /*
+ * AmberParm::SetSolventInfo()
+ * Assuming atomsPerMol has been read in, set solvent information.
+@@ -536,7 +496,56 @@
+
+ return 0;
+ }
+-
++
++// --------========= ROUTINES PERTAINING TO READING PARAMETERS =========--------
++/*
++ * AmberParm::OpenParm()
++ * Attempt to open file and read in parameters.
++ */
++int AmberParm::OpenParm(char *filename) {
++ if ( File.SetupFile(filename,READ,UNKNOWN_FORMAT, UNKNOWN_TYPE,debug) ) return 1;
++
++ // Copy parm filename to parmName. Separate from File.filename in case of stripped parm
++ parmName=(char*) malloc( (strlen(File.basefilename)+1) * sizeof(char));
++ strcpy(parmName,File.basefilename);
++
++ if ( File.OpenFile() ) return 1;
++
++ switch (File.fileFormat) {
++ case AMBERPARM : if (ReadParmAmber()) return 1; break;
++ case PDBFILE : if (ReadParmPDB() ) return 1; break;
++ case MOL2FILE : if (ReadParmMol2() ) return 1; break;
++ default:
++ rprintf("Unknown parameter file type: %s\n",File.filename);
++ return 1;
++ }
++
++ File.CloseFile();
++
++ // Create a last dummy residue in resnums that holds natom, which would be
++ // the atom number of the next residue if it existed. Atom #s in resnums
++ // should correspond with cpptraj atom #s (start from 0) instead of Amber
++ // atom #s (start from 1).
++ // Do this to be consistent with ptrajmask selection behavior - saves an
++ // if-then statement.
++ resnums=(int*) realloc(resnums,(nres+1)*sizeof(int));
++ resnums[nres]=natom;
++ // DEBUG
++ //fprintf(stdout,"==== DEBUG ==== Resnums for %s:\n",File.filename);
++ //for (err=0; err<nres; err++)
++ // fprintf(stdout," %i: %i\n",err,resnums[err]);
++
++ // Set up solvent information
++ SetSolventInfo();
++
++ if (debug>0) {
++ mprintf(" Number of atoms= %i\n",natom);
++ mprintf(" Number of residues= %i\n",nres);
++ }
++
++ return 0;
++}
++
+ /*
+ * AmberParm::ReadParmAmber()
+ * Read parameters from Amber Topology file
+@@ -544,6 +553,7 @@
+ int AmberParm::ReadParmAmber() {
+ int err, atom;
+ int *solvent_pointer;
++ double *boxFromParm;
+
+ if (debug>0) mprintf("Reading Amber Topology file %s\n",parmName);
+
+@@ -555,7 +565,6 @@
+
+ natom=values[NATOM];
+ nres=values[NRES];
+- ifbox=values[IFBOX];
+ if (debug>0)
+ mprintf(" Amber top contains %i atoms, %i residues.\n",natom,nres);
+
+@@ -583,7 +592,8 @@
+ if (bonds==NULL) {mprintf("Error in bonds w/o H.\n"); err++;}
+ bondsh=(int*) getFlagFileValues("BONDS_INC_HYDROGEN",values[NBONH]*3);
+ if (bondsh==NULL) {mprintf("Error in bonds inc H.\n"); err++;}
+- if (ifbox>0) {
++ // Get solvent info if IFBOX>0
++ if (values[IFBOX]>0) {
+ solvent_pointer=(int*) getFlagFileValues("SOLVENT_POINTERS",3);
+ if (solvent_pointer==NULL) {
+ mprintf("Error in solvent pointers.\n");
+@@ -596,12 +606,20 @@
+ }
+ atomsPerMol=(int*) getFlagFileValues("ATOMS_PER_MOLECULE",molecules);
+ if (atomsPerMol==NULL) {mprintf("Error in atoms per molecule.\n"); err++;}
+- Box=(double*) getFlagFileValues("BOX_DIMENSIONS",4);
+- if (Box==NULL) {mprintf("Error in Box information.\n"); err++;}
++ // boxFromParm = {OLDBETA, BOX(1), BOX(2), BOX(3)}
++ boxFromParm=(double*) getFlagFileValues("BOX_DIMENSIONS",4);
++ if (boxFromParm==NULL) {mprintf("Error in Box information.\n"); err++;}
++ // Determine box type: 1-Ortho, 2-Nonortho
++ SetBoxInfo(boxFromParm[0],boxFromParm[1],boxFromParm[2],boxFromParm[3]);
++ free(boxFromParm);
+ if (debug>0) {
+ mprintf(" %s contains box info: %i mols, first solvent mol is %i\n",
+ parmName, molecules, firstSolvMol);
+- mprintf(" BOX: %lf %lf %lf %lf\n",Box[0],Box[1],Box[2],Box[3]);
++ mprintf(" BOX: %lf %lf %lf | %lf %lf %lf\n",Box[0],Box[1],Box[2],Box[3],Box[4],Box[5]);
++ if (BoxType==1)
++ mprintf(" Box is orthogonal.\n");
++ else
++ mprintf(" Box is non-orthogonal.\n");
+ }
+ }
+
+@@ -686,6 +704,7 @@
+ values = (int*) calloc(AMBERPOINTERS, sizeof(int));
+ values[NATOM] = natom;
+ values[NRES] = nres;
++ values[IFBOX] = 0;
+
+ if (debug>0)
+ mprintf(" PDB contains %i atoms, %i residues, %i molecules.\n",
+@@ -799,6 +818,7 @@
+ values[NRES] = nres;
+ values[NBONH] = numbondsh;
+ values[MBONA] = numbonds;
++ values[IFBOX] = 0;
+
+ mprintf(" Mol2 contains %i atoms, %i residues,\n", natom,nres);
+ mprintf(" %i bonds to H, %i other bonds.\n", numbondsh,numbonds);
+@@ -806,6 +826,61 @@
+ return 0;
+ }
+
++// ---------===========================================================---------
++/*
++ * AmberParm::SetBoxInfo()
++ * Given 3 box lengths and an angle determine the box type and set
++ * the box information. If called with negative beta, set no box.
++ * Currently recognized betas:
++ * 90.00 - Orthogonal
++ * 109.47 - Truncated octahedral
++ * 60.00 - Rhombic dodecahedron
++ * Any other beta just sets all angles to beta and a warning is printed.
++ */
++int AmberParm::SetBoxInfo(double beta, double bx, double by, double bz) {
++ int ifbox=0;
++
++ // Determine box type from beta (none, ortho, non-ortho (truncated oct/triclinic)
++ if (beta<=0.0) {
++ if (BoxType>0)
++ mprintf(" %s: Removing box information.\n",parmName);
++ BoxType=0;
++ ifbox=0;
++ Box[0]=0.0; Box[1]=0.0; Box[2]=0.0;
++ Box[3]=0.0; Box[4]=0.0; Box[5]=0.0;
++ } else if (beta == 90.0) {
++ BoxType=1;
++ ifbox=1;
++ Box[0]=bx; Box[1]=by; Box[2]=bz;
++ Box[3]=90.0; Box[4]=90.0; Box[5]=90.0;
++ if (debug>0) mprintf(" %s: Setting box to be orthogonal.\n",parmName);
++ } else if (beta > 109.47 && beta < 109.48) {
++ BoxType=2;
++ ifbox=2;
++ Box[0]=bx; Box[1]=by; Box[2]=bz;
++ //Box[3] = TRUNCOCTBETA;
++ Box[3] = beta;
++ Box[4]=Box[3]; Box[5]=Box[3];
++ if (debug>0) mprintf(" %s: Setting box to be a truncated octahedron, angle is %lf\n",
++ parmName,Box[3]);
++ } else if (beta == 60.0) {
++ BoxType=2;
++ ifbox=1;
++ Box[0]=bx; Box[1]=by; Box[2]=bz;
++ Box[3]=60.0; Box[4]=90.0; Box[5]=60.0;
++ if (debug>0)
++ mprintf(" %s: Setting box to be a rhombic dodecahedron, alpha=gamma=60.0, beta=90.0\n",
++ parmName);
++ } else {
++ BoxType=2;
++ ifbox=1;
++ Box[0]=bx; Box[1]=by; Box[2]=bz;
++ Box[3]=beta; Box[4]=beta; Box[5]=beta;
++ mprintf(" Warning: %s: Unrecognized box type, beta is %lf\n",beta);
++ }
++ return 0;
++}
++
+ /*
+ * AmberParm::AtomInfo()
+ * Print parm information for atom.
+@@ -829,8 +904,8 @@
+ */
+ void AmberParm::Info(char *buffer) {
+
+- sprintf(buffer,"%i atoms, %i res, box %i, %i mol, %i solvent mol, %i frames",
+- natom,nres,ifbox,molecules,solventMolecules,parmFrames);
++ sprintf(buffer,"%i atoms, %i res, boxtype %i, %i mol, %i solvent mol, %i frames",
++ natom,nres,BoxType,molecules,solventMolecules,parmFrames);
+ }
+
+ // NOTE: The following atomToX functions do not do any memory checks!
+@@ -963,6 +1038,7 @@
+ return bonds;
+ }
+
++// ---------===========================================================---------
+ /*
+ * AmberParm::modifyStateByMap()
+ * Currently only intended for use with AtomMap.
+@@ -1028,24 +1104,21 @@
+ // Set up new parm information
+ newParm->natom = this->natom;
+ newParm->nres = this->nres;
+- newParm->ifbox = this->ifbox;
+ newParm->parmFrames = this->parmFrames;
+
+ // Give mapped parm the same pindex as original parm
+ newParm->pindex = this->pindex;
+
+ // Copy box information
+- if (this->Box!=NULL) {
+- newParm->Box=(double*) malloc(4*sizeof(double));
+- for (int i=0; i<4; i++)
+- newParm->Box[i] = this->Box[i];
+- }
++ for (int i=0; i<6; i++)
++ newParm->Box[i] = this->Box[i];
++ newParm->BoxType=this->BoxType;
+
+ // Set values up
+ // NOTE: Eventually set all pointers up?
+ newParm->values[NATOM] = newParm->natom;
+ newParm->values[NRES] = newParm->nres;
+- newParm->values[IFBOX] = newParm->ifbox;
++ newParm->values[IFBOX] = this->values[IFBOX];
+
+ return newParm;
+ }
+@@ -1152,7 +1225,6 @@
+ // Set up new parm information
+ newParm->natom = j;
+ newParm->nres = jres+1;
+- newParm->ifbox = this->ifbox;
+ newParm->parmFrames = this->parmFrames;
+ if (this->molecules>0)
+ newParm->molecules = jmol+1;
+@@ -1184,26 +1256,25 @@
+ }
+
+ // Copy box information
+- if (this->Box!=NULL) {
+- newParm->Box=(double*) malloc(4*sizeof(double));
+- for (i=0; i<4; i++)
+- newParm->Box[i] = this->Box[i];
+- }
++ for (i=0; i<6; i++)
++ newParm->Box[i] = this->Box[i];
++ newParm->BoxType=this->BoxType;
+
+ // Set values up
+ // NOTE: Eventually set all pointers up?
+ newParm->values[NATOM] = newParm->natom;
+ newParm->values[NRES] = newParm->nres;
+- newParm->values[IFBOX] = newParm->ifbox;
++ newParm->values[IFBOX] = this->values[IFBOX];
+
+ mprintf(" New parmtop contains %i atoms.\n",newParm->natom);
+ mprintf(" %i residues.\n",newParm->nres);
+ mprintf(" %i molecules.\n",newParm->molecules);
+- mprintf(" %i solvent molcules.\n",newParm->solventMolecules);
++ mprintf(" %i solvent molecules.\n",newParm->solventMolecules);
+
+ return newParm;
+ }
+
++// ---------===========================================================---------
+ /*
+ * AmberParm::DataToBuffer()
+ * Return char buffer containing N data elements stored in I, D, or C with
+@@ -1267,6 +1338,7 @@
+ char *buffer;
+ int solvent_pointer[3];
+ int atom;
++ double parmBox[4];
+
+ if (parmName==NULL) return 1;
+
+@@ -1346,7 +1418,7 @@
+ }
+
+ // SOLVENT POINTERS
+- if (ifbox>0) {
++ if (values[IFBOX]>0) {
+ PrintFlagFormat(&outfile, "%FLAG SOLVENT_POINTERS", "%FORMAT(3I8)");
+ solvent_pointer[0]=finalSoluteRes;
+ solvent_pointer[1]=molecules;
+@@ -1360,8 +1432,12 @@
+ outfile.IO->Write(buffer, sizeof(char), BufferSize);
+
+ // BOX DIMENSIONS
++ parmBox[0] = Box[4]; // beta
++ parmBox[1] = Box[0]; // boxX
++ parmBox[2] = Box[1]; // boxY
++ parmBox[3] = Box[2]; // boxZ
+ PrintFlagFormat(&outfile, "%FLAG BOX_DIMENSIONS", "%FORMAT(5E16.8)");
+- buffer = DataToBuffer(buffer,"%FORMAT(5E16.8)", NULL, Box, NULL, 4);
++ buffer = DataToBuffer(buffer,"%FORMAT(5E16.8)", NULL, parmBox, NULL, 4);
+ outfile.IO->Write(buffer, sizeof(char), BufferSize);
+ }
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberParm.h amber11/AmberTools/src/cpptraj/src/AmberParm.h
+--- amber11.orig/AmberTools/src/cpptraj/src/AmberParm.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/AmberParm.h 2011-10-25 15:01:28.117288634 +0300
+@@ -75,14 +75,14 @@
+ int *resnums; // IPRES(NRES)
+ int natom; // NATOM
+ int nres; // NRES
+- int ifbox; // IFBOX
+ int finalSoluteRes; // IPTRES
+ int molecules; // NSPM
+ int firstSolvMol; // NSPSOL
+ int *atomsPerMol; // NSP(NSPM)
+ double *mass; // AMASS(NATOM)
+ double *charge; // CHARGE(NATOM)
+- double *Box; // OLDBETA, BOX(1), BOX(2), BOX(3)
++ double Box[6]; // X, Y, Z, alpha, beta, gamma
++ int BoxType; // 0: None, 1: Orthogonal, 2: Non-orthogonal
+ // From Ptraj
+ char *solventMask; // T for atoms in the solvent
+ int solventMolecules; // number of solvent molecules
+@@ -96,6 +96,7 @@
+ ~AmberParm();
+ void ResName(char *, int);
+ int OpenParm(char *);
++ int SetBoxInfo(double,double,double,double);
+ int SetSurfaceInfo();
+ int SetSolventInfo();
+ void AtomInfo(int);
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberRestart.cpp amber11/AmberTools/src/cpptraj/src/AmberRestart.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/AmberRestart.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/AmberRestart.cpp 2011-10-25 15:01:28.125288626 +0300
+@@ -109,7 +109,7 @@
+ frameSize+=frameSize;
+
+ // If box coords are present, allocate extra space for them
+- if (isBox>0) {
++ if (BoxType!=0) {
+ numBoxCoords=6;
+ frameSize+=((numBoxCoords*12)+1);
+ }
+@@ -167,13 +167,12 @@
+
+ // If 0 probably at EOF. No box or velo.
+ // } else if (lineSize==0) {
+- isBox=0;
++ BoxType=0;
+ hasVelocity=0;
+
+ // If 36 or 72 (+1 newline) box info.
+ } else if (lineSize==37 || lineSize==73) {
+- isBox=1;
+- numBoxCoords = (lineSize-1) / 12;
++ getBoxType(frameBuffer,lineSize);
+ hasVelocity=0;
+
+ // If filled framebuffer again, has velocity info. Check for box after velocity.
+@@ -182,15 +181,14 @@
+ if (File->IO->Gets(buffer,82)==0) {
+ lineSize=strlen(buffer);
+ if (lineSize==37 || lineSize==73) {
+- isBox=1;
+- numBoxCoords = (lineSize-1) / 12;
++ getBoxType(buffer,lineSize);
+ } else {
+ mprintf("Error: AmberRestart::SetupRead():\n");
+ mprintf(" Expect only 3 or 6 box coords in box coord line.\n");
+ return 1;
+ }
+ } else
+- isBox=0;
++ BoxType=0;
+
+ // Otherwise, who knows what was read?
+ } else {
+@@ -202,12 +200,12 @@
+
+ // Recalculate the frame size
+ if (hasVelocity) frameSize+=frameSize;
+- if (isBox) frameSize+=( (numBoxCoords*12) + 1 );
++ if (BoxType!=0) frameSize+=( (numBoxCoords*12) + 1 );
+ frameBuffer=(char*) realloc(frameBuffer, frameSize*sizeof(char));
+
+ if (debug > 0) {
+- mprintf(" Amber Restart isBox=%i hasVelocity=%i numBoxCoords=%i\n",
+- isBox,hasVelocity,numBoxCoords);
++ mprintf(" Amber Restart BoxType=%i hasVelocity=%i numBoxCoords=%i\n",
++ BoxType,hasVelocity,numBoxCoords);
+ mprintf(" Amber Restart frameSize= %i\n",frameSize);
+ }
+
+@@ -221,6 +219,20 @@
+ }
+
+ /*
++ * AmberRestart::getBoxType()
++ * Based on input buffer, determine box type and num box coords.
++ */
++void AmberRestart::getBoxType(char *boxline, int boxlineSize) {
++ double box[6];
++ numBoxCoords = (boxlineSize-1) / 12;
++ if (numBoxCoords>3) {
++ sscanf(boxline, "%8lf%8lf%8lf%8lf%8lf%8lf",box,box+1,box+2,box+3,box+4,box+5);
++ CheckBoxType(box);
++ } else
++ BoxType = P->BoxType;
++}
++
++/*
+ * AmberRestart::getFrame()
+ * Get the restart file frame. If velocities are present, read those too.
+ */
+@@ -251,7 +263,7 @@
+ //F->V->printAtomCoord(0);
+ }
+ // Convert box to Frame if present
+- if (isBox) {
++ if (BoxType!=0) {
+ if ( (bufferPosition = F->BufferToBox(bufferPosition, numBoxCoords, 12))==NULL ) {
+ mprintf("Error: AmberRestart::getFrame: * detected in box coordinates of %s\n",
+ trajfilename);
+@@ -287,7 +299,7 @@
+ if (F->V!=NULL) // NOTE: Use hasVelocity in addition/instead?
+ bufferPosition = F->V->FrameToBuffer(bufferPosition,"%12.7lf",12,6);
+ // Write box to buffer
+- if (isBox)
++ if (BoxType!=0)
+ bufferPosition = F->BoxToBuffer(bufferPosition, numBoxCoords, "%12.7lf",12);
+
+ //if (seekable) fseek(fp, titleSize+(set*frameSize),SEEK_SET);
+@@ -297,6 +309,8 @@
+
+ File->IO->Close();
+
++ currentFrame++;
++
+ return 0;
+ }
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberRestart.h amber11/AmberTools/src/cpptraj/src/AmberRestart.h
+--- amber11.orig/AmberTools/src/cpptraj/src/AmberRestart.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/AmberRestart.h 2011-10-25 15:01:28.118288633 +0300
+@@ -14,6 +14,7 @@
+
+ int SetupRead();
+ int SetupWrite();
++ void getBoxType(char *, int);
+
+ public:
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberRestartNC.cpp amber11/AmberTools/src/cpptraj/src/AmberRestartNC.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/AmberRestartNC.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/AmberRestartNC.cpp 2011-10-25 15:01:28.126288625 +0300
+@@ -60,15 +60,8 @@
+ /*
+ * AmberRestartNC::open()
+ * Open up Netcdf restart file and set all dimension and variable IDs.
+- * This is done every time the file is opened up since Im not sure
+- * the variable IDs stay the same throughout each opening.
+- * Could eventually be separated.
+- * NOTE: Replace attrText allocs with static buffer?
+ */
+ int AmberRestartNC::open() {
+- char *attrText; // For checking conventions and version
+- int spatial; // For checking spatial dimensions
+-
+ mprintf("DEBUG: AmberRestartNC::open() called for %s, ncid=%i\n",File->filename,ncid);
+ // If already open, return
+ if (ncid!=-1) return 0;
+@@ -94,6 +87,23 @@
+ // Netcdf files are always seekable
+ seekable=1;
+
++ return 0;
++}
++
++/*
++ * AmberRestartNC::SetupRead()
++ * Set up netcdf restart file for reading, get all variable and dimension IDs.
++ * Also check number of atoms against associated parmtop.
++ * NOTE: Replace attrText allocs with static buffer?
++ */
++int AmberRestartNC::SetupRead() {
++ char *attrText; // For checking conventions and version
++ int spatial; // For checking spatial dimensions
++ double box[6];
++ size_t start[2], count[2];
++
++ if (open()) return 1;
++
+ // Get global attributes
+ if (title==NULL) title = GetAttrText(ncid,NC_GLOBAL, "title");
+ attrText = GetAttrText(ncid,NC_GLOBAL, "Conventions");
+@@ -147,20 +157,18 @@
+ mprintf(" Netcdf restart time= %lf\n",restartTime);
+
+ // Box info
+- // NOTE: If no box info found in parm should really try to determine correct
+- // box type from angles.
+ if ( nc_inq_varid(ncid,"cell_lengths",&cellLengthVID)==NC_NOERR ) {
+ if (checkNCerr(nc_inq_varid(ncid,"cell_angles",&cellAngleVID),
+ "Getting cell angles.")!=0) return 1;
+- if (debug>0) mprintf(" Netcdf restart Box information found.\n");
+- if (P->ifbox==0) {
+- mprintf("Warning: Netcdf restart file contains box info but no box info found\n");
+- mprintf(" in associated parmfile %s; defaulting to orthogonal.\n",
+- P->parmName);
+- isBox=1;
+- } else {
+- isBox=P->ifbox;
+- }
++ if (debug>0) mprintf(" Netcdf restart Box information found.\n");
++ // Determine box type from angles
++ start[0]=0; start[1]=0;
++ count[0]=3; count[1]=0;
++ if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, box),
++ "Getting cell lengths.")!=0 ) return 1;
++ if ( checkNCerr(nc_get_vara_double(ncid, cellAngleVID, start, count, box+3),
++ "Getting cell angles.")!=0 ) return 1;
++ CheckBoxType(box);
+ }
+
+ // Replica Temperatures
+@@ -175,15 +183,6 @@
+ //int cell_spatialDID, cell_angularDID;
+ //int spatialVID, cell_spatialVID, cell_angularVID;
+
+- return 0;
+-}
+-
+-/*
+- * AmberRestartNC::SetupRead()
+- * Just a frontend to open for now. Also check number of atoms.
+- */
+-int AmberRestartNC::SetupRead() {
+- if (open()) return 1;
+ if (ncatom!=P->natom) {
+ mprintf("Warning: Number of atoms in NetCDF restart file %s (%i) does not\n",
+ File->filename,ncatom);
+@@ -210,7 +209,7 @@
+ */
+ int AmberRestartNC::setupWriteForSet(int set) {
+ int dimensionID[NC_MAX_VAR_DIMS];
+- size_t start[3], count[3];
++ size_t start[2], count[2];
+ char buffer[1024];
+ char xyz[3];
+ char abc[15] = { 'a', 'l', 'p', 'h', 'a',
+@@ -280,7 +279,7 @@
+ "Defining cell angular variable.")) return 1;
+
+ // Box Info
+- if (isBox>0) {
++ if (BoxType!=0) {
+ dimensionID[0]=cell_spatialDID;
+ if (checkNCerr(nc_def_var(ncid,"cell_lengths",NC_DOUBLE,1,dimensionID,&cellLengthVID),
+ "Defining cell length variable.")) return 1;
+@@ -388,9 +387,9 @@
+ }
+
+ // Read box info
+- if (isBox!=0) {
+- count [0]=3;
+- count [1]=0;
++ if (BoxType!=0) {
++ count[0]=3;
++ count[1]=0;
+ if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, F->box),
+ "Getting cell lengths.")!=0 ) return 1;
+ if ( checkNCerr(nc_get_vara_double(ncid, cellAngleVID, start, count, &(F->box[3])),
+@@ -425,7 +424,7 @@
+ }
+
+ // write box
+- if (isBox>0 && cellLengthVID!=-1) {
++ if (BoxType!=0 && cellLengthVID!=-1) {
+ count[0]=3;
+ count[1]=0;
+ if (checkNCerr(nc_put_vara_double(ncid,cellLengthVID,start,count,F->box),
+@@ -439,6 +438,8 @@
+ // Close file for this set
+ close();
+
++ currentFrame++;
++
+ return 0;
+ }
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberTraj.cpp amber11/AmberTools/src/cpptraj/src/AmberTraj.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/AmberTraj.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/AmberTraj.cpp 2011-10-25 15:01:28.226288534 +0300
+@@ -104,16 +104,18 @@
+ rprintf("Error: AmberTraj::getFrame: * detected in coordinates of %s\n",trajfilename);
+ return 1;
+ }
+- if (isBox) {
++ if (BoxType!=0) {
+ if ( (bufferPosition = F->BufferToBox(bufferPosition,numBoxCoords,8))==NULL ) {
+ rprintf("Error: AmberTraj::getFrame: * detected in box coordinates of %s\n",
+ trajfilename);
+ return 1;
+ }
+- // Set box angles to parmtop default
+- F->box[3] = P->Box[0];
+- F->box[4] = P->Box[0];
+- F->box[5] = P->Box[0];
++ // Set box angles to parmtop default if not read in
++ if (numBoxCoords==3) {
++ F->box[3] = P->Box[3];
++ F->box[4] = P->Box[4];
++ F->box[5] = P->Box[5];
++ }
+ }
+ return 0;
+ }
+@@ -138,20 +140,22 @@
+ }
+
+ bufferPosition = F->FrameToBuffer(bufferPosition,"%8.3lf",8,10);
+- if (isBox)
++ if (BoxType!=0)
+ bufferPosition = F->BoxToBuffer(bufferPosition,numBoxCoords,"%8.3lf",8);
+
+ outFrameSize = (int) (bufferPosition - frameBuffer);
+
+ //if (seekable)
+ // NOTE: Seek only needs to happen when traj file changes
+- offset = (off_t) set;
+- offset *= (off_t) outFrameSize;
+- offset += (off_t) titleSize;
+- File->IO->Seek( offset);
++ //offset = (off_t) currentFrame;
++ //offset *= (off_t) outFrameSize;
++ //offset += (off_t) titleSize;
++ //File->IO->Seek( offset);
+
+ if (File->IO->Write(frameBuffer,sizeof(char),outFrameSize)) return 1;
+
++ currentFrame++;
++
+ return 0;
+ }
+
+@@ -163,8 +167,10 @@
+ int AmberTraj::SetupRead() {
+ char buffer[BUFFER_SIZE];
+ int frame_lines;
+- int lineSize;
+- long long int file_size, frame_size;
++ int lineSize, maxi;
++ bool sizeFound;
++ long long int file_size, frame_size, title_size, tmpfsize;
++ double box[6]; // For checking box coordinates
+
+ // Attempt to open the file. open() sets the title and titleSize
+ if (open()) return 1;
+@@ -219,7 +225,7 @@
+
+ if (strncmp(buffer,"REMD",4)==0 || strncmp(buffer,"HREMD",5)==0) {
+ // REMD header - no box coords
+- isBox=0;
++ BoxType=0;
+ } else if (lineSize<80) {
+ /* Line is shorter than 80 chars, indicates box coords.
+ * Length of the line HAS to be a multiple of 8, and probably could be
+@@ -228,53 +234,108 @@
+ */
+ if (debug>0) mprintf(" Box line is %i chars.\n",lineSize);
+ if ( ((lineSize-1)%24)!=0 ) {
+- rprintf("Error in box coord line.\nExpect only 3 or 6 box coords.\n");
++ mprintf("Error in box coord line. Expect only 3 or 6 box coords.\n");
+ return 1;
+ }
+ numBoxCoords=(lineSize-1) / 8;
+ if (debug>0) mprintf(" Detected %i box coords.\n",numBoxCoords);
+- frameSize+=lineSize;
+- // Reallocate frame buffer accordingly
+- frameBuffer=(char*) realloc(frameBuffer,frameSize * sizeof(char));
+- if (P->ifbox==0) {
+- rprintf( "Warning: Box coords detected in trajectory but not defined in topology!\n");
+- rprintf(" Setting box type to rectangular.\n");
+- isBox=1;
++ // Determine box type based on angles. Angles are usually not printed
++ // for orthogonal and truncated octahedral boxes, but check here just
++ // to be safe. If no angles present use parmtop Box Type.
++ if (numBoxCoords>3) {
++ sscanf(buffer, "%8lf%8lf%8lf%8lf%8lf%8lf",box,box+1,box+2,box+3,box+4,box+5);
++ CheckBoxType(box);
+ } else {
+- isBox = P->ifbox;
++ BoxType = P->BoxType;
++ // If box coords are present in traj but no box in parm, print warning
++ if (BoxType == 0)
++ mprintf("Warning: %s has box coordinates but no box info in %s\n",
++ trajfilename,P->parmName);
+ }
++ // Reallocate frame buffer accordingly
++ frameSize+=lineSize;
++ frameBuffer=(char*) realloc(frameBuffer,frameSize * sizeof(char));
+ }
+ }
+
+- /* Calculate number of frames. If not possible and this is not a
+- * compressed file the trajectory is probably corrupted. Frames will
+- * be read until EOF.
+- * NOTE: It is necessary to use the stat command to get the file size
+- * instead of fseek in case the file has been popen'd.
+- * NOTE: Need the uncompressed file size!
+- */
+- if (File->uncompressed_size>0)
+- file_size = File->uncompressed_size;
+- else
+- file_size=File->file_size;
++ // Calculate Frames and determine seekable. If not possible and this is not a
++ // compressed file the trajectory is probably corrupted. Frames will
++ // be read until EOF (Frames = -1).
+ if (debug>0)
+- rprintf("Title offset=%i FrameSize=%i UncompressedFileSize=%lli\n",
+- titleSize,frameSize,file_size);
+- frame_size = (long long int) titleSize;
+- file_size = file_size - frame_size; // Subtract title size from file total size.
++ rprintf("Title offset=%i FrameSize=%i Size=%lu UncompressedFileSize=%lu\n",
++ titleSize,frameSize,File->file_size,File->uncompressed_size);
++ title_size = (long long int) titleSize;
+ frame_size = (long long int) frameSize;
+- Frames = (int) (file_size / frame_size);
+-
+- if ( (file_size % frame_size) == 0 ) {
+- seekable = 1;
+- stop = Frames;
++ // -----==== AMBER TRAJ COMPRESSED ====------
++ if (File->compressType!=NONE) {
++ // If the uncompressed size of compressed file is reported as <= 0,
++ // uncompressed size cannot be determined. Read coordinates until
++ // EOF.
++ if (File->uncompressed_size <= 0) {
++ mprintf("Warning: %s: Uncompressed size of trajectory could not be determined.\n",
++ File->filename);
++ if (File->compressType==BZIP2)
++ mprintf(" (This is normal for bzipped files)\n");
++ mprintf(" Number of frames could not be calculated.\n");
++ mprintf(" Frames will be read until EOF.\n");
++ Frames = -1;
++ seekable = false;
++ } else {
++ file_size = File->uncompressed_size;
++ file_size = file_size - title_size;
++ // Frame calculation for large gzip files
++ // If uncompressed size is less than compressed size, uncompressed
++ // size is likely > 4GB.
++ if (File->compressType == GZIP && file_size < (long long int) File->file_size) {
++ // Since this is gzip compressed, if the file_size % frame size != 0,
++ // it could be that the uncompressed filesize > 4GB. Since
++ // ISIZE = uncompressed % 2^32,
++ // try ((file_size + (2^32 * i)) % frame_size) and see if any are 0.
++ if ( (file_size % frame_size) != 0) {
++ // Determine the maximum number of iterations to try based on the
++ // fact that Amber trajectories typically compress about 3x with
++ // gzip.
++ tmpfsize = ((File->file_size * 4) - File->uncompressed_size) / 4294967296LL;
++ maxi = (int) tmpfsize;
++ maxi++;
++ if (debug>1)
++ mprintf("\tLooking for uncompressed gzip size > 4GB, %i iterations.\n",maxi);
++ tmpfsize = 0;
++ sizeFound=false;
++ for (int i = 0; i < maxi; i++ ) {
++ tmpfsize = (4294967296LL * i) + file_size;
++ if ( (tmpfsize % frame_size) == 0) {sizeFound=true; break;}
++ }
++ if (sizeFound) file_size = tmpfsize;
++ }
++ }
++ if ((file_size % frame_size) == 0) {
++ Frames = (int) (file_size / frame_size);
++ seekable = true;
++ } else {
++ mprintf("Warning: %s: Number of frames in compressed traj could not be determined.\n",
++ File->filename);
++ mprintf(" Frames will be read until EOF.\n");
++ Frames=-1;
++ seekable=false;
++ }
++ }
++ // ----==== AMBER TRAJ NOT COMPRESSED ====----
+ } else {
+- stop = -1;
+- Frames = -1;
+- seekable = 0;
+- mprintf(" Error: Could not predict # frames in %s. This usually indicates \n",File->filename);
+- mprintf(" a corrupted trajectory. Frames will be read until EOF.\n");
++ file_size = File->file_size;
++ file_size = file_size - title_size;
++ Frames = (int) (file_size / frame_size);
++ if ( (file_size % frame_size) == 0 ) {
++ seekable = true;
++ } else {
++ mprintf("Warning: %s: Could not accurately predict # frames. This usually \n",
++ File->filename);
++ mprintf(" indicates a corrupted trajectory. Will attempt to read %i frames.\n",
++ Frames);
++ seekable=false;
++ }
+ }
++ stop = Frames;
+
+ if (debug>0)
+ rprintf("Atoms: %i FrameSize: %i TitleSize: %i NumBox: %i Seekable: %i Frames: %i\n\n",
+@@ -315,7 +376,9 @@
+ frameSize += hasREMD;
+
+ // If box coords are present, allocate extra space for them
+- if (isBox>0) {
++ // NOTE: Currently only writing box lengths for all box types. This means
++ // writing triclinic box type is currently not supported.
++ if (BoxType!=0) {
+ numBoxCoords=3; // Only write out box lengths for trajectories
+ frameSize+=((numBoxCoords*8)+1);
+ }
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/ArgList.cpp amber11/AmberTools/src/cpptraj/src/ArgList.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/ArgList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/ArgList.cpp 2011-10-25 15:01:28.101288648 +0300
+@@ -146,8 +146,16 @@
+ return argline;
+ }
+
+-/*
+- * ArgList::Command()
++/* ArgList::Arg()
++ * Return arg at specified position.
++ */
++char *ArgList::Arg(int pos) {
++ if (pos>-1 && pos<nargs)
++ return arglist[pos];
++ return NULL;
++}
++
++/* ArgList::Command()
+ * Check the first arg for command
+ * Mark and return. Return even if marked.
+ */
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/ArgList.h amber11/AmberTools/src/cpptraj/src/ArgList.h
+--- amber11.orig/AmberTools/src/cpptraj/src/ArgList.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/ArgList.h 2011-10-25 15:01:28.102288647 +0300
+@@ -15,6 +15,7 @@
+ void Add(char *);
+ void print();
+ char *ArgLine();
++ char *Arg(int);
+
+ char *Command();
+ int CommandIs(const char *);
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/AtomMap.cpp amber11/AmberTools/src/cpptraj/src/AtomMap.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/AtomMap.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/AtomMap.cpp 2011-10-25 15:01:28.081288667 +0300
+@@ -6,6 +6,7 @@
+ #include "TorsionRoutines.h"
+ // DEBUG
+ #include "Mol2File.h"
++#include <cstdio>
+
+ //--------- PRIVATE ROUTINES ---------------------------------------
+ /*
+@@ -463,21 +464,27 @@
+ // Write atommap out as a mol2 file, useful for checking bond info
+ void atommap::WriteMol2(char *m2filename) {
+ Mol2File outfile;
+- int *Selected;
++ AtomMask M1;
+ // Temporary parm to play with
+ AmberParm *tmpParm;
++ Frame *tmpFrame;
+
+ // Create mask containing all atoms
+- Selected = (int*) malloc(natom*sizeof(int));
+- for (int atom=0; atom<natom; atom++) Selected[atom]=atom;
++ //for (int atom=0; atom<natom; atom++) Selected[atom]=atom;
+ // Fake strip, just use as crap way to copy
+- tmpParm = P->modifyStateByMask(Selected,natom);
+- free(Selected);
++ //tmpParm = P->modifyStateByMask(Selected,natom);
++ //free(Selected);
+ // Modify the bonds array to include this info
+- tmpParm->ResetBondInfo();
+- for (int atom=0; atom<natom; atom++)
+- for (int bond=0; bond < M[atom].nbond; bond++)
+- tmpParm->AddBond(atom, M[atom].bond[bond], 0);
++ //tmpParm->ResetBondInfo();
++ //for (int atom=0; atom<natom; atom++)
++ // for (int bond=0; bond < M[atom].nbond; bond++)
++ // tmpParm->AddBond(atom, M[atom].bond[bond], 0);
++ // Create mask with all mapped atoms
++ for (int atom=0; atom<natom; atom++) {if (M[atom].isMapped) M1.AddAtom(atom);}
++ // Strip so only mapped atoms remain
++ tmpParm = P->modifyStateByMask(M1.Selected,M1.Nselected);
++ tmpFrame = new Frame(M1.Nselected,NULL);
++ tmpFrame->SetFrameFromMask(F, &M1);
+
+ // Trajectory Setup
+ outfile.File=new PtrajFile();
+@@ -485,13 +492,14 @@
+ outfile.trajfilename = outfile.File->basefilename;
+ outfile.debug=debug;
+ outfile.SetTitle(m2filename);
+- outfile.P=P;
++ outfile.P=tmpParm;
+ outfile.SetupWrite();
+ outfile.open();
+- outfile.F=F;
++ outfile.F=tmpFrame;
+ outfile.writeFrame(0);
+ outfile.close();
+ delete tmpParm;
++ delete tmpFrame;
+ }
+ // ============================================================================
+
+@@ -1032,6 +1040,13 @@
+ int iterations=0;
+
+ numAtomsMapped=MapUniqueAtoms(Ref, Tgt);
++ // DEBUG
++ //char name[1024];
++ //sprintf(name,"Ref.%i.mol2",iterations);
++ //Ref->WriteMol2(name);
++ //sprintf(name,"Tgt.%i.mol2",iterations);
++ //Tgt->WriteMol2(name);
++ // END DEBUG
+ if (debug>0)
+ mprintf("* MapUniqueAtoms: %i atoms mapped.\n",numAtomsMapped);
+ if (numAtomsMapped==0) return 1;
+@@ -1045,17 +1060,35 @@
+ iterations++;
+ // First assign based on bonds to unique (already mapped) atoms.
+ numAtomsMapped=mapBondsToUnique(Ref,Tgt);
++ // DEBUG
++ //sprintf(name,"Ref.%i.u.mol2",iterations);
++ //Ref->WriteMol2(name);
++ //sprintf(name,"Tgt.%i.u.mol2",iterations);
++ //Tgt->WriteMol2(name);
++ // END DEBUG
+ if (debug>0)
+ mprintf("* [%3i] mapBondsToUnique: %i atoms mapped.\n",iterations,numAtomsMapped);
+ if (numAtomsMapped<0) return 1;
+ // Next assign based on chirality
+ numAtomsMapped=mapChiral(Ref,Tgt);
++ // DEBUG
++ //sprintf(name,"Ref.%i.c.mol2",iterations);
++ //Ref->WriteMol2(name);
++ //sprintf(name,"Tgt.%i.c.mol2",iterations);
++ //Tgt->WriteMol2(name);
++ // END DEBUG
+ if (debug>0)
+ mprintf("* [%3i] mapChiral: %i atoms mapped.\n",iterations,numAtomsMapped);
+ if (numAtomsMapped<0) return 1;
+ if (numAtomsMapped>0) continue;
+ // Last assign based on index/element
+ numAtomsMapped=mapByIndex(Ref,Tgt);
++ // DEBUG
++ //sprintf(name,"Ref.%i.i.mol2",iterations);
++ //Ref->WriteMol2(name);
++ //sprintf(name,"Tgt.%i.i.mol2",iterations);
++ //Tgt->WriteMol2(name);
++ // END DEBUG
+ if (debug>0)
+ mprintf("* [%3i] mapByIndex: %i atoms mapped.\n",iterations,numAtomsMapped);
+ if (numAtomsMapped<0) return 1;
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/CoordFileList.cpp amber11/AmberTools/src/cpptraj/src/CoordFileList.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/CoordFileList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/CoordFileList.cpp 2011-10-25 15:01:28.201288557 +0300
+@@ -1,4 +1,5 @@
+ // CoordFileList
++#include <cstddef>
+ #include <cstring> // strcmp
+ #include "CoordFileList.h"
+ #include "CpptrajStdio.h"
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/cpptrajdepend amber11/AmberTools/src/cpptraj/src/cpptrajdepend
+--- amber11.orig/AmberTools/src/cpptraj/src/cpptrajdepend 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/cpptrajdepend 2011-10-25 15:01:28.107288643 +0300
+@@ -2,7 +2,7 @@
+ AmberNetcdf.o : AmberNetcdf.cpp AmberNetcdf.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h NetcdfRoutines.h PtrajFile.h Range.h TrajFile.h
+ AmberParm.o : AmberParm.cpp AmberParm.h BaseFileIO.h CpptrajStdio.h Mol2FileRoutines.h PDBfileRoutines.h PtrajFile.h
+ AmberTraj.o : AmberTraj.cpp AmberParm.h AmberTraj.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PtrajFile.h Range.h TrajFile.h
+-TrajFile.o : TrajFile.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PtrajFile.h PtrajMpi.h Range.h TrajFile.h
++TrajFile.o : TrajFile.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PtrajFile.h Range.h TrajFile.h
+ Frame.o : Frame.cpp AmberParm.h AtomMask.h BaseFileIO.h CpptrajStdio.h DistRoutines.h Frame.h PtrajFile.h TorsionRoutines.h vectormath.h
+ PtrajState.o : PtrajState.cpp Action.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajActionList.h PtrajFile.h PtrajMpi.h PtrajState.h Range.h ReferenceList.h TrajFile.h TrajinList.h TrajoutList.h
+ ArgList.o : ArgList.cpp ArgList.h CpptrajStdio.h
+@@ -13,7 +13,7 @@
+ TrajoutList.o : TrajoutList.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h Frame.h ParmFileList.h PtrajFile.h Range.h TrajFile.h TrajoutList.h
+ ReferenceList.o : ReferenceList.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h Frame.h FrameList.h ParmFileList.h PtrajFile.h Range.h ReferenceList.h TrajFile.h
+ CoordFileList.o : CoordFileList.cpp AmberNetcdf.h AmberParm.h AmberRestart.h AmberRestartNC.h AmberTraj.h ArgList.h AtomMask.h BaseFileIO.h Conflib.h CoordFileList.h CpptrajStdio.h Frame.h Mol2File.h PDBfile.h ParmFileList.h PtrajFile.h Range.h RemdTraj.h TrajFile.h TrajinList.h
+-PtrajActionList.o : PtrajActionList.cpp Action.h Action_Angle.h Action_Center.h Action_Closest.h Action_DSSP.h Action_Dihedral.h Action_Distance.h Action_Hbond.h Action_Image.h Action_Mask.h Action_NAstruct.h Action_Outtraj.h Action_Pucker.h Action_Radgyr.h Action_Rmsd.h Action_Strip.h Action_Surf.h AmberParm.h ArgList.h AtomMap.h AtomMask.h AxisType.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajActionList.h PtrajFile.h Range.h TrajFile.h TrajoutList.h
++PtrajActionList.o : PtrajActionList.cpp Action.h Action_Angle.h Action_Center.h Action_Closest.h Action_DSSP.h Action_Dihedral.h Action_Distance.h Action_Hbond.h Action_Image.h Action_Mask.h Action_NAstruct.h Action_Outtraj.h Action_Pucker.h Action_Radgyr.h Action_Rms2d.h Action_Rmsd.h Action_Strip.h Action_Surf.h AmberParm.h ArgList.h AtomMap.h AtomMask.h AxisType.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajActionList.h PtrajFile.h Range.h TrajFile.h TrajoutList.h
+ DataSet.o : DataSet.cpp CpptrajStdio.h DataSet.h
+ DataSetList.o : DataSetList.cpp CpptrajStdio.h DataSet.h DataSetList.h intDataSet.h mapDataSet.h stringDataSet.h
+ vectormath.o : vectormath.cpp CpptrajStdio.h vectormath.h
+@@ -23,9 +23,9 @@
+ DataFile.o : DataFile.cpp BaseFileIO.h CpptrajStdio.h DataFile.h DataSet.h PtrajFile.h
+ DataFileList.o : DataFileList.cpp BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h PtrajFile.h
+ PDBfile.o : PDBfile.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PDBfile.h PDBfileRoutines.h PtrajFile.h Range.h TrajFile.h
+-PtrajFile.o : PtrajFile.cpp BaseFileIO.h Bzip2File.h CpptrajStdio.h GzipFile.h MpiFile.h NetcdfRoutines.h PDBfileRoutines.h PtrajFile.h PtrajMpi.h StdFile.h
++PtrajFile.o : PtrajFile.cpp BaseFileIO.h Bzip2File.h CpptrajStdio.h GzipFile.h Mol2FileRoutines.h MpiFile.h NetcdfRoutines.h PDBfileRoutines.h PtrajFile.h PtrajMpi.h StdFile.h
+ PDBfileRoutines.o : PDBfileRoutines.cpp PDBfileRoutines.h
+-AtomMap.o : AtomMap.cpp Action.h AmberParm.h ArgList.h AtomMap.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h PDBfileRoutines.h ParmFileList.h PtrajFile.h TorsionRoutines.h
++AtomMap.o : AtomMap.cpp Action.h AmberParm.h ArgList.h AtomMap.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h Mol2File.h ParmFileList.h PtrajFile.h Range.h TorsionRoutines.h TrajFile.h
+ BaseFileIO.o : BaseFileIO.cpp BaseFileIO.h PtrajMpi.h
+ StdFile.o : StdFile.cpp BaseFileIO.h StdFile.h
+ GzipFile.o : GzipFile.cpp BaseFileIO.h CpptrajStdio.h GzipFile.h
+@@ -62,3 +62,4 @@
+ Action_Pucker.o : Action_Pucker.cpp Action.h Action_Pucker.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajFile.h
+ Range.o : Range.cpp ArgList.h CpptrajStdio.h Range.h
+ Action_Outtraj.o : Action_Outtraj.cpp Action.h Action_Outtraj.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajFile.h PtrajMpi.h Range.h TrajFile.h TrajoutList.h
++Action_Rms2d.o : Action_Rms2d.cpp Action.h Action_Rms2d.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajFile.h
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/DataFile.cpp amber11/AmberTools/src/cpptraj/src/DataFile.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/DataFile.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/DataFile.cpp 2011-10-25 15:01:28.098288651 +0300
+@@ -65,8 +65,49 @@
+ isInverted=true;
+ }
+
+-/*
+- * DataFile::AddSet()
++/* DataFile::SetPrecision()
++ * Set precision of the specified dataset to width.precision. If '*' specified
++ * set for all datasets in file.
++ */
++void DataFile::SetPrecision(char *dsetName, int widthIn, int precisionIn) {
++ int precision, dset;
++ DataSet *Dset = NULL;
++
++ if (dsetName==NULL) {
++ mprintf("Error: SetPrecision must be called with dataset name or '*'.\n");
++ return;
++ }
++ if (widthIn<1) {
++ mprintf("Error: SetPrecision (%s): Cannot set width < 1.\n",filename);
++ return;
++ }
++ precision=precisionIn;
++ if (precisionIn<0) precision=0;
++ // If <dsetName>=='*' specified set precision for all data sets
++ if (dsetName[0]=='*') {
++ mprintf(" Setting width.precision for all sets in %s to %i.%i\n",
++ filename,widthIn,precision);
++ for (dset=0; dset<Nsets; dset++)
++ SetList[dset]->SetPrecision(widthIn,precision);
++
++ // Otherwise find dataset <dsetName> and set precision
++ } else {
++ mprintf(" Setting width.precision for dataset %s to %i.%i\n",
++ dsetName,widthIn,precision);
++ for (dset=0; dset<Nsets; dset++) {
++ if ( strcmp(SetList[dset]->Name(), dsetName)==0 ) {
++ Dset=SetList[dset];
++ break;
++ }
++ }
++ if (Dset!=NULL)
++ Dset->SetPrecision(widthIn,precision);
++ else
++ mprintf("Error: Dataset %s not found in datafile %s\n",dsetName,filename);
++ }
++}
++
++/* DataFile::AddSet()
+ * Add given set to this datafile
+ */
+ int DataFile::AddSet(DataSet *D) {
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/DataFile.h amber11/AmberTools/src/cpptraj/src/DataFile.h
+--- amber11.orig/AmberTools/src/cpptraj/src/DataFile.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/DataFile.h 2011-10-25 15:01:28.098288651 +0300
+@@ -30,6 +30,7 @@
+ void SetXlabel(char*);
+ void SetInverted();
+ void SetNoXcol();
++ void SetPrecision(char *, int, int);
+ int AddSet(DataSet *);
+ int NameIs(char *);
+ void DataSetNames();
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/DataFileList.cpp amber11/AmberTools/src/cpptraj/src/DataFileList.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/DataFileList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/DataFileList.cpp 2011-10-25 15:01:28.201288557 +0300
+@@ -1,4 +1,5 @@
+ // DataFileList
++#include <cstddef>
+ #include "DataFileList.h"
+ #include "CpptrajStdio.h"
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/DataSet.cpp amber11/AmberTools/src/cpptraj/src/DataSet.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/DataSet.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/DataSet.cpp 2011-10-25 15:01:28.094288655 +0300
+@@ -1,6 +1,7 @@
+ // DataSet
+ #include <cstdlib>
+ #include <cstring>
++#include <cstdio> // sprintf
+ #include "DataSet.h"
+ #include "CpptrajStdio.h"
+
+@@ -11,12 +12,73 @@
+ N=0;
+ isDynamic=false;
+ current=0;
++ width = 0;
++ precision = 0;
++ format = NULL;
++ dType = UNKNOWN_DATA;
+ }
+
+ // DESTRUCTOR
+ DataSet::~DataSet() {
+ //fprintf(stderr,"DataSet Destructor\n");
+ if (name!=NULL) free(name);
++ if (format!=NULL) free(format);
++}
++
++/*
++ * DataSet::setFormatString()
++ * Set up the output format string for each data element based on the given
++ * dataType and the current width, and precision.
++ */
++void DataSet::setFormatString() {
++ size_t stringWidth = 0;
++ int wWidth = 0;
++ int pWidth = 0;
++
++ if (format!=NULL) {free(format); format=NULL;}
++
++ // Calc num of chars necessary to hold width
++ wWidth = (width / 10) + 1;
++
++ switch (dType) {
++ case DOUBLE :
++ // Calc num of chars necessary to hold precision
++ pWidth = (precision / 10) + 1;
++ // String fmt: " %w.plf\0"
++ stringWidth = pWidth + wWidth + 6;
++ format = (char*) malloc( stringWidth * sizeof(char) );
++ sprintf(format, " %%%i.%ilf", width, precision);
++ break;
++ case STRING :
++ // String fmt: " %s"
++ format = (char*) malloc( 4 * sizeof(char) );
++ strcpy(format, " %s");
++ break;
++ case INT :
++ // String fmt: " %wi"
++ stringWidth = wWidth + 4;
++ format = (char*) malloc( stringWidth * sizeof(char) );
++ sprintf(format, " %%%ii", width);
++ break;
++ case UNKNOWN_DATA :
++ mprintf("Internal Error: setFormatString called with unknown data type.\n");
++ }
++
++ if (format==NULL)
++ mprintf("Error: setFormatString: Could not allocate memory for string.\n");
++ // DEBUG
++ //else
++ // mprintf("DEBUG: Format string: [%s]\n",format);
++}
++
++/*
++ * DataSet::SetPrecision()
++ * Set dataset width and precision and recalc output format string.
++ */
++void DataSet::SetPrecision(int widthIn, int precisionIn) {
++ width=widthIn;
++ precision=precisionIn;
++ setFormatString();
+ }
+
+ /*
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/DataSet.h amber11/AmberTools/src/cpptraj/src/DataSet.h
+--- amber11.orig/AmberTools/src/cpptraj/src/DataSet.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/DataSet.h 2011-10-25 15:01:28.103288646 +0300
+@@ -36,12 +36,18 @@
+ class DataSet {
+ protected:
+ char *name; // Name of the dataset
++ dataType dType; // The dataset type
+ int N; // Number of data elements
+ int current; // The current data element
++ int width; // The output width of a data element
++ int precision; // The output precision of a data element (if applicable)
++ char *format; // Format of output
++
+ bool isDynamic; // True : N is not known, reallocate as N increases
+ // False: N is known, allocate for N
+ // If not isDynamic, Allocate will reserve space for N data elements
+ virtual int Allocate( ) { return 0; }
++ void setFormatString();
+
+ public:
+
+@@ -51,13 +57,16 @@
+ virtual int Xmax() { return 0; }
+ virtual int isEmpty(int) { return 0; }
+ virtual void Add( int, void * ) { return; }
++ virtual int Get( void *, int ) { return 1; }
+ virtual char *Write(char*, int) { return 0; }
+ virtual int Width() { return 0; }
+ virtual int Sync() { return 0; }
+
++ void SetPrecision(int,int);
+ int Setup(char*,int);
+ void Info();
+ char *Name() { return name; }
+ int CheckSet();
++ dataType Type() {return dType;}
+ };
+ #endif
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Frame.cpp amber11/AmberTools/src/cpptraj/src/Frame.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/Frame.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Frame.cpp 2011-10-25 15:01:28.120288631 +0300
+@@ -60,8 +60,38 @@
+ if (Mass!=NULL) free(Mass);
+ }
+
+-/*
+- * Frame::Copy()
++/* Frame::ZeroCoords()
++ * Set all coords to 0.0
++ */
++void Frame::ZeroCoords() {
++ for (int coord=0; coord < N; coord++)
++ X[coord]=0.0;
++}
++
++/* Frame::AddCoord()
++ * Add the coord values from the input frame to the coord values of
++ * this frame.
++ */
++void Frame::AddCoord(Frame *FrameIn) {
++ if (FrameIn->N != this->N) {
++ mprintf("Error: Frame::AddCoord: Attempting to add %i coords to %i coords.\n",
++ FrameIn->N,this->N);
++ } else {
++ for (int coord=0; coord < N; coord++)
++ this->X[coord] += FrameIn->X[coord];
++ }
++}
++
++/* Frame::Divide()
++ * Divide all coord values by input. Dont do it if the number is too small.
++ */
++void Frame::Divide(double divisor) {
++ if (divisor < SMALL) return;
++ for (int coord=0; coord < N; coord++)
++ X[coord] /= divisor;
++}
++
++/* Frame::Copy()
+ * Return a copy of the frame
+ */
+ Frame *Frame::Copy() {
+@@ -423,21 +453,21 @@
+ * Based on useMassIn, calculate geometric center (false) or center of mass
+ * (true) of the atoms in each mask.
+ */
+-double Frame::DIST2(AtomMask *Mask1, AtomMask *Mask2, bool useMassIn, int ifbox,
++double Frame::DIST2(AtomMask *Mask1, AtomMask *Mask2, bool useMassIn, int boxType,
+ double *ucell, double *recip) {
+ double a1[3], a2[3];
+
+ COM(Mask1, a1, useMassIn);
+ COM(Mask2, a2, useMassIn);
+
+- if (ifbox == 0)
++ if (boxType == 0)
+ return DIST2_NoImage(a1, a2);
+- else if (ifbox == 1)
++ else if (boxType == 1)
+ return DIST2_ImageOrtho(a1, a2, this->box);
+- else if (ifbox == 2)
++ else if (boxType == 2)
+ return DIST2_ImageNonOrtho(a1, a2, ucell, recip);
+
+- mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", ifbox);
++ mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", boxType);
+
+ return (-1.0);
+ }
+@@ -445,8 +475,11 @@
+ /*
+ * Frame::DIST2()
+ * Return the distance between atoms A1 and A2 with optional imaging.
++ * 0 = None
++ * 1 = Orthorhombic
++ * 2 = Non-orthorhombic
+ */
+-double Frame::DIST2(int A1, int A2, int ifbox, double *ucell, double *recip) {
++double Frame::DIST2(int A1, int A2, int boxType, double *ucell, double *recip) {
+ int atom3;
+ double a1[3], a2[3];
+
+@@ -459,14 +492,14 @@
+ a2[1] = X[atom3+1];
+ a2[2] = X[atom3+2];
+
+- if (ifbox == 0)
++ if (boxType == 0)
+ return DIST2_NoImage(a1, a2);
+- else if (ifbox == 1)
++ else if (boxType == 1)
+ return DIST2_ImageOrtho(a1, a2, this->box);
+- else if (ifbox == 2)
++ else if (boxType == 2)
+ return DIST2_ImageNonOrtho(a1, a2, ucell, recip);
+
+- mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", ifbox);
++ mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", boxType);
+
+ return (-1.0);
+ }
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Frame.h amber11/AmberTools/src/cpptraj/src/Frame.h
+--- amber11.orig/AmberTools/src/cpptraj/src/Frame.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Frame.h 2011-10-25 15:01:28.092288656 +0300
+@@ -22,6 +22,9 @@
+ Frame(AtomMask *, double *);
+ virtual ~Frame(); // Destructor is virtual since this class can be inherited
+
++ void ZeroCoords();
++ void AddCoord(Frame*);
++ void Divide(double);
+ void printAtomCoord(int);
+ void GetCoord(double *, int);
+ void SetCoord(int, double *);
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/FrameList.cpp amber11/AmberTools/src/cpptraj/src/FrameList.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/FrameList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/FrameList.cpp 2011-10-25 15:01:28.073288675 +0300
+@@ -13,7 +13,8 @@
+ delete frameList[i];
+ }
+
+-/* FrameList::Add()
++/*
++ * FrameList::Add()
+ * Add given Frame to the FrameList. Store trajectory name that this frame
+ * came from in frameNames. Store the associated parm in FrameParm.
+ */
+@@ -29,6 +30,18 @@
+ FrameParm.Add(P);
+ Nframe++;
+ return 0;
++}
++
++/*
++ * FrameList::Add()
++ * Add given Frame to the FrameList. Store the associated parm in FrameParm.
++ */
++int FrameList::Add(Frame *F, AmberParm *P) {
++ if (F==NULL || P==NULL) return 1;
++ frameList.push_back(F);
++ FrameParm.Add(P);
++ Nframe++;
++ return 0;
+ }
+
+ /*
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/FrameList.h amber11/AmberTools/src/cpptraj/src/FrameList.h
+--- amber11.orig/AmberTools/src/cpptraj/src/FrameList.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/FrameList.h 2011-10-25 15:01:28.073288675 +0300
+@@ -18,6 +18,7 @@
+ ~FrameList();
+
+ int Add(Frame *, char *, AmberParm *,int);
++ int Add(Frame *, AmberParm *);
+ AmberParm *GetFrameParm(int);
+ int GetFrameIndex(char *);
+ Frame *GetFrame(int idx);
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/GzipFile.cpp amber11/AmberTools/src/cpptraj/src/GzipFile.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/GzipFile.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/GzipFile.cpp 2011-10-25 15:01:28.227288533 +0300
+@@ -77,18 +77,24 @@
+
+ /*
+ * GzipFile::Read()
++ * NOTE: gzread returns 0 on EOF, -1 on error
+ */
+ int GzipFile::Read(void *buffer, size_t size, size_t count) {
+ //size_t numread;
+ int numread;
++ int expectedread;
++
++ expectedread = (int)size;
++ expectedread *= (int)count;
+ // Should never be able to call Read when fp is NULL.
+ //if (fp==NULL) {
+ // fprintf(stdout,"Error: GzipFile::Read: Attempted to read NULL file pointer.\n");
+ // return 1;
+ //}
+- numread = gzread(fp, buffer, size * count);
+- if (numread == -1) return -1;
+-
++ numread = gzread(fp, buffer, expectedread);
++ if (numread != expectedread) return -1;
++ //if (numread < 1 ) return -1;
++
+ // NOTE: Check for errors here.
+ return numread;
+ }
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/intDataSet.cpp amber11/AmberTools/src/cpptraj/src/intDataSet.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/intDataSet.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/intDataSet.cpp 2011-10-25 15:01:28.103288646 +0300
+@@ -5,6 +5,14 @@
+ #include "PtrajMpi.h"
+ #include "CpptrajStdio.h"
+ using namespace std;
++
++// CONSTRUCTOR
++intDataSet::intDataSet() {
++ width=12;
++ dType=INT;
++ setFormatString();
++}
++
+ /*
+ * intDataSet::Xmax(()
+ * Return the maximum X value added to this set. By convention this is
+@@ -33,8 +41,21 @@
+ current++;
+ }
+
+-/*
+- * intDataSet::isEmpty()
++/* intDataSet::Get()
++ * Get data at frame, put into vOut. Return 1 if no data at frame.
++ */
++int intDataSet::Get(void *vOut, int frame) {
++ int *value;
++
++ if (vOut==NULL) return 1;
++ value = (int*) vOut;
++ it=Data.find( frame );
++ if (it == Data.end()) return 1;
++ *value = (*it).second;
++ return 0;
++}
++
++/* intDataSet::isEmpty()
+ */
+ int intDataSet::isEmpty(int frame) {
+ it = Data.find( frame );
+@@ -52,17 +73,17 @@
+ it = Data.find( frame );
+ if (it == Data.end())
+ //sprintf(buffer," %12s","NoData");
+- sprintf(buffer," %12i", 0);
++ sprintf(buffer, format, 0);
+ else
+- sprintf(buffer," %12i",(*it).second);
+- return (buffer + 13);
++ sprintf(buffer, format, (*it).second);
++ return (buffer + width + 1);
+ }
+
+ /*
+ * intDataSet::Width()
+ */
+ int intDataSet::Width() {
+- return 13;
++ return (width + 1);
+ }
+
+ /*
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/intDataSet.h amber11/AmberTools/src/cpptraj/src/intDataSet.h
+--- amber11.orig/AmberTools/src/cpptraj/src/intDataSet.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/intDataSet.h 2011-10-25 15:01:28.104288645 +0300
+@@ -11,9 +11,12 @@
+ std::map<int,int> Data;
+ std::map<int,int>::iterator it;
+ public:
++ intDataSet();
++
+ int Xmax();
+ int isEmpty(int);
+ void Add( int, void * );
++ int Get(void *, int);
+ char *Write(char *, int);
+ int Width();
+ int Sync();
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/main.cpp amber11/AmberTools/src/cpptraj/src/main.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/main.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/main.cpp 2011-10-25 15:01:28.228288532 +0300
+@@ -6,7 +6,7 @@
+ #include "PtrajMpi.h"
+ #include "CpptrajStdio.h"
+ #ifndef CPPTRAJ_VERSION_STRING
+-#define CPPTRAJ_VERSION_STRING "V1.0.5"
++#define CPPTRAJ_VERSION_STRING "V1.1.1"
+ #endif
+
+ void Usage(char *programName) {
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Makefile amber11/AmberTools/src/cpptraj/src/Makefile
+--- amber11.orig/AmberTools/src/cpptraj/src/Makefile 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Makefile 2011-10-25 15:01:28.075288673 +0300
+@@ -16,7 +16,8 @@
+ Action_Radgyr.cpp Conflib.cpp Action_Mask.cpp Action_Closest.cpp \
+ NetcdfRoutines.cpp AmberRestartNC.cpp CpptrajStdio.cpp Mol2File.cpp \
+ Mol2FileRoutines.cpp Action_NAstruct.cpp DistRoutines.cpp AxisType.cpp \
+- TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp
++ TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp \
++ Action_Rms2d.cpp
+
+ OBJECTS=main.o AmberNetcdf.o AmberParm.o AmberTraj.o TrajFile.o \
+ Frame.o PtrajState.o ArgList.o ptrajmask.o Action_Distance.o \
+@@ -32,7 +33,8 @@
+ Action_Radgyr.o Conflib.o Action_Mask.o Action_Closest.o \
+ NetcdfRoutines.o AmberRestartNC.o CpptrajStdio.o Mol2File.o \
+ Mol2FileRoutines.o Action_NAstruct.o DistRoutines.o AxisType.o \
+- TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o
++ TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o \
++ Action_Rms2d.o
+
+ HEADERS=AmberNetcdf.h AmberParm.h AmberTraj.h TrajFile.h \
+ Frame.h PtrajState.h ArgList.h ptrajmask.h Action.h Action_Distance.h \
+@@ -48,7 +50,8 @@
+ Action_Radgyr.h Conflib.h Action_Mask.h Action_Closest.h \
+ NetcdfRoutines.h AmberRestartNC.h CpptrajStdio.h Mol2File.h \
+ Mol2FileRoutines.h Action_NAstruct.h DistRoutines.h AxisType.h \
+- TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h
++ TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h \
++ Action_Rms2d.h
+
+ all: cpptraj$(SFX)
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Makefile_at amber11/AmberTools/src/cpptraj/src/Makefile_at
+--- amber11.orig/AmberTools/src/cpptraj/src/Makefile_at 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Makefile_at 2011-10-25 15:01:28.076288672 +0300
+@@ -16,7 +16,8 @@
+ Action_Radgyr.cpp Conflib.cpp Action_Mask.cpp Action_Closest.cpp \
+ NetcdfRoutines.cpp AmberRestartNC.cpp CpptrajStdio.cpp Mol2File.cpp \
+ Mol2FileRoutines.cpp Action_NAstruct.cpp DistRoutines.cpp AxisType.cpp \
+- TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp
++ TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp \
++ Action_Rms2d.cpp
+
+ OBJECTS=main.o AmberNetcdf.o AmberParm.o AmberTraj.o TrajFile.o \
+ Frame.o PtrajState.o ArgList.o ptrajmask.o Action_Distance.o \
+@@ -32,7 +33,8 @@
+ Action_Radgyr.o Conflib.o Action_Mask.o Action_Closest.o \
+ NetcdfRoutines.o AmberRestartNC.o CpptrajStdio.o Mol2File.o \
+ Mol2FileRoutines.o Action_NAstruct.o DistRoutines.o AxisType.o \
+- TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o
++ TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o \
++ Action_Rms2d.o
+
+ HEADERS=AmberNetcdf.h AmberParm.h AmberTraj.h TrajFile.h \
+ Frame.h PtrajState.h ArgList.h ptrajmask.h Action.h Action_Distance.h \
+@@ -48,7 +50,8 @@
+ Action_Radgyr.h Conflib.h Action_Mask.h Action_Closest.h \
+ NetcdfRoutines.h AmberRestartNC.h CpptrajStdio.h Mol2File.h \
+ Mol2FileRoutines.h Action_NAstruct.h DistRoutines.h AxisType.h \
+- TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h
++ TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h \
++ Action_Rms2d.h
+
+ all: cpptraj$(SFX)
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/mapDataSet.cpp amber11/AmberTools/src/cpptraj/src/mapDataSet.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/mapDataSet.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/mapDataSet.cpp 2011-10-25 15:01:28.104288645 +0300
+@@ -6,6 +6,14 @@
+ #include "CpptrajStdio.h"
+ using namespace std;
+
++// CONSTRUCTOR
++mapDataSet::mapDataSet() {
++ width = 12;
++ precision = 4;
++ dType=DOUBLE;
++ setFormatString();
++}
++
+ /*
+ * mapDataSet::Xmax(()
+ * Return the maximum X value added to this set. By convention this is
+@@ -34,8 +42,23 @@
+ current++;
+ }
+
+-/*
+- * mapDataSet::isEmpty()
++/* mapDataSet::Get()
++ * Get data at frame, put into vOut. Return 1 if no data at frame.
++ */
++int mapDataSet::Get(void *vOut, int frame) {
++ double *value;
++
++ if (vOut==NULL) return 1;
++ //mprintf("DEBUG: Attempting to get double frame %i\n",frame);
++ value = (double*) vOut;
++ it=Data.find( frame );
++ if (it == Data.end()) return 1;
++ //mprintf("DEBUG: Double frame %i is %lf\n",frame,(*it).second);
++ *value = (*it).second;
++ return 0;
++}
++
++/* mapDataSet::isEmpty()
+ */
+ int mapDataSet::isEmpty(int frame) {
+ it = Data.find( frame );
+@@ -53,17 +76,17 @@
+ it = Data.find( frame );
+ if (it == Data.end())
+ //sprintf(buffer," %12s","NoData");
+- sprintf(buffer," %12.4lf", 0.0);
++ sprintf(buffer, format, 0.0);
+ else
+- sprintf(buffer," %12.4lf",(*it).second);
+- return (buffer + 13);
++ sprintf(buffer, format,(*it).second);
++ return (buffer + width + 1);
+ }
+
+ /*
+ * mapDataSet::Width()
+ */
+ int mapDataSet::Width() {
+- return 13;
++ return (width + 1);
+ }
+
+ /*
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/mapDataSet.h amber11/AmberTools/src/cpptraj/src/mapDataSet.h
+--- amber11.orig/AmberTools/src/cpptraj/src/mapDataSet.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/mapDataSet.h 2011-10-25 15:01:28.105288645 +0300
+@@ -7,14 +7,16 @@
+ */
+ #include <map>
+ #include "DataSet.h"
+-//using namespace std;
+ class mapDataSet : public DataSet {
+ std::map<int,double> Data;
+ std::map<int,double>::iterator it;
+ public:
++ mapDataSet();
++
+ int Xmax();
+ int isEmpty(int);
+ void Add( int, void * );
++ int Get(void *, int);
+ char *Write(char *, int);
+ int Width();
+ int Sync();
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Mol2File.cpp amber11/AmberTools/src/cpptraj/src/Mol2File.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/Mol2File.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/Mol2File.cpp 2011-10-25 15:01:28.127288624 +0300
+@@ -239,6 +239,8 @@
+ if (writeMode==2)
+ File->IO->Close();
+
++ currentFrame++;
++
+ return 0;
+ }
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/PDBfile.cpp amber11/AmberTools/src/cpptraj/src/PDBfile.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/PDBfile.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/PDBfile.cpp 2011-10-25 15:01:28.128288623 +0300
+@@ -207,6 +207,9 @@
+ } else if (writeMode==1) {
+ File->IO->Printf("ENDMDL\n");
+ }
++
++ currentFrame++;
++
+ return 0;
+ }
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/PtrajActionList.cpp amber11/AmberTools/src/cpptraj/src/PtrajActionList.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/PtrajActionList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/PtrajActionList.cpp 2011-10-25 15:01:28.105288645 +0300
+@@ -20,6 +20,7 @@
+ #include "Action_NAstruct.h"
+ #include "Action_Pucker.h"
+ #include "Action_Outtraj.h"
++#include "Action_Rms2d.h"
+
+ // Constructor
+ PtrajActionList::PtrajActionList() {
+@@ -56,6 +57,7 @@
+
+ // Decide what action this is based on the command.
+ if (A->CommandIs("distance")) {Act=new Distance;}
++ else if (A->CommandIs("rms2d")) {Act=new Rms2d; }
+ else if (A->CommandIs("rmsd",3)) {Act=new Rmsd; }
+ else if (A->CommandIs("dihedral")) {Act=new Dihedral;}
+ else if (A->CommandIs("atommap")) {Act=new AtomMap; }
+@@ -166,6 +168,8 @@
+ err = ActionList[act]->DoAction(FrameAddress, frameIn);
+ if (err==1) {
+ // Treat actions that fail as if they could not be set up
++ mprintf("Warning: Action [%s] failed, frame %i.\n",ActionList[act]->CmdLine(),
++ frameIn);
+ ActionList[act]->noSetup=1;
+ } else if (err==2) {
+ // Return value of 2 requests return to original frame
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/PtrajFile.cpp amber11/AmberTools/src/cpptraj/src/PtrajFile.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/PtrajFile.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/PtrajFile.cpp 2011-10-25 15:01:28.196288560 +0300
+@@ -113,6 +113,7 @@
+ void PtrajFile::CloseFile() {
+ if (isOpen) {
+ IO->Close();
++ if (debug>0) rprintf("Closed %s.\n",filename);
+ isOpen=0;
+ }
+ }
+@@ -417,8 +418,8 @@
+ // Standard file size is in the frame_stat struct
+ uncompressed_size = IO->Size(filename);
+
+- // Determine format
+- // Read first 3 bytes again to determine format by magic number
++ // ========== Determine format ==========
++ // ---------- Read first 3 bytes again to determine format by magic number ----------
+ IO->Open(filename,"rb"); // NOTE: Err Check
+ memset(magic,0,3*sizeof(unsigned char));
+ IO->Read(magic ,1,1);
+@@ -454,7 +455,7 @@
+ return 0;
+ }
+
+- // ID by file characteristics; read the first two lines
++ // ---------- ID by file characteristics; read the first two lines ----------
+ // Initialize buffers to NULL
+ buffer1[0]='\0';
+ buffer2[0]='\0';
+@@ -472,17 +473,6 @@
+ }
+ }
+
+- // Reopen and scan for Tripos mol2 molecule section
+- // 0 indicates section found.
+- IO->Open(filename,"r");
+- if (!Mol2ScanTo(this, MOLECULE)) {
+- if (debug>0) mprintf(" TRIPOS MOL2 file\n");
+- fileFormat=MOL2FILE;
+- IO->Close();
+- return 0;
+- }
+- IO->Close();
+-
+ // If both lines have PDB keywords, assume PDB
+ if (isPDBkeyword(buffer1) && isPDBkeyword(buffer2)) {
+ if (debug>0) mprintf(" PDB file\n");
+@@ -491,7 +481,8 @@
+ }
+
+ // If either buffer contains a TRIPOS keyword assume Mol2
+- // NOTE: This will fail on tripos files with extensive header comments
++ // NOTE: This will fail on tripos files with extensive header comments.
++ // A more expensive check for mol2 files is below.
+ if (strncmp(buffer1,"@<TRIPOS>", 9)==0 ||
+ strncmp(buffer2,"@<TRIPOS>", 9)==0) {
+ if (debug>0) mprintf(" TRIPOS MOL2 file\n");
+@@ -547,7 +538,19 @@
+ }
+ }
+
+- // NOTE: EXPERIMENTAL
++ // ---------- MORE EXPENSIVE CHECKS ----------
++ // Reopen and scan for Tripos mol2 molecule section
++ // 0 indicates section found.
++ IO->Open(filename,"r");
++ if (!Mol2ScanTo(this, MOLECULE)) {
++ if (debug>0) mprintf(" TRIPOS MOL2 file\n");
++ fileFormat=MOL2FILE;
++ IO->Close();
++ return 0;
++ }
++ IO->Close();
++
++ // ---------- EXPERIMENTAL ----------
+ // If the file format is still undetermined and the file name is conflib.dat,
+ // assume this is a conflib.dat file from LMOD. Cant think of a better way to
+ // detect this since there is no magic number but the file is binary.
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/PtrajMpi.c amber11/AmberTools/src/cpptraj/src/PtrajMpi.c
+--- amber11.orig/AmberTools/src/cpptraj/src/PtrajMpi.c 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/PtrajMpi.c 2011-10-25 15:01:28.100288649 +0300
+@@ -460,7 +460,10 @@
+ }
+
+ err = MPI_Allreduce(input, Return, count, currentType, currentOp, MPI_COMM_WORLD);
+- if (err!=MPI_SUCCESS) printMPIerr(err, "Performing allreduce for %i elements\n",count);
++ if (err!=MPI_SUCCESS) {
++ printMPIerr(err, "Performing allreduce.\n");
++ rprintf("Error: allreduce failed for %i elements.\n",count);
++ }
+
+ if (parallel_check_error(err)!=0) return 1;
+ return 0;
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/PtrajState.cpp amber11/AmberTools/src/cpptraj/src/PtrajState.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/PtrajState.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/PtrajState.cpp 2011-10-25 15:01:28.214288545 +0300
+@@ -7,7 +7,8 @@
+ #include "CpptrajStdio.h"
+
+ // Constructor
+-PtrajState::PtrajState() {
++PtrajState::PtrajState() {
++ TotalErrors=0;
+ debug=0;
+ showProgress=1;
+ }
+@@ -291,6 +292,7 @@
+ char *df_cmd = NULL;
+ char *name1 = NULL;
+ char *name2 = NULL;
++ int width,precision;
+ DataFile *df;
+
+ if (DF_Args.empty()) return;
+@@ -349,6 +351,19 @@
+ }
+ mprintf(" Not printing x column for datafile %s\n",name1);
+ df->SetNoXcol();
++
++ // datafile precision
++ // Usage: datafile precision <filename> <dataset> [<width>] [<precision>]
++ // If width/precision not specified default to 12.4
++ } else if ( strcmp(df_cmd,"precision")==0 ) {
++ if (df==NULL) {
++ mprintf("Error: datafile precision: DataFile %s does not exist.\n",name1);
++ continue;
++ }
++ name2 = A->getNextString();
++ width = A->getNextInteger(12);
++ precision = A->getNextInteger(4);
++ df->SetPrecision(name2,width,precision);
+ }
+
+ } // END loop over datafile args
+@@ -374,7 +389,7 @@
+
+ // ========== S E T U P P H A S E ==========
+ // Calculate frame division among trajectories
+- maxFrames=trajFileList.SetupFrames();
++ maxFrames=trajFileList.SetupFrames(worldrank,worldsize);
+
+ // Parameter file information
+ parmFileList.Print();
+@@ -442,7 +457,7 @@
+ // Perform Actions on Frame
+ ptrajActionList.DoActions(&CurrentFrame, actionSet);
+ // Do Output
+- outFileList.Write(outputSet, CurrentFrame, CurrentParm);
++ outFileList.Write(actionSet, CurrentFrame, CurrentParm);
+ #ifdef DEBUG
+ dbgprintf("\tDEBUG: %30s: %4i\n",CurrentParm->parmName,CurrentParm->outFrame);
+ #endif
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/PtrajState.h amber11/AmberTools/src/cpptraj/src/PtrajState.h
+--- amber11.orig/AmberTools/src/cpptraj/src/PtrajState.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/PtrajState.h 2011-10-25 15:01:28.093288656 +0300
+@@ -20,6 +20,7 @@
+ DataFileList DFL; // List of datafiles that data sets will be written to
+ ArgList *A; // Current argument list
+ std::list<ArgList*> DF_Args; // List of commands pertaining to datafile creation etc
++ int TotalErrors; // Sum of all returned error statuses
+ int debug;
+
+ void SetGlobalDebug(int); // Set debug level for all components
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/ReferenceList.cpp amber11/AmberTools/src/cpptraj/src/ReferenceList.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/ReferenceList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/ReferenceList.cpp 2011-10-25 15:01:28.093288656 +0300
+@@ -20,11 +20,15 @@
+ */
+ int ReferenceList::Add(ArgList *A, ParmFileList *parmFileList, int worldsize) {
+ TrajFile *T;
+- int startArg;
++ int startArg,stopArg,offsetArg;
++ bool average = false;
+
+ // Set up common arguments from arglist
+ if (this->ProcessArgList(A,parmFileList)) return 1;
+
++ // Check if we want to obtain the average structure
++ average = A->hasKey("average");
++
+ // Set up basic file to determine type and format
+ T = this->SetupTrajectory(trajfilename, fileAccess, UNKNOWN_FORMAT, UNKNOWN_TYPE);
+
+@@ -45,10 +49,18 @@
+ // Get user-specified start arg
+ // NOTE: For compatibility with ptraj start from 1
+ startArg=A->getNextInteger(1);
+- T->SetArgs(startArg,startArg,1);
++ stopArg=startArg;
++ offsetArg=1;
++ // Get user-specified stop and offset only if getting avg structure
++ if (average) {
++ stopArg=A->getNextInteger(-1);
++ offsetArg=A->getNextInteger(1);
++ }
++ T->SetArgs(startArg,stopArg,offsetArg);
+
+ // Add to trajectory file list
+- this->push_back(T);
++ this->push_back(T);
++ Average.push_back(average);
+
+ return 0;
+ }
+@@ -60,9 +72,11 @@
+ * place that frame in refFrames.
+ */
+ int ReferenceList::SetupRefFrames(FrameList *refFrames) {
+- int trajFrames;
+- Frame *F;
++ int trajFrames, global_set;
++ double Nframes;
++ Frame *F, *AvgFrame;
+ int skipValue;
++ int refTrajNum = 0;
+
+ mprintf("\nREFERENCE COORDS:\n");
+ if (this->empty()) {
+@@ -72,7 +86,13 @@
+
+ for (it = this->begin(); it != this->end(); it++) {
+ // Setup the reference traj for reading. Should only be 1 frame.
+- trajFrames=(*it)->setupFrameInfo(-1);
++ // NOTE: For MPI, calling setupFrameInfo with worldrank 0, worldsize 1 for
++ // all ranks. This is to ensure each thread has a copy of the ref
++ // struct.
++ // Calling setupFrameInfo with -1 to ensure the Parm frame count is
++ // not updated.
++
++ trajFrames=(*it)->setupFrameInfo(-1,0,1);
+ if ((*it)->total_read_frames<1) {
+ rprintf("Error: No frames could be read for reference %s, skipping\n",
+ (*it)->trajfilename);
+@@ -89,12 +109,34 @@
+ skipValue=(*it)->skip;
+ (*it)->skip=0;
+ }
+- (*it)->Begin(&trajFrames, 0);
+- // Get and copy the 1 frame from Traj, then close
+- // NOTE: What happens when not seekable?
++ // Start trajectory read
++ global_set=0;
++ (*it)->Begin(&global_set, 0);
+ (*it)->PrintInfo(1);
+- (*it)->NextFrame(&trajFrames);
+- F=(*it)->F->Copy();
++ // If averaging requested, loop over specified frames and avg coords.
++ if (Average[refTrajNum++]) {
++ mprintf(" Averaging over %i frames.\n",trajFrames);
++ AvgFrame = new Frame((*it)->P->natom, (*it)->P->mass);
++ AvgFrame->ZeroCoords();
++ global_set = 0;
++ Nframes = 0.0;
++ while ( (*it)->NextFrame(&global_set) ) {
++ AvgFrame->AddCoord( (*it)->F );
++ Nframes++;
++ }
++ if (Nframes < 1.0) {
++ mprintf("Error: reference average: # frames read is less than 1.\n");
++ F=NULL;
++ } else {
++ AvgFrame->Divide( Nframes );
++ F=AvgFrame->Copy();
++ }
++ delete AvgFrame;
++ // If no averaging, get and copy the 1 frame from Traj, then close
++ } else {
++ (*it)->NextFrame(&trajFrames);
++ F=(*it)->F->Copy();
++ }
+ // DEBUG
+ //fprintf(stdout,"DEBUG: Ref Coord Atom 0\n");
+ //F->printAtomCoord(0);
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/ReferenceList.h amber11/AmberTools/src/cpptraj/src/ReferenceList.h
+--- amber11.orig/AmberTools/src/cpptraj/src/ReferenceList.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/ReferenceList.h 2011-10-25 15:01:28.094288655 +0300
+@@ -5,7 +5,7 @@
+ #include "FrameList.h"
+
+ class ReferenceList : public CoordFileList {
+-
++ std::vector<bool> Average;
+ public:
+
+ ReferenceList();
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/RemdTraj.cpp amber11/AmberTools/src/cpptraj/src/RemdTraj.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/RemdTraj.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/RemdTraj.cpp 2011-10-25 15:01:28.122288629 +0300
+@@ -88,7 +88,7 @@
+ // NOTE: Should check that this is the case for ALL frames.
+ stop = T->Frames;
+ Frames = T->Frames;
+- isBox = T->isBox;
++ BoxType = T->BoxType;
+ trajfilename = T->File->basefilename;
+ // Add it to the list
+ REMDtraj.push_back(T);
+@@ -190,12 +190,12 @@
+ return 1;
+ }
+ // Check that #Frames and box info matches
+- if ( Frames!=T->Frames || isBox!=T->isBox ) {
++ if ( Frames!=T->Frames || BoxType!=T->BoxType ) {
+ mprintf(
+- " ERROR: REMDTRAJ: #Frames (%i) or box info (%i) in replica does not match\n",
+- T->Frames, T->isBox);
+- mprintf(" values in lowest replica (Frames=%i, box=%i)\n",
+- Frames,isBox);
++ " ERROR: REMDTRAJ: #Frames (%i) or box type (%i) in replica does not match\n",
++ T->Frames, T->BoxType);
++ mprintf(" values in lowest replica (Frames=%i, boxtype=%i)\n",
++ Frames,BoxType);
+ delete T;
+ free(repFilename);
+ free(Prefix);
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/stringDataSet.cpp amber11/AmberTools/src/cpptraj/src/stringDataSet.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/stringDataSet.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/stringDataSet.cpp 2011-10-25 15:01:28.097288652 +0300
+@@ -6,6 +6,13 @@
+ #include "PtrajMpi.h"
+ #include "CpptrajStdio.h"
+ using namespace std;
++
++// CONSTRUCTOR
++stringDataSet::stringDataSet() {
++ dType=STRING;
++ setFormatString();
++}
++
+ /*
+ * stringDataSet::Xmax(()
+ * Return the maximum X value added to this set. By convention this is
+@@ -54,10 +61,10 @@
+
+ it = Data.find( frame );
+ if (it == Data.end()) {
+- sprintf(buffer," %s", "NoData");
++ sprintf(buffer, format, "NoData");
+ return (buffer + 7);
+ } else
+- sprintf(buffer," %s",(*it).second.c_str());
++ sprintf(buffer, format, (*it).second.c_str());
+
+ return (buffer + (*it).second.size() + 1);
+ }
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/stringDataSet.h amber11/AmberTools/src/cpptraj/src/stringDataSet.h
+--- amber11.orig/AmberTools/src/cpptraj/src/stringDataSet.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/stringDataSet.h 2011-10-25 15:01:28.097288652 +0300
+@@ -12,6 +12,8 @@
+ std::map<int,std::string> Data;
+ std::map<int,std::string>::iterator it;
+ public:
++ stringDataSet();
++
+ int Xmax();
+ int isEmpty(int);
+ void Add( int, void * );
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/TrajFile.cpp amber11/AmberTools/src/cpptraj/src/TrajFile.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/TrajFile.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/TrajFile.cpp 2011-10-25 15:01:28.122288629 +0300
+@@ -2,7 +2,6 @@
+ #include <cstdlib>
+ #include <cstring>
+ #include "TrajFile.h"
+-#include "PtrajMpi.h" // worldrank and worldsize needed to calc frame division
+ #include "CpptrajStdio.h"
+
+ // CONSTRUCTOR
+@@ -18,7 +17,7 @@
+ start=0;
+ stop=-1;
+ offset=1;
+- isBox=0;
++ BoxType=0;
+ title=NULL;
+ P=NULL;
+ frameskip=0;
+@@ -45,12 +44,17 @@
+ void TrajFile::SetTitle(char *titleIn) {
+ size_t titleSize;
+
++ //mprintf("DEBUG: Attempting to set title for %s: [%s]\n",trajfilename,titleIn);
+ if (titleIn==NULL) return;
+ titleSize = strlen(titleIn);
+- if (titleSize==0) return;
++ //mprintf(" Title size is %i\n",titleSize);
++ if (titleSize==0) {
++ mprintf("Warning: TrajFile::SetTitle(): Title for %s is 0 length.\n",trajfilename);
++ return;
++ }
+ this->title = (char*) malloc( (titleSize+1) * sizeof(char));
+ if (this->title==NULL) {
+- mprintf("Error: TrajFile::SetTitle(): Could not allocate memory for title.\n");
++ mprintf("Error: SetTitle: Could not allocate memory for title of %s.\n",trajfilename);
+ return;
+ }
+ strcpy(this->title, titleIn);
+@@ -59,6 +63,30 @@
+ }
+
+ /*
++ * TrajFile::CheckBoxType()
++ * Set the trajectory box type (ortho/nonortho) based on box angles.
++ * Check the current box type against the associated parmfile box type.
++ * Print a warning if they are different.
++ */
++void TrajFile::CheckBoxType(double *box) {
++ // Determine orthogonal / non-orthogonal from angles
++ if (box[3]==0.0 || box[4]==0.0 || box[5]==0.0)
++ BoxType=0;
++ else if (box[3]==90.0 && box[4]==90.0 && box[5]==90.0)
++ BoxType=1;
++ else
++ BoxType=2;
++ if (P->BoxType != BoxType) {
++ mprintf("Warning: %s contains box info of type %i (beta %lf)\n",trajfilename,
++ BoxType,box[4]);
++ mprintf(" but associated parmfile %s has box type %i (beta %lf)\n",P->parmName,
++ P->BoxType,P->Box[4]);
++ //mprintf(" Box information from trajectory will be used.\n");
++ }
++ if (debug>0) mprintf(" %s: Box type is %i (beta=%lf)\n",trajfilename,BoxType,box[4]);
++}
++
++/*
+ * TrajFile::PrintInfo()
+ * Print general trajectory information. Call TrajFile->Info for specific information.
+ */
+@@ -68,7 +96,7 @@
+
+ mprintf(", Parm %i",P->pindex);
+
+- if (isBox) mprintf(" (with box info)");
++ if (BoxType>0) mprintf(" (with box info)");
+
+ if (showExtended==0) {
+ mprintf("\n");
+@@ -85,7 +113,7 @@
+ mprintf(": Writing %i frames", P->parmFrames);
+ if (File->access==APPEND) mprintf(", appended"); // NOTE: Dangerous if REMD
+ }
+- if (debug>0) mprintf(", %i atoms, Box %i, seekable %i",P->natom,isBox,seekable);
++ if (debug>0) mprintf(", %i atoms, Box %i, seekable %i",P->natom,BoxType,seekable);
+ mprintf("\n");
+ }
+
+@@ -164,7 +192,7 @@
+ * Note that the input frames start counting from 1, output starts counting from 0!
+ * If called with maxFrames=-1 dont update the frame in parm file.
+ */
+-int TrajFile::setupFrameInfo(int maxFrames) {
++int TrajFile::setupFrameInfo(int maxFrames, int worldrank, int worldsize) {
+ int Nframes;
+ int ptraj_start_frame, ptraj_end_frame;
+ int traj_start_frame, traj_end_frame;
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/TrajFile.h amber11/AmberTools/src/cpptraj/src/TrajFile.h
+--- amber11.orig/AmberTools/src/cpptraj/src/TrajFile.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/TrajFile.h 2011-10-25 15:01:28.128288623 +0300
+@@ -25,44 +25,44 @@
+ int offset; // Number of frames to skip while processing
+
+ // --== Inherited by child classes ==--
+- virtual int open() { return 0; } // Open the file, prepare for coord read/write
+- virtual void close() {} // Close the file
++ virtual int open() { return 0; } // Open the file, prepare for coord read/write
++ virtual void close() {} // Close the file
++
++ void CheckBoxType(double *); // Check that traj boxtype matches parm
+
+ public:
+ int debug; // Level of debug information to print
+ char *trajfilename; // The base trajectory filename
+- // NOTE: I hate that the following are public. Only necessary for REMD processing!!
++ // NOTE: I hate that the 2 following are public. Only necessary for REMD processing!!
+ int Frames; // Total number of frames in trajectory
+ int total_read_frames; // Total number of frames that will be read
+- int isBox; // >0 means trajectory has box information
+-
++ int BoxType; // 0: None, 1: Ortho, 2: NonOrtho
+ Range *FrameRange; // list of frames to be written out
+ int hasTemperature; // 1 means trajectory has temperature information
+ PtrajFile *File; // Class that handles basic file IO
+ AmberParm *P; // Memory address of the associated parmfile
+ Frame *F; // Hold coordinates of the current frame
+- int skip; /* READ: If =1 do not process this input trajectory
+- WRITE: If =1 this traj has been set up for write */
++ int skip; // READ: If =1 do not process this input trajectory
++ // WRITE: If =1 this traj has been set up for write
+
+ TrajFile(); // Constructor
+ virtual ~TrajFile(); // Destructor - virtual since this class is inherited.
+
+- int Start() { return start; }
++ int Start() { return start; }
++ int CurrentFrame() { return currentFrame; }
+ void SetTitle(char *); // Set trajectory title.
+ void PrintInfo(int); // Print trajectory Information
+- int setupFrameInfo(int); // Set actual start/stop based on total #frames and #threads
+- int Begin(int *, int); /* Prepare traj for processing. Set output start value, calcd in
+- * setupFrameInfo. Allocate memory for F.
+- */
+- int Begin(); // Prepare trajectory for output
+- int NextFrame(int*); // Put the next target frame into F.
+- void End(); // Close trajectory and free F memory
+- void progressBar(); // Display trajectory progress to screen
+-// void progressBar2(); // Display trajectory progress to screen
+-
+- void SetArgs(int,int,int); // Set the stop, start, and offset args from user input
++ int Begin(int *, int); // Prepare traj for processing. Set output start value, calcd in
++ // setupFrameInfo. Allocate memory for F.
++ int Begin(); // Prepare trajectory for output
++ int NextFrame(int*); // Put the next target frame into F.
++ void End(); // Close trajectory and free F memory
++ void progressBar(); // Display trajectory progress to screen
++// void progressBar2(); // Display trajectory progress to screen
++ int setupFrameInfo(int,int,int); // Set actual start/stop based on total #frames and #threads
++ void SetArgs(int,int,int); // Set the stop, start, and offset args from user input
+ // --== Inherited by child classes ==--
+- virtual int getFrame(int) { return 1; } // Read the next coord frame into F
++ virtual int getFrame(int) { return 1; } // Read specified frame into F
+ virtual int SetupRead() { return 1; } // Set file up for reading
+ virtual int WriteArgs(ArgList*){ return 0; } // (Opt.) Process any args related to writing
+ virtual int SetupWrite() { return 1; } // Set file up for writing
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/TrajinList.cpp amber11/AmberTools/src/cpptraj/src/TrajinList.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/TrajinList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/TrajinList.cpp 2011-10-25 15:01:28.201288557 +0300
+@@ -1,4 +1,5 @@
+ // TrajinList
++#include <cstddef>
+ #include "TrajinList.h"
+ #include "RemdTraj.h"
+ #include "CpptrajStdio.h"
+@@ -70,7 +71,7 @@
+ * actual start and stop and how many frames total will be processed.
+ * Return the number of frames to be processed.
+ */
+-int TrajinList::SetupFrames() {
++int TrajinList::SetupFrames(int worldrank, int worldsize) {
+ int maxFrames, trajFrames;
+
+ mprintf("\nTRAJECTORIES:\n");
+@@ -78,7 +79,7 @@
+ maxFrames=0;
+
+ for (it = this->begin(); it != this->end(); it++) {
+- trajFrames = (*it)->setupFrameInfo(maxFrames);
++ trajFrames = (*it)->setupFrameInfo(maxFrames,worldrank,worldsize);
+ if (trajFrames==-1) {
+ maxFrames=-1;
+ }
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/TrajinList.h amber11/AmberTools/src/cpptraj/src/TrajinList.h
+--- amber11.orig/AmberTools/src/cpptraj/src/TrajinList.h 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/TrajinList.h 2011-10-25 15:01:28.090288658 +0300
+@@ -13,7 +13,7 @@
+ // NOTE: worldsize is passed in as last arg to avoid include of PtrajMpi
+ int Add(ArgList *A, ParmFileList *, int);
+ // TRAJIN: Set up frames to be processed
+- int SetupFrames();
++ int SetupFrames(int,int);
+ };
+ #endif
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/TrajoutList.cpp amber11/AmberTools/src/cpptraj/src/TrajoutList.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/TrajoutList.cpp 2011-04-14 15:30:16.000000000 +0300
++++ amber11/AmberTools/src/cpptraj/src/TrajoutList.cpp 2011-10-25 15:01:28.202288556 +0300
+@@ -1,4 +1,5 @@
+ // TrajoutList
++#include <cstddef>
+ #include "TrajoutList.h"
+ #include "CpptrajStdio.h"
+
+@@ -20,7 +21,6 @@
+ */
+ int TrajoutList::Add(ArgList *A, ParmFileList *parmFileList, int worldsize) {
+ TrajFile *T;
+- int boxInfo;
+ FileFormat writeFormat;
+ FileType writeType;
+ char *onlyframes;
+@@ -29,7 +29,6 @@
+ if (this->ProcessArgList(A,parmFileList)) return 1;
+
+ // Init variables
+- boxInfo=0;
+ writeFormat=AMBERTRAJ;
+ writeType=UNKNOWN_TYPE;
+
+@@ -56,10 +55,6 @@
+ if (worldsize>1 && writeFormat!=AMBERRESTART)
+ writeType=MPIFILE;
+
+- // Set box info from parm file unless nobox is set.
+- boxInfo=P->ifbox;
+- if (A->hasKey("nobox")) boxInfo=0;
+-
+ // Set up basic file for given type and format
+ // If type is unknown it will be determined from extension or will be standard (default)
+ T = this->SetupTrajectory(trajfilename, fileAccess, writeFormat, writeType);
+@@ -90,10 +85,11 @@
+ // Set parameter file
+ T->P=P;
+
+- // Set box information (only needed for write)
+- T->isBox=boxInfo;
++ // Set box type from parm file unless "nobox" specified
++ T->BoxType=P->BoxType;
++ if (A->hasKey("nobox")) T->BoxType=0;
+
+- // No setup here; Write is set up after first frame read in PtrajState::Run
++ // No more setup here; Write is set up when first frame written.
+ // Add to trajectory file list
+ this->push_back(T);
+
+diff -urN amber11.orig/AmberTools/src/etc/chemistry/amber/readparm.py amber11/AmberTools/src/etc/chemistry/amber/readparm.py
+--- amber11.orig/AmberTools/src/etc/chemistry/amber/readparm.py 2011-04-14 15:30:17.000000000 +0300
++++ amber11/AmberTools/src/etc/chemistry/amber/readparm.py 2011-10-25 15:01:28.200288558 +0300
+@@ -118,22 +118,44 @@
+ """ Parses the fortran format statement. Recognizes ints, exponents, and strings.
+ Returns the number of items/line, size of each item, and type of data """
+
++ # Get rid of ( and ) specifiers in Fortran format strings. This is a hack, but
++ # should work for existing chamber prmtop files
++
++ format_string = format_string.replace('(','').replace(')','')
++
++ # Fix case for E, I, and F
++
++ format_string = format_string.replace('e','E')
++ format_string = format_string.replace('i','I')
++ format_string = format_string.replace('f','F')
++
+ if 'a' in format_string: # this is a string
+ format_parts = format_string.split('a')
+- return int(format_parts[0]), int(format_parts[1]), 'str'
++ try:
++ return int(format_parts[0]), int(format_parts[1]), 'str', None
++ except:
++ return 1, 80, 'str', None
+
+ elif 'I' in format_string: # this is an integer
+ format_parts = format_string.split('I')
+- return int(format_parts[0]), int(format_parts[1]), 'int'
++ if len(format_parts[0].strip()) == 0: format_parts[0] = 1
++ return int(format_parts[0]), int(format_parts[1]), 'int', None
+
+ elif 'E' in format_string: # this is a floating point decimal
+ format_parts = format_string.split('E')
+ decimal_parts = format_parts[1].split('.')
+- return int(format_parts[0]), int(decimal_parts[0]), 'dec'
++ if len(format_parts[0].strip()) == 0: format_parts[0] = 1
++ return int(format_parts[0]), int(decimal_parts[0]), 'dec', int(decimal_parts[1])
++
++ elif 'F' in format_string: # this is also a floating point decimal
++ format_parts = format_string.split('F')
++ decimal_parts = format_parts[1].split('.')
++ if len(format_parts[0].strip()) == 0: format_parts[0] = 1
++ return int(format_parts[0]), int(decimal_parts[0]), 'dec', int(decimal_parts[1])
+
+ else:
+ print >> stderr, 'Error: Unrecognized format "%s"!' % format_string
+- return 1, 80, 'str'
++ return 1, 80, 'str', None
+
+ # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+@@ -275,7 +297,7 @@
+
+ elif prmlines[i][0:7] == '%FORMAT':
+ self.formats[current_flag] = prmlines[i][8:len(prmlines[i].strip())-1]
+- number_items_perline, size_item, dat_type = _parseFormat(self.formats[current_flag])
++ number_items_perline, size_item, dat_type, junk = _parseFormat(self.formats[current_flag])
+ gathering_data = True
+
+ elif gathering_data:
+@@ -339,17 +361,17 @@
+ flag = self.flag_list[i]
+ new_prm.write('%%FLAG %s\n' % flag)
+ new_prm.write('%%FORMAT(%s)\n' % self.formats[flag])
+- number_items_perline, size_item, dat_type = _parseFormat(self.formats[flag])
+- if dat_type == 'dec':
+- decnum = int(self.formats[flag].split('E')[1].split('.')[1])
++ number_items_perline, size_item, dat_type, decnum = _parseFormat(self.formats[flag])
+ line = ''
+ num_items = 0
+ if len(self.parm_data[flag]) == 0: # empty field...
+ new_prm.write('\n')
+ continue
+ for j in range(len(self.parm_data[flag])): # write data in new_prm
+- if dat_type == 'dec':
++ if dat_type == 'dec' and 'E' in self.formats[flag].upper():
+ line += ('%%%s.%sE' % (size_item, decnum)) % self.parm_data[flag][j]
++ elif dat_type == 'dec' and 'F' in self.formats[flag].upper():
++ line += ('%%%s.%sF' % (size_item, decnum)) % self.parm_data[flag][j]
+ elif dat_type == 'int':
+ line += ('%%%sd' % size_item) % self.parm_data[flag][j]
+ else:
+@@ -764,7 +786,8 @@
+ self.LJ_types[self.parm_data["AMBER_ATOM_TYPE"][i]] = self.parm_data["ATOM_TYPE_INDEX"][i]
+
+ for i in range(self.pointers["NTYPES"]):
+- lj_index = (i + 1) * (i + 2) / 2 - 1 # n(n+1)/2 th position adjusted for indexing from 0
++ lj_index = self.parm_data["NONBONDED_PARM_INDEX"][
++ self.pointers["NTYPES"] * i + i - 1] - 1
+ if self.parm_data["LENNARD_JONES_BCOEF"][lj_index] < 1.0e-6:
+ self.LJ_radius.append(0)
+ self.LJ_depth.append(0)
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/amber.c amber11/AmberTools/src/leap/src/leap/amber.c
+--- amber11.orig/AmberTools/src/leap/src/leap/amber.c 2011-03-10 20:12:06.000000000 +0200
++++ amber11/AmberTools/src/leap/src/leap/amber.c 2011-10-25 15:01:28.139288613 +0300
+@@ -36,6 +36,10 @@
+ * UNITs and PARMSETs.
+ */
+
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
++
+ #include "basics.h"
+ #include "vector.h"
+ #include "classes.h"
+@@ -240,23 +244,47 @@
+ *
+ * Read the proper torsion parameter terms.
+ */
++
++/* Arunima Singh added reading in of scee and scnb fields for proper torsions 20110420 */
+ static void
+ zAmberReadParmSetPropers( PARMSET psParms, FILE *fIn )
+ {
+ STRING sLine;
+-int iRead, iN;
++int iRead, iN, iRead2, iRead3;
+ STRING saStr[10];
+-double dDivisions, dKp, dP0, dN;
++double dDivisions, dKp, dP0, dN, dScee, dScnb;
++char *cScee, *cScnb;
+
+ memset(saStr, 0, sizeof(saStr)); /* for Purify */
+ while (1) {
+ FGETS( sLine, fIn );
+ NODASHES(sLine);
+- iRead = sscanf( sLine, "%s %s %s %s %lf %lf %lf %lf",
++
++ iRead = sscanf( sLine, "%s %s %s %s %lf %lf %lf %lf ",
+ saStr[0], saStr[1], saStr[2], saStr[3],
+ &dDivisions, &dKp, &dP0, &dN );
+- if ( iRead <= 0 )
++
++ cScee = strstr(sLine, "SCEE");
++ if(cScee!=NULL) {
++ iRead2 = sscanf( cScee, "SCEE=%lf", &dScee);
++ iRead++;
++ }
++
++ cScnb = strstr(sLine, "SCNB");
++ if(cScnb!=NULL) {
++ iRead3 = sscanf( cScnb, "SCNB=%lf", &dScnb);
++ iRead++;
++ }
++
++ if ( iRead <= 0 )
+ break;
++
++ if ( iRead == 8 ) /*Arunima Singh*/
++ {
++ dScee = 1.2;
++ dScnb = 2.0;
++ }
++
+ MESSAGE(( "Read: %s\n", sLine ));
+
+ if ( sLine[0] == ' ' && sLine[1] == ' ') {
+@@ -277,14 +305,37 @@
+ zAmberConvertWildCard( saStr[3] );
+ iParmSetAddProperTerm( psParms,
+ saStr[0], saStr[1], saStr[2], saStr[3],
+- abs(iN), dKp, dP0*DEGTORAD, "" );
++ abs(iN), dKp, dP0*DEGTORAD, dScee, dScnb, "" );
++
++
+ while( iN < 0 ) {
+ FGETS( sLine, fIn );
+ NODASHES(sLine);
+ MESSAGE(( "Read extra term: %s\n", sLine ));
+- iRead = sscanf( &sLine[11], "%lf %lf %lf %lf",
++ iRead = sscanf( &sLine[11], "%lf %lf %lf %lf ",
+ &dDivisions, &dKp, &dP0, &dN );
+- if ( iRead<=0 ) break;
++
++ cScee = strstr(sLine, "SCEE");
++ if(cScee!=NULL) {
++ iRead2 = sscanf( cScee, "SCEE=%lf", &dScee);
++ iRead++;
++ }
++
++ cScnb = strstr(sLine, "SCNB");
++ if(cScnb!=NULL) {
++ iRead3 = sscanf( cScnb, "SCNB=%lf", &dScnb);
++ iRead++;
++ }
++
++
++ if ( iRead == 4 ) /*Arunima Singh*/
++ {
++ dScee = 1.2;
++ dScnb = 2.0;
++ }
++
++
++ if ( iRead<=0 ) break;
+
+ if ( dDivisions == 0.0 )
+ dDivisions = 1.0;
+@@ -292,7 +343,7 @@
+ iN = (int)floor(dN+0.5);
+ iParmSetAddProperTerm( psParms,
+ saStr[0], saStr[1], saStr[2], saStr[3],
+- abs(iN), dKp, dP0*DEGTORAD, "" );
++ abs(iN), dKp, dP0*DEGTORAD, dScee, dScnb, "" );
+ }
+ if ( iRead <= 0 )
+ break;
+@@ -311,7 +362,7 @@
+ STRING sLine;
+ int iRead, iN;
+ STRING saStr[10];
+-double dKp, dP0, dN;
++double dKp, dP0, dN, dScee, dScnb;
+ BOOL bPrintLine;
+
+ memset(saStr, 0, sizeof(saStr)); /* for Purify */
+@@ -335,6 +386,8 @@
+ zAmberConvertWildCard( saStr[2] );
+ zAmberConvertWildCard( saStr[3] );
+ iN = (int)dN;
++ dScee = 0.0;
++ dScnb = 0.0;
+
+ /*
+ * check everything in case a format or other user error
+@@ -362,7 +415,7 @@
+
+ iParmSetAddImproperTerm( psParms,
+ saStr[0], saStr[1], saStr[2], saStr[3],
+- iN, dKp, dP0*DEGTORAD, "" );
++ iN, dKp, dP0*DEGTORAD, dScee, dScnb, "" );
+ }
+ if ( iRead > 0 )
+ VP0(( "WARNING: incomplete Improper Torsion line:\n%s", sLine ));
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/build.c amber11/AmberTools/src/leap/src/leap/build.c
+--- amber11.orig/AmberTools/src/leap/src/leap/build.c 2011-03-10 20:12:06.000000000 +0200
++++ amber11/AmberTools/src/leap/src/leap/build.c 2011-10-25 15:01:28.140288613 +0300
+@@ -42,8 +42,9 @@
+ *
+ */
+
+-
+-
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
+
+ #include "basics.h"
+
+@@ -1567,7 +1568,7 @@
+ LOOP lAtoms, lTemp;
+ ATOM aAtom, aAtom1, aAtom2, aAtom3, aAtom4;
+ BOOL bM1, bM2, bM3, bM4, bOneMinimizedAtom;
+-double dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0;
++double dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dScee, dScnb;
+ STRING sAtom1, sAtom2, sAtom3, sAtom4, sDesc;
+ PARMSET psTemp;
+ TORSION tTorsion;
+@@ -1757,7 +1758,7 @@
+ ParmSetTORSIONTerm( tTorsion, i,
+ &iIndex,
+ sAtom1, sAtom2, sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+ if ( !bMinimizerAddTorsion( mStrain,
+ aAtom1, aAtom2, aAtom3, aAtom4,
+ (double)iN, dKp, dP0 )) {
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/model.c amber11/AmberTools/src/leap/src/leap/model.c
+--- amber11.orig/AmberTools/src/leap/src/leap/model.c 2011-04-14 15:30:17.000000000 +0300
++++ amber11/AmberTools/src/leap/src/leap/model.c 2011-10-25 15:01:28.141288612 +0300
+@@ -39,7 +39,9 @@
+ * are determined from atom types.
+ */
+
+-
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
+
+
+ #include "basics.h"
+@@ -781,16 +783,6 @@
+ maPAtom++;
+ }
+ }
+- if ( iAtomCoordination(aX) !=
+- 1 + maPAtom - &(mtTorsions.maaXBonds[0]) ) {
+- VP0(( "Error: Atom %s has force field coordination %i\n"
+- " but only %i bonded neighbors.\n"
+- " The cause may be an incorrect atom type, and\n"
+- " the effect may be a crash very soon.\n",
+- sContainerFullDescriptor((CONTAINER)aX,s1),
+- iAtomCoordination(aX),
+- 1 + maPAtom - &(mtTorsions.maaXBonds[0]) ));
+- }
+ for ( i=iAtomCoordination(aX); i<MAXBONDS; i++ ) {
+ maPAtom->aAtom = NULL;
+ maPAtom++;
+@@ -824,16 +816,6 @@
+ maPAtom++;
+ }
+ }
+- if ( iAtomCoordination(aY) !=
+- 1 + maPAtom - &(mtTorsions.maaYBonds[0]) ) {
+- VP0(( "Error: Atom %s has force field coordination %i\n"
+- " but only %i bonded neighbors.\n"
+- " The cause may be an incorrect atom type, and\n"
+- " the effect may be a crash very soon.\n",
+- sContainerFullDescriptor((CONTAINER)aY,s1),
+- iAtomCoordination(aY),
+- 1 + maPAtom - &(mtTorsions.maaYBonds[0]) ));
+- }
+ for ( i=iAtomCoordination(aY); i<MAXBONDS; i++ ) {
+ maPAtom->aAtom = NULL;
+ maPAtom++;
+@@ -1205,6 +1187,8 @@
+ int iN;
+ double dK;
+ double dE;
++ double dSce; /*Arunima Singh*/
++ double dScn; /*Arunima Singh*/
+ } H_PROPERPARMt;
+
+ typedef struct {
+@@ -1222,12 +1206,13 @@
+
+ /* Keep iHybrid2 <= iHybrid3 */
+
++/* Arunima Singh 20110413. Added Scee and Scnb AMBER defaults of 1.2 and 2.0 */
+ #define TFORCE 20.0
+ static H_PROPERPARMt SppaPropers[] = {
+-{ HSP3, HSP3, 3, 1.0, 0.0 }, /* Non bond */
+-{ HSP2, HSP3, 6, -2.0, 0.0 }, /* Non bond */
+-{ HSP2, HSP2, 2, -4.0, 0.0 }, /* Pi bond overlap */
+-{ HSP1, HSP1, 1, 0.0, 0.0 } /* Not interesting */
++{ HSP3, HSP3, 3, 1.0, 0.0, 1.2, 2.0 }, /* Non bond */
++{ HSP2, HSP3, 6, -2.0, 0.0, 1.2, 2.0 }, /* Non bond */
++{ HSP2, HSP2, 2, -4.0, 0.0, 1.2, 2.0 }, /* Pi bond overlap */
++{ HSP1, HSP1, 1, 0.0, 0.0, 1.2, 2.0 } /* Not interesting */
+ };
+
+ #define AFORCE 100.0
+@@ -1290,6 +1275,8 @@
+ SppaPropers[i].iN,
+ SppaPropers[i].dK,
+ SppaPropers[i].dE,
++ SppaPropers[i].dSce,
++ SppaPropers[i].dScn,
+ sDesc );
+ }
+ }
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/parmSet.c amber11/AmberTools/src/leap/src/leap/parmSet.c
+--- amber11.orig/AmberTools/src/leap/src/leap/parmSet.c 2011-03-10 20:12:06.000000000 +0200
++++ amber11/AmberTools/src/leap/src/leap/parmSet.c 2011-10-25 15:01:28.143288610 +0300
+@@ -54,7 +54,9 @@
+ * search routines REQUIRE pre-ordering.
+ */
+
+-
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
+
+ #include "basics.h"
+
+@@ -965,6 +967,8 @@
+ /*
+ * copy into 1 vararray & set iType
+ */
++
++ /*Arunima Singh added scee and scnb into the database */
+ vaTorsTypes = vaVarArrayCopy2( psLib->vaTorsions, psLib->vaImpropers );
+ tP = PVAI(vaTorsTypes,TORSIONPARMt,0);
+ for (i=0; i<iVarArrayElementCount(psLib->vaTorsions); i++, tP++)
+@@ -980,8 +984,12 @@
+ 7, "n",
+ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->iN),
+ iVarArrayElementSize(vaTorsTypes),
+- 0, NULL, NULL, 0,
+- 0, NULL, NULL, 0,
++ 9, "scee",
++ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->dScee),
++ iVarArrayElementSize(vaTorsTypes),
++ 10, "scnb",
++ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->dScnb),
++ iVarArrayElementSize(vaTorsTypes),
+ 0, NULL, NULL, 0,
+ 0, NULL, NULL, 0,
+ 0, NULL, NULL, 0,
+@@ -1008,7 +1016,7 @@
+ 4, "type4",
+ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->sType4),
+ iVarArrayElementSize(vaTorsTypes),
+- 9, "desc",
++ 11, "desc",
+ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->sDesc),
+ iVarArrayElementSize(vaTorsTypes)
+ );
+@@ -1586,10 +1594,15 @@
+ * Add a torsion parameter to the PARMSET.
+ * Return the index.
+ */
++
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
++
+ int
+ iParmSetAddProperTerm( PARMSET psLib,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int iN, double dKp, double dP0, char *sDesc )
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
+ {
+ TORSIONPARMt tpTorsion;
+
+@@ -1605,6 +1618,8 @@
+ tpTorsion.dKp = dKp;
+ tpTorsion.iN = iN;
+ tpTorsion.dP0 = dP0;
++ tpTorsion.dScee = dScee;
++ tpTorsion.dScnb = dScnb;
+ strcpy( tpTorsion.sOrder, "0123" );
+ if ( sDesc != NULL )
+ strcpy( tpTorsion.sDesc, sDesc );
+@@ -1633,7 +1648,7 @@
+ int
+ iParmSetAddImproperTerm( PARMSET psLib,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int iN, double dKp, double dP0, char *sDesc )
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
+ {
+ TORSIONPARMt tpImproper;
+ orderStr sOrder;
+@@ -2022,7 +2037,7 @@
+ void
+ ParmSetTORSIONTerm( TORSION tTorsion, int iTorsionIndex, int *iPParmSetIndex,
+ char *cPType1, char *cPType2, char *cPType3, char *cPType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDesc )
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc )
+ {
+ TORSION_MATCHt *tmPCur;
+
+@@ -2035,6 +2050,8 @@
+ *iPN = tmPCur->tpTorsion.iN;
+ *dPKp = tmPCur->tpTorsion.dKp;
+ *dPP0 = tmPCur->tpTorsion.dP0;
++ *dPScee = tmPCur->tpTorsion.dScee;
++ *dPScnb = tmPCur->tpTorsion.dScnb;
+ strcpy(sDesc, tmPCur->tpTorsion.sDesc);
+ }
+
+@@ -2050,7 +2067,7 @@
+ BOOL
+ bParmSetTORSIONAddProperTerm( TORSION tTorsion,
+ char *cPType1, char *cPType2, char *cPType3, char *cPType4,
+- int iN, double dKp, double dP0, char *sDesc )
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
+ {
+ TORSIONPARMt tpTorsion;
+
+@@ -2066,6 +2083,8 @@
+ tpTorsion.iN = iN;
+ tpTorsion.dKp = dKp;
+ tpTorsion.dP0 = dP0;
++ tpTorsion.dScee = dScee;
++ tpTorsion.dScnb = dScnb;
+ strcpy(tpTorsion.sDesc, sDesc);
+ strcpy( tpTorsion.sOrder, "0123" );
+
+@@ -2087,7 +2106,7 @@
+ BOOL
+ bParmSetTORSIONAddImproperTerm( TORSION tTorsion,
+ char *cPType1, char *cPType2, char *cPType3, char *cPType4,
+- int iN, double dKp, double dP0, char *sDesc )
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
+ {
+ TORSIONPARMt tpTorsion;
+ orderStr sOrder;
+@@ -2104,6 +2123,8 @@
+ tpTorsion.iN = iN;
+ tpTorsion.dKp = dKp;
+ tpTorsion.dP0 = dP0;
++ tpTorsion.dScee = dScee;
++ tpTorsion.dScnb = dScnb;
+ strcpy(tpTorsion.sDesc, sDesc);
+ strcpy( tpTorsion.sOrder, sOrder );
+
+@@ -2516,7 +2537,7 @@
+ void
+ ParmSetTorsion( PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDesc)
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc)
+ {
+ TORSIONPARMt *tpPTorsion;
+
+@@ -2531,6 +2552,8 @@
+ strcpy( sType4, WILD_CARD_TYPE );
+ *iPN = 0;
+ *dPKp = 0;
++ *dPScee = 0;
++ *dPScnb = 0;
+ *dPP0 = 0;
+ strcpy( sDesc, "??" );
+ return;
+@@ -2543,7 +2566,10 @@
+ *iPN = tpPTorsion->iN;
+ *dPKp = tpPTorsion->dKp;
+ *dPP0 = tpPTorsion->dP0;
++ *dPScee = tpPTorsion->dScee;
++ *dPScnb = tpPTorsion->dScnb;
+ strcpy( sDesc, tpPTorsion->sDesc );
++
+ }
+
+
+@@ -2557,7 +2583,7 @@
+ void
+ ParmSetImproper( PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDesc)
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc)
+ {
+ TORSIONPARMt *tpPImproper;
+
+@@ -2573,6 +2599,8 @@
+ *iPN = 0;
+ *dPKp = 0;
+ *dPP0 = 0;
++ *dPScee = 0;
++ *dPScnb = 0;
+ strcpy( sDesc, "??" );
+ return;
+ }
+@@ -2584,6 +2612,8 @@
+ *iPN = tpPImproper->iN;
+ *dPKp = tpPImproper->dKp;
+ *dPP0 = tpPImproper->dP0;
++ *dPScee = tpPImproper->dScee;
++ *dPScnb = tpPImproper->dScnb;
+ strcpy( sDesc, tpPImproper->sDesc );
+ }
+
+@@ -2740,7 +2770,7 @@
+ void
+ ParmSetUpdateTorsion( PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDescription)
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDescription)
+ {
+ TORSIONPARMt *tpPTorsion;
+ orderStr sOrder;
+@@ -2754,6 +2784,8 @@
+ if ( iPN != (int*)NULL ) tpPTorsion->iN = *iPN;
+ if ( dPKp != (double*)NULL) tpPTorsion->dKp = *dPKp;
+ if ( dPP0 != (double*)NULL) tpPTorsion->dP0 = *dPP0;
++ if ( dPScee != (double*)NULL) tpPTorsion->dScee = *dPScee;
++ if ( dPScnb != (double*)NULL) tpPTorsion->dScnb = *dPScnb;
+ if (sDescription != (char*)NULL ) strcpy(tpPTorsion->sDesc, sDescription);
+
+ strcpy( sOrder, "0123" );
+@@ -2777,7 +2809,7 @@
+ void
+ ParmSetUpdateImproper( PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDescription)
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDescription)
+ {
+ TORSIONPARMt *tpPTorsion;
+ orderStr sOrder;
+@@ -2790,6 +2822,8 @@
+ if ( iPN != (int*)NULL ) tpPTorsion->iN = *iPN;
+ if ( dPKp != (double*)NULL) tpPTorsion->dKp = *dPKp;
+ if ( dPP0 != (double*)NULL) tpPTorsion->dP0 = *dPP0;
++ if ( dPScee != (double*)NULL) tpPTorsion->dScee = *dPScee;
++ if ( dPScnb != (double*)NULL) tpPTorsion->dScnb = *dPScnb;
+ if (sDescription != (char*)NULL ) strcpy(tpPTorsion->sDesc, sDescription);
+
+ strcpy( sOrder, "0123" );
+@@ -2979,6 +3013,7 @@
+ tpPCur->sType1, tpPCur->sType2,
+ tpPCur->sType3, tpPCur->sType4,
+ tpPCur->iN, tpPCur->dKp, tpPCur->dP0/DEGTORAD,
++ tpPCur->dScee, tpPCur->dScnb,
+ tpPCur->sOrder, tpPCur->sDesc );
+ }
+ }
+@@ -2996,6 +3031,7 @@
+ tpPCur->sType1, tpPCur->sType2,
+ tpPCur->sType3, tpPCur->sType4,
+ tpPCur->iN, tpPCur->dKp, tpPCur->dP0/DEGTORAD,
++ tpPCur->dScee, tpPCur->dScnb,
+ tpPCur->sDesc );
+ }
+ }
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/parmSet.h amber11/AmberTools/src/leap/src/leap/parmSet.h
+--- amber11.orig/AmberTools/src/leap/src/leap/parmSet.h 2011-03-10 20:12:06.000000000 +0200
++++ amber11/AmberTools/src/leap/src/leap/parmSet.h 2011-10-25 15:01:28.144288609 +0300
+@@ -42,6 +42,9 @@
+ *
+ *
+ */
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
+
+ #ifndef PARMSET_H
+ #define PARMSET_H
+@@ -96,6 +99,8 @@
+ int iN;
+ double dKp;
+ double dP0;
++ double dScee; /* for propers */ /* Arunima Singh */
++ double dScnb; /* for propers */ /* Arunima Singh */
+ orderStr sOrder; /* for impropers */
+ DESCRIPTION sDesc;
+ } TORSIONPARMt;
+@@ -158,10 +163,10 @@
+ double dKt, double dT0, double dTkub, double dRkub, char *sDesc);
+ extern int iParmSetAddProperTerm(PARMSET psLib,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int iN, double dKp, double dP0, char *sDesc);
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc); /* for proper dihedrals */ /* Arunima Singh */
+ extern int iParmSetAddImproperTerm(PARMSET psLib,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int iN, double dKp, double dP0, char *sDesc);
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc); /* Arunima Singh : added for proper dihedrals, but has to be included in impropers to maintain common data structure usage */
+ extern int iParmSetAddHBond(PARMSET psLib, char *sType1, char *sType2,
+ double dA, double dB, char *sDesc);
+
+@@ -216,15 +221,15 @@
+ extern void ParmSetTORSIONTerm(TORSION tTorsion, int iTorsionIndex,
+ int *iPParmSetIndex,
+ char *cPTyp1, char *cPTyp2, char *cPTyp3, char *cPTyp4,
+- int *iPN, double *dPKp, double *dPP0, char *sDesc );
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc );
+ extern BOOL bParmSetTORSIONAddProperTerm(TORSION tTorsion,
+ char *cPType1, char *cPType2,
+ char *cPType3, char *cPType4,
+- int iN, double dKp, double dP0, char *sDesc);
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc);
+ extern BOOL bParmSetTORSIONAddImproperTerm(TORSION tTorsion,
+ char *cPType1, char *cPType2,
+ char *cPType3, char *cPType4,
+- int iN, double dKp, double dP0, char *sDesc);
++ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc);
+ extern void ParmSetTORSIONOrderAtoms();
+ extern void ParmSetImproperOrderAtoms( TORSION tTorsion, int iTorsionIndex,
+ char *cPaTypes[4], int iaIndexes[4] );
+@@ -268,10 +273,10 @@
+ char *sDesc);
+ extern void ParmSetTorsion(PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDesc);
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc);
+ extern void ParmSetImproper(PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0, char *sDesc);
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc);
+ extern void ParmSetHBond(PARMSET psLib, int i, char *sType1, char *sType2,
+ double *dPA, double *dPB, char *sDesc);
+
+@@ -296,11 +301,11 @@
+ double *dPKt, double *dPT0, char *sDescription);
+ extern void ParmSetUpdateTorsion(PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0,
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb,
+ char *sDescription);
+ extern void ParmSetUpdateImproper(PARMSET psLib, int i,
+ char *sType1, char *sType2, char *sType3, char *sType4,
+- int *iPN, double *dPKp, double *dPP0,
++ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb,
+ char *sDescription);
+ extern void ParmSetUpdateHBond(PARMSET psLib, int i,
+ char *sType1, char *sType2,
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/unitio.c amber11/AmberTools/src/leap/src/leap/unitio.c
+--- amber11.orig/AmberTools/src/leap/src/leap/unitio.c 2011-03-10 20:12:06.000000000 +0200
++++ amber11/AmberTools/src/leap/src/leap/unitio.c 2011-10-25 15:01:28.192288568 +0300
+@@ -70,6 +70,10 @@
+ * zbUnitIOIndexBondParameters and zUnitDoAtoms are now "extern functions"
+ */
+
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
++
+ #include <time.h>
+
+ #include "basics.h"
+@@ -1585,7 +1589,9 @@
+ tC.dKp = tpA->dKp;
+ tC.iN = tpA->iN;
+ tC.dP0 = tpA->dP0;
+- VarArrayAdd(vaB, (GENP) & tC);
++ tC.dScee = tpA->dScee;
++ tC.dScnb = tpA->dScnb;
++ VarArrayAdd(vaB, (GENP) & tC);
+ iIndex++;
+ iOldIndex = iParmOffset + iA + 1;
+
+@@ -1615,6 +1621,10 @@
+ continue;
+ if (tpB->dP0 != tpA->dP0)
+ continue;
++ if (tpB->dScee != tpA->dScee)
++ continue;
++ if (tpB->dScnb != tpA->dScnb)
++ continue;
+
+ /*
+ * B is a duplicate of A
+@@ -1698,12 +1708,12 @@
+ int iTerm, iPertTerm;
+ BOOL bDone, bUse, bUsePert, bCopy, bCopyPert, bEnd, bPertEnd;
+ int iN, iPertIndex, iPertN, iLastN, iLastPertN;
+- double dKp, dP0, dPertKp, dPertP0;
++ double dKp, dP0, dScee, dScnb, dPertKp, dPertP0, dPertScee, dPertScnb;
+ BOOL bCalc14, bCalcPert14;
+ #ifdef DEBUG2
+ STRING s1, s2, s3, s4;
+ int iTParm, iTmp;
+- double dTK, dTP;
++ double dTK, dTP, dTScee, dTScnb;
+ STRING sT1, sT2, sT3, sT4, sTemp;
+ #endif
+ STRING sDesc;
+@@ -2016,9 +2026,9 @@
+ ParmSetTORSIONTerm(tTorsion, i,
+ &iTParm,
+ sT1, sT2, sT3, sT4,
+- &iTmp, &dTK, &dTP, sTemp);
+- MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf\n",
+- i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP));
++ &iTmp, &dTK, &dTP, &dTScee, &dTScnb, sTemp);
++ MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
++ i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP, dTScee, dTScnb));
+ }
+ if (bPerturbTorsion) {
+ MESSAGE(("Pert%s %s-%s-%s-%s found %d terms\n",
+@@ -2029,9 +2039,9 @@
+ ParmSetTORSIONTerm(tPertTorsion, i,
+ &iTParm,
+ sT1, sT2, sT3, sT4,
+- &iTmp, &dTK, &dTP, sTemp);
+- MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf\n",
+- i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP));
++ &iTmp, &dTK, &dTP, &dTScee, &dTScnb, sTemp);
++ MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
++ i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP dTScee, dTScnb));
+ }
+ }
+ #endif
+@@ -2061,7 +2071,7 @@
+ ParmSetTORSIONTerm(tTorsion, iTerm,
+ &iIndex,
+ sAtom1, sAtom2, sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc);
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
+ MESSAGE(("First non-perturbed multiplicity: %d\n", iN));
+ } else {
+ if (bProper) {
+@@ -2082,7 +2092,7 @@
+ ParmSetTORSIONTerm(tPertTorsion, iPertTerm,
+ &iPertIndex,
+ sPert1, sPert2, sPert3, sPert4,
+- &iPertN, &dPertKp, &dPertP0, sDesc);
++ &iPertN, &dPertKp, &dPertP0, &dPertScee, &dPertScnb, sDesc);
+ MESSAGE(("First perturbed multiplicity: %d\n", iPertN));
+ } else
+ bPertEnd = TRUE;
+@@ -2175,14 +2185,14 @@
+ if (bProper)
+ iIndex = iParmSetAddProperTerm(uUnit->psParameters,
+ sAtom1, sAtom2, sAtom3,
+- sAtom4, iN, dKp, dP0,
+- sDesc);
++ sAtom4, iN, dKp, dP0,
++ dScee, dScnb, sDesc);
+ /* else if ( !GDefaults.iCharmm ) ???---should I do this???? */
+ else
+ iIndex = iParmSetAddImproperTerm(uUnit->psParameters,
+ sAtom1, sAtom2,
+ sAtom3, sAtom4, iN,
+- dKp, dP0, sDesc);
++ dKp, dP0, dScee, dScnb, sDesc);
+ }
+ if (bCopyPert) {
+ if (bProper) {
+@@ -2190,13 +2200,13 @@
+ sPert1, sPert2,
+ sPert3, sPert4,
+ iPertN, dPertKp,
+- dPertP0, sDesc);
++ dPertP0, dScee, dScnb, sDesc);
+ } else {
+ iPertIndex =
+ iParmSetAddImproperTerm(uUnit->psParameters,
+ sPert1, sPert2, sPert3,
+ sPert4, iPertN, dPertKp,
+- dPertP0, sDesc);
++ dPertP0, dScee, dScnb, sDesc);
+ }
+ MESSAGE(("iPertIndex = %d\n", iPertIndex));
+ }
+@@ -2215,7 +2225,7 @@
+ ParmSetTORSIONTerm(tTorsion, iTerm,
+ &iIndex,
+ sAtom1, sAtom2, sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc);
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
+ }
+ MESSAGE(
+ ("Advancing non-perturbed multiplicity to %d\n",
+@@ -2231,7 +2241,7 @@
+ ParmSetTORSIONTerm(tPertTorsion, iPertTerm,
+ &iPertIndex,
+ sPert1, sPert2, sPert3, sPert4,
+- &iPertN, &dPertKp, &dPertP0, sDesc);
++ &iPertN, &dPertKp, &dPertP0, &dPertScee, &dPertScnb, sDesc);
+ }
+ MESSAGE(
+ ("Advancing perturbed multiplicity to %d\n",
+@@ -3988,7 +3998,7 @@
+ SAVEATOMt *saPAtom;
+ SAVETORSIONt *stPTorsion;
+ SAVERESTRAINTt *srPRestraint;
+- double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0,
++ double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dScee, dScnb,
+ dC, dD, dTemp;
+ STRING sAtom1, sAtom2, sAtom3, sAtom4, sType1, sType2;
+ int iN, iAtoms, iMaxAtoms, iTemp, iAtom, iCalc14, iProper;
+@@ -4585,16 +4595,16 @@
+ iParmSetTotalImproperParms(uUnit->psParameters)));
+ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
+ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
+- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
+- MESSAGE(("Torsion %d %s-%s-%s-%s %d %lf %lf\n",
+- i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0));
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
++ MESSAGE(("Torsion %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
++ i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0, dScee, dScnb));
+ FortranWriteDouble(dKp);
+ }
+ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
+ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
+- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
+- MESSAGE(("Improper %d %s-%s-%s-%s %d %lf %lf\n",
+- i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0));
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
++ MESSAGE(("Improper %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
++ i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0, dScee, dScnb));
+ FortranWriteDouble(dKp);
+ }
+ /* Write the torsion RESTRAINT constants AND set the index */
+@@ -4612,13 +4622,13 @@
+ FortranFormat(5, DBLFORMAT);
+ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
+ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
+- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
+ dTemp = iN;
+ FortranWriteDouble(dTemp);
+ }
+ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
+ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
+- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
+ dTemp = iN;
+ FortranWriteDouble(dTemp);
+ }
+@@ -4637,12 +4647,12 @@
+ FortranFormat(5, DBLFORMAT);
+ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
+ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
+- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
+ FortranWriteDouble(dP0);
+ }
+ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
+ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
+- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
+ FortranWriteDouble(dP0);
+ }
+ /* Write the torsion RESTRAINT constants AND set the index */
+@@ -4650,6 +4660,60 @@
+ RESTRAINTLOOP(RESTRAINTTORSION, dN, i + 1);
+ FortranEndLine();
+
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added Printing SCEE/SCNB */
++
++
++ /* -17.5A- SCEE for torsions */
++ FortranDebug("-17.5A-");
++
++ MESSAGE(("Writing SCEE scale factor for torsion interaction\n"));
++ FortranFormat(1, "%-80s");
++ FortranWriteString("%FLAG SCEE_SCALE_FACTOR");
++ FortranWriteString("%FORMAT(5E16.8)");
++ FortranFormat(5, DBLFORMAT);
++ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
++ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
++ FortranWriteDouble(dScee);
++ }
++ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
++ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
++ FortranWriteDouble(dScee);
++ }
++ /* Write the torsion RESTRAINT constants AND set the index */
++ /* for where the interaction can find its constants */
++ RESTRAINTLOOP(RESTRAINTTORSION, dX0, i + 1);
++ FortranEndLine();
++
++ /* -17.5B- SCNB for torsions */
++ FortranDebug("-17.5B-");
++
++ MESSAGE(("Writing SCNB scale factor for torsion interaction\n"));
++ FortranFormat(1, "%-80s");
++ FortranWriteString("%FLAG SCNB_SCALE_FACTOR");
++ FortranWriteString("%FORMAT(5E16.8)");
++ FortranFormat(5, DBLFORMAT);
++ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
++ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
++ FortranWriteDouble(dScnb);
++ }
++ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
++ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
++ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
++ FortranWriteDouble(dScnb);
++ }
++ /* Write the torsion RESTRAINT constants AND set the index */
++ /* for where the interaction can find its constants */
++ RESTRAINTLOOP(RESTRAINTTORSION, dX0, i + 1);
++ FortranEndLine();
++
++ /* Arunima Singh */
++ /* End of adding SCEE/SCNB */
++
+ /* -18- Not used, reserved for future use, uses NATYP */
+ /* Corresponds to the AMBER SOLTY array */
+ FortranDebug("-18-");
+@@ -6009,7 +6073,7 @@
+ SAVEATOMt *saPAtom;
+ SAVETORSIONt *stPTorsion;
+ SAVERESTRAINTt *srPRestraint;
+-double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dC, dD, dTemp;
++double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dScee, dScnb, dC, dD, dTemp;
+ STRING sAtom1, sAtom2, sAtom3, sAtom4, sType1, sType2;
+ int iN, iAtoms, iMaxAtoms, iTemp, iAtom, iCalc14, iProper;
+ int iElement, iHybridization, iStart, iFirstSolvent;
+@@ -6547,19 +6611,19 @@
+ for ( i=0; i<iParmSetTotalTorsionParms(uUnit->psParameters); i++ ) {
+ ParmSetTorsion( uUnit->psParameters, i, sAtom1, sAtom2,
+ sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
+- MESSAGE(( "Torsion %d %s-%s-%s-%s %d %lf %lf\n",
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
++ MESSAGE(( "Torsion %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
+ i, sAtom1, sAtom2, sAtom3, sAtom4,
+- iN, dKp, dP0 ));
++ iN, dKp, dP0, dScee, dScnb ));
+ FortranWriteDouble( dKp );
+ }
+ for ( i=0; i<iParmSetTotalImproperParms(uUnit->psParameters); i++ ) {
+ ParmSetImproper( uUnit->psParameters, i, sAtom1, sAtom2,
+ sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
+- MESSAGE(( "Improper %d %s-%s-%s-%s %d %lf %lf\n",
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
++ MESSAGE(( "Improper %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
+ i, sAtom1, sAtom2, sAtom3, sAtom4,
+- iN, dKp, dP0 ));
++ iN, dKp, dP0, dScee, dScnb ));
+ FortranWriteDouble( dKp );
+ }
+ /* Write the torsion RESTRAINT constants AND set the index */
+@@ -6575,14 +6639,14 @@
+ for ( i=0; i<iParmSetTotalTorsionParms(uUnit->psParameters); i++ ) {
+ ParmSetTorsion( uUnit->psParameters, i, sAtom1, sAtom2,
+ sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+ dTemp = iN;
+ FortranWriteDouble( dTemp );
+ }
+ for ( i=0; i<iParmSetTotalImproperParms(uUnit->psParameters); i++ ) {
+ ParmSetImproper( uUnit->psParameters, i, sAtom1, sAtom2,
+ sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+ dTemp = iN;
+ FortranWriteDouble( dTemp );
+ }
+@@ -6599,13 +6663,13 @@
+ for ( i=0; i<iParmSetTotalTorsionParms(uUnit->psParameters); i++ ) {
+ ParmSetTorsion( uUnit->psParameters, i, sAtom1, sAtom2,
+ sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+ FortranWriteDouble( dP0 );
+ }
+ for ( i=0; i<iParmSetTotalImproperParms(uUnit->psParameters); i++ ) {
+ ParmSetImproper( uUnit->psParameters, i, sAtom1, sAtom2,
+ sAtom3, sAtom4,
+- &iN, &dKp, &dP0, sDesc );
++ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+ FortranWriteDouble( dP0 );
+ }
+ /* Write the torsion RESTRAINT constants AND set the index */
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/xaImproperParmTable.c amber11/AmberTools/src/leap/src/leap/xaImproperParmTable.c
+--- amber11.orig/AmberTools/src/leap/src/leap/xaImproperParmTable.c 2011-03-10 20:12:06.000000000 +0200
++++ amber11/AmberTools/src/leap/src/leap/xaImproperParmTable.c 2011-10-25 15:01:28.193288566 +0300
+@@ -37,7 +37,9 @@
+ * Handle editing of parameters in a table format.
+ */
+
+-
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
+
+ #include <X11/IntrinsicP.h>
+ #include <X11/StringDefs.h>
+@@ -59,7 +61,10 @@
+ #define NC 4
+ #define KPC 5
+ #define P0C 6
+-#define DESCC 7
++#define SCEE 7 /*Arunima Singh*/
++#define SCNB 8 /*Arunima Singh*/
++#define DESCC 9 /*Arunima Singh: Changed value from 7 to 9 to include scee and scnb*/
++
+
+ #define MAXTYPELEN 5
+ #define DESCLEN 32
+@@ -129,13 +134,15 @@
+ int iN;
+ double dKp;
+ double dP0;
++double dScee;
++double dScnb;
+ char sDesc[DESCLEN];
+
+
+ iptPCur = (IMPROPERPARMTABLEt*)PXATClientPointer(tTable);
+
+ ParmSetImproper( iptPCur->psParmSet, iRow,
+- sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, sDesc );
++ sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+
+ switch ( iCol ) {
+ case TYPE1C:
+@@ -171,6 +178,14 @@
+ }
+ return(SsBuffer);
+ break;
++ case SCEE:
++ sprintf( SsBuffer, DBLFMT, dScee );
++ return(SsBuffer);
++ break;
++ case SCNB:
++ sprintf( SsBuffer, DBLFMT, dScnb );
++ return(SsBuffer);
++ break;
+ case DESCC:
+ strcpy( SsBuffer, sDesc );
+ return( SsBuffer );
+@@ -259,6 +274,16 @@
+ if ( !strcmp( cPData, "0" )) break;
+ return("P0 field must be '0' or 'Pi'.");
+ break;
++ case SCEE:
++ if ( !bStringToDouble( cPData, &dValue ) ) {
++ return("Invalid character in Scee field.");
++ }
++ break;
++ case SCNB:
++ if ( !bStringToDouble( cPData, &dValue ) ) {
++ return("Invalid character in Scnb field.");
++ }
++ break;
+ case DESCC:
+ if ( strlen(cPData)>DESCLEN-1 ) {
+ sprintf( SsError, "%s %d characters.",
+@@ -384,11 +409,33 @@
+ return("P0 field must be '0' or 'Pi'.");
+ }
+
++ /*
++ * Scee
++ */
++ *iPErrCol = 7;
++ cPData = col[7];
++ if ( !bStringToDouble( cPData, &dValue ) ) {
++ return("Invalid character in Scee field.");
++ } else if ( dValue < 0.0 ) {
++ return("Scee cannot be negative.");
++ }
++
++ /*
++ * Scnb
++ */
++ *iPErrCol = 8;
++ cPData = col[8];
++ if ( !bStringToInt( cPData, &iValue ) ) {
++ return("Invalid character in Scnb field.");
++ } else if ( dValue < 0.0 ) {
++ return("Scnb cannot be negative.");
++ }
++
+ /*
+ * Desc
+ */
+- *iPErrCol = 7;
+- cPData = col[7];
++ *iPErrCol = 9;
++ cPData = col[9];
+ if ( strlen(cPData) > DESCLEN-1 ) {
+ sprintf( SsError, "%s %d characters.",
+ "Parameter Description cannot be longer than",
+@@ -413,7 +460,8 @@
+ int iN;
+ double dKp;
+ double dP0;
+-
++double dScee;
++double dScnb;
+
+ iptPCur = (IMPROPERPARMTABLEt*) PXATClientPointer(tTable);
+ psParmSet = iptPCur->psParmSet;
+@@ -444,7 +492,7 @@
+ col[0], col[1], col[2], col[3] ));
+ if ( iRow != iParmSetAddImproperTerm( psParmSet,
+ col[0], col[1], col[2], col[3],
+- iN, dKp, dP0, col[7] ) )
++ iN, dKp, dP0, dScee, dScnb, col[9] ) )
+ DFATAL(( "programming err 2 in zXAIPTAcceptRow\n" ));
+ } else {
+ /*
+@@ -452,7 +500,7 @@
+ */
+ ParmSetUpdateImproper( psParmSet, iRow,
+ col[0], col[1], col[2], col[3],
+- &iN, &dKp, &dP0, col[7] );
++ &iN, &dKp, &dP0, &dScee, &dScnb, col[9] );
+ }
+ }
+
+diff -urN amber11.orig/AmberTools/src/leap/src/leap/xaTorsionParmTable.c amber11/AmberTools/src/leap/src/leap/xaTorsionParmTable.c
+--- amber11.orig/AmberTools/src/leap/src/leap/xaTorsionParmTable.c 2011-03-10 20:12:06.000000000 +0200
++++ amber11/AmberTools/src/leap/src/leap/xaTorsionParmTable.c 2011-10-25 15:01:28.194288563 +0300
+@@ -37,6 +37,9 @@
+ * Handle editing of parameters in a table format.
+ */
+
++ /* Arunima Singh (UGA) */
++ /* 20110420 */
++ /* Added SCEE/SCNB */
+
+ #include <X11/IntrinsicP.h>
+ #include <X11/StringDefs.h>
+@@ -58,7 +61,9 @@
+ #define NC 4
+ #define KPC 5
+ #define P0C 6
+-#define DESCC 7
++#define SCEE 7 /*Arunima Singh*/
++#define SCNB 8 /*Arunima Singh*/
++#define DESCC 9 /*Arunima Singh: Changed value from 7 to 9 to include scee and scnb*/
+
+ #define MAXTYPELEN 5
+ #define DESCLEN 32
+@@ -112,7 +117,7 @@
+ * zcPXATPTGetElement
+ *
+ * Get the values for the elements of the TABLE from the
+- * particular Torsion Parmeter Entry.
++ * particular Torsion Parameter Entry.
+ */
+ static char *
+ zcPXATPTGetElement( TABLE tTable, int iCol, int iRow )
+@@ -126,13 +131,15 @@
+ int iN;
+ double dKp;
+ double dP0;
++double dScee;
++double dScnb;
+ char sDesc[DESCLEN];
+
+
+ tptPCur = (TORSIONPARMTABLEt*)PXATClientPointer(tTable);
+
+ ParmSetTorsion( tptPCur->psParmSet, iRow,
+- sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, sDesc );
++ sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
+
+ switch ( iCol ) {
+ case TYPE1C:
+@@ -168,6 +175,14 @@
+ }
+ return(SsBuffer);
+ break;
++ case SCEE:
++ sprintf( SsBuffer, DBLFMT, dScee );
++ return(SsBuffer);
++ break;
++ case SCNB:
++ sprintf( SsBuffer, DBLFMT, dScnb );
++ return(SsBuffer);
++ break;
+ case DESCC:
+ strcpy( SsBuffer, sDesc );
+ return( SsBuffer );
+@@ -256,6 +271,16 @@
+ if ( !strcmp( cPData, "0" )) break;
+ return("P0 field must be '0' or 'Pi'.");
+ break;
++ case SCEE:
++ if ( !bStringToDouble( cPData, &dValue ) ) {
++ return("Invalid character in Scee field.");
++ }
++ break;
++ case SCNB:
++ if ( !bStringToDouble( cPData, &dValue ) ) {
++ return("Invalid character in Scnb field.");
++ }
++ break;
+ case DESCC:
+ if ( strlen(cPData)>DESCLEN-1 ) {
+ sprintf( SsError, "%s %d characters.",
+@@ -379,11 +404,33 @@
+ return("P0 field must be '0' or 'Pi'.");
+ }
+
++ /*
++ * Scee
++ */
++ *iPErrCol = 7;
++ cPData = col[7];
++ if ( !bStringToDouble( cPData, &dValue ) ) {
++ return("Invalid character in Scee field.");
++ } else if ( dValue < 0.0 ) {
++ return("Scee cannot be negative.");
++ }
++
++ /*
++ * Scnb
++ */
++ *iPErrCol = 8;
++ cPData = col[8];
++ if ( !bStringToInt( cPData, &iValue ) ) {
++ return("Invalid character in Scnb field.");
++ } else if ( dValue < 0.0 ) {
++ return("Scnb cannot be negative.");
++ }
++
+ /*
+ * Desc
+ */
+- *iPErrCol = 7;
+- cPData = col[7];
++ *iPErrCol = 9;
++ cPData = col[9];
+ if ( strlen(cPData) > DESCLEN-1 ) {
+ sprintf( SsError, "%s %d characters.",
+ "Parameter Description cannot be longer than",
+@@ -408,6 +455,8 @@
+ int iN;
+ double dKp;
+ double dP0;
++double dScee;
++double dScnb;
+
+ tptPCur = (TORSIONPARMTABLEt*) PXATClientPointer(tTable);
+ psParmSet = tptPCur->psParmSet;
+@@ -438,15 +487,15 @@
+ col[0], col[1], col[2], col[3] ));
+ if ( iRow != iParmSetAddProperTerm( psParmSet,
+ col[0], col[1], col[2], col[3],
+- iN, dKp, dP0, col[7] ) )
+- DFATAL(( "programming err 2 in zXATPTAcceptRow\n" ));
++ iN, dKp, dP0, dScee, dScnb, col[9] ) ) /*Arunima singh*/
++ DFATAL(( "programming err 2 in zXATPTAcceptRow\n" ));
+ } else {
+ /*
+ * update row in place
+ */
+ ParmSetUpdateTorsion( psParmSet, iRow,
+ col[0], col[1], col[2], col[3],
+- &iN, &dKp, &dP0, col[7] );
++ &iN, &dKp, &dP0, &dScee, &dScnb, col[9] ); /*Arunima singh*/
+ }
+ }
+
+diff -urN amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py amber11/AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py
+--- amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py 2011-04-14 15:30:17.000000000 +0300
++++ amber11/AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py 2011-10-25 15:01:28.132288620 +0300
+@@ -371,7 +371,7 @@
+ coords_received = _scaledistance(coords_tosend, chdist)
+
+ for i in range(3):
+- new_coords.append(coords_received[x+3])
++ new_coords.append(coords_received[i+3])
+
+ coords_tosend = []
+ coords_received = []
+diff -urN amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA.pypp amber11/AmberTools/src/mmpbsa_py/MMPBSA.pypp
+--- amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA.pypp 2011-04-14 15:30:17.000000000 +0300
++++ amber11/AmberTools/src/mmpbsa_py/MMPBSA.pypp 2011-10-25 15:01:28.238288523 +0300
+@@ -412,6 +412,7 @@
+ INPUT['solvcut'] = float(INPUT['solvcut'])
+ INPUT['tolerance'] = float(INPUT['tolerance'])
+ INPUT['rism_verbose'] = int(INPUT['rism_verbose'])
++ INPUT['inp'] = int(INPUT['inp'])
+ except ValueError, err:
+ print >> sys.stderr, 'Error: Invalid input data types! Check input file for proper float/int/string arguments.'
+ print >> sys.stderr, ' %s' % err
+@@ -998,7 +999,7 @@
+ if master: MMPBSA_timer.StartTimer('ptraj')
+
+ # create the dummy inpcrd files
+- if isinerr != 1 and (INPUT['gbrun'] or INPUT['pbrun']):
++ if isinerr != 1 and (INPUT['gbrun'] or INPUT['pbrun'] or INPUT['rismrun']):
+ os.system('%s %s _MMPBSA_mutant_complexinpcrd.in > _MMPBSA_ptraj9.out 2>&1' % (ptraj, FILES['mutant_complex_prmtop']))
+ if not stability and FILES['mutant_receptor_prmtop'] == FILES['receptor_prmtop']:
+ os.system('%s %s _MMPBSA_mutant_ligandinpcrd.in > _MMPBSA_ptraj11.out 2>&1' % (ptraj, FILES['mutant_ligand_prmtop']))
+diff -urN amber11.orig/AmberTools/src/mmpbsa_py/setup.sh amber11/AmberTools/src/mmpbsa_py/setup.sh
+--- amber11.orig/AmberTools/src/mmpbsa_py/setup.sh 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mmpbsa_py/setup.sh 2011-10-25 15:01:28.133288619 +0300
+@@ -10,7 +10,8 @@
+
+ # require AMBERHOME
+ if [ -z $AMBERHOME ]; then
+- export AMBERHOME=`dirname \`dirname $PWD\``
++ AMBERHOME=`dirname \`dirname $PWD\``
++ export AMBERHOME=`dirname $AMBERHOME`
+ echo "AMBERHOME is not set. Assuming it is $AMBERHOME"
+ fi
+
+diff -urN amber11.orig/AmberTools/src/pbsa/amg1r5.f amber11/AmberTools/src/pbsa/amg1r5.f
+--- amber11.orig/AmberTools/src/pbsa/amg1r5.f 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/pbsa/amg1r5.f 2011-10-25 15:01:28.203288555 +0300
+@@ -3707,7 +3707,7 @@
+
+ !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ !+ [Enter a one-line description of real function cgeps here]
+-real function cgeps(k,s2,a,u,f,ia,ja,iw, &
++_REAL_ function cgeps(k,s2,a,u,f,ia,ja,iw, &
+ imin,imax,iminw,m,ierr,ium)
+
+ implicit _REAL_ (a-h,o-z)
+@@ -3753,7 +3753,7 @@
+
+ !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ !+ [Enter a one-line description of real function cgalf here]
+-real function cgalf(k,s2,a,u,f,ia,ja,iw, &
++_REAL_ function cgalf(k,s2,a,u,f,ia,ja,iw, &
+ imin,imax,iminw,m)
+
+ implicit _REAL_ (a-h,o-z)
+@@ -3971,7 +3971,7 @@
+
+ !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ !+ [Enter a one-line description of real function random here]
+-real function random(s)
++_REAL_ function random(s)
+
+ ! FUNCTION TO CREATE "RANDOM" SEQUENCE OF NUMBERS BETWEEN 0 AND 0.1
+
+diff -urN amber11.orig/AmberTools/src/pbsa/Makefile amber11/AmberTools/src/pbsa/Makefile
+--- amber11.orig/AmberTools/src/pbsa/Makefile 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/pbsa/Makefile 2011-10-25 15:01:28.228288532 +0300
+@@ -204,6 +204,14 @@
+ cd ../c9x-complex && $(MAKE) libmc.a; \
+ fi
+
++pb_init.o: pb_init.f
++ $(FPP) $(FPPFLAGS) $(AMBERFPPFLAGS) $< > _$<
++ $(FC) -c -O0 $(FFLAGS) $(AMBERFFLAGS) -o $@ _$<
++
++pb_init.SANDER.o: pb_init.f
++ $(FPP) $(FPPFLAGS) $(AMBERFPPFLAGS) -DSANDER $< > _$<
++ $(FC) -c -O0 $(FFLAGS) $(AMBERFFLAGS) -o $@ _$<
++
+ %.LIBPBSA.o: %.f
+ $(FPP) $(FPPFLAGS) $(AMBERFPPFLAGS) -DLIBPBSA $< > _$<
+ $(FC) -c $(FOPTFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ _$<
+diff -urN amber11.orig/AmberTools/src/ptraj/actions.c amber11/AmberTools/src/ptraj/actions.c
+--- amber11.orig/AmberTools/src/ptraj/actions.c 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/ptraj/actions.c 2011-10-25 15:01:28.235288526 +0300
+@@ -46,6 +46,7 @@
+ #include "ptraj.h"
+ #include <string.h>
+ #include <stdarg.h>
++#include <float.h>
+
+ /*
+ * The code in this file implements the various "actions" of ptraj to
+@@ -4809,8 +4810,14 @@
+ * set the minimum distance to the solute to be larger than
+ * any possible (imaged!!!) distance
+ */
+- min = box[0] + box[1] + box[2];
+- min = min * min;
++ if (box[0]!=0.0 && box[1]!=0.0 && box[2]!=0.0) {
++ min = box[0] + box[1] + box[2];
++ min = min * min;
++ } else {
++ // No box information, set to arbitrarily large max
++ min=DBL_MAX;
++ }
++
+ for (i=0; i < oldstate->solventMolecules; i++) {
+ minDistance[i] = min;
+ sortindex[i] = i;
+@@ -16752,9 +16759,12 @@
+ */
+
+ structInfo = (transformSecondaryStructInfo *) action->carg1;
+- if (structInfo->filename != NULL)
++ if (structInfo->filename != NULL) {
++ i = (int) strlen(structInfo->filename);
++ i+=5;
++ structInfo->filename = (char*) realloc(structInfo->filename, i*sizeof(char));
+ outFile = safe_fopen(strcat(structInfo->filename, ".sum"), "w");
+- else
++ } else
+ outFile = stdout;
+
+ fprintf(outFile, "#ResNum\t3-10-Helix\talpha-helix\tPI-Helix\tparallel-Sheet\tantip.-Sheet\tTurn\n");
+@@ -18123,17 +18133,26 @@
+ /*
+ * process the remaining arguments
+ */
+- if ( (buffer = argumentStackKeyToString(argumentStackPointer, "principal", NULL)) != NULL ) {
++ if ( argumentStackContains(argumentStackPointer, "principal") ) {
+ vectorInfo->mode = VECTOR_PRINCIPAL_X;
+- if (strcmp(buffer, "x") == 0)
+- vectorInfo->mode = VECTOR_PRINCIPAL_X;
+- else if (strcmp(buffer, "y") == 0)
+- vectorInfo->mode = VECTOR_PRINCIPAL_Y;
+- else if (strcmp(buffer, "z") == 0)
+- vectorInfo->mode = VECTOR_PRINCIPAL_Z;
+- safe_free(buffer);
+- }
+- else if (argumentStackContains(argumentStackPointer, "dipole"))
++ /* DRR - Check the next argument for x, y, or z. If none of these
++ * are present, put the argument back on the stack.
++ */
++ buffer = getArgumentString(argumentStackPointer, NULL);
++ if (buffer!=NULL) {
++ if (strcmp(buffer, "x") == 0) {
++ vectorInfo->mode = VECTOR_PRINCIPAL_X;
++ safe_free(buffer);
++ } else if (strcmp(buffer, "y") == 0) {
++ vectorInfo->mode = VECTOR_PRINCIPAL_Y;
++ safe_free(buffer);
++ } else if (strcmp(buffer, "z") == 0) {
++ vectorInfo->mode = VECTOR_PRINCIPAL_Z;
++ safe_free(buffer);
++ } else
++ pushBottomStack(argumentStackPointer, buffer);
++ }
++ } else if (argumentStackContains(argumentStackPointer, "dipole"))
+ vectorInfo->mode = VECTOR_DIPOLE;
+ else if (argumentStackContains(argumentStackPointer, "box"))
+ vectorInfo->mode = VECTOR_BOX;
+@@ -18263,6 +18282,11 @@
+ vectorInfo->mode == VECTOR_CORRIRED ||
+ vectorInfo->mode == VECTOR_MASK){
+ buffer = getArgumentString(argumentStackPointer, NULL);
++ if (buffer==NULL) {
++ fprintf(stdout,"Error: vector: specified vector mode requires a second mask.\n");
++ freeTransformVectorMemory(action);
++ return -1;
++ }
+ vectorInfo->mask2 = processAtomMask(buffer, action->state);
+ safe_free(buffer);
+ }
+@@ -18885,7 +18909,7 @@
+ /*
+ * USAGE:
+ *
+- * watershell mask [lower <lower cut>] [upper <upper cut>] [noimage]
++ * watershell mask filename [lower <lower cut>] [upper <upper cut>] [noimage]
+ *
+ * action argument usage:
+ *
+@@ -18917,11 +18941,25 @@
+ action->iarg1 = argumentStackContains(argumentStackPointer, "noimage");
+
+ buffer = getArgumentString(argumentStackPointer, NULL);
++ if (buffer==NULL) {
++ fprintf(stdout,"ERROR: WATERSHELL: Solute mask must be specified.\n");
++ return -1;
++ }
++
+ info->soluteMask = processAtomMask(buffer, action->state);
++ if (info->soluteMask==NULL) {
++ fprintf(stdout,"ERROR: WATERSHELL: Solute mask %s corresponds to 0 atoms.\n",buffer);
++ safe_free(buffer);
++ return -1;
++ }
+ safe_free(buffer);
+
+ info->filename = getArgumentString(argumentStackPointer, NULL);
+-
++ if (info->filename==NULL) {
++ fprintf(stdout,"ERROR: WATERSHELL: Output filename must be specified.\n");
++ return -1;
++ }
++
+ info->lowerCutoff =
+ argumentStackKeyToDouble(argumentStackPointer, "lower", info->lowerCutoff);
+ info->upperCutoff =
+@@ -18932,6 +18970,17 @@
+ info->solventMask = processAtomMask(buffer, action->state);
+ else
+ info->solventMask = processAtomMask(":WAT", action->state);
++ if (info->solventMask==NULL) {
++ if (buffer!=NULL)
++ fprintf(stdout,"ERROR: WATERSHELL: Solvent mask %s corresponds to 0 atoms.\n",buffer);
++ else {
++ fprintf(stdout,"ERROR: WATERSHELL: Default solvent mask :WAT corresponds to 0 atoms.\n");
++ fprintf(stdout,
++ " Solvent mask can be specified as the third argument.\n");
++ }
++ safe_free(buffer);
++ return -1;
++ }
+ safe_free(buffer);
+
+ action->carg1 = (void *) info;
+diff -urN amber11.orig/AmberTools/src/ptraj/ptraj.c amber11/AmberTools/src/ptraj/ptraj.c
+--- amber11.orig/AmberTools/src/ptraj/ptraj.c 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/ptraj/ptraj.c 2011-10-25 15:01:28.224288536 +0300
+@@ -2059,7 +2059,8 @@
+ int start = 1;
+ int stop = 1;
+ int frame_lines, title_size, seekable;
+- long long int file_size, frame_size;
++ int maxi, sizeFound; // For large gzip file calc, Amber Traj
++ long long int file_size, frame_size, tmpfsize;
+ long int endoffset;
+ float *binposScratch;
+ FILE *fp;
+@@ -2439,16 +2440,54 @@
+ file_size = file_size - frame_size; // Subtract title size from file total size.
+ frame_size = (long long int) trajInfo->frameSize;
+ trajInfo->Nframes = (int) (file_size / frame_size);
++
++ // Frame calculation for large gzip files
++ // If uncompressed size is less than compressed size, uncompressed
++ // size is likely > 4GB.
++ if (trajInfo->compressType == 1 && file_size < (long long int)frame_stat.st_size) {
++ // Since this is gzip compressed, if the file_size % frame size != 0,
++ // it could be that the uncompressed filesize > 4GB. Since
++ // ISIZE = uncompressed % 2^32,
++ // try ((file_size + (2^32 * i)) % frame_size) and see if any are 0.
++ if ( (file_size % frame_size) != 0) {
++ // Determine the maximum number of iterations to try based on the
++ // fact that Amber trajectories typically compress about 3x with
++ // gzip. If the number of frames cannot accurately be calculated
++ // use the max estimated file size to estimate # frames so that
++ // ptraj actions allocate enough memory.
++ tmpfsize = (long long int) frame_stat.st_size;
++ tmpfsize *= 4;
++ tmpfsize = (tmpfsize - file_size) / 4294967296LL;
++ maxi = (int) tmpfsize;
++ maxi++;
++ if (prnlev>1)
++ printf("\tLooking for uncompressed gzip size > 4GB, %i iterations.\n",maxi);
++ tmpfsize = 0;
++ sizeFound=0;
++ for (i = 0; i < maxi; i++ ) {
++ tmpfsize = (4294967296LL * i) + file_size;
++ if ( (tmpfsize % frame_size) == 0) {sizeFound=1; break;}
++ }
++ if (sizeFound) {
++ printf("Warning: Cannot accurately determine # of frames in gzipped trajectory %s.\n",
++ filename);
++ printf(" This usually indicates the trajectory is corrupted.\n");
++ printf(" Ptraj will attempt to estimate the correct number of frames.\n");
++ }
++ file_size = tmpfsize;
++ trajInfo->Nframes = (int) (file_size / frame_size);
++ }
++ }
++
+ if (prnlev>0) fprintf(stdout," File has %i frames.\n",trajInfo->Nframes);
+ if ( (file_size % frame_size) == 0 ) {
+ seekable = 1;
+- stop = trajInfo->Nframes;
+ } else {
+- stop = -1;
+ seekable = 0;
+ fprintf(stderr, "%s: Could not predict number of frames for AMBER trajectory file: %s\n", ROUTINE, filename);
+ fprintf(stderr, "\tIf this is not a compressed file then there is a problem\n");
+ }
++ stop = trajInfo->Nframes;
+
+ actualAtoms = totalAtoms;
+ //trajInfo->frameSize = frame_size;
+@@ -2569,6 +2608,8 @@
+ trajInfo->isBox = isBox;
+ trajInfo->isVelocity = isVelocity;
+ trajInfo->type = type;
++ // If compressed, no seek possible
++ if (trajInfo->compressType > 0) trajInfo->seekable=0;
+
+ // This should eventually get its own structure
+ if (type==COORD_CHARMM_TRAJECTORY)
+diff -urN amber11.orig/AmberTools/src/rism/amber_rism_interface.f amber11/AmberTools/src/rism/amber_rism_interface.f
+--- amber11.orig/AmberTools/src/rism/amber_rism_interface.f 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/rism/amber_rism_interface.f 2011-10-25 15:01:28.241288520 +0300
+@@ -815,7 +815,6 @@
+ !redo calculation with charges off
+ call rism3d_unsetCharges(rism_3d)
+ call rism3d_solve(rism_3d,rismprm%saveprogress,rismprm%progress,rismprm%maxstep,rismprm%tolerance)
+- call rism3d_resetCharges(rism_3d)
+
+ !setup memory space
+ apol_exchem => apol_mpi_buffer(1:rism_3d%solv%natom)
+@@ -825,6 +824,7 @@
+ apol_exchem = rism3d_exchem(rism_3d,rismprm%asympCorr)*KB*rism_3d%solv%temperature
+ apol_exchemGF = rism3d_exchemGF(rism_3d,rismprm%asympCorr)*KB*rism_3d%solv%temperature
+
++ call rism3d_resetCharges(rism_3d)
+ !parallel communication
+ #ifdef MPI
+ # ifdef USE_MPI_IN_PLACE
+diff -urN amber11.orig/AmberTools/src/rism/rism1d_potential_c.f amber11/AmberTools/src/rism/rism1d_potential_c.f
+--- amber11.orig/AmberTools/src/rism/rism1d_potential_c.f 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/rism/rism1d_potential_c.f 2011-10-25 15:01:28.242288519 +0300
+@@ -124,7 +124,7 @@
+ type(solvMDL), intent(in) :: mdl
+ _REAL_, intent(in) :: density
+ integer :: oldnv
+- integer :: iv1, iv2, ivv, iv, iat, imlt
++ integer :: iv1, iv2, ivv, iv, iat, imlt, isp
+
+ !increment scalar variables
+ oldnv = this%nv
+@@ -139,7 +139,10 @@
+ this%nat(this%nsp) = mdl%ntype
+ this%mta => safemem_realloc(this%mta, max(ubound(this%mta,1),mdl%ntype), this%nsp)
+ this%mta(1:mdl%ntype,this%nsp) = mdl%multi
+-
++ !zero out multiplicity for unused indicies in previously add species
++ do isp=1, this%nsp
++ this%mta(this%nat(isp)+1:,isp)=0
++ end do
+ this%mtv => safemem_realloc(this%mtv,this%nv)
+ this%mtv(oldnv+1:this%nv) = mdl%multi
+
+@@ -178,7 +181,7 @@
+ this%rminv => safemem_realloc(this%rminv,this%nv)
+ this%rminv(oldnv+1:this%nv) = mdl%rmin/2d0
+
+- this%rma => safemem_realloc(this%rma,3,ubound(this%mta,1),maxval(this%nat),this%nsp)
++ this%rma => safemem_realloc(this%rma,3,maxval(this%mta),maxval(this%nat),this%nsp,.true.,.false.)
+ iv = 0
+ do iat=1,this%nat(this%nsp)
+ do imlt = 1, this%mta(iat,this%nsp)
+@@ -186,7 +189,7 @@
+ this%rma(:,imlt,iat,this%nsp) = mdl%coord(:,iv)
+ end do
+ end do
+- this%wlmvv => safemem_realloc(this%wlmvv,ubound(this%mta,1),this%nv,this%nv)
++ this%wlmvv => safemem_realloc(this%wlmvv,maxval(this%mta),this%nv,this%nv)
+ call intramolecular_dist(this)
+
+ !data arrays in the original 1D-RISM code had an offset of 0 in the first index (like C).
+@@ -269,7 +272,7 @@
+ r,rs, rs6,ri6, usr,usra
+
+ _REAL_ :: d0x(this%nv), d0y(this%nv), d1z(this%nv), &
+- wkvv(this%nv,this%nv)
++ wkvv(this%nv,this%nv), erfc_test
+ _REAL_, external :: erfc
+
+
+@@ -478,10 +481,21 @@
+ r = (ir-1)*this%dr
+ k = (ir-1)*this%dk
+ qvv = charge*this%qspv(iv1)*this%qspv(iv2)
+- this%hlrvv(ir,ivv) = -qvv/this%dielconst &
+- * 0.5d0 * exp((this%smear*this%kappa/2.d0)**2) &
+- * ( exp(-this%kappa*r)*erfc(this%kappa*this%smear/2.d0 - r/this%smear) &
+- - exp(this%kappa*r)*erfc(this%kappa*this%smear/2.d0 + r/this%smear) )
++ !for large grids with short Debye lengths the positive
++ !exponent can overflow. erfc is already zero at this
++ !point. So we test erfc to see if we can avoid the
++ !exponent
++ erfc_test = erfc(this%kappa*this%smear/2.d0 + r/this%smear)
++ if(erfc_test > sqrt(tiny(1d0)))then
++ this%hlrvv(ir,ivv) = -qvv/this%dielconst &
++ * 0.5d0 * exp((this%smear*this%kappa/2.d0)**2) &
++ * ( exp(-this%kappa*r)*erfc(this%kappa*this%smear/2.d0 - r/this%smear) &
++ - exp(this%kappa*r)*erfc_test )
++ else
++ this%hlrvv(ir,ivv) = -qvv/this%dielconst &
++ * 0.5d0 * exp((this%smear*this%kappa/2.d0)**2) &
++ * ( exp(-this%kappa*r)*erfc(this%kappa*this%smear/2.d0 - r/this%smear))
++ end if
+ this%hlkvv(ir,ivv) = -qvv/this%dielconst &
+ * 4.d0*pi*exp(-(0.5d0*this%smear*k)**2) * k/(k**2+this%kappa**2)
+ enddo
+diff -urN amber11.orig/AmberTools/src/rism/rism3d_c.f amber11/AmberTools/src/rism/rism3d_c.f
+--- amber11.orig/AmberTools/src/rism/rism3d_c.f 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/rism/rism3d_c.f 2011-10-25 15:01:28.245288516 +0300
+@@ -1086,26 +1086,26 @@
+ !reallocate arrays that require preservation of their contents
+ #if defined(MPI)
+ this%cuvWRK => safemem_realloc(this%cuvWRK,this%grid%nr(1),this%grid%nr(2),this%grid%nr(3),&
+- this%solv%natom,this%NVec,.true.)
++ this%solv%natom,this%NVec,.true.,.true.)
+ if(rism3d_solu_charged(this%solu))then
+ this%oldcuvChg => safemem_realloc(this%oldcuvChg,this%grid%nr(1),this%grid%nr(2),&
+- this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.)
++ this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.,.true.)
+ this%oldcuv => this%oldcuvChg
+ else
+ this%oldcuvNoChg => safemem_realloc(this%oldcuvNoChg,this%grid%nr(1),this%grid%nr(2),&
+- this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.)
++ this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.,.true.)
+ this%oldcuv => this%oldcuvNoChg
+ end if
+ #else
+ this%cuvWRK => safemem_realloc(this%cuvWRK,this%grid%nr(1),this%grid%nr(2),this%grid%nr(3),&
+- this%solv%natom,this%NVec,.true.)
++ this%solv%natom,this%NVec,.true.,.true.)
+ if(rism3d_solu_charged(this%solu))then
+ this%oldcuvChg => safemem_realloc(this%oldcuvChg,this%grid%nr(1),this%grid%nr(2),&
+- this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.)
++ this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.,.true.)
+ this%oldcuv => this%oldcuvChg
+ else
+ this%oldcuvNoChg => safemem_realloc(this%oldcuvNoChg,this%grid%nr(1),this%grid%nr(2),&
+- this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.)
++ this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.,.true.)
+ this%oldcuv => this%oldcuvNoChg
+ end if
+ !!$ this%oldcuv => safemem_realloc(this%oldcuv,this%grid%nr(1),this%grid%nr(2),&
+diff -urN amber11.orig/AmberTools/src/rism/rism3d_opendx.f amber11/AmberTools/src/rism/rism3d_opendx.f
+--- amber11.orig/AmberTools/src/rism/rism3d_opendx.f 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/rism/rism3d_opendx.f 2011-10-25 15:01:28.205288553 +0300
+@@ -49,9 +49,11 @@
+ module procedure readDXHeader_file, readDXHeader_unit
+ end interface readDXHeader
+
++#if 0
+ interface readDX
+ module procedure readDX_3D,readDX_3D_data, readDX_1D, readDX_1D_data
+ end interface readDX
++#endif
+ contains
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !!!Reads in a OpenDX file header. Expects
+@@ -160,6 +162,7 @@
+ end if
+ end subroutine readDXHeader_unit
+
++#if 0
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !!!Reads in a OpenDX file, returning data in a pointer, allocating necessary memory. Expects
+ !!!a 3D, regularly spaced grid in ASCII format.
+@@ -311,6 +314,7 @@
+ call readDX_data(unit,data,ndata,npos)
+ close(unit)
+ end subroutine readDX_1D_data
++#endif
+
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !!!write to file in open DX format for use in VMD. When writing in
+diff -urN amber11.orig/AmberTools/src/rism/rism3d.snglpnt.nab amber11/AmberTools/src/rism/rism3d.snglpnt.nab
+--- amber11.orig/AmberTools/src/rism/rism3d.snglpnt.nab 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/rism/rism3d.snglpnt.nab 2011-10-25 15:01:28.243288518 +0300
+@@ -632,6 +632,7 @@
+ mm_options(sprintf("centering=%d, zerofrc=%d, apply_rism_force=%d",rismOpt.centering,rismOpt.zerofrc,rismOpt.apply_rism_force));
+ mm_options(sprintf("polarDecomp=%d",rismOpt.polarDecomp));
+ mm_options(sprintf("ntwrism=%d, verbose=%d, progress=%d",rismOpt.ntwrism,rismOpt.verbose,rismOpt.progress));
++mm_options(sprintf("asympCorr=%d",rismOpt.asympcorr));
+ mm_options(sprintf("saveprogress=%d",rismOpt.saveprogress));
+ mme_init( m, NULL, "::Z", p_xyz, NULL);
+
+diff -urN amber11.orig/AmberTools/src/rism/safemem.f amber11/AmberTools/src/rism/safemem.f
+--- amber11.orig/AmberTools/src/rism/safemem.f 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/rism/safemem.f 2011-10-25 15:01:28.247288515 +0300
+@@ -46,13 +46,13 @@
+ !logical :: Current number of bytes of logical memory allocated
+ !char :: Current number of bytes of character memory allocated
+ !total :: Current number of bytes of total memory allocated
+- integer*8 :: int,real,logical,char,total
++ integer*8 :: int=0,real=0,logical=0,char=0,total=0
+ !maxint :: Current number of bytes of integer memory allocated
+ !maxreal :: Current number of bytes of real memory allocated
+ !maxlogical :: Current number of bytes of logical memory allocated
+ !maxchar :: Current number of bytes of character memory allocated
+ !max :: Current number of bytes of total memory allocated
+- integer*8 :: maxint,maxreal,maxlogical,maxchar,max
++ integer*8 :: maxint=0,maxreal=0,maxlogical=0,maxchar=0,max=0
+ end type memTracker
+
+ !BYTES_PER_GIGABYTES :: used to convert between bytes and GB
+@@ -352,6 +352,9 @@
+ !!! n4 :: size of the fourth dimension
+ !!! preserve :: boolean indicating whether or not to preserve the contents of
+ !!! the array (optional)
++!!! center :: when preserving the contents of the array, center the
++!!! data in the array instead of preserving the value at each
++!!! index
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ FUNCTION safemem_realloc_4d_real(p, n1, n2, n3, n4, preserve, center)
+ implicit none
+@@ -369,7 +372,7 @@
+ #endif /*RISM_DEBUG*/
+ prsrv = .true.
+ if(present(preserve)) prsrv=preserve
+- cntr = .true.
++ cntr = .false.
+ if(present(center)) cntr=center
+
+ if(.not.prsrv .and. associated(p)) then
+@@ -499,6 +502,9 @@
+ !!! n5 :: size of the fifth dimension
+ !!! preserve :: boolean indicating whether or not to preserve the contents of
+ !!! the array (optional)
++!!! center :: when preserving the contents of the array, center the
++!!! data in the array instead of preserving the value at each
++!!! index
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ FUNCTION safemem_realloc_5d_real(p, n1, n2, n3, n4, n5, preserve, center)
+ implicit none
+@@ -516,7 +522,7 @@
+ #endif /*RISM_DEBUG*/
+ prsrv = .true.
+ if(present(preserve)) prsrv = preserve
+- cntr=.true.
++ cntr=.false.
+ if(present(center)) cntr = center
+
+ if(.not.prsrv .and. associated(p)) then
+@@ -1006,7 +1012,7 @@
+ !work around for old gfortran bug
+ ! if(associated(p)) deallocate(p,STAT=safemem_dealloc_pointer_1d_logical)
+ if(associated(p))then
+- call memadd_c(totalmem,-product(ubound(p))*kind(p))
++ call memadd_l(totalmem,-product(ubound(p))*kind(p))
+ deallocate(p,STAT=temp)
+ end if
+ safemem_dealloc_pointer_1d_logical = temp
+diff -urN amber11.orig/AmberTools/src/sqm/qm2_energy.f amber11/AmberTools/src/sqm/qm2_energy.f
+--- amber11.orig/AmberTools/src/sqm/qm2_energy.f 2011-03-11 20:43:13.000000000 +0200
++++ amber11/AmberTools/src/sqm/qm2_energy.f 2011-10-25 15:01:28.206288552 +0300
+@@ -277,7 +277,7 @@
+
+ ! Add PM6 corrections to Heat of Formation
+ if (qmmm_nml%qmtheory%PM6) then
+- escf = escf + pm6_correction()
++ escf = escf + hofCorrection()
+ end if
+
+ call timer_stop(TIME_QMMMENERGYSCF)
+diff -urN amber11.orig/AmberTools/src/sqm/qm2_get_qm_forces.f amber11/AmberTools/src/sqm/qm2_get_qm_forces.f
+--- amber11.orig/AmberTools/src/sqm/qm2_get_qm_forces.f 2011-03-11 20:43:13.000000000 +0200
++++ amber11/AmberTools/src/sqm/qm2_get_qm_forces.f 2011-10-25 15:01:28.208288550 +0300
+@@ -250,7 +250,7 @@
+ ! --------------------------------------------
+ if (qmmm_nml%qmtheory%PM6) then
+ natom = qmmm_struct%nquant_nlink
+- call pm6_correction(natom, dxyzqm)
++ call hofCorrectionGradient(natom, dxyzqm)
+ end if
+
+ if(qmmm_nml%peptide_corr) then
+diff -urN amber11.orig/AmberTools/src/sqm/qm2_pm6_hof_module.f amber11/AmberTools/src/sqm/qm2_pm6_hof_module.f
+--- amber11.orig/AmberTools/src/sqm/qm2_pm6_hof_module.f 2011-03-11 20:43:13.000000000 +0200
++++ amber11/AmberTools/src/sqm/qm2_pm6_hof_module.f 2011-10-25 15:01:28.209288549 +0300
+@@ -21,8 +21,7 @@
+ implicit none
+
+ private
+- public :: pm6_correction
+- public :: corInfoType, print
++ public :: corInfoType, print, hofCorrection, hofCorrectionGradient
+ public :: cct, nsp2
+ public :: strlen
+
+@@ -30,11 +29,6 @@
+ module procedure printCorInfoType
+ end interface
+
+- interface pm6_correction
+- module procedure hofCorrection
+- module procedure hofCorrectionGradient
+- end interface
+-
+ ! Data type collecting information on PM6 HOF corrections
+ type corInfoType
+ logical :: inUse ! correction in use ?
+diff -urN amber11.orig/AmberTools/test/cpptraj/Test_General/RunTest.sh amber11/AmberTools/test/cpptraj/Test_General/RunTest.sh
+--- amber11.orig/AmberTools/test/cpptraj/Test_General/RunTest.sh 2011-04-14 15:30:21.000000000 +0300
++++ amber11/AmberTools/test/cpptraj/Test_General/RunTest.sh 2011-10-25 15:01:28.215288544 +0300
+@@ -25,7 +25,7 @@
+ DoTest PhiPsi.dat.save PhiPsi.dat
+ DoTest test.crd.save test.crd
+ DoTest a1.dat.save a1.dat
+-DoTest test.rst7.103.save Restart/test.rst7.103
++DoTest test.rst7.103.save Restart/test.rst7.123
+ DoTest test.nc.save test.nc
+ DoTest r4.dat.save r4.dat
+ DoTest a2.dat.gz.save a2.dat.gz
+diff -urN amber11.orig/AmberTools/test/mmpbsa_py/11_3D-RISM/FINAL_RESULTS_MMPBSA.dat.save amber11/AmberTools/test/mmpbsa_py/11_3D-RISM/FINAL_RESULTS_MMPBSA.dat.save
+--- amber11.orig/AmberTools/test/mmpbsa_py/11_3D-RISM/FINAL_RESULTS_MMPBSA.dat.save 2011-04-14 15:30:22.000000000 +0300
++++ amber11/AmberTools/test/mmpbsa_py/11_3D-RISM/FINAL_RESULTS_MMPBSA.dat.save 2011-10-25 15:01:28.247288515 +0300
+@@ -1,4 +1,4 @@
+-| Run on Tue Mar 8 15:33:18 PST 2011
++| Run on Fri Oct 7 17:12:46 EDT 2011
+
+ |Input file:
+ |--------------------------------------------------------------
+@@ -32,14 +32,14 @@
+ -------------------------------------------------------------------------------
+ VDWAALS -4.6380 0.3291 0.2327
+ EEL -425.3449 4.5554 3.2212
+-ERISM -164.0501 3.9611 2.8009
+- POLAR -219.8772 4.0588 2.8700
+- APOLAR 55.8271 0.0977 0.0691
++ERISM -164.0499 3.9609 2.8008
++ POLAR -235.0781 4.4994 3.1816
++ APOLAR 71.0282 0.5386 0.3808
+
+ G gas -429.9829 4.2263 2.9885
+-G solv -164.0501 3.9611 2.8009
++G solv -164.0499 3.9609 2.8008
+
+-TOTAL -594.0331 0.2653 0.1876
++TOTAL -594.0329 0.2655 0.1877
+
+
+ Receptor:
+@@ -48,8 +48,8 @@
+ VDWAALS -3.9302 0.2702 0.1910
+ EEL -254.1833 4.5196 3.1959
+ ERISM -79.2939 3.0131 2.1306
+- POLAR -118.9799 3.1556 2.2314
+- APOLAR 39.6860 0.1425 0.1008
++ POLAR -126.9784 3.4713 2.4546
++ APOLAR 47.6845 0.4582 0.3240
+
+ G gas -258.1136 4.2494 3.0048
+ G solv -79.2939 3.0131 2.1306
+@@ -62,12 +62,12 @@
+ -------------------------------------------------------------------------------
+ VDWAALS -0.7056 0.0606 0.0428
+ EEL -170.5448 1.1864 0.8389
+-ERISM -85.2510 0.0719 0.0509
+- POLAR -101.3724 0.0489 0.0346
+- APOLAR 16.1214 0.0230 0.0163
++ERISM -85.2510 0.0719 0.0508
++ POLAR -108.6574 0.0351 0.0249
++ APOLAR 23.4064 0.1070 0.0757
+
+ G gas -171.2505 1.2470 0.8818
+-G solv -85.2510 0.0719 0.0509
++G solv -85.2510 0.0719 0.0508
+
+ TOTAL -256.5015 1.1751 0.8309
+
+@@ -77,15 +77,15 @@
+ -------------------------------------------------------------------------------
+ VDWAALS -0.0021 0.0017 0.0012
+ EEL -0.6167 1.2222 0.8642
+-ERISM 0.4947 1.0198 0.7211
+- POLAR 0.4750 0.9520 0.6732
+- APOLAR 0.0198 0.0678 0.0480
++ERISM 0.4950 1.0196 0.7210
++ POLAR 0.5577 0.9929 0.7021
++ APOLAR -0.0627 0.0267 0.0189
+
+ DELTA G gas -0.6189 1.2239 0.8654
+-DELTA G solv 0.4947 1.0198 0.7211
++DELTA G solv 0.4950 1.0196 0.7210
+
+
+- DELTA G binding = -0.1241 +/- 0.2041 0.1443
++ DELTA G binding = -0.1239 +/- 0.2043 0.1445
+
+
+ -------------------------------------------------------------------------------
+@@ -99,8 +99,8 @@
+ VDWAALS -4.6380 0.3291 0.2327
+ EEL -425.3449 4.5554 3.2212
+ ERISM -187.9280 4.0576 2.8691
+- POLAR -221.3631 4.0723 2.8795
+- APOLAR 33.4351 0.0147 0.0104
++ POLAR -236.5648 4.5137 3.1916
++ APOLAR 48.6367 0.4561 0.3225
+
+ G gas -429.9829 4.2263 2.9885
+ G solv -187.9280 4.0576 2.8691
+@@ -113,12 +113,12 @@
+ -------------------------------------------------------------------------------
+ VDWAALS -3.9302 0.2702 0.1910
+ EEL -254.1833 4.5196 3.1959
+-ERISM -94.4232 3.0803 2.1781
+- POLAR -119.8020 3.1352 2.2169
+- APOLAR 25.3788 0.0549 0.0388
++ERISM -94.4233 3.0804 2.1781
++ POLAR -127.8003 3.4511 2.4403
++ APOLAR 33.3771 0.3707 0.2621
+
+ G gas -258.1136 4.2494 3.0048
+-G solv -94.4232 3.0803 2.1781
++G solv -94.4233 3.0804 2.1781
+
+ TOTAL -352.5368 1.1691 0.8267
+
+@@ -128,14 +128,14 @@
+ -------------------------------------------------------------------------------
+ VDWAALS -0.7056 0.0606 0.0428
+ EEL -170.5448 1.1864 0.8389
+-ERISM -94.0188 0.0538 0.0381
+- POLAR -102.0695 0.0274 0.0194
+- APOLAR 8.0506 0.0264 0.0187
++ERISM -94.0185 0.0541 0.0383
++ POLAR -109.3544 0.0565 0.0399
++ APOLAR 15.3358 0.1106 0.0782
+
+ G gas -171.2505 1.2470 0.8818
+-G solv -94.0188 0.0538 0.0381
++G solv -94.0185 0.0541 0.0383
+
+-TOTAL -265.2693 1.1932 0.8437
++TOTAL -265.2690 1.1929 0.8435
+
+
+ Differences (Complex - Receptor - Ligand):
+@@ -143,15 +143,15 @@
+ -------------------------------------------------------------------------------
+ VDWAALS -0.0021 0.0017 0.0012
+ EEL -0.6167 1.2222 0.8642
+-ERISM 0.5140 1.0311 0.7291
+- POLAR 0.5083 0.9645 0.6820
+- APOLAR 0.0057 0.0666 0.0471
++ERISM 0.5137 1.0314 0.7293
++ POLAR 0.5900 1.0061 0.7114
++ APOLAR -0.0762 0.0253 0.0179
+
+ DELTA G gas -0.6189 1.2239 0.8654
+-DELTA G solv 0.5140 1.0311 0.7291
++DELTA G solv 0.5137 1.0314 0.7293
+
+
+- DELTA G binding = -0.1049 +/- 0.1928 0.1363
++ DELTA G binding = -0.1051 +/- 0.1926 0.1362
+
+
+ -------------------------------------------------------------------------------
+diff -urN amber11.orig/AmberTools/test/nab/rism3d.snglpnt.2.out.check amber11/AmberTools/test/nab/rism3d.snglpnt.2.out.check
+--- amber11.orig/AmberTools/test/nab/rism3d.snglpnt.2.out.check 2011-04-14 15:30:23.000000000 +0300
++++ amber11/AmberTools/test/nab/rism3d.snglpnt.2.out.check 2011-10-25 15:01:28.248288514 +0300
+@@ -32,6 +32,7 @@
+ mm_options: ntwrism=1
+ mm_options: verbose=0
+ mm_options: progress=0
++ mm_options: asympCorr=1
+ mm_options: saveprogress=0
+ |3D-RISM thermodynamic data key
+ |solute_epot [kcal/mol] : Total LJ Coulomb Bond Angle Dihedral H-Bond LJ-14 Coulomb-14 Restraints 3D-RISM
+@@ -74,13 +75,13 @@
+ 3D-RISM processing complete.
+
+ |Timing summary:
+-| Initialize 0.042
++| Initialize 0.046
+ | Molec. Dyn. 0.000
+ | Normal Mode 0.000
+ | Conj. Grad. 0.000
+ | Newton 0.000
+ |-------------------------
+-| Total 0.042
++| Total 0.046
+
+ |1st derivative timing summary:
+ | constraints 0.000
+@@ -91,7 +92,7 @@
+ | nonbond 0.000
+ | gen. Born 0.000
+ | Poisson Boltzmann 0.000
+-| 3D-RISM 10.167
++| 3D-RISM 8.211
+ | Other 0.000
+ |-------------------------
+-| Total 10.167
++| Total 8.212
+diff -urN amber11.orig/AmberTools/test/nab/rism3d.snglpnt.out.check amber11/AmberTools/test/nab/rism3d.snglpnt.out.check
+--- amber11.orig/AmberTools/test/nab/rism3d.snglpnt.out.check 2011-04-14 15:30:23.000000000 +0300
++++ amber11/AmberTools/test/nab/rism3d.snglpnt.out.check 2011-10-25 15:01:28.248288514 +0300
+@@ -31,6 +31,7 @@
+ mm_options: ntwrism=0
+ mm_options: verbose=0
+ mm_options: progress=0
++ mm_options: asympCorr=1
+ mm_options: saveprogress=0
+ |3D-RISM thermodynamic data key
+ |solute_epot [kcal/mol] : Total LJ Coulomb Bond Angle Dihedral H-Bond LJ-14 Coulomb-14 Restraints 3D-RISM
+@@ -55,10 +56,10 @@
+ rism_volume: 1.93595981E+002
+ rism_exNumb: -6.38184158E+000 -1.27637588E+001
+ rism_exChrg: -3.20562831E-005 5.40924893E+000 -5.40928099E+000
+-rism_polar_: -1.31661477E+001 -4.40204657E+001 3.08543179E+001
+-rism_apolar: 2.96543934E+001 7.56776450E+001 -4.60232516E+001
+-rism_polGF_: -1.34197324E+001 -4.39508092E+001 3.05310768E+001
+-rism_apolGF: 1.97398606E+001 7.11960080E+001 -5.14561474E+001
++rism_polar_: -1.47850626E+001 -1.09412958E+001 -3.84376682E+000
++rism_apolar: 3.12733083E+001 4.25984751E+001 -1.13251668E+001
++rism_polGF_: -1.50386472E+001 -1.08716393E+001 -4.16700794E+000
++rism_apolGF: 2.13587755E+001 3.81168382E+001 -1.67580627E+001
+
+ Frame: 2 of 3
+ solute_epot: -3.41386230E-001 2.56854615E+000 -8.23476129E+001 3.38717466E-002 3.59735615E-001 7.49048012E+000 0.00000000E+000 4.97044290E+000 5.01391318E+001 0.00000000E+000 1.64440184E+001
+@@ -68,10 +69,10 @@
+ rism_volume: 1.93535504E+002
+ rism_exNumb: -6.37993323E+000 -1.27596468E+001
+ rism_exChrg: 9.31177385E-005 5.40763142E+000 -5.40753830E+000
+-rism_polar_: -1.31967073E+001 -4.40467251E+001 3.08500178E+001
+-rism_apolar: 2.96407256E+001 7.56851573E+001 -4.60444317E+001
+-rism_polGF_: -1.34505678E+001 -4.39769309E+001 3.05263631E+001
+-rism_apolGF: 1.97272712E+001 7.12038497E+001 -5.14765785E+001
++rism_polar_: -1.48191496E+001 -1.09491800E+001 -3.86996959E+000
++rism_apolar: 3.12631679E+001 4.25876122E+001 -1.13244443E+001
++rism_polGF_: -1.50730101E+001 -1.08793858E+001 -4.19362428E+000
++rism_apolGF: 2.13497135E+001 3.81063046E+001 -1.67565911E+001
+
+ Frame: 3 of 3
+ solute_epot: -6.77945271E-001 2.31243593E+000 -8.22812685E+001 9.08980189E-002 3.84286510E-001 7.48894041E+000 0.00000000E+000 4.91668330E+000 5.00274224E+001 0.00000000E+000 1.63826567E+001
+@@ -81,21 +82,21 @@
+ rism_volume: 1.93468855E+002
+ rism_exNumb: -6.37771162E+000 -1.27552065E+001
+ rism_exChrg: 9.18518609E-005 5.40574837E+000 -5.40565652E+000
+-rism_polar_: -1.32423609E+001 -4.40992117E+001 3.08568508E+001
+-rism_apolar: 2.96250176E+001 7.57232232E+001 -4.60982056E+001
+-rism_polGF_: -1.34968274E+001 -4.40292606E+001 3.05324332E+001
+-rism_apolGF: 1.97126459E+001 7.12421943E+001 -5.15295484E+001
++rism_polar_: -1.48691739E+001 -1.09507135E+001 -3.91846037E+000
++rism_apolar: 3.12518306E+001 4.25747250E+001 -1.13228944E+001
++rism_polGF_: -1.51236404E+001 -1.08807624E+001 -4.24287800E+000
++rism_apolGF: 2.13394589E+001 3.80936961E+001 -1.67542372E+001
+
+ 3D-RISM processing complete.
+
+ |Timing summary:
+-| Initialize 0.043
++| Initialize 0.047
+ | Molec. Dyn. 0.000
+ | Normal Mode 0.000
+ | Conj. Grad. 0.000
+ | Newton 0.000
+ |-------------------------
+-| Total 0.043
++| Total 0.047
+
+ |1st derivative timing summary:
+ | constraints 0.000
+@@ -106,7 +107,7 @@
+ | nonbond 0.000
+ | gen. Born 0.000
+ | Poisson Boltzmann 0.000
+-| 3D-RISM 32.639
++| 3D-RISM 30.135
+ | Other 0.000
+ |-------------------------
+-| Total 32.639
++| Total 30.135
+diff -urN amber11.orig/AmberTools/test/nab/Run.prm amber11/AmberTools/test/nab/Run.prm
+--- amber11.orig/AmberTools/test/nab/Run.prm 2011-04-14 15:30:23.000000000 +0300
++++ amber11/AmberTools/test/nab/Run.prm 2011-10-25 15:01:28.133288619 +0300
+@@ -17,7 +17,7 @@
+
+ echo "checking the prmtop file:"
+ echo ""
+-tail -3209 tprmtop > tprmtop1
++tail -3228 tprmtop > tprmtop1
+ ../dacdif tprmtop.check tprmtop1
+
+ rm -f prm prm.c tleap.out leap.log tprmcrd prm.out1 tprmtop
+diff -urN amber11.orig/AmberTools/test/nab/tprmtop.check amber11/AmberTools/test/nab/tprmtop.check
+--- amber11.orig/AmberTools/test/nab/tprmtop.check 2011-03-10 20:12:18.000000000 +0200
++++ amber11/AmberTools/test/nab/tprmtop.check 2011-10-25 15:01:28.135288617 +0300
+@@ -1,3 +1,4 @@
++%VERSION VERSION_STAMP = V0001.000 DATE = 05/09/11 12:59:19
+ %FLAG TITLE
+ %FORMAT(20a4)
+
+@@ -541,6 +542,24 @@
+ 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00
+ 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00
+ 3.14159400E+00 3.14159400E+00 3.14159400E+00
++%FLAG SCEE_SCALE_FACTOR
++%FORMAT(5E16.8)
++ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
++ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
++ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
++ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
++ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
++ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
++ 0.00000000E+00 0.00000000E+00 0.00000000E+00
++%FLAG SCNB_SCALE_FACTOR
++%FORMAT(5E16.8)
++ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
++ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
++ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
++ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
++ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
++ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
++ 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ %FLAG SOLTY
+ %FORMAT(5E16.8)
+ 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
+diff -urN amber11.orig/AmberTools/test/rism1d/check1d amber11/AmberTools/test/rism1d/check1d
+--- amber11.orig/AmberTools/test/rism1d/check1d 2011-04-14 15:30:29.000000000 +0300
++++ amber11/AmberTools/test/rism1d/check1d 2011-10-25 15:01:28.249288513 +0300
+@@ -85,7 +85,7 @@
+ #It is unrealistic to achieve low relative error for these very small number so we only
+ #use the abolute error
+ if [ -s $1.bvv.save ]; then
+- $AMBERHOME/AmberTools/test/dacdif -a 1.e-7 $1.bvv.save $1.bvv
++ $AMBERHOME/AmberTools/test/dacdif -a 2.e-7 $1.bvv.save $1.bvv
+ fi
+
+ /bin/rm -f $1.xvv.delhv0 $1.xvv.delhv0.save $1.xvv.xvv $1.xvv.xvv.save\
+diff -urN amber11.orig/AT15_Amber11.py amber11/AT15_Amber11.py
+--- amber11.orig/AT15_Amber11.py 2011-04-14 15:30:11.000000000 +0300
++++ amber11/AT15_Amber11.py 2011-10-25 15:01:28.221288538 +0300
+@@ -145,4 +145,29 @@
+ makefile.close()
+
+ # Now we are done
+-print "\nAmber 11 patched for AmberTools 1.5. Run\nmake %s\nto build amber11\n" % buildtype
++print "\nAmber 11 patched for AmberTools 1.5. Run\ncd src; make %s\nto build amber11\n" % buildtype
++
++# Now print out details about expected test FAILUREs and
++# errors:
++
++warning = """NOTE: Because PBSA has changed since Amber 11 was released, some
++tests are known to fail and others are known to quit in error. These
++can be safely ignored.
++
++Tests that error: Tests in $AMBERHOME/test/sander_pbsa_frc
++ Run.argasp.min Run.dadt.min Run.dgdc.min
++ Run.lysasp.min Run.polyALA.min Run.polyAT.min
++ Run.argasp.min Run.dadt.min Run.dgdc.min
++ Run.lysasp.min Run.polyALA.min Run.polyAT.min
++ Run.argasp.min Run.dadt.min Run.dgdc.min
++ Run.lysasp.min Run.polyALA.min Run.polyAT.min
++
++Tests that produce possible FAILUREs:
++ cd sander_pbsa_ipb2 && ./Run.110D.min
++ cd sander_pbsa_lpb && ./Run.lsolver.min (only some of them fail here)
++ cd sander_pbsa_tsr && ./Run.tsrb.min
++ cd sander_pbsa_decres && ./Run.pbsa_decres
++ mm_pbsa.pl tests 02, 03, and 05
++"""
++
++print warning
+diff -urN amber11.orig/dat/antechamber/ATOMTYPE_AMBER.DEF amber11/dat/antechamber/ATOMTYPE_AMBER.DEF
+--- amber11.orig/dat/antechamber/ATOMTYPE_AMBER.DEF 2011-04-14 15:30:40.000000000 +0300
++++ amber11/dat/antechamber/ATOMTYPE_AMBER.DEF 2011-10-25 15:01:28.198288560 +0300
+@@ -49,7 +49,7 @@
+ ATD F * 9 1 &
+ ATD Cl * 17 1 &
+ ATD Br * 35 1 &
+-ATD F * 53 1 &
++ATD I * 53 1 &
+ ATD P * 15 &
+ ATD N1 * 7 1 &
+ ATD NB * 7 2 * * [RG5,AR1.AR2.AR3] &
+diff -urN amber11.orig/dat/leap/cmd/leaprc.ff99SBnmr amber11/dat/leap/cmd/leaprc.ff99SBnmr
+--- amber11.orig/dat/leap/cmd/leaprc.ff99SBnmr 2011-04-14 15:30:40.000000000 +0300
++++ amber11/dat/leap/cmd/leaprc.ff99SBnmr 2011-10-25 15:01:28.239288522 +0300
+@@ -74,13 +74,6 @@
+ { "OL" "O" "sp3" }
+ { "AC" "C" "sp3" }
+ { "EC" "C" "sp3" }
+-#ildn
+- { "C3" "C" "sp3" }
+- { "C4" "C" "sp3" }
+- { "C5" "C" "sp2" }
+- { "C6" "C" "sp2" }
+- { "NP" "N" "sp2" }
+- { "OM" "O" "sp2" } # guess!!!
+ }
+ #
+ # Load the main parameter set.
+@@ -95,9 +88,9 @@
+ # Load main chain and terminating
+ # amino acid libraries (i.e. ff94 libs)
+ #
+-loadOff all_amino94ildn.lib
+-loadOff all_aminoct94ildn.lib
+-loadOff all_aminont94ildn.lib
++loadOff all_amino94.lib
++loadOff all_aminoct94.lib
++loadOff all_aminont94.lib
+ #
+ # Load water and ions
+ #
+diff -urN amber11.orig/dat/leap/parm/parm10.dat amber11/dat/leap/parm/parm10.dat
+--- amber11.orig/dat/leap/parm/parm10.dat 2011-04-14 15:30:40.000000000 +0300
++++ amber11/dat/leap/parm/parm10.dat 2011-10-25 15:01:28.218288541 +0300
+@@ -783,8 +783,10 @@
+ OS-P -OS-CT 1 0.25 0.0 -3. JCC,7,(1986),230
+ OS-P -OS-CT 1 1.20 0.0 2. gg> ene.631g*/mp2
+ H1-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999
++H1-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
+ H1-CT-C -O 1 0.08 180.0 3. Junmei et al, 1999
+ H1-CX-C -O 1 0.80 0.0 -1. Junmei et al, 1999 (was H1-CT-C -O )
++H1-CX-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
+ H1-CX-C -O 1 0.08 180.0 3. Junmei et al, 1999 (was H1-CT-C -O )
+ HC-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999
+ HC-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
+diff -urN amber11.orig/dat/leap/parm/parm99.dat amber11/dat/leap/parm/parm99.dat
+--- amber11.orig/dat/leap/parm/parm99.dat 2011-04-14 15:30:40.000000000 +0300
++++ amber11/dat/leap/parm/parm99.dat 2011-10-25 15:01:28.221288538 +0300
+@@ -546,7 +546,7 @@
+ OS-P -OS-CT 1 0.25 0.0 -3. JCC,7,(1986),230
+ OS-P -OS-CT 1 1.20 0.0 2. gg> ene.631g*/mp2
+ H1-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999
+-HC-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
++H1-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
+ H1-CT-C -O 1 0.08 180.0 3. Junmei et al, 1999
+ HC-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999
+ HC-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-gentoo2.patch b/sci-chemistry/ambertools/files/ambertools-1.5-gentoo2.patch
new file mode 100644
index 0000000..3d82bbf
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-1.5-gentoo2.patch
@@ -0,0 +1,1056 @@
+diff -urN amber11.orig/AmberTools/src/configure amber11/AmberTools/src/configure
+--- amber11.orig/AmberTools/src/configure 2011-10-25 15:01:28.222288537 +0300
++++ amber11/AmberTools/src/configure 2011-10-25 23:57:37.732371794 +0300
+@@ -293,7 +293,7 @@
+ echo "Your AMBERHOME environment variable is not set! It should be set to"
+ echo "$ambhome NOT doing so may cause errors when you compile. Continue"
+ echo "anyway? (yes or no)"
+- read answer
++ answer='yes'
+ if [ "$answer" = 'yes' -o "$answer" = 'Yes' -o "$answer" = 'YES' -o "$answer" = 'y' -o "$answer" = 'Y' ]; then
+ echo ""
+ echo "Continuing anyway... Setting AMBERHOME to $ambhome temporarily"
+@@ -356,11 +356,11 @@
+ mpi_flag=
+ lex=flex
+ flibs_mkl=
+-lapack=install
+-blas=install
++lapack=skip
++blas=skip
+ f2c=skip
+-ucpp=install
+-cpp="\$(BINDIR)/ucpp -l"
++ucpp=skip
++cpp="\$(EPREFIX)/usr/bin/ucpp -l"
+
+ #-----------------------------------
+ # skip building of sleap?
+@@ -548,13 +548,14 @@
+ flibs_arch=-lgfortran
+ flibsf_arch=
+ cc=gcc
+- cflags=
++ cflags="GENTOO_CFLAGS"
+ # ambercflags="-Wall"
+ cplusplus=g++
+- cxxflags=
++ cxxflags="GENTOO_CXXFLAGS"
+ # ambercxxflags="-Wall"
+ fc=gfortran
+- fflags=
++ fflags="GENTOO_FFLAGS"
++ ldflags="GENTOO_LDFLAGS"
+ staticflag='-static'
+
+ # If -noopt has been requested, force lack of optimisation;
+@@ -575,11 +576,11 @@
+ foptflags=""
+ else
+ cnooptflags=
+- coptflags="-O3"
++ coptflags="GENTOO_CFLAGS"
+ cxxnooptflags=
+- cxxoptflags="-O3"
++ cxxoptflags="GENTOO_CXXFLAGS"
+ fnooptflags="-O0"
+- foptflags="-O3"
++ foptflags="GENTOO_FFLAGS"
+ fi
+
+ # Debugging options
+@@ -1653,28 +1654,6 @@
+ /bin/rm -f testp.c testp$objsuffix testp$suffix
+
+ #--------------------------------------------------------------------------
+- # Configure fftw-3.2.2:
+- #--------------------------------------------------------------------------
+- if [ "$mdgx" = 'yes' ]; then
+- mdgxflag="--prefix=$AMBERHOME --disable-fortran"
+- echo
+- echo "Configuring fftw-3.2.2 (may be time-consuming)..."
+- echo
+- cd fftw-3.2.2 && \
+- env CC="$cc" CFLAGS="$cflags $cnooptflags" \
+- ./configure $mdgxflag > ../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."
+- exit 1
+- else
+- echo " fftw-3.2.2 configure succeeded."
+- fi
+- cd ..
+- fi
+-
+- #--------------------------------------------------------------------------
+ # Configure python
+ #--------------------------------------------------------------------------
+ if [ "$pyinstall" = 'python' ]; then
+@@ -1792,27 +1771,6 @@
+ echo
+ echo "Configuring fftw-2.1.5 (may be time-consuming)..."
+ echo
+- cd fftw-2.1.5
+- if [ "$mpi" = 'yes' ]; then
+- ./configure $rismflag --enable-mpi \
+- CC="$cc" CFLAGS="$cflags $coptflags" \
+- F77="$fc" FFLAGS="$fflags $foptflags" \
+- FLIBS="$flibs_arch" > ../fftw2_config.log 2>&1
+- else
+- ./configure $rismflag \
+- CC="$cc" CFLAGS="$cflags $coptflags" \
+- F77="$fc" FFLAGS="$fflags $foptflags" \
+- FLIBS="$flibs_arch" > ../fftw2_config.log 2>&1
+- fi
+- ncerror=$?
+- if [ $ncerror -gt 0 ]; then
+- echo " Error: fftw configure returned $ncerror"
+- echo " fftw configure failed! Check the fftw2_config.log file."
+- exit 1
+- else
+- echo " fftw-2.1.5 configure succeeded."
+- fi
+- cd ..
+ flibs_fftw2="-ldrfftw -ldfftw"
+ if [ "$mpi" = 'yes' ]; then
+ flibs_fftw2="-ldrfftw_mpi -ldfftw_mpi $flibs_fftw2"
+@@ -2004,7 +1962,7 @@
+ AMBERLDFLAGS=\$(AMBERBUILDFLAGS)
+
+ LEX= $lex
+-YACC= \$(BINDIR)/yacc
++YACC= byacc
+ AR= ar rv
+ M4= $m4
+ RANLIB=$ranlib
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/Makefile_at amber11/AmberTools/src/cpptraj/src/Makefile_at
+--- amber11.orig/AmberTools/src/cpptraj/src/Makefile_at 2011-10-25 15:01:28.076288672 +0300
++++ amber11/AmberTools/src/cpptraj/src/Makefile_at 2011-10-25 17:57:48.553749686 +0300
+@@ -68,11 +68,8 @@
+ -/bin/rm FindDepend.o
+ -/bin/rm findDepend
+
+-cpptraj$(SFX): $(NETCDFLIB) $(OBJECTS)
+- $(CXX) $(LDFLAGS) -o cpptraj$(SFX) $(OBJECTS) $(NETCDFLIB) $(ZLIB) $(BZLIB)
+-
+-$(NETCDFLIB): ../../netcdf_config.log
+- cd ../../netcdf/src && $(MAKE) install
++cpptraj$(SFX): $(OBJECTS)
++ $(CXX) $(LDFLAGS) -o cpptraj$(SFX) $(OBJECTS) $(NETCDFLIB) $(ZLIB) $(BZLIB) -lgomp
+
+ .c.o:
+ $(CC) -c $(CPPTRAJ_FLAGS) -o $@ $<
+diff -urN amber11.orig/AmberTools/src/Makefile amber11/AmberTools/src/Makefile
+--- amber11.orig/AmberTools/src/Makefile 2011-04-14 15:30:12.000000000 +0300
++++ amber11/AmberTools/src/Makefile 2011-10-26 00:07:12.902565336 +0300
+@@ -8,15 +8,9 @@
+
+ install: $(INSTALLTYPE)
+
+-serial: configured_serial $(NETCDFLIB) $(PYINSTALL) $(MTKPP)
++serial: configured_serial
+ @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 etc && $(MAKE) install )
+ (cd chamber && $(MAKE) install )
+ (cd pbsa && $(MAKE) install )
+@@ -32,7 +26,6 @@
+ (cd cpptraj && $(MAKE) $(CPPTRAJ))
+
+ # miscellaneous:
+- (cd reduce && $(MAKE) install )
+
+ # leap and gleap:
+ (cd leap && $(MAKE) install )
+@@ -42,7 +35,6 @@
+ (cd rism && $(MAKE) install )
+
+ # nab:
+- (cd cifparse && $(MAKE) install )
+ (cd sff && $(MAKE) install )
+ (cd pbsa && $(MAKE) libinstall )
+ (cd nab && $(MAKE) install )
+@@ -63,19 +55,12 @@
+ @echo "Installation of ${AMBERTOOLS} serial is complete at `date`."
+ @echo ""
+
+-nabonly: $(NETCDFLIB)
++nabonly:
+ # 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) install )
+
+ # nab:
+- (cd cifparse && $(MAKE) install )
+ (cd sff && $(MAKE) install )
+ (cd nab && $(MAKE) install )
+ (cd nss && $(MAKE) install )
+diff -urN amber11.orig/AmberTools/src/mdgx/Makefile amber11/AmberTools/src/mdgx/Makefile
+--- amber11.orig/AmberTools/src/mdgx/Makefile 2011-04-14 15:30:17.000000000 +0300
++++ amber11/AmberTools/src/mdgx/Makefile 2011-10-25 15:32:04.007129323 +0300
+@@ -109,7 +109,7 @@
+
+ FFTW_LIBS = $(LIBDIR)/libfftw3.a
+
+-mdgx$(SFX) : $(MDGX_OBJS) $(FFTW_LIBS) $(NETCDFLIB)
++mdgx$(SFX) : $(MDGX_OBJS)
+ $(CC) $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \
+ -o $@ $(MDGX_OBJS) $(FFTW_LIBS) $(NETCDFLIB) $(LM)
+
+diff -urN amber11.orig/AmberTools/src/pbsa/Makefile amber11/AmberTools/src/pbsa/Makefile
+--- amber11.orig/AmberTools/src/pbsa/Makefile 2011-10-25 15:01:28.228288532 +0300
++++ amber11/AmberTools/src/pbsa/Makefile 2011-10-25 22:15:38.721245308 +0300
+@@ -148,7 +148,7 @@
+ )
+
+ #---------------------------------------------------------------------------
+-pbsa$(SFX): $(OBJ) syslib netlib c9x-complex configured_serial
++pbsa$(SFX): $(OBJ) syslib configured_serial
+ $(FC) $(FFLAGS) $(AMBERFFLAGS) -o pbsa$(SFX) $(OBJ) \
+ ../lib/nxtsec.o ../lib/random.o \
+ $(FLIBSF) $(LDFLAGS) $(AMBERLDFLAGS)
+@@ -158,7 +158,7 @@
+ ../lib/nxtsec.o ../lib/random.o \
+ $(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) $(FFLAGS) $(AMBERFFLAGS) -o simplepbsa$(SFX) simplepbsa.o gopt.o \
+ libpbsa.a $(LIBDIR)/libsff.a ../lib/nxtsec.o $(FLIBSF) \
+ $(LDFLAGS) $(AMBERLDFLAGS)
+@@ -194,16 +194,6 @@
+ sfflib:
+ cd ../sff && $(MAKE) install
+
+-netlib:
+- cd ../lapack && $(MAKE) $(LAPACK)
+- cd ../blas && $(MAKE) $(BLAS)
+- cd ../arpack && $(MAKE) install
+-
+-c9x-complex:
+- @if test $(C9XCOMPLEX) != "skip"; then \
+- cd ../c9x-complex && $(MAKE) libmc.a; \
+- fi
+-
+ pb_init.o: pb_init.f
+ $(FPP) $(FPPFLAGS) $(AMBERFPPFLAGS) $< > _$<
+ $(FC) -c -O0 $(FFLAGS) $(AMBERFFLAGS) -o $@ _$<
+diff -urN amber11.orig/AmberTools/src/ptraj/Makefile amber11/AmberTools/src/ptraj/Makefile
+--- amber11.orig/AmberTools/src/ptraj/Makefile 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/ptraj/Makefile 2011-10-25 22:16:34.407661018 +0300
+@@ -57,25 +57,20 @@
+ pubfft.o: pubfft.f
+ $(FC) -c $(FREEFORMAT_FLAG) $(FOPTFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $<
+
+-rdparm$(SFX): libs $(NETCDFLIB) $(OBJECTS)
++rdparm$(SFX): libs $(OBJECTS)
+ $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \
+ -o rdparm$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM)
+
+-ptraj$(SFX): libs netlib $(NETCDFLIB) $(OBJECTS)
++ptraj$(SFX): libs $(OBJECTS)
+ $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \
+ -o ptraj$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM)
+
+-ptraj.MPI$(SFX): libs netlib $(PNETCDFLIB) $(OBJECTS)
++ptraj.MPI$(SFX): libs $(PNETCDFLIB) $(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)
+- cd ../blas && $(MAKE) $(BLAS)
+
+ clean:
+ cd pdb && $(MAKE) clean
+diff -urN amber11.orig/AmberTools/src/ptraj/netcdf_ptraj.h amber11/AmberTools/src/ptraj/netcdf_ptraj.h
+--- amber11.orig/AmberTools/src/ptraj/netcdf_ptraj.h 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/ptraj/netcdf_ptraj.h 2011-10-25 15:32:04.009129320 +0300
+@@ -4,7 +4,7 @@
+ # include "../../include/pnetcdf.h"
+ # define nc_strerror ncmpi_strerror
+ # else
+-# include "../../include/netcdf.h"
++# include <netcdf.h>
+ # endif
+ #endif
+
+diff -urN amber11.orig/AmberTools/src/ptraj/ptraj.h amber11/AmberTools/src/ptraj/ptraj.h
+--- amber11.orig/AmberTools/src/ptraj/ptraj.h 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/ptraj/ptraj.h 2011-10-25 15:32:04.009129320 +0300
+@@ -94,7 +94,7 @@
+ #define nc_strerror ncmpi_strerror
+ #include "../../include/pnetcdf.h"
+ #else
+-#include "../../include/netcdf.h"
++#include <netcdf.h>
+ #endif
+ #endif
+
+diff -urN amber11.orig/AmberTools/src/rism/Makefile amber11/AmberTools/src/rism/Makefile
+--- amber11.orig/AmberTools/src/rism/Makefile 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/rism/Makefile 2011-10-25 15:32:04.010129318 +0300
+@@ -49,7 +49,7 @@
+ mdiis_orig_c.o mdiis_blas_c.o mdiis_blas2_c.o mdiis_c.o \
+ fce_c.o erfcfun.o safemem.o blend.o timer_c.o
+
+-librism: $(LIBOBJ) $(FLIBS_FFTW2)
++librism: $(LIBOBJ)
+ $(AR) $(LIBDIR)/$@.a $(LIBOBJ)
+ $(RANLIB) $(LIBDIR)/$@.a
+
+diff -urN amber11.orig/AmberTools/src/sff/AmberNetcdf.c amber11/AmberTools/src/sff/AmberNetcdf.c
+--- amber11.orig/AmberTools/src/sff/AmberNetcdf.c 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/sff/AmberNetcdf.c 2011-10-25 15:32:04.010129318 +0300
+@@ -27,7 +27,7 @@
+ #endif
+
+ #ifdef BINTRAJ
+-#include "../../include/netcdf.h"
++#include <netcdf.h>
+
+ #define NCFRAME "frame"
+ #define NCSPATIAL "spatial"
+diff -urN amber11.orig/AmberTools/src/sff/dsarpack.f amber11/AmberTools/src/sff/dsarpack.f
+--- amber11.orig/AmberTools/src/sff/dsarpack.f 1970-01-01 03:00:00.000000000 +0300
++++ amber11/AmberTools/src/sff/dsarpack.f 2011-10-25 19:52:58.579517634 +0300
+@@ -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 -urN amber11.orig/AmberTools/src/sff/Makefile amber11/AmberTools/src/sff/Makefile
+--- amber11.orig/AmberTools/src/sff/Makefile 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/sff/Makefile 2011-10-25 22:11:23.964319736 +0300
+@@ -1,11 +1,12 @@
+ include ../config.h
+
+ .c.o:
+- $(CC) -c -Dflex $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(RISMSFF) -o $@ $<
++ $(CC) -c -Dflex $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(RISMSFF) $(NETCDFLIB) -o $@ $<
+
+ OBJS = binpos.o conjgrad.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 \
+- amber_rism_interface.o
++ amber_rism_interface.o \
++ dsarpack.o \
+
+ install: libsff hcp_getpdb
+
+diff -urN amber11.orig/AmberTools/src/sqm/Makefile amber11/AmberTools/src/sqm/Makefile
+--- amber11.orig/AmberTools/src/sqm/Makefile 2011-04-14 15:30:20.000000000 +0300
++++ amber11/AmberTools/src/sqm/Makefile 2011-10-25 22:17:29.627071134 +0300
+@@ -77,7 +77,7 @@
+ install: sqm$(SFX)
+ mv sqm$(SFX) $(BINDIR)
+
+-sqm$(SFX): $(SQMOBJ) $(QMOBJ) netlib sys
++sqm$(SFX): $(SQMOBJ) $(QMOBJ) sys
+ $(FC) $(FFLAGS) $(AMBERFFLAGS) -o sqm$(SFX) $(SQMOBJ) $(QMOBJ) \
+ $(FLIBSF) ../lib/sys.a $(LDFLAGS) $(AMBERLDFLAGS)
+
+@@ -94,11 +94,6 @@
+ sys:
+ cd ../lib; $(MAKE) sys.a
+
+-netlib:
+- cd ../lapack; $(MAKE) $(LAPACK)
+- cd ../blas; $(MAKE) $(BLAS)
+- cd ../arpack && $(MAKE) install
+-
+ clean:
+ /bin/rm -f *.o _*.f *.mod *.d sqm$(SFX)
+
+diff -urN amber11.orig/AmberTools/test/Makefile amber11/AmberTools/test/Makefile
+--- amber11.orig/AmberTools/test/Makefile 2011-04-14 15:30:55.000000000 +0300
++++ amber11/AmberTools/test/Makefile 2011-10-25 22:36:59.285906153 +0300
+@@ -12,7 +12,7 @@
+
+ test.serial: clean is_amberhome_defined \
+ test.nab test.ptraj test.cpptraj test.antechamber \
+- test.leap test.sleap test.resp test.pbsa test.mmpbsa \
++ test.leap test.resp test.pbsa test.mmpbsa \
+ test.ambpdb test.elsize test.chamber test.sqm test.rism1d \
+ finished
+
+diff -urN amber11.orig/AmberTools/test/test_at_serial.sh amber11/AmberTools/test/test_at_serial.sh
+--- amber11.orig/AmberTools/test/test_at_serial.sh 2011-03-10 20:12:24.000000000 +0200
++++ amber11/AmberTools/test/test_at_serial.sh 2011-10-25 21:52:52.178189963 +0300
+@@ -50,3 +50,9 @@
+ else
+ echo "No test diffs to save!"
+ fi
++
++if [ "${questionable_count}" -ne 0 -o "${error_count}" -ne 0 ]
++then
++ # Tests failed
++ exit 1
++fi
diff --git a/sci-chemistry/ambertools/metadata.xml b/sci-chemistry/ambertools/metadata.xml
new file mode 100644
index 0000000..20e218e
--- /dev/null
+++ b/sci-chemistry/ambertools/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>sci-chemistry</herd>
+ <maintainer>
+ <email>alexxy@gentoo.org</email>
+ <name>Alexey Shvetsov</name>
+ </maintainer>
+</pkgmetadata>
+
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2011-10-26 20:06 Reinis Danne
0 siblings, 0 replies; 18+ messages in thread
From: Reinis Danne @ 2011-10-26 20:06 UTC (permalink / raw
To: gentoo-commits
commit: 6aa7d44ede601366a744a0cd2929b4bdef11a670
Author: Reinis Danne <rei4dan <AT> gmail <DOT> com>
AuthorDate: Wed Oct 26 20:05:07 2011 +0000
Commit: Reinis Danne <rei4dan <AT> gmail <DOT> com>
CommitDate: Wed Oct 26 20:05:07 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=6aa7d44e
sci-chemistry/ambertools: Fix possible buffer overflow
---
sci-chemistry/ambertools/ChangeLog | 4 ++++
.../ambertools/files/ambertools-1.5-gentoo2.patch | 12 ++++++++++++
2 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/sci-chemistry/ambertools/ChangeLog b/sci-chemistry/ambertools/ChangeLog
index 08267f6..50f0545 100644
--- a/sci-chemistry/ambertools/ChangeLog
+++ b/sci-chemistry/ambertools/ChangeLog
@@ -2,6 +2,10 @@
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ambertools/ChangeLog,v 1.2 2011/08/02 14:42:37 alexxy Exp $
+ 26 Oct 2011; Reinis Danne <rei4dan@gmail.com>
+ files/ambertools-1.5-gentoo2.patch:
+ Fix possible buffer overflow.
+
*ambertools-1.5-r2 (25 Oct 2011)
25 Oct 2011; Reinis Danne <rei4dan@gmail.com> +ambertools-1.5-r2.ebuild,
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-gentoo2.patch b/sci-chemistry/ambertools/files/ambertools-1.5-gentoo2.patch
index 3d82bbf..1023b50 100644
--- a/sci-chemistry/ambertools/files/ambertools-1.5-gentoo2.patch
+++ b/sci-chemistry/ambertools/files/ambertools-1.5-gentoo2.patch
@@ -305,6 +305,18 @@ diff -urN amber11.orig/AmberTools/src/ptraj/ptraj.h amber11/AmberTools/src/ptraj
#endif
#endif
+diff -urN amber11.orig/AmberTools/src/ptraj/trajectory.c amber11/AmberTools/src/ptraj/trajectory.c
+--- amber11.orig/AmberTools/src/ptraj/trajectory.c 2011-03-10 20:12:15.000000000 +0200
++++ amber11/AmberTools/src/ptraj/trajectory.c 2011-10-26 22:25:04.192375511 +0300
+@@ -1314,7 +1314,7 @@
+ {
+ fpos_t fileMarker; /* marker for current file postition */
+ char *junk;
+- char buffer[120];
++ char buffer[BUFFER_SIZE];
+ char coords[26]; /* room for 24 characters (3f8.3) + \n + (char) 0 */
+ char c;
+ int j,ret;
diff -urN amber11.orig/AmberTools/src/rism/Makefile amber11/AmberTools/src/rism/Makefile
--- amber11.orig/AmberTools/src/rism/Makefile 2011-04-14 15:30:19.000000000 +0300
+++ amber11/AmberTools/src/rism/Makefile 2011-10-25 15:32:04.010129318 +0300
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2012-03-03 21:06 Reinis Danne
0 siblings, 0 replies; 18+ messages in thread
From: Reinis Danne @ 2012-03-03 21:06 UTC (permalink / raw
To: gentoo-commits
commit: 8ce9886cd5e61b892ee7e1087c09013e310a15ea
Author: Reinis Danne <rei4dan <AT> gmail <DOT> com>
AuthorDate: Sat Mar 3 20:54:44 2012 +0000
Commit: Reinis Danne <rei4dan <AT> gmail <DOT> com>
CommitDate: Sat Mar 3 20:54:44 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=8ce9886c
sci-chemistry/ambertools: Add bugfixes 22-27
---
sci-chemistry/ambertools/ChangeLog | 8 +-
sci-chemistry/ambertools/ambertools-1.5-r3.ebuild | 157 +
.../files/ambertools-1.5-bugfix_22-27.patch | 3343 ++++++++++++++++++++
3 files changed, 3507 insertions(+), 1 deletions(-)
diff --git a/sci-chemistry/ambertools/ChangeLog b/sci-chemistry/ambertools/ChangeLog
index 50f0545..0945272 100644
--- a/sci-chemistry/ambertools/ChangeLog
+++ b/sci-chemistry/ambertools/ChangeLog
@@ -1,7 +1,13 @@
# ChangeLog for sci-chemistry/ambertools
-# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
+# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ambertools/ChangeLog,v 1.2 2011/08/02 14:42:37 alexxy Exp $
+*ambertools-1.5-r3 (03 Mar 2012)
+
+ 03 Mar 2012; Reinis Danne <rei4dan@gmail.com> +ambertools-1.5-r3.ebuild,
+ +files/ambertools-1.5-bugfix_22-27.patch:
+ Add bugfixes 22-27.
+
26 Oct 2011; Reinis Danne <rei4dan@gmail.com>
files/ambertools-1.5-gentoo2.patch:
Fix possible buffer overflow.
diff --git a/sci-chemistry/ambertools/ambertools-1.5-r3.ebuild b/sci-chemistry/ambertools/ambertools-1.5-r3.ebuild
new file mode 100644
index 0000000..bebf36c
--- /dev/null
+++ b/sci-chemistry/ambertools/ambertools-1.5-r3.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ambertools/ambertools-1.5-r1.ebuild,v 1.2 2011/08/02 14:42:37 alexxy Exp $
+
+EAPI=4
+
+inherit eutils fortran-2 toolchain-funcs
+
+DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
+HOMEPAGE="http://ambermd.org/#AmberTools"
+SRC_URI="
+ AmberTools-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="openmp X"
+
+RESTRICT="fetch"
+
+RDEPEND="
+ virtual/cblas
+ virtual/lapack
+ sci-libs/clapack
+ sci-libs/arpack
+ sci-libs/cifparse-obj
+ sci-chemistry/mopac7
+ sci-libs/netcdf
+ sci-libs/fftw:2.1
+ sci-chemistry/reduce
+ virtual/fortran"
+DEPEND="${RDEPEND}
+ dev-util/byacc
+ dev-libs/libf2c
+ sys-devel/ucpp"
+S="${WORKDIR}/amber11"
+
+pkg_nofetch() {
+ einfo "Go to ${HOMEPAGE} and get ${A}"
+ einfo "Place it in ${DISTDIR}"
+}
+
+pkg_setup() {
+ fortran-2_pkg_setup
+ if use openmp; then
+ tc-has-openmp || \
+ die "Please select an openmp capable compiler like gcc[openmp]"
+ fi
+ AMBERHOME="${S}"
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${P}-bugfix_1-21.patch" \
+ "${FILESDIR}/${P}-bugfix_22-27.patch" \
+ "${FILESDIR}/${P}-gentoo2.patch"
+ cd "${S}"/AmberTools/src
+ rm -r \
+ arpack \
+ blas \
+ byacc \
+ lapack \
+ fftw-2.1.5 \
+ fftw-3.2.2 \
+ c9x-complex \
+ cifparse \
+ netcdf \
+ pnetcdf \
+ reduce \
+ ucpp-1.3 \
+ || die
+}
+
+src_configure() {
+ cd "${S}"/AmberTools/src
+ sed -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
+ -e "s:\\\\\$(LIBDIR)/lapack.a:$(pkg-config lapack --libs) -lclapack:g" \
+ -e "s:\\\\\$(LIBDIR)/blas.a:$(pkg-config blas cblas --libs):g" \
+ -e "s:\\\\\$(LIBDIR)/libdrfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
+ -e "s:\\\\\$(LIBDIR)/libdfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
+ -e "s:GENTOO_CFLAGS:${CFLAGS} -DBINTRAJ :g" \
+ -e "s:GENTOO_CXXFLAGS:${CXXFLAGS}:g" \
+ -e "s:GENTOO_FFLAGS:${FFLAGS}:g" \
+ -e "s:GENTOO_LDFLAGS:${LDFLAGS}:g" \
+ -e "s:fc=g77:fc=$(tc-getFC):g" \
+ -e "s:\$netcdflib:$(pkg-config netcdf --libs):g" \
+ -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
+ -i configure || die
+ sed -e "s:arsecond_:arscnd_:g" \
+ -i sff/time.c \
+ -i sff/sff.h \
+ -i sff/sff.c || die
+ sed -e "s:\$(NAB):\$(NAB) -lrfftw:g" \
+ -i nss/Makefile || die
+
+ local myconf
+
+ use X || myconf="${myconf} -noX11"
+
+ use openmp && myconf="${myconf} -openmp"
+
+ ./configure \
+ ${myconf} \
+ -nobintraj \
+ -nomdgx \
+ -nomtkpp \
+ -nopython \
+ -nosleap \
+ gnu
+}
+
+src_compile() {
+ cd "${S}"/AmberTools/src
+ emake || die
+}
+
+src_test() {
+ cd "${S}"/AmberTools/test
+ make test || die
+}
+
+src_install() {
+ rm -r bin/chemistry bin/MMPBSA_mods
+ rm bin/ante-MMPBSA.py bin/extractFrcmod.py
+
+ for x in bin/*
+ do dobin ${x} || die
+ done
+
+ dobin AmberTools/src/antechamber/mopac.sh
+ sed -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
+ -i "${ED}/usr/bin/mopac.sh" || die
+
+ # Make symlinks untill binpath for amber will be fixed
+ dodir /usr/share/${PN}/bin
+ cd "${ED}/usr/bin"
+ for x in *
+ do dosym /usr/bin/${x} /usr/share/${PN}/bin/${x}
+ done
+ cd "${S}"
+
+ dodoc doc/AmberTools.pdf doc/leap_pg.pdf
+ dolib.a lib/*
+ insinto /usr/include/${PN}
+ doins include/*
+ insinto /usr/share/${PN}
+ doins -r dat
+ cd AmberTools
+ doins -r benchmarks
+ doins -r examples
+ doins -r test
+
+ cat >> "${T}"/99ambertools <<- EOF
+ AMBERHOME="${EPREFIX}/usr/share/ambertools"
+ EOF
+ doenvd "${T}"/99ambertools
+}
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_22-27.patch b/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_22-27.patch
new file mode 100644
index 0000000..6df705c
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_22-27.patch
@@ -0,0 +1,3343 @@
+diff -urN amber11.orig/AmberTools/examples/mtkpp/MCPB/run.MCPB.csh amber11/AmberTools/examples/mtkpp/MCPB/run.MCPB.csh
+--- amber11.orig/AmberTools/examples/mtkpp/MCPB/run.MCPB.csh 2011-04-14 15:30:12.000000000 +0300
++++ amber11/AmberTools/examples/mtkpp/MCPB/run.MCPB.csh 2012-03-03 20:03:01.387032575 +0200
+@@ -2,111 +2,10 @@
+ echo " "
+ echo " MTK++ MCPB example "
+ echo " "
+-
+-# Clean up
+-rm -rf 1AMP_OH.README
+-rm -rf *.bcl
+-rm -rf createLibraries.sh createRespAdditions.sh getCharges.sh
+-rm -rf *.pdb
+-rm -rf *.log
+-
+-cp data/*.pdb .
+-cp data/*.bcl .
+-cp data/*.log .
+-cp data/*.fchk .
+-
+-echo "Generating scripts "
+-sh genMetalFF.sh -n 1AMP_OH
+-
+-cp data/1AMP.pdb .
+-cp data/1AMP_OH_fixed.pdb .
+-cp data/1AMP_OH_sidechain.bcl .
+-cp data/1AMP_OH_addStdMol.bcl .
+-cp data/1AMP_OH_large.bcl .
+-cp data/1AMP_OH_large_mk.log .
+-
+-cp data/1AMP_OH_sidechain_fc_md.log .
+-cp data/1AMP_OH_sidechain_opt_md.fchk .
+-cp data/1AMP_OH_sidechain_opt_md.log .
+-
+-echo "Adding Hydrogens to pdb file "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_addHs.bcl \
+- -l 1AMP_OH_addHs.bcl.log || goto error
+-
+-echo "Creating Model 1"
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_sidechain.bcl \
+- -l 1AMP_OH_sidechain.bcl.log || goto error
+-
+-echo "Adding standard molecule to library "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_addStdMol.bcl \
+- -l 1AMP_OH_addStdMol.bcl.log || goto error
+-
+-echo "Creating Model 2 "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_large.bcl \
+- -l 1AMP_OH_large.bcl.log || goto error
+-
+-echo "Creating RESP files 0 "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_large_mk0.bcl \
+- -l 1AMP_OH_large_mk0.bcl.log || goto error
+-mv 1AMP_OH_large_respAdds 1AMP_OH_large_respAdds0 || goto error
+-
+-echo "Creating RESP files 1 "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_large_mk1.bcl \
+- -l 1AMP_OH_large_mk1.bcl.log || goto error
+-mv 1AMP_OH_large_respAdds 1AMP_OH_large_respAdds1 || goto error
+-
+-echo "Creating RESP files 2 "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_large_mk2.bcl \
+- -l 1AMP_OH_large_mk2.bcl.log || goto error
+-mv 1AMP_OH_large_respAdds 1AMP_OH_large_respAdds2 || goto error
+-
+-echo "Creating RESP files 3 "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_large_mk3.bcl \
+- -l 1AMP_OH_large_mk3.bcl.log || goto error
+-mv 1AMP_OH_large_respAdds 1AMP_OH_large_respAdds3 || goto error
+-
+-echo "Determining charges "
+-sh ./getCharges.sh 0 || goto error
+-sh ./getCharges.sh 1 || goto error
+-sh ./getCharges.sh 2 || goto error
+-sh ./getCharges.sh 3 || goto error
+-
+-echo "Creating library files "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_large_chg0.bcl \
+- -l 1AMP_OH_large_chg0.bcl.log || goto error
+-
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_large_chg1.bcl \
+- -l 1AMP_OH_large_chg1.bcl.log || goto error
+-
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_large_chg2.bcl \
+- -l 1AMP_OH_large_chg2.bcl.log || goto error
+-
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_large_chg3.bcl \
+- -l 1AMP_OH_large_chg3.bcl.log || goto error
+-
+-echo "Determining Seminario force constants "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_sidechain_fc_sem.bcl \
+- -l 1AMP_OH_sidechain_fc_sem.bcl.log || goto error
+-
+-echo "Determining Traditional force constants "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_sidechain_fc_md.bcl \
+- -l 1AMP_OH_sidechain_fc_md.bcl.log || goto error
+-
+-echo "Exporting Seminario library to AMBER format "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_toAmberFormats_sem.bcl \
+- -l 1AMP_OH_toAmberFormats_sem.bcl.log || goto error
+-
+-echo "Exporting Traditional library to AMBER format "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_toAmberFormats_md.bcl \
+- -l 1AMP_OH_toAmberFormats_md.bcl.log || goto error
+-
+-echo "Reading protonated file and updating residue names "
+-$AMBERHOME/bin/MCPB -i 1AMP_OH_resNames.bcl \
+- -l 1AMP_OH_resNames.bcl.log || goto error
+-
+-echo No errors detected
++echo " "
++echo " This example has been removed due to incompatibility with"
++echo " the current minor revision of MTK++. An updated MCPB example"
++echo " is planned for a future release."
++echo " "
+ exit(0)
+
+-error:
+-echo Problem: check log files and try again
+-exit(1)
+diff -urN amber11.orig/AmberTools/examples/mtkpp/stats/pca1/run.stats.csh amber11/AmberTools/examples/mtkpp/stats/pca1/run.stats.csh
+--- amber11.orig/AmberTools/examples/mtkpp/stats/pca1/run.stats.csh 2011-04-14 15:30:12.000000000 +0300
++++ amber11/AmberTools/examples/mtkpp/stats/pca1/run.stats.csh 2012-03-03 20:03:01.387032575 +0200
+@@ -3,12 +3,12 @@
+ echo " MTK++ stats example"
+ echo " "
+
+-../$AMBERHOME/bin/stats -i pca.stats \
+- -l pca.stats.log || goto error
++$AMBERHOME/bin/stats -i pca.stats \
++ -l pca.stats.log || goto error
+
+ echo No errors detected
+ exit(0)
+
+ error:
+ echo Problem: check .out and try again
+-exit(1)
+\ Nav jaunu rindu faila beigās
++exit(1)
+diff -urN amber11.orig/AmberTools/src/configure amber11/AmberTools/src/configure
+--- amber11.orig/AmberTools/src/configure 2012-03-03 22:42:38.558776473 +0200
++++ amber11/AmberTools/src/configure 2012-03-03 20:02:57.727033628 +0200
+@@ -61,6 +61,9 @@
+ -debug Compile with debug symbols
+ -noopt Disable all compiler optimisations (sometimes needed if
+ debug symbols are requested)
++ -nopatch Do NOT run \$AMBERHOME/AT15_Amber11.py after configure writes
++ the config.h file, even if Amber11 is found in the directory.
++ This flag has no effect if Amber11 is not present.
+
+ Rarely used/tested NAB options:
+ -scalapack Use ScaLAPACK for linear algebra. Do not use in
+@@ -165,6 +168,7 @@
+ debug='no'
+ optimise='yes'
+ is_mac='no'
++nopatch='no'
+
+ #------------------------------------------------------------------------------
+ # Architecture specific:
+@@ -216,6 +220,7 @@
+ -nomtkpp) mtkpp='';;
+ -debug) debug='yes';;
+ -noopt) optimise='no';;
++ -nopatch) nopatch='yes';;
+ -help) usage;;
+ --help) usage;;
+ -h) usage;;
+@@ -2144,7 +2149,7 @@
+ fi
+
+ # For AmberTools 1.5 + Amber 11, print a message about running AT15_Amber11.py
+-if [ -d ../../src/sander ]; then
++if [ -d ../../src/sander -a "$nopatch" = 'yes' ]; then
+ echo ""
+ echo " NOTE: after installing AmberTools, if you want to compile"
+ echo " Amber11 using AmberTools 1.5, you must run the "
+@@ -2155,5 +2160,14 @@
+ echo " script will modify your Amber11 files.)"
+ fi
+
++if [ -d ../../src/sander -a "$nopatch" = 'no' ]; then
++ echo ""
++ echo " Running \$AMBERHOME/AT15_Amber11.py to patch config.h for building Amber 11."
++ echo " Check Amber11_Conversion.log for details of what was done. Running this script"
++ echo " a second time has no effect (positive or negative)"
++ echo ""
++ ../../AT15_Amber11.py > Amber11_Conversion.log 2>&1
++fi
++
+ exit
+
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberRestart.cpp amber11/AmberTools/src/cpptraj/src/AmberRestart.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/AmberRestart.cpp 2012-03-03 22:42:00.557775196 +0200
++++ amber11/AmberTools/src/cpptraj/src/AmberRestart.cpp 2012-03-03 20:03:06.928030979 +0200
+@@ -53,7 +53,7 @@
+ mprintf("Error: AmberRestart::open(): Reading restart atoms/time.\n");
+ return 1;
+ }
+- nread=sscanf(buffer,"%5i%15lE%15lE",&restartAtoms,&restartTime,&restartTemp);
++ nread=sscanf(buffer,"%i %lE %lE",&restartAtoms,&restartTime,&restartTemp);
+ if (nread<1) {
+ mprintf("Error: AmberRestart::open(): Getting restart atoms/time.\n");
+ return 1;
+diff -urN amber11.orig/AmberTools/src/cpptraj/src/main.cpp amber11/AmberTools/src/cpptraj/src/main.cpp
+--- amber11.orig/AmberTools/src/cpptraj/src/main.cpp 2012-03-03 22:42:47.132776753 +0200
++++ amber11/AmberTools/src/cpptraj/src/main.cpp 2012-03-03 20:03:06.928030979 +0200
+@@ -6,7 +6,7 @@
+ #include "PtrajMpi.h"
+ #include "CpptrajStdio.h"
+ #ifndef CPPTRAJ_VERSION_STRING
+-#define CPPTRAJ_VERSION_STRING "V1.1.1"
++#define CPPTRAJ_VERSION_STRING "V1.1.2"
+ #endif
+
+ void Usage(char *programName) {
+diff -urN amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py amber11/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py
+--- amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py 2011-04-14 15:30:17.000000000 +0300
++++ amber11/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py 2012-03-03 20:03:11.481029669 +0200
+@@ -2315,7 +2315,7 @@
+ return math.sqrt(abs(_stdev(self.com_data[0]) ** 2 + _stdev(self.rec_data[0]) ** 2 + _stdev(self.lig_data[0]) ** 2))
+
+ sum = sum2 = 0
+- for i in range(len(self.com_data)):
++ for i in range(len(self.com_data[0])):
+ sum += self.com_data[0][i] - self.rec_data[0][i] - self.lig_data[0][i]
+ sum2 += (self.com_data[0][i] - self.rec_data[0][i] - self.lig_data[0][i]) ** 2
+
+diff -urN amber11.orig/AmberTools/src/mtkpp/configure amber11/AmberTools/src/mtkpp/configure
+--- amber11.orig/AmberTools/src/mtkpp/configure 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/configure 2012-03-03 20:03:01.397032571 +0200
+@@ -788,7 +788,6 @@
+ with_gnu_ld
+ with_sysroot
+ enable_libtool_lock
+-with_gnu_ld
+ with_mkl_dir
+ with_mkl_libs
+ with_boost
+@@ -811,22 +810,9 @@
+ CCC
+ CC
+ CFLAGS
+-LDFLAGS
+-LIBS
+-CPPFLAGS
+ CPP
+-CPPFLAGS
+ CXXCPP
+-CPPFLAGS
+-XMKMF
+-CXX
+-LDFLAGS
+-LIBS
+-CPPFLAGS
+-CCC
+-CC
+-LDFLAGS
+-LIBS'
++XMKMF'
+
+
+ # Initialize some variables set by options.
+@@ -16665,7 +16651,7 @@
+ *) platform=UNKNOWN
+ is_unknown=yes
+ echo 'ERROR: this platform is not supported at this time!'
+- exit 1 ;;
++ exit ;;
+ esac
+ if test "$is_darwin" = "yes"; then
+ IS_DARWIN_TRUE=
+@@ -17838,8 +17824,8 @@
+ $as_echo "#define HAVE_ZLIB 1" >>confdefs.h
+
+ CFLAGS=$CFLAGS" -DHAVE_ZLIB"
+- CXXFLAGS=$CXXFLAGS" -DHAVE_ZLIB -DHAVE_ZLIB"
+- defines_string=$defines_string" -DHAVE_ZLIB -DHAVE_ZLIB"
++ CXXFLAGS=$CXXFLAGS" -DHAVE_ZLIB"
++ defines_string=$defines_string" -DHAVE_ZLIB"
+ FLIBS=$FLIBS" -lz"
+ else
+
+diff -urN amber11.orig/AmberTools/src/mtkpp/configure.in amber11/AmberTools/src/mtkpp/configure.in
+--- amber11.orig/AmberTools/src/mtkpp/configure.in 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/configure.in 2012-03-03 20:03:01.400032571 +0200
+@@ -383,7 +383,7 @@
+ *) platform=UNKNOWN
+ is_unknown=yes
+ echo 'ERROR: this platform is not supported at this time!'
+- exit 1 ;;
++ exit ;;
+ esac
+ AM_CONDITIONAL(IS_DARWIN, test "$is_darwin" = "yes")
+ AM_CONDITIONAL(IS_LINUX, test "$is_linux" = "yes")
+@@ -457,8 +457,8 @@
+ if test $ac_have_zlibh = yes; then
+ AC_DEFINE(HAVE_ZLIB, 1, [Define to 1 if ZLIB is available.])
+ CFLAGS=$CFLAGS" -DHAVE_ZLIB"
+- CXXFLAGS=$CXXFLAGS" -DHAVE_ZLIB -DHAVE_ZLIB"
+- defines_string=$defines_string" -DHAVE_ZLIB -DHAVE_ZLIB"
++ CXXFLAGS=$CXXFLAGS" -DHAVE_ZLIB"
++ defines_string=$defines_string" -DHAVE_ZLIB"
+ FLIBS=$FLIBS" -lz"
+ else
+ AC_DEFINE(HAVE_ZLIB, 0, [Define to 0 if ZLIB is unavailable.])
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Minimizers/Makefile.am amber11/AmberTools/src/mtkpp/src/Minimizers/Makefile.am
+--- amber11.orig/AmberTools/src/mtkpp/src/Minimizers/Makefile.am 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Minimizers/Makefile.am 2012-03-03 20:03:01.400032571 +0200
+@@ -1,4 +1,4 @@
+-DIAGNOSTICS_LD=-L$(top_builddir)/src/Diagnostics/$(SRCDIR)
++DIAGNOSTICS_LD=-L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
+ DIAGNOSTICS_LIB=-lDiagnostics
+ INCLUDES = -I$(srcdir)/..
+
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Minimizers/Makefile.in amber11/AmberTools/src/mtkpp/src/Minimizers/Makefile.in
+--- amber11.orig/AmberTools/src/mtkpp/src/Minimizers/Makefile.in 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Minimizers/Makefile.in 2012-03-03 20:03:01.401032571 +0200
+@@ -239,7 +239,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xerces_path = @xerces_path@
+-DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics/$(SRCDIR)
++DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
+ DIAGNOSTICS_LIB = -lDiagnostics
+ INCLUDES = -I$(srcdir)/..
+ lib_LTLIBRARIES = libMinimizers.la
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/MM/Makefile.am amber11/AmberTools/src/mtkpp/src/MM/Makefile.am
+--- amber11.orig/AmberTools/src/mtkpp/src/MM/Makefile.am 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/MM/Makefile.am 2012-03-03 20:03:01.400032571 +0200
+@@ -1,6 +1,6 @@
+-DIAGNOSTICS_LD=-L$(top_builddir)/src/Diagnostics/$(SRCDIR)
++DIAGNOSTICS_LD=-L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
+ DIAGNOSTICS_LIB=-lDiagnostics
+-LOG_LD=-L$(top_builddir)/src/Log/$(SRCDIR)
++LOG_LD=-L$(abs_top_builddir)/src/Log/$(SRCDIR)
+ LOG_LIB=-lLog
+
+ INCLUDES = -I@boost_inc@ -I$(srcdir)/..
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/MM/Makefile.in amber11/AmberTools/src/mtkpp/src/MM/Makefile.in
+--- amber11.orig/AmberTools/src/mtkpp/src/MM/Makefile.in 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/MM/Makefile.in 2012-03-03 20:03:01.400032571 +0200
+@@ -241,9 +241,9 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xerces_path = @xerces_path@
+-DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics/$(SRCDIR)
++DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
+ DIAGNOSTICS_LIB = -lDiagnostics
+-LOG_LD = -L$(top_builddir)/src/Log/$(SRCDIR)
++LOG_LD = -L$(abs_top_builddir)/src/Log/$(SRCDIR)
+ LOG_LIB = -lLog
+ INCLUDES = -I@boost_inc@ -I$(srcdir)/..
+ lib_LTLIBRARIES = libMM.la
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/atomType.h amber11/AmberTools/src/mtkpp/src/Molecule/atomType.h
+--- amber11.orig/AmberTools/src/mtkpp/src/Molecule/atomType.h 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Molecule/atomType.h 2012-03-03 20:03:01.402032570 +0200
+@@ -74,6 +74,9 @@
+
+ //!
+ double evalue;
++
++ //! Atomic polarizability in A**3
++ double atomPolarizability;
+ };
+
+ // ============================================================
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/collection.cpp amber11/AmberTools/src/mtkpp/src/Molecule/collection.cpp
+--- amber11.orig/AmberTools/src/mtkpp/src/Molecule/collection.cpp 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Molecule/collection.cpp 2012-03-03 20:03:01.403032569 +0200
+@@ -484,6 +484,11 @@
+ for (moleculeIterator m = this->itsMoleculeList.begin();
+ m != this->itsMoleculeList.end(); m++) {
+ pMolecule = *m;
++
++ if (pMolecule->getName() == "Reference") {
++ continue;
++ }
++
+ std::vector<submolecule*> subMolList = pMolecule->getSubMoleculeList();
+ for (sMolIterator c = subMolList.begin(); c != subMolList.end(); c++) {
+ pSubMolecule = *c;
+@@ -3408,7 +3413,10 @@
+ }
+ errMessage += metalAtom->getParent()->getName() + "@|"
+ + metalAtom->getName() + "|-"
+- + primShellAtoms[e]->getParent()->getName() + "@|"
++ + primShellAtoms[e]->getParent()->getName()
++ + i2s(primShellAtoms[e]->getParent()->getSubMolId())
++ + primShellAtoms[e]->getParent()->getiCode()
++ + "@|"
+ + primShellAtoms[e]->getName() + "| dist = " + d2s(localBond->size) +"\n";
+
+ // Angles
+@@ -3488,7 +3496,8 @@
+ std::vector<stdGroup*> stdGrpList = this->pStdLibrary->getStdGroupList();
+
+ for (unsigned int i = 0; i < stdGrpList.size(); i++) {
+-//std::cout << i << " " << stdGrpList.size() << " " << stdGrpList[i]->getName() << " " << stdGrpList[i]->hasStdMolecule() << std::endl;
++//std::cout << "\n\ncollection::assignMetalParameters " << i << " " << stdGrpList.size() << " " << stdGrpList[i]->getName() << " "
++// << stdGrpList[i]->hasStdMolecule() << std::endl;
+ if (stdGrpList[i]->hasStdMolecule()) {
+ //std::cout << "stdgroup name: " << stdGrpList[i]->getName() << std::endl;
+ //stdGroup* pStdGroup = stdGrpList[i];
+@@ -3515,6 +3524,7 @@
+
+ // create new molecule
+ molecule* pNewMolecule = this->addMolecule();
++ std::vector<atom*> atomList;
+
+ // copy residues
+ std::vector<metalCenter*> metCens = itsMetalGroups[j]->getMetalCenters();
+@@ -3536,6 +3546,10 @@
+ addedResidues.push_back(primShellAtoms[l]->getParent());
+ submolecule* pNewSubmolecule = pNewMolecule->addSubMolecule();
+ pNewSubmolecule->copy(primShellAtoms[l]->getParent());
++ std::vector<atom*> atomListTmp = primShellAtoms[l]->getParent()->getAtomList();
++ for (unsigned int i = 0 ; i < atomListTmp.size(); i++) {
++ atomList.push_back(atomListTmp[i]);
++ }
+ /*
+ std::cout << "Primary Shell " << primShellAtoms[l]->getParent()->getName() << " "
+ << primShellAtoms[l]->getParent()->getSubMolId() << " "
+@@ -3556,6 +3570,11 @@
+ addedResidues.push_back(secShellAtoms[l]->getParent());
+ submolecule* pNewSubmolecule = pNewMolecule->addSubMolecule();
+ pNewSubmolecule->copy(secShellAtoms[l]->getParent());
++
++ std::vector<atom*> atomListTmp = secShellAtoms[l]->getParent()->getAtomList();
++ for (unsigned int i = 0 ; i < atomListTmp.size(); i++) {
++ atomList.push_back(atomListTmp[i]);
++ }
+ /*
+ std::cout << "Secondary Shell " << secShellAtoms[l]->getParent()->getName() << " "
+ << secShellAtoms[l]->getParent()->getSubMolId()
+@@ -3573,6 +3592,12 @@
+ addedResidues.push_back(metalAtom->getParent());
+ submolecule* pNewSubmolecule = pNewMolecule->addSubMolecule();
+ pNewSubmolecule->copy(metalAtom->getParent());
++
++ std::vector<atom*> atomListTmp = metalAtom->getParent()->getAtomList();
++ for (unsigned int i = 0 ; i < atomListTmp.size(); i++) {
++ atomList.push_back(atomListTmp[i]);
++ }
++
+ /*
+ std::cout << "Metal Atom " << metalAtom->getParent()->getName() << " "
+ << metalAtom->getParent()->getSubMolId()
+@@ -3582,7 +3607,7 @@
+ }
+ }
+
+-//std::cout << " \n\n NEW MOLECULE \n";
++//std::cout << "NEW MOLECULE \n";
+
+ // Copy bonds
+ if (pNewMolecule) {
+@@ -3646,16 +3671,26 @@
+ }
+ }
+ }
++
++//std::cout << " After copy " << std::endl;
++
+ int nAtomsA = pStdMolecule->getNumAtoms();
+ int nAtomsB = pNewMolecule->getNumAtoms();
++
++ int nBondsA = pStdMolecule->getNumBonds();
++ int nBondsB = pNewMolecule->getNumBonds();
++
+ int nHeavyAtomsA = pStdMolecule->getNumHeavyAtoms();
+ int nHeavyAtomsB = pNewMolecule->getNumHeavyAtoms();
+
++//std::cout << "CHECK " << nAtomsA << " " << nAtomsB << " " << nBondsA << " " << nBondsB << "\n";
+ int w = 0;
+ if (nAtomsA != nAtomsB) w++;
+ int h = 0;
+ if (nHeavyAtomsA != nHeavyAtomsB) h++;
+
++//std::cout << " w = " << w << " h = " << h << std::endl;
++
+ if (w or h) {
+ std::string eMes = " " + stdGrpList[i]->getName() + " is not a match \n";
+ eMes += " std mol nAtoms: " + i2s(nAtomsA) +
+@@ -3671,8 +3706,17 @@
+ // Determine corresponences between two molecules
+ std::vector<std::vector<int> > correspondenceMatrices;
+ //int cor = 0;
++//std::cout << " superimpose " << std::endl;
+ superimpose* pSuperImpose = new superimpose();
+- int f = pSuperImpose->initializeCorrespondences(pStdMolecule, pNewMolecule, 3, correspondenceMatrices);
++ int f = 0;
++ try {
++ f = pSuperImpose->initializeCorrespondences(pStdMolecule, pNewMolecule, 3, correspondenceMatrices);
++ }
++ catch (...) {
++ f = 1;
++ }
++
++//std::cout << " after superimpose " << std::endl;
+
+ if (f != 0) {
+ std::string eMes = " Error initializing correspondences\n " + stdGrpList[i]->getName() + " is not a match \n";
+@@ -3689,6 +3733,8 @@
+ pNewMolecule->getCoordinates(CoordsB);
+ int cor = 0;
+
++//std::cout << " f = 0 " << std::endl;
++
+ double dRMSD = pSuperImpose->rmsd(pStdMolecule, CoordsB, correspondenceMatrices, cor);
+ std::string eMes = " " + stdGrpList[i]->getName() + " is a match with rmsd of " + d2s(dRMSD) + "\n";
+ MTKpp::errorLogger.throwError("collection::assignMetalParameters", eMes, INFO);
+@@ -3703,38 +3749,52 @@
+ for (int t = 0; t < nHeavyAtoms; t++) {
+ for (int t2 = 0; t2 < nHeavyAtoms; t2++) {
+ if (correspondenceMatrices[cor][t*nHeavyAtoms+t2]) {
+-//std::cout << t+1 << ":" << t2+1 << "; |";
+-
+ atom* pA1 = molHeavyAtoms1[t];
+ atom* pA2 = molHeavyAtoms2[t2];
+
+ if (pA1 and pA2) {
+-//atom* collection::getAtom(int number, bool atomIndex, bool fileId, bool atomColIndex)
+-
++ // getAtom(int number, bool atomIndex, bool fileId, bool atomColIndex)
+ atom* pOrgAtom = this->getAtom(pA2->getFileID(), 0, 1, 0);
+-/*
+-std::cout << pA1->getName() << "|" << pA2->getName() << "|" << pOrgAtom->getName() << " "
+- << pA1->getParent()->getName() << "|" << pA2->getParent()->getName() << "|" << pOrgAtom->getParent()->getName() << " |"
+- << pA1->getFileID() << "|" << pA2->getFileID() << "|" << pOrgAtom->getFileID() << "|"
+- << pA1->getColIndex() << "|" << pA2->getColIndex() << "|" << pOrgAtom->getColIndex()
+- << " |\n";
+-*/
+- pOrgAtom->getParent()->setName(pA1->getParent()->getName());
++ // atom* pOrgAtom = this->getAtom(pA2->getColIndex(), 0, 0, 1);
++
++
++//std::cout << pA1->getName() << "|" << pA2->getName() << "|" << pOrgAtom->getName() << " "
++// << pA1->getParent()->getName() << "|" << pA2->getParent()->getName() << "|" << pOrgAtom->getParent()->getName() << " |"
++// << pA1->getFileID() << "|" << pA2->getFileID() << "|" << pOrgAtom->getFileID() << "|"
++// << pA1->getColIndex() << "|" << pA2->getColIndex() << "|" << pOrgAtom->getColIndex()
++// << " |\n";
++
++ //pOrgAtom->getParent()->setName(pA1->getParent()->getName());
++
++ for (unsigned int i = 0 ; i < atomList.size(); i++) {
++ if (atomList[i]->getFileID() == pA2->getFileID()) {
++ //std::cout << "setting " << atomList[i]->getParent()->getName() << " to "
++ // << pA1->getParent()->getName() << "\n";
++ atomList[i]->getParent()->setName(pA1->getParent()->getName());
++ }
+ }
++//std::cout << pOrgAtom->getParent() << " " << pOrgAtom->getParent()->getName() << " "
++//<< pA2->getFileID()
++// << " " << pOrgAtom->getParent()->getColIndex() << "\n";
+ }
+ }
+ }
+ }
++
++ }
+ }
+ }
+ }
++
+ // delete new molecule
++ if (pNewMolecule) {
+ this->delMolecule(pNewMolecule);
+ }
+ }
+ }
+ }
+ }
++ }
+
+ ///////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////
+@@ -4377,6 +4437,7 @@
+ }
+ std::cout << " TOTAL CHARGE = " << localTotalCharge << std::endl;
+ */
++
+ }
+
+ // ============================================================
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/hydrophobize.cpp amber11/AmberTools/src/mtkpp/src/Molecule/hydrophobize.cpp
+--- amber11.orig/AmberTools/src/mtkpp/src/Molecule/hydrophobize.cpp 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Molecule/hydrophobize.cpp 2012-03-03 20:03:01.404032569 +0200
+@@ -315,7 +315,7 @@
+ if (!vertices[i]->isVisited()) {
+ graph* subGraph = new graph();
+
+- std::cout << "\n " << vertices[i]->getIndex() << " ";
++// std::cout << "\n " << vertices[i]->getIndex() << " ";
+ molGraph->dfs(vertices[i]);
+
+ for (unsigned int j = 0; j < vertices.size(); j++) {
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/Makefile.am amber11/AmberTools/src/mtkpp/src/Molecule/Makefile.am
+--- amber11.orig/AmberTools/src/mtkpp/src/Molecule/Makefile.am 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Molecule/Makefile.am 2012-03-03 20:03:01.401032571 +0200
+@@ -1,8 +1,8 @@
+-DIAGNOSTICS_LD=-L$(top_builddir)/src/Diagnostics/$(SRCDIR)
++DIAGNOSTICS_LD=-L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
+ DIAGNOSTICS_LIB=-lDiagnostics
+-GRAPH_LD=-L$(top_builddir)/src/Graph/$(SRCDIR)
++GRAPH_LD=-L$(abs_top_builddir)/src/Graph/$(SRCDIR)
+ GRAPH_LIB=-lGraph
+-LOG_LD=-L$(top_builddir)/src/Log/$(SRCDIR)
++LOG_LD=-L$(abs_top_builddir)/src/Log/$(SRCDIR)
+ LOG_LIB=-lLog
+
+ INCLUDES = -I@boost_inc@ -I$(srcdir)/.. -I$(top_srcdir)/src/eigen3b2
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/Makefile.in amber11/AmberTools/src/mtkpp/src/Molecule/Makefile.in
+--- amber11.orig/AmberTools/src/mtkpp/src/Molecule/Makefile.in 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Molecule/Makefile.in 2012-03-03 20:03:01.401032571 +0200
+@@ -248,11 +248,11 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xerces_path = @xerces_path@
+-DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics/$(SRCDIR)
++DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
+ DIAGNOSTICS_LIB = -lDiagnostics
+-GRAPH_LD = -L$(top_builddir)/src/Graph/$(SRCDIR)
++GRAPH_LD = -L$(abs_top_builddir)/src/Graph/$(SRCDIR)
+ GRAPH_LIB = -lGraph
+-LOG_LD = -L$(top_builddir)/src/Log/$(SRCDIR)
++LOG_LD = -L$(abs_top_builddir)/src/Log/$(SRCDIR)
+ LOG_LIB = -lLog
+ INCLUDES = -I@boost_inc@ -I$(srcdir)/.. -I$(top_srcdir)/src/eigen3b2
+ lib_LTLIBRARIES = libMolecule.la
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/parameters.cpp amber11/AmberTools/src/mtkpp/src/Molecule/parameters.cpp
+--- amber11.orig/AmberTools/src/mtkpp/src/Molecule/parameters.cpp 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Molecule/parameters.cpp 2012-03-03 20:03:01.404032569 +0200
+@@ -145,6 +145,7 @@
+ pAtomType->description = "";
+ pAtomType->rvalue = 0.0;
+ pAtomType->evalue = 0.0;
++ pAtomType->atomPolarizability = 0.0;
+ pAtomType->groupName = "";
+ pAtomType->optimize = false;
+ this->itsTypeList.push_back(pAtomType);
+@@ -184,6 +185,7 @@
+ pAtomType->description = a->description;
+ pAtomType->rvalue = a->rvalue;
+ pAtomType->evalue = a->evalue;
++ pAtomType->atomPolarizability = a->atomPolarizability;
+ pAtomType->groupName = g;
+ pAtomType->optimize = a->optimize;
+
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/parameters.h amber11/AmberTools/src/mtkpp/src/Molecule/parameters.h
+--- amber11.orig/AmberTools/src/mtkpp/src/Molecule/parameters.h 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Molecule/parameters.h 2012-03-03 20:03:01.405032569 +0200
+@@ -76,6 +76,9 @@
+ //! Well Depth
+ double evalue;
+
++ //! Atomic polarizability in A**3
++ double atomPolarizability;
++
+ //! group name
+ std::string groupName;
+
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/stdFrag.cpp amber11/AmberTools/src/mtkpp/src/Molecule/stdFrag.cpp
+--- amber11.orig/AmberTools/src/mtkpp/src/Molecule/stdFrag.cpp 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Molecule/stdFrag.cpp 2012-03-03 20:03:01.405032569 +0200
+@@ -305,7 +305,8 @@
+ this->itsSymbol = symbol;
+ }
+ else {
+- std::cout << " Length of Fragment Symbol = " << symbol.size()
++ std::cout << " Length of Fragment Symbol (" << symbol
++ << ") = " << symbol.size()
+ << " --> Must be 3." << std::endl;
+ }
+ }
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/stdGroup.cpp amber11/AmberTools/src/mtkpp/src/Molecule/stdGroup.cpp
+--- amber11.orig/AmberTools/src/mtkpp/src/Molecule/stdGroup.cpp 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Molecule/stdGroup.cpp 2012-03-03 20:03:01.406032569 +0200
+@@ -35,6 +35,7 @@
+ #include "stdLibrary.h"
+
+ #include "molecule.h"
++#include "submolecule.h"
+
+ namespace MTKpp
+ {
+@@ -258,5 +259,24 @@
+ }
+ }
+
++// ============================================================
++// Function : getCharge()
++// ------------------------------------------------------------
++//
++// ============================================================
++double stdGroup::getCharge()
++{
++ double d = 0.0;
++ if (pMolecule) {
++ std::vector<submolecule*> sList = this->pMolecule->getSubMoleculeList();
++ for (unsigned int p = 0; p < sList.size(); p++) {
++ this->pStdFrag = this->getStdFrag(sList[p]->getName());
++ d += this->pStdFrag->getCharge();
++ //std::cout << this->pStdFrag->getSymbol() << " " << this->pStdFrag->getCharge() << std::endl;
++ }
++ }
++ return d;
++}
++
+ } // MTKpp namespace
+
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/stdGroup.h amber11/AmberTools/src/mtkpp/src/Molecule/stdGroup.h
+--- amber11.orig/AmberTools/src/mtkpp/src/Molecule/stdGroup.h 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Molecule/stdGroup.h 2012-03-03 20:03:01.406032569 +0200
+@@ -160,6 +160,12 @@
+ */
+ molecule* getStdMolecule();
+
++ /*!
++ \brief Get getCharge
++ \return molecule charge
++ */
++ double getCharge();
++
+ protected:
+ //! stdLibrary pointer
+ stdLibrary* pParent;
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/frcmodParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/frcmodParser.cpp
+--- amber11.orig/AmberTools/src/mtkpp/src/Parsers/frcmodParser.cpp 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Parsers/frcmodParser.cpp 2012-03-03 20:03:01.407032569 +0200
+@@ -98,6 +98,7 @@
+ while (ifrcmod) {
+ std::string buffer(80,'*');
+ getline(ifrcmod,fileline);
++//std::cout << "|" << fileline << "|" << std::endl;
+ bMASS = false;
+ bBOND = false;
+ bANGLE = false;
+@@ -105,118 +106,311 @@
+ bIMPROPER = false;
+ bNONBON = false;
+
++ if ( (fileline.size() > 0) and (stripString(fileline, " ") != "") ) {
++ std::vector<std::string> splitstring;
++ splitString(fileline, " ", splitstring, 0);
++
++ if (splitstring[0] == "MASS") bMASS = true;
++ if (splitstring[0] == "BOND") bBOND = true;
++ if (splitstring[0] == "ANGL" or splitstring[0] == "ANGLE") bANGLE = true;
++ if (splitstring[0] == "DIHE" or splitstring[0] == "DIHEDRAL") bDIHE = true;
++ if (splitstring[0] == "IMPROP" or splitstring[0] == "IMPROPER") bIMPROPER = true;
++ if (splitstring[0] == "NONB" or splitstring[0] == "NONBON") bNONBON = true;
++ }
++/*
++ try {
+ if (fileline.substr(0,4) == "MASS") bMASS = true;
++ }
++ catch (std::out_of_range) {
++ std::cout << " out_of_range MAS " << std::endl;
++ }
++
++ try {
+ if (fileline.substr(0,4) == "BOND") bBOND = true;
++ }
++ catch (std::out_of_range) {
++ std::cout << " out_of_range BOND " << std::endl;
++ }
++
++ try {
+ if (fileline.substr(0,5) == "ANGLE") bANGLE = true;
++ }
++ catch (std::out_of_range) {
++ std::cout << " out_of_range ANG" << std::endl;
++ }
++
++ try {
+ if (fileline.substr(0,4) == "DIHE") bDIHE = true;
++ }
++ catch (std::out_of_range) {
++ std::cout << " out_of_range DIHE " << std::endl;
++ }
++
++ try {
+ if (fileline.substr(0,8) == "IMPROPER") bIMPROPER = true;
++ }
++ catch (std::out_of_range) {
++ std::cout << " out_of_range IMP " << std::endl;
++ }
++
++ try {
+ if (fileline.substr(0,6) == "NONBON") bNONBON = true;
++ }
++ catch (std::out_of_range) {
++ std::cout << " out_of_range NONB" << std::endl;
++ }
++*/
+
+ if (bMASS) {
+ getline(ifrcmod,fileline);
+- while (fileline != "") {
++ while (stripString(fileline, " ") != "") {
++ //while (GetAlphaChar(fileline, 0) != "0") {
++ std::vector<std::string> splitLine;
++ splitString(fileline, " ", splitLine, 0);
++ if (splitLine.size() >= 2) {
++ for (unsigned int i = 0; i < 2; i++) {
++ splitLine[i] = stripString(splitLine[i], " ");
++ }
+ pAtomType = pParameters->addAtomType();
++ pAtomType->name = splitLine[0];
+ pAtomType->groupName = this->groupName;
+- pAtomType->mass = strtod(fileline.substr(3,5).c_str(), 0);
++ pAtomType->mass = string2Double(splitLine[1]); //strtod(fileline.substr(3,5).c_str(), 0);
++
++ if (splitLine.size() > 2) {
++ char *end;
++ double ret_double = strtod(splitLine[2].c_str(), &end);
++ if (!*end) {
++ pAtomType->atomPolarizability = ret_double;
++ }
++//std::cout << splitLine[2] << " " << ret_double << std::endl;
++ }
++
+ getline(ifrcmod,fileline);
+ }
+ }
++ }
+
+ if (bBOND) {
+ getline(ifrcmod,fileline);
+- while (fileline != "") {
+- std::string atomNames = fileline.substr(0,5);
++ //while (fileline != "") {
++ while (stripString(fileline, " ") != "") {
++ //std::string atomNames = fileline.substr(0,5);
+ std::vector<std::string> splitLine;
+- splitString(atomNames, "-", splitLine, 0);
+- if (splitLine.size() == 2) {
+- for (unsigned int i = 0; i < 2; i++) {
+- splitLine[i] = stripString(splitLine[i]," ");
+- }
++ splitString(fileline, "-", splitLine, 0);
++
++ std::vector<std::string> splitLine2;
++ splitString(splitLine[1], " ", splitLine2, 0);
++
++ //if (splitLine.size() == 2) {
++ //for (unsigned int i = 0; i < 2; i++) {
++ // splitLine[i] = stripString(splitLine[i]," ");
++ //}
+ pBondParam = pParameters->addBondParam();
+ pBondParam->groupName = this->groupName;
+- pBondParam->atomType1 = std::string(splitLine[0]);
+- pBondParam->atomType2 = std::string(splitLine[1]);
+- pBondParam->keq = strtod(fileline.substr(7,5).c_str(), 0);
+- pBondParam->req = strtod(fileline.substr(16,5).c_str(), 0);
++ pBondParam->atomType1 = stripString(splitLine[0], " ");
++ pBondParam->atomType2 = stripString(splitLine2[0], " ");
++//std::cout << "|" << pBondParam->atomType1 << "|" << pBondParam->atomType2 << "|" << std::endl;
++ pBondParam->keq = string2Double(splitLine2[1]);
++ pBondParam->req = string2Double(splitLine2[2]);
++
++// pBondParam->keq = strtod(fileline.substr(7,5).c_str(), 0);
++// pBondParam->req = strtod(fileline.substr(16,5).c_str(), 0);
++
++//std::cout << "\n " << fileline << std::endl;
++//std::cout << " BOND " << pBondParam->atomType1 << " " << pBondParam->atomType2 << " " << pBondParam->keq << " " << pBondParam->req << std::endl;
++//std::cout << " BOND " << fileline.substr(7,5) << " " << fileline.substr(16,5) <<std::endl;
++
+ getline(ifrcmod,fileline);
+- }
++ //}
+ }
+ }
+
+ if (bANGLE) {
+ getline(ifrcmod,fileline);
+- while (fileline != "") {
+- std::string atomNames = fileline.substr(0,8);
++ //while (fileline != "") {
++ while (stripString(fileline, " ") != "") {
++// std::string atomNames = fileline.substr(0,8);
++
+ std::vector<std::string> splitLine;
+- splitString(atomNames, "-", splitLine, 0);
+- if (splitLine.size() == 3) {
+- for (unsigned int i = 0; i < 3; i++) {
+- splitLine[i] = stripString(splitLine[i]," ");
+- }
++ splitString(fileline, "-", splitLine, 0);
++
++ std::vector<std::string> splitLine2;
++ splitString(splitLine[2], " ", splitLine2, 0);
++
++ //std::vector<std::string> splitLine;
++ //splitString(atomNames, "-", splitLine, 0);
++
++ //std::vector<std::string> splitLine2;
++ //splitString(fileline, " ", splitLine2, 0);
++
++ //if (splitLine.size() == 3) {
++ //for (unsigned int i = 0; i < 3; i++) {
++ // splitLine[i] = stripString(splitLine[i]," ");
++ //}
+ pAngleParam = pParameters->addAngleParam();
+ pAngleParam->groupName = this->groupName;
+- pAngleParam->atomType1 = std::string(splitLine[0]);
+- pAngleParam->atomType2 = std::string(splitLine[1]);
+- pAngleParam->atomType3 = std::string(splitLine[2]);
+- pAngleParam->keq = strtod(fileline.substr(11,7).c_str(), 0);
+- pAngleParam->req = strtod(fileline.substr(20,8).c_str(), 0) * DEG2RAD;
++ pAngleParam->atomType1 = stripString(splitLine[0], " ");
++ pAngleParam->atomType2 = stripString(splitLine[1], " ");
++ pAngleParam->atomType3 = stripString(splitLine2[0], " ");
++//std::cout << "|" << pAngleParam->atomType1 << "|" << pAngleParam->atomType2 << "|" << pAngleParam->atomType3 << "|" << std::endl;
++
++ pAngleParam->keq = string2Double(splitLine2[1]);
++ pAngleParam->req = string2Double(splitLine2[2]) * DEG2RAD;
++
++ //pAngleParam->keq = strtod(fileline.substr(11,7).c_str(), 0);
++ //pAngleParam->req = strtod(fileline.substr(20,8).c_str(), 0) * DEG2RAD;
++
++//std::cout << "\n " << fileline << std::endl;
++//std::cout << " ANGLE " << pAngleParam->atomType1 << " " << pAngleParam->atomType2 << " " << pAngleParam->atomType3 << " " << pAngleParam->keq << " " << string2Double(splitLine2[2]) << std::endl;
++
+ getline(ifrcmod,fileline);
+- }
++ //}
+ }
+ }
+
+ if (bDIHE) {
+ getline(ifrcmod,fileline);
+- while (fileline != "") {
+- std::string atomNames = fileline.substr(0,11);
++ //while (fileline != "") {
++ while (stripString(fileline, " ") != "") {
++
++//std::cout << "\n " << fileline << std::endl;
++
++//std::cout << fileline.substr(0,12) << std::endl;
++
++// snip = str.substr(0,12);
++//(3) erase the substring of 0..where str.erase(0,where);
++
++ std::string atTypes = fileline.substr(0,12);
+ std::vector<std::string> splitLine;
+- splitString(atomNames, "-", splitLine, 0);
+- if (splitLine.size() == 4) {
+- for (unsigned int i = 0; i < 4; i++) {
+- splitLine[i] = stripString(splitLine[i]," ");
+- }
++ splitString(atTypes, "-", splitLine, 0);
++
++/*for (unsigned int i = 0; i < splitLine.size(); i++) {
++ std::cout << splitLine[i] << std::endl;
++}*/
++
++ fileline.erase(0,12);
++
++ std::vector<std::string> splitLine2;
++ splitString(fileline, " ", splitLine2, 0);
++/*
++for (unsigned int i = 0; i < splitLine2.size(); i++) {
++ std::cout << splitLine2[i] << std::endl;
++}*/
++
++ //std::string atomNames = fileline.substr(0,11);
++ //std::vector<std::string> splitLine;
++ //splitString(atomNames, "-", splitLine, 0);
++
++ //if (splitLine.size() == 4) {
++ //for (unsigned int i = 0; i < 4; i++) {
++ //splitLine[i] = stripString(splitLine[i], " ");
++ //}
+ pTorsionParam = pParameters->addTorsionParam();
+ pTorsionParam->groupName = this->groupName;
+- pTorsionParam->atomType1 = std::string(splitLine[0]);
+- pTorsionParam->atomType2 = std::string(splitLine[1]);
+- pTorsionParam->atomType3 = std::string(splitLine[2]);
+- pTorsionParam->atomType4 = std::string(splitLine[3]);
+- pTorsionParam->npth = atoi(fileline.substr(11,4).c_str());
+- pTorsionParam->Vn = strtod(fileline.substr(18,8).c_str(), 0);
+- pTorsionParam->gamma = strtod(fileline.substr(31,8).c_str(), 0) * DEG2RAD;
+- pTorsionParam->Nt = strtod(fileline.substr(42,12).c_str(), 0);
++ pTorsionParam->atomType1 = stripString(splitLine[0], " ");
++ pTorsionParam->atomType2 = stripString(splitLine[1], " ");
++ pTorsionParam->atomType3 = stripString(splitLine[2], " ");
++ pTorsionParam->atomType4 = stripString(splitLine[3], " ");
++
++ pTorsionParam->npth = string2Int(splitLine2[0]);
++ pTorsionParam->Vn = string2Double(splitLine2[1]);
++ pTorsionParam->gamma = string2Double(splitLine2[2]) * DEG2RAD;
++ pTorsionParam->Nt = string2Double(splitLine2[3]);
++
++ //pTorsionParam->npth = atoi(fileline.substr(11,4).c_str());
++ //pTorsionParam->Vn = strtod(fileline.substr(18,8).c_str(), 0);
++ //pTorsionParam->gamma = strtod(fileline.substr(31,8).c_str(), 0) * DEG2RAD;
++ //pTorsionParam->Nt = strtod(fileline.substr(42,12).c_str(), 0);
++
++//std::cout << " DIHE " << pTorsionParam->atomType1 << " " << pTorsionParam->atomType2 << " " << pTorsionParam->atomType3 << " " << pTorsionParam->atomType4 << " " << pTorsionParam->npth << " " << pTorsionParam->Vn << " " << string2Double(splitLine2[2]) << " " << pTorsionParam->Nt << std::endl;
++
+ getline(ifrcmod,fileline);
+- }
++//std::cout << " DIHE LINE: " << fileline << std::endl;
++ //}
+ }
+ }
+
+ if (bIMPROPER) {
+ getline(ifrcmod,fileline);
+- while (fileline != "") {
+- std::string atomNames = fileline.substr(0,11);
++ //while (fileline != "") {
++ while (stripString(fileline, " ") != "") {
++
++ std::string atTypes = fileline.substr(0,12);
+ std::vector<std::string> splitLine;
+- splitString(atomNames, "-", splitLine, 0);
+- if (splitLine.size() == 4) {
+- for (unsigned int i = 0; i < 4; i++) {
+- splitLine[i] = stripString(splitLine[i]," ");
+- }
++ splitString(atTypes, "-", splitLine, 0);
++
++ fileline.erase(0,12);
++
++ std::vector<std::string> splitLine2;
++ splitString(fileline, " ", splitLine2, 0);
++
++// std::vector<std::string> splitLine;
++// splitString(fileline, "-", splitLine, 0);
++
++// std::vector<std::string> splitLine2;
++// splitString(splitLine[3], " ", splitLine2, 0);
++
++ //std::string atomNames = fileline.substr(0,11);
++ //std::vector<std::string> splitLine;
++ //splitString(atomNames, "-", splitLine, 0);
++ //if (splitLine.size() == 4) {
++ //for (unsigned int i = 0; i < 4; i++) {
++ //splitLine[i] = stripString(splitLine[i]," ");
++ //}
+ pImproperParam = pParameters->addImproperParam();
+ pImproperParam->groupName = this->groupName;
+- pImproperParam->atomType1 = std::string(splitLine[0]);
+- pImproperParam->atomType2 = std::string(splitLine[1]);
+- pImproperParam->atomType3 = std::string(splitLine[2]);
+- pImproperParam->atomType4 = std::string(splitLine[3]);
+- pImproperParam->Vn = strtod(fileline.substr(18,8).c_str(), 0);
+- pImproperParam->gamma = strtod(fileline.substr(31,8).c_str(), 0) * DEG2RAD;
+- pImproperParam->Nt = strtod(fileline.substr(42,12).c_str(), 0);
++ pImproperParam->atomType1 = stripString(splitLine[0], " ");
++ pImproperParam->atomType2 = stripString(splitLine[1], " ");
++ pImproperParam->atomType3 = stripString(splitLine[2], " ");
++ pImproperParam->atomType4 = stripString(splitLine[3], " ");
++
++ pImproperParam->Vn = string2Double(splitLine2[0]);
++ pImproperParam->gamma = string2Double(splitLine2[1]) * DEG2RAD;
++ pImproperParam->Nt = string2Double(splitLine2[2]);
++
++ //pImproperParam->Vn = strtod(fileline.substr(18,8).c_str(), 0);
++ //pImproperParam->gamma = strtod(fileline.substr(31,8).c_str(), 0) * DEG2RAD;
++ //pImproperParam->Nt = strtod(fileline.substr(42,12).c_str(), 0);
++
++//std::cout << "\n " << fileline << std::endl;
++//std::cout << " IMPR " << pImproperParam->atomType1 << " " << pImproperParam->atomType2 << " " << pImproperParam->atomType3 << " " << pImproperParam->atomType4 << " " << pImproperParam->Vn << " " << string2Double(splitLine2[1]) << " " << pImproperParam->Nt << std::endl;
++
+ getline(ifrcmod,fileline);
+- }
++ //}
+ }
+ }
+ if (bNONBON) {
++ getline(ifrcmod,fileline);
++//std::cout << fileline << std::endl;
++ //while (fileline != "") {
++ while (stripString(fileline, " ") != "") {
++ std::vector<std::string> splitLine;
++ splitString(fileline, " ", splitLine, 0);
++ if (splitLine.size() >= 3) {
++ for (unsigned int i = 0; i < 3; i++) {
++ splitLine[i] = stripString(splitLine[i], " ");
++ }
++//std::cout << " |" << splitLine[0] << "|" << std::endl;
++
++//std::cout << "\n " << fileline << std::endl;
++
++ pAtomType = pParameters->getAtomType(stripString(splitLine[0], " "));
++ if (pAtomType) {
++ pAtomType->rvalue = string2Double(splitLine[1]);
++ pAtomType->evalue = string2Double(splitLine[2]);
+
++//std::cout << pAtomType->name << " " << pAtomType->rvalue << " " << pAtomType->evalue << std::endl;
++
++ }
++ else {
++ std::cout << " Can't find atom type " << std::endl;
++ }
++ getline(ifrcmod,fileline);
++ }
++ }
+ }
+ }
++
+ ifrcmod.close();
+ }
+
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/gaussianParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/gaussianParser.cpp
+--- amber11.orig/AmberTools/src/mtkpp/src/Parsers/gaussianParser.cpp 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Parsers/gaussianParser.cpp 2012-03-03 20:03:01.408032569 +0200
+@@ -84,7 +84,7 @@
+
+ this->bMem = 0;
+
+- this->bnProc = 0;
++ this->bNProc = 0;
+
+ this->bWriteInternalCoords = true;
+ this->bWriteCartCoords = false;
+@@ -168,7 +168,7 @@
+ while (igau) {
+ getline(igau,fileline);
+
+- if (containsSubStr(fileline, "modredundant")) {
++ if (containsSubStr(fileline, "ModRedundant")) {
+ bModRedundant = true;
+ }
+ if (fileline.substr(0,59) == " Redundant internal coordinates taken from checkpoint file:") {
+@@ -626,6 +626,7 @@
+ void gaussianParser::Write(const std::string &gaussfile, molecule* pMolecule,
+ std::vector< vector3d > &coordinates)
+ {
++ std::string routecard;
+ std::ofstream ogauss;
+ ogauss.open(gaussfile.c_str());
+
+@@ -643,52 +644,64 @@
+ return;
+ }
+
+- ogauss << "$rungauss" << std::endl;
++ ogauss << "$RunGauss" << std::endl;
+
+ if (bChkPt) {
+- ogauss << "%chk=" << this->itsChkPtFile << std::endl;
++ ogauss << "%Chk=" << this->itsChkPtFile << std::endl;
+ }
+ if (bMem) {
+- ogauss << "%mem=" << this->itsMem << std::endl;
++ ogauss << "%Mem=" << this->itsMem << std::endl;
+ }
+- if (bnProc) {
+- ogauss << "%nproc=" << this->itsnProc << std::endl;
++ if (bNProc) {
++ ogauss << "%NProcShared=" << this->itsNProc << std::endl;
+ }
+
+- ogauss << "#" << this->itsVerbosity << " " << this->itsTheory << "/" << this->itsBasisSet << " ";
++ routecard = "#" + this->itsVerbosity + " " + this->itsTheory + "/" + this->itsBasisSet;
+
+ if (!itsCommandOptions.empty()) {
+ for (mapIterator p = itsCommandOptions.begin(); p != itsCommandOptions.end(); p++) {
+ std::string c = p->first;
+ std::vector<std::string> o = p->second;
++ std::string opts = "";
+ if (o.size() == 1) {
+- if ( p->second[0] == "NONE") {
+- ogauss << p->first << " ";
+- }
+- else {
+- ogauss << p->first << "=" << p->second[0] << " ";
++ if ( p->second[0] != "NONE") {
++ opts = "=" + p->second[0];
+ }
+ }
+ else {
+- ogauss << p->first << "(";
++ opts = "(";
+ for (unsigned int i = 0; i < o.size(); i++) {
+- if (i == o.size()-1) {
+- ogauss << o[i];
++ opts = opts + o[i];
++ if (i != o.size()-1) {
++ opts = opts + ",";
+ }
+- else {
+- ogauss << o[i] << ",";
+ }
++ opts = opts + ")";
+ }
+- ogauss << ")" << " ";
++
++ if (routecard.length() + c.length() + opts.length() < 72) {
++ routecard = routecard + " " + c + opts;
++ } else {
++ if (routecard.length() != 0) {
++ ogauss << routecard << std::endl;
++ }
++ routecard = c + opts;
+ }
+ }
+ }
+ for (unsigned int i = 0; i < this->iops.size(); i++) {
+- ogauss << this->iops[i] << " ";
++ if (routecard.length() + this->iops[i].length() < 72) {
++ routecard = routecard + " " + this->iops[i];
++ } else {
++ if (routecard.length() != 0) {
++ ogauss << routecard << std::endl;
++ }
++ routecard = this->iops[i];
++ }
+ }
+
+ // Flush command block and follow with a blank line
+- ogauss << "\n" << std::endl;
++ ogauss << routecard << "\n" << std::endl;
+
+ // Write name (if required) and follow with a blank line
+ if (bWriteMoleculeName) {
+@@ -740,11 +753,11 @@
+ ogauss << std::endl;
+ }
+
+- std::vector<std::string> optOptions = this->getCommandOption("opt");
++ std::vector<std::string> optOptions = this->getCommandOption("Opt");
+ if (optOptions.size() > 0) {
+ bool bMD = 0;
+ for (unsigned int x = 0; x < optOptions.size(); x++) {
+- if (optOptions[x] == "modredundant") {
++ if (optOptions[x] == "ModRedundant") {
+ bMD = 1;
+ }
+ }
+@@ -766,13 +779,13 @@
+ }
+ }
+
+- if (this->itsBasisSet.substr(0,3) == "GEN") {
++ if (this->itsBasisSet.substr(0,3) == "Gen") {
+ std::ifstream iBSFile;
+ iBSFile.open(this->itsBasisSetFile.c_str());
+
+ if (!iBSFile) {
+ std::cout << "\nERROR!"
+- << "\nBasis set \"GEN\" requires a custom file."
++ << "\nBasis set \"Gen\" requires a custom file."
+ << "\nFile \"" << this->itsBasisSetFile << "\" is missing or unreadable."
+ << "\nPlease choose another file. For instructions, consult your program's"
+ << "\ndocumentation."
+@@ -789,13 +802,13 @@
+ }
+
+ // +BPR
+- if (this->getCommandOption("pseudo").size() > 0) {
++ if (this->getCommandOption("Pseudo").size() > 0) {
+ std::ifstream iPseudoFile;
+ iPseudoFile.open(this->itsPseudoPotentialFile.c_str());
+
+ if (!iPseudoFile) {
+ std::cout << "\nERROR!"
+- << "\npseudo=read or pseudo=cards requires a custom file."
++ << "\nPseudo=Read or Pseudo=Cards requires a custom file."
+ << "\nFile \"" << this->itsPseudoPotentialFile << "\" is missing or unreadable."
+ << "\nPlease choose another file. For instructions, consult your program's"
+ << "\ndocumentation."
+@@ -812,7 +825,7 @@
+ }
+ // -BPR
+
+- if (this->getCommandOption("pop").size() > 0) {
++ if (this->getCommandOption("Pop").size() > 0) {
+ if (!itsMKRadii.empty()) {
+ for (dMapIterator p = itsMKRadii.begin(); p != itsMKRadii.end(); p++) {
+ ogauss << p->first << "=" << p->second << "\n";
+@@ -1037,14 +1050,14 @@
+ }
+
+ // ============================================================
+-// Function : setnProc
++ // Function : setNProc
+ // ------------------------------------------------------------
+ //
+ // ============================================================
+-void gaussianParser::setnProc(const std::string &n)
++ void gaussianParser::setNProc(const std::string &n)
+ {
+- this->bnProc = 1;
+- this->itsnProc = n;
++ this->bNProc = 1;
++ this->itsNProc = n;
+ }
+
+ // ============================================================
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/gaussianParser.h amber11/AmberTools/src/mtkpp/src/Parsers/gaussianParser.h
+--- amber11.orig/AmberTools/src/mtkpp/src/Parsers/gaussianParser.h 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Parsers/gaussianParser.h 2012-03-03 20:03:01.408032569 +0200
+@@ -196,9 +196,9 @@
+
+ /*!
+ \brief Set number of processors to use
+- \param n nprocs
++ \param n number of processors
+ */
+- void setnProc(const std::string &n);
++ void setNProc(const std::string &n);
+
+ /*!
+ \brief Set level of theory
+@@ -354,10 +354,10 @@
+ bool bMem;
+
+ //! number of processors
+- std::string itsnProc;
++ std::string itsNProc;
+
+- //! Turn on mem
+- bool bnProc;
++ //! Turn on number of processors
++ bool bNProc;
+
+ //! Use internal or cartesian coordinates
+ bool bWriteInternalCoords;
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/Makefile.am amber11/AmberTools/src/mtkpp/src/Parsers/Makefile.am
+--- amber11.orig/AmberTools/src/mtkpp/src/Parsers/Makefile.am 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Parsers/Makefile.am 2012-03-03 20:03:01.406032569 +0200
+@@ -1,15 +1,15 @@
+-DIAGNOSTICS_LD=-L$(top_builddir)/src/Diagnostics/$(SRCDIR)
++DIAGNOSTICS_LD=-L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
+ DIAGNOSTICS_LIB=-lDiagnostics
+-MOLECULE_LD=-L$(top_builddir)/src/Molecule/$(SRCDIR)
++MOLECULE_LD=-L$(abs_top_builddir)/src/Molecule/$(SRCDIR)
+ MOLECULE_LIB=-lMolecule
+-GA_LD=-L$(top_builddir)/src/GA/$(SRCDIR)
++GA_LD=-L$(abs_top_builddir)/src/GA/$(SRCDIR)
+ GA_LIB=-lGA
+-LOG_LD=-L$(top_builddir)/src/Log/$(SRCDIR)
++LOG_LD=-L$(abs_top_builddir)/src/Log/$(SRCDIR)
+ LOG_LIB=-lLog
+-STATS_LD=-L$(top_builddir)/src/Statistics/$(SRCDIR)
++STATS_LD=-L$(abs_top_builddir)/src/Statistics/$(SRCDIR)
+ STATS_LIB=-lStatistics
+
+-TINYXML_LD=-L$(top_builddir)/src/tinyxml/$(SRCDIR)
++TINYXML_LD=-L$(abs_top_builddir)/src/tinyxml/$(SRCDIR)
+ TINYXML_LIB=-ltinyxml
+
+ if USE_XERCES
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/Makefile.in amber11/AmberTools/src/mtkpp/src/Parsers/Makefile.in
+--- amber11.orig/AmberTools/src/mtkpp/src/Parsers/Makefile.in 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Parsers/Makefile.in 2012-03-03 20:03:01.407032569 +0200
+@@ -267,17 +267,17 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xerces_path = @xerces_path@
+-DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics/$(SRCDIR)
++DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
+ DIAGNOSTICS_LIB = -lDiagnostics
+-MOLECULE_LD = -L$(top_builddir)/src/Molecule/$(SRCDIR)
++MOLECULE_LD = -L$(abs_top_builddir)/src/Molecule/$(SRCDIR)
+ MOLECULE_LIB = -lMolecule
+-GA_LD = -L$(top_builddir)/src/GA/$(SRCDIR)
++GA_LD = -L$(abs_top_builddir)/src/GA/$(SRCDIR)
+ GA_LIB = -lGA
+-LOG_LD = -L$(top_builddir)/src/Log/$(SRCDIR)
++LOG_LD = -L$(abs_top_builddir)/src/Log/$(SRCDIR)
+ LOG_LIB = -lLog
+-STATS_LD = -L$(top_builddir)/src/Statistics/$(SRCDIR)
++STATS_LD = -L$(abs_top_builddir)/src/Statistics/$(SRCDIR)
+ STATS_LIB = -lStatistics
+-TINYXML_LD = -L$(top_builddir)/src/tinyxml/$(SRCDIR)
++TINYXML_LD = -L$(abs_top_builddir)/src/tinyxml/$(SRCDIR)
+ TINYXML_LIB = -ltinyxml
+ @USE_XERCES_TRUE@XERCES_LD = -L@xerces_path@/lib/
+ @USE_XERCES_TRUE@XERCES_LIB = -lxerces-c
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/mtkppParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/mtkppParser.cpp
+--- amber11.orig/AmberTools/src/mtkpp/src/Parsers/mtkppParser.cpp 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Parsers/mtkppParser.cpp 2012-03-03 20:03:01.409032568 +0200
+@@ -1769,6 +1769,15 @@
+ atomElem->SetAttribute("type", int2String(pAtom->getType()));
+ atomElem->SetAttribute("formalCharge", int2String(pAtom->getFormalCharge()));
+
++ // Coordinates
++ TiXmlElement* coordElem = new TiXmlElement("coord");
++ atomElem->LinkEndChild(coordElem);
++
++ coordElem->SetAttribute("x", double2String(pAtom->getX()));
++ coordElem->SetAttribute("y", double2String(pAtom->getY()));
++ coordElem->SetAttribute("z", double2String(pAtom->getZ()));
++
++ // Properties
+ std::map<std::string, double> atomDMap = pAtom->getPropertyMap();
+ std::map<std::string, int> atomIMap = pAtom->getIntPropertyMap();
+
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/paramParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/paramParser.cpp
+--- amber11.orig/AmberTools/src/mtkpp/src/Parsers/paramParser.cpp 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Parsers/paramParser.cpp 2012-03-03 20:03:01.410032567 +0200
+@@ -144,6 +144,10 @@
+ pAtomType->evalue = string2Double(element->Attribute("potentialWellDepth"));
+ }
+
++ if (element->Attribute("atomPolarizability")) {
++ pAtomType->atomPolarizability = string2Double(element->Attribute("atomPolarizability"));
++ }
++
+ if (element->Attribute("element")) {
+ pAtomType->element = element->Attribute("element");
+ }
+@@ -1808,6 +1812,7 @@
+ entry->SetAttribute("mass" , double2String(pAtomType->mass).c_str());
+ entry->SetAttribute("vdwRadius" , double2String(pAtomType->rvalue).c_str());
+ entry->SetAttribute("potentialWellDepth" , double2String(pAtomType->evalue).c_str());
++ entry->SetAttribute("atomPolarizability" , double2String(pAtomType->atomPolarizability).c_str());
+ entry->SetAttribute("element" , pAtomType->element);
+ entry->SetAttribute("hybridization" , pAtomType->hybridization);
+ entry->SetAttribute("groupName" , pAtomType->groupName);
+@@ -2035,6 +2040,7 @@
+ typeElem->setAttribute(X("mass"), X(double2String(pAtomType->mass).c_str()));
+ typeElem->setAttribute(X("vdwRadius"), X(double2String(pAtomType->rvalue).c_str()));
+ typeElem->setAttribute(X("potentialWellDepth"), X(double2String(pAtomType->evalue).c_str()));
++ typeElem->setAttribute(X("atomPolarizability"), X(double2String(pAtomType->atomPolarizability).c_str()));
+ typeElem->setAttribute(X("element"), X(pAtomType->element.c_str()));
+ typeElem->setAttribute(X("hybridization"), X(pAtomType->hybridization.c_str()));
+ typeElem->setAttribute(X("groupName"), X(pAtomType->groupName.c_str()));
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/pdbParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/pdbParser.cpp
+--- amber11.orig/AmberTools/src/mtkpp/src/Parsers/pdbParser.cpp 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Parsers/pdbParser.cpp 2012-03-03 20:03:01.410032567 +0200
+@@ -840,6 +840,7 @@
+ for (atomIterator a = atomList.begin(); a != atomList.end(); a++) {
+ pAtom = *a;
+ pSubMolecule = pAtom->getParent();
++ //std::cout << pSubMolecule->getColIndex() << std::endl;
+ char temp[100];
+
+ char tmp_element[3];
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/prepParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/prepParser.cpp
+--- amber11.orig/AmberTools/src/mtkpp/src/Parsers/prepParser.cpp 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Parsers/prepParser.cpp 2012-03-03 20:03:01.411032567 +0200
+@@ -66,71 +66,106 @@
+ prepParser::~prepParser() {}
+
+ // =========================================================
+-// Function : Read
+-// ---------------------------------------------------------
+-// parsers a prep file
+-// ---------------------------------------------------------
+-// Format :
+-// =========================================================
+-void prepParser::Read(const std::string &prepfile, stdGroup* pStdGroup)
+-{
+- std::string errorMessage = " Reading " + prepfile + " " +
+- pStdGroup->getName() + " ... implement ";
+- errorLogger.throwError("prepParser", errorMessage, 1);
+-}
+-
+-// =========================================================
+-// Function : Read
++// Function : openFile
+ // ---------------------------------------------------------
+-// parsers a prep file
++// open a prep file
+ // ---------------------------------------------------------
+ // Format :
+ // =========================================================
+-void prepParser::Read(const std::string &prepfile, stdFrag* pStdFrag)
++int prepParser::openFile(const std::string &prepfile)
+ {
+- errorLogger.throwError("prepParser", "Read", INFO);
+-
+- std::ifstream iprep;
+ iprep.open(prepfile.c_str());
+
++ //std::cout << "\n\n prepParser::openFile " << prepfile << std::endl;
+ if (!iprep) {
+ setError(1);
+ std::string errorMessage = " Error, Can't Find " + prepfile;
+ setErrorMessage(errorMessage);
+ errorLogger.throwError("prepParser::Read", errorMessage, 1);
+- return;
++ return 1;
+ }
+
+ std::string fileline;
+- std::string title;
+- std::string atom;
+- std::string buffer(80,'*');
+
+ // SKIP FIRST TWO LINES
+ getline(iprep,fileline);
+ getline(iprep,fileline);
++
++ return 0;
++}
++
++// =========================================================
++// Function : read fragment header section
++// ---------------------------------------------------------
++//
++// ---------------------------------------------------------
++// Format :
++// =========================================================
++int prepParser::readHeader(std::string &name, std::string &symbol, double &charge)
++{
++ std::string fileline;
++
+ getline(iprep,fileline);
+- //std::string name = stripString(fileline," ");
+- //pStdFrag->setName(fileline);
++ if (stripString(fileline, " ") == "STOP") return 1;
++
++ name = stripString(fileline," ");
++
++ // blank line
+ getline(iprep,fileline);
++
++ // symbol
+ getline(iprep,fileline);
+ std::vector<std::string> splitLine;
+ splitString(fileline, " ", splitLine, 0);
+- pStdFrag->setSymbol(splitLine[0]);
++ symbol = splitLine[0];
++
++ //
+ getline(iprep,fileline);
++
++ // charge
+ getline(iprep,fileline);
+- //pStdFrag->setCharge(splitLine[0]);
++ charge = string2Double(stripString(fileline, " "));
++
++ return 0;
++}
++
++// =========================================================
++// Function : read fragment main section
++// ---------------------------------------------------------
++//
++// ---------------------------------------------------------
++// Format :
++// =========================================================
++void prepParser::readFragment(stdFrag* pStdFrag)
++{
++ std::string fileline;
++
++ std::vector<stdBond*> todos;
+
+ while (iprep) {
+ getline(iprep,fileline);
+- if (fileline == "") break;
++
++ std::string filelineTest = stripString(fileline, " ");
++ if (filelineTest == "") break;
++
++//std::cout << "|" << fileline << "|" << std::endl;
+
+ std::vector<std::string> splitstring;
+ splitString(fileline, " ", splitstring, 0);
+ if (atoi(splitstring[0].c_str()) > 3) {
+ stdAtom* pStdAtom = pStdFrag->addStdAtom();
+ int atIndex = atoi(splitstring[0].c_str()) - 3;
+- std::string atomName = fileline.substr(6,4);
++
++////////
++ //std::string atomName = fileline.substr(6,4);
++ std::string atomName = splitstring[1];
++ if (atomName.size() == 1) atomName = " " + atomName + " ";
++ else if (atomName.size() == 2) atomName = " " + atomName + " ";
++ else if (atomName.size() == 3) atomName = " " + atomName;
++
++//std::cout << "|" << atomName << "|" << std::endl;
++/////////
++
+ std::string atomType = splitstring[2];
+ std::string atomChain = splitstring[3];
+
+@@ -170,32 +205,54 @@
+ pStdBond->atom1 = pStdAtom->index;
+ pStdBond->atom2 = pStdAtom->bond12;
+ pStdBond->type = 1;
++
+ if (pStdAtom->atSymbol == "H") {
+ if (pStdAtom->bond12 > 0) {
+ stdAtom* pStdBondedAtom = pStdFrag->getStdAtom(pStdAtom->bond12);
++
++ if (pStdBondedAtom) {
+ std::string bondedAtomSymbol = pStdBondedAtom->atSymbol;
+ if (bondedAtomSymbol == "N" or bondedAtomSymbol == "O" or bondedAtomSymbol == "S") {
+ pStdBond->kind = 1;
+ }
+ }
++ else {
++ todos.push_back(pStdBond);
++ }
++ }
+ }
+ else {
+ pStdBond->kind = 0;
+ }
++
+ pStdBond->topology = 2;
+ pStdBond->stereo = 0;
+ pStdBond->length = pStdAtom->bondLength;
+ }
+ }
+
++ for (unsigned int x = 0; x < todos.size(); x++) {
++ stdAtom* pStdBondedAtom1 = pStdFrag->getStdAtom(todos[x]->atom1);
++ stdAtom* pStdBondedAtom2 = pStdFrag->getStdAtom(todos[x]->atom2);
++ if (pStdBondedAtom1 and pStdBondedAtom2) {
++ std::string bondedAtomSymbol = pStdBondedAtom2->atSymbol;
++ if (bondedAtomSymbol == "N" or bondedAtomSymbol == "O" or bondedAtomSymbol == "S") {
++ todos[x]->kind = 1;
++ }
++ }
++ }
++
+ // Read charge, alias, loop, and improper data
+ while (iprep) {
+ getline(iprep,fileline);
++//std::cout << "!" << fileline << "!" << std::endl;
+ if (fileline != "") {
+ if (fileline.substr(0,6) == "CHARGE") {
+ while (iprep) {
+ getline(iprep,fileline);
+- if (fileline == "") break;
++
++ std::string filelineTest = stripString(fileline, " ");
++ if (filelineTest == "") break;
+ }
+ }
+ else if (fileline.substr(0,5) == "ALIAS") {
+@@ -252,7 +309,7 @@
+ else {
+ std::string errorMessage = " ALIAS Tag Error ... exiting ";
+ errorLogger.throwError("prepParser::Read", errorMessage, 1);
+- //exit(0);
++
+ std::stringstream ss;
+ ss << "prepParser::Read"<< errorMessage;
+ throw MTKException(ss.str());
+@@ -263,11 +320,20 @@
+ else if (fileline.substr(0,4) == "LOOP") {
+ while (iprep) {
+ getline(iprep,fileline);
+- if (fileline == "") break;
++
++ std::string filelineTest = stripString(fileline, " ");
++ if (filelineTest == "") break;
++
++ //if (fileline == "") break;
+
+ std::vector<std::string> atomNames;
+ splitString(fileline, " ", atomNames, 0);
+-
++/*
++for (unsigned int x = 0; x <atomNames.size();x++){
++ std::cout << atomNames[x] <<std::endl;
++}
++pStdFrag->print();
++*/
+ std::vector< std::vector<std::string> > possibleNames;
+ for (int d = 0; d < 2; d++) {
+ int atNameSize = atomNames[d].size();
+@@ -315,17 +381,22 @@
+ else {
+ std::string errorMessage = " LOOP Tag Error ... exiting ";
+ errorLogger.throwError("prepParser::Read", errorMessage, 1);
+- //exit(0);
+-
+ std::stringstream ss;
+ ss << "prepParser::Read"<< errorMessage;
+ throw MTKException(ss.str());
+ }
+ }
+ }
++ else if (fileline.substr(0,4) == "DONE") {
++ break;
++ }
+ else if (fileline.substr(0,8) == "IMPROPER") {
+ while (iprep) {
+ getline(iprep,fileline);
++
++ std::string filelineTest = stripString(fileline, " ");
++ if (filelineTest == "") break;
++
+ if (fileline == "") break;
+
+ std::vector<std::string> atomNames;
+@@ -424,7 +495,6 @@
+ else {
+ std::string errorMessage = " IMPROPER Tag Error ... exiting ";
+ errorLogger.throwError("prepParser::Read", errorMessage, 1);
+- //exit(0);
+
+ std::stringstream ss;
+ ss << "prepParser::Read" << errorMessage;
+@@ -642,8 +712,112 @@
+ }
+ // QBio end
+ }
+-
+ errorLogger.throwError("prepParser::Read", eMessage, INFO);
++}
++
++// =========================================================
++// Function : Read
++// ---------------------------------------------------------
++// parsers a prep file
++// ---------------------------------------------------------
++// Format :
++// =========================================================
++void prepParser::Read(const std::string &prepfile, stdGroup* pStdGroup)
++{
++ int r = openFile(prepfile);
++ if (r == 1) return;
++
++ while(iprep) {
++ std::string name = "";
++ std::string symbol = "";
++ double charge = 0.0;
++ int h = readHeader(name, symbol, charge);
++ if (h == 1) break;
++
++ stdFrag* pStdFrag = pStdGroup->addStdFrag();
++ if (!pStdFrag) {
++ setError(1);
++ std::string errorMessage = " Error creating fragment ";
++ setErrorMessage(errorMessage);
++ errorLogger.throwError("prepParser::Read", errorMessage, 1);
++ return;
++ }
++
++ if (symbol.size() == 1) symbol = symbol + " ";
++ if (symbol.size() == 2) symbol = symbol + " ";
++ if (symbol.size() > 3) symbol = symbol.substr(1,3);
++
++ pStdFrag->setSymbol(symbol); // 3L code
++ //pStdFrag->setCode("P2XML"+name); // 8L code
++ pStdFrag->setName(name); // long name
++ pStdFrag->setType("m"); // fragment type
++
++ //std::cout << " prepParser::Read " << name << " charge " << charge << " symbol " << symbol << std::endl;
++ readFragment(pStdFrag);
++ }
++
++ iprep.close();
++
++ return;
++}
++
++// =========================================================
++// Function : Read
++// ---------------------------------------------------------
++// parsers a prep file
++// ---------------------------------------------------------
++// Format :
++// =========================================================
++void prepParser::Read(const std::string &prepfile, stdFrag* pStdFrag)
++{
++ errorLogger.throwError("prepParser", "Read", INFO);
++/*
++ std::ifstream iprep;
++ iprep.open(prepfile.c_str());
++
++ if (!iprep) {
++ setError(1);
++ std::string errorMessage = " Error, Can't Find " + prepfile;
++ setErrorMessage(errorMessage);
++ errorLogger.throwError("prepParser::Read", errorMessage, 1);
++ return;
++ }
++*/
++
++ int r = openFile(prepfile);
++ if (r == 1) return;
++
++ std::string fileline;
++ std::string title;
++ std::string atom;
++ //std::string buffer(80,'*');
++
++ // SKIP FIRST TWO LINES
++ //getline(iprep,fileline);
++ //getline(iprep,fileline);
++
++/*
++ getline(iprep,fileline);
++ //std::string name = stripString(fileline," ");
++ //pStdFrag->setName(fileline);
++ getline(iprep,fileline);
++ getline(iprep,fileline);
++ std::vector<std::string> splitLine;
++ splitString(fileline, " ", splitLine, 0);
++ pStdFrag->setSymbol(splitLine[0]);
++ getline(iprep,fileline);
++ getline(iprep,fileline);
++ //pStdFrag->setCharge(splitLine[0]);
++*/
++
++ std::string name = "";
++ std::string symbol = "";
++ double charge = 0.0;
++ readHeader(name, symbol, charge);
++
++ pStdFrag->setSymbol(symbol);
++
++ readFragment(pStdFrag);
+
+ iprep.close();
+ }
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/prepParser.h amber11/AmberTools/src/mtkpp/src/Parsers/prepParser.h
+--- amber11.orig/AmberTools/src/mtkpp/src/Parsers/prepParser.h 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Parsers/prepParser.h 2012-03-03 20:03:01.411032567 +0200
+@@ -89,6 +89,25 @@
+ ~prepParser();
+
+ /*!
++ \brief open prep file
++ \param i input file
++ */
++ int openFile(const std::string &i);
++
++ /*!
++ \brief read fragment header section
++ \param name fragment name
++ \param symbol fragment symbol
++ \param charge fragment charge
++ */
++ int readHeader(std::string &name, std::string &symbol, double &charge);
++
++ /*!
++ \brief read fragment main section
++ */
++ void readFragment(stdFrag* pStdFrag);
++
++ /*!
+ \brief Read prep file
+ \param i input file
+ \param g stdGroup pointer
+@@ -127,6 +146,9 @@
+
+ //! atom pointer
+ atom* pAtom;
++
++ //! file handler
++ std::ifstream iprep;
+ };
+
+ } // MTKpp namespace
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/stdLibParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/stdLibParser.cpp
+--- amber11.orig/AmberTools/src/mtkpp/src/Parsers/stdLibParser.cpp 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Parsers/stdLibParser.cpp 2012-03-03 20:03:01.412032567 +0200
+@@ -3280,7 +3280,7 @@
+ // ------------------------------------------------------------
+ // Write xml files using tinyxml
+ // ------------------------------------------------------------
+-void stdLibParser::Write(std::string fileName)
++void stdLibParser::Write(std::string fileName) // TinyXML
+ {
+ std::string errMessage = " Writing " + fileName;
+ errorLogger.throwError("stdLibParser", errMessage, INFO);
+@@ -3512,6 +3512,7 @@
+ TiXmlElement* impElem = new TiXmlElement("improper");
+ frag->LinkEndChild(impElem);
+
++ /*
+ if (improperList[k]->atom1 == -1) {
+ impElem->SetAttribute("Atom1", "p1");
+ }
+@@ -3520,7 +3521,8 @@
+ }
+ else {
+ impElem->SetAttribute("Atom1", int2String(improperList[k]->atom1));
+- }
++ }*/
++ impElem->SetAttribute("Atom1", int2String(improperList[k]->atom1));
+ impElem->SetAttribute("Atom2", int2String(improperList[k]->atom2));
+ impElem->SetAttribute("Atom3", int2String(improperList[k]->atom3));
+ impElem->SetAttribute("Atom4", int2String(improperList[k]->atom4));
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Statistics/Makefile.am amber11/AmberTools/src/mtkpp/src/Statistics/Makefile.am
+--- amber11.orig/AmberTools/src/mtkpp/src/Statistics/Makefile.am 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Statistics/Makefile.am 2012-03-03 20:03:01.413032567 +0200
+@@ -1,4 +1,4 @@
+-DIAGNOSTICS_LD=-L$(top_builddir)/src/Diagnostics/$(SRCDIR)
++DIAGNOSTICS_LD=-L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
+ DIAGNOSTICS_LIB=-lDiagnostics
+
+ INCLUDES = -I@boost_inc@ -I$(srcdir)/.. -I$(top_srcdir)/src/eigen3b2
+diff -urN amber11.orig/AmberTools/src/mtkpp/src/Statistics/Makefile.in amber11/AmberTools/src/mtkpp/src/Statistics/Makefile.in
+--- amber11.orig/AmberTools/src/mtkpp/src/Statistics/Makefile.in 2011-04-14 15:30:18.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/src/Statistics/Makefile.in 2012-03-03 20:03:01.413032567 +0200
+@@ -241,7 +241,7 @@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+ xerces_path = @xerces_path@
+-DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics/$(SRCDIR)
++DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
+ DIAGNOSTICS_LIB = -lDiagnostics
+ INCLUDES = -I@boost_inc@ -I$(srcdir)/.. -I$(top_srcdir)/src/eigen3b2
+ lib_LTLIBRARIES = libStatistics.la
+diff -urN amber11.orig/AmberTools/src/mtkpp/tests/Makefile.am amber11/AmberTools/src/mtkpp/tests/Makefile.am
+--- amber11.orig/AmberTools/src/mtkpp/tests/Makefile.am 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/tests/Makefile.am 2012-03-03 20:03:01.414032567 +0200
+@@ -42,25 +42,25 @@
+ LAPACK_LIB=-llapack -lblas -lg2c
+ endif
+
+-MOLECULE_LD=-L$(top_builddir)/src/Molecule
++MOLECULE_LD=-L$(abs_top_builddir)/src/Molecule
+ MOLECULE_LIB=-lMolecule
+-DIAGNOSTICS_LD=-L$(top_builddir)/src/Diagnostics
++DIAGNOSTICS_LD=-L$(abs_top_builddir)/src/Diagnostics
+ DIAGNOSTICS_LIB=-lDiagnostics
+-LOG_LD=-L$(top_builddir)/src/Log
++LOG_LD=-L$(abs_top_builddir)/src/Log
+ LOG_LIB=-lLog
+-GRAPH_LD=-L$(top_builddir)/src/Graph
++GRAPH_LD=-L$(abs_top_builddir)/src/Graph
+ GRAPH_LIB=-lGraph
+-GA_LD=-L$(top_builddir)/src/GA
++GA_LD=-L$(abs_top_builddir)/src/GA
+ GA_LIB=-lGA
+-MM_LD=-L$(top_builddir)/src/MM
++MM_LD=-L$(abs_top_builddir)/src/MM
+ MM_LIB=-lMM
+-MINIMIZERS_LD=-L$(top_builddir)/src/Minimizers
++MINIMIZERS_LD=-L$(abs_top_builddir)/src/Minimizers
+ MINIMIZERS_LIB=-lMinimizers
+-PARSERS_LD=-L$(top_builddir)/src/Parsers
++PARSERS_LD=-L$(abs_top_builddir)/src/Parsers
+ PARSERS_LIB=-lParsers
+-STATS_LD=-L$(top_builddir)/src/Statistics
++STATS_LD=-L$(abs_top_builddir)/src/Statistics
+ STATS_LIB=-lStatistics
+-TINYXML_LD=-L$(top_builddir)/src/tinyxml
++TINYXML_LD=-L$(abs_top_builddir)/src/tinyxml
+ TINYXML_LIB=-ltinyxml
+
+ # INCLUDES = -I@boost_inc@ -I@xerces_path@/include -I$(top_srcdir)/src -I$(top_srcdir)/include -I$(top_srcdir)/src/tinyxml -I$(top_srcdir)/src/Parsers -I$(top_srcdir)/src/Molecule -I$(top_srcdir)/src/Statistics -I$(top_srcdir)/src/Utils $(tmpQT_INCPATH)
+diff -urN amber11.orig/AmberTools/src/mtkpp/tests/Makefile.in amber11/AmberTools/src/mtkpp/tests/Makefile.in
+--- amber11.orig/AmberTools/src/mtkpp/tests/Makefile.in 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/tests/Makefile.in 2012-03-03 20:03:01.414032567 +0200
+@@ -303,25 +303,25 @@
+ @USE_QT_TRUE@tmpQT_LIBS = $(QT_LIBS)
+ @IS_LINUX_TRUE@LAPACK_LD = -L/usr/lib64
+ @IS_LINUX_TRUE@LAPACK_LIB = -llapack -lblas -lg2c
+-MOLECULE_LD = -L$(top_builddir)/src/Molecule
++MOLECULE_LD = -L$(abs_top_builddir)/src/Molecule
+ MOLECULE_LIB = -lMolecule
+-DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics
++DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics
+ DIAGNOSTICS_LIB = -lDiagnostics
+-LOG_LD = -L$(top_builddir)/src/Log
++LOG_LD = -L$(abs_top_builddir)/src/Log
+ LOG_LIB = -lLog
+-GRAPH_LD = -L$(top_builddir)/src/Graph
++GRAPH_LD = -L$(abs_top_builddir)/src/Graph
+ GRAPH_LIB = -lGraph
+-GA_LD = -L$(top_builddir)/src/GA
++GA_LD = -L$(abs_top_builddir)/src/GA
+ GA_LIB = -lGA
+-MM_LD = -L$(top_builddir)/src/MM
++MM_LD = -L$(abs_top_builddir)/src/MM
+ MM_LIB = -lMM
+-MINIMIZERS_LD = -L$(top_builddir)/src/Minimizers
++MINIMIZERS_LD = -L$(abs_top_builddir)/src/Minimizers
+ MINIMIZERS_LIB = -lMinimizers
+-PARSERS_LD = -L$(top_builddir)/src/Parsers
++PARSERS_LD = -L$(abs_top_builddir)/src/Parsers
+ PARSERS_LIB = -lParsers
+-STATS_LD = -L$(top_builddir)/src/Statistics
++STATS_LD = -L$(abs_top_builddir)/src/Statistics
+ STATS_LIB = -lStatistics
+-TINYXML_LD = -L$(top_builddir)/src/tinyxml
++TINYXML_LD = -L$(abs_top_builddir)/src/tinyxml
+ TINYXML_LIB = -ltinyxml
+
+ # INCLUDES = -I@boost_inc@ -I@xerces_path@/include -I$(top_srcdir)/src -I$(top_srcdir)/include -I$(top_srcdir)/src/tinyxml -I$(top_srcdir)/src/Parsers -I$(top_srcdir)/src/Molecule -I$(top_srcdir)/src/Statistics -I$(top_srcdir)/src/Utils $(tmpQT_INCPATH)
+diff -urN amber11.orig/AmberTools/src/mtkpp/tools/Makefile.am amber11/AmberTools/src/mtkpp/tools/Makefile.am
+--- amber11.orig/AmberTools/src/mtkpp/tools/Makefile.am 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/tools/Makefile.am 2012-03-03 20:03:01.417032565 +0200
+@@ -25,7 +25,7 @@
+ tmpQT_LIBS = $(QT_LIBS)
+ endif
+
+-DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics
++DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics
+ DIAGNOSTICS_LIB = -lDiagnostics
+ MOLECULE_LD = -L$(top_builddir)/src/Molecule
+ MOLECULE_LIB = -lMolecule
+diff -urN amber11.orig/AmberTools/src/mtkpp/tools/Makefile.in amber11/AmberTools/src/mtkpp/tools/Makefile.in
+--- amber11.orig/AmberTools/src/mtkpp/tools/Makefile.in 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/tools/Makefile.in 2012-03-03 20:03:01.417032565 +0200
+@@ -392,7 +392,7 @@
+ @USE_XERCES_TRUE@XERCES_LIB = -lxerces-c
+ @USE_QT_TRUE@tmpQT_INCPATH = $(QT_INCPATH)
+ @USE_QT_TRUE@tmpQT_LIBS = $(QT_LIBS)
+-DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics
++DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics
+ DIAGNOSTICS_LIB = -lDiagnostics
+ MOLECULE_LD = -L$(top_builddir)/src/Molecule
+ MOLECULE_LIB = -lMolecule
+diff -urN amber11.orig/AmberTools/src/mtkpp/tools/MCPB.cpp amber11/AmberTools/src/mtkpp/tools/MCPB.cpp
+--- amber11.orig/AmberTools/src/mtkpp/tools/MCPB.cpp 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/tools/MCPB.cpp 2012-03-03 20:03:01.416032566 +0200
+@@ -67,6 +67,7 @@
+ #include "Parsers/mtkppParser.h"
+ #include "Parsers/dMParser.h"
+ #include "Parsers/commLineOptions.h"
++#include "Parsers/StringManip.h"
+
+ // - Log
+ #include "Log/errorHandler.h"
+@@ -84,6 +85,12 @@
+
+ using namespace MTKpp;
+
++std::string getEnvVar(std::string const& key)
++{
++ char const* val = getenv(key.c_str());
++ return val == NULL ? std::string() : std::string(val);
++}
++
+ void printFunctionList()
+ {
+ std::string functionList = "\n MCPB Functions:\n";
+@@ -181,32 +188,32 @@
+ functionList += " Find all metal centers in the collection\n";
+ functionList += " syntax: findMetalCenters\n";
+ functionList += "\n";
+- functionList += " g03Charges\n";
++ functionList += " gaussianCharges\n";
+ functionList += " Generate a Gaussian input file for partial-charge computation\n";
+ functionList += " Optional: set the Gaussian job file name\n";
+- functionList += " syntax: g03Charges //cuCYM4 cuCYM4.com\n";
++ functionList += " syntax: gaussianCharges //cuCYM4 cuCYM4.com\n";
+ functionList += "\n";
+- functionList += " g03Mem\n";
+- functionList += " Set amount of memory requested for g03\n";
+- functionList += " syntax: g03Mem 3600MB\n";
++ functionList += " gaussianMem\n";
++ functionList += " Set amount of memory requested for Gaussian\n";
++ functionList += " syntax: gaussianMem 3600MB\n";
+ functionList += "\n";
+- functionList += " g03MoldenFormat\n";
++ functionList += " gaussianMoldenFormat\n";
+ functionList += " Request Gaussian log files formatted for viewing in Molden\n";
+- functionList += " (adds the GFINPUT and IOP(6/7=3) keywords)\n";
+- functionList += " syntax: g03MoldenFormat\n";
++ functionList += " (adds the GFInput and IOp(6/7=3) keywords)\n";
++ functionList += " syntax: gaussianMoldenFormat\n";
+ functionList += "\n";
+- functionList += " g03nProc\n";
+- functionList += " Set number of processors requested for g03\n";
+- functionList += " syntax: g03nProc 2\n";
++ functionList += " gaussianNProc\n";
++ functionList += " Set number of processors requested for Gaussian\n";
++ functionList += " syntax: gaussianNProc 2\n";
+ functionList += "\n";
+- functionList += " g03OptAndFC\n";
++ functionList += " gaussianOptAndFC\n";
+ functionList += " Generate Gaussian input files for optimisation and force constants\n";
+ functionList += " Optional: set the Gaussian job file name\n";
+- functionList += " syntax: g03OptAndFC //cuCYM4 cuCYM4.com\n";
++ functionList += " syntax: gaussianOptAndFC //cuCYM4 cuCYM4.com\n";
+ functionList += "\n";
+- functionList += " g03Verbosity\n";
++ functionList += " gaussianVerbosity\n";
+ functionList += " Set the verbosity of Gaussian output ([T]erse, [N]ormal, [P]rolix)\n";
+- functionList += " syntax: g03Verbosity [T|N|P]\n";
++ functionList += " syntax: gaussianVerbosity [T|N|P]\n";
+ functionList += "\n";
+ functionList += " levelOfTheory\n";
+ functionList += " Set Gaussian Theory Level\n";
+@@ -256,9 +263,9 @@
+ functionList += " Read Formatted Checkpoint file\n";
+ functionList += " syntax: readFormattedChkPtFile file.fchk\n";
+ functionList += "\n";
+- functionList += " readG03Output\n";
+- functionList += " Read G03 Output\n";
+- functionList += " syntax: readG03Output cuCYM4.log\n";
++ functionList += " readGaussianOutput\n";
++ functionList += " Read Gaussian Output\n";
++ functionList += " syntax: readGaussianOutput cuCYM4.log\n";
+ functionList += "\n";
+ functionList += " readMolZmatMapping\n";
+ functionList += " Read Molecule <--> Z-Matrix mapping file\n";
+@@ -470,7 +477,7 @@
+ else {
+ printHeader(std::cout, prog_name, authors);
+ clo->printUsage();
+- std::cout << " Please provide a MCPB file " << std::endl;
++ std::cout << " Please provide an MCPB file " << std::endl;
+ return 0;
+ }
+
+@@ -515,7 +522,9 @@
+ std::string errorMessage = "";
+
+ std::vector<std::vector<std::string> > inputFileContents;
++
+ int failure = readInputFile(inputFile, inputFileContents);
++
+ if (failure) {
+ printHeader(std::cout, prog_name, authors);
+ clo->printUsage();
+@@ -660,7 +669,7 @@
+ std::vector<std::vector<std::string> > sourceInputFileContents;
+ failure = readInputFile(cur[1], sourceInputFileContents);
+ if (failure) {
+- errorMessage = " Error Reading File " + cur[1];
++ errorMessage = " Error reading file " + cur[1];
+ MTKpp::errorLogger.throwError("MCPB::source", errorMessage, 1);
+ exit(1);
+ }
+@@ -668,7 +677,7 @@
+ sourceInputFileContents.end());
+ }
+ else {
+- errorMessage = " Error Reading File " + cur[1];
++ errorMessage = " Error reading file " + cur[1];
+ MTKpp::errorLogger.throwError("MCPB::source", errorMessage, 1);
+ exit(1);
+ }
+@@ -742,6 +751,20 @@
+ \endcode
+ */
+ if ((inputFileContents[i].size() == 3)) {
++ //std::cout << "SET COMMAND " << inputFileContents[i][2] << std::endl;
++ if (inputFileContents[i][2].compare(0,1,"$") == 0) {
++ std::string envVariable = "";
++ std::string tVar = inputFileContents[i][2];
++ envVariable = getEnvVar(tVar.substr(1,tVar.size()-1));
++ if (envVariable == "") {
++ std::cout << " Environment variable " << tVar.substr(1,tVar.size()-1)
++ << " is unset " << std::endl;
++ exit(1);
++ }
++ //std::cout << "Environment variable = " << envVariable << std::endl;
++ inputFileContents[i][2] = envVariable;
++ }
++
+ variableMap[inputFileContents[i][1]] = inputFileContents[i][2];
+ for (unsigned int j = i+1; j < inputFileContents.size(); j++) {
+ bool bReplaced = false;
+@@ -813,6 +836,115 @@
+ }
+ }
+
++ else if (inputFileContents[i][0] == "printGroupCharge") {
++ /*!
++ @ingroup MCPB_commands
++ \code
++ Function: printFrag
++
++ Description: Print fragment details
++
++ syntax: printGroupCharge Zn-CCCC
++
++ \endcode
++ */
++ if ((inputFileContents[i].size() != 2) or (!pCollection)) {
++ MTKpp::errorLogger.throwError("MCPB::printGroupCharge", " Incorrect use of printGroupCharge ... exiting", MTK_ERROR);
++ exit(1);
++ }
++ else {
++ stdLibrary* pStdLibrary = pCollection->getStdLibrary();
++ if (pStdLibrary) {
++ stdGroup* pStdGroup = pStdLibrary->getStdGroup(inputFileContents[i][1]);
++ std::cout << " Group " << pStdGroup->getName() << "\n";
++ if (pStdGroup) {
++ molecule* pM = pStdGroup->getStdMolecule();
++ if (pM) {
++ double groupCharge = 0.0;
++ std::vector<submolecule*> pSM = pM->getSubMoleculeList();
++ //std::cout << " Number of submolecules = " << pSM.size() << "\n";
++ for (unsigned int x = 0; x < pSM.size(); x++) {
++ stdFrag* pSF = pStdGroup->getStdFrag(pSM[x]->getName());
++ if (pSF) {
++ std::cout << " " << pSF->getSymbol() << "\n";
++ double fCharge = 0.0;
++ std::vector<atom*> pA = pSM[x]->getAtomList();
++ for (unsigned int y = 0; y < pA.size(); y++) {
++ stdAtom* pSA = pA[y]->getStdAtom();
++ if (pSA) {
++ fCharge += pSA->atmCharge;
++ std::cout << " |" << pSA->identity << "| " << pSA->atmCharge << "\n";
++ }
++ else {
++ std::cout << " Error find std atom " << std::endl;
++ exit(1);
++ }
++ }
++ groupCharge += fCharge;
++ std::cout << " Total Fragment Charge " << pSF->getCharge() << "\n";
++ }
++ }
++ /*std::vector<stdFrag*> pL = pStdGroup->getStdFragList();
++ for (unsigned int x = 0; x < pL.size(); x++) {
++ std::cout << " Fragment " << pL[x]->getSymbol() << "\n";
++ std::vector<stdAtom*> pL2 = pL[x]->getStdAtomList();
++ double fCharge = 0.0;
++ for (unsigned int y = 0; y < pL2.size(); y++) {
++ fCharge += pL2[y]->atmCharge;
++ std::cout << " Atom " << pL2[y]->identity << " " << pL2[y]->atmCharge << "\n";
++ }
++ groupCharge += fCharge;
++ //groupCharge += pL[x]->getCharge();
++ std::cout << " Fragment Charge " << pL[x]->getCharge() << "\n";
++ }
++ */
++
++ std::cout << " Total Charge = " << groupCharge << "\n" << std::endl;
++ }
++ }
++ }
++ }
++ }
++
++ else if (inputFileContents[i][0] == "printFrag") {
++ /*!
++ @ingroup MCPB_commands
++ \code
++ Function: printFrag
++
++ Description: Print fragment details
++
++ syntax: printFrag Zn-CCCC CY1
++
++ \endcode
++ */
++ if ((inputFileContents[i].size() != 3) or (!pCollection)) {
++ MTKpp::errorLogger.throwError("MCPB::printFrag", " Incorrect use of printFrag ... exiting", MTK_ERROR);
++ exit(1);
++ }
++ else {
++ stdLibrary* pStdLibrary = pCollection->getStdLibrary();
++ if (pStdLibrary) {
++ stdGroup* pStdGroup = pStdLibrary->getStdGroup(inputFileContents[i][1]);
++
++ double groupCharge = 0.0;
++ std::vector<stdFrag*> pL = pStdGroup->getStdFragList();
++ for (unsigned int x = 0; x < pL.size(); x++) {
++ groupCharge += pL[x]->getCharge();
++
++ }
++ std::cout << " Group " << inputFileContents[i][1] << " charge = "
++ << groupCharge << std::endl;
++
++ stdFrag* pStdFrag = pStdGroup->getStdFrag(inputFileContents[i][2]);
++ if (pStdFrag) {
++ std::cout << " Fragment " << inputFileContents[i][2] << " charge = "
++ << pStdFrag->getCharge() << std::endl;
++ }
++ }
++ }
++ }
++
+ else if (inputFileContents[i][0] == "readPdb") {
+ /*!
+ @ingroup MCPB_commands
+@@ -2227,7 +2359,8 @@
+ double resCharge = 0.0;
+ for (unsigned int y = 0; y < residueAtoms.size(); y++) {
+ stdAtom* pLStdAtom = residueAtoms[y]->getStdAtom();
+- std::cout << " " << residueAtoms[y]->getName() << " " << residueAtoms[y]->getFileID()
++ std::cout << " "
++ << residueAtoms[y]->getName() << " " << residueAtoms[y]->getFileID()
+ << " " << residueAtoms[y]->getType() << " " << residueAtoms[y]->getValence()
+ << " " << residueAtoms[y]->getHybridization() << " ";
+ if (pLStdAtom) {
+@@ -2437,6 +2570,11 @@
+ molecule* selMol = pSel->getMol();
+ pPdbParser->Write(inputFileContents[i][2], selMol);
+ }
++ else {
++ MTKpp::errorLogger.throwError("MCPB::writePdb",
++ " Error molecule was not selected ... exiting ", MTK_ERROR);
++ exit(1);
++ }
+ }
+ }
+
+@@ -2674,7 +2812,6 @@
+
+ syntax: basisSet GEN bs.txt
+ syntax: basisSet GEN.6D.7F bs.txt
+- syntax: basisSet GENECP bs.txt pseudo.txt
+ \endcode
+ */
+ if (inputFileContents[i].size() == 2) {
+@@ -2685,6 +2822,11 @@
+ pGParser->setBasisSet(inputFileContents[i][1]);
+ pGParser->setBasisSetFile(inputFileContents[i][2]);
+ }
++ else {
++ MTKpp::errorLogger.throwError("MCPB::basisSet",
++ " Incorrect use ... exiting ", MTK_ERROR);
++ exit(1);
++ }
+ }
+
+ else if (inputFileContents[i][0] == "pseudoPotentials") {
+@@ -2698,8 +2840,15 @@
+ syntax: pseudoPotential pseudo.txt
+ \endcode
+ */
+- pGParser->addCommandOption("pseudo","read");
++ if (inputFileContents[i].size() == 2) {
++ pGParser->addCommandOption("Pseudo","Read");
+ pGParser->setPseudoPotentialFile(inputFileContents[i][1]);
++ } else {
++ MTKpp::errorLogger.throwError("MCPB::pseudoPotentials",
++ " Incorrect use ... exiting ", MTK_ERROR);
++ exit(1);
++ }
++
+ }
+
+ else if (inputFileContents[i][0] == "modRedundant") {
+@@ -2713,8 +2862,14 @@
+ syntax: modRedundant modred.txt
+ \endcode
+ */
+- pGParser->addCommandOption("opt","modredundant");
++ if (inputFileContents[i].size() == 2) {
++ pGParser->addCommandOption("Opt","ModRedundant");
+ pGParser->setModRedundantFile(inputFileContents[i][1]);
++ } else {
++ MTKpp::errorLogger.throwError("MCPB::modRedundant",
++ " Incorrect use ... exiting ", MTK_ERROR);
++ exit(1);
++ }
+ }
+
+ else if (inputFileContents[i][0] == "clusterCharge") {
+@@ -2728,7 +2883,13 @@
+ syntax: clusterCharge cuCYM4 -3
+ \endcode
+ */
++ if (inputFileContents[i].size() == 3) {
+ pGParser->setCharge(atoi(inputFileContents[i][2].c_str()));
++ } else {
++ MTKpp::errorLogger.throwError("MCPB::clusterCharge",
++ " Incorrect use ... exiting ", MTK_ERROR);
++ exit(1);
++ }
+ }
+
+ else if (inputFileContents[i][0] == "clusterSpin") {
+@@ -2742,76 +2903,94 @@
+ syntax: clusterSpin 0
+ \endcode
+ */
++ if (inputFileContents[i].size() == 2) {
+ pGParser->setMultiplicity(atoi(inputFileContents[i][1].c_str()));
++ } else {
++ MTKpp::errorLogger.throwError("MCPB::clusterSpin",
++ " Incorrect use ... exiting ", MTK_ERROR);
++ exit(1);
++ }
+ }
+
+- else if (inputFileContents[i][0] == "g03MoldenFormat") {
++ else if (inputFileContents[i][0] == "gaussianMoldenFormat") {
+ /*!
+ @ingroup MCPB_commands
+ \code
+- Function: g03MoldenFormat
++ Function: gaussianMoldenFormat
+
+ Description: Use Molden formatted output in log file. Print out
+ details of the basis set and the molecular orbitals.
+
+- syntax: g03MoldenFormat (bare word)
++ syntax: gaussianMoldenFormat (bare word)
+ \endcode
+ */
+- pGParser->addCommandOption("gfinput");
+- pGParser->addIop("iop(6/7=3)");
++ pGParser->addCommandOption("GFInput");
++ pGParser->addIop("IOp(6/7=3)");
+ }
+
+- else if (inputFileContents[i][0] == "g03Verbosity") {
++ else if (inputFileContents[i][0] == "gaussianVerbosity") {
+ if (inputFileContents[i].size() == 2) {
+ pGParser->setVerbosity(inputFileContents[i][1]);
++ } else {
++ MTKpp::errorLogger.throwError("MCPB::gaussianVerbosity",
++ " Incorrect use ... exiting ", MTK_ERROR);
++ exit(1);
+ }
+ }
+
+- else if (inputFileContents[i][0] == "g03Mem") {
++ else if (inputFileContents[i][0] == "gaussianMem") {
+ /*!
+ @ingroup MCPB_commands
+ \code
+- Function: g03Mem
++ Function: gaussianMem
+
+- Description: Set amount of memory requested for g03
++ Description: Set amount of memory requested for Gaussian
+
+- syntax: g03Mem 3600MB
++ syntax: gaussianMem 3600MB
+ \endcode
+ */
+ if (inputFileContents[i].size() == 2) {
+ pGParser->setMem(inputFileContents[i][1]);
++ } else {
++ MTKpp::errorLogger.throwError("MCPB::gaussianMem",
++ " Incorrect use ... exiting ", MTK_ERROR);
++ exit(1);
+ }
+ }
+
+- else if (inputFileContents[i][0] == "g03nProc") {
++ else if (inputFileContents[i][0] == "gaussianNProc") {
+ /*!
+ @ingroup MCPB_commands
+ \code
+- Function: g03nProc
++ Function: gaussianNProc
+
+- Description: Set number of processors requested for g03
++ Description: Set number of processors requested for Gaussian
+
+- syntax: g03nProc 2
++ syntax: gaussianNProc 2
+ \endcode
+ */
+ if (inputFileContents[i].size() == 2) {
+- pGParser->setnProc(inputFileContents[i][1]);
++ pGParser->setNProc(inputFileContents[i][1]);
++ } else {
++ MTKpp::errorLogger.throwError("MCPB::gaussianNProc",
++ " Incorrect use ... exiting ", MTK_ERROR);
++ exit(1);
+ }
+ }
+
+- else if (inputFileContents[i][0] == "g03OptAndFC") {
++ else if (inputFileContents[i][0] == "gaussianOptAndFC") {
+ /*!
+ @ingroup MCPB_commands
+ \code
+- Function: g03OptAndFC
++ Function: gaussianOptAndFC
+
+ Description: Set Gaussian input name
+
+- syntax: g03OptAndFC //cuCYM4 cuCYM4.com
++ syntax: gaussianOptAndFC //cuCYM4 cuCYM4.com
+ \endcode
+ */
+ if ((inputFileContents[i].size() != 3) or (!pCollection)) {
+- MTKpp::errorLogger.throwError("MCPB::g03OptAndFC",
++ MTKpp::errorLogger.throwError("MCPB::gaussianOptAndFC",
+ " Incorrect use ... exiting ", MTK_ERROR);
+ exit(1);
+ }
+@@ -2819,7 +2998,7 @@
+ selection* pSel = new selection(pCollection);
+ failure = pSel->parse(inputFileContents[i][1]);
+ if (failure) {
+- MTKpp::errorLogger.throwError("MCPB::g03OptAndFC",
++ MTKpp::errorLogger.throwError("MCPB::gaussianOptAndFC",
+ " Error in selection parsing ... exiting ", MTK_ERROR);
+ exit(1);
+ }
+@@ -2833,17 +3012,17 @@
+ pGParser->setCartesian(1);
+ pGParser->setWriteMoleculeName(1);
+ pGParser->setWriteChargeAndMult(1);
+- pGParser->addCommandOption("integral(Grid=UltraFine)");
++ pGParser->addCommandOption("Integral", "(Grid=UltraFine)");
+
+- std::vector<std::string> optOptions = pGParser->getCommandOption("opt");
++ std::vector<std::string> optOptions = pGParser->getCommandOption("Opt");
+ if (optOptions.size() == 0) {
+- pGParser->addCommandOption("opt");
++ pGParser->addCommandOption("Opt");
+ }
+
+- pGParser->addCommandOption("scf", "xqc");
+- pGParser->addCommandOption("geom", "PrintInputOrient");
++ pGParser->addCommandOption("SCF", "XQC");
++ pGParser->addCommandOption("Geom", "PrintInputOrient");
+ pGParser->Write(fileNameBase+"_opt.com", pSelMol);
+- pGParser->removeCommandOption("opt");
++ pGParser->removeCommandOption("Opt");
+
+ // k's
+ // Do not write coordinates, name, charge or multiplicity,
+@@ -2851,40 +3030,40 @@
+ pGParser->setNoCoords();
+ pGParser->setWriteMoleculeName(0);
+ pGParser->setWriteChargeAndMult(0);
+- pGParser->addCommandOption("freq", "noraman");
+- pGParser->addCommandOption("geom", "allcheckpoint");
+- pGParser->addCommandOption("guess", "read");
+- pGParser->addIop("iop(7/33=1)");
++ pGParser->addCommandOption("Freq", "NoRaman");
++ pGParser->addCommandOption("Geom", "AllCheckpoint");
++ pGParser->addCommandOption("Guess", "Read");
++ pGParser->addIop("IOp(7/33=1)");
+ pGParser->Write(fileNameBase+"_fc.com", pSelMol);
+ pGParser->clearIop();
+
+ /*
+ // optimization
+- pGParser->addCommandOption("opt", "z-matrix");
++ pGParser->addCommandOption("Opt", "Z-Matrix");
+ pGParser->generateZMatrix(pSelMol);
+ // [molecule index] = zmatrix index;
+ pGParser->writeMappingFile(fileNameBase+"_zmat.map");
+- pGParser->addCommandOption("geom", "PrintInputOrient");
++ pGParser->addCommandOption("Geom", "PrintInputOrient");
+ pGParser->Write(fileNameBase+"_opt.com", pSelMol);
+- pGParser->removeCommandOption("opt");
++ pGParser->removeCommandOption("Opt");
+ */
+ }
+ }
+ }
+
+- else if (inputFileContents[i][0] == "g03Charges") {
++ else if (inputFileContents[i][0] == "gaussianCharges") {
+ /*!
+ @ingroup MCPB_commands
+ \code
+- Function: g03Charges
++ Function: gaussianCharges
+
+ Description: Set Gaussian input name
+
+- syntax: g03Charges //cuCYM4 cuCYM4.com
++ syntax: gaussianCharges //cuCYM4 cuCYM4.com
+ \endcode
+ */
+ if ((inputFileContents[i].size() != 3) or (!pCollection)) {
+- MTKpp::errorLogger.throwError("MCPB::g03Charges",
++ MTKpp::errorLogger.throwError("MCPB::gaussianCharges",
+ " Incorrect use ... exiting ", MTK_ERROR);
+ exit(1);
+ }
+@@ -2892,7 +3071,7 @@
+ selection* pSel = new selection(pCollection);
+ failure = pSel->parse(inputFileContents[i][1]);
+ if (failure) {
+- MTKpp::errorLogger.throwError("MCPB::g03Charges",
++ MTKpp::errorLogger.throwError("MCPB::gaussianCharges",
+ " Error in selection parsing ... exiting ", MTK_ERROR);
+ exit(1);
+ }
+@@ -2907,14 +3086,14 @@
+
+ // q's
+ std::vector<std::string> popOptions;
+- popOptions.push_back("mk");
+- popOptions.push_back("readradii");
+- pGParser->addCommandOption("pop", popOptions);
+- pGParser->removeCommandOption("freq");
+- pGParser->addIop("iop(6/33=2)");
++ popOptions.push_back("MK");
++ popOptions.push_back("ReadRadii");
++ pGParser->addCommandOption("Pop", popOptions);
++ pGParser->removeCommandOption("Freq");
++ pGParser->addIop("IOp(6/33=2)");
+
+- pGParser->addCommandOption("integral(Grid=UltraFine)");
+- pGParser->addCommandOption("scf", "xqc");
++ pGParser->addCommandOption("Integral", "(Grid=UltraFine)");
++ pGParser->addCommandOption("SCF", "XQC");
+
+ pGParser->Write(fileNameBase+"_mk.com", pSelMol);
+
+@@ -3053,7 +3232,8 @@
+ result = find(bbb.begin(), bbb.end(), dd);
+
+ if (result != bbb.end()) {
+- freezingAtoms += "\n BBB " + submols[s]->getName() + " " + int2String(submols[s]->getSubMolId()) + " " + dd;
++ freezingAtoms += "\n BBB " + submols[s]->getName() + " "
++ + int2String(submols[s]->getSubMolId()) + " " + dd;
+ sprintf(temp,"%5d%10.5f", 1, pStdAtom_a->atmCharge);
+ orespAdd << temp << std::endl;
+ sprintf(temp,"%5d%5d", 1, subAtoms[a]->getIndex());
+@@ -3071,7 +3251,6 @@
+ MTKpp::errorLogger.throwError("MCPB::respgenAdditions",
+ freezingAtoms, INFO);
+ }
+-
+ orespAdd << "\n" << std::endl;
+ orespAdd.close();
+ }
+@@ -3099,22 +3278,22 @@
+ }
+ }
+
+- else if (inputFileContents[i][0] == "readG03Output") {
++ else if (inputFileContents[i][0] == "readGaussianOutput") {
+ /*!
+ @ingroup MCPB_commands
+ \code
+- Function: readG03Output
++ Function: readGaussianOutput
+
+- Description: Read G03 Output
++ Description: Read Gaussian Output
+
+- syntax: readG03Output cuCYM4.log
++ syntax: readGaussianOutput cuCYM4.log
+ \endcode
+ */
+ if ((inputFileContents[i].size() == 2) or (pGParser)) {
+ pGParser->Read(inputFileContents[i][1], pSheet);
+ }
+ else {
+- MTKpp::errorLogger.throwError("MCPB::readG03Output",
++ MTKpp::errorLogger.throwError("MCPB::readGaussianOutput",
+ " Incorrect use ... exiting ", MTK_ERROR);
+ exit(1);
+ }
+@@ -3481,8 +3660,8 @@
+ pGParser->setCartesian(0);
+ pGParser->setWriteMoleculeName(1);
+ pGParser->setWriteChargeAndMult(1);
+- pGParser->addCommandOption("freq", "noraman");
+- pGParser->addIop("iop(7/33=1)");
++ pGParser->addCommandOption("Freq", "NoRaman");
++ pGParser->addIop("IOp(7/33=1)");
+ pGParser->Write(inputFileContents[i][2], pSelMol);
+ pGParser->writeMappingFile(inputFileContents[i][2]+".map");
+ }
+@@ -3826,6 +4005,7 @@
+ if (pStdFrag) {
+ bool doIt = pStdGroup->hasStdFrag(pStdFrag->getSymbol());
+ if (doIt) {
++ //std::cout << " " << pStdFrag->getSymbol() << "\n";
+ //submolecule* pStdSubmol = pStdMolecule->addSubMolecule();
+ //pStdSubmol->copy(submolList[t]);
+ std::vector<atom*> lAtomList = submolList[t]->getAtomList();
+@@ -3834,7 +4014,8 @@
+ if (pStdAtom) {
+ //std::cout << " |" << lAtomList[r]->getName() << "| " << lAtomList[r]->getZcharge() << "\n";
+ pStdAtom->atmCharge = lAtomList[r]->getZcharge();
+- groupCharge += lAtomList[r]->getZcharge();
++ //groupCharge += lAtomList[r]->getZcharge();
++ groupCharge += pStdAtom->atmCharge;
+ }
+ }
+ }
+@@ -3861,11 +4042,398 @@
+ */
+ }
+ updateRespChargesMessage += " Charge: " + double2String(groupCharge, 2);
++ //std::cout << " Group charge = " << double2String(groupCharge, 2) << "\n";
+ MTKpp::errorLogger.throwError("MCPB::updateRespCharges",
+ updateRespChargesMessage, INFO);
+ }
+ }
+
++ else if (inputFileContents[i][0] == "respgen") {
++ /*!
++ @ingroup MCPB_commands
++ \code
++ Function: respgen
++
++ Description: Create resp1 and resp2 files (recreates functionality of respgen)
++
++ syntax: respgen /COL/MOL Group fileName
++ \endcode
++ */
++
++ if ((inputFileContents[i].size() != 4) or (!pCollection)) {
++ MTKpp::errorLogger.throwError("MCPB::respgen",
++ " Incorrect use ... exiting ", MTK_ERROR);
++ exit(1);
++ }
++ else {
++ selection* pSel = new selection(pCollection);
++ failure = pSel->parse(inputFileContents[i][1]);
++ if (failure) {
++ MTKpp::errorLogger.throwError("MCPB::respgen",
++ " Error in selection parsing ... exiting ", MTK_ERROR);
++ exit(1);
++ }
++
++ stdLibrary* pStdLibrary = pCollection->getStdLibrary();
++ stdGroup* pStdGroup = 0;
++ if (pStdLibrary) {
++ pStdGroup = pStdLibrary->getStdGroup(inputFileContents[i][2]);
++ if (!pStdGroup) {
++ MTKpp::errorLogger.throwError("MCPB::respgen",
++ " Can't find stdGroup ... exiting ", MTK_ERROR);
++ exit(1);
++ }
++ }
++ else {
++ MTKpp::errorLogger.throwError("MCPB::respgen",
++ " Error in selection parsing ... exiting ", MTK_ERROR);
++ }
++
++ if (pSel->getSelectionType() == 1) {
++ molecule* pSelMol = pSel->getMol();
++ if (!pSelMol) {
++ std::cout << " Error in respgen selection \n";
++ exit(1);
++ }
++
++ std::vector<std::string>::iterator result;
++
++ acParser* pAcParser = new acParser();
++ pAcParser->Write(inputFileContents[i][3]+".ac", pCollection);
++ delete pAcParser;
++
++ std::string bb0FileResp1 = inputFileContents[i][3] + "_bb0.resp1";
++ std::string bb0FileResp2 = inputFileContents[i][3] + "_bb0.resp2";
++ std::ofstream obb0FileResp1;
++ std::ofstream obb0FileResp2;
++ obb0FileResp1.open(bb0FileResp1.c_str());
++ obb0FileResp2.open(bb0FileResp2.c_str());
++
++ std::string bb1FileResp1 = inputFileContents[i][3] + "_bb1.resp1";
++ std::string bb1FileResp2 = inputFileContents[i][3] + "_bb1.resp2";
++ std::ofstream obb1FileResp1;
++ std::ofstream obb1FileResp2;
++ obb1FileResp1.open(bb1FileResp1.c_str());
++ obb1FileResp2.open(bb1FileResp2.c_str());
++
++ std::string bb2FileResp1 = inputFileContents[i][3] + "_bb2.resp1";
++ std::string bb2FileResp2 = inputFileContents[i][3] + "_bb2.resp2";
++ std::ofstream obb2FileResp1;
++ std::ofstream obb2FileResp2;
++ obb2FileResp1.open(bb2FileResp1.c_str());
++ obb2FileResp2.open(bb2FileResp2.c_str());
++
++ std::string bb3FileResp1 = inputFileContents[i][3] + "_bb3.resp1";
++ std::string bb3FileResp2 = inputFileContents[i][3] + "_bb3.resp2";
++ std::ofstream obb3FileResp1;
++ std::ofstream obb3FileResp2;
++ obb3FileResp1.open(bb3FileResp1.c_str());
++ obb3FileResp2.open(bb3FileResp2.c_str());
++
++ if (!obb0FileResp1 or !obb0FileResp2 or !obb1FileResp1 or !obb1FileResp2 or
++ !obb2FileResp1 or !obb2FileResp2 or !obb3FileResp1 or !obb3FileResp2) {
++ MTKpp::errorLogger.throwError("MCPB::respgen",
++ " Unable to open RESP files ... exiting ", MTK_ERROR);
++ exit(1);
++ }
++
++ std::vector<molecule*> molList = pCollection->getMoleculeList();
++
++ std::string terminalFrags = "";
++ char temp[100];
++ bool bFirst = true;
++ for (unsigned int m = 0; m < molList.size(); m++) {
++ molecule* pMol = molList[m];
++ std::vector<submolecule*> submols = pMol->getSubMoleculeList();
++ for (unsigned int s = 0; s < submols.size(); s++) {
++ if (submols[s]->hasStdFrag()) {
++ stdFrag* pStdFrag = submols[s]->getStdFrag();
++ if (pStdFrag->getParent()->getName() != inputFileContents[i][2]) {
++ if (bFirst) {
++ sprintf(temp,"%5d%10.5f\n", pStdFrag->numStdAtoms(), 0.0);
++ bFirst = false;
++ }
++ else {
++ sprintf(temp,"\n%5d%10.5f\n", pStdFrag->numStdAtoms(), 0.0);
++ }
++
++ terminalFrags += std::string(temp);
++ std::vector<atom*> atomList = submols[s]->getAtomList();
++ char temp2[80];
++ int counter = 0;
++ for (unsigned int a = 0; a < atomList.size(); a++) {
++ if (counter > 7) { // was 6
++ terminalFrags += "\n";
++ counter = 0;
++ }
++ sprintf(temp2,"%5d%5d", 1, atomList[a]->getIndex());
++ terminalFrags += std::string(temp2);
++ counter++;
++ }
++ //terminalFrags += "\n";
++ }
++ }
++ }
++ }
++ //std::cout << terminalFrags << std::endl;
++
++ std::string bb0 = terminalFrags + "\n";
++ std::string bb1 = terminalFrags + "\n";
++ std::string bb2 = terminalFrags + "\n";
++ std::string bb3 = terminalFrags + "\n";
++
++ int lInd = 0;
++ for (unsigned int m = 0; m < molList.size(); m++) {
++ molecule* pMol = molList[m];
++
++ if (pMol->getName() == "Reference") continue;
++
++ std::vector<submolecule*> submols = pMol->getSubMoleculeList();
++ for (unsigned int s = 0; s < submols.size(); s++) {
++ if (submols[s]->hasStdFrag()) {
++ stdFrag* pStdFrag = submols[s]->getStdFrag();
++ //std::cout << " respgen " << pStdFrag->getParent()->getName() << " " << inputFileContents[i][2] << " \n ";
++ if (pStdFrag->getParent()->getName() != inputFileContents[i][2]) continue;
++ std::vector<atom*> subAtoms = submols[s]->getAtomList();
++ for (unsigned int a = 0; a < subAtoms.size(); a++) {
++ stdAtom* pStdAtom_a = subAtoms[a]->getStdAtom();
++ lInd++;
++ // iBB == 1
++ if (pStdAtom_a) {
++ std::string dd = pStdAtom_a->identity + ":" + pStdAtom_a->type;
++
++ //result = find(bb_heavy.begin(), bb_heavy.end(), subAtoms[a]->getName());
++ //result = find(bb_heavy.begin(), bb_heavy.end(), pStdAtom_a->identity);
++ result = find(bb_heavy.begin(), bb_heavy.end(), dd);
++
++ if (result != bb_heavy.end()) {
++ sprintf(temp,"%5d%10.5f\n", 1, pStdAtom_a->atmCharge);
++ //freezingAtoms += "\n BB Heavy " + submols[s]->getName() + " " + int2String(submols[s]->getSubMolId()) + " " + dd;
++ //std::cout << "\n BB Heavy " + submols[s]->getName() + " " + int2String(submols[s]->getSubMolId()) + " " + dd;
++ //std::cout << dd << " " << subAtoms[a]->getName() << " ---> " << subAtoms[a]->getStdAtom()->type << std::endl;
++ //orespAdd << temp << std::endl;
++ bb1 += std::string(temp);
++ sprintf(temp,"%5d%5d\n", 1, subAtoms[a]->getIndex());
++ //orespAdd << temp << std::endl;
++ bb1 += std::string(temp);
++ }
++
++ // iBB == 2
++ dd = pStdAtom_a->identity + ":" + pStdAtom_a->type;
++
++ //result = find(bb.begin(), bb.end(), subAtoms[a]->getName());
++ result = find(bb.begin(), bb.end(), dd);
++
++ if (result != bb.end()) {
++ //freezingAtoms += "\n BB " + submols[s]->getName() + " " + int2String(submols[s]->getSubMolId()) + " " + dd;
++ sprintf(temp,"%5d%10.5f\n", 1, pStdAtom_a->atmCharge);
++ //orespAdd << temp << std::endl;
++ bb2 += std::string(temp);
++ sprintf(temp,"%5d%5d\n", 1, subAtoms[a]->getIndex());
++ //orespAdd << temp << std::endl;
++ bb2 += std::string(temp);
++ }
++ // iBB == 3
++ dd = pStdAtom_a->identity + ":" + pStdAtom_a->type;
++
++ //result = find(bbb.begin(), bbb.end(), subAtoms[a]->getName());
++ result = find(bbb.begin(), bbb.end(), dd);
++
++ if (result != bbb.end()) {
++ //freezingAtoms += "\n BBB " + submols[s]->getName() + " "
++ // + int2String(submols[s]->getSubMolId()) + " " + dd;
++ sprintf(temp,"%5d%10.5f\n", 1, pStdAtom_a->atmCharge);
++ bb3 += std::string(temp);
++ //orespAdd << temp << std::endl;
++ sprintf(temp,"%5d%5d\n", 1, subAtoms[a]->getIndex());
++ bb3 += std::string(temp);
++ //orespAdd << temp << std::endl;
++ }
++ }
++ else {
++ MTKpp::errorLogger.throwError("MCPB::respgen",
++ " Unknown option ... exiting ", MTK_ERROR);
++ }
++ }
++ }
++ }
++ }
++
++ std::string resp1 = "";
++ resp1 += "Resp charges for organic molecule\n";
++ resp1 += "\n";
++ resp1 += " &cntrl\n";
++ resp1 += "\n";
++ resp1 += " nmol = 1,\n";
++ resp1 += " ihfree = 1,\n";
++ resp1 += " ioutopt = 1,\n";
++ resp1 += "\n";
++ resp1 += " &end\n";
++ resp1 += " 1.0\n";
++ resp1 += "Resp charges for organic molecule\n";
++
++ //std::cout << pStdGroup->getCharge() << " " << pSelMol->getNumAtoms() << std::endl;
++ sprintf(temp,"%5d%5d\n", int(pStdGroup->getCharge()), pSelMol->getNumAtoms());
++ resp1 += std::string(temp);
++
++ std::vector<submolecule*> sList = pSelMol->getSubMoleculeList();
++ typedef std::map<std::string, int>::iterator mapIterator;
++
++ std::map<std::string, int> lMap;
++ int ind = 0;
++ for (unsigned int p = 0; p < sList.size(); p++) {
++ std::vector<atom*> aList = sList[p]->getAtomList();
++ for (unsigned int a = 0; a < aList.size(); a++) {
++ if (!aList[a]->getStdAtom()) {
++ std::cout << " Error ... exiting()\n";
++ exit(1);
++ }
++ int elNum = aList[a]->getAtomicNum();
++ std::string key = "";
++ if (elNum == 1) {
++ std::vector<atom*> hBondedAtoms = aList[a]->getBondedAtoms();
++ if (hBondedAtoms.size() == 1) {
++ key = aList[a]->getParent()->getName() + ":" + hBondedAtoms[0]->getName() + ":" + aList[a]->getStdAtom()->type;
++ }
++ else {
++ key = aList[a]->getParent()->getName() + ":" + aList[a]->getStdAtom()->type;
++ }
++ }
++ else {
++ key = aList[a]->getParent()->getName() + ":" + aList[a]->getName();
++ }
++
++ mapIterator mi = lMap.find(key);
++
++ int fg = 0;
++ if (mi != lMap.end()){
++ fg = lMap[key]+1;
++ }
++ else {
++ lMap[key] = ind;
++ }
++ //sprintf(temp,"%4d %-11s%5d%5d\n", ind+1, key.c_str(), aList[a]->getAtomicNum(), fg);
++ sprintf(temp,"%5d%5d\n", aList[a]->getAtomicNum(), fg);
++ resp1 += std::string(temp);
++ ind++;
++ }
++ }
++
++ std::string resp2 = "";
++
++ resp2 += "Resp charges for organic molecule\n";
++ resp2 += "\n";
++ resp2 += " &cntrl\n";
++ resp2 += "\n";
++ resp2 += " nmol = 1,\n";
++ resp2 += " ihfree = 1,\n";
++ resp2 += " ioutopt = 1,\n";
++ resp2 += " iqopt = 2,\n";
++ resp2 += " qwt = 0.001,\n";
++ resp2 += "\n";
++ resp2 += " &end\n";
++ resp2 += " 1.0\n";
++ resp2 += "Resp charges for organic molecule\n";
++
++ sprintf(temp,"%5d%5d\n", int(pStdGroup->getCharge()), pSelMol->getNumAtoms());
++ resp2 += std::string(temp);
++
++ ind = 0;
++ std::map<std::string, int> lMap2;
++
++ for (unsigned int p = 0; p < sList.size(); p++) {
++ std::vector<atom*> aList = sList[p]->getAtomList();
++ for (unsigned int a = 0; a < aList.size(); a++) {
++
++ if (!aList[a]->getStdAtom()) {
++ std::cout << " Error ... exiting()\n";
++ exit(1);
++ }
++ int elNum = aList[a]->getAtomicNum();
++ std::string key = "";
++ if (elNum == 1) {
++ std::vector<atom*> hBondedAtoms = aList[a]->getBondedAtoms();
++ if (hBondedAtoms.size() == 1) {
++ key = aList[a]->getParent()->getName() + ":" + hBondedAtoms[0]->getName() + ":" +
++ aList[a]->getStdAtom()->type;
++ }
++ else {
++ key = aList[a]->getParent()->getName() + ":" + aList[a]->getStdAtom()->type;
++ }
++ }
++ else {
++ key = aList[a]->getParent()->getName() + ":" + aList[a]->getName();
++ }
++
++ mapIterator mi = lMap2.find(key);
++
++ int fg = 0;
++ if (mi != lMap2.end()){
++ fg = lMap2[key]+1;
++ }
++ else {
++ lMap2[key] = ind;
++ }
++ std::string atName = aList[a]->getName();
++ std::string atType = aList[a]->getStdAtom()->type;
++ int atNum = aList[a]->getAtomicNum();
++
++ if (atName == " CH3" or atName == " CB " or containsSubStr(key, " CB :H1") or
++ containsSubStr(key, " CB :HC") or
++ containsSubStr(key, " CH3:HC") or containsSubStr(key, " CH3:H1") or
++ containsSubStr(key, "GLY: CA ")) {// or (atNum > 16)) {
++ //if (atName == " CH3" or atName == " CB " or atType == "H1" or atType == "HC") {
++ //sprintf(temp,"%4d %-11s%5d%5d\n", ind+1, key.c_str(), aList[a]->getAtomicNum(), fg);
++ sprintf(temp,"%5d%5d\n", aList[a]->getAtomicNum(), fg);
++ }
++ else {
++ //sprintf(temp,"%4d %-11s%5d%5d\n", ind+1, key.c_str(), aList[a]->getAtomicNum(), -99);
++ sprintf(temp,"%5d%5d\n", aList[a]->getAtomicNum(), -99);
++ }
++ resp2 += std::string(temp);
++
++ ind++;
++ }
++ }
++
++ std::string twoBlankLine = "\n\n";
++ bb0 += twoBlankLine;
++ bb1 += twoBlankLine;
++ bb2 += twoBlankLine;
++ bb3 += twoBlankLine;
++
++ obb0FileResp1 << resp1;
++ obb0FileResp1 << bb0;
++ obb0FileResp2 << resp2;
++ obb0FileResp2 << bb0;
++
++ obb1FileResp1 << resp1;
++ obb1FileResp1 << bb1;
++ obb1FileResp2 << resp2;
++ obb1FileResp2 << bb1;
++
++ obb2FileResp1 << resp1;
++ obb2FileResp1 << bb2;
++ obb2FileResp2 << resp2;
++ obb2FileResp2 << bb2;
++
++ obb3FileResp1 << resp1;
++ obb3FileResp1 << bb3;
++ obb3FileResp2 << resp2;
++ obb3FileResp2 << bb3;
++
++ obb0FileResp1.close();
++ obb0FileResp2.close();
++ obb1FileResp1.close();
++ obb1FileResp2.close();
++ obb2FileResp1.close();
++ obb2FileResp2.close();
++ obb3FileResp1.close();
++ obb3FileResp2.close();
++ }
++ }
++ }
++
+ else if (inputFileContents[i][0] == "addStdMol") {
+ /*!
+ @ingroup MCPB_commands
+@@ -4496,63 +5064,63 @@
+ table<double>* nmodeEVectors = pSheet->getTable("NMode EigenVectors");
+ ublas::matrix<double> &nmodeEVectorsMatrixT = nmodeEVectors->getMatrix();
+
+- table<double>* g03EValues = pSheet->getTable("Gaussian EigenValues");
+- ublas::matrix<double> &g03EValuesMatrix = g03EValues->getMatrix();
++ table<double>* gaussianEValues = pSheet->getTable("Gaussian EigenValues");
++ ublas::matrix<double> &gaussianEValuesMatrix = gaussianEValues->getMatrix();
+
+- table<double>* g03EVectors = pSheet->getTable("Gaussian EigenVectors");
+- ublas::matrix<double> &g03EVectorsMatrixT = g03EVectors->getMatrix();
++ table<double>* gaussianEVectors = pSheet->getTable("Gaussian EigenVectors");
++ ublas::matrix<double> &gaussianEVectorsMatrixT = gaussianEVectors->getMatrix();
+
+ int nRowsNMode = nmodeEValues->getNumRows();
+- int nRowsG03 = g03EValues->getNumRows();
++ int nRowsGaussian = gaussianEValues->getNumRows();
+
+ int nColsNMode = nmodeEVectors->getNumColumns();
+- int nColsG03 = g03EVectors->getNumColumns();
++ int nColsGaussian = gaussianEVectors->getNumColumns();
+
+- if (nRowsNMode != nRowsG03 and nColsNMode != nColsG03) {
++ if (nRowsNMode != nRowsGaussian and nColsNMode != nColsGaussian) {
+ std::cout << " PROBLEM " << std::endl;
+ }
+ else {
+ std::cout << " EIGENVALUES " << std::endl;
+ for (int z = 0; z < nRowsNMode; z++) {
+- std::cout << nmodeEValuesMatrix(z, 0) << " " << g03EValuesMatrix(z, 0) << std::endl;
++ std::cout << nmodeEValuesMatrix(z, 0) << " " << gaussianEValuesMatrix(z, 0) << std::endl;
+ }
+
+ //std::cout << " NMODE " << std::endl;
+ //nmodeEVectors->printMatrix();
+
+- //std::cout << " G03 " << std::endl;
+- //g03EVectors->printMatrix();
++ //std::cout << " Gaussian " << std::endl;
++ //gaussianEVectors->printMatrix();
+ //std::cout << " \n\n " << std::endl;
+
+ // Normalize Eigenvector matrices
+ for (int zi = 0; zi < nRowsNMode; zi++) {
+ double normNMode = 0.0;
+- double normG03 = 0.0;
++ double normGaussian = 0.0;
+ for (int zk = 0; zk < nColsNMode; zk++) {
+ normNMode += (nmodeEVectorsMatrixT(zi, zk) * nmodeEVectorsMatrixT(zi, zk));
+- normG03 += (g03EVectorsMatrixT(zi, zk) * g03EVectorsMatrixT(zi, zk));
++ normGaussian += (gaussianEVectorsMatrixT(zi, zk) * gaussianEVectorsMatrixT(zi, zk));
+ }
+ normNMode = sqrt(normNMode);
+- normG03 = sqrt(normG03);
++ normGaussian = sqrt(normGaussian);
+ for (int zk = 0; zk < nColsNMode; zk++) {
+- //std::cout << g03EVectorsMatrixT(zi, zk) << " " << normG03 << " "
+- // << g03EVectorsMatrixT(zi, zk) / normG03 << " ";
++ //std::cout << gaussianEVectorsMatrixT(zi, zk) << " " << normGaussian << " "
++ // << gaussianEVectorsMatrixT(zi, zk) / normGaussian << " ";
+ double newValue1 = nmodeEVectorsMatrixT(zi, zk) / normNMode;
+- double newValue2 = g03EVectorsMatrixT(zi, zk) / normG03;
++ double newValue2 = gaussianEVectorsMatrixT(zi, zk) / normGaussian;
+ nmodeEVectors->setCellValue(zi, zk, newValue1);
+- g03EVectors->setCellValue(zi, zk, newValue2);
+- //std::cout << g03EVectors->getCellValue(zi, zk) << std::endl;
++ gaussianEVectors->setCellValue(zi, zk, newValue2);
++ //std::cout << gaussianEVectors->getCellValue(zi, zk) << std::endl;
+ }
+ }
+
+ ublas::matrix<double> &nmodeEVectorsMatrix = nmodeEVectors->getMatrix();
+- ublas::matrix<double> &g03EVectorsMatrix = g03EVectors->getMatrix();
++ ublas::matrix<double> &gaussianEVectorsMatrix = gaussianEVectors->getMatrix();
+
+ //std::cout << " NMODE " << std::endl;
+ //nmodeEVectors->printMatrix();
+
+- //std::cout << " G03 " << std::endl;
+- //g03EVectors->printMatrix();
++ //std::cout << " Gaussian " << std::endl;
++ //gaussianEVectors->printMatrix();
+ //std::cout << " \n\n " << std::endl;
+
+ // dot product
+@@ -4563,12 +5131,12 @@
+ double eN2 = 0.0;
+ double dff = 0.0;
+ for (int zi = 0; zi < nRowsNMode; zi++) { // NMode
+- for (int zj = 0; zj < nRowsNMode; zj++) { // G03
++ for (int zj = 0; zj < nRowsNMode; zj++) { // Gaussian
+ for (int zk = 0; zk < nColsNMode; zk++) { // Loop over coordinates in Eigenvector
+- //std::cout << nmodeEVectorsMatrix(zi, zk) << " " << g03EVectorsMatrix(zj, zk) << " ";
++ //std::cout << nmodeEVectorsMatrix(zi, zk) << " " << gaussianEVectorsMatrix(zj, zk) << " ";
+ eN += (nmodeEVectorsMatrix(zi, zk) * nmodeEVectorsMatrix(zi, zk));
+- eN2 += (g03EVectorsMatrix(zj, zk) * g03EVectorsMatrix(zj, zk));
+- dotProduct += (nmodeEVectorsMatrix(zi, zk) * g03EVectorsMatrix(zj, zk));
++ eN2 += (gaussianEVectorsMatrix(zj, zk) * gaussianEVectorsMatrix(zj, zk));
++ dotProduct += (nmodeEVectorsMatrix(zi, zk) * gaussianEVectorsMatrix(zj, zk));
+ }
+ //std::cout << " eN = " << sqrt(eN) << " eN2 = " << sqrt(eN2) << " ";
+ std::cout << zi << " - " << zj << " " << dotProduct << " " << dotProductMax << std::endl;
+@@ -4582,11 +5150,11 @@
+ }
+ dotProduct = 0.0;
+ }
+- double dffL = nmodeEValuesMatrix(zi, 0) - g03EValuesMatrix(dotProductMaxIndex, 0);
++ double dffL = nmodeEValuesMatrix(zi, 0) - gaussianEValuesMatrix(dotProductMaxIndex, 0);
+ dffL *= dffL;
+ std::cout << " nmode index = " << zi << " BestMatch = " << dotProductMaxIndex
+ << " => dotProduct =" << dotProductMax << " EVALUES: "
+- << " " << nmodeEValuesMatrix(zi, 0) << " " << g03EValuesMatrix(dotProductMaxIndex, 0) << " "
++ << " " << nmodeEValuesMatrix(zi, 0) << " " << gaussianEValuesMatrix(dotProductMaxIndex, 0) << " "
+ << dffL
+ << std::endl;
+
+@@ -4617,7 +5185,7 @@
+ }
+
+ else {
+- std::string unknownCommand = " Unknown command " + inputFileContents[i][0];
++ std::string unknownCommand = " Unknown command: \"" + inputFileContents[i][0] + "\"";
+ MTKpp::errorLogger.throwError("MCPB", unknownCommand, MTK_ERROR);
+ }
+ }
+@@ -4628,4 +5196,3 @@
+ delete pSheet;
+ return 0;
+ }
+-
+diff -urN amber11.orig/AmberTools/src/mtkpp/tools/prep2xml.cpp amber11/AmberTools/src/mtkpp/tools/prep2xml.cpp
+--- amber11.orig/AmberTools/src/mtkpp/tools/prep2xml.cpp 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/tools/prep2xml.cpp 2012-03-03 20:03:01.418032565 +0200
+@@ -86,6 +86,7 @@
+ clo->addUsage( " -a log file " );
+ clo->addUsage( " -l hybridize name \n" );
+ clo->addUsage( " flags: " );
++ clo->addUsage( " -c convert only " );
+ clo->addUsage( " -h help \n" );
+
+ // 4. SET THE OPTION STRINGS/CHARACTERS
+@@ -97,6 +98,7 @@
+ clo->setOption( "hyb", 'l' );
+ clo->setOption( "log", 'a' );
+
++ clo->setFlag ( "convert", 'c' );
+ clo->setFlag ( "help", 'h' );
+
+ // 5. PROVIDE THE COMMANDLINE
+@@ -117,6 +119,11 @@
+ std::string fragName = "";
+ std::string molName = "";
+ std::string logFile = "";
++ bool bConvertOnly = 0;
++
++ if ( clo->getFlag( "convert" ) || clo->getFlag( 'c' ) ) {
++ bConvertOnly = 1;
++ }
+
+ std::string AMBERHOME = getenv("AMBERHOME");
+ std::string parametersFile = AMBERHOME + "/dat/mtkpp/hybridize/labute.txt";
+@@ -166,13 +173,13 @@
+ else if ( clo->getValue( "frag" ) != 0 ) {
+ fragName = clo->getValue( "frag" );
+ }
+- else {
++/* else {
+ printHeader(std::cout, prog_name, authors);
+ clo->printUsage();
+ std::cout << " Please provide a fragment name " << std::endl;
+ return 0;
+ }
+-
++*/
+ if ( clo->getValue( "l" ) != 0 ) {
+ parametersFile = clo->getValue( "l" );
+ }
+@@ -186,13 +193,14 @@
+ else if ( clo->getValue( "mol" ) != 0 ) {
+ molName = clo->getValue( "mol" );
+ }
++/*
+ else {
+ printHeader(std::cout, prog_name, authors);
+ clo->printUsage();
+ std::cout << " Please provide a molecule name " << std::endl;
+ return 0;
+ }
+-
++*/
+ if ( clo->getValue( "a" ) != 0 ) {
+ logFile = clo->getValue( "a" );
+ }
+@@ -307,6 +315,22 @@
+ std::cout << " Incorrect use of prep2xml " << std::endl;
+ exit(1);
+ }
++
++ /////////
++ if (fragName == "") {
++ prepParser* pPrepParser = new prepParser();
++ pPrepParser->Read(prepFile, pStdGroup);
++ delete pPrepParser;
++
++ pStdLibParser->Write(libXmlFile, groupName);
++ delete pStdLibParser;
++
++ // - Clean up - //
++ delete pCollection;
++ return 0;
++ }
++ ///////////
++
+ stdFrag* pStdFrag = pStdGroup->addStdFrag();
+ if (!pStdFrag) {
+ std::cout << " Incorrect use of prep2xml " << std::endl;
+@@ -322,6 +346,15 @@
+ pPrepParser->Read(prepFile, pStdFrag);
+ delete pPrepParser;
+
++ if (bConvertOnly) {
++ pStdLibParser->Write(libXmlFile, groupName);
++ delete pStdLibParser;
++
++ // - Clean up - //
++ delete pCollection;
++ return 0;
++ }
++
+ int f = pStdFrag->generateCoordinates();
+ if (f) {
+ std::cout << " Incorrect use of prep2xml " << std::endl;
+@@ -443,7 +476,7 @@
+ // atoms
+ for (unsigned int i = 0; i < atomList.size(); i++) {
+ stdAtoms[i]->kind = atomList[i]->getType();
+- std::cout << atomList[i]->getIndex() << " " << atomList[i]->getName() << " " << atomList[i]->getType() << std::endl;
++ //std::cout << atomList[i]->getIndex() << " " << atomList[i]->getName() << " " << atomList[i]->getType() << std::endl;
+ }
+
+ // bonds
+diff -urN amber11.orig/AmberTools/src/mtkpp/tools/stdLib2Sdf.cpp amber11/AmberTools/src/mtkpp/tools/stdLib2Sdf.cpp
+--- amber11.orig/AmberTools/src/mtkpp/tools/stdLib2Sdf.cpp 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/mtkpp/tools/stdLib2Sdf.cpp 2012-03-03 20:03:01.418032565 +0200
+@@ -42,6 +42,9 @@
+ // - COMMAND LINE OPTIONS
+ #include "Parsers/commLineOptions.h"
+
++// - Log
++#include "Log/errorHandler.h"
++
+ // temp
+ #include "time.h"
+
+@@ -174,7 +177,7 @@
+ }
+
+ // Set errorLog stream to the log file
+- //MTKpp::errorLogger.setStream(&oLog);
++ MTKpp::errorLogger.setStream(&oLog);
+
+ // Print MTK++ copyright message
+ printHeader(oLog, prog_name, authors);
+diff -urN amber11.orig/AmberTools/src/pbsa/pb_list.f amber11/AmberTools/src/pbsa/pb_list.f
+--- amber11.orig/AmberTools/src/pbsa/pb_list.f 2011-04-14 15:30:19.000000000 +0300
++++ amber11/AmberTools/src/pbsa/pb_list.f 2012-03-03 20:02:55.131034376 +0200
+@@ -949,7 +949,7 @@
+ ymin == ZERO .and. ymax == ZERO .and. &
+ zmin == ZERO .and. zmax == ZERO ) newbox = .true.
+
+- if ( newbox ) then
++ if ( .not. ligand ) then
+ if ( ifcap == 0 .or. ifcap == 5 ) then
+ xmin = 9999.0; ymin = 9999.0; zmin = 9999.0
+ xmax = -9999.0; ymax = -9999.0; zmax = -9999.0
+diff -urN amber11.orig/AmberTools/src/rism/safemem.f amber11/AmberTools/src/rism/safemem.f
+--- amber11.orig/AmberTools/src/rism/safemem.f 2012-03-03 22:43:02.986777264 +0200
++++ amber11/AmberTools/src/rism/safemem.f 2012-03-03 20:02:52.131035237 +0200
+@@ -62,7 +62,7 @@
+ !BYTES_PER_KILOBYTES :: used to convert between bytes and KB
+ integer*8,parameter :: BYTES_PER_KB = 1024**1
+
+- type(memTracker),private :: totalMem
++ type(memTracker),save,private :: totalMem
+
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2012-03-03 22:11 Reinis Danne
0 siblings, 0 replies; 18+ messages in thread
From: Reinis Danne @ 2012-03-03 22:11 UTC (permalink / raw
To: gentoo-commits
commit: 6e85ac6190aef7fb4919df1878bfd262265d10d9
Author: Reinis Danne <rei4dan <AT> gmail <DOT> com>
AuthorDate: Sat Mar 3 22:10:39 2012 +0000
Commit: Reinis Danne <rei4dan <AT> gmail <DOT> com>
CommitDate: Sat Mar 3 22:10:39 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=6e85ac61
sci-chemistry/ambertools: Add another buffer overflow patch
---
sci-chemistry/ambertools/ChangeLog | 4 ++
sci-chemistry/ambertools/ambertools-1.5-r3.ebuild | 3 +-
.../ambertools/files/ambertools-1.5-overflow.patch | 30 ++++++++++++++++++++
3 files changed, 36 insertions(+), 1 deletions(-)
diff --git a/sci-chemistry/ambertools/ChangeLog b/sci-chemistry/ambertools/ChangeLog
index 0945272..09fcfa6 100644
--- a/sci-chemistry/ambertools/ChangeLog
+++ b/sci-chemistry/ambertools/ChangeLog
@@ -2,6 +2,10 @@
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ambertools/ChangeLog,v 1.2 2011/08/02 14:42:37 alexxy Exp $
+ 03 Mar 2012; Reinis Danne <rei4dan@gmail.com> ambertools-1.5-r3.ebuild,
+ +files/ambertools-1.5-overflow.patch:
+ Add another buffer overflow patch.
+
*ambertools-1.5-r3 (03 Mar 2012)
03 Mar 2012; Reinis Danne <rei4dan@gmail.com> +ambertools-1.5-r3.ebuild,
diff --git a/sci-chemistry/ambertools/ambertools-1.5-r3.ebuild b/sci-chemistry/ambertools/ambertools-1.5-r3.ebuild
index bebf36c..44bd059 100644
--- a/sci-chemistry/ambertools/ambertools-1.5-r3.ebuild
+++ b/sci-chemistry/ambertools/ambertools-1.5-r3.ebuild
@@ -53,7 +53,8 @@ src_prepare() {
epatch \
"${FILESDIR}/${P}-bugfix_1-21.patch" \
"${FILESDIR}/${P}-bugfix_22-27.patch" \
- "${FILESDIR}/${P}-gentoo2.patch"
+ "${FILESDIR}/${P}-gentoo2.patch" \
+ "${FILESDIR}/${P}-overflow.patch"
cd "${S}"/AmberTools/src
rm -r \
arpack \
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-overflow.patch b/sci-chemistry/ambertools/files/ambertools-1.5-overflow.patch
new file mode 100644
index 0000000..14455f1
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-1.5-overflow.patch
@@ -0,0 +1,30 @@
+diff -urN amber11.orig/AmberTools/src/nab/database.c amber11/AmberTools/src/nab/database.c
+--- amber11.orig/AmberTools/src/nab/database.c 2011-03-10 20:12:15.000000000 +0200
++++ amber11/AmberTools/src/nab/database.c 2012-03-03 23:59:25.225368331 +0200
+@@ -671,7 +671,7 @@
+
+ static Bool zbDBReadLine( db, sLine )
+ DATABASE db;
+-char* sLine;
++char sLine[MAXDATALINELEN];
+ {
+
+
+@@ -706,7 +706,7 @@
+
+ static Bool zbDBReadDataLine( db, sLine )
+ DATABASE db;
+-char* sLine;
++char sLine[MAXDATALINELEN];
+ {
+
+
+@@ -1135,7 +1135,7 @@
+ char* PBuffer;
+ int iBufferInc;
+ {
+-String sLine;
++String sLine[MAXDATALINELEN];
+
+
+
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2012-08-28 16:53 Reinis Danne
0 siblings, 0 replies; 18+ messages in thread
From: Reinis Danne @ 2012-08-28 16:53 UTC (permalink / raw
To: gentoo-commits
commit: 7f1c9ec1806f79a26cb7e62a41be34d3c5677b9e
Author: Reinis Danne <rei4dan <AT> gmail <DOT> com>
AuthorDate: Tue Aug 28 12:13:42 2012 +0000
Commit: Reinis Danne <rei4dan <AT> gmail <DOT> com>
CommitDate: Tue Aug 28 16:51:36 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=7f1c9ec1
ambertools: Add bugfix 28
---
sci-chemistry/ambertools/ChangeLog | 6 +
sci-chemistry/ambertools/ambertools-1.5-r4.ebuild | 159 ++++++++++++++++++++
.../files/ambertools-1.5-bugfix_28.patch | 23 +++
3 files changed, 188 insertions(+), 0 deletions(-)
diff --git a/sci-chemistry/ambertools/ChangeLog b/sci-chemistry/ambertools/ChangeLog
index 09fcfa6..6e9d91d 100644
--- a/sci-chemistry/ambertools/ChangeLog
+++ b/sci-chemistry/ambertools/ChangeLog
@@ -2,6 +2,12 @@
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ambertools/ChangeLog,v 1.2 2011/08/02 14:42:37 alexxy Exp $
+*ambertools-1.5-r4 (28 Aug 2012)
+
+ 28 Aug 2012; Reinis Danne <rei4dan@gmail.com> +ambertools-1.5-r4.ebuild,
+ +files/ambertools-1.5-bugfix_28.patch:
+ Add bugfix 28.
+
03 Mar 2012; Reinis Danne <rei4dan@gmail.com> ambertools-1.5-r3.ebuild,
+files/ambertools-1.5-overflow.patch:
Add another buffer overflow patch.
diff --git a/sci-chemistry/ambertools/ambertools-1.5-r4.ebuild b/sci-chemistry/ambertools/ambertools-1.5-r4.ebuild
new file mode 100644
index 0000000..d689579
--- /dev/null
+++ b/sci-chemistry/ambertools/ambertools-1.5-r4.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ambertools/ambertools-1.5-r1.ebuild,v 1.2 2011/08/02 14:42:37 alexxy Exp $
+
+EAPI=4
+
+inherit eutils fortran-2 toolchain-funcs
+
+DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
+HOMEPAGE="http://ambermd.org/#AmberTools"
+SRC_URI="
+ AmberTools-${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="openmp X"
+
+RESTRICT="fetch"
+
+RDEPEND="
+ virtual/cblas
+ virtual/lapack
+ sci-libs/clapack
+ sci-libs/arpack
+ sci-libs/cifparse-obj
+ sci-chemistry/mopac7
+ sci-libs/netcdf
+ sci-libs/fftw:2.1
+ sci-chemistry/reduce
+ virtual/fortran"
+DEPEND="${RDEPEND}
+ dev-util/byacc
+ dev-libs/libf2c
+ sys-devel/ucpp"
+S="${WORKDIR}/amber11"
+
+pkg_nofetch() {
+ einfo "Go to ${HOMEPAGE} and get ${A}"
+ einfo "Place it in ${DISTDIR}"
+}
+
+pkg_setup() {
+ fortran-2_pkg_setup
+ if use openmp; then
+ tc-has-openmp || \
+ die "Please select an openmp capable compiler like gcc[openmp]"
+ fi
+ AMBERHOME="${S}"
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${P}-bugfix_1-21.patch" \
+ "${FILESDIR}/${P}-bugfix_22-27.patch" \
+ "${FILESDIR}/${P}-bugfix_28.patch" \
+ "${FILESDIR}/${P}-gentoo2.patch" \
+ "${FILESDIR}/${P}-overflow.patch"
+ cd "${S}"/AmberTools/src
+ rm -r \
+ arpack \
+ blas \
+ byacc \
+ lapack \
+ fftw-2.1.5 \
+ fftw-3.2.2 \
+ c9x-complex \
+ cifparse \
+ netcdf \
+ pnetcdf \
+ reduce \
+ ucpp-1.3 \
+ || die
+}
+
+src_configure() {
+ cd "${S}"/AmberTools/src
+ sed -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
+ -e "s:\\\\\$(LIBDIR)/lapack.a:$(pkg-config lapack --libs) -lclapack:g" \
+ -e "s:\\\\\$(LIBDIR)/blas.a:$(pkg-config blas cblas --libs):g" \
+ -e "s:\\\\\$(LIBDIR)/libdrfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
+ -e "s:\\\\\$(LIBDIR)/libdfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
+ -e "s:GENTOO_CFLAGS:${CFLAGS} -DBINTRAJ :g" \
+ -e "s:GENTOO_CXXFLAGS:${CXXFLAGS}:g" \
+ -e "s:GENTOO_FFLAGS:${FFLAGS}:g" \
+ -e "s:GENTOO_LDFLAGS:${LDFLAGS}:g" \
+ -e "s:fc=g77:fc=$(tc-getFC):g" \
+ -e "s:\$netcdflib:$(pkg-config netcdf --libs):g" \
+ -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
+ -i configure || die
+ sed -e "s:arsecond_:arscnd_:g" \
+ -i sff/time.c \
+ -i sff/sff.h \
+ -i sff/sff.c || die
+ sed -e "s:\$(NAB):\$(NAB) -lrfftw:g" \
+ -i nss/Makefile || die
+
+ local myconf
+
+ use X || myconf="${myconf} -noX11"
+
+ use openmp && myconf="${myconf} -openmp"
+
+ ./configure \
+ ${myconf} \
+ -nobintraj \
+ -nomdgx \
+ -nomtkpp \
+ -nopython \
+ -nosleap \
+ gnu
+}
+
+src_compile() {
+ cd "${S}"/AmberTools/src
+ emake || die
+}
+
+src_test() {
+ cd "${S}"/AmberTools/test
+ make test || die
+}
+
+src_install() {
+ rm -r bin/chemistry bin/MMPBSA_mods
+ rm bin/ante-MMPBSA.py bin/extractFrcmod.py
+
+ for x in bin/*
+ do dobin ${x} || die
+ done
+
+ dobin AmberTools/src/antechamber/mopac.sh
+ sed -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
+ -i "${ED}/usr/bin/mopac.sh" || die
+
+ # Make symlinks untill binpath for amber will be fixed
+ dodir /usr/share/${PN}/bin
+ cd "${ED}/usr/bin"
+ for x in *
+ do dosym /usr/bin/${x} /usr/share/${PN}/bin/${x}
+ done
+ cd "${S}"
+
+ dodoc doc/AmberTools.pdf doc/leap_pg.pdf
+ dolib.a lib/*
+ insinto /usr/include/${PN}
+ doins include/*
+ insinto /usr/share/${PN}
+ doins -r dat
+ cd AmberTools
+ doins -r benchmarks
+ doins -r examples
+ doins -r test
+
+ cat >> "${T}"/99ambertools <<- EOF
+ AMBERHOME="${EPREFIX}/usr/share/ambertools"
+ EOF
+ doenvd "${T}"/99ambertools
+}
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_28.patch b/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_28.patch
new file mode 100644
index 0000000..f186f33
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_28.patch
@@ -0,0 +1,23 @@
+diff -urN amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py amber11/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py
+--- amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py 2012-08-28 13:38:00.864249769 +0300
++++ amber11/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py 2012-08-28 13:39:15.141238742 +0300
+@@ -2311,7 +2311,7 @@
+ def _tot_stdevs(self):
+ """ Returns the standard deviations of the total based on whether or not we were able to
+ calculate all frames or not. Use a sample stdev if we were, sum-of-squares if we weren't """
+- if len(self.com_data) != len(self.rec_data) or len(self.com_data) != len(self.lig_data):
++ if len(self.com_data[0]) != len(self.rec_data[0]) or len(self.com_data[0]) != len(self.lig_data[0]):
+ return math.sqrt(abs(_stdev(self.com_data[0]) ** 2 + _stdev(self.rec_data[0]) ** 2 + _stdev(self.lig_data[0]) ** 2))
+
+ sum = sum2 = 0
+@@ -2319,8 +2319,8 @@
+ sum += self.com_data[0][i] - self.rec_data[0][i] - self.lig_data[0][i]
+ sum2 += (self.com_data[0][i] - self.rec_data[0][i] - self.lig_data[0][i]) ** 2
+
+- avg = sum / len(self.com_data)
+- return math.sqrt(abs(sum2 / len(self.com_data) - avg * avg))
++ avg = sum / len(self.com_data[0])
++ return math.sqrt(abs(sum2 / len(self.com_data[0]) - avg * avg))
+
+ #==============================
+
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2012-10-20 16:41 Reinis Danne
0 siblings, 0 replies; 18+ messages in thread
From: Reinis Danne @ 2012-10-20 16:41 UTC (permalink / raw
To: gentoo-commits
commit: 7341e9d5c114e475ef672c4603ebd64bc476edf4
Author: Reinis Danne <rei4dan <AT> gmail <DOT> com>
AuthorDate: Sat Oct 20 16:40:10 2012 +0000
Commit: Reinis Danne <rei4dan <AT> gmail <DOT> com>
CommitDate: Sat Oct 20 16:40:10 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=7341e9d5
ambertools: Version bump to 12
---
sci-chemistry/ambertools/ChangeLog | 6 +
sci-chemistry/ambertools/ambertools-12.ebuild | 151 +
.../files/ambertools-12-bugfix_14-26.patch |14856 ++++++++++++++++++++
.../ambertools/files/ambertools-12-gentoo.patch | 1251 ++
4 files changed, 16264 insertions(+), 0 deletions(-)
diff --git a/sci-chemistry/ambertools/ChangeLog b/sci-chemistry/ambertools/ChangeLog
index 6e9d91d..59197eb 100644
--- a/sci-chemistry/ambertools/ChangeLog
+++ b/sci-chemistry/ambertools/ChangeLog
@@ -2,6 +2,12 @@
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ambertools/ChangeLog,v 1.2 2011/08/02 14:42:37 alexxy Exp $
+*ambertools-12 (20 Oct 2012)
+
+ 20 Oct 2012; Reinis Danne <rei4dan@gmail.com> +ambertools-12.ebuild,
+ +files/ambertools-12-bugfix_14-26.patch, +files/ambertools-12-gentoo.patch:
+ Bump to 12.
+
*ambertools-1.5-r4 (28 Aug 2012)
28 Aug 2012; Reinis Danne <rei4dan@gmail.com> +ambertools-1.5-r4.ebuild,
diff --git a/sci-chemistry/ambertools/ambertools-12.ebuild b/sci-chemistry/ambertools/ambertools-12.ebuild
new file mode 100644
index 0000000..31d6f8e
--- /dev/null
+++ b/sci-chemistry/ambertools/ambertools-12.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+inherit eutils fortran-2 toolchain-funcs
+
+DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
+HOMEPAGE="http://ambermd.org/#AmberTools"
+SRC_URI="
+ AmberTools${PV}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="openmp X"
+
+RESTRICT="fetch"
+
+RDEPEND="
+ virtual/cblas
+ virtual/lapack
+ sci-libs/clapack
+ sci-libs/arpack
+ sci-libs/cifparse-obj
+ sci-chemistry/mopac7
+ sci-libs/netcdf
+ sci-libs/fftw:3.0
+ sci-chemistry/reduce"
+DEPEND="${RDEPEND}
+ app-shells/tcsh
+ dev-util/byacc
+ dev-libs/libf2c
+ sys-devel/ucpp"
+
+S="${WORKDIR}/amber12"
+
+pkg_nofetch() {
+ einfo "Go to ${HOMEPAGE} and get ${A}"
+ einfo "Place it in ${DISTDIR}"
+}
+
+pkg_setup() {
+ fortran-2_pkg_setup
+ if use openmp; then
+ tc-has-openmp || \
+ die "Please select an openmp capable compiler like gcc[openmp]"
+ fi
+ AMBERHOME="${S}"
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}/${P}-bugfix_14-26.patch" \
+ "${FILESDIR}/${P}-gentoo.patch"
+ cd "${S}"/AmberTools/src
+ rm -r \
+ arpack \
+ blas \
+ byacc \
+ lapack \
+ fftw-3.3 \
+ c9x-complex \
+ cifparse \
+ netcdf \
+ reduce \
+ ucpp-1.3 \
+ || die
+}
+
+src_configure() {
+ cd "${S}"/AmberTools/src
+ sed -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
+ -e "s:\\\\\$(LIBDIR)/lapack.a:$(pkg-config lapack --libs) -lclapack:g" \
+ -e "s:\\\\\$(LIBDIR)/blas.a:$(pkg-config blas cblas --libs):g" \
+ -e "s:GENTOO_CFLAGS:${CFLAGS} -DBINTRAJ :g" \
+ -e "s:GENTOO_CXXFLAGS:${CXXFLAGS}:g" \
+ -e "s:GENTOO_FFLAGS:${FFLAGS}:g" \
+ -e "s:GENTOO_LDFLAGS:${LDFLAGS}:g" \
+ -e "s:GENTOO_INCLUDE:${EPREFIX}/usr/include:g" \
+ -e "s:GENTOO_FFTW3_LIBS:$(pkg-config fftw3 --libs):" \
+ -e "s:fc=g77:fc=$(tc-getFC):g" \
+ -e "s:\$netcdfflag:$(pkg-config netcdf --libs):g" \
+ -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
+ -i configure2 || die
+ sed -e "s:arsecond_:arscnd_:g" \
+ -i sff/time.c \
+ -i sff/sff.h \
+ -i sff/sff.c || die
+
+ local myconf="--no-updates"
+
+ use X || myconf="${myconf} -noX11"
+
+ use openmp && myconf="${myconf} -openmp"
+
+ cd "${S}"
+ ./configure \
+ ${myconf} \
+ -nobintraj \
+ -nomtkpp \
+ gnu
+}
+
+src_compile() {
+ cd "${S}"/AmberTools/src
+ emake
+}
+
+src_test() {
+ cd "${S}"/AmberTools/test
+ emake test
+}
+
+src_install() {
+ rm bin/*.py
+
+ for x in bin/*
+ do
+ [ ! -d ${x} ] && dobin ${x}
+ done
+
+ dobin AmberTools/src/antechamber/mopac.sh
+ sed -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
+ -i "${ED}/usr/bin/mopac.sh" || die
+
+ # Make symlinks untill binpath for amber will be fixed
+ dodir /usr/share/${PN}/bin
+ cd "${ED}/usr/bin"
+ for x in *
+ do dosym /usr/bin/${x} /usr/share/${PN}/bin/${x}
+ done
+ cd "${S}"
+
+ dodoc doc/AmberTools12.pdf
+ dolib.a lib/*
+ insinto /usr/include/${PN}
+ doins include/*
+ insinto /usr/share/${PN}
+ doins -r dat
+ cd AmberTools
+ doins -r benchmarks
+ doins -r examples
+ doins -r test
+
+ cat >> "${T}"/99ambertools <<- EOF
+ AMBERHOME="${EPREFIX}/usr/share/ambertools"
+ EOF
+ doenvd "${T}"/99ambertools
+}
diff --git a/sci-chemistry/ambertools/files/ambertools-12-bugfix_14-26.patch b/sci-chemistry/ambertools/files/ambertools-12-bugfix_14-26.patch
new file mode 100644
index 0000000..da9712c
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-12-bugfix_14-26.patch
@@ -0,0 +1,14856 @@
+diff --git a/AmberTools/src/configure2 b/AmberTools/src/configure2
+index 25d3f0a..9ce5ef0 100755
+--- a/AmberTools/src/configure2
++++ b/AmberTools/src/configure2
+@@ -24,17 +24,19 @@ Usage: ./configure [flags] compiler
+ in your PATH; Note: you must first configure and build
+ a serial AmberTools.
+ -cuda Builds the NVIDIA GPU version of pmemd (pmemd.cuda and
+- pmemd.cuda.MPI) with default SPDP hybrid precision.
++ pmemd.cuda.MPI) with default SPFP mixed single/double/
++ fixed-point precision.
+ (Note: Set CUDA_HOME to your cuda build tools installation
+ path.)
+- -cuda_SPDP Currently just an alias to CUDA
+- -cuda_DPDP Builds the NVIDIA GPU version of pmemd (pmemd.cuda and
+- pmemd.cuda.MPI) with full double precision. (Considerably
+- slower than SPDP for many cards without a meaningful gain
+- in accuracy)
+- -cuda_SPSP Builds the NVIDIA GPU version of pmemd (pmemd.cuda and
+- pmemd.cuda.MPI) with full single precision. (Not a good
+- choice for production runs!)
++ -cuda_SPDP Builds the NVIDIA GPU version of pmemd (pmemd_SPDP.cuda and
++ pmemd.cuda_SPDP.MPI) with SPDP hybrid precision. (This was
++ the default for previous versions of AMBER but has now been
++ superseded by the SPFP mixed precision model).
++ -cuda_DPDP Builds the NVIDIA GPU version of pmemd (pmemd.cuda_DPDP and
++ pmemd.cuda_DPDP.MPI) with full double precision. (Considerably
++ slower than SPDP and SPFP for many cards without a meaningful
++ gain in accuracy)
++ -cuda_SPFP Currently an alias to -cuda.
+ -openmp Use OpenMP pragmas to parallelize NAB and paramfit
+ (not available for pgi).
+ Do not use -openmp and -mpi at the same time. Type "make
+@@ -149,8 +151,8 @@ fi
+ #------------------------------------------------------------------------------
+ mpi='no'
+ mpinab=''
+-cuda='no'
+-cuda_SPSP='no'
++cuda_SPFP='no'
++cuda_SPDP='no'
+ cuda_DPDP='no'
+ scali='no'
+ scalapack='no'
+@@ -222,9 +224,9 @@ if [ $# -lt 1 ]; then usage; fi
+ while [ $# -gt 0 ]; do
+ case "$1" in
+ -mpi) mpi='yes'; mpinab='mpi'; mdgx='no';mtkpp='' ;;
+- -cuda) cuda='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
+- -cuda_SPDP) cuda='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
+- -cuda_SPSP) cuda_SPSP='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
++ -cuda) cuda_SPFP='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
++ -cuda_SPFP) cuda_SPFP='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
++ -cuda_SPDP) cuda_SPDP='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
+ -cuda_DPDP) cuda_DPDP='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
+ -scali) scali='yes' ;;
+ -scalapack) scalapack='yes' ;;
+@@ -443,22 +445,22 @@ if [ "$noX11" = "false" ]; then
+ echo " On old Fedora OS's install the xorg-x11-devel package."
+ echo " On RedHat OS's install the XFree86-devel package."
+ echo " On Ubuntu OS's install the xorg-dev package."
+- echo " To build Amber without XLEaP, re-run configure with '-no-X11:"
+- echo " `mod_command_args '' '-no-X11'`"
+- exit 1
++ echo " To build Amber without XLEaP, re-run configure with '-noX11:"
++ echo " `mod_command_args '' '-noX11'`"
++ exit 1
+ fi
+
+ if [ -d /usr/include/X11/extensions ]
+ then
+ empty_statement=
+- else
++ elif [ "$is_mac" = "no" ]; then
+ echo "ERROR: the X11 extensions headers are not in the usual location!"
+ echo " To search for them try the command: locate X11/extensions"
+ echo " On new Fedora OSes install libXext-devel"
+ echo " On RedHat OSes install libXext-devel"
+- echo " To build Amber without XLEaP, re-run configure with '-no-X11:"
+- echo " `mod_command_args '' '-no-X11'`"
+- exit 1
++ echo " To build Amber without XLEaP, re-run configure with '-noX11:"
++ echo " `mod_command_args '' '-noX11'`"
++ exit 1
+ fi
+ fi
+
+@@ -544,7 +546,7 @@ fi
+ #------------------------------------------------------------------------------
+ # Determine which type of installation we're doing
+ #------------------------------------------------------------------------------
+-if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
++if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
+ if [ "$mpi" = 'yes' ]; then
+ installtype='cuda_parallel'
+ else
+@@ -559,7 +561,7 @@ fi
+ #------------------------------------------------------------------------------
+ # Check for cuda incompatibilities or missing files:
+ #------------------------------------------------------------------------------
+-if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
++if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
+ if [ -z "$CUDA_HOME" ]; then
+ echo "Error: CUDA_HOME is not set. This must point to your NVIDIA tools installation"
+ exit 1
+@@ -572,25 +574,26 @@ if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
+ echo "Error: nvcc cuda compiler not found in $CUDA_HOME/bin/"
+ exit 1
+ fi
+- #Check for mixing of cuda with cuda_SPSP or cuda_DPDP debugging options.
+- #cuda = SPDP mixed precision (default)
+- #cuda_SPSP = SPSP single precision only - except shake (debug option!)
++ #Check for mixing of cuda with cuda_SPDP or cuda_DPDP debugging options.
++ #cuda = SPFP mixed single/double/fixed-point precision (default)
++ #cuda_SPFP = SPFP mixed single/double/fixed-point precision (default)
++ #cuda_SPDP = SPDP hybrid single/double precision (debug option!)
+ #cuda_DPDP = DPDP double precision only (debug option!)
+- if [ "$cuda" = 'yes' ]; then
+- if [ "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
+- echo "Error: specification of -cuda, -cuda_SPSP and -cuda_DPDP are mutually exclusive"
++ if [ "$cuda_SPFP" = 'yes' ]; then
++ if [ "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
++ echo "Error: specification of -cuda, -cuda_SPDP and -cuda_DPDP are mutually exclusive"
+ exit 1
+ fi
+ fi
+- if [ "$cuda_SPSP" = 'yes' ]; then
+- if [ "$cuda" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
+- echo "Error: specification of -cuda, -cuda_SPSP and -cuda_DPDP are mutually exclusive"
++ if [ "$cuda_SPDP" = 'yes' ]; then
++ if [ "$cuda_SPFP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
++ echo "Error: specification of -cuda, -cuda_SPDP and -cuda_DPDP are mutually exclusive"
+ exit 1
+ fi
+ fi
+ if [ "$cuda_DPDP" = 'yes' ]; then
+- if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' ]; then
+- echo "Error: specification of -cuda, -cuda_SPSP and -cuda_DPDP are mutually exclusive"
++ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' ]; then
++ echo "Error: specification of -cuda, -cuda_SPDP and -cuda_DPDP are mutually exclusive"
+ exit 1
+ fi
+ fi
+@@ -736,14 +739,15 @@ gnu)
+ pmemd_coptflags="$coptflags"
+
+ #CUDA Specifics
+- if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
++ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
+ pmemd_cu_includes='-I$(CUDA_HOME)/include -IB40C -IB40C/KernelCommon'
+ pmemd_cu_defines='-DCUDA'
+ pmemd_cu_libs='./cuda/cuda.a -L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcurand -lcufft -lcudart'
+ if [ "$optimise" = 'no' ]; then
+- nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O0 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20'
++ nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O0 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30'
+ else
+- nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O3 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20'
++ #2012/05/30 - Removed -O3 here because of 'possible' performance regression. - Scott sees this. Ross can't reproduce it.
++ nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30'
+ fi
+ if [ "$mpi" = 'yes' ]; then
+ mpi_inc=`(mpicc -show 2>&1) | awk 'BEGIN{i=0} {while (i < NF) {if ( substr($i, 1, 2) == "-I" ) {printf("%s ", $i);}; i++;}}'`
+@@ -752,8 +756,11 @@ gnu)
+ pmemd_coptflags="$coptflags -DMPICH_IGNORE_CXX_SEEK"
+ fi
+ fi
+- if [ "$cuda_SPSP" = 'yes' ]; then
+- pmemd_cu_defines="$pmemd_cu_defines -Duse_SPSP"
++ if [ "$cuda_SPFP" = 'yes' ]; then
++ pmemd_cu_defines="$pmemd_cu_defines -Duse_SPFP"
++ fi
++ if [ "$cuda_SPDP" = 'yes' ]; then
++ pmemd_cu_defines="$pmemd_cu_defines -Duse_SPDP"
+ fi
+ if [ "$cuda_DPDP" = 'yes' ]; then
+ pmemd_cu_defines="$pmemd_cu_defines -Duse_DPDP"
+@@ -1001,7 +1008,7 @@ intel)
+ fi
+
+ #CUDA Specifics
+- if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
++ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
+
+ # -ipo (multi-file Interprocedural Optimizations optimizations) causes issues with
+ # CUDA c code linking. Leave at a single-file IPO for the moment MJW
+@@ -1012,9 +1019,10 @@ intel)
+ pmemd_cu_defines='-DCUDA'
+ pmemd_cu_libs='./cuda/cuda.a -L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcurand -lcufft -lcudart'
+ if [ "$optimise" = 'yes' ]; then
+- nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O3 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20'
++ #2012/05/30 - Removed -O3 here because of 'possible' performance regression. - Scott sees this. Ross can't reproduce it.
++ nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30'
+ else
+- nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O0 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20'
++ nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O0 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30'
+ fi
+
+ if [ "$mpi" = 'yes' ]; then
+@@ -1024,8 +1032,11 @@ intel)
+ pmemd_coptflags="$pmemd_coptflags -DMPICH_IGNORE_CXX_SEEK"
+ fi
+ fi
+- if [ "$cuda_SPSP" = 'yes' ]; then
+- pmemd_cu_defines="$pmemd_cu_defines -Duse_SPSP"
++ if [ "$cuda_SPFP" = 'yes' ]; then
++ pmemd_cu_defines="$pmemd_cu_defines -Duse_SPFP"
++ fi
++ if [ "$cuda_SPDP" = 'yes' ]; then
++ pmemd_cu_defines="$pmemd_cu_defines -Duse_SPDP"
+ fi
+ if [ "$cuda_DPDP" = 'yes' ]; then
+ pmemd_cu_defines="$pmemd_cu_defines -Duse_DPDP"
+@@ -1131,7 +1142,7 @@ pgi)
+ foptflags="$foptflags -fastsse"
+ fi
+
+- if [ "$cuda" = "yes" -o "$cuda_SPSP" = "yes" -o "$cuda_DPDP" = "yes" ]; then
++ if [ "$cuda_SPFP" = "yes" -o "$cuda_SPDP" = "yes" -o "$cuda_DPDP" = "yes" ]; then
+ echo "ERROR: cuda is not available for pgi."
+ echo " Please re-run configure without CUDA flags to use this compiler:"
+ echo " `mod_command_args '-cuda -cuda_SPDP -cuda_DPDP' ''`"
+@@ -1258,7 +1269,7 @@ solaris)
+ flibs_arch="$flibs_arch $SCALAPACKHOME/scalapack_SUN64.a $BLACSHOME/blacsF77init_MPI-SUN64-0.a $BLACSHOME/blacs_MPI-SUN64-0.a $BLACSHOME/blacsCinit_MPI-SUN64-0.a -lmpi"
+ fi
+
+- if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
++ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
+ echo "ERROR: cuda is not available for solaris."
+ echo " Please re-run configure without CUDA flags to use this compiler:"
+ echo " `mod_command_args '-cuda -cuda_SPDP -cuda_DPDP' ''`"
+@@ -1306,6 +1317,13 @@ open64)
+ echo "open64 setting is experimental."
+ fi
+
++ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
++ echo "ERROR: CUDA is not compatible with this compiler"
++ echo " Please re-run configure without CUDA flags to use this compiler:"
++ echo " `mod_command_args '-cuda -cuda_SPDP -cuda_DPDP' ''`"
++ exit 1
++ fi
++
+ if [ "$mpi" = 'yes' ]; then
+ ld=' mpif90 '
+ else
+diff --git a/AmberTools/src/cpptraj/src/ActionList.cpp b/AmberTools/src/cpptraj/src/ActionList.cpp
+index db3a157..f999e7f 100644
+--- a/AmberTools/src/cpptraj/src/ActionList.cpp
++++ b/AmberTools/src/cpptraj/src/ActionList.cpp
+@@ -33,6 +33,7 @@
+ #include "Action_Rotdif.h"
+ #include "Action_RunningAvg.h"
+ #include "Action_RmsAvgCorr.h"
++#include "Action_AutoImage.h"
+
+ // CONSTRUCTOR
+ ActionList::ActionList() {
+@@ -77,7 +78,7 @@ int ActionList::AddAction(ArgList &argIn) {
+ else if (argIn.CommandIs("secstruct")) {Act=new DSSP; }
+ else if (argIn.CommandIs("center")) {Act=new Center; }
+ else if (argIn.CommandIs("hbond")) {Act=new Hbond; }
+- else if (argIn.CommandIs("image")) {Act=new Image; }
++ else if (argIn.CommandIs("image")) {Act=new Action_Image; }
+ else if (argIn.CommandIs("surf")) {Act=new Surf; }
+ else if (argIn.CommandIs("radgyr")) {Act=new Radgyr; }
+ else if (argIn.CommandIs("mask")) {Act=new ActionMask;}
+@@ -101,6 +102,7 @@ int ActionList::AddAction(ArgList &argIn) {
+ else if (argIn.CommandIs("runningaverage")) {Act=new RunningAvg;}
+ else if (argIn.CommandIs("runavg")) {Act=new RunningAvg;}
+ else if (argIn.CommandIs("rmsavgcorr")) {Act=new RmsAvgCorr;}
++ else if (argIn.CommandIs("autoimage")) {Act=new Action_AutoImage;}
+ // PTRAJ
+ else if (argIn.CommandIs("atomicfluct") ||
+ argIn.CommandIs("atomicfluct3D") ||
+diff --git a/AmberTools/src/cpptraj/src/Action_AutoImage.cpp b/AmberTools/src/cpptraj/src/Action_AutoImage.cpp
+index e69de29..ca61dc6 100644
+--- a/AmberTools/src/cpptraj/src/Action_AutoImage.cpp
++++ b/AmberTools/src/cpptraj/src/Action_AutoImage.cpp
+@@ -0,0 +1,273 @@
++#include "Action_AutoImage.h"
++#include "CpptrajStdio.h"
++#include "DistRoutines.h"
++
++// CONSTRUCTOR
++Action_AutoImage::Action_AutoImage() :
++ origin_(false),
++ ortho_(false),
++ center_(false),
++ truncoct_(false),
++ triclinic_(OFF)
++{}
++
++// Action_AutoImage::init()
++/** Usage: autoimage <mask> | anchor <mask> [fixed <fmask>] [mobile <mmask>]
++ * [origin] [familiar | triclinic]
++ */
++int Action_AutoImage::init() {
++ // Get keywords
++ origin_ = actionArgs.hasKey("origin");
++ center_ = actionArgs.hasKey("center");
++ if (actionArgs.hasKey("familiar")) triclinic_ = FAMILIAR;
++ if (actionArgs.hasKey("triclinic")) triclinic_ = FORCE;
++ anchor_ = actionArgs.getKeyString("anchor",NULL);
++ fixed_ = actionArgs.getKeyString("fixed",NULL);
++ mobile_ = actionArgs.getKeyString("mobile",NULL);
++ // Get mask expression for anchor if none yet specified
++ if (anchor_==NULL)
++ anchor_ = actionArgs.getNextMask();
++
++ mprintf(" AUTOIMAGE: To");
++ if (origin_)
++ mprintf(" origin");
++ else
++ mprintf(" box center");
++ mprintf(" based on");
++ if (center_)
++ mprintf(" center of mass");
++ else
++ mprintf(" first atom position");
++ if (anchor_!=NULL)
++ mprintf(", anchor mask is [%s]\n", anchor_);
++ else
++ mprintf(", anchor is first molecule.\n");
++ if (fixed_!=NULL)
++ mprintf("\tAtoms in mask [%s] will be fixed to anchor region.\n", fixed_);
++ if (mobile_!=NULL)
++ mprintf("\tAtoms in mask [%s] will be imaged independently of anchor region.\n",
++ mobile_);
++
++ return 0;
++}
++
++// Action_AutoImage::SetupAtomRanges()
++/** Based on the given atom mask expression determine what molecules are
++ * selected by the mask.
++ * \return A list of atom pairs that mark the beginning and end of each
++ * selected molecule.
++ */
++Action_AutoImage::pairList Action_AutoImage::SetupAtomRanges( const char* maskexpr )
++{
++ pairList imageList;
++ AtomMask Mask1;
++ if (Mask1.SetMaskString( (char*)maskexpr )) return imageList;
++
++ if (currentParm->SetupCharMask( Mask1, activeReference )) return imageList;
++ if (Mask1.None()) return imageList;
++
++ int* AtomsPerMol = currentParm->AtomsPerMol_ptr();
++ int firstAtom = 0;
++ int lastAtom = 0;
++ for (int molnum = 0; molnum < currentParm->Nmol(); ++molnum)
++ {
++ firstAtom = lastAtom;
++ lastAtom += AtomsPerMol[ molnum ];
++ // Check that each atom in the range is in Mask1
++ bool rangeIsValid = true;
++ for (int atom = firstAtom; atom < lastAtom; ++atom) {
++ if (!Mask1.AtomInCharMask(atom)) {
++ rangeIsValid = false;
++ break;
++ }
++ }
++ if (rangeIsValid) {
++ imageList.push_back( firstAtom );
++ imageList.push_back( lastAtom );
++ }
++ }
++ mprintf("\tMask [%s] corresponds to %zu molecules\n", Mask1.MaskString(), imageList.size()/2);
++ return imageList;
++}
++
++// Action_AutoImage::setup()
++int Action_AutoImage::setup() {
++ bool fixedauto = false;
++ bool mobileauto = false;
++
++ // Require molecule info
++ int* AtomsPerMol = currentParm->AtomsPerMol_ptr();
++ if (AtomsPerMol == NULL) {
++ mprinterr("Error: AutoImage: No molecule information in %s\n", currentParm->parmName);
++ return 1;
++ }
++ // Determine Box info
++ if (currentParm->boxType==NOBOX) {
++ mprintf("Warning: Image::setup: Parm %s does not contain box information.\n",
++ currentParm->parmName);
++ return 1;
++ }
++ ortho_ = false;
++ if (currentParm->boxType==ORTHO && triclinic_==OFF) ortho_=true;
++ // If box is originally truncated oct and not forcing triclinic,
++ // turn familiar on.
++ if (AmberIfbox( currentParm->Box[4] )==2 && triclinic_!=FORCE && triclinic_!=FAMILIAR) {
++ mprintf("\tOriginal box is truncated octahedron, turning on 'familiar'.\n");
++ triclinic_=FAMILIAR;
++ }
++
++ // Set up anchor region
++ if (anchor_!=NULL) {
++ anchorList_ = SetupAtomRanges( anchor_ );
++ } else {
++ anchorList_.clear();
++ anchorList_.push_back( 0 );
++ anchorList_.push_back( AtomsPerMol[0] );
++ }
++ if (anchorList_.empty() || anchorList_.size() > 2) {
++ mprinterr("Error: Anchor mask [%s] corresponds to %zu mols, should only be 1.\n",
++ anchor_, anchorList_.size() / 2);
++ return 1;
++ }
++ // Set up mask for centering anchor
++ anchorMask_.AddAtomRange( anchorList_[0], anchorList_[1] );
++ int anchormolnum = currentParm->atomToMolecule( anchorList_[0] );
++ mprintf("\tAnchor molecule is %i\n", anchormolnum+1);
++ // Set up fixed region
++ if (fixed_!=NULL)
++ fixedList_ = SetupAtomRanges( fixed_ );
++ else
++ fixedauto = true;
++ // Set up mobile region
++ if (mobile_!=NULL)
++ mobileList_ = SetupAtomRanges( mobile_ );
++ else
++ mobileauto = true;
++ // Automatic search through molecules for fixed/mobile
++ if (fixedauto || mobileauto) {
++ int firstAtom = 0;
++ int lastAtom = 0;
++ for (int molnum = 0; molnum < currentParm->Nmol(); ++molnum)
++ {
++ firstAtom = lastAtom;
++ lastAtom += AtomsPerMol[ molnum ];
++ // Skip the anchor molecule
++ if (molnum != anchormolnum) {
++ // Solvent and 1 atom molecules (prob. ions) go in mobile list,
++ // everything else into fixed list.
++ bool isSolventMol = false;
++ if ( currentParm->solventMask != NULL && currentParm->solventMask[firstAtom] == 'T' )
++ isSolventMol = true;
++ if ( isSolventMol || (lastAtom - firstAtom) == 1 )
++ {
++ if (mobileauto) {
++ mobileList_.push_back( firstAtom );
++ mobileList_.push_back( lastAtom );
++ }
++ } else {
++ if (fixedauto) {
++ fixedList_.push_back( firstAtom );
++ fixedList_.push_back( lastAtom );
++ }
++ }
++ }
++ }
++ }
++ // DEBUG: Print fixed and mobile lists
++ if (!fixedList_.empty()) {
++ mprintf("\tThe following molecules are fixed to anchor:");
++ for (pairList::iterator atom = fixedList_.begin();
++ atom != fixedList_.end(); atom += 2)
++ mprintf(" %i", currentParm->atomToMolecule( *atom ) + 1 );
++ mprintf("\n");
++ }
++ mprintf("\t%zu molecules are mobile.\n", mobileList_.size() / 2 );
++ //mprintf("\tThe following molecules are mobile:\n");
++ //for (pairList::iterator atom = mobileList_.begin();
++ // atom != mobileList_.end(); atom += 2)
++ // mprintf("\t\t%i\n", (*currentParm)[ *atom ].Mol()+1 );
++
++ truncoct_ = (triclinic_==FAMILIAR);
++
++ return 0;
++}
++
++// Action_AutoImage::action()
++int Action_AutoImage::action() {
++ double center[3], ucell[9], recip[9], imagedcenter[3], framecenter[3];
++ double fcom[3];
++ double bp[3], bm[3];
++ double Trans[3];
++
++ // Center w.r.t. anchor
++ currentFrame->Center( anchorMask_, origin_, useMass);
++ // Determine whether anchor center is at box center or coordinate origin
++ if (origin_) {
++ center[0] = 0;
++ center[1] = 0;
++ center[2] = 0;
++ } else {
++ center[0] = currentFrame->box[0] / 2;
++ center[1] = currentFrame->box[1] / 2;
++ center[2] = currentFrame->box[2] / 2;
++ }
++
++ // Setup imaging, and image everything in currentFrame
++ // according to mobileList.
++ if (ortho_) {
++ currentFrame->SetupImageOrtho(bp, bm, origin_);
++ currentFrame->ImageOrtho(bp, bm, center_, useMass, mobileList_);
++ } else {
++ currentFrame->BoxToRecip(ucell, recip);
++ if (truncoct_)
++ currentFrame->SetupImageTruncoct( fcom, NULL, useMass, origin_ );
++ currentFrame->ImageNonortho(origin_, fcom, ucell, recip, truncoct_,
++ center_, useMass, mobileList_);
++ }
++
++ // For each molecule defined by atom pairs in fixedList, determine if the
++ // imaged position is closer to anchor center than the current position.
++ // Always use molecule center when imaging fixedList.
++ for (pairList::iterator atom1 = fixedList_.begin();
++ atom1 != fixedList_.end(); ++atom1)
++ {
++ int firstAtom = *atom1;
++ ++atom1;
++ int lastAtom = *atom1;
++ Trans[0] = 0;
++ Trans[1] = 0;
++ Trans[2] = 0;
++ if (useMass)
++ currentFrame->CenterOfMass(framecenter, firstAtom, lastAtom);
++ else
++ currentFrame->GeometricCenter(framecenter, firstAtom, lastAtom);
++ // NOTE: imaging routines will modify input coords.
++ imagedcenter[0] = framecenter[0];
++ imagedcenter[1] = framecenter[1];
++ imagedcenter[2] = framecenter[2];
++ if (ortho_)
++ currentFrame->ImageOrtho(Trans, imagedcenter, bp, bm);
++ else
++ currentFrame->ImageNonortho(Trans, imagedcenter, truncoct_, origin_, ucell, recip, fcom);
++ // If molecule was imaged, determine whether imaged position is closer to anchor.
++ if (Trans[0] != 0 || Trans[1] != 0 || Trans[2] != 0) {
++ imagedcenter[0] = framecenter[0] + Trans[0];
++ imagedcenter[1] = framecenter[1] + Trans[1];
++ imagedcenter[2] = framecenter[2] + Trans[2];
++ double framedist2 = DIST2_NoImage( center, framecenter );
++ double imageddist2 = DIST2_NoImage( center, imagedcenter );
++ //mprintf("DBG: [%5i] Fixed @%i-%i frame dist2=%lf, imaged dist2=%lf\n", frameNum,
++ // firstAtom+1, lastAtom+1,
++ // framedist2, imageddist2);
++ if (imageddist2 < framedist2) {
++ // Imaging these atoms moved them closer to anchor. Update coords in currentFrame.
++ currentFrame->Translate(Trans, firstAtom, lastAtom);
++ //for (int idx = firstAtom*3; idx < lastAtom*3; ++idx)
++ // (*currentFrame)[idx] = fixedFrame[idx];
++ }
++ }
++ }
++
++ return 0;
++}
++
+diff --git a/AmberTools/src/cpptraj/src/Action_AutoImage.h b/AmberTools/src/cpptraj/src/Action_AutoImage.h
+index e69de29..5ee24d6 100644
+--- a/AmberTools/src/cpptraj/src/Action_AutoImage.h
++++ b/AmberTools/src/cpptraj/src/Action_AutoImage.h
+@@ -0,0 +1,32 @@
++#ifndef INC_ACTION_AUTOIMAGE_H
++#define INC_ACTION_AUTOIMAGE_H
++#include "Action.h"
++class Action_AutoImage : public Action {
++ public:
++ Action_AutoImage();
++
++ private:
++ int init();
++ int setup();
++ int action();
++
++ AtomMask anchorMask_; ///< Used to center anchor region.
++ char* anchor_; ///< Mask expression for anchor region.
++ char* fixed_; ///< Mask expression for fixed region.
++ char* mobile_; ///< Mask expression for mobile region.
++
++ bool origin_; ///< If true imaging occurs w.r.t. coordinate origin.
++ bool ortho_; ///< If true imaging is orthogonal.
++ bool center_; ///< If true imaging of mobile region uses molecule center.
++ bool truncoct_;
++ enum TriclinicArg {OFF, FORCE, FAMILIAR};
++ TriclinicArg triclinic_; ///< Determine whether triclinic code should be used.
++
++ typedef std::vector<int> pairList;
++ pairList anchorList_;
++ pairList fixedList_;
++ pairList mobileList_;
++
++ pairList SetupAtomRanges(const char*);
++};
++#endif
+diff --git a/AmberTools/src/cpptraj/src/Action_Center.cpp b/AmberTools/src/cpptraj/src/Action_Center.cpp
+index a496a7f..cb841b8 100644
+--- a/AmberTools/src/cpptraj/src/Action_Center.cpp
++++ b/AmberTools/src/cpptraj/src/Action_Center.cpp
+@@ -68,14 +68,7 @@ int Center::setup() {
+ */
+ int Center::action() {
+
+- // Set up box
+- if (!origin) {
+- box[0] = currentFrame->box[0] / 2.0;
+- box[1] = currentFrame->box[1] / 2.0;
+- box[2] = currentFrame->box[2] / 2.0;
+- }
+-
+- currentFrame->Center(&Mask1, box, useMass);
++ currentFrame->Center(Mask1, origin, useMass);
+
+ return 0;
+ }
+diff --git a/AmberTools/src/cpptraj/src/Action_Image.cpp b/AmberTools/src/cpptraj/src/Action_Image.cpp
+index 023b26a..5e1dec8 100644
+--- a/AmberTools/src/cpptraj/src/Action_Image.cpp
++++ b/AmberTools/src/cpptraj/src/Action_Image.cpp
+@@ -1,26 +1,26 @@
+-// Image
+-#include <cmath> //for floor
++// Action_Image
+ #include "Action_Image.h"
+-#include "DistRoutines.h"
+ #include "CpptrajStdio.h"
+
+ // CONSTRUCTOR
+-Image::Image() {
++Action_Image::Action_Image() :
++ ComMask_(NULL),
++ origin_(false),
++ center_(false),
++ ortho_(false),
++ truncoct_(false),
++ triclinic_(OFF)
++{
+ //fprintf(stderr,"Image Con\n");
+- ComMask=NULL;
+- origin = false;
+- center = false;
+- ortho = false;
+ useMass = true;
+- triclinic = OFF;
+ }
+
+ // DESTRUCTOR
+-Image::~Image() {
+- if (ComMask!=NULL) delete ComMask;
++Action_Image::~Action_Image() {
++ if (ComMask_!=NULL) delete ComMask_;
+ }
+
+-// Image::init()
++// Action_Image::init()
+ /** Expected call: image [origin] [center] [triclinic | familiar [com <mask>]] <mask>
+ * - origin: center at 0.0, 0.0, 0.0, otherwise center at box center.
+ * - center: Use center of mass for imaging, otherwise use first atom.
+@@ -33,86 +33,86 @@ Image::~Image() {
+ // Check order is:
+ // 1) Keywords
+ // 2) Masks
+-int Image::init() {
++int Action_Image::init() {
+ char *mask1;
+
+ // Get keywords
+- origin = actionArgs.hasKey("origin");
+- center = actionArgs.hasKey("center");
+- if (actionArgs.hasKey("familiar")) triclinic = FAMILIAR;
+- if (actionArgs.hasKey("triclinic")) triclinic = FORCE;
++ origin_ = actionArgs.hasKey("origin");
++ center_ = actionArgs.hasKey("center");
++ if (actionArgs.hasKey("familiar")) triclinic_ = FAMILIAR;
++ if (actionArgs.hasKey("triclinic")) triclinic_ = FORCE;
+
+ // Get Masks
+- if (triclinic == FAMILIAR) {
++ if (triclinic_ == FAMILIAR) {
+ mask1 = actionArgs.getKeyString("com",NULL);
+ if (mask1!=NULL) {
+- ComMask = new AtomMask();
+- ComMask->SetMaskString(mask1);
++ ComMask_ = new AtomMask();
++ ComMask_->SetMaskString(mask1);
+ }
+ }
+ mask1 = actionArgs.getNextMask();
+- Mask1.SetMaskString(mask1);
++ Mask1_.SetMaskString(mask1);
+
+ mprintf(" IMAGE: To");
+- if (origin)
++ if (origin_)
+ mprintf(" origin");
+ else
+ mprintf(" box center");
+ mprintf(" based on");
+- if (center)
++ if (center_)
+ mprintf(" center of mass");
+ else
+ mprintf(" first atom position");
+- mprintf(" using atoms in mask %s\n",Mask1.MaskString());
+- if (triclinic == FORCE)
++ mprintf(" using atoms in mask %s\n",Mask1_.MaskString());
++ if (triclinic_ == FORCE)
+ mprintf( " Triclinic On.\n");
+- else if (triclinic == FAMILIAR) {
++ else if (triclinic_ == FAMILIAR) {
+ mprintf( " Triclinic On, familiar shape");
+- if (ComMask!=NULL)
+- mprintf( " centering on atoms in mask %s", ComMask->MaskString());
++ if (ComMask_!=NULL)
++ mprintf( " centering on atoms in mask %s", ComMask_->MaskString());
+ mprintf(".\n");
+ }
+
+ return 0;
+ }
+
+-// Image::setup()
++// Action_Image::setup()
+ /** Set Imaging up for this parmtop. Get masks etc.
+ * currentParm is set in Action::Setup
+ */
+-int Image::setup() {
+- atomPair apair;
++int Action_Image::setup() {
++ //atomPair apair;
+
+- if ( currentParm->SetupCharMask( Mask1, activeReference ) ) return 1;
+- if (Mask1.None()) {
++ if ( currentParm->SetupCharMask( Mask1_, activeReference ) ) return 1;
++ if (Mask1_.None()) {
+ mprintf("Warning: Image::setup: Mask contains 0 atoms.\n");
+ return 1;
+ }
+
+- if (currentParm->boxType==NOBOX) {
++ if (currentParm->boxType == NOBOX) {
+ mprintf("Warning: Image::setup: Parm %s does not contain box information.\n",
+ currentParm->parmName);
+ return 1;
+ }
+
+- ortho = false;
+- if (currentParm->boxType==ORTHO && triclinic==OFF) ortho=true;
++ ortho_ = false;
++ if (currentParm->boxType == ORTHO && triclinic_==OFF) ortho_=true;
+
+ // If box is originally truncated oct and not forcing triclinic,
+ // turn familiar on.
+- if (AmberIfbox(currentParm->Box[5])==2 && triclinic!=FORCE && triclinic!=FAMILIAR) {
++ if ( AmberIfbox( currentParm->Box[4] ) == 2 && triclinic_!=FORCE && triclinic_!=FAMILIAR) {
+ mprintf("\tOriginal box is truncated octahedron, turning on 'familiar'.\n");
+- triclinic=FAMILIAR;
++ triclinic_=FAMILIAR;
+ }
+
+- if (triclinic == FAMILIAR) {
+- if (ComMask!=NULL) {
+- if ( currentParm->SetupIntegerMask( *ComMask, activeReference) ) return 1;
+- if (ComMask->None()) {
++ if (triclinic_ == FAMILIAR) {
++ if (ComMask_!=NULL) {
++ if ( currentParm->SetupIntegerMask( *ComMask_, activeReference ) ) return 1;
++ if (ComMask_->None()) {
+ mprintf("Warning: Image::setup: Mask for 'familiar com' contains no atoms.\n");
+ return 1;
+ }
+- mprintf("\tcom: mask [%s] contains %i atoms.\n",ComMask->MaskString(),ComMask->Nselected);
++ mprintf("\tcom: mask [%s] contains %i atoms.\n",ComMask_->MaskString(),ComMask_->Nselected);
+ }
+ }
+
+@@ -120,178 +120,64 @@ int Image::setup() {
+ // Currently imaging by molecule only, so each pair will be the first and
+ // last atom of each molecule. Check that all atoms between first and last
+ // are actually in the mask.
+- imageList.clear();
+- imageList.reserve( currentParm->Nmol() );
+- apair.firstAtom = 0;
+- apair.lastAtom = 0;
+- for (int mol = 0; mol < currentParm->Nmol(); mol++) {
+- apair.firstAtom = apair.lastAtom;
+- apair.lastAtom = apair.firstAtom + currentParm->AtomsPerMol(mol);
++ imageList_.clear();
++ imageList_.reserve( currentParm->Nmol() );
++ int* AtomsPerMol = currentParm->AtomsPerMol_ptr();
++ if (AtomsPerMol == NULL) {
++ mprinterr("Error: Image: No molecule information in %s\n", currentParm->parmName);
++ return 1;
++ }
++ int firstAtom = 0;
++ int lastAtom = 0;
++
++ for (int molnum = 0; molnum < currentParm->Nmol(); ++molnum)
++ {
++ firstAtom = lastAtom;
++ lastAtom += AtomsPerMol[ molnum ];
+ // Check that each atom in the range is in Mask1
+ bool rangeIsValid = true;
+- for (int atom = apair.firstAtom; atom < apair.lastAtom; atom++)
+- if (!Mask1.AtomInCharMask(atom)) {rangeIsValid = false; break;}
+- if (rangeIsValid) imageList.push_back( apair );
++ for (int atom = firstAtom; atom < lastAtom; atom++) {
++ if (!Mask1_.AtomInCharMask(atom)) {
++ rangeIsValid = false;
++ break;
++ }
++ }
++ if (rangeIsValid) {
++ imageList_.push_back( firstAtom );
++ imageList_.push_back( lastAtom );
++ }
+ }
+- mprintf("\tNumber of molecules to be imaged is %u based on mask [%s]\n", imageList.size(),
+- Mask1.MaskString());
++ mprintf("\tNumber of molecules to be imaged is %u based on mask [%s]\n", imageList_.size()/2,
++ Mask1_.MaskString());
+ // DEBUG: Print all pairs
+- //for (std::vector<atomPair>::iterator ap = imageList.begin();
+- // ap != imageList.end();
+- // ap++)
+- //{
+- // mprintf("\tPair: %i - %i\n",(*ap).firstAtom+1,(*ap).lastAtom);
+- //}
++ if (debug>0) {
++ for (std::vector<int>::iterator ap = imageList_.begin();
++ ap != imageList_.end(); ap+=2)
++ mprintf("\t\tMol First-Last atom#: %i - %i\n", (*ap)+1, *(ap+1) );
++ }
++
++ // Truncoct flag
++ truncoct_ = (triclinic_==FAMILIAR);
+
+ return 0;
+ }
+
+-// Image::action()
+-int Image::action() {
+- // Orthorhombic
+- double bp[3];
+- double bm[3];
+- // Non-orthorhombic
+- double ucell[9];
+- double recip[9];
+- double fc[3], ffc[3];
+- // Familiar
+- double fcom[3];
+- int ixyz[3];
+- // General
+- double boxTrans[3];
+- double Coord[3];
+-
+- // Set up information for orthorhombic cell
+- if (ortho) {
+- if ( origin ) {
+- bp[0] = currentFrame->box[0] / 2.0;
+- bp[1] = currentFrame->box[1] / 2.0;
+- bp[2] = currentFrame->box[2] / 2.0;
+- bm[0] = -bp[0];
+- bm[1] = -bp[1];
+- bm[2] = -bp[2];
+- } else {
+- bp[0] = currentFrame->box[0];
+- bp[1] = currentFrame->box[1];
+- bp[2] = currentFrame->box[2];
+- bm[0] = 0.0;
+- bm[1] = 0.0;
+- bm[2] = 0.0;
+- }
+-
+- // Set up information for non-orthorhombic cell
++// Action_Image::action()
++int Action_Image::action() {
++ // Ortho
++ double bp[3], bm[3];
++ // Nonortho
++ double ucell[9], recip[9], fcom[3];
++
++ if (ortho_) {
++ currentFrame->SetupImageOrtho(bp, bm, origin_);
++ currentFrame->ImageOrtho(bp, bm, center_, useMass, imageList_);
+ } else {
+- // NOTE: Does this need to be done every time?
+- currentFrame->BoxToRecip(ucell, recip);
+- // Set up centering if putting nonortho cell into familiar trunc. oct. shape
+- if (triclinic == FAMILIAR) {
+- // Use center of mask of atoms in mask
+- if (ComMask!=NULL) {
+- if (useMass)
+- currentFrame->CenterOfMass(ComMask, fcom);
+- else
+- currentFrame->GeometricCenter(ComMask,fcom);
+- // Use origin
+- } else if (origin) {
+- fcom[0]=0.0;
+- fcom[1]=0.0;
+- fcom[2]=0.0;
+- // Use box center
+- } else {
+- fcom[0]=currentFrame->box[0] / 2.0;
+- fcom[1]=currentFrame->box[1] / 2.0;
+- fcom[2]=currentFrame->box[2] / 2.0;
+- }
+- //fprintf(stdout,"DEBUG: fcom = %lf %lf %lf\n",fcom[0],fcom[1],fcom[2]);
+- }
++ currentFrame->BoxToRecip( ucell, recip );
++ if (truncoct_)
++ currentFrame->SetupImageTruncoct( fcom, ComMask_, useMass, origin_ );
++ currentFrame->ImageNonortho(origin_, fcom, ucell, recip, truncoct_,
++ center_, useMass, imageList_);
+ }
+-
+- // Loop over Atom pairs
+- for (std::vector<atomPair>::iterator apair = imageList.begin();
+- apair != imageList.end();
+- apair++)
+- {
+- int firstAtom = (*apair).firstAtom;
+- int lastAtom = (*apair).lastAtom;
+-
+- //if (debug>2)
+- // mprintf( " IMAGE processing atoms %i to %i\n", firstAtom+1, lastAtom);
+-
+- // boxTrans will hold calculated translation needed to move atoms back into box
+- boxTrans[0] = 0.0;
+- boxTrans[1] = 0.0;
+- boxTrans[2] = 0.0;
+-
+- // Set up position based on first atom or center of mass
+- if (center) {
+- if (useMass)
+- currentFrame->CenterOfMass(Coord,firstAtom,lastAtom);
+- else
+- currentFrame->GeometricCenter(Coord,firstAtom,lastAtom);
+- } else
+- currentFrame->GetCoord(Coord,firstAtom);
+-
+- // ORTHORHOMBIC
+- if (ortho) {
+- // Determine how far coords are out of box
+- for (int i=0; i<3; i++) {
+- while (Coord[i] < bm[i]) {
+- Coord[i] += currentFrame->box[i];
+- boxTrans[i] += currentFrame->box[i];
+- }
+- while (Coord[i] > bp[i]) {
+- Coord[i] -= currentFrame->box[i];
+- boxTrans[i] -= currentFrame->box[i];
+- }
+- }
+-
+- // NON-ORTHORHOMBIC
+- } else {
+- fc[0]=(Coord[0]*recip[0]) + (Coord[1]*recip[1]) + (Coord[2]*recip[2]);
+- fc[1]=(Coord[0]*recip[3]) + (Coord[1]*recip[4]) + (Coord[2]*recip[5]);
+- fc[2]=(Coord[0]*recip[6]) + (Coord[1]*recip[7]) + (Coord[2]*recip[8]);
+-
+- if ( origin ) {
+- fc[0] += 0.5;
+- fc[1] += 0.5;
+- fc[2] += 0.5;
+- }
+-
+- ffc[0] = floor(fc[0]);
+- ffc[1] = floor(fc[1]);
+- ffc[2] = floor(fc[2]);
+-
+- boxTrans[0] -= (ffc[0]*ucell[0] + ffc[1]*ucell[3] + ffc[2]*ucell[6]);
+- boxTrans[1] -= (ffc[0]*ucell[1] + ffc[1]*ucell[4] + ffc[2]*ucell[7]);
+- boxTrans[2] -= (ffc[0]*ucell[2] + ffc[1]*ucell[5] + ffc[2]*ucell[8]);
+-
+- // Put into familiar trunc. oct. shape
+- if (triclinic == FAMILIAR) {
+- Coord[0] += boxTrans[0];
+- Coord[1] += boxTrans[1];
+- Coord[2] += boxTrans[2];
+- MinImageNonOrtho2(Coord, fcom, currentFrame->box, (int)origin, ixyz, ucell, recip);
+- if (ixyz[0] != 0 || ixyz[1] != 0 || ixyz[2] != 0) {
+- boxTrans[0] += (ixyz[0]*ucell[0] + ixyz[1]*ucell[3] + ixyz[2]*ucell[6]);
+- boxTrans[1] += (ixyz[0]*ucell[1] + ixyz[1]*ucell[4] + ixyz[2]*ucell[7]);
+- boxTrans[2] += (ixyz[0]*ucell[2] + ixyz[1]*ucell[5] + ixyz[2]*ucell[8]);
+-
+- //if (debug > 2)
+- // mprintf( " IMAGING, FAMILIAR OFFSETS ARE %i %i %i\n",
+- // ixyz[0], ixyz[1], ixyz[2]);
+- }
+- }
+- }
+-
+- //fprintf(stdout,"DEBUG: BoxTrans: %lf %lf %lf\n",boxTrans[0],boxTrans[1],boxTrans[2]);
+-
+- // Translate atoms back into the box
+- currentFrame->Translate(boxTrans,firstAtom,lastAtom);
+-
+- } // END loop over atom pairs
+-
+ return 0;
+ }
+-
+-
+diff --git a/AmberTools/src/cpptraj/src/Action_Image.h b/AmberTools/src/cpptraj/src/Action_Image.h
+index ba233c1..139246e 100644
+--- a/AmberTools/src/cpptraj/src/Action_Image.h
++++ b/AmberTools/src/cpptraj/src/Action_Image.h
+@@ -1,31 +1,28 @@
+ #ifndef INC_ACTION_IMAGE_H
+ #define INC_ACTION_IMAGE_H
+-// Class: Image
++// Class: Action_Image
+ /// Action to wrap coordinates back into primary box
+ #include "Action.h"
+-class Image: public Action {
++class Action_Image: public Action {
++ public:
++ Action_Image();
++ ~Action_Image();
++ private:
+ /// Only atoms in Mask1 will be imaged
+- AtomMask Mask1;
++ AtomMask Mask1_;
+ /// If defined, image w.r.t. the center of atoms in ComMask.
+- AtomMask *ComMask;
++ AtomMask *ComMask_;
+ /// If true image w.r.t. coordinate origin, otherwise box center
+- bool origin;
++ bool origin_;
+ /// If true molecules will be imaged w.r.t. their center, otherwise first atom will be used
+- bool center;
++ bool center_;
+ /// True if orthorhombic cell, false otherwise.
+- bool ortho;
++ bool ortho_;
++ bool truncoct_;
+ enum TriclinicArg {OFF, FORCE, FAMILIAR};
+- TriclinicArg triclinic;
+- struct atomPair {
+- int firstAtom;
+- int lastAtom;
+- };
++ TriclinicArg triclinic_;
+ /// Vector containing atom ranges to be imaged (first to last)
+- std::vector<atomPair> imageList;
+-
+- public:
+- Image();
+- ~Image();
++ std::vector<int> imageList_;
+
+ int init();
+ int setup();
+diff --git a/AmberTools/src/cpptraj/src/CpptrajState.cpp b/AmberTools/src/cpptraj/src/CpptrajState.cpp
+index 7aa0e9e..4ce4228 100644
+--- a/AmberTools/src/cpptraj/src/CpptrajState.cpp
++++ b/AmberTools/src/cpptraj/src/CpptrajState.cpp
+@@ -209,11 +209,16 @@ int CpptrajState::Run() {
+ }
+ // Set current parm from current traj.
+ CurrentParm = traj->TrajParm();
++ // Check if parm has changed
++ bool parmHasChanged = (lastPindex != CurrentParm->pindex);
+
+- // If Parm has changed, reset Frame and actions for new topology.
+- if (lastPindex != CurrentParm->pindex) {
+- // Set up the incoming trajectory frame for this parm
++ // If Parm has changed or trajectory velocity status has changed,
++ // reset the frame.
++ if (parmHasChanged || ((TrajFrame.V != NULL) != traj->HasVelocity()))
+ TrajFrame.SetupFrameV(CurrentParm->natom, CurrentParm->mass, traj->HasVelocity());
++
++ // If Parm has changed, reset actions for new topology.
++ if (parmHasChanged) {
+ // Set up actions for this parm
+ if (actionList.Setup( &CurrentParm )) {
+ mprintf("WARNING: Could not set up actions for %s: skipping.\n",
+diff --git a/AmberTools/src/cpptraj/src/Frame.cpp b/AmberTools/src/cpptraj/src/Frame.cpp
+index 3a8add6..0adbe67 100644
+--- a/AmberTools/src/cpptraj/src/Frame.cpp
++++ b/AmberTools/src/cpptraj/src/Frame.cpp
+@@ -462,20 +462,29 @@ void Frame::InverseRotate(double *T) {
+ * or box center. Use geometric center if mass is NULL, otherwise center
+ * of mass will be used.
+ */
+-void Frame::Center(AtomMask *Mask, double *boxcoord, bool useMassIn) {
++void Frame::Center(AtomMask& Mask, bool origin, bool useMassIn) {
+ double center[3];
+
+ if (useMassIn)
+- this->CenterOfMass(Mask, center);
++ this->CenterOfMass(&Mask, center);
+ else
+- this->GeometricCenter(Mask, center);
++ this->GeometricCenter(&Mask, center);
+ //mprinterr(" FRAME CENTER: %lf %lf %lf\n",center[0],center[1],center[2]); //DEBUG
+
+- // Shift to whatever is in boxcoord (origin or center of box in Action_Center)
+- center[0] = boxcoord[0] - center[0];
+- center[1] = boxcoord[1] - center[1];
+- center[2] = boxcoord[2] - center[2];
++ if (origin) {
++ // Shift to coordinate origin (0,0,0)
++ center[0] = -center[0];
++ center[1] = -center[1];
++ center[2] = -center[2];
++ } else {
++ // Shift to box center
++ center[0] = (box[0] / 2) - center[0];
++ center[1] = (box[1] / 2) - center[1];
++ center[2] = (box[2] / 2) - center[2];
++ }
++
+ this->Translate(center);
++
+ }
+
+ // Frame::CenterReference()
+@@ -510,6 +519,202 @@ void Frame::ShiftToGeometricCenter( ) {
+ this->Translate(frameCOM);
+ }
+
++void Frame::SetupImageTruncoct( double* fcom, AtomMask* ComMask, bool useMass, bool origin )
++{
++ // Set up centering if putting nonortho cell into familiar trunc. oct. shape
++ //if (truncoct) {
++ if (ComMask!=NULL) {
++ // Use center of atoms in mask
++ if (useMass)
++ CenterOfMass(ComMask, fcom);
++ else
++ GeometricCenter(ComMask, fcom);
++ } else if (origin) {
++ // Use origin
++ fcom[0] = 0;
++ fcom[1] = 0;
++ fcom[2] = 0;
++ } else {
++ // Use box center
++ fcom[0] = box[0] / 2;
++ fcom[1] = box[1] / 2;
++ fcom[2] = box[2] / 2;
++ }
++ //fprintf(stdout,"DEBUG: fcom = %lf %lf %lf\n",fcom[0],fcom[1],fcom[2]);
++ //}
++}
++
++// Frame::ImageNonortho()
++void Frame::ImageNonortho(bool origin, double* fcom, double* ucell, double* recip,
++ bool truncoct, bool center,
++ bool useMass, std::vector<int> &AtomPairs)
++{
++ //double ucell[9], recip[9],
++ double boxTrans[3], Coord[3];
++ // fcom and ixyz only needed for truncoct
++ //double fcom[3];
++
++ //BoxToRecip(ucell, recip);
++
++ // Loop over atom pairs
++ for (std::vector<int>::iterator atom = AtomPairs.begin();
++ atom != AtomPairs.end();
++ atom++)
++ {
++ int firstAtom = *atom;
++ ++atom;
++ int lastAtom = *atom;
++ //if (debug>2)
++ // mprintf( " IMAGE processing atoms %i to %i\n", firstAtom+1, lastAtom);
++ // boxTrans will hold calculated translation needed to move atoms back into box
++ boxTrans[0] = 0;
++ boxTrans[1] = 0;
++ boxTrans[2] = 0;
++ // Set up Coord with position to check for imaging based on first atom or
++ // center of mass of atoms first to last.
++ if (center) {
++ if (useMass)
++ CenterOfMass(Coord,firstAtom,lastAtom);
++ else
++ GeometricCenter(Coord,firstAtom,lastAtom);
++ } else {
++ int atomidx = firstAtom * 3;
++ Coord[0] = X[atomidx];
++ ++atomidx;
++ Coord[1] = X[atomidx];
++ ++atomidx;
++ Coord[2] = X[atomidx];
++ }
++
++ ImageNonortho(boxTrans, Coord, truncoct, origin,
++ ucell, recip, fcom);
++
++ Translate(boxTrans, firstAtom, lastAtom);
++
++ } // END loop over atom pairs
++}
++
++// Frame::ImageNonortho()
++void Frame::ImageNonortho(double* boxTrans, double* Coord,
++ bool truncoct, bool origin,
++ double* ucell, double* recip, double* fcom)
++{
++ double fc[3], ffc[3];
++ int ixyz[3];
++
++ fc[0]=(Coord[0]*recip[0]) + (Coord[1]*recip[1]) + (Coord[2]*recip[2]);
++ fc[1]=(Coord[0]*recip[3]) + (Coord[1]*recip[4]) + (Coord[2]*recip[5]);
++ fc[2]=(Coord[0]*recip[6]) + (Coord[1]*recip[7]) + (Coord[2]*recip[8]);
++
++ if ( origin ) {
++ fc[0] += 0.5;
++ fc[1] += 0.5;
++ fc[2] += 0.5;
++ }
++
++ ffc[0] = floor(fc[0]);
++ ffc[1] = floor(fc[1]);
++ ffc[2] = floor(fc[2]);
++
++ boxTrans[0] -= (ffc[0]*ucell[0] + ffc[1]*ucell[3] + ffc[2]*ucell[6]);
++ boxTrans[1] -= (ffc[0]*ucell[1] + ffc[1]*ucell[4] + ffc[2]*ucell[7]);
++ boxTrans[2] -= (ffc[0]*ucell[2] + ffc[1]*ucell[5] + ffc[2]*ucell[8]);
++
++ // Put into familiar trunc. oct. shape
++ if (truncoct) {
++ Coord[0] += boxTrans[0];
++ Coord[1] += boxTrans[1];
++ Coord[2] += boxTrans[2];
++ MinImageNonOrtho2(Coord, fcom, box, (int)origin, ixyz, ucell, recip);
++ if (ixyz[0] != 0 || ixyz[1] != 0 || ixyz[2] != 0) {
++ boxTrans[0] += (ixyz[0]*ucell[0] + ixyz[1]*ucell[3] + ixyz[2]*ucell[6]);
++ boxTrans[1] += (ixyz[0]*ucell[1] + ixyz[1]*ucell[4] + ixyz[2]*ucell[7]);
++ boxTrans[2] += (ixyz[0]*ucell[2] + ixyz[1]*ucell[5] + ixyz[2]*ucell[8]);
++
++ //if (debug > 2)
++ // mprintf( " IMAGING, FAMILIAR OFFSETS ARE %i %i %i\n",
++ // ixyz[0], ixyz[1], ixyz[2]);
++ }
++ }
++}
++
++void Frame::SetupImageOrtho(double* bp, double* bm, bool origin) {
++ // Set up boundary information for orthorhombic cell
++ if (origin) {
++ bp[0] = box[0] / 2;
++ bp[1] = box[1] / 2;
++ bp[2] = box[2] / 2;
++ bm[0] = -bp[0];
++ bm[1] = -bp[1];
++ bm[2] = -bp[2];
++ } else {
++ bp[0] = box[0];
++ bp[1] = box[1];
++ bp[2] = box[2];
++ bm[0] = 0;
++ bm[1] = 0;
++ bm[2] = 0;
++ }
++}
++
++// Frame::ImageOrtho()
++void Frame::ImageOrtho(double* bp, double* bm, bool center, bool useMass,
++ std::vector<int> &AtomPairs)
++{
++ double boxTrans[3], Coord[3];
++
++ // Loop over atom pairs
++ for (std::vector<int>::iterator atom = AtomPairs.begin();
++ atom != AtomPairs.end();
++ atom++)
++ {
++ int firstAtom = *atom;
++ ++atom;
++ int lastAtom = *atom;
++ //if (debug>2)
++ // mprintf( " IMAGE processing atoms %i to %i\n", firstAtom+1, lastAtom);
++ // boxTrans will hold calculated translation needed to move atoms back into box
++ boxTrans[0] = 0;
++ boxTrans[1] = 0;
++ boxTrans[2] = 0;
++ // Set up Coord with position to check for imaging based on first atom or
++ // center of mass of atoms first to last.
++ if (center) {
++ if (useMass)
++ CenterOfMass(Coord,firstAtom,lastAtom);
++ else
++ GeometricCenter(Coord,firstAtom,lastAtom);
++ } else {
++ int atomidx = firstAtom * 3;
++ Coord[0] = X[atomidx];
++ ++atomidx;
++ Coord[1] = X[atomidx];
++ ++atomidx;
++ Coord[2] = X[atomidx];
++ }
++ ImageOrtho(boxTrans, Coord,bp,bm);
++
++ // Translate atoms according to Coord
++ Translate(boxTrans,firstAtom,lastAtom);
++ } // END loop over atom pairs
++}
++
++void Frame::ImageOrtho(double* boxTrans, double* Coord, double* bp, double* bm)
++{
++ // Determine how far Coord is out of box
++ for (int i=0; i < 3; i++) {
++ while (Coord[i] < bm[i]) {
++ Coord[i] += box[i];
++ boxTrans[i] += box[i];
++ }
++ while (Coord[i] > bp[i]) {
++ Coord[i] -= box[i];
++ boxTrans[i] -= box[i];
++ }
++ }
++}
++
++
+ /* -------------- Coordinate Assignment/Extraction Routines ----------------- */
+ // Frame::printAtomCoord()
+ /** Print XYZ coords of given atom */
+diff --git a/AmberTools/src/cpptraj/src/Frame.h b/AmberTools/src/cpptraj/src/Frame.h
+index fb9be8b..b24f86c 100644
+--- a/AmberTools/src/cpptraj/src/Frame.h
++++ b/AmberTools/src/cpptraj/src/Frame.h
+@@ -53,9 +53,15 @@ class Frame {
+ void Trans_Rot_Trans(double *, double *);
+ void Rotate(double *);
+ void InverseRotate(double *);
+- void Center(AtomMask *, double *,bool);
++ void Center(AtomMask&, bool,bool);
+ void CenterReference(double *, bool);
+ void ShiftToGeometricCenter();
++ void SetupImageTruncoct(double*, AtomMask*,bool,bool);
++ void ImageNonortho(bool, double*, double*, double*, bool, bool, bool, std::vector<int> &);
++ void ImageNonortho(double*, double*, bool, bool, double*, double*, double*);
++ void SetupImageOrtho(double*, double*, bool);
++ void ImageOrtho(double*,double*, bool, bool, std::vector<int> &);
++ void ImageOrtho(double*, double*, double*, double*);
+ // Coordinate assignment/extraction
+ void printAtomCoord(int);
+ void GetCoord(double *, int);
+diff --git a/AmberTools/src/cpptraj/src/Parm_CharmmPsf.cpp b/AmberTools/src/cpptraj/src/Parm_CharmmPsf.cpp
+index 98d1059..c11edc1 100644
+--- a/AmberTools/src/cpptraj/src/Parm_CharmmPsf.cpp
++++ b/AmberTools/src/cpptraj/src/Parm_CharmmPsf.cpp
+@@ -14,7 +14,7 @@ int CharmmPsfParmFile::ReadParm(AmberParm &parmOut, CpptrajFile &parmfile) {
+ int bondatoms[8];
+ int currResnum;
+ int psfresnum;
+- int psfattype;
++ char psfattype[6];
+ int nbond,nlines;
+
+ mprintf(" Reading Charmm PSF file %s as topology file.\n",parmOut.parmName);
+@@ -58,8 +58,8 @@ int CharmmPsfParmFile::ReadParm(AmberParm &parmOut, CpptrajFile &parmfile) {
+ //if (buffer[bufferLen-1] == '\n') buffer[bufferLen-1]='\0';
+ // Read line
+ // ATOM# SEGID RES# RES ATNAME ATTYPE CHRG MASS (REST OF COLUMNS ARE LIKELY FOR CMAP AND CHEQ)
+- sscanf(buffer,"%*i %*s %i %s %s %i %lf %lf",&psfresnum,psfresname,psfname,
+- &psfattype,parmOut.charge+atom,parmOut.mass+atom);
++ sscanf(buffer,"%*i %*s %i %s %s %s %lf %lf",&psfresnum,psfresname,psfname,
++ psfattype,parmOut.charge+atom,parmOut.mass+atom);
+ // Ensure name has 4 chars
+ PadWithSpaces( psfname );
+ strcpy(parmOut.names[atom],psfname);
+diff --git a/AmberTools/src/cpptraj/src/Traj_AmberRestart.cpp b/AmberTools/src/cpptraj/src/Traj_AmberRestart.cpp
+index d2a398a..6d060a6 100644
+--- a/AmberTools/src/cpptraj/src/Traj_AmberRestart.cpp
++++ b/AmberTools/src/cpptraj/src/Traj_AmberRestart.cpp
+@@ -9,6 +9,7 @@
+ // CONSTRUCTOR
+ AmberRestart::AmberRestart() {
+ restartAtoms=0;
++ coordSize_ = 0;
+ frameSize=0;
+ frameBuffer=NULL;
+ numBoxCoords=0;
+@@ -218,6 +219,7 @@ int AmberRestart::setupRead(AmberParm *trajParm) {
+ // For DOS files CR present before newline
+ if (tfile->isDos) frame_lines*=2;
+ frameSize = ((natom3 * 12) + frame_lines);
++ coordSize_ = frameSize;
+ frameBuffer=(char*) malloc(frameSize*sizeof(char));
+ //if (debug>0) mprintf(" Amber Restart frameSize= %i\n",frameSize);
+
+@@ -302,13 +304,16 @@ int AmberRestart::readFrame(int set,double *X,double *V,double *box, double *T)
+ return 1;
+ }
+ // Get velocity from buffer if present
+- if (hasVelocity && V!=NULL) {
+- if ( (bufferPosition = BufferToDouble(bufferPosition, V, natom3, 12))==NULL ) {
+- mprinterr("Error: AmberRestart::getFrame: * detected in velocities of %s\n",
+- tfile->filename);
+- return 1;
++ if (hasVelocity) {
++ if (V != NULL) {
++ if ( (bufferPosition = BufferToDouble(bufferPosition, V, natom3, 12))==NULL ) {
++ mprinterr("Error: AmberRestart::getFrame: * detected in velocities of %s\n",
++ tfile->filename);
++ return 1;
++ }
++ } else {
++ bufferPosition += coordSize_;
+ }
+- //F->V->printAtomCoord(0);
+ }
+ // Get box from buffer if present
+ if (hasBox) {
+diff --git a/AmberTools/src/cpptraj/src/Traj_AmberRestart.h b/AmberTools/src/cpptraj/src/Traj_AmberRestart.h
+index ba21b2a..b231874 100644
+--- a/AmberTools/src/cpptraj/src/Traj_AmberRestart.h
++++ b/AmberTools/src/cpptraj/src/Traj_AmberRestart.h
+@@ -7,6 +7,7 @@ class AmberRestart : public TrajectoryIO {
+ int restartAtoms; ///< Number of atoms in restart file
+ int natom3; ///< Number of coords
+ int frameSize; ///< Size of 1 coord frame in bytes, inc box & velo if present
++ size_t coordSize_; ///< Size of 1 coord frame in bytes, used for blank reads.
+ char *frameBuffer; ///< Used to read in restart coord
+ int numBoxCoords; ///< Number of box coords (3 or 6)
+ double restartTime; ///< Time in restart file, read in
+diff --git a/AmberTools/src/cpptraj/src/Traj_CharmmDcd.cpp b/AmberTools/src/cpptraj/src/Traj_CharmmDcd.cpp
+index 8563938..6074b05 100644
+--- a/AmberTools/src/cpptraj/src/Traj_CharmmDcd.cpp
++++ b/AmberTools/src/cpptraj/src/Traj_CharmmDcd.cpp
+@@ -203,7 +203,39 @@ int CharmmDcd::WriteBlock(int blocksize) {
+ /** Call openTraj, which reads the DCD header and all necessary info.
+ */
+ int CharmmDcd::setupRead(AmberParm *trajParm) {
++ size_t boxBytes, dim;
+ if ( openTraj() ) return -1;
++ // DCD file may have less frames than is stored in the header.
++ // Check the file size against the reported number of frames.
++ if (hasBox)
++ boxBytes = 56; // 6(crds) * 8(double) + 4(hdr) + 4(end hdr)
++ else
++ boxBytes = 0;
++ if (dcd4D)
++ dim = 4;
++ else
++ dim = 3;
++ size_t dimBytes = dim * sizeof(float);
++ size_t frame1Bytes = (((size_t) dcdatom+2 ) * dimBytes) + boxBytes;
++ size_t frameNBytes = (((size_t)(dcdatom - namnf)+2) * dimBytes) + boxBytes;
++ // Header size should be current position after open, which automatically
++ // reads DCD header.
++ size_t headerBytes = (size_t)tfile->IO->Tell();
++ size_t file_size = (size_t)tfile->file_size - headerBytes - frame1Bytes;
++ if ( (file_size % frameNBytes) != 0 ) {
++ mprintf("Warning: %s: Number of frames in DCD file could not be accurately determined.\n",
++ tfile->filename);
++ mprintf("Warning:\t\tFile may be corrupted.\n");
++ }
++ int nframes = (int)(file_size / frameNBytes) + 1; // +1 for first frame
++ if (nframes != dcdframes) {
++ mprintf("Warning: %s: Reported number of frames in DCD file is %i,\n",
++ tfile->filename, dcdframes);
++ mprintf("Warning:\tactual number of frames is %i. Only reading %i frames.\n",
++ nframes, nframes);
++ dcdframes = nframes;
++ }
++
+ closeTraj();
+ return dcdframes;
+ }
+diff --git a/AmberTools/src/cpptraj/src/TrajectoryFile.cpp b/AmberTools/src/cpptraj/src/TrajectoryFile.cpp
+index e51b442..1fb8d14 100644
+--- a/AmberTools/src/cpptraj/src/TrajectoryFile.cpp
++++ b/AmberTools/src/cpptraj/src/TrajectoryFile.cpp
+@@ -635,6 +635,7 @@ FileFormat TrajectoryFile::getFmtFromArg(ArgList *argIn, FileFormat def) {
+ else if ( argIn->hasKey("restartnc")) writeFormat=AMBERRESTARTNC;
+ else if ( argIn->hasKey("mol2") ) writeFormat=MOL2FILE;
+ else if ( argIn->hasKey("dcd") ) writeFormat=CHARMMDCD;
++ else if ( argIn->hasKey("charmm") ) writeFormat=CHARMMDCD;
+ return writeFormat;
+ }
+
+diff --git a/AmberTools/src/cpptraj/src/cpptrajdepend b/AmberTools/src/cpptraj/src/cpptrajdepend
+index c8a9751..27016ab 100644
+--- a/AmberTools/src/cpptraj/src/cpptrajdepend
++++ b/AmberTools/src/cpptraj/src/cpptrajdepend
+@@ -38,13 +38,14 @@ Action_Center.o : Action_Center.cpp Action.h Action_Center.h AmberParm.h ArgList
+ FileIO_Bzip2.o : FileIO_Bzip2.cpp CpptrajStdio.h FileIO.h FileIO_Bzip2.h
+ Action_Hbond.o : Action_Hbond.cpp Action.h Action_Hbond.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h Constants.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h
+ DataSet_integer.o : DataSet_integer.cpp CharBuffer.h CpptrajStdio.h DataSet.h DataSet_integer.h MpiRoutines.h
+-Action_Image.o : Action_Image.cpp Action.h Action_Image.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DistRoutines.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h
++Action_Image.o : Action_Image.cpp Action.h Action_Image.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h
+ Action_Surf.o : Action_Surf.cpp Action.h Action_Surf.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h Constants.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h
+ Action_Radgyr.o : Action_Radgyr.cpp Action.h Action_Radgyr.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h
+ Action_Mask.o : Action_Mask.cpp Action.h Action_Mask.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h ProgressBar.h Range.h TrajectoryFile.h TrajectoryIO.h
+ Action_Closest.o : Action_Closest.cpp Action.h Action_Closest.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFile.h ParmFileList.h
+ NetcdfRoutines.o : NetcdfRoutines.cpp CpptrajStdio.h NetcdfRoutines.h
+ CpptrajStdio.o : CpptrajStdio.cpp MpiRoutines.h
++Action_AutoImage.o : Action_AutoImage.cpp Action.h Action_AutoImage.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DistRoutines.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h
+ Mol2FileRoutines.o : Mol2FileRoutines.cpp CharBuffer.h CpptrajFile.h CpptrajStdio.h FileIO.h FileRoutines.h Mol2FileRoutines.h Name.h
+ Action_NAstruct.o : Action_NAstruct.cpp Action.h Action_NAstruct.h AmberParm.h ArgList.h AtomMask.h AxisType.h Bonds.h BoxType.h CharBuffer.h Constants.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DistRoutines.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h Range.h vectormath.h
+ DistRoutines.o : DistRoutines.cpp Constants.h DistRoutines.h
+@@ -80,7 +81,7 @@ Action_Jcoupling.o : Action_Jcoupling.cpp Action.h Action_Jcoupling.h AmberParm.
+ TriangleMatrix.o : TriangleMatrix.cpp CpptrajStdio.h TriangleMatrix.h
+ Action_Clustering.o : Action_Clustering.cpp Action.h Action_Clustering.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h ClusterList.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h ProgressBar.h Range.h TrajectoryFile.h TrajectoryIO.h TriangleMatrix.h
+ ClusterList.o : ClusterList.cpp CharBuffer.h ClusterList.h CpptrajFile.h CpptrajStdio.h FileIO.h FileRoutines.h TriangleMatrix.h
+-Traj_CharmmDcd.o : Traj_CharmmDcd.cpp AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h FileIO.h FileRoutines.h Name.h Traj_CharmmDcd.h TrajectoryIO.h
++Traj_CharmmDcd.o : Traj_CharmmDcd.cpp AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h Constants.h CpptrajFile.h CpptrajStdio.h FileIO.h FileRoutines.h Name.h Traj_CharmmDcd.h TrajectoryIO.h
+ Bonds.o : Bonds.cpp Bonds.h CpptrajStdio.h Name.h
+ FileRoutines.o : FileRoutines.cpp FileRoutines.h
+ Action_Pairwise.o : Action_Pairwise.cpp Action.h Action_Pairwise.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h ProgressBar.h Range.h TrajectoryFile.h TrajectoryIO.h vectormath.h
+diff --git a/AmberTools/src/cpptraj/src/cpptrajfiles b/AmberTools/src/cpptraj/src/cpptrajfiles
+index f7ecc50..9c05282 100644
+--- a/AmberTools/src/cpptraj/src/cpptrajfiles
++++ b/AmberTools/src/cpptraj/src/cpptrajfiles
+@@ -10,7 +10,7 @@ SOURCE=main.cpp AmberParm.cpp \
+ Action_DSSP.cpp DataSet_string.cpp Action_Center.cpp FileIO_Bzip2.cpp \
+ Action_Hbond.cpp DataSet_integer.cpp Action_Image.cpp Action_Surf.cpp \
+ Action_Radgyr.cpp Action_Mask.cpp Action_Closest.cpp \
+- NetcdfRoutines.cpp CpptrajStdio.cpp \
++ NetcdfRoutines.cpp CpptrajStdio.cpp Action_AutoImage.cpp \
+ Mol2FileRoutines.cpp Action_NAstruct.cpp DistRoutines.cpp AxisType.cpp \
+ TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp \
+ Action_Rms2d.cpp ProgressBar.cpp TrajectoryIO.cpp \
+@@ -42,7 +42,7 @@ OBJECTS=main.o AmberParm.o \
+ Action_DSSP.o DataSet_string.o Action_Center.o FileIO_Bzip2.o \
+ Action_Hbond.o DataSet_integer.o Action_Image.o Action_Surf.o \
+ Action_Radgyr.o Action_Mask.o Action_Closest.o \
+- NetcdfRoutines.o CpptrajStdio.o \
++ NetcdfRoutines.o CpptrajStdio.o Action_AutoImage.o \
+ Mol2FileRoutines.o Action_NAstruct.o DistRoutines.o AxisType.o \
+ TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o \
+ Action_Rms2d.o ProgressBar.o TrajectoryIO.o \
+@@ -74,7 +74,7 @@ HEADERS=AmberParm.h \
+ Action_DSSP.h DataSet_string.h Action_Center.h FileIO_Bzip2.h \
+ Action_Hbond.h DataSet_integer.h Action_Image.h Action_Surf.h \
+ Action_Radgyr.h Action_Mask.h Action_Closest.h \
+- NetcdfRoutines.h CpptrajStdio.h \
++ NetcdfRoutines.h CpptrajStdio.h Action_AutoImage.h \
+ Mol2FileRoutines.h Action_NAstruct.h DistRoutines.h AxisType.h \
+ TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h \
+ Action_Rms2d.h ProgressBar.h TrajectoryIO.h \
+diff --git a/AmberTools/src/cpptraj/src/main.cpp b/AmberTools/src/cpptraj/src/main.cpp
+index 23f290e..4fc0434 100644
+--- a/AmberTools/src/cpptraj/src/main.cpp
++++ b/AmberTools/src/cpptraj/src/main.cpp
+@@ -9,7 +9,7 @@
+ #include <cstdio>
+ #include <cstdlib> // atoi
+ #ifndef CPPTRAJ_VERSION_STRING
+-#define CPPTRAJ_VERSION_STRING "V12.1"
++#define CPPTRAJ_VERSION_STRING "V12.4"
+ #define CPPTRAJ_INTERNAL_VERSION "V2.4.7b"
+ #endif
+
+diff --git a/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py b/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
+index b01b891..0349ba9 100644
+--- a/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
++++ b/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
+@@ -1152,7 +1152,7 @@ class BindingStatistics(object):
+ classes and returns the average and standard deviation of that diff.
+ """
+ if len(self.data[key1]) != len(other.data[key2]):
+- return (self.data[key1].avg() - self.data[key2].avg(),
++ return (self.data[key1].avg() - other.data[key2].avg(),
+ sqrt(self.data[key1].stdev()**2 + other.data[key2].stdev()**2))
+
+ mydiff = self.data[key1] - other.data[key2]
+diff --git a/AmberTools/src/mmpbsa_py/MMPBSA_mods/calculation.py b/AmberTools/src/mmpbsa_py/MMPBSA_mods/calculation.py
+index dd010e7..6a2cd98 100644
+--- a/AmberTools/src/mmpbsa_py/MMPBSA_mods/calculation.py
++++ b/AmberTools/src/mmpbsa_py/MMPBSA_mods/calculation.py
+@@ -104,7 +104,8 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
+
+ if not stability:
+ # Don't re-run the receptor if we don't have to
+- if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop:
++ if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop \
++ and not INPUT['mutant_only']:
+ print ' no mutation found in receptor -- using unmutated files'
+ shutil.copy('%sreceptor_gb.mdout.%d' % (
+ prefix[:prefix.index('mutant')], rank),
+@@ -127,7 +128,8 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
+ calc.Setup()
+ calc.Run()
+
+- if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop:
++ if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop \
++ and not INPUT['mutant_only']:
+ print ' no mutation found in ligand -- using unmutated files'
+ shutil.copy('%sligand_gb.mdout.%d' % (
+ prefix[:prefix.index('mutant')], rank),
+@@ -166,15 +168,16 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
+
+ print ' calculating complex contribution...'
+
+- calc = EnergyCalculation(progs['pb'], parmsystem.complex_prmtop,
++ calc = PBEnergyCalculation(progs['pb'], parmsystem.complex_prmtop,
+ incrd, '%scomplex.%s.%d' % (prefix, trj_sfx, rank), mdin,
+ '%scomplex_pb.mdout.%d' % (prefix, rank),
+ '_MMPBSA_restrt.%d' % rank)
+ calc.Setup()
+- calc.Run(stdout=os.devnull)
++ calc.Run()
+
+ if not stability:
+- if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop:
++ if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop \
++ and not INPUT['mutant_only']:
+ print ' no mutation found in receptor -- using unmutated files'
+ shutil.copy('%sreceptor_pb.mdout.%d' % (
+ prefix[:prefix.index('mutant')], rank),
+@@ -188,14 +191,15 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
+ if 'mmpbsa_py_energy' in progs['pb']: incrd = '%sreceptor.pdb' % prefix
+ else: incrd = '%sdummyreceptor.inpcrd' % prefix
+
+- calc = EnergyCalculation(progs['pb'], parmsystem.receptor_prmtop,
++ calc = PBEnergyCalculation(progs['pb'], parmsystem.receptor_prmtop,
+ incrd, '%sreceptor.%s.%d' % (prefix, trj_sfx, rank), mdin,
+ '%sreceptor_pb.mdout.%d' % (prefix, rank),
+ '_MMPBSA_restrt.%d' % rank)
+ calc.Setup()
+- calc.Run(stdout=os.devnull)
++ calc.Run()
+
+- if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop:
++ if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop \
++ and not INPUT['mutant_only']:
+ print ' no mutation found in ligand -- using unmutated files'
+ shutil.copy('%sligand_pb.mdout.%d' % (
+ prefix[:prefix.index('mutant')], rank),
+@@ -207,12 +211,12 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
+ if 'mmpbsa_py_energy' in progs['pb']: incrd = '%sligand.pdb' % prefix
+ else: incrd = '%sdummyligand.inpcrd' % prefix
+
+- calc = EnergyCalculation(progs['pb'], parmsystem.ligand_prmtop,
++ calc = PBEnergyCalculation(progs['pb'], parmsystem.ligand_prmtop,
+ incrd, '%sligand.%s.%d' % (prefix, trj_sfx, rank), mdin,
+ '%sligand_pb.mdout.%d' % (prefix, rank),
+ '_MMPBSA_restrt.%d' % rank)
+ calc.Setup()
+- calc.Run(stdout=os.devnull)
++ calc.Run()
+
+ MMPBSA_Timer.StopTimer('pb')
+
+@@ -232,7 +236,8 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
+ calc.Run()
+
+ if not stability:
+- if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop:
++ if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop \
++ and not INPUT['mutant_only']:
+ print ' no mutation found in receptor -- using unmutated files'
+ shutil.copy('%sreceptor_rism.mdout.%d' % (
+ prefix[:prefix.index('mutant')], rank),
+@@ -246,7 +251,8 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
+ calc.Setup()
+ calc.Run()
+
+- if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop:
++ if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop \
++ and not INPUT['mutant_only']:
+ print ' no mutation found in ligand -- using unmutated files'
+ shutil.copy('%sligand_rism.mdout.%d' % (
+ prefix[:prefix.index('mutant')], rank),
+@@ -278,7 +284,8 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
+ calc.Run()
+
+ if not stability:
+- if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop:
++ if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop \
++ and not INPUT['mutant_only']:
+ print ' no mutation found in receptor -- using unmutated files'
+ shutil.copy('%sreceptor_nm.out.%d' % (
+ prefix[:prefix.index('mutant')], rank),
+@@ -291,7 +298,8 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
+ calc.Setup()
+ calc.Run()
+
+- if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop:
++ if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop \
++ and not INPUT['mutant_only']:
+ print ' no mutation found in ligand -- using unmutated files'
+ shutil.copy('%sligand_nm.out.%d' % (
+ prefix[:prefix.index('mutant')], rank),
+@@ -605,3 +613,55 @@ class QuasiHarmCalc(Calculation):
+ Calculation.Run(self, stdout=self.output)
+
+ #+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
++
++class PBEnergyCalculation(EnergyCalculation):
++ """
++ Specially handle the PB calculations to extract warnings and errors PBSA
++ prints to stdout and redirect them to the user
++ """
++ def Run(self, stderr=sys.stderr):
++ """ Runs the program. All command-line arguments must be set before
++ calling this method. Command-line arguments should be set in Setup()
++ """
++ import re
++ from subprocess import Popen, PIPE
++
++ # If this has not been set up yet
++ # then raise a stink
++ if not self.calc_setup:
++ raise CalcError('Cannot run a calculation without calling its' +
++ ' its Setup() function!')
++
++ errorre = re.compile('(pb (?:bomb)|(?:warning))', re.I)
++ # Here, make sure that we could pass a file *OR* a string as stderr.
++ if type(stderr).__name__ == 'str':
++ stderr_is_string = True
++ process_stderr = open(stderr, 'w', 0)
++ else:
++ stderr_is_string = False
++ process_stderr = stderr
++
++ # The Setup() method sets the command-line arguments and makes sure that
++ # all of the CL arguments are set. Now all we have to do is start the
++ # process and monitor it for success.
++
++ # Popen can only take strings as command-line arguments, so convert
++ # everything to a string here
++ for i in range(len(self.command_args)):
++ self.command_args[i] = str(self.command_args[i])
++
++ process = Popen(self.command_args, stdin=None, stdout=PIPE,
++ stderr=process_stderr)
++
++ out, err = process.communicate('')
++ calc_failed = bool(process.wait())
++
++ if stderr_is_string: process_stderr.close()
++
++ if calc_failed:
++ error_list = [s.strip() for s in out.split('\n')
++ if errorre.match(s.strip())]
++ raise CalcError('%s failed with prmtop %s!\n\t' % (self.program,
++ self.prmtop) + '\n\t'.join(error_list) + '\n')
++
++#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+diff --git a/AmberTools/src/parmed/ParmedTools/ParmedActions.py b/AmberTools/src/parmed/ParmedTools/ParmedActions.py
+index 4dd905f..4ea4a52 100644
+--- a/AmberTools/src/parmed/ParmedTools/ParmedActions.py
++++ b/AmberTools/src/parmed/ParmedTools/ParmedActions.py
+@@ -604,16 +604,15 @@ class changeljsingletype(Action):
+ from math import sqrt
+ from ParmedTools.exceptions import LJ_TypeError
+ # If this is an empty mask do nothing
+- if not self.orig_radius: return
++ if self.orig_radius is None: return
+ # Make sure we've only selected a single atom type with our mask
+ attype = None
+- iter = 0
+- for sel in self.mask.Selection():
++ for i, sel in enumerate(self.mask.Selection()):
+ if sel == 1:
+- if not attype:
+- attype = self.parm.parm_data['ATOM_TYPE_INDEX'][iter]
++ if attype is None:
++ attype = self.parm.parm_data['ATOM_TYPE_INDEX'][i]
+ else:
+- if attype != self.parm.parm_data['ATOM_TYPE_INDEX'][iter]:
++ if attype != self.parm.parm_data['ATOM_TYPE_INDEX'][i]:
+ raise LJ_TypeError('changeLJSingleType: ' +
+ 'Selection mask has multiple atom types!')
+ # Fill the Lennard-Jones radius and depth arrays to make sure they're
+@@ -631,10 +630,6 @@ class changeljsingletype(Action):
+ bcoef = 2 * wij * rij ** 6
+ self.parm.parm_data['LENNARD_JONES_ACOEF'][lj_index] = acoef
+ self.parm.parm_data['LENNARD_JONES_BCOEF'][lj_index] = bcoef
+- lj_index = self.parm.parm_data['NONBONDED_PARM_INDEX'][
+- self.parm.ptr('ntypes') * (attype-1) + i] - 1
+- self.parm.parm_data['LENNARD_JONES_ACOEF'][lj_index] = acoef
+- self.parm.parm_data['LENNARD_JONES_BCOEF'][lj_index] = bcoef
+
+ #+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+diff --git a/AmberTools/src/pbsa/gen_dx_file.F90 b/AmberTools/src/pbsa/gen_dx_file.F90
+index 475b6ef..d50e453 100644
+--- a/AmberTools/src/pbsa/gen_dx_file.F90
++++ b/AmberTools/src/pbsa/gen_dx_file.F90
+@@ -37,6 +37,7 @@ subroutine gen_dx_file(xm,ym,zm,h,gox,goy,goz,voldata,filename,fn,dataname)
+ end if
+ end do
+ end do; end do
++ if (.not.(MOD(cnt,3).eq. 0) ) write(fn,*) ''
+ write(fn,*) 'attribute "dep" string "positions"'
+ write(fn,*) 'object "',dataname,'" class field'
+ write(fn,*) 'component "positions" value 1'
+diff --git a/AmberTools/src/pbsa/pb_force.F90 b/AmberTools/src/pbsa/pb_force.F90
+index 37337bd..52f1edf 100644
+--- a/AmberTools/src/pbsa/pb_force.F90
++++ b/AmberTools/src/pbsa/pb_force.F90
+@@ -1399,7 +1399,7 @@ subroutine pb_fdfrc( pbverbose,pbprint,pbgrid,ifcap,ipb,imin,natom,atmlast,npdec
+ close(64)
+ elseif ( phiform == 2 ) then
+ !write dx format phi
+- call gen_dx_file(xm,ym,zm,h,gox,goy,goz,phi(1:xmymzm),&
++ call gen_dx_file(xm,ym,zm,h,gox,goy,goz,frcfac*phi(1:xmymzm),&
+ phifilename,phifilenum,phidataname)
+ ! write(6,*) 'writing potential map in dx format'
+ ! open(67,file='pbsa_phi.dx')
+diff --git a/AmberTools/src/sqm/constants.F90 b/AmberTools/src/sqm/constants.F90
+index 590cc71..c19fd06 100644
+--- a/AmberTools/src/sqm/constants.F90
++++ b/AmberTools/src/sqm/constants.F90
+@@ -84,18 +84,23 @@ module constants
+ !------------------------------------------------------------
+ ! THE ARRAY FC(I) CONTAINS THE FACTORIALS OF (I-1).
+
+- _REAL_, parameter :: FC(1:17) =&
+- (/ 1.0D0,1.0D0, 2.0D0, 6.0D0, 24.0D0, 120.0D0, 720.0D0, 5040.0D0, &
+- 40320.0D0, 362880.0D0, 3628800.0D0, 39916800.0D0, &
+- 4.790016D+08, 6.2270208D+09, 8.71782912D+10, &
+- 1.307674368D+12, 2.092278989D+13 /)
++ _REAL_, parameter :: FC(1:25) =&
++ (/ 1.0D0,1.0D0, 2.0D0, 6.0D0, 24.0D0, &
++ 120.0D0, 720.0D0, 5040.0D0, 40320.0D0, 362880.0D0, &
++ 3628800.0D0, 39916800.0D0, 4.790016D+08, 6.2270208D+09, 8.71782912D+10, &
++ 1.307674368D+12, 2.092278989D+13, 3.55687428096D+14, 6.402373705728D+15, 1.21645100408832D+17, &
++ 2.43290200817664D+18, 5.109094217170944D+19, 1.12400072777760768D+21, 2.585201673888497664D+22, &
++ 6.2044840173323943936D+23 /)
+
+- _REAL_, parameter :: logFC(1:17) = (/ 0.0D0, 0.0D0, 0.6931471805599D0, &
++ _REAL_, parameter :: logFC(1:25) = (/ 0.0D0, 0.0D0, 0.6931471805599D0, &
+ & 1.7917594692281D0, 3.1780538303479D0, 4.7874917427820D0, &
+ & 6.5792512120101D0, 8.5251613610654D0, 10.6046029027453D0, &
+ & 12.8018274800815D0, 15.1044125730755D0, 17.5023078458739D0, &
+ & 19.9872144956619D0, 22.5521638531234D0, 25.1912211827387D0, &
+- & 27.8992713838409D0, 30.6718601061763D0 /)
++ & 27.8992713838409D0, 30.6718601061763D0, 33.5050734501369D0, &
++ 36.3954452080331D0, 39.3398841871995D0, 42.3356164607535D0, &
++ 45.3801388984769D0, 48.4711813518352D0, 51.6066755677644D0, &
++ 54.7847293981123D0 /)
+
+ ! DEFINE C COEFFICIENTS FOR ASSOCIATE LEGENDRE POLYNOMIALS.
+ _REAL_, parameter::CC(1:21,1:3) = reshape ( (/ &
+diff --git a/AmberTools/src/sqm/depend b/AmberTools/src/sqm/depend
+index 357ef59..0d3db38 100644
+--- a/AmberTools/src/sqm/depend
++++ b/AmberTools/src/sqm/depend
+@@ -599,7 +599,8 @@ qm2_h1elec_d.o: \
+ rotation.o\
+ elementOrbitalIndex.o\
+ slater_overlap.o\
+- qmmm_module.o
++ qmmm_module.o\
++ utilitiesModule.o
+
+
+ qm2_h1elec_d.o: qm2_h1elec_d.F90
+@@ -668,7 +669,8 @@ qm2_parameters.o: \
+ elementOrbitalIndex.o\
+ qmmm_qmtheorymodule.o\
+ parameterReader.o\
+- qmmm_module.o
++ qmmm_module.o\
++ utilitiesModule.o
+
+
+ qm2_parameters.o: qm2_parameters.F90
+@@ -679,7 +681,8 @@ qm2_params_module.o: \
+ ../include/assert.fh\
+ ../include/dprec.fh\
+ elementOrbitalIndex.o\
+- qmmm_qmtheorymodule.o
++ qmmm_qmtheorymodule.o\
++ constants.o
+
+
+ qm2_params_module.o: qm2_params_module.F90
+diff --git a/AmberTools/src/sqm/qm2_parameters.F90 b/AmberTools/src/sqm/qm2_parameters.F90
+index 9985f1f..e762063 100644
+--- a/AmberTools/src/sqm/qm2_parameters.F90
++++ b/AmberTools/src/sqm/qm2_parameters.F90
+@@ -263,6 +263,8 @@ if (currentTheory%MNDOD) then
+ core_chg( 15) = 5; natomic_orbs( 15) = 9; heat_of_form( 15) = 75.570D0 !P
+ core_chg( 16) = 6; natomic_orbs( 16) = 9; heat_of_form( 16) = 66.400D0 !S
+ core_chg( 17) = 7; natomic_orbs( 17) = 9; heat_of_form( 17) = 28.990D0 !Cl
++ core_chg( 35) = 7; natomic_orbs( 35) = 9; heat_of_form( 35) = 26.740D0 !Br
++ core_chg( 53) = 7; natomic_orbs( 53) = 9; heat_of_form( 53) = 25.517D0 !I
+ end if
+
+ if (currentTheory%AM1D) then
+diff --git a/AmberTools/test/mmpbsa_py/04_Per_Residue_Decomp/FINAL_RESULTS_MMPBSA.dat.save b/AmberTools/test/mmpbsa_py/04_Per_Residue_Decomp/FINAL_RESULTS_MMPBSA.dat.save
+index 0390673..f9c1daf 100644
+--- a/AmberTools/test/mmpbsa_py/04_Per_Residue_Decomp/FINAL_RESULTS_MMPBSA.dat.save
++++ b/AmberTools/test/mmpbsa_py/04_Per_Residue_Decomp/FINAL_RESULTS_MMPBSA.dat.save
+@@ -1,11 +1,11 @@
+-| Run on Fri Oct 21 16:59:53 2011
++| Run on Thu Aug 23 19:08:46 2012
+ |
+ |Input file:
+ |--------------------------------------------------------------
+ |MMPBSA input file for running per-residue decomp
+ |&general
+ | startframe=1, endframe=2, interval=1,
+-| keep_files=2, debug_printlevel=2
++| keep_files=1, debug_printlevel=2
+ |/
+ |&gb
+ | igb=5, saltcon=0.1
+@@ -14,7 +14,7 @@
+ | idecomp=1, print_res='1-10; 200-241', csv_format=0,
+ |/
+ |--------------------------------------------------------------
+-|MMPBSA.py Version=3.0
++|MMPBSA.py Version=12.0
+ |Solvated complex topology file: ../EstRAL_Files/sol.top
+ |Complex topology file: ../EstRAL_Files/com.top
+ |Receptor topology file: ../EstRAL_Files/rec.top
+@@ -38,13 +38,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
+ -------------------------------------------------------------------------------
+ VDWAALS -2027.4585 6.6828 4.7254
+ EEL -17102.0128 39.7611 28.1154
+-EGB -3036.0661 15.1517 10.7138
+-ESURF 92.0643 0.2456 0.1737
++EGB -3036.2753 15.1544 10.7158
++ESURF 92.0404 0.2552 0.1805
+
+ G gas -19129.4713 46.4439 32.8408
+-G solv -2944.0018 15.3973 10.8875
++G solv -2944.2348 15.4096 10.8963
+
+-TOTAL -22073.4731 31.0467 21.9533
++TOTAL -22073.7061 31.0343 21.9445
+
+
+ Receptor:
+@@ -52,13 +52,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
+ -------------------------------------------------------------------------------
+ VDWAALS -1963.0469 6.3796 4.5110
+ EEL -17062.3941 41.4017 29.2755
+-EGB -3045.5263 17.9328 12.6804
+-ESURF 94.5901 0.3006 0.2125
++EGB -3045.7452 17.9344 12.6815
++ESURF 94.5395 0.3071 0.2171
+
+ G gas -19025.4410 47.7813 33.7865
+-G solv -2950.9362 18.2334 12.8929
++G solv -2951.2056 18.2415 12.8987
+
+-TOTAL -21976.3773 29.5480 20.8936
++TOTAL -21976.6467 29.5398 20.8878
+
+
+ Ligand:
+@@ -66,13 +66,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
+ -------------------------------------------------------------------------------
+ VDWAALS -2.1842 0.9276 0.6559
+ EEL -5.8905 0.2643 0.1869
+-EGB -28.9823 0.3972 0.2809
+-ESURF 5.5752 0.0080 0.0057
++EGB -28.9847 0.3972 0.2809
++ESURF 5.5941 0.0255 0.0181
+
+ G gas -8.0747 1.1919 0.8428
+-G solv -23.4071 0.4052 0.2865
++G solv -23.3905 0.4228 0.2989
+
+-TOTAL -31.4819 1.5971 1.1293
++TOTAL -31.4653 1.6146 1.1417
+
+
+ Differences (Complex - Receptor - Ligand):
+@@ -80,13 +80,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
+ -------------------------------------------------------------------------------
+ VDWAALS -62.2274 1.2308 0.8703
+ EEL -33.7281 1.3763 0.9732
+-EGB 38.4425 3.1784 2.2474
+-ESURF -8.1010 0.0630 0.0445
++EGB 38.4546 3.1772 2.2466
++ESURF -8.0932 0.0774 0.0547
+
+ DELTA G gas -95.9555 0.1455 0.1029
+-DELTA G solv 30.3415 3.2413 2.2919
++DELTA G solv 30.3614 3.2545 2.3013
+
+-DELTA TOTAL -65.6140 3.0958 2.1890
++DELTA TOTAL -65.5942 3.1090 2.1984
+
+
+ -------------------------------------------------------------------------------
+diff --git a/AmberTools/test/mmpbsa_py/05_Pairwise_Decomp/FINAL_RESULTS_MMPBSA.dat.save b/AmberTools/test/mmpbsa_py/05_Pairwise_Decomp/FINAL_RESULTS_MMPBSA.dat.save
+index f7cbe88..2135ffe 100644
+--- a/AmberTools/test/mmpbsa_py/05_Pairwise_Decomp/FINAL_RESULTS_MMPBSA.dat.save
++++ b/AmberTools/test/mmpbsa_py/05_Pairwise_Decomp/FINAL_RESULTS_MMPBSA.dat.save
+@@ -1,11 +1,11 @@
+-| Run on Fri Oct 21 17:35:19 2011
++| Run on Thu Aug 23 19:09:35 2012
+ |
+ |Input file:
+ |--------------------------------------------------------------
+ |MMPBSA input file for running per-residue decomp
+ |&general
+ | startframe=1, endframe=2, interval=1,
+-| keep_files=2, debug_printlevel=2,
++| keep_files=0, debug_printlevel=2,
+ |/
+ |&gb
+ | igb=5, saltcon=0.1
+@@ -15,7 +15,7 @@
+ | csv_format=0,
+ |/
+ |--------------------------------------------------------------
+-|MMPBSA.py Version=3.0
++|MMPBSA.py Version=12.0
+ |Solvated complex topology file: ../EstRAL_Files/sol.top
+ |Complex topology file: ../EstRAL_Files/com.top
+ |Receptor topology file: ../EstRAL_Files/rec.top
+@@ -39,13 +39,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
+ -------------------------------------------------------------------------------
+ VDWAALS -2027.4585 6.6828 4.7254
+ EEL -17102.0128 39.7611 28.1154
+-EGB -3036.0661 15.1517 10.7138
+-ESURF 92.0643 0.2456 0.1737
++EGB -3036.2753 15.1544 10.7158
++ESURF 92.0404 0.2552 0.1805
+
+ G gas -19129.4713 46.4439 32.8408
+-G solv -2944.0018 15.3973 10.8875
++G solv -2944.2348 15.4096 10.8963
+
+-TOTAL -22073.4731 31.0467 21.9533
++TOTAL -22073.7061 31.0343 21.9445
+
+
+ Receptor:
+@@ -53,13 +53,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
+ -------------------------------------------------------------------------------
+ VDWAALS -1963.0469 6.3796 4.5110
+ EEL -17062.3941 41.4017 29.2755
+-EGB -3045.5263 17.9328 12.6804
+-ESURF 94.5901 0.3006 0.2125
++EGB -3045.7452 17.9344 12.6815
++ESURF 94.5395 0.3071 0.2171
+
+ G gas -19025.4410 47.7813 33.7865
+-G solv -2950.9362 18.2334 12.8929
++G solv -2951.2056 18.2415 12.8987
+
+-TOTAL -21976.3773 29.5480 20.8936
++TOTAL -21976.6467 29.5398 20.8878
+
+
+ Ligand:
+@@ -67,13 +67,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
+ -------------------------------------------------------------------------------
+ VDWAALS -2.1842 0.9276 0.6559
+ EEL -5.8905 0.2643 0.1869
+-EGB -28.9823 0.3972 0.2809
+-ESURF 5.5752 0.0080 0.0057
++EGB -28.9847 0.3972 0.2809
++ESURF 5.5941 0.0255 0.0181
+
+ G gas -8.0747 1.1919 0.8428
+-G solv -23.4071 0.4052 0.2865
++G solv -23.3905 0.4228 0.2989
+
+-TOTAL -31.4819 1.5971 1.1293
++TOTAL -31.4653 1.6146 1.1417
+
+
+ Differences (Complex - Receptor - Ligand):
+@@ -81,13 +81,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
+ -------------------------------------------------------------------------------
+ VDWAALS -62.2274 1.2308 0.8703
+ EEL -33.7281 1.3763 0.9732
+-EGB 38.4425 3.1784 2.2474
+-ESURF -8.1010 0.0630 0.0445
++EGB 38.4546 3.1772 2.2466
++ESURF -8.0932 0.0774 0.0547
+
+ DELTA G gas -95.9555 0.1455 0.1029
+-DELTA G solv 30.3415 3.2413 2.2919
++DELTA G solv 30.3614 3.2545 2.3013
+
+-DELTA TOTAL -65.6140 3.0958 2.1890
++DELTA TOTAL -65.5942 3.1090 2.1984
+
+
+ -------------------------------------------------------------------------------
+diff --git a/AmberTools/test/mmpbsa_py/10_QM_MMGBSA/FINAL_RESULTS_MMPBSA.dat.save b/AmberTools/test/mmpbsa_py/10_QM_MMGBSA/FINAL_RESULTS_MMPBSA.dat.save
+index 1c6672d..4dc52b5 100644
+--- a/AmberTools/test/mmpbsa_py/10_QM_MMGBSA/FINAL_RESULTS_MMPBSA.dat.save
++++ b/AmberTools/test/mmpbsa_py/10_QM_MMGBSA/FINAL_RESULTS_MMPBSA.dat.save
+@@ -1,4 +1,4 @@
+-| Run on Sun Feb 19 11:48:15 2012
++| Run on Thu Aug 23 19:12:17 2012
+ |
+ |Input file:
+ |--------------------------------------------------------------
+@@ -13,7 +13,7 @@
+ | qm_theory='PM3',
+ |/
+ |--------------------------------------------------------------
+-|MMPBSA.py Version=3.1
++|MMPBSA.py Version=12.0
+ |Solvated complex topology file: ../EstRAL_Files/sol.top
+ |Complex topology file: ../EstRAL_Files/com.top
+ |Receptor topology file: ../EstRAL_Files/rec.top
+@@ -38,14 +38,14 @@ Energy Component Average Std. Dev. Std. Err. of Mean
+ -------------------------------------------------------------------------------
+ VDWAALS -2025.2744 7.6103 5.3813
+ EEL -17062.4395 41.4020 29.2756
+-EGB -3038.1307 14.7141 10.4045
++EGB -3038.3396 14.7163 10.4060
+ ESURF 96.5366 0.2385 0.1686
+-ESCF -21.6928 3.7699 2.6658
++ESCF -21.6939 3.7699 2.6657
+
+ G gas -19087.7139 49.0123 34.6570
+-G solv -2941.5940 14.4757 10.2358
++G solv -2941.8030 14.4778 10.2374
+
+-TOTAL -22051.0007 30.7667 21.7554
++TOTAL -22051.2107 30.7647 21.7539
+
+
+ Receptor:
+@@ -53,26 +53,26 @@ Energy Component Average Std. Dev. Std. Err. of Mean
+ -------------------------------------------------------------------------------
+ VDWAALS -1963.0469 6.3796 4.5110
+ EEL -17062.3941 41.4017 29.2755
+-EGB -3045.5263 17.9328 12.6804
++EGB -3045.7452 17.9344 12.6815
+ ESURF 100.5546 0.3074 0.2173
+
+ G gas -19025.4410 47.7813 33.7865
+-G solv -2944.9718 17.6255 12.4631
++G solv -2945.1907 17.6270 12.4642
+
+-TOTAL -21970.4127 30.1558 21.3234
++TOTAL -21970.6316 30.1543 21.3223
+
+
+ Ligand:
+ Energy Component Average Std. Dev. Std. Err. of Mean
+ -------------------------------------------------------------------------------
+-EGB -24.0340 0.8659 0.6123
++EGB -24.0371 0.8661 0.6124
+ ESURF 4.4275 0.0229 0.0162
+-ESCF 6.8997 1.2609 0.8916
++ESCF 6.9011 1.2609 0.8916
+
+ G gas 0.0000 0.0000 0.0000
+-G solv -19.6065 0.8889 0.6285
++G solv -19.6096 0.8891 0.6287
+
+-TOTAL -12.7069 2.1498 1.5201
++TOTAL -12.7085 2.1499 1.5202
+
+
+ Differences (Complex - Receptor - Ligand):
+@@ -80,14 +80,14 @@ Energy Component Average Std. Dev. Std. Err. of Mean
+ -------------------------------------------------------------------------------
+ VDWAALS -62.2274 1.2308 0.8703
+ EEL -0.0454 0.0003 0.0002
+-EGB 31.4297 4.0846 2.8882
++EGB 31.4427 4.0842 2.8880
+ ESURF -8.4454 0.0459 0.0325
+-ESCF -28.5925 2.5090 1.7741
++ESCF -28.5950 2.5090 1.7741
+
+ DELTA G gas -62.2728 1.2310 0.8705
+-DELTA G solv 22.9843 4.0386 2.8558
++DELTA G solv 22.9973 4.0383 2.8555
+
+-DELTA TOTAL -67.8811 2.7607 1.9521
++DELTA TOTAL -67.8705 2.7603 1.9519
+
+
+ -------------------------------------------------------------------------------
+diff --git a/AmberTools/test/parmed/normal_prmtop/final.prmtop.save b/AmberTools/test/parmed/normal_prmtop/final.prmtop.save
+index a7e4428..3ce70b7 100644
+--- a/AmberTools/test/parmed/normal_prmtop/final.prmtop.save
++++ b/AmberTools/test/parmed/normal_prmtop/final.prmtop.save
+@@ -1,4 +1,4 @@
+-%VERSION VERSION_STAMP = V0001.000 DATE = 02/28/12 13:10:17
++%VERSION VERSION_STAMP = V0001.000 DATE = 07/08/12 15:11:06
+ %FLAG TITLE
+ %FORMAT(20a4)
+
+@@ -1245,63 +1245,63 @@ GLU PHE LEU ASP ALA ASN LEU ALA
+ 0.00000000E+00 0.00000000E+00
+ %FLAG LENNARD_JONES_ACOEF
+ %FORMAT(5E16.8)
+- 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.95480466E+05 2.56678134E+03
+- 1.04308023E+06 2.01791425E+04 9.14716912E+00 2.27401052E+04 2.01823541E+02
+- 6.20665997E+04 5.94667300E+01 6.78771368E+04 8.79040886E+02 3.25969625E+03
+- 7.44975864E+05 1.40467023E+03 7.91544157E+05 1.45985502E+04 4.66922514E+04
++ 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.96389997E+05 2.56912650E+03
++ 1.04498714E+06 2.01791425E+04 9.14716912E+00 2.27608820E+04 2.01823541E+02
++ 6.20665997E+04 5.94667300E+01 6.79391534E+04 8.79040886E+02 3.25969625E+03
++ 7.44975864E+05 1.40467023E+03 7.92267358E+05 1.45985502E+04 4.66922514E+04
+ 5.81803229E+05 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.82619071E+05 2.27577561E+03
+- 9.24822270E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00
+- 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.47841731E+05 1.12780457E+04
++ 9.25667242E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00
++ 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.48433639E+05 1.12780457E+04
+ 3.69471530E+04 4.71003287E+05 0.00000000E+00 5.74393458E+05 3.79876399E+05
+- 8.96776989E+04 1.07193646E+02 9.71708117E+04 1.41077189E+03 4.98586848E+03
++ 8.96776989E+04 1.07193646E+02 9.72595927E+04 1.41077189E+03 4.98586848E+03
+ 6.82786631E+04 0.00000000E+00 8.61541883E+04 5.44261042E+04 7.51607703E+03
+- 5.46147253E+04 4.90239937E+01 5.98885646E+04 7.50063100E+02 2.82099197E+03
++ 5.46147253E+04 4.90239937E+01 5.99432824E+04 7.50063100E+02 2.82099197E+03
+ 4.09427581E+04 0.00000000E+00 5.30987710E+04 3.23283631E+04 4.33325458E+03
+- 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.18621074E+04 9.55000044E+02
++ 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.19277648E+04 9.55000044E+02
+ 3.50301067E+03 4.96707306E+04 0.00000000E+00 6.37148278E+04 3.93690817E+04
+ 5.34045360E+03 3.03448006E+03 3.76169105E+03 7.91627154E+04 8.90987508E+01
+- 8.59947003E+04 1.21014911E+03 4.33325458E+03 6.00750218E+04 0.00000000E+00
++ 8.60732702E+04 1.21014911E+03 4.33325458E+03 6.00750218E+04 0.00000000E+00
+ 7.62451550E+04 4.77908183E+04 6.55825601E+03 3.76169105E+03 4.64559155E+03
+- 5.71629601E+03 2.01562190E+06 5.97860700E+03 2.09861767E+06 4.93469320E+04
++ 5.71629601E+03 2.01562190E+06 5.97860700E+03 2.10053510E+06 4.93469320E+04
+ 1.42791446E+05 1.61587928E+06 0.00000000E+00 1.86068943E+06 1.32911052E+06
+ 2.02461849E+05 1.26338489E+05 1.50848032E+05 1.79647996E+05 4.19430400E+06
+- 9.96389997E+05 2.56912650E+03 1.04403325E+06 2.27608820E+04 6.79391534E+04
+- 7.92267358E+05 0.00000000E+00 9.25667242E+05 6.48433639E+05 9.72595927E+04
+- 5.99432824E+04 7.19277648E+04 8.60732702E+04 2.10053510E+06 1.04498714E+06
+- 8.82619071E+05 2.27577560E+03 9.24822269E+05 2.01619733E+04 6.01816484E+04
++ 9.44293233E+05 2.12601181E+03 9.96389997E+05 2.01791425E+04 6.20665998E+04
++ 7.44975864E+05 0.00000000E+00 8.82619071E+05 6.06829343E+05 8.96776989E+04
++ 5.46147253E+04 6.58473870E+04 7.91627155E+04 2.01562190E+06 9.44293233E+05
++ 8.82619071E+05 2.27577560E+03 9.25667242E+05 2.01619733E+04 6.01816484E+04
+ 7.01803794E+05 0.00000000E+00 8.19971662E+05 5.74393458E+05 8.61541883E+04
+- 5.30987710E+04 6.37148277E+04 7.62451551E+04 1.86068943E+06 9.25667242E+05
++ 5.30987710E+04 6.37148277E+04 7.62451551E+04 1.86068943E+06 2.00000000E+00
+ 8.19971662E+05
+ %FLAG LENNARD_JONES_BCOEF
+ %FORMAT(5E16.8)
+- 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.36907417E+02 2.06278363E+01
+- 6.75612247E+02 6.45756063E+01 7.57919667E-01 6.13981767E+01 3.56012899E+00
+- 1.13252061E+02 1.93248820E+00 1.06076943E+02 7.42992380E+00 1.43076527E+01
+- 7.50714425E+02 1.79702257E+01 6.93079947E+02 5.79323581E+01 1.03606917E+02
++ 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.37580700E+02 2.06466831E+01
++ 6.76847370E+02 6.45756063E+01 7.57919667E-01 6.14542738E+01 3.56012899E+00
++ 1.13252061E+02 1.93248820E+00 1.06173862E+02 7.42992380E+00 1.43076527E+01
++ 7.50714425E+02 1.79702257E+01 6.93713186E+02 5.79323581E+01 1.03606917E+02
+ 6.99746810E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.00000000E+00 0.00000000E+00 0.00000000E+00 6.53361429E+02 1.82891803E+01
+- 5.99015525E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00
+- 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.26720080E+02 5.08951803E+01
++ 5.99562822E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00
++ 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.27292689E+02 5.08951803E+01
+ 9.21192136E+01 6.29300710E+02 0.00000000E+00 5.55666448E+02 5.64885984E+02
+- 1.36131731E+02 2.59456373E+00 1.26919150E+02 9.41257003E+00 1.76949863E+01
++ 1.36131731E+02 2.59456373E+00 1.27035111E+02 9.41257003E+00 1.76949863E+01
+ 1.25287818E+02 0.00000000E+00 1.12529845E+02 1.11805549E+02 2.17257828E+01
+- 1.05031585E+02 1.73473071E+00 9.85097219E+01 6.78541827E+00 1.31591746E+01
++ 1.05031585E+02 1.73473071E+00 9.85997263E+01 6.78541827E+00 1.31591746E+01
+ 9.59185913E+01 0.00000000E+00 8.73413012E+01 8.51921330E+01 1.63092814E+01
+- 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.07908863E+02 7.65648470E+00
++ 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.08007455E+02 7.65648470E+00
+ 1.46638650E+01 1.05648788E+02 0.00000000E+00 9.56748258E+01 9.40124296E+01
+ 1.81057616E+01 1.34932874E+01 1.50233639E+01 1.26451907E+02 2.33864085E+00
+- 1.18043746E+02 8.61880722E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00
++ 1.18151598E+02 8.61880722E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00
+ 1.04660679E+02 1.03580945E+02 2.00642027E+01 1.50233639E+01 1.66953734E+01
+- 1.85196588E+01 1.28923404E+03 3.87070358E+01 1.17824605E+03 1.11203892E+02
++ 1.85196588E+01 1.28923404E+03 3.87070358E+01 1.17932256E+03 1.11203892E+02
+ 1.89165096E+02 1.21753341E+03 0.00000000E+00 1.04466382E+03 1.10369829E+03
+ 2.25248294E+02 1.75916126E+02 1.92224012E+02 2.09772716E+02 2.04800000E+03
+- 7.37580700E+02 2.06466831E+01 6.76229527E+02 6.14542738E+01 1.06173862E+02
+- 6.93713186E+02 0.00000000E+00 5.99562822E+02 6.27292689E+02 1.27035111E+02
+- 9.85997263E+01 1.08007455E+02 1.18151598E+02 1.17932256E+03 6.76847370E+02
+- 6.53361429E+02 1.82891803E+01 5.99015525E+02 5.44372327E+01 9.40505981E+01
++ 8.01323529E+02 2.09604198E+01 7.37580700E+02 6.45756063E+01 1.13252062E+02
++ 7.50714426E+02 0.00000000E+00 6.53361429E+02 6.77220874E+02 1.36131731E+02
++ 1.05031585E+02 1.15327881E+02 1.26451907E+02 1.28923404E+03 8.01323529E+02
++ 6.53361429E+02 1.82891803E+01 5.99562822E+02 5.44372327E+01 9.40505981E+01
+ 6.14502846E+02 0.00000000E+00 5.31102864E+02 5.55666449E+02 1.12529845E+02
+- 8.73413013E+01 9.56748257E+01 1.04660679E+02 1.04466382E+03 5.99562822E+02
++ 8.73413013E+01 9.56748257E+01 1.04660679E+02 1.04466382E+03 4.00000000E+00
+ 5.31102864E+02
+ %FLAG BONDS_INC_HYDROGEN
+ %FORMAT(10I8)
+diff --git a/AmberTools/test/parmed/normal_prmtop/prmtop.add_AtNum.save b/AmberTools/test/parmed/normal_prmtop/prmtop.add_AtNum.save
+index a7e4428..3ce70b7 100644
+--- a/AmberTools/test/parmed/normal_prmtop/prmtop.add_AtNum.save
++++ b/AmberTools/test/parmed/normal_prmtop/prmtop.add_AtNum.save
+@@ -1,4 +1,4 @@
+-%VERSION VERSION_STAMP = V0001.000 DATE = 02/28/12 13:10:17
++%VERSION VERSION_STAMP = V0001.000 DATE = 07/08/12 15:11:06
+ %FLAG TITLE
+ %FORMAT(20a4)
+
+@@ -1245,63 +1245,63 @@ GLU PHE LEU ASP ALA ASN LEU ALA
+ 0.00000000E+00 0.00000000E+00
+ %FLAG LENNARD_JONES_ACOEF
+ %FORMAT(5E16.8)
+- 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.95480466E+05 2.56678134E+03
+- 1.04308023E+06 2.01791425E+04 9.14716912E+00 2.27401052E+04 2.01823541E+02
+- 6.20665997E+04 5.94667300E+01 6.78771368E+04 8.79040886E+02 3.25969625E+03
+- 7.44975864E+05 1.40467023E+03 7.91544157E+05 1.45985502E+04 4.66922514E+04
++ 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.96389997E+05 2.56912650E+03
++ 1.04498714E+06 2.01791425E+04 9.14716912E+00 2.27608820E+04 2.01823541E+02
++ 6.20665997E+04 5.94667300E+01 6.79391534E+04 8.79040886E+02 3.25969625E+03
++ 7.44975864E+05 1.40467023E+03 7.92267358E+05 1.45985502E+04 4.66922514E+04
+ 5.81803229E+05 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.82619071E+05 2.27577561E+03
+- 9.24822270E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00
+- 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.47841731E+05 1.12780457E+04
++ 9.25667242E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00
++ 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.48433639E+05 1.12780457E+04
+ 3.69471530E+04 4.71003287E+05 0.00000000E+00 5.74393458E+05 3.79876399E+05
+- 8.96776989E+04 1.07193646E+02 9.71708117E+04 1.41077189E+03 4.98586848E+03
++ 8.96776989E+04 1.07193646E+02 9.72595927E+04 1.41077189E+03 4.98586848E+03
+ 6.82786631E+04 0.00000000E+00 8.61541883E+04 5.44261042E+04 7.51607703E+03
+- 5.46147253E+04 4.90239937E+01 5.98885646E+04 7.50063100E+02 2.82099197E+03
++ 5.46147253E+04 4.90239937E+01 5.99432824E+04 7.50063100E+02 2.82099197E+03
+ 4.09427581E+04 0.00000000E+00 5.30987710E+04 3.23283631E+04 4.33325458E+03
+- 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.18621074E+04 9.55000044E+02
++ 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.19277648E+04 9.55000044E+02
+ 3.50301067E+03 4.96707306E+04 0.00000000E+00 6.37148278E+04 3.93690817E+04
+ 5.34045360E+03 3.03448006E+03 3.76169105E+03 7.91627154E+04 8.90987508E+01
+- 8.59947003E+04 1.21014911E+03 4.33325458E+03 6.00750218E+04 0.00000000E+00
++ 8.60732702E+04 1.21014911E+03 4.33325458E+03 6.00750218E+04 0.00000000E+00
+ 7.62451550E+04 4.77908183E+04 6.55825601E+03 3.76169105E+03 4.64559155E+03
+- 5.71629601E+03 2.01562190E+06 5.97860700E+03 2.09861767E+06 4.93469320E+04
++ 5.71629601E+03 2.01562190E+06 5.97860700E+03 2.10053510E+06 4.93469320E+04
+ 1.42791446E+05 1.61587928E+06 0.00000000E+00 1.86068943E+06 1.32911052E+06
+ 2.02461849E+05 1.26338489E+05 1.50848032E+05 1.79647996E+05 4.19430400E+06
+- 9.96389997E+05 2.56912650E+03 1.04403325E+06 2.27608820E+04 6.79391534E+04
+- 7.92267358E+05 0.00000000E+00 9.25667242E+05 6.48433639E+05 9.72595927E+04
+- 5.99432824E+04 7.19277648E+04 8.60732702E+04 2.10053510E+06 1.04498714E+06
+- 8.82619071E+05 2.27577560E+03 9.24822269E+05 2.01619733E+04 6.01816484E+04
++ 9.44293233E+05 2.12601181E+03 9.96389997E+05 2.01791425E+04 6.20665998E+04
++ 7.44975864E+05 0.00000000E+00 8.82619071E+05 6.06829343E+05 8.96776989E+04
++ 5.46147253E+04 6.58473870E+04 7.91627155E+04 2.01562190E+06 9.44293233E+05
++ 8.82619071E+05 2.27577560E+03 9.25667242E+05 2.01619733E+04 6.01816484E+04
+ 7.01803794E+05 0.00000000E+00 8.19971662E+05 5.74393458E+05 8.61541883E+04
+- 5.30987710E+04 6.37148277E+04 7.62451551E+04 1.86068943E+06 9.25667242E+05
++ 5.30987710E+04 6.37148277E+04 7.62451551E+04 1.86068943E+06 2.00000000E+00
+ 8.19971662E+05
+ %FLAG LENNARD_JONES_BCOEF
+ %FORMAT(5E16.8)
+- 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.36907417E+02 2.06278363E+01
+- 6.75612247E+02 6.45756063E+01 7.57919667E-01 6.13981767E+01 3.56012899E+00
+- 1.13252061E+02 1.93248820E+00 1.06076943E+02 7.42992380E+00 1.43076527E+01
+- 7.50714425E+02 1.79702257E+01 6.93079947E+02 5.79323581E+01 1.03606917E+02
++ 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.37580700E+02 2.06466831E+01
++ 6.76847370E+02 6.45756063E+01 7.57919667E-01 6.14542738E+01 3.56012899E+00
++ 1.13252061E+02 1.93248820E+00 1.06173862E+02 7.42992380E+00 1.43076527E+01
++ 7.50714425E+02 1.79702257E+01 6.93713186E+02 5.79323581E+01 1.03606917E+02
+ 6.99746810E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.00000000E+00 0.00000000E+00 0.00000000E+00 6.53361429E+02 1.82891803E+01
+- 5.99015525E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00
+- 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.26720080E+02 5.08951803E+01
++ 5.99562822E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00
++ 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.27292689E+02 5.08951803E+01
+ 9.21192136E+01 6.29300710E+02 0.00000000E+00 5.55666448E+02 5.64885984E+02
+- 1.36131731E+02 2.59456373E+00 1.26919150E+02 9.41257003E+00 1.76949863E+01
++ 1.36131731E+02 2.59456373E+00 1.27035111E+02 9.41257003E+00 1.76949863E+01
+ 1.25287818E+02 0.00000000E+00 1.12529845E+02 1.11805549E+02 2.17257828E+01
+- 1.05031585E+02 1.73473071E+00 9.85097219E+01 6.78541827E+00 1.31591746E+01
++ 1.05031585E+02 1.73473071E+00 9.85997263E+01 6.78541827E+00 1.31591746E+01
+ 9.59185913E+01 0.00000000E+00 8.73413012E+01 8.51921330E+01 1.63092814E+01
+- 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.07908863E+02 7.65648470E+00
++ 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.08007455E+02 7.65648470E+00
+ 1.46638650E+01 1.05648788E+02 0.00000000E+00 9.56748258E+01 9.40124296E+01
+ 1.81057616E+01 1.34932874E+01 1.50233639E+01 1.26451907E+02 2.33864085E+00
+- 1.18043746E+02 8.61880722E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00
++ 1.18151598E+02 8.61880722E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00
+ 1.04660679E+02 1.03580945E+02 2.00642027E+01 1.50233639E+01 1.66953734E+01
+- 1.85196588E+01 1.28923404E+03 3.87070358E+01 1.17824605E+03 1.11203892E+02
++ 1.85196588E+01 1.28923404E+03 3.87070358E+01 1.17932256E+03 1.11203892E+02
+ 1.89165096E+02 1.21753341E+03 0.00000000E+00 1.04466382E+03 1.10369829E+03
+ 2.25248294E+02 1.75916126E+02 1.92224012E+02 2.09772716E+02 2.04800000E+03
+- 7.37580700E+02 2.06466831E+01 6.76229527E+02 6.14542738E+01 1.06173862E+02
+- 6.93713186E+02 0.00000000E+00 5.99562822E+02 6.27292689E+02 1.27035111E+02
+- 9.85997263E+01 1.08007455E+02 1.18151598E+02 1.17932256E+03 6.76847370E+02
+- 6.53361429E+02 1.82891803E+01 5.99015525E+02 5.44372327E+01 9.40505981E+01
++ 8.01323529E+02 2.09604198E+01 7.37580700E+02 6.45756063E+01 1.13252062E+02
++ 7.50714426E+02 0.00000000E+00 6.53361429E+02 6.77220874E+02 1.36131731E+02
++ 1.05031585E+02 1.15327881E+02 1.26451907E+02 1.28923404E+03 8.01323529E+02
++ 6.53361429E+02 1.82891803E+01 5.99562822E+02 5.44372327E+01 9.40505981E+01
+ 6.14502846E+02 0.00000000E+00 5.31102864E+02 5.55666449E+02 1.12529845E+02
+- 8.73413013E+01 9.56748257E+01 1.04660679E+02 1.04466382E+03 5.99562822E+02
++ 8.73413013E+01 9.56748257E+01 1.04660679E+02 1.04466382E+03 4.00000000E+00
+ 5.31102864E+02
+ %FLAG BONDS_INC_HYDROGEN
+ %FORMAT(10I8)
+diff --git a/AmberTools/test/parmed/normal_prmtop/prmtop.new_lj.save b/AmberTools/test/parmed/normal_prmtop/prmtop.new_lj.save
+index 0a2a704..d984445 100644
+--- a/AmberTools/test/parmed/normal_prmtop/prmtop.new_lj.save
++++ b/AmberTools/test/parmed/normal_prmtop/prmtop.new_lj.save
+@@ -1,4 +1,4 @@
+-%VERSION VERSION_STAMP = V0001.000 DATE = 02/21/12 17:31:04
++%VERSION VERSION_STAMP = V0001.000 DATE = 07/08/12 15:11:06
+ %FLAG TITLE
+ %FORMAT(20a4)
+
+@@ -1245,63 +1245,63 @@ GLU PHE LEU ASP ALA ASN LEU ALA
+ 0.00000000E+00 0.00000000E+00
+ %FLAG LENNARD_JONES_ACOEF
+ %FORMAT(5E16.8)
+- 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.95480466E+05 2.56678134E+03
+- 1.04308023E+06 2.01791425E+04 9.14716912E+00 2.27401052E+04 2.01823541E+02
+- 6.20665997E+04 5.94667300E+01 6.78771368E+04 8.79040886E+02 3.25969625E+03
+- 7.44975864E+05 1.40467023E+03 7.91544157E+05 1.45985502E+04 4.66922514E+04
++ 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.96389997E+05 2.56912650E+03
++ 1.04498714E+06 2.01791425E+04 9.14716912E+00 2.27608820E+04 2.01823541E+02
++ 6.20665997E+04 5.94667300E+01 6.79391534E+04 8.79040886E+02 3.25969625E+03
++ 7.44975864E+05 1.40467023E+03 7.92267358E+05 1.45985502E+04 4.66922514E+04
+ 5.81803229E+05 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.82619071E+05 2.27577561E+03
+- 9.24822270E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00
+- 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.47841731E+05 1.12780457E+04
++ 9.25667242E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00
++ 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.48433639E+05 1.12780457E+04
+ 3.69471530E+04 4.71003287E+05 0.00000000E+00 5.74393458E+05 3.79876399E+05
+- 8.96776989E+04 1.07193646E+02 9.71708117E+04 1.41077189E+03 4.98586848E+03
++ 8.96776989E+04 1.07193646E+02 9.72595927E+04 1.41077189E+03 4.98586848E+03
+ 6.82786631E+04 0.00000000E+00 8.61541883E+04 5.44261042E+04 7.51607703E+03
+- 5.46147253E+04 4.90239937E+01 5.98885646E+04 7.50063100E+02 2.82099197E+03
++ 5.46147253E+04 4.90239937E+01 5.99432824E+04 7.50063100E+02 2.82099197E+03
+ 4.09427581E+04 0.00000000E+00 5.30987710E+04 3.23283631E+04 4.33325458E+03
+- 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.18621074E+04 9.55000044E+02
++ 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.19277648E+04 9.55000044E+02
+ 3.50301067E+03 4.96707306E+04 0.00000000E+00 6.37148278E+04 3.93690817E+04
+ 5.34045360E+03 3.03448006E+03 3.76169105E+03 7.91627154E+04 8.90987508E+01
+- 8.59947003E+04 1.21014911E+03 4.33325458E+03 6.00750218E+04 0.00000000E+00
++ 8.60732702E+04 1.21014911E+03 4.33325458E+03 6.00750218E+04 0.00000000E+00
+ 7.62451550E+04 4.77908183E+04 6.55825601E+03 3.76169105E+03 4.64559155E+03
+- 5.71629601E+03 2.01562190E+06 5.97860700E+03 2.09861767E+06 4.93469320E+04
++ 5.71629601E+03 2.01562190E+06 5.97860700E+03 2.10053510E+06 4.93469320E+04
+ 1.42791446E+05 1.61587928E+06 0.00000000E+00 1.86068943E+06 1.32911052E+06
+ 2.02461849E+05 1.26338489E+05 1.50848032E+05 1.79647996E+05 4.19430400E+06
+- 9.96389997E+05 2.56912650E+03 1.04403325E+06 2.27608820E+04 6.79391534E+04
+- 7.92267358E+05 0.00000000E+00 9.25667242E+05 6.48433639E+05 9.72595927E+04
+- 5.99432824E+04 7.19277648E+04 8.60732702E+04 2.10053510E+06 1.04498714E+06
+- 8.82619071E+05 2.27577560E+03 9.24822269E+05 2.01619733E+04 6.01816484E+04
++ 9.44293233E+05 2.12601181E+03 9.96389997E+05 2.01791425E+04 6.20665998E+04
++ 7.44975864E+05 0.00000000E+00 8.82619071E+05 6.06829343E+05 8.96776989E+04
++ 5.46147253E+04 6.58473870E+04 7.91627155E+04 2.01562190E+06 9.44293233E+05
++ 8.82619071E+05 2.27577560E+03 9.25667242E+05 2.01619733E+04 6.01816484E+04
+ 7.01803794E+05 0.00000000E+00 8.19971662E+05 5.74393458E+05 8.61541883E+04
+- 5.30987710E+04 6.37148277E+04 7.62451551E+04 1.86068943E+06 9.25667242E+05
++ 5.30987710E+04 6.37148277E+04 7.62451551E+04 1.86068943E+06 2.00000000E+00
+ 8.19971662E+05
+ %FLAG LENNARD_JONES_BCOEF
+ %FORMAT(5E16.8)
+- 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.36907417E+02 2.06278363E+01
+- 6.75612247E+02 6.45756063E+01 7.57919667E-01 6.13981767E+01 3.56012899E+00
+- 1.13252061E+02 1.93248820E+00 1.06076943E+02 7.42992380E+00 1.43076527E+01
+- 7.50714425E+02 1.79702257E+01 6.93079947E+02 5.79323581E+01 1.03606917E+02
++ 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.37580700E+02 2.06466831E+01
++ 6.76847370E+02 6.45756063E+01 7.57919667E-01 6.14542738E+01 3.56012899E+00
++ 1.13252061E+02 1.93248820E+00 1.06173862E+02 7.42992380E+00 1.43076527E+01
++ 7.50714425E+02 1.79702257E+01 6.93713186E+02 5.79323581E+01 1.03606917E+02
+ 6.99746810E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.00000000E+00 0.00000000E+00 0.00000000E+00 6.53361429E+02 1.82891803E+01
+- 5.99015525E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00
+- 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.26720080E+02 5.08951803E+01
++ 5.99562822E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00
++ 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.27292689E+02 5.08951803E+01
+ 9.21192136E+01 6.29300710E+02 0.00000000E+00 5.55666448E+02 5.64885984E+02
+- 1.36131731E+02 2.59456373E+00 1.26919150E+02 9.41257003E+00 1.76949863E+01
++ 1.36131731E+02 2.59456373E+00 1.27035111E+02 9.41257003E+00 1.76949863E+01
+ 1.25287818E+02 0.00000000E+00 1.12529845E+02 1.11805549E+02 2.17257828E+01
+- 1.05031585E+02 1.73473071E+00 9.85097219E+01 6.78541827E+00 1.31591746E+01
++ 1.05031585E+02 1.73473071E+00 9.85997263E+01 6.78541827E+00 1.31591746E+01
+ 9.59185913E+01 0.00000000E+00 8.73413012E+01 8.51921330E+01 1.63092814E+01
+- 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.07908863E+02 7.65648470E+00
++ 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.08007455E+02 7.65648470E+00
+ 1.46638650E+01 1.05648788E+02 0.00000000E+00 9.56748258E+01 9.40124296E+01
+ 1.81057616E+01 1.34932874E+01 1.50233639E+01 1.26451907E+02 2.33864085E+00
+- 1.18043746E+02 8.61880722E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00
++ 1.18151598E+02 8.61880722E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00
+ 1.04660679E+02 1.03580945E+02 2.00642027E+01 1.50233639E+01 1.66953734E+01
+- 1.85196588E+01 1.28923404E+03 3.87070358E+01 1.17824605E+03 1.11203892E+02
++ 1.85196588E+01 1.28923404E+03 3.87070358E+01 1.17932256E+03 1.11203892E+02
+ 1.89165096E+02 1.21753341E+03 0.00000000E+00 1.04466382E+03 1.10369829E+03
+ 2.25248294E+02 1.75916126E+02 1.92224012E+02 2.09772716E+02 2.04800000E+03
+- 7.37580700E+02 2.06466831E+01 6.76229527E+02 6.14542738E+01 1.06173862E+02
+- 6.93713186E+02 0.00000000E+00 5.99562822E+02 6.27292689E+02 1.27035111E+02
+- 9.85997263E+01 1.08007455E+02 1.18151598E+02 1.17932256E+03 6.76847370E+02
+- 6.53361429E+02 1.82891803E+01 5.99015525E+02 5.44372327E+01 9.40505981E+01
++ 8.01323529E+02 2.09604198E+01 7.37580700E+02 6.45756063E+01 1.13252062E+02
++ 7.50714426E+02 0.00000000E+00 6.53361429E+02 6.77220874E+02 1.36131731E+02
++ 1.05031585E+02 1.15327881E+02 1.26451907E+02 1.28923404E+03 8.01323529E+02
++ 6.53361429E+02 1.82891803E+01 5.99562822E+02 5.44372327E+01 9.40505981E+01
+ 6.14502846E+02 0.00000000E+00 5.31102864E+02 5.55666449E+02 1.12529845E+02
+- 8.73413013E+01 9.56748257E+01 1.04660679E+02 1.04466382E+03 5.99562822E+02
++ 8.73413013E+01 9.56748257E+01 1.04660679E+02 1.04466382E+03 4.00000000E+00
+ 5.31102864E+02
+ %FLAG BONDS_INC_HYDROGEN
+ %FORMAT(10I8)
+diff --git a/dat/leap/cmd/leaprc.pol12 b/dat/leap/cmd/leaprc.pol12
+deleted file mode 100644
+index 2bb10c7..0000000
+--- a/dat/leap/cmd/leaprc.pol12
++++ /dev/null
+@@ -1,182 +0,0 @@
+-logFile leap.log
+-#
+-# ----- leaprc for loading pol12, the 2012 pol. force field, no lone pairs
+-#
+-#
+-addAtomTypes {
+- { "H" "H" "sp3" }
+- { "HO" "H" "sp3" }
+- { "HS" "H" "sp3" }
+- { "H1" "H" "sp3" }
+- { "H2" "H" "sp3" }
+- { "H3" "H" "sp3" }
+- { "H4" "H" "sp3" }
+- { "H5" "H" "sp3" }
+- { "HW" "H" "sp3" }
+- { "HC" "H" "sp3" }
+- { "HA" "H" "sp3" }
+- { "HP" "H" "sp3" }
+- { "OH" "O" "sp3" }
+- { "OS" "O" "sp3" }
+- { "O" "O" "sp2" }
+- { "O2" "O" "sp2" }
+- { "OW" "O" "sp3" }
+- { "CT" "C" "sp3" }
+- { "CH" "C" "sp3" }
+- { "C2" "C" "sp3" }
+- { "C3" "C" "sp3" }
+- { "C" "C" "sp2" }
+- { "C*" "C" "sp2" }
+- { "CA" "C" "sp2" }
+- { "CB" "C" "sp2" }
+- { "CC" "C" "sp2" }
+- { "CN" "C" "sp2" }
+- { "CM" "C" "sp2" }
+- { "CK" "C" "sp2" }
+- { "CQ" "C" "sp2" }
+- { "CD" "C" "sp2" }
+- { "CE" "C" "sp2" }
+- { "CF" "C" "sp2" }
+- { "CP" "C" "sp2" }
+- { "CI" "C" "sp2" }
+- { "CJ" "C" "sp2" }
+- { "CW" "C" "sp2" }
+- { "CV" "C" "sp2" }
+- { "CR" "C" "sp2" }
+- { "CA" "C" "sp2" }
+- { "CY" "C" "sp2" }
+- { "C0" "Ca" "sp3" }
+- { "MG" "Mg" "sp3" }
+- { "N" "N" "sp2" }
+- { "NA" "N" "sp2" }
+- { "N2" "N" "sp2" }
+- { "N*" "N" "sp2" }
+- { "NP" "N" "sp2" }
+- { "NQ" "N" "sp2" }
+- { "NB" "N" "sp2" }
+- { "NC" "N" "sp2" }
+- { "NT" "N" "sp3" }
+- { "N3" "N" "sp3" }
+- { "S" "S" "sp3" }
+- { "SH" "S" "sp3" }
+- { "P" "P" "sp3" }
+- { "EP" "" "sp3" }
+- { "F" "F" "sp3" }
+- { "CL" "Cl" "sp3" }
+- { "BR" "Br" "sp3" }
+- { "I" "I" "sp3" }
+- { "FE" "Fe" "sp3" }
+-# things should be there
+- { "IM" "Cl" "sp3" }
+- { "IP" "Na" "sp3" }
+- { "Li" "Li" "sp3" }
+- { "K" "K" "sp3" }
+- { "Rb" "Rb" "sp3" }
+- { "Cs" "Cs" "sp3" }
+- { "Zn" "Zn" "sp3" }
+- { "IB" "Na" "sp3" }
+-# "new" types
+- { "H0" "H" "sp3" }
+-
+-}
+-#
+-# Load the main parameter set.
+-#
+-set default DIPOLE_DAMP_FACTOR 2.5873
+-set default sceescalefactor 1.0
+-set default scnbscalefactor 2.0
+-set default CMAP on
+-
+-parm11 = loadamberparams parmpol12.dat
+-parmpol= loadamberparams frcmod.pol12
+-#
+-# Load main chain and terminating
+-# amino acid libraries.
+-#
+-loadOff aminoctpol12.lib
+-loadOff aminontpol12.lib
+-loadOff aminopol12.lib
+-
+-loadOff ions94.lib
+-loadOff solvents.lib
+-#HOH = TP3
+-#WAT = TP3
+-HOH = PL3
+-WAT = PL3
+-
+-#
+-# Define the PDB name map for the amino acids and DNA.
+-#
+-addPdbResMap {
+- { 0 "ALA" "NALA" } { 1 "ALA" "CALA" }
+- { 0 "ARG" "NARG" } { 1 "ARG" "CARG" }
+- { 0 "ASN" "NASN" } { 1 "ASN" "CASN" }
+- { 0 "ASP" "NASP" } { 1 "ASP" "CASP" }
+- { 0 "CYS" "NCYS" } { 1 "CYS" "CCYS" }
+- { 0 "CYX" "NCYX" } { 1 "CYX" "CCYX" }
+- { 0 "GLN" "NGLN" } { 1 "GLN" "CGLN" }
+- { 0 "GLU" "NGLU" } { 1 "GLU" "CGLU" }
+- { 0 "GLY" "NGLY" } { 1 "GLY" "CGLY" }
+- { 0 "HID" "NHID" } { 1 "HID" "CHID" }
+- { 0 "HIE" "NHIE" } { 1 "HIE" "CHIE" }
+- { 0 "HIP" "NHIP" } { 1 "HIP" "CHIP" }
+- { 0 "ILE" "NILE" } { 1 "ILE" "CILE" }
+- { 0 "LEU" "NLEU" } { 1 "LEU" "CLEU" }
+- { 0 "LYS" "NLYS" } { 1 "LYS" "CLYS" }
+- { 0 "MET" "NMET" } { 1 "MET" "CMET" }
+- { 0 "PHE" "NPHE" } { 1 "PHE" "CPHE" }
+- { 0 "PRO" "NPRO" } { 1 "PRO" "CPRO" }
+- { 0 "SER" "NSER" } { 1 "SER" "CSER" }
+- { 0 "THR" "NTHR" } { 1 "THR" "CTHR" }
+- { 0 "TRP" "NTRP" } { 1 "TRP" "CTRP" }
+- { 0 "TYR" "NTYR" } { 1 "TYR" "CTYR" }
+- { 0 "VAL" "NVAL" } { 1 "VAL" "CVAL" }
+- { 0 "HIS" "NHIS" } { 1 "HIS" "CHIS" }
+- { 0 "GUA" "DG5" } { 1 "GUA" "DG3" } { "GUA" "DG" }
+- { 0 "ADE" "DA5" } { 1 "ADE" "DA3" } { "ADE" "DA" }
+- { 0 "CYT" "DC5" } { 1 "CYT" "DC3" } { "CYT" "DC" }
+- { 0 "THY" "DT5" } { 1 "THY" "DT3" } { "THY" "DT" }
+- { 0 "G" "DG5" } { 1 "G" "DG3" } { "G" "DG" } { "GN" "DGN" }
+- { 0 "A" "DA5" } { 1 "A" "DA3" } { "A" "DA" } { "AN" "DAN" }
+- { 0 "C" "DC5" } { 1 "C" "DC3" } { "C" "DC" } { "CN" "DCN" }
+- { 0 "T" "DT5" } { 1 "T" "DT3" } { "T" "DT" } { "TN" "DTN" }
+- { 0 "C5" "DC5" }
+- { 0 "G5" "DG5" }
+- { 0 "A5" "DA5" }
+- { 0 "T5" "DT5" }
+- { 1 "C3" "DC3" }
+- { 1 "G3" "DG3" }
+- { 1 "A3" "DA3" }
+- { 1 "T3" "DT3" }
+-
+-}
+-
+-addPdbAtomMap {
+- { "O5*" "O5'" }
+- { "C5*" "C5'" }
+- { "C4*" "C4'" }
+- { "O4*" "O4'" }
+- { "C3*" "C3'" }
+- { "O3*" "O3'" }
+- { "C2*" "C2'" }
+- { "C1*" "C1'" }
+- { "C5M" "C7" }
+- { "H1*" "H1'" }
+- { "H2*1" "H2'1" }
+- { "H2*2" "H2'2" }
+- { "H3*" "H3'" }
+- { "H4*" "H4'" }
+- { "H5*1" "H5'1" }
+- { "H5*2" "H5'2" }
+-# old ff atom names -> new
+- { "O1'" "O4'" }
+- { "OA" "O1P" }
+- { "OB" "O2P" }
+-}
+-
+-#
+-# assumed that most often proteins use HIE
+-#
+-NHIS = NHIE
+-HIS = HIE
+-CHIS = CHIE
+diff --git a/dat/leap/lib/aminoctpol12.lib b/dat/leap/lib/aminoctpol12.lib
+deleted file mode 100644
+index fa60138..0000000
+--- a/dat/leap/lib/aminoctpol12.lib
++++ /dev/null
+@@ -1,3677 +0,0 @@
+-!!index array str
+- "CALA"
+- "CARG"
+- "CASH"
+- "CASN"
+- "CASP"
+- "CCYM"
+- "CCYS"
+- "CCYX"
+- "CGLH"
+- "CGLN"
+- "CGLU"
+- "CGLY"
+- "CHID"
+- "CHIE"
+- "CHIP"
+- "CILE"
+- "CLEU"
+- "CLYN"
+- "CLYS"
+- "CMET"
+- "CPHE"
+- "CPRO"
+- "CSER"
+- "CTHR"
+- "CTRP"
+- "CTYR"
+- "CVAL"
+- "NME"
+-!entry.CALA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.139420
+- "HA" "H1" 0 1 131072 4 1 0.100300
+- "CB" "CT" 0 1 131072 5 6 -0.168880
+- "HB1" "HC" 0 1 131072 6 1 0.087020
+- "HB2" "HC" 0 1 131072 7 1 0.087020
+- "HB3" "HC" 0 1 131072 8 1 0.087020
+- "C" "C" 0 1 131072 9 6 0.705530
+- "O" "O2" 0 1 131072 10 8 -0.822990
+- "OXT" "O2" 0 1 131072 11 8 -0.822990
+-!entry.CALA.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB1" "HC" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CALA.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CALA.unit.childsequence single int
+- 2
+-!entry.CALA.unit.connect array int
+- 1
+- 0
+-!entry.CALA.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 9 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 9 10 1
+- 9 11 1
+-!entry.CALA.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+-!entry.CALA.unit.name single str
+- "CALA"
+-!entry.CALA.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 3.877484 3.115795 2.131197
+- 4.075059 4.623017 1.205786
+- 2.496995 3.801075 1.241379
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CALA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CALA.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CALA" 1 12 1 "p" 0
+-!entry.CALA.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CALA.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CALA.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CARG.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.246160
+- "HA" "H1" 0 1 131072 4 1 0.166180
+- "CB" "CT" 0 1 131072 5 6 0.246480
+- "HB2" "HC" 0 1 131072 6 1 -0.008560
+- "HB3" "HC" 0 1 131072 7 1 -0.008560
+- "CG" "CT" 0 1 131072 8 6 -0.353440
+- "HG2" "HC" 0 1 131072 9 1 0.103290
+- "HG3" "HC" 0 1 131072 10 1 0.103290
+- "CD" "CT" 0 1 131072 11 6 0.608250
+- "HD2" "H1" 0 1 131072 12 1 -0.078660
+- "HD3" "H1" 0 1 131072 13 1 -0.078660
+- "NE" "N2" 0 1 131072 14 7 -0.792460
+- "HE" "H" 0 1 131072 15 1 0.406710
+- "CZ" "CA" 0 1 131072 16 6 1.125120
+- "NH1" "N2" 0 1 131072 17 7 -0.963900
+- "HH11" "H" 0 1 131072 18 1 0.447010
+- "HH12" "H" 0 1 131072 19 1 0.447010
+- "NH2" "N2" 0 1 131072 20 7 -0.963900
+- "HH21" "H" 0 1 131072 21 1 0.447010
+- "HH22" "H" 0 1 131072 22 1 0.447010
+- "C" "C" 0 1 131072 23 6 0.705530
+- "O" "O2" 0 1 131072 24 8 -0.822990
+- "OXT" "O2" 0 1 131072 25 8 -0.822990
+-!entry.CARG.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "CT" 0 -1 0.0
+- "HD2" "H1" 0 -1 0.0
+- "HD3" "H1" 0 -1 0.0
+- "NE" "N2" 0 -1 0.0
+- "HE" "H" 0 -1 0.0
+- "CZ" "CA" 0 -1 0.0
+- "NH1" "N2" 0 -1 0.0
+- "HH11" "H" 0 -1 0.0
+- "HH12" "H" 0 -1 0.0
+- "NH2" "N2" 0 -1 0.0
+- "HH21" "H" 0 -1 0.0
+- "HH22" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CARG.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CARG.unit.childsequence single int
+- 2
+-!entry.CARG.unit.connect array int
+- 1
+- 0
+-!entry.CARG.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 23 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 11 14 1
+- 14 15 1
+- 14 16 1
+- 16 17 1
+- 16 20 1
+- 17 18 1
+- 17 19 1
+- 20 21 1
+- 20 22 1
+- 23 24 1
+- 23 25 1
+-!entry.CARG.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+- "R" 1 "A" 23
+- "R" 1 "A" 24
+- "R" 1 "A" 25
+-!entry.CARG.unit.name single str
+- "CARG"
+-!entry.CARG.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.881105 5.817645 2.426721
+- 2.801135 5.964881 2.435959
+- 4.181626 5.279602 3.325774
+- 4.540320 7.142723 2.424483
+- 5.151805 7.375492 1.655065
+- 4.364284 8.040989 3.389382
+- 3.575026 7.807606 4.434133
+- 3.088949 6.925423 4.508848
+- 3.465367 8.513631 5.147998
+- 5.006254 9.201287 3.286991
+- 5.604855 9.375325 2.492329
+- 4.892216 9.903045 4.004368
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CARG.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CARG" 1 26 1 "p" 0
+-!entry.CARG.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CARG.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CARG.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CASH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 0.020630
+- "HA" "H1" 0 1 131072 4 1 0.028510
+- "CB" "CT" 0 1 131072 5 6 -0.181320
+- "HB2" "HC" 0 1 131072 6 1 0.139090
+- "HB3" "HC" 0 1 131072 7 1 0.139090
+- "CG" "C" 0 1 131072 8 6 0.590540
+- "OD1" "O" 0 1 131072 9 8 -0.551750
+- "OD2" "OH" 0 1 131072 10 8 -0.583910
+- "HD2" "HO" 0 1 131072 11 1 0.452180
+- "C" "C" 0 1 131072 12 6 0.705530
+- "O" "O2" 0 1 131072 13 8 -0.822990
+- "OXT" "O2" 0 1 131072 14 8 -0.822990
+-!entry.CASH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "C" 0 -1 0.0
+- "OD1" "O" 0 -1 0.0
+- "OD2" "OH" 0 -1 0.0
+- "HD2" "HO" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CASH.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CASH.unit.childsequence single int
+- 2
+-!entry.CASH.unit.connect array int
+- 1
+- 0
+-!entry.CASH.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 12 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 10 11 1
+- 12 13 1
+- 12 14 1
+-!entry.CASH.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+-!entry.CASH.unit.name single str
+- "CASH"
+-!entry.CASH.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.275101 5.011380 1.194527
+- 3.669108 5.954940 0.620011
+- 5.407731 5.091879 1.740667
+- 5.742902 5.987179 1.652920
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CASH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CASH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CASH" 1 15 1 "p" 0
+-!entry.CASH.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CASH.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CASH.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CASN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.052240
+- "HA" "H1" 0 1 131072 4 1 0.042740
+- "CB" "CT" 0 1 131072 5 6 -0.207320
+- "HB2" "HC" 0 1 131072 6 1 0.119980
+- "HB3" "HC" 0 1 131072 7 1 0.119980
+- "CG" "C" 0 1 131072 8 6 0.659810
+- "OD1" "O" 0 1 131072 9 8 -0.563050
+- "ND2" "N" 0 1 131072 10 7 -0.856360
+- "HD21" "H" 0 1 131072 11 1 0.394760
+- "HD22" "H" 0 1 131072 12 1 0.394760
+- "C" "C" 0 1 131072 13 6 0.705530
+- "O" "O2" 0 1 131072 14 8 -0.822990
+- "OXT" "O2" 0 1 131072 15 8 -0.822990
+-!entry.CASN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "C" 0 -1 0.0
+- "OD1" "O" 0 -1 0.0
+- "ND2" "N" 0 -1 0.0
+- "HD21" "H" 0 -1 0.0
+- "HD22" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CASN.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CASN.unit.childsequence single int
+- 2
+-!entry.CASN.unit.connect array int
+- 1
+- 0
+-!entry.CASN.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 13 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 10 11 1
+- 10 12 1
+- 13 14 1
+- 13 15 1
+-!entry.CASN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+-!entry.CASN.unit.name single str
+- "CASN"
+-!entry.CASN.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.253700 5.017112 1.232144
+- 5.005299 5.340406 0.315072
+- 3.984885 5.817909 2.265917
+- 4.408015 6.733702 2.314743
+- 3.359611 5.504297 2.994464
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CASN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CASN" 1 16 1 "p" 0
+-!entry.CASN.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CASN.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CASN.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CASP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.132120
+- "HA" "H1" 0 1 131072 4 1 0.050730
+- "CB" "CT" 0 1 131072 5 6 -0.282900
+- "HB2" "HC" 0 1 131072 6 1 0.084070
+- "HB3" "HC" 0 1 131072 7 1 0.084070
+- "CG" "C" 0 1 131072 8 6 0.894610
+- "OD1" "O2" 0 1 131072 9 8 -0.822700
+- "OD2" "O2" 0 1 131072 10 8 -0.822700
+- "C" "C" 0 1 131072 11 6 0.705530
+- "O" "O2" 0 1 131072 12 8 -0.822990
+- "OXT" "O2" 0 1 131072 13 8 -0.822990
+-!entry.CASP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "C" 0 -1 0.0
+- "OD1" "O2" 0 -1 0.0
+- "OD2" "O2" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CASP.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CASP.unit.childsequence single int
+- 2
+-!entry.CASP.unit.connect array int
+- 1
+- 0
+-!entry.CASP.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 11 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 11 12 1
+- 11 13 1
+-!entry.CASP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+-!entry.CASP.unit.name single str
+- "CASP"
+-!entry.CASP.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.275101 5.011380 1.194527
+- 3.669108 5.954940 0.620011
+- 5.407731 5.091879 1.740667
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CASP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CASP" 1 14 1 "p" 0
+-!entry.CASP.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CASP.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CASP.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CCYM.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "HN" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.165660
+- "HA" "H1" 0 1 131072 4 1 0.090680
+- "CB" "CT" 0 1 131072 5 6 0.044510
+- "HB3" "H1" 0 1 131072 6 1 0.006690
+- "HB2" "H1" 0 1 131072 7 1 0.006690
+- "SG" "SH" 0 1 131072 8 16 -0.929850
+- "C" "C" 0 1 131072 9 6 0.705530
+- "O" "O2" 0 1 131072 10 8 -0.822990
+- "OXT" "O2" 0 1 131072 11 8 -0.822990
+-!entry.CCYM.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "HN" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB3" "H1" 0 -1 0.0
+- "HB2" "H1" 0 -1 0.0
+- "SG" "SH" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CCYM.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CCYM.unit.childsequence single int
+- 2
+-!entry.CCYM.unit.connect array int
+- 1
+- 0
+-!entry.CCYM.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 9 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 9 10 1
+- 9 11 1
+-!entry.CCYM.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+-!entry.CCYM.unit.name single str
+- "CCYM"
+-!entry.CCYM.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 3.877484 3.115795 2.131197
+- 2.496995 3.801075 1.241379
+- 4.309573 5.303523 1.366036
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CCYM.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CCYM.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CCYM" 1 12 1 "p" 0
+-!entry.CCYM.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CCYM.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CCYM.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CCYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.010480
+- "HA" "H1" 0 1 131072 4 1 0.057060
+- "CB" "CT" 0 1 131072 5 6 -0.033990
+- "HB2" "H1" 0 1 131072 6 1 0.066220
+- "HB3" "H1" 0 1 131072 7 1 0.066220
+- "SG" "SH" 0 1 131072 8 16 -0.244870
+- "HG" "HS" 0 1 131072 9 1 0.152900
+- "C" "C" 0 1 131072 10 6 0.705530
+- "O" "O2" 0 1 131072 11 8 -0.822990
+- "OXT" "O2" 0 1 131072 12 8 -0.822990
+-!entry.CCYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "H1" 0 -1 0.0
+- "HB3" "H1" 0 -1 0.0
+- "SG" "SH" 0 -1 0.0
+- "HG" "HS" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CCYS.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CCYS.unit.childsequence single int
+- 2
+-!entry.CCYS.unit.connect array int
+- 1
+- 0
+-!entry.CCYS.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 10 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 10 11 1
+- 10 12 1
+-!entry.CCYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+-!entry.CCYS.unit.name single str
+- "CCYS"
+-!entry.CCYS.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.309573 5.303523 1.366036
+- 3.725392 5.622018 2.517640
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CCYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CCYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CCYS" 1 13 1 "p" 0
+-!entry.CCYS.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CCYS.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CCYS.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CCYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.030070
+- "HA" "H1" 0 1 131072 4 1 0.037000
+- "CB" "CT" 0 1 131072 5 6 -0.043690
+- "HB2" "H1" 0 1 131072 6 1 0.084380
+- "HB3" "H1" 0 1 131072 7 1 0.084380
+- "SG" "S" 0 1 131072 8 16 -0.078940
+- "C" "C" 0 1 131072 9 6 0.705530
+- "O" "O2" 0 1 131072 10 8 -0.822990
+- "OXT" "O2" 0 1 131072 11 8 -0.822990
+-!entry.CCYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "H1" 0 -1 0.0
+- "HB3" "H1" 0 -1 0.0
+- "SG" "S" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CCYX.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CCYX.unit.childsequence single int
+- 2
+-!entry.CCYX.unit.connect array int
+- 1
+- 0
+-!entry.CCYX.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 9 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 9 10 1
+- 9 11 1
+-!entry.CCYX.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+-!entry.CCYX.unit.name single str
+- "CCYX"
+-!entry.CCYX.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.309573 5.303523 1.366036
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CCYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 8 0 0 0
+-!entry.CCYX.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CCYX" 1 12 1 "p" 0
+-!entry.CCYX.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CCYX.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CCYX.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CGLH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.165080
+- "HA" "H1" 0 1 131072 4 1 0.120280
+- "CB" "CT" 0 1 131072 5 6 0.110660
+- "HB2" "HC" 0 1 131072 6 1 0.016640
+- "HB3" "HC" 0 1 131072 7 1 0.016640
+- "CG" "CT" 0 1 131072 8 6 -0.317930
+- "HG2" "HC" 0 1 131072 9 1 0.173880
+- "HG3" "HC" 0 1 131072 10 1 0.173880
+- "CD" "C" 0 1 131072 11 6 0.664690
+- "OE1" "O" 0 1 131072 12 8 -0.583590
+- "OE2" "OH" 0 1 131072 13 8 -0.613880
+- "HE2" "HO" 0 1 131072 14 1 0.456870
+- "C" "C" 0 1 131072 15 6 0.705530
+- "O" "O2" 0 1 131072 16 8 -0.822990
+- "OXT" "O2" 0 1 131072 17 8 -0.822990
+-!entry.CGLH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "C" 0 -1 0.0
+- "OE1" "O" 0 -1 0.0
+- "OE2" "OH" 0 -1 0.0
+- "HE2" "HO" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CGLH.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CGLH.unit.childsequence single int
+- 2
+-!entry.CGLH.unit.connect array int
+- 1
+- 0
+-!entry.CGLH.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 15 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 15 16 1
+- 15 17 1
+-!entry.CGLH.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+-!entry.CGLH.unit.name single str
+- "CGLH"
+-!entry.CGLH.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.267328 4.996267 1.194946
+- 5.347413 4.849843 1.186158
+- 3.966923 5.535124 0.296342
+- 3.873732 5.805369 2.428706
+- 4.594590 5.679012 3.454376
+- 2.855965 6.542070 2.333721
+- 2.710526 6.996624 3.166684
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CGLH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CGLH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CGLH" 1 18 1 "p" 0
+-!entry.CGLH.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CGLH.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CGLH.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CGLN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.174080
+- "HA" "H1" 0 1 131072 4 1 0.063260
+- "CB" "CT" 0 1 131072 5 6 0.396380
+- "HB2" "HC" 0 1 131072 6 1 -0.058620
+- "HB3" "HC" 0 1 131072 7 1 -0.058620
+- "CG" "CT" 0 1 131072 8 6 -0.593580
+- "HG2" "HC" 0 1 131072 9 1 0.218390
+- "HG3" "HC" 0 1 131072 10 1 0.218390
+- "CD" "C" 0 1 131072 11 6 0.770410
+- "OE1" "O" 0 1 131072 12 8 -0.650910
+- "NE2" "N" 0 1 131072 13 7 -0.874140
+- "HE21" "H" 0 1 131072 14 1 0.398090
+- "HE22" "H" 0 1 131072 15 1 0.398090
+- "C" "C" 0 1 131072 16 6 0.705530
+- "O" "O2" 0 1 131072 17 8 -0.822990
+- "OXT" "O2" 0 1 131072 18 8 -0.822990
+-!entry.CGLN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "C" 0 -1 0.0
+- "OE1" "O" 0 -1 0.0
+- "NE2" "N" 0 -1 0.0
+- "HE21" "H" 0 -1 0.0
+- "HE22" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CGLN.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CGLN.unit.childsequence single int
+- 2
+-!entry.CGLN.unit.connect array int
+- 1
+- 0
+-!entry.CGLN.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 16 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 15 1
+- 16 17 1
+- 16 18 1
+-!entry.CGLN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+-!entry.CGLN.unit.name single str
+- "CGLN"
+-!entry.CGLN.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.906976 5.848443 2.410302
+- 3.138962 5.408349 3.262893
+- 4.458856 7.061523 2.488333
+- 4.248434 7.659045 3.274966
+- 5.084281 7.376210 1.760379
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CGLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CGLN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CGLN" 1 19 1 "p" 0
+-!entry.CGLN.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CGLN.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CGLN.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CGLU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.265130
+- "HA" "H1" 0 1 131072 4 1 0.127760
+- "CB" "CT" 0 1 131072 5 6 0.520990
+- "HB2" "HC" 0 1 131072 6 1 -0.129940
+- "HB3" "HC" 0 1 131072 7 1 -0.129940
+- "CG" "CT" 0 1 131072 8 6 -0.693830
+- "HG2" "HC" 0 1 131072 9 1 0.205050
+- "HG3" "HC" 0 1 131072 10 1 0.205050
+- "CD" "C" 0 1 131072 11 6 0.835690
+- "OE1" "O2" 0 1 131072 12 8 -0.811320
+- "OE2" "O2" 0 1 131072 13 8 -0.811320
+- "C" "C" 0 1 131072 14 6 0.705530
+- "O" "O2" 0 1 131072 15 8 -0.822990
+- "OXT" "O2" 0 1 131072 16 8 -0.822990
+-!entry.CGLU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "C" 0 -1 0.0
+- "OE1" "O2" 0 -1 0.0
+- "OE2" "O2" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CGLU.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CGLU.unit.childsequence single int
+- 2
+-!entry.CGLU.unit.connect array int
+- 1
+- 0
+-!entry.CGLU.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 14 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 14 15 1
+- 14 16 1
+-!entry.CGLU.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+-!entry.CGLU.unit.name single str
+- "CGLU"
+-!entry.CGLU.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.267328 4.996267 1.194946
+- 5.347413 4.849843 1.186158
+- 3.966923 5.535124 0.296342
+- 3.873732 5.805369 2.428706
+- 4.594590 5.679012 3.454376
+- 2.855965 6.542070 2.333721
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CGLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CGLU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CGLU" 1 17 1 "p" 0
+-!entry.CGLU.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CGLU.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CGLU.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CGLY.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.195060
+- "HA2" "H1" 0 1 131072 4 1 0.124060
+- "HA3" "H1" 0 1 131072 5 1 0.124060
+- "C" "C" 0 1 131072 6 6 0.705530
+- "O" "O2" 0 1 131072 7 8 -0.822990
+- "OXT" "O2" 0 1 131072 8 8 -0.822990
+-!entry.CGLY.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA2" "H1" 0 -1 0.0
+- "HA3" "H1" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CGLY.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CGLY.unit.childsequence single int
+- 2
+-!entry.CGLY.unit.connect array int
+- 1
+- 0
+-!entry.CGLY.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 6 1
+- 6 7 1
+- 6 8 1
+-!entry.CGLY.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+-!entry.CGLY.unit.name single str
+- "CGLY"
+-!entry.CGLY.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.671668 3.400125 0.889824
+- 5.483710 2.686702 -4.438857E-06
+- 5.993369 1.568360 -8.469843E-06
+- 6.214748 3.674642 -2.512987E-06
+-!entry.CGLY.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CGLY.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CGLY" 1 9 1 "p" 0
+-!entry.CGLY.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CGLY.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CGLY.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CHID.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.027370
+- "HA" "H1" 0 1 131072 4 1 0.038450
+- "CB" "CT" 0 1 131072 5 6 -0.339570
+- "HB2" "HC" 0 1 131072 6 1 0.133210
+- "HB3" "HC" 0 1 131072 7 1 0.133210
+- "CG" "CC" 0 1 131072 8 6 0.324210
+- "ND1" "NA" 0 1 131072 9 7 -0.387720
+- "HD1" "H" 0 1 131072 10 1 0.367140
+- "CE1" "CR" 0 1 131072 11 6 0.234580
+- "HE1" "H5" 0 1 131072 12 1 0.060770
+- "NE2" "NB" 0 1 131072 13 7 -0.513820
+- "CD2" "CV" 0 1 131072 14 6 -0.060620
+- "HD2" "H4" 0 1 131072 15 1 0.090590
+- "C" "C" 0 1 131072 16 6 0.705530
+- "O" "O2" 0 1 131072 17 8 -0.822990
+- "OXT" "O2" 0 1 131072 18 8 -0.822990
+-!entry.CHID.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CC" 0 -1 0.0
+- "ND1" "NA" 0 -1 0.0
+- "HD1" "H" 0 -1 0.0
+- "CE1" "CR" 0 -1 0.0
+- "HE1" "H5" 0 -1 0.0
+- "NE2" "NB" 0 -1 0.0
+- "CD2" "CV" 0 -1 0.0
+- "HD2" "H4" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CHID.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CHID.unit.childsequence single int
+- 2
+-!entry.CHID.unit.connect array int
+- 1
+- 0
+-!entry.CHID.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 16 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 14 1
+- 9 10 1
+- 9 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 14 15 1
+- 16 17 1
+- 16 18 1
+-!entry.CHID.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+-!entry.CHID.unit.name single str
+- "CHID"
+-!entry.CHID.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 3.942782 5.885086 2.382972
+- 3.339725 5.691913 3.169805
+- 4.624274 6.997642 2.182500
+- 4.563048 7.811875 2.904563
+- 5.294011 6.891451 1.061663
+- 5.058974 5.678868 0.492453
+- 5.537741 5.417846 -0.451343
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CHID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CHID.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CHID" 1 19 1 "p" 0
+-!entry.CHID.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CHID.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CHID.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CHIE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.124850
+- "HA" "H1" 0 1 131072 4 1 0.066680
+- "CB" "CT" 0 1 131072 5 6 -0.261430
+- "HB2" "HC" 0 1 131072 6 1 0.140860
+- "HB3" "HC" 0 1 131072 7 1 0.140860
+- "CG" "CC" 0 1 131072 8 6 0.443190
+- "ND1" "NB" 0 1 131072 9 7 -0.679990
+- "CE1" "CR" 0 1 131072 10 6 0.325720
+- "HE1" "H5" 0 1 131072 11 1 0.037400
+- "NE2" "NA" 0 1 131072 12 7 -0.315320
+- "HE2" "H" 0 1 131072 13 1 0.339080
+- "CD2" "CW" 0 1 131072 14 6 -0.228430
+- "HD2" "H4" 0 1 131072 15 1 0.169290
+- "C" "C" 0 1 131072 16 6 0.705530
+- "O" "O2" 0 1 131072 17 8 -0.822990
+- "OXT" "O2" 0 1 131072 18 8 -0.822990
+-!entry.CHIE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CC" 0 -1 0.0
+- "ND1" "NB" 0 -1 0.0
+- "CE1" "CR" 0 -1 0.0
+- "HE1" "H5" 0 -1 0.0
+- "NE2" "NA" 0 -1 0.0
+- "HE2" "H" 0 -1 0.0
+- "CD2" "CW" 0 -1 0.0
+- "HD2" "H4" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CHIE.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CHIE.unit.childsequence single int
+- 2
+-!entry.CHIE.unit.connect array int
+- 1
+- 0
+-!entry.CHIE.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 16 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 14 1
+- 9 10 1
+- 10 11 1
+- 10 12 1
+- 12 13 1
+- 12 14 1
+- 14 15 1
+- 16 17 1
+- 16 18 1
+-!entry.CHIE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+-!entry.CHIE.unit.name single str
+- "CHIE"
+-!entry.CHIE.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 3.942782 5.885086 2.382972
+- 4.624274 6.997642 2.182500
+- 4.563048 7.811875 2.904563
+- 5.294011 6.891451 1.061663
+- 5.896297 7.605085 0.676854
+- 5.058974 5.678868 0.492453
+- 5.537741 5.417846 -0.451343
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CHIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CHIE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CHIE" 1 19 1 "p" 0
+-!entry.CHIE.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CHIE.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CHIE.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CHIP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.029340
+- "HA" "H1" 0 1 131072 4 1 0.065870
+- "CB" "CT" 0 1 131072 5 6 -0.093770
+- "HB2" "HC" 0 1 131072 6 1 0.087980
+- "HB3" "HC" 0 1 131072 7 1 0.087980
+- "CG" "CC" 0 1 131072 8 6 0.263950
+- "ND1" "NA" 0 1 131072 9 7 -0.125480
+- "HD1" "H" 0 1 131072 10 1 0.367860
+- "CE1" "CR" 0 1 131072 11 6 -0.069000
+- "HE1" "H5" 0 1 131072 12 1 0.195860
+- "NE2" "NA" 0 1 131072 13 7 0.034660
+- "HE2" "H" 0 1 131072 14 1 0.297530
+- "CD2" "CW" 0 1 131072 15 6 -0.181280
+- "HD2" "H4" 0 1 131072 16 1 0.150240
+- "C" "C" 0 1 131072 17 6 0.705530
+- "O" "O2" 0 1 131072 18 8 -0.822990
+- "OXT" "O2" 0 1 131072 19 8 -0.822990
+-!entry.CHIP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CC" 0 -1 0.0
+- "ND1" "NA" 0 -1 0.0
+- "HD1" "H" 0 -1 0.0
+- "CE1" "CR" 0 -1 0.0
+- "HE1" "H5" 0 -1 0.0
+- "NE2" "NA" 0 -1 0.0
+- "HE2" "H" 0 -1 0.0
+- "CD2" "CW" 0 -1 0.0
+- "HD2" "H4" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CHIP.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CHIP.unit.childsequence single int
+- 2
+-!entry.CHIP.unit.connect array int
+- 1
+- 0
+-!entry.CHIP.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 17 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 15 1
+- 9 10 1
+- 9 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 15 1
+- 15 16 1
+- 17 18 1
+- 17 19 1
+-!entry.CHIP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+-!entry.CHIP.unit.name single str
+- "CHIP"
+-!entry.CHIP.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 3.942782 5.885086 2.382972
+- 3.339725 5.691913 3.169805
+- 4.624274 6.997642 2.182500
+- 4.563048 7.811875 2.904563
+- 5.294011 6.891451 1.061663
+- 5.896297 7.605085 0.676854
+- 5.058974 5.678868 0.492453
+- 5.537741 5.417846 -0.451343
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CHIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CHIP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CHIP" 1 20 1 "p" 0
+-!entry.CHIP.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CHIP.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CHIP.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CILE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.287930
+- "HA" "H1" 0 1 131072 4 1 0.135390
+- "CB" "CT" 0 1 131072 5 6 0.357940
+- "HB" "HC" 0 1 131072 6 1 -0.079320
+- "CG2" "CT" 0 1 131072 7 6 -0.501190
+- "HG21" "HC" 0 1 131072 8 1 0.140430
+- "HG22" "HC" 0 1 131072 9 1 0.140430
+- "HG23" "HC" 0 1 131072 10 1 0.140430
+- "CG1" "CT" 0 1 131072 11 6 -0.081150
+- "HG12" "HC" 0 1 131072 12 1 0.048560
+- "HG13" "HC" 0 1 131072 13 1 0.048560
+- "CD1" "CT" 0 1 131072 14 6 -0.094950
+- "HD11" "HC" 0 1 131072 15 1 0.028620
+- "HD12" "HC" 0 1 131072 16 1 0.028620
+- "HD13" "HC" 0 1 131072 17 1 0.028620
+- "C" "C" 0 1 131072 18 6 0.705530
+- "O" "O2" 0 1 131072 19 8 -0.822990
+- "OXT" "O2" 0 1 131072 20 8 -0.822990
+-!entry.CILE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB" "HC" 0 -1 0.0
+- "CG2" "CT" 0 -1 0.0
+- "HG21" "HC" 0 -1 0.0
+- "HG22" "HC" 0 -1 0.0
+- "HG23" "HC" 0 -1 0.0
+- "CG1" "CT" 0 -1 0.0
+- "HG12" "HC" 0 -1 0.0
+- "HG13" "HC" 0 -1 0.0
+- "CD1" "CT" 0 -1 0.0
+- "HD11" "HC" 0 -1 0.0
+- "HD12" "HC" 0 -1 0.0
+- "HD13" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CILE.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CILE.unit.childsequence single int
+- 2
+-!entry.CILE.unit.connect array int
+- 1
+- 0
+-!entry.CILE.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 18 1
+- 5 6 1
+- 5 7 1
+- 5 11 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 11 12 1
+- 11 13 1
+- 11 14 1
+- 14 15 1
+- 14 16 1
+- 14 17 1
+- 18 19 1
+- 18 20 1
+-!entry.CILE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+-!entry.CILE.unit.name single str
+- "CILE"
+-!entry.CILE.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.552136 3.620733 1.245168
+- 2.470128 3.752486 1.245640
+- 3.970045 2.845728 2.490296
+- 5.052053 2.713974 2.490763
+- 3.671561 3.399208 3.380615
+- 3.485650 1.869275 2.490737
+- 4.230204 4.986694 1.245169
+- 5.312310 4.855746 1.245164
+- 3.931820 5.541027 0.355348
+- 3.812294 5.761632 2.490339
+- 4.110777 5.208104 3.380628
+- 4.296689 6.738085 2.490833
+- 2.730286 5.893383 2.490813
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CILE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CILE" 1 21 1 "p" 0
+-!entry.CILE.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CILE.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CILE.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CLEU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.151630
+- "HA" "H1" 0 1 131072 4 1 0.080730
+- "CB" "CT" 0 1 131072 5 6 -0.251240
+- "HB2" "HC" 0 1 131072 6 1 0.113740
+- "HB3" "HC" 0 1 131072 7 1 0.113740
+- "CG" "CT" 0 1 131072 8 6 0.579270
+- "HG" "HC" 0 1 131072 9 1 -0.096890
+- "CD1" "CT" 0 1 131072 10 6 -0.760610
+- "HD11" "HC" 0 1 131072 11 1 0.197760
+- "HD12" "HC" 0 1 131072 12 1 0.197760
+- "HD13" "HC" 0 1 131072 13 1 0.197760
+- "CD2" "CT" 0 1 131072 14 6 -0.760610
+- "HD21" "HC" 0 1 131072 15 1 0.197760
+- "HD22" "HC" 0 1 131072 16 1 0.197760
+- "HD23" "HC" 0 1 131072 17 1 0.197760
+- "C" "C" 0 1 131072 18 6 0.705530
+- "O" "O2" 0 1 131072 19 8 -0.822990
+- "OXT" "O2" 0 1 131072 20 8 -0.822990
+-!entry.CLEU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG" "HC" 0 -1 0.0
+- "CD1" "CT" 0 -1 0.0
+- "HD11" "HC" 0 -1 0.0
+- "HD12" "HC" 0 -1 0.0
+- "HD13" "HC" 0 -1 0.0
+- "CD2" "CT" 0 -1 0.0
+- "HD21" "HC" 0 -1 0.0
+- "HD22" "HC" 0 -1 0.0
+- "HD23" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CLEU.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CLEU.unit.childsequence single int
+- 2
+-!entry.CLEU.unit.connect array int
+- 1
+- 0
+-!entry.CLEU.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 18 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 14 1
+- 10 11 1
+- 10 12 1
+- 10 13 1
+- 14 15 1
+- 14 16 1
+- 14 17 1
+- 18 19 1
+- 18 20 1
+-!entry.CLEU.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+-!entry.CLEU.unit.name single str
+- "CLEU"
+-!entry.CLEU.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.853429 5.762895 -0.062857
+- 2.773449 5.910113 -0.054557
+- 4.351513 6.732052 -0.090203
+- 4.134159 5.185704 -0.943846
+- 3.881105 5.817645 2.426721
+- 4.181626 5.279602 3.325774
+- 4.379198 6.786825 2.400363
+- 2.801135 5.964881 2.435959
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CLEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CLEU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CLEU" 1 21 1 "p" 0
+-!entry.CLEU.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CLEU.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CLEU.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CLYN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.163200
+- "HA" "H1" 0 1 131072 4 1 0.095860
+- "CB" "CT" 0 1 131072 5 6 0.095690
+- "HB2" "HC" 0 1 131072 6 1 -0.015960
+- "HB3" "HC" 0 1 131072 7 1 -0.015960
+- "CG" "CT" 0 1 131072 8 6 0.018310
+- "HG2" "HC" 0 1 131072 9 1 0.010750
+- "HG3" "HC" 0 1 131072 10 1 0.010750
+- "CD" "CT" 0 1 131072 11 6 -0.229410
+- "HD2" "HC" 0 1 131072 12 1 0.104310
+- "HD3" "HC" 0 1 131072 13 1 0.104310
+- "CE" "CT" 0 1 131072 14 6 0.528910
+- "HE2" "H1" 0 1 131072 15 1 -0.110750
+- "HE3" "H1" 0 1 131072 16 1 -0.110750
+- "NZ" "NT" 0 1 131072 17 7 -0.980200
+- "HZ2" "H" 0 1 131072 18 1 0.355200
+- "HZ3" "H" 0 1 131072 19 1 0.355200
+- "C" "C" 0 1 131072 20 6 0.705530
+- "O" "O2" 0 1 131072 21 8 -0.822990
+- "OXT" "O2" 0 1 131072 22 8 -0.822990
+-!entry.CLYN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "CT" 0 -1 0.0
+- "HD2" "HC" 0 -1 0.0
+- "HD3" "HC" 0 -1 0.0
+- "CE" "CT" 0 -1 0.0
+- "HE2" "H1" 0 -1 0.0
+- "HE3" "H1" 0 -1 0.0
+- "NZ" "NT" 0 -1 0.0
+- "HZ2" "H" 0 -1 0.0
+- "HZ3" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CLYN.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CLYN.unit.childsequence single int
+- 2
+-!entry.CLYN.unit.connect array int
+- 1
+- 0
+-!entry.CLYN.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 20 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 11 14 1
+- 14 15 1
+- 14 16 1
+- 14 17 1
+- 17 18 1
+- 17 19 1
+- 20 21 1
+- 20 22 1
+-!entry.CLYN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+-!entry.CLYN.unit.name single str
+- "CLYN"
+-!entry.CLYN.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.881105 5.817645 2.426721
+- 2.801135 5.964881 2.435959
+- 4.181626 5.279602 3.325774
+- 4.578325 7.173410 2.389153
+- 5.658410 7.026987 2.380363
+- 4.277917 7.712267 1.490550
+- 4.199422 7.952309 3.576860
+- 4.661186 8.850226 3.551979
+- 3.198675 8.088466 3.584971
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CLYN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CLYN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CLYN" 1 23 1 "p" 0
+-!entry.CLYN.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CLYN.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CLYN.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CLYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.185190
+- "HA" "H1" 0 1 131072 4 1 0.120990
+- "CB" "CT" 0 1 131072 5 6 0.035190
+- "HB2" "HC" 0 1 131072 6 1 0.015850
+- "HB3" "HC" 0 1 131072 7 1 0.015850
+- "CG" "CT" 0 1 131072 8 6 -0.039190
+- "HG2" "HC" 0 1 131072 9 1 0.047540
+- "HG3" "HC" 0 1 131072 10 1 0.047540
+- "CD" "CT" 0 1 131072 11 6 -0.190030
+- "HD2" "HC" 0 1 131072 12 1 0.094440
+- "HD3" "HC" 0 1 131072 13 1 0.094440
+- "CE" "CT" 0 1 131072 14 6 0.457400
+- "HE2" "HP" 0 1 131072 15 1 -0.049110
+- "HE3" "HP" 0 1 131072 16 1 -0.049110
+- "NZ" "N3" 0 1 131072 17 7 -0.371640
+- "HZ1" "H" 0 1 131072 18 1 0.336030
+- "HZ2" "H" 0 1 131072 19 1 0.336030
+- "HZ3" "H" 0 1 131072 20 1 0.336030
+- "C" "C" 0 1 131072 21 6 0.705530
+- "O" "O2" 0 1 131072 22 8 -0.822990
+- "OXT" "O2" 0 1 131072 23 8 -0.822990
+-!entry.CLYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "CT" 0 -1 0.0
+- "HD2" "HC" 0 -1 0.0
+- "HD3" "HC" 0 -1 0.0
+- "CE" "CT" 0 -1 0.0
+- "HE2" "HP" 0 -1 0.0
+- "HE3" "HP" 0 -1 0.0
+- "NZ" "N3" 0 -1 0.0
+- "HZ1" "H" 0 -1 0.0
+- "HZ2" "H" 0 -1 0.0
+- "HZ3" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CLYS.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CLYS.unit.childsequence single int
+- 2
+-!entry.CLYS.unit.connect array int
+- 1
+- 0
+-!entry.CLYS.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 21 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 11 14 1
+- 14 15 1
+- 14 16 1
+- 14 17 1
+- 17 18 1
+- 17 19 1
+- 17 20 1
+- 21 22 1
+- 21 23 1
+-!entry.CLYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+- "R" 1 "A" 23
+-!entry.CLYS.unit.name single str
+- "CLYS"
+-!entry.CLYS.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.881105 5.817645 2.426721
+- 2.801135 5.964881 2.435959
+- 4.181626 5.279602 3.325774
+- 4.578325 7.173410 2.389153
+- 5.658410 7.026987 2.380363
+- 4.277917 7.712267 1.490550
+- 4.199422 7.952309 3.576860
+- 4.478085 7.453366 4.409628
+- 4.661186 8.850226 3.551979
+- 3.198675 8.088466 3.584971
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CLYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CLYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CLYS" 1 24 1 "p" 0
+-!entry.CLYS.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CLYS.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CLYS.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CMET.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.171820
+- "HA" "H1" 0 1 131072 4 1 0.129660
+- "CB" "CT" 0 1 131072 5 6 0.250160
+- "HB2" "HC" 0 1 131072 6 1 -0.026630
+- "HB3" "HC" 0 1 131072 7 1 -0.026630
+- "CG" "CT" 0 1 131072 8 6 -0.366710
+- "HG2" "H1" 0 1 131072 9 1 0.160270
+- "HG3" "H1" 0 1 131072 10 1 0.160270
+- "SD" "S" 0 1 131072 11 16 -0.122120
+- "CE" "CT" 0 1 131072 12 6 -0.263690
+- "HE1" "H1" 0 1 131072 13 1 0.110100
+- "HE2" "H1" 0 1 131072 14 1 0.110100
+- "HE3" "H1" 0 1 131072 15 1 0.110100
+- "C" "C" 0 1 131072 16 6 0.705530
+- "O" "O2" 0 1 131072 17 8 -0.822990
+- "OXT" "O2" 0 1 131072 18 8 -0.822990
+-!entry.CMET.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "H1" 0 -1 0.0
+- "HG3" "H1" 0 -1 0.0
+- "SD" "S" 0 -1 0.0
+- "CE" "CT" 0 -1 0.0
+- "HE1" "H1" 0 -1 0.0
+- "HE2" "H1" 0 -1 0.0
+- "HE3" "H1" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CMET.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CMET.unit.childsequence single int
+- 2
+-!entry.CMET.unit.connect array int
+- 1
+- 0
+-!entry.CMET.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 16 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 12 13 1
+- 12 14 1
+- 12 15 1
+- 16 17 1
+- 16 18 1
+-!entry.CMET.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+-!entry.CMET.unit.name single str
+- "CMET"
+-!entry.CMET.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.817309 5.981266 2.651708
+- 4.753212 7.463128 2.340949
+- 4.433582 7.904044 1.396741
+- 4.585907 8.175299 3.148985
+- 5.814074 7.218763 2.286554
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CMET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CMET.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CMET" 1 19 1 "p" 0
+-!entry.CMET.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CMET.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CMET.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CPHE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.072690
+- "HA" "H1" 0 1 131072 4 1 0.053080
+- "CB" "CT" 0 1 131072 5 6 -0.213480
+- "HB2" "HC" 0 1 131072 6 1 0.116210
+- "HB3" "HC" 0 1 131072 7 1 0.116210
+- "CG" "CA" 0 1 131072 8 6 0.197950
+- "CD1" "CA" 0 1 131072 9 6 -0.219910
+- "HD1" "HA" 0 1 131072 10 1 0.142120
+- "CE1" "CA" 0 1 131072 11 6 -0.084720
+- "HE1" "HA" 0 1 131072 12 1 0.108500
+- "CZ" "CA" 0 1 131072 13 6 -0.128160
+- "HZ" "HA" 0 1 131072 14 1 0.091960
+- "CE2" "CA" 0 1 131072 15 6 -0.084720
+- "HE2" "HA" 0 1 131072 16 1 0.108500
+- "CD2" "CA" 0 1 131072 17 6 -0.219910
+- "HD2" "HA" 0 1 131072 18 1 0.142120
+- "C" "C" 0 1 131072 19 6 0.705530
+- "O" "O2" 0 1 131072 20 8 -0.822990
+- "OXT" "O2" 0 1 131072 21 8 -0.822990
+-!entry.CPHE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CA" 0 -1 0.0
+- "CD1" "CA" 0 -1 0.0
+- "HD1" "HA" 0 -1 0.0
+- "CE1" "CA" 0 -1 0.0
+- "HE1" "HA" 0 -1 0.0
+- "CZ" "CA" 0 -1 0.0
+- "HZ" "HA" 0 -1 0.0
+- "CE2" "CA" 0 -1 0.0
+- "HE2" "HA" 0 -1 0.0
+- "CD2" "CA" 0 -1 0.0
+- "HD2" "HA" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CPHE.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CPHE.unit.childsequence single int
+- 2
+-!entry.CPHE.unit.connect array int
+- 1
+- 0
+-!entry.CPHE.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 19 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 17 1
+- 9 10 1
+- 9 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 15 1
+- 15 16 1
+- 15 17 1
+- 17 18 1
+- 19 20 1
+- 19 21 1
+-!entry.CPHE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+-!entry.CPHE.unit.name single str
+- "CPHE"
+-!entry.CPHE.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 3.911613 5.857250 2.409890
+- 3.236123 5.513843 3.193398
+- 4.490014 7.129513 2.492354
+- 4.264853 7.776651 3.340066
+- 5.357616 7.570591 1.486016
+- 5.807943 8.561138 1.550220
+- 5.646818 6.739407 0.397211
+- 6.322309 7.082817 -0.386295
+- 5.068419 5.467143 0.314744
+- 5.293584 4.820007 -0.532968
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CPHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CPHE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CPHE" 1 22 1 "p" 0
+-!entry.CPHE.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CPHE.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CPHE.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CPRO.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.251210
+- "CD" "CT" 0 1 131072 2 6 0.062560
+- "HD2" "H1" 0 1 131072 3 1 0.022030
+- "HD3" "H1" 0 1 131072 4 1 0.022010
+- "CG" "CT" 0 1 131072 5 6 0.066380
+- "HG2" "HC" 0 1 131072 6 1 0.007490
+- "HG3" "HC" 0 1 131072 7 1 0.007490
+- "CB" "CT" 0 1 131072 8 6 0.069820
+- "HB2" "HC" 0 1 131072 9 1 0.013210
+- "HB3" "HC" 0 1 131072 10 1 0.013210
+- "CA" "CT" 0 1 131072 11 6 -0.200450
+- "HA" "H1" 0 1 131072 12 1 0.107910
+- "C" "C" 0 1 131072 13 6 0.705530
+- "O" "O2" 0 1 131072 14 8 -0.822990
+- "OXT" "O2" 0 1 131072 15 8 -0.822990
+-!entry.CPRO.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "CD" "CT" 0 -1 0.0
+- "HD2" "H1" 0 -1 0.0
+- "HD3" "H1" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CPRO.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CPRO.unit.childsequence single int
+- 2
+-!entry.CPRO.unit.connect array int
+- 1
+- 0
+-!entry.CPRO.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 11 1
+- 2 3 1
+- 2 4 1
+- 2 5 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 15 1
+-!entry.CPRO.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+-!entry.CPRO.unit.name single str
+- "CPRO"
+-!entry.CPRO.unit.positions table dbl x dbl y dbl z
+- 3.326834 1.557389 -1.603945E-06
+- 4.302147 0.476598 0.080119
+- 4.419998 0.019283 -0.902263
+- 3.955888 -0.274040 0.790574
+- 5.547126 1.172441 0.544693
+- 6.413549 0.741636 0.042879
+- 5.652950 1.047934 1.622376
+- 5.369091 2.628184 0.185227
+- 5.969289 2.861861 -0.694123
+- 5.690642 3.251038 1.019947
+- 3.933610 2.871277 -0.104508
+- 3.611470 3.488570 0.734106
+- 3.505164 3.526392 -1.409783
+- 2.754240 2.939065 -2.185412
+- 3.904907 4.650696 -1.704043
+-!entry.CPRO.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CPRO.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CPRO" 1 16 1 "p" 0
+-!entry.CPRO.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CPRO.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CPRO.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CSER.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.069940
+- "HA" "H1" 0 1 131072 4 1 0.110000
+- "CB" "CT" 0 1 131072 5 6 0.169960
+- "HB2" "H1" 0 1 131072 6 1 0.022900
+- "HB3" "H1" 0 1 131072 7 1 0.022900
+- "OG" "OH" 0 1 131072 8 8 -0.571310
+- "HG" "HO" 0 1 131072 9 1 0.368550
+- "C" "C" 0 1 131072 10 6 0.705530
+- "O" "O2" 0 1 131072 11 8 -0.822990
+- "OXT" "O2" 0 1 131072 12 8 -0.822990
+-!entry.CSER.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "H1" 0 -1 0.0
+- "HB3" "H1" 0 -1 0.0
+- "OG" "OH" 0 -1 0.0
+- "HG" "HO" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CSER.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CSER.unit.childsequence single int
+- 2
+-!entry.CSER.unit.connect array int
+- 1
+- 0
+-!entry.CSER.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 10 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 10 11 1
+- 10 12 1
+-!entry.CSER.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+-!entry.CSER.unit.name single str
+- "CSER"
+-!entry.CSER.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.230753 4.925145 1.196917
+- 3.983305 5.433814 1.972562
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CSER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CSER.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CSER" 1 13 1 "p" 0
+-!entry.CSER.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CSER.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CSER.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CTHR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 0.019110
+- "HA" "H1" 0 1 131072 4 1 0.067720
+- "CB" "CT" 0 1 131072 5 6 0.444500
+- "HB" "H1" 0 1 131072 6 1 -0.106110
+- "CG2" "CT" 0 1 131072 7 6 -0.496090
+- "HG21" "HC" 0 1 131072 8 1 0.133070
+- "HG22" "HC" 0 1 131072 9 1 0.133070
+- "HG23" "HC" 0 1 131072 10 1 0.133070
+- "OG1" "OH" 0 1 131072 11 8 -0.724290
+- "HG1" "HO" 0 1 131072 12 1 0.449010
+- "C" "C" 0 1 131072 13 6 0.705530
+- "O" "O2" 0 1 131072 14 8 -0.822990
+- "OXT" "O2" 0 1 131072 15 8 -0.822990
+-!entry.CTHR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB" "H1" 0 -1 0.0
+- "CG2" "CT" 0 -1 0.0
+- "HG21" "HC" 0 -1 0.0
+- "HG22" "HC" 0 -1 0.0
+- "HG23" "HC" 0 -1 0.0
+- "OG1" "OH" 0 -1 0.0
+- "HG1" "HO" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CTHR.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CTHR.unit.childsequence single int
+- 2
+-!entry.CTHR.unit.connect array int
+- 1
+- 0
+-!entry.CTHR.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 13 1
+- 5 6 1
+- 5 7 1
+- 5 11 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 11 12 1
+- 13 14 1
+- 13 15 1
+-!entry.CTHR.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+-!entry.CTHR.unit.name single str
+- "CTHR"
+-!entry.CTHR.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 4.075059 4.623017 1.205786
+- 2.065936 3.859425 1.244383
+- 1.567127 2.890627 1.271209
+- 1.784431 4.436953 2.124903
+- 1.764699 4.397847 0.345796
+- 3.971501 2.947413 2.411212
+- 3.724052 3.456082 3.186857
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CTHR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CTHR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CTHR" 1 16 1 "p" 0
+-!entry.CTHR.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CTHR.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CTHR.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CTRP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.090040
+- "HA" "H1" 0 1 131072 4 1 0.084020
+- "CB" "CT" 0 1 131072 5 6 0.040520
+- "HB2" "HC" 0 1 131072 6 1 0.031680
+- "HB3" "HC" 0 1 131072 7 1 0.031680
+- "CG" "C*" 0 1 131072 8 6 -0.293840
+- "CD1" "CW" 0 1 131072 9 6 0.036620
+- "HD1" "H4" 0 1 131072 10 1 0.130250
+- "NE1" "NA" 0 1 131072 11 7 -0.473000
+- "HE1" "H" 0 1 131072 12 1 0.391490
+- "CE2" "CN" 0 1 131072 13 6 0.187500
+- "CZ2" "CA" 0 1 131072 14 6 -0.261570
+- "HZ2" "HA" 0 1 131072 15 1 0.183290
+- "CH2" "CA" 0 1 131072 16 6 -0.178280
+- "HH2" "HA" 0 1 131072 17 1 0.106010
+- "CZ3" "CA" 0 1 131072 18 6 -0.048150
+- "HZ3" "HA" 0 1 131072 19 1 0.086830
+- "CE3" "CA" 0 1 131072 20 6 -0.414910
+- "HE3" "HA" 0 1 131072 21 1 0.219040
+- "CD2" "CB" 0 1 131072 22 6 0.283920
+- "C" "C" 0 1 131072 23 6 0.705530
+- "O" "O2" 0 1 131072 24 8 -0.822990
+- "OXT" "O2" 0 1 131072 25 8 -0.822990
+-!entry.CTRP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "C*" 0 -1 0.0
+- "CD1" "CW" 0 -1 0.0
+- "HD1" "H4" 0 -1 0.0
+- "NE1" "NA" 0 -1 0.0
+- "HE1" "H" 0 -1 0.0
+- "CE2" "CN" 0 -1 0.0
+- "CZ2" "CA" 0 -1 0.0
+- "HZ2" "HA" 0 -1 0.0
+- "CH2" "CA" 0 -1 0.0
+- "HH2" "HA" 0 -1 0.0
+- "CZ3" "CA" 0 -1 0.0
+- "HZ3" "HA" 0 -1 0.0
+- "CE3" "CA" 0 -1 0.0
+- "HE3" "HA" 0 -1 0.0
+- "CD2" "CB" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CTRP.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CTRP.unit.childsequence single int
+- 2
+-!entry.CTRP.unit.connect array int
+- 1
+- 0
+-!entry.CTRP.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 23 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 22 1
+- 9 10 1
+- 9 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 22 1
+- 14 15 1
+- 14 16 1
+- 16 17 1
+- 16 18 1
+- 18 19 1
+- 18 20 1
+- 20 21 1
+- 20 22 1
+- 23 24 1
+- 23 25 1
+-!entry.CTRP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+- "R" 1 "A" 23
+- "R" 1 "A" 24
+- "R" 1 "A" 25
+-!entry.CTRP.unit.name single str
+- "CTRP"
+-!entry.CTRP.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 4.023453 5.931084 2.293240
+- 3.368841 5.705466 3.135071
+- 4.811943 7.073555 1.949808
+- 4.882921 7.922010 2.493118
+- 5.427347 6.842060 0.816764
+- 6.297161 7.689052 0.119605
+- 6.531230 8.676649 0.517050
+- 6.814091 7.187011 -1.069023
+- 7.498074 7.791857 -1.664362
+- 6.482659 5.953119 -1.505101
+- 6.897660 5.575648 -2.439654
+- 5.604041 5.117355 -0.785636
+- 5.358720 4.126570 -1.168080
+- 5.083390 5.623004 0.411545
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CTRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CTRP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CTRP" 1 26 1 "p" 0
+-!entry.CTRP.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CTRP.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CTRP.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CTYR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.175550
+- "HA" "H1" 0 1 131072 4 1 0.121890
+- "CB" "CT" 0 1 131072 5 6 -0.093730
+- "HB2" "HC" 0 1 131072 6 1 0.086440
+- "HB3" "HC" 0 1 131072 7 1 0.086440
+- "CG" "CA" 0 1 131072 8 6 0.017450
+- "CD1" "CA" 0 1 131072 9 6 -0.128300
+- "HD1" "HA" 0 1 131072 10 1 0.137650
+- "CE1" "CA" 0 1 131072 11 6 -0.334250
+- "HE1" "HA" 0 1 131072 12 1 0.190120
+- "CZ" "CA" 0 1 131072 13 6 0.442000
+- "OH" "OH" 0 1 131072 14 8 -0.544620
+- "HH" "HO" 0 1 131072 15 1 0.382300
+- "CE2" "CA" 0 1 131072 16 6 -0.334250
+- "HE2" "HA" 0 1 131072 17 1 0.190120
+- "CD2" "CA" 0 1 131072 18 6 -0.128300
+- "HD2" "HA" 0 1 131072 19 1 0.137650
+- "C" "C" 0 1 131072 20 6 0.705530
+- "O" "O2" 0 1 131072 21 8 -0.822990
+- "OXT" "O2" 0 1 131072 22 8 -0.822990
+-!entry.CTYR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CA" 0 -1 0.0
+- "CD1" "CA" 0 -1 0.0
+- "HD1" "HA" 0 -1 0.0
+- "CE1" "CA" 0 -1 0.0
+- "HE1" "HA" 0 -1 0.0
+- "CZ" "CA" 0 -1 0.0
+- "OH" "OH" 0 -1 0.0
+- "HH" "HO" 0 -1 0.0
+- "CE2" "CA" 0 -1 0.0
+- "HE2" "HA" 0 -1 0.0
+- "CD2" "CA" 0 -1 0.0
+- "HD2" "HA" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CTYR.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CTYR.unit.childsequence single int
+- 2
+-!entry.CTYR.unit.connect array int
+- 1
+- 0
+-!entry.CTYR.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 20 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 18 1
+- 9 10 1
+- 9 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 16 1
+- 14 15 1
+- 16 17 1
+- 16 18 1
+- 18 19 1
+- 20 21 1
+- 20 22 1
+-!entry.CTYR.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+-!entry.CTYR.unit.name single str
+- "CTYR"
+-!entry.CTYR.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.267328 4.996267 1.194946
+- 4.059927 5.918911 2.227280
+- 3.400108 5.668218 3.057877
+- 4.699998 7.163547 2.192791
+- 4.538522 7.881891 2.996538
+- 5.547471 7.485542 1.125970
+- 6.169255 8.694617 1.092468
+- 5.956327 9.246984 1.848214
+- 5.754875 6.562900 0.093635
+- 6.414694 6.813595 -0.736962
+- 5.114806 5.318263 0.128119
+- 5.276286 4.599920 -0.675627
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CTYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CTYR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CTYR" 1 23 1 "p" 0
+-!entry.CTYR.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CTYR.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CTYR.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CVAL.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.213060
+- "HA" "H1" 0 1 131072 4 1 0.122010
+- "CB" "CT" 0 1 131072 5 6 0.550920
+- "HB" "HC" 0 1 131072 6 1 -0.083650
+- "CG1" "CT" 0 1 131072 7 6 -0.705720
+- "HG11" "HC" 0 1 131072 8 1 0.181380
+- "HG12" "HC" 0 1 131072 9 1 0.181380
+- "HG13" "HC" 0 1 131072 10 1 0.181380
+- "CG2" "CT" 0 1 131072 11 6 -0.705720
+- "HG21" "HC" 0 1 131072 12 1 0.181380
+- "HG22" "HC" 0 1 131072 13 1 0.181380
+- "HG23" "HC" 0 1 131072 14 1 0.181380
+- "C" "C" 0 1 131072 15 6 0.705530
+- "O" "O2" 0 1 131072 16 8 -0.822990
+- "OXT" "O2" 0 1 131072 17 8 -0.822990
+-!entry.CVAL.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB" "HC" 0 -1 0.0
+- "CG1" "CT" 0 -1 0.0
+- "HG11" "HC" 0 -1 0.0
+- "HG12" "HC" 0 -1 0.0
+- "HG13" "HC" 0 -1 0.0
+- "CG2" "CT" 0 -1 0.0
+- "HG21" "HC" 0 -1 0.0
+- "HG22" "HC" 0 -1 0.0
+- "HG23" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O2" 0 -1 0.0
+- "OXT" "O2" 0 -1 0.0
+-!entry.CVAL.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CVAL.unit.childsequence single int
+- 2
+-!entry.CVAL.unit.connect array int
+- 1
+- 0
+-!entry.CVAL.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 15 1
+- 5 6 1
+- 5 7 1
+- 5 11 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 11 12 1
+- 11 13 1
+- 11 14 1
+- 15 16 1
+- 15 17 1
+-!entry.CVAL.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+-!entry.CVAL.unit.name single str
+- "CVAL"
+-!entry.CVAL.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.997712 2.900483 2.489542
+- 5.077693 2.753265 2.481244
+- 3.716972 3.477628 3.370558
+- 3.499630 1.931323 2.516834
+- 4.274186 5.009602 1.194577
+- 3.973781 5.548460 0.295972
+- 3.993559 5.587585 2.075079
+- 5.354271 4.863178 1.185788
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+- 6.204455 3.702003 -2.420005E-06
+-!entry.CVAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 0 0 0 0 0
+-!entry.CVAL.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CVAL" 1 18 1 "p" 0
+-!entry.CVAL.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CVAL.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CVAL.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NME.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.534190
+- "H" "H" 0 1 131072 2 1 0.339300
+- "CH3" "CT" 0 1 131072 3 6 0.044800
+- "HH31" "H1" 0 1 131072 4 1 0.050030
+- "HH32" "H1" 0 1 131072 5 1 0.050030
+- "HH33" "H1" 0 1 131072 6 1 0.050030
+-!entry.NME.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CH3" "CT" 0 -1 0.0
+- "HH31" "H1" 0 -1 0.0
+- "HH32" "H1" 0 -1 0.0
+- "HH33" "H1" 0 -1 0.0
+-!entry.NME.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NME.unit.childsequence single int
+- 2
+-!entry.NME.unit.connect array int
+- 1
+- 0
+-!entry.NME.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 6 1
+-!entry.NME.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+-!entry.NME.unit.name single str
+- "NME"
+-!entry.NME.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.211504 3.628554 2.348065E-06
+- 4.591993 2.943271 0.889822
+- 4.591988 2.943275 -0.889825
+-!entry.NME.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 3 0 0 0 0
+-!entry.NME.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NME" 1 7 1 "p" 0
+-!entry.NME.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NME.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NME.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+diff --git a/dat/leap/lib/aminontpol12.lib b/dat/leap/lib/aminontpol12.lib
+deleted file mode 100644
+index ead0d89..0000000
+--- a/dat/leap/lib/aminontpol12.lib
++++ /dev/null
+@@ -1,3839 +0,0 @@
+-!!index array str
+- "ACE"
+- "NALA"
+- "NARG"
+- "NASH"
+- "NASN"
+- "NASP"
+- "NCYM"
+- "NCYS"
+- "NCYX"
+- "NGLH"
+- "NGLN"
+- "NGLU"
+- "NGLY"
+- "NHID"
+- "NHIE"
+- "NHIP"
+- "NILE"
+- "NLEU"
+- "NLYN"
+- "NLYS"
+- "NMET"
+- "NPHE"
+- "NPRO"
+- "NSER"
+- "NTHR"
+- "NTRP"
+- "NTYR"
+- "NVAL"
+-!entry.ACE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "HH31" "HC" 0 1 131072 1 1 0.245320
+- "CH3" "CT" 0 1 131072 2 6 -0.841920
+- "HH32" "HC" 0 1 131072 3 1 0.245320
+- "HH33" "HC" 0 1 131072 4 1 0.245320
+- "C" "C" 0 1 131072 5 6 0.730100
+- "O" "O" 0 1 131072 6 8 -0.624140
+-!entry.ACE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "HH31" "HC" 0 -1 0.0
+- "CH3" "CT" 0 -1 0.0
+- "HH32" "HC" 0 -1 0.0
+- "HH33" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.ACE.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ACE.unit.childsequence single int
+- 2
+-!entry.ACE.unit.connect array int
+- 0
+- 5
+-!entry.ACE.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 2 3 1
+- 2 4 1
+- 2 5 1
+- 5 6 1
+-!entry.ACE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+-!entry.ACE.unit.name single str
+- "ACE"
+-!entry.ACE.unit.positions table dbl x dbl y dbl z
+- 2.000001 1.000000 -1.346410E-06
+- 2.000001 2.090000 1.211769E-07
+- 1.486264 2.453849 0.889824
+- 1.486259 2.453852 -0.889820
+- 3.427420 2.640795 -2.981008E-06
+- 4.390580 1.877406 -6.602402E-06
+-!entry.ACE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 5 0 0 0 0
+-!entry.ACE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "ACE" 1 7 1 "p" 0
+-!entry.ACE.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.ACE.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ACE.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NALA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.062490
+- "HA" "HP" 0 1 131072 6 1 0.052310
+- "CB" "CT" 0 1 131072 7 6 -0.183710
+- "HB1" "HC" 0 1 131072 8 1 0.085560
+- "HB2" "HC" 0 1 131072 9 1 0.085560
+- "HB3" "HC" 0 1 131072 10 1 0.085560
+- "C" "C" 0 1 131072 11 6 0.670480
+- "O" "O" 0 1 131072 12 8 -0.583250
+-!entry.NALA.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB1" "HC" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NALA.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NALA.unit.childsequence single int
+- 2
+-!entry.NALA.unit.connect array int
+- 0
+- 11
+-!entry.NALA.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 11 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 11 12 1
+-!entry.NALA.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+-!entry.NALA.unit.name single str
+- "NALA"
+-!entry.NALA.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 3.877484 3.115795 2.131197
+- 4.075059 4.623017 1.205786
+- 2.496995 3.801075 1.241379
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NALA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 11 0 0 0 0
+-!entry.NALA.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NALA" 1 13 1 "p" 0
+-!entry.NALA.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NALA.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NALA.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NARG.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.086660
+- "HA" "HP" 0 1 131072 6 1 0.033450
+- "CB" "CT" 0 1 131072 7 6 0.605740
+- "HB2" "HC" 0 1 131072 8 1 -0.089670
+- "HB3" "HC" 0 1 131072 9 1 -0.111750
+- "CG" "CT" 0 1 131072 10 6 -0.639700
+- "HG2" "HC" 0 1 131072 11 1 0.145340
+- "HG3" "HC" 0 1 131072 12 1 0.145340
+- "CD" "CT" 0 1 131072 13 6 0.616090
+- "HD2" "H1" 0 1 131072 14 1 -0.083600
+- "HD3" "H1" 0 1 131072 15 1 -0.083600
+- "NE" "N2" 0 1 131072 16 7 -0.781830
+- "HE" "H" 0 1 131072 17 1 0.416010
+- "CZ" "CA" 0 1 131072 18 6 1.114550
+- "NH1" "N2" 0 1 131072 19 7 -0.955440
+- "HH11" "H" 0 1 131072 20 1 0.443490
+- "HH12" "H" 0 1 131072 21 1 0.443490
+- "NH2" "N2" 0 1 131072 22 7 -0.955440
+- "HH21" "H" 0 1 131072 23 1 0.443490
+- "HH22" "H" 0 1 131072 24 1 0.443490
+- "C" "C" 0 1 131072 25 6 0.670480
+- "O" "O" 0 1 131072 26 8 -0.583250
+-!entry.NARG.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "CT" 0 -1 0.0
+- "HD2" "H1" 0 -1 0.0
+- "HD3" "H1" 0 -1 0.0
+- "NE" "N2" 0 -1 0.0
+- "HE" "H" 0 -1 0.0
+- "CZ" "CA" 0 -1 0.0
+- "NH1" "N2" 0 -1 0.0
+- "HH11" "H" 0 -1 0.0
+- "HH12" "H" 0 -1 0.0
+- "NH2" "N2" 0 -1 0.0
+- "HH21" "H" 0 -1 0.0
+- "HH22" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NARG.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NARG.unit.childsequence single int
+- 2
+-!entry.NARG.unit.connect array int
+- 0
+- 25
+-!entry.NARG.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 25 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 12 1
+- 10 13 1
+- 13 14 1
+- 13 15 1
+- 13 16 1
+- 16 17 1
+- 16 18 1
+- 18 19 1
+- 18 22 1
+- 19 20 1
+- 19 21 1
+- 22 23 1
+- 22 24 1
+- 25 26 1
+-!entry.NARG.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+- "R" 1 "A" 23
+- "R" 1 "A" 24
+- "R" 1 "A" 25
+- "R" 1 "A" 26
+-!entry.NARG.unit.name single str
+- "NARG"
+-!entry.NARG.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.881105 5.817645 2.426721
+- 2.801135 5.964881 2.435959
+- 4.181626 5.279602 3.325774
+- 4.540320 7.142723 2.424483
+- 5.151805 7.375492 1.655065
+- 4.364284 8.040989 3.389382
+- 3.575026 7.807606 4.434133
+- 3.088949 6.925423 4.508848
+- 3.465367 8.513631 5.147998
+- 5.006254 9.201287 3.286991
+- 5.604855 9.375325 2.492329
+- 4.892216 9.903045 4.004368
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 25 0 0 0 0
+-!entry.NARG.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NARG" 1 27 1 "p" 0
+-!entry.NARG.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NARG.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NARG.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NASH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 0.084490
+- "HA" "HP" 0 1 131072 6 1 0.002600
+- "CB" "CT" 0 1 131072 7 6 -0.222150
+- "HB2" "HC" 0 1 131072 8 1 0.136250
+- "HB3" "HC" 0 1 131072 9 1 0.136250
+- "CG" "C" 0 1 131072 10 6 0.615590
+- "OD1" "O" 0 1 131072 11 8 -0.553020
+- "OD2" "OH" 0 1 131072 12 8 -0.580780
+- "HD2" "HO" 0 1 131072 13 1 0.443560
+- "C" "C" 0 1 131072 14 6 0.670480
+- "O" "O" 0 1 131072 15 8 -0.583250
+-!entry.NASH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "C" 0 -1 0.0
+- "OD1" "O" 0 -1 0.0
+- "OD2" "OH" 0 -1 0.0
+- "HD2" "HO" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NASH.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NASH.unit.childsequence single int
+- 2
+-!entry.NASH.unit.connect array int
+- 0
+- 14
+-!entry.NASH.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 14 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 12 1
+- 12 13 1
+- 14 15 1
+-!entry.NASH.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+-!entry.NASH.unit.name single str
+- "NASH"
+-!entry.NASH.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.275101 5.011380 1.194527
+- 3.669108 5.954940 0.620011
+- 5.407731 5.091879 1.740667
+- 5.742902 5.987179 1.652920
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NASH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 14 0 0 0 0
+-!entry.NASH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NASH" 1 16 1 "p" 0
+-!entry.NASH.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NASH.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NASH.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NASN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 0.009080
+- "HA" "HP" 0 1 131072 6 1 0.021090
+- "CB" "CT" 0 1 131072 7 6 -0.279860
+- "HB2" "HC" 0 1 131072 8 1 0.139080
+- "HB3" "HC" 0 1 131072 9 1 0.139080
+- "CG" "C" 0 1 131072 10 6 0.649780
+- "OD1" "O" 0 1 131072 11 8 -0.558030
+- "ND2" "N" 0 1 131072 12 7 -0.826350
+- "HD21" "H" 0 1 131072 13 1 0.384460
+- "HD22" "H" 0 1 131072 14 1 0.384460
+- "C" "C" 0 1 131072 15 6 0.670480
+- "O" "O" 0 1 131072 16 8 -0.583250
+-!entry.NASN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "C" 0 -1 0.0
+- "OD1" "O" 0 -1 0.0
+- "ND2" "N" 0 -1 0.0
+- "HD21" "H" 0 -1 0.0
+- "HD22" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NASN.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NASN.unit.childsequence single int
+- 2
+-!entry.NASN.unit.connect array int
+- 0
+- 15
+-!entry.NASN.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 15 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 12 1
+- 12 13 1
+- 12 14 1
+- 15 16 1
+-!entry.NASN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+-!entry.NASN.unit.name single str
+- "NASN"
+-!entry.NASN.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.253700 5.017112 1.232144
+- 5.005299 5.340406 0.315072
+- 3.984885 5.817909 2.265917
+- 4.408015 6.733702 2.314743
+- 3.359611 5.504297 2.994464
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 15 0 0 0 0
+-!entry.NASN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NASN" 1 17 1 "p" 0
+-!entry.NASN.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NASN.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NASN.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NASP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.021580
+- "HA" "HP" 0 1 131072 6 1 -0.015560
+- "CB" "CT" 0 1 131072 7 6 -0.319940
+- "HB2" "HC" 0 1 131072 8 1 0.089360
+- "HB3" "HC" 0 1 131072 9 1 0.089360
+- "CG" "C" 0 1 131072 10 6 0.883310
+- "OD1" "O2" 0 1 131072 11 8 -0.821080
+- "OD2" "O2" 0 1 131072 12 8 -0.821080
+- "C" "C" 0 1 131072 13 6 0.670480
+- "O" "O" 0 1 131072 14 8 -0.583250
+-!entry.NASP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "C" 0 -1 0.0
+- "OD1" "O2" 0 -1 0.0
+- "OD2" "O2" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NASP.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NASP.unit.childsequence single int
+- 2
+-!entry.NASP.unit.connect array int
+- 0
+- 13
+-!entry.NASP.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 13 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 12 1
+- 13 14 1
+-!entry.NASP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+-!entry.NASP.unit.name single str
+- "NASP"
+-!entry.NASP.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.275101 5.011380 1.194527
+- 3.669108 5.954940 0.620011
+- 5.407731 5.091879 1.740667
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 13 0 0 0 0
+-!entry.NASP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NASP" 1 15 1 "p" 0
+-!entry.NASP.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NASP.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NASP.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NCYM.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.141590
+- "HA" "HP" 0 1 131072 6 1 0.070220
+- "CB" "CT" 0 1 131072 7 6 0.112010
+- "HB2" "H1" 0 1 131072 8 1 -0.023100
+- "HB3" "H1" 0 1 131072 9 1 -0.023100
+- "SG" "SH" 0 1 131072 10 16 -0.931650
+- "C" "C" 0 1 131072 11 6 0.670480
+- "O" "O" 0 1 131072 12 8 -0.583250
+-!entry.NCYM.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "H1" 0 -1 0.0
+- "HB3" "H1" 0 -1 0.0
+- "SG" "SH" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NCYM.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NCYM.unit.childsequence single int
+- 2
+-!entry.NCYM.unit.connect array int
+- 0
+- 11
+-!entry.NCYM.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 11 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 11 12 1
+-!entry.NCYM.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+-!entry.NCYM.unit.name single str
+- "NCYM"
+-!entry.NCYM.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.309573 5.303523 1.366036
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NCYM.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 11 0 0 0 0
+-!entry.NCYM.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NCYM" 1 13 1 "p" 0
+-!entry.NCYM.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NCYM.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NCYM.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NCYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.008690
+- "HA" "HP" 0 1 131072 6 1 0.055730
+- "CB" "CT" 0 1 131072 7 6 -0.028460
+- "HB2" "H1" 0 1 131072 8 1 0.068320
+- "HB3" "H1" 0 1 131072 9 1 0.068320
+- "SG" "SH" 0 1 131072 10 16 -0.250480
+- "HG" "HS" 0 1 131072 11 1 0.158050
+- "C" "C" 0 1 131072 12 6 0.670480
+- "O" "O" 0 1 131072 13 8 -0.583250
+-!entry.NCYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "H1" 0 -1 0.0
+- "HB3" "H1" 0 -1 0.0
+- "SG" "SH" 0 -1 0.0
+- "HG" "HS" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NCYS.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NCYS.unit.childsequence single int
+- 2
+-!entry.NCYS.unit.connect array int
+- 0
+- 12
+-!entry.NCYS.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 12 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 12 13 1
+-!entry.NCYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+-!entry.NCYS.unit.name single str
+- "NCYS"
+-!entry.NCYS.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.309573 5.303523 1.366036
+- 3.725392 5.622018 2.517640
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NCYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 12 0 0 0 0
+-!entry.NCYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NCYS" 1 14 1 "p" 0
+-!entry.NCYS.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NCYS.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NCYS.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NCYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.016590
+- "HA" "HP" 0 1 131072 6 1 0.026230
+- "CB" "CT" 0 1 131072 7 6 -0.036490
+- "HB2" "H1" 0 1 131072 8 1 0.084950
+- "HB3" "H1" 0 1 131072 9 1 0.084950
+- "SG" "S" 0 1 131072 10 16 -0.080260
+- "C" "C" 0 1 131072 11 6 0.670480
+- "O" "O" 0 1 131072 12 8 -0.583250
+-!entry.NCYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "H1" 0 -1 0.0
+- "HB3" "H1" 0 -1 0.0
+- "SG" "S" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NCYX.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NCYX.unit.childsequence single int
+- 2
+-!entry.NCYX.unit.connect array int
+- 0
+- 11
+-!entry.NCYX.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 11 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 11 12 1
+-!entry.NCYX.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+-!entry.NCYX.unit.name single str
+- "NCYX"
+-!entry.NCYX.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.309573 5.303523 1.366036
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NCYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 11 10 0 0 0
+-!entry.NCYX.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NCYX" 1 13 1 "p" 0
+-!entry.NCYX.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NCYX.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NCYX.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NGLH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.058830
+- "HA" "HP" 0 1 131072 6 1 0.038110
+- "CB" "CT" 0 1 131072 7 6 0.146800
+- "HB2" "HC" 0 1 131072 8 1 0.015120
+- "HB3" "HC" 0 1 131072 9 1 0.015120
+- "CG" "CT" 0 1 131072 10 6 -0.424760
+- "HG2" "HC" 0 1 131072 11 1 0.200810
+- "HG3" "HC" 0 1 131072 12 1 0.200810
+- "CD" "C" 0 1 131072 13 6 0.647590
+- "OE1" "O" 0 1 131072 14 8 -0.569530
+- "OE2" "OH" 0 1 131072 15 8 -0.601150
+- "HE2" "HO" 0 1 131072 16 1 0.452700
+- "C" "C" 0 1 131072 17 6 0.670480
+- "O" "O" 0 1 131072 18 8 -0.583250
+-!entry.NGLH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "C" 0 -1 0.0
+- "OE1" "O" 0 -1 0.0
+- "OE2" "OH" 0 -1 0.0
+- "HE2" "HO" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NGLH.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NGLH.unit.childsequence single int
+- 2
+-!entry.NGLH.unit.connect array int
+- 0
+- 17
+-!entry.NGLH.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 17 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 12 1
+- 10 13 1
+- 13 14 1
+- 13 15 1
+- 15 16 1
+- 17 18 1
+-!entry.NGLH.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+-!entry.NGLH.unit.name single str
+- "NGLH"
+-!entry.NGLH.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.267328 4.996267 1.194946
+- 5.347413 4.849843 1.186158
+- 3.966923 5.535124 0.296342
+- 3.873732 5.805369 2.428706
+- 4.594590 5.679012 3.454376
+- 2.855965 6.542070 2.333721
+- 2.710526 6.996624 3.166684
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NGLH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 17 0 0 0 0
+-!entry.NGLH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NGLH" 1 19 1 "p" 0
+-!entry.NGLH.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NGLH.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NGLH.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NGLN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.176770
+- "HA" "HP" 0 1 131072 6 1 0.074450
+- "CB" "CT" 0 1 131072 7 6 0.367300
+- "HB2" "HC" 0 1 131072 8 1 -0.042440
+- "HB3" "HC" 0 1 131072 9 1 -0.042440
+- "CG" "CT" 0 1 131072 10 6 -0.651590
+- "HG2" "HC" 0 1 131072 11 1 0.230560
+- "HG3" "HC" 0 1 131072 12 1 0.230560
+- "CD" "C" 0 1 131072 13 6 0.855380
+- "OE1" "O" 0 1 131072 14 8 -0.671160
+- "NE2" "N" 0 1 131072 15 7 -0.907460
+- "HE21" "H" 0 1 131072 16 1 0.398200
+- "HE22" "H" 0 1 131072 17 1 0.398200
+- "C" "C" 0 1 131072 18 6 0.670480
+- "O" "O" 0 1 131072 19 8 -0.583250
+-!entry.NGLN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "C" 0 -1 0.0
+- "OE1" "O" 0 -1 0.0
+- "NE2" "N" 0 -1 0.0
+- "HE21" "H" 0 -1 0.0
+- "HE22" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NGLN.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NGLN.unit.childsequence single int
+- 2
+-!entry.NGLN.unit.connect array int
+- 0
+- 18
+-!entry.NGLN.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 18 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 12 1
+- 10 13 1
+- 13 14 1
+- 13 15 1
+- 15 16 1
+- 15 17 1
+- 18 19 1
+-!entry.NGLN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+-!entry.NGLN.unit.name single str
+- "NGLN"
+-!entry.NGLN.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.906976 5.848443 2.410302
+- 3.138962 5.408349 3.262893
+- 4.458856 7.061523 2.488333
+- 4.248434 7.659045 3.274966
+- 5.084281 7.376210 1.760379
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NGLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 18 0 0 0 0
+-!entry.NGLN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NGLN" 1 20 1 "p" 0
+-!entry.NGLN.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NGLN.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NGLN.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NGLU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.277630
+- "HA" "HP" 0 1 131072 6 1 0.115460
+- "CB" "CT" 0 1 131072 7 6 0.687660
+- "HB2" "HC" 0 1 131072 8 1 -0.198680
+- "HB3" "HC" 0 1 131072 9 1 -0.198680
+- "CG" "CT" 0 1 131072 10 6 -0.615270
+- "HG2" "HC" 0 1 131072 11 1 0.173380
+- "HG3" "HC" 0 1 131072 12 1 0.173380
+- "CD" "C" 0 1 131072 13 6 0.808370
+- "OE1" "O2" 0 1 131072 14 8 -0.802600
+- "OE2" "O2" 0 1 131072 15 8 -0.802600
+- "C" "C" 0 1 131072 16 6 0.670480
+- "O" "O" 0 1 131072 17 8 -0.583250
+-!entry.NGLU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "C" 0 -1 0.0
+- "OE1" "O2" 0 -1 0.0
+- "OE2" "O2" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NGLU.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NGLU.unit.childsequence single int
+- 2
+-!entry.NGLU.unit.connect array int
+- 0
+- 16
+-!entry.NGLU.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 16 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 12 1
+- 10 13 1
+- 13 14 1
+- 13 15 1
+- 16 17 1
+-!entry.NGLU.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+-!entry.NGLU.unit.name single str
+- "NGLU"
+-!entry.NGLU.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.267328 4.996267 1.194946
+- 5.347413 4.849843 1.186158
+- 3.966923 5.535124 0.296342
+- 3.873732 5.805369 2.428706
+- 4.594590 5.679012 3.454376
+- 2.855965 6.542070 2.333721
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NGLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 16 0 0 0 0
+-!entry.NGLU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NGLU" 1 18 1 "p" 0
+-!entry.NGLU.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NGLU.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NGLU.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NGLY.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.170530
+- "HA2" "HP" 0 1 131072 6 1 0.116660
+- "HA3" "HP" 0 1 131072 7 1 0.116660
+- "C" "C" 0 1 131072 8 6 0.670480
+- "O" "O" 0 1 131072 9 8 -0.583250
+-!entry.NGLY.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA2" "HP" 0 -1 0.0
+- "HA3" "HP" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NGLY.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NGLY.unit.childsequence single int
+- 2
+-!entry.NGLY.unit.connect array int
+- 0
+- 8
+-!entry.NGLY.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+-!entry.NGLY.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+-!entry.NGLY.unit.name single str
+- "NGLY"
+-!entry.NGLY.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.671668 3.400125 0.889824
+- 5.483710 2.686702 -4.438857E-06
+- 5.993369 1.568360 -8.469843E-06
+-!entry.NGLY.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 8 0 0 0 0
+-!entry.NGLY.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NGLY" 1 10 1 "p" 0
+-!entry.NGLY.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NGLY.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NGLY.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NHID.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.018360
+- "HA" "HP" 0 1 131072 6 1 0.005320
+- "CB" "CT" 0 1 131072 7 6 -0.207970
+- "HB2" "HC" 0 1 131072 8 1 0.122530
+- "HB3" "HC" 0 1 131072 9 1 0.122530
+- "CG" "CC" 0 1 131072 10 6 0.205880
+- "ND1" "NA" 0 1 131072 11 7 -0.380080
+- "HD1" "H" 0 1 131072 12 1 0.357430
+- "CE1" "CR" 0 1 131072 13 6 0.262300
+- "HE1" "H5" 0 1 131072 14 1 0.052860
+- "NE2" "NB" 0 1 131072 15 7 -0.525490
+- "CD2" "CV" 0 1 131072 16 6 -0.029750
+- "HD2" "H4" 0 1 131072 17 1 0.095590
+- "C" "C" 0 1 131072 18 6 0.670480
+- "O" "O" 0 1 131072 19 8 -0.583250
+-!entry.NHID.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CC" 0 -1 0.0
+- "ND1" "NA" 0 -1 0.0
+- "HD1" "H" 0 -1 0.0
+- "CE1" "CR" 0 -1 0.0
+- "HE1" "H5" 0 -1 0.0
+- "NE2" "NB" 0 -1 0.0
+- "CD2" "CV" 0 -1 0.0
+- "HD2" "H4" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NHID.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NHID.unit.childsequence single int
+- 2
+-!entry.NHID.unit.connect array int
+- 0
+- 18
+-!entry.NHID.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 18 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 16 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 15 1
+- 15 16 1
+- 16 17 1
+- 18 19 1
+-!entry.NHID.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+-!entry.NHID.unit.name single str
+- "NHID"
+-!entry.NHID.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 3.942782 5.885086 2.382972
+- 3.339725 5.691913 3.169805
+- 4.624274 6.997642 2.182500
+- 4.563048 7.811875 2.904563
+- 5.294011 6.891451 1.061663
+- 5.058974 5.678868 0.492453
+- 5.537741 5.417846 -0.451343
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NHID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 18 0 0 0 0
+-!entry.NHID.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NHID" 1 20 1 "p" 0
+-!entry.NHID.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NHID.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NHID.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NHIE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.035930
+- "HA" "HP" 0 1 131072 6 1 0.022090
+- "CB" "CT" 0 1 131072 7 6 -0.326150
+- "HB2" "HC" 0 1 131072 8 1 0.147760
+- "HB3" "HC" 0 1 131072 9 1 0.147760
+- "CG" "CC" 0 1 131072 10 6 0.467290
+- "ND1" "NB" 0 1 131072 11 7 -0.678510
+- "CE1" "CR" 0 1 131072 12 6 0.312370
+- "HE1" "H5" 0 1 131072 13 1 0.042060
+- "NE2" "NA" 0 1 131072 14 7 -0.318040
+- "HE2" "H" 0 1 131072 15 1 0.341000
+- "CD2" "CW" 0 1 131072 16 6 -0.217930
+- "HD2" "H4" 0 1 131072 17 1 0.159020
+- "C" "C" 0 1 131072 18 6 0.670480
+- "O" "O" 0 1 131072 19 8 -0.583250
+-!entry.NHIE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CC" 0 -1 0.0
+- "ND1" "NB" 0 -1 0.0
+- "CE1" "CR" 0 -1 0.0
+- "HE1" "H5" 0 -1 0.0
+- "NE2" "NA" 0 -1 0.0
+- "HE2" "H" 0 -1 0.0
+- "CD2" "CW" 0 -1 0.0
+- "HD2" "H4" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NHIE.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NHIE.unit.childsequence single int
+- 2
+-!entry.NHIE.unit.connect array int
+- 0
+- 18
+-!entry.NHIE.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 18 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 16 1
+- 11 12 1
+- 12 13 1
+- 12 14 1
+- 14 15 1
+- 14 16 1
+- 16 17 1
+- 18 19 1
+-!entry.NHIE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+-!entry.NHIE.unit.name single str
+- "NHIE"
+-!entry.NHIE.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 3.942782 5.885086 2.382972
+- 4.624274 6.997642 2.182500
+- 4.563048 7.811875 2.904563
+- 5.294011 6.891451 1.061663
+- 5.896297 7.605085 0.676854
+- 5.058974 5.678868 0.492453
+- 5.537741 5.417846 -0.451343
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NHIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 18 0 0 0 0
+-!entry.NHIE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NHIE" 1 20 1 "p" 0
+-!entry.NHIE.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NHIE.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NHIE.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NHIP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 0.119410
+- "HA" "HP" 0 1 131072 6 1 -0.053970
+- "CB" "CT" 0 1 131072 7 6 -0.059690
+- "HB2" "HC" 0 1 131072 8 1 0.073300
+- "HB3" "HC" 0 1 131072 9 1 0.073300
+- "CG" "CC" 0 1 131072 10 6 0.259530
+- "ND1" "NA" 0 1 131072 11 7 -0.115370
+- "HD1" "H" 0 1 131072 12 1 0.355750
+- "CE1" "CR" 0 1 131072 13 6 -0.085390
+- "HE1" "H5" 0 1 131072 14 1 0.198640
+- "NE2" "NA" 0 1 131072 15 7 0.055360
+- "HE2" "H" 0 1 131072 16 1 0.293500
+- "CD2" "CW" 0 1 131072 17 6 -0.207090
+- "HD2" "H4" 0 1 131072 18 1 0.155510
+- "C" "C" 0 1 131072 19 6 0.670480
+- "O" "O" 0 1 131072 20 8 -0.583250
+-!entry.NHIP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CC" 0 -1 0.0
+- "ND1" "NA" 0 -1 0.0
+- "HD1" "H" 0 -1 0.0
+- "CE1" "CR" 0 -1 0.0
+- "HE1" "H5" 0 -1 0.0
+- "NE2" "NA" 0 -1 0.0
+- "HE2" "H" 0 -1 0.0
+- "CD2" "CW" 0 -1 0.0
+- "HD2" "H4" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NHIP.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NHIP.unit.childsequence single int
+- 2
+-!entry.NHIP.unit.connect array int
+- 0
+- 19
+-!entry.NHIP.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 19 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 17 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 15 1
+- 15 16 1
+- 15 17 1
+- 17 18 1
+- 19 20 1
+-!entry.NHIP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+-!entry.NHIP.unit.name single str
+- "NHIP"
+-!entry.NHIP.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 3.942782 5.885086 2.382972
+- 3.339725 5.691913 3.169805
+- 4.624274 6.997642 2.182500
+- 4.563048 7.811875 2.904563
+- 5.294011 6.891451 1.061663
+- 5.896297 7.605085 0.676854
+- 5.058974 5.678868 0.492453
+- 5.537741 5.417846 -0.451343
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NHIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 19 0 0 0 0
+-!entry.NHIP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NHIP" 1 21 1 "p" 0
+-!entry.NHIP.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NHIP.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NHIP.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NILE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.229690
+- "HA" "HP" 0 1 131072 6 1 0.080520
+- "CB" "CT" 0 1 131072 7 6 0.455630
+- "HB" "HC" 0 1 131072 8 1 -0.113680
+- "CG2" "CT" 0 1 131072 9 6 -0.498950
+- "HG21" "HC" 0 1 131072 10 1 0.129740
+- "HG22" "HC" 0 1 131072 11 1 0.129740
+- "HG23" "HC" 0 1 131072 12 1 0.129740
+- "CG1" "CT" 0 1 131072 13 6 -0.144720
+- "HG12" "HC" 0 1 131072 14 1 0.066780
+- "HG13" "HC" 0 1 131072 15 1 0.066780
+- "CD1" "CT" 0 1 131072 16 6 -0.134770
+- "HD11" "HC" 0 1 131072 17 1 0.041890
+- "HD12" "HC" 0 1 131072 18 1 0.041890
+- "HD13" "HC" 0 1 131072 19 1 0.041890
+- "C" "C" 0 1 131072 20 6 0.670480
+- "O" "O" 0 1 131072 21 8 -0.583250
+-!entry.NILE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB" "HC" 0 -1 0.0
+- "CG2" "CT" 0 -1 0.0
+- "HG21" "HC" 0 -1 0.0
+- "HG22" "HC" 0 -1 0.0
+- "HG23" "HC" 0 -1 0.0
+- "CG1" "CT" 0 -1 0.0
+- "HG12" "HC" 0 -1 0.0
+- "HG13" "HC" 0 -1 0.0
+- "CD1" "CT" 0 -1 0.0
+- "HD11" "HC" 0 -1 0.0
+- "HD12" "HC" 0 -1 0.0
+- "HD13" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NILE.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NILE.unit.childsequence single int
+- 2
+-!entry.NILE.unit.connect array int
+- 0
+- 20
+-!entry.NILE.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 20 1
+- 7 8 1
+- 7 9 1
+- 7 13 1
+- 9 10 1
+- 9 11 1
+- 9 12 1
+- 13 14 1
+- 13 15 1
+- 13 16 1
+- 16 17 1
+- 16 18 1
+- 16 19 1
+- 20 21 1
+-!entry.NILE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+-!entry.NILE.unit.name single str
+- "NILE"
+-!entry.NILE.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.552136 3.620733 1.245168
+- 2.470128 3.752486 1.245640
+- 3.970045 2.845728 2.490296
+- 5.052053 2.713974 2.490763
+- 3.671561 3.399208 3.380615
+- 3.485650 1.869275 2.490737
+- 4.230204 4.986694 1.245169
+- 3.931820 5.541027 0.355348
+- 5.312310 4.855746 1.245164
+- 3.812294 5.761632 2.490339
+- 4.110777 5.208104 3.380628
+- 4.296689 6.738085 2.490833
+- 2.730286 5.893383 2.490813
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 20 0 0 0 0
+-!entry.NILE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NILE" 1 22 1 "p" 0
+-!entry.NILE.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NILE.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NILE.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NLEU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.048190
+- "HA" "HP" 0 1 131072 6 1 0.009070
+- "CB" "CT" 0 1 131072 7 6 -0.232000
+- "HB2" "HC" 0 1 131072 8 1 0.091230
+- "HB3" "HC" 0 1 131072 9 1 0.091230
+- "CG" "CT" 0 1 131072 10 6 0.595680
+- "HG" "HC" 0 1 131072 11 1 -0.106730
+- "CD1" "CT" 0 1 131072 12 6 -0.811380
+- "HD11" "HC" 0 1 131072 13 1 0.214210
+- "HD12" "HC" 0 1 131072 14 1 0.214210
+- "HD13" "HC" 0 1 131072 15 1 0.214210
+- "CD2" "CT" 0 1 131072 16 6 -0.811380
+- "HD21" "HC" 0 1 131072 17 1 0.214210
+- "HD22" "HC" 0 1 131072 18 1 0.214210
+- "HD23" "HC" 0 1 131072 19 1 0.214210
+- "C" "C" 0 1 131072 20 6 0.670480
+- "O" "O" 0 1 131072 21 8 -0.583250
+-!entry.NLEU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG" "HC" 0 -1 0.0
+- "CD1" "CT" 0 -1 0.0
+- "HD11" "HC" 0 -1 0.0
+- "HD12" "HC" 0 -1 0.0
+- "HD13" "HC" 0 -1 0.0
+- "CD2" "CT" 0 -1 0.0
+- "HD21" "HC" 0 -1 0.0
+- "HD22" "HC" 0 -1 0.0
+- "HD23" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NLEU.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NLEU.unit.childsequence single int
+- 2
+-!entry.NLEU.unit.connect array int
+- 0
+- 20
+-!entry.NLEU.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 20 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 12 1
+- 10 16 1
+- 12 13 1
+- 12 14 1
+- 12 15 1
+- 16 17 1
+- 16 18 1
+- 16 19 1
+- 20 21 1
+-!entry.NLEU.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+-!entry.NLEU.unit.name single str
+- "NLEU"
+-!entry.NLEU.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.853429 5.762895 -0.062857
+- 2.773449 5.910113 -0.054557
+- 4.351513 6.732052 -0.090203
+- 4.134159 5.185704 -0.943846
+- 3.881105 5.817645 2.426721
+- 4.181626 5.279602 3.325774
+- 4.379198 6.786825 2.400363
+- 2.801135 5.964881 2.435959
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NLEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 20 0 0 0 0
+-!entry.NLEU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NLEU" 1 22 1 "p" 0
+-!entry.NLEU.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NLEU.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NLEU.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NLYN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.095720
+- "HA" "HP" 0 1 131072 6 1 0.049030
+- "CB" "CT" 0 1 131072 7 6 0.079910
+- "HB2" "HC" 0 1 131072 8 1 -0.013700
+- "HB3" "HC" 0 1 131072 9 1 -0.013700
+- "CG" "CT" 0 1 131072 10 6 0.022200
+- "HG2" "HC" 0 1 131072 11 1 0.016820
+- "HG3" "HC" 0 1 131072 12 1 0.016820
+- "CD" "CT" 0 1 131072 13 6 -0.303010
+- "HD2" "HC" 0 1 131072 14 1 0.123310
+- "HD3" "HC" 0 1 131072 15 1 0.123310
+- "CE" "CT" 0 1 131072 16 6 0.555520
+- "HE2" "HP" 0 1 131072 17 1 -0.113930
+- "HE3" "HP" 0 1 131072 18 1 -0.113930
+- "NZ" "NT" 0 1 131072 19 7 -0.979040
+- "HZ2" "H" 0 1 131072 20 1 0.354450
+- "HZ3" "H" 0 1 131072 21 1 0.354450
+- "C" "C" 0 1 131072 22 6 0.670480
+- "O" "O" 0 1 131072 23 8 -0.583250
+-!entry.NLYN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "CT" 0 -1 0.0
+- "HD2" "HC" 0 -1 0.0
+- "HD3" "HC" 0 -1 0.0
+- "CE" "CT" 0 -1 0.0
+- "HE2" "HP" 0 -1 0.0
+- "HE3" "HP" 0 -1 0.0
+- "NZ" "NT" 0 -1 0.0
+- "HZ2" "H" 0 -1 0.0
+- "HZ3" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NLYN.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NLYN.unit.childsequence single int
+- 2
+-!entry.NLYN.unit.connect array int
+- 0
+- 22
+-!entry.NLYN.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 22 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 12 1
+- 10 13 1
+- 13 14 1
+- 13 15 1
+- 13 16 1
+- 16 17 1
+- 16 18 1
+- 16 19 1
+- 19 20 1
+- 19 21 1
+- 22 23 1
+-!entry.NLYN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+- "R" 1 "A" 23
+-!entry.NLYN.unit.name single str
+- "NLYN"
+-!entry.NLYN.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.881105 5.817645 2.426721
+- 2.801135 5.964881 2.435959
+- 4.181626 5.279602 3.325774
+- 4.578325 7.173410 2.389153
+- 5.658410 7.026987 2.380363
+- 4.277917 7.712267 1.490550
+- 4.199422 7.952309 3.576860
+- 4.661186 8.850226 3.551979
+- 3.198675 8.088466 3.584971
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NLYN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 22 0 0 0 0
+-!entry.NLYN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NLYN" 1 24 1 "p" 0
+-!entry.NLYN.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NLYN.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NLYN.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NLYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.109440
+- "HA" "HP" 0 1 131072 6 1 0.074110
+- "CB" "CT" 0 1 131072 7 6 0.027560
+- "HB2" "HC" 0 1 131072 8 1 0.006150
+- "HB3" "HC" 0 1 131072 9 1 0.006150
+- "CG" "CT" 0 1 131072 10 6 -0.012430
+- "HG2" "HC" 0 1 131072 11 1 0.044300
+- "HG3" "HC" 0 1 131072 12 1 0.044300
+- "CD" "CT" 0 1 131072 13 6 -0.229220
+- "HD2" "HC" 0 1 131072 14 1 0.103290
+- "HD3" "HC" 0 1 131072 15 1 0.103290
+- "CE" "CT" 0 1 131072 16 6 0.454620
+- "HE2" "HP" 0 1 131072 17 1 -0.045920
+- "HE3" "HP" 0 1 131072 18 1 -0.045920
+- "NZ" "N3" 0 1 131072 19 7 -0.357710
+- "HZ1" "H" 0 1 131072 20 1 0.333220
+- "HZ2" "H" 0 1 131072 21 1 0.333220
+- "HZ3" "H" 0 1 131072 22 1 0.333220
+- "C" "C" 0 1 131072 23 6 0.670480
+- "O" "O" 0 1 131072 24 8 -0.583250
+-!entry.NLYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "CT" 0 -1 0.0
+- "HD2" "HC" 0 -1 0.0
+- "HD3" "HC" 0 -1 0.0
+- "CE" "CT" 0 -1 0.0
+- "HE2" "HP" 0 -1 0.0
+- "HE3" "HP" 0 -1 0.0
+- "NZ" "N3" 0 -1 0.0
+- "HZ1" "H" 0 -1 0.0
+- "HZ2" "H" 0 -1 0.0
+- "HZ3" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NLYS.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NLYS.unit.childsequence single int
+- 2
+-!entry.NLYS.unit.connect array int
+- 0
+- 23
+-!entry.NLYS.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 23 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 12 1
+- 10 13 1
+- 13 14 1
+- 13 15 1
+- 13 16 1
+- 16 17 1
+- 16 18 1
+- 16 19 1
+- 19 20 1
+- 19 21 1
+- 19 22 1
+- 23 24 1
+-!entry.NLYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+- "R" 1 "A" 23
+- "R" 1 "A" 24
+-!entry.NLYS.unit.name single str
+- "NLYS"
+-!entry.NLYS.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.881105 5.817645 2.426721
+- 2.801135 5.964881 2.435959
+- 4.181626 5.279602 3.325774
+- 4.578325 7.173410 2.389153
+- 5.658410 7.026987 2.380363
+- 4.277917 7.712267 1.490550
+- 4.199422 7.952309 3.576860
+- 4.478085 7.453366 4.409628
+- 4.661186 8.850226 3.551979
+- 3.198675 8.088466 3.584971
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NLYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 23 0 0 0 0
+-!entry.NLYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NLYS" 1 25 1 "p" 0
+-!entry.NLYS.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NLYS.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NLYS.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NMET.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.097630
+- "HA" "HP" 0 1 131072 6 1 0.070210
+- "CB" "CT" 0 1 131072 7 6 0.275580
+- "HB2" "HC" 0 1 131072 8 1 -0.049150
+- "HB3" "HC" 0 1 131072 9 1 -0.049150
+- "CG" "CT" 0 1 131072 10 6 -0.318690
+- "HG2" "H1" 0 1 131072 11 1 0.142380
+- "HG3" "H1" 0 1 131072 12 1 0.142380
+- "SD" "S" 0 1 131072 13 16 -0.124640
+- "CE" "CT" 0 1 131072 14 6 -0.228860
+- "HE1" "H1" 0 1 131072 15 1 0.100120
+- "HE2" "H1" 0 1 131072 16 1 0.100120
+- "HE3" "H1" 0 1 131072 17 1 0.100120
+- "C" "C" 0 1 131072 18 6 0.670480
+- "O" "O" 0 1 131072 19 8 -0.583250
+-!entry.NMET.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "H1" 0 -1 0.0
+- "HG3" "H1" 0 -1 0.0
+- "SD" "S" 0 -1 0.0
+- "CE" "CT" 0 -1 0.0
+- "HE1" "H1" 0 -1 0.0
+- "HE2" "H1" 0 -1 0.0
+- "HE3" "H1" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NMET.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NMET.unit.childsequence single int
+- 2
+-!entry.NMET.unit.connect array int
+- 0
+- 18
+-!entry.NMET.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 18 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 12 1
+- 10 13 1
+- 13 14 1
+- 14 15 1
+- 14 16 1
+- 14 17 1
+- 18 19 1
+-!entry.NMET.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+-!entry.NMET.unit.name single str
+- "NMET"
+-!entry.NMET.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.817309 5.981266 2.651708
+- 4.753212 7.463128 2.340949
+- 4.433582 7.904044 1.396741
+- 4.585907 8.175299 3.148985
+- 5.814074 7.218763 2.286554
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NMET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 18 0 0 0 0
+-!entry.NMET.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NMET" 1 20 1 "p" 0
+-!entry.NMET.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NMET.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NMET.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NPHE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.033820
+- "HA" "HP" 0 1 131072 6 1 0.035950
+- "CB" "CT" 0 1 131072 7 6 -0.264720
+- "HB2" "HC" 0 1 131072 8 1 0.129600
+- "HB3" "HC" 0 1 131072 9 1 0.129600
+- "CG" "CA" 0 1 131072 10 6 0.233490
+- "CD1" "CA" 0 1 131072 11 6 -0.246420
+- "HD1" "HA" 0 1 131072 12 1 0.151840
+- "CE1" "CA" 0 1 131072 13 6 -0.076860
+- "HE1" "HA" 0 1 131072 14 1 0.108390
+- "CZ" "CA" 0 1 131072 15 6 -0.134740
+- "HZ" "HA" 0 1 131072 16 1 0.093530
+- "CE2" "CA" 0 1 131072 17 6 -0.076860
+- "HE2" "HA" 0 1 131072 18 1 0.108390
+- "CD2" "CA" 0 1 131072 19 6 -0.246420
+- "HD2" "HA" 0 1 131072 20 1 0.151840
+- "C" "C" 0 1 131072 21 6 0.670480
+- "O" "O" 0 1 131072 22 8 -0.583250
+-!entry.NPHE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CA" 0 -1 0.0
+- "CD1" "CA" 0 -1 0.0
+- "HD1" "HA" 0 -1 0.0
+- "CE1" "CA" 0 -1 0.0
+- "HE1" "HA" 0 -1 0.0
+- "CZ" "CA" 0 -1 0.0
+- "HZ" "HA" 0 -1 0.0
+- "CE2" "CA" 0 -1 0.0
+- "HE2" "HA" 0 -1 0.0
+- "CD2" "CA" 0 -1 0.0
+- "HD2" "HA" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NPHE.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NPHE.unit.childsequence single int
+- 2
+-!entry.NPHE.unit.connect array int
+- 0
+- 21
+-!entry.NPHE.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 21 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 19 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 15 1
+- 15 16 1
+- 15 17 1
+- 17 18 1
+- 17 19 1
+- 19 20 1
+- 21 22 1
+-!entry.NPHE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+-!entry.NPHE.unit.name single str
+- "NPHE"
+-!entry.NPHE.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 3.911613 5.857250 2.409890
+- 3.236123 5.513843 3.193398
+- 4.490014 7.129513 2.492354
+- 4.264853 7.776651 3.340066
+- 5.357616 7.570591 1.486016
+- 5.807943 8.561138 1.550220
+- 5.646818 6.739407 0.397211
+- 6.322309 7.082817 -0.386295
+- 5.068419 5.467143 0.314744
+- 5.293584 4.820007 -0.532968
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NPHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 21 0 0 0 0
+-!entry.NPHE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NPHE" 1 23 1 "p" 0
+-!entry.NPHE.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NPHE.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NPHE.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NPRO.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 -0.138570
+- "H2" "H" 0 1 131072 2 1 0.257280
+- "H3" "H" 0 1 131072 3 1 0.257280
+- "CD" "CT" 0 1 131072 4 6 0.227570
+- "HD2" "HP" 0 1 131072 5 1 0.017160
+- "HD3" "HP" 0 1 131072 6 1 0.017150
+- "CG" "CT" 0 1 131072 7 6 -0.073460
+- "HG2" "HC" 0 1 131072 8 1 0.038960
+- "HG3" "HC" 0 1 131072 9 1 0.038960
+- "CB" "CT" 0 1 131072 10 6 0.189500
+- "HB2" "HC" 0 1 131072 11 1 -0.029230
+- "HB3" "HC" 0 1 131072 12 1 -0.029230
+- "CA" "CT" 0 1 131072 13 6 0.104090
+- "HA" "HP" 0 1 131072 14 1 0.035310
+- "C" "C" 0 1 131072 15 6 0.670480
+- "O" "O" 0 1 131072 16 8 -0.583250
+-!entry.NPRO.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CD" "CT" 0 -1 0.0
+- "HD2" "HP" 0 -1 0.0
+- "HD3" "HP" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NPRO.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NPRO.unit.childsequence single int
+- 2
+-!entry.NPRO.unit.connect array int
+- 0
+- 15
+-!entry.NPRO.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 13 1
+- 4 5 1
+- 4 6 1
+- 4 7 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 12 1
+- 10 13 1
+- 13 14 1
+- 13 15 1
+- 15 16 1
+-!entry.NPRO.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+-!entry.NPRO.unit.name single str
+- "NPRO"
+-!entry.NPRO.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 4.293514 0.460336 0.080119
+- 4.408169 0.002209 -0.902263
+- 3.942023 -0.287867 0.790574
+- 5.543321 1.147470 0.544693
+- 6.406715 0.710627 0.042879
+- 5.648273 1.022228 1.622376
+- 5.375453 2.604421 0.185227
+- 5.977268 2.833902 -0.694123
+- 5.701345 3.225015 1.019947
+- 3.941704 2.857529 -0.104508
+- 3.623882 3.477056 0.734106
+- 3.517842 3.515620 -1.409783
+- 2.762837 2.933549 -2.185412
+-!entry.NPRO.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 15 0 0 0 0
+-!entry.NPRO.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NPRO" 1 17 1 "p" 0
+-!entry.NPRO.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NPRO.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NPRO.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NSER.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 0.006090
+- "HA" "HP" 0 1 131072 6 1 0.050540
+- "CB" "CT" 0 1 131072 7 6 0.197970
+- "HB2" "H1" 0 1 131072 8 1 0.017960
+- "HB3" "H1" 0 1 131072 9 1 0.017970
+- "OG" "OH" 0 1 131072 10 8 -0.606020
+- "HG" "HO" 0 1 131072 11 1 0.378280
+- "C" "C" 0 1 131072 12 6 0.670480
+- "O" "O" 0 1 131072 13 8 -0.583250
+-!entry.NSER.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "H1" 0 -1 0.0
+- "HB3" "H1" 0 -1 0.0
+- "OG" "OH" 0 -1 0.0
+- "HG" "HO" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NSER.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NSER.unit.childsequence single int
+- 2
+-!entry.NSER.unit.connect array int
+- 0
+- 12
+-!entry.NSER.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 12 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 12 13 1
+-!entry.NSER.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+-!entry.NSER.unit.name single str
+- "NSER"
+-!entry.NSER.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.230753 4.925145 1.196917
+- 3.983305 5.433814 1.972562
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NSER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 12 0 0 0 0
+-!entry.NSER.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NSER" 1 14 1 "p" 0
+-!entry.NSER.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NSER.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NSER.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NTHR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 0.036230
+- "HA" "HP" 0 1 131072 6 1 0.028680
+- "CB" "CT" 0 1 131072 7 6 0.563540
+- "HB" "H1" 0 1 131072 8 1 -0.161960
+- "CG2" "CT" 0 1 131072 9 6 -0.574400
+- "HG21" "HC" 0 1 131072 10 1 0.154000
+- "HG22" "HC" 0 1 131072 11 1 0.154000
+- "HG23" "HC" 0 1 131072 12 1 0.154000
+- "OG1" "OH" 0 1 131072 13 8 -0.735860
+- "HG1" "HO" 0 1 131072 14 1 0.444560
+- "C" "C" 0 1 131072 15 6 0.670480
+- "O" "O" 0 1 131072 16 8 -0.583250
+-!entry.NTHR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB" "H1" 0 -1 0.0
+- "CG2" "CT" 0 -1 0.0
+- "HG21" "HC" 0 -1 0.0
+- "HG22" "HC" 0 -1 0.0
+- "HG23" "HC" 0 -1 0.0
+- "OG1" "OH" 0 -1 0.0
+- "HG1" "HO" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NTHR.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NTHR.unit.childsequence single int
+- 2
+-!entry.NTHR.unit.connect array int
+- 0
+- 15
+-!entry.NTHR.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 15 1
+- 7 8 1
+- 7 9 1
+- 7 13 1
+- 9 10 1
+- 9 11 1
+- 9 12 1
+- 13 14 1
+- 15 16 1
+-!entry.NTHR.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+-!entry.NTHR.unit.name single str
+- "NTHR"
+-!entry.NTHR.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 4.075059 4.623017 1.205786
+- 2.065936 3.859425 1.244383
+- 1.567127 2.890627 1.271209
+- 1.784431 4.436953 2.124903
+- 1.764699 4.397847 0.345796
+- 3.971501 2.947413 2.411212
+- 3.724052 3.456082 3.186857
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NTHR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 15 0 0 0 0
+-!entry.NTHR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NTHR" 1 17 1 "p" 0
+-!entry.NTHR.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NTHR.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NTHR.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NTRP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.064400
+- "HA" "HP" 0 1 131072 6 1 0.060910
+- "CB" "CT" 0 1 131072 7 6 0.072380
+- "HB2" "HC" 0 1 131072 8 1 0.023340
+- "HB3" "HC" 0 1 131072 9 1 0.023340
+- "CG" "C*" 0 1 131072 10 6 -0.302580
+- "CD1" "CW" 0 1 131072 11 6 0.030860
+- "HD1" "H4" 0 1 131072 12 1 0.139310
+- "NE1" "NA" 0 1 131072 13 7 -0.480170
+- "HE1" "H" 0 1 131072 14 1 0.392790
+- "CE2" "CN" 0 1 131072 15 6 0.192760
+- "CZ2" "CA" 0 1 131072 16 6 -0.261010
+- "HZ2" "HA" 0 1 131072 17 1 0.183580
+- "CH2" "CA" 0 1 131072 18 6 -0.180740
+- "HH2" "HA" 0 1 131072 19 1 0.106860
+- "CZ3" "CA" 0 1 131072 20 6 -0.044730
+- "HZ3" "HA" 0 1 131072 21 1 0.086480
+- "CE3" "CA" 0 1 131072 22 6 -0.427910
+- "HE3" "HA" 0 1 131072 23 1 0.225690
+- "CD2" "CB" 0 1 131072 24 6 0.286030
+- "C" "C" 0 1 131072 25 6 0.670480
+- "O" "O" 0 1 131072 26 8 -0.583250
+-!entry.NTRP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "C*" 0 -1 0.0
+- "CD1" "CW" 0 -1 0.0
+- "HD1" "H4" 0 -1 0.0
+- "NE1" "NA" 0 -1 0.0
+- "HE1" "H" 0 -1 0.0
+- "CE2" "CN" 0 -1 0.0
+- "CZ2" "CA" 0 -1 0.0
+- "HZ2" "HA" 0 -1 0.0
+- "CH2" "CA" 0 -1 0.0
+- "HH2" "HA" 0 -1 0.0
+- "CZ3" "CA" 0 -1 0.0
+- "HZ3" "HA" 0 -1 0.0
+- "CE3" "CA" 0 -1 0.0
+- "HE3" "HA" 0 -1 0.0
+- "CD2" "CB" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NTRP.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NTRP.unit.childsequence single int
+- 2
+-!entry.NTRP.unit.connect array int
+- 0
+- 25
+-!entry.NTRP.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 25 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 24 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 15 1
+- 15 16 1
+- 15 24 1
+- 16 17 1
+- 16 18 1
+- 18 19 1
+- 18 20 1
+- 20 21 1
+- 20 22 1
+- 22 23 1
+- 22 24 1
+- 25 26 1
+-!entry.NTRP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+- "R" 1 "A" 23
+- "R" 1 "A" 24
+- "R" 1 "A" 25
+- "R" 1 "A" 26
+-!entry.NTRP.unit.name single str
+- "NTRP"
+-!entry.NTRP.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 4.023453 5.931084 2.293240
+- 3.368841 5.705466 3.135071
+- 4.811943 7.073555 1.949808
+- 4.882921 7.922010 2.493118
+- 5.427347 6.842060 0.816764
+- 6.297161 7.689052 0.119605
+- 6.531230 8.676649 0.517050
+- 6.814091 7.187011 -1.069023
+- 7.498074 7.791857 -1.664362
+- 6.482659 5.953119 -1.505101
+- 6.897660 5.575648 -2.439654
+- 5.604041 5.117355 -0.785636
+- 5.358720 4.126570 -1.168080
+- 5.083390 5.623004 0.411545
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NTRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 25 0 0 0 0
+-!entry.NTRP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NTRP" 1 27 1 "p" 0
+-!entry.NTRP.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NTRP.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NTRP.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NTYR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.117360
+- "HA" "HP" 0 1 131072 6 1 0.085560
+- "CB" "CT" 0 1 131072 7 6 -0.110270
+- "HB2" "HC" 0 1 131072 8 1 0.083860
+- "HB3" "HC" 0 1 131072 9 1 0.083860
+- "CG" "CA" 0 1 131072 10 6 0.037350
+- "CD1" "CA" 0 1 131072 11 6 -0.143640
+- "HD1" "HA" 0 1 131072 12 1 0.146300
+- "CE1" "CA" 0 1 131072 13 6 -0.334390
+- "HE1" "HA" 0 1 131072 14 1 0.190770
+- "CZ" "CA" 0 1 131072 15 6 0.444500
+- "OH" "OH" 0 1 131072 16 8 -0.546480
+- "HH" "HO" 0 1 131072 17 1 0.383690
+- "CE2" "CA" 0 1 131072 18 6 -0.334390
+- "HE2" "HA" 0 1 131072 19 1 0.190770
+- "CD2" "CA" 0 1 131072 20 6 -0.143640
+- "HD2" "HA" 0 1 131072 21 1 0.146300
+- "C" "C" 0 1 131072 22 6 0.670480
+- "O" "O" 0 1 131072 23 8 -0.583250
+-!entry.NTYR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CA" 0 -1 0.0
+- "CD1" "CA" 0 -1 0.0
+- "HD1" "HA" 0 -1 0.0
+- "CE1" "CA" 0 -1 0.0
+- "HE1" "HA" 0 -1 0.0
+- "CZ" "CA" 0 -1 0.0
+- "OH" "OH" 0 -1 0.0
+- "HH" "HO" 0 -1 0.0
+- "CE2" "CA" 0 -1 0.0
+- "HE2" "HA" 0 -1 0.0
+- "CD2" "CA" 0 -1 0.0
+- "HD2" "HA" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NTYR.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NTYR.unit.childsequence single int
+- 2
+-!entry.NTYR.unit.connect array int
+- 0
+- 22
+-!entry.NTYR.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 22 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 10 11 1
+- 10 20 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 15 1
+- 15 16 1
+- 15 18 1
+- 16 17 1
+- 18 19 1
+- 18 20 1
+- 20 21 1
+- 22 23 1
+-!entry.NTYR.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+- "R" 1 "A" 23
+-!entry.NTYR.unit.name single str
+- "NTYR"
+-!entry.NTYR.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.267328 4.996267 1.194946
+- 4.059927 5.918911 2.227280
+- 3.400108 5.668218 3.057877
+- 4.699998 7.163547 2.192791
+- 4.538522 7.881891 2.996538
+- 5.547471 7.485542 1.125970
+- 6.169255 8.694617 1.092468
+- 5.956327 9.246984 1.848214
+- 5.754875 6.562900 0.093635
+- 6.414694 6.813595 -0.736962
+- 5.114806 5.318263 0.128119
+- 5.276286 4.599920 -0.675627
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NTYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 22 0 0 0 0
+-!entry.NTYR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NTYR" 1 24 1 "p" 0
+-!entry.NTYR.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NTYR.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NTYR.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.NVAL.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N3" 0 1 131072 1 7 0.351680
+- "H1" "H" 0 1 131072 2 1 0.166100
+- "H2" "H" 0 1 131072 3 1 0.166100
+- "H3" "H" 0 1 131072 4 1 0.166100
+- "CA" "CT" 0 1 131072 5 6 -0.131460
+- "HA" "HP" 0 1 131072 6 1 0.055960
+- "CB" "CT" 0 1 131072 7 6 0.600860
+- "HB" "HC" 0 1 131072 8 1 -0.088610
+- "CG1" "CT" 0 1 131072 9 6 -0.789890
+- "HG11" "HC" 0 1 131072 10 1 0.200970
+- "HG12" "HC" 0 1 131072 11 1 0.200970
+- "HG13" "HC" 0 1 131072 12 1 0.200970
+- "CG2" "CT" 0 1 131072 13 6 -0.789890
+- "HG21" "HC" 0 1 131072 14 1 0.200970
+- "HG22" "HC" 0 1 131072 15 1 0.200970
+- "HG23" "HC" 0 1 131072 16 1 0.200970
+- "C" "C" 0 1 131072 17 6 0.670480
+- "O" "O" 0 1 131072 18 8 -0.583250
+-!entry.NVAL.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N3" 0 -1 0.0
+- "H1" "H" 0 -1 0.0
+- "H2" "H" 0 -1 0.0
+- "H3" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "HP" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB" "HC" 0 -1 0.0
+- "CG1" "CT" 0 -1 0.0
+- "HG11" "HC" 0 -1 0.0
+- "HG12" "HC" 0 -1 0.0
+- "HG13" "HC" 0 -1 0.0
+- "CG2" "CT" 0 -1 0.0
+- "HG21" "HC" 0 -1 0.0
+- "HG22" "HC" 0 -1 0.0
+- "HG23" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.NVAL.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NVAL.unit.childsequence single int
+- 2
+-!entry.NVAL.unit.connect array int
+- 0
+- 17
+-!entry.NVAL.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 1 4 1
+- 1 5 1
+- 5 6 1
+- 5 7 1
+- 5 17 1
+- 7 8 1
+- 7 9 1
+- 7 13 1
+- 9 10 1
+- 9 11 1
+- 9 12 1
+- 13 14 1
+- 13 15 1
+- 13 16 1
+- 17 18 1
+-!entry.NVAL.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+-!entry.NVAL.unit.name single str
+- "NVAL"
+-!entry.NVAL.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 4.046154 0.839991 -2.855245E-06
+- 2.823094 1.499508 -0.874687
+- 2.823097 1.499507 0.874685
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.997712 2.900483 2.489542
+- 5.077693 2.753265 2.481244
+- 3.716972 3.477628 3.370558
+- 3.499630 1.931323 2.516834
+- 4.274186 5.009602 1.194577
+- 3.973781 5.548460 0.295972
+- 3.993559 5.587585 2.075079
+- 5.354271 4.863178 1.185788
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.NVAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 0 17 0 0 0 0
+-!entry.NVAL.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "NVAL" 1 19 1 "p" 0
+-!entry.NVAL.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.NVAL.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.NVAL.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+diff --git a/dat/leap/lib/aminopol12.lib b/dat/leap/lib/aminopol12.lib
+deleted file mode 100644
+index ed9039d..0000000
+--- a/dat/leap/lib/aminopol12.lib
++++ /dev/null
+@@ -1,3521 +0,0 @@
+-!!index array str
+- "ALA"
+- "ARG"
+- "ASH"
+- "ASN"
+- "ASP"
+- "CIM"
+- "CIP"
+- "CYM"
+- "CYS"
+- "CYX"
+- "GLH"
+- "GLN"
+- "GLU"
+- "GLY"
+- "HID"
+- "HIE"
+- "HIP"
+- "ILE"
+- "LEU"
+- "LYN"
+- "LYS"
+- "MET"
+- "PHE"
+- "PRO"
+- "SER"
+- "THR"
+- "TRP"
+- "TYR"
+- "VAL"
+-!entry.ALA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.107660
+- "HA" "H1" 0 1 131072 4 1 0.039730
+- "CB" "CT" 0 1 131072 5 6 -0.131600
+- "HB1" "HC" 0 1 131072 6 1 0.074970
+- "HB2" "HC" 0 1 131072 7 1 0.074970
+- "HB3" "HC" 0 1 131072 8 1 0.074970
+- "C" "C" 0 1 131072 9 6 0.670480
+- "O" "O" 0 1 131072 10 8 -0.583250
+-!entry.ALA.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB1" "HC" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.ALA.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ALA.unit.childsequence single int
+- 2
+-!entry.ALA.unit.connect array int
+- 1
+- 9
+-!entry.ALA.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 9 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 9 10 1
+-!entry.ALA.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+-!entry.ALA.unit.name single str
+- "ALA"
+-!entry.ALA.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 3.877484 3.115795 2.131197
+- 4.075059 4.623017 1.205786
+- 2.496995 3.801075 1.241379
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.ALA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 9 0 0 0 0
+-!entry.ALA.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "ALA" 1 11 1 "p" 0
+-!entry.ALA.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.ALA.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ALA.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.ARG.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.226630
+- "HA" "H1" 0 1 131072 4 1 0.106720
+- "CB" "CT" 0 1 131072 5 6 0.333990
+- "HB2" "HC" 0 1 131072 6 1 -0.030430
+- "HB3" "HC" 0 1 131072 7 1 -0.030430
+- "CG" "CT" 0 1 131072 8 6 -0.417310
+- "HG2" "HC" 0 1 131072 9 1 0.127030
+- "HG3" "HC" 0 1 131072 10 1 0.127030
+- "CD" "CT" 0 1 131072 11 6 0.599560
+- "HD2" "H1" 0 1 131072 12 1 -0.082670
+- "HD3" "H1" 0 1 131072 13 1 -0.082670
+- "NE" "N2" 0 1 131072 14 7 -0.785780
+- "HE" "H" 0 1 131072 15 1 0.415010
+- "CZ" "CA" 0 1 131072 16 6 1.104320
+- "NH1" "N2" 0 1 131072 17 7 -0.960300
+- "HH11" "H" 0 1 131072 18 1 0.447060
+- "HH12" "H" 0 1 131072 19 1 0.447060
+- "NH2" "N2" 0 1 131072 20 7 -0.960300
+- "HH21" "H" 0 1 131072 21 1 0.447060
+- "HH22" "H" 0 1 131072 22 1 0.447060
+- "C" "C" 0 1 131072 23 6 0.670480
+- "O" "O" 0 1 131072 24 8 -0.583250
+-!entry.ARG.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "CT" 0 -1 0.0
+- "HD2" "H1" 0 -1 0.0
+- "HD3" "H1" 0 -1 0.0
+- "NE" "N2" 0 -1 0.0
+- "HE" "H" 0 -1 0.0
+- "CZ" "CA" 0 -1 0.0
+- "NH1" "N2" 0 -1 0.0
+- "HH11" "H" 0 -1 0.0
+- "HH12" "H" 0 -1 0.0
+- "NH2" "N2" 0 -1 0.0
+- "HH21" "H" 0 -1 0.0
+- "HH22" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.ARG.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ARG.unit.childsequence single int
+- 2
+-!entry.ARG.unit.connect array int
+- 1
+- 23
+-!entry.ARG.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 23 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 11 14 1
+- 14 15 1
+- 14 16 1
+- 16 17 1
+- 16 20 1
+- 17 18 1
+- 17 19 1
+- 20 21 1
+- 20 22 1
+- 23 24 1
+-!entry.ARG.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+- "R" 1 "A" 23
+- "R" 1 "A" 24
+-!entry.ARG.unit.name single str
+- "ARG"
+-!entry.ARG.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.881105 5.817645 2.426721
+- 2.801135 5.964881 2.435959
+- 4.181626 5.279602 3.325774
+- 4.540320 7.142723 2.424483
+- 5.151805 7.375492 1.655065
+- 4.364284 8.040989 3.389382
+- 3.575026 7.807606 4.434133
+- 3.088949 6.925423 4.508848
+- 3.465367 8.513631 5.147998
+- 5.006254 9.201287 3.286991
+- 5.604855 9.375325 2.492329
+- 4.892216 9.903045 4.004368
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.ARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 23 0 0 0 0
+-!entry.ARG.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "ARG" 1 25 1 "p" 0
+-!entry.ARG.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.ARG.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ARG.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.ASH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 0.002180
+- "HA" "H1" 0 1 131072 4 1 0.013640
+- "CB" "CT" 0 1 131072 5 6 -0.142020
+- "HB2" "HC" 0 1 131072 6 1 0.124360
+- "HB3" "HC" 0 1 131072 7 1 0.124360
+- "CG" "C" 0 1 131072 8 6 0.584300
+- "OD1" "O" 0 1 131072 9 8 -0.548830
+- "OD2" "OH" 0 1 131072 10 8 -0.581530
+- "HD2" "HO" 0 1 131072 11 1 0.448920
+- "C" "C" 0 1 131072 12 6 0.670480
+- "O" "O" 0 1 131072 13 8 -0.583250
+-!entry.ASH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "C" 0 -1 0.0
+- "OD1" "O" 0 -1 0.0
+- "OD2" "OH" 0 -1 0.0
+- "HD2" "HO" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.ASH.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ASH.unit.childsequence single int
+- 2
+-!entry.ASH.unit.connect array int
+- 1
+- 12
+-!entry.ASH.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 12 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 10 11 1
+- 12 13 1
+-!entry.ASH.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+-!entry.ASH.unit.name single str
+- "ASH"
+-!entry.ASH.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.275101 5.011380 1.194527
+- 3.669108 5.954940 0.620011
+- 5.407731 5.091879 1.740667
+- 5.742902 5.987179 1.652920
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.ASH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 12 0 0 0 0
+-!entry.ASH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "ASH" 1 14 1 "p" 0
+-!entry.ASH.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.ASH.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ASH.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.ASN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.045790
+- "HA" "H1" 0 1 131072 4 1 0.030960
+- "CB" "CT" 0 1 131072 5 6 -0.284870
+- "HB2" "HC" 0 1 131072 6 1 0.150880
+- "HB3" "HC" 0 1 131072 7 1 0.150880
+- "CG" "C" 0 1 131072 8 6 0.619540
+- "OD1" "O" 0 1 131072 9 8 -0.546540
+- "ND2" "N" 0 1 131072 10 7 -0.812900
+- "HD21" "H" 0 1 131072 11 1 0.381610
+- "HD22" "H" 0 1 131072 12 1 0.381610
+- "C" "C" 0 1 131072 13 6 0.670480
+- "O" "O" 0 1 131072 14 8 -0.583250
+-!entry.ASN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "C" 0 -1 0.0
+- "OD1" "O" 0 -1 0.0
+- "ND2" "N" 0 -1 0.0
+- "HD21" "H" 0 -1 0.0
+- "HD22" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.ASN.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ASN.unit.childsequence single int
+- 2
+-!entry.ASN.unit.connect array int
+- 1
+- 13
+-!entry.ASN.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 13 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 10 11 1
+- 10 12 1
+- 13 14 1
+-!entry.ASN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+-!entry.ASN.unit.name single str
+- "ASN"
+-!entry.ASN.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.253700 5.017112 1.232144
+- 5.005299 5.340406 0.315072
+- 3.984885 5.817909 2.265917
+- 4.408015 6.733702 2.314743
+- 3.359611 5.504297 2.994464
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.ASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 13 0 0 0 0
+-!entry.ASN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "ASN" 1 15 1 "p" 0
+-!entry.ASN.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.ASN.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ASN.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.ASP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.155870
+- "HA" "H1" 0 1 131072 4 1 0.001730
+- "CB" "CT" 0 1 131072 5 6 -0.175110
+- "HB2" "HC" 0 1 131072 6 1 0.072670
+- "HB3" "HC" 0 1 131072 7 1 0.072670
+- "CG" "C" 0 1 131072 8 6 0.847270
+- "OD1" "O2" 0 1 131072 9 8 -0.818990
+- "OD2" "O2" 0 1 131072 10 8 -0.818990
+- "C" "C" 0 1 131072 11 6 0.670480
+- "O" "O" 0 1 131072 12 8 -0.583250
+-!entry.ASP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "C" 0 -1 0.0
+- "OD1" "O2" 0 -1 0.0
+- "OD2" "O2" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.ASP.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ASP.unit.childsequence single int
+- 2
+-!entry.ASP.unit.connect array int
+- 1
+- 11
+-!entry.ASP.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 11 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 11 12 1
+-!entry.ASP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+-!entry.ASP.unit.name single str
+- "ASP"
+-!entry.ASP.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.275101 5.011380 1.194527
+- 3.669108 5.954940 0.620011
+- 5.407731 5.091879 1.740667
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.ASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 11 0 0 0 0
+-!entry.ASP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "ASP" 1 13 1 "p" 0
+-!entry.ASP.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.ASP.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ASP.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CIM.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "CL-" "IM" 0 1 131072 1 -1 -1.000000
+-!entry.CIM.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "CL-" "IM" 0 -1 0.0
+-!entry.CIM.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CIM.unit.childsequence single int
+- 2
+-!entry.CIM.unit.connect array int
+- 1
+- 1
+-!entry.CIM.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+-!entry.CIM.unit.name single str
+- "CIM"
+-!entry.CIM.unit.positions table dbl x dbl y dbl z
+- 2.000001 1.000000 -1.346410E-06
+-!entry.CIM.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 1 0 0 0 0
+-!entry.CIM.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CIM" 1 2 1 "?" 0
+-!entry.CIM.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CIM.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CIM.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+-!entry.CIP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "NA+" "IP" 0 1 131072 1 -1 1.000000
+-!entry.CIP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "NA+" "IP" 0 -1 0.0
+-!entry.CIP.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CIP.unit.childsequence single int
+- 2
+-!entry.CIP.unit.connect array int
+- 1
+- 1
+-!entry.CIP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+-!entry.CIP.unit.name single str
+- "CIP"
+-!entry.CIP.unit.positions table dbl x dbl y dbl z
+- 2.000001 1.000000 -1.346410E-06
+-!entry.CIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 1 0 0 0 0
+-!entry.CIP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CIP" 1 2 1 "?" 0
+-!entry.CIP.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CIP.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CIP.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+-!entry.CYM.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "HN" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.218730
+- "HA" "H1" 0 1 131072 4 1 0.077600
+- "CB" "CT" 0 1 131072 5 6 0.224400
+- "HB3" "H1" 0 1 131072 6 1 -0.057150
+- "HB2" "H1" 0 1 131072 7 1 -0.057150
+- "SG" "SH" 0 1 131072 8 16 -0.943590
+- "C" "C" 0 1 131072 9 6 0.670480
+- "O" "O" 0 1 131072 10 8 -0.583250
+-!entry.CYM.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "HN" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB3" "H1" 0 -1 0.0
+- "HB2" "H1" 0 -1 0.0
+- "SG" "SH" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.CYM.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CYM.unit.childsequence single int
+- 2
+-!entry.CYM.unit.connect array int
+- 1
+- 9
+-!entry.CYM.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 9 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 9 10 1
+-!entry.CYM.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+-!entry.CYM.unit.name single str
+- "CYM"
+-!entry.CYM.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 3.877484 3.115795 2.131197
+- 2.496995 3.801075 1.241379
+- 4.309573 5.303523 1.366036
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.CYM.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 9 0 0 0 0
+-!entry.CYM.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CYM" 1 11 1 "p" 0
+-!entry.CYM.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CYM.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CYM.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.038240
+- "HA" "H1" 0 1 131072 4 1 0.042360
+- "CB" "CT" 0 1 131072 5 6 0.012160
+- "HB2" "H1" 0 1 131072 6 1 0.051450
+- "HB3" "H1" 0 1 131072 7 1 0.051450
+- "SG" "SH" 0 1 131072 8 16 -0.245770
+- "HG" "HS" 0 1 131072 9 1 0.151970
+- "C" "C" 0 1 131072 10 6 0.670480
+- "O" "O" 0 1 131072 11 8 -0.583250
+-!entry.CYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "H1" 0 -1 0.0
+- "HB3" "H1" 0 -1 0.0
+- "SG" "SH" 0 -1 0.0
+- "HG" "HS" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.CYS.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CYS.unit.childsequence single int
+- 2
+-!entry.CYS.unit.connect array int
+- 1
+- 10
+-!entry.CYS.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 10 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 10 11 1
+-!entry.CYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+-!entry.CYS.unit.name single str
+- "CYS"
+-!entry.CYS.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.309573 5.303523 1.366036
+- 3.725392 5.622018 2.517640
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.CYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 10 0 0 0 0
+-!entry.CYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CYS" 1 12 1 "p" 0
+-!entry.CYS.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CYS.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CYS.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.CYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.036230
+- "HA" "H1" 0 1 131072 4 1 0.016940
+- "CB" "CT" 0 1 131072 5 6 -0.039530
+- "HB2" "H1" 0 1 131072 6 1 0.081010
+- "HB3" "H1" 0 1 131072 7 1 0.081010
+- "SG" "S" 0 1 131072 8 16 -0.077820
+- "C" "C" 0 1 131072 9 6 0.670480
+- "O" "O" 0 1 131072 10 8 -0.583250
+-!entry.CYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "H1" 0 -1 0.0
+- "HB3" "H1" 0 -1 0.0
+- "SG" "S" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.CYX.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CYX.unit.childsequence single int
+- 2
+-!entry.CYX.unit.connect array int
+- 1
+- 9
+-!entry.CYX.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 9 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 9 10 1
+-!entry.CYX.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+-!entry.CYX.unit.name single str
+- "CYX"
+-!entry.CYX.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.309573 5.303523 1.366036
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.CYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 9 8 0 0 0
+-!entry.CYX.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "CYX" 1 11 1 "p" 0
+-!entry.CYX.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.CYX.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.CYX.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.GLH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.137720
+- "HA" "H1" 0 1 131072 4 1 0.067770
+- "CB" "CT" 0 1 131072 5 6 0.139840
+- "HB2" "HC" 0 1 131072 6 1 0.014650
+- "HB3" "HC" 0 1 131072 7 1 0.014650
+- "CG" "CT" 0 1 131072 8 6 -0.360940
+- "HG2" "HC" 0 1 131072 9 1 0.184800
+- "HG3" "HC" 0 1 131072 10 1 0.184800
+- "CD" "C" 0 1 131072 11 6 0.639100
+- "OE1" "O" 0 1 131072 12 8 -0.571870
+- "OE2" "OH" 0 1 131072 13 8 -0.605840
+- "HE2" "HO" 0 1 131072 14 1 0.456140
+- "C" "C" 0 1 131072 15 6 0.670480
+- "O" "O" 0 1 131072 16 8 -0.583250
+-!entry.GLH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "C" 0 -1 0.0
+- "OE1" "O" 0 -1 0.0
+- "OE2" "OH" 0 -1 0.0
+- "HE2" "HO" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.GLH.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.GLH.unit.childsequence single int
+- 2
+-!entry.GLH.unit.connect array int
+- 1
+- 15
+-!entry.GLH.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 15 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 15 16 1
+-!entry.GLH.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+-!entry.GLH.unit.name single str
+- "GLH"
+-!entry.GLH.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.267328 4.996267 1.194946
+- 5.347413 4.849843 1.186158
+- 3.966923 5.535124 0.296342
+- 3.873732 5.805369 2.428706
+- 4.594590 5.679012 3.454376
+- 2.855965 6.542070 2.333721
+- 2.710526 6.996624 3.166684
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.GLH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 15 0 0 0 0
+-!entry.GLH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "GLH" 1 17 1 "p" 0
+-!entry.GLH.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.GLH.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.GLH.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.GLN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.239260
+- "HA" "H1" 0 1 131072 4 1 0.070250
+- "CB" "CT" 0 1 131072 5 6 0.515970
+- "HB2" "HC" 0 1 131072 6 1 -0.085650
+- "HB3" "HC" 0 1 131072 7 1 -0.085650
+- "CG" "CT" 0 1 131072 8 6 -0.728430
+- "HG2" "HC" 0 1 131072 9 1 0.258090
+- "HG3" "HC" 0 1 131072 10 1 0.258090
+- "CD" "C" 0 1 131072 11 6 0.823540
+- "OE1" "O" 0 1 131072 12 8 -0.668550
+- "NE2" "N" 0 1 131072 13 7 -0.858360
+- "HE21" "H" 0 1 131072 14 1 0.382670
+- "HE22" "H" 0 1 131072 15 1 0.382670
+- "C" "C" 0 1 131072 16 6 0.670480
+- "O" "O" 0 1 131072 17 8 -0.583250
+-!entry.GLN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "C" 0 -1 0.0
+- "OE1" "O" 0 -1 0.0
+- "NE2" "N" 0 -1 0.0
+- "HE21" "H" 0 -1 0.0
+- "HE22" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.GLN.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.GLN.unit.childsequence single int
+- 2
+-!entry.GLN.unit.connect array int
+- 1
+- 16
+-!entry.GLN.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 16 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 15 1
+- 16 17 1
+-!entry.GLN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+-!entry.GLN.unit.name single str
+- "GLN"
+-!entry.GLN.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.906976 5.848443 2.410302
+- 3.138962 5.408349 3.262893
+- 4.458856 7.061523 2.488333
+- 4.248434 7.659045 3.274966
+- 5.084281 7.376210 1.760379
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.GLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 16 0 0 0 0
+-!entry.GLN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "GLN" 1 18 1 "p" 0
+-!entry.GLN.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.GLN.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.GLN.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.GLU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.348150
+- "HA" "H1" 0 1 131072 4 1 0.126380
+- "CB" "CT" 0 1 131072 5 6 0.696480
+- "HB2" "HC" 0 1 131072 6 1 -0.186180
+- "HB3" "HC" 0 1 131072 7 1 -0.186180
+- "CG" "CT" 0 1 131072 8 6 -0.662250
+- "HG2" "HC" 0 1 131072 9 1 0.193310
+- "HG3" "HC" 0 1 131072 10 1 0.193310
+- "CD" "C" 0 1 131072 11 6 0.804540
+- "OE1" "O2" 0 1 131072 12 8 -0.802940
+- "OE2" "O2" 0 1 131072 13 8 -0.802940
+- "C" "C" 0 1 131072 14 6 0.670480
+- "O" "O" 0 1 131072 15 8 -0.583250
+-!entry.GLU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "C" 0 -1 0.0
+- "OE1" "O2" 0 -1 0.0
+- "OE2" "O2" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.GLU.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.GLU.unit.childsequence single int
+- 2
+-!entry.GLU.unit.connect array int
+- 1
+- 14
+-!entry.GLU.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 14 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 14 15 1
+-!entry.GLU.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+-!entry.GLU.unit.name single str
+- "GLU"
+-!entry.GLU.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.267328 4.996267 1.194946
+- 5.347413 4.849843 1.186158
+- 3.966923 5.535124 0.296342
+- 3.873732 5.805369 2.428706
+- 4.594590 5.679012 3.454376
+- 2.855965 6.542070 2.333721
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.GLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 14 0 0 0 0
+-!entry.GLU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "GLU" 1 16 1 "p" 0
+-!entry.GLU.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.GLU.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.GLU.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.GLY.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.277560
+- "HA2" "H0" 0 1 131072 4 -1 0.151470
+- "HA3" "H0" 0 1 131072 5 -1 0.151470
+- "C" "C" 0 1 131072 6 6 0.670480
+- "O" "O" 0 1 131072 7 8 -0.583250
+-!entry.GLY.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA2" "H0" 0 -1 0.0
+- "HA3" "H0" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.GLY.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.GLY.unit.childsequence single int
+- 2
+-!entry.GLY.unit.connect array int
+- 1
+- 6
+-!entry.GLY.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 6 1
+- 6 7 1
+-!entry.GLY.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+-!entry.GLY.unit.name single str
+- "GLY"
+-!entry.GLY.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.671668 3.400125 0.889824
+- 5.483710 2.686702 -4.438857E-06
+- 5.993369 1.568360 -8.469843E-06
+-!entry.GLY.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 6 0 0 0 0
+-!entry.GLY.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "GLY" 1 8 1 "p" 0
+-!entry.GLY.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.GLY.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.GLY.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.HID.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.046110
+- "HA" "H1" 0 1 131072 4 1 -0.008910
+- "CB" "CT" 0 1 131072 5 6 -0.213070
+- "HB2" "HC" 0 1 131072 6 1 0.111650
+- "HB3" "HC" 0 1 131072 7 1 0.111650
+- "CG" "CC" 0 1 131072 8 6 0.275120
+- "ND1" "NA" 0 1 131072 9 7 -0.364930
+- "HD1" "H" 0 1 131072 10 1 0.352330
+- "CE1" "CR" 0 1 131072 11 6 0.226080
+- "HE1" "H5" 0 1 131072 12 1 0.060700
+- "NE2" "NB" 0 1 131072 13 7 -0.504470
+- "CD2" "CV" 0 1 131072 14 6 -0.070100
+- "HD2" "H4" 0 1 131072 15 1 0.095440
+- "C" "C" 0 1 131072 16 6 0.670480
+- "O" "O" 0 1 131072 17 8 -0.583250
+-!entry.HID.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CC" 0 -1 0.0
+- "ND1" "NA" 0 -1 0.0
+- "HD1" "H" 0 -1 0.0
+- "CE1" "CR" 0 -1 0.0
+- "HE1" "H5" 0 -1 0.0
+- "NE2" "NB" 0 -1 0.0
+- "CD2" "CV" 0 -1 0.0
+- "HD2" "H4" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.HID.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.HID.unit.childsequence single int
+- 2
+-!entry.HID.unit.connect array int
+- 1
+- 16
+-!entry.HID.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 16 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 14 1
+- 9 10 1
+- 9 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 14 15 1
+- 16 17 1
+-!entry.HID.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+-!entry.HID.unit.name single str
+- "HID"
+-!entry.HID.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 3.942782 5.885086 2.382972
+- 3.339725 5.691913 3.169805
+- 4.624274 6.997642 2.182500
+- 4.563048 7.811875 2.904563
+- 5.294011 6.891451 1.061663
+- 5.058974 5.678868 0.492453
+- 5.537741 5.417846 -0.451343
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.HID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 16 0 0 0 0
+-!entry.HID.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "HID" 1 18 1 "p" 0
+-!entry.HID.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.HID.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.HID.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.HIE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.125440
+- "HA" "H1" 0 1 131072 4 1 0.030840
+- "CB" "CT" 0 1 131072 5 6 -0.214440
+- "HB2" "HC" 0 1 131072 6 1 0.140600
+- "HB3" "HC" 0 1 131072 7 1 0.140600
+- "CG" "CC" 0 1 131072 8 6 0.385250
+- "ND1" "NB" 0 1 131072 9 7 -0.681670
+- "CE1" "CR" 0 1 131072 10 6 0.349170
+- "HE1" "H5" 0 1 131072 11 1 0.030760
+- "NE2" "NA" 0 1 131072 12 7 -0.327570
+- "HE2" "H" 0 1 131072 13 1 0.341080
+- "CD2" "CW" 0 1 131072 14 6 -0.206690
+- "HD2" "H4" 0 1 131072 15 1 0.162890
+- "C" "C" 0 1 131072 16 6 0.670480
+- "O" "O" 0 1 131072 17 8 -0.583250
+-!entry.HIE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CC" 0 -1 0.0
+- "ND1" "NB" 0 -1 0.0
+- "CE1" "CR" 0 -1 0.0
+- "HE1" "H5" 0 -1 0.0
+- "NE2" "NA" 0 -1 0.0
+- "HE2" "H" 0 -1 0.0
+- "CD2" "CW" 0 -1 0.0
+- "HD2" "H4" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.HIE.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.HIE.unit.childsequence single int
+- 2
+-!entry.HIE.unit.connect array int
+- 1
+- 16
+-!entry.HIE.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 16 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 14 1
+- 9 10 1
+- 10 11 1
+- 10 12 1
+- 12 13 1
+- 12 14 1
+- 14 15 1
+- 16 17 1
+-!entry.HIE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+-!entry.HIE.unit.name single str
+- "HIE"
+-!entry.HIE.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 3.942782 5.885086 2.382972
+- 4.624274 6.997642 2.182500
+- 4.563048 7.811875 2.904563
+- 5.294011 6.891451 1.061663
+- 5.896297 7.605085 0.676854
+- 5.058974 5.678868 0.492453
+- 5.537741 5.417846 -0.451343
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.HIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 16 0 0 0 0
+-!entry.HIE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "HIE" 1 18 1 "p" 0
+-!entry.HIE.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.HIE.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.HIE.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.HIP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 0.017840
+- "HA" "H1" 0 1 131072 4 1 -0.000340
+- "CB" "CT" 0 1 131072 5 6 -0.074410
+- "HB2" "HC" 0 1 131072 6 1 0.084140
+- "HB3" "HC" 0 1 131072 7 1 0.084140
+- "CG" "CC" 0 1 131072 8 6 0.259530
+- "ND1" "NA" 0 1 131072 9 7 -0.134860
+- "HD1" "H" 0 1 131072 10 1 0.376730
+- "CE1" "CR" 0 1 131072 11 6 -0.086920
+- "HE1" "H5" 0 1 131072 12 1 0.197160
+- "NE2" "NA" 0 1 131072 13 7 0.089780
+- "HE2" "H" 0 1 131072 14 1 0.285300
+- "CD2" "CW" 0 1 131072 15 6 -0.259230
+- "HD2" "H4" 0 1 131072 16 1 0.186520
+- "C" "C" 0 1 131072 17 6 0.670480
+- "O" "O" 0 1 131072 18 8 -0.583250
+-!entry.HIP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CC" 0 -1 0.0
+- "ND1" "NA" 0 -1 0.0
+- "HD1" "H" 0 -1 0.0
+- "CE1" "CR" 0 -1 0.0
+- "HE1" "H5" 0 -1 0.0
+- "NE2" "NA" 0 -1 0.0
+- "HE2" "H" 0 -1 0.0
+- "CD2" "CW" 0 -1 0.0
+- "HD2" "H4" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.HIP.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.HIP.unit.childsequence single int
+- 2
+-!entry.HIP.unit.connect array int
+- 1
+- 17
+-!entry.HIP.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 17 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 15 1
+- 9 10 1
+- 9 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 15 1
+- 15 16 1
+- 17 18 1
+-!entry.HIP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+-!entry.HIP.unit.name single str
+- "HIP"
+-!entry.HIP.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 3.942782 5.885086 2.382972
+- 3.339725 5.691913 3.169805
+- 4.624274 6.997642 2.182500
+- 4.563048 7.811875 2.904563
+- 5.294011 6.891451 1.061663
+- 5.896297 7.605085 0.676854
+- 5.058974 5.678868 0.492453
+- 5.537741 5.417846 -0.451343
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.HIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 17 0 0 0 0
+-!entry.HIP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "HIP" 1 19 1 "p" 0
+-!entry.HIP.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.HIP.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.HIP.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.ILE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.319670
+- "HA" "H1" 0 1 131072 4 1 0.149580
+- "CB" "CT" 0 1 131072 5 6 0.330640
+- "HB" "HC" 0 1 131072 6 1 -0.064360
+- "CG2" "CT" 0 1 131072 7 6 -0.412720
+- "HG21" "HC" 0 1 131072 8 1 0.117730
+- "HG22" "HC" 0 1 131072 9 1 0.117730
+- "HG23" "HC" 0 1 131072 10 1 0.117730
+- "CG1" "CT" 0 1 131072 11 6 -0.127860
+- "HG12" "HC" 0 1 131072 12 1 0.051810
+- "HG13" "HC" 0 1 131072 13 1 0.051810
+- "CD1" "CT" 0 1 131072 14 6 -0.024360
+- "HD11" "HC" 0 1 131072 15 1 0.012440
+- "HD12" "HC" 0 1 131072 16 1 0.012440
+- "HD13" "HC" 0 1 131072 17 1 0.012440
+- "C" "C" 0 1 131072 18 6 0.670480
+- "O" "O" 0 1 131072 19 8 -0.583250
+-!entry.ILE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB" "HC" 0 -1 0.0
+- "CG2" "CT" 0 -1 0.0
+- "HG21" "HC" 0 -1 0.0
+- "HG22" "HC" 0 -1 0.0
+- "HG23" "HC" 0 -1 0.0
+- "CG1" "CT" 0 -1 0.0
+- "HG12" "HC" 0 -1 0.0
+- "HG13" "HC" 0 -1 0.0
+- "CD1" "CT" 0 -1 0.0
+- "HD11" "HC" 0 -1 0.0
+- "HD12" "HC" 0 -1 0.0
+- "HD13" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.ILE.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ILE.unit.childsequence single int
+- 2
+-!entry.ILE.unit.connect array int
+- 1
+- 18
+-!entry.ILE.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 18 1
+- 5 6 1
+- 5 7 1
+- 5 11 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 11 12 1
+- 11 13 1
+- 11 14 1
+- 14 15 1
+- 14 16 1
+- 14 17 1
+- 18 19 1
+-!entry.ILE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+-!entry.ILE.unit.name single str
+- "ILE"
+-!entry.ILE.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.552136 3.620733 1.245168
+- 2.470128 3.752486 1.245640
+- 3.970045 2.845728 2.490296
+- 5.052053 2.713974 2.490763
+- 3.671561 3.399208 3.380615
+- 3.485650 1.869275 2.490737
+- 4.230204 4.986694 1.245169
+- 5.312310 4.855746 1.245164
+- 3.931820 5.541027 0.355348
+- 3.812294 5.761632 2.490339
+- 4.110777 5.208104 3.380628
+- 4.296689 6.738085 2.490833
+- 2.730286 5.893383 2.490813
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.ILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 18 0 0 0 0
+-!entry.ILE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "ILE" 1 20 1 "p" 0
+-!entry.ILE.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.ILE.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.ILE.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.LEU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.116580
+- "HA" "H1" 0 1 131072 4 1 0.026810
+- "CB" "CT" 0 1 131072 5 6 -0.227760
+- "HB2" "HC" 0 1 131072 6 1 0.095470
+- "HB3" "HC" 0 1 131072 7 1 0.095470
+- "CG" "CT" 0 1 131072 8 6 0.606550
+- "HG" "HC" 0 1 131072 9 1 -0.114060
+- "CD1" "CT" 0 1 131072 10 6 -0.794260
+- "HD11" "HC" 0 1 131072 11 1 0.208000
+- "HD12" "HC" 0 1 131072 12 1 0.208000
+- "HD13" "HC" 0 1 131072 13 1 0.208000
+- "CD2" "CT" 0 1 131072 14 6 -0.794260
+- "HD21" "HC" 0 1 131072 15 1 0.208000
+- "HD22" "HC" 0 1 131072 16 1 0.208000
+- "HD23" "HC" 0 1 131072 17 1 0.208000
+- "C" "C" 0 1 131072 18 6 0.670480
+- "O" "O" 0 1 131072 19 8 -0.583250
+-!entry.LEU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG" "HC" 0 -1 0.0
+- "CD1" "CT" 0 -1 0.0
+- "HD11" "HC" 0 -1 0.0
+- "HD12" "HC" 0 -1 0.0
+- "HD13" "HC" 0 -1 0.0
+- "CD2" "CT" 0 -1 0.0
+- "HD21" "HC" 0 -1 0.0
+- "HD22" "HC" 0 -1 0.0
+- "HD23" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.LEU.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.LEU.unit.childsequence single int
+- 2
+-!entry.LEU.unit.connect array int
+- 1
+- 18
+-!entry.LEU.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 18 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 14 1
+- 10 11 1
+- 10 12 1
+- 10 13 1
+- 14 15 1
+- 14 16 1
+- 14 17 1
+- 18 19 1
+-!entry.LEU.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+-!entry.LEU.unit.name single str
+- "LEU"
+-!entry.LEU.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.853429 5.762895 -0.062857
+- 2.773449 5.910113 -0.054557
+- 4.351513 6.732052 -0.090203
+- 4.134159 5.185704 -0.943846
+- 3.881105 5.817645 2.426721
+- 4.181626 5.279602 3.325774
+- 4.379198 6.786825 2.400363
+- 2.801135 5.964881 2.435959
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.LEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 18 0 0 0 0
+-!entry.LEU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "LEU" 1 20 1 "p" 0
+-!entry.LEU.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.LEU.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.LEU.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.LYN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.181890
+- "HA" "H1" 0 1 131072 4 1 0.074160
+- "CB" "CT" 0 1 131072 5 6 0.078320
+- "HB2" "HC" 0 1 131072 6 1 -0.000500
+- "HB3" "HC" 0 1 131072 7 1 -0.000500
+- "CG" "CT" 0 1 131072 8 6 0.004490
+- "HG2" "HC" 0 1 131072 9 1 0.023890
+- "HG3" "HC" 0 1 131072 10 1 0.023890
+- "CD" "CT" 0 1 131072 11 6 -0.277170
+- "HD2" "HC" 0 1 131072 12 1 0.112690
+- "HD3" "HC" 0 1 131072 13 1 0.112690
+- "CE" "CT" 0 1 131072 14 6 0.554010
+- "HE2" "H1" 0 1 131072 15 1 -0.114200
+- "HE3" "H1" 0 1 131072 16 1 -0.114200
+- "NZ" "NT" 0 1 131072 17 7 -0.979220
+- "HZ2" "H" 0 1 131072 18 1 0.354460
+- "HZ3" "H" 0 1 131072 19 1 0.354460
+- "C" "C" 0 1 131072 20 6 0.670480
+- "O" "O" 0 1 131072 21 8 -0.583250
+-!entry.LYN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "CT" 0 -1 0.0
+- "HD2" "HC" 0 -1 0.0
+- "HD3" "HC" 0 -1 0.0
+- "CE" "CT" 0 -1 0.0
+- "HE2" "H1" 0 -1 0.0
+- "HE3" "H1" 0 -1 0.0
+- "NZ" "NT" 0 -1 0.0
+- "HZ2" "H" 0 -1 0.0
+- "HZ3" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.LYN.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.LYN.unit.childsequence single int
+- 2
+-!entry.LYN.unit.connect array int
+- 1
+- 20
+-!entry.LYN.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 20 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 11 14 1
+- 14 15 1
+- 14 16 1
+- 14 17 1
+- 17 18 1
+- 17 19 1
+- 20 21 1
+-!entry.LYN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+-!entry.LYN.unit.name single str
+- "LYN"
+-!entry.LYN.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.881105 5.817645 2.426721
+- 2.801135 5.964881 2.435959
+- 4.181626 5.279602 3.325774
+- 4.578325 7.173410 2.389153
+- 5.658410 7.026987 2.380363
+- 4.277917 7.712267 1.490550
+- 4.199422 7.952309 3.576860
+- 4.661186 8.850226 3.551979
+- 3.198675 8.088466 3.584971
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.LYN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 20 0 0 0 0
+-!entry.LYN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "LYN" 1 22 1 "p" 0
+-!entry.LYN.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.LYN.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.LYN.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.LYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.181230
+- "HA" "H1" 0 1 131072 4 1 0.099160
+- "CB" "CT" 0 1 131072 5 6 0.004110
+- "HB2" "HC" 0 1 131072 6 1 0.027580
+- "HB3" "HC" 0 1 131072 7 1 0.027580
+- "CG" "CT" 0 1 131072 8 6 -0.053270
+- "HG2" "HC" 0 1 131072 9 1 0.053050
+- "HG3" "HC" 0 1 131072 10 1 0.053050
+- "CD" "CT" 0 1 131072 11 6 -0.201370
+- "HD2" "HC" 0 1 131072 12 1 0.095630
+- "HD3" "HC" 0 1 131072 13 1 0.095630
+- "CE" "CT" 0 1 131072 14 6 0.465480
+- "HE2" "HP" 0 1 131072 15 1 -0.049170
+- "HE3" "HP" 0 1 131072 16 1 -0.049170
+- "NZ" "N3" 0 1 131072 17 7 -0.366380
+- "HZ1" "H" 0 1 131072 18 1 0.334900
+- "HZ2" "H" 0 1 131072 19 1 0.334900
+- "HZ3" "H" 0 1 131072 20 1 0.334900
+- "C" "C" 0 1 131072 21 6 0.670480
+- "O" "O" 0 1 131072 22 8 -0.583250
+-!entry.LYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CD" "CT" 0 -1 0.0
+- "HD2" "HC" 0 -1 0.0
+- "HD3" "HC" 0 -1 0.0
+- "CE" "CT" 0 -1 0.0
+- "HE2" "HP" 0 -1 0.0
+- "HE3" "HP" 0 -1 0.0
+- "NZ" "N3" 0 -1 0.0
+- "HZ1" "H" 0 -1 0.0
+- "HZ2" "H" 0 -1 0.0
+- "HZ3" "H" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.LYS.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.LYS.unit.childsequence single int
+- 2
+-!entry.LYS.unit.connect array int
+- 1
+- 21
+-!entry.LYS.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 21 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 11 14 1
+- 14 15 1
+- 14 16 1
+- 14 17 1
+- 17 18 1
+- 17 19 1
+- 17 20 1
+- 21 22 1
+-!entry.LYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+-!entry.LYS.unit.name single str
+- "LYS"
+-!entry.LYS.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.881105 5.817645 2.426721
+- 2.801135 5.964881 2.435959
+- 4.181626 5.279602 3.325774
+- 4.578325 7.173410 2.389153
+- 5.658410 7.026987 2.380363
+- 4.277917 7.712267 1.490550
+- 4.199422 7.952309 3.576860
+- 4.478085 7.453366 4.409628
+- 4.661186 8.850226 3.551979
+- 3.198675 8.088466 3.584971
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.LYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 21 0 0 0 0
+-!entry.LYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "LYS" 1 23 1 "p" 0
+-!entry.LYS.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.LYS.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.LYS.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.MET.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.152290
+- "HA" "H1" 0 1 131072 4 1 0.080630
+- "CB" "CT" 0 1 131072 5 6 0.271900
+- "HB2" "HC" 0 1 131072 6 1 -0.049340
+- "HB3" "HC" 0 1 131072 7 1 -0.049340
+- "CG" "CT" 0 1 131072 8 6 -0.289240
+- "HG2" "H1" 0 1 131072 9 1 0.138580
+- "HG3" "H1" 0 1 131072 10 1 0.138580
+- "SD" "S" 0 1 131072 11 16 -0.127450
+- "CE" "CT" 0 1 131072 12 6 -0.275560
+- "HE1" "H1" 0 1 131072 13 1 0.112970
+- "HE2" "H1" 0 1 131072 14 1 0.112970
+- "HE3" "H1" 0 1 131072 15 1 0.112970
+- "C" "C" 0 1 131072 16 6 0.670480
+- "O" "O" 0 1 131072 17 8 -0.583250
+-!entry.MET.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "H1" 0 -1 0.0
+- "HG3" "H1" 0 -1 0.0
+- "SD" "S" 0 -1 0.0
+- "CE" "CT" 0 -1 0.0
+- "HE1" "H1" 0 -1 0.0
+- "HE2" "H1" 0 -1 0.0
+- "HE3" "H1" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.MET.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.MET.unit.childsequence single int
+- 2
+-!entry.MET.unit.connect array int
+- 1
+- 16
+-!entry.MET.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 16 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 12 13 1
+- 12 14 1
+- 12 15 1
+- 16 17 1
+-!entry.MET.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+-!entry.MET.unit.name single str
+- "MET"
+-!entry.MET.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.274186 5.009602 1.194577
+- 5.354271 4.863178 1.185788
+- 3.973781 5.548460 0.295972
+- 3.817309 5.981266 2.651708
+- 4.753212 7.463128 2.340949
+- 4.433582 7.904044 1.396741
+- 4.585907 8.175299 3.148985
+- 5.814074 7.218763 2.286554
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.MET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 16 0 0 0 0
+-!entry.MET.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "MET" 1 18 1 "p" 0
+-!entry.MET.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.MET.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.MET.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.PHE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.097530
+- "HA" "H1" 0 1 131072 4 1 0.021040
+- "CB" "CT" 0 1 131072 5 6 -0.127300
+- "HB2" "HC" 0 1 131072 6 1 0.103640
+- "HB3" "HC" 0 1 131072 7 1 0.103640
+- "CG" "CA" 0 1 131072 8 6 0.128890
+- "CD1" "CA" 0 1 131072 9 6 -0.194310
+- "HD1" "HA" 0 1 131072 10 1 0.141910
+- "CE1" "CA" 0 1 131072 11 6 -0.098170
+- "HE1" "HA" 0 1 131072 12 1 0.108820
+- "CZ" "CA" 0 1 131072 13 6 -0.112640
+- "HZ" "HA" 0 1 131072 14 1 0.089140
+- "CE2" "CA" 0 1 131072 15 6 -0.098170
+- "HE2" "HA" 0 1 131072 16 1 0.108820
+- "CD2" "CA" 0 1 131072 17 6 -0.194310
+- "HD2" "HA" 0 1 131072 18 1 0.141910
+- "C" "C" 0 1 131072 19 6 0.670480
+- "O" "O" 0 1 131072 20 8 -0.583250
+-!entry.PHE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CA" 0 -1 0.0
+- "CD1" "CA" 0 -1 0.0
+- "HD1" "HA" 0 -1 0.0
+- "CE1" "CA" 0 -1 0.0
+- "HE1" "HA" 0 -1 0.0
+- "CZ" "CA" 0 -1 0.0
+- "HZ" "HA" 0 -1 0.0
+- "CE2" "CA" 0 -1 0.0
+- "HE2" "HA" 0 -1 0.0
+- "CD2" "CA" 0 -1 0.0
+- "HD2" "HA" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.PHE.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.PHE.unit.childsequence single int
+- 2
+-!entry.PHE.unit.connect array int
+- 1
+- 19
+-!entry.PHE.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 19 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 17 1
+- 9 10 1
+- 9 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 15 1
+- 15 16 1
+- 15 17 1
+- 17 18 1
+- 19 20 1
+-!entry.PHE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+-!entry.PHE.unit.name single str
+- "PHE"
+-!entry.PHE.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 3.911613 5.857250 2.409890
+- 3.236123 5.513843 3.193398
+- 4.490014 7.129513 2.492354
+- 4.264853 7.776651 3.340066
+- 5.357616 7.570591 1.486016
+- 5.807943 8.561138 1.550220
+- 5.646818 6.739407 0.397211
+- 6.322309 7.082817 -0.386295
+- 5.068419 5.467143 0.314744
+- 5.293584 4.820007 -0.532968
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.PHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 19 0 0 0 0
+-!entry.PHE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "PHE" 1 21 1 "p" 0
+-!entry.PHE.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.PHE.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.PHE.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.PRO.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.259820
+- "CD" "CT" 0 1 131072 2 6 0.070890
+- "HD2" "H1" 0 1 131072 3 1 0.019250
+- "HD3" "H1" 0 1 131072 4 1 0.019260
+- "CG" "CT" 0 1 131072 5 6 0.067960
+- "HG2" "HC" 0 1 131072 6 1 0.009600
+- "HG3" "HC" 0 1 131072 7 1 0.009600
+- "CB" "CT" 0 1 131072 8 6 0.038490
+- "HB2" "HC" 0 1 131072 9 1 0.020120
+- "HB3" "HC" 0 1 131072 10 1 0.020120
+- "CA" "CT" 0 1 131072 11 6 -0.194650
+- "HA" "H1" 0 1 131072 12 1 0.091950
+- "C" "C" 0 1 131072 13 6 0.670480
+- "O" "O" 0 1 131072 14 8 -0.583250
+-!entry.PRO.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "CD" "CT" 0 -1 0.0
+- "HD2" "H1" 0 -1 0.0
+- "HD3" "H1" 0 -1 0.0
+- "CG" "CT" 0 -1 0.0
+- "HG2" "HC" 0 -1 0.0
+- "HG3" "HC" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.PRO.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.PRO.unit.childsequence single int
+- 2
+-!entry.PRO.unit.connect array int
+- 1
+- 13
+-!entry.PRO.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 11 1
+- 2 3 1
+- 2 4 1
+- 2 5 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 10 1
+- 8 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+-!entry.PRO.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+-!entry.PRO.unit.name single str
+- "PRO"
+-!entry.PRO.unit.positions table dbl x dbl y dbl z
+- 3.326834 1.557389 -1.603945E-06
+- 4.302147 0.476598 0.080119
+- 4.419998 0.019283 -0.902263
+- 3.955888 -0.274040 0.790574
+- 5.547126 1.172441 0.544693
+- 6.413549 0.741636 0.042879
+- 5.652950 1.047934 1.622376
+- 5.369091 2.628184 0.185227
+- 5.969289 2.861861 -0.694123
+- 5.690642 3.251038 1.019947
+- 3.933610 2.871277 -0.104508
+- 3.611470 3.488570 0.734106
+- 3.505164 3.526392 -1.409783
+- 2.754240 2.939065 -2.185412
+-!entry.PRO.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 13 0 0 0 0
+-!entry.PRO.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "PRO" 1 15 1 "p" 0
+-!entry.PRO.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.PRO.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.PRO.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.SER.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.066190
+- "HA" "H1" 0 1 131072 4 1 0.078820
+- "CB" "CT" 0 1 131072 5 6 0.185370
+- "HB2" "H1" 0 1 131072 6 1 0.025410
+- "HB3" "H1" 0 1 131072 7 1 0.025410
+- "OG" "OH" 0 1 131072 8 8 -0.602470
+- "HG" "HO" 0 1 131072 9 1 0.379030
+- "C" "C" 0 1 131072 10 6 0.670480
+- "O" "O" 0 1 131072 11 8 -0.583250
+-!entry.SER.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "H1" 0 -1 0.0
+- "HB3" "H1" 0 -1 0.0
+- "OG" "OH" 0 -1 0.0
+- "HG" "HO" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.SER.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.SER.unit.childsequence single int
+- 2
+-!entry.SER.unit.connect array int
+- 1
+- 10
+-!entry.SER.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 10 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 10 11 1
+-!entry.SER.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+-!entry.SER.unit.name single str
+- "SER"
+-!entry.SER.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.230753 4.925145 1.196917
+- 3.983305 5.433814 1.972562
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.SER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 10 0 0 0 0
+-!entry.SER.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "SER" 1 12 1 "p" 0
+-!entry.SER.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.SER.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.SER.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.THR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.022270
+- "HA" "H1" 0 1 131072 4 1 0.053100
+- "CB" "CT" 0 1 131072 5 6 0.522850
+- "HB" "H1" 0 1 131072 6 1 -0.139050
+- "CG2" "CT" 0 1 131072 7 6 -0.588650
+- "HG21" "HC" 0 1 131072 8 1 0.162040
+- "HG22" "HC" 0 1 131072 9 1 0.162040
+- "HG23" "HC" 0 1 131072 10 1 0.162040
+- "OG1" "OH" 0 1 131072 11 8 -0.739400
+- "HG1" "HO" 0 1 131072 12 1 0.452680
+- "C" "C" 0 1 131072 13 6 0.670480
+- "O" "O" 0 1 131072 14 8 -0.583250
+-!entry.THR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB" "H1" 0 -1 0.0
+- "CG2" "CT" 0 -1 0.0
+- "HG21" "HC" 0 -1 0.0
+- "HG22" "HC" 0 -1 0.0
+- "HG23" "HC" 0 -1 0.0
+- "OG1" "OH" 0 -1 0.0
+- "HG1" "HO" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.THR.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.THR.unit.childsequence single int
+- 2
+-!entry.THR.unit.connect array int
+- 1
+- 13
+-!entry.THR.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 13 1
+- 5 6 1
+- 5 7 1
+- 5 11 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 11 12 1
+- 13 14 1
+-!entry.THR.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+-!entry.THR.unit.name single str
+- "THR"
+-!entry.THR.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 4.075059 4.623017 1.205786
+- 2.065936 3.859425 1.244383
+- 1.567127 2.890627 1.271209
+- 1.784431 4.436953 2.124903
+- 1.764699 4.397847 0.345796
+- 3.971501 2.947413 2.411212
+- 3.724052 3.456082 3.186857
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.THR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 13 0 0 0 0
+-!entry.THR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "THR" 1 15 1 "p" 0
+-!entry.THR.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.THR.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.THR.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.TRP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.094050
+- "HA" "H1" 0 1 131072 4 1 0.058350
+- "CB" "CT" 0 1 131072 5 6 0.034010
+- "HB2" "HC" 0 1 131072 6 1 0.031520
+- "HB3" "HC" 0 1 131072 7 1 0.031520
+- "CG" "C*" 0 1 131072 8 6 -0.279060
+- "CD1" "CW" 0 1 131072 9 6 0.030520
+- "HD1" "H4" 0 1 131072 10 1 0.136990
+- "NE1" "NA" 0 1 131072 11 7 -0.483180
+- "HE1" "H" 0 1 131072 12 1 0.393090
+- "CE2" "CN" 0 1 131072 13 6 0.203200
+- "CZ2" "CA" 0 1 131072 14 6 -0.272110
+- "HZ2" "HA" 0 1 131072 15 1 0.185390
+- "CH2" "CA" 0 1 131072 16 6 -0.171160
+- "HH2" "HA" 0 1 131072 17 1 0.105360
+- "CZ3" "CA" 0 1 131072 18 6 -0.058970
+- "HZ3" "HA" 0 1 131072 19 1 0.088920
+- "CE3" "CA" 0 1 131072 20 6 -0.403270
+- "HE3" "HA" 0 1 131072 21 1 0.216660
+- "CD2" "CB" 0 1 131072 22 6 0.271650
+- "C" "C" 0 1 131072 23 6 0.670480
+- "O" "O" 0 1 131072 24 8 -0.583250
+-!entry.TRP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "C*" 0 -1 0.0
+- "CD1" "CW" 0 -1 0.0
+- "HD1" "H4" 0 -1 0.0
+- "NE1" "NA" 0 -1 0.0
+- "HE1" "H" 0 -1 0.0
+- "CE2" "CN" 0 -1 0.0
+- "CZ2" "CA" 0 -1 0.0
+- "HZ2" "HA" 0 -1 0.0
+- "CH2" "CA" 0 -1 0.0
+- "HH2" "HA" 0 -1 0.0
+- "CZ3" "CA" 0 -1 0.0
+- "HZ3" "HA" 0 -1 0.0
+- "CE3" "CA" 0 -1 0.0
+- "HE3" "HA" 0 -1 0.0
+- "CD2" "CB" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.TRP.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.TRP.unit.childsequence single int
+- 2
+-!entry.TRP.unit.connect array int
+- 1
+- 23
+-!entry.TRP.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 23 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 22 1
+- 9 10 1
+- 9 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 22 1
+- 14 15 1
+- 14 16 1
+- 16 17 1
+- 16 18 1
+- 18 19 1
+- 18 20 1
+- 20 21 1
+- 20 22 1
+- 23 24 1
+-!entry.TRP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+- "R" 1 "A" 22
+- "R" 1 "A" 23
+- "R" 1 "A" 24
+-!entry.TRP.unit.name single str
+- "TRP"
+-!entry.TRP.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.200813 5.026064 1.321087
+- 4.023453 5.931084 2.293240
+- 3.368841 5.705466 3.135071
+- 4.811943 7.073555 1.949808
+- 4.882921 7.922010 2.493118
+- 5.427347 6.842060 0.816764
+- 6.297161 7.689052 0.119605
+- 6.531230 8.676649 0.517050
+- 6.814091 7.187011 -1.069023
+- 7.498074 7.791857 -1.664362
+- 6.482659 5.953119 -1.505101
+- 6.897660 5.575648 -2.439654
+- 5.604041 5.117355 -0.785636
+- 5.358720 4.126570 -1.168080
+- 5.083390 5.623004 0.411545
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.TRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 23 0 0 0 0
+-!entry.TRP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "TRP" 1 25 1 "p" 0
+-!entry.TRP.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.TRP.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.TRP.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.TYR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.176100
+- "HA" "H1" 0 1 131072 4 1 0.082580
+- "CB" "CT" 0 1 131072 5 6 -0.032040
+- "HB2" "HC" 0 1 131072 6 1 0.077470
+- "HB3" "HC" 0 1 131072 7 1 0.077470
+- "CG" "CA" 0 1 131072 8 6 -0.034160
+- "CD1" "CA" 0 1 131072 9 6 -0.120710
+- "HD1" "HA" 0 1 131072 10 1 0.140120
+- "CE1" "CA" 0 1 131072 11 6 -0.333900
+- "HE1" "HA" 0 1 131072 12 1 0.188970
+- "CZ" "CA" 0 1 131072 13 6 0.442780
+- "OH" "OH" 0 1 131072 14 8 -0.541860
+- "HH" "HO" 0 1 131072 15 1 0.380280
+- "CE2" "CA" 0 1 131072 16 6 -0.333900
+- "HE2" "HA" 0 1 131072 17 1 0.188970
+- "CD2" "CA" 0 1 131072 18 6 -0.120710
+- "HD2" "HA" 0 1 131072 19 1 0.140120
+- "C" "C" 0 1 131072 20 6 0.670480
+- "O" "O" 0 1 131072 21 8 -0.583250
+-!entry.TYR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB2" "HC" 0 -1 0.0
+- "HB3" "HC" 0 -1 0.0
+- "CG" "CA" 0 -1 0.0
+- "CD1" "CA" 0 -1 0.0
+- "HD1" "HA" 0 -1 0.0
+- "CE1" "CA" 0 -1 0.0
+- "HE1" "HA" 0 -1 0.0
+- "CZ" "CA" 0 -1 0.0
+- "OH" "OH" 0 -1 0.0
+- "HH" "HO" 0 -1 0.0
+- "CE2" "CA" 0 -1 0.0
+- "HE2" "HA" 0 -1 0.0
+- "CD2" "CA" 0 -1 0.0
+- "HD2" "HA" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.TYR.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.TYR.unit.childsequence single int
+- 2
+-!entry.TYR.unit.connect array int
+- 1
+- 20
+-!entry.TYR.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 20 1
+- 5 6 1
+- 5 7 1
+- 5 8 1
+- 8 9 1
+- 8 18 1
+- 9 10 1
+- 9 11 1
+- 11 12 1
+- 11 13 1
+- 13 14 1
+- 13 16 1
+- 14 15 1
+- 16 17 1
+- 16 18 1
+- 18 19 1
+- 20 21 1
+-!entry.TYR.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+- "R" 1 "A" 17
+- "R" 1 "A" 18
+- "R" 1 "A" 19
+- "R" 1 "A" 20
+- "R" 1 "A" 21
+-!entry.TYR.unit.name single str
+- "TYR"
+-!entry.TYR.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.877484 3.115795 2.131197
+- 4.267328 4.996267 1.194946
+- 4.059927 5.918911 2.227280
+- 3.400108 5.668218 3.057877
+- 4.699998 7.163547 2.192791
+- 4.538522 7.881891 2.996538
+- 5.547471 7.485542 1.125970
+- 6.169255 8.694617 1.092468
+- 5.956327 9.246984 1.848214
+- 5.754875 6.562900 0.093635
+- 6.414694 6.813595 -0.736962
+- 5.114806 5.318263 0.128119
+- 5.276286 4.599920 -0.675627
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.TYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 20 0 0 0 0
+-!entry.TYR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "TYR" 1 22 1 "p" 0
+-!entry.TYR.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.TYR.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.TYR.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+-!entry.VAL.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+- "N" "N" 0 1 131072 1 7 -0.404070
+- "H" "H" 0 1 131072 2 1 0.291460
+- "CA" "CT" 0 1 131072 3 6 -0.248670
+- "HA" "H1" 0 1 131072 4 1 0.096610
+- "CB" "CT" 0 1 131072 5 6 0.652680
+- "HB" "HC" 0 1 131072 6 1 -0.125280
+- "CG1" "CT" 0 1 131072 7 6 -0.741410
+- "HG11" "HC" 0 1 131072 8 1 0.188810
+- "HG12" "HC" 0 1 131072 9 1 0.188810
+- "HG13" "HC" 0 1 131072 10 1 0.188810
+- "CG2" "CT" 0 1 131072 11 6 -0.741410
+- "HG21" "HC" 0 1 131072 12 1 0.188810
+- "HG22" "HC" 0 1 131072 13 1 0.188810
+- "HG23" "HC" 0 1 131072 14 1 0.188810
+- "C" "C" 0 1 131072 15 6 0.670480
+- "O" "O" 0 1 131072 16 8 -0.583250
+-!entry.VAL.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
+- "N" "N" 0 -1 0.0
+- "H" "H" 0 -1 0.0
+- "CA" "CT" 0 -1 0.0
+- "HA" "H1" 0 -1 0.0
+- "CB" "CT" 0 -1 0.0
+- "HB" "HC" 0 -1 0.0
+- "CG1" "CT" 0 -1 0.0
+- "HG11" "HC" 0 -1 0.0
+- "HG12" "HC" 0 -1 0.0
+- "HG13" "HC" 0 -1 0.0
+- "CG2" "CT" 0 -1 0.0
+- "HG21" "HC" 0 -1 0.0
+- "HG22" "HC" 0 -1 0.0
+- "HG23" "HC" 0 -1 0.0
+- "C" "C" 0 -1 0.0
+- "O" "O" 0 -1 0.0
+-!entry.VAL.unit.boundbox array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.VAL.unit.childsequence single int
+- 2
+-!entry.VAL.unit.connect array int
+- 1
+- 15
+-!entry.VAL.unit.connectivity table int atom1x int atom2x int flags
+- 1 2 1
+- 1 3 1
+- 3 4 1
+- 3 5 1
+- 3 15 1
+- 5 6 1
+- 5 7 1
+- 5 11 1
+- 7 8 1
+- 7 9 1
+- 7 10 1
+- 11 12 1
+- 11 13 1
+- 11 14 1
+- 15 16 1
+-!entry.VAL.unit.hierarchy table str abovetype int abovex str belowtype int belowx
+- "U" 0 "R" 1
+- "R" 1 "A" 1
+- "R" 1 "A" 2
+- "R" 1 "A" 3
+- "R" 1 "A" 4
+- "R" 1 "A" 5
+- "R" 1 "A" 6
+- "R" 1 "A" 7
+- "R" 1 "A" 8
+- "R" 1 "A" 9
+- "R" 1 "A" 10
+- "R" 1 "A" 11
+- "R" 1 "A" 12
+- "R" 1 "A" 13
+- "R" 1 "A" 14
+- "R" 1 "A" 15
+- "R" 1 "A" 16
+-!entry.VAL.unit.name single str
+- "VAL"
+-!entry.VAL.unit.positions table dbl x dbl y dbl z
+- 3.325770 1.547909 -1.607204E-06
+- 3.909407 0.723611 -2.739882E-06
+- 3.970048 2.845795 -1.311163E-07
+- 3.671663 3.400129 -0.889820
+- 3.576965 3.653838 1.232143
+- 2.496995 3.801075 1.241379
+- 3.997712 2.900483 2.489542
+- 5.077693 2.753265 2.481244
+- 3.716972 3.477628 3.370558
+- 3.499630 1.931323 2.516834
+- 4.274186 5.009602 1.194577
+- 3.973781 5.548460 0.295972
+- 3.993559 5.587585 2.075079
+- 5.354271 4.863178 1.185788
+- 5.485541 2.705207 -4.398755E-06
+- 6.008824 1.593175 -8.449768E-06
+-!entry.VAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
+- 1 15 0 0 0 0
+-!entry.VAL.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
+- "VAL" 1 17 1 "p" 0
+-!entry.VAL.unit.residuesPdbSequenceNumber array int
+- 0
+-!entry.VAL.unit.solventcap array dbl
+- -1.000000
+- 0.0
+- 0.0
+- 0.0
+- 0.0
+-!entry.VAL.unit.velocities table dbl x dbl y dbl z
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+- 0.0 0.0 0.0
+diff --git a/dat/leap/parm/frcmod.pol12 b/dat/leap/parm/frcmod.pol12
+deleted file mode 100644
+index cff8162..0000000
+--- a/dat/leap/parm/frcmod.pol12
++++ /dev/null
+@@ -1,180 +0,0 @@
+-Mainchain torsion parameters
+-IPOL
+- 4
+-
+-MASS
+-
+-BOND
+-
+-ANGL
+-
+-DIHEDRAL
+-C -N -CT-C 1 0.79 0.0 -1. 1.0 2.0 frm gly phi-psi gas map MP2(CBS, atz-aqz)+CCSD(T)(adz)
+-C -N -CT-C 1 1.24 0.0 -2. 1.0 2.0 frm gly phi-psi gas map MP2(CBS, atz-aqz)+CCSD(T)(adz)
+-C -N -CT-C 1 0.42 0.0 3. 1.0 2.0 frm gly phi-psi gas map MP2(CBS, atz-aqz)+CCSD(T)(adz)
+-N -CT-C -N 1 1.96 0.0 -1. 1.0 2.0 frm gly phi-psi gas map MP2(CBS, atz-aqz)+CCSD(T)(adz)
+-N -CT-C -N 1 1.37 180.0 -2. 1.0 2.0 frm gly phi-psi gas map MP2(CBS, atz-aqz)+CCSD(T)(adz)
+-N -CT-C -N 1 0.42 180.0 3. 1.0 2.0 frm gly phi-psi gas map MP2(CBS, atz-aqz)+CCSD(T)(adz)
+-CT-CT-N -C 1 0.02 180.0 -1. 1.0 2.0
+-CT-CT-N -C 1 0.65 0.0 2. 1.0 2.0
+-H1-CT-N -C 1 0.99 180.0 -1. 1.0 2.0
+-H1-CT-N -C 1 0.80 0.0 2. 1.0 2.0
+-CT-CT-C -N 1 1.34 0.0 -1. 1.0 2.0
+-CT-CT-C -N 1 0.50 180.0 2. 1.0 2.0
+-H1-CT-C -N 1 0.09 180.0 -2. 1.0 2.0
+-H1-CT-C -N 1 1.14 0.0 1. 1.0 2.0
+-
+-NONBON
+-
+-CMAP
+-%FLAG CMAP_COUNT 3
+-%FLAG CMAP_TITLE
+-ALA CMAP
+-%FLAG CMAP_RESLIST 26
+-ALA ASP SER THR LEU ILE VAL ASN GLN ARG
+-HID HIE HIP TRP PHE TYR GLU ASP LYS LYN
+-CYS CYX MET ASH GLH CYM
+-%FLAG CMAP_RESOLUTION 18
+-%FLAG CMAP_PARAMETER
+- 0.6996 0.7109 0.7452 0.8985 1.2822 1.4924 0.8283 0.0309
+- 0.1762 -0.0044 -0.9781 -0.9596 -0.2536 0.2216 0.2768 0.2998
+- 0.3343 0.4811 0.6979 0.5886 0.6524 0.9473 1.2845 1.1558
+- 0.6335 0.2926 0.8031 -0.6203 -1.0679 -0.8046 -0.1339 0.1863
+- 0.2679 0.4891 0.6519 0.7084 0.4314 0.4697 0.7114 1.0596
+- 1.0858 0.7096 0.5322 1.0603 -0.2603 -0.9325 -0.9777 -0.5784
+- -0.1384 -0.0963 0.0316 0.3500 0.5028 0.4746 0.6188 0.9074
+- 1.1282 1.2028 0.9105 0.6231 1.0358 0.2832 -0.7467 -0.8248
+- -0.5121 -0.1238 -0.1961 -0.4874 -0.2169 0.2218 0.4082 0.4486
+- 0.9788 1.1395 1.0923 1.0718 0.9625 1.1138 1.3863 -0.1392
+- -0.7237 -0.2872 0.4985 0.3261 -0.5791 -1.0942 -0.4770 0.2321
+- 0.5573 0.7415 0.5292 0.4950 0.5479 0.9137 1.3146 1.8892
+- 0.9379 -0.6194 -0.6632 0.6898 1.7557 1.5728 0.6566 -0.5970
+- -0.8672 -0.1900 0.2293 0.4321 -1.0380 -0.5799 0.3862 1.5984
+- 2.3166 2.1500 -0.0677 -1.2216 0.0062 2.3366 3.2155 2.7916
+- 1.8380 0.3829 -0.8178 -1.0808 -1.1518 -1.1570 -1.8094 -0.0773
+- 2.1498 3.7544 3.6406 0.8498 -1.3804 -0.9843 1.5549 3.2365
+- 3.3981 2.9209 2.2171 0.8749 -0.6221 -2.0341 -2.7537 -2.6330
+- -0.3319 2.8137 3.2646 1.8770 0.3246 -1.2216 -1.4980 0.5532
+- 2.1118 2.6618 2.5746 2.5164 2.1009 0.9974 -1.3076 -2.7967
+- -2.9532 -2.1699 3.6877 0.8028 -0.7043 -1.5370 -1.7409 -1.0954
+- 0.5853 1.2217 1.6359 1.8122 2.1382 2.1394 1.1467 -1.1553
+- -2.0555 -1.8169 -1.0220 0.4087 0.0138 -2.0970 -3.0277 -2.8743
+- -1.2829 0.5478 1.1379 1.4164 1.7734 2.3230 2.4142 1.2562
+- -1.5766 -1.7018 -0.3087 1.2616 2.6633 2.9485 -1.7710 -2.9352
+- -3.2016 -2.3880 -0.8571 0.2752 1.2115 1.6828 2.2605 2.5641
+- 1.5681 -1.1818 -2.0490 -0.0671 2.4541 3.1648 1.9621 0.0054
+- -0.5880 -1.1331 -1.1982 -0.9946 -0.7792 -0.0902 0.9375 1.5375
+- 1.8883 1.4039 -0.3318 -1.8684 -0.9853 1.1723 2.2107 1.9406
+- 1.1240 0.2128 1.1816 0.7833 0.6454 0.3474 -0.5170 -0.9473
+- -0.1769 0.3671 0.4441 -0.0054 -1.1102 -1.1976 0.1113 1.5763
+- 1.7120 1.7491 1.6278 1.5039 1.8743 1.3537 1.1335 0.8916
+- 0.2183 -0.9854 -1.0827 -0.5687 -0.2308 -0.5702 -0.8166 -0.2464
+- 1.0822 1.2795 1.3026 1.7406 1.9548 2.1020 1.2800 0.9715
+- 0.8172 0.7412 0.5890 0.3522 0.0954 -0.2460 -0.5892 -0.5927
+- -0.2446 0.9237 1.1241 0.5542 1.0488 1.5582 1.5830 1.4282
+- 0.3882 0.4559 0.4963 0.4920 0.6253 0.9252 0.5006 -0.7605
+- -0.6854 -0.3495 0.6981 0.6922 -0.0579 0.2654 0.8917 0.9409
+- 0.5017 0.1950 0.2477 0.3903 0.5167 0.6139 0.8817 1.2830
+- 0.7453 -0.3047 -0.4839 0.3175 -0.1271 -0.8020 -0.3850 0.2424
+- 0.4141 0.2357 -0.0419 -0.0473
+-%FLAG CMAP_TITLE
+-GLY CMAP
+-%FLAG CMAP_RESLIST 1
+-GLY
+-%FLAG CMAP_RESOLUTION 18
+-%COMMENT GLY CMAP from MP2(CBS atz-aqz)+CCSD(T)(adz) correction
+-%COMMENT from gly-CMAP-optBBV01-gas-formatted-psi-phi.dat
+-%COMMENT PSI PHI
+-%FLAG CMAP_PARAMETER
+- 1.1507 0.7349 0.5033 0.4851 0.6055 0.6617 -0.1372 -0.4814
+- -0.4244 3.5760 -0.4244 -0.4814 -0.1372 0.6617 0.6055 0.4851
+- 0.5033 0.7349 0.8169 0.6015 0.5487 0.7802 1.0366 0.9827
+- 0.5364 0.2725 1.1192 -0.5549 -1.1726 -0.9070 -0.1156 0.2913
+- 0.3275 0.4620 0.6558 0.7885 0.7603 0.7381 0.9566 1.2999
+- 1.3313 0.9787 0.8744 1.4168 -0.1690 -1.1676 -1.3768 -1.0856
+- -0.2490 -0.0108 0.1378 0.4506 0.6648 0.7392 0.9915 1.1016
+- 1.2424 1.3636 1.2423 1.0643 1.4604 0.6995 -0.6354 -1.0819
+- -0.9636 -0.5145 -0.2270 -0.2924 0.0124 0.4572 0.7197 0.8353
+- 1.1798 1.1241 1.1031 1.2584 1.3540 1.5273 1.8196 0.1895
+- -0.6672 -0.5774 -0.0897 -0.1227 -0.6643 -0.9178 -0.3044 0.4086
+- 0.7943 1.0196 0.4751 0.3508 0.5391 1.1479 1.6817 2.1172
+- 1.0757 -0.5530 -0.7982 0.1466 0.8419 0.8318 0.3350 -0.6135
+- -0.8554 -0.2406 0.1999 0.4241 -1.1995 -0.7114 0.4296 1.8756
+- 2.6117 2.1615 -0.1812 -1.4398 -0.4034 1.4799 2.2439 2.0908
+- 1.5528 0.3805 -0.8859 -1.3330 -1.4658 -1.4169 -1.7376 0.0374
+- 2.3126 3.9828 3.4776 0.7125 -1.5839 -1.2740 1.1103 2.4687
+- 2.5524 2.2668 1.9382 0.8766 -0.7227 -2.3671 -3.1074 -2.8081
+- 0.1638 3.0876 3.5261 1.9682 0.2306 -1.3484 -1.5582 0.5419
+- 1.8350 2.0962 1.8764 1.8112 1.6715 0.8664 -1.3883 -2.9899
+- -3.0123 -1.9469 5.5352 1.0681 -0.6188 -1.6349 -1.9353 -1.1019
+- 0.8247 1.4255 1.5776 1.8010 1.5776 1.4255 0.8247 -1.1019
+- -1.9353 -1.6349 -0.6188 1.0681 0.1638 -1.9469 -3.0123 -2.9899
+- -1.3883 0.8664 1.6715 1.8112 1.8764 2.0962 1.8350 0.5419
+- -1.5582 -1.3484 0.2306 1.9682 3.5261 3.0876 -1.7376 -2.8081
+- -3.1074 -2.3671 -0.7227 0.8766 1.9382 2.2668 2.5524 2.4687
+- 1.1103 -1.2740 -1.5839 0.7125 3.4776 3.9828 2.3126 0.0374
+- -1.1995 -1.4169 -1.4658 -1.3330 -0.8859 0.3805 1.5528 2.0908
+- 2.2439 1.4799 -0.4034 -1.4398 -0.1812 2.1615 2.6117 1.8756
+- 0.4296 -0.7114 0.4751 0.4241 0.1999 -0.2406 -0.8554 -0.6135
+- 0.3350 0.8318 0.8419 0.1466 -0.7982 -0.5530 1.0757 2.1172
+- 1.6817 1.1479 0.5391 0.3508 1.1798 1.0196 0.7943 0.4086
+- -0.3044 -0.9178 -0.6643 -0.1227 -0.0897 -0.5774 -0.6672 0.1895
+- 1.8196 1.5273 1.3540 1.2584 1.1031 1.1241 0.9915 0.8353
+- 0.7197 0.4572 0.0124 -0.2924 -0.2270 -0.5145 -0.9636 -1.0819
+- -0.6354 0.6995 1.4604 1.0643 1.2423 1.3636 1.2424 1.1016
+- 0.7603 0.7392 0.6648 0.4506 0.1378 -0.0108 -0.2490 -1.0856
+- -1.3768 -1.1676 -0.1690 1.4168 0.8744 0.9787 1.3313 1.2999
+- 0.9566 0.7381 0.8169 0.7885 0.6558 0.4620 0.3275 0.2913
+- -0.1156 -0.9070 -1.1726 -0.5549 1.1192 0.2725 0.5364 0.9827
+- 1.0366 0.7802 0.5487 0.6015
+-%FLAG CMAP_TITLE
+-PRO CMAP
+-%FLAG CMAP_RESLIST 1
+-PRO
+-%FLAG CMAP_RESOLUTION 18
+-%COMMENT PRO CMAP from MP2(atz) correction
+-%COMMENT PSI PHI
+-%FLAG CMAP_PARAMETER
+- -11.8681 -11.9836 -12.3616 -13.6168 -14.1453 -14.0496 -13.2367 -11.7198
+- -12.3096 -13.3794 -14.8656 -16.1479 -16.2807 -15.2755 -14.2653 -13.6480
+- -13.2047 -12.3285 -6.6149 -6.6085 -6.9286 -8.0418 -8.9648 -9.1397
+- -8.0198 -7.5099 -8.3788 -9.3943 -10.1089 -10.4542 -10.0455 -9.4001
+- -8.8431 -8.2531 -7.6409 -6.9275 -2.2957 -2.2463 -2.3664 -3.3373
+- -4.3855 -4.6521 -3.5502 -3.0913 -3.9517 -5.7538 -5.9899 -5.5195
+- -4.8746 -4.7226 -4.4199 -3.7774 -3.1315 -2.5488 0.6680 0.7260
+- 0.9072 0.3973 -0.5339 -0.8094 0.0774 -0.6931 -1.1404 -1.1815
+- -1.1333 -0.6621 -0.7192 -1.4151 -1.1788 -0.0419 1.2083 0.4615
+- 2.1095 4.2916 4.4484 4.5978 2.0399 2.3643 1.5854 -0.6165
+- -2.3163 -2.1003 -1.6863 -2.0963 1.1545 0.2034 0.3478 1.5816
+- 2.8385 3.6463 1.4654 1.9240 2.1607 2.3294 2.1657 1.1236
+- 0.0568 -1.0419 -1.1277 0.0585 1.0645 0.9305 -0.0229 -1.3432
+- -1.8853 -0.9112 0.1465 0.8421 0.7720 0.5083 2.0895 4.2326
+- 3.4621 1.6070 -0.1446 -0.4766 0.0496 1.9172 2.8496 2.5803
+- 1.8081 0.4834 -0.8311 -0.9350 -0.4975 0.0686 0.1101 2.1266
+- 4.1675 4.8614 3.2766 0.8449 -1.0386 -0.7694 1.0610 2.6106
+- 2.9484 2.6931 2.3165 1.1273 -0.6244 -1.8051 -1.8110 -1.1012
+- 0.8389 3.2290 4.5077 3.5467 1.5644 -0.8184 -1.6190 -0.0314
+- 1.4359 1.9499 1.9228 2.1114 2.0614 0.8497 -1.6471 -2.9782
+- -2.4091 -1.0655 2.1214 2.4093 1.8722 0.8322 -0.9802 -2.0624
+- -0.9195 -0.7585 0.3481 0.2424 0.7417 1.3245 0.8544 -1.4936
+- -3.4435 -3.2387 -1.8418 -0.1330 1.1045 -0.0764 -1.2071 -2.5678
+- -3.1670 -2.1847 -1.3846 -1.6251 -1.7513 -1.1878 -0.5694 -0.9375
+- -3.0564 -4.7386 -4.5548 -3.3367 -2.2528 -0.6426 -2.6725 -4.4937
+- -5.8072 -6.1904 -5.2607 -4.0146 -3.6532 -3.7922 -3.4941 -3.0741
+- -3.5874 -5.8952 -8.2189 -7.9584 -6.6024 -5.1969 -2.9854 -5.5137
+- -7.9466 -9.1555 -9.7366 -9.4550 -8.4636 -7.2113 -6.5882 -6.3548
+- -6.2295 -6.8226 -8.8572 -11.4670 -11.6480 -10.2777 -8.5312 -6.9800
+- -8.2061 -5.8153 -11.6999 -12.2452 -12.6181 -13.0581 -13.3102 -12.5095
+- -11.5831 -11.1878 -11.4400 -12.4275 -14.0503 -14.7786 -14.2390 -13.2677
+- -14.5183 -11.0713 -10.6889 -11.0171 -13.0625 -13.4223 -13.6765 -14.3336
+- -14.6319 -14.0585 -16.8736 -16.1852 -15.4669 -15.8732 -16.5863 -16.5814
+- -16.0226 -15.6145 -14.9156 -14.2166 -13.6532 -13.3471 -14.4252 -14.5993
+- -14.7349 -15.6092 -15.9535 -15.6075 -16.3631 -15.6054 -15.8061 -16.5334
+- -17.0429 -16.9562 -16.5669 -16.5470 -15.8568 -15.1665 -15.5102 -15.0609
+- -15.7879 -15.7763 -15.7932 -16.8848 -17.2752 -17.1565 -17.2433 -16.5548
+- -16.1162 -16.6112 -17.8811 -19.0447 -19.4487 -18.9047 -17.8098 -17.1771
+- -17.3673 -16.7746 -17.1505 -16.9534 -16.8516 -18.1603 -18.1481 -18.1358
+- -18.1236 -17.5042 -16.4263 -16.6890 -18.7194 -21.1332 -22.3304 -21.2623
+- -19.7629 -19.1877 -19.2243 -18.4884
+-
+-
+diff --git a/dat/leap/parm/parmpol12.dat b/dat/leap/parm/parmpol12.dat
+deleted file mode 100644
+index 13fefad..0000000
+--- a/dat/leap/parm/parmpol12.dat
++++ /dev/null
+@@ -1,756 +0,0 @@
+-based on PARM99 ff11D1, Thole-Linear SL=2.5874
+-C 12.01 1.2955 2.5874 sp2 C carbonyl group
+-C2 12.01 1.2955 2.5874 sp2 C
+-CA 12.01 1.2955 2.5874 sp2 C pure aromatic (benzene)
+-CB 12.01 1.2955 2.5874 sp2 aromatic C, 5&6 membered ring junction
+-CC 12.01 1.2955 2.5874 sp2 aromatic C, 5 memb. ring HIS
+-CD 12.01 1.2955 2.5874 sp2 C atom in the middle of: C=CD-CD=C
+-CK 12.01 1.2955 2.5874 sp2 C 5 memb.ring in purines
+-CM 12.01 1.2955 2.5874 sp2 C pyrimidines in pos. 5 & 6
+-CN 12.01 1.2955 2.5874 sp2 C aromatic 5&6 memb.ring junct.(TRP)
+-CQ 12.01 1.2955 2.5874 sp2 C in 5 mem.ring of purines between 2 N
+-CR 12.01 1.2955 2.5874 sp2 arom as CQ but in HIS
+-CT 12.01 0.9399 2.5874 sp3 aliphatic C
+-CV 12.01 1.2955 2.5874 sp2 arom. 5 memb.ring w/1 N and 1 H (HIS)
+-CW 12.01 1.2955 2.5874 sp2 arom. 5 memb.ring w/1 N-H and 1 H (HIS)
+-C* 12.01 1.2955 2.5874 sp2 arom. 5 memb.ring w/1 subst. (TRP)
+-CY 12.01 1.3916 2.5874 nitrile C (Howard et al.JCC,16,243,1995)
+-CZ 12.01 1.3916 2.5874 sp C (Howard et al.JCC,16,243,1995)
+-C0 40.08 calcium
+-H 1.008 0.4255 2.5874 H bonded to nitrogen atoms
+-H0 1.008 0.4255 2.5874 for Gly only
+-HC 1.008 0.4255 2.5874 H aliph. bond. to C without electrwd.group
+-H1 1.008 0.4255 2.5874 H aliph. bond. to C with 1 electrwd. group
+-H2 1.008 0.4255 2.5874 H aliph. bond. to C with 2 electrwd.groups
+-H3 1.008 0.4255 2.5874 H aliph. bond. to C with 3 eletrwd.groups
+-HA 1.008 0.4255 2.5874 H arom. bond. to C without elctrwd. groups
+-H4 1.008 0.4255 2.5874 H arom. bond. to C with 1 electrwd. group
+-H5 1.008 0.4255 2.5874 H arom.at C with 2 elctrwd. gr,+HCOO group
+-HO 1.008 0.4255 2.5874 hydroxyl group
+-HS 1.008 0.4255 2.5874 hydrogen bonded to sulphur (pol?)
+-HW 1.008 0.1700 2.4410 H in POL3 water
+-HP 1.008 0.4255 2.5874 H bonded to C next to positively charged gr
+-HZ 1.008 0.4255 2.5874 H bond sp C (Howard et al.JCC,16,243,1995)
+-F 19.00 0.4839 2.5874 fluorine
+-Cl 35.45 2.3707 2.5874 chlorine
+-IM 35.45 2.3707 2.5874 assumed to be Cl- (ion minus)
+-Br 79.90 3.5016 2.5874 bromine
+-I 126.9 5.5787 2.5874 iodine
+-IB 131.0 'big ion w/ waters' for vacuum (Na+, 6H2O)
+-MG 24.305 0.120 2.5874 magnesium
+-N 14.01 0.9603 2.5874 sp2 nitrogen in amide groups
+-NA 14.01 0.9603 2.5874 sp2 N in 5 memb.ring w/H atom (HIS)
+-NB 14.01 0.9603 2.5874 sp2 N in 5 memb.ring w/LP (HIS,ADE,GUA)
+-NC 14.01 0.9603 2.5874 sp2 N in 6 memb.ring w/LP (ADE,GUA)
+-N2 14.01 0.9603 2.5874 sp2 N in amino groups
+-N3 14.01 0.9603 2.5874 sp3 N for charged amino groups (Lys, etc)
+-NT 14.01 0.9603 2.5874 sp3 N for amino groups amino groups
+-N* 14.01 0.9603 2.5874 sp2 N
+-NY 14.01 0.9603 2.5874 nitrile N (Howard et al.JCC,16,243,1995)
+-O 16.00 0.6049 2.5874 carbonyl group oxygen
+-O2 16.00 0.6049 2.5874 carboxyl and phosphate group oxygen
+-OW 16.00 0.5280 2.4410 oxygen in POL3 water
+-OH 16.00 0.6148 2.5874 oxygen in hydroxyl group
+-OS 16.00 0.6148 2.5874 ether and ester oxygen
+-P 30.97 1.7927 2.5874 phosphate,pol:JACS,112,8543,90,K.J.Miller
+-S 32.06 3.1686 2.5874 S in disulfide linkage,pol:JPC,102,2399,98
+-SH 32.06 3.1686 2.5874 S in cystine
+-S4 32.06 2.3149 2.5874 S
+-CU 63.55 copper
+-FE 55.00 iron
+-Li 6.94 0.029 2.5874 lithium, ions pol:J.PhysC,11,1541,(1978)
+-IP 22.99 0.250 2.5874 assumed to be Na+ (ion plus)
+-Na 22.99 0.250 2.5874 Na+, ions pol:J.PhysC,11,1541,(1978)
+-K 39.10 1.060 2.5874 potassium
+-Rb 85.47 rubidium
+-Cs 132.91 cesium
+-Zn 65.4 Zn2+
+-LP 3.00 0.000 lone pair
+-
+-C H HO N NA NB NC N2 NT N2 N3 N* O OH OS P O2
+-OW-HW 320.0 1.0000 ! POL3, SPC/E water
+-HW-HW 553.0 1.6330 POL3, SPC/E water
+-C -C 310.0 1.525 Junmei et al, 1999
+-C -CA 469.0 1.409 JCC,7,(1986),230; (not used any more in TYR)
+-C -CB 447.0 1.419 JCC,7,(1986),230; GUA
+-C -CM 410.0 1.444 JCC,7,(1986),230; THY,URA
+-C -CT 317.0 1.522 JCC,7,(1986),230; AA
+-C -N 490.0 1.335 JCC,7,(1986),230; AA
+-C -N* 424.0 1.383 JCC,7,(1986),230; CYT,URA
+-C -NA 418.0 1.388 JCC,7,(1986),230; GUA.URA
+-C -NC 457.0 1.358 JCC,7,(1986),230; CYT
+-C -O 570.0 1.229 JCC,7,(1986),230; AA,CYT,GUA,THY,URA
+-C -O2 656.0 1.250 JCC,7,(1986),230; GLU,ASP
+-C -OH 450.0 1.364 JCC,7,(1986),230; (not used any more for TYR)
+-C -OS 450.0 1.323 Junmei et al, 1999
+-C -H4 367.0 1.080 Junmei et al, 1999
+-C -H5 367.0 1.080 Junmei et al, 1999
+-CA-CA 469.0 1.400 JCC,7,(1986),230; BENZENE,PHE,TRP,TYR
+-CA-CB 469.0 1.404 JCC,7,(1986),230; ADE,TRP
+-CA-CM 427.0 1.433 JCC,7,(1986),230; CYT
+-CA-CN 469.0 1.400 JCC,7,(1986),230; TRP
+-CA-CT 317.0 1.510 JCC,7,(1986),230; PHE,TYR
+-CA-HA 367.0 1.080 changed from 340. bsd on C6H6 nmodes; PHE,TRP,TYR
+-CA-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes; no assigned
+-CA-N2 481.0 1.340 JCC,7,(1986),230; ARG,CYT,GUA
+-CA-NA 427.0 1.381 JCC,7,(1986),230; GUA
+-CA-NC 483.0 1.339 JCC,7,(1986),230; ADE,CYT,GUA
+-CA-OH 450.0 1.364 substituted for C-OH in tyr
+-CB-CB 520.0 1.370 JCC,7,(1986),230; ADE,GUA
+-CB-N* 436.0 1.374 JCC,7,(1986),230; ADE,GUA
+-CB-NB 414.0 1.391 JCC,7,(1986),230; ADE,GUA
+-CB-NC 461.0 1.354 JCC,7,(1986),230; ADE,GUA
+-CD-HA 367.0 1.080 Junmei et al, 1999
+-CD-CD 469.0 1.400 Junmei et al, 1999
+-CD-CM 549.0 1.350 Junmei et al, 1999
+-CD-CT 317.0 1.510 Junmei et al, 1999
+-CK-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes; ADE,GUA
+-CK-N* 440.0 1.371 JCC,7,(1986),230; ADE,GUA
+-CK-NB 529.0 1.304 JCC,7,(1986),230; ADE,GUA
+-CM-CM 549.0 1.350 JCC,7,(1986),230; CYT,THY,URA
+-CM-CT 317.0 1.510 JCC,7,(1986),230; THY
+-CM-HA 367.0 1.080 changed from 340. bsd on C6H6 nmodes; CYT,URA
+-CM-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes; CYT,URA
+-CM-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes; not assigned
+-CM-N* 448.0 1.365 JCC,7,(1986),230; CYT,THY,URA
+-CM-OS 480.0 1.240 Junmei et al, 1999
+-CQ-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes; ADE
+-CQ-NC 502.0 1.324 JCC,7,(1986),230; ADE
+-CT-CT 310.0 1.526 JCC,7,(1986),230; AA, SUGARS
+-CT-HC 340.0 1.090 changed from 331 bsd on NMA nmodes; AA, SUGARS
+-CT-H0 340.0 1.090 changed from 331 bsd on NMA nmodes; AA, RIBOSE
+-CT-H1 340.0 1.090 changed from 331 bsd on NMA nmodes; AA, RIBOSE
+-CT-H2 340.0 1.090 changed from 331 bsd on NMA nmodes; SUGARS
+-CT-H3 340.0 1.090 changed from 331 bsd on NMA nmodes; not assigned
+-CT-HP 340.0 1.090 changed from 331; AA-lysine, methyl ammonium cation
+-CT-N* 337.0 1.475 JCC,7,(1986),230; ADE,CYT,GUA,THY,URA
+-CT-N2 337.0 1.463 JCC,7,(1986),230; ARG
+-CT-OH 320.0 1.410 JCC,7,(1986),230; SUGARS
+-CT-OS 320.0 1.410 JCC,7,(1986),230; NUCLEIC ACIDS
+-C*-HC 367.0 1.080 changed from 340. bsd on C6H6 nmodes, not needed AA
+-C*-CB 388.0 1.459 JCC,7,(1986),230; TRP
+-C*-CT 317.0 1.495 JCC,7,(1986),230; TRP
+-C*-CW 546.0 1.352 JCC,7,(1986),230; TRP
+-CB-CN 447.0 1.419 JCC,7,(1986),230; TRP
+-CC-CT 317.0 1.504 JCC,7,(1986),230; HIS
+-CC-CV 512.0 1.375 JCC,7,(1986),230; HIS(delta)
+-CC-CW 518.0 1.371 JCC,7,(1986),230; HIS(epsilon)
+-CC-NA 422.0 1.385 JCC,7,(1986),230; HIS
+-CC-NB 410.0 1.394 JCC,7,(1986),230; HIS
+-CN-NA 428.0 1.380 JCC,7,(1986),230; TRP
+-CR-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes;HIS
+-CR-NA 477.0 1.343 JCC,7,(1986),230; HIS
+-CR-NB 488.0 1.335 JCC,7,(1986),230; HIS
+-CT-N 337.0 1.449 JCC,7,(1986),230; AA
+-CT-N3 367.0 1.471 JCC,7,(1986),230; LYS
+-CT-NT 367.0 1.471 for neutral amines
+-CT-S 227.0 1.810 changed from 222.0 based on dimethylS nmodes
+-CT-SH 237.0 1.810 changed from 222.0 based on methanethiol nmodes
+-CT-CY 400.0 1.458 Howard et al JCC.16,243,1995
+-CT-CZ 400.0 1.459 Howard et al JCC,16,243,1995
+-CV-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes; HIS
+-CV-NB 410.0 1.394 JCC,7,(1986),230; HIS
+-CW-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes;HIS(epsilon,+)
+-CW-NA 427.0 1.381 JCC,7,(1986),230; HIS,TRP
+-CY-NY 600.0 1.150 Howard et al JCC,16,243,1995
+-CZ-CZ 600.0 1.206 Howard et al JCC,16,243,1995
+-CZ-HZ 400.0 1.056 Howard et al JCC,16,243,1995
+-O2-P 525.0 1.480 JCC,7,(1986),230; NA PHOSPHATES
+-OH-P 230.0 1.610 JCC,7,(1986),230; NA PHOSPHATES
+-OS-P 230.0 1.610 JCC,7,(1986),230; NA PHOSPHATES
+-H -N2 434.0 1.010 JCC,7,(1986),230; ADE,CYT,GUA,ARG
+-H -N* 434.0 1.010 for plain unmethylated bases ADE,CYT,GUA,ARG
+-H -NA 434.0 1.010 JCC,7,(1986),230; GUA,URA,HIS
+-H -N 434.0 1.010 JCC,7,(1986),230; AA
+-H -N3 434.0 1.010 JCC,7,(1986),230; LYS
+-H -NT 434.0 1.010 for neutral amines
+-HO-OH 553.0 0.960 JCC,7,(1986),230; SUGARS,SER,TYR
+-HO-OS 553.0 0.960 JCC,7,(1986),230; NUCLEOTIDE ENDS
+-HS-SH 274.0 1.336 JCC,7,(1986),230; CYS
+-S -S 166.0 2.038 JCC,7,(1986),230; CYX (SCHERAGA)
+-F -CT 367.0 1.380 JCC,13,(1992),963;CF4; R0=1.332 FOR CHF3
+-Cl-CT 232.0 1.766 6-31g* opt
+-Br-CT 159.0 1.944 Junmei et al,99
+-I -CT 148.0 2.166 Junmei et al,99
+-F -CA 386.0 1.359 Junmei et al,99
+-Cl-CA 193.0 1.727 Junmei et al,99
+-I -CA 171.0 2.075 Junmei et al,99
+-Br-CA 172.0 1.890 Junmei et al,99
+-LP-O 600.0 0.200 or 0.35
+-LP-OH 600.0 0.200 or 0.35
+-LP-OS 600.0 0.200 or 0.35
+-LP-N3 600.0 0.200 or 0.35
+-LP-NT 600.0 0.200 or 0.35
+-LP-NB 600.0 0.200 or 0.35 histidines, nucleic acids
+-LP-NC 600.0 0.200 or 0.35 nucleic acids
+-LP-S 600.0 0.700 cys,cyx,met
+-LP-SH 600.0 0.700 cys,cyx
+-
+-HW-OW-HW 100. 104.52 TIP3P water
+-HW-HW-OW 0. 127.74 (found in crystallographic water with 3 bonds)
+-C -C -O 80.0 120.00 Junmei et al, 1999 acrolein
+-C -C -OH 80.0 120.00 Junmei et al, 1999
+-CA-C -CA 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes; AA
+-CA-C -OH 70.0 120.00 AA (not used in tyr)
+-CB-C -NA 70.0 111.30 NA
+-CB-C -O 80.0 128.80
+-CM-C -NA 70.0 114.10
+-CM-C -O 80.0 125.30
+-CT-C -O 80.0 120.40
+-CT-C -O2 70.0 117.00
+-CT-C -N 70.0 116.60 AA general
+-CT-C -CT 63.0 117.00 Junmei et al, 1999
+-CT-C -OS 80.0 115.00 Junmei et al, 1999
+-CT-C -OH 80.0 110.00 Junmei et al, 1999
+-N*-C -NA 70.0 115.40
+-N*-C -NC 70.0 118.60
+-N*-C -O 80.0 120.90
+-NA-C -O 80.0 120.60
+-NC-C -O 80.0 122.50
+-N -C -O 80.0 122.90 AA general
+-O -C -O 80.0 126.00 AA COO- terminal residues
+-O -C -OH 80.0 120.00 (check with Junmei for: theta0:120.0?)
+-O -C -OS 80.0 125.00 Junmei et al, 1999
+-O2-C -O2 80.0 126.00 AA GLU (SCH JPC 79,2379)
+-H4-C -C 50.0 120.00 Junmei et al, 1999
+-H4-C -CM 50.0 115.00 Junmei et al, 1999
+-H4-C -CT 50.0 115.00 Junmei et al, 1999
+-H4-C -O 50.0 120.00 Junmei et al, 1999
+-H4-C -OH 50.0 120.00 Junmei et al, 1999
+-H5-C -N 50.0 120.00 Junmei et al, 1999
+-H5-C -O 50.0 119.00 Junmei et al, 1999
+-H5-C -OH 50.0 107.00 Junmei et al, 1999
+-H5-C -OS 50.0 107.00 Junmei et al, 1999
+-C -CA-CA 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes
+-C -CA-HA 50.0 120.00 AA (not used in tyr)
+-CA-CA-CA 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes
+-CA-CA-CB 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes
+-CA-CA-CT 70.0 120.00
+-CA-CA-HA 50.0 120.00
+-CA-CA-H4 50.0 120.00
+-CA-CA-OH 70.0 120.00 replacement in tyr
+-CA-CA-CN 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes; AA trp
+-CB-CA-HA 50.0 120.00
+-CB-CA-H4 50.0 120.00
+-CB-CA-N2 70.0 123.50
+-CB-CA-NC 70.0 117.30
+-CM-CA-N2 70.0 120.10
+-CM-CA-NC 70.0 121.50
+-CN-CA-HA 50.0 120.00 AA trp
+-NA-CA-NC 70.0 123.30
+-N2-CA-NA 70.0 116.00
+-N2-CA-NC 70.0 119.30
+-N2-CA-N2 70.0 120.00 AA arg
+-F -CA-CA 70.0 121.00 Junmei et al,99
+-Cl-CA-CA 70.0 118.80 Junmei et al,99
+-Br-CA-CA 70.0 118.80 Junmei et al,99
+-I -CA-CA 70.0 118.80 Junmei et al,99
+-C -CB-CB 63.0 119.20 changed from 85.0 bsd on C6H6 nmodes; NA gua
+-C -CB-NB 70.0 130.00
+-CA-CB-CB 63.0 117.30 changed from 85.0 bsd on C6H6 nmodes; NA ade
+-CA-CB-NB 70.0 132.40
+-CB-CB-N* 70.0 106.20
+-CB-CB-NB 70.0 110.40
+-CB-CB-NC 70.0 127.70
+-C*-CB-CA 63.0 134.90 changed from 85.0 bsd on C6H6 nmodes; AA trp
+-C*-CB-CN 63.0 108.80 changed from 85.0 bsd on C6H6 nmodes; AA trp
+-CA-CB-CN 63.0 116.20 changed from 85.0 bsd on C6H6 nmodes; AA trp
+-N*-CB-NC 70.0 126.20
+-CD-CD-CM 63.0 120.00 Junmei et al, 1999
+-CD-CD-CT 70.0 120.00 Junmei et al, 1999
+-CM-CD-CT 70.0 120.00 Junmei et al, 1999
+-HA-CD-HA 35.0 119.00 Junmei et al, 1999
+-HA-CD-CD 50.0 120.00 Junmei et al, 1999
+-HA-CD-CM 50.0 120.00 Junmei et al, 1999
+-H5-CK-N* 50.0 123.05
+-H5-CK-NB 50.0 123.05
+-N*-CK-NB 70.0 113.90
+-C -CM-CM 63.0 120.70 changed from 85.0 bsd on C6H6 nmodes; NA thy
+-C -CM-CT 70.0 119.70
+-C -CM-HA 50.0 119.70
+-C -CM-H4 50.0 119.70
+-CA-CM-CM 63.0 117.00 changed from 85.0 bsd on C6H6 nmodes; NA cyt
+-CA-CM-HA 50.0 123.30
+-CA-CM-H4 50.0 123.30
+-CM-CM-CT 70.0 119.70
+-CM-CM-HA 50.0 119.70
+-CM-CM-H4 50.0 119.70
+-CM-CM-N* 70.0 121.20
+-CM-CM-OS 80.0 125.00 Junmei et al, 1999
+-H4-CM-N* 50.0 119.10
+-H4-CM-OS 50.0 113.00 Junmei et al, 1999
+-HA-CM-HA 35.0 120.00 Junmei et al, 1999
+-HA-CM-CD 50.0 120.00 Junmei et al, 1999
+-HA-CM-CT 50.0 120.00 Junmei et al, 1999
+-NC-CQ-NC 70.0 129.10
+-H5-CQ-NC 50.0 115.45
+-H0-CT-H0 35.0 109.50
+-H0-CT-N 50.0 109.50 AA general changed based on NMA nmodes
+-C -CT-H0 50.0 109.50 AA general changed based on NMA nmodes
+-H1-CT-H1 35.0 109.50
+-H1-CT-N* 50.0 109.50 changed based on NMA nmodes
+-H1-CT-OH 50.0 109.50 changed based on NMA nmodes
+-H1-CT-OS 50.0 109.50 changed based on NMA nmodes
+-H1-CT-CM 50.0 109.50 Junmei et al, 1999
+-H1-CT-CY 50.0 110.00 Junmei et al, 1999
+-H1-CT-CZ 50.0 110.00 Junmei et al, 1999
+-H1-CT-N 50.0 109.50 AA general changed based on NMA nmodes
+-H1-CT-S 50.0 109.50 AA cys changed based on NMA nmodes
+-H1-CT-SH 50.0 109.50 AA cyx changed based on NMA nmodes
+-H1-CT-N2 50.0 109.50 AA arg changed based on NMA nmodes
+-H1-CT-NT 50.0 109.50 neutral amines
+-H2-CT-H2 35.0 109.50 AA lys
+-H2-CT-N* 50.0 109.50 changed based on NMA nmodes
+-H2-CT-OS 50.0 109.50 changed based on NMA nmodes
+-HP-CT-HP 35.0 109.50 AA lys, ch3nh4+
+-HP-CT-N3 50.0 109.50 AA lys, ch3nh3+, changed based on NMA nmodes
+-HC-CT-HC 35.0 109.50
+-HC-CT-CM 50.0 109.50 changed based on NMA nmodes
+-HC-CT-CD 50.0 109.50 Junmei et al, 1999
+-HC-CT-CZ 50.0 110.00 Junmei et al, 1999
+-C -CT-H1 50.0 109.50 AA general changed based on NMA nmodes
+-C -CT-HP 50.0 109.50 AA zwitterion changed based on NMA nmodes
+-C -CT-HC 50.0 109.50 AA gln changed based on NMA nmodes
+-C -CT-N 63.0 110.10 AA general
+-C -CT-N3 80.0 111.20 AA amino terminal residues
+-C -CT-CT 63.0 111.10 AA general
+-C -CT-OS 60.0 109.50 Junmei et al, 1999
+-CA-CT-HC 50.0 109.50 AA tyr changed based on NMA nmodes
+-CC-CT-CT 63.0 113.10 AA his
+-CC-CT-HC 50.0 109.50 AA his changed based on NMA nmodes
+-CM-CT-CT 63.0 111.00 Junmei et al, 1999 (last change: Mar24,99)
+-CM-CT-OS 50.0 109.50 Junmei et al, 1999
+-CT-CT-CT 40.0 109.50
+-CT-CT-HC 50.0 109.50 changed based on NMA nmodes
+-CT-CT-H1 50.0 109.50 changed based on NMA nmodes
+-CT-CT-H2 50.0 109.50 changed based on NMA nmodes
+-CT-CT-HP 50.0 109.50 changed based on NMA nmodes
+-CT-CT-N* 50.0 109.50
+-CT-CT-OH 50.0 109.50
+-CT-CT-OS 50.0 109.50
+-CT-CT-S 50.0 114.70 AA cyx (SCHERAGA JPC 79,1428)
+-CT-CT-SH 50.0 108.60 AA cys
+-CT-CT-CA 63.0 114.00 AA phe tyr (SCH JPC 79,2379)
+-CT-CT-N2 80.0 111.20 AA arg (JCP 76, 1439)
+-CT-CT-N 80.0 109.70 AA ala, general (JACS 94, 2657)
+-CT-CT-N3 80.0 111.20 AA lys (JCP 76, 1439)
+-CT-CT-NT 80.0 111.20 neutral amines
+-CT-CT-CY 63.0 110.00 Junmei et al, 1999
+-CT-CT-CZ 63.0 110.00 Junmei et al, 1999
+-C*-CT-CT 63.0 115.60 AA trp
+-C*-CT-HC 50.0 109.50 AA trp changed based on NMA nmodes
+-OS-CT-OS 160.0 101.00 Junmei et al, 1999
+-OS-CT-CY 50.0 110.00 Junmei et al, 1999
+-OS-CT-CZ 50.0 110.00 Junmei et al, 1999
+-OS-CT-N* 50.0 109.50
+-F -CT-F 77.0 109.10 JCC,13,(1992),963;
+-F -CT-H1 50.0 109.50 JCC,13,(1992),963;
+-F -CT-CT 50.0 109.00
+-F -CT-H2 50.0 109.50
+-Cl-CT-CT 50.0 108.50 (6-31g* opt value)
+-Cl-CT-H1 50.0 108.50 (6-31g* opt value)
+-Br-CT-CT 50.0 108.00 Junmei et al 99
+-Br-CT-H1 50.0 106.50 Junmei et al 99
+-I -CT-CT 50.0 106.00 Junmei et al,99
+-CT-CC-NA 70.0 120.00 AA his
+-CT-CC-CV 70.0 120.00 AA his
+-CT-CC-NB 70.0 120.00 AA his
+-CV-CC-NA 70.0 120.00 AA his
+-CW-CC-NA 70.0 120.00 AA his
+-CW-CC-NB 70.0 120.00 AA his
+-CT-CC-CW 70.0 120.00 AA his
+-H5-CR-NA 50.0 120.00 AA his
+-H5-CR-NB 50.0 120.00 AA his
+-NA-CR-NA 70.0 120.00 AA his
+-NA-CR-NB 70.0 120.00 AA his
+-CC-CV-H4 50.0 120.00 AA his
+-CC-CV-NB 70.0 120.00 AA his
+-H4-CV-NB 50.0 120.00 AA his
+-CC-CW-H4 50.0 120.00 AA his
+-CC-CW-NA 70.0 120.00 AA his
+-C*-CW-H4 50.0 120.00 AA trp
+-C*-CW-NA 70.0 108.70 AA trp
+-H4-CW-NA 50.0 120.00 AA his
+-CB-C*-CT 70.0 128.60 AA trp
+-CB-C*-CW 63.0 106.40 changed from 85.0 bsd on C6H6 nmodes; AA trp
+-CT-C*-CW 70.0 125.00 AA trp
+-CA-CN-CB 63.0 122.70 changed from 85.0 bsd on C6H6 nmodes; AA trp
+-CA-CN-NA 70.0 132.80 AA trp
+-CB-CN-NA 70.0 104.40 AA trp
+-CT-CY-NY 80.0 180.00 Junmei et al, 1999
+-CT-CZ-CZ 80.0 180.00 Junmei et al, 1999
+-CZ-CZ-HZ 50.0 180.00 Junmei et al, 1999
+-C -N -CT 50.0 121.90 AA general
+-C -N -H 50.0 120.00 AA general, gln, asn,changed based on NMA nmodes
+-CT-N -H 50.0 118.04 AA general, changed based on NMA nmodes
+-CT-N -CT 50.0 118.00 AA pro (DETAR JACS 99,1232)
+-H -N -H 35.0 120.00 ade,cyt,gua,gln,asn **
+-C -N*-CM 70.0 121.60
+-C -N*-CT 70.0 117.60
+-C -N*-H 50.0 119.20 changed based on NMA nmodes
+-CB-N*-CK 70.0 105.40
+-CB-N*-CT 70.0 125.80
+-CB-N*-H 50.0 125.80 for unmethylated n.a. bases,chngd bsd NMA nmodes
+-CK-N*-CT 70.0 128.80
+-CK-N*-H 50.0 128.80 for unmethylated n.a. bases,chngd bsd NMA nmodes
+-CM-N*-CT 70.0 121.20
+-CM-N*-H 50.0 121.20 for unmethylated n.a. bases,chngd bsd NMA nmodes
+-CA-N2-H 50.0 120.00
+-CA-N2-CT 50.0 123.20 AA arg
+-CT-N2-H 50.0 118.40 AA arg
+-H -N2-H 35.0 120.00
+-CT-N3-H 50.0 109.50 AA lys, changed based on NMA nmodes
+-CT-N3-CT 50.0 109.50 AA pro/nt
+-H -N3-H 35.0 109.50 AA lys, AA(end)
+-CT-NT-H 50.0 109.50 neutral amines
+-CT-NT-CT 50.0 109.50 neutral amines
+-H -NT-H 35.0 109.50 neutral amines
+-C -NA-C 70.0 126.40
+-C -NA-CA 70.0 125.20
+-C -NA-H 50.0 116.80 changed based on NMA nmodes
+-CA-NA-H 50.0 118.00 changed based on NMA nmodes
+-CC-NA-CR 70.0 120.00 AA his
+-CC-NA-H 50.0 120.00 AA his, changed based on NMA nmodes
+-CR-NA-CW 70.0 120.00 AA his
+-CR-NA-H 50.0 120.00 AA his, changed based on NMA nmodes
+-CW-NA-H 50.0 120.00 AA his, changed based on NMA nmodes
+-CN-NA-CW 70.0 111.60 AA trp
+-CN-NA-H 50.0 123.10 AA trp, changed based on NMA nmodes
+-CB-NB-CK 70.0 103.80
+-CC-NB-CR 70.0 117.00 AA his
+-CR-NB-CV 70.0 117.00 AA his
+-C -NC-CA 70.0 120.50
+-CA-NC-CB 70.0 112.20
+-CA-NC-CQ 70.0 118.60
+-CB-NC-CQ 70.0 111.00
+-C -OH-HO 50.0 113.00 (not used in tyr anymore)
+-CA-OH-HO 50.0 113.00 replacement in tyr
+-CT-OH-HO 55.0 108.50
+-HO-OH-P 45.0 108.50
+-C -OS-CT 60.0 117.00 Junmei et al, 1999
+-CM-OS-CT 60.0 117.00 Junmei et al, 1999
+-CT-OS-CT 60.0 109.50
+-CT-OS-P 100.0 120.50
+-P -OS-P 100.0 120.50
+-O2-P -OH 45.0 108.23
+-O2-P -O2 140.0 119.90
+-O2-P -OS 100.0 108.23
+-OH-P -OS 45.0 102.60
+-OS-P -OS 45.0 102.60
+-CT-S -CT 62.0 98.90 AA met
+-CT-S -S 68.0 103.70 AA cyx (SCHERAGA JPC 79,1428)
+-CT-SH-HS 43.0 96.00 changed from 44.0 based on methanethiol nmodes
+-HS-SH-HS 35.0 92.07 AA cys
+-CB-NB-LP 150.0 126.0 NA
+-CC-NB-LP 150.0 126.0 his,NA
+-CK-NB-LP 150.0 126.0 NA
+-CR-NB-LP 150.0 126.0 his,NA
+-CV-NB-LP 150.0 126.0 his,NA
+-C -NC-LP 150.0 120.0 NA
+-CA-NC-LP 150.0 120.0 NA
+-CB-NC-LP 150.0 120.0 NA
+-CQ-NC-LP 150.0 120.0 NA
+-CT-N3-LP 150.0 109.5 in neutral lysine
+-H -N3-LP 150.0 109.5 in neutral lysine
+-CT-NT-LP 150.0 109.5
+-H -NT-LP 150.0 109.5
+-C -O -LP 150.0 120.0
+-LP-O -LP 150.0 120.0
+-C -OH-LP 150.0 120.0
+-CT-OH-LP 150.0 109.5
+-HO-OH-LP 150.0 109.5
+-LP-OH-LP 150.0 109.5
+-C -OS-LP 150.0 109.5
+-CM-OS-LP 150.0 109.5 methyl vinyl ether
+-CT-OS-LP 150.0 109.5
+-LP-OS-LP 150.0 109.5
+-CT-S -LP 150.0 90.0 cys,cyx,met
+-CT-SH-LP 150.0 90.0 cys,cyx,met
+-P -OS-LP 150.0 109.5 NA
+-LP-S -LP 150.0 180.0 cys,cyx,met
+-LP-SH-LP 150.0 180.0 cys,cyx,met
+-HS-SH-LP 150.0 90.0 cys
+-
+-X -C -C -X 4 14.50 180.0 2. Junmei et al, 1999
+-X -C -CA-X 4 14.50 180.0 2. intrpol.bsd.on C6H6
+-X -C -CB-X 4 12.00 180.0 2. intrpol.bsd.on C6H6
+-X -C -CM-X 4 8.70 180.0 2. intrpol.bsd.on C6H6
+-X -C -CT-X 6 0.00 0.0 2. JCC,7,(1986),230
+-X -C -N -X 4 10.00 180.0 2. AA,NMA
+-X -C -N*-X 4 5.80 180.0 2. JCC,7,(1986),230
+-X -C -NA-X 4 5.40 180.0 2. JCC,7,(1986),230
+-X -C -NC-X 2 8.00 180.0 2. JCC,7,(1986),230
+-X -C -O -X 4 11.20 180.0 2. Junmei et al, 1999
+-X -C -OH-X 2 4.60 180.0 2. Junmei et al, 1999
+-X -C -OS-X 2 5.40 180.0 2. Junmei et al, 1999
+-X -CA-CA-X 4 14.50 180.0 2. intrpol.bsd.on C6H6
+-X -CA-CB-X 4 14.00 180.0 2. intrpol.bsd.on C6H6
+-X -CA-CM-X 4 10.20 180.0 2. intrpol.bsd.on C6H6
+-X -CA-CN-X 4 14.50 180.0 2. reinterpolated 93'
+-X -CA-CT-X 6 0.00 0.0 2. JCC,7,(1986),230
+-X -CA-N2-X 4 9.60 180.0 2. reinterpolated 93'
+-X -CA-NA-X 4 6.00 180.0 2. JCC,7,(1986),230
+-X -CA-NC-X 2 9.60 180.0 2. JCC,7,(1986),230
+-X -CA-OH-X 2 1.80 180.0 2. Junmei et al, 99
+-X -CB-CB-X 4 21.80 180.0 2. intrpol.bsd.on C6H6
+-X -CB-CN-X 4 12.00 180.0 2. reinterpolated 93'
+-X -CB-N*-X 4 6.60 180.0 2. JCC,7,(1986),230
+-X -CB-NB-X 2 5.10 180.0 2. JCC,7,(1986),230
+-X -CB-NC-X 2 8.30 180.0 2. JCC,7,(1986),230
+-X -CC-CT-X 6 0.00 0.0 2. JCC,7,(1986),230
+-X -CC-CV-X 4 20.60 180.0 2. intrpol.bsd.on C6H6
+-X -CC-CW-X 4 21.50 180.0 2. intrpol.bsd.on C6H6
+-X -CC-NA-X 4 5.60 180.0 2. JCC,7,(1986),230
+-X -CC-NB-X 2 4.80 180.0 2. JCC,7,(1986),230
+-X -CD-CD-X 4 4.00 180.0 2. Junmei et al, 1999
+-X -CD-CT-X 6 0.00 0.0 2. Junmei et al, 1999
+-X -CD-CM-X 4 26.60 180.0 2. Junmei et al, 1999
+-X -CK-N*-X 4 6.80 180.0 2. JCC,7,(1986),230
+-X -CK-NB-X 2 20.00 180.0 2. JCC,7,(1986),230
+-X -CM-CM-X 4 26.60 180.0 2. intrpol.bsd.on C6H6
+-X -CM-CT-X 6 0.00 0.0 3. JCC,7,(1986),230
+-X -CM-N*-X 4 7.40 180.0 2. JCC,7,(1986),230
+-X -CM-OS-X 2 2.10 180.0 2. Junmei et al, 1999
+-X -CN-NA-X 4 6.10 180.0 2. reinterpolated 93'
+-X -CQ-NC-X 2 13.60 180.0 2. JCC,7,(1986),230
+-X -CT-CT-X 9 1.40 0.0 3. JCC,7,(1986),230
+-X -CT-CY-X 3 0.00 0.0 1. Junmei et al, 1999
+-X -CT-CZ-X 3 0.00 0.0 1. Junmei et al, 1999
+-X -CT-N -X 6 0.00 0.0 2. JCC,7,(1986),230
+-X -CT-N*-X 6 0.00 0.0 2. JCC,7,(1986),230
+-X -CT-N2-X 6 0.00 0.0 3. JCC,7,(1986),230
+-X -CT-NT-X 6 1.80 0.0 3. Junmei et al, 1999
+-X -CT-N3-X 9 1.40 0.0 3. JCC,7,(1986),230
+-X -CT-OH-X 3 0.50 0.0 3. JCC,7,(1986),230
+-X -CT-OS-X 3 1.15 0.0 3. JCC,7,(1986),230
+-X -CT-S -X 3 1.00 0.0 3. JCC,7,(1986),230
+-X -CT-SH-X 3 0.75 0.0 3. JCC,7,(1986),230
+-X -C*-CB-X 4 6.70 180.0 2. intrpol.bsd.onC6H6aa
+-X -C*-CT-X 6 0.00 0.0 2. JCC,7,(1986),230
+-X -C*-CW-X 4 26.10 180.0 2. intrpol.bsd.on C6H6
+-X -CR-NA-X 4 9.30 180.0 2. JCC,7,(1986),230
+-X -CR-NB-X 2 10.00 180.0 2. JCC,7,(1986),230
+-X -CV-NB-X 2 4.80 180.0 2. JCC,7,(1986),230
+-X -CW-NA-X 4 6.00 180.0 2. JCC,7,(1986),230
+-X -OH-P -X 3 0.75 0.0 3. JCC,7,(1986),230
+-X -OS-P -X 3 0.75 0.0 3. JCC,7,(1986),230
+-N -CT-C -N 1 1.700 180.000 -1.
+-N -CT-C -N 1 2.000 180.000 2.
+-C -N -CT-C 1 0.850 180.000 -2.
+-C -N -CT-C 1 0.800 0.000 1.
+-CT-CT-N -C 1 0.50 180.0 -4. phi,psi,parm94
+-CT-CT-N -C 1 0.15 180.0 -3. phi,psi,parm94
+-CT-CT-N -C 1 0.00 0.0 -2. JCC,7,(1986),230
+-CT-CT-N -C 1 0.53 0.0 1. phi,psi,parm94
+-CT-CT-C -N 1 0.100 0.0 -4. phi,psi,parm94
+-CT-CT-C -N 1 0.07 0.0 2. phi,psi,parm94
+-H -N -C -O 1 2.50 180.0 -2. JCC,7,(1986),230
+-H -N -C -O 1 2.00 0.0 1. J.C.cistrans-NMA DE
+-CT-S -S -CT 1 3.50 0.0 -2. JCC,7,(1986),230
+-CT-S -S -CT 1 0.60 0.0 3. JCC,7,(1986),230
+-OH-P -OS-CT 1 0.25 0.0 -3. JCC,7,(1986),230
+-OH-P -OS-CT 1 1.20 0.0 2. gg> ene.631g*/mp2
+-OS-P -OS-CT 1 0.25 0.0 -3. JCC,7,(1986),230
+-OS-P -OS-CT 1 1.20 0.0 2. gg> ene.631g*/mp2
+-H1-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999
+-H1-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
+-H1-CT-C -O 1 0.08 180.0 3. Junmei et al, 1999
+-HC-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999
+-HC-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
+-HC-CT-C -O 1 0.08 180.0 3. Junmei et al, 1999
+-HC-CT-CT-HC 1 0.15 0.0 3. Junmei et al, 1999
+-HC-CT-CT-CT 1 0.16 0.0 3. Junmei et al, 1999
+-HC-CT-CM-CM 1 0.38 180.0 -3. Junmei et al, 1999
+-HC-CT-CM-CM 1 1.15 0.0 1. Junmei et al, 1999
+-HO-OH-CT-CT 1 0.16 0.0 -3. Junmei et al, 1999
+-HO-OH-CT-CT 1 0.25 0.0 1. Junmei et al, 1999
+-HO-OH-C -O 1 2.30 180.0 -2. Junmei et al, 1999
+-HO-OH-C -O 1 0.00 0.0 1. Junmei et al, 2011, actyle acid density optimization
+-CM-CM-C -O 1 2.175 180.0 -2. Junmei et al, 1999
+-CM-CM-C -O 1 0.30 0.0 3. Junmei et al, 1999
+-CT-CM-CM-CT 1 6.65 180.0 -2. Junmei et al, 1999
+-CT-CM-CM-CT 1 1.90 180.0 1. Junmei et al, 1999
+-CT-CT-CT-CT 1 0.18 0.0 -3. Junmei et al, 1999
+-CT-CT-CT-CT 1 0.25 180.0 -2. Junmei et al, 1999
+-CT-CT-CT-CT 1 0.20 180.0 1. Junmei et al, 1999
+-CT-CT-NT-CT 1 0.30 0.0 -3. Junmei et al, 1999
+-CT-CT-NT-CT 1 0.48 180.0 2. Junmei et al, 1999
+-CT-CT-OS-CT 1 0.383 0.0 -3.
+-CT-CT-OS-CT 1 0.1 180.0 2.
+-CT-CT-OS-C 1 0.383 0.0 -3. Junmei et al, 1999
+-CT-CT-OS-C 1 0.80 180.0 1. Junmei et al, 1999
+-CT-OS-CT-OS 1 0.10 0.0 -3. Junmei et al, 1999
+-CT-OS-CT-OS 1 0.85 180.0 -2. Junmei et al, 1999
+-CT-OS-CT-OS 1 1.35 180.0 1. Junmei et al, 1999
+-CT-OS-CT-N* 1 0.383 0.0 -3. parm98.dat, TC,PC,PAK
+-CT-OS-CT-N* 1 0.65 0.0 2. Piotr et al.
+-CT-CZ-CZ-HZ 1 0.00 0.0 1. Junmei et al, 1999
+-O -C -OS-CT 1 2.70 180.0 -2. Junmei et al, 1999
+-O -C -OS-CT 1 1.40 180.0 1. Junmei et al, 1999
+-OS-CT-N*-CK 1 0.00 000.0 -2. parm98, TC,PC,PAK
+-OS-CT-N*-CK 1 2.50 0.0 1. parm98, TC,PC,PAK
+-OS-CT-N*-CM 1 0.00 000.0 -2. parm98, TC,PC,PAK
+-OS-CT-N*-CM 1 2.50 0.0 1. parm98, TC,PC,PAK
+-OS-CT-CT-OS 1 0.144 0.0 -3. parm98, TC,PC,PAK
+-OS-CT-CT-OS 1 1.175 0.0 2. Piotr et al.
+-OS-CT-CT-OH 1 0.144 0.0 -3. parm98, TC,PC,PAK
+-OS-CT-CT-OH 1 1.175 0.0 2. parm98, TC,PC,PAK
+-OH-CT-CT-OH 1 0.144 0.0 -3. parm98, TC,PC,PAK
+-OH-CT-CT-OH 1 1.175 0.0 2. parm98, TC,PC,PAK
+-F -CT-CT-F 1 0.000 0.0 -3. JCC,7,(1986),230
+-F -CT-CT-F 1 1.20 180.0 1. Junmei et al, 1999
+-Cl-CT-CT-Cl 1 0.000 0.0 -3. JCC,7,(1986),230
+-Cl-CT-CT-Cl 1 0.45 180.0 1. Junmei et al, 1999
+-Br-CT-CT-Br 1 0.000 0.0 -3. JCC,7,(1986),230
+-Br-CT-CT-Br 1 0.00 180.0 1. Junmei et al, 1999
+-H1-CT-CT-OS 1 0.000 0.0 -3. JCC,7,(1986),230
+-H1-CT-CT-OS 1 0.25 0.0 1. Junmei et al, 1999
+-H1-CT-CT-OH 1 0.000 0.0 -3. JCC,7,(1986),230
+-H1-CT-CT-OH 1 0.25 0.0 1. Junmei et al, 1999
+-H1-CT-CT-F 1 0.000 0.0 -3. JCC,7,(1986),230
+-H1-CT-CT-F 1 0.19 0.0 1. Junmei et al, 1999
+-H1-CT-CT-Cl 1 0.000 0.0 -3. JCC,7,(1986),230
+-H1-CT-CT-Cl 1 0.25 0.0 1. Junmei et al, 1999
+-H1-CT-CT-Br 1 0.000 0.0 -3. JCC,7,(1986),230
+-H1-CT-CT-Br 1 0.55 0.0 1. Junmei et al, 1999
+-HC-CT-CT-OS 1 0.000 0.0 -3. JCC,7,(1986),230
+-HC-CT-CT-OS 1 0.25 0.0 1. Junmei et al, 1999
+-HC-CT-CT-OH 1 0.000 0.0 -3. JCC,7,(1986),230
+-HC-CT-CT-OH 1 0.25 0.0 1. Junmei et al, 1999
+-HC-CT-CT-F 1 0.000 0.0 -3. JCC,7,(1986),230
+-HC-CT-CT-F 1 0.19 0.0 1. Junmei et al, 1999
+-HC-CT-CT-Cl 1 0.000 0.0 -3. JCC,7,(1986),230
+-HC-CT-CT-Cl 1 0.25 0.0 1. Junmei et al, 1999
+-HC-CT-CT-Br 1 0.000 0.0 -3. JCC,7,(1986),230
+-HC-CT-CT-Br 1 0.55 0.0 1. Junmei et al, 1999
+-H1-CT-NT-LP 1 0.000 0.000 3.
+-CT-CT-NT-LP 1 0.000 0.000 3.
+-CT-C -N -LP 1 0.000 180.000 2.
+-O -C -N -LP 1 0.000 180.000 2.
+-H1-CT-OH-LP 1 0.000 0.000 3.
+-CT-CT-OH-LP 1 0.000 0.000 3.
+-H1-CT-OS-LP 1 0.000 0.000 3.
+-H2-CT-OS-LP 1 0.000 0.000 3.
+-CT-CT-OS-LP 1 0.000 0.000 3.
+-CM-CM-OS-LP 1 0.000 180.000 2.
+-HA-CM-OS-LP 1 0.000 180.000 2.
+-H4-CM-OS-LP 1 0.000 180.000 2.
+-
+-X -X -C -O 10.5 180. 2. JCC,7,(1986),230
+-X -O2-C -O2 10.5 180. 2. JCC,7,(1986),230
+-X -X -N -H 1.0 180. 2. JCC,7,(1986),230
+-X -X -N2-H 1.0 180. 2. JCC,7,(1986),230
+-X -X -NA-H 1.0 180. 2. JCC,7,(1986),230
+-X -N2-CA-N2 10.5 180. 2. JCC,7,(1986),230
+-X -CT-N -CT 1.0 180. 2. JCC,7,(1986),230
+-X -X -CA-HA 1.1 180. 2. bsd.on C6H6 nmodes
+-X -X -CW-H4 1.1 180. 2.
+-X -X -CR-H5 1.1 180. 2.
+-X -X -CV-H4 1.1 180. 2.
+-X -X -CQ-H5 1.1 180. 2.
+-X -X -CK-H5 1.1 180. 2.
+-X -X -CM-H4 1.1 180. 2.
+-X -X -CM-HA 1.1 180. 2.
+-X -X -CA-H4 1.1 180. 2. bsd.on C6H6 nmodes
+-X -X -CA-H5 1.1 180. 2. bsd.on C6H6 nmodes
+-CB-CK-N*-CT 1.0 180. 2.
+-C -CM-N*-CT 1.0 180. 2. dac guess, 9/94
+-C -CM-CM-CT 1.1 180. 2.
+-CT-O -C -OH 10.5 180. 2.
+-CT-CV-CC-NA 1.1 180. 2.
+-CT-CW-CC-NB 1.1 180. 2.
+-CT-CW-CC-NA 1.1 180. 2.
+-CB-CT-C*-CW 1.1 180. 2.
+-CA-CA-CA-CT 1.1 180. 2.
+-C -CM-CM-CT 1.1 180. 2. dac guess, 9/94
+-CM-N2-CA-NC 1.1 180. 2. dac guess, 9/94
+-CB-N2-CA-NC 1.1 180. 2. dac, 10/94
+-N2-NA-CA-NC 1.1 180. 2. dac, 10/94
+-CA-CA-C -OH 1.1 180. 2. (not used in tyr!)
+-CA-CA-CA-OH 1.1 180. 2. in tyr
+-H5-O -C -OH 1.1 180. 2. Junmei et al.1999
+-H5-O -C -OS 1.1 180. 2.
+-CM-CT-CM-HA 1.1 180. 2. Junmei et al.1999
+-Br-CA-CA-CA 1.1 180. 2. Junmei et al.1999
+-CM-H4-C -O 1.1 180. 2. Junmei et al.1999
+-C -CT-N -H 1.1 180. 2. Junmei et al.1999
+-C -CT-N -O 1.1 180. 2. Junmei et al.1999
+-
+- HW OW 0000. 0000. 4. flag for fast water
+-
+-N NA N2 N* NC NB NY
+-C* CA CB CC CD CK CM CN CQ CR CV CW CZ
+-
+-MOD4 RE
+- H 0.9000 0.0008 Junmei optimization
+- HO 0.6000 0.0000 Junmei optimization
+- HS 0.6000 0.0157 Junmei optimization
+- HC 1.3992 0.0326 Junmei optimization
+- H0 1.2992 0.0326 Junmei optimization
+- H1 1.2992 0.0326 Junmei optimization
+- H2 1.1992 0.0326 Junmei optimization
+- H3 1.0992 0.0326 Junmei optimization
+- H4 1.5424 0.0052 Junmei optimization
+- H5 1.4924 0.0052 Junmei optimization
+- HA 1.5924 0.0052 Junmei optimization
+- HP 0.9000 0.0008 Junmei optimization
+- HZ 1.4590 0.0150 H bonded to sp C (Howard et al JCC 16)
+- HW 0.0000 0.0000 TIP3P, POL3, SPC/E water models
+- OW 1.7980 0.1560 POL3 water model
+- O 1.6582 0.2146 Junmei optimization
+- OH 1.7895 0.0752 Junmei optimization
+- O2 1.4062 1.3962 Junmei optimization
+- OS 1.7127 0.1385 Junmei optimization
+- C 2.1034 0.0267 Junmei optimization
+- C2 1.8446 0.1290 Junmei optimization
+- CY 1.9295 0.1836 Junmei optimization
+- CT 2.0242 0.0538 Junmei optimization
+- C* 1.8738 0.1068 Junmei optimization
+- N 1.8714 0.1312 Junmei optimization
+- NT 1.9500 0.0450 Junmei optimization
+- N3 1.9500 0.0450 Junmei optimization
+- S 1.9980 0.2530 Junmei optimization
+- SH 1.9980 0.2530 Junmei optimization
+- P 2.1000 0.2000 JCC,7,(1986),230;
+- IM 2.47 0.1 Cl- Smith & Dang, JCP 1994,100:5,3757
+- Li 1.1370 0.0183 Li+ Aqvist JPC 1990,94,8021. (adapted)
+- IP 1.8680 0.00277 Na+ Aqvist JPC 1990,94,8021. (adapted)
+- Na 1.8680 0.00277 Na+ Aqvist JPC 1990,94,8021. (adapted)
+- K 2.6580 0.000328 K+ Aqvist JPC 1990,94,8021. (adapted)
+- Rb 2.9560 0.00017 Rb+ Aqvist JPC 1990,94,8021. (adapted)
+- Cs 3.3950 0.0000806 Cs+ Aqvist JPC 1990,94,8021. (adapted)
+- MG 0.7926 0.8947 Mg2+ Aqvist JPC 1990,94,8021.(adapted)
+- C0 1.7131 0.459789 Ca2+ Aqvist JPC 1990,94,8021.(adapted)
+- Zn 1.10 0.0125 Zn2+, Merz,PAK, JACS,113,8262,(1991)
+- F 1.75 0.061 Gough et al. JCC 13,(1992),963.
+- Cl 1.948 0.265 Fox, JPCB,102,8070,(98),flex.mdl CHCl3
+- Br 2.22 0.320 Junmei(?)
+- I 2.35 0.40 JCC,7,(1986),230;
+- IB 5.0 0.1 solvated ion for vacuum approximation
+- LP 0.00 0.0000 lone pair
+-
+-END
+-
+-
+-####################################################
+-Polarizabilities:
+-Mg2+ 0.120
+-F- 0.9743
+-
+-
+-additional parameters of LP
+-
+-H1-CT-NT-LP 1 0.000 0.000 3.000
+-CT-CT-NT-LP 1 0.000 0.000 3.000
+-CT-C -N -LP 1 0.000 180.000 2.000
+-O -C -N -LP 1 0.000 180.000 2.000
+-H1-CT-OH-LP 1 0.000 0.000 3.000
+-CT-CT-OH-LP 1 0.000 0.000 3.000
+-H1-CT-OS-LP 1 0.000 0.000 3.000
+-H2-CT-OS-LP 1 0.000 0.000 3.000
+-CT-CT-OS-LP 1 0.000 0.000 3.000
+-CM-CM-OS-LP 1 0.000 180.000 2.000
+-HA-CM-OS-LP 1 0.000 180.000 2.000
+-H4-CM-OS-LP 1 0.000 180.000 2.000
+-
+-
+diff --git a/patch_amber.py b/patch_amber.py
+index 84d90c4..2b5ae7a 100755
+--- a/patch_amber.py
++++ b/patch_amber.py
+@@ -25,7 +25,7 @@ Acknowledgements/Contributions from others
+ * Tyler Luchko made helpful contributions to the user-interface
+ """
+ # Load common os module and package into top level namespace
+-from os import path, getenv
++from os import path, getenv, chmod
+
+ # Global variables. Other ones that change less frequently can be found below
+ # the Patch class definitions.
+@@ -230,9 +230,11 @@ class Patch(object):
+ """
+ # This regex matches lines that start like "+++ path/to/file.cpp"
+ modfile = re.compile(r'\+\+\+ \.*\/*[\w\-\/\.\+]+[\w\-\.\+]+\.*\w*')
+- selffile = re.compile('\\+\\+\\+ %s' % path.split(sys.argv[0])[1])
++ selffile = re.compile(r'\+\+\+ %s' % path.split(sys.argv[0])[1])
++ newfile = re.compile(r'new file mode (\d{3})+')
+ patch = open(self.name, 'r')
+ files_modified = []
++ newfile_modes = []
+ for line in patch:
+ if modfile.match(line):
+ filename = modfile.findall(line)[0].strip('+++').strip()
+@@ -247,8 +249,17 @@ class Patch(object):
+ elif selffile.match(line):
+ filename = path.split(sys.argv[0])[1]
+ if not filename in files_modified: files_modified.append(filename)
++ elif newfile.match(line):
++ ftmp = newfile.match(line).groups()
++ if isinstance(ftmp, tuple):
++ if len(ftmp) == 2:
++ newfile_modes.append(ftmp[1])
++ elif len(ftmp) == 1:
++ newfile_modes.append(ftmp[0])
++ elif isinstance(ftmp, str):
++ newfile_modes.append(ftmp)
+ patch.close()
+- return files_modified
++ return files_modified, newfile_modes
+
+ #========================================
+
+@@ -331,7 +342,7 @@ class PatchBz2(Patch):
+
+ print 'Decompressing %s with %s' % (patch_file, bunzip)
+
+- process = Popen([bunzip, patch_file], stdout=PIPE, stderr=PIPE)
++ process = Popen([bunzip, '-f', patch_file], stdout=PIPE, stderr=PIPE)
+
+ (output, error) = process.communicate('')
+
+@@ -340,8 +351,8 @@ class PatchBz2(Patch):
+ patch_file, error))
+ sys.exit(1)
+
+- # Get rid of the file extension
+- patch_file = patch_file.strip('.bz2')
++ # Get rid of the file extension (.bz2)
++ patch_file = patch_file[:len(patch_file)-4]
+ Patch.__init__(self, patch_file)
+
+ #~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~
+@@ -370,7 +381,7 @@ class PatchGz(Patch):
+
+ print 'Decompressing %s with %s' % (patch_file, gunzip)
+
+- process = Popen([gunzip, patch_file], stdout=PIPE, stderr=PIPE)
++ process = Popen([gunzip, '-f', patch_file], stdout=PIPE, stderr=PIPE)
+
+ (output, error) = process.communicate('')
+
+@@ -379,14 +390,14 @@ class PatchGz(Patch):
+ patch_file, error))
+ sys.exit(1)
+
+- # Get rid of the file extension
+- patch_file = patch_file.strip('.gz')
++ # Get rid of the file extension (.gz)
++ patch_file = patch_file[:len(patch_file)-3]
+ Patch.__init__(self, patch_file)
+
+ #~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~
+
+ # The list of searched suffixes for patch names (ASCII, Bzip2, Gzip)
+-patch_suffixes = ('', '.bz2', '.gz')
++patch_suffixes = ('', '.bz2_', '.gz_')
+ # The corresponding classes for each patch suffix listed above IN SAME ORDER
+ patch_classes = (Patch, PatchBz2, PatchGz)
+ # This is the description printed with the program usage message
+@@ -413,14 +424,18 @@ def download_patch(search_location, patch_number, save_loc):
+ if 'timed out' in str(err):
+ print >> sys.stderr, 'Timed out connecting to server'
+ sys.exit(1)
+- raise err
++ continue
+ # A 404 code means we didn't find it
+ if url_patch.getcode() == 404:
+ url_patch.close()
+ continue
+ # Otherwise we found it, so use urlretrieve to download the file
+ url_patch.close()
+- local_patch = path.join(save_loc, fixname)
++ # Hack for compressed patch files
++ if fixname.endswith('_'):
++ local_patch = path.join(save_loc, fixname[:len(fixname)-1])
++ else:
++ local_patch = path.join(save_loc, fixname)
+ print ' Downloading %s' % fixname
+ urllib.urlretrieve(search_location + fixname, local_patch)
+ # Now that we have the patch file saved, return the appropriate PatchClass
+@@ -484,8 +499,8 @@ def describe_patch(patch, full=True, hide_prefix=True):
+ if patch.author(): print ' Author: ', patch.author()
+ if patch.date(): print ' Created on: ', patch.date()
+ if patch.programs(): print ' Programs fixed: ', ', '.join(patch.programs())
+- if patch.files_edited():
+- print ' Files affected: ', ('\n%19s' % ' ').join(patch.files_edited())
++ if patch.files_edited()[0]:
++ print ' Files affected: ', ('\n%19s' % ' ').join(patch.files_edited()[0])
+ if full: print '\n', patch.description()
+ print ''
+
+@@ -513,18 +528,32 @@ def _files_present(patch):
+ return -2: Same as -1, except we also modify this program (as in 2)
+ """
+
+- edfiles = patch.files_edited()
++ edfiles, newmodes = patch.files_edited()
+ if not edfiles:
+ print >> sys.stderr, ('Fatal Error: The patch "%s" does not edit any ' +
+ 'files!') % patch.name
+ sys.exit(1)
+ fname = edfiles[0]
+ ret_code = 1
++ newfile_count = 0
+ if ('src/sander' in fname or 'src/pmemd' in fname) and not path.isdir(
+ path.join(getenv('AMBERHOME'), 'src', 'pmemd', 'src')):
+ ret_code = 0
+ if fname == path.split(sys.argv[0])[1]:
+ ret_code = 2
++ elif not path.exists(path.join(getenv('AMBERHOME'), fname)):
++ _mkdir(path.join(getenv('AMBERHOME'), path.split(fname)[0]))
++ print 'Creating file %s' % (path.join(getenv('AMBERHOME'), fname))
++ tmpfile = open(path.join(getenv('AMBERHOME'), fname), 'w')
++ tmpfile.close()
++ try:
++ print 'Changing mode to %s' % (newmodes[0])
++ # chmod takes octal numbers, so convert the octal number
++ chmod(path.join(getenv('AMBERHOME'), fname), int(newmodes[0], 8))
++ newfile_count += 1
++ except IndexError:
++ # If our patch didn't have mode info, don't pitch a fit
++ pass
+ for i in range(1,len(edfiles)):
+ fname = edfiles[i]
+ # If ret_code is already 1, then our first file matched one we had,
+@@ -544,6 +573,15 @@ def _files_present(patch):
+ print 'Creating file %s' % (path.join(getenv('AMBERHOME'), fname))
+ tmpfile = open(path.join(getenv('AMBERHOME'), fname), 'w')
+ tmpfile.close()
++ try:
++ print 'Changing mode to %s' % (newmodes[newfile_count])
++ # chmod takes octal numbers, so convert the octal number
++ chmod(path.join(getenv('AMBERHOME'), fname),
++ int(newmodes[newfile_count], 8))
++ newfile_count += 1
++ except IndexError:
++ # Don't pitch a fit if our patch file didn't have permission info
++ pass
+
+ return ret_code
+
+@@ -775,7 +813,7 @@ if __name__ == '__main__':
+ sys.exit(1)
+ if opt.apply_patch: single_patch = Patch(opt.apply_patch)
+ else: single_patch = Patch(opt.reverse_patch)
+- if not single_patch.files_edited():
++ if not single_patch.files_edited()[0]:
+ print >> sys.stderr, 'Fatal Error: Bad patch. Could not find the ' + \
+ 'files that were supposed to be edited!'
+ # Print out message based on whether we're applying forward or reverse
diff --git a/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch b/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch
new file mode 100644
index 0000000..b0e7cf4
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch
@@ -0,0 +1,1251 @@
+diff --git a/AmberTools/src/Makefile b/AmberTools/src/Makefile
+index e5c0ded..ce8f883 100644
+--- a/AmberTools/src/Makefile
++++ b/AmberTools/src/Makefile
+@@ -13,12 +13,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 etc && $(MAKE) install )
+ (cd chamber && $(MAKE) install )
+ (cd pbsa && $(MAKE) install )
+@@ -34,13 +28,11 @@ serial: configured_serial THIRDPARTY $(MTKPP)
+ (cd cpptraj && $(MAKE) install)
+
+ # miscellaneous:
+- (cd reduce && $(MAKE) install )
+
+ # leap
+ (cd leap && $(MAKE) install )
+
+ # nab:
+- (cd cifparse && $(MAKE) install )
+ (cd sff && $(MAKE) install )
+ (cd pbsa && $(MAKE) libinstall )
+ (cd rism && $(MAKE) $(RISM) )
+@@ -77,17 +69,10 @@ serial: configured_serial THIRDPARTY $(MTKPP)
+ @echo "Installation of ${AMBERTOOLS} serial is complete at `date`."
+ @echo ""
+
+-nabonly: $(NETCDF) $(XBLAS)
++nabonly: $(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 )
+ (cd sff && $(MAKE) install )
+ (cd nab && $(MAKE) install )
+ (cd nss && $(MAKE) install )
+@@ -119,8 +104,6 @@ parallel: configured_parallel THIRDPARTY
+ (cd sff && $(MAKE) libsff_mpi )
+ # (cd pbsa && $(MAKE) clean && $(MAKE) install.parallel )
+ (cd pbsa && $(MAKE) libinstall )
+- (cd byacc && $(MAKE) install )
+- (cd ucpp-1.3 && $(MAKE) $(UCPP) )
+ # (cd mdgx && $(MAKE) parallel )
+ (if [ "$(RISM)" = "yes" ]; then \
+ cd rism && $(MAKE) install_mpi ; \
+@@ -162,18 +145,11 @@ configured_parallel: configured
+ )
+
+ clean:: 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 )
+@@ -182,15 +158,12 @@ clean:: netcdf_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 xray && $(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 && $(MAKE) clean )
+ -(cd parmed && $(MAKE) clean )
+
+@@ -201,18 +174,11 @@ netcdf_clean:
+ -(cd netcdf/bin && rm -f *)
+
+ uninstall:
+- -(cd ucpp-1.3 && $(MAKE) uninstall )
+- -(cd byacc && $(MAKE) uninstall )
+- -(cd cifparse && $(MAKE) uninstall )
+ -(cd nab && $(MAKE) uninstall )
+ -(cd sff && $(MAKE) uninstall )
+ -(cd nss && $(MAKE) uninstall )
+ -(cd leap && $(MAKE) uninstall )
+- -(cd arpack && $(MAKE) uninstall )
+- -(cd blas && $(MAKE) uninstall )
+ -($(RM) -f $(LIBDIR)/libxblas.a )
+- -(cd lapack && $(MAKE) uninstall )
+- -(cd c9x-complex && $(MAKE) uninstall )
+ -(cd etc && $(MAKE) uninstall )
+ -(cd chamber && $(MAKE) uninstall )
+ -(cd pbsa && $(MAKE) uninstall )
+@@ -220,7 +186,6 @@ uninstall:
+ -(cd sqm && $(MAKE) uninstall )
+ -(cd lib && $(MAKE) uninstall )
+ -(cd ptraj && $(MAKE) uninstall )
+- -(cd reduce && $(MAKE) uninstall )
+ -(cd mdgx && $(MAKE) uninstall )
+ -(cd xtalutil/CPrograms && $(MAKE) uninstall )
+ -(cd xray && $(MAKE) uninstall )
+@@ -228,15 +193,12 @@ uninstall:
+ -(cd paramfit && $(MAKE) uninstall )
+ -(cd rism && $(MAKE) uninstall )
+ -(cd netcdf/src && $(MAKE) uninstall)
+- -(cd fftw-3.3 && $(MAKE) uninstall)
+ -(cd cpptraj && $(MAKE) uninstall)
+ -(cd mmpbsa_py && $(MAKE) uninstall )
+ -(cd parmed && $(MAKE) uninstall )
+ -(cd amberlite && $(MAKE) uninstall )
+ -/bin/rm -f ../test/numprocs
+ -/bin/rm -fr $(BINDIR)/ncmpidump $(BINDIR)/ncmpigen $(BINDIR)/ncvalid $(LIBDIR)/libnetcdf.a $(INCDIR)/mtkpp
+- -(cd $(LIBDIR) && /bin/rm -f libxblas-amb.a libfftw3_mpi.a libfftw3_mpi.la)
+- -(cd $(INCDIR) && /bin/rm -f fftw3-mpi.f03 fftw3-mpi.h)
+
+ $(INCDIR)/netcdf.mod:
+ cd netcdf/src && $(MAKE) && $(MAKE) -j 1 install
+@@ -247,7 +209,7 @@ $(LIBDIR)/libxblas-amb.a:
+ $(LIBDIR)/libfftw3.a $(LIBDIR)/libfftw3_mpi.a:
+ cd fftw-3.3 && $(MAKE) && $(MAKE) -j 1 install;
+
+-THIRDPARTY: $(NETCDF) $(XBLAS) $(FFTW3)
++THIRDPARTY: $(XBLAS)
+
+ cuda:
+ @echo "$(AMBERTOOLS) has no CUDA-enabled components"
+diff --git a/AmberTools/src/configure2 b/AmberTools/src/configure2
+index 25d3f0a..1ad86e6 100755
+--- a/AmberTools/src/configure2
++++ b/AmberTools/src/configure2
+@@ -387,11 +387,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?
+@@ -618,13 +618,14 @@ gnu)
+ flibs_arch="-lgfortran -w"
+ flibsf_arch=
+ cc=gcc
+- cflags=
++ cflags="GENTOO_CFLAGS"
+ ambercflags=""
+ cplusplus=g++
+- cxxflags=
++ cxxflags="GENTOO_CXXFLAGS"
+ ambercxxflags=""
+ fc=gfortran
+- fflags=
++ fflags="GENTOO_FFLAGS"
++ ldflags="GENTOO_LDFLAGS"
+ staticflag='-static'
+
+ # If -noopt has been requested, force lack of optimisation;
+@@ -645,11 +646,11 @@ gnu)
+ foptflags=""
+ else
+ cnooptflags=
+- coptflags="-O3"
++ coptflags="GENTOO_CFLAGS"
+ cxxnooptflags=
+- cxxoptflags="-O3"
++ cxxoptflags="GENTOO_CXXFLAGS"
+ fnooptflags="-O0"
+- foptflags="-O3"
++ foptflags="GENTOO_FFLAGS"
+ fi
+
+ # Debugging options
+@@ -2026,26 +2027,26 @@ EOF
+ 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=yes \
+- $enable_mpi $enable_debug $enable_sse\
+- CC="$cc" CFLAGS="$cflags $coptflags" \
+- F77="$fc" FFLAGS="$fflags $foptflags" \
+- FLIBS="$flibs_arch" \
+- > ../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 diretory."
+- exit 1
+- else
+- echo " fftw-3.3 configure succeeded."
+- fi
+- cd ..
++# cd fftw-3.3 && \
++# ./configure --prefix=$AMBERHOME --libdir=$AMBERHOME/lib \
++# --enable-static=yes \
++# $enable_mpi $enable_debug $enable_sse\
++# CC="$cc" CFLAGS="$cflags $coptflags" \
++# F77="$fc" FFLAGS="$fflags $foptflags" \
++# FLIBS="$flibs_arch" \
++# > ../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 diretory."
++# exit 1
++# else
++# echo " fftw-3.3 configure succeeded."
++# fi
++# cd ..
+ fftw3="FFTW3"
+- flibs_fftw3="-lfftw3"
++ flibs_fftw3="GENTOO_FFTW3_LIBS"
+ fftw3="\$(LIBDIR)/libfftw3.a"
+ if [ "$mpi" = 'yes' ]; then
+ flibs_fftw3="-lfftw3_mpi $flibs_fftw3"
+@@ -2282,7 +2283,7 @@ LDFLAGS=$ldflags \$(CUSTOMBUILDFLAGS)
+ AMBERLDFLAGS=\$(AMBERBUILDFLAGS)
+
+ LEX= $lex
+-YACC= \$(BINDIR)/yacc
++YACC= byacc
+ AR= ar rv
+ M4= $m4
+ RANLIB=$ranlib
+@@ -2319,7 +2320,7 @@ CP=$localcp
+ # Information about Fortran compilation:
+
+ FC=$fc
+-FFLAGS= $fflags \$(LOCALFLAGS) \$(CUSTOMBUILDFLAGS) -I\$(INCDIR) \$(NETCDFINC) $mklinc
++FFLAGS= $fflags \$(LOCALFLAGS) \$(CUSTOMBUILDFLAGS) -IGENTOO_INCLUDE \$(NETCDFINC) $mklinc
+ FNOOPTFLAGS= $fnooptflags
+ FOPTFLAGS= $foptflags
+ AMBERFFLAGS=\$(AMBERBUILDFLAGS)
+diff --git a/AmberTools/src/cpptraj/src/Makefile_at b/AmberTools/src/cpptraj/src/Makefile_at
+index 822b451..0684b0c 100644
+--- a/AmberTools/src/cpptraj/src/Makefile_at
++++ b/AmberTools/src/cpptraj/src/Makefile_at
+@@ -29,22 +29,10 @@ dependclean:
+ -/bin/rm FindDepend.o
+ -/bin/rm findDepend
+
+-cpptraj$(SFX): $(NETCDF) $(OBJECTS) $(PTRAJ_OBJECTS) $(EXTERNAL_LIBS)
++cpptraj$(SFX): $(OBJECTS) $(PTRAJ_OBJECTS)
+ $(CXX) $(LDFLAGS) -o cpptraj$(SFX) $(OBJECTS) $(PTRAJ_OBJECTS) \
+ -L$(LIBDIR) $(NETCDFLIB) $(ZLIB) $(BZLIB) $(FLIBS_PTRAJ)
+
+-$(INCDIR)/netcdf.mod: ../../netcdf_config.log
+- cd ../../netcdf/src && $(MAKE) install
+-
+-$(LIBDIR)/libarpack.a:
+- cd ../../arpack && $(MAKE) install
+-
+-$(LIBDIR)/liblapack.a:
+- cd ../../lapack && $(MAKE) $(LAPACK)
+-
+-$(LIBDIR)/libblas.a:
+- cd ../../blas && $(MAKE) $(BLAS)
+-
+ thermo.o: ../../ptraj/thermo.F90
+ $(FC) $(FPPFLAGS) -c $(FREEFORMAT_FLAG) $(FOPTFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ ../../ptraj/thermo.F90
+
+diff --git a/AmberTools/src/mdgx/Makefile b/AmberTools/src/mdgx/Makefile
+index 7bad950..b7a560b 100644
+--- a/AmberTools/src/mdgx/Makefile
++++ b/AmberTools/src/mdgx/Makefile
+@@ -132,19 +132,16 @@ MDGX_HEADERS = \
+ ptrajmask.h \
+ ../sff/AmberNetcdf.h
+
+-mdgx$(SFX) : $(MDGX_OBJS) $(LIBDIR)/libfftw3.a
++mdgx$(SFX) : $(MDGX_OBJS)
+ $(CC) $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) \
+ -o $@ $(MDGX_OBJS) $(FFTWLIB) -L$(LIBDIR) $(NETCDFLIB) $(LM)
+
+-mdgx.MPI$(SFX) : $(MDGX_OBJS) $(LIBDIR)/libfftw3.a
++mdgx.MPI$(SFX) : $(MDGX_OBJS)
+ $(CC) $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) \
+ -o $@ $(MDGX_OBJS) $(FFTWLIB) -L$(LIBDIR) $(NETCDFLIB) $(LM)
+
+-$(LIBDIR)/fftw3.a: ../fftw-3.3/config.log
+- cd ../fftw-3.3 && $(MAKE) && $(MAKE) -j 1 install;
+-
+ .c.o:
+- $(CC) -c $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) -I$(INCDIR) -I../fftw-3.3/api -o $@ $<
++ $(CC) -c $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) -I$(INCDIR) -o $@ $<
+
+ clean:
+ /bin/rm -f $(MDGX_OBJS) mdgx$(SFX)
+diff --git a/AmberTools/src/mdgx/Trajectory.c b/AmberTools/src/mdgx/Trajectory.c
+index 524dad8..5df64c6 100644
+--- a/AmberTools/src/mdgx/Trajectory.c
++++ b/AmberTools/src/mdgx/Trajectory.c
+@@ -214,7 +214,7 @@ void ExtendCoordinates(coord *tc, prmtop *tp)
+ coord ReadRst(prmtop *tp, char* source)
+ {
+ int i, rsttype;
+- char line[128];
++ char line[MAXLINE];
+ FILE *inp;
+ coord tc;
+
+diff --git a/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py b/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
+index b01b891..24ea20f 100644
+--- a/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
++++ b/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
+@@ -210,7 +210,7 @@ class AmberOutput(object):
+
+ # write out each frame
+ for i in range(len(self.data[print_keys[0]])):
+- csvwriter.writerow([i] + [self.data[key][i] for key in print_keys])
++ csvwriter.writerow([i] + ["%.4f" % self.data[key][i] for key in print_keys])
+
+ #==================================================
+
+@@ -1003,7 +1003,7 @@ class BindingStatistics(object):
+
+ # write out each frame
+ for i in range(len(self.data[print_keys[0]])):
+- csvwriter.writerow([i]+[self.data[key][i] for key in print_keys])
++ csvwriter.writerow([i]+["%.4f" % self.data[key][i] for key in print_keys])
+ csvwriter.writerow([])
+
+ #==================================================
+diff --git a/AmberTools/src/nab/database.c b/AmberTools/src/nab/database.c
+index 0b98d35..9aad62a 100644
+--- a/AmberTools/src/nab/database.c
++++ b/AmberTools/src/nab/database.c
+@@ -1135,7 +1135,7 @@ int* iPLines;
+ char* PBuffer;
+ int iBufferInc;
+ {
+-String sLine;
++String sLine[MAXDATALINELEN];
+
+
+
+diff --git a/AmberTools/src/nab/nab.c b/AmberTools/src/nab/nab.c
+index 84e03ef..d49b711 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/pbsa/Makefile b/AmberTools/src/pbsa/Makefile
+index 0a3f12f..2105b00 100644
+--- a/AmberTools/src/pbsa/Makefile
++++ b/AmberTools/src/pbsa/Makefile
+@@ -144,23 +144,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
+@@ -188,48 +188,12 @@ libFpbsa.parallel: $(SANDERPBSAOBJS)
+ $(RANLIB) libFpbsa.a
+ /bin/mv libFpbsa.a $(LIBDIR)
+
+-FFTW3:
+- @if [ "$(PBSAFLAG)" = "-DFFTW" ]; then \
+- if [ "$(FLIBS_FFTW3)" = '-lfftw3xf_$(COMPILER)' ]; then\
+- cd $(MKL)/interfaces/fftw3xf && $(MAKE) lib$(MKL_PROCESSOR) \
+- compiler=$(COMPILER) PRECISION=MKL_DOUBLE \
+- INSTALL_DIR=$(LIBDIR); \
+- else \
+- if [ ! -f $(INCDIR)/fftw3.f03 ]; then\
+- cd ../fftw-3.3 && $(MAKE) && $(MAKE) -j 1 install; \
+- fi \
+- fi \
+- fi
+-
+-FFTW3.MPI:
+- @if [ "$(PBSAFLAG)" = "-DFFTW" ]; then \
+- if [ "$(FLIBS_FFTW3)" = '-lfftw3xf_$(COMPILER)' ]; then\
+- cd $(MKL)/interfaces/fftw3xf && $(MAKE) lib$(MKL_PROCESSOR) \
+- compiler=$(COMPILER) PRECISION=MKL_DOUBLE \
+- INSTALL_DIR=$(LIBDIR); \
+- else \
+- if [ ! -f $(INCDIR)/fftw3-mpi.f03 ]; then\
+- cd ../fftw-3.3 && $(MAKE) && $(MAKE) -j 1 install; \
+- fi \
+- fi \
+- fi
+-
+ syslib:
+ cd ../lib && $(MAKE) nxtsec.o random.o
+
+ sfflib:
+ cd ../sff && $(MAKE) install
+
+-netlib:
+- cd ../lapack && $(MAKE) $(LAPACK)
+- cd ../blas && $(MAKE) $(BLAS)
+- cd ../arpack && $(MAKE) install
+-
+-c9x-complex:
+- @if test $(C9XCOMPLEX) != "skip"; then \
+- cd ../c9x-complex && $(MAKE) libmc.a; \
+- fi
+-
+ pb_init.o: pb_init.F90
+ $(FC) $(PBSAFLAG) $(FPPFLAGS) -c -O0 $(FFLAGS) $(AMBERFFLAGS) -o $@ $<
+
+diff --git a/AmberTools/src/ptraj/Makefile b/AmberTools/src/ptraj/Makefile
+index 3e643b9..b3089f1 100644
+--- a/AmberTools/src/ptraj/Makefile
++++ b/AmberTools/src/ptraj/Makefile
+@@ -61,21 +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)
+- cd ../blas && $(MAKE) $(BLAS)
+
+ clean:
+ cd pdb && $(MAKE) clean
+diff --git a/AmberTools/src/ptraj/trajectory.c b/AmberTools/src/ptraj/trajectory.c
+index 110ffce..49bdf1a 100644
+--- a/AmberTools/src/ptraj/trajectory.c
++++ b/AmberTools/src/ptraj/trajectory.c
+@@ -1315,7 +1315,7 @@ readAmberTrajectory_nobuffer(FILE *fpin, int natoms,
+ {
+ fpos_t fileMarker; /* marker for current file postition */
+ char *junk;
+- char buffer[120];
++ char buffer[BUFFER_SIZE];
+ char coords[26]; /* room for 24 characters (3f8.3) + \n + (char) 0 */
+ char c;
+ int j,ret;
+diff --git a/AmberTools/src/sff/Makefile b/AmberTools/src/sff/Makefile
+index 83f362c..b1a1b2e 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 $(SFF_RISM_INTERFACE)
+
+
+diff --git a/AmberTools/src/sff/dsarpack.f b/AmberTools/src/sff/dsarpack.f
+index e69de29..5544df9 100644
+--- a/AmberTools/src/sff/dsarpack.f
++++ 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 3b49c55..61d0dc3 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)
+
+@@ -101,11 +101,6 @@ $(LIBDIR)/libsqm.a: $(QMOBJ) $(LIBQMOBJ)
+ sys:
+ cd ../lib; $(MAKE) sys.a
+
+-netlib:
+- cd ../lapack; $(MAKE) $(LAPACK)
+- cd ../blas; $(MAKE) $(BLAS)
+- cd ../arpack && $(MAKE) install
+-
+ clean:
+ /bin/rm -f *.o *.mod *.d sqm$(SFX)
+
+diff --git a/AmberTools/test/mmpbsa_py/01_Generalized_Born/energies.csv.save b/AmberTools/test/mmpbsa_py/01_Generalized_Born/energies.csv.save
+index 3595375..1a0be46 100644
+--- a/AmberTools/test/mmpbsa_py/01_Generalized_Born/energies.csv.save
++++ b/AmberTools/test/mmpbsa_py/01_Generalized_Born/energies.csv.save
+@@ -7,16 +7,16 @@ Frame #,VDWAALS,EEL,EGB,ESURF,G gas,G solv,TOTAL
+ Receptor Energy Terms
+ Frame #,VDWAALS,EEL,EGB,ESURF,G gas,G solv,TOTAL
+ 0,-1969.4265,-17103.7958,-3027.0953,101.7772,-19073.2223,-2925.3181,-21998.5404
+-1,-1956.6674,-17020.9923,-3062.954,102.3918,-18977.6597,-2960.5622,-21938.2219
++1,-1956.6674,-17020.9923,-3062.9540,102.3918,-18977.6597,-2960.5622,-21938.2219
+
+ Ligand Energy Terms
+ Frame #,VDWAALS,EEL,EGB,ESURF,G gas,G solv,TOTAL
+-0,-1.2566,-5.6263,-28.5797,4.4486,-6.8829,-24.1311,-31.014
++0,-1.2566,-5.6263,-28.5797,4.4486,-6.8829,-24.1311,-31.0140
+ 1,-3.1118,-6.1548,-29.3738,4.4016,-9.2666,-24.9722,-34.2388
+
+ DELTA Energy Terms
+ Frame #,VDWAALS,EEL,EGB,ESURF,DELTA G gas,DELTA G solv,DELTA TOTAL
+-0,-63.4582,-32.3518,35.2679,-8.3751,-95.81,26.8928,-68.9172
+-1,-60.9966,-35.1045,41.6205,-8.465,-96.1011,33.1555,-62.9456
++0,-63.4582,-32.3518,35.2679,-8.3751,-95.8100,26.8928,-68.9172
++1,-60.9966,-35.1045,41.6205,-8.4650,-96.1011,33.1555,-62.9456
+
+
+diff --git a/AmberTools/test/nab/Run.rism_sp b/AmberTools/test/nab/Run.rism_sp
+index bd8471d..a88bf58 100755
+--- a/AmberTools/test/nab/Run.rism_sp
++++ b/AmberTools/test/nab/Run.rism_sp
+@@ -47,7 +47,7 @@ $DO_PARALLEL $cmd --pdb ala.pdb --prmtop ala.parm7 --traj ala.nc \
+ --polarDecomp\
+ --noprogress > rism3d.snglpnt.out || error
+
+-checkrism3d -err 1e-6 rism3d.snglpnt.out.check rism3d.snglpnt.out
++./checkrism3d -err 1e-6 rism3d.snglpnt.out.check rism3d.snglpnt.out
+
+ awk '{if (NR % 10 == 0) print $0}' quv.1.xyzv > quv.1.xyzv.trunc
+ ../dacdif -r 1e-6 quv.1.xyzv.trunc.check quv.1.xyzv.trunc
+diff --git a/AmberTools/test/nab/Run.rism_sp2 b/AmberTools/test/nab/Run.rism_sp2
+index a2b9521..11da8de 100755
+--- a/AmberTools/test/nab/Run.rism_sp2
++++ b/AmberTools/test/nab/Run.rism_sp2
+@@ -38,7 +38,7 @@ $DO_PARALLEL $cmd --pdb ala.pdb --prmtop ala.parm7 --traj ala.crd \
+ --buffer 10 --guv guv.2\
+ --noprogress > rism3d.snglpnt.2.out || error
+
+-checkrism3d -err 1e-6 rism3d.snglpnt.2.out.check rism3d.snglpnt.2.out
++./checkrism3d -err 1e-6 rism3d.snglpnt.2.out.check rism3d.snglpnt.2.out
+ ../dacdif -a 1e-6 guv.2.O.1.dx.check guv.2.O.1.dx
+ ../dacdif -a 1e-6 guv.2.H1.2.dx.check guv.2.H1.2.dx
+ ../dacdif -a 1e-6 guv.2.O.3.dx.check guv.2.O.3.dx
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2012-10-21 12:52 Reinis Danne
0 siblings, 0 replies; 18+ messages in thread
From: Reinis Danne @ 2012-10-21 12:52 UTC (permalink / raw
To: gentoo-commits
commit: d97c3c6df71927687fb184e5df2fbfb39b2e921d
Author: Reinis Danne <rei4dan <AT> gmail <DOT> com>
AuthorDate: Sun Oct 21 11:51:27 2012 +0000
Commit: Reinis Danne <rei4dan <AT> gmail <DOT> com>
CommitDate: Sun Oct 21 11:51:27 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=d97c3c6d
ambertools: Fix parallel tests
---
sci-chemistry/ambertools/ChangeLog | 4 +
sci-chemistry/ambertools/ambertools-12.ebuild | 11 ++--
.../ambertools/files/ambertools-12-gentoo.patch | 77 ++++++++++++++++++--
3 files changed, 78 insertions(+), 14 deletions(-)
diff --git a/sci-chemistry/ambertools/ChangeLog b/sci-chemistry/ambertools/ChangeLog
index 59197eb..fb9077d 100644
--- a/sci-chemistry/ambertools/ChangeLog
+++ b/sci-chemistry/ambertools/ChangeLog
@@ -2,6 +2,10 @@
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ambertools/ChangeLog,v 1.2 2011/08/02 14:42:37 alexxy Exp $
+ 21 Oct 2012; Reinis Danne <rei4dan@gmail.com> ambertools-12.ebuild,
+ files/ambertools-12-gentoo.patch:
+ Fix parallel tests.
+
*ambertools-12 (20 Oct 2012)
20 Oct 2012; Reinis Danne <rei4dan@gmail.com> +ambertools-12.ebuild,
diff --git a/sci-chemistry/ambertools/ambertools-12.ebuild b/sci-chemistry/ambertools/ambertools-12.ebuild
index 31d6f8e..5b5a3db 100644
--- a/sci-chemistry/ambertools/ambertools-12.ebuild
+++ b/sci-chemistry/ambertools/ambertools-12.ebuild
@@ -103,13 +103,12 @@ src_configure() {
gnu
}
-src_compile() {
- cd "${S}"/AmberTools/src
- emake
-}
-
src_test() {
- cd "${S}"/AmberTools/test
+ # Get the number of physical cores
+ local ncpus=$(grep "^core id" /proc/cpuinfo | sort -u | wc -l)
+ # Limit number of OpenMP threads
+ use openmp && export OMP_NUM_THREADS=$((1+${ncpus}/2))
+
emake test
}
diff --git a/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch b/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch
index b0e7cf4..e52e39d 100644
--- a/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch
+++ b/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch
@@ -145,10 +145,10 @@ index e5c0ded..ce8f883 100644
cuda:
@echo "$(AMBERTOOLS) has no CUDA-enabled components"
diff --git a/AmberTools/src/configure2 b/AmberTools/src/configure2
-index 25d3f0a..1ad86e6 100755
+index 9ce5ef0..8dfcd3e 100755
--- a/AmberTools/src/configure2
+++ b/AmberTools/src/configure2
-@@ -387,11 +387,11 @@ omp_flag=
+@@ -389,11 +389,11 @@ omp_flag=
mpi_flag=
lex=flex
flibs_mkl=
@@ -164,7 +164,7 @@ index 25d3f0a..1ad86e6 100755
#-----------------------------------
# skip building of xleap?
-@@ -618,13 +618,14 @@ gnu)
+@@ -621,13 +621,14 @@ gnu)
flibs_arch="-lgfortran -w"
flibsf_arch=
cc=gcc
@@ -182,7 +182,7 @@ index 25d3f0a..1ad86e6 100755
staticflag='-static'
# If -noopt has been requested, force lack of optimisation;
-@@ -645,11 +646,11 @@ gnu)
+@@ -648,11 +649,11 @@ gnu)
foptflags=""
else
cnooptflags=
@@ -197,7 +197,7 @@ index 25d3f0a..1ad86e6 100755
fi
# Debugging options
-@@ -2026,26 +2027,26 @@ EOF
+@@ -2044,26 +2045,26 @@ EOF
if [ "$sse" = "yes" ]; then
enable_sse="--enable-sse2=yes" # --enable-avx=yes"
fi
@@ -243,7 +243,7 @@ index 25d3f0a..1ad86e6 100755
fftw3="\$(LIBDIR)/libfftw3.a"
if [ "$mpi" = 'yes' ]; then
flibs_fftw3="-lfftw3_mpi $flibs_fftw3"
-@@ -2282,7 +2283,7 @@ LDFLAGS=$ldflags \$(CUSTOMBUILDFLAGS)
+@@ -2300,7 +2301,7 @@ LDFLAGS=$ldflags \$(CUSTOMBUILDFLAGS)
AMBERLDFLAGS=\$(AMBERBUILDFLAGS)
LEX= $lex
@@ -252,7 +252,7 @@ index 25d3f0a..1ad86e6 100755
AR= ar rv
M4= $m4
RANLIB=$ranlib
-@@ -2319,7 +2320,7 @@ CP=$localcp
+@@ -2337,7 +2338,7 @@ CP=$localcp
# Information about Fortran compilation:
FC=$fc
@@ -330,7 +330,7 @@ index 524dad8..5df64c6 100644
coord tc;
diff --git a/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py b/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
-index b01b891..24ea20f 100644
+index 0349ba9..c700beb 100644
--- a/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
+++ b/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
@@ -210,7 +210,7 @@ class AmberOutput(object):
@@ -1198,6 +1198,27 @@ index 3b49c55..61d0dc3 100644
clean:
/bin/rm -f *.o *.mod *.d sqm$(SFX)
+diff --git a/AmberTools/test/Makefile b/AmberTools/test/Makefile
+index 27afe24..4796250 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.ptraj test.cpptraj test.antechamber \
+ test.leap test.resp test.pbsa test.mmpbsa test.parmed \
+ test.ambpdb test.elsize test.chamber test.sqm test.rism1d \
diff --git a/AmberTools/test/mmpbsa_py/01_Generalized_Born/energies.csv.save b/AmberTools/test/mmpbsa_py/01_Generalized_Born/energies.csv.save
index 3595375..1a0be46 100644
--- a/AmberTools/test/mmpbsa_py/01_Generalized_Born/energies.csv.save
@@ -1223,6 +1244,19 @@ index 3595375..1a0be46 100644
+1,-60.9966,-35.1045,41.6205,-8.4650,-96.1011,33.1555,-62.9456
+diff --git a/AmberTools/test/nab/Makefile b/AmberTools/test/nab/Makefile
+index 1bb2505..7459a15 100644
+--- a/AmberTools/test/nab/Makefile
++++ b/AmberTools/test/nab/Makefile
+@@ -12,6 +12,8 @@ testrism: \
+ rism_ion-noasymp rism_ion_pse1 rism_ion_pse3 rism_mdiis0 rism_mdiis1 \
+ rism_sp rism_sp2
+
++.NOTPARALLEL:
++
+ duplex_test::
+ @./Run.duplex
+
diff --git a/AmberTools/test/nab/Run.rism_sp b/AmberTools/test/nab/Run.rism_sp
index bd8471d..a88bf58 100755
--- a/AmberTools/test/nab/Run.rism_sp
@@ -1249,3 +1283,30 @@ index a2b9521..11da8de 100755
../dacdif -a 1e-6 guv.2.O.1.dx.check guv.2.O.1.dx
../dacdif -a 1e-6 guv.2.H1.2.dx.check guv.2.H1.2.dx
../dacdif -a 1e-6 guv.2.O.3.dx.check guv.2.O.3.dx
+diff --git a/AmberTools/test/test_at_serial.sh b/AmberTools/test/test_at_serial.sh
+index 15bb590..8fa52e3 100755
+--- a/AmberTools/test/test_at_serial.sh
++++ b/AmberTools/test/test_at_serial.sh
+@@ -39,3 +39,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/Makefile b/Makefile
+index 54ddfcb..643ba15 100644
+--- a/Makefile
++++ b/Makefile
+@@ -30,7 +30,7 @@ clean.test:
+ test:: test.$(INSTALLTYPE)
+
+ test.serial:
+- -(cd AmberTools/test && $(MAKE) test)
++ (cd AmberTools/test && $(MAKE) test)
+ -@(if [ -n "$(BUILDAMBER)" ] ; then \
+ cd test && $(MAKE) test; \
+ echo "" ; \
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2014-11-11 15:48 Justin Lecher
0 siblings, 0 replies; 18+ messages in thread
From: Justin Lecher @ 2014-11-11 15:48 UTC (permalink / raw
To: gentoo-commits
commit: d843b3412dbe403c8e628c3c521c32d57022a243
Author: Justin Lecher <jlec <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 11 09:38:40 2014 +0000
Commit: Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Tue Nov 11 15:48:11 2014 +0000
URL: http://sources.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=d843b341
sci-chemistry/ambertools: Drop old and large patches; apply all upstream patches until bugfix.38
Package-Manager: portage-2.2.14
---
sci-chemistry/ambertools/ChangeLog | 11 +-
sci-chemistry/ambertools/ambertools-1.5-r4.ebuild | 159 -
...bertools-12.ebuild => ambertools-12_p38.ebuild} | 56 +-
.../files/ambertools-1.5-bugfix_1-21.patch | 5330 -------
.../files/ambertools-1.5-bugfix_22-27.patch | 3343 -----
.../files/ambertools-1.5-bugfix_28.patch | 23 -
.../ambertools/files/ambertools-1.5-gentoo2.patch | 1068 --
.../ambertools/files/ambertools-1.5-overflow.patch | 30 -
.../files/ambertools-12-bugfix_14-26.patch | 14856 -------------------
.../ambertools/files/ambertools-12-gentoo.patch | 55 +-
10 files changed, 88 insertions(+), 24843 deletions(-)
diff --git a/sci-chemistry/ambertools/ChangeLog b/sci-chemistry/ambertools/ChangeLog
index c46b0af..aa04ed0 100644
--- a/sci-chemistry/ambertools/ChangeLog
+++ b/sci-chemistry/ambertools/ChangeLog
@@ -1,7 +1,16 @@
# ChangeLog for sci-chemistry/ambertools
-# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ambertools/ChangeLog,v 1.2 2011/08/02 14:42:37 alexxy Exp $
+ 11 Nov 2014; Justin Lecher <jlec@gentoo.org> -ambertools-1.5-r4.ebuild,
+ -ambertools-12.ebuild, +ambertools-12_p38.ebuild,
+ -files/ambertools-1.5-bugfix_1-21.patch,
+ -files/ambertools-1.5-bugfix_22-27.patch,
+ -files/ambertools-1.5-bugfix_28.patch, -files/ambertools-1.5-gentoo2.patch,
+ -files/ambertools-1.5-overflow.patch,
+ -files/ambertools-12-bugfix_14-26.patch, files/ambertools-12-gentoo.patch:
+ Drop old and large patches; apply all upstream patches until bugfix.38
+
28 Jun 2013; Christoph Junghans <ottxor@gentoo.org> ambertools-12.ebuild:
fixed deps
diff --git a/sci-chemistry/ambertools/ambertools-1.5-r4.ebuild b/sci-chemistry/ambertools/ambertools-1.5-r4.ebuild
deleted file mode 100644
index 8eee31c..0000000
--- a/sci-chemistry/ambertools/ambertools-1.5-r4.ebuild
+++ /dev/null
@@ -1,159 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-EAPI=4
-
-inherit eutils fortran-2 multilib toolchain-funcs
-
-DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
-HOMEPAGE="http://ambermd.org/#AmberTools"
-SRC_URI="
- AmberTools-${PV}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux"
-IUSE="openmp X"
-
-RESTRICT="fetch"
-
-RDEPEND="
- virtual/cblas
- virtual/lapack
- sci-libs/clapack
- sci-libs/arpack
- sci-libs/cifparse-obj
- sci-chemistry/mopac7
- sci-libs/netcdf
- sci-libs/fftw:2.1
- sci-chemistry/reduce
- virtual/fortran"
-DEPEND="${RDEPEND}
- dev-util/byacc
- dev-libs/libf2c
- sys-devel/ucpp"
-S="${WORKDIR}/amber11"
-
-pkg_nofetch() {
- einfo "Go to ${HOMEPAGE} and get ${A}"
- einfo "Place it in ${DISTDIR}"
-}
-
-pkg_setup() {
- fortran-2_pkg_setup
- if use openmp; then
- tc-has-openmp || \
- die "Please select an openmp capable compiler like gcc[openmp]"
- fi
- AMBERHOME="${S}"
-}
-
-src_prepare() {
- epatch \
- "${FILESDIR}/${P}-bugfix_1-21.patch" \
- "${FILESDIR}/${P}-bugfix_22-27.patch" \
- "${FILESDIR}/${P}-bugfix_28.patch" \
- "${FILESDIR}/${P}-gentoo2.patch" \
- "${FILESDIR}/${P}-overflow.patch"
- cd "${S}"/AmberTools/src
- rm -r \
- arpack \
- blas \
- byacc \
- lapack \
- fftw-2.1.5 \
- fftw-3.2.2 \
- c9x-complex \
- cifparse \
- netcdf \
- pnetcdf \
- reduce \
- ucpp-1.3 \
- || die
-}
-
-src_configure() {
- cd "${S}"/AmberTools/src
- sed -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
- -e "s:\\\\\$(LIBDIR)/lapack.a:$($(tc-getPKG_CONFIG) lapack --libs) -lclapack:g" \
- -e "s:\\\\\$(LIBDIR)/blas.a:$($(tc-getPKG_CONFIG) blas cblas --libs):g" \
- -e "s:\\\\\$(LIBDIR)/libdrfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
- -e "s:\\\\\$(LIBDIR)/libdfftw.a:${EPREFIX}/usr/$(get_libdir)/libdrfftw.a:g" \
- -e "s:GENTOO_CFLAGS:${CFLAGS} -DBINTRAJ :g" \
- -e "s:GENTOO_CXXFLAGS:${CXXFLAGS}:g" \
- -e "s:GENTOO_FFLAGS:${FFLAGS}:g" \
- -e "s:GENTOO_LDFLAGS:${LDFLAGS}:g" \
- -e "s:fc=g77:fc=$(tc-getFC):g" \
- -e "s:\$netcdflib:$($(tc-getPKG_CONFIG) netcdf --libs):g" \
- -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
- -i configure || die
- sed -e "s:arsecond_:arscnd_:g" \
- -i sff/time.c \
- -i sff/sff.h \
- -i sff/sff.c || die
- sed -e "s:\$(NAB):\$(NAB) -lrfftw:g" \
- -i nss/Makefile || die
-
- local myconf
-
- use X || myconf="${myconf} -noX11"
-
- use openmp && myconf="${myconf} -openmp"
-
- ./configure \
- ${myconf} \
- -nobintraj \
- -nomdgx \
- -nomtkpp \
- -nopython \
- -nosleap \
- gnu
-}
-
-src_compile() {
- cd "${S}"/AmberTools/src
- emake || die
-}
-
-src_test() {
- cd "${S}"/AmberTools/test
- make test || die
-}
-
-src_install() {
- rm -r bin/chemistry bin/MMPBSA_mods
- rm bin/ante-MMPBSA.py bin/extractFrcmod.py
-
- for x in bin/*
- do dobin ${x} || die
- done
-
- dobin AmberTools/src/antechamber/mopac.sh
- sed -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
- -i "${ED}/usr/bin/mopac.sh" || die
-
- # Make symlinks untill binpath for amber will be fixed
- dodir /usr/share/${PN}/bin
- cd "${ED}/usr/bin"
- for x in *
- do dosym /usr/bin/${x} /usr/share/${PN}/bin/${x}
- done
- cd "${S}"
-
- dodoc doc/AmberTools.pdf doc/leap_pg.pdf
- dolib.a lib/*
- insinto /usr/include/${PN}
- doins include/*
- insinto /usr/share/${PN}
- doins -r dat
- cd AmberTools
- doins -r benchmarks
- doins -r examples
- doins -r test
-
- cat >> "${T}"/99ambertools <<- EOF
- AMBERHOME="${EPREFIX}/usr/share/ambertools"
- EOF
- doenvd "${T}"/99ambertools
-}
diff --git a/sci-chemistry/ambertools/ambertools-12.ebuild b/sci-chemistry/ambertools/ambertools-12_p38.ebuild
similarity index 75%
rename from sci-chemistry/ambertools/ambertools-12.ebuild
rename to sci-chemistry/ambertools/ambertools-12_p38.ebuild
index fe192dc..55acf2b 100644
--- a/sci-chemistry/ambertools/ambertools-12.ebuild
+++ b/sci-chemistry/ambertools/ambertools-12_p38.ebuild
@@ -9,7 +9,8 @@ inherit eutils fortran-2 multilib toolchain-funcs
DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
HOMEPAGE="http://ambermd.org/#AmberTools"
SRC_URI="
- AmberTools${PV}.tar.bz2"
+ AmberTools${PV%_p*}.tar.bz2
+ http://dev.gentoo.org/~jlec/distfiles/${PN}-bugfixes-${PV}.tar.xz"
LICENSE="GPL-2"
SLOT="0"
@@ -37,8 +38,9 @@ DEPEND="${RDEPEND}
S="${WORKDIR}/amber12"
pkg_nofetch() {
- einfo "Go to ${HOMEPAGE} and get ${A}"
- einfo "Place it in ${DISTDIR}"
+ einfo "Go to ${HOMEPAGE} and get AmberTools${PV%_p*}.tar.bz2"
+ einfo "and download http://dev.gentoo.org/~jlec/distfiles/${PN}-bugfixes-${PV}.tar.xz"
+ einfo "Place both into ${DISTDIR}"
}
pkg_setup() {
@@ -52,9 +54,9 @@ pkg_setup() {
src_prepare() {
epatch \
- "${FILESDIR}/${P}-bugfix_14-26.patch" \
- "${FILESDIR}/${P}-gentoo.patch"
- cd "${S}"/AmberTools/src
+ "${FILESDIR}"/${PN}-12-gentoo.patch \
+ "${WORKDIR}"/bugfixes/bugfix.{14..38}
+ cd "${S}"/AmberTools/src || die
rm -r \
arpack \
blas \
@@ -70,7 +72,7 @@ src_prepare() {
}
src_configure() {
- cd "${S}"/AmberTools/src
+ cd "${S}"/AmberTools/src || die
sed \
-e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
-e "s:\\\\\$(LIBDIR)/lapack.a:$($(tc-getPKG_CONFIG) lapack --libs) -lclapack:g" \
@@ -87,10 +89,10 @@ src_configure() {
-e "s:\$netcdfflag:$($(tc-getPKG_CONFIG) netcdf --libs):g" \
-e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
-i configure2 || die
- sed -e "s:arsecond_:arscnd_:g" \
- -i sff/time.c \
- -i sff/sff.h \
- -i sff/sff.c || die
+
+ sed \
+ -e "s:arsecond_:arscnd_:g" \
+ -i sff/time.c sff/sff.h sff/sff.c || die
local myconf="--no-updates"
@@ -98,12 +100,17 @@ src_configure() {
use openmp && myconf="${myconf} -openmp"
- cd "${S}"
+ cd "${S}" || die
+
+ sed \
+ -e '/patch_amber.py/d' \
+ -i configure || die
+
./configure \
${myconf} \
-nobintraj \
-nomtkpp \
- gnu
+ gnu || die
}
src_test() {
@@ -115,8 +122,14 @@ src_test() {
emake test
}
+src_compile() {
+ emake \
+ CC=$(tc-getCC) \
+ FC=$(tc-getFC)
+}
+
src_install() {
- rm bin/*.py
+ rm bin/*.py || die
for x in bin/*
do
@@ -124,16 +137,17 @@ src_install() {
done
dobin AmberTools/src/antechamber/mopac.sh
- sed -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
+ sed \
+ -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
-i "${ED}/usr/bin/mopac.sh" || die
# Make symlinks untill binpath for amber will be fixed
dodir /usr/share/${PN}/bin
- cd "${ED}/usr/bin"
+ cd "${ED}/usr/bin" || die
for x in *
- do dosym /usr/bin/${x} /usr/share/${PN}/bin/${x}
+ do dosym /usr/bin/${x} ../share/${PN}/bin/${x}
done
- cd "${S}"
+ cd "${S}" || die
dodoc doc/AmberTools12.pdf
dolib.a lib/*
@@ -141,10 +155,8 @@ src_install() {
doins include/*
insinto /usr/share/${PN}
doins -r dat
- cd AmberTools
- doins -r benchmarks
- doins -r examples
- doins -r test
+ cd AmberTools || die
+ doins -r benchmarks examples test
cat >> "${T}"/99ambertools <<- EOF
AMBERHOME="${EPREFIX}/usr/share/ambertools"
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_1-21.patch b/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_1-21.patch
deleted file mode 100644
index 911bc4d..0000000
--- a/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_1-21.patch
+++ /dev/null
@@ -1,5330 +0,0 @@
-diff -urN amber11.orig/AmberTools/src/configure amber11/AmberTools/src/configure
---- amber11.orig/AmberTools/src/configure 2011-04-14 15:30:55.000000000 +0300
-+++ amber11/AmberTools/src/configure 2011-10-25 15:01:28.222288537 +0300
-@@ -650,7 +650,7 @@
- if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
- pmemd_cu_includes='-I$(CUDA_HOME)/include -IB40C -IB40C/KernelCommon'
- pmemd_cu_defines='-DCUDA'
-- pmemd_cu_libs='-L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcufft -lcudart ./cuda/cuda.a'
-+ pmemd_cu_libs='-L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcurand -lcufft -lcudart ./cuda/cuda.a'
- if [ "$optimise" = 'no' ]; then
- nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O0 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20'
- else
-@@ -909,7 +909,7 @@
-
- pmemd_cu_includes='-I$(CUDA_HOME)/include -IB40C -IB40C/KernelCommon'
- pmemd_cu_defines='-DCUDA'
-- pmemd_cu_libs='-L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcufft -lcudart ./cuda/cuda.a'
-+ pmemd_cu_libs='-L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcurand -lcufft -lcudart ./cuda/cuda.a'
- if [ "$optimise" = 'yes' ]; then
- nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O3 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20'
- else
-@@ -2111,21 +2111,21 @@
- echo "Change to \$AMBERHOME/src/ and type 'make clean' followed by"
- echo "'make parallel_win'."
- elif [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-- echo "The next step is to cd to ../../src and type 'make install'"
-+ echo "The next step is to cd to ../../src and type 'make $installtype'"
- else
- echo "If you have amber11, the most common next step is to "
-- echo "'cd ../../src; make clean; make install'. See the Users' Manual"
-+ echo "'cd ../../src; make clean; make $installtype'. See the Users' Manual"
- echo "for information on building a parallel version of AmberTools"
- fi
- elif [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-- echo "The next step is to cd to ../../src and type 'make install'"
-+ echo "The next step is to cd to ../../src and type 'make $installtype'"
- elif [ "$windows" = 'yes' ]; then
- echo "The next step is to switch to a dos shell with ifort enabled."
- echo "Change to \$AMBERHOME/src/ and type 'make serial_win'."
- elif [ "$openmp" = 'yes' ]; then
- echo "The next step is to type 'make nabonly'"
- else
-- echo "The next step is to type 'make install'"
-+ echo "The next step is to type 'make $installtype'"
- fi
- echo " "
-
-@@ -2149,7 +2149,7 @@
- echo " NOTE: after installing AmberTools, if you want to compile"
- echo " Amber11 using AmberTools 1.5, you must run the "
- echo " AT15_Amber11.py script first, e.g.:"
-- echo " cd $AMBERHOME; ./AT15_Amber11.py; make $installtype"
-+ echo " cd $AMBERHOME; ./AT15_Amber11.py; cd src; make $installtype"
- echo " (See the Amber11 Users' Manual for full instructions,"
- echo " and be sure to have a backup, since the AT15_Amber11.py"
- echo " script will modify your Amber11 files.)"
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Center.cpp amber11/AmberTools/src/cpptraj/src/Action_Center.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/Action_Center.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Action_Center.cpp 2011-10-25 15:01:28.108288642 +0300
-@@ -72,7 +72,7 @@
- // else
- // mass = NULL;
-
-- if (!origin && P->ifbox==0) {
-+ if (!origin && P->BoxType==0) {
- mprintf(" Error: Center::setup: Box center specified but no box information.\n");
- //fprintf(stdout," Centering on origin.\n");
- return 1;
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Closest.cpp amber11/AmberTools/src/cpptraj/src/Action_Closest.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/Action_Closest.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Action_Closest.cpp 2011-10-25 15:01:28.108288642 +0300
-@@ -181,8 +181,8 @@
- // NOTE: Should box be figured out from read-in coords?
- imageType = 0;
- if (!noimage) {
-- imageType = P->ifbox;
-- if (P->ifbox==0) {
-+ imageType = P->BoxType;
-+ if (P->BoxType==0) {
- mprintf(" Warning: Closest::setup: ");
- mprintf(" Imaging specified but no box information in prmtop %s\n",P->parmName);
- mprintf(" No imaging can occur..\n");
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Distance.cpp amber11/AmberTools/src/cpptraj/src/Action_Distance.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/Action_Distance.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Action_Distance.cpp 2011-10-25 15:01:28.194288563 +0300
-@@ -57,8 +57,6 @@
- mprintf(" DISTANCE: %s to %s",Mask1.maskString, Mask2.maskString);
- if (noimage)
- mprintf(", non-imaged");
-- else
-- mprintf(", imaged");
- if (useMass)
- mprintf(", center of mass");
- else
-@@ -68,6 +66,11 @@
- return 0;
- }
-
-+/*
-+ * Distance::setup()
-+ * Determine what atoms each mask pertains to for the current parm file.
-+ * Also determine whether imaging should be performed.
-+ */
- int Distance::setup() {
-
- if ( Mask1.SetupMask(P,debug) ) return 1;
-@@ -89,11 +92,19 @@
- // Check imaging - check box based on prmtop box
- imageType = 0;
- if (!noimage) {
-- imageType = P->ifbox;
-- if (P->ifbox==0 && debug>0) {
-+ imageType = P->BoxType;
-+ if (P->BoxType==0 && debug>0) {
- mprintf(" Warning: No box info in %s, disabling imaging.\n",P->parmName);
- }
- }
-+
-+ // Print imaging info for this parm
-+ mprintf(" DISTANCE: %s to %s",Mask1.maskString, Mask2.maskString);
-+ if (imageType > 0)
-+ mprintf(", imaged");
-+ else
-+ mprintf(", imaging off");
-+ mprintf(".\n");
-
- return 0;
- }
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_DSSP.cpp amber11/AmberTools/src/cpptraj/src/Action_DSSP.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/Action_DSSP.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Action_DSSP.cpp 2011-10-25 15:01:28.195288561 +0300
-@@ -76,7 +76,7 @@
- int selected, atom, res;
- Residue RES;
-
-- // Set up mask
-+ // Set up mask for this parm
- if ( Mask.SetupMask(P,debug) ) return 1;
- if ( Mask.None() ) {
- mprintf(" Error: DSSP::setup: Mask has no atoms.\n");
-@@ -90,25 +90,25 @@
- Nres=P->nres;
- //mprintf(" DSSP: Setting up for %i residues.\n",Nres);
-
-- // Free up SecStruct if previously allocated.
-- // NOTE: In action setup, should check if Parm has really changed...
-- SecStruct.clear();
-+ // Set up for each residue of the current Parm if not already set-up.
- for (res = 0; res < Nres; res++) {
-- RES.sstype=SECSTRUCT_NULL;
-- RES.isSelected=false;
-- RES.C=-1;
-- RES.O=-1;
-- RES.N=-1;
-- RES.H=-1;
-- RES.CO_HN_Hbond.assign( Nres, 0 );
-- RES.SSprob[0]=0.0;
-- RES.SSprob[1]=0.0;
-- RES.SSprob[2]=0.0;
-- RES.SSprob[3]=0.0;
-- RES.SSprob[4]=0.0;
-- RES.SSprob[5]=0.0;
-- RES.SSprob[6]=0.0;
-- SecStruct.push_back(RES);
-+ if (res>=(int)SecStruct.size()) {
-+ RES.sstype=SECSTRUCT_NULL;
-+ RES.isSelected=false;
-+ RES.C=-1;
-+ RES.O=-1;
-+ RES.N=-1;
-+ RES.H=-1;
-+ RES.CO_HN_Hbond.assign( Nres, 0 );
-+ RES.SSprob[0]=0.0;
-+ RES.SSprob[1]=0.0;
-+ RES.SSprob[2]=0.0;
-+ RES.SSprob[3]=0.0;
-+ RES.SSprob[4]=0.0;
-+ RES.SSprob[5]=0.0;
-+ RES.SSprob[6]=0.0;
-+ SecStruct.push_back(RES);
-+ }
- }
-
- // Go through all atoms in mask. Set up a residue for each C, O, N, and H atom
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Image.cpp amber11/AmberTools/src/cpptraj/src/Action_Image.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/Action_Image.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Action_Image.cpp 2011-10-25 15:01:28.110288640 +0300
-@@ -98,14 +98,14 @@
- useMass = false;
- }
-
-- if (P->ifbox==0) {
-+ if (P->BoxType==0) {
- mprintf(" Error: Image::setup: Parm %s does not contain box information.\n",
- P->parmName);
- return 1;
- }
-
- ortho = false;
-- if (P->ifbox==1 && triclinic==OFF) ortho=true;
-+ if (P->BoxType==1 && triclinic==OFF) ortho=true;
-
- if (triclinic == FAMILIAR) {
- if (ComMask!=NULL) {
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Outtraj.cpp amber11/AmberTools/src/cpptraj/src/Action_Outtraj.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/Action_Outtraj.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Action_Outtraj.cpp 2011-10-25 15:01:28.129288623 +0300
-@@ -6,6 +6,9 @@
- // CONSTRUCTOR
- Outtraj::Outtraj() {
- //fprintf(stderr,"Outtraj Con\n");
-+ min=0.0;
-+ max=0.0;
-+ Dset=NULL;
- }
-
- // DESTRUCTOR
-@@ -13,11 +16,40 @@
-
- /*
- * Outtraj::init()
-- * Action wrapper for trajout
-+ * Action wrapper for trajout.
-+ * Expected call: outtraj <filename> [ trajout args ]
-+ * [maxmin <dataset> min <min> max <max>
- */
- int Outtraj::init() {
-+ char *datasetName;
-+
-+#ifdef MPI
-+ mprintf("ERROR: OUTTRAJ currently not functional with MPI.\n");
-+ return 1;
-+#endif
-+
-+ mprintf(" OUTTRAJ: Will write to [%s]\n",A->Arg(1));
-+ outtraj.SetDebug(debug);
-+ // If maxmin, get the name of the dataset as well as the max and min values.
-+ datasetName = A->getKeyString("maxmin",NULL);
-+ if (datasetName!=NULL) {
-+ Dset = DSL->Get(datasetName);
-+ if (Dset==NULL) {
-+ mprintf("Error: Outtraj maxmin: Could not get dataset %s\n",datasetName);
-+ return 1;
-+ } else {
-+ // Currently dont allow for string datasets
-+ if (Dset->Type()==STRING) {
-+ mprintf("Error: Outtraj maxmin: String dataset (%s) not supported.\n",datasetName);
-+ return 1;
-+ }
-+ max = A->getKeyDouble("max",0.0);
-+ min = A->getKeyDouble("min",0.0);
-+ mprintf(" maxmin: Printing trajectory frames based on %lf <= %s <= %lf\n",
-+ min, datasetName, max);
-+ }
-+ }
-
-- mprintf(" OUTTRAJ: [%s]\n",A->ArgLine());
- return ( outtraj.Add(A,PFL,worldsize) );
- }
-
-@@ -33,8 +65,32 @@
- * Outtraj::action()
- */
- int Outtraj::action() {
-+ double dVal;
-+ int iVal;
-
-- return ( outtraj.Write(currentFrame, F, P) );
-+ // If dataset defined, check if frame is within max/min
-+ if (Dset!=NULL) {
-+ if (Dset->Type() == DOUBLE) {
-+ if (Dset->Get(&dVal, currentFrame)) return 1;
-+ } else if (Dset->Type() == INT) {
-+ if (Dset->Get(&iVal, currentFrame)) return 1;
-+ dVal = (double) iVal;
-+ } else
-+ return 1;
-+ //mprintf("DBG: maxmin: dVal = %lf\n",dVal);
-+ // If value from dataset not within min/max, exit now.
-+ if (dVal < min || dVal > max) return 0;
-+ }
-+ if ( outtraj.Write(currentFrame, F, P) != 0 ) return 1;
-+ return 0;
- }
-
-+/*
-+ * Outtraj::print()
-+ * Close trajectory.
-+ */
-+void Outtraj::print() {
-+ mprintf(" OUTTRAJ: [%s] Wrote %i frames.\n",A->Arg(1),outtraj.front()->CurrentFrame());
-+ outtraj.Close();
-+}
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Outtraj.h amber11/AmberTools/src/cpptraj/src/Action_Outtraj.h
---- amber11.orig/AmberTools/src/cpptraj/src/Action_Outtraj.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Action_Outtraj.h 2011-10-25 15:01:28.129288623 +0300
-@@ -6,6 +6,9 @@
-
- class Outtraj: public Action {
- TrajoutList outtraj;
-+ double max;
-+ double min;
-+ DataSet *Dset;
- public:
- Outtraj();
- ~Outtraj();
-@@ -13,5 +16,6 @@
- int init();
- //int setup();
- int action();
-+ void print();
- };
- #endif
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Rms2d.cpp amber11/AmberTools/src/cpptraj/src/Action_Rms2d.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/Action_Rms2d.cpp 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Action_Rms2d.cpp 2011-10-25 15:01:28.074288674 +0300
-@@ -0,0 +1,71 @@
-+// Rms2d
-+#include "Action_Rms2d.h"
-+#include "CpptrajStdio.h"
-+
-+// CONSTRUCTOR
-+Rms2d::Rms2d() {
-+ //fprintf(stderr,"Rms2d Con\n");
-+ nofit=false;
-+ useMass=false;
-+}
-+
-+// DESTRUCTOR
-+Rms2d::~Rms2d() { }
-+
-+/*
-+ * Rms2d::init()
-+ * Expected call: rms2d <mask> <refmask> [rmsout filename] [mass] [nofit]
-+ * Dataset name will be the last arg checked for. Check order is:
-+ * 1) Keywords
-+ * 2) Masks
-+ * 3) Dataset name
-+ */
-+int Rms2d::init() {
-+ char *mask0, *maskRef;
-+
-+ // Get keywords
-+ nofit = A->hasKey("nofit");
-+ useMass = A->hasKey("mass");
-+ rmsdFile = A->getKeyString("rmsout",NULL);
-+
-+ // Get the RMS mask string for frames
-+ mask0 = A->getNextMask();
-+ FrameMask.SetMaskString(mask0);
-+ // Get RMS mask string for reference
-+ maskRef = A->getNextMask();
-+ // If no reference mask specified, make same as RMS mask
-+ if (maskRef==NULL) maskRef=mask0;
-+ RefMask.SetMaskString(maskRef);
-+
-+ mprintf(" RMS2D: (%s) to (%s)",FrameMask.maskString,RefMask.maskString);
-+ if (nofit)
-+ mprintf(" (no fitting)");
-+ if (useMass)
-+ mprintf(" (mass-weighted)");
-+ if (rmsdFile!=NULL)
-+ mprintf(" output to %s",rmsdFile);
-+ mprintf("\n");
-+
-+ return 0;
-+}
-+
-+/*
-+ * Rms2d::setup()
-+ * Not important for Rms2d, initial pass is only for storing frames.
-+ */
-+int Rms2d::setup() {
-+ return 0;
-+}
-+
-+/*
-+ * Rms2d::action()
-+ * Store current frame as a reference frame.
-+ */
-+int Rms2d::action() {
-+
-+ ReferenceFrames.Add(F,P);
-+
-+ return 0;
-+}
-+
-+
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Rms2d.h amber11/AmberTools/src/cpptraj/src/Action_Rms2d.h
---- amber11.orig/AmberTools/src/cpptraj/src/Action_Rms2d.h 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Action_Rms2d.h 2011-10-25 15:01:28.075288673 +0300
-@@ -0,0 +1,21 @@
-+#ifndef INC_ACTION_RMS2D_H
-+#define INC_ACTION_RMS2D_H
-+// Rms2d
-+#include "Action.h"
-+
-+class Rms2d: public Action {
-+ FrameList ReferenceFrames;
-+ bool nofit;
-+ bool useMass;
-+ AtomMask RefMask;
-+ AtomMask FrameMask;
-+ char *rmsdFile;
-+ public:
-+ Rms2d();
-+ ~Rms2d();
-+
-+ int init();
-+ int setup();
-+ int action();
-+};
-+#endif
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Action_Rmsd.cpp amber11/AmberTools/src/cpptraj/src/Action_Rmsd.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/Action_Rmsd.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Action_Rmsd.cpp 2011-10-25 15:01:28.229288531 +0300
-@@ -256,6 +256,7 @@
- PerResRMSD=new DataSetList();
- resName[4]='\0';
- for (it=ResRange.begin(); it!=ResRange.end(); it++) {
-+ //res = *it - 1; // res is the internal resnumber, *it the user resnumber
- // Get corresponding reference resnum - if none specified use current res
- if (RefRange.empty())
- refRes = (*it);
-@@ -263,7 +264,18 @@
- refRes = RefRange.front();
- RefRange.pop_front();
- }
-- //res = *it - 1; // res is the internal resnumber, *it the user resnumber
-+
-+ // Check if either the residue num or the reference residue num out of range.
-+ if ( (*it) < 1 || (*it) > P->nres) {
-+ mprintf(" Warning: Rmsd: perres: Specified residue # %i is out of range.\n",*it);
-+ continue;
-+ }
-+ if ( refRes < 1 || refRes > P->nres ) {
-+ mprintf(" Warning: Rmsd: perres: Specified reference residue # %i is out of range.\n",
-+ refRes);
-+ continue;
-+ }
-+
- // Setup Dataset Name to be name of this residue
- P->ResName(resName,(*it)-1);
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberNetcdf.cpp amber11/AmberTools/src/cpptraj/src/AmberNetcdf.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/AmberNetcdf.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/AmberNetcdf.cpp 2011-10-25 15:01:28.131288621 +0300
-@@ -49,6 +49,7 @@
- * and close calls.
- */
- void AmberNetcdf::close() {
-+ if (ncid<0) return;
- checkNCerr(nc_close(ncid),"Closing netcdf file.");
- if (debug>0) rprintf("Successfully closed ncid %i\n",ncid);
- ncid=-1;
-@@ -92,8 +93,10 @@
- * Open the netcdf file, read all dimension and variable IDs, close.
- */
- int AmberNetcdf::SetupRead() {
-- char *attrText; // For checking conventions and version
-- int spatial; // For checking spatial dimensions
-+ char *attrText; // For checking conventions and version
-+ int spatial; // For checking spatial dimensions
-+ double box[6]; // For checking box type
-+ size_t start[3], count[3]; // For checking box type
-
- if (open()) return 1;
-
-@@ -147,15 +150,15 @@
- if ( nc_inq_varid(ncid,"cell_lengths",&cellLengthVID)==NC_NOERR ) {
- if (checkNCerr(nc_inq_varid(ncid,"cell_angles",&cellAngleVID),
- "Getting cell angles.")!=0) return 1;
-- if (debug>0) mprintf(" Netcdf Box information found.\n");
-- if (P->ifbox==0) {
-- mprintf("Warning: Netcdf file contains box info but no box info found\n");
-- mprintf(" in associated parmfile %s; defaulting to orthogonal.\n",
-- P->parmName);
-- isBox=1;
-- } else {
-- isBox=P->ifbox;
-- }
-+ if (debug>0) mprintf(" Netcdf Box information found.\n");
-+ // Determine box type from angles
-+ start[0]=0; start[1]=0; start[2]=0;
-+ count[0]=1; count[1]=3; count[2]=0;
-+ if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, box),
-+ "Getting cell lengths.")!=0 ) return 1;
-+ if ( checkNCerr(nc_get_vara_double(ncid, cellAngleVID, start, count, box+3),
-+ "Getting cell angles.")!=0 ) return 1;
-+ CheckBoxType(box);
- }
-
- // Replica Temperatures
-@@ -258,7 +261,7 @@
- "Defining cell angular variable.")) return 1;
-
- // Box Info
-- if (isBox>0) {
-+ if (BoxType!=0) {
- dimensionID[0]=frameDID;
- dimensionID[1]=cell_spatialDID;
- if (checkNCerr(nc_def_var(ncid,"cell_lengths",NC_DOUBLE,2,dimensionID,&cellLengthVID),
-@@ -362,7 +365,7 @@
- "Getting frame %i",set)!=0 ) return 1;
-
- // Read box info
-- if (isBox!=0) {
-+ if (BoxType!=0) {
- count [1]=3;
- count [2]=0;
- if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, F->box),
-@@ -399,7 +402,7 @@
- F->frameToFloat(Coord);
-
- // write coords
-- start[0]=set;
-+ start[0]=currentFrame;
- start[1]=0;
- start[2]=0;
- count[0]=1;
-@@ -409,7 +412,7 @@
- "Netcdf Writing frame %i",set)) return 1;
-
- // write box
-- if (isBox>0 && cellLengthVID!=-1) {
-+ if (BoxType!=0 && cellLengthVID!=-1) {
- count[1]=3;
- count[2]=0;
- if (checkNCerr(nc_put_vara_double(ncid,cellLengthVID,start,count,F->box),
-@@ -427,6 +430,8 @@
-
- nc_sync(ncid); // Necessary after every write??
-
-+ currentFrame++;
-+
- return 0;
- }
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberParm.cpp amber11/AmberTools/src/cpptraj/src/AmberParm.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/AmberParm.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/AmberParm.cpp 2011-10-25 15:01:28.231288529 +0300
-@@ -1,6 +1,12 @@
- /* AmberParm.cpp
-- * Class that holds parameter information. Can be read in from Amber Topology
-- * or PDB files.
-+ * Class that holds parameter information. Can be read in from Amber Topology,
-+ * PDB, or Mol2 files (implemented in the ReadParmXXX functions). The following
-+ * parameters of AmberParm must always be set:
-+ * The NATOM, NRES, and IFBOX entries of the values array.
-+ * The names, resnames, resnums arrays.
-+ * The natom and nres variables.
-+ * NOTES:
-+ * Eventually make the mol2 read parm function use the AddBond function.
- */
- #include <cstdlib>
- #include <cstring>
-@@ -11,7 +17,7 @@
- #include "CpptrajStdio.h"
-
- #define AMBERPOINTERS 31
--
-+#define TRUNCOCTBETA 109.4712206344906917365733534097672
- #define ELECTOAMBER 18.2223
- #define AMBERTOELEC 1/ELECTOAMBER
- // =============================================================
-@@ -21,7 +27,7 @@
- * Given a residue number, set buffer with residue name. Replace blanks with _
- */
- void AmberParm::ResName(char *buffer, int res) {
-- if (res<0 || res>nres) return;
-+ if (res<0 || res>=nres) return;
- strcpy(buffer, resnames[res]);
- if (buffer[3]==' ') buffer[3]='_';
- }
-@@ -203,7 +209,9 @@
- bondsh=NULL;
- types=NULL;
- atomsPerMol=NULL;
-- Box=NULL;
-+ Box[0]=0.0; Box[1]=0.0; Box[2]=0.0;
-+ Box[3]=0.0; Box[4]=0.0; Box[5]=0.0;
-+ BoxType=0;
- pindex=0;
- parmFrames=0;
- outFrame=0;
-@@ -217,7 +225,6 @@
- solventMoleculeStop=NULL;
- natom=0;
- nres=0;
-- ifbox=0;
- parmName=NULL;
- SurfaceInfo=NULL;
- }
-@@ -234,7 +241,6 @@
- if (bonds!=NULL) free(bonds);
- if (bondsh!=NULL) free(bondsh);
- if (atomsPerMol!=NULL) free(atomsPerMol);
-- if (Box!=NULL) free(Box);
- if (solventMoleculeStart!=NULL) free(solventMoleculeStart);
- if (solventMoleculeStop!=NULL) free(solventMoleculeStop);
- if (solventMask!=NULL) free(solventMask);
-@@ -271,54 +277,7 @@
- return NULL;
- }
-
--/*
-- * AmberParm::OpenParm()
-- * Attempt to open file and read in parameters.
-- */
--int AmberParm::OpenParm(char *filename) {
-- if ( File.SetupFile(filename,READ,UNKNOWN_FORMAT, UNKNOWN_TYPE,debug) ) return 1;
--
-- // Copy parm filename to parmName. Separate from File.filename in case of stripped parm
-- parmName=(char*) malloc( (strlen(File.basefilename)+1) * sizeof(char));
-- strcpy(parmName,File.basefilename);
--
-- if ( File.OpenFile() ) return 1;
--
-- switch (File.fileFormat) {
-- case AMBERPARM : if (ReadParmAmber()) return 1; break;
-- case PDBFILE : if (ReadParmPDB() ) return 1; break;
-- case MOL2FILE : if (ReadParmMol2() ) return 1; break;
-- default:
-- rprintf("Unknown parameter file type: %s\n",File.filename);
-- return 1;
-- }
--
-- File.CloseFile();
--
-- // Create a last dummy residue in resnums that holds natom, which would be
-- // the atom number of the next residue if it existed. Atom #s in resnums
-- // should correspond with cpptraj atom #s (start from 0) instead of Amber
-- // atom #s (start from 1).
-- // Do this to be consistent with ptrajmask selection behavior - saves an
-- // if-then statement.
-- resnums=(int*) realloc(resnums,(nres+1)*sizeof(int));
-- resnums[nres]=natom;
-- // DEBUG
-- //fprintf(stdout,"==== DEBUG ==== Resnums for %s:\n",File.filename);
-- //for (err=0; err<nres; err++)
-- // fprintf(stdout," %i: %i\n",err,resnums[err]);
--
-- // Set up solvent information
-- SetSolventInfo();
--
-- if (debug>0) {
-- mprintf(" Number of atoms= %i\n",natom);
-- mprintf(" Number of residues= %i\n",nres);
-- }
--
-- return 0;
--}
--
-+// ---------========= ROUTINES PERTAINING TO SURFACE AREA =========---------
- /*
- * AmberParm::AssignLCPO()
- * Assign parameters for LCPO method. All radii are incremented by 1.4 Ang.
-@@ -478,6 +437,7 @@
- return 0;
- }
-
-+// ---------========= ROUTINES PERTAINING TO SOLVENT INFO =========---------
- /*
- * AmberParm::SetSolventInfo()
- * Assuming atomsPerMol has been read in, set solvent information.
-@@ -536,7 +496,56 @@
-
- return 0;
- }
--
-+
-+// --------========= ROUTINES PERTAINING TO READING PARAMETERS =========--------
-+/*
-+ * AmberParm::OpenParm()
-+ * Attempt to open file and read in parameters.
-+ */
-+int AmberParm::OpenParm(char *filename) {
-+ if ( File.SetupFile(filename,READ,UNKNOWN_FORMAT, UNKNOWN_TYPE,debug) ) return 1;
-+
-+ // Copy parm filename to parmName. Separate from File.filename in case of stripped parm
-+ parmName=(char*) malloc( (strlen(File.basefilename)+1) * sizeof(char));
-+ strcpy(parmName,File.basefilename);
-+
-+ if ( File.OpenFile() ) return 1;
-+
-+ switch (File.fileFormat) {
-+ case AMBERPARM : if (ReadParmAmber()) return 1; break;
-+ case PDBFILE : if (ReadParmPDB() ) return 1; break;
-+ case MOL2FILE : if (ReadParmMol2() ) return 1; break;
-+ default:
-+ rprintf("Unknown parameter file type: %s\n",File.filename);
-+ return 1;
-+ }
-+
-+ File.CloseFile();
-+
-+ // Create a last dummy residue in resnums that holds natom, which would be
-+ // the atom number of the next residue if it existed. Atom #s in resnums
-+ // should correspond with cpptraj atom #s (start from 0) instead of Amber
-+ // atom #s (start from 1).
-+ // Do this to be consistent with ptrajmask selection behavior - saves an
-+ // if-then statement.
-+ resnums=(int*) realloc(resnums,(nres+1)*sizeof(int));
-+ resnums[nres]=natom;
-+ // DEBUG
-+ //fprintf(stdout,"==== DEBUG ==== Resnums for %s:\n",File.filename);
-+ //for (err=0; err<nres; err++)
-+ // fprintf(stdout," %i: %i\n",err,resnums[err]);
-+
-+ // Set up solvent information
-+ SetSolventInfo();
-+
-+ if (debug>0) {
-+ mprintf(" Number of atoms= %i\n",natom);
-+ mprintf(" Number of residues= %i\n",nres);
-+ }
-+
-+ return 0;
-+}
-+
- /*
- * AmberParm::ReadParmAmber()
- * Read parameters from Amber Topology file
-@@ -544,6 +553,7 @@
- int AmberParm::ReadParmAmber() {
- int err, atom;
- int *solvent_pointer;
-+ double *boxFromParm;
-
- if (debug>0) mprintf("Reading Amber Topology file %s\n",parmName);
-
-@@ -555,7 +565,6 @@
-
- natom=values[NATOM];
- nres=values[NRES];
-- ifbox=values[IFBOX];
- if (debug>0)
- mprintf(" Amber top contains %i atoms, %i residues.\n",natom,nres);
-
-@@ -583,7 +592,8 @@
- if (bonds==NULL) {mprintf("Error in bonds w/o H.\n"); err++;}
- bondsh=(int*) getFlagFileValues("BONDS_INC_HYDROGEN",values[NBONH]*3);
- if (bondsh==NULL) {mprintf("Error in bonds inc H.\n"); err++;}
-- if (ifbox>0) {
-+ // Get solvent info if IFBOX>0
-+ if (values[IFBOX]>0) {
- solvent_pointer=(int*) getFlagFileValues("SOLVENT_POINTERS",3);
- if (solvent_pointer==NULL) {
- mprintf("Error in solvent pointers.\n");
-@@ -596,12 +606,20 @@
- }
- atomsPerMol=(int*) getFlagFileValues("ATOMS_PER_MOLECULE",molecules);
- if (atomsPerMol==NULL) {mprintf("Error in atoms per molecule.\n"); err++;}
-- Box=(double*) getFlagFileValues("BOX_DIMENSIONS",4);
-- if (Box==NULL) {mprintf("Error in Box information.\n"); err++;}
-+ // boxFromParm = {OLDBETA, BOX(1), BOX(2), BOX(3)}
-+ boxFromParm=(double*) getFlagFileValues("BOX_DIMENSIONS",4);
-+ if (boxFromParm==NULL) {mprintf("Error in Box information.\n"); err++;}
-+ // Determine box type: 1-Ortho, 2-Nonortho
-+ SetBoxInfo(boxFromParm[0],boxFromParm[1],boxFromParm[2],boxFromParm[3]);
-+ free(boxFromParm);
- if (debug>0) {
- mprintf(" %s contains box info: %i mols, first solvent mol is %i\n",
- parmName, molecules, firstSolvMol);
-- mprintf(" BOX: %lf %lf %lf %lf\n",Box[0],Box[1],Box[2],Box[3]);
-+ mprintf(" BOX: %lf %lf %lf | %lf %lf %lf\n",Box[0],Box[1],Box[2],Box[3],Box[4],Box[5]);
-+ if (BoxType==1)
-+ mprintf(" Box is orthogonal.\n");
-+ else
-+ mprintf(" Box is non-orthogonal.\n");
- }
- }
-
-@@ -686,6 +704,7 @@
- values = (int*) calloc(AMBERPOINTERS, sizeof(int));
- values[NATOM] = natom;
- values[NRES] = nres;
-+ values[IFBOX] = 0;
-
- if (debug>0)
- mprintf(" PDB contains %i atoms, %i residues, %i molecules.\n",
-@@ -799,6 +818,7 @@
- values[NRES] = nres;
- values[NBONH] = numbondsh;
- values[MBONA] = numbonds;
-+ values[IFBOX] = 0;
-
- mprintf(" Mol2 contains %i atoms, %i residues,\n", natom,nres);
- mprintf(" %i bonds to H, %i other bonds.\n", numbondsh,numbonds);
-@@ -806,6 +826,61 @@
- return 0;
- }
-
-+// ---------===========================================================---------
-+/*
-+ * AmberParm::SetBoxInfo()
-+ * Given 3 box lengths and an angle determine the box type and set
-+ * the box information. If called with negative beta, set no box.
-+ * Currently recognized betas:
-+ * 90.00 - Orthogonal
-+ * 109.47 - Truncated octahedral
-+ * 60.00 - Rhombic dodecahedron
-+ * Any other beta just sets all angles to beta and a warning is printed.
-+ */
-+int AmberParm::SetBoxInfo(double beta, double bx, double by, double bz) {
-+ int ifbox=0;
-+
-+ // Determine box type from beta (none, ortho, non-ortho (truncated oct/triclinic)
-+ if (beta<=0.0) {
-+ if (BoxType>0)
-+ mprintf(" %s: Removing box information.\n",parmName);
-+ BoxType=0;
-+ ifbox=0;
-+ Box[0]=0.0; Box[1]=0.0; Box[2]=0.0;
-+ Box[3]=0.0; Box[4]=0.0; Box[5]=0.0;
-+ } else if (beta == 90.0) {
-+ BoxType=1;
-+ ifbox=1;
-+ Box[0]=bx; Box[1]=by; Box[2]=bz;
-+ Box[3]=90.0; Box[4]=90.0; Box[5]=90.0;
-+ if (debug>0) mprintf(" %s: Setting box to be orthogonal.\n",parmName);
-+ } else if (beta > 109.47 && beta < 109.48) {
-+ BoxType=2;
-+ ifbox=2;
-+ Box[0]=bx; Box[1]=by; Box[2]=bz;
-+ //Box[3] = TRUNCOCTBETA;
-+ Box[3] = beta;
-+ Box[4]=Box[3]; Box[5]=Box[3];
-+ if (debug>0) mprintf(" %s: Setting box to be a truncated octahedron, angle is %lf\n",
-+ parmName,Box[3]);
-+ } else if (beta == 60.0) {
-+ BoxType=2;
-+ ifbox=1;
-+ Box[0]=bx; Box[1]=by; Box[2]=bz;
-+ Box[3]=60.0; Box[4]=90.0; Box[5]=60.0;
-+ if (debug>0)
-+ mprintf(" %s: Setting box to be a rhombic dodecahedron, alpha=gamma=60.0, beta=90.0\n",
-+ parmName);
-+ } else {
-+ BoxType=2;
-+ ifbox=1;
-+ Box[0]=bx; Box[1]=by; Box[2]=bz;
-+ Box[3]=beta; Box[4]=beta; Box[5]=beta;
-+ mprintf(" Warning: %s: Unrecognized box type, beta is %lf\n",beta);
-+ }
-+ return 0;
-+}
-+
- /*
- * AmberParm::AtomInfo()
- * Print parm information for atom.
-@@ -829,8 +904,8 @@
- */
- void AmberParm::Info(char *buffer) {
-
-- sprintf(buffer,"%i atoms, %i res, box %i, %i mol, %i solvent mol, %i frames",
-- natom,nres,ifbox,molecules,solventMolecules,parmFrames);
-+ sprintf(buffer,"%i atoms, %i res, boxtype %i, %i mol, %i solvent mol, %i frames",
-+ natom,nres,BoxType,molecules,solventMolecules,parmFrames);
- }
-
- // NOTE: The following atomToX functions do not do any memory checks!
-@@ -963,6 +1038,7 @@
- return bonds;
- }
-
-+// ---------===========================================================---------
- /*
- * AmberParm::modifyStateByMap()
- * Currently only intended for use with AtomMap.
-@@ -1028,24 +1104,21 @@
- // Set up new parm information
- newParm->natom = this->natom;
- newParm->nres = this->nres;
-- newParm->ifbox = this->ifbox;
- newParm->parmFrames = this->parmFrames;
-
- // Give mapped parm the same pindex as original parm
- newParm->pindex = this->pindex;
-
- // Copy box information
-- if (this->Box!=NULL) {
-- newParm->Box=(double*) malloc(4*sizeof(double));
-- for (int i=0; i<4; i++)
-- newParm->Box[i] = this->Box[i];
-- }
-+ for (int i=0; i<6; i++)
-+ newParm->Box[i] = this->Box[i];
-+ newParm->BoxType=this->BoxType;
-
- // Set values up
- // NOTE: Eventually set all pointers up?
- newParm->values[NATOM] = newParm->natom;
- newParm->values[NRES] = newParm->nres;
-- newParm->values[IFBOX] = newParm->ifbox;
-+ newParm->values[IFBOX] = this->values[IFBOX];
-
- return newParm;
- }
-@@ -1152,7 +1225,6 @@
- // Set up new parm information
- newParm->natom = j;
- newParm->nres = jres+1;
-- newParm->ifbox = this->ifbox;
- newParm->parmFrames = this->parmFrames;
- if (this->molecules>0)
- newParm->molecules = jmol+1;
-@@ -1184,26 +1256,25 @@
- }
-
- // Copy box information
-- if (this->Box!=NULL) {
-- newParm->Box=(double*) malloc(4*sizeof(double));
-- for (i=0; i<4; i++)
-- newParm->Box[i] = this->Box[i];
-- }
-+ for (i=0; i<6; i++)
-+ newParm->Box[i] = this->Box[i];
-+ newParm->BoxType=this->BoxType;
-
- // Set values up
- // NOTE: Eventually set all pointers up?
- newParm->values[NATOM] = newParm->natom;
- newParm->values[NRES] = newParm->nres;
-- newParm->values[IFBOX] = newParm->ifbox;
-+ newParm->values[IFBOX] = this->values[IFBOX];
-
- mprintf(" New parmtop contains %i atoms.\n",newParm->natom);
- mprintf(" %i residues.\n",newParm->nres);
- mprintf(" %i molecules.\n",newParm->molecules);
-- mprintf(" %i solvent molcules.\n",newParm->solventMolecules);
-+ mprintf(" %i solvent molecules.\n",newParm->solventMolecules);
-
- return newParm;
- }
-
-+// ---------===========================================================---------
- /*
- * AmberParm::DataToBuffer()
- * Return char buffer containing N data elements stored in I, D, or C with
-@@ -1267,6 +1338,7 @@
- char *buffer;
- int solvent_pointer[3];
- int atom;
-+ double parmBox[4];
-
- if (parmName==NULL) return 1;
-
-@@ -1346,7 +1418,7 @@
- }
-
- // SOLVENT POINTERS
-- if (ifbox>0) {
-+ if (values[IFBOX]>0) {
- PrintFlagFormat(&outfile, "%FLAG SOLVENT_POINTERS", "%FORMAT(3I8)");
- solvent_pointer[0]=finalSoluteRes;
- solvent_pointer[1]=molecules;
-@@ -1360,8 +1432,12 @@
- outfile.IO->Write(buffer, sizeof(char), BufferSize);
-
- // BOX DIMENSIONS
-+ parmBox[0] = Box[4]; // beta
-+ parmBox[1] = Box[0]; // boxX
-+ parmBox[2] = Box[1]; // boxY
-+ parmBox[3] = Box[2]; // boxZ
- PrintFlagFormat(&outfile, "%FLAG BOX_DIMENSIONS", "%FORMAT(5E16.8)");
-- buffer = DataToBuffer(buffer,"%FORMAT(5E16.8)", NULL, Box, NULL, 4);
-+ buffer = DataToBuffer(buffer,"%FORMAT(5E16.8)", NULL, parmBox, NULL, 4);
- outfile.IO->Write(buffer, sizeof(char), BufferSize);
- }
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberParm.h amber11/AmberTools/src/cpptraj/src/AmberParm.h
---- amber11.orig/AmberTools/src/cpptraj/src/AmberParm.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/AmberParm.h 2011-10-25 15:01:28.117288634 +0300
-@@ -75,14 +75,14 @@
- int *resnums; // IPRES(NRES)
- int natom; // NATOM
- int nres; // NRES
-- int ifbox; // IFBOX
- int finalSoluteRes; // IPTRES
- int molecules; // NSPM
- int firstSolvMol; // NSPSOL
- int *atomsPerMol; // NSP(NSPM)
- double *mass; // AMASS(NATOM)
- double *charge; // CHARGE(NATOM)
-- double *Box; // OLDBETA, BOX(1), BOX(2), BOX(3)
-+ double Box[6]; // X, Y, Z, alpha, beta, gamma
-+ int BoxType; // 0: None, 1: Orthogonal, 2: Non-orthogonal
- // From Ptraj
- char *solventMask; // T for atoms in the solvent
- int solventMolecules; // number of solvent molecules
-@@ -96,6 +96,7 @@
- ~AmberParm();
- void ResName(char *, int);
- int OpenParm(char *);
-+ int SetBoxInfo(double,double,double,double);
- int SetSurfaceInfo();
- int SetSolventInfo();
- void AtomInfo(int);
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberRestart.cpp amber11/AmberTools/src/cpptraj/src/AmberRestart.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/AmberRestart.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/AmberRestart.cpp 2011-10-25 15:01:28.125288626 +0300
-@@ -109,7 +109,7 @@
- frameSize+=frameSize;
-
- // If box coords are present, allocate extra space for them
-- if (isBox>0) {
-+ if (BoxType!=0) {
- numBoxCoords=6;
- frameSize+=((numBoxCoords*12)+1);
- }
-@@ -167,13 +167,12 @@
-
- // If 0 probably at EOF. No box or velo.
- // } else if (lineSize==0) {
-- isBox=0;
-+ BoxType=0;
- hasVelocity=0;
-
- // If 36 or 72 (+1 newline) box info.
- } else if (lineSize==37 || lineSize==73) {
-- isBox=1;
-- numBoxCoords = (lineSize-1) / 12;
-+ getBoxType(frameBuffer,lineSize);
- hasVelocity=0;
-
- // If filled framebuffer again, has velocity info. Check for box after velocity.
-@@ -182,15 +181,14 @@
- if (File->IO->Gets(buffer,82)==0) {
- lineSize=strlen(buffer);
- if (lineSize==37 || lineSize==73) {
-- isBox=1;
-- numBoxCoords = (lineSize-1) / 12;
-+ getBoxType(buffer,lineSize);
- } else {
- mprintf("Error: AmberRestart::SetupRead():\n");
- mprintf(" Expect only 3 or 6 box coords in box coord line.\n");
- return 1;
- }
- } else
-- isBox=0;
-+ BoxType=0;
-
- // Otherwise, who knows what was read?
- } else {
-@@ -202,12 +200,12 @@
-
- // Recalculate the frame size
- if (hasVelocity) frameSize+=frameSize;
-- if (isBox) frameSize+=( (numBoxCoords*12) + 1 );
-+ if (BoxType!=0) frameSize+=( (numBoxCoords*12) + 1 );
- frameBuffer=(char*) realloc(frameBuffer, frameSize*sizeof(char));
-
- if (debug > 0) {
-- mprintf(" Amber Restart isBox=%i hasVelocity=%i numBoxCoords=%i\n",
-- isBox,hasVelocity,numBoxCoords);
-+ mprintf(" Amber Restart BoxType=%i hasVelocity=%i numBoxCoords=%i\n",
-+ BoxType,hasVelocity,numBoxCoords);
- mprintf(" Amber Restart frameSize= %i\n",frameSize);
- }
-
-@@ -221,6 +219,20 @@
- }
-
- /*
-+ * AmberRestart::getBoxType()
-+ * Based on input buffer, determine box type and num box coords.
-+ */
-+void AmberRestart::getBoxType(char *boxline, int boxlineSize) {
-+ double box[6];
-+ numBoxCoords = (boxlineSize-1) / 12;
-+ if (numBoxCoords>3) {
-+ sscanf(boxline, "%8lf%8lf%8lf%8lf%8lf%8lf",box,box+1,box+2,box+3,box+4,box+5);
-+ CheckBoxType(box);
-+ } else
-+ BoxType = P->BoxType;
-+}
-+
-+/*
- * AmberRestart::getFrame()
- * Get the restart file frame. If velocities are present, read those too.
- */
-@@ -251,7 +263,7 @@
- //F->V->printAtomCoord(0);
- }
- // Convert box to Frame if present
-- if (isBox) {
-+ if (BoxType!=0) {
- if ( (bufferPosition = F->BufferToBox(bufferPosition, numBoxCoords, 12))==NULL ) {
- mprintf("Error: AmberRestart::getFrame: * detected in box coordinates of %s\n",
- trajfilename);
-@@ -287,7 +299,7 @@
- if (F->V!=NULL) // NOTE: Use hasVelocity in addition/instead?
- bufferPosition = F->V->FrameToBuffer(bufferPosition,"%12.7lf",12,6);
- // Write box to buffer
-- if (isBox)
-+ if (BoxType!=0)
- bufferPosition = F->BoxToBuffer(bufferPosition, numBoxCoords, "%12.7lf",12);
-
- //if (seekable) fseek(fp, titleSize+(set*frameSize),SEEK_SET);
-@@ -297,6 +309,8 @@
-
- File->IO->Close();
-
-+ currentFrame++;
-+
- return 0;
- }
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberRestart.h amber11/AmberTools/src/cpptraj/src/AmberRestart.h
---- amber11.orig/AmberTools/src/cpptraj/src/AmberRestart.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/AmberRestart.h 2011-10-25 15:01:28.118288633 +0300
-@@ -14,6 +14,7 @@
-
- int SetupRead();
- int SetupWrite();
-+ void getBoxType(char *, int);
-
- public:
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberRestartNC.cpp amber11/AmberTools/src/cpptraj/src/AmberRestartNC.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/AmberRestartNC.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/AmberRestartNC.cpp 2011-10-25 15:01:28.126288625 +0300
-@@ -60,15 +60,8 @@
- /*
- * AmberRestartNC::open()
- * Open up Netcdf restart file and set all dimension and variable IDs.
-- * This is done every time the file is opened up since Im not sure
-- * the variable IDs stay the same throughout each opening.
-- * Could eventually be separated.
-- * NOTE: Replace attrText allocs with static buffer?
- */
- int AmberRestartNC::open() {
-- char *attrText; // For checking conventions and version
-- int spatial; // For checking spatial dimensions
--
- mprintf("DEBUG: AmberRestartNC::open() called for %s, ncid=%i\n",File->filename,ncid);
- // If already open, return
- if (ncid!=-1) return 0;
-@@ -94,6 +87,23 @@
- // Netcdf files are always seekable
- seekable=1;
-
-+ return 0;
-+}
-+
-+/*
-+ * AmberRestartNC::SetupRead()
-+ * Set up netcdf restart file for reading, get all variable and dimension IDs.
-+ * Also check number of atoms against associated parmtop.
-+ * NOTE: Replace attrText allocs with static buffer?
-+ */
-+int AmberRestartNC::SetupRead() {
-+ char *attrText; // For checking conventions and version
-+ int spatial; // For checking spatial dimensions
-+ double box[6];
-+ size_t start[2], count[2];
-+
-+ if (open()) return 1;
-+
- // Get global attributes
- if (title==NULL) title = GetAttrText(ncid,NC_GLOBAL, "title");
- attrText = GetAttrText(ncid,NC_GLOBAL, "Conventions");
-@@ -147,20 +157,18 @@
- mprintf(" Netcdf restart time= %lf\n",restartTime);
-
- // Box info
-- // NOTE: If no box info found in parm should really try to determine correct
-- // box type from angles.
- if ( nc_inq_varid(ncid,"cell_lengths",&cellLengthVID)==NC_NOERR ) {
- if (checkNCerr(nc_inq_varid(ncid,"cell_angles",&cellAngleVID),
- "Getting cell angles.")!=0) return 1;
-- if (debug>0) mprintf(" Netcdf restart Box information found.\n");
-- if (P->ifbox==0) {
-- mprintf("Warning: Netcdf restart file contains box info but no box info found\n");
-- mprintf(" in associated parmfile %s; defaulting to orthogonal.\n",
-- P->parmName);
-- isBox=1;
-- } else {
-- isBox=P->ifbox;
-- }
-+ if (debug>0) mprintf(" Netcdf restart Box information found.\n");
-+ // Determine box type from angles
-+ start[0]=0; start[1]=0;
-+ count[0]=3; count[1]=0;
-+ if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, box),
-+ "Getting cell lengths.")!=0 ) return 1;
-+ if ( checkNCerr(nc_get_vara_double(ncid, cellAngleVID, start, count, box+3),
-+ "Getting cell angles.")!=0 ) return 1;
-+ CheckBoxType(box);
- }
-
- // Replica Temperatures
-@@ -175,15 +183,6 @@
- //int cell_spatialDID, cell_angularDID;
- //int spatialVID, cell_spatialVID, cell_angularVID;
-
-- return 0;
--}
--
--/*
-- * AmberRestartNC::SetupRead()
-- * Just a frontend to open for now. Also check number of atoms.
-- */
--int AmberRestartNC::SetupRead() {
-- if (open()) return 1;
- if (ncatom!=P->natom) {
- mprintf("Warning: Number of atoms in NetCDF restart file %s (%i) does not\n",
- File->filename,ncatom);
-@@ -210,7 +209,7 @@
- */
- int AmberRestartNC::setupWriteForSet(int set) {
- int dimensionID[NC_MAX_VAR_DIMS];
-- size_t start[3], count[3];
-+ size_t start[2], count[2];
- char buffer[1024];
- char xyz[3];
- char abc[15] = { 'a', 'l', 'p', 'h', 'a',
-@@ -280,7 +279,7 @@
- "Defining cell angular variable.")) return 1;
-
- // Box Info
-- if (isBox>0) {
-+ if (BoxType!=0) {
- dimensionID[0]=cell_spatialDID;
- if (checkNCerr(nc_def_var(ncid,"cell_lengths",NC_DOUBLE,1,dimensionID,&cellLengthVID),
- "Defining cell length variable.")) return 1;
-@@ -388,9 +387,9 @@
- }
-
- // Read box info
-- if (isBox!=0) {
-- count [0]=3;
-- count [1]=0;
-+ if (BoxType!=0) {
-+ count[0]=3;
-+ count[1]=0;
- if ( checkNCerr(nc_get_vara_double(ncid, cellLengthVID, start, count, F->box),
- "Getting cell lengths.")!=0 ) return 1;
- if ( checkNCerr(nc_get_vara_double(ncid, cellAngleVID, start, count, &(F->box[3])),
-@@ -425,7 +424,7 @@
- }
-
- // write box
-- if (isBox>0 && cellLengthVID!=-1) {
-+ if (BoxType!=0 && cellLengthVID!=-1) {
- count[0]=3;
- count[1]=0;
- if (checkNCerr(nc_put_vara_double(ncid,cellLengthVID,start,count,F->box),
-@@ -439,6 +438,8 @@
- // Close file for this set
- close();
-
-+ currentFrame++;
-+
- return 0;
- }
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberTraj.cpp amber11/AmberTools/src/cpptraj/src/AmberTraj.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/AmberTraj.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/AmberTraj.cpp 2011-10-25 15:01:28.226288534 +0300
-@@ -104,16 +104,18 @@
- rprintf("Error: AmberTraj::getFrame: * detected in coordinates of %s\n",trajfilename);
- return 1;
- }
-- if (isBox) {
-+ if (BoxType!=0) {
- if ( (bufferPosition = F->BufferToBox(bufferPosition,numBoxCoords,8))==NULL ) {
- rprintf("Error: AmberTraj::getFrame: * detected in box coordinates of %s\n",
- trajfilename);
- return 1;
- }
-- // Set box angles to parmtop default
-- F->box[3] = P->Box[0];
-- F->box[4] = P->Box[0];
-- F->box[5] = P->Box[0];
-+ // Set box angles to parmtop default if not read in
-+ if (numBoxCoords==3) {
-+ F->box[3] = P->Box[3];
-+ F->box[4] = P->Box[4];
-+ F->box[5] = P->Box[5];
-+ }
- }
- return 0;
- }
-@@ -138,20 +140,22 @@
- }
-
- bufferPosition = F->FrameToBuffer(bufferPosition,"%8.3lf",8,10);
-- if (isBox)
-+ if (BoxType!=0)
- bufferPosition = F->BoxToBuffer(bufferPosition,numBoxCoords,"%8.3lf",8);
-
- outFrameSize = (int) (bufferPosition - frameBuffer);
-
- //if (seekable)
- // NOTE: Seek only needs to happen when traj file changes
-- offset = (off_t) set;
-- offset *= (off_t) outFrameSize;
-- offset += (off_t) titleSize;
-- File->IO->Seek( offset);
-+ //offset = (off_t) currentFrame;
-+ //offset *= (off_t) outFrameSize;
-+ //offset += (off_t) titleSize;
-+ //File->IO->Seek( offset);
-
- if (File->IO->Write(frameBuffer,sizeof(char),outFrameSize)) return 1;
-
-+ currentFrame++;
-+
- return 0;
- }
-
-@@ -163,8 +167,10 @@
- int AmberTraj::SetupRead() {
- char buffer[BUFFER_SIZE];
- int frame_lines;
-- int lineSize;
-- long long int file_size, frame_size;
-+ int lineSize, maxi;
-+ bool sizeFound;
-+ long long int file_size, frame_size, title_size, tmpfsize;
-+ double box[6]; // For checking box coordinates
-
- // Attempt to open the file. open() sets the title and titleSize
- if (open()) return 1;
-@@ -219,7 +225,7 @@
-
- if (strncmp(buffer,"REMD",4)==0 || strncmp(buffer,"HREMD",5)==0) {
- // REMD header - no box coords
-- isBox=0;
-+ BoxType=0;
- } else if (lineSize<80) {
- /* Line is shorter than 80 chars, indicates box coords.
- * Length of the line HAS to be a multiple of 8, and probably could be
-@@ -228,53 +234,108 @@
- */
- if (debug>0) mprintf(" Box line is %i chars.\n",lineSize);
- if ( ((lineSize-1)%24)!=0 ) {
-- rprintf("Error in box coord line.\nExpect only 3 or 6 box coords.\n");
-+ mprintf("Error in box coord line. Expect only 3 or 6 box coords.\n");
- return 1;
- }
- numBoxCoords=(lineSize-1) / 8;
- if (debug>0) mprintf(" Detected %i box coords.\n",numBoxCoords);
-- frameSize+=lineSize;
-- // Reallocate frame buffer accordingly
-- frameBuffer=(char*) realloc(frameBuffer,frameSize * sizeof(char));
-- if (P->ifbox==0) {
-- rprintf( "Warning: Box coords detected in trajectory but not defined in topology!\n");
-- rprintf(" Setting box type to rectangular.\n");
-- isBox=1;
-+ // Determine box type based on angles. Angles are usually not printed
-+ // for orthogonal and truncated octahedral boxes, but check here just
-+ // to be safe. If no angles present use parmtop Box Type.
-+ if (numBoxCoords>3) {
-+ sscanf(buffer, "%8lf%8lf%8lf%8lf%8lf%8lf",box,box+1,box+2,box+3,box+4,box+5);
-+ CheckBoxType(box);
- } else {
-- isBox = P->ifbox;
-+ BoxType = P->BoxType;
-+ // If box coords are present in traj but no box in parm, print warning
-+ if (BoxType == 0)
-+ mprintf("Warning: %s has box coordinates but no box info in %s\n",
-+ trajfilename,P->parmName);
- }
-+ // Reallocate frame buffer accordingly
-+ frameSize+=lineSize;
-+ frameBuffer=(char*) realloc(frameBuffer,frameSize * sizeof(char));
- }
- }
-
-- /* Calculate number of frames. If not possible and this is not a
-- * compressed file the trajectory is probably corrupted. Frames will
-- * be read until EOF.
-- * NOTE: It is necessary to use the stat command to get the file size
-- * instead of fseek in case the file has been popen'd.
-- * NOTE: Need the uncompressed file size!
-- */
-- if (File->uncompressed_size>0)
-- file_size = File->uncompressed_size;
-- else
-- file_size=File->file_size;
-+ // Calculate Frames and determine seekable. If not possible and this is not a
-+ // compressed file the trajectory is probably corrupted. Frames will
-+ // be read until EOF (Frames = -1).
- if (debug>0)
-- rprintf("Title offset=%i FrameSize=%i UncompressedFileSize=%lli\n",
-- titleSize,frameSize,file_size);
-- frame_size = (long long int) titleSize;
-- file_size = file_size - frame_size; // Subtract title size from file total size.
-+ rprintf("Title offset=%i FrameSize=%i Size=%lu UncompressedFileSize=%lu\n",
-+ titleSize,frameSize,File->file_size,File->uncompressed_size);
-+ title_size = (long long int) titleSize;
- frame_size = (long long int) frameSize;
-- Frames = (int) (file_size / frame_size);
--
-- if ( (file_size % frame_size) == 0 ) {
-- seekable = 1;
-- stop = Frames;
-+ // -----==== AMBER TRAJ COMPRESSED ====------
-+ if (File->compressType!=NONE) {
-+ // If the uncompressed size of compressed file is reported as <= 0,
-+ // uncompressed size cannot be determined. Read coordinates until
-+ // EOF.
-+ if (File->uncompressed_size <= 0) {
-+ mprintf("Warning: %s: Uncompressed size of trajectory could not be determined.\n",
-+ File->filename);
-+ if (File->compressType==BZIP2)
-+ mprintf(" (This is normal for bzipped files)\n");
-+ mprintf(" Number of frames could not be calculated.\n");
-+ mprintf(" Frames will be read until EOF.\n");
-+ Frames = -1;
-+ seekable = false;
-+ } else {
-+ file_size = File->uncompressed_size;
-+ file_size = file_size - title_size;
-+ // Frame calculation for large gzip files
-+ // If uncompressed size is less than compressed size, uncompressed
-+ // size is likely > 4GB.
-+ if (File->compressType == GZIP && file_size < (long long int) File->file_size) {
-+ // Since this is gzip compressed, if the file_size % frame size != 0,
-+ // it could be that the uncompressed filesize > 4GB. Since
-+ // ISIZE = uncompressed % 2^32,
-+ // try ((file_size + (2^32 * i)) % frame_size) and see if any are 0.
-+ if ( (file_size % frame_size) != 0) {
-+ // Determine the maximum number of iterations to try based on the
-+ // fact that Amber trajectories typically compress about 3x with
-+ // gzip.
-+ tmpfsize = ((File->file_size * 4) - File->uncompressed_size) / 4294967296LL;
-+ maxi = (int) tmpfsize;
-+ maxi++;
-+ if (debug>1)
-+ mprintf("\tLooking for uncompressed gzip size > 4GB, %i iterations.\n",maxi);
-+ tmpfsize = 0;
-+ sizeFound=false;
-+ for (int i = 0; i < maxi; i++ ) {
-+ tmpfsize = (4294967296LL * i) + file_size;
-+ if ( (tmpfsize % frame_size) == 0) {sizeFound=true; break;}
-+ }
-+ if (sizeFound) file_size = tmpfsize;
-+ }
-+ }
-+ if ((file_size % frame_size) == 0) {
-+ Frames = (int) (file_size / frame_size);
-+ seekable = true;
-+ } else {
-+ mprintf("Warning: %s: Number of frames in compressed traj could not be determined.\n",
-+ File->filename);
-+ mprintf(" Frames will be read until EOF.\n");
-+ Frames=-1;
-+ seekable=false;
-+ }
-+ }
-+ // ----==== AMBER TRAJ NOT COMPRESSED ====----
- } else {
-- stop = -1;
-- Frames = -1;
-- seekable = 0;
-- mprintf(" Error: Could not predict # frames in %s. This usually indicates \n",File->filename);
-- mprintf(" a corrupted trajectory. Frames will be read until EOF.\n");
-+ file_size = File->file_size;
-+ file_size = file_size - title_size;
-+ Frames = (int) (file_size / frame_size);
-+ if ( (file_size % frame_size) == 0 ) {
-+ seekable = true;
-+ } else {
-+ mprintf("Warning: %s: Could not accurately predict # frames. This usually \n",
-+ File->filename);
-+ mprintf(" indicates a corrupted trajectory. Will attempt to read %i frames.\n",
-+ Frames);
-+ seekable=false;
-+ }
- }
-+ stop = Frames;
-
- if (debug>0)
- rprintf("Atoms: %i FrameSize: %i TitleSize: %i NumBox: %i Seekable: %i Frames: %i\n\n",
-@@ -315,7 +376,9 @@
- frameSize += hasREMD;
-
- // If box coords are present, allocate extra space for them
-- if (isBox>0) {
-+ // NOTE: Currently only writing box lengths for all box types. This means
-+ // writing triclinic box type is currently not supported.
-+ if (BoxType!=0) {
- numBoxCoords=3; // Only write out box lengths for trajectories
- frameSize+=((numBoxCoords*8)+1);
- }
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/ArgList.cpp amber11/AmberTools/src/cpptraj/src/ArgList.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/ArgList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/ArgList.cpp 2011-10-25 15:01:28.101288648 +0300
-@@ -146,8 +146,16 @@
- return argline;
- }
-
--/*
-- * ArgList::Command()
-+/* ArgList::Arg()
-+ * Return arg at specified position.
-+ */
-+char *ArgList::Arg(int pos) {
-+ if (pos>-1 && pos<nargs)
-+ return arglist[pos];
-+ return NULL;
-+}
-+
-+/* ArgList::Command()
- * Check the first arg for command
- * Mark and return. Return even if marked.
- */
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/ArgList.h amber11/AmberTools/src/cpptraj/src/ArgList.h
---- amber11.orig/AmberTools/src/cpptraj/src/ArgList.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/ArgList.h 2011-10-25 15:01:28.102288647 +0300
-@@ -15,6 +15,7 @@
- void Add(char *);
- void print();
- char *ArgLine();
-+ char *Arg(int);
-
- char *Command();
- int CommandIs(const char *);
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/AtomMap.cpp amber11/AmberTools/src/cpptraj/src/AtomMap.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/AtomMap.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/AtomMap.cpp 2011-10-25 15:01:28.081288667 +0300
-@@ -6,6 +6,7 @@
- #include "TorsionRoutines.h"
- // DEBUG
- #include "Mol2File.h"
-+#include <cstdio>
-
- //--------- PRIVATE ROUTINES ---------------------------------------
- /*
-@@ -463,21 +464,27 @@
- // Write atommap out as a mol2 file, useful for checking bond info
- void atommap::WriteMol2(char *m2filename) {
- Mol2File outfile;
-- int *Selected;
-+ AtomMask M1;
- // Temporary parm to play with
- AmberParm *tmpParm;
-+ Frame *tmpFrame;
-
- // Create mask containing all atoms
-- Selected = (int*) malloc(natom*sizeof(int));
-- for (int atom=0; atom<natom; atom++) Selected[atom]=atom;
-+ //for (int atom=0; atom<natom; atom++) Selected[atom]=atom;
- // Fake strip, just use as crap way to copy
-- tmpParm = P->modifyStateByMask(Selected,natom);
-- free(Selected);
-+ //tmpParm = P->modifyStateByMask(Selected,natom);
-+ //free(Selected);
- // Modify the bonds array to include this info
-- tmpParm->ResetBondInfo();
-- for (int atom=0; atom<natom; atom++)
-- for (int bond=0; bond < M[atom].nbond; bond++)
-- tmpParm->AddBond(atom, M[atom].bond[bond], 0);
-+ //tmpParm->ResetBondInfo();
-+ //for (int atom=0; atom<natom; atom++)
-+ // for (int bond=0; bond < M[atom].nbond; bond++)
-+ // tmpParm->AddBond(atom, M[atom].bond[bond], 0);
-+ // Create mask with all mapped atoms
-+ for (int atom=0; atom<natom; atom++) {if (M[atom].isMapped) M1.AddAtom(atom);}
-+ // Strip so only mapped atoms remain
-+ tmpParm = P->modifyStateByMask(M1.Selected,M1.Nselected);
-+ tmpFrame = new Frame(M1.Nselected,NULL);
-+ tmpFrame->SetFrameFromMask(F, &M1);
-
- // Trajectory Setup
- outfile.File=new PtrajFile();
-@@ -485,13 +492,14 @@
- outfile.trajfilename = outfile.File->basefilename;
- outfile.debug=debug;
- outfile.SetTitle(m2filename);
-- outfile.P=P;
-+ outfile.P=tmpParm;
- outfile.SetupWrite();
- outfile.open();
-- outfile.F=F;
-+ outfile.F=tmpFrame;
- outfile.writeFrame(0);
- outfile.close();
- delete tmpParm;
-+ delete tmpFrame;
- }
- // ============================================================================
-
-@@ -1032,6 +1040,13 @@
- int iterations=0;
-
- numAtomsMapped=MapUniqueAtoms(Ref, Tgt);
-+ // DEBUG
-+ //char name[1024];
-+ //sprintf(name,"Ref.%i.mol2",iterations);
-+ //Ref->WriteMol2(name);
-+ //sprintf(name,"Tgt.%i.mol2",iterations);
-+ //Tgt->WriteMol2(name);
-+ // END DEBUG
- if (debug>0)
- mprintf("* MapUniqueAtoms: %i atoms mapped.\n",numAtomsMapped);
- if (numAtomsMapped==0) return 1;
-@@ -1045,17 +1060,35 @@
- iterations++;
- // First assign based on bonds to unique (already mapped) atoms.
- numAtomsMapped=mapBondsToUnique(Ref,Tgt);
-+ // DEBUG
-+ //sprintf(name,"Ref.%i.u.mol2",iterations);
-+ //Ref->WriteMol2(name);
-+ //sprintf(name,"Tgt.%i.u.mol2",iterations);
-+ //Tgt->WriteMol2(name);
-+ // END DEBUG
- if (debug>0)
- mprintf("* [%3i] mapBondsToUnique: %i atoms mapped.\n",iterations,numAtomsMapped);
- if (numAtomsMapped<0) return 1;
- // Next assign based on chirality
- numAtomsMapped=mapChiral(Ref,Tgt);
-+ // DEBUG
-+ //sprintf(name,"Ref.%i.c.mol2",iterations);
-+ //Ref->WriteMol2(name);
-+ //sprintf(name,"Tgt.%i.c.mol2",iterations);
-+ //Tgt->WriteMol2(name);
-+ // END DEBUG
- if (debug>0)
- mprintf("* [%3i] mapChiral: %i atoms mapped.\n",iterations,numAtomsMapped);
- if (numAtomsMapped<0) return 1;
- if (numAtomsMapped>0) continue;
- // Last assign based on index/element
- numAtomsMapped=mapByIndex(Ref,Tgt);
-+ // DEBUG
-+ //sprintf(name,"Ref.%i.i.mol2",iterations);
-+ //Ref->WriteMol2(name);
-+ //sprintf(name,"Tgt.%i.i.mol2",iterations);
-+ //Tgt->WriteMol2(name);
-+ // END DEBUG
- if (debug>0)
- mprintf("* [%3i] mapByIndex: %i atoms mapped.\n",iterations,numAtomsMapped);
- if (numAtomsMapped<0) return 1;
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/CoordFileList.cpp amber11/AmberTools/src/cpptraj/src/CoordFileList.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/CoordFileList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/CoordFileList.cpp 2011-10-25 15:01:28.201288557 +0300
-@@ -1,4 +1,5 @@
- // CoordFileList
-+#include <cstddef>
- #include <cstring> // strcmp
- #include "CoordFileList.h"
- #include "CpptrajStdio.h"
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/cpptrajdepend amber11/AmberTools/src/cpptraj/src/cpptrajdepend
---- amber11.orig/AmberTools/src/cpptraj/src/cpptrajdepend 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/cpptrajdepend 2011-10-25 15:01:28.107288643 +0300
-@@ -2,7 +2,7 @@
- AmberNetcdf.o : AmberNetcdf.cpp AmberNetcdf.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h NetcdfRoutines.h PtrajFile.h Range.h TrajFile.h
- AmberParm.o : AmberParm.cpp AmberParm.h BaseFileIO.h CpptrajStdio.h Mol2FileRoutines.h PDBfileRoutines.h PtrajFile.h
- AmberTraj.o : AmberTraj.cpp AmberParm.h AmberTraj.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PtrajFile.h Range.h TrajFile.h
--TrajFile.o : TrajFile.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PtrajFile.h PtrajMpi.h Range.h TrajFile.h
-+TrajFile.o : TrajFile.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PtrajFile.h Range.h TrajFile.h
- Frame.o : Frame.cpp AmberParm.h AtomMask.h BaseFileIO.h CpptrajStdio.h DistRoutines.h Frame.h PtrajFile.h TorsionRoutines.h vectormath.h
- PtrajState.o : PtrajState.cpp Action.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajActionList.h PtrajFile.h PtrajMpi.h PtrajState.h Range.h ReferenceList.h TrajFile.h TrajinList.h TrajoutList.h
- ArgList.o : ArgList.cpp ArgList.h CpptrajStdio.h
-@@ -13,7 +13,7 @@
- TrajoutList.o : TrajoutList.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h Frame.h ParmFileList.h PtrajFile.h Range.h TrajFile.h TrajoutList.h
- ReferenceList.o : ReferenceList.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h Frame.h FrameList.h ParmFileList.h PtrajFile.h Range.h ReferenceList.h TrajFile.h
- CoordFileList.o : CoordFileList.cpp AmberNetcdf.h AmberParm.h AmberRestart.h AmberRestartNC.h AmberTraj.h ArgList.h AtomMask.h BaseFileIO.h Conflib.h CoordFileList.h CpptrajStdio.h Frame.h Mol2File.h PDBfile.h ParmFileList.h PtrajFile.h Range.h RemdTraj.h TrajFile.h TrajinList.h
--PtrajActionList.o : PtrajActionList.cpp Action.h Action_Angle.h Action_Center.h Action_Closest.h Action_DSSP.h Action_Dihedral.h Action_Distance.h Action_Hbond.h Action_Image.h Action_Mask.h Action_NAstruct.h Action_Outtraj.h Action_Pucker.h Action_Radgyr.h Action_Rmsd.h Action_Strip.h Action_Surf.h AmberParm.h ArgList.h AtomMap.h AtomMask.h AxisType.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajActionList.h PtrajFile.h Range.h TrajFile.h TrajoutList.h
-+PtrajActionList.o : PtrajActionList.cpp Action.h Action_Angle.h Action_Center.h Action_Closest.h Action_DSSP.h Action_Dihedral.h Action_Distance.h Action_Hbond.h Action_Image.h Action_Mask.h Action_NAstruct.h Action_Outtraj.h Action_Pucker.h Action_Radgyr.h Action_Rms2d.h Action_Rmsd.h Action_Strip.h Action_Surf.h AmberParm.h ArgList.h AtomMap.h AtomMask.h AxisType.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajActionList.h PtrajFile.h Range.h TrajFile.h TrajoutList.h
- DataSet.o : DataSet.cpp CpptrajStdio.h DataSet.h
- DataSetList.o : DataSetList.cpp CpptrajStdio.h DataSet.h DataSetList.h intDataSet.h mapDataSet.h stringDataSet.h
- vectormath.o : vectormath.cpp CpptrajStdio.h vectormath.h
-@@ -23,9 +23,9 @@
- DataFile.o : DataFile.cpp BaseFileIO.h CpptrajStdio.h DataFile.h DataSet.h PtrajFile.h
- DataFileList.o : DataFileList.cpp BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h PtrajFile.h
- PDBfile.o : PDBfile.cpp AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h Frame.h PDBfile.h PDBfileRoutines.h PtrajFile.h Range.h TrajFile.h
--PtrajFile.o : PtrajFile.cpp BaseFileIO.h Bzip2File.h CpptrajStdio.h GzipFile.h MpiFile.h NetcdfRoutines.h PDBfileRoutines.h PtrajFile.h PtrajMpi.h StdFile.h
-+PtrajFile.o : PtrajFile.cpp BaseFileIO.h Bzip2File.h CpptrajStdio.h GzipFile.h Mol2FileRoutines.h MpiFile.h NetcdfRoutines.h PDBfileRoutines.h PtrajFile.h PtrajMpi.h StdFile.h
- PDBfileRoutines.o : PDBfileRoutines.cpp PDBfileRoutines.h
--AtomMap.o : AtomMap.cpp Action.h AmberParm.h ArgList.h AtomMap.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h PDBfileRoutines.h ParmFileList.h PtrajFile.h TorsionRoutines.h
-+AtomMap.o : AtomMap.cpp Action.h AmberParm.h ArgList.h AtomMap.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h Mol2File.h ParmFileList.h PtrajFile.h Range.h TorsionRoutines.h TrajFile.h
- BaseFileIO.o : BaseFileIO.cpp BaseFileIO.h PtrajMpi.h
- StdFile.o : StdFile.cpp BaseFileIO.h StdFile.h
- GzipFile.o : GzipFile.cpp BaseFileIO.h CpptrajStdio.h GzipFile.h
-@@ -62,3 +62,4 @@
- Action_Pucker.o : Action_Pucker.cpp Action.h Action_Pucker.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajFile.h
- Range.o : Range.cpp ArgList.h CpptrajStdio.h Range.h
- Action_Outtraj.o : Action_Outtraj.cpp Action.h Action_Outtraj.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CoordFileList.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajFile.h PtrajMpi.h Range.h TrajFile.h TrajoutList.h
-+Action_Rms2d.o : Action_Rms2d.cpp Action.h Action_Rms2d.h AmberParm.h ArgList.h AtomMask.h BaseFileIO.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h Frame.h FrameList.h ParmFileList.h PtrajFile.h
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/DataFile.cpp amber11/AmberTools/src/cpptraj/src/DataFile.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/DataFile.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/DataFile.cpp 2011-10-25 15:01:28.098288651 +0300
-@@ -65,8 +65,49 @@
- isInverted=true;
- }
-
--/*
-- * DataFile::AddSet()
-+/* DataFile::SetPrecision()
-+ * Set precision of the specified dataset to width.precision. If '*' specified
-+ * set for all datasets in file.
-+ */
-+void DataFile::SetPrecision(char *dsetName, int widthIn, int precisionIn) {
-+ int precision, dset;
-+ DataSet *Dset = NULL;
-+
-+ if (dsetName==NULL) {
-+ mprintf("Error: SetPrecision must be called with dataset name or '*'.\n");
-+ return;
-+ }
-+ if (widthIn<1) {
-+ mprintf("Error: SetPrecision (%s): Cannot set width < 1.\n",filename);
-+ return;
-+ }
-+ precision=precisionIn;
-+ if (precisionIn<0) precision=0;
-+ // If <dsetName>=='*' specified set precision for all data sets
-+ if (dsetName[0]=='*') {
-+ mprintf(" Setting width.precision for all sets in %s to %i.%i\n",
-+ filename,widthIn,precision);
-+ for (dset=0; dset<Nsets; dset++)
-+ SetList[dset]->SetPrecision(widthIn,precision);
-+
-+ // Otherwise find dataset <dsetName> and set precision
-+ } else {
-+ mprintf(" Setting width.precision for dataset %s to %i.%i\n",
-+ dsetName,widthIn,precision);
-+ for (dset=0; dset<Nsets; dset++) {
-+ if ( strcmp(SetList[dset]->Name(), dsetName)==0 ) {
-+ Dset=SetList[dset];
-+ break;
-+ }
-+ }
-+ if (Dset!=NULL)
-+ Dset->SetPrecision(widthIn,precision);
-+ else
-+ mprintf("Error: Dataset %s not found in datafile %s\n",dsetName,filename);
-+ }
-+}
-+
-+/* DataFile::AddSet()
- * Add given set to this datafile
- */
- int DataFile::AddSet(DataSet *D) {
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/DataFile.h amber11/AmberTools/src/cpptraj/src/DataFile.h
---- amber11.orig/AmberTools/src/cpptraj/src/DataFile.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/DataFile.h 2011-10-25 15:01:28.098288651 +0300
-@@ -30,6 +30,7 @@
- void SetXlabel(char*);
- void SetInverted();
- void SetNoXcol();
-+ void SetPrecision(char *, int, int);
- int AddSet(DataSet *);
- int NameIs(char *);
- void DataSetNames();
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/DataFileList.cpp amber11/AmberTools/src/cpptraj/src/DataFileList.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/DataFileList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/DataFileList.cpp 2011-10-25 15:01:28.201288557 +0300
-@@ -1,4 +1,5 @@
- // DataFileList
-+#include <cstddef>
- #include "DataFileList.h"
- #include "CpptrajStdio.h"
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/DataSet.cpp amber11/AmberTools/src/cpptraj/src/DataSet.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/DataSet.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/DataSet.cpp 2011-10-25 15:01:28.094288655 +0300
-@@ -1,6 +1,7 @@
- // DataSet
- #include <cstdlib>
- #include <cstring>
-+#include <cstdio> // sprintf
- #include "DataSet.h"
- #include "CpptrajStdio.h"
-
-@@ -11,12 +12,73 @@
- N=0;
- isDynamic=false;
- current=0;
-+ width = 0;
-+ precision = 0;
-+ format = NULL;
-+ dType = UNKNOWN_DATA;
- }
-
- // DESTRUCTOR
- DataSet::~DataSet() {
- //fprintf(stderr,"DataSet Destructor\n");
- if (name!=NULL) free(name);
-+ if (format!=NULL) free(format);
-+}
-+
-+/*
-+ * DataSet::setFormatString()
-+ * Set up the output format string for each data element based on the given
-+ * dataType and the current width, and precision.
-+ */
-+void DataSet::setFormatString() {
-+ size_t stringWidth = 0;
-+ int wWidth = 0;
-+ int pWidth = 0;
-+
-+ if (format!=NULL) {free(format); format=NULL;}
-+
-+ // Calc num of chars necessary to hold width
-+ wWidth = (width / 10) + 1;
-+
-+ switch (dType) {
-+ case DOUBLE :
-+ // Calc num of chars necessary to hold precision
-+ pWidth = (precision / 10) + 1;
-+ // String fmt: " %w.plf\0"
-+ stringWidth = pWidth + wWidth + 6;
-+ format = (char*) malloc( stringWidth * sizeof(char) );
-+ sprintf(format, " %%%i.%ilf", width, precision);
-+ break;
-+ case STRING :
-+ // String fmt: " %s"
-+ format = (char*) malloc( 4 * sizeof(char) );
-+ strcpy(format, " %s");
-+ break;
-+ case INT :
-+ // String fmt: " %wi"
-+ stringWidth = wWidth + 4;
-+ format = (char*) malloc( stringWidth * sizeof(char) );
-+ sprintf(format, " %%%ii", width);
-+ break;
-+ case UNKNOWN_DATA :
-+ mprintf("Internal Error: setFormatString called with unknown data type.\n");
-+ }
-+
-+ if (format==NULL)
-+ mprintf("Error: setFormatString: Could not allocate memory for string.\n");
-+ // DEBUG
-+ //else
-+ // mprintf("DEBUG: Format string: [%s]\n",format);
-+}
-+
-+/*
-+ * DataSet::SetPrecision()
-+ * Set dataset width and precision and recalc output format string.
-+ */
-+void DataSet::SetPrecision(int widthIn, int precisionIn) {
-+ width=widthIn;
-+ precision=precisionIn;
-+ setFormatString();
- }
-
- /*
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/DataSet.h amber11/AmberTools/src/cpptraj/src/DataSet.h
---- amber11.orig/AmberTools/src/cpptraj/src/DataSet.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/DataSet.h 2011-10-25 15:01:28.103288646 +0300
-@@ -36,12 +36,18 @@
- class DataSet {
- protected:
- char *name; // Name of the dataset
-+ dataType dType; // The dataset type
- int N; // Number of data elements
- int current; // The current data element
-+ int width; // The output width of a data element
-+ int precision; // The output precision of a data element (if applicable)
-+ char *format; // Format of output
-+
- bool isDynamic; // True : N is not known, reallocate as N increases
- // False: N is known, allocate for N
- // If not isDynamic, Allocate will reserve space for N data elements
- virtual int Allocate( ) { return 0; }
-+ void setFormatString();
-
- public:
-
-@@ -51,13 +57,16 @@
- virtual int Xmax() { return 0; }
- virtual int isEmpty(int) { return 0; }
- virtual void Add( int, void * ) { return; }
-+ virtual int Get( void *, int ) { return 1; }
- virtual char *Write(char*, int) { return 0; }
- virtual int Width() { return 0; }
- virtual int Sync() { return 0; }
-
-+ void SetPrecision(int,int);
- int Setup(char*,int);
- void Info();
- char *Name() { return name; }
- int CheckSet();
-+ dataType Type() {return dType;}
- };
- #endif
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Frame.cpp amber11/AmberTools/src/cpptraj/src/Frame.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/Frame.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Frame.cpp 2011-10-25 15:01:28.120288631 +0300
-@@ -60,8 +60,38 @@
- if (Mass!=NULL) free(Mass);
- }
-
--/*
-- * Frame::Copy()
-+/* Frame::ZeroCoords()
-+ * Set all coords to 0.0
-+ */
-+void Frame::ZeroCoords() {
-+ for (int coord=0; coord < N; coord++)
-+ X[coord]=0.0;
-+}
-+
-+/* Frame::AddCoord()
-+ * Add the coord values from the input frame to the coord values of
-+ * this frame.
-+ */
-+void Frame::AddCoord(Frame *FrameIn) {
-+ if (FrameIn->N != this->N) {
-+ mprintf("Error: Frame::AddCoord: Attempting to add %i coords to %i coords.\n",
-+ FrameIn->N,this->N);
-+ } else {
-+ for (int coord=0; coord < N; coord++)
-+ this->X[coord] += FrameIn->X[coord];
-+ }
-+}
-+
-+/* Frame::Divide()
-+ * Divide all coord values by input. Dont do it if the number is too small.
-+ */
-+void Frame::Divide(double divisor) {
-+ if (divisor < SMALL) return;
-+ for (int coord=0; coord < N; coord++)
-+ X[coord] /= divisor;
-+}
-+
-+/* Frame::Copy()
- * Return a copy of the frame
- */
- Frame *Frame::Copy() {
-@@ -423,21 +453,21 @@
- * Based on useMassIn, calculate geometric center (false) or center of mass
- * (true) of the atoms in each mask.
- */
--double Frame::DIST2(AtomMask *Mask1, AtomMask *Mask2, bool useMassIn, int ifbox,
-+double Frame::DIST2(AtomMask *Mask1, AtomMask *Mask2, bool useMassIn, int boxType,
- double *ucell, double *recip) {
- double a1[3], a2[3];
-
- COM(Mask1, a1, useMassIn);
- COM(Mask2, a2, useMassIn);
-
-- if (ifbox == 0)
-+ if (boxType == 0)
- return DIST2_NoImage(a1, a2);
-- else if (ifbox == 1)
-+ else if (boxType == 1)
- return DIST2_ImageOrtho(a1, a2, this->box);
-- else if (ifbox == 2)
-+ else if (boxType == 2)
- return DIST2_ImageNonOrtho(a1, a2, ucell, recip);
-
-- mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", ifbox);
-+ mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", boxType);
-
- return (-1.0);
- }
-@@ -445,8 +475,11 @@
- /*
- * Frame::DIST2()
- * Return the distance between atoms A1 and A2 with optional imaging.
-+ * 0 = None
-+ * 1 = Orthorhombic
-+ * 2 = Non-orthorhombic
- */
--double Frame::DIST2(int A1, int A2, int ifbox, double *ucell, double *recip) {
-+double Frame::DIST2(int A1, int A2, int boxType, double *ucell, double *recip) {
- int atom3;
- double a1[3], a2[3];
-
-@@ -459,14 +492,14 @@
- a2[1] = X[atom3+1];
- a2[2] = X[atom3+2];
-
-- if (ifbox == 0)
-+ if (boxType == 0)
- return DIST2_NoImage(a1, a2);
-- else if (ifbox == 1)
-+ else if (boxType == 1)
- return DIST2_ImageOrtho(a1, a2, this->box);
-- else if (ifbox == 2)
-+ else if (boxType == 2)
- return DIST2_ImageNonOrtho(a1, a2, ucell, recip);
-
-- mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", ifbox);
-+ mprintf(" Error: Frame::DIST: Unrecognized box type (%i)\n.", boxType);
-
- return (-1.0);
- }
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Frame.h amber11/AmberTools/src/cpptraj/src/Frame.h
---- amber11.orig/AmberTools/src/cpptraj/src/Frame.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Frame.h 2011-10-25 15:01:28.092288656 +0300
-@@ -22,6 +22,9 @@
- Frame(AtomMask *, double *);
- virtual ~Frame(); // Destructor is virtual since this class can be inherited
-
-+ void ZeroCoords();
-+ void AddCoord(Frame*);
-+ void Divide(double);
- void printAtomCoord(int);
- void GetCoord(double *, int);
- void SetCoord(int, double *);
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/FrameList.cpp amber11/AmberTools/src/cpptraj/src/FrameList.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/FrameList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/FrameList.cpp 2011-10-25 15:01:28.073288675 +0300
-@@ -13,7 +13,8 @@
- delete frameList[i];
- }
-
--/* FrameList::Add()
-+/*
-+ * FrameList::Add()
- * Add given Frame to the FrameList. Store trajectory name that this frame
- * came from in frameNames. Store the associated parm in FrameParm.
- */
-@@ -29,6 +30,18 @@
- FrameParm.Add(P);
- Nframe++;
- return 0;
-+}
-+
-+/*
-+ * FrameList::Add()
-+ * Add given Frame to the FrameList. Store the associated parm in FrameParm.
-+ */
-+int FrameList::Add(Frame *F, AmberParm *P) {
-+ if (F==NULL || P==NULL) return 1;
-+ frameList.push_back(F);
-+ FrameParm.Add(P);
-+ Nframe++;
-+ return 0;
- }
-
- /*
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/FrameList.h amber11/AmberTools/src/cpptraj/src/FrameList.h
---- amber11.orig/AmberTools/src/cpptraj/src/FrameList.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/FrameList.h 2011-10-25 15:01:28.073288675 +0300
-@@ -18,6 +18,7 @@
- ~FrameList();
-
- int Add(Frame *, char *, AmberParm *,int);
-+ int Add(Frame *, AmberParm *);
- AmberParm *GetFrameParm(int);
- int GetFrameIndex(char *);
- Frame *GetFrame(int idx);
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/GzipFile.cpp amber11/AmberTools/src/cpptraj/src/GzipFile.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/GzipFile.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/GzipFile.cpp 2011-10-25 15:01:28.227288533 +0300
-@@ -77,18 +77,24 @@
-
- /*
- * GzipFile::Read()
-+ * NOTE: gzread returns 0 on EOF, -1 on error
- */
- int GzipFile::Read(void *buffer, size_t size, size_t count) {
- //size_t numread;
- int numread;
-+ int expectedread;
-+
-+ expectedread = (int)size;
-+ expectedread *= (int)count;
- // Should never be able to call Read when fp is NULL.
- //if (fp==NULL) {
- // fprintf(stdout,"Error: GzipFile::Read: Attempted to read NULL file pointer.\n");
- // return 1;
- //}
-- numread = gzread(fp, buffer, size * count);
-- if (numread == -1) return -1;
--
-+ numread = gzread(fp, buffer, expectedread);
-+ if (numread != expectedread) return -1;
-+ //if (numread < 1 ) return -1;
-+
- // NOTE: Check for errors here.
- return numread;
- }
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/intDataSet.cpp amber11/AmberTools/src/cpptraj/src/intDataSet.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/intDataSet.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/intDataSet.cpp 2011-10-25 15:01:28.103288646 +0300
-@@ -5,6 +5,14 @@
- #include "PtrajMpi.h"
- #include "CpptrajStdio.h"
- using namespace std;
-+
-+// CONSTRUCTOR
-+intDataSet::intDataSet() {
-+ width=12;
-+ dType=INT;
-+ setFormatString();
-+}
-+
- /*
- * intDataSet::Xmax(()
- * Return the maximum X value added to this set. By convention this is
-@@ -33,8 +41,21 @@
- current++;
- }
-
--/*
-- * intDataSet::isEmpty()
-+/* intDataSet::Get()
-+ * Get data at frame, put into vOut. Return 1 if no data at frame.
-+ */
-+int intDataSet::Get(void *vOut, int frame) {
-+ int *value;
-+
-+ if (vOut==NULL) return 1;
-+ value = (int*) vOut;
-+ it=Data.find( frame );
-+ if (it == Data.end()) return 1;
-+ *value = (*it).second;
-+ return 0;
-+}
-+
-+/* intDataSet::isEmpty()
- */
- int intDataSet::isEmpty(int frame) {
- it = Data.find( frame );
-@@ -52,17 +73,17 @@
- it = Data.find( frame );
- if (it == Data.end())
- //sprintf(buffer," %12s","NoData");
-- sprintf(buffer," %12i", 0);
-+ sprintf(buffer, format, 0);
- else
-- sprintf(buffer," %12i",(*it).second);
-- return (buffer + 13);
-+ sprintf(buffer, format, (*it).second);
-+ return (buffer + width + 1);
- }
-
- /*
- * intDataSet::Width()
- */
- int intDataSet::Width() {
-- return 13;
-+ return (width + 1);
- }
-
- /*
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/intDataSet.h amber11/AmberTools/src/cpptraj/src/intDataSet.h
---- amber11.orig/AmberTools/src/cpptraj/src/intDataSet.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/intDataSet.h 2011-10-25 15:01:28.104288645 +0300
-@@ -11,9 +11,12 @@
- std::map<int,int> Data;
- std::map<int,int>::iterator it;
- public:
-+ intDataSet();
-+
- int Xmax();
- int isEmpty(int);
- void Add( int, void * );
-+ int Get(void *, int);
- char *Write(char *, int);
- int Width();
- int Sync();
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/main.cpp amber11/AmberTools/src/cpptraj/src/main.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/main.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/main.cpp 2011-10-25 15:01:28.228288532 +0300
-@@ -6,7 +6,7 @@
- #include "PtrajMpi.h"
- #include "CpptrajStdio.h"
- #ifndef CPPTRAJ_VERSION_STRING
--#define CPPTRAJ_VERSION_STRING "V1.0.5"
-+#define CPPTRAJ_VERSION_STRING "V1.1.1"
- #endif
-
- void Usage(char *programName) {
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Makefile amber11/AmberTools/src/cpptraj/src/Makefile
---- amber11.orig/AmberTools/src/cpptraj/src/Makefile 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Makefile 2011-10-25 15:01:28.075288673 +0300
-@@ -16,7 +16,8 @@
- Action_Radgyr.cpp Conflib.cpp Action_Mask.cpp Action_Closest.cpp \
- NetcdfRoutines.cpp AmberRestartNC.cpp CpptrajStdio.cpp Mol2File.cpp \
- Mol2FileRoutines.cpp Action_NAstruct.cpp DistRoutines.cpp AxisType.cpp \
-- TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp
-+ TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp \
-+ Action_Rms2d.cpp
-
- OBJECTS=main.o AmberNetcdf.o AmberParm.o AmberTraj.o TrajFile.o \
- Frame.o PtrajState.o ArgList.o ptrajmask.o Action_Distance.o \
-@@ -32,7 +33,8 @@
- Action_Radgyr.o Conflib.o Action_Mask.o Action_Closest.o \
- NetcdfRoutines.o AmberRestartNC.o CpptrajStdio.o Mol2File.o \
- Mol2FileRoutines.o Action_NAstruct.o DistRoutines.o AxisType.o \
-- TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o
-+ TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o \
-+ Action_Rms2d.o
-
- HEADERS=AmberNetcdf.h AmberParm.h AmberTraj.h TrajFile.h \
- Frame.h PtrajState.h ArgList.h ptrajmask.h Action.h Action_Distance.h \
-@@ -48,7 +50,8 @@
- Action_Radgyr.h Conflib.h Action_Mask.h Action_Closest.h \
- NetcdfRoutines.h AmberRestartNC.h CpptrajStdio.h Mol2File.h \
- Mol2FileRoutines.h Action_NAstruct.h DistRoutines.h AxisType.h \
-- TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h
-+ TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h \
-+ Action_Rms2d.h
-
- all: cpptraj$(SFX)
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Makefile_at amber11/AmberTools/src/cpptraj/src/Makefile_at
---- amber11.orig/AmberTools/src/cpptraj/src/Makefile_at 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Makefile_at 2011-10-25 15:01:28.076288672 +0300
-@@ -16,7 +16,8 @@
- Action_Radgyr.cpp Conflib.cpp Action_Mask.cpp Action_Closest.cpp \
- NetcdfRoutines.cpp AmberRestartNC.cpp CpptrajStdio.cpp Mol2File.cpp \
- Mol2FileRoutines.cpp Action_NAstruct.cpp DistRoutines.cpp AxisType.cpp \
-- TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp
-+ TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp \
-+ Action_Rms2d.cpp
-
- OBJECTS=main.o AmberNetcdf.o AmberParm.o AmberTraj.o TrajFile.o \
- Frame.o PtrajState.o ArgList.o ptrajmask.o Action_Distance.o \
-@@ -32,7 +33,8 @@
- Action_Radgyr.o Conflib.o Action_Mask.o Action_Closest.o \
- NetcdfRoutines.o AmberRestartNC.o CpptrajStdio.o Mol2File.o \
- Mol2FileRoutines.o Action_NAstruct.o DistRoutines.o AxisType.o \
-- TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o
-+ TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o \
-+ Action_Rms2d.o
-
- HEADERS=AmberNetcdf.h AmberParm.h AmberTraj.h TrajFile.h \
- Frame.h PtrajState.h ArgList.h ptrajmask.h Action.h Action_Distance.h \
-@@ -48,7 +50,8 @@
- Action_Radgyr.h Conflib.h Action_Mask.h Action_Closest.h \
- NetcdfRoutines.h AmberRestartNC.h CpptrajStdio.h Mol2File.h \
- Mol2FileRoutines.h Action_NAstruct.h DistRoutines.h AxisType.h \
-- TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h
-+ TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h \
-+ Action_Rms2d.h
-
- all: cpptraj$(SFX)
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/mapDataSet.cpp amber11/AmberTools/src/cpptraj/src/mapDataSet.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/mapDataSet.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/mapDataSet.cpp 2011-10-25 15:01:28.104288645 +0300
-@@ -6,6 +6,14 @@
- #include "CpptrajStdio.h"
- using namespace std;
-
-+// CONSTRUCTOR
-+mapDataSet::mapDataSet() {
-+ width = 12;
-+ precision = 4;
-+ dType=DOUBLE;
-+ setFormatString();
-+}
-+
- /*
- * mapDataSet::Xmax(()
- * Return the maximum X value added to this set. By convention this is
-@@ -34,8 +42,23 @@
- current++;
- }
-
--/*
-- * mapDataSet::isEmpty()
-+/* mapDataSet::Get()
-+ * Get data at frame, put into vOut. Return 1 if no data at frame.
-+ */
-+int mapDataSet::Get(void *vOut, int frame) {
-+ double *value;
-+
-+ if (vOut==NULL) return 1;
-+ //mprintf("DEBUG: Attempting to get double frame %i\n",frame);
-+ value = (double*) vOut;
-+ it=Data.find( frame );
-+ if (it == Data.end()) return 1;
-+ //mprintf("DEBUG: Double frame %i is %lf\n",frame,(*it).second);
-+ *value = (*it).second;
-+ return 0;
-+}
-+
-+/* mapDataSet::isEmpty()
- */
- int mapDataSet::isEmpty(int frame) {
- it = Data.find( frame );
-@@ -53,17 +76,17 @@
- it = Data.find( frame );
- if (it == Data.end())
- //sprintf(buffer," %12s","NoData");
-- sprintf(buffer," %12.4lf", 0.0);
-+ sprintf(buffer, format, 0.0);
- else
-- sprintf(buffer," %12.4lf",(*it).second);
-- return (buffer + 13);
-+ sprintf(buffer, format,(*it).second);
-+ return (buffer + width + 1);
- }
-
- /*
- * mapDataSet::Width()
- */
- int mapDataSet::Width() {
-- return 13;
-+ return (width + 1);
- }
-
- /*
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/mapDataSet.h amber11/AmberTools/src/cpptraj/src/mapDataSet.h
---- amber11.orig/AmberTools/src/cpptraj/src/mapDataSet.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/mapDataSet.h 2011-10-25 15:01:28.105288645 +0300
-@@ -7,14 +7,16 @@
- */
- #include <map>
- #include "DataSet.h"
--//using namespace std;
- class mapDataSet : public DataSet {
- std::map<int,double> Data;
- std::map<int,double>::iterator it;
- public:
-+ mapDataSet();
-+
- int Xmax();
- int isEmpty(int);
- void Add( int, void * );
-+ int Get(void *, int);
- char *Write(char *, int);
- int Width();
- int Sync();
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Mol2File.cpp amber11/AmberTools/src/cpptraj/src/Mol2File.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/Mol2File.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Mol2File.cpp 2011-10-25 15:01:28.127288624 +0300
-@@ -239,6 +239,8 @@
- if (writeMode==2)
- File->IO->Close();
-
-+ currentFrame++;
-+
- return 0;
- }
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/PDBfile.cpp amber11/AmberTools/src/cpptraj/src/PDBfile.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/PDBfile.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/PDBfile.cpp 2011-10-25 15:01:28.128288623 +0300
-@@ -207,6 +207,9 @@
- } else if (writeMode==1) {
- File->IO->Printf("ENDMDL\n");
- }
-+
-+ currentFrame++;
-+
- return 0;
- }
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/PtrajActionList.cpp amber11/AmberTools/src/cpptraj/src/PtrajActionList.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/PtrajActionList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/PtrajActionList.cpp 2011-10-25 15:01:28.105288645 +0300
-@@ -20,6 +20,7 @@
- #include "Action_NAstruct.h"
- #include "Action_Pucker.h"
- #include "Action_Outtraj.h"
-+#include "Action_Rms2d.h"
-
- // Constructor
- PtrajActionList::PtrajActionList() {
-@@ -56,6 +57,7 @@
-
- // Decide what action this is based on the command.
- if (A->CommandIs("distance")) {Act=new Distance;}
-+ else if (A->CommandIs("rms2d")) {Act=new Rms2d; }
- else if (A->CommandIs("rmsd",3)) {Act=new Rmsd; }
- else if (A->CommandIs("dihedral")) {Act=new Dihedral;}
- else if (A->CommandIs("atommap")) {Act=new AtomMap; }
-@@ -166,6 +168,8 @@
- err = ActionList[act]->DoAction(FrameAddress, frameIn);
- if (err==1) {
- // Treat actions that fail as if they could not be set up
-+ mprintf("Warning: Action [%s] failed, frame %i.\n",ActionList[act]->CmdLine(),
-+ frameIn);
- ActionList[act]->noSetup=1;
- } else if (err==2) {
- // Return value of 2 requests return to original frame
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/PtrajFile.cpp amber11/AmberTools/src/cpptraj/src/PtrajFile.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/PtrajFile.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/PtrajFile.cpp 2011-10-25 15:01:28.196288560 +0300
-@@ -113,6 +113,7 @@
- void PtrajFile::CloseFile() {
- if (isOpen) {
- IO->Close();
-+ if (debug>0) rprintf("Closed %s.\n",filename);
- isOpen=0;
- }
- }
-@@ -417,8 +418,8 @@
- // Standard file size is in the frame_stat struct
- uncompressed_size = IO->Size(filename);
-
-- // Determine format
-- // Read first 3 bytes again to determine format by magic number
-+ // ========== Determine format ==========
-+ // ---------- Read first 3 bytes again to determine format by magic number ----------
- IO->Open(filename,"rb"); // NOTE: Err Check
- memset(magic,0,3*sizeof(unsigned char));
- IO->Read(magic ,1,1);
-@@ -454,7 +455,7 @@
- return 0;
- }
-
-- // ID by file characteristics; read the first two lines
-+ // ---------- ID by file characteristics; read the first two lines ----------
- // Initialize buffers to NULL
- buffer1[0]='\0';
- buffer2[0]='\0';
-@@ -472,17 +473,6 @@
- }
- }
-
-- // Reopen and scan for Tripos mol2 molecule section
-- // 0 indicates section found.
-- IO->Open(filename,"r");
-- if (!Mol2ScanTo(this, MOLECULE)) {
-- if (debug>0) mprintf(" TRIPOS MOL2 file\n");
-- fileFormat=MOL2FILE;
-- IO->Close();
-- return 0;
-- }
-- IO->Close();
--
- // If both lines have PDB keywords, assume PDB
- if (isPDBkeyword(buffer1) && isPDBkeyword(buffer2)) {
- if (debug>0) mprintf(" PDB file\n");
-@@ -491,7 +481,8 @@
- }
-
- // If either buffer contains a TRIPOS keyword assume Mol2
-- // NOTE: This will fail on tripos files with extensive header comments
-+ // NOTE: This will fail on tripos files with extensive header comments.
-+ // A more expensive check for mol2 files is below.
- if (strncmp(buffer1,"@<TRIPOS>", 9)==0 ||
- strncmp(buffer2,"@<TRIPOS>", 9)==0) {
- if (debug>0) mprintf(" TRIPOS MOL2 file\n");
-@@ -547,7 +538,19 @@
- }
- }
-
-- // NOTE: EXPERIMENTAL
-+ // ---------- MORE EXPENSIVE CHECKS ----------
-+ // Reopen and scan for Tripos mol2 molecule section
-+ // 0 indicates section found.
-+ IO->Open(filename,"r");
-+ if (!Mol2ScanTo(this, MOLECULE)) {
-+ if (debug>0) mprintf(" TRIPOS MOL2 file\n");
-+ fileFormat=MOL2FILE;
-+ IO->Close();
-+ return 0;
-+ }
-+ IO->Close();
-+
-+ // ---------- EXPERIMENTAL ----------
- // If the file format is still undetermined and the file name is conflib.dat,
- // assume this is a conflib.dat file from LMOD. Cant think of a better way to
- // detect this since there is no magic number but the file is binary.
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/PtrajMpi.c amber11/AmberTools/src/cpptraj/src/PtrajMpi.c
---- amber11.orig/AmberTools/src/cpptraj/src/PtrajMpi.c 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/PtrajMpi.c 2011-10-25 15:01:28.100288649 +0300
-@@ -460,7 +460,10 @@
- }
-
- err = MPI_Allreduce(input, Return, count, currentType, currentOp, MPI_COMM_WORLD);
-- if (err!=MPI_SUCCESS) printMPIerr(err, "Performing allreduce for %i elements\n",count);
-+ if (err!=MPI_SUCCESS) {
-+ printMPIerr(err, "Performing allreduce.\n");
-+ rprintf("Error: allreduce failed for %i elements.\n",count);
-+ }
-
- if (parallel_check_error(err)!=0) return 1;
- return 0;
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/PtrajState.cpp amber11/AmberTools/src/cpptraj/src/PtrajState.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/PtrajState.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/PtrajState.cpp 2011-10-25 15:01:28.214288545 +0300
-@@ -7,7 +7,8 @@
- #include "CpptrajStdio.h"
-
- // Constructor
--PtrajState::PtrajState() {
-+PtrajState::PtrajState() {
-+ TotalErrors=0;
- debug=0;
- showProgress=1;
- }
-@@ -291,6 +292,7 @@
- char *df_cmd = NULL;
- char *name1 = NULL;
- char *name2 = NULL;
-+ int width,precision;
- DataFile *df;
-
- if (DF_Args.empty()) return;
-@@ -349,6 +351,19 @@
- }
- mprintf(" Not printing x column for datafile %s\n",name1);
- df->SetNoXcol();
-+
-+ // datafile precision
-+ // Usage: datafile precision <filename> <dataset> [<width>] [<precision>]
-+ // If width/precision not specified default to 12.4
-+ } else if ( strcmp(df_cmd,"precision")==0 ) {
-+ if (df==NULL) {
-+ mprintf("Error: datafile precision: DataFile %s does not exist.\n",name1);
-+ continue;
-+ }
-+ name2 = A->getNextString();
-+ width = A->getNextInteger(12);
-+ precision = A->getNextInteger(4);
-+ df->SetPrecision(name2,width,precision);
- }
-
- } // END loop over datafile args
-@@ -374,7 +389,7 @@
-
- // ========== S E T U P P H A S E ==========
- // Calculate frame division among trajectories
-- maxFrames=trajFileList.SetupFrames();
-+ maxFrames=trajFileList.SetupFrames(worldrank,worldsize);
-
- // Parameter file information
- parmFileList.Print();
-@@ -442,7 +457,7 @@
- // Perform Actions on Frame
- ptrajActionList.DoActions(&CurrentFrame, actionSet);
- // Do Output
-- outFileList.Write(outputSet, CurrentFrame, CurrentParm);
-+ outFileList.Write(actionSet, CurrentFrame, CurrentParm);
- #ifdef DEBUG
- dbgprintf("\tDEBUG: %30s: %4i\n",CurrentParm->parmName,CurrentParm->outFrame);
- #endif
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/PtrajState.h amber11/AmberTools/src/cpptraj/src/PtrajState.h
---- amber11.orig/AmberTools/src/cpptraj/src/PtrajState.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/PtrajState.h 2011-10-25 15:01:28.093288656 +0300
-@@ -20,6 +20,7 @@
- DataFileList DFL; // List of datafiles that data sets will be written to
- ArgList *A; // Current argument list
- std::list<ArgList*> DF_Args; // List of commands pertaining to datafile creation etc
-+ int TotalErrors; // Sum of all returned error statuses
- int debug;
-
- void SetGlobalDebug(int); // Set debug level for all components
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/ReferenceList.cpp amber11/AmberTools/src/cpptraj/src/ReferenceList.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/ReferenceList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/ReferenceList.cpp 2011-10-25 15:01:28.093288656 +0300
-@@ -20,11 +20,15 @@
- */
- int ReferenceList::Add(ArgList *A, ParmFileList *parmFileList, int worldsize) {
- TrajFile *T;
-- int startArg;
-+ int startArg,stopArg,offsetArg;
-+ bool average = false;
-
- // Set up common arguments from arglist
- if (this->ProcessArgList(A,parmFileList)) return 1;
-
-+ // Check if we want to obtain the average structure
-+ average = A->hasKey("average");
-+
- // Set up basic file to determine type and format
- T = this->SetupTrajectory(trajfilename, fileAccess, UNKNOWN_FORMAT, UNKNOWN_TYPE);
-
-@@ -45,10 +49,18 @@
- // Get user-specified start arg
- // NOTE: For compatibility with ptraj start from 1
- startArg=A->getNextInteger(1);
-- T->SetArgs(startArg,startArg,1);
-+ stopArg=startArg;
-+ offsetArg=1;
-+ // Get user-specified stop and offset only if getting avg structure
-+ if (average) {
-+ stopArg=A->getNextInteger(-1);
-+ offsetArg=A->getNextInteger(1);
-+ }
-+ T->SetArgs(startArg,stopArg,offsetArg);
-
- // Add to trajectory file list
-- this->push_back(T);
-+ this->push_back(T);
-+ Average.push_back(average);
-
- return 0;
- }
-@@ -60,9 +72,11 @@
- * place that frame in refFrames.
- */
- int ReferenceList::SetupRefFrames(FrameList *refFrames) {
-- int trajFrames;
-- Frame *F;
-+ int trajFrames, global_set;
-+ double Nframes;
-+ Frame *F, *AvgFrame;
- int skipValue;
-+ int refTrajNum = 0;
-
- mprintf("\nREFERENCE COORDS:\n");
- if (this->empty()) {
-@@ -72,7 +86,13 @@
-
- for (it = this->begin(); it != this->end(); it++) {
- // Setup the reference traj for reading. Should only be 1 frame.
-- trajFrames=(*it)->setupFrameInfo(-1);
-+ // NOTE: For MPI, calling setupFrameInfo with worldrank 0, worldsize 1 for
-+ // all ranks. This is to ensure each thread has a copy of the ref
-+ // struct.
-+ // Calling setupFrameInfo with -1 to ensure the Parm frame count is
-+ // not updated.
-+
-+ trajFrames=(*it)->setupFrameInfo(-1,0,1);
- if ((*it)->total_read_frames<1) {
- rprintf("Error: No frames could be read for reference %s, skipping\n",
- (*it)->trajfilename);
-@@ -89,12 +109,34 @@
- skipValue=(*it)->skip;
- (*it)->skip=0;
- }
-- (*it)->Begin(&trajFrames, 0);
-- // Get and copy the 1 frame from Traj, then close
-- // NOTE: What happens when not seekable?
-+ // Start trajectory read
-+ global_set=0;
-+ (*it)->Begin(&global_set, 0);
- (*it)->PrintInfo(1);
-- (*it)->NextFrame(&trajFrames);
-- F=(*it)->F->Copy();
-+ // If averaging requested, loop over specified frames and avg coords.
-+ if (Average[refTrajNum++]) {
-+ mprintf(" Averaging over %i frames.\n",trajFrames);
-+ AvgFrame = new Frame((*it)->P->natom, (*it)->P->mass);
-+ AvgFrame->ZeroCoords();
-+ global_set = 0;
-+ Nframes = 0.0;
-+ while ( (*it)->NextFrame(&global_set) ) {
-+ AvgFrame->AddCoord( (*it)->F );
-+ Nframes++;
-+ }
-+ if (Nframes < 1.0) {
-+ mprintf("Error: reference average: # frames read is less than 1.\n");
-+ F=NULL;
-+ } else {
-+ AvgFrame->Divide( Nframes );
-+ F=AvgFrame->Copy();
-+ }
-+ delete AvgFrame;
-+ // If no averaging, get and copy the 1 frame from Traj, then close
-+ } else {
-+ (*it)->NextFrame(&trajFrames);
-+ F=(*it)->F->Copy();
-+ }
- // DEBUG
- //fprintf(stdout,"DEBUG: Ref Coord Atom 0\n");
- //F->printAtomCoord(0);
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/ReferenceList.h amber11/AmberTools/src/cpptraj/src/ReferenceList.h
---- amber11.orig/AmberTools/src/cpptraj/src/ReferenceList.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/ReferenceList.h 2011-10-25 15:01:28.094288655 +0300
-@@ -5,7 +5,7 @@
- #include "FrameList.h"
-
- class ReferenceList : public CoordFileList {
--
-+ std::vector<bool> Average;
- public:
-
- ReferenceList();
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/RemdTraj.cpp amber11/AmberTools/src/cpptraj/src/RemdTraj.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/RemdTraj.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/RemdTraj.cpp 2011-10-25 15:01:28.122288629 +0300
-@@ -88,7 +88,7 @@
- // NOTE: Should check that this is the case for ALL frames.
- stop = T->Frames;
- Frames = T->Frames;
-- isBox = T->isBox;
-+ BoxType = T->BoxType;
- trajfilename = T->File->basefilename;
- // Add it to the list
- REMDtraj.push_back(T);
-@@ -190,12 +190,12 @@
- return 1;
- }
- // Check that #Frames and box info matches
-- if ( Frames!=T->Frames || isBox!=T->isBox ) {
-+ if ( Frames!=T->Frames || BoxType!=T->BoxType ) {
- mprintf(
-- " ERROR: REMDTRAJ: #Frames (%i) or box info (%i) in replica does not match\n",
-- T->Frames, T->isBox);
-- mprintf(" values in lowest replica (Frames=%i, box=%i)\n",
-- Frames,isBox);
-+ " ERROR: REMDTRAJ: #Frames (%i) or box type (%i) in replica does not match\n",
-+ T->Frames, T->BoxType);
-+ mprintf(" values in lowest replica (Frames=%i, boxtype=%i)\n",
-+ Frames,BoxType);
- delete T;
- free(repFilename);
- free(Prefix);
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/stringDataSet.cpp amber11/AmberTools/src/cpptraj/src/stringDataSet.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/stringDataSet.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/stringDataSet.cpp 2011-10-25 15:01:28.097288652 +0300
-@@ -6,6 +6,13 @@
- #include "PtrajMpi.h"
- #include "CpptrajStdio.h"
- using namespace std;
-+
-+// CONSTRUCTOR
-+stringDataSet::stringDataSet() {
-+ dType=STRING;
-+ setFormatString();
-+}
-+
- /*
- * stringDataSet::Xmax(()
- * Return the maximum X value added to this set. By convention this is
-@@ -54,10 +61,10 @@
-
- it = Data.find( frame );
- if (it == Data.end()) {
-- sprintf(buffer," %s", "NoData");
-+ sprintf(buffer, format, "NoData");
- return (buffer + 7);
- } else
-- sprintf(buffer," %s",(*it).second.c_str());
-+ sprintf(buffer, format, (*it).second.c_str());
-
- return (buffer + (*it).second.size() + 1);
- }
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/stringDataSet.h amber11/AmberTools/src/cpptraj/src/stringDataSet.h
---- amber11.orig/AmberTools/src/cpptraj/src/stringDataSet.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/stringDataSet.h 2011-10-25 15:01:28.097288652 +0300
-@@ -12,6 +12,8 @@
- std::map<int,std::string> Data;
- std::map<int,std::string>::iterator it;
- public:
-+ stringDataSet();
-+
- int Xmax();
- int isEmpty(int);
- void Add( int, void * );
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/TrajFile.cpp amber11/AmberTools/src/cpptraj/src/TrajFile.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/TrajFile.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/TrajFile.cpp 2011-10-25 15:01:28.122288629 +0300
-@@ -2,7 +2,6 @@
- #include <cstdlib>
- #include <cstring>
- #include "TrajFile.h"
--#include "PtrajMpi.h" // worldrank and worldsize needed to calc frame division
- #include "CpptrajStdio.h"
-
- // CONSTRUCTOR
-@@ -18,7 +17,7 @@
- start=0;
- stop=-1;
- offset=1;
-- isBox=0;
-+ BoxType=0;
- title=NULL;
- P=NULL;
- frameskip=0;
-@@ -45,12 +44,17 @@
- void TrajFile::SetTitle(char *titleIn) {
- size_t titleSize;
-
-+ //mprintf("DEBUG: Attempting to set title for %s: [%s]\n",trajfilename,titleIn);
- if (titleIn==NULL) return;
- titleSize = strlen(titleIn);
-- if (titleSize==0) return;
-+ //mprintf(" Title size is %i\n",titleSize);
-+ if (titleSize==0) {
-+ mprintf("Warning: TrajFile::SetTitle(): Title for %s is 0 length.\n",trajfilename);
-+ return;
-+ }
- this->title = (char*) malloc( (titleSize+1) * sizeof(char));
- if (this->title==NULL) {
-- mprintf("Error: TrajFile::SetTitle(): Could not allocate memory for title.\n");
-+ mprintf("Error: SetTitle: Could not allocate memory for title of %s.\n",trajfilename);
- return;
- }
- strcpy(this->title, titleIn);
-@@ -59,6 +63,30 @@
- }
-
- /*
-+ * TrajFile::CheckBoxType()
-+ * Set the trajectory box type (ortho/nonortho) based on box angles.
-+ * Check the current box type against the associated parmfile box type.
-+ * Print a warning if they are different.
-+ */
-+void TrajFile::CheckBoxType(double *box) {
-+ // Determine orthogonal / non-orthogonal from angles
-+ if (box[3]==0.0 || box[4]==0.0 || box[5]==0.0)
-+ BoxType=0;
-+ else if (box[3]==90.0 && box[4]==90.0 && box[5]==90.0)
-+ BoxType=1;
-+ else
-+ BoxType=2;
-+ if (P->BoxType != BoxType) {
-+ mprintf("Warning: %s contains box info of type %i (beta %lf)\n",trajfilename,
-+ BoxType,box[4]);
-+ mprintf(" but associated parmfile %s has box type %i (beta %lf)\n",P->parmName,
-+ P->BoxType,P->Box[4]);
-+ //mprintf(" Box information from trajectory will be used.\n");
-+ }
-+ if (debug>0) mprintf(" %s: Box type is %i (beta=%lf)\n",trajfilename,BoxType,box[4]);
-+}
-+
-+/*
- * TrajFile::PrintInfo()
- * Print general trajectory information. Call TrajFile->Info for specific information.
- */
-@@ -68,7 +96,7 @@
-
- mprintf(", Parm %i",P->pindex);
-
-- if (isBox) mprintf(" (with box info)");
-+ if (BoxType>0) mprintf(" (with box info)");
-
- if (showExtended==0) {
- mprintf("\n");
-@@ -85,7 +113,7 @@
- mprintf(": Writing %i frames", P->parmFrames);
- if (File->access==APPEND) mprintf(", appended"); // NOTE: Dangerous if REMD
- }
-- if (debug>0) mprintf(", %i atoms, Box %i, seekable %i",P->natom,isBox,seekable);
-+ if (debug>0) mprintf(", %i atoms, Box %i, seekable %i",P->natom,BoxType,seekable);
- mprintf("\n");
- }
-
-@@ -164,7 +192,7 @@
- * Note that the input frames start counting from 1, output starts counting from 0!
- * If called with maxFrames=-1 dont update the frame in parm file.
- */
--int TrajFile::setupFrameInfo(int maxFrames) {
-+int TrajFile::setupFrameInfo(int maxFrames, int worldrank, int worldsize) {
- int Nframes;
- int ptraj_start_frame, ptraj_end_frame;
- int traj_start_frame, traj_end_frame;
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/TrajFile.h amber11/AmberTools/src/cpptraj/src/TrajFile.h
---- amber11.orig/AmberTools/src/cpptraj/src/TrajFile.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/TrajFile.h 2011-10-25 15:01:28.128288623 +0300
-@@ -25,44 +25,44 @@
- int offset; // Number of frames to skip while processing
-
- // --== Inherited by child classes ==--
-- virtual int open() { return 0; } // Open the file, prepare for coord read/write
-- virtual void close() {} // Close the file
-+ virtual int open() { return 0; } // Open the file, prepare for coord read/write
-+ virtual void close() {} // Close the file
-+
-+ void CheckBoxType(double *); // Check that traj boxtype matches parm
-
- public:
- int debug; // Level of debug information to print
- char *trajfilename; // The base trajectory filename
-- // NOTE: I hate that the following are public. Only necessary for REMD processing!!
-+ // NOTE: I hate that the 2 following are public. Only necessary for REMD processing!!
- int Frames; // Total number of frames in trajectory
- int total_read_frames; // Total number of frames that will be read
-- int isBox; // >0 means trajectory has box information
--
-+ int BoxType; // 0: None, 1: Ortho, 2: NonOrtho
- Range *FrameRange; // list of frames to be written out
- int hasTemperature; // 1 means trajectory has temperature information
- PtrajFile *File; // Class that handles basic file IO
- AmberParm *P; // Memory address of the associated parmfile
- Frame *F; // Hold coordinates of the current frame
-- int skip; /* READ: If =1 do not process this input trajectory
-- WRITE: If =1 this traj has been set up for write */
-+ int skip; // READ: If =1 do not process this input trajectory
-+ // WRITE: If =1 this traj has been set up for write
-
- TrajFile(); // Constructor
- virtual ~TrajFile(); // Destructor - virtual since this class is inherited.
-
-- int Start() { return start; }
-+ int Start() { return start; }
-+ int CurrentFrame() { return currentFrame; }
- void SetTitle(char *); // Set trajectory title.
- void PrintInfo(int); // Print trajectory Information
-- int setupFrameInfo(int); // Set actual start/stop based on total #frames and #threads
-- int Begin(int *, int); /* Prepare traj for processing. Set output start value, calcd in
-- * setupFrameInfo. Allocate memory for F.
-- */
-- int Begin(); // Prepare trajectory for output
-- int NextFrame(int*); // Put the next target frame into F.
-- void End(); // Close trajectory and free F memory
-- void progressBar(); // Display trajectory progress to screen
--// void progressBar2(); // Display trajectory progress to screen
--
-- void SetArgs(int,int,int); // Set the stop, start, and offset args from user input
-+ int Begin(int *, int); // Prepare traj for processing. Set output start value, calcd in
-+ // setupFrameInfo. Allocate memory for F.
-+ int Begin(); // Prepare trajectory for output
-+ int NextFrame(int*); // Put the next target frame into F.
-+ void End(); // Close trajectory and free F memory
-+ void progressBar(); // Display trajectory progress to screen
-+// void progressBar2(); // Display trajectory progress to screen
-+ int setupFrameInfo(int,int,int); // Set actual start/stop based on total #frames and #threads
-+ void SetArgs(int,int,int); // Set the stop, start, and offset args from user input
- // --== Inherited by child classes ==--
-- virtual int getFrame(int) { return 1; } // Read the next coord frame into F
-+ virtual int getFrame(int) { return 1; } // Read specified frame into F
- virtual int SetupRead() { return 1; } // Set file up for reading
- virtual int WriteArgs(ArgList*){ return 0; } // (Opt.) Process any args related to writing
- virtual int SetupWrite() { return 1; } // Set file up for writing
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/TrajinList.cpp amber11/AmberTools/src/cpptraj/src/TrajinList.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/TrajinList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/TrajinList.cpp 2011-10-25 15:01:28.201288557 +0300
-@@ -1,4 +1,5 @@
- // TrajinList
-+#include <cstddef>
- #include "TrajinList.h"
- #include "RemdTraj.h"
- #include "CpptrajStdio.h"
-@@ -70,7 +71,7 @@
- * actual start and stop and how many frames total will be processed.
- * Return the number of frames to be processed.
- */
--int TrajinList::SetupFrames() {
-+int TrajinList::SetupFrames(int worldrank, int worldsize) {
- int maxFrames, trajFrames;
-
- mprintf("\nTRAJECTORIES:\n");
-@@ -78,7 +79,7 @@
- maxFrames=0;
-
- for (it = this->begin(); it != this->end(); it++) {
-- trajFrames = (*it)->setupFrameInfo(maxFrames);
-+ trajFrames = (*it)->setupFrameInfo(maxFrames,worldrank,worldsize);
- if (trajFrames==-1) {
- maxFrames=-1;
- }
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/TrajinList.h amber11/AmberTools/src/cpptraj/src/TrajinList.h
---- amber11.orig/AmberTools/src/cpptraj/src/TrajinList.h 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/TrajinList.h 2011-10-25 15:01:28.090288658 +0300
-@@ -13,7 +13,7 @@
- // NOTE: worldsize is passed in as last arg to avoid include of PtrajMpi
- int Add(ArgList *A, ParmFileList *, int);
- // TRAJIN: Set up frames to be processed
-- int SetupFrames();
-+ int SetupFrames(int,int);
- };
- #endif
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/TrajoutList.cpp amber11/AmberTools/src/cpptraj/src/TrajoutList.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/TrajoutList.cpp 2011-04-14 15:30:16.000000000 +0300
-+++ amber11/AmberTools/src/cpptraj/src/TrajoutList.cpp 2011-10-25 15:01:28.202288556 +0300
-@@ -1,4 +1,5 @@
- // TrajoutList
-+#include <cstddef>
- #include "TrajoutList.h"
- #include "CpptrajStdio.h"
-
-@@ -20,7 +21,6 @@
- */
- int TrajoutList::Add(ArgList *A, ParmFileList *parmFileList, int worldsize) {
- TrajFile *T;
-- int boxInfo;
- FileFormat writeFormat;
- FileType writeType;
- char *onlyframes;
-@@ -29,7 +29,6 @@
- if (this->ProcessArgList(A,parmFileList)) return 1;
-
- // Init variables
-- boxInfo=0;
- writeFormat=AMBERTRAJ;
- writeType=UNKNOWN_TYPE;
-
-@@ -56,10 +55,6 @@
- if (worldsize>1 && writeFormat!=AMBERRESTART)
- writeType=MPIFILE;
-
-- // Set box info from parm file unless nobox is set.
-- boxInfo=P->ifbox;
-- if (A->hasKey("nobox")) boxInfo=0;
--
- // Set up basic file for given type and format
- // If type is unknown it will be determined from extension or will be standard (default)
- T = this->SetupTrajectory(trajfilename, fileAccess, writeFormat, writeType);
-@@ -90,10 +85,11 @@
- // Set parameter file
- T->P=P;
-
-- // Set box information (only needed for write)
-- T->isBox=boxInfo;
-+ // Set box type from parm file unless "nobox" specified
-+ T->BoxType=P->BoxType;
-+ if (A->hasKey("nobox")) T->BoxType=0;
-
-- // No setup here; Write is set up after first frame read in PtrajState::Run
-+ // No more setup here; Write is set up when first frame written.
- // Add to trajectory file list
- this->push_back(T);
-
-diff -urN amber11.orig/AmberTools/src/etc/chemistry/amber/readparm.py amber11/AmberTools/src/etc/chemistry/amber/readparm.py
---- amber11.orig/AmberTools/src/etc/chemistry/amber/readparm.py 2011-04-14 15:30:17.000000000 +0300
-+++ amber11/AmberTools/src/etc/chemistry/amber/readparm.py 2011-10-25 15:01:28.200288558 +0300
-@@ -118,22 +118,44 @@
- """ Parses the fortran format statement. Recognizes ints, exponents, and strings.
- Returns the number of items/line, size of each item, and type of data """
-
-+ # Get rid of ( and ) specifiers in Fortran format strings. This is a hack, but
-+ # should work for existing chamber prmtop files
-+
-+ format_string = format_string.replace('(','').replace(')','')
-+
-+ # Fix case for E, I, and F
-+
-+ format_string = format_string.replace('e','E')
-+ format_string = format_string.replace('i','I')
-+ format_string = format_string.replace('f','F')
-+
- if 'a' in format_string: # this is a string
- format_parts = format_string.split('a')
-- return int(format_parts[0]), int(format_parts[1]), 'str'
-+ try:
-+ return int(format_parts[0]), int(format_parts[1]), 'str', None
-+ except:
-+ return 1, 80, 'str', None
-
- elif 'I' in format_string: # this is an integer
- format_parts = format_string.split('I')
-- return int(format_parts[0]), int(format_parts[1]), 'int'
-+ if len(format_parts[0].strip()) == 0: format_parts[0] = 1
-+ return int(format_parts[0]), int(format_parts[1]), 'int', None
-
- elif 'E' in format_string: # this is a floating point decimal
- format_parts = format_string.split('E')
- decimal_parts = format_parts[1].split('.')
-- return int(format_parts[0]), int(decimal_parts[0]), 'dec'
-+ if len(format_parts[0].strip()) == 0: format_parts[0] = 1
-+ return int(format_parts[0]), int(decimal_parts[0]), 'dec', int(decimal_parts[1])
-+
-+ elif 'F' in format_string: # this is also a floating point decimal
-+ format_parts = format_string.split('F')
-+ decimal_parts = format_parts[1].split('.')
-+ if len(format_parts[0].strip()) == 0: format_parts[0] = 1
-+ return int(format_parts[0]), int(decimal_parts[0]), 'dec', int(decimal_parts[1])
-
- else:
- print >> stderr, 'Error: Unrecognized format "%s"!' % format_string
-- return 1, 80, 'str'
-+ return 1, 80, 'str', None
-
- # +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-@@ -275,7 +297,7 @@
-
- elif prmlines[i][0:7] == '%FORMAT':
- self.formats[current_flag] = prmlines[i][8:len(prmlines[i].strip())-1]
-- number_items_perline, size_item, dat_type = _parseFormat(self.formats[current_flag])
-+ number_items_perline, size_item, dat_type, junk = _parseFormat(self.formats[current_flag])
- gathering_data = True
-
- elif gathering_data:
-@@ -339,17 +361,17 @@
- flag = self.flag_list[i]
- new_prm.write('%%FLAG %s\n' % flag)
- new_prm.write('%%FORMAT(%s)\n' % self.formats[flag])
-- number_items_perline, size_item, dat_type = _parseFormat(self.formats[flag])
-- if dat_type == 'dec':
-- decnum = int(self.formats[flag].split('E')[1].split('.')[1])
-+ number_items_perline, size_item, dat_type, decnum = _parseFormat(self.formats[flag])
- line = ''
- num_items = 0
- if len(self.parm_data[flag]) == 0: # empty field...
- new_prm.write('\n')
- continue
- for j in range(len(self.parm_data[flag])): # write data in new_prm
-- if dat_type == 'dec':
-+ if dat_type == 'dec' and 'E' in self.formats[flag].upper():
- line += ('%%%s.%sE' % (size_item, decnum)) % self.parm_data[flag][j]
-+ elif dat_type == 'dec' and 'F' in self.formats[flag].upper():
-+ line += ('%%%s.%sF' % (size_item, decnum)) % self.parm_data[flag][j]
- elif dat_type == 'int':
- line += ('%%%sd' % size_item) % self.parm_data[flag][j]
- else:
-@@ -764,7 +786,8 @@
- self.LJ_types[self.parm_data["AMBER_ATOM_TYPE"][i]] = self.parm_data["ATOM_TYPE_INDEX"][i]
-
- for i in range(self.pointers["NTYPES"]):
-- lj_index = (i + 1) * (i + 2) / 2 - 1 # n(n+1)/2 th position adjusted for indexing from 0
-+ lj_index = self.parm_data["NONBONDED_PARM_INDEX"][
-+ self.pointers["NTYPES"] * i + i - 1] - 1
- if self.parm_data["LENNARD_JONES_BCOEF"][lj_index] < 1.0e-6:
- self.LJ_radius.append(0)
- self.LJ_depth.append(0)
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/amber.c amber11/AmberTools/src/leap/src/leap/amber.c
---- amber11.orig/AmberTools/src/leap/src/leap/amber.c 2011-03-10 20:12:06.000000000 +0200
-+++ amber11/AmberTools/src/leap/src/leap/amber.c 2011-10-25 15:01:28.139288613 +0300
-@@ -36,6 +36,10 @@
- * UNITs and PARMSETs.
- */
-
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-+
- #include "basics.h"
- #include "vector.h"
- #include "classes.h"
-@@ -240,23 +244,47 @@
- *
- * Read the proper torsion parameter terms.
- */
-+
-+/* Arunima Singh added reading in of scee and scnb fields for proper torsions 20110420 */
- static void
- zAmberReadParmSetPropers( PARMSET psParms, FILE *fIn )
- {
- STRING sLine;
--int iRead, iN;
-+int iRead, iN, iRead2, iRead3;
- STRING saStr[10];
--double dDivisions, dKp, dP0, dN;
-+double dDivisions, dKp, dP0, dN, dScee, dScnb;
-+char *cScee, *cScnb;
-
- memset(saStr, 0, sizeof(saStr)); /* for Purify */
- while (1) {
- FGETS( sLine, fIn );
- NODASHES(sLine);
-- iRead = sscanf( sLine, "%s %s %s %s %lf %lf %lf %lf",
-+
-+ iRead = sscanf( sLine, "%s %s %s %s %lf %lf %lf %lf ",
- saStr[0], saStr[1], saStr[2], saStr[3],
- &dDivisions, &dKp, &dP0, &dN );
-- if ( iRead <= 0 )
-+
-+ cScee = strstr(sLine, "SCEE");
-+ if(cScee!=NULL) {
-+ iRead2 = sscanf( cScee, "SCEE=%lf", &dScee);
-+ iRead++;
-+ }
-+
-+ cScnb = strstr(sLine, "SCNB");
-+ if(cScnb!=NULL) {
-+ iRead3 = sscanf( cScnb, "SCNB=%lf", &dScnb);
-+ iRead++;
-+ }
-+
-+ if ( iRead <= 0 )
- break;
-+
-+ if ( iRead == 8 ) /*Arunima Singh*/
-+ {
-+ dScee = 1.2;
-+ dScnb = 2.0;
-+ }
-+
- MESSAGE(( "Read: %s\n", sLine ));
-
- if ( sLine[0] == ' ' && sLine[1] == ' ') {
-@@ -277,14 +305,37 @@
- zAmberConvertWildCard( saStr[3] );
- iParmSetAddProperTerm( psParms,
- saStr[0], saStr[1], saStr[2], saStr[3],
-- abs(iN), dKp, dP0*DEGTORAD, "" );
-+ abs(iN), dKp, dP0*DEGTORAD, dScee, dScnb, "" );
-+
-+
- while( iN < 0 ) {
- FGETS( sLine, fIn );
- NODASHES(sLine);
- MESSAGE(( "Read extra term: %s\n", sLine ));
-- iRead = sscanf( &sLine[11], "%lf %lf %lf %lf",
-+ iRead = sscanf( &sLine[11], "%lf %lf %lf %lf ",
- &dDivisions, &dKp, &dP0, &dN );
-- if ( iRead<=0 ) break;
-+
-+ cScee = strstr(sLine, "SCEE");
-+ if(cScee!=NULL) {
-+ iRead2 = sscanf( cScee, "SCEE=%lf", &dScee);
-+ iRead++;
-+ }
-+
-+ cScnb = strstr(sLine, "SCNB");
-+ if(cScnb!=NULL) {
-+ iRead3 = sscanf( cScnb, "SCNB=%lf", &dScnb);
-+ iRead++;
-+ }
-+
-+
-+ if ( iRead == 4 ) /*Arunima Singh*/
-+ {
-+ dScee = 1.2;
-+ dScnb = 2.0;
-+ }
-+
-+
-+ if ( iRead<=0 ) break;
-
- if ( dDivisions == 0.0 )
- dDivisions = 1.0;
-@@ -292,7 +343,7 @@
- iN = (int)floor(dN+0.5);
- iParmSetAddProperTerm( psParms,
- saStr[0], saStr[1], saStr[2], saStr[3],
-- abs(iN), dKp, dP0*DEGTORAD, "" );
-+ abs(iN), dKp, dP0*DEGTORAD, dScee, dScnb, "" );
- }
- if ( iRead <= 0 )
- break;
-@@ -311,7 +362,7 @@
- STRING sLine;
- int iRead, iN;
- STRING saStr[10];
--double dKp, dP0, dN;
-+double dKp, dP0, dN, dScee, dScnb;
- BOOL bPrintLine;
-
- memset(saStr, 0, sizeof(saStr)); /* for Purify */
-@@ -335,6 +386,8 @@
- zAmberConvertWildCard( saStr[2] );
- zAmberConvertWildCard( saStr[3] );
- iN = (int)dN;
-+ dScee = 0.0;
-+ dScnb = 0.0;
-
- /*
- * check everything in case a format or other user error
-@@ -362,7 +415,7 @@
-
- iParmSetAddImproperTerm( psParms,
- saStr[0], saStr[1], saStr[2], saStr[3],
-- iN, dKp, dP0*DEGTORAD, "" );
-+ iN, dKp, dP0*DEGTORAD, dScee, dScnb, "" );
- }
- if ( iRead > 0 )
- VP0(( "WARNING: incomplete Improper Torsion line:\n%s", sLine ));
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/build.c amber11/AmberTools/src/leap/src/leap/build.c
---- amber11.orig/AmberTools/src/leap/src/leap/build.c 2011-03-10 20:12:06.000000000 +0200
-+++ amber11/AmberTools/src/leap/src/leap/build.c 2011-10-25 15:01:28.140288613 +0300
-@@ -42,8 +42,9 @@
- *
- */
-
--
--
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-
- #include "basics.h"
-
-@@ -1567,7 +1568,7 @@
- LOOP lAtoms, lTemp;
- ATOM aAtom, aAtom1, aAtom2, aAtom3, aAtom4;
- BOOL bM1, bM2, bM3, bM4, bOneMinimizedAtom;
--double dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0;
-+double dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dScee, dScnb;
- STRING sAtom1, sAtom2, sAtom3, sAtom4, sDesc;
- PARMSET psTemp;
- TORSION tTorsion;
-@@ -1757,7 +1758,7 @@
- ParmSetTORSIONTerm( tTorsion, i,
- &iIndex,
- sAtom1, sAtom2, sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
- if ( !bMinimizerAddTorsion( mStrain,
- aAtom1, aAtom2, aAtom3, aAtom4,
- (double)iN, dKp, dP0 )) {
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/model.c amber11/AmberTools/src/leap/src/leap/model.c
---- amber11.orig/AmberTools/src/leap/src/leap/model.c 2011-04-14 15:30:17.000000000 +0300
-+++ amber11/AmberTools/src/leap/src/leap/model.c 2011-10-25 15:01:28.141288612 +0300
-@@ -39,7 +39,9 @@
- * are determined from atom types.
- */
-
--
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-
-
- #include "basics.h"
-@@ -781,16 +783,6 @@
- maPAtom++;
- }
- }
-- if ( iAtomCoordination(aX) !=
-- 1 + maPAtom - &(mtTorsions.maaXBonds[0]) ) {
-- VP0(( "Error: Atom %s has force field coordination %i\n"
-- " but only %i bonded neighbors.\n"
-- " The cause may be an incorrect atom type, and\n"
-- " the effect may be a crash very soon.\n",
-- sContainerFullDescriptor((CONTAINER)aX,s1),
-- iAtomCoordination(aX),
-- 1 + maPAtom - &(mtTorsions.maaXBonds[0]) ));
-- }
- for ( i=iAtomCoordination(aX); i<MAXBONDS; i++ ) {
- maPAtom->aAtom = NULL;
- maPAtom++;
-@@ -824,16 +816,6 @@
- maPAtom++;
- }
- }
-- if ( iAtomCoordination(aY) !=
-- 1 + maPAtom - &(mtTorsions.maaYBonds[0]) ) {
-- VP0(( "Error: Atom %s has force field coordination %i\n"
-- " but only %i bonded neighbors.\n"
-- " The cause may be an incorrect atom type, and\n"
-- " the effect may be a crash very soon.\n",
-- sContainerFullDescriptor((CONTAINER)aY,s1),
-- iAtomCoordination(aY),
-- 1 + maPAtom - &(mtTorsions.maaYBonds[0]) ));
-- }
- for ( i=iAtomCoordination(aY); i<MAXBONDS; i++ ) {
- maPAtom->aAtom = NULL;
- maPAtom++;
-@@ -1205,6 +1187,8 @@
- int iN;
- double dK;
- double dE;
-+ double dSce; /*Arunima Singh*/
-+ double dScn; /*Arunima Singh*/
- } H_PROPERPARMt;
-
- typedef struct {
-@@ -1222,12 +1206,13 @@
-
- /* Keep iHybrid2 <= iHybrid3 */
-
-+/* Arunima Singh 20110413. Added Scee and Scnb AMBER defaults of 1.2 and 2.0 */
- #define TFORCE 20.0
- static H_PROPERPARMt SppaPropers[] = {
--{ HSP3, HSP3, 3, 1.0, 0.0 }, /* Non bond */
--{ HSP2, HSP3, 6, -2.0, 0.0 }, /* Non bond */
--{ HSP2, HSP2, 2, -4.0, 0.0 }, /* Pi bond overlap */
--{ HSP1, HSP1, 1, 0.0, 0.0 } /* Not interesting */
-+{ HSP3, HSP3, 3, 1.0, 0.0, 1.2, 2.0 }, /* Non bond */
-+{ HSP2, HSP3, 6, -2.0, 0.0, 1.2, 2.0 }, /* Non bond */
-+{ HSP2, HSP2, 2, -4.0, 0.0, 1.2, 2.0 }, /* Pi bond overlap */
-+{ HSP1, HSP1, 1, 0.0, 0.0, 1.2, 2.0 } /* Not interesting */
- };
-
- #define AFORCE 100.0
-@@ -1290,6 +1275,8 @@
- SppaPropers[i].iN,
- SppaPropers[i].dK,
- SppaPropers[i].dE,
-+ SppaPropers[i].dSce,
-+ SppaPropers[i].dScn,
- sDesc );
- }
- }
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/parmSet.c amber11/AmberTools/src/leap/src/leap/parmSet.c
---- amber11.orig/AmberTools/src/leap/src/leap/parmSet.c 2011-03-10 20:12:06.000000000 +0200
-+++ amber11/AmberTools/src/leap/src/leap/parmSet.c 2011-10-25 15:01:28.143288610 +0300
-@@ -54,7 +54,9 @@
- * search routines REQUIRE pre-ordering.
- */
-
--
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-
- #include "basics.h"
-
-@@ -965,6 +967,8 @@
- /*
- * copy into 1 vararray & set iType
- */
-+
-+ /*Arunima Singh added scee and scnb into the database */
- vaTorsTypes = vaVarArrayCopy2( psLib->vaTorsions, psLib->vaImpropers );
- tP = PVAI(vaTorsTypes,TORSIONPARMt,0);
- for (i=0; i<iVarArrayElementCount(psLib->vaTorsions); i++, tP++)
-@@ -980,8 +984,12 @@
- 7, "n",
- (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->iN),
- iVarArrayElementSize(vaTorsTypes),
-- 0, NULL, NULL, 0,
-- 0, NULL, NULL, 0,
-+ 9, "scee",
-+ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->dScee),
-+ iVarArrayElementSize(vaTorsTypes),
-+ 10, "scnb",
-+ (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->dScnb),
-+ iVarArrayElementSize(vaTorsTypes),
- 0, NULL, NULL, 0,
- 0, NULL, NULL, 0,
- 0, NULL, NULL, 0,
-@@ -1008,7 +1016,7 @@
- 4, "type4",
- (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->sType4),
- iVarArrayElementSize(vaTorsTypes),
-- 9, "desc",
-+ 11, "desc",
- (char *)&(PVAI(vaTorsTypes,TORSIONPARMt,0)->sDesc),
- iVarArrayElementSize(vaTorsTypes)
- );
-@@ -1586,10 +1594,15 @@
- * Add a torsion parameter to the PARMSET.
- * Return the index.
- */
-+
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-+
- int
- iParmSetAddProperTerm( PARMSET psLib,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int iN, double dKp, double dP0, char *sDesc )
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
- {
- TORSIONPARMt tpTorsion;
-
-@@ -1605,6 +1618,8 @@
- tpTorsion.dKp = dKp;
- tpTorsion.iN = iN;
- tpTorsion.dP0 = dP0;
-+ tpTorsion.dScee = dScee;
-+ tpTorsion.dScnb = dScnb;
- strcpy( tpTorsion.sOrder, "0123" );
- if ( sDesc != NULL )
- strcpy( tpTorsion.sDesc, sDesc );
-@@ -1633,7 +1648,7 @@
- int
- iParmSetAddImproperTerm( PARMSET psLib,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int iN, double dKp, double dP0, char *sDesc )
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
- {
- TORSIONPARMt tpImproper;
- orderStr sOrder;
-@@ -2022,7 +2037,7 @@
- void
- ParmSetTORSIONTerm( TORSION tTorsion, int iTorsionIndex, int *iPParmSetIndex,
- char *cPType1, char *cPType2, char *cPType3, char *cPType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDesc )
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc )
- {
- TORSION_MATCHt *tmPCur;
-
-@@ -2035,6 +2050,8 @@
- *iPN = tmPCur->tpTorsion.iN;
- *dPKp = tmPCur->tpTorsion.dKp;
- *dPP0 = tmPCur->tpTorsion.dP0;
-+ *dPScee = tmPCur->tpTorsion.dScee;
-+ *dPScnb = tmPCur->tpTorsion.dScnb;
- strcpy(sDesc, tmPCur->tpTorsion.sDesc);
- }
-
-@@ -2050,7 +2067,7 @@
- BOOL
- bParmSetTORSIONAddProperTerm( TORSION tTorsion,
- char *cPType1, char *cPType2, char *cPType3, char *cPType4,
-- int iN, double dKp, double dP0, char *sDesc )
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
- {
- TORSIONPARMt tpTorsion;
-
-@@ -2066,6 +2083,8 @@
- tpTorsion.iN = iN;
- tpTorsion.dKp = dKp;
- tpTorsion.dP0 = dP0;
-+ tpTorsion.dScee = dScee;
-+ tpTorsion.dScnb = dScnb;
- strcpy(tpTorsion.sDesc, sDesc);
- strcpy( tpTorsion.sOrder, "0123" );
-
-@@ -2087,7 +2106,7 @@
- BOOL
- bParmSetTORSIONAddImproperTerm( TORSION tTorsion,
- char *cPType1, char *cPType2, char *cPType3, char *cPType4,
-- int iN, double dKp, double dP0, char *sDesc )
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc )
- {
- TORSIONPARMt tpTorsion;
- orderStr sOrder;
-@@ -2104,6 +2123,8 @@
- tpTorsion.iN = iN;
- tpTorsion.dKp = dKp;
- tpTorsion.dP0 = dP0;
-+ tpTorsion.dScee = dScee;
-+ tpTorsion.dScnb = dScnb;
- strcpy(tpTorsion.sDesc, sDesc);
- strcpy( tpTorsion.sOrder, sOrder );
-
-@@ -2516,7 +2537,7 @@
- void
- ParmSetTorsion( PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDesc)
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc)
- {
- TORSIONPARMt *tpPTorsion;
-
-@@ -2531,6 +2552,8 @@
- strcpy( sType4, WILD_CARD_TYPE );
- *iPN = 0;
- *dPKp = 0;
-+ *dPScee = 0;
-+ *dPScnb = 0;
- *dPP0 = 0;
- strcpy( sDesc, "??" );
- return;
-@@ -2543,7 +2566,10 @@
- *iPN = tpPTorsion->iN;
- *dPKp = tpPTorsion->dKp;
- *dPP0 = tpPTorsion->dP0;
-+ *dPScee = tpPTorsion->dScee;
-+ *dPScnb = tpPTorsion->dScnb;
- strcpy( sDesc, tpPTorsion->sDesc );
-+
- }
-
-
-@@ -2557,7 +2583,7 @@
- void
- ParmSetImproper( PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDesc)
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc)
- {
- TORSIONPARMt *tpPImproper;
-
-@@ -2573,6 +2599,8 @@
- *iPN = 0;
- *dPKp = 0;
- *dPP0 = 0;
-+ *dPScee = 0;
-+ *dPScnb = 0;
- strcpy( sDesc, "??" );
- return;
- }
-@@ -2584,6 +2612,8 @@
- *iPN = tpPImproper->iN;
- *dPKp = tpPImproper->dKp;
- *dPP0 = tpPImproper->dP0;
-+ *dPScee = tpPImproper->dScee;
-+ *dPScnb = tpPImproper->dScnb;
- strcpy( sDesc, tpPImproper->sDesc );
- }
-
-@@ -2740,7 +2770,7 @@
- void
- ParmSetUpdateTorsion( PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDescription)
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDescription)
- {
- TORSIONPARMt *tpPTorsion;
- orderStr sOrder;
-@@ -2754,6 +2784,8 @@
- if ( iPN != (int*)NULL ) tpPTorsion->iN = *iPN;
- if ( dPKp != (double*)NULL) tpPTorsion->dKp = *dPKp;
- if ( dPP0 != (double*)NULL) tpPTorsion->dP0 = *dPP0;
-+ if ( dPScee != (double*)NULL) tpPTorsion->dScee = *dPScee;
-+ if ( dPScnb != (double*)NULL) tpPTorsion->dScnb = *dPScnb;
- if (sDescription != (char*)NULL ) strcpy(tpPTorsion->sDesc, sDescription);
-
- strcpy( sOrder, "0123" );
-@@ -2777,7 +2809,7 @@
- void
- ParmSetUpdateImproper( PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDescription)
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDescription)
- {
- TORSIONPARMt *tpPTorsion;
- orderStr sOrder;
-@@ -2790,6 +2822,8 @@
- if ( iPN != (int*)NULL ) tpPTorsion->iN = *iPN;
- if ( dPKp != (double*)NULL) tpPTorsion->dKp = *dPKp;
- if ( dPP0 != (double*)NULL) tpPTorsion->dP0 = *dPP0;
-+ if ( dPScee != (double*)NULL) tpPTorsion->dScee = *dPScee;
-+ if ( dPScnb != (double*)NULL) tpPTorsion->dScnb = *dPScnb;
- if (sDescription != (char*)NULL ) strcpy(tpPTorsion->sDesc, sDescription);
-
- strcpy( sOrder, "0123" );
-@@ -2979,6 +3013,7 @@
- tpPCur->sType1, tpPCur->sType2,
- tpPCur->sType3, tpPCur->sType4,
- tpPCur->iN, tpPCur->dKp, tpPCur->dP0/DEGTORAD,
-+ tpPCur->dScee, tpPCur->dScnb,
- tpPCur->sOrder, tpPCur->sDesc );
- }
- }
-@@ -2996,6 +3031,7 @@
- tpPCur->sType1, tpPCur->sType2,
- tpPCur->sType3, tpPCur->sType4,
- tpPCur->iN, tpPCur->dKp, tpPCur->dP0/DEGTORAD,
-+ tpPCur->dScee, tpPCur->dScnb,
- tpPCur->sDesc );
- }
- }
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/parmSet.h amber11/AmberTools/src/leap/src/leap/parmSet.h
---- amber11.orig/AmberTools/src/leap/src/leap/parmSet.h 2011-03-10 20:12:06.000000000 +0200
-+++ amber11/AmberTools/src/leap/src/leap/parmSet.h 2011-10-25 15:01:28.144288609 +0300
-@@ -42,6 +42,9 @@
- *
- *
- */
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-
- #ifndef PARMSET_H
- #define PARMSET_H
-@@ -96,6 +99,8 @@
- int iN;
- double dKp;
- double dP0;
-+ double dScee; /* for propers */ /* Arunima Singh */
-+ double dScnb; /* for propers */ /* Arunima Singh */
- orderStr sOrder; /* for impropers */
- DESCRIPTION sDesc;
- } TORSIONPARMt;
-@@ -158,10 +163,10 @@
- double dKt, double dT0, double dTkub, double dRkub, char *sDesc);
- extern int iParmSetAddProperTerm(PARMSET psLib,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int iN, double dKp, double dP0, char *sDesc);
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc); /* for proper dihedrals */ /* Arunima Singh */
- extern int iParmSetAddImproperTerm(PARMSET psLib,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int iN, double dKp, double dP0, char *sDesc);
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc); /* Arunima Singh : added for proper dihedrals, but has to be included in impropers to maintain common data structure usage */
- extern int iParmSetAddHBond(PARMSET psLib, char *sType1, char *sType2,
- double dA, double dB, char *sDesc);
-
-@@ -216,15 +221,15 @@
- extern void ParmSetTORSIONTerm(TORSION tTorsion, int iTorsionIndex,
- int *iPParmSetIndex,
- char *cPTyp1, char *cPTyp2, char *cPTyp3, char *cPTyp4,
-- int *iPN, double *dPKp, double *dPP0, char *sDesc );
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc );
- extern BOOL bParmSetTORSIONAddProperTerm(TORSION tTorsion,
- char *cPType1, char *cPType2,
- char *cPType3, char *cPType4,
-- int iN, double dKp, double dP0, char *sDesc);
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc);
- extern BOOL bParmSetTORSIONAddImproperTerm(TORSION tTorsion,
- char *cPType1, char *cPType2,
- char *cPType3, char *cPType4,
-- int iN, double dKp, double dP0, char *sDesc);
-+ int iN, double dKp, double dP0, double dScee, double dScnb, char *sDesc);
- extern void ParmSetTORSIONOrderAtoms();
- extern void ParmSetImproperOrderAtoms( TORSION tTorsion, int iTorsionIndex,
- char *cPaTypes[4], int iaIndexes[4] );
-@@ -268,10 +273,10 @@
- char *sDesc);
- extern void ParmSetTorsion(PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDesc);
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc);
- extern void ParmSetImproper(PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0, char *sDesc);
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb, char *sDesc);
- extern void ParmSetHBond(PARMSET psLib, int i, char *sType1, char *sType2,
- double *dPA, double *dPB, char *sDesc);
-
-@@ -296,11 +301,11 @@
- double *dPKt, double *dPT0, char *sDescription);
- extern void ParmSetUpdateTorsion(PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0,
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb,
- char *sDescription);
- extern void ParmSetUpdateImproper(PARMSET psLib, int i,
- char *sType1, char *sType2, char *sType3, char *sType4,
-- int *iPN, double *dPKp, double *dPP0,
-+ int *iPN, double *dPKp, double *dPP0, double *dPScee, double *dPScnb,
- char *sDescription);
- extern void ParmSetUpdateHBond(PARMSET psLib, int i,
- char *sType1, char *sType2,
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/unitio.c amber11/AmberTools/src/leap/src/leap/unitio.c
---- amber11.orig/AmberTools/src/leap/src/leap/unitio.c 2011-03-10 20:12:06.000000000 +0200
-+++ amber11/AmberTools/src/leap/src/leap/unitio.c 2011-10-25 15:01:28.192288568 +0300
-@@ -70,6 +70,10 @@
- * zbUnitIOIndexBondParameters and zUnitDoAtoms are now "extern functions"
- */
-
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-+
- #include <time.h>
-
- #include "basics.h"
-@@ -1585,7 +1589,9 @@
- tC.dKp = tpA->dKp;
- tC.iN = tpA->iN;
- tC.dP0 = tpA->dP0;
-- VarArrayAdd(vaB, (GENP) & tC);
-+ tC.dScee = tpA->dScee;
-+ tC.dScnb = tpA->dScnb;
-+ VarArrayAdd(vaB, (GENP) & tC);
- iIndex++;
- iOldIndex = iParmOffset + iA + 1;
-
-@@ -1615,6 +1621,10 @@
- continue;
- if (tpB->dP0 != tpA->dP0)
- continue;
-+ if (tpB->dScee != tpA->dScee)
-+ continue;
-+ if (tpB->dScnb != tpA->dScnb)
-+ continue;
-
- /*
- * B is a duplicate of A
-@@ -1698,12 +1708,12 @@
- int iTerm, iPertTerm;
- BOOL bDone, bUse, bUsePert, bCopy, bCopyPert, bEnd, bPertEnd;
- int iN, iPertIndex, iPertN, iLastN, iLastPertN;
-- double dKp, dP0, dPertKp, dPertP0;
-+ double dKp, dP0, dScee, dScnb, dPertKp, dPertP0, dPertScee, dPertScnb;
- BOOL bCalc14, bCalcPert14;
- #ifdef DEBUG2
- STRING s1, s2, s3, s4;
- int iTParm, iTmp;
-- double dTK, dTP;
-+ double dTK, dTP, dTScee, dTScnb;
- STRING sT1, sT2, sT3, sT4, sTemp;
- #endif
- STRING sDesc;
-@@ -2016,9 +2026,9 @@
- ParmSetTORSIONTerm(tTorsion, i,
- &iTParm,
- sT1, sT2, sT3, sT4,
-- &iTmp, &dTK, &dTP, sTemp);
-- MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf\n",
-- i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP));
-+ &iTmp, &dTK, &dTP, &dTScee, &dTScnb, sTemp);
-+ MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
-+ i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP, dTScee, dTScnb));
- }
- if (bPerturbTorsion) {
- MESSAGE(("Pert%s %s-%s-%s-%s found %d terms\n",
-@@ -2029,9 +2039,9 @@
- ParmSetTORSIONTerm(tPertTorsion, i,
- &iTParm,
- sT1, sT2, sT3, sT4,
-- &iTmp, &dTK, &dTP, sTemp);
-- MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf\n",
-- i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP));
-+ &iTmp, &dTK, &dTP, &dTScee, &dTScnb, sTemp);
-+ MESSAGE(("Term %3d %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
-+ i, iTParm, sT1, sT2, sT3, sT4, iTmp, dTK, dTP dTScee, dTScnb));
- }
- }
- #endif
-@@ -2061,7 +2071,7 @@
- ParmSetTORSIONTerm(tTorsion, iTerm,
- &iIndex,
- sAtom1, sAtom2, sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc);
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
- MESSAGE(("First non-perturbed multiplicity: %d\n", iN));
- } else {
- if (bProper) {
-@@ -2082,7 +2092,7 @@
- ParmSetTORSIONTerm(tPertTorsion, iPertTerm,
- &iPertIndex,
- sPert1, sPert2, sPert3, sPert4,
-- &iPertN, &dPertKp, &dPertP0, sDesc);
-+ &iPertN, &dPertKp, &dPertP0, &dPertScee, &dPertScnb, sDesc);
- MESSAGE(("First perturbed multiplicity: %d\n", iPertN));
- } else
- bPertEnd = TRUE;
-@@ -2175,14 +2185,14 @@
- if (bProper)
- iIndex = iParmSetAddProperTerm(uUnit->psParameters,
- sAtom1, sAtom2, sAtom3,
-- sAtom4, iN, dKp, dP0,
-- sDesc);
-+ sAtom4, iN, dKp, dP0,
-+ dScee, dScnb, sDesc);
- /* else if ( !GDefaults.iCharmm ) ???---should I do this???? */
- else
- iIndex = iParmSetAddImproperTerm(uUnit->psParameters,
- sAtom1, sAtom2,
- sAtom3, sAtom4, iN,
-- dKp, dP0, sDesc);
-+ dKp, dP0, dScee, dScnb, sDesc);
- }
- if (bCopyPert) {
- if (bProper) {
-@@ -2190,13 +2200,13 @@
- sPert1, sPert2,
- sPert3, sPert4,
- iPertN, dPertKp,
-- dPertP0, sDesc);
-+ dPertP0, dScee, dScnb, sDesc);
- } else {
- iPertIndex =
- iParmSetAddImproperTerm(uUnit->psParameters,
- sPert1, sPert2, sPert3,
- sPert4, iPertN, dPertKp,
-- dPertP0, sDesc);
-+ dPertP0, dScee, dScnb, sDesc);
- }
- MESSAGE(("iPertIndex = %d\n", iPertIndex));
- }
-@@ -2215,7 +2225,7 @@
- ParmSetTORSIONTerm(tTorsion, iTerm,
- &iIndex,
- sAtom1, sAtom2, sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc);
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
- }
- MESSAGE(
- ("Advancing non-perturbed multiplicity to %d\n",
-@@ -2231,7 +2241,7 @@
- ParmSetTORSIONTerm(tPertTorsion, iPertTerm,
- &iPertIndex,
- sPert1, sPert2, sPert3, sPert4,
-- &iPertN, &dPertKp, &dPertP0, sDesc);
-+ &iPertN, &dPertKp, &dPertP0, &dPertScee, &dPertScnb, sDesc);
- }
- MESSAGE(
- ("Advancing perturbed multiplicity to %d\n",
-@@ -3988,7 +3998,7 @@
- SAVEATOMt *saPAtom;
- SAVETORSIONt *stPTorsion;
- SAVERESTRAINTt *srPRestraint;
-- double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0,
-+ double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dScee, dScnb,
- dC, dD, dTemp;
- STRING sAtom1, sAtom2, sAtom3, sAtom4, sType1, sType2;
- int iN, iAtoms, iMaxAtoms, iTemp, iAtom, iCalc14, iProper;
-@@ -4585,16 +4595,16 @@
- iParmSetTotalImproperParms(uUnit->psParameters)));
- for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
- ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
-- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
-- MESSAGE(("Torsion %d %s-%s-%s-%s %d %lf %lf\n",
-- i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0));
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
-+ MESSAGE(("Torsion %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
-+ i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0, dScee, dScnb));
- FortranWriteDouble(dKp);
- }
- for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
- ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
-- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
-- MESSAGE(("Improper %d %s-%s-%s-%s %d %lf %lf\n",
-- i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0));
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
-+ MESSAGE(("Improper %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
-+ i, sAtom1, sAtom2, sAtom3, sAtom4, iN, dKp, dP0, dScee, dScnb));
- FortranWriteDouble(dKp);
- }
- /* Write the torsion RESTRAINT constants AND set the index */
-@@ -4612,13 +4622,13 @@
- FortranFormat(5, DBLFORMAT);
- for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
- ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
-- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
- dTemp = iN;
- FortranWriteDouble(dTemp);
- }
- for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
- ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
-- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
- dTemp = iN;
- FortranWriteDouble(dTemp);
- }
-@@ -4637,12 +4647,12 @@
- FortranFormat(5, DBLFORMAT);
- for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
- ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
-- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
- FortranWriteDouble(dP0);
- }
- for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
- ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
-- sAtom3, sAtom4, &iN, &dKp, &dP0, sDesc);
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
- FortranWriteDouble(dP0);
- }
- /* Write the torsion RESTRAINT constants AND set the index */
-@@ -4650,6 +4660,60 @@
- RESTRAINTLOOP(RESTRAINTTORSION, dN, i + 1);
- FortranEndLine();
-
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added Printing SCEE/SCNB */
-+
-+
-+ /* -17.5A- SCEE for torsions */
-+ FortranDebug("-17.5A-");
-+
-+ MESSAGE(("Writing SCEE scale factor for torsion interaction\n"));
-+ FortranFormat(1, "%-80s");
-+ FortranWriteString("%FLAG SCEE_SCALE_FACTOR");
-+ FortranWriteString("%FORMAT(5E16.8)");
-+ FortranFormat(5, DBLFORMAT);
-+ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
-+ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
-+ FortranWriteDouble(dScee);
-+ }
-+ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
-+ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
-+ FortranWriteDouble(dScee);
-+ }
-+ /* Write the torsion RESTRAINT constants AND set the index */
-+ /* for where the interaction can find its constants */
-+ RESTRAINTLOOP(RESTRAINTTORSION, dX0, i + 1);
-+ FortranEndLine();
-+
-+ /* -17.5B- SCNB for torsions */
-+ FortranDebug("-17.5B-");
-+
-+ MESSAGE(("Writing SCNB scale factor for torsion interaction\n"));
-+ FortranFormat(1, "%-80s");
-+ FortranWriteString("%FLAG SCNB_SCALE_FACTOR");
-+ FortranWriteString("%FORMAT(5E16.8)");
-+ FortranFormat(5, DBLFORMAT);
-+ for (i = 0; i < iParmSetTotalTorsionParms(uUnit->psParameters); i++) {
-+ ParmSetTorsion(uUnit->psParameters, i, sAtom1, sAtom2,
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
-+ FortranWriteDouble(dScnb);
-+ }
-+ for (i = 0; i < iParmSetTotalImproperParms(uUnit->psParameters); i++) {
-+ ParmSetImproper(uUnit->psParameters, i, sAtom1, sAtom2,
-+ sAtom3, sAtom4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc);
-+ FortranWriteDouble(dScnb);
-+ }
-+ /* Write the torsion RESTRAINT constants AND set the index */
-+ /* for where the interaction can find its constants */
-+ RESTRAINTLOOP(RESTRAINTTORSION, dX0, i + 1);
-+ FortranEndLine();
-+
-+ /* Arunima Singh */
-+ /* End of adding SCEE/SCNB */
-+
- /* -18- Not used, reserved for future use, uses NATYP */
- /* Corresponds to the AMBER SOLTY array */
- FortranDebug("-18-");
-@@ -6009,7 +6073,7 @@
- SAVEATOMt *saPAtom;
- SAVETORSIONt *stPTorsion;
- SAVERESTRAINTt *srPRestraint;
--double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dC, dD, dTemp;
-+double dMass, dPolar, dR, dKb, dR0, dKt, dT0, dTkub, dRkub, dKp, dP0, dScee, dScnb, dC, dD, dTemp;
- STRING sAtom1, sAtom2, sAtom3, sAtom4, sType1, sType2;
- int iN, iAtoms, iMaxAtoms, iTemp, iAtom, iCalc14, iProper;
- int iElement, iHybridization, iStart, iFirstSolvent;
-@@ -6547,19 +6611,19 @@
- for ( i=0; i<iParmSetTotalTorsionParms(uUnit->psParameters); i++ ) {
- ParmSetTorsion( uUnit->psParameters, i, sAtom1, sAtom2,
- sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-- MESSAGE(( "Torsion %d %s-%s-%s-%s %d %lf %lf\n",
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
-+ MESSAGE(( "Torsion %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
- i, sAtom1, sAtom2, sAtom3, sAtom4,
-- iN, dKp, dP0 ));
-+ iN, dKp, dP0, dScee, dScnb ));
- FortranWriteDouble( dKp );
- }
- for ( i=0; i<iParmSetTotalImproperParms(uUnit->psParameters); i++ ) {
- ParmSetImproper( uUnit->psParameters, i, sAtom1, sAtom2,
- sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-- MESSAGE(( "Improper %d %s-%s-%s-%s %d %lf %lf\n",
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
-+ MESSAGE(( "Improper %d %s-%s-%s-%s %d %lf %lf %lf %lf\n",
- i, sAtom1, sAtom2, sAtom3, sAtom4,
-- iN, dKp, dP0 ));
-+ iN, dKp, dP0, dScee, dScnb ));
- FortranWriteDouble( dKp );
- }
- /* Write the torsion RESTRAINT constants AND set the index */
-@@ -6575,14 +6639,14 @@
- for ( i=0; i<iParmSetTotalTorsionParms(uUnit->psParameters); i++ ) {
- ParmSetTorsion( uUnit->psParameters, i, sAtom1, sAtom2,
- sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
- dTemp = iN;
- FortranWriteDouble( dTemp );
- }
- for ( i=0; i<iParmSetTotalImproperParms(uUnit->psParameters); i++ ) {
- ParmSetImproper( uUnit->psParameters, i, sAtom1, sAtom2,
- sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
- dTemp = iN;
- FortranWriteDouble( dTemp );
- }
-@@ -6599,13 +6663,13 @@
- for ( i=0; i<iParmSetTotalTorsionParms(uUnit->psParameters); i++ ) {
- ParmSetTorsion( uUnit->psParameters, i, sAtom1, sAtom2,
- sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
- FortranWriteDouble( dP0 );
- }
- for ( i=0; i<iParmSetTotalImproperParms(uUnit->psParameters); i++ ) {
- ParmSetImproper( uUnit->psParameters, i, sAtom1, sAtom2,
- sAtom3, sAtom4,
-- &iN, &dKp, &dP0, sDesc );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
- FortranWriteDouble( dP0 );
- }
- /* Write the torsion RESTRAINT constants AND set the index */
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/xaImproperParmTable.c amber11/AmberTools/src/leap/src/leap/xaImproperParmTable.c
---- amber11.orig/AmberTools/src/leap/src/leap/xaImproperParmTable.c 2011-03-10 20:12:06.000000000 +0200
-+++ amber11/AmberTools/src/leap/src/leap/xaImproperParmTable.c 2011-10-25 15:01:28.193288566 +0300
-@@ -37,7 +37,9 @@
- * Handle editing of parameters in a table format.
- */
-
--
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-
- #include <X11/IntrinsicP.h>
- #include <X11/StringDefs.h>
-@@ -59,7 +61,10 @@
- #define NC 4
- #define KPC 5
- #define P0C 6
--#define DESCC 7
-+#define SCEE 7 /*Arunima Singh*/
-+#define SCNB 8 /*Arunima Singh*/
-+#define DESCC 9 /*Arunima Singh: Changed value from 7 to 9 to include scee and scnb*/
-+
-
- #define MAXTYPELEN 5
- #define DESCLEN 32
-@@ -129,13 +134,15 @@
- int iN;
- double dKp;
- double dP0;
-+double dScee;
-+double dScnb;
- char sDesc[DESCLEN];
-
-
- iptPCur = (IMPROPERPARMTABLEt*)PXATClientPointer(tTable);
-
- ParmSetImproper( iptPCur->psParmSet, iRow,
-- sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, sDesc );
-+ sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
-
- switch ( iCol ) {
- case TYPE1C:
-@@ -171,6 +178,14 @@
- }
- return(SsBuffer);
- break;
-+ case SCEE:
-+ sprintf( SsBuffer, DBLFMT, dScee );
-+ return(SsBuffer);
-+ break;
-+ case SCNB:
-+ sprintf( SsBuffer, DBLFMT, dScnb );
-+ return(SsBuffer);
-+ break;
- case DESCC:
- strcpy( SsBuffer, sDesc );
- return( SsBuffer );
-@@ -259,6 +274,16 @@
- if ( !strcmp( cPData, "0" )) break;
- return("P0 field must be '0' or 'Pi'.");
- break;
-+ case SCEE:
-+ if ( !bStringToDouble( cPData, &dValue ) ) {
-+ return("Invalid character in Scee field.");
-+ }
-+ break;
-+ case SCNB:
-+ if ( !bStringToDouble( cPData, &dValue ) ) {
-+ return("Invalid character in Scnb field.");
-+ }
-+ break;
- case DESCC:
- if ( strlen(cPData)>DESCLEN-1 ) {
- sprintf( SsError, "%s %d characters.",
-@@ -384,11 +409,33 @@
- return("P0 field must be '0' or 'Pi'.");
- }
-
-+ /*
-+ * Scee
-+ */
-+ *iPErrCol = 7;
-+ cPData = col[7];
-+ if ( !bStringToDouble( cPData, &dValue ) ) {
-+ return("Invalid character in Scee field.");
-+ } else if ( dValue < 0.0 ) {
-+ return("Scee cannot be negative.");
-+ }
-+
-+ /*
-+ * Scnb
-+ */
-+ *iPErrCol = 8;
-+ cPData = col[8];
-+ if ( !bStringToInt( cPData, &iValue ) ) {
-+ return("Invalid character in Scnb field.");
-+ } else if ( dValue < 0.0 ) {
-+ return("Scnb cannot be negative.");
-+ }
-+
- /*
- * Desc
- */
-- *iPErrCol = 7;
-- cPData = col[7];
-+ *iPErrCol = 9;
-+ cPData = col[9];
- if ( strlen(cPData) > DESCLEN-1 ) {
- sprintf( SsError, "%s %d characters.",
- "Parameter Description cannot be longer than",
-@@ -413,7 +460,8 @@
- int iN;
- double dKp;
- double dP0;
--
-+double dScee;
-+double dScnb;
-
- iptPCur = (IMPROPERPARMTABLEt*) PXATClientPointer(tTable);
- psParmSet = iptPCur->psParmSet;
-@@ -444,7 +492,7 @@
- col[0], col[1], col[2], col[3] ));
- if ( iRow != iParmSetAddImproperTerm( psParmSet,
- col[0], col[1], col[2], col[3],
-- iN, dKp, dP0, col[7] ) )
-+ iN, dKp, dP0, dScee, dScnb, col[9] ) )
- DFATAL(( "programming err 2 in zXAIPTAcceptRow\n" ));
- } else {
- /*
-@@ -452,7 +500,7 @@
- */
- ParmSetUpdateImproper( psParmSet, iRow,
- col[0], col[1], col[2], col[3],
-- &iN, &dKp, &dP0, col[7] );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, col[9] );
- }
- }
-
-diff -urN amber11.orig/AmberTools/src/leap/src/leap/xaTorsionParmTable.c amber11/AmberTools/src/leap/src/leap/xaTorsionParmTable.c
---- amber11.orig/AmberTools/src/leap/src/leap/xaTorsionParmTable.c 2011-03-10 20:12:06.000000000 +0200
-+++ amber11/AmberTools/src/leap/src/leap/xaTorsionParmTable.c 2011-10-25 15:01:28.194288563 +0300
-@@ -37,6 +37,9 @@
- * Handle editing of parameters in a table format.
- */
-
-+ /* Arunima Singh (UGA) */
-+ /* 20110420 */
-+ /* Added SCEE/SCNB */
-
- #include <X11/IntrinsicP.h>
- #include <X11/StringDefs.h>
-@@ -58,7 +61,9 @@
- #define NC 4
- #define KPC 5
- #define P0C 6
--#define DESCC 7
-+#define SCEE 7 /*Arunima Singh*/
-+#define SCNB 8 /*Arunima Singh*/
-+#define DESCC 9 /*Arunima Singh: Changed value from 7 to 9 to include scee and scnb*/
-
- #define MAXTYPELEN 5
- #define DESCLEN 32
-@@ -112,7 +117,7 @@
- * zcPXATPTGetElement
- *
- * Get the values for the elements of the TABLE from the
-- * particular Torsion Parmeter Entry.
-+ * particular Torsion Parameter Entry.
- */
- static char *
- zcPXATPTGetElement( TABLE tTable, int iCol, int iRow )
-@@ -126,13 +131,15 @@
- int iN;
- double dKp;
- double dP0;
-+double dScee;
-+double dScnb;
- char sDesc[DESCLEN];
-
-
- tptPCur = (TORSIONPARMTABLEt*)PXATClientPointer(tTable);
-
- ParmSetTorsion( tptPCur->psParmSet, iRow,
-- sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, sDesc );
-+ sType1, sType2, sType3, sType4, &iN, &dKp, &dP0, &dScee, &dScnb, sDesc );
-
- switch ( iCol ) {
- case TYPE1C:
-@@ -168,6 +175,14 @@
- }
- return(SsBuffer);
- break;
-+ case SCEE:
-+ sprintf( SsBuffer, DBLFMT, dScee );
-+ return(SsBuffer);
-+ break;
-+ case SCNB:
-+ sprintf( SsBuffer, DBLFMT, dScnb );
-+ return(SsBuffer);
-+ break;
- case DESCC:
- strcpy( SsBuffer, sDesc );
- return( SsBuffer );
-@@ -256,6 +271,16 @@
- if ( !strcmp( cPData, "0" )) break;
- return("P0 field must be '0' or 'Pi'.");
- break;
-+ case SCEE:
-+ if ( !bStringToDouble( cPData, &dValue ) ) {
-+ return("Invalid character in Scee field.");
-+ }
-+ break;
-+ case SCNB:
-+ if ( !bStringToDouble( cPData, &dValue ) ) {
-+ return("Invalid character in Scnb field.");
-+ }
-+ break;
- case DESCC:
- if ( strlen(cPData)>DESCLEN-1 ) {
- sprintf( SsError, "%s %d characters.",
-@@ -379,11 +404,33 @@
- return("P0 field must be '0' or 'Pi'.");
- }
-
-+ /*
-+ * Scee
-+ */
-+ *iPErrCol = 7;
-+ cPData = col[7];
-+ if ( !bStringToDouble( cPData, &dValue ) ) {
-+ return("Invalid character in Scee field.");
-+ } else if ( dValue < 0.0 ) {
-+ return("Scee cannot be negative.");
-+ }
-+
-+ /*
-+ * Scnb
-+ */
-+ *iPErrCol = 8;
-+ cPData = col[8];
-+ if ( !bStringToInt( cPData, &iValue ) ) {
-+ return("Invalid character in Scnb field.");
-+ } else if ( dValue < 0.0 ) {
-+ return("Scnb cannot be negative.");
-+ }
-+
- /*
- * Desc
- */
-- *iPErrCol = 7;
-- cPData = col[7];
-+ *iPErrCol = 9;
-+ cPData = col[9];
- if ( strlen(cPData) > DESCLEN-1 ) {
- sprintf( SsError, "%s %d characters.",
- "Parameter Description cannot be longer than",
-@@ -408,6 +455,8 @@
- int iN;
- double dKp;
- double dP0;
-+double dScee;
-+double dScnb;
-
- tptPCur = (TORSIONPARMTABLEt*) PXATClientPointer(tTable);
- psParmSet = tptPCur->psParmSet;
-@@ -438,15 +487,15 @@
- col[0], col[1], col[2], col[3] ));
- if ( iRow != iParmSetAddProperTerm( psParmSet,
- col[0], col[1], col[2], col[3],
-- iN, dKp, dP0, col[7] ) )
-- DFATAL(( "programming err 2 in zXATPTAcceptRow\n" ));
-+ iN, dKp, dP0, dScee, dScnb, col[9] ) ) /*Arunima singh*/
-+ DFATAL(( "programming err 2 in zXATPTAcceptRow\n" ));
- } else {
- /*
- * update row in place
- */
- ParmSetUpdateTorsion( psParmSet, iRow,
- col[0], col[1], col[2], col[3],
-- &iN, &dKp, &dP0, col[7] );
-+ &iN, &dKp, &dP0, &dScee, &dScnb, col[9] ); /*Arunima singh*/
- }
- }
-
-diff -urN amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py amber11/AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py
---- amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py 2011-04-14 15:30:17.000000000 +0300
-+++ amber11/AmberTools/src/mmpbsa_py/MMPBSA_mods/alamdcrd.py 2011-10-25 15:01:28.132288620 +0300
-@@ -371,7 +371,7 @@
- coords_received = _scaledistance(coords_tosend, chdist)
-
- for i in range(3):
-- new_coords.append(coords_received[x+3])
-+ new_coords.append(coords_received[i+3])
-
- coords_tosend = []
- coords_received = []
-diff -urN amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA.pypp amber11/AmberTools/src/mmpbsa_py/MMPBSA.pypp
---- amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA.pypp 2011-04-14 15:30:17.000000000 +0300
-+++ amber11/AmberTools/src/mmpbsa_py/MMPBSA.pypp 2011-10-25 15:01:28.238288523 +0300
-@@ -412,6 +412,7 @@
- INPUT['solvcut'] = float(INPUT['solvcut'])
- INPUT['tolerance'] = float(INPUT['tolerance'])
- INPUT['rism_verbose'] = int(INPUT['rism_verbose'])
-+ INPUT['inp'] = int(INPUT['inp'])
- except ValueError, err:
- print >> sys.stderr, 'Error: Invalid input data types! Check input file for proper float/int/string arguments.'
- print >> sys.stderr, ' %s' % err
-@@ -998,7 +999,7 @@
- if master: MMPBSA_timer.StartTimer('ptraj')
-
- # create the dummy inpcrd files
-- if isinerr != 1 and (INPUT['gbrun'] or INPUT['pbrun']):
-+ if isinerr != 1 and (INPUT['gbrun'] or INPUT['pbrun'] or INPUT['rismrun']):
- os.system('%s %s _MMPBSA_mutant_complexinpcrd.in > _MMPBSA_ptraj9.out 2>&1' % (ptraj, FILES['mutant_complex_prmtop']))
- if not stability and FILES['mutant_receptor_prmtop'] == FILES['receptor_prmtop']:
- os.system('%s %s _MMPBSA_mutant_ligandinpcrd.in > _MMPBSA_ptraj11.out 2>&1' % (ptraj, FILES['mutant_ligand_prmtop']))
-diff -urN amber11.orig/AmberTools/src/mmpbsa_py/setup.sh amber11/AmberTools/src/mmpbsa_py/setup.sh
---- amber11.orig/AmberTools/src/mmpbsa_py/setup.sh 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mmpbsa_py/setup.sh 2011-10-25 15:01:28.133288619 +0300
-@@ -10,7 +10,8 @@
-
- # require AMBERHOME
- if [ -z $AMBERHOME ]; then
-- export AMBERHOME=`dirname \`dirname $PWD\``
-+ AMBERHOME=`dirname \`dirname $PWD\``
-+ export AMBERHOME=`dirname $AMBERHOME`
- echo "AMBERHOME is not set. Assuming it is $AMBERHOME"
- fi
-
-diff -urN amber11.orig/AmberTools/src/pbsa/amg1r5.f amber11/AmberTools/src/pbsa/amg1r5.f
---- amber11.orig/AmberTools/src/pbsa/amg1r5.f 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/pbsa/amg1r5.f 2011-10-25 15:01:28.203288555 +0300
-@@ -3707,7 +3707,7 @@
-
- !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- !+ [Enter a one-line description of real function cgeps here]
--real function cgeps(k,s2,a,u,f,ia,ja,iw, &
-+_REAL_ function cgeps(k,s2,a,u,f,ia,ja,iw, &
- imin,imax,iminw,m,ierr,ium)
-
- implicit _REAL_ (a-h,o-z)
-@@ -3753,7 +3753,7 @@
-
- !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- !+ [Enter a one-line description of real function cgalf here]
--real function cgalf(k,s2,a,u,f,ia,ja,iw, &
-+_REAL_ function cgalf(k,s2,a,u,f,ia,ja,iw, &
- imin,imax,iminw,m)
-
- implicit _REAL_ (a-h,o-z)
-@@ -3971,7 +3971,7 @@
-
- !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- !+ [Enter a one-line description of real function random here]
--real function random(s)
-+_REAL_ function random(s)
-
- ! FUNCTION TO CREATE "RANDOM" SEQUENCE OF NUMBERS BETWEEN 0 AND 0.1
-
-diff -urN amber11.orig/AmberTools/src/pbsa/Makefile amber11/AmberTools/src/pbsa/Makefile
---- amber11.orig/AmberTools/src/pbsa/Makefile 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/pbsa/Makefile 2011-10-25 15:01:28.228288532 +0300
-@@ -204,6 +204,14 @@
- cd ../c9x-complex && $(MAKE) libmc.a; \
- fi
-
-+pb_init.o: pb_init.f
-+ $(FPP) $(FPPFLAGS) $(AMBERFPPFLAGS) $< > _$<
-+ $(FC) -c -O0 $(FFLAGS) $(AMBERFFLAGS) -o $@ _$<
-+
-+pb_init.SANDER.o: pb_init.f
-+ $(FPP) $(FPPFLAGS) $(AMBERFPPFLAGS) -DSANDER $< > _$<
-+ $(FC) -c -O0 $(FFLAGS) $(AMBERFFLAGS) -o $@ _$<
-+
- %.LIBPBSA.o: %.f
- $(FPP) $(FPPFLAGS) $(AMBERFPPFLAGS) -DLIBPBSA $< > _$<
- $(FC) -c $(FOPTFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ _$<
-diff -urN amber11.orig/AmberTools/src/ptraj/actions.c amber11/AmberTools/src/ptraj/actions.c
---- amber11.orig/AmberTools/src/ptraj/actions.c 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/ptraj/actions.c 2011-10-25 15:01:28.235288526 +0300
-@@ -46,6 +46,7 @@
- #include "ptraj.h"
- #include <string.h>
- #include <stdarg.h>
-+#include <float.h>
-
- /*
- * The code in this file implements the various "actions" of ptraj to
-@@ -4809,8 +4810,14 @@
- * set the minimum distance to the solute to be larger than
- * any possible (imaged!!!) distance
- */
-- min = box[0] + box[1] + box[2];
-- min = min * min;
-+ if (box[0]!=0.0 && box[1]!=0.0 && box[2]!=0.0) {
-+ min = box[0] + box[1] + box[2];
-+ min = min * min;
-+ } else {
-+ // No box information, set to arbitrarily large max
-+ min=DBL_MAX;
-+ }
-+
- for (i=0; i < oldstate->solventMolecules; i++) {
- minDistance[i] = min;
- sortindex[i] = i;
-@@ -16752,9 +16759,12 @@
- */
-
- structInfo = (transformSecondaryStructInfo *) action->carg1;
-- if (structInfo->filename != NULL)
-+ if (structInfo->filename != NULL) {
-+ i = (int) strlen(structInfo->filename);
-+ i+=5;
-+ structInfo->filename = (char*) realloc(structInfo->filename, i*sizeof(char));
- outFile = safe_fopen(strcat(structInfo->filename, ".sum"), "w");
-- else
-+ } else
- outFile = stdout;
-
- fprintf(outFile, "#ResNum\t3-10-Helix\talpha-helix\tPI-Helix\tparallel-Sheet\tantip.-Sheet\tTurn\n");
-@@ -18123,17 +18133,26 @@
- /*
- * process the remaining arguments
- */
-- if ( (buffer = argumentStackKeyToString(argumentStackPointer, "principal", NULL)) != NULL ) {
-+ if ( argumentStackContains(argumentStackPointer, "principal") ) {
- vectorInfo->mode = VECTOR_PRINCIPAL_X;
-- if (strcmp(buffer, "x") == 0)
-- vectorInfo->mode = VECTOR_PRINCIPAL_X;
-- else if (strcmp(buffer, "y") == 0)
-- vectorInfo->mode = VECTOR_PRINCIPAL_Y;
-- else if (strcmp(buffer, "z") == 0)
-- vectorInfo->mode = VECTOR_PRINCIPAL_Z;
-- safe_free(buffer);
-- }
-- else if (argumentStackContains(argumentStackPointer, "dipole"))
-+ /* DRR - Check the next argument for x, y, or z. If none of these
-+ * are present, put the argument back on the stack.
-+ */
-+ buffer = getArgumentString(argumentStackPointer, NULL);
-+ if (buffer!=NULL) {
-+ if (strcmp(buffer, "x") == 0) {
-+ vectorInfo->mode = VECTOR_PRINCIPAL_X;
-+ safe_free(buffer);
-+ } else if (strcmp(buffer, "y") == 0) {
-+ vectorInfo->mode = VECTOR_PRINCIPAL_Y;
-+ safe_free(buffer);
-+ } else if (strcmp(buffer, "z") == 0) {
-+ vectorInfo->mode = VECTOR_PRINCIPAL_Z;
-+ safe_free(buffer);
-+ } else
-+ pushBottomStack(argumentStackPointer, buffer);
-+ }
-+ } else if (argumentStackContains(argumentStackPointer, "dipole"))
- vectorInfo->mode = VECTOR_DIPOLE;
- else if (argumentStackContains(argumentStackPointer, "box"))
- vectorInfo->mode = VECTOR_BOX;
-@@ -18263,6 +18282,11 @@
- vectorInfo->mode == VECTOR_CORRIRED ||
- vectorInfo->mode == VECTOR_MASK){
- buffer = getArgumentString(argumentStackPointer, NULL);
-+ if (buffer==NULL) {
-+ fprintf(stdout,"Error: vector: specified vector mode requires a second mask.\n");
-+ freeTransformVectorMemory(action);
-+ return -1;
-+ }
- vectorInfo->mask2 = processAtomMask(buffer, action->state);
- safe_free(buffer);
- }
-@@ -18885,7 +18909,7 @@
- /*
- * USAGE:
- *
-- * watershell mask [lower <lower cut>] [upper <upper cut>] [noimage]
-+ * watershell mask filename [lower <lower cut>] [upper <upper cut>] [noimage]
- *
- * action argument usage:
- *
-@@ -18917,11 +18941,25 @@
- action->iarg1 = argumentStackContains(argumentStackPointer, "noimage");
-
- buffer = getArgumentString(argumentStackPointer, NULL);
-+ if (buffer==NULL) {
-+ fprintf(stdout,"ERROR: WATERSHELL: Solute mask must be specified.\n");
-+ return -1;
-+ }
-+
- info->soluteMask = processAtomMask(buffer, action->state);
-+ if (info->soluteMask==NULL) {
-+ fprintf(stdout,"ERROR: WATERSHELL: Solute mask %s corresponds to 0 atoms.\n",buffer);
-+ safe_free(buffer);
-+ return -1;
-+ }
- safe_free(buffer);
-
- info->filename = getArgumentString(argumentStackPointer, NULL);
--
-+ if (info->filename==NULL) {
-+ fprintf(stdout,"ERROR: WATERSHELL: Output filename must be specified.\n");
-+ return -1;
-+ }
-+
- info->lowerCutoff =
- argumentStackKeyToDouble(argumentStackPointer, "lower", info->lowerCutoff);
- info->upperCutoff =
-@@ -18932,6 +18970,17 @@
- info->solventMask = processAtomMask(buffer, action->state);
- else
- info->solventMask = processAtomMask(":WAT", action->state);
-+ if (info->solventMask==NULL) {
-+ if (buffer!=NULL)
-+ fprintf(stdout,"ERROR: WATERSHELL: Solvent mask %s corresponds to 0 atoms.\n",buffer);
-+ else {
-+ fprintf(stdout,"ERROR: WATERSHELL: Default solvent mask :WAT corresponds to 0 atoms.\n");
-+ fprintf(stdout,
-+ " Solvent mask can be specified as the third argument.\n");
-+ }
-+ safe_free(buffer);
-+ return -1;
-+ }
- safe_free(buffer);
-
- action->carg1 = (void *) info;
-diff -urN amber11.orig/AmberTools/src/ptraj/ptraj.c amber11/AmberTools/src/ptraj/ptraj.c
---- amber11.orig/AmberTools/src/ptraj/ptraj.c 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/ptraj/ptraj.c 2011-10-25 15:01:28.224288536 +0300
-@@ -2059,7 +2059,8 @@
- int start = 1;
- int stop = 1;
- int frame_lines, title_size, seekable;
-- long long int file_size, frame_size;
-+ int maxi, sizeFound; // For large gzip file calc, Amber Traj
-+ long long int file_size, frame_size, tmpfsize;
- long int endoffset;
- float *binposScratch;
- FILE *fp;
-@@ -2439,16 +2440,54 @@
- file_size = file_size - frame_size; // Subtract title size from file total size.
- frame_size = (long long int) trajInfo->frameSize;
- trajInfo->Nframes = (int) (file_size / frame_size);
-+
-+ // Frame calculation for large gzip files
-+ // If uncompressed size is less than compressed size, uncompressed
-+ // size is likely > 4GB.
-+ if (trajInfo->compressType == 1 && file_size < (long long int)frame_stat.st_size) {
-+ // Since this is gzip compressed, if the file_size % frame size != 0,
-+ // it could be that the uncompressed filesize > 4GB. Since
-+ // ISIZE = uncompressed % 2^32,
-+ // try ((file_size + (2^32 * i)) % frame_size) and see if any are 0.
-+ if ( (file_size % frame_size) != 0) {
-+ // Determine the maximum number of iterations to try based on the
-+ // fact that Amber trajectories typically compress about 3x with
-+ // gzip. If the number of frames cannot accurately be calculated
-+ // use the max estimated file size to estimate # frames so that
-+ // ptraj actions allocate enough memory.
-+ tmpfsize = (long long int) frame_stat.st_size;
-+ tmpfsize *= 4;
-+ tmpfsize = (tmpfsize - file_size) / 4294967296LL;
-+ maxi = (int) tmpfsize;
-+ maxi++;
-+ if (prnlev>1)
-+ printf("\tLooking for uncompressed gzip size > 4GB, %i iterations.\n",maxi);
-+ tmpfsize = 0;
-+ sizeFound=0;
-+ for (i = 0; i < maxi; i++ ) {
-+ tmpfsize = (4294967296LL * i) + file_size;
-+ if ( (tmpfsize % frame_size) == 0) {sizeFound=1; break;}
-+ }
-+ if (sizeFound) {
-+ printf("Warning: Cannot accurately determine # of frames in gzipped trajectory %s.\n",
-+ filename);
-+ printf(" This usually indicates the trajectory is corrupted.\n");
-+ printf(" Ptraj will attempt to estimate the correct number of frames.\n");
-+ }
-+ file_size = tmpfsize;
-+ trajInfo->Nframes = (int) (file_size / frame_size);
-+ }
-+ }
-+
- if (prnlev>0) fprintf(stdout," File has %i frames.\n",trajInfo->Nframes);
- if ( (file_size % frame_size) == 0 ) {
- seekable = 1;
-- stop = trajInfo->Nframes;
- } else {
-- stop = -1;
- seekable = 0;
- fprintf(stderr, "%s: Could not predict number of frames for AMBER trajectory file: %s\n", ROUTINE, filename);
- fprintf(stderr, "\tIf this is not a compressed file then there is a problem\n");
- }
-+ stop = trajInfo->Nframes;
-
- actualAtoms = totalAtoms;
- //trajInfo->frameSize = frame_size;
-@@ -2569,6 +2608,8 @@
- trajInfo->isBox = isBox;
- trajInfo->isVelocity = isVelocity;
- trajInfo->type = type;
-+ // If compressed, no seek possible
-+ if (trajInfo->compressType > 0) trajInfo->seekable=0;
-
- // This should eventually get its own structure
- if (type==COORD_CHARMM_TRAJECTORY)
-diff -urN amber11.orig/AmberTools/src/rism/amber_rism_interface.f amber11/AmberTools/src/rism/amber_rism_interface.f
---- amber11.orig/AmberTools/src/rism/amber_rism_interface.f 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/rism/amber_rism_interface.f 2011-10-25 15:01:28.241288520 +0300
-@@ -815,7 +815,6 @@
- !redo calculation with charges off
- call rism3d_unsetCharges(rism_3d)
- call rism3d_solve(rism_3d,rismprm%saveprogress,rismprm%progress,rismprm%maxstep,rismprm%tolerance)
-- call rism3d_resetCharges(rism_3d)
-
- !setup memory space
- apol_exchem => apol_mpi_buffer(1:rism_3d%solv%natom)
-@@ -825,6 +824,7 @@
- apol_exchem = rism3d_exchem(rism_3d,rismprm%asympCorr)*KB*rism_3d%solv%temperature
- apol_exchemGF = rism3d_exchemGF(rism_3d,rismprm%asympCorr)*KB*rism_3d%solv%temperature
-
-+ call rism3d_resetCharges(rism_3d)
- !parallel communication
- #ifdef MPI
- # ifdef USE_MPI_IN_PLACE
-diff -urN amber11.orig/AmberTools/src/rism/rism1d_potential_c.f amber11/AmberTools/src/rism/rism1d_potential_c.f
---- amber11.orig/AmberTools/src/rism/rism1d_potential_c.f 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/rism/rism1d_potential_c.f 2011-10-25 15:01:28.242288519 +0300
-@@ -124,7 +124,7 @@
- type(solvMDL), intent(in) :: mdl
- _REAL_, intent(in) :: density
- integer :: oldnv
-- integer :: iv1, iv2, ivv, iv, iat, imlt
-+ integer :: iv1, iv2, ivv, iv, iat, imlt, isp
-
- !increment scalar variables
- oldnv = this%nv
-@@ -139,7 +139,10 @@
- this%nat(this%nsp) = mdl%ntype
- this%mta => safemem_realloc(this%mta, max(ubound(this%mta,1),mdl%ntype), this%nsp)
- this%mta(1:mdl%ntype,this%nsp) = mdl%multi
--
-+ !zero out multiplicity for unused indicies in previously add species
-+ do isp=1, this%nsp
-+ this%mta(this%nat(isp)+1:,isp)=0
-+ end do
- this%mtv => safemem_realloc(this%mtv,this%nv)
- this%mtv(oldnv+1:this%nv) = mdl%multi
-
-@@ -178,7 +181,7 @@
- this%rminv => safemem_realloc(this%rminv,this%nv)
- this%rminv(oldnv+1:this%nv) = mdl%rmin/2d0
-
-- this%rma => safemem_realloc(this%rma,3,ubound(this%mta,1),maxval(this%nat),this%nsp)
-+ this%rma => safemem_realloc(this%rma,3,maxval(this%mta),maxval(this%nat),this%nsp,.true.,.false.)
- iv = 0
- do iat=1,this%nat(this%nsp)
- do imlt = 1, this%mta(iat,this%nsp)
-@@ -186,7 +189,7 @@
- this%rma(:,imlt,iat,this%nsp) = mdl%coord(:,iv)
- end do
- end do
-- this%wlmvv => safemem_realloc(this%wlmvv,ubound(this%mta,1),this%nv,this%nv)
-+ this%wlmvv => safemem_realloc(this%wlmvv,maxval(this%mta),this%nv,this%nv)
- call intramolecular_dist(this)
-
- !data arrays in the original 1D-RISM code had an offset of 0 in the first index (like C).
-@@ -269,7 +272,7 @@
- r,rs, rs6,ri6, usr,usra
-
- _REAL_ :: d0x(this%nv), d0y(this%nv), d1z(this%nv), &
-- wkvv(this%nv,this%nv)
-+ wkvv(this%nv,this%nv), erfc_test
- _REAL_, external :: erfc
-
-
-@@ -478,10 +481,21 @@
- r = (ir-1)*this%dr
- k = (ir-1)*this%dk
- qvv = charge*this%qspv(iv1)*this%qspv(iv2)
-- this%hlrvv(ir,ivv) = -qvv/this%dielconst &
-- * 0.5d0 * exp((this%smear*this%kappa/2.d0)**2) &
-- * ( exp(-this%kappa*r)*erfc(this%kappa*this%smear/2.d0 - r/this%smear) &
-- - exp(this%kappa*r)*erfc(this%kappa*this%smear/2.d0 + r/this%smear) )
-+ !for large grids with short Debye lengths the positive
-+ !exponent can overflow. erfc is already zero at this
-+ !point. So we test erfc to see if we can avoid the
-+ !exponent
-+ erfc_test = erfc(this%kappa*this%smear/2.d0 + r/this%smear)
-+ if(erfc_test > sqrt(tiny(1d0)))then
-+ this%hlrvv(ir,ivv) = -qvv/this%dielconst &
-+ * 0.5d0 * exp((this%smear*this%kappa/2.d0)**2) &
-+ * ( exp(-this%kappa*r)*erfc(this%kappa*this%smear/2.d0 - r/this%smear) &
-+ - exp(this%kappa*r)*erfc_test )
-+ else
-+ this%hlrvv(ir,ivv) = -qvv/this%dielconst &
-+ * 0.5d0 * exp((this%smear*this%kappa/2.d0)**2) &
-+ * ( exp(-this%kappa*r)*erfc(this%kappa*this%smear/2.d0 - r/this%smear))
-+ end if
- this%hlkvv(ir,ivv) = -qvv/this%dielconst &
- * 4.d0*pi*exp(-(0.5d0*this%smear*k)**2) * k/(k**2+this%kappa**2)
- enddo
-diff -urN amber11.orig/AmberTools/src/rism/rism3d_c.f amber11/AmberTools/src/rism/rism3d_c.f
---- amber11.orig/AmberTools/src/rism/rism3d_c.f 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/rism/rism3d_c.f 2011-10-25 15:01:28.245288516 +0300
-@@ -1086,26 +1086,26 @@
- !reallocate arrays that require preservation of their contents
- #if defined(MPI)
- this%cuvWRK => safemem_realloc(this%cuvWRK,this%grid%nr(1),this%grid%nr(2),this%grid%nr(3),&
-- this%solv%natom,this%NVec,.true.)
-+ this%solv%natom,this%NVec,.true.,.true.)
- if(rism3d_solu_charged(this%solu))then
- this%oldcuvChg => safemem_realloc(this%oldcuvChg,this%grid%nr(1),this%grid%nr(2),&
-- this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.)
-+ this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.,.true.)
- this%oldcuv => this%oldcuvChg
- else
- this%oldcuvNoChg => safemem_realloc(this%oldcuvNoChg,this%grid%nr(1),this%grid%nr(2),&
-- this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.)
-+ this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.,.true.)
- this%oldcuv => this%oldcuvNoChg
- end if
- #else
- this%cuvWRK => safemem_realloc(this%cuvWRK,this%grid%nr(1),this%grid%nr(2),this%grid%nr(3),&
-- this%solv%natom,this%NVec,.true.)
-+ this%solv%natom,this%NVec,.true.,.true.)
- if(rism3d_solu_charged(this%solu))then
- this%oldcuvChg => safemem_realloc(this%oldcuvChg,this%grid%nr(1),this%grid%nr(2),&
-- this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.)
-+ this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.,.true.)
- this%oldcuv => this%oldcuvChg
- else
- this%oldcuvNoChg => safemem_realloc(this%oldcuvNoChg,this%grid%nr(1),this%grid%nr(2),&
-- this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.)
-+ this%grid%nr(3),this%solv%natom,this%ncuvsteps,.true.,.true.)
- this%oldcuv => this%oldcuvNoChg
- end if
- !!$ this%oldcuv => safemem_realloc(this%oldcuv,this%grid%nr(1),this%grid%nr(2),&
-diff -urN amber11.orig/AmberTools/src/rism/rism3d_opendx.f amber11/AmberTools/src/rism/rism3d_opendx.f
---- amber11.orig/AmberTools/src/rism/rism3d_opendx.f 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/rism/rism3d_opendx.f 2011-10-25 15:01:28.205288553 +0300
-@@ -49,9 +49,11 @@
- module procedure readDXHeader_file, readDXHeader_unit
- end interface readDXHeader
-
-+#if 0
- interface readDX
- module procedure readDX_3D,readDX_3D_data, readDX_1D, readDX_1D_data
- end interface readDX
-+#endif
- contains
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!Reads in a OpenDX file header. Expects
-@@ -160,6 +162,7 @@
- end if
- end subroutine readDXHeader_unit
-
-+#if 0
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!Reads in a OpenDX file, returning data in a pointer, allocating necessary memory. Expects
- !!!a 3D, regularly spaced grid in ASCII format.
-@@ -311,6 +314,7 @@
- call readDX_data(unit,data,ndata,npos)
- close(unit)
- end subroutine readDX_1D_data
-+#endif
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!write to file in open DX format for use in VMD. When writing in
-diff -urN amber11.orig/AmberTools/src/rism/rism3d.snglpnt.nab amber11/AmberTools/src/rism/rism3d.snglpnt.nab
---- amber11.orig/AmberTools/src/rism/rism3d.snglpnt.nab 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/rism/rism3d.snglpnt.nab 2011-10-25 15:01:28.243288518 +0300
-@@ -632,6 +632,7 @@
- mm_options(sprintf("centering=%d, zerofrc=%d, apply_rism_force=%d",rismOpt.centering,rismOpt.zerofrc,rismOpt.apply_rism_force));
- mm_options(sprintf("polarDecomp=%d",rismOpt.polarDecomp));
- mm_options(sprintf("ntwrism=%d, verbose=%d, progress=%d",rismOpt.ntwrism,rismOpt.verbose,rismOpt.progress));
-+mm_options(sprintf("asympCorr=%d",rismOpt.asympcorr));
- mm_options(sprintf("saveprogress=%d",rismOpt.saveprogress));
- mme_init( m, NULL, "::Z", p_xyz, NULL);
-
-diff -urN amber11.orig/AmberTools/src/rism/safemem.f amber11/AmberTools/src/rism/safemem.f
---- amber11.orig/AmberTools/src/rism/safemem.f 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/rism/safemem.f 2011-10-25 15:01:28.247288515 +0300
-@@ -46,13 +46,13 @@
- !logical :: Current number of bytes of logical memory allocated
- !char :: Current number of bytes of character memory allocated
- !total :: Current number of bytes of total memory allocated
-- integer*8 :: int,real,logical,char,total
-+ integer*8 :: int=0,real=0,logical=0,char=0,total=0
- !maxint :: Current number of bytes of integer memory allocated
- !maxreal :: Current number of bytes of real memory allocated
- !maxlogical :: Current number of bytes of logical memory allocated
- !maxchar :: Current number of bytes of character memory allocated
- !max :: Current number of bytes of total memory allocated
-- integer*8 :: maxint,maxreal,maxlogical,maxchar,max
-+ integer*8 :: maxint=0,maxreal=0,maxlogical=0,maxchar=0,max=0
- end type memTracker
-
- !BYTES_PER_GIGABYTES :: used to convert between bytes and GB
-@@ -352,6 +352,9 @@
- !!! n4 :: size of the fourth dimension
- !!! preserve :: boolean indicating whether or not to preserve the contents of
- !!! the array (optional)
-+!!! center :: when preserving the contents of the array, center the
-+!!! data in the array instead of preserving the value at each
-+!!! index
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- FUNCTION safemem_realloc_4d_real(p, n1, n2, n3, n4, preserve, center)
- implicit none
-@@ -369,7 +372,7 @@
- #endif /*RISM_DEBUG*/
- prsrv = .true.
- if(present(preserve)) prsrv=preserve
-- cntr = .true.
-+ cntr = .false.
- if(present(center)) cntr=center
-
- if(.not.prsrv .and. associated(p)) then
-@@ -499,6 +502,9 @@
- !!! n5 :: size of the fifth dimension
- !!! preserve :: boolean indicating whether or not to preserve the contents of
- !!! the array (optional)
-+!!! center :: when preserving the contents of the array, center the
-+!!! data in the array instead of preserving the value at each
-+!!! index
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- FUNCTION safemem_realloc_5d_real(p, n1, n2, n3, n4, n5, preserve, center)
- implicit none
-@@ -516,7 +522,7 @@
- #endif /*RISM_DEBUG*/
- prsrv = .true.
- if(present(preserve)) prsrv = preserve
-- cntr=.true.
-+ cntr=.false.
- if(present(center)) cntr = center
-
- if(.not.prsrv .and. associated(p)) then
-@@ -1006,7 +1012,7 @@
- !work around for old gfortran bug
- ! if(associated(p)) deallocate(p,STAT=safemem_dealloc_pointer_1d_logical)
- if(associated(p))then
-- call memadd_c(totalmem,-product(ubound(p))*kind(p))
-+ call memadd_l(totalmem,-product(ubound(p))*kind(p))
- deallocate(p,STAT=temp)
- end if
- safemem_dealloc_pointer_1d_logical = temp
-diff -urN amber11.orig/AmberTools/src/sqm/qm2_energy.f amber11/AmberTools/src/sqm/qm2_energy.f
---- amber11.orig/AmberTools/src/sqm/qm2_energy.f 2011-03-11 20:43:13.000000000 +0200
-+++ amber11/AmberTools/src/sqm/qm2_energy.f 2011-10-25 15:01:28.206288552 +0300
-@@ -277,7 +277,7 @@
-
- ! Add PM6 corrections to Heat of Formation
- if (qmmm_nml%qmtheory%PM6) then
-- escf = escf + pm6_correction()
-+ escf = escf + hofCorrection()
- end if
-
- call timer_stop(TIME_QMMMENERGYSCF)
-diff -urN amber11.orig/AmberTools/src/sqm/qm2_get_qm_forces.f amber11/AmberTools/src/sqm/qm2_get_qm_forces.f
---- amber11.orig/AmberTools/src/sqm/qm2_get_qm_forces.f 2011-03-11 20:43:13.000000000 +0200
-+++ amber11/AmberTools/src/sqm/qm2_get_qm_forces.f 2011-10-25 15:01:28.208288550 +0300
-@@ -250,7 +250,7 @@
- ! --------------------------------------------
- if (qmmm_nml%qmtheory%PM6) then
- natom = qmmm_struct%nquant_nlink
-- call pm6_correction(natom, dxyzqm)
-+ call hofCorrectionGradient(natom, dxyzqm)
- end if
-
- if(qmmm_nml%peptide_corr) then
-diff -urN amber11.orig/AmberTools/src/sqm/qm2_pm6_hof_module.f amber11/AmberTools/src/sqm/qm2_pm6_hof_module.f
---- amber11.orig/AmberTools/src/sqm/qm2_pm6_hof_module.f 2011-03-11 20:43:13.000000000 +0200
-+++ amber11/AmberTools/src/sqm/qm2_pm6_hof_module.f 2011-10-25 15:01:28.209288549 +0300
-@@ -21,8 +21,7 @@
- implicit none
-
- private
-- public :: pm6_correction
-- public :: corInfoType, print
-+ public :: corInfoType, print, hofCorrection, hofCorrectionGradient
- public :: cct, nsp2
- public :: strlen
-
-@@ -30,11 +29,6 @@
- module procedure printCorInfoType
- end interface
-
-- interface pm6_correction
-- module procedure hofCorrection
-- module procedure hofCorrectionGradient
-- end interface
--
- ! Data type collecting information on PM6 HOF corrections
- type corInfoType
- logical :: inUse ! correction in use ?
-diff -urN amber11.orig/AmberTools/test/cpptraj/Test_General/RunTest.sh amber11/AmberTools/test/cpptraj/Test_General/RunTest.sh
---- amber11.orig/AmberTools/test/cpptraj/Test_General/RunTest.sh 2011-04-14 15:30:21.000000000 +0300
-+++ amber11/AmberTools/test/cpptraj/Test_General/RunTest.sh 2011-10-25 15:01:28.215288544 +0300
-@@ -25,7 +25,7 @@
- DoTest PhiPsi.dat.save PhiPsi.dat
- DoTest test.crd.save test.crd
- DoTest a1.dat.save a1.dat
--DoTest test.rst7.103.save Restart/test.rst7.103
-+DoTest test.rst7.103.save Restart/test.rst7.123
- DoTest test.nc.save test.nc
- DoTest r4.dat.save r4.dat
- DoTest a2.dat.gz.save a2.dat.gz
-diff -urN amber11.orig/AmberTools/test/mmpbsa_py/11_3D-RISM/FINAL_RESULTS_MMPBSA.dat.save amber11/AmberTools/test/mmpbsa_py/11_3D-RISM/FINAL_RESULTS_MMPBSA.dat.save
---- amber11.orig/AmberTools/test/mmpbsa_py/11_3D-RISM/FINAL_RESULTS_MMPBSA.dat.save 2011-04-14 15:30:22.000000000 +0300
-+++ amber11/AmberTools/test/mmpbsa_py/11_3D-RISM/FINAL_RESULTS_MMPBSA.dat.save 2011-10-25 15:01:28.247288515 +0300
-@@ -1,4 +1,4 @@
--| Run on Tue Mar 8 15:33:18 PST 2011
-+| Run on Fri Oct 7 17:12:46 EDT 2011
-
- |Input file:
- |--------------------------------------------------------------
-@@ -32,14 +32,14 @@
- -------------------------------------------------------------------------------
- VDWAALS -4.6380 0.3291 0.2327
- EEL -425.3449 4.5554 3.2212
--ERISM -164.0501 3.9611 2.8009
-- POLAR -219.8772 4.0588 2.8700
-- APOLAR 55.8271 0.0977 0.0691
-+ERISM -164.0499 3.9609 2.8008
-+ POLAR -235.0781 4.4994 3.1816
-+ APOLAR 71.0282 0.5386 0.3808
-
- G gas -429.9829 4.2263 2.9885
--G solv -164.0501 3.9611 2.8009
-+G solv -164.0499 3.9609 2.8008
-
--TOTAL -594.0331 0.2653 0.1876
-+TOTAL -594.0329 0.2655 0.1877
-
-
- Receptor:
-@@ -48,8 +48,8 @@
- VDWAALS -3.9302 0.2702 0.1910
- EEL -254.1833 4.5196 3.1959
- ERISM -79.2939 3.0131 2.1306
-- POLAR -118.9799 3.1556 2.2314
-- APOLAR 39.6860 0.1425 0.1008
-+ POLAR -126.9784 3.4713 2.4546
-+ APOLAR 47.6845 0.4582 0.3240
-
- G gas -258.1136 4.2494 3.0048
- G solv -79.2939 3.0131 2.1306
-@@ -62,12 +62,12 @@
- -------------------------------------------------------------------------------
- VDWAALS -0.7056 0.0606 0.0428
- EEL -170.5448 1.1864 0.8389
--ERISM -85.2510 0.0719 0.0509
-- POLAR -101.3724 0.0489 0.0346
-- APOLAR 16.1214 0.0230 0.0163
-+ERISM -85.2510 0.0719 0.0508
-+ POLAR -108.6574 0.0351 0.0249
-+ APOLAR 23.4064 0.1070 0.0757
-
- G gas -171.2505 1.2470 0.8818
--G solv -85.2510 0.0719 0.0509
-+G solv -85.2510 0.0719 0.0508
-
- TOTAL -256.5015 1.1751 0.8309
-
-@@ -77,15 +77,15 @@
- -------------------------------------------------------------------------------
- VDWAALS -0.0021 0.0017 0.0012
- EEL -0.6167 1.2222 0.8642
--ERISM 0.4947 1.0198 0.7211
-- POLAR 0.4750 0.9520 0.6732
-- APOLAR 0.0198 0.0678 0.0480
-+ERISM 0.4950 1.0196 0.7210
-+ POLAR 0.5577 0.9929 0.7021
-+ APOLAR -0.0627 0.0267 0.0189
-
- DELTA G gas -0.6189 1.2239 0.8654
--DELTA G solv 0.4947 1.0198 0.7211
-+DELTA G solv 0.4950 1.0196 0.7210
-
-
-- DELTA G binding = -0.1241 +/- 0.2041 0.1443
-+ DELTA G binding = -0.1239 +/- 0.2043 0.1445
-
-
- -------------------------------------------------------------------------------
-@@ -99,8 +99,8 @@
- VDWAALS -4.6380 0.3291 0.2327
- EEL -425.3449 4.5554 3.2212
- ERISM -187.9280 4.0576 2.8691
-- POLAR -221.3631 4.0723 2.8795
-- APOLAR 33.4351 0.0147 0.0104
-+ POLAR -236.5648 4.5137 3.1916
-+ APOLAR 48.6367 0.4561 0.3225
-
- G gas -429.9829 4.2263 2.9885
- G solv -187.9280 4.0576 2.8691
-@@ -113,12 +113,12 @@
- -------------------------------------------------------------------------------
- VDWAALS -3.9302 0.2702 0.1910
- EEL -254.1833 4.5196 3.1959
--ERISM -94.4232 3.0803 2.1781
-- POLAR -119.8020 3.1352 2.2169
-- APOLAR 25.3788 0.0549 0.0388
-+ERISM -94.4233 3.0804 2.1781
-+ POLAR -127.8003 3.4511 2.4403
-+ APOLAR 33.3771 0.3707 0.2621
-
- G gas -258.1136 4.2494 3.0048
--G solv -94.4232 3.0803 2.1781
-+G solv -94.4233 3.0804 2.1781
-
- TOTAL -352.5368 1.1691 0.8267
-
-@@ -128,14 +128,14 @@
- -------------------------------------------------------------------------------
- VDWAALS -0.7056 0.0606 0.0428
- EEL -170.5448 1.1864 0.8389
--ERISM -94.0188 0.0538 0.0381
-- POLAR -102.0695 0.0274 0.0194
-- APOLAR 8.0506 0.0264 0.0187
-+ERISM -94.0185 0.0541 0.0383
-+ POLAR -109.3544 0.0565 0.0399
-+ APOLAR 15.3358 0.1106 0.0782
-
- G gas -171.2505 1.2470 0.8818
--G solv -94.0188 0.0538 0.0381
-+G solv -94.0185 0.0541 0.0383
-
--TOTAL -265.2693 1.1932 0.8437
-+TOTAL -265.2690 1.1929 0.8435
-
-
- Differences (Complex - Receptor - Ligand):
-@@ -143,15 +143,15 @@
- -------------------------------------------------------------------------------
- VDWAALS -0.0021 0.0017 0.0012
- EEL -0.6167 1.2222 0.8642
--ERISM 0.5140 1.0311 0.7291
-- POLAR 0.5083 0.9645 0.6820
-- APOLAR 0.0057 0.0666 0.0471
-+ERISM 0.5137 1.0314 0.7293
-+ POLAR 0.5900 1.0061 0.7114
-+ APOLAR -0.0762 0.0253 0.0179
-
- DELTA G gas -0.6189 1.2239 0.8654
--DELTA G solv 0.5140 1.0311 0.7291
-+DELTA G solv 0.5137 1.0314 0.7293
-
-
-- DELTA G binding = -0.1049 +/- 0.1928 0.1363
-+ DELTA G binding = -0.1051 +/- 0.1926 0.1362
-
-
- -------------------------------------------------------------------------------
-diff -urN amber11.orig/AmberTools/test/nab/rism3d.snglpnt.2.out.check amber11/AmberTools/test/nab/rism3d.snglpnt.2.out.check
---- amber11.orig/AmberTools/test/nab/rism3d.snglpnt.2.out.check 2011-04-14 15:30:23.000000000 +0300
-+++ amber11/AmberTools/test/nab/rism3d.snglpnt.2.out.check 2011-10-25 15:01:28.248288514 +0300
-@@ -32,6 +32,7 @@
- mm_options: ntwrism=1
- mm_options: verbose=0
- mm_options: progress=0
-+ mm_options: asympCorr=1
- mm_options: saveprogress=0
- |3D-RISM thermodynamic data key
- |solute_epot [kcal/mol] : Total LJ Coulomb Bond Angle Dihedral H-Bond LJ-14 Coulomb-14 Restraints 3D-RISM
-@@ -74,13 +75,13 @@
- 3D-RISM processing complete.
-
- |Timing summary:
--| Initialize 0.042
-+| Initialize 0.046
- | Molec. Dyn. 0.000
- | Normal Mode 0.000
- | Conj. Grad. 0.000
- | Newton 0.000
- |-------------------------
--| Total 0.042
-+| Total 0.046
-
- |1st derivative timing summary:
- | constraints 0.000
-@@ -91,7 +92,7 @@
- | nonbond 0.000
- | gen. Born 0.000
- | Poisson Boltzmann 0.000
--| 3D-RISM 10.167
-+| 3D-RISM 8.211
- | Other 0.000
- |-------------------------
--| Total 10.167
-+| Total 8.212
-diff -urN amber11.orig/AmberTools/test/nab/rism3d.snglpnt.out.check amber11/AmberTools/test/nab/rism3d.snglpnt.out.check
---- amber11.orig/AmberTools/test/nab/rism3d.snglpnt.out.check 2011-04-14 15:30:23.000000000 +0300
-+++ amber11/AmberTools/test/nab/rism3d.snglpnt.out.check 2011-10-25 15:01:28.248288514 +0300
-@@ -31,6 +31,7 @@
- mm_options: ntwrism=0
- mm_options: verbose=0
- mm_options: progress=0
-+ mm_options: asympCorr=1
- mm_options: saveprogress=0
- |3D-RISM thermodynamic data key
- |solute_epot [kcal/mol] : Total LJ Coulomb Bond Angle Dihedral H-Bond LJ-14 Coulomb-14 Restraints 3D-RISM
-@@ -55,10 +56,10 @@
- rism_volume: 1.93595981E+002
- rism_exNumb: -6.38184158E+000 -1.27637588E+001
- rism_exChrg: -3.20562831E-005 5.40924893E+000 -5.40928099E+000
--rism_polar_: -1.31661477E+001 -4.40204657E+001 3.08543179E+001
--rism_apolar: 2.96543934E+001 7.56776450E+001 -4.60232516E+001
--rism_polGF_: -1.34197324E+001 -4.39508092E+001 3.05310768E+001
--rism_apolGF: 1.97398606E+001 7.11960080E+001 -5.14561474E+001
-+rism_polar_: -1.47850626E+001 -1.09412958E+001 -3.84376682E+000
-+rism_apolar: 3.12733083E+001 4.25984751E+001 -1.13251668E+001
-+rism_polGF_: -1.50386472E+001 -1.08716393E+001 -4.16700794E+000
-+rism_apolGF: 2.13587755E+001 3.81168382E+001 -1.67580627E+001
-
- Frame: 2 of 3
- solute_epot: -3.41386230E-001 2.56854615E+000 -8.23476129E+001 3.38717466E-002 3.59735615E-001 7.49048012E+000 0.00000000E+000 4.97044290E+000 5.01391318E+001 0.00000000E+000 1.64440184E+001
-@@ -68,10 +69,10 @@
- rism_volume: 1.93535504E+002
- rism_exNumb: -6.37993323E+000 -1.27596468E+001
- rism_exChrg: 9.31177385E-005 5.40763142E+000 -5.40753830E+000
--rism_polar_: -1.31967073E+001 -4.40467251E+001 3.08500178E+001
--rism_apolar: 2.96407256E+001 7.56851573E+001 -4.60444317E+001
--rism_polGF_: -1.34505678E+001 -4.39769309E+001 3.05263631E+001
--rism_apolGF: 1.97272712E+001 7.12038497E+001 -5.14765785E+001
-+rism_polar_: -1.48191496E+001 -1.09491800E+001 -3.86996959E+000
-+rism_apolar: 3.12631679E+001 4.25876122E+001 -1.13244443E+001
-+rism_polGF_: -1.50730101E+001 -1.08793858E+001 -4.19362428E+000
-+rism_apolGF: 2.13497135E+001 3.81063046E+001 -1.67565911E+001
-
- Frame: 3 of 3
- solute_epot: -6.77945271E-001 2.31243593E+000 -8.22812685E+001 9.08980189E-002 3.84286510E-001 7.48894041E+000 0.00000000E+000 4.91668330E+000 5.00274224E+001 0.00000000E+000 1.63826567E+001
-@@ -81,21 +82,21 @@
- rism_volume: 1.93468855E+002
- rism_exNumb: -6.37771162E+000 -1.27552065E+001
- rism_exChrg: 9.18518609E-005 5.40574837E+000 -5.40565652E+000
--rism_polar_: -1.32423609E+001 -4.40992117E+001 3.08568508E+001
--rism_apolar: 2.96250176E+001 7.57232232E+001 -4.60982056E+001
--rism_polGF_: -1.34968274E+001 -4.40292606E+001 3.05324332E+001
--rism_apolGF: 1.97126459E+001 7.12421943E+001 -5.15295484E+001
-+rism_polar_: -1.48691739E+001 -1.09507135E+001 -3.91846037E+000
-+rism_apolar: 3.12518306E+001 4.25747250E+001 -1.13228944E+001
-+rism_polGF_: -1.51236404E+001 -1.08807624E+001 -4.24287800E+000
-+rism_apolGF: 2.13394589E+001 3.80936961E+001 -1.67542372E+001
-
- 3D-RISM processing complete.
-
- |Timing summary:
--| Initialize 0.043
-+| Initialize 0.047
- | Molec. Dyn. 0.000
- | Normal Mode 0.000
- | Conj. Grad. 0.000
- | Newton 0.000
- |-------------------------
--| Total 0.043
-+| Total 0.047
-
- |1st derivative timing summary:
- | constraints 0.000
-@@ -106,7 +107,7 @@
- | nonbond 0.000
- | gen. Born 0.000
- | Poisson Boltzmann 0.000
--| 3D-RISM 32.639
-+| 3D-RISM 30.135
- | Other 0.000
- |-------------------------
--| Total 32.639
-+| Total 30.135
-diff -urN amber11.orig/AmberTools/test/nab/Run.prm amber11/AmberTools/test/nab/Run.prm
---- amber11.orig/AmberTools/test/nab/Run.prm 2011-04-14 15:30:23.000000000 +0300
-+++ amber11/AmberTools/test/nab/Run.prm 2011-10-25 15:01:28.133288619 +0300
-@@ -17,7 +17,7 @@
-
- echo "checking the prmtop file:"
- echo ""
--tail -3209 tprmtop > tprmtop1
-+tail -3228 tprmtop > tprmtop1
- ../dacdif tprmtop.check tprmtop1
-
- rm -f prm prm.c tleap.out leap.log tprmcrd prm.out1 tprmtop
-diff -urN amber11.orig/AmberTools/test/nab/tprmtop.check amber11/AmberTools/test/nab/tprmtop.check
---- amber11.orig/AmberTools/test/nab/tprmtop.check 2011-03-10 20:12:18.000000000 +0200
-+++ amber11/AmberTools/test/nab/tprmtop.check 2011-10-25 15:01:28.135288617 +0300
-@@ -1,3 +1,4 @@
-+%VERSION VERSION_STAMP = V0001.000 DATE = 05/09/11 12:59:19
- %FLAG TITLE
- %FORMAT(20a4)
-
-@@ -541,6 +542,24 @@
- 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00
- 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00 3.14159400E+00
- 3.14159400E+00 3.14159400E+00 3.14159400E+00
-+%FLAG SCEE_SCALE_FACTOR
-+%FORMAT(5E16.8)
-+ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
-+ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
-+ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
-+ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
-+ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
-+ 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
-+ 0.00000000E+00 0.00000000E+00 0.00000000E+00
-+%FLAG SCNB_SCALE_FACTOR
-+%FORMAT(5E16.8)
-+ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
-+ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
-+ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
-+ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
-+ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
-+ 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
-+ 0.00000000E+00 0.00000000E+00 0.00000000E+00
- %FLAG SOLTY
- %FORMAT(5E16.8)
- 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
-diff -urN amber11.orig/AmberTools/test/rism1d/check1d amber11/AmberTools/test/rism1d/check1d
---- amber11.orig/AmberTools/test/rism1d/check1d 2011-04-14 15:30:29.000000000 +0300
-+++ amber11/AmberTools/test/rism1d/check1d 2011-10-25 15:01:28.249288513 +0300
-@@ -85,7 +85,7 @@
- #It is unrealistic to achieve low relative error for these very small number so we only
- #use the abolute error
- if [ -s $1.bvv.save ]; then
-- $AMBERHOME/AmberTools/test/dacdif -a 1.e-7 $1.bvv.save $1.bvv
-+ $AMBERHOME/AmberTools/test/dacdif -a 2.e-7 $1.bvv.save $1.bvv
- fi
-
- /bin/rm -f $1.xvv.delhv0 $1.xvv.delhv0.save $1.xvv.xvv $1.xvv.xvv.save\
-diff -urN amber11.orig/AT15_Amber11.py amber11/AT15_Amber11.py
---- amber11.orig/AT15_Amber11.py 2011-04-14 15:30:11.000000000 +0300
-+++ amber11/AT15_Amber11.py 2011-10-25 15:01:28.221288538 +0300
-@@ -145,4 +145,29 @@
- makefile.close()
-
- # Now we are done
--print "\nAmber 11 patched for AmberTools 1.5. Run\nmake %s\nto build amber11\n" % buildtype
-+print "\nAmber 11 patched for AmberTools 1.5. Run\ncd src; make %s\nto build amber11\n" % buildtype
-+
-+# Now print out details about expected test FAILUREs and
-+# errors:
-+
-+warning = """NOTE: Because PBSA has changed since Amber 11 was released, some
-+tests are known to fail and others are known to quit in error. These
-+can be safely ignored.
-+
-+Tests that error: Tests in $AMBERHOME/test/sander_pbsa_frc
-+ Run.argasp.min Run.dadt.min Run.dgdc.min
-+ Run.lysasp.min Run.polyALA.min Run.polyAT.min
-+ Run.argasp.min Run.dadt.min Run.dgdc.min
-+ Run.lysasp.min Run.polyALA.min Run.polyAT.min
-+ Run.argasp.min Run.dadt.min Run.dgdc.min
-+ Run.lysasp.min Run.polyALA.min Run.polyAT.min
-+
-+Tests that produce possible FAILUREs:
-+ cd sander_pbsa_ipb2 && ./Run.110D.min
-+ cd sander_pbsa_lpb && ./Run.lsolver.min (only some of them fail here)
-+ cd sander_pbsa_tsr && ./Run.tsrb.min
-+ cd sander_pbsa_decres && ./Run.pbsa_decres
-+ mm_pbsa.pl tests 02, 03, and 05
-+"""
-+
-+print warning
-diff -urN amber11.orig/dat/antechamber/ATOMTYPE_AMBER.DEF amber11/dat/antechamber/ATOMTYPE_AMBER.DEF
---- amber11.orig/dat/antechamber/ATOMTYPE_AMBER.DEF 2011-04-14 15:30:40.000000000 +0300
-+++ amber11/dat/antechamber/ATOMTYPE_AMBER.DEF 2011-10-25 15:01:28.198288560 +0300
-@@ -49,7 +49,7 @@
- ATD F * 9 1 &
- ATD Cl * 17 1 &
- ATD Br * 35 1 &
--ATD F * 53 1 &
-+ATD I * 53 1 &
- ATD P * 15 &
- ATD N1 * 7 1 &
- ATD NB * 7 2 * * [RG5,AR1.AR2.AR3] &
-diff -urN amber11.orig/dat/leap/cmd/leaprc.ff99SBnmr amber11/dat/leap/cmd/leaprc.ff99SBnmr
---- amber11.orig/dat/leap/cmd/leaprc.ff99SBnmr 2011-04-14 15:30:40.000000000 +0300
-+++ amber11/dat/leap/cmd/leaprc.ff99SBnmr 2011-10-25 15:01:28.239288522 +0300
-@@ -74,13 +74,6 @@
- { "OL" "O" "sp3" }
- { "AC" "C" "sp3" }
- { "EC" "C" "sp3" }
--#ildn
-- { "C3" "C" "sp3" }
-- { "C4" "C" "sp3" }
-- { "C5" "C" "sp2" }
-- { "C6" "C" "sp2" }
-- { "NP" "N" "sp2" }
-- { "OM" "O" "sp2" } # guess!!!
- }
- #
- # Load the main parameter set.
-@@ -95,9 +88,9 @@
- # Load main chain and terminating
- # amino acid libraries (i.e. ff94 libs)
- #
--loadOff all_amino94ildn.lib
--loadOff all_aminoct94ildn.lib
--loadOff all_aminont94ildn.lib
-+loadOff all_amino94.lib
-+loadOff all_aminoct94.lib
-+loadOff all_aminont94.lib
- #
- # Load water and ions
- #
-diff -urN amber11.orig/dat/leap/parm/parm10.dat amber11/dat/leap/parm/parm10.dat
---- amber11.orig/dat/leap/parm/parm10.dat 2011-04-14 15:30:40.000000000 +0300
-+++ amber11/dat/leap/parm/parm10.dat 2011-10-25 15:01:28.218288541 +0300
-@@ -783,8 +783,10 @@
- OS-P -OS-CT 1 0.25 0.0 -3. JCC,7,(1986),230
- OS-P -OS-CT 1 1.20 0.0 2. gg> ene.631g*/mp2
- H1-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999
-+H1-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
- H1-CT-C -O 1 0.08 180.0 3. Junmei et al, 1999
- H1-CX-C -O 1 0.80 0.0 -1. Junmei et al, 1999 (was H1-CT-C -O )
-+H1-CX-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
- H1-CX-C -O 1 0.08 180.0 3. Junmei et al, 1999 (was H1-CT-C -O )
- HC-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999
- HC-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
-diff -urN amber11.orig/dat/leap/parm/parm99.dat amber11/dat/leap/parm/parm99.dat
---- amber11.orig/dat/leap/parm/parm99.dat 2011-04-14 15:30:40.000000000 +0300
-+++ amber11/dat/leap/parm/parm99.dat 2011-10-25 15:01:28.221288538 +0300
-@@ -546,7 +546,7 @@
- OS-P -OS-CT 1 0.25 0.0 -3. JCC,7,(1986),230
- OS-P -OS-CT 1 1.20 0.0 2. gg> ene.631g*/mp2
- H1-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999
--HC-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
-+H1-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
- H1-CT-C -O 1 0.08 180.0 3. Junmei et al, 1999
- HC-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999
- HC-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_22-27.patch b/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_22-27.patch
deleted file mode 100644
index 6df705c..0000000
--- a/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_22-27.patch
+++ /dev/null
@@ -1,3343 +0,0 @@
-diff -urN amber11.orig/AmberTools/examples/mtkpp/MCPB/run.MCPB.csh amber11/AmberTools/examples/mtkpp/MCPB/run.MCPB.csh
---- amber11.orig/AmberTools/examples/mtkpp/MCPB/run.MCPB.csh 2011-04-14 15:30:12.000000000 +0300
-+++ amber11/AmberTools/examples/mtkpp/MCPB/run.MCPB.csh 2012-03-03 20:03:01.387032575 +0200
-@@ -2,111 +2,10 @@
- echo " "
- echo " MTK++ MCPB example "
- echo " "
--
--# Clean up
--rm -rf 1AMP_OH.README
--rm -rf *.bcl
--rm -rf createLibraries.sh createRespAdditions.sh getCharges.sh
--rm -rf *.pdb
--rm -rf *.log
--
--cp data/*.pdb .
--cp data/*.bcl .
--cp data/*.log .
--cp data/*.fchk .
--
--echo "Generating scripts "
--sh genMetalFF.sh -n 1AMP_OH
--
--cp data/1AMP.pdb .
--cp data/1AMP_OH_fixed.pdb .
--cp data/1AMP_OH_sidechain.bcl .
--cp data/1AMP_OH_addStdMol.bcl .
--cp data/1AMP_OH_large.bcl .
--cp data/1AMP_OH_large_mk.log .
--
--cp data/1AMP_OH_sidechain_fc_md.log .
--cp data/1AMP_OH_sidechain_opt_md.fchk .
--cp data/1AMP_OH_sidechain_opt_md.log .
--
--echo "Adding Hydrogens to pdb file "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_addHs.bcl \
-- -l 1AMP_OH_addHs.bcl.log || goto error
--
--echo "Creating Model 1"
--$AMBERHOME/bin/MCPB -i 1AMP_OH_sidechain.bcl \
-- -l 1AMP_OH_sidechain.bcl.log || goto error
--
--echo "Adding standard molecule to library "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_addStdMol.bcl \
-- -l 1AMP_OH_addStdMol.bcl.log || goto error
--
--echo "Creating Model 2 "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_large.bcl \
-- -l 1AMP_OH_large.bcl.log || goto error
--
--echo "Creating RESP files 0 "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_large_mk0.bcl \
-- -l 1AMP_OH_large_mk0.bcl.log || goto error
--mv 1AMP_OH_large_respAdds 1AMP_OH_large_respAdds0 || goto error
--
--echo "Creating RESP files 1 "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_large_mk1.bcl \
-- -l 1AMP_OH_large_mk1.bcl.log || goto error
--mv 1AMP_OH_large_respAdds 1AMP_OH_large_respAdds1 || goto error
--
--echo "Creating RESP files 2 "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_large_mk2.bcl \
-- -l 1AMP_OH_large_mk2.bcl.log || goto error
--mv 1AMP_OH_large_respAdds 1AMP_OH_large_respAdds2 || goto error
--
--echo "Creating RESP files 3 "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_large_mk3.bcl \
-- -l 1AMP_OH_large_mk3.bcl.log || goto error
--mv 1AMP_OH_large_respAdds 1AMP_OH_large_respAdds3 || goto error
--
--echo "Determining charges "
--sh ./getCharges.sh 0 || goto error
--sh ./getCharges.sh 1 || goto error
--sh ./getCharges.sh 2 || goto error
--sh ./getCharges.sh 3 || goto error
--
--echo "Creating library files "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_large_chg0.bcl \
-- -l 1AMP_OH_large_chg0.bcl.log || goto error
--
--$AMBERHOME/bin/MCPB -i 1AMP_OH_large_chg1.bcl \
-- -l 1AMP_OH_large_chg1.bcl.log || goto error
--
--$AMBERHOME/bin/MCPB -i 1AMP_OH_large_chg2.bcl \
-- -l 1AMP_OH_large_chg2.bcl.log || goto error
--
--$AMBERHOME/bin/MCPB -i 1AMP_OH_large_chg3.bcl \
-- -l 1AMP_OH_large_chg3.bcl.log || goto error
--
--echo "Determining Seminario force constants "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_sidechain_fc_sem.bcl \
-- -l 1AMP_OH_sidechain_fc_sem.bcl.log || goto error
--
--echo "Determining Traditional force constants "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_sidechain_fc_md.bcl \
-- -l 1AMP_OH_sidechain_fc_md.bcl.log || goto error
--
--echo "Exporting Seminario library to AMBER format "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_toAmberFormats_sem.bcl \
-- -l 1AMP_OH_toAmberFormats_sem.bcl.log || goto error
--
--echo "Exporting Traditional library to AMBER format "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_toAmberFormats_md.bcl \
-- -l 1AMP_OH_toAmberFormats_md.bcl.log || goto error
--
--echo "Reading protonated file and updating residue names "
--$AMBERHOME/bin/MCPB -i 1AMP_OH_resNames.bcl \
-- -l 1AMP_OH_resNames.bcl.log || goto error
--
--echo No errors detected
-+echo " "
-+echo " This example has been removed due to incompatibility with"
-+echo " the current minor revision of MTK++. An updated MCPB example"
-+echo " is planned for a future release."
-+echo " "
- exit(0)
-
--error:
--echo Problem: check log files and try again
--exit(1)
-diff -urN amber11.orig/AmberTools/examples/mtkpp/stats/pca1/run.stats.csh amber11/AmberTools/examples/mtkpp/stats/pca1/run.stats.csh
---- amber11.orig/AmberTools/examples/mtkpp/stats/pca1/run.stats.csh 2011-04-14 15:30:12.000000000 +0300
-+++ amber11/AmberTools/examples/mtkpp/stats/pca1/run.stats.csh 2012-03-03 20:03:01.387032575 +0200
-@@ -3,12 +3,12 @@
- echo " MTK++ stats example"
- echo " "
-
--../$AMBERHOME/bin/stats -i pca.stats \
-- -l pca.stats.log || goto error
-+$AMBERHOME/bin/stats -i pca.stats \
-+ -l pca.stats.log || goto error
-
- echo No errors detected
- exit(0)
-
- error:
- echo Problem: check .out and try again
--exit(1)
-\ Nav jaunu rindu faila beigās
-+exit(1)
-diff -urN amber11.orig/AmberTools/src/configure amber11/AmberTools/src/configure
---- amber11.orig/AmberTools/src/configure 2012-03-03 22:42:38.558776473 +0200
-+++ amber11/AmberTools/src/configure 2012-03-03 20:02:57.727033628 +0200
-@@ -61,6 +61,9 @@
- -debug Compile with debug symbols
- -noopt Disable all compiler optimisations (sometimes needed if
- debug symbols are requested)
-+ -nopatch Do NOT run \$AMBERHOME/AT15_Amber11.py after configure writes
-+ the config.h file, even if Amber11 is found in the directory.
-+ This flag has no effect if Amber11 is not present.
-
- Rarely used/tested NAB options:
- -scalapack Use ScaLAPACK for linear algebra. Do not use in
-@@ -165,6 +168,7 @@
- debug='no'
- optimise='yes'
- is_mac='no'
-+nopatch='no'
-
- #------------------------------------------------------------------------------
- # Architecture specific:
-@@ -216,6 +220,7 @@
- -nomtkpp) mtkpp='';;
- -debug) debug='yes';;
- -noopt) optimise='no';;
-+ -nopatch) nopatch='yes';;
- -help) usage;;
- --help) usage;;
- -h) usage;;
-@@ -2144,7 +2149,7 @@
- fi
-
- # For AmberTools 1.5 + Amber 11, print a message about running AT15_Amber11.py
--if [ -d ../../src/sander ]; then
-+if [ -d ../../src/sander -a "$nopatch" = 'yes' ]; then
- echo ""
- echo " NOTE: after installing AmberTools, if you want to compile"
- echo " Amber11 using AmberTools 1.5, you must run the "
-@@ -2155,5 +2160,14 @@
- echo " script will modify your Amber11 files.)"
- fi
-
-+if [ -d ../../src/sander -a "$nopatch" = 'no' ]; then
-+ echo ""
-+ echo " Running \$AMBERHOME/AT15_Amber11.py to patch config.h for building Amber 11."
-+ echo " Check Amber11_Conversion.log for details of what was done. Running this script"
-+ echo " a second time has no effect (positive or negative)"
-+ echo ""
-+ ../../AT15_Amber11.py > Amber11_Conversion.log 2>&1
-+fi
-+
- exit
-
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/AmberRestart.cpp amber11/AmberTools/src/cpptraj/src/AmberRestart.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/AmberRestart.cpp 2012-03-03 22:42:00.557775196 +0200
-+++ amber11/AmberTools/src/cpptraj/src/AmberRestart.cpp 2012-03-03 20:03:06.928030979 +0200
-@@ -53,7 +53,7 @@
- mprintf("Error: AmberRestart::open(): Reading restart atoms/time.\n");
- return 1;
- }
-- nread=sscanf(buffer,"%5i%15lE%15lE",&restartAtoms,&restartTime,&restartTemp);
-+ nread=sscanf(buffer,"%i %lE %lE",&restartAtoms,&restartTime,&restartTemp);
- if (nread<1) {
- mprintf("Error: AmberRestart::open(): Getting restart atoms/time.\n");
- return 1;
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/main.cpp amber11/AmberTools/src/cpptraj/src/main.cpp
---- amber11.orig/AmberTools/src/cpptraj/src/main.cpp 2012-03-03 22:42:47.132776753 +0200
-+++ amber11/AmberTools/src/cpptraj/src/main.cpp 2012-03-03 20:03:06.928030979 +0200
-@@ -6,7 +6,7 @@
- #include "PtrajMpi.h"
- #include "CpptrajStdio.h"
- #ifndef CPPTRAJ_VERSION_STRING
--#define CPPTRAJ_VERSION_STRING "V1.1.1"
-+#define CPPTRAJ_VERSION_STRING "V1.1.2"
- #endif
-
- void Usage(char *programName) {
-diff -urN amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py amber11/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py
---- amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py 2011-04-14 15:30:17.000000000 +0300
-+++ amber11/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py 2012-03-03 20:03:11.481029669 +0200
-@@ -2315,7 +2315,7 @@
- return math.sqrt(abs(_stdev(self.com_data[0]) ** 2 + _stdev(self.rec_data[0]) ** 2 + _stdev(self.lig_data[0]) ** 2))
-
- sum = sum2 = 0
-- for i in range(len(self.com_data)):
-+ for i in range(len(self.com_data[0])):
- sum += self.com_data[0][i] - self.rec_data[0][i] - self.lig_data[0][i]
- sum2 += (self.com_data[0][i] - self.rec_data[0][i] - self.lig_data[0][i]) ** 2
-
-diff -urN amber11.orig/AmberTools/src/mtkpp/configure amber11/AmberTools/src/mtkpp/configure
---- amber11.orig/AmberTools/src/mtkpp/configure 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/configure 2012-03-03 20:03:01.397032571 +0200
-@@ -788,7 +788,6 @@
- with_gnu_ld
- with_sysroot
- enable_libtool_lock
--with_gnu_ld
- with_mkl_dir
- with_mkl_libs
- with_boost
-@@ -811,22 +810,9 @@
- CCC
- CC
- CFLAGS
--LDFLAGS
--LIBS
--CPPFLAGS
- CPP
--CPPFLAGS
- CXXCPP
--CPPFLAGS
--XMKMF
--CXX
--LDFLAGS
--LIBS
--CPPFLAGS
--CCC
--CC
--LDFLAGS
--LIBS'
-+XMKMF'
-
-
- # Initialize some variables set by options.
-@@ -16665,7 +16651,7 @@
- *) platform=UNKNOWN
- is_unknown=yes
- echo 'ERROR: this platform is not supported at this time!'
-- exit 1 ;;
-+ exit ;;
- esac
- if test "$is_darwin" = "yes"; then
- IS_DARWIN_TRUE=
-@@ -17838,8 +17824,8 @@
- $as_echo "#define HAVE_ZLIB 1" >>confdefs.h
-
- CFLAGS=$CFLAGS" -DHAVE_ZLIB"
-- CXXFLAGS=$CXXFLAGS" -DHAVE_ZLIB -DHAVE_ZLIB"
-- defines_string=$defines_string" -DHAVE_ZLIB -DHAVE_ZLIB"
-+ CXXFLAGS=$CXXFLAGS" -DHAVE_ZLIB"
-+ defines_string=$defines_string" -DHAVE_ZLIB"
- FLIBS=$FLIBS" -lz"
- else
-
-diff -urN amber11.orig/AmberTools/src/mtkpp/configure.in amber11/AmberTools/src/mtkpp/configure.in
---- amber11.orig/AmberTools/src/mtkpp/configure.in 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/configure.in 2012-03-03 20:03:01.400032571 +0200
-@@ -383,7 +383,7 @@
- *) platform=UNKNOWN
- is_unknown=yes
- echo 'ERROR: this platform is not supported at this time!'
-- exit 1 ;;
-+ exit ;;
- esac
- AM_CONDITIONAL(IS_DARWIN, test "$is_darwin" = "yes")
- AM_CONDITIONAL(IS_LINUX, test "$is_linux" = "yes")
-@@ -457,8 +457,8 @@
- if test $ac_have_zlibh = yes; then
- AC_DEFINE(HAVE_ZLIB, 1, [Define to 1 if ZLIB is available.])
- CFLAGS=$CFLAGS" -DHAVE_ZLIB"
-- CXXFLAGS=$CXXFLAGS" -DHAVE_ZLIB -DHAVE_ZLIB"
-- defines_string=$defines_string" -DHAVE_ZLIB -DHAVE_ZLIB"
-+ CXXFLAGS=$CXXFLAGS" -DHAVE_ZLIB"
-+ defines_string=$defines_string" -DHAVE_ZLIB"
- FLIBS=$FLIBS" -lz"
- else
- AC_DEFINE(HAVE_ZLIB, 0, [Define to 0 if ZLIB is unavailable.])
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Minimizers/Makefile.am amber11/AmberTools/src/mtkpp/src/Minimizers/Makefile.am
---- amber11.orig/AmberTools/src/mtkpp/src/Minimizers/Makefile.am 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Minimizers/Makefile.am 2012-03-03 20:03:01.400032571 +0200
-@@ -1,4 +1,4 @@
--DIAGNOSTICS_LD=-L$(top_builddir)/src/Diagnostics/$(SRCDIR)
-+DIAGNOSTICS_LD=-L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
- DIAGNOSTICS_LIB=-lDiagnostics
- INCLUDES = -I$(srcdir)/..
-
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Minimizers/Makefile.in amber11/AmberTools/src/mtkpp/src/Minimizers/Makefile.in
---- amber11.orig/AmberTools/src/mtkpp/src/Minimizers/Makefile.in 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Minimizers/Makefile.in 2012-03-03 20:03:01.401032571 +0200
-@@ -239,7 +239,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xerces_path = @xerces_path@
--DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics/$(SRCDIR)
-+DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
- DIAGNOSTICS_LIB = -lDiagnostics
- INCLUDES = -I$(srcdir)/..
- lib_LTLIBRARIES = libMinimizers.la
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/MM/Makefile.am amber11/AmberTools/src/mtkpp/src/MM/Makefile.am
---- amber11.orig/AmberTools/src/mtkpp/src/MM/Makefile.am 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/MM/Makefile.am 2012-03-03 20:03:01.400032571 +0200
-@@ -1,6 +1,6 @@
--DIAGNOSTICS_LD=-L$(top_builddir)/src/Diagnostics/$(SRCDIR)
-+DIAGNOSTICS_LD=-L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
- DIAGNOSTICS_LIB=-lDiagnostics
--LOG_LD=-L$(top_builddir)/src/Log/$(SRCDIR)
-+LOG_LD=-L$(abs_top_builddir)/src/Log/$(SRCDIR)
- LOG_LIB=-lLog
-
- INCLUDES = -I@boost_inc@ -I$(srcdir)/..
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/MM/Makefile.in amber11/AmberTools/src/mtkpp/src/MM/Makefile.in
---- amber11.orig/AmberTools/src/mtkpp/src/MM/Makefile.in 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/MM/Makefile.in 2012-03-03 20:03:01.400032571 +0200
-@@ -241,9 +241,9 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xerces_path = @xerces_path@
--DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics/$(SRCDIR)
-+DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
- DIAGNOSTICS_LIB = -lDiagnostics
--LOG_LD = -L$(top_builddir)/src/Log/$(SRCDIR)
-+LOG_LD = -L$(abs_top_builddir)/src/Log/$(SRCDIR)
- LOG_LIB = -lLog
- INCLUDES = -I@boost_inc@ -I$(srcdir)/..
- lib_LTLIBRARIES = libMM.la
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/atomType.h amber11/AmberTools/src/mtkpp/src/Molecule/atomType.h
---- amber11.orig/AmberTools/src/mtkpp/src/Molecule/atomType.h 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Molecule/atomType.h 2012-03-03 20:03:01.402032570 +0200
-@@ -74,6 +74,9 @@
-
- //!
- double evalue;
-+
-+ //! Atomic polarizability in A**3
-+ double atomPolarizability;
- };
-
- // ============================================================
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/collection.cpp amber11/AmberTools/src/mtkpp/src/Molecule/collection.cpp
---- amber11.orig/AmberTools/src/mtkpp/src/Molecule/collection.cpp 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Molecule/collection.cpp 2012-03-03 20:03:01.403032569 +0200
-@@ -484,6 +484,11 @@
- for (moleculeIterator m = this->itsMoleculeList.begin();
- m != this->itsMoleculeList.end(); m++) {
- pMolecule = *m;
-+
-+ if (pMolecule->getName() == "Reference") {
-+ continue;
-+ }
-+
- std::vector<submolecule*> subMolList = pMolecule->getSubMoleculeList();
- for (sMolIterator c = subMolList.begin(); c != subMolList.end(); c++) {
- pSubMolecule = *c;
-@@ -3408,7 +3413,10 @@
- }
- errMessage += metalAtom->getParent()->getName() + "@|"
- + metalAtom->getName() + "|-"
-- + primShellAtoms[e]->getParent()->getName() + "@|"
-+ + primShellAtoms[e]->getParent()->getName()
-+ + i2s(primShellAtoms[e]->getParent()->getSubMolId())
-+ + primShellAtoms[e]->getParent()->getiCode()
-+ + "@|"
- + primShellAtoms[e]->getName() + "| dist = " + d2s(localBond->size) +"\n";
-
- // Angles
-@@ -3488,7 +3496,8 @@
- std::vector<stdGroup*> stdGrpList = this->pStdLibrary->getStdGroupList();
-
- for (unsigned int i = 0; i < stdGrpList.size(); i++) {
--//std::cout << i << " " << stdGrpList.size() << " " << stdGrpList[i]->getName() << " " << stdGrpList[i]->hasStdMolecule() << std::endl;
-+//std::cout << "\n\ncollection::assignMetalParameters " << i << " " << stdGrpList.size() << " " << stdGrpList[i]->getName() << " "
-+// << stdGrpList[i]->hasStdMolecule() << std::endl;
- if (stdGrpList[i]->hasStdMolecule()) {
- //std::cout << "stdgroup name: " << stdGrpList[i]->getName() << std::endl;
- //stdGroup* pStdGroup = stdGrpList[i];
-@@ -3515,6 +3524,7 @@
-
- // create new molecule
- molecule* pNewMolecule = this->addMolecule();
-+ std::vector<atom*> atomList;
-
- // copy residues
- std::vector<metalCenter*> metCens = itsMetalGroups[j]->getMetalCenters();
-@@ -3536,6 +3546,10 @@
- addedResidues.push_back(primShellAtoms[l]->getParent());
- submolecule* pNewSubmolecule = pNewMolecule->addSubMolecule();
- pNewSubmolecule->copy(primShellAtoms[l]->getParent());
-+ std::vector<atom*> atomListTmp = primShellAtoms[l]->getParent()->getAtomList();
-+ for (unsigned int i = 0 ; i < atomListTmp.size(); i++) {
-+ atomList.push_back(atomListTmp[i]);
-+ }
- /*
- std::cout << "Primary Shell " << primShellAtoms[l]->getParent()->getName() << " "
- << primShellAtoms[l]->getParent()->getSubMolId() << " "
-@@ -3556,6 +3570,11 @@
- addedResidues.push_back(secShellAtoms[l]->getParent());
- submolecule* pNewSubmolecule = pNewMolecule->addSubMolecule();
- pNewSubmolecule->copy(secShellAtoms[l]->getParent());
-+
-+ std::vector<atom*> atomListTmp = secShellAtoms[l]->getParent()->getAtomList();
-+ for (unsigned int i = 0 ; i < atomListTmp.size(); i++) {
-+ atomList.push_back(atomListTmp[i]);
-+ }
- /*
- std::cout << "Secondary Shell " << secShellAtoms[l]->getParent()->getName() << " "
- << secShellAtoms[l]->getParent()->getSubMolId()
-@@ -3573,6 +3592,12 @@
- addedResidues.push_back(metalAtom->getParent());
- submolecule* pNewSubmolecule = pNewMolecule->addSubMolecule();
- pNewSubmolecule->copy(metalAtom->getParent());
-+
-+ std::vector<atom*> atomListTmp = metalAtom->getParent()->getAtomList();
-+ for (unsigned int i = 0 ; i < atomListTmp.size(); i++) {
-+ atomList.push_back(atomListTmp[i]);
-+ }
-+
- /*
- std::cout << "Metal Atom " << metalAtom->getParent()->getName() << " "
- << metalAtom->getParent()->getSubMolId()
-@@ -3582,7 +3607,7 @@
- }
- }
-
--//std::cout << " \n\n NEW MOLECULE \n";
-+//std::cout << "NEW MOLECULE \n";
-
- // Copy bonds
- if (pNewMolecule) {
-@@ -3646,16 +3671,26 @@
- }
- }
- }
-+
-+//std::cout << " After copy " << std::endl;
-+
- int nAtomsA = pStdMolecule->getNumAtoms();
- int nAtomsB = pNewMolecule->getNumAtoms();
-+
-+ int nBondsA = pStdMolecule->getNumBonds();
-+ int nBondsB = pNewMolecule->getNumBonds();
-+
- int nHeavyAtomsA = pStdMolecule->getNumHeavyAtoms();
- int nHeavyAtomsB = pNewMolecule->getNumHeavyAtoms();
-
-+//std::cout << "CHECK " << nAtomsA << " " << nAtomsB << " " << nBondsA << " " << nBondsB << "\n";
- int w = 0;
- if (nAtomsA != nAtomsB) w++;
- int h = 0;
- if (nHeavyAtomsA != nHeavyAtomsB) h++;
-
-+//std::cout << " w = " << w << " h = " << h << std::endl;
-+
- if (w or h) {
- std::string eMes = " " + stdGrpList[i]->getName() + " is not a match \n";
- eMes += " std mol nAtoms: " + i2s(nAtomsA) +
-@@ -3671,8 +3706,17 @@
- // Determine corresponences between two molecules
- std::vector<std::vector<int> > correspondenceMatrices;
- //int cor = 0;
-+//std::cout << " superimpose " << std::endl;
- superimpose* pSuperImpose = new superimpose();
-- int f = pSuperImpose->initializeCorrespondences(pStdMolecule, pNewMolecule, 3, correspondenceMatrices);
-+ int f = 0;
-+ try {
-+ f = pSuperImpose->initializeCorrespondences(pStdMolecule, pNewMolecule, 3, correspondenceMatrices);
-+ }
-+ catch (...) {
-+ f = 1;
-+ }
-+
-+//std::cout << " after superimpose " << std::endl;
-
- if (f != 0) {
- std::string eMes = " Error initializing correspondences\n " + stdGrpList[i]->getName() + " is not a match \n";
-@@ -3689,6 +3733,8 @@
- pNewMolecule->getCoordinates(CoordsB);
- int cor = 0;
-
-+//std::cout << " f = 0 " << std::endl;
-+
- double dRMSD = pSuperImpose->rmsd(pStdMolecule, CoordsB, correspondenceMatrices, cor);
- std::string eMes = " " + stdGrpList[i]->getName() + " is a match with rmsd of " + d2s(dRMSD) + "\n";
- MTKpp::errorLogger.throwError("collection::assignMetalParameters", eMes, INFO);
-@@ -3703,38 +3749,52 @@
- for (int t = 0; t < nHeavyAtoms; t++) {
- for (int t2 = 0; t2 < nHeavyAtoms; t2++) {
- if (correspondenceMatrices[cor][t*nHeavyAtoms+t2]) {
--//std::cout << t+1 << ":" << t2+1 << "; |";
--
- atom* pA1 = molHeavyAtoms1[t];
- atom* pA2 = molHeavyAtoms2[t2];
-
- if (pA1 and pA2) {
--//atom* collection::getAtom(int number, bool atomIndex, bool fileId, bool atomColIndex)
--
-+ // getAtom(int number, bool atomIndex, bool fileId, bool atomColIndex)
- atom* pOrgAtom = this->getAtom(pA2->getFileID(), 0, 1, 0);
--/*
--std::cout << pA1->getName() << "|" << pA2->getName() << "|" << pOrgAtom->getName() << " "
-- << pA1->getParent()->getName() << "|" << pA2->getParent()->getName() << "|" << pOrgAtom->getParent()->getName() << " |"
-- << pA1->getFileID() << "|" << pA2->getFileID() << "|" << pOrgAtom->getFileID() << "|"
-- << pA1->getColIndex() << "|" << pA2->getColIndex() << "|" << pOrgAtom->getColIndex()
-- << " |\n";
--*/
-- pOrgAtom->getParent()->setName(pA1->getParent()->getName());
-+ // atom* pOrgAtom = this->getAtom(pA2->getColIndex(), 0, 0, 1);
-+
-+
-+//std::cout << pA1->getName() << "|" << pA2->getName() << "|" << pOrgAtom->getName() << " "
-+// << pA1->getParent()->getName() << "|" << pA2->getParent()->getName() << "|" << pOrgAtom->getParent()->getName() << " |"
-+// << pA1->getFileID() << "|" << pA2->getFileID() << "|" << pOrgAtom->getFileID() << "|"
-+// << pA1->getColIndex() << "|" << pA2->getColIndex() << "|" << pOrgAtom->getColIndex()
-+// << " |\n";
-+
-+ //pOrgAtom->getParent()->setName(pA1->getParent()->getName());
-+
-+ for (unsigned int i = 0 ; i < atomList.size(); i++) {
-+ if (atomList[i]->getFileID() == pA2->getFileID()) {
-+ //std::cout << "setting " << atomList[i]->getParent()->getName() << " to "
-+ // << pA1->getParent()->getName() << "\n";
-+ atomList[i]->getParent()->setName(pA1->getParent()->getName());
-+ }
- }
-+//std::cout << pOrgAtom->getParent() << " " << pOrgAtom->getParent()->getName() << " "
-+//<< pA2->getFileID()
-+// << " " << pOrgAtom->getParent()->getColIndex() << "\n";
- }
- }
- }
- }
-+
-+ }
- }
- }
- }
-+
- // delete new molecule
-+ if (pNewMolecule) {
- this->delMolecule(pNewMolecule);
- }
- }
- }
- }
- }
-+ }
-
- ///////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////
-@@ -4377,6 +4437,7 @@
- }
- std::cout << " TOTAL CHARGE = " << localTotalCharge << std::endl;
- */
-+
- }
-
- // ============================================================
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/hydrophobize.cpp amber11/AmberTools/src/mtkpp/src/Molecule/hydrophobize.cpp
---- amber11.orig/AmberTools/src/mtkpp/src/Molecule/hydrophobize.cpp 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Molecule/hydrophobize.cpp 2012-03-03 20:03:01.404032569 +0200
-@@ -315,7 +315,7 @@
- if (!vertices[i]->isVisited()) {
- graph* subGraph = new graph();
-
-- std::cout << "\n " << vertices[i]->getIndex() << " ";
-+// std::cout << "\n " << vertices[i]->getIndex() << " ";
- molGraph->dfs(vertices[i]);
-
- for (unsigned int j = 0; j < vertices.size(); j++) {
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/Makefile.am amber11/AmberTools/src/mtkpp/src/Molecule/Makefile.am
---- amber11.orig/AmberTools/src/mtkpp/src/Molecule/Makefile.am 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Molecule/Makefile.am 2012-03-03 20:03:01.401032571 +0200
-@@ -1,8 +1,8 @@
--DIAGNOSTICS_LD=-L$(top_builddir)/src/Diagnostics/$(SRCDIR)
-+DIAGNOSTICS_LD=-L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
- DIAGNOSTICS_LIB=-lDiagnostics
--GRAPH_LD=-L$(top_builddir)/src/Graph/$(SRCDIR)
-+GRAPH_LD=-L$(abs_top_builddir)/src/Graph/$(SRCDIR)
- GRAPH_LIB=-lGraph
--LOG_LD=-L$(top_builddir)/src/Log/$(SRCDIR)
-+LOG_LD=-L$(abs_top_builddir)/src/Log/$(SRCDIR)
- LOG_LIB=-lLog
-
- INCLUDES = -I@boost_inc@ -I$(srcdir)/.. -I$(top_srcdir)/src/eigen3b2
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/Makefile.in amber11/AmberTools/src/mtkpp/src/Molecule/Makefile.in
---- amber11.orig/AmberTools/src/mtkpp/src/Molecule/Makefile.in 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Molecule/Makefile.in 2012-03-03 20:03:01.401032571 +0200
-@@ -248,11 +248,11 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xerces_path = @xerces_path@
--DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics/$(SRCDIR)
-+DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
- DIAGNOSTICS_LIB = -lDiagnostics
--GRAPH_LD = -L$(top_builddir)/src/Graph/$(SRCDIR)
-+GRAPH_LD = -L$(abs_top_builddir)/src/Graph/$(SRCDIR)
- GRAPH_LIB = -lGraph
--LOG_LD = -L$(top_builddir)/src/Log/$(SRCDIR)
-+LOG_LD = -L$(abs_top_builddir)/src/Log/$(SRCDIR)
- LOG_LIB = -lLog
- INCLUDES = -I@boost_inc@ -I$(srcdir)/.. -I$(top_srcdir)/src/eigen3b2
- lib_LTLIBRARIES = libMolecule.la
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/parameters.cpp amber11/AmberTools/src/mtkpp/src/Molecule/parameters.cpp
---- amber11.orig/AmberTools/src/mtkpp/src/Molecule/parameters.cpp 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Molecule/parameters.cpp 2012-03-03 20:03:01.404032569 +0200
-@@ -145,6 +145,7 @@
- pAtomType->description = "";
- pAtomType->rvalue = 0.0;
- pAtomType->evalue = 0.0;
-+ pAtomType->atomPolarizability = 0.0;
- pAtomType->groupName = "";
- pAtomType->optimize = false;
- this->itsTypeList.push_back(pAtomType);
-@@ -184,6 +185,7 @@
- pAtomType->description = a->description;
- pAtomType->rvalue = a->rvalue;
- pAtomType->evalue = a->evalue;
-+ pAtomType->atomPolarizability = a->atomPolarizability;
- pAtomType->groupName = g;
- pAtomType->optimize = a->optimize;
-
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/parameters.h amber11/AmberTools/src/mtkpp/src/Molecule/parameters.h
---- amber11.orig/AmberTools/src/mtkpp/src/Molecule/parameters.h 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Molecule/parameters.h 2012-03-03 20:03:01.405032569 +0200
-@@ -76,6 +76,9 @@
- //! Well Depth
- double evalue;
-
-+ //! Atomic polarizability in A**3
-+ double atomPolarizability;
-+
- //! group name
- std::string groupName;
-
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/stdFrag.cpp amber11/AmberTools/src/mtkpp/src/Molecule/stdFrag.cpp
---- amber11.orig/AmberTools/src/mtkpp/src/Molecule/stdFrag.cpp 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Molecule/stdFrag.cpp 2012-03-03 20:03:01.405032569 +0200
-@@ -305,7 +305,8 @@
- this->itsSymbol = symbol;
- }
- else {
-- std::cout << " Length of Fragment Symbol = " << symbol.size()
-+ std::cout << " Length of Fragment Symbol (" << symbol
-+ << ") = " << symbol.size()
- << " --> Must be 3." << std::endl;
- }
- }
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/stdGroup.cpp amber11/AmberTools/src/mtkpp/src/Molecule/stdGroup.cpp
---- amber11.orig/AmberTools/src/mtkpp/src/Molecule/stdGroup.cpp 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Molecule/stdGroup.cpp 2012-03-03 20:03:01.406032569 +0200
-@@ -35,6 +35,7 @@
- #include "stdLibrary.h"
-
- #include "molecule.h"
-+#include "submolecule.h"
-
- namespace MTKpp
- {
-@@ -258,5 +259,24 @@
- }
- }
-
-+// ============================================================
-+// Function : getCharge()
-+// ------------------------------------------------------------
-+//
-+// ============================================================
-+double stdGroup::getCharge()
-+{
-+ double d = 0.0;
-+ if (pMolecule) {
-+ std::vector<submolecule*> sList = this->pMolecule->getSubMoleculeList();
-+ for (unsigned int p = 0; p < sList.size(); p++) {
-+ this->pStdFrag = this->getStdFrag(sList[p]->getName());
-+ d += this->pStdFrag->getCharge();
-+ //std::cout << this->pStdFrag->getSymbol() << " " << this->pStdFrag->getCharge() << std::endl;
-+ }
-+ }
-+ return d;
-+}
-+
- } // MTKpp namespace
-
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Molecule/stdGroup.h amber11/AmberTools/src/mtkpp/src/Molecule/stdGroup.h
---- amber11.orig/AmberTools/src/mtkpp/src/Molecule/stdGroup.h 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Molecule/stdGroup.h 2012-03-03 20:03:01.406032569 +0200
-@@ -160,6 +160,12 @@
- */
- molecule* getStdMolecule();
-
-+ /*!
-+ \brief Get getCharge
-+ \return molecule charge
-+ */
-+ double getCharge();
-+
- protected:
- //! stdLibrary pointer
- stdLibrary* pParent;
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/frcmodParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/frcmodParser.cpp
---- amber11.orig/AmberTools/src/mtkpp/src/Parsers/frcmodParser.cpp 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Parsers/frcmodParser.cpp 2012-03-03 20:03:01.407032569 +0200
-@@ -98,6 +98,7 @@
- while (ifrcmod) {
- std::string buffer(80,'*');
- getline(ifrcmod,fileline);
-+//std::cout << "|" << fileline << "|" << std::endl;
- bMASS = false;
- bBOND = false;
- bANGLE = false;
-@@ -105,118 +106,311 @@
- bIMPROPER = false;
- bNONBON = false;
-
-+ if ( (fileline.size() > 0) and (stripString(fileline, " ") != "") ) {
-+ std::vector<std::string> splitstring;
-+ splitString(fileline, " ", splitstring, 0);
-+
-+ if (splitstring[0] == "MASS") bMASS = true;
-+ if (splitstring[0] == "BOND") bBOND = true;
-+ if (splitstring[0] == "ANGL" or splitstring[0] == "ANGLE") bANGLE = true;
-+ if (splitstring[0] == "DIHE" or splitstring[0] == "DIHEDRAL") bDIHE = true;
-+ if (splitstring[0] == "IMPROP" or splitstring[0] == "IMPROPER") bIMPROPER = true;
-+ if (splitstring[0] == "NONB" or splitstring[0] == "NONBON") bNONBON = true;
-+ }
-+/*
-+ try {
- if (fileline.substr(0,4) == "MASS") bMASS = true;
-+ }
-+ catch (std::out_of_range) {
-+ std::cout << " out_of_range MAS " << std::endl;
-+ }
-+
-+ try {
- if (fileline.substr(0,4) == "BOND") bBOND = true;
-+ }
-+ catch (std::out_of_range) {
-+ std::cout << " out_of_range BOND " << std::endl;
-+ }
-+
-+ try {
- if (fileline.substr(0,5) == "ANGLE") bANGLE = true;
-+ }
-+ catch (std::out_of_range) {
-+ std::cout << " out_of_range ANG" << std::endl;
-+ }
-+
-+ try {
- if (fileline.substr(0,4) == "DIHE") bDIHE = true;
-+ }
-+ catch (std::out_of_range) {
-+ std::cout << " out_of_range DIHE " << std::endl;
-+ }
-+
-+ try {
- if (fileline.substr(0,8) == "IMPROPER") bIMPROPER = true;
-+ }
-+ catch (std::out_of_range) {
-+ std::cout << " out_of_range IMP " << std::endl;
-+ }
-+
-+ try {
- if (fileline.substr(0,6) == "NONBON") bNONBON = true;
-+ }
-+ catch (std::out_of_range) {
-+ std::cout << " out_of_range NONB" << std::endl;
-+ }
-+*/
-
- if (bMASS) {
- getline(ifrcmod,fileline);
-- while (fileline != "") {
-+ while (stripString(fileline, " ") != "") {
-+ //while (GetAlphaChar(fileline, 0) != "0") {
-+ std::vector<std::string> splitLine;
-+ splitString(fileline, " ", splitLine, 0);
-+ if (splitLine.size() >= 2) {
-+ for (unsigned int i = 0; i < 2; i++) {
-+ splitLine[i] = stripString(splitLine[i], " ");
-+ }
- pAtomType = pParameters->addAtomType();
-+ pAtomType->name = splitLine[0];
- pAtomType->groupName = this->groupName;
-- pAtomType->mass = strtod(fileline.substr(3,5).c_str(), 0);
-+ pAtomType->mass = string2Double(splitLine[1]); //strtod(fileline.substr(3,5).c_str(), 0);
-+
-+ if (splitLine.size() > 2) {
-+ char *end;
-+ double ret_double = strtod(splitLine[2].c_str(), &end);
-+ if (!*end) {
-+ pAtomType->atomPolarizability = ret_double;
-+ }
-+//std::cout << splitLine[2] << " " << ret_double << std::endl;
-+ }
-+
- getline(ifrcmod,fileline);
- }
- }
-+ }
-
- if (bBOND) {
- getline(ifrcmod,fileline);
-- while (fileline != "") {
-- std::string atomNames = fileline.substr(0,5);
-+ //while (fileline != "") {
-+ while (stripString(fileline, " ") != "") {
-+ //std::string atomNames = fileline.substr(0,5);
- std::vector<std::string> splitLine;
-- splitString(atomNames, "-", splitLine, 0);
-- if (splitLine.size() == 2) {
-- for (unsigned int i = 0; i < 2; i++) {
-- splitLine[i] = stripString(splitLine[i]," ");
-- }
-+ splitString(fileline, "-", splitLine, 0);
-+
-+ std::vector<std::string> splitLine2;
-+ splitString(splitLine[1], " ", splitLine2, 0);
-+
-+ //if (splitLine.size() == 2) {
-+ //for (unsigned int i = 0; i < 2; i++) {
-+ // splitLine[i] = stripString(splitLine[i]," ");
-+ //}
- pBondParam = pParameters->addBondParam();
- pBondParam->groupName = this->groupName;
-- pBondParam->atomType1 = std::string(splitLine[0]);
-- pBondParam->atomType2 = std::string(splitLine[1]);
-- pBondParam->keq = strtod(fileline.substr(7,5).c_str(), 0);
-- pBondParam->req = strtod(fileline.substr(16,5).c_str(), 0);
-+ pBondParam->atomType1 = stripString(splitLine[0], " ");
-+ pBondParam->atomType2 = stripString(splitLine2[0], " ");
-+//std::cout << "|" << pBondParam->atomType1 << "|" << pBondParam->atomType2 << "|" << std::endl;
-+ pBondParam->keq = string2Double(splitLine2[1]);
-+ pBondParam->req = string2Double(splitLine2[2]);
-+
-+// pBondParam->keq = strtod(fileline.substr(7,5).c_str(), 0);
-+// pBondParam->req = strtod(fileline.substr(16,5).c_str(), 0);
-+
-+//std::cout << "\n " << fileline << std::endl;
-+//std::cout << " BOND " << pBondParam->atomType1 << " " << pBondParam->atomType2 << " " << pBondParam->keq << " " << pBondParam->req << std::endl;
-+//std::cout << " BOND " << fileline.substr(7,5) << " " << fileline.substr(16,5) <<std::endl;
-+
- getline(ifrcmod,fileline);
-- }
-+ //}
- }
- }
-
- if (bANGLE) {
- getline(ifrcmod,fileline);
-- while (fileline != "") {
-- std::string atomNames = fileline.substr(0,8);
-+ //while (fileline != "") {
-+ while (stripString(fileline, " ") != "") {
-+// std::string atomNames = fileline.substr(0,8);
-+
- std::vector<std::string> splitLine;
-- splitString(atomNames, "-", splitLine, 0);
-- if (splitLine.size() == 3) {
-- for (unsigned int i = 0; i < 3; i++) {
-- splitLine[i] = stripString(splitLine[i]," ");
-- }
-+ splitString(fileline, "-", splitLine, 0);
-+
-+ std::vector<std::string> splitLine2;
-+ splitString(splitLine[2], " ", splitLine2, 0);
-+
-+ //std::vector<std::string> splitLine;
-+ //splitString(atomNames, "-", splitLine, 0);
-+
-+ //std::vector<std::string> splitLine2;
-+ //splitString(fileline, " ", splitLine2, 0);
-+
-+ //if (splitLine.size() == 3) {
-+ //for (unsigned int i = 0; i < 3; i++) {
-+ // splitLine[i] = stripString(splitLine[i]," ");
-+ //}
- pAngleParam = pParameters->addAngleParam();
- pAngleParam->groupName = this->groupName;
-- pAngleParam->atomType1 = std::string(splitLine[0]);
-- pAngleParam->atomType2 = std::string(splitLine[1]);
-- pAngleParam->atomType3 = std::string(splitLine[2]);
-- pAngleParam->keq = strtod(fileline.substr(11,7).c_str(), 0);
-- pAngleParam->req = strtod(fileline.substr(20,8).c_str(), 0) * DEG2RAD;
-+ pAngleParam->atomType1 = stripString(splitLine[0], " ");
-+ pAngleParam->atomType2 = stripString(splitLine[1], " ");
-+ pAngleParam->atomType3 = stripString(splitLine2[0], " ");
-+//std::cout << "|" << pAngleParam->atomType1 << "|" << pAngleParam->atomType2 << "|" << pAngleParam->atomType3 << "|" << std::endl;
-+
-+ pAngleParam->keq = string2Double(splitLine2[1]);
-+ pAngleParam->req = string2Double(splitLine2[2]) * DEG2RAD;
-+
-+ //pAngleParam->keq = strtod(fileline.substr(11,7).c_str(), 0);
-+ //pAngleParam->req = strtod(fileline.substr(20,8).c_str(), 0) * DEG2RAD;
-+
-+//std::cout << "\n " << fileline << std::endl;
-+//std::cout << " ANGLE " << pAngleParam->atomType1 << " " << pAngleParam->atomType2 << " " << pAngleParam->atomType3 << " " << pAngleParam->keq << " " << string2Double(splitLine2[2]) << std::endl;
-+
- getline(ifrcmod,fileline);
-- }
-+ //}
- }
- }
-
- if (bDIHE) {
- getline(ifrcmod,fileline);
-- while (fileline != "") {
-- std::string atomNames = fileline.substr(0,11);
-+ //while (fileline != "") {
-+ while (stripString(fileline, " ") != "") {
-+
-+//std::cout << "\n " << fileline << std::endl;
-+
-+//std::cout << fileline.substr(0,12) << std::endl;
-+
-+// snip = str.substr(0,12);
-+//(3) erase the substring of 0..where str.erase(0,where);
-+
-+ std::string atTypes = fileline.substr(0,12);
- std::vector<std::string> splitLine;
-- splitString(atomNames, "-", splitLine, 0);
-- if (splitLine.size() == 4) {
-- for (unsigned int i = 0; i < 4; i++) {
-- splitLine[i] = stripString(splitLine[i]," ");
-- }
-+ splitString(atTypes, "-", splitLine, 0);
-+
-+/*for (unsigned int i = 0; i < splitLine.size(); i++) {
-+ std::cout << splitLine[i] << std::endl;
-+}*/
-+
-+ fileline.erase(0,12);
-+
-+ std::vector<std::string> splitLine2;
-+ splitString(fileline, " ", splitLine2, 0);
-+/*
-+for (unsigned int i = 0; i < splitLine2.size(); i++) {
-+ std::cout << splitLine2[i] << std::endl;
-+}*/
-+
-+ //std::string atomNames = fileline.substr(0,11);
-+ //std::vector<std::string> splitLine;
-+ //splitString(atomNames, "-", splitLine, 0);
-+
-+ //if (splitLine.size() == 4) {
-+ //for (unsigned int i = 0; i < 4; i++) {
-+ //splitLine[i] = stripString(splitLine[i], " ");
-+ //}
- pTorsionParam = pParameters->addTorsionParam();
- pTorsionParam->groupName = this->groupName;
-- pTorsionParam->atomType1 = std::string(splitLine[0]);
-- pTorsionParam->atomType2 = std::string(splitLine[1]);
-- pTorsionParam->atomType3 = std::string(splitLine[2]);
-- pTorsionParam->atomType4 = std::string(splitLine[3]);
-- pTorsionParam->npth = atoi(fileline.substr(11,4).c_str());
-- pTorsionParam->Vn = strtod(fileline.substr(18,8).c_str(), 0);
-- pTorsionParam->gamma = strtod(fileline.substr(31,8).c_str(), 0) * DEG2RAD;
-- pTorsionParam->Nt = strtod(fileline.substr(42,12).c_str(), 0);
-+ pTorsionParam->atomType1 = stripString(splitLine[0], " ");
-+ pTorsionParam->atomType2 = stripString(splitLine[1], " ");
-+ pTorsionParam->atomType3 = stripString(splitLine[2], " ");
-+ pTorsionParam->atomType4 = stripString(splitLine[3], " ");
-+
-+ pTorsionParam->npth = string2Int(splitLine2[0]);
-+ pTorsionParam->Vn = string2Double(splitLine2[1]);
-+ pTorsionParam->gamma = string2Double(splitLine2[2]) * DEG2RAD;
-+ pTorsionParam->Nt = string2Double(splitLine2[3]);
-+
-+ //pTorsionParam->npth = atoi(fileline.substr(11,4).c_str());
-+ //pTorsionParam->Vn = strtod(fileline.substr(18,8).c_str(), 0);
-+ //pTorsionParam->gamma = strtod(fileline.substr(31,8).c_str(), 0) * DEG2RAD;
-+ //pTorsionParam->Nt = strtod(fileline.substr(42,12).c_str(), 0);
-+
-+//std::cout << " DIHE " << pTorsionParam->atomType1 << " " << pTorsionParam->atomType2 << " " << pTorsionParam->atomType3 << " " << pTorsionParam->atomType4 << " " << pTorsionParam->npth << " " << pTorsionParam->Vn << " " << string2Double(splitLine2[2]) << " " << pTorsionParam->Nt << std::endl;
-+
- getline(ifrcmod,fileline);
-- }
-+//std::cout << " DIHE LINE: " << fileline << std::endl;
-+ //}
- }
- }
-
- if (bIMPROPER) {
- getline(ifrcmod,fileline);
-- while (fileline != "") {
-- std::string atomNames = fileline.substr(0,11);
-+ //while (fileline != "") {
-+ while (stripString(fileline, " ") != "") {
-+
-+ std::string atTypes = fileline.substr(0,12);
- std::vector<std::string> splitLine;
-- splitString(atomNames, "-", splitLine, 0);
-- if (splitLine.size() == 4) {
-- for (unsigned int i = 0; i < 4; i++) {
-- splitLine[i] = stripString(splitLine[i]," ");
-- }
-+ splitString(atTypes, "-", splitLine, 0);
-+
-+ fileline.erase(0,12);
-+
-+ std::vector<std::string> splitLine2;
-+ splitString(fileline, " ", splitLine2, 0);
-+
-+// std::vector<std::string> splitLine;
-+// splitString(fileline, "-", splitLine, 0);
-+
-+// std::vector<std::string> splitLine2;
-+// splitString(splitLine[3], " ", splitLine2, 0);
-+
-+ //std::string atomNames = fileline.substr(0,11);
-+ //std::vector<std::string> splitLine;
-+ //splitString(atomNames, "-", splitLine, 0);
-+ //if (splitLine.size() == 4) {
-+ //for (unsigned int i = 0; i < 4; i++) {
-+ //splitLine[i] = stripString(splitLine[i]," ");
-+ //}
- pImproperParam = pParameters->addImproperParam();
- pImproperParam->groupName = this->groupName;
-- pImproperParam->atomType1 = std::string(splitLine[0]);
-- pImproperParam->atomType2 = std::string(splitLine[1]);
-- pImproperParam->atomType3 = std::string(splitLine[2]);
-- pImproperParam->atomType4 = std::string(splitLine[3]);
-- pImproperParam->Vn = strtod(fileline.substr(18,8).c_str(), 0);
-- pImproperParam->gamma = strtod(fileline.substr(31,8).c_str(), 0) * DEG2RAD;
-- pImproperParam->Nt = strtod(fileline.substr(42,12).c_str(), 0);
-+ pImproperParam->atomType1 = stripString(splitLine[0], " ");
-+ pImproperParam->atomType2 = stripString(splitLine[1], " ");
-+ pImproperParam->atomType3 = stripString(splitLine[2], " ");
-+ pImproperParam->atomType4 = stripString(splitLine[3], " ");
-+
-+ pImproperParam->Vn = string2Double(splitLine2[0]);
-+ pImproperParam->gamma = string2Double(splitLine2[1]) * DEG2RAD;
-+ pImproperParam->Nt = string2Double(splitLine2[2]);
-+
-+ //pImproperParam->Vn = strtod(fileline.substr(18,8).c_str(), 0);
-+ //pImproperParam->gamma = strtod(fileline.substr(31,8).c_str(), 0) * DEG2RAD;
-+ //pImproperParam->Nt = strtod(fileline.substr(42,12).c_str(), 0);
-+
-+//std::cout << "\n " << fileline << std::endl;
-+//std::cout << " IMPR " << pImproperParam->atomType1 << " " << pImproperParam->atomType2 << " " << pImproperParam->atomType3 << " " << pImproperParam->atomType4 << " " << pImproperParam->Vn << " " << string2Double(splitLine2[1]) << " " << pImproperParam->Nt << std::endl;
-+
- getline(ifrcmod,fileline);
-- }
-+ //}
- }
- }
- if (bNONBON) {
-+ getline(ifrcmod,fileline);
-+//std::cout << fileline << std::endl;
-+ //while (fileline != "") {
-+ while (stripString(fileline, " ") != "") {
-+ std::vector<std::string> splitLine;
-+ splitString(fileline, " ", splitLine, 0);
-+ if (splitLine.size() >= 3) {
-+ for (unsigned int i = 0; i < 3; i++) {
-+ splitLine[i] = stripString(splitLine[i], " ");
-+ }
-+//std::cout << " |" << splitLine[0] << "|" << std::endl;
-+
-+//std::cout << "\n " << fileline << std::endl;
-+
-+ pAtomType = pParameters->getAtomType(stripString(splitLine[0], " "));
-+ if (pAtomType) {
-+ pAtomType->rvalue = string2Double(splitLine[1]);
-+ pAtomType->evalue = string2Double(splitLine[2]);
-
-+//std::cout << pAtomType->name << " " << pAtomType->rvalue << " " << pAtomType->evalue << std::endl;
-+
-+ }
-+ else {
-+ std::cout << " Can't find atom type " << std::endl;
-+ }
-+ getline(ifrcmod,fileline);
-+ }
-+ }
- }
- }
-+
- ifrcmod.close();
- }
-
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/gaussianParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/gaussianParser.cpp
---- amber11.orig/AmberTools/src/mtkpp/src/Parsers/gaussianParser.cpp 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Parsers/gaussianParser.cpp 2012-03-03 20:03:01.408032569 +0200
-@@ -84,7 +84,7 @@
-
- this->bMem = 0;
-
-- this->bnProc = 0;
-+ this->bNProc = 0;
-
- this->bWriteInternalCoords = true;
- this->bWriteCartCoords = false;
-@@ -168,7 +168,7 @@
- while (igau) {
- getline(igau,fileline);
-
-- if (containsSubStr(fileline, "modredundant")) {
-+ if (containsSubStr(fileline, "ModRedundant")) {
- bModRedundant = true;
- }
- if (fileline.substr(0,59) == " Redundant internal coordinates taken from checkpoint file:") {
-@@ -626,6 +626,7 @@
- void gaussianParser::Write(const std::string &gaussfile, molecule* pMolecule,
- std::vector< vector3d > &coordinates)
- {
-+ std::string routecard;
- std::ofstream ogauss;
- ogauss.open(gaussfile.c_str());
-
-@@ -643,52 +644,64 @@
- return;
- }
-
-- ogauss << "$rungauss" << std::endl;
-+ ogauss << "$RunGauss" << std::endl;
-
- if (bChkPt) {
-- ogauss << "%chk=" << this->itsChkPtFile << std::endl;
-+ ogauss << "%Chk=" << this->itsChkPtFile << std::endl;
- }
- if (bMem) {
-- ogauss << "%mem=" << this->itsMem << std::endl;
-+ ogauss << "%Mem=" << this->itsMem << std::endl;
- }
-- if (bnProc) {
-- ogauss << "%nproc=" << this->itsnProc << std::endl;
-+ if (bNProc) {
-+ ogauss << "%NProcShared=" << this->itsNProc << std::endl;
- }
-
-- ogauss << "#" << this->itsVerbosity << " " << this->itsTheory << "/" << this->itsBasisSet << " ";
-+ routecard = "#" + this->itsVerbosity + " " + this->itsTheory + "/" + this->itsBasisSet;
-
- if (!itsCommandOptions.empty()) {
- for (mapIterator p = itsCommandOptions.begin(); p != itsCommandOptions.end(); p++) {
- std::string c = p->first;
- std::vector<std::string> o = p->second;
-+ std::string opts = "";
- if (o.size() == 1) {
-- if ( p->second[0] == "NONE") {
-- ogauss << p->first << " ";
-- }
-- else {
-- ogauss << p->first << "=" << p->second[0] << " ";
-+ if ( p->second[0] != "NONE") {
-+ opts = "=" + p->second[0];
- }
- }
- else {
-- ogauss << p->first << "(";
-+ opts = "(";
- for (unsigned int i = 0; i < o.size(); i++) {
-- if (i == o.size()-1) {
-- ogauss << o[i];
-+ opts = opts + o[i];
-+ if (i != o.size()-1) {
-+ opts = opts + ",";
- }
-- else {
-- ogauss << o[i] << ",";
- }
-+ opts = opts + ")";
- }
-- ogauss << ")" << " ";
-+
-+ if (routecard.length() + c.length() + opts.length() < 72) {
-+ routecard = routecard + " " + c + opts;
-+ } else {
-+ if (routecard.length() != 0) {
-+ ogauss << routecard << std::endl;
-+ }
-+ routecard = c + opts;
- }
- }
- }
- for (unsigned int i = 0; i < this->iops.size(); i++) {
-- ogauss << this->iops[i] << " ";
-+ if (routecard.length() + this->iops[i].length() < 72) {
-+ routecard = routecard + " " + this->iops[i];
-+ } else {
-+ if (routecard.length() != 0) {
-+ ogauss << routecard << std::endl;
-+ }
-+ routecard = this->iops[i];
-+ }
- }
-
- // Flush command block and follow with a blank line
-- ogauss << "\n" << std::endl;
-+ ogauss << routecard << "\n" << std::endl;
-
- // Write name (if required) and follow with a blank line
- if (bWriteMoleculeName) {
-@@ -740,11 +753,11 @@
- ogauss << std::endl;
- }
-
-- std::vector<std::string> optOptions = this->getCommandOption("opt");
-+ std::vector<std::string> optOptions = this->getCommandOption("Opt");
- if (optOptions.size() > 0) {
- bool bMD = 0;
- for (unsigned int x = 0; x < optOptions.size(); x++) {
-- if (optOptions[x] == "modredundant") {
-+ if (optOptions[x] == "ModRedundant") {
- bMD = 1;
- }
- }
-@@ -766,13 +779,13 @@
- }
- }
-
-- if (this->itsBasisSet.substr(0,3) == "GEN") {
-+ if (this->itsBasisSet.substr(0,3) == "Gen") {
- std::ifstream iBSFile;
- iBSFile.open(this->itsBasisSetFile.c_str());
-
- if (!iBSFile) {
- std::cout << "\nERROR!"
-- << "\nBasis set \"GEN\" requires a custom file."
-+ << "\nBasis set \"Gen\" requires a custom file."
- << "\nFile \"" << this->itsBasisSetFile << "\" is missing or unreadable."
- << "\nPlease choose another file. For instructions, consult your program's"
- << "\ndocumentation."
-@@ -789,13 +802,13 @@
- }
-
- // +BPR
-- if (this->getCommandOption("pseudo").size() > 0) {
-+ if (this->getCommandOption("Pseudo").size() > 0) {
- std::ifstream iPseudoFile;
- iPseudoFile.open(this->itsPseudoPotentialFile.c_str());
-
- if (!iPseudoFile) {
- std::cout << "\nERROR!"
-- << "\npseudo=read or pseudo=cards requires a custom file."
-+ << "\nPseudo=Read or Pseudo=Cards requires a custom file."
- << "\nFile \"" << this->itsPseudoPotentialFile << "\" is missing or unreadable."
- << "\nPlease choose another file. For instructions, consult your program's"
- << "\ndocumentation."
-@@ -812,7 +825,7 @@
- }
- // -BPR
-
-- if (this->getCommandOption("pop").size() > 0) {
-+ if (this->getCommandOption("Pop").size() > 0) {
- if (!itsMKRadii.empty()) {
- for (dMapIterator p = itsMKRadii.begin(); p != itsMKRadii.end(); p++) {
- ogauss << p->first << "=" << p->second << "\n";
-@@ -1037,14 +1050,14 @@
- }
-
- // ============================================================
--// Function : setnProc
-+ // Function : setNProc
- // ------------------------------------------------------------
- //
- // ============================================================
--void gaussianParser::setnProc(const std::string &n)
-+ void gaussianParser::setNProc(const std::string &n)
- {
-- this->bnProc = 1;
-- this->itsnProc = n;
-+ this->bNProc = 1;
-+ this->itsNProc = n;
- }
-
- // ============================================================
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/gaussianParser.h amber11/AmberTools/src/mtkpp/src/Parsers/gaussianParser.h
---- amber11.orig/AmberTools/src/mtkpp/src/Parsers/gaussianParser.h 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Parsers/gaussianParser.h 2012-03-03 20:03:01.408032569 +0200
-@@ -196,9 +196,9 @@
-
- /*!
- \brief Set number of processors to use
-- \param n nprocs
-+ \param n number of processors
- */
-- void setnProc(const std::string &n);
-+ void setNProc(const std::string &n);
-
- /*!
- \brief Set level of theory
-@@ -354,10 +354,10 @@
- bool bMem;
-
- //! number of processors
-- std::string itsnProc;
-+ std::string itsNProc;
-
-- //! Turn on mem
-- bool bnProc;
-+ //! Turn on number of processors
-+ bool bNProc;
-
- //! Use internal or cartesian coordinates
- bool bWriteInternalCoords;
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/Makefile.am amber11/AmberTools/src/mtkpp/src/Parsers/Makefile.am
---- amber11.orig/AmberTools/src/mtkpp/src/Parsers/Makefile.am 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Parsers/Makefile.am 2012-03-03 20:03:01.406032569 +0200
-@@ -1,15 +1,15 @@
--DIAGNOSTICS_LD=-L$(top_builddir)/src/Diagnostics/$(SRCDIR)
-+DIAGNOSTICS_LD=-L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
- DIAGNOSTICS_LIB=-lDiagnostics
--MOLECULE_LD=-L$(top_builddir)/src/Molecule/$(SRCDIR)
-+MOLECULE_LD=-L$(abs_top_builddir)/src/Molecule/$(SRCDIR)
- MOLECULE_LIB=-lMolecule
--GA_LD=-L$(top_builddir)/src/GA/$(SRCDIR)
-+GA_LD=-L$(abs_top_builddir)/src/GA/$(SRCDIR)
- GA_LIB=-lGA
--LOG_LD=-L$(top_builddir)/src/Log/$(SRCDIR)
-+LOG_LD=-L$(abs_top_builddir)/src/Log/$(SRCDIR)
- LOG_LIB=-lLog
--STATS_LD=-L$(top_builddir)/src/Statistics/$(SRCDIR)
-+STATS_LD=-L$(abs_top_builddir)/src/Statistics/$(SRCDIR)
- STATS_LIB=-lStatistics
-
--TINYXML_LD=-L$(top_builddir)/src/tinyxml/$(SRCDIR)
-+TINYXML_LD=-L$(abs_top_builddir)/src/tinyxml/$(SRCDIR)
- TINYXML_LIB=-ltinyxml
-
- if USE_XERCES
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/Makefile.in amber11/AmberTools/src/mtkpp/src/Parsers/Makefile.in
---- amber11.orig/AmberTools/src/mtkpp/src/Parsers/Makefile.in 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Parsers/Makefile.in 2012-03-03 20:03:01.407032569 +0200
-@@ -267,17 +267,17 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xerces_path = @xerces_path@
--DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics/$(SRCDIR)
-+DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
- DIAGNOSTICS_LIB = -lDiagnostics
--MOLECULE_LD = -L$(top_builddir)/src/Molecule/$(SRCDIR)
-+MOLECULE_LD = -L$(abs_top_builddir)/src/Molecule/$(SRCDIR)
- MOLECULE_LIB = -lMolecule
--GA_LD = -L$(top_builddir)/src/GA/$(SRCDIR)
-+GA_LD = -L$(abs_top_builddir)/src/GA/$(SRCDIR)
- GA_LIB = -lGA
--LOG_LD = -L$(top_builddir)/src/Log/$(SRCDIR)
-+LOG_LD = -L$(abs_top_builddir)/src/Log/$(SRCDIR)
- LOG_LIB = -lLog
--STATS_LD = -L$(top_builddir)/src/Statistics/$(SRCDIR)
-+STATS_LD = -L$(abs_top_builddir)/src/Statistics/$(SRCDIR)
- STATS_LIB = -lStatistics
--TINYXML_LD = -L$(top_builddir)/src/tinyxml/$(SRCDIR)
-+TINYXML_LD = -L$(abs_top_builddir)/src/tinyxml/$(SRCDIR)
- TINYXML_LIB = -ltinyxml
- @USE_XERCES_TRUE@XERCES_LD = -L@xerces_path@/lib/
- @USE_XERCES_TRUE@XERCES_LIB = -lxerces-c
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/mtkppParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/mtkppParser.cpp
---- amber11.orig/AmberTools/src/mtkpp/src/Parsers/mtkppParser.cpp 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Parsers/mtkppParser.cpp 2012-03-03 20:03:01.409032568 +0200
-@@ -1769,6 +1769,15 @@
- atomElem->SetAttribute("type", int2String(pAtom->getType()));
- atomElem->SetAttribute("formalCharge", int2String(pAtom->getFormalCharge()));
-
-+ // Coordinates
-+ TiXmlElement* coordElem = new TiXmlElement("coord");
-+ atomElem->LinkEndChild(coordElem);
-+
-+ coordElem->SetAttribute("x", double2String(pAtom->getX()));
-+ coordElem->SetAttribute("y", double2String(pAtom->getY()));
-+ coordElem->SetAttribute("z", double2String(pAtom->getZ()));
-+
-+ // Properties
- std::map<std::string, double> atomDMap = pAtom->getPropertyMap();
- std::map<std::string, int> atomIMap = pAtom->getIntPropertyMap();
-
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/paramParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/paramParser.cpp
---- amber11.orig/AmberTools/src/mtkpp/src/Parsers/paramParser.cpp 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Parsers/paramParser.cpp 2012-03-03 20:03:01.410032567 +0200
-@@ -144,6 +144,10 @@
- pAtomType->evalue = string2Double(element->Attribute("potentialWellDepth"));
- }
-
-+ if (element->Attribute("atomPolarizability")) {
-+ pAtomType->atomPolarizability = string2Double(element->Attribute("atomPolarizability"));
-+ }
-+
- if (element->Attribute("element")) {
- pAtomType->element = element->Attribute("element");
- }
-@@ -1808,6 +1812,7 @@
- entry->SetAttribute("mass" , double2String(pAtomType->mass).c_str());
- entry->SetAttribute("vdwRadius" , double2String(pAtomType->rvalue).c_str());
- entry->SetAttribute("potentialWellDepth" , double2String(pAtomType->evalue).c_str());
-+ entry->SetAttribute("atomPolarizability" , double2String(pAtomType->atomPolarizability).c_str());
- entry->SetAttribute("element" , pAtomType->element);
- entry->SetAttribute("hybridization" , pAtomType->hybridization);
- entry->SetAttribute("groupName" , pAtomType->groupName);
-@@ -2035,6 +2040,7 @@
- typeElem->setAttribute(X("mass"), X(double2String(pAtomType->mass).c_str()));
- typeElem->setAttribute(X("vdwRadius"), X(double2String(pAtomType->rvalue).c_str()));
- typeElem->setAttribute(X("potentialWellDepth"), X(double2String(pAtomType->evalue).c_str()));
-+ typeElem->setAttribute(X("atomPolarizability"), X(double2String(pAtomType->atomPolarizability).c_str()));
- typeElem->setAttribute(X("element"), X(pAtomType->element.c_str()));
- typeElem->setAttribute(X("hybridization"), X(pAtomType->hybridization.c_str()));
- typeElem->setAttribute(X("groupName"), X(pAtomType->groupName.c_str()));
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/pdbParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/pdbParser.cpp
---- amber11.orig/AmberTools/src/mtkpp/src/Parsers/pdbParser.cpp 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Parsers/pdbParser.cpp 2012-03-03 20:03:01.410032567 +0200
-@@ -840,6 +840,7 @@
- for (atomIterator a = atomList.begin(); a != atomList.end(); a++) {
- pAtom = *a;
- pSubMolecule = pAtom->getParent();
-+ //std::cout << pSubMolecule->getColIndex() << std::endl;
- char temp[100];
-
- char tmp_element[3];
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/prepParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/prepParser.cpp
---- amber11.orig/AmberTools/src/mtkpp/src/Parsers/prepParser.cpp 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Parsers/prepParser.cpp 2012-03-03 20:03:01.411032567 +0200
-@@ -66,71 +66,106 @@
- prepParser::~prepParser() {}
-
- // =========================================================
--// Function : Read
--// ---------------------------------------------------------
--// parsers a prep file
--// ---------------------------------------------------------
--// Format :
--// =========================================================
--void prepParser::Read(const std::string &prepfile, stdGroup* pStdGroup)
--{
-- std::string errorMessage = " Reading " + prepfile + " " +
-- pStdGroup->getName() + " ... implement ";
-- errorLogger.throwError("prepParser", errorMessage, 1);
--}
--
--// =========================================================
--// Function : Read
-+// Function : openFile
- // ---------------------------------------------------------
--// parsers a prep file
-+// open a prep file
- // ---------------------------------------------------------
- // Format :
- // =========================================================
--void prepParser::Read(const std::string &prepfile, stdFrag* pStdFrag)
-+int prepParser::openFile(const std::string &prepfile)
- {
-- errorLogger.throwError("prepParser", "Read", INFO);
--
-- std::ifstream iprep;
- iprep.open(prepfile.c_str());
-
-+ //std::cout << "\n\n prepParser::openFile " << prepfile << std::endl;
- if (!iprep) {
- setError(1);
- std::string errorMessage = " Error, Can't Find " + prepfile;
- setErrorMessage(errorMessage);
- errorLogger.throwError("prepParser::Read", errorMessage, 1);
-- return;
-+ return 1;
- }
-
- std::string fileline;
-- std::string title;
-- std::string atom;
-- std::string buffer(80,'*');
-
- // SKIP FIRST TWO LINES
- getline(iprep,fileline);
- getline(iprep,fileline);
-+
-+ return 0;
-+}
-+
-+// =========================================================
-+// Function : read fragment header section
-+// ---------------------------------------------------------
-+//
-+// ---------------------------------------------------------
-+// Format :
-+// =========================================================
-+int prepParser::readHeader(std::string &name, std::string &symbol, double &charge)
-+{
-+ std::string fileline;
-+
- getline(iprep,fileline);
-- //std::string name = stripString(fileline," ");
-- //pStdFrag->setName(fileline);
-+ if (stripString(fileline, " ") == "STOP") return 1;
-+
-+ name = stripString(fileline," ");
-+
-+ // blank line
- getline(iprep,fileline);
-+
-+ // symbol
- getline(iprep,fileline);
- std::vector<std::string> splitLine;
- splitString(fileline, " ", splitLine, 0);
-- pStdFrag->setSymbol(splitLine[0]);
-+ symbol = splitLine[0];
-+
-+ //
- getline(iprep,fileline);
-+
-+ // charge
- getline(iprep,fileline);
-- //pStdFrag->setCharge(splitLine[0]);
-+ charge = string2Double(stripString(fileline, " "));
-+
-+ return 0;
-+}
-+
-+// =========================================================
-+// Function : read fragment main section
-+// ---------------------------------------------------------
-+//
-+// ---------------------------------------------------------
-+// Format :
-+// =========================================================
-+void prepParser::readFragment(stdFrag* pStdFrag)
-+{
-+ std::string fileline;
-+
-+ std::vector<stdBond*> todos;
-
- while (iprep) {
- getline(iprep,fileline);
-- if (fileline == "") break;
-+
-+ std::string filelineTest = stripString(fileline, " ");
-+ if (filelineTest == "") break;
-+
-+//std::cout << "|" << fileline << "|" << std::endl;
-
- std::vector<std::string> splitstring;
- splitString(fileline, " ", splitstring, 0);
- if (atoi(splitstring[0].c_str()) > 3) {
- stdAtom* pStdAtom = pStdFrag->addStdAtom();
- int atIndex = atoi(splitstring[0].c_str()) - 3;
-- std::string atomName = fileline.substr(6,4);
-+
-+////////
-+ //std::string atomName = fileline.substr(6,4);
-+ std::string atomName = splitstring[1];
-+ if (atomName.size() == 1) atomName = " " + atomName + " ";
-+ else if (atomName.size() == 2) atomName = " " + atomName + " ";
-+ else if (atomName.size() == 3) atomName = " " + atomName;
-+
-+//std::cout << "|" << atomName << "|" << std::endl;
-+/////////
-+
- std::string atomType = splitstring[2];
- std::string atomChain = splitstring[3];
-
-@@ -170,32 +205,54 @@
- pStdBond->atom1 = pStdAtom->index;
- pStdBond->atom2 = pStdAtom->bond12;
- pStdBond->type = 1;
-+
- if (pStdAtom->atSymbol == "H") {
- if (pStdAtom->bond12 > 0) {
- stdAtom* pStdBondedAtom = pStdFrag->getStdAtom(pStdAtom->bond12);
-+
-+ if (pStdBondedAtom) {
- std::string bondedAtomSymbol = pStdBondedAtom->atSymbol;
- if (bondedAtomSymbol == "N" or bondedAtomSymbol == "O" or bondedAtomSymbol == "S") {
- pStdBond->kind = 1;
- }
- }
-+ else {
-+ todos.push_back(pStdBond);
-+ }
-+ }
- }
- else {
- pStdBond->kind = 0;
- }
-+
- pStdBond->topology = 2;
- pStdBond->stereo = 0;
- pStdBond->length = pStdAtom->bondLength;
- }
- }
-
-+ for (unsigned int x = 0; x < todos.size(); x++) {
-+ stdAtom* pStdBondedAtom1 = pStdFrag->getStdAtom(todos[x]->atom1);
-+ stdAtom* pStdBondedAtom2 = pStdFrag->getStdAtom(todos[x]->atom2);
-+ if (pStdBondedAtom1 and pStdBondedAtom2) {
-+ std::string bondedAtomSymbol = pStdBondedAtom2->atSymbol;
-+ if (bondedAtomSymbol == "N" or bondedAtomSymbol == "O" or bondedAtomSymbol == "S") {
-+ todos[x]->kind = 1;
-+ }
-+ }
-+ }
-+
- // Read charge, alias, loop, and improper data
- while (iprep) {
- getline(iprep,fileline);
-+//std::cout << "!" << fileline << "!" << std::endl;
- if (fileline != "") {
- if (fileline.substr(0,6) == "CHARGE") {
- while (iprep) {
- getline(iprep,fileline);
-- if (fileline == "") break;
-+
-+ std::string filelineTest = stripString(fileline, " ");
-+ if (filelineTest == "") break;
- }
- }
- else if (fileline.substr(0,5) == "ALIAS") {
-@@ -252,7 +309,7 @@
- else {
- std::string errorMessage = " ALIAS Tag Error ... exiting ";
- errorLogger.throwError("prepParser::Read", errorMessage, 1);
-- //exit(0);
-+
- std::stringstream ss;
- ss << "prepParser::Read"<< errorMessage;
- throw MTKException(ss.str());
-@@ -263,11 +320,20 @@
- else if (fileline.substr(0,4) == "LOOP") {
- while (iprep) {
- getline(iprep,fileline);
-- if (fileline == "") break;
-+
-+ std::string filelineTest = stripString(fileline, " ");
-+ if (filelineTest == "") break;
-+
-+ //if (fileline == "") break;
-
- std::vector<std::string> atomNames;
- splitString(fileline, " ", atomNames, 0);
--
-+/*
-+for (unsigned int x = 0; x <atomNames.size();x++){
-+ std::cout << atomNames[x] <<std::endl;
-+}
-+pStdFrag->print();
-+*/
- std::vector< std::vector<std::string> > possibleNames;
- for (int d = 0; d < 2; d++) {
- int atNameSize = atomNames[d].size();
-@@ -315,17 +381,22 @@
- else {
- std::string errorMessage = " LOOP Tag Error ... exiting ";
- errorLogger.throwError("prepParser::Read", errorMessage, 1);
-- //exit(0);
--
- std::stringstream ss;
- ss << "prepParser::Read"<< errorMessage;
- throw MTKException(ss.str());
- }
- }
- }
-+ else if (fileline.substr(0,4) == "DONE") {
-+ break;
-+ }
- else if (fileline.substr(0,8) == "IMPROPER") {
- while (iprep) {
- getline(iprep,fileline);
-+
-+ std::string filelineTest = stripString(fileline, " ");
-+ if (filelineTest == "") break;
-+
- if (fileline == "") break;
-
- std::vector<std::string> atomNames;
-@@ -424,7 +495,6 @@
- else {
- std::string errorMessage = " IMPROPER Tag Error ... exiting ";
- errorLogger.throwError("prepParser::Read", errorMessage, 1);
-- //exit(0);
-
- std::stringstream ss;
- ss << "prepParser::Read" << errorMessage;
-@@ -642,8 +712,112 @@
- }
- // QBio end
- }
--
- errorLogger.throwError("prepParser::Read", eMessage, INFO);
-+}
-+
-+// =========================================================
-+// Function : Read
-+// ---------------------------------------------------------
-+// parsers a prep file
-+// ---------------------------------------------------------
-+// Format :
-+// =========================================================
-+void prepParser::Read(const std::string &prepfile, stdGroup* pStdGroup)
-+{
-+ int r = openFile(prepfile);
-+ if (r == 1) return;
-+
-+ while(iprep) {
-+ std::string name = "";
-+ std::string symbol = "";
-+ double charge = 0.0;
-+ int h = readHeader(name, symbol, charge);
-+ if (h == 1) break;
-+
-+ stdFrag* pStdFrag = pStdGroup->addStdFrag();
-+ if (!pStdFrag) {
-+ setError(1);
-+ std::string errorMessage = " Error creating fragment ";
-+ setErrorMessage(errorMessage);
-+ errorLogger.throwError("prepParser::Read", errorMessage, 1);
-+ return;
-+ }
-+
-+ if (symbol.size() == 1) symbol = symbol + " ";
-+ if (symbol.size() == 2) symbol = symbol + " ";
-+ if (symbol.size() > 3) symbol = symbol.substr(1,3);
-+
-+ pStdFrag->setSymbol(symbol); // 3L code
-+ //pStdFrag->setCode("P2XML"+name); // 8L code
-+ pStdFrag->setName(name); // long name
-+ pStdFrag->setType("m"); // fragment type
-+
-+ //std::cout << " prepParser::Read " << name << " charge " << charge << " symbol " << symbol << std::endl;
-+ readFragment(pStdFrag);
-+ }
-+
-+ iprep.close();
-+
-+ return;
-+}
-+
-+// =========================================================
-+// Function : Read
-+// ---------------------------------------------------------
-+// parsers a prep file
-+// ---------------------------------------------------------
-+// Format :
-+// =========================================================
-+void prepParser::Read(const std::string &prepfile, stdFrag* pStdFrag)
-+{
-+ errorLogger.throwError("prepParser", "Read", INFO);
-+/*
-+ std::ifstream iprep;
-+ iprep.open(prepfile.c_str());
-+
-+ if (!iprep) {
-+ setError(1);
-+ std::string errorMessage = " Error, Can't Find " + prepfile;
-+ setErrorMessage(errorMessage);
-+ errorLogger.throwError("prepParser::Read", errorMessage, 1);
-+ return;
-+ }
-+*/
-+
-+ int r = openFile(prepfile);
-+ if (r == 1) return;
-+
-+ std::string fileline;
-+ std::string title;
-+ std::string atom;
-+ //std::string buffer(80,'*');
-+
-+ // SKIP FIRST TWO LINES
-+ //getline(iprep,fileline);
-+ //getline(iprep,fileline);
-+
-+/*
-+ getline(iprep,fileline);
-+ //std::string name = stripString(fileline," ");
-+ //pStdFrag->setName(fileline);
-+ getline(iprep,fileline);
-+ getline(iprep,fileline);
-+ std::vector<std::string> splitLine;
-+ splitString(fileline, " ", splitLine, 0);
-+ pStdFrag->setSymbol(splitLine[0]);
-+ getline(iprep,fileline);
-+ getline(iprep,fileline);
-+ //pStdFrag->setCharge(splitLine[0]);
-+*/
-+
-+ std::string name = "";
-+ std::string symbol = "";
-+ double charge = 0.0;
-+ readHeader(name, symbol, charge);
-+
-+ pStdFrag->setSymbol(symbol);
-+
-+ readFragment(pStdFrag);
-
- iprep.close();
- }
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/prepParser.h amber11/AmberTools/src/mtkpp/src/Parsers/prepParser.h
---- amber11.orig/AmberTools/src/mtkpp/src/Parsers/prepParser.h 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Parsers/prepParser.h 2012-03-03 20:03:01.411032567 +0200
-@@ -89,6 +89,25 @@
- ~prepParser();
-
- /*!
-+ \brief open prep file
-+ \param i input file
-+ */
-+ int openFile(const std::string &i);
-+
-+ /*!
-+ \brief read fragment header section
-+ \param name fragment name
-+ \param symbol fragment symbol
-+ \param charge fragment charge
-+ */
-+ int readHeader(std::string &name, std::string &symbol, double &charge);
-+
-+ /*!
-+ \brief read fragment main section
-+ */
-+ void readFragment(stdFrag* pStdFrag);
-+
-+ /*!
- \brief Read prep file
- \param i input file
- \param g stdGroup pointer
-@@ -127,6 +146,9 @@
-
- //! atom pointer
- atom* pAtom;
-+
-+ //! file handler
-+ std::ifstream iprep;
- };
-
- } // MTKpp namespace
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Parsers/stdLibParser.cpp amber11/AmberTools/src/mtkpp/src/Parsers/stdLibParser.cpp
---- amber11.orig/AmberTools/src/mtkpp/src/Parsers/stdLibParser.cpp 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Parsers/stdLibParser.cpp 2012-03-03 20:03:01.412032567 +0200
-@@ -3280,7 +3280,7 @@
- // ------------------------------------------------------------
- // Write xml files using tinyxml
- // ------------------------------------------------------------
--void stdLibParser::Write(std::string fileName)
-+void stdLibParser::Write(std::string fileName) // TinyXML
- {
- std::string errMessage = " Writing " + fileName;
- errorLogger.throwError("stdLibParser", errMessage, INFO);
-@@ -3512,6 +3512,7 @@
- TiXmlElement* impElem = new TiXmlElement("improper");
- frag->LinkEndChild(impElem);
-
-+ /*
- if (improperList[k]->atom1 == -1) {
- impElem->SetAttribute("Atom1", "p1");
- }
-@@ -3520,7 +3521,8 @@
- }
- else {
- impElem->SetAttribute("Atom1", int2String(improperList[k]->atom1));
-- }
-+ }*/
-+ impElem->SetAttribute("Atom1", int2String(improperList[k]->atom1));
- impElem->SetAttribute("Atom2", int2String(improperList[k]->atom2));
- impElem->SetAttribute("Atom3", int2String(improperList[k]->atom3));
- impElem->SetAttribute("Atom4", int2String(improperList[k]->atom4));
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Statistics/Makefile.am amber11/AmberTools/src/mtkpp/src/Statistics/Makefile.am
---- amber11.orig/AmberTools/src/mtkpp/src/Statistics/Makefile.am 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Statistics/Makefile.am 2012-03-03 20:03:01.413032567 +0200
-@@ -1,4 +1,4 @@
--DIAGNOSTICS_LD=-L$(top_builddir)/src/Diagnostics/$(SRCDIR)
-+DIAGNOSTICS_LD=-L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
- DIAGNOSTICS_LIB=-lDiagnostics
-
- INCLUDES = -I@boost_inc@ -I$(srcdir)/.. -I$(top_srcdir)/src/eigen3b2
-diff -urN amber11.orig/AmberTools/src/mtkpp/src/Statistics/Makefile.in amber11/AmberTools/src/mtkpp/src/Statistics/Makefile.in
---- amber11.orig/AmberTools/src/mtkpp/src/Statistics/Makefile.in 2011-04-14 15:30:18.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/src/Statistics/Makefile.in 2012-03-03 20:03:01.413032567 +0200
-@@ -241,7 +241,7 @@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
- xerces_path = @xerces_path@
--DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics/$(SRCDIR)
-+DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics/$(SRCDIR)
- DIAGNOSTICS_LIB = -lDiagnostics
- INCLUDES = -I@boost_inc@ -I$(srcdir)/.. -I$(top_srcdir)/src/eigen3b2
- lib_LTLIBRARIES = libStatistics.la
-diff -urN amber11.orig/AmberTools/src/mtkpp/tests/Makefile.am amber11/AmberTools/src/mtkpp/tests/Makefile.am
---- amber11.orig/AmberTools/src/mtkpp/tests/Makefile.am 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/tests/Makefile.am 2012-03-03 20:03:01.414032567 +0200
-@@ -42,25 +42,25 @@
- LAPACK_LIB=-llapack -lblas -lg2c
- endif
-
--MOLECULE_LD=-L$(top_builddir)/src/Molecule
-+MOLECULE_LD=-L$(abs_top_builddir)/src/Molecule
- MOLECULE_LIB=-lMolecule
--DIAGNOSTICS_LD=-L$(top_builddir)/src/Diagnostics
-+DIAGNOSTICS_LD=-L$(abs_top_builddir)/src/Diagnostics
- DIAGNOSTICS_LIB=-lDiagnostics
--LOG_LD=-L$(top_builddir)/src/Log
-+LOG_LD=-L$(abs_top_builddir)/src/Log
- LOG_LIB=-lLog
--GRAPH_LD=-L$(top_builddir)/src/Graph
-+GRAPH_LD=-L$(abs_top_builddir)/src/Graph
- GRAPH_LIB=-lGraph
--GA_LD=-L$(top_builddir)/src/GA
-+GA_LD=-L$(abs_top_builddir)/src/GA
- GA_LIB=-lGA
--MM_LD=-L$(top_builddir)/src/MM
-+MM_LD=-L$(abs_top_builddir)/src/MM
- MM_LIB=-lMM
--MINIMIZERS_LD=-L$(top_builddir)/src/Minimizers
-+MINIMIZERS_LD=-L$(abs_top_builddir)/src/Minimizers
- MINIMIZERS_LIB=-lMinimizers
--PARSERS_LD=-L$(top_builddir)/src/Parsers
-+PARSERS_LD=-L$(abs_top_builddir)/src/Parsers
- PARSERS_LIB=-lParsers
--STATS_LD=-L$(top_builddir)/src/Statistics
-+STATS_LD=-L$(abs_top_builddir)/src/Statistics
- STATS_LIB=-lStatistics
--TINYXML_LD=-L$(top_builddir)/src/tinyxml
-+TINYXML_LD=-L$(abs_top_builddir)/src/tinyxml
- TINYXML_LIB=-ltinyxml
-
- # INCLUDES = -I@boost_inc@ -I@xerces_path@/include -I$(top_srcdir)/src -I$(top_srcdir)/include -I$(top_srcdir)/src/tinyxml -I$(top_srcdir)/src/Parsers -I$(top_srcdir)/src/Molecule -I$(top_srcdir)/src/Statistics -I$(top_srcdir)/src/Utils $(tmpQT_INCPATH)
-diff -urN amber11.orig/AmberTools/src/mtkpp/tests/Makefile.in amber11/AmberTools/src/mtkpp/tests/Makefile.in
---- amber11.orig/AmberTools/src/mtkpp/tests/Makefile.in 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/tests/Makefile.in 2012-03-03 20:03:01.414032567 +0200
-@@ -303,25 +303,25 @@
- @USE_QT_TRUE@tmpQT_LIBS = $(QT_LIBS)
- @IS_LINUX_TRUE@LAPACK_LD = -L/usr/lib64
- @IS_LINUX_TRUE@LAPACK_LIB = -llapack -lblas -lg2c
--MOLECULE_LD = -L$(top_builddir)/src/Molecule
-+MOLECULE_LD = -L$(abs_top_builddir)/src/Molecule
- MOLECULE_LIB = -lMolecule
--DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics
-+DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics
- DIAGNOSTICS_LIB = -lDiagnostics
--LOG_LD = -L$(top_builddir)/src/Log
-+LOG_LD = -L$(abs_top_builddir)/src/Log
- LOG_LIB = -lLog
--GRAPH_LD = -L$(top_builddir)/src/Graph
-+GRAPH_LD = -L$(abs_top_builddir)/src/Graph
- GRAPH_LIB = -lGraph
--GA_LD = -L$(top_builddir)/src/GA
-+GA_LD = -L$(abs_top_builddir)/src/GA
- GA_LIB = -lGA
--MM_LD = -L$(top_builddir)/src/MM
-+MM_LD = -L$(abs_top_builddir)/src/MM
- MM_LIB = -lMM
--MINIMIZERS_LD = -L$(top_builddir)/src/Minimizers
-+MINIMIZERS_LD = -L$(abs_top_builddir)/src/Minimizers
- MINIMIZERS_LIB = -lMinimizers
--PARSERS_LD = -L$(top_builddir)/src/Parsers
-+PARSERS_LD = -L$(abs_top_builddir)/src/Parsers
- PARSERS_LIB = -lParsers
--STATS_LD = -L$(top_builddir)/src/Statistics
-+STATS_LD = -L$(abs_top_builddir)/src/Statistics
- STATS_LIB = -lStatistics
--TINYXML_LD = -L$(top_builddir)/src/tinyxml
-+TINYXML_LD = -L$(abs_top_builddir)/src/tinyxml
- TINYXML_LIB = -ltinyxml
-
- # INCLUDES = -I@boost_inc@ -I@xerces_path@/include -I$(top_srcdir)/src -I$(top_srcdir)/include -I$(top_srcdir)/src/tinyxml -I$(top_srcdir)/src/Parsers -I$(top_srcdir)/src/Molecule -I$(top_srcdir)/src/Statistics -I$(top_srcdir)/src/Utils $(tmpQT_INCPATH)
-diff -urN amber11.orig/AmberTools/src/mtkpp/tools/Makefile.am amber11/AmberTools/src/mtkpp/tools/Makefile.am
---- amber11.orig/AmberTools/src/mtkpp/tools/Makefile.am 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/tools/Makefile.am 2012-03-03 20:03:01.417032565 +0200
-@@ -25,7 +25,7 @@
- tmpQT_LIBS = $(QT_LIBS)
- endif
-
--DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics
-+DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics
- DIAGNOSTICS_LIB = -lDiagnostics
- MOLECULE_LD = -L$(top_builddir)/src/Molecule
- MOLECULE_LIB = -lMolecule
-diff -urN amber11.orig/AmberTools/src/mtkpp/tools/Makefile.in amber11/AmberTools/src/mtkpp/tools/Makefile.in
---- amber11.orig/AmberTools/src/mtkpp/tools/Makefile.in 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/tools/Makefile.in 2012-03-03 20:03:01.417032565 +0200
-@@ -392,7 +392,7 @@
- @USE_XERCES_TRUE@XERCES_LIB = -lxerces-c
- @USE_QT_TRUE@tmpQT_INCPATH = $(QT_INCPATH)
- @USE_QT_TRUE@tmpQT_LIBS = $(QT_LIBS)
--DIAGNOSTICS_LD = -L$(top_builddir)/src/Diagnostics
-+DIAGNOSTICS_LD = -L$(abs_top_builddir)/src/Diagnostics
- DIAGNOSTICS_LIB = -lDiagnostics
- MOLECULE_LD = -L$(top_builddir)/src/Molecule
- MOLECULE_LIB = -lMolecule
-diff -urN amber11.orig/AmberTools/src/mtkpp/tools/MCPB.cpp amber11/AmberTools/src/mtkpp/tools/MCPB.cpp
---- amber11.orig/AmberTools/src/mtkpp/tools/MCPB.cpp 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/tools/MCPB.cpp 2012-03-03 20:03:01.416032566 +0200
-@@ -67,6 +67,7 @@
- #include "Parsers/mtkppParser.h"
- #include "Parsers/dMParser.h"
- #include "Parsers/commLineOptions.h"
-+#include "Parsers/StringManip.h"
-
- // - Log
- #include "Log/errorHandler.h"
-@@ -84,6 +85,12 @@
-
- using namespace MTKpp;
-
-+std::string getEnvVar(std::string const& key)
-+{
-+ char const* val = getenv(key.c_str());
-+ return val == NULL ? std::string() : std::string(val);
-+}
-+
- void printFunctionList()
- {
- std::string functionList = "\n MCPB Functions:\n";
-@@ -181,32 +188,32 @@
- functionList += " Find all metal centers in the collection\n";
- functionList += " syntax: findMetalCenters\n";
- functionList += "\n";
-- functionList += " g03Charges\n";
-+ functionList += " gaussianCharges\n";
- functionList += " Generate a Gaussian input file for partial-charge computation\n";
- functionList += " Optional: set the Gaussian job file name\n";
-- functionList += " syntax: g03Charges //cuCYM4 cuCYM4.com\n";
-+ functionList += " syntax: gaussianCharges //cuCYM4 cuCYM4.com\n";
- functionList += "\n";
-- functionList += " g03Mem\n";
-- functionList += " Set amount of memory requested for g03\n";
-- functionList += " syntax: g03Mem 3600MB\n";
-+ functionList += " gaussianMem\n";
-+ functionList += " Set amount of memory requested for Gaussian\n";
-+ functionList += " syntax: gaussianMem 3600MB\n";
- functionList += "\n";
-- functionList += " g03MoldenFormat\n";
-+ functionList += " gaussianMoldenFormat\n";
- functionList += " Request Gaussian log files formatted for viewing in Molden\n";
-- functionList += " (adds the GFINPUT and IOP(6/7=3) keywords)\n";
-- functionList += " syntax: g03MoldenFormat\n";
-+ functionList += " (adds the GFInput and IOp(6/7=3) keywords)\n";
-+ functionList += " syntax: gaussianMoldenFormat\n";
- functionList += "\n";
-- functionList += " g03nProc\n";
-- functionList += " Set number of processors requested for g03\n";
-- functionList += " syntax: g03nProc 2\n";
-+ functionList += " gaussianNProc\n";
-+ functionList += " Set number of processors requested for Gaussian\n";
-+ functionList += " syntax: gaussianNProc 2\n";
- functionList += "\n";
-- functionList += " g03OptAndFC\n";
-+ functionList += " gaussianOptAndFC\n";
- functionList += " Generate Gaussian input files for optimisation and force constants\n";
- functionList += " Optional: set the Gaussian job file name\n";
-- functionList += " syntax: g03OptAndFC //cuCYM4 cuCYM4.com\n";
-+ functionList += " syntax: gaussianOptAndFC //cuCYM4 cuCYM4.com\n";
- functionList += "\n";
-- functionList += " g03Verbosity\n";
-+ functionList += " gaussianVerbosity\n";
- functionList += " Set the verbosity of Gaussian output ([T]erse, [N]ormal, [P]rolix)\n";
-- functionList += " syntax: g03Verbosity [T|N|P]\n";
-+ functionList += " syntax: gaussianVerbosity [T|N|P]\n";
- functionList += "\n";
- functionList += " levelOfTheory\n";
- functionList += " Set Gaussian Theory Level\n";
-@@ -256,9 +263,9 @@
- functionList += " Read Formatted Checkpoint file\n";
- functionList += " syntax: readFormattedChkPtFile file.fchk\n";
- functionList += "\n";
-- functionList += " readG03Output\n";
-- functionList += " Read G03 Output\n";
-- functionList += " syntax: readG03Output cuCYM4.log\n";
-+ functionList += " readGaussianOutput\n";
-+ functionList += " Read Gaussian Output\n";
-+ functionList += " syntax: readGaussianOutput cuCYM4.log\n";
- functionList += "\n";
- functionList += " readMolZmatMapping\n";
- functionList += " Read Molecule <--> Z-Matrix mapping file\n";
-@@ -470,7 +477,7 @@
- else {
- printHeader(std::cout, prog_name, authors);
- clo->printUsage();
-- std::cout << " Please provide a MCPB file " << std::endl;
-+ std::cout << " Please provide an MCPB file " << std::endl;
- return 0;
- }
-
-@@ -515,7 +522,9 @@
- std::string errorMessage = "";
-
- std::vector<std::vector<std::string> > inputFileContents;
-+
- int failure = readInputFile(inputFile, inputFileContents);
-+
- if (failure) {
- printHeader(std::cout, prog_name, authors);
- clo->printUsage();
-@@ -660,7 +669,7 @@
- std::vector<std::vector<std::string> > sourceInputFileContents;
- failure = readInputFile(cur[1], sourceInputFileContents);
- if (failure) {
-- errorMessage = " Error Reading File " + cur[1];
-+ errorMessage = " Error reading file " + cur[1];
- MTKpp::errorLogger.throwError("MCPB::source", errorMessage, 1);
- exit(1);
- }
-@@ -668,7 +677,7 @@
- sourceInputFileContents.end());
- }
- else {
-- errorMessage = " Error Reading File " + cur[1];
-+ errorMessage = " Error reading file " + cur[1];
- MTKpp::errorLogger.throwError("MCPB::source", errorMessage, 1);
- exit(1);
- }
-@@ -742,6 +751,20 @@
- \endcode
- */
- if ((inputFileContents[i].size() == 3)) {
-+ //std::cout << "SET COMMAND " << inputFileContents[i][2] << std::endl;
-+ if (inputFileContents[i][2].compare(0,1,"$") == 0) {
-+ std::string envVariable = "";
-+ std::string tVar = inputFileContents[i][2];
-+ envVariable = getEnvVar(tVar.substr(1,tVar.size()-1));
-+ if (envVariable == "") {
-+ std::cout << " Environment variable " << tVar.substr(1,tVar.size()-1)
-+ << " is unset " << std::endl;
-+ exit(1);
-+ }
-+ //std::cout << "Environment variable = " << envVariable << std::endl;
-+ inputFileContents[i][2] = envVariable;
-+ }
-+
- variableMap[inputFileContents[i][1]] = inputFileContents[i][2];
- for (unsigned int j = i+1; j < inputFileContents.size(); j++) {
- bool bReplaced = false;
-@@ -813,6 +836,115 @@
- }
- }
-
-+ else if (inputFileContents[i][0] == "printGroupCharge") {
-+ /*!
-+ @ingroup MCPB_commands
-+ \code
-+ Function: printFrag
-+
-+ Description: Print fragment details
-+
-+ syntax: printGroupCharge Zn-CCCC
-+
-+ \endcode
-+ */
-+ if ((inputFileContents[i].size() != 2) or (!pCollection)) {
-+ MTKpp::errorLogger.throwError("MCPB::printGroupCharge", " Incorrect use of printGroupCharge ... exiting", MTK_ERROR);
-+ exit(1);
-+ }
-+ else {
-+ stdLibrary* pStdLibrary = pCollection->getStdLibrary();
-+ if (pStdLibrary) {
-+ stdGroup* pStdGroup = pStdLibrary->getStdGroup(inputFileContents[i][1]);
-+ std::cout << " Group " << pStdGroup->getName() << "\n";
-+ if (pStdGroup) {
-+ molecule* pM = pStdGroup->getStdMolecule();
-+ if (pM) {
-+ double groupCharge = 0.0;
-+ std::vector<submolecule*> pSM = pM->getSubMoleculeList();
-+ //std::cout << " Number of submolecules = " << pSM.size() << "\n";
-+ for (unsigned int x = 0; x < pSM.size(); x++) {
-+ stdFrag* pSF = pStdGroup->getStdFrag(pSM[x]->getName());
-+ if (pSF) {
-+ std::cout << " " << pSF->getSymbol() << "\n";
-+ double fCharge = 0.0;
-+ std::vector<atom*> pA = pSM[x]->getAtomList();
-+ for (unsigned int y = 0; y < pA.size(); y++) {
-+ stdAtom* pSA = pA[y]->getStdAtom();
-+ if (pSA) {
-+ fCharge += pSA->atmCharge;
-+ std::cout << " |" << pSA->identity << "| " << pSA->atmCharge << "\n";
-+ }
-+ else {
-+ std::cout << " Error find std atom " << std::endl;
-+ exit(1);
-+ }
-+ }
-+ groupCharge += fCharge;
-+ std::cout << " Total Fragment Charge " << pSF->getCharge() << "\n";
-+ }
-+ }
-+ /*std::vector<stdFrag*> pL = pStdGroup->getStdFragList();
-+ for (unsigned int x = 0; x < pL.size(); x++) {
-+ std::cout << " Fragment " << pL[x]->getSymbol() << "\n";
-+ std::vector<stdAtom*> pL2 = pL[x]->getStdAtomList();
-+ double fCharge = 0.0;
-+ for (unsigned int y = 0; y < pL2.size(); y++) {
-+ fCharge += pL2[y]->atmCharge;
-+ std::cout << " Atom " << pL2[y]->identity << " " << pL2[y]->atmCharge << "\n";
-+ }
-+ groupCharge += fCharge;
-+ //groupCharge += pL[x]->getCharge();
-+ std::cout << " Fragment Charge " << pL[x]->getCharge() << "\n";
-+ }
-+ */
-+
-+ std::cout << " Total Charge = " << groupCharge << "\n" << std::endl;
-+ }
-+ }
-+ }
-+ }
-+ }
-+
-+ else if (inputFileContents[i][0] == "printFrag") {
-+ /*!
-+ @ingroup MCPB_commands
-+ \code
-+ Function: printFrag
-+
-+ Description: Print fragment details
-+
-+ syntax: printFrag Zn-CCCC CY1
-+
-+ \endcode
-+ */
-+ if ((inputFileContents[i].size() != 3) or (!pCollection)) {
-+ MTKpp::errorLogger.throwError("MCPB::printFrag", " Incorrect use of printFrag ... exiting", MTK_ERROR);
-+ exit(1);
-+ }
-+ else {
-+ stdLibrary* pStdLibrary = pCollection->getStdLibrary();
-+ if (pStdLibrary) {
-+ stdGroup* pStdGroup = pStdLibrary->getStdGroup(inputFileContents[i][1]);
-+
-+ double groupCharge = 0.0;
-+ std::vector<stdFrag*> pL = pStdGroup->getStdFragList();
-+ for (unsigned int x = 0; x < pL.size(); x++) {
-+ groupCharge += pL[x]->getCharge();
-+
-+ }
-+ std::cout << " Group " << inputFileContents[i][1] << " charge = "
-+ << groupCharge << std::endl;
-+
-+ stdFrag* pStdFrag = pStdGroup->getStdFrag(inputFileContents[i][2]);
-+ if (pStdFrag) {
-+ std::cout << " Fragment " << inputFileContents[i][2] << " charge = "
-+ << pStdFrag->getCharge() << std::endl;
-+ }
-+ }
-+ }
-+ }
-+
- else if (inputFileContents[i][0] == "readPdb") {
- /*!
- @ingroup MCPB_commands
-@@ -2227,7 +2359,8 @@
- double resCharge = 0.0;
- for (unsigned int y = 0; y < residueAtoms.size(); y++) {
- stdAtom* pLStdAtom = residueAtoms[y]->getStdAtom();
-- std::cout << " " << residueAtoms[y]->getName() << " " << residueAtoms[y]->getFileID()
-+ std::cout << " "
-+ << residueAtoms[y]->getName() << " " << residueAtoms[y]->getFileID()
- << " " << residueAtoms[y]->getType() << " " << residueAtoms[y]->getValence()
- << " " << residueAtoms[y]->getHybridization() << " ";
- if (pLStdAtom) {
-@@ -2437,6 +2570,11 @@
- molecule* selMol = pSel->getMol();
- pPdbParser->Write(inputFileContents[i][2], selMol);
- }
-+ else {
-+ MTKpp::errorLogger.throwError("MCPB::writePdb",
-+ " Error molecule was not selected ... exiting ", MTK_ERROR);
-+ exit(1);
-+ }
- }
- }
-
-@@ -2674,7 +2812,6 @@
-
- syntax: basisSet GEN bs.txt
- syntax: basisSet GEN.6D.7F bs.txt
-- syntax: basisSet GENECP bs.txt pseudo.txt
- \endcode
- */
- if (inputFileContents[i].size() == 2) {
-@@ -2685,6 +2822,11 @@
- pGParser->setBasisSet(inputFileContents[i][1]);
- pGParser->setBasisSetFile(inputFileContents[i][2]);
- }
-+ else {
-+ MTKpp::errorLogger.throwError("MCPB::basisSet",
-+ " Incorrect use ... exiting ", MTK_ERROR);
-+ exit(1);
-+ }
- }
-
- else if (inputFileContents[i][0] == "pseudoPotentials") {
-@@ -2698,8 +2840,15 @@
- syntax: pseudoPotential pseudo.txt
- \endcode
- */
-- pGParser->addCommandOption("pseudo","read");
-+ if (inputFileContents[i].size() == 2) {
-+ pGParser->addCommandOption("Pseudo","Read");
- pGParser->setPseudoPotentialFile(inputFileContents[i][1]);
-+ } else {
-+ MTKpp::errorLogger.throwError("MCPB::pseudoPotentials",
-+ " Incorrect use ... exiting ", MTK_ERROR);
-+ exit(1);
-+ }
-+
- }
-
- else if (inputFileContents[i][0] == "modRedundant") {
-@@ -2713,8 +2862,14 @@
- syntax: modRedundant modred.txt
- \endcode
- */
-- pGParser->addCommandOption("opt","modredundant");
-+ if (inputFileContents[i].size() == 2) {
-+ pGParser->addCommandOption("Opt","ModRedundant");
- pGParser->setModRedundantFile(inputFileContents[i][1]);
-+ } else {
-+ MTKpp::errorLogger.throwError("MCPB::modRedundant",
-+ " Incorrect use ... exiting ", MTK_ERROR);
-+ exit(1);
-+ }
- }
-
- else if (inputFileContents[i][0] == "clusterCharge") {
-@@ -2728,7 +2883,13 @@
- syntax: clusterCharge cuCYM4 -3
- \endcode
- */
-+ if (inputFileContents[i].size() == 3) {
- pGParser->setCharge(atoi(inputFileContents[i][2].c_str()));
-+ } else {
-+ MTKpp::errorLogger.throwError("MCPB::clusterCharge",
-+ " Incorrect use ... exiting ", MTK_ERROR);
-+ exit(1);
-+ }
- }
-
- else if (inputFileContents[i][0] == "clusterSpin") {
-@@ -2742,76 +2903,94 @@
- syntax: clusterSpin 0
- \endcode
- */
-+ if (inputFileContents[i].size() == 2) {
- pGParser->setMultiplicity(atoi(inputFileContents[i][1].c_str()));
-+ } else {
-+ MTKpp::errorLogger.throwError("MCPB::clusterSpin",
-+ " Incorrect use ... exiting ", MTK_ERROR);
-+ exit(1);
-+ }
- }
-
-- else if (inputFileContents[i][0] == "g03MoldenFormat") {
-+ else if (inputFileContents[i][0] == "gaussianMoldenFormat") {
- /*!
- @ingroup MCPB_commands
- \code
-- Function: g03MoldenFormat
-+ Function: gaussianMoldenFormat
-
- Description: Use Molden formatted output in log file. Print out
- details of the basis set and the molecular orbitals.
-
-- syntax: g03MoldenFormat (bare word)
-+ syntax: gaussianMoldenFormat (bare word)
- \endcode
- */
-- pGParser->addCommandOption("gfinput");
-- pGParser->addIop("iop(6/7=3)");
-+ pGParser->addCommandOption("GFInput");
-+ pGParser->addIop("IOp(6/7=3)");
- }
-
-- else if (inputFileContents[i][0] == "g03Verbosity") {
-+ else if (inputFileContents[i][0] == "gaussianVerbosity") {
- if (inputFileContents[i].size() == 2) {
- pGParser->setVerbosity(inputFileContents[i][1]);
-+ } else {
-+ MTKpp::errorLogger.throwError("MCPB::gaussianVerbosity",
-+ " Incorrect use ... exiting ", MTK_ERROR);
-+ exit(1);
- }
- }
-
-- else if (inputFileContents[i][0] == "g03Mem") {
-+ else if (inputFileContents[i][0] == "gaussianMem") {
- /*!
- @ingroup MCPB_commands
- \code
-- Function: g03Mem
-+ Function: gaussianMem
-
-- Description: Set amount of memory requested for g03
-+ Description: Set amount of memory requested for Gaussian
-
-- syntax: g03Mem 3600MB
-+ syntax: gaussianMem 3600MB
- \endcode
- */
- if (inputFileContents[i].size() == 2) {
- pGParser->setMem(inputFileContents[i][1]);
-+ } else {
-+ MTKpp::errorLogger.throwError("MCPB::gaussianMem",
-+ " Incorrect use ... exiting ", MTK_ERROR);
-+ exit(1);
- }
- }
-
-- else if (inputFileContents[i][0] == "g03nProc") {
-+ else if (inputFileContents[i][0] == "gaussianNProc") {
- /*!
- @ingroup MCPB_commands
- \code
-- Function: g03nProc
-+ Function: gaussianNProc
-
-- Description: Set number of processors requested for g03
-+ Description: Set number of processors requested for Gaussian
-
-- syntax: g03nProc 2
-+ syntax: gaussianNProc 2
- \endcode
- */
- if (inputFileContents[i].size() == 2) {
-- pGParser->setnProc(inputFileContents[i][1]);
-+ pGParser->setNProc(inputFileContents[i][1]);
-+ } else {
-+ MTKpp::errorLogger.throwError("MCPB::gaussianNProc",
-+ " Incorrect use ... exiting ", MTK_ERROR);
-+ exit(1);
- }
- }
-
-- else if (inputFileContents[i][0] == "g03OptAndFC") {
-+ else if (inputFileContents[i][0] == "gaussianOptAndFC") {
- /*!
- @ingroup MCPB_commands
- \code
-- Function: g03OptAndFC
-+ Function: gaussianOptAndFC
-
- Description: Set Gaussian input name
-
-- syntax: g03OptAndFC //cuCYM4 cuCYM4.com
-+ syntax: gaussianOptAndFC //cuCYM4 cuCYM4.com
- \endcode
- */
- if ((inputFileContents[i].size() != 3) or (!pCollection)) {
-- MTKpp::errorLogger.throwError("MCPB::g03OptAndFC",
-+ MTKpp::errorLogger.throwError("MCPB::gaussianOptAndFC",
- " Incorrect use ... exiting ", MTK_ERROR);
- exit(1);
- }
-@@ -2819,7 +2998,7 @@
- selection* pSel = new selection(pCollection);
- failure = pSel->parse(inputFileContents[i][1]);
- if (failure) {
-- MTKpp::errorLogger.throwError("MCPB::g03OptAndFC",
-+ MTKpp::errorLogger.throwError("MCPB::gaussianOptAndFC",
- " Error in selection parsing ... exiting ", MTK_ERROR);
- exit(1);
- }
-@@ -2833,17 +3012,17 @@
- pGParser->setCartesian(1);
- pGParser->setWriteMoleculeName(1);
- pGParser->setWriteChargeAndMult(1);
-- pGParser->addCommandOption("integral(Grid=UltraFine)");
-+ pGParser->addCommandOption("Integral", "(Grid=UltraFine)");
-
-- std::vector<std::string> optOptions = pGParser->getCommandOption("opt");
-+ std::vector<std::string> optOptions = pGParser->getCommandOption("Opt");
- if (optOptions.size() == 0) {
-- pGParser->addCommandOption("opt");
-+ pGParser->addCommandOption("Opt");
- }
-
-- pGParser->addCommandOption("scf", "xqc");
-- pGParser->addCommandOption("geom", "PrintInputOrient");
-+ pGParser->addCommandOption("SCF", "XQC");
-+ pGParser->addCommandOption("Geom", "PrintInputOrient");
- pGParser->Write(fileNameBase+"_opt.com", pSelMol);
-- pGParser->removeCommandOption("opt");
-+ pGParser->removeCommandOption("Opt");
-
- // k's
- // Do not write coordinates, name, charge or multiplicity,
-@@ -2851,40 +3030,40 @@
- pGParser->setNoCoords();
- pGParser->setWriteMoleculeName(0);
- pGParser->setWriteChargeAndMult(0);
-- pGParser->addCommandOption("freq", "noraman");
-- pGParser->addCommandOption("geom", "allcheckpoint");
-- pGParser->addCommandOption("guess", "read");
-- pGParser->addIop("iop(7/33=1)");
-+ pGParser->addCommandOption("Freq", "NoRaman");
-+ pGParser->addCommandOption("Geom", "AllCheckpoint");
-+ pGParser->addCommandOption("Guess", "Read");
-+ pGParser->addIop("IOp(7/33=1)");
- pGParser->Write(fileNameBase+"_fc.com", pSelMol);
- pGParser->clearIop();
-
- /*
- // optimization
-- pGParser->addCommandOption("opt", "z-matrix");
-+ pGParser->addCommandOption("Opt", "Z-Matrix");
- pGParser->generateZMatrix(pSelMol);
- // [molecule index] = zmatrix index;
- pGParser->writeMappingFile(fileNameBase+"_zmat.map");
-- pGParser->addCommandOption("geom", "PrintInputOrient");
-+ pGParser->addCommandOption("Geom", "PrintInputOrient");
- pGParser->Write(fileNameBase+"_opt.com", pSelMol);
-- pGParser->removeCommandOption("opt");
-+ pGParser->removeCommandOption("Opt");
- */
- }
- }
- }
-
-- else if (inputFileContents[i][0] == "g03Charges") {
-+ else if (inputFileContents[i][0] == "gaussianCharges") {
- /*!
- @ingroup MCPB_commands
- \code
-- Function: g03Charges
-+ Function: gaussianCharges
-
- Description: Set Gaussian input name
-
-- syntax: g03Charges //cuCYM4 cuCYM4.com
-+ syntax: gaussianCharges //cuCYM4 cuCYM4.com
- \endcode
- */
- if ((inputFileContents[i].size() != 3) or (!pCollection)) {
-- MTKpp::errorLogger.throwError("MCPB::g03Charges",
-+ MTKpp::errorLogger.throwError("MCPB::gaussianCharges",
- " Incorrect use ... exiting ", MTK_ERROR);
- exit(1);
- }
-@@ -2892,7 +3071,7 @@
- selection* pSel = new selection(pCollection);
- failure = pSel->parse(inputFileContents[i][1]);
- if (failure) {
-- MTKpp::errorLogger.throwError("MCPB::g03Charges",
-+ MTKpp::errorLogger.throwError("MCPB::gaussianCharges",
- " Error in selection parsing ... exiting ", MTK_ERROR);
- exit(1);
- }
-@@ -2907,14 +3086,14 @@
-
- // q's
- std::vector<std::string> popOptions;
-- popOptions.push_back("mk");
-- popOptions.push_back("readradii");
-- pGParser->addCommandOption("pop", popOptions);
-- pGParser->removeCommandOption("freq");
-- pGParser->addIop("iop(6/33=2)");
-+ popOptions.push_back("MK");
-+ popOptions.push_back("ReadRadii");
-+ pGParser->addCommandOption("Pop", popOptions);
-+ pGParser->removeCommandOption("Freq");
-+ pGParser->addIop("IOp(6/33=2)");
-
-- pGParser->addCommandOption("integral(Grid=UltraFine)");
-- pGParser->addCommandOption("scf", "xqc");
-+ pGParser->addCommandOption("Integral", "(Grid=UltraFine)");
-+ pGParser->addCommandOption("SCF", "XQC");
-
- pGParser->Write(fileNameBase+"_mk.com", pSelMol);
-
-@@ -3053,7 +3232,8 @@
- result = find(bbb.begin(), bbb.end(), dd);
-
- if (result != bbb.end()) {
-- freezingAtoms += "\n BBB " + submols[s]->getName() + " " + int2String(submols[s]->getSubMolId()) + " " + dd;
-+ freezingAtoms += "\n BBB " + submols[s]->getName() + " "
-+ + int2String(submols[s]->getSubMolId()) + " " + dd;
- sprintf(temp,"%5d%10.5f", 1, pStdAtom_a->atmCharge);
- orespAdd << temp << std::endl;
- sprintf(temp,"%5d%5d", 1, subAtoms[a]->getIndex());
-@@ -3071,7 +3251,6 @@
- MTKpp::errorLogger.throwError("MCPB::respgenAdditions",
- freezingAtoms, INFO);
- }
--
- orespAdd << "\n" << std::endl;
- orespAdd.close();
- }
-@@ -3099,22 +3278,22 @@
- }
- }
-
-- else if (inputFileContents[i][0] == "readG03Output") {
-+ else if (inputFileContents[i][0] == "readGaussianOutput") {
- /*!
- @ingroup MCPB_commands
- \code
-- Function: readG03Output
-+ Function: readGaussianOutput
-
-- Description: Read G03 Output
-+ Description: Read Gaussian Output
-
-- syntax: readG03Output cuCYM4.log
-+ syntax: readGaussianOutput cuCYM4.log
- \endcode
- */
- if ((inputFileContents[i].size() == 2) or (pGParser)) {
- pGParser->Read(inputFileContents[i][1], pSheet);
- }
- else {
-- MTKpp::errorLogger.throwError("MCPB::readG03Output",
-+ MTKpp::errorLogger.throwError("MCPB::readGaussianOutput",
- " Incorrect use ... exiting ", MTK_ERROR);
- exit(1);
- }
-@@ -3481,8 +3660,8 @@
- pGParser->setCartesian(0);
- pGParser->setWriteMoleculeName(1);
- pGParser->setWriteChargeAndMult(1);
-- pGParser->addCommandOption("freq", "noraman");
-- pGParser->addIop("iop(7/33=1)");
-+ pGParser->addCommandOption("Freq", "NoRaman");
-+ pGParser->addIop("IOp(7/33=1)");
- pGParser->Write(inputFileContents[i][2], pSelMol);
- pGParser->writeMappingFile(inputFileContents[i][2]+".map");
- }
-@@ -3826,6 +4005,7 @@
- if (pStdFrag) {
- bool doIt = pStdGroup->hasStdFrag(pStdFrag->getSymbol());
- if (doIt) {
-+ //std::cout << " " << pStdFrag->getSymbol() << "\n";
- //submolecule* pStdSubmol = pStdMolecule->addSubMolecule();
- //pStdSubmol->copy(submolList[t]);
- std::vector<atom*> lAtomList = submolList[t]->getAtomList();
-@@ -3834,7 +4014,8 @@
- if (pStdAtom) {
- //std::cout << " |" << lAtomList[r]->getName() << "| " << lAtomList[r]->getZcharge() << "\n";
- pStdAtom->atmCharge = lAtomList[r]->getZcharge();
-- groupCharge += lAtomList[r]->getZcharge();
-+ //groupCharge += lAtomList[r]->getZcharge();
-+ groupCharge += pStdAtom->atmCharge;
- }
- }
- }
-@@ -3861,11 +4042,398 @@
- */
- }
- updateRespChargesMessage += " Charge: " + double2String(groupCharge, 2);
-+ //std::cout << " Group charge = " << double2String(groupCharge, 2) << "\n";
- MTKpp::errorLogger.throwError("MCPB::updateRespCharges",
- updateRespChargesMessage, INFO);
- }
- }
-
-+ else if (inputFileContents[i][0] == "respgen") {
-+ /*!
-+ @ingroup MCPB_commands
-+ \code
-+ Function: respgen
-+
-+ Description: Create resp1 and resp2 files (recreates functionality of respgen)
-+
-+ syntax: respgen /COL/MOL Group fileName
-+ \endcode
-+ */
-+
-+ if ((inputFileContents[i].size() != 4) or (!pCollection)) {
-+ MTKpp::errorLogger.throwError("MCPB::respgen",
-+ " Incorrect use ... exiting ", MTK_ERROR);
-+ exit(1);
-+ }
-+ else {
-+ selection* pSel = new selection(pCollection);
-+ failure = pSel->parse(inputFileContents[i][1]);
-+ if (failure) {
-+ MTKpp::errorLogger.throwError("MCPB::respgen",
-+ " Error in selection parsing ... exiting ", MTK_ERROR);
-+ exit(1);
-+ }
-+
-+ stdLibrary* pStdLibrary = pCollection->getStdLibrary();
-+ stdGroup* pStdGroup = 0;
-+ if (pStdLibrary) {
-+ pStdGroup = pStdLibrary->getStdGroup(inputFileContents[i][2]);
-+ if (!pStdGroup) {
-+ MTKpp::errorLogger.throwError("MCPB::respgen",
-+ " Can't find stdGroup ... exiting ", MTK_ERROR);
-+ exit(1);
-+ }
-+ }
-+ else {
-+ MTKpp::errorLogger.throwError("MCPB::respgen",
-+ " Error in selection parsing ... exiting ", MTK_ERROR);
-+ }
-+
-+ if (pSel->getSelectionType() == 1) {
-+ molecule* pSelMol = pSel->getMol();
-+ if (!pSelMol) {
-+ std::cout << " Error in respgen selection \n";
-+ exit(1);
-+ }
-+
-+ std::vector<std::string>::iterator result;
-+
-+ acParser* pAcParser = new acParser();
-+ pAcParser->Write(inputFileContents[i][3]+".ac", pCollection);
-+ delete pAcParser;
-+
-+ std::string bb0FileResp1 = inputFileContents[i][3] + "_bb0.resp1";
-+ std::string bb0FileResp2 = inputFileContents[i][3] + "_bb0.resp2";
-+ std::ofstream obb0FileResp1;
-+ std::ofstream obb0FileResp2;
-+ obb0FileResp1.open(bb0FileResp1.c_str());
-+ obb0FileResp2.open(bb0FileResp2.c_str());
-+
-+ std::string bb1FileResp1 = inputFileContents[i][3] + "_bb1.resp1";
-+ std::string bb1FileResp2 = inputFileContents[i][3] + "_bb1.resp2";
-+ std::ofstream obb1FileResp1;
-+ std::ofstream obb1FileResp2;
-+ obb1FileResp1.open(bb1FileResp1.c_str());
-+ obb1FileResp2.open(bb1FileResp2.c_str());
-+
-+ std::string bb2FileResp1 = inputFileContents[i][3] + "_bb2.resp1";
-+ std::string bb2FileResp2 = inputFileContents[i][3] + "_bb2.resp2";
-+ std::ofstream obb2FileResp1;
-+ std::ofstream obb2FileResp2;
-+ obb2FileResp1.open(bb2FileResp1.c_str());
-+ obb2FileResp2.open(bb2FileResp2.c_str());
-+
-+ std::string bb3FileResp1 = inputFileContents[i][3] + "_bb3.resp1";
-+ std::string bb3FileResp2 = inputFileContents[i][3] + "_bb3.resp2";
-+ std::ofstream obb3FileResp1;
-+ std::ofstream obb3FileResp2;
-+ obb3FileResp1.open(bb3FileResp1.c_str());
-+ obb3FileResp2.open(bb3FileResp2.c_str());
-+
-+ if (!obb0FileResp1 or !obb0FileResp2 or !obb1FileResp1 or !obb1FileResp2 or
-+ !obb2FileResp1 or !obb2FileResp2 or !obb3FileResp1 or !obb3FileResp2) {
-+ MTKpp::errorLogger.throwError("MCPB::respgen",
-+ " Unable to open RESP files ... exiting ", MTK_ERROR);
-+ exit(1);
-+ }
-+
-+ std::vector<molecule*> molList = pCollection->getMoleculeList();
-+
-+ std::string terminalFrags = "";
-+ char temp[100];
-+ bool bFirst = true;
-+ for (unsigned int m = 0; m < molList.size(); m++) {
-+ molecule* pMol = molList[m];
-+ std::vector<submolecule*> submols = pMol->getSubMoleculeList();
-+ for (unsigned int s = 0; s < submols.size(); s++) {
-+ if (submols[s]->hasStdFrag()) {
-+ stdFrag* pStdFrag = submols[s]->getStdFrag();
-+ if (pStdFrag->getParent()->getName() != inputFileContents[i][2]) {
-+ if (bFirst) {
-+ sprintf(temp,"%5d%10.5f\n", pStdFrag->numStdAtoms(), 0.0);
-+ bFirst = false;
-+ }
-+ else {
-+ sprintf(temp,"\n%5d%10.5f\n", pStdFrag->numStdAtoms(), 0.0);
-+ }
-+
-+ terminalFrags += std::string(temp);
-+ std::vector<atom*> atomList = submols[s]->getAtomList();
-+ char temp2[80];
-+ int counter = 0;
-+ for (unsigned int a = 0; a < atomList.size(); a++) {
-+ if (counter > 7) { // was 6
-+ terminalFrags += "\n";
-+ counter = 0;
-+ }
-+ sprintf(temp2,"%5d%5d", 1, atomList[a]->getIndex());
-+ terminalFrags += std::string(temp2);
-+ counter++;
-+ }
-+ //terminalFrags += "\n";
-+ }
-+ }
-+ }
-+ }
-+ //std::cout << terminalFrags << std::endl;
-+
-+ std::string bb0 = terminalFrags + "\n";
-+ std::string bb1 = terminalFrags + "\n";
-+ std::string bb2 = terminalFrags + "\n";
-+ std::string bb3 = terminalFrags + "\n";
-+
-+ int lInd = 0;
-+ for (unsigned int m = 0; m < molList.size(); m++) {
-+ molecule* pMol = molList[m];
-+
-+ if (pMol->getName() == "Reference") continue;
-+
-+ std::vector<submolecule*> submols = pMol->getSubMoleculeList();
-+ for (unsigned int s = 0; s < submols.size(); s++) {
-+ if (submols[s]->hasStdFrag()) {
-+ stdFrag* pStdFrag = submols[s]->getStdFrag();
-+ //std::cout << " respgen " << pStdFrag->getParent()->getName() << " " << inputFileContents[i][2] << " \n ";
-+ if (pStdFrag->getParent()->getName() != inputFileContents[i][2]) continue;
-+ std::vector<atom*> subAtoms = submols[s]->getAtomList();
-+ for (unsigned int a = 0; a < subAtoms.size(); a++) {
-+ stdAtom* pStdAtom_a = subAtoms[a]->getStdAtom();
-+ lInd++;
-+ // iBB == 1
-+ if (pStdAtom_a) {
-+ std::string dd = pStdAtom_a->identity + ":" + pStdAtom_a->type;
-+
-+ //result = find(bb_heavy.begin(), bb_heavy.end(), subAtoms[a]->getName());
-+ //result = find(bb_heavy.begin(), bb_heavy.end(), pStdAtom_a->identity);
-+ result = find(bb_heavy.begin(), bb_heavy.end(), dd);
-+
-+ if (result != bb_heavy.end()) {
-+ sprintf(temp,"%5d%10.5f\n", 1, pStdAtom_a->atmCharge);
-+ //freezingAtoms += "\n BB Heavy " + submols[s]->getName() + " " + int2String(submols[s]->getSubMolId()) + " " + dd;
-+ //std::cout << "\n BB Heavy " + submols[s]->getName() + " " + int2String(submols[s]->getSubMolId()) + " " + dd;
-+ //std::cout << dd << " " << subAtoms[a]->getName() << " ---> " << subAtoms[a]->getStdAtom()->type << std::endl;
-+ //orespAdd << temp << std::endl;
-+ bb1 += std::string(temp);
-+ sprintf(temp,"%5d%5d\n", 1, subAtoms[a]->getIndex());
-+ //orespAdd << temp << std::endl;
-+ bb1 += std::string(temp);
-+ }
-+
-+ // iBB == 2
-+ dd = pStdAtom_a->identity + ":" + pStdAtom_a->type;
-+
-+ //result = find(bb.begin(), bb.end(), subAtoms[a]->getName());
-+ result = find(bb.begin(), bb.end(), dd);
-+
-+ if (result != bb.end()) {
-+ //freezingAtoms += "\n BB " + submols[s]->getName() + " " + int2String(submols[s]->getSubMolId()) + " " + dd;
-+ sprintf(temp,"%5d%10.5f\n", 1, pStdAtom_a->atmCharge);
-+ //orespAdd << temp << std::endl;
-+ bb2 += std::string(temp);
-+ sprintf(temp,"%5d%5d\n", 1, subAtoms[a]->getIndex());
-+ //orespAdd << temp << std::endl;
-+ bb2 += std::string(temp);
-+ }
-+ // iBB == 3
-+ dd = pStdAtom_a->identity + ":" + pStdAtom_a->type;
-+
-+ //result = find(bbb.begin(), bbb.end(), subAtoms[a]->getName());
-+ result = find(bbb.begin(), bbb.end(), dd);
-+
-+ if (result != bbb.end()) {
-+ //freezingAtoms += "\n BBB " + submols[s]->getName() + " "
-+ // + int2String(submols[s]->getSubMolId()) + " " + dd;
-+ sprintf(temp,"%5d%10.5f\n", 1, pStdAtom_a->atmCharge);
-+ bb3 += std::string(temp);
-+ //orespAdd << temp << std::endl;
-+ sprintf(temp,"%5d%5d\n", 1, subAtoms[a]->getIndex());
-+ bb3 += std::string(temp);
-+ //orespAdd << temp << std::endl;
-+ }
-+ }
-+ else {
-+ MTKpp::errorLogger.throwError("MCPB::respgen",
-+ " Unknown option ... exiting ", MTK_ERROR);
-+ }
-+ }
-+ }
-+ }
-+ }
-+
-+ std::string resp1 = "";
-+ resp1 += "Resp charges for organic molecule\n";
-+ resp1 += "\n";
-+ resp1 += " &cntrl\n";
-+ resp1 += "\n";
-+ resp1 += " nmol = 1,\n";
-+ resp1 += " ihfree = 1,\n";
-+ resp1 += " ioutopt = 1,\n";
-+ resp1 += "\n";
-+ resp1 += " &end\n";
-+ resp1 += " 1.0\n";
-+ resp1 += "Resp charges for organic molecule\n";
-+
-+ //std::cout << pStdGroup->getCharge() << " " << pSelMol->getNumAtoms() << std::endl;
-+ sprintf(temp,"%5d%5d\n", int(pStdGroup->getCharge()), pSelMol->getNumAtoms());
-+ resp1 += std::string(temp);
-+
-+ std::vector<submolecule*> sList = pSelMol->getSubMoleculeList();
-+ typedef std::map<std::string, int>::iterator mapIterator;
-+
-+ std::map<std::string, int> lMap;
-+ int ind = 0;
-+ for (unsigned int p = 0; p < sList.size(); p++) {
-+ std::vector<atom*> aList = sList[p]->getAtomList();
-+ for (unsigned int a = 0; a < aList.size(); a++) {
-+ if (!aList[a]->getStdAtom()) {
-+ std::cout << " Error ... exiting()\n";
-+ exit(1);
-+ }
-+ int elNum = aList[a]->getAtomicNum();
-+ std::string key = "";
-+ if (elNum == 1) {
-+ std::vector<atom*> hBondedAtoms = aList[a]->getBondedAtoms();
-+ if (hBondedAtoms.size() == 1) {
-+ key = aList[a]->getParent()->getName() + ":" + hBondedAtoms[0]->getName() + ":" + aList[a]->getStdAtom()->type;
-+ }
-+ else {
-+ key = aList[a]->getParent()->getName() + ":" + aList[a]->getStdAtom()->type;
-+ }
-+ }
-+ else {
-+ key = aList[a]->getParent()->getName() + ":" + aList[a]->getName();
-+ }
-+
-+ mapIterator mi = lMap.find(key);
-+
-+ int fg = 0;
-+ if (mi != lMap.end()){
-+ fg = lMap[key]+1;
-+ }
-+ else {
-+ lMap[key] = ind;
-+ }
-+ //sprintf(temp,"%4d %-11s%5d%5d\n", ind+1, key.c_str(), aList[a]->getAtomicNum(), fg);
-+ sprintf(temp,"%5d%5d\n", aList[a]->getAtomicNum(), fg);
-+ resp1 += std::string(temp);
-+ ind++;
-+ }
-+ }
-+
-+ std::string resp2 = "";
-+
-+ resp2 += "Resp charges for organic molecule\n";
-+ resp2 += "\n";
-+ resp2 += " &cntrl\n";
-+ resp2 += "\n";
-+ resp2 += " nmol = 1,\n";
-+ resp2 += " ihfree = 1,\n";
-+ resp2 += " ioutopt = 1,\n";
-+ resp2 += " iqopt = 2,\n";
-+ resp2 += " qwt = 0.001,\n";
-+ resp2 += "\n";
-+ resp2 += " &end\n";
-+ resp2 += " 1.0\n";
-+ resp2 += "Resp charges for organic molecule\n";
-+
-+ sprintf(temp,"%5d%5d\n", int(pStdGroup->getCharge()), pSelMol->getNumAtoms());
-+ resp2 += std::string(temp);
-+
-+ ind = 0;
-+ std::map<std::string, int> lMap2;
-+
-+ for (unsigned int p = 0; p < sList.size(); p++) {
-+ std::vector<atom*> aList = sList[p]->getAtomList();
-+ for (unsigned int a = 0; a < aList.size(); a++) {
-+
-+ if (!aList[a]->getStdAtom()) {
-+ std::cout << " Error ... exiting()\n";
-+ exit(1);
-+ }
-+ int elNum = aList[a]->getAtomicNum();
-+ std::string key = "";
-+ if (elNum == 1) {
-+ std::vector<atom*> hBondedAtoms = aList[a]->getBondedAtoms();
-+ if (hBondedAtoms.size() == 1) {
-+ key = aList[a]->getParent()->getName() + ":" + hBondedAtoms[0]->getName() + ":" +
-+ aList[a]->getStdAtom()->type;
-+ }
-+ else {
-+ key = aList[a]->getParent()->getName() + ":" + aList[a]->getStdAtom()->type;
-+ }
-+ }
-+ else {
-+ key = aList[a]->getParent()->getName() + ":" + aList[a]->getName();
-+ }
-+
-+ mapIterator mi = lMap2.find(key);
-+
-+ int fg = 0;
-+ if (mi != lMap2.end()){
-+ fg = lMap2[key]+1;
-+ }
-+ else {
-+ lMap2[key] = ind;
-+ }
-+ std::string atName = aList[a]->getName();
-+ std::string atType = aList[a]->getStdAtom()->type;
-+ int atNum = aList[a]->getAtomicNum();
-+
-+ if (atName == " CH3" or atName == " CB " or containsSubStr(key, " CB :H1") or
-+ containsSubStr(key, " CB :HC") or
-+ containsSubStr(key, " CH3:HC") or containsSubStr(key, " CH3:H1") or
-+ containsSubStr(key, "GLY: CA ")) {// or (atNum > 16)) {
-+ //if (atName == " CH3" or atName == " CB " or atType == "H1" or atType == "HC") {
-+ //sprintf(temp,"%4d %-11s%5d%5d\n", ind+1, key.c_str(), aList[a]->getAtomicNum(), fg);
-+ sprintf(temp,"%5d%5d\n", aList[a]->getAtomicNum(), fg);
-+ }
-+ else {
-+ //sprintf(temp,"%4d %-11s%5d%5d\n", ind+1, key.c_str(), aList[a]->getAtomicNum(), -99);
-+ sprintf(temp,"%5d%5d\n", aList[a]->getAtomicNum(), -99);
-+ }
-+ resp2 += std::string(temp);
-+
-+ ind++;
-+ }
-+ }
-+
-+ std::string twoBlankLine = "\n\n";
-+ bb0 += twoBlankLine;
-+ bb1 += twoBlankLine;
-+ bb2 += twoBlankLine;
-+ bb3 += twoBlankLine;
-+
-+ obb0FileResp1 << resp1;
-+ obb0FileResp1 << bb0;
-+ obb0FileResp2 << resp2;
-+ obb0FileResp2 << bb0;
-+
-+ obb1FileResp1 << resp1;
-+ obb1FileResp1 << bb1;
-+ obb1FileResp2 << resp2;
-+ obb1FileResp2 << bb1;
-+
-+ obb2FileResp1 << resp1;
-+ obb2FileResp1 << bb2;
-+ obb2FileResp2 << resp2;
-+ obb2FileResp2 << bb2;
-+
-+ obb3FileResp1 << resp1;
-+ obb3FileResp1 << bb3;
-+ obb3FileResp2 << resp2;
-+ obb3FileResp2 << bb3;
-+
-+ obb0FileResp1.close();
-+ obb0FileResp2.close();
-+ obb1FileResp1.close();
-+ obb1FileResp2.close();
-+ obb2FileResp1.close();
-+ obb2FileResp2.close();
-+ obb3FileResp1.close();
-+ obb3FileResp2.close();
-+ }
-+ }
-+ }
-+
- else if (inputFileContents[i][0] == "addStdMol") {
- /*!
- @ingroup MCPB_commands
-@@ -4496,63 +5064,63 @@
- table<double>* nmodeEVectors = pSheet->getTable("NMode EigenVectors");
- ublas::matrix<double> &nmodeEVectorsMatrixT = nmodeEVectors->getMatrix();
-
-- table<double>* g03EValues = pSheet->getTable("Gaussian EigenValues");
-- ublas::matrix<double> &g03EValuesMatrix = g03EValues->getMatrix();
-+ table<double>* gaussianEValues = pSheet->getTable("Gaussian EigenValues");
-+ ublas::matrix<double> &gaussianEValuesMatrix = gaussianEValues->getMatrix();
-
-- table<double>* g03EVectors = pSheet->getTable("Gaussian EigenVectors");
-- ublas::matrix<double> &g03EVectorsMatrixT = g03EVectors->getMatrix();
-+ table<double>* gaussianEVectors = pSheet->getTable("Gaussian EigenVectors");
-+ ublas::matrix<double> &gaussianEVectorsMatrixT = gaussianEVectors->getMatrix();
-
- int nRowsNMode = nmodeEValues->getNumRows();
-- int nRowsG03 = g03EValues->getNumRows();
-+ int nRowsGaussian = gaussianEValues->getNumRows();
-
- int nColsNMode = nmodeEVectors->getNumColumns();
-- int nColsG03 = g03EVectors->getNumColumns();
-+ int nColsGaussian = gaussianEVectors->getNumColumns();
-
-- if (nRowsNMode != nRowsG03 and nColsNMode != nColsG03) {
-+ if (nRowsNMode != nRowsGaussian and nColsNMode != nColsGaussian) {
- std::cout << " PROBLEM " << std::endl;
- }
- else {
- std::cout << " EIGENVALUES " << std::endl;
- for (int z = 0; z < nRowsNMode; z++) {
-- std::cout << nmodeEValuesMatrix(z, 0) << " " << g03EValuesMatrix(z, 0) << std::endl;
-+ std::cout << nmodeEValuesMatrix(z, 0) << " " << gaussianEValuesMatrix(z, 0) << std::endl;
- }
-
- //std::cout << " NMODE " << std::endl;
- //nmodeEVectors->printMatrix();
-
-- //std::cout << " G03 " << std::endl;
-- //g03EVectors->printMatrix();
-+ //std::cout << " Gaussian " << std::endl;
-+ //gaussianEVectors->printMatrix();
- //std::cout << " \n\n " << std::endl;
-
- // Normalize Eigenvector matrices
- for (int zi = 0; zi < nRowsNMode; zi++) {
- double normNMode = 0.0;
-- double normG03 = 0.0;
-+ double normGaussian = 0.0;
- for (int zk = 0; zk < nColsNMode; zk++) {
- normNMode += (nmodeEVectorsMatrixT(zi, zk) * nmodeEVectorsMatrixT(zi, zk));
-- normG03 += (g03EVectorsMatrixT(zi, zk) * g03EVectorsMatrixT(zi, zk));
-+ normGaussian += (gaussianEVectorsMatrixT(zi, zk) * gaussianEVectorsMatrixT(zi, zk));
- }
- normNMode = sqrt(normNMode);
-- normG03 = sqrt(normG03);
-+ normGaussian = sqrt(normGaussian);
- for (int zk = 0; zk < nColsNMode; zk++) {
-- //std::cout << g03EVectorsMatrixT(zi, zk) << " " << normG03 << " "
-- // << g03EVectorsMatrixT(zi, zk) / normG03 << " ";
-+ //std::cout << gaussianEVectorsMatrixT(zi, zk) << " " << normGaussian << " "
-+ // << gaussianEVectorsMatrixT(zi, zk) / normGaussian << " ";
- double newValue1 = nmodeEVectorsMatrixT(zi, zk) / normNMode;
-- double newValue2 = g03EVectorsMatrixT(zi, zk) / normG03;
-+ double newValue2 = gaussianEVectorsMatrixT(zi, zk) / normGaussian;
- nmodeEVectors->setCellValue(zi, zk, newValue1);
-- g03EVectors->setCellValue(zi, zk, newValue2);
-- //std::cout << g03EVectors->getCellValue(zi, zk) << std::endl;
-+ gaussianEVectors->setCellValue(zi, zk, newValue2);
-+ //std::cout << gaussianEVectors->getCellValue(zi, zk) << std::endl;
- }
- }
-
- ublas::matrix<double> &nmodeEVectorsMatrix = nmodeEVectors->getMatrix();
-- ublas::matrix<double> &g03EVectorsMatrix = g03EVectors->getMatrix();
-+ ublas::matrix<double> &gaussianEVectorsMatrix = gaussianEVectors->getMatrix();
-
- //std::cout << " NMODE " << std::endl;
- //nmodeEVectors->printMatrix();
-
-- //std::cout << " G03 " << std::endl;
-- //g03EVectors->printMatrix();
-+ //std::cout << " Gaussian " << std::endl;
-+ //gaussianEVectors->printMatrix();
- //std::cout << " \n\n " << std::endl;
-
- // dot product
-@@ -4563,12 +5131,12 @@
- double eN2 = 0.0;
- double dff = 0.0;
- for (int zi = 0; zi < nRowsNMode; zi++) { // NMode
-- for (int zj = 0; zj < nRowsNMode; zj++) { // G03
-+ for (int zj = 0; zj < nRowsNMode; zj++) { // Gaussian
- for (int zk = 0; zk < nColsNMode; zk++) { // Loop over coordinates in Eigenvector
-- //std::cout << nmodeEVectorsMatrix(zi, zk) << " " << g03EVectorsMatrix(zj, zk) << " ";
-+ //std::cout << nmodeEVectorsMatrix(zi, zk) << " " << gaussianEVectorsMatrix(zj, zk) << " ";
- eN += (nmodeEVectorsMatrix(zi, zk) * nmodeEVectorsMatrix(zi, zk));
-- eN2 += (g03EVectorsMatrix(zj, zk) * g03EVectorsMatrix(zj, zk));
-- dotProduct += (nmodeEVectorsMatrix(zi, zk) * g03EVectorsMatrix(zj, zk));
-+ eN2 += (gaussianEVectorsMatrix(zj, zk) * gaussianEVectorsMatrix(zj, zk));
-+ dotProduct += (nmodeEVectorsMatrix(zi, zk) * gaussianEVectorsMatrix(zj, zk));
- }
- //std::cout << " eN = " << sqrt(eN) << " eN2 = " << sqrt(eN2) << " ";
- std::cout << zi << " - " << zj << " " << dotProduct << " " << dotProductMax << std::endl;
-@@ -4582,11 +5150,11 @@
- }
- dotProduct = 0.0;
- }
-- double dffL = nmodeEValuesMatrix(zi, 0) - g03EValuesMatrix(dotProductMaxIndex, 0);
-+ double dffL = nmodeEValuesMatrix(zi, 0) - gaussianEValuesMatrix(dotProductMaxIndex, 0);
- dffL *= dffL;
- std::cout << " nmode index = " << zi << " BestMatch = " << dotProductMaxIndex
- << " => dotProduct =" << dotProductMax << " EVALUES: "
-- << " " << nmodeEValuesMatrix(zi, 0) << " " << g03EValuesMatrix(dotProductMaxIndex, 0) << " "
-+ << " " << nmodeEValuesMatrix(zi, 0) << " " << gaussianEValuesMatrix(dotProductMaxIndex, 0) << " "
- << dffL
- << std::endl;
-
-@@ -4617,7 +5185,7 @@
- }
-
- else {
-- std::string unknownCommand = " Unknown command " + inputFileContents[i][0];
-+ std::string unknownCommand = " Unknown command: \"" + inputFileContents[i][0] + "\"";
- MTKpp::errorLogger.throwError("MCPB", unknownCommand, MTK_ERROR);
- }
- }
-@@ -4628,4 +5196,3 @@
- delete pSheet;
- return 0;
- }
--
-diff -urN amber11.orig/AmberTools/src/mtkpp/tools/prep2xml.cpp amber11/AmberTools/src/mtkpp/tools/prep2xml.cpp
---- amber11.orig/AmberTools/src/mtkpp/tools/prep2xml.cpp 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/tools/prep2xml.cpp 2012-03-03 20:03:01.418032565 +0200
-@@ -86,6 +86,7 @@
- clo->addUsage( " -a log file " );
- clo->addUsage( " -l hybridize name \n" );
- clo->addUsage( " flags: " );
-+ clo->addUsage( " -c convert only " );
- clo->addUsage( " -h help \n" );
-
- // 4. SET THE OPTION STRINGS/CHARACTERS
-@@ -97,6 +98,7 @@
- clo->setOption( "hyb", 'l' );
- clo->setOption( "log", 'a' );
-
-+ clo->setFlag ( "convert", 'c' );
- clo->setFlag ( "help", 'h' );
-
- // 5. PROVIDE THE COMMANDLINE
-@@ -117,6 +119,11 @@
- std::string fragName = "";
- std::string molName = "";
- std::string logFile = "";
-+ bool bConvertOnly = 0;
-+
-+ if ( clo->getFlag( "convert" ) || clo->getFlag( 'c' ) ) {
-+ bConvertOnly = 1;
-+ }
-
- std::string AMBERHOME = getenv("AMBERHOME");
- std::string parametersFile = AMBERHOME + "/dat/mtkpp/hybridize/labute.txt";
-@@ -166,13 +173,13 @@
- else if ( clo->getValue( "frag" ) != 0 ) {
- fragName = clo->getValue( "frag" );
- }
-- else {
-+/* else {
- printHeader(std::cout, prog_name, authors);
- clo->printUsage();
- std::cout << " Please provide a fragment name " << std::endl;
- return 0;
- }
--
-+*/
- if ( clo->getValue( "l" ) != 0 ) {
- parametersFile = clo->getValue( "l" );
- }
-@@ -186,13 +193,14 @@
- else if ( clo->getValue( "mol" ) != 0 ) {
- molName = clo->getValue( "mol" );
- }
-+/*
- else {
- printHeader(std::cout, prog_name, authors);
- clo->printUsage();
- std::cout << " Please provide a molecule name " << std::endl;
- return 0;
- }
--
-+*/
- if ( clo->getValue( "a" ) != 0 ) {
- logFile = clo->getValue( "a" );
- }
-@@ -307,6 +315,22 @@
- std::cout << " Incorrect use of prep2xml " << std::endl;
- exit(1);
- }
-+
-+ /////////
-+ if (fragName == "") {
-+ prepParser* pPrepParser = new prepParser();
-+ pPrepParser->Read(prepFile, pStdGroup);
-+ delete pPrepParser;
-+
-+ pStdLibParser->Write(libXmlFile, groupName);
-+ delete pStdLibParser;
-+
-+ // - Clean up - //
-+ delete pCollection;
-+ return 0;
-+ }
-+ ///////////
-+
- stdFrag* pStdFrag = pStdGroup->addStdFrag();
- if (!pStdFrag) {
- std::cout << " Incorrect use of prep2xml " << std::endl;
-@@ -322,6 +346,15 @@
- pPrepParser->Read(prepFile, pStdFrag);
- delete pPrepParser;
-
-+ if (bConvertOnly) {
-+ pStdLibParser->Write(libXmlFile, groupName);
-+ delete pStdLibParser;
-+
-+ // - Clean up - //
-+ delete pCollection;
-+ return 0;
-+ }
-+
- int f = pStdFrag->generateCoordinates();
- if (f) {
- std::cout << " Incorrect use of prep2xml " << std::endl;
-@@ -443,7 +476,7 @@
- // atoms
- for (unsigned int i = 0; i < atomList.size(); i++) {
- stdAtoms[i]->kind = atomList[i]->getType();
-- std::cout << atomList[i]->getIndex() << " " << atomList[i]->getName() << " " << atomList[i]->getType() << std::endl;
-+ //std::cout << atomList[i]->getIndex() << " " << atomList[i]->getName() << " " << atomList[i]->getType() << std::endl;
- }
-
- // bonds
-diff -urN amber11.orig/AmberTools/src/mtkpp/tools/stdLib2Sdf.cpp amber11/AmberTools/src/mtkpp/tools/stdLib2Sdf.cpp
---- amber11.orig/AmberTools/src/mtkpp/tools/stdLib2Sdf.cpp 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/mtkpp/tools/stdLib2Sdf.cpp 2012-03-03 20:03:01.418032565 +0200
-@@ -42,6 +42,9 @@
- // - COMMAND LINE OPTIONS
- #include "Parsers/commLineOptions.h"
-
-+// - Log
-+#include "Log/errorHandler.h"
-+
- // temp
- #include "time.h"
-
-@@ -174,7 +177,7 @@
- }
-
- // Set errorLog stream to the log file
-- //MTKpp::errorLogger.setStream(&oLog);
-+ MTKpp::errorLogger.setStream(&oLog);
-
- // Print MTK++ copyright message
- printHeader(oLog, prog_name, authors);
-diff -urN amber11.orig/AmberTools/src/pbsa/pb_list.f amber11/AmberTools/src/pbsa/pb_list.f
---- amber11.orig/AmberTools/src/pbsa/pb_list.f 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/pbsa/pb_list.f 2012-03-03 20:02:55.131034376 +0200
-@@ -949,7 +949,7 @@
- ymin == ZERO .and. ymax == ZERO .and. &
- zmin == ZERO .and. zmax == ZERO ) newbox = .true.
-
-- if ( newbox ) then
-+ if ( .not. ligand ) then
- if ( ifcap == 0 .or. ifcap == 5 ) then
- xmin = 9999.0; ymin = 9999.0; zmin = 9999.0
- xmax = -9999.0; ymax = -9999.0; zmax = -9999.0
-diff -urN amber11.orig/AmberTools/src/rism/safemem.f amber11/AmberTools/src/rism/safemem.f
---- amber11.orig/AmberTools/src/rism/safemem.f 2012-03-03 22:43:02.986777264 +0200
-+++ amber11/AmberTools/src/rism/safemem.f 2012-03-03 20:02:52.131035237 +0200
-@@ -62,7 +62,7 @@
- !BYTES_PER_KILOBYTES :: used to convert between bytes and KB
- integer*8,parameter :: BYTES_PER_KB = 1024**1
-
-- type(memTracker),private :: totalMem
-+ type(memTracker),save,private :: totalMem
-
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_28.patch b/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_28.patch
deleted file mode 100644
index f186f33..0000000
--- a/sci-chemistry/ambertools/files/ambertools-1.5-bugfix_28.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -urN amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py amber11/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py
---- amber11.orig/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py 2012-08-28 13:38:00.864249769 +0300
-+++ amber11/AmberTools/src/mmpbsa_py/MMPBSA_mods/amberoutputs.py 2012-08-28 13:39:15.141238742 +0300
-@@ -2311,7 +2311,7 @@
- def _tot_stdevs(self):
- """ Returns the standard deviations of the total based on whether or not we were able to
- calculate all frames or not. Use a sample stdev if we were, sum-of-squares if we weren't """
-- if len(self.com_data) != len(self.rec_data) or len(self.com_data) != len(self.lig_data):
-+ if len(self.com_data[0]) != len(self.rec_data[0]) or len(self.com_data[0]) != len(self.lig_data[0]):
- return math.sqrt(abs(_stdev(self.com_data[0]) ** 2 + _stdev(self.rec_data[0]) ** 2 + _stdev(self.lig_data[0]) ** 2))
-
- sum = sum2 = 0
-@@ -2319,8 +2319,8 @@
- sum += self.com_data[0][i] - self.rec_data[0][i] - self.lig_data[0][i]
- sum2 += (self.com_data[0][i] - self.rec_data[0][i] - self.lig_data[0][i]) ** 2
-
-- avg = sum / len(self.com_data)
-- return math.sqrt(abs(sum2 / len(self.com_data) - avg * avg))
-+ avg = sum / len(self.com_data[0])
-+ return math.sqrt(abs(sum2 / len(self.com_data[0]) - avg * avg))
-
- #==============================
-
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-gentoo2.patch b/sci-chemistry/ambertools/files/ambertools-1.5-gentoo2.patch
deleted file mode 100644
index 1023b50..0000000
--- a/sci-chemistry/ambertools/files/ambertools-1.5-gentoo2.patch
+++ /dev/null
@@ -1,1068 +0,0 @@
-diff -urN amber11.orig/AmberTools/src/configure amber11/AmberTools/src/configure
---- amber11.orig/AmberTools/src/configure 2011-10-25 15:01:28.222288537 +0300
-+++ amber11/AmberTools/src/configure 2011-10-25 23:57:37.732371794 +0300
-@@ -293,7 +293,7 @@
- echo "Your AMBERHOME environment variable is not set! It should be set to"
- echo "$ambhome NOT doing so may cause errors when you compile. Continue"
- echo "anyway? (yes or no)"
-- read answer
-+ answer='yes'
- if [ "$answer" = 'yes' -o "$answer" = 'Yes' -o "$answer" = 'YES' -o "$answer" = 'y' -o "$answer" = 'Y' ]; then
- echo ""
- echo "Continuing anyway... Setting AMBERHOME to $ambhome temporarily"
-@@ -356,11 +356,11 @@
- mpi_flag=
- lex=flex
- flibs_mkl=
--lapack=install
--blas=install
-+lapack=skip
-+blas=skip
- f2c=skip
--ucpp=install
--cpp="\$(BINDIR)/ucpp -l"
-+ucpp=skip
-+cpp="\$(EPREFIX)/usr/bin/ucpp -l"
-
- #-----------------------------------
- # skip building of sleap?
-@@ -548,13 +548,14 @@
- flibs_arch=-lgfortran
- flibsf_arch=
- cc=gcc
-- cflags=
-+ cflags="GENTOO_CFLAGS"
- # ambercflags="-Wall"
- cplusplus=g++
-- cxxflags=
-+ cxxflags="GENTOO_CXXFLAGS"
- # ambercxxflags="-Wall"
- fc=gfortran
-- fflags=
-+ fflags="GENTOO_FFLAGS"
-+ ldflags="GENTOO_LDFLAGS"
- staticflag='-static'
-
- # If -noopt has been requested, force lack of optimisation;
-@@ -575,11 +576,11 @@
- foptflags=""
- else
- cnooptflags=
-- coptflags="-O3"
-+ coptflags="GENTOO_CFLAGS"
- cxxnooptflags=
-- cxxoptflags="-O3"
-+ cxxoptflags="GENTOO_CXXFLAGS"
- fnooptflags="-O0"
-- foptflags="-O3"
-+ foptflags="GENTOO_FFLAGS"
- fi
-
- # Debugging options
-@@ -1653,28 +1654,6 @@
- /bin/rm -f testp.c testp$objsuffix testp$suffix
-
- #--------------------------------------------------------------------------
-- # Configure fftw-3.2.2:
-- #--------------------------------------------------------------------------
-- if [ "$mdgx" = 'yes' ]; then
-- mdgxflag="--prefix=$AMBERHOME --disable-fortran"
-- echo
-- echo "Configuring fftw-3.2.2 (may be time-consuming)..."
-- echo
-- cd fftw-3.2.2 && \
-- env CC="$cc" CFLAGS="$cflags $cnooptflags" \
-- ./configure $mdgxflag > ../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."
-- exit 1
-- else
-- echo " fftw-3.2.2 configure succeeded."
-- fi
-- cd ..
-- fi
--
-- #--------------------------------------------------------------------------
- # Configure python
- #--------------------------------------------------------------------------
- if [ "$pyinstall" = 'python' ]; then
-@@ -1792,27 +1771,6 @@
- echo
- echo "Configuring fftw-2.1.5 (may be time-consuming)..."
- echo
-- cd fftw-2.1.5
-- if [ "$mpi" = 'yes' ]; then
-- ./configure $rismflag --enable-mpi \
-- CC="$cc" CFLAGS="$cflags $coptflags" \
-- F77="$fc" FFLAGS="$fflags $foptflags" \
-- FLIBS="$flibs_arch" > ../fftw2_config.log 2>&1
-- else
-- ./configure $rismflag \
-- CC="$cc" CFLAGS="$cflags $coptflags" \
-- F77="$fc" FFLAGS="$fflags $foptflags" \
-- FLIBS="$flibs_arch" > ../fftw2_config.log 2>&1
-- fi
-- ncerror=$?
-- if [ $ncerror -gt 0 ]; then
-- echo " Error: fftw configure returned $ncerror"
-- echo " fftw configure failed! Check the fftw2_config.log file."
-- exit 1
-- else
-- echo " fftw-2.1.5 configure succeeded."
-- fi
-- cd ..
- flibs_fftw2="-ldrfftw -ldfftw"
- if [ "$mpi" = 'yes' ]; then
- flibs_fftw2="-ldrfftw_mpi -ldfftw_mpi $flibs_fftw2"
-@@ -2004,7 +1962,7 @@
- AMBERLDFLAGS=\$(AMBERBUILDFLAGS)
-
- LEX= $lex
--YACC= \$(BINDIR)/yacc
-+YACC= byacc
- AR= ar rv
- M4= $m4
- RANLIB=$ranlib
-diff -urN amber11.orig/AmberTools/src/cpptraj/src/Makefile_at amber11/AmberTools/src/cpptraj/src/Makefile_at
---- amber11.orig/AmberTools/src/cpptraj/src/Makefile_at 2011-10-25 15:01:28.076288672 +0300
-+++ amber11/AmberTools/src/cpptraj/src/Makefile_at 2011-10-25 17:57:48.553749686 +0300
-@@ -68,11 +68,8 @@
- -/bin/rm FindDepend.o
- -/bin/rm findDepend
-
--cpptraj$(SFX): $(NETCDFLIB) $(OBJECTS)
-- $(CXX) $(LDFLAGS) -o cpptraj$(SFX) $(OBJECTS) $(NETCDFLIB) $(ZLIB) $(BZLIB)
--
--$(NETCDFLIB): ../../netcdf_config.log
-- cd ../../netcdf/src && $(MAKE) install
-+cpptraj$(SFX): $(OBJECTS)
-+ $(CXX) $(LDFLAGS) -o cpptraj$(SFX) $(OBJECTS) $(NETCDFLIB) $(ZLIB) $(BZLIB) -lgomp
-
- .c.o:
- $(CC) -c $(CPPTRAJ_FLAGS) -o $@ $<
-diff -urN amber11.orig/AmberTools/src/Makefile amber11/AmberTools/src/Makefile
---- amber11.orig/AmberTools/src/Makefile 2011-04-14 15:30:12.000000000 +0300
-+++ amber11/AmberTools/src/Makefile 2011-10-26 00:07:12.902565336 +0300
-@@ -8,15 +8,9 @@
-
- install: $(INSTALLTYPE)
-
--serial: configured_serial $(NETCDFLIB) $(PYINSTALL) $(MTKPP)
-+serial: configured_serial
- @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 etc && $(MAKE) install )
- (cd chamber && $(MAKE) install )
- (cd pbsa && $(MAKE) install )
-@@ -32,7 +26,6 @@
- (cd cpptraj && $(MAKE) $(CPPTRAJ))
-
- # miscellaneous:
-- (cd reduce && $(MAKE) install )
-
- # leap and gleap:
- (cd leap && $(MAKE) install )
-@@ -42,7 +35,6 @@
- (cd rism && $(MAKE) install )
-
- # nab:
-- (cd cifparse && $(MAKE) install )
- (cd sff && $(MAKE) install )
- (cd pbsa && $(MAKE) libinstall )
- (cd nab && $(MAKE) install )
-@@ -63,19 +55,12 @@
- @echo "Installation of ${AMBERTOOLS} serial is complete at `date`."
- @echo ""
-
--nabonly: $(NETCDFLIB)
-+nabonly:
- # 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) install )
-
- # nab:
-- (cd cifparse && $(MAKE) install )
- (cd sff && $(MAKE) install )
- (cd nab && $(MAKE) install )
- (cd nss && $(MAKE) install )
-diff -urN amber11.orig/AmberTools/src/mdgx/Makefile amber11/AmberTools/src/mdgx/Makefile
---- amber11.orig/AmberTools/src/mdgx/Makefile 2011-04-14 15:30:17.000000000 +0300
-+++ amber11/AmberTools/src/mdgx/Makefile 2011-10-25 15:32:04.007129323 +0300
-@@ -109,7 +109,7 @@
-
- FFTW_LIBS = $(LIBDIR)/libfftw3.a
-
--mdgx$(SFX) : $(MDGX_OBJS) $(FFTW_LIBS) $(NETCDFLIB)
-+mdgx$(SFX) : $(MDGX_OBJS)
- $(CC) $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \
- -o $@ $(MDGX_OBJS) $(FFTW_LIBS) $(NETCDFLIB) $(LM)
-
-diff -urN amber11.orig/AmberTools/src/pbsa/Makefile amber11/AmberTools/src/pbsa/Makefile
---- amber11.orig/AmberTools/src/pbsa/Makefile 2011-10-25 15:01:28.228288532 +0300
-+++ amber11/AmberTools/src/pbsa/Makefile 2011-10-25 22:15:38.721245308 +0300
-@@ -148,7 +148,7 @@
- )
-
- #---------------------------------------------------------------------------
--pbsa$(SFX): $(OBJ) syslib netlib c9x-complex configured_serial
-+pbsa$(SFX): $(OBJ) syslib configured_serial
- $(FC) $(FFLAGS) $(AMBERFFLAGS) -o pbsa$(SFX) $(OBJ) \
- ../lib/nxtsec.o ../lib/random.o \
- $(FLIBSF) $(LDFLAGS) $(AMBERLDFLAGS)
-@@ -158,7 +158,7 @@
- ../lib/nxtsec.o ../lib/random.o \
- $(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) $(FFLAGS) $(AMBERFFLAGS) -o simplepbsa$(SFX) simplepbsa.o gopt.o \
- libpbsa.a $(LIBDIR)/libsff.a ../lib/nxtsec.o $(FLIBSF) \
- $(LDFLAGS) $(AMBERLDFLAGS)
-@@ -194,16 +194,6 @@
- sfflib:
- cd ../sff && $(MAKE) install
-
--netlib:
-- cd ../lapack && $(MAKE) $(LAPACK)
-- cd ../blas && $(MAKE) $(BLAS)
-- cd ../arpack && $(MAKE) install
--
--c9x-complex:
-- @if test $(C9XCOMPLEX) != "skip"; then \
-- cd ../c9x-complex && $(MAKE) libmc.a; \
-- fi
--
- pb_init.o: pb_init.f
- $(FPP) $(FPPFLAGS) $(AMBERFPPFLAGS) $< > _$<
- $(FC) -c -O0 $(FFLAGS) $(AMBERFFLAGS) -o $@ _$<
-diff -urN amber11.orig/AmberTools/src/ptraj/Makefile amber11/AmberTools/src/ptraj/Makefile
---- amber11.orig/AmberTools/src/ptraj/Makefile 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/ptraj/Makefile 2011-10-25 22:16:34.407661018 +0300
-@@ -57,25 +57,20 @@
- pubfft.o: pubfft.f
- $(FC) -c $(FREEFORMAT_FLAG) $(FOPTFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ $<
-
--rdparm$(SFX): libs $(NETCDFLIB) $(OBJECTS)
-+rdparm$(SFX): libs $(OBJECTS)
- $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \
- -o rdparm$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM)
-
--ptraj$(SFX): libs netlib $(NETCDFLIB) $(OBJECTS)
-+ptraj$(SFX): libs $(OBJECTS)
- $(CC) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) $(AMBERLDFLAGS) \
- -o ptraj$(SFX) $(OBJECTS) $(LIBS) $(NETCDFLIB) $(LM)
-
--ptraj.MPI$(SFX): libs netlib $(PNETCDFLIB) $(OBJECTS)
-+ptraj.MPI$(SFX): libs $(PNETCDFLIB) $(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)
-- cd ../blas && $(MAKE) $(BLAS)
-
- clean:
- cd pdb && $(MAKE) clean
-diff -urN amber11.orig/AmberTools/src/ptraj/netcdf_ptraj.h amber11/AmberTools/src/ptraj/netcdf_ptraj.h
---- amber11.orig/AmberTools/src/ptraj/netcdf_ptraj.h 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/ptraj/netcdf_ptraj.h 2011-10-25 15:32:04.009129320 +0300
-@@ -4,7 +4,7 @@
- # include "../../include/pnetcdf.h"
- # define nc_strerror ncmpi_strerror
- # else
--# include "../../include/netcdf.h"
-+# include <netcdf.h>
- # endif
- #endif
-
-diff -urN amber11.orig/AmberTools/src/ptraj/ptraj.h amber11/AmberTools/src/ptraj/ptraj.h
---- amber11.orig/AmberTools/src/ptraj/ptraj.h 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/ptraj/ptraj.h 2011-10-25 15:32:04.009129320 +0300
-@@ -94,7 +94,7 @@
- #define nc_strerror ncmpi_strerror
- #include "../../include/pnetcdf.h"
- #else
--#include "../../include/netcdf.h"
-+#include <netcdf.h>
- #endif
- #endif
-
-diff -urN amber11.orig/AmberTools/src/ptraj/trajectory.c amber11/AmberTools/src/ptraj/trajectory.c
---- amber11.orig/AmberTools/src/ptraj/trajectory.c 2011-03-10 20:12:15.000000000 +0200
-+++ amber11/AmberTools/src/ptraj/trajectory.c 2011-10-26 22:25:04.192375511 +0300
-@@ -1314,7 +1314,7 @@
- {
- fpos_t fileMarker; /* marker for current file postition */
- char *junk;
-- char buffer[120];
-+ char buffer[BUFFER_SIZE];
- char coords[26]; /* room for 24 characters (3f8.3) + \n + (char) 0 */
- char c;
- int j,ret;
-diff -urN amber11.orig/AmberTools/src/rism/Makefile amber11/AmberTools/src/rism/Makefile
---- amber11.orig/AmberTools/src/rism/Makefile 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/rism/Makefile 2011-10-25 15:32:04.010129318 +0300
-@@ -49,7 +49,7 @@
- mdiis_orig_c.o mdiis_blas_c.o mdiis_blas2_c.o mdiis_c.o \
- fce_c.o erfcfun.o safemem.o blend.o timer_c.o
-
--librism: $(LIBOBJ) $(FLIBS_FFTW2)
-+librism: $(LIBOBJ)
- $(AR) $(LIBDIR)/$@.a $(LIBOBJ)
- $(RANLIB) $(LIBDIR)/$@.a
-
-diff -urN amber11.orig/AmberTools/src/sff/AmberNetcdf.c amber11/AmberTools/src/sff/AmberNetcdf.c
---- amber11.orig/AmberTools/src/sff/AmberNetcdf.c 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/sff/AmberNetcdf.c 2011-10-25 15:32:04.010129318 +0300
-@@ -27,7 +27,7 @@
- #endif
-
- #ifdef BINTRAJ
--#include "../../include/netcdf.h"
-+#include <netcdf.h>
-
- #define NCFRAME "frame"
- #define NCSPATIAL "spatial"
-diff -urN amber11.orig/AmberTools/src/sff/dsarpack.f amber11/AmberTools/src/sff/dsarpack.f
---- amber11.orig/AmberTools/src/sff/dsarpack.f 1970-01-01 03:00:00.000000000 +0300
-+++ amber11/AmberTools/src/sff/dsarpack.f 2011-10-25 19:52:58.579517634 +0300
-@@ -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 -urN amber11.orig/AmberTools/src/sff/Makefile amber11/AmberTools/src/sff/Makefile
---- amber11.orig/AmberTools/src/sff/Makefile 2011-04-14 15:30:19.000000000 +0300
-+++ amber11/AmberTools/src/sff/Makefile 2011-10-25 22:11:23.964319736 +0300
-@@ -1,11 +1,12 @@
- include ../config.h
-
- .c.o:
-- $(CC) -c -Dflex $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(RISMSFF) -o $@ $<
-+ $(CC) -c -Dflex $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(RISMSFF) $(NETCDFLIB) -o $@ $<
-
- OBJS = binpos.o conjgrad.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 \
-- amber_rism_interface.o
-+ amber_rism_interface.o \
-+ dsarpack.o \
-
- install: libsff hcp_getpdb
-
-diff -urN amber11.orig/AmberTools/src/sqm/Makefile amber11/AmberTools/src/sqm/Makefile
---- amber11.orig/AmberTools/src/sqm/Makefile 2011-04-14 15:30:20.000000000 +0300
-+++ amber11/AmberTools/src/sqm/Makefile 2011-10-25 22:17:29.627071134 +0300
-@@ -77,7 +77,7 @@
- install: sqm$(SFX)
- mv sqm$(SFX) $(BINDIR)
-
--sqm$(SFX): $(SQMOBJ) $(QMOBJ) netlib sys
-+sqm$(SFX): $(SQMOBJ) $(QMOBJ) sys
- $(FC) $(FFLAGS) $(AMBERFFLAGS) -o sqm$(SFX) $(SQMOBJ) $(QMOBJ) \
- $(FLIBSF) ../lib/sys.a $(LDFLAGS) $(AMBERLDFLAGS)
-
-@@ -94,11 +94,6 @@
- sys:
- cd ../lib; $(MAKE) sys.a
-
--netlib:
-- cd ../lapack; $(MAKE) $(LAPACK)
-- cd ../blas; $(MAKE) $(BLAS)
-- cd ../arpack && $(MAKE) install
--
- clean:
- /bin/rm -f *.o _*.f *.mod *.d sqm$(SFX)
-
-diff -urN amber11.orig/AmberTools/test/Makefile amber11/AmberTools/test/Makefile
---- amber11.orig/AmberTools/test/Makefile 2011-04-14 15:30:55.000000000 +0300
-+++ amber11/AmberTools/test/Makefile 2011-10-25 22:36:59.285906153 +0300
-@@ -12,7 +12,7 @@
-
- test.serial: clean is_amberhome_defined \
- test.nab test.ptraj test.cpptraj test.antechamber \
-- test.leap test.sleap test.resp test.pbsa test.mmpbsa \
-+ test.leap test.resp test.pbsa test.mmpbsa \
- test.ambpdb test.elsize test.chamber test.sqm test.rism1d \
- finished
-
-diff -urN amber11.orig/AmberTools/test/test_at_serial.sh amber11/AmberTools/test/test_at_serial.sh
---- amber11.orig/AmberTools/test/test_at_serial.sh 2011-03-10 20:12:24.000000000 +0200
-+++ amber11/AmberTools/test/test_at_serial.sh 2011-10-25 21:52:52.178189963 +0300
-@@ -50,3 +50,9 @@
- else
- echo "No test diffs to save!"
- fi
-+
-+if [ "${questionable_count}" -ne 0 -o "${error_count}" -ne 0 ]
-+then
-+ # Tests failed
-+ exit 1
-+fi
diff --git a/sci-chemistry/ambertools/files/ambertools-1.5-overflow.patch b/sci-chemistry/ambertools/files/ambertools-1.5-overflow.patch
deleted file mode 100644
index 14455f1..0000000
--- a/sci-chemistry/ambertools/files/ambertools-1.5-overflow.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -urN amber11.orig/AmberTools/src/nab/database.c amber11/AmberTools/src/nab/database.c
---- amber11.orig/AmberTools/src/nab/database.c 2011-03-10 20:12:15.000000000 +0200
-+++ amber11/AmberTools/src/nab/database.c 2012-03-03 23:59:25.225368331 +0200
-@@ -671,7 +671,7 @@
-
- static Bool zbDBReadLine( db, sLine )
- DATABASE db;
--char* sLine;
-+char sLine[MAXDATALINELEN];
- {
-
-
-@@ -706,7 +706,7 @@
-
- static Bool zbDBReadDataLine( db, sLine )
- DATABASE db;
--char* sLine;
-+char sLine[MAXDATALINELEN];
- {
-
-
-@@ -1135,7 +1135,7 @@
- char* PBuffer;
- int iBufferInc;
- {
--String sLine;
-+String sLine[MAXDATALINELEN];
-
-
-
diff --git a/sci-chemistry/ambertools/files/ambertools-12-bugfix_14-26.patch b/sci-chemistry/ambertools/files/ambertools-12-bugfix_14-26.patch
deleted file mode 100644
index da9712c..0000000
--- a/sci-chemistry/ambertools/files/ambertools-12-bugfix_14-26.patch
+++ /dev/null
@@ -1,14856 +0,0 @@
-diff --git a/AmberTools/src/configure2 b/AmberTools/src/configure2
-index 25d3f0a..9ce5ef0 100755
---- a/AmberTools/src/configure2
-+++ b/AmberTools/src/configure2
-@@ -24,17 +24,19 @@ Usage: ./configure [flags] compiler
- in your PATH; Note: you must first configure and build
- a serial AmberTools.
- -cuda Builds the NVIDIA GPU version of pmemd (pmemd.cuda and
-- pmemd.cuda.MPI) with default SPDP hybrid precision.
-+ pmemd.cuda.MPI) with default SPFP mixed single/double/
-+ fixed-point precision.
- (Note: Set CUDA_HOME to your cuda build tools installation
- path.)
-- -cuda_SPDP Currently just an alias to CUDA
-- -cuda_DPDP Builds the NVIDIA GPU version of pmemd (pmemd.cuda and
-- pmemd.cuda.MPI) with full double precision. (Considerably
-- slower than SPDP for many cards without a meaningful gain
-- in accuracy)
-- -cuda_SPSP Builds the NVIDIA GPU version of pmemd (pmemd.cuda and
-- pmemd.cuda.MPI) with full single precision. (Not a good
-- choice for production runs!)
-+ -cuda_SPDP Builds the NVIDIA GPU version of pmemd (pmemd_SPDP.cuda and
-+ pmemd.cuda_SPDP.MPI) with SPDP hybrid precision. (This was
-+ the default for previous versions of AMBER but has now been
-+ superseded by the SPFP mixed precision model).
-+ -cuda_DPDP Builds the NVIDIA GPU version of pmemd (pmemd.cuda_DPDP and
-+ pmemd.cuda_DPDP.MPI) with full double precision. (Considerably
-+ slower than SPDP and SPFP for many cards without a meaningful
-+ gain in accuracy)
-+ -cuda_SPFP Currently an alias to -cuda.
- -openmp Use OpenMP pragmas to parallelize NAB and paramfit
- (not available for pgi).
- Do not use -openmp and -mpi at the same time. Type "make
-@@ -149,8 +151,8 @@ fi
- #------------------------------------------------------------------------------
- mpi='no'
- mpinab=''
--cuda='no'
--cuda_SPSP='no'
-+cuda_SPFP='no'
-+cuda_SPDP='no'
- cuda_DPDP='no'
- scali='no'
- scalapack='no'
-@@ -222,9 +224,9 @@ if [ $# -lt 1 ]; then usage; fi
- while [ $# -gt 0 ]; do
- case "$1" in
- -mpi) mpi='yes'; mpinab='mpi'; mdgx='no';mtkpp='' ;;
-- -cuda) cuda='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
-- -cuda_SPDP) cuda='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
-- -cuda_SPSP) cuda_SPSP='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
-+ -cuda) cuda_SPFP='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
-+ -cuda_SPFP) cuda_SPFP='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
-+ -cuda_SPDP) cuda_SPDP='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
- -cuda_DPDP) cuda_DPDP='yes';rism='no';pbsaflag='';mdgx='no';mtkpp='' ;;
- -scali) scali='yes' ;;
- -scalapack) scalapack='yes' ;;
-@@ -443,22 +445,22 @@ if [ "$noX11" = "false" ]; then
- echo " On old Fedora OS's install the xorg-x11-devel package."
- echo " On RedHat OS's install the XFree86-devel package."
- echo " On Ubuntu OS's install the xorg-dev package."
-- echo " To build Amber without XLEaP, re-run configure with '-no-X11:"
-- echo " `mod_command_args '' '-no-X11'`"
-- exit 1
-+ echo " To build Amber without XLEaP, re-run configure with '-noX11:"
-+ echo " `mod_command_args '' '-noX11'`"
-+ exit 1
- fi
-
- if [ -d /usr/include/X11/extensions ]
- then
- empty_statement=
-- else
-+ elif [ "$is_mac" = "no" ]; then
- echo "ERROR: the X11 extensions headers are not in the usual location!"
- echo " To search for them try the command: locate X11/extensions"
- echo " On new Fedora OSes install libXext-devel"
- echo " On RedHat OSes install libXext-devel"
-- echo " To build Amber without XLEaP, re-run configure with '-no-X11:"
-- echo " `mod_command_args '' '-no-X11'`"
-- exit 1
-+ echo " To build Amber without XLEaP, re-run configure with '-noX11:"
-+ echo " `mod_command_args '' '-noX11'`"
-+ exit 1
- fi
- fi
-
-@@ -544,7 +546,7 @@ fi
- #------------------------------------------------------------------------------
- # Determine which type of installation we're doing
- #------------------------------------------------------------------------------
--if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-+if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
- if [ "$mpi" = 'yes' ]; then
- installtype='cuda_parallel'
- else
-@@ -559,7 +561,7 @@ fi
- #------------------------------------------------------------------------------
- # Check for cuda incompatibilities or missing files:
- #------------------------------------------------------------------------------
--if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-+if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
- if [ -z "$CUDA_HOME" ]; then
- echo "Error: CUDA_HOME is not set. This must point to your NVIDIA tools installation"
- exit 1
-@@ -572,25 +574,26 @@ if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
- echo "Error: nvcc cuda compiler not found in $CUDA_HOME/bin/"
- exit 1
- fi
-- #Check for mixing of cuda with cuda_SPSP or cuda_DPDP debugging options.
-- #cuda = SPDP mixed precision (default)
-- #cuda_SPSP = SPSP single precision only - except shake (debug option!)
-+ #Check for mixing of cuda with cuda_SPDP or cuda_DPDP debugging options.
-+ #cuda = SPFP mixed single/double/fixed-point precision (default)
-+ #cuda_SPFP = SPFP mixed single/double/fixed-point precision (default)
-+ #cuda_SPDP = SPDP hybrid single/double precision (debug option!)
- #cuda_DPDP = DPDP double precision only (debug option!)
-- if [ "$cuda" = 'yes' ]; then
-- if [ "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-- echo "Error: specification of -cuda, -cuda_SPSP and -cuda_DPDP are mutually exclusive"
-+ if [ "$cuda_SPFP" = 'yes' ]; then
-+ if [ "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-+ echo "Error: specification of -cuda, -cuda_SPDP and -cuda_DPDP are mutually exclusive"
- exit 1
- fi
- fi
-- if [ "$cuda_SPSP" = 'yes' ]; then
-- if [ "$cuda" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-- echo "Error: specification of -cuda, -cuda_SPSP and -cuda_DPDP are mutually exclusive"
-+ if [ "$cuda_SPDP" = 'yes' ]; then
-+ if [ "$cuda_SPFP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-+ echo "Error: specification of -cuda, -cuda_SPDP and -cuda_DPDP are mutually exclusive"
- exit 1
- fi
- fi
- if [ "$cuda_DPDP" = 'yes' ]; then
-- if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' ]; then
-- echo "Error: specification of -cuda, -cuda_SPSP and -cuda_DPDP are mutually exclusive"
-+ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' ]; then
-+ echo "Error: specification of -cuda, -cuda_SPDP and -cuda_DPDP are mutually exclusive"
- exit 1
- fi
- fi
-@@ -736,14 +739,15 @@ gnu)
- pmemd_coptflags="$coptflags"
-
- #CUDA Specifics
-- if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-+ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
- pmemd_cu_includes='-I$(CUDA_HOME)/include -IB40C -IB40C/KernelCommon'
- pmemd_cu_defines='-DCUDA'
- pmemd_cu_libs='./cuda/cuda.a -L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcurand -lcufft -lcudart'
- if [ "$optimise" = 'no' ]; then
-- nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O0 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20'
-+ nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O0 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30'
- else
-- nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O3 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20'
-+ #2012/05/30 - Removed -O3 here because of 'possible' performance regression. - Scott sees this. Ross can't reproduce it.
-+ nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30'
- fi
- if [ "$mpi" = 'yes' ]; then
- mpi_inc=`(mpicc -show 2>&1) | awk 'BEGIN{i=0} {while (i < NF) {if ( substr($i, 1, 2) == "-I" ) {printf("%s ", $i);}; i++;}}'`
-@@ -752,8 +756,11 @@ gnu)
- pmemd_coptflags="$coptflags -DMPICH_IGNORE_CXX_SEEK"
- fi
- fi
-- if [ "$cuda_SPSP" = 'yes' ]; then
-- pmemd_cu_defines="$pmemd_cu_defines -Duse_SPSP"
-+ if [ "$cuda_SPFP" = 'yes' ]; then
-+ pmemd_cu_defines="$pmemd_cu_defines -Duse_SPFP"
-+ fi
-+ if [ "$cuda_SPDP" = 'yes' ]; then
-+ pmemd_cu_defines="$pmemd_cu_defines -Duse_SPDP"
- fi
- if [ "$cuda_DPDP" = 'yes' ]; then
- pmemd_cu_defines="$pmemd_cu_defines -Duse_DPDP"
-@@ -1001,7 +1008,7 @@ intel)
- fi
-
- #CUDA Specifics
-- if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-+ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-
- # -ipo (multi-file Interprocedural Optimizations optimizations) causes issues with
- # CUDA c code linking. Leave at a single-file IPO for the moment MJW
-@@ -1012,9 +1019,10 @@ intel)
- pmemd_cu_defines='-DCUDA'
- pmemd_cu_libs='./cuda/cuda.a -L$(CUDA_HOME)/lib64 -L$(CUDA_HOME)/lib -lcurand -lcufft -lcudart'
- if [ "$optimise" = 'yes' ]; then
-- nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O3 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20'
-+ #2012/05/30 - Removed -O3 here because of 'possible' performance regression. - Scott sees this. Ross can't reproduce it.
-+ nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30'
- else
-- nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O0 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20'
-+ nvcc='$(CUDA_HOME)/bin/nvcc -use_fast_math -O0 -gencode arch=compute_13,code=sm_13 -gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30'
- fi
-
- if [ "$mpi" = 'yes' ]; then
-@@ -1024,8 +1032,11 @@ intel)
- pmemd_coptflags="$pmemd_coptflags -DMPICH_IGNORE_CXX_SEEK"
- fi
- fi
-- if [ "$cuda_SPSP" = 'yes' ]; then
-- pmemd_cu_defines="$pmemd_cu_defines -Duse_SPSP"
-+ if [ "$cuda_SPFP" = 'yes' ]; then
-+ pmemd_cu_defines="$pmemd_cu_defines -Duse_SPFP"
-+ fi
-+ if [ "$cuda_SPDP" = 'yes' ]; then
-+ pmemd_cu_defines="$pmemd_cu_defines -Duse_SPDP"
- fi
- if [ "$cuda_DPDP" = 'yes' ]; then
- pmemd_cu_defines="$pmemd_cu_defines -Duse_DPDP"
-@@ -1131,7 +1142,7 @@ pgi)
- foptflags="$foptflags -fastsse"
- fi
-
-- if [ "$cuda" = "yes" -o "$cuda_SPSP" = "yes" -o "$cuda_DPDP" = "yes" ]; then
-+ if [ "$cuda_SPFP" = "yes" -o "$cuda_SPDP" = "yes" -o "$cuda_DPDP" = "yes" ]; then
- echo "ERROR: cuda is not available for pgi."
- echo " Please re-run configure without CUDA flags to use this compiler:"
- echo " `mod_command_args '-cuda -cuda_SPDP -cuda_DPDP' ''`"
-@@ -1258,7 +1269,7 @@ solaris)
- flibs_arch="$flibs_arch $SCALAPACKHOME/scalapack_SUN64.a $BLACSHOME/blacsF77init_MPI-SUN64-0.a $BLACSHOME/blacs_MPI-SUN64-0.a $BLACSHOME/blacsCinit_MPI-SUN64-0.a -lmpi"
- fi
-
-- if [ "$cuda" = 'yes' -o "$cuda_SPSP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-+ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
- echo "ERROR: cuda is not available for solaris."
- echo " Please re-run configure without CUDA flags to use this compiler:"
- echo " `mod_command_args '-cuda -cuda_SPDP -cuda_DPDP' ''`"
-@@ -1306,6 +1317,13 @@ open64)
- echo "open64 setting is experimental."
- fi
-
-+ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPDP" = 'yes' -o "$cuda_DPDP" = 'yes' ]; then
-+ echo "ERROR: CUDA is not compatible with this compiler"
-+ echo " Please re-run configure without CUDA flags to use this compiler:"
-+ echo " `mod_command_args '-cuda -cuda_SPDP -cuda_DPDP' ''`"
-+ exit 1
-+ fi
-+
- if [ "$mpi" = 'yes' ]; then
- ld=' mpif90 '
- else
-diff --git a/AmberTools/src/cpptraj/src/ActionList.cpp b/AmberTools/src/cpptraj/src/ActionList.cpp
-index db3a157..f999e7f 100644
---- a/AmberTools/src/cpptraj/src/ActionList.cpp
-+++ b/AmberTools/src/cpptraj/src/ActionList.cpp
-@@ -33,6 +33,7 @@
- #include "Action_Rotdif.h"
- #include "Action_RunningAvg.h"
- #include "Action_RmsAvgCorr.h"
-+#include "Action_AutoImage.h"
-
- // CONSTRUCTOR
- ActionList::ActionList() {
-@@ -77,7 +78,7 @@ int ActionList::AddAction(ArgList &argIn) {
- else if (argIn.CommandIs("secstruct")) {Act=new DSSP; }
- else if (argIn.CommandIs("center")) {Act=new Center; }
- else if (argIn.CommandIs("hbond")) {Act=new Hbond; }
-- else if (argIn.CommandIs("image")) {Act=new Image; }
-+ else if (argIn.CommandIs("image")) {Act=new Action_Image; }
- else if (argIn.CommandIs("surf")) {Act=new Surf; }
- else if (argIn.CommandIs("radgyr")) {Act=new Radgyr; }
- else if (argIn.CommandIs("mask")) {Act=new ActionMask;}
-@@ -101,6 +102,7 @@ int ActionList::AddAction(ArgList &argIn) {
- else if (argIn.CommandIs("runningaverage")) {Act=new RunningAvg;}
- else if (argIn.CommandIs("runavg")) {Act=new RunningAvg;}
- else if (argIn.CommandIs("rmsavgcorr")) {Act=new RmsAvgCorr;}
-+ else if (argIn.CommandIs("autoimage")) {Act=new Action_AutoImage;}
- // PTRAJ
- else if (argIn.CommandIs("atomicfluct") ||
- argIn.CommandIs("atomicfluct3D") ||
-diff --git a/AmberTools/src/cpptraj/src/Action_AutoImage.cpp b/AmberTools/src/cpptraj/src/Action_AutoImage.cpp
-index e69de29..ca61dc6 100644
---- a/AmberTools/src/cpptraj/src/Action_AutoImage.cpp
-+++ b/AmberTools/src/cpptraj/src/Action_AutoImage.cpp
-@@ -0,0 +1,273 @@
-+#include "Action_AutoImage.h"
-+#include "CpptrajStdio.h"
-+#include "DistRoutines.h"
-+
-+// CONSTRUCTOR
-+Action_AutoImage::Action_AutoImage() :
-+ origin_(false),
-+ ortho_(false),
-+ center_(false),
-+ truncoct_(false),
-+ triclinic_(OFF)
-+{}
-+
-+// Action_AutoImage::init()
-+/** Usage: autoimage <mask> | anchor <mask> [fixed <fmask>] [mobile <mmask>]
-+ * [origin] [familiar | triclinic]
-+ */
-+int Action_AutoImage::init() {
-+ // Get keywords
-+ origin_ = actionArgs.hasKey("origin");
-+ center_ = actionArgs.hasKey("center");
-+ if (actionArgs.hasKey("familiar")) triclinic_ = FAMILIAR;
-+ if (actionArgs.hasKey("triclinic")) triclinic_ = FORCE;
-+ anchor_ = actionArgs.getKeyString("anchor",NULL);
-+ fixed_ = actionArgs.getKeyString("fixed",NULL);
-+ mobile_ = actionArgs.getKeyString("mobile",NULL);
-+ // Get mask expression for anchor if none yet specified
-+ if (anchor_==NULL)
-+ anchor_ = actionArgs.getNextMask();
-+
-+ mprintf(" AUTOIMAGE: To");
-+ if (origin_)
-+ mprintf(" origin");
-+ else
-+ mprintf(" box center");
-+ mprintf(" based on");
-+ if (center_)
-+ mprintf(" center of mass");
-+ else
-+ mprintf(" first atom position");
-+ if (anchor_!=NULL)
-+ mprintf(", anchor mask is [%s]\n", anchor_);
-+ else
-+ mprintf(", anchor is first molecule.\n");
-+ if (fixed_!=NULL)
-+ mprintf("\tAtoms in mask [%s] will be fixed to anchor region.\n", fixed_);
-+ if (mobile_!=NULL)
-+ mprintf("\tAtoms in mask [%s] will be imaged independently of anchor region.\n",
-+ mobile_);
-+
-+ return 0;
-+}
-+
-+// Action_AutoImage::SetupAtomRanges()
-+/** Based on the given atom mask expression determine what molecules are
-+ * selected by the mask.
-+ * \return A list of atom pairs that mark the beginning and end of each
-+ * selected molecule.
-+ */
-+Action_AutoImage::pairList Action_AutoImage::SetupAtomRanges( const char* maskexpr )
-+{
-+ pairList imageList;
-+ AtomMask Mask1;
-+ if (Mask1.SetMaskString( (char*)maskexpr )) return imageList;
-+
-+ if (currentParm->SetupCharMask( Mask1, activeReference )) return imageList;
-+ if (Mask1.None()) return imageList;
-+
-+ int* AtomsPerMol = currentParm->AtomsPerMol_ptr();
-+ int firstAtom = 0;
-+ int lastAtom = 0;
-+ for (int molnum = 0; molnum < currentParm->Nmol(); ++molnum)
-+ {
-+ firstAtom = lastAtom;
-+ lastAtom += AtomsPerMol[ molnum ];
-+ // Check that each atom in the range is in Mask1
-+ bool rangeIsValid = true;
-+ for (int atom = firstAtom; atom < lastAtom; ++atom) {
-+ if (!Mask1.AtomInCharMask(atom)) {
-+ rangeIsValid = false;
-+ break;
-+ }
-+ }
-+ if (rangeIsValid) {
-+ imageList.push_back( firstAtom );
-+ imageList.push_back( lastAtom );
-+ }
-+ }
-+ mprintf("\tMask [%s] corresponds to %zu molecules\n", Mask1.MaskString(), imageList.size()/2);
-+ return imageList;
-+}
-+
-+// Action_AutoImage::setup()
-+int Action_AutoImage::setup() {
-+ bool fixedauto = false;
-+ bool mobileauto = false;
-+
-+ // Require molecule info
-+ int* AtomsPerMol = currentParm->AtomsPerMol_ptr();
-+ if (AtomsPerMol == NULL) {
-+ mprinterr("Error: AutoImage: No molecule information in %s\n", currentParm->parmName);
-+ return 1;
-+ }
-+ // Determine Box info
-+ if (currentParm->boxType==NOBOX) {
-+ mprintf("Warning: Image::setup: Parm %s does not contain box information.\n",
-+ currentParm->parmName);
-+ return 1;
-+ }
-+ ortho_ = false;
-+ if (currentParm->boxType==ORTHO && triclinic_==OFF) ortho_=true;
-+ // If box is originally truncated oct and not forcing triclinic,
-+ // turn familiar on.
-+ if (AmberIfbox( currentParm->Box[4] )==2 && triclinic_!=FORCE && triclinic_!=FAMILIAR) {
-+ mprintf("\tOriginal box is truncated octahedron, turning on 'familiar'.\n");
-+ triclinic_=FAMILIAR;
-+ }
-+
-+ // Set up anchor region
-+ if (anchor_!=NULL) {
-+ anchorList_ = SetupAtomRanges( anchor_ );
-+ } else {
-+ anchorList_.clear();
-+ anchorList_.push_back( 0 );
-+ anchorList_.push_back( AtomsPerMol[0] );
-+ }
-+ if (anchorList_.empty() || anchorList_.size() > 2) {
-+ mprinterr("Error: Anchor mask [%s] corresponds to %zu mols, should only be 1.\n",
-+ anchor_, anchorList_.size() / 2);
-+ return 1;
-+ }
-+ // Set up mask for centering anchor
-+ anchorMask_.AddAtomRange( anchorList_[0], anchorList_[1] );
-+ int anchormolnum = currentParm->atomToMolecule( anchorList_[0] );
-+ mprintf("\tAnchor molecule is %i\n", anchormolnum+1);
-+ // Set up fixed region
-+ if (fixed_!=NULL)
-+ fixedList_ = SetupAtomRanges( fixed_ );
-+ else
-+ fixedauto = true;
-+ // Set up mobile region
-+ if (mobile_!=NULL)
-+ mobileList_ = SetupAtomRanges( mobile_ );
-+ else
-+ mobileauto = true;
-+ // Automatic search through molecules for fixed/mobile
-+ if (fixedauto || mobileauto) {
-+ int firstAtom = 0;
-+ int lastAtom = 0;
-+ for (int molnum = 0; molnum < currentParm->Nmol(); ++molnum)
-+ {
-+ firstAtom = lastAtom;
-+ lastAtom += AtomsPerMol[ molnum ];
-+ // Skip the anchor molecule
-+ if (molnum != anchormolnum) {
-+ // Solvent and 1 atom molecules (prob. ions) go in mobile list,
-+ // everything else into fixed list.
-+ bool isSolventMol = false;
-+ if ( currentParm->solventMask != NULL && currentParm->solventMask[firstAtom] == 'T' )
-+ isSolventMol = true;
-+ if ( isSolventMol || (lastAtom - firstAtom) == 1 )
-+ {
-+ if (mobileauto) {
-+ mobileList_.push_back( firstAtom );
-+ mobileList_.push_back( lastAtom );
-+ }
-+ } else {
-+ if (fixedauto) {
-+ fixedList_.push_back( firstAtom );
-+ fixedList_.push_back( lastAtom );
-+ }
-+ }
-+ }
-+ }
-+ }
-+ // DEBUG: Print fixed and mobile lists
-+ if (!fixedList_.empty()) {
-+ mprintf("\tThe following molecules are fixed to anchor:");
-+ for (pairList::iterator atom = fixedList_.begin();
-+ atom != fixedList_.end(); atom += 2)
-+ mprintf(" %i", currentParm->atomToMolecule( *atom ) + 1 );
-+ mprintf("\n");
-+ }
-+ mprintf("\t%zu molecules are mobile.\n", mobileList_.size() / 2 );
-+ //mprintf("\tThe following molecules are mobile:\n");
-+ //for (pairList::iterator atom = mobileList_.begin();
-+ // atom != mobileList_.end(); atom += 2)
-+ // mprintf("\t\t%i\n", (*currentParm)[ *atom ].Mol()+1 );
-+
-+ truncoct_ = (triclinic_==FAMILIAR);
-+
-+ return 0;
-+}
-+
-+// Action_AutoImage::action()
-+int Action_AutoImage::action() {
-+ double center[3], ucell[9], recip[9], imagedcenter[3], framecenter[3];
-+ double fcom[3];
-+ double bp[3], bm[3];
-+ double Trans[3];
-+
-+ // Center w.r.t. anchor
-+ currentFrame->Center( anchorMask_, origin_, useMass);
-+ // Determine whether anchor center is at box center or coordinate origin
-+ if (origin_) {
-+ center[0] = 0;
-+ center[1] = 0;
-+ center[2] = 0;
-+ } else {
-+ center[0] = currentFrame->box[0] / 2;
-+ center[1] = currentFrame->box[1] / 2;
-+ center[2] = currentFrame->box[2] / 2;
-+ }
-+
-+ // Setup imaging, and image everything in currentFrame
-+ // according to mobileList.
-+ if (ortho_) {
-+ currentFrame->SetupImageOrtho(bp, bm, origin_);
-+ currentFrame->ImageOrtho(bp, bm, center_, useMass, mobileList_);
-+ } else {
-+ currentFrame->BoxToRecip(ucell, recip);
-+ if (truncoct_)
-+ currentFrame->SetupImageTruncoct( fcom, NULL, useMass, origin_ );
-+ currentFrame->ImageNonortho(origin_, fcom, ucell, recip, truncoct_,
-+ center_, useMass, mobileList_);
-+ }
-+
-+ // For each molecule defined by atom pairs in fixedList, determine if the
-+ // imaged position is closer to anchor center than the current position.
-+ // Always use molecule center when imaging fixedList.
-+ for (pairList::iterator atom1 = fixedList_.begin();
-+ atom1 != fixedList_.end(); ++atom1)
-+ {
-+ int firstAtom = *atom1;
-+ ++atom1;
-+ int lastAtom = *atom1;
-+ Trans[0] = 0;
-+ Trans[1] = 0;
-+ Trans[2] = 0;
-+ if (useMass)
-+ currentFrame->CenterOfMass(framecenter, firstAtom, lastAtom);
-+ else
-+ currentFrame->GeometricCenter(framecenter, firstAtom, lastAtom);
-+ // NOTE: imaging routines will modify input coords.
-+ imagedcenter[0] = framecenter[0];
-+ imagedcenter[1] = framecenter[1];
-+ imagedcenter[2] = framecenter[2];
-+ if (ortho_)
-+ currentFrame->ImageOrtho(Trans, imagedcenter, bp, bm);
-+ else
-+ currentFrame->ImageNonortho(Trans, imagedcenter, truncoct_, origin_, ucell, recip, fcom);
-+ // If molecule was imaged, determine whether imaged position is closer to anchor.
-+ if (Trans[0] != 0 || Trans[1] != 0 || Trans[2] != 0) {
-+ imagedcenter[0] = framecenter[0] + Trans[0];
-+ imagedcenter[1] = framecenter[1] + Trans[1];
-+ imagedcenter[2] = framecenter[2] + Trans[2];
-+ double framedist2 = DIST2_NoImage( center, framecenter );
-+ double imageddist2 = DIST2_NoImage( center, imagedcenter );
-+ //mprintf("DBG: [%5i] Fixed @%i-%i frame dist2=%lf, imaged dist2=%lf\n", frameNum,
-+ // firstAtom+1, lastAtom+1,
-+ // framedist2, imageddist2);
-+ if (imageddist2 < framedist2) {
-+ // Imaging these atoms moved them closer to anchor. Update coords in currentFrame.
-+ currentFrame->Translate(Trans, firstAtom, lastAtom);
-+ //for (int idx = firstAtom*3; idx < lastAtom*3; ++idx)
-+ // (*currentFrame)[idx] = fixedFrame[idx];
-+ }
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-diff --git a/AmberTools/src/cpptraj/src/Action_AutoImage.h b/AmberTools/src/cpptraj/src/Action_AutoImage.h
-index e69de29..5ee24d6 100644
---- a/AmberTools/src/cpptraj/src/Action_AutoImage.h
-+++ b/AmberTools/src/cpptraj/src/Action_AutoImage.h
-@@ -0,0 +1,32 @@
-+#ifndef INC_ACTION_AUTOIMAGE_H
-+#define INC_ACTION_AUTOIMAGE_H
-+#include "Action.h"
-+class Action_AutoImage : public Action {
-+ public:
-+ Action_AutoImage();
-+
-+ private:
-+ int init();
-+ int setup();
-+ int action();
-+
-+ AtomMask anchorMask_; ///< Used to center anchor region.
-+ char* anchor_; ///< Mask expression for anchor region.
-+ char* fixed_; ///< Mask expression for fixed region.
-+ char* mobile_; ///< Mask expression for mobile region.
-+
-+ bool origin_; ///< If true imaging occurs w.r.t. coordinate origin.
-+ bool ortho_; ///< If true imaging is orthogonal.
-+ bool center_; ///< If true imaging of mobile region uses molecule center.
-+ bool truncoct_;
-+ enum TriclinicArg {OFF, FORCE, FAMILIAR};
-+ TriclinicArg triclinic_; ///< Determine whether triclinic code should be used.
-+
-+ typedef std::vector<int> pairList;
-+ pairList anchorList_;
-+ pairList fixedList_;
-+ pairList mobileList_;
-+
-+ pairList SetupAtomRanges(const char*);
-+};
-+#endif
-diff --git a/AmberTools/src/cpptraj/src/Action_Center.cpp b/AmberTools/src/cpptraj/src/Action_Center.cpp
-index a496a7f..cb841b8 100644
---- a/AmberTools/src/cpptraj/src/Action_Center.cpp
-+++ b/AmberTools/src/cpptraj/src/Action_Center.cpp
-@@ -68,14 +68,7 @@ int Center::setup() {
- */
- int Center::action() {
-
-- // Set up box
-- if (!origin) {
-- box[0] = currentFrame->box[0] / 2.0;
-- box[1] = currentFrame->box[1] / 2.0;
-- box[2] = currentFrame->box[2] / 2.0;
-- }
--
-- currentFrame->Center(&Mask1, box, useMass);
-+ currentFrame->Center(Mask1, origin, useMass);
-
- return 0;
- }
-diff --git a/AmberTools/src/cpptraj/src/Action_Image.cpp b/AmberTools/src/cpptraj/src/Action_Image.cpp
-index 023b26a..5e1dec8 100644
---- a/AmberTools/src/cpptraj/src/Action_Image.cpp
-+++ b/AmberTools/src/cpptraj/src/Action_Image.cpp
-@@ -1,26 +1,26 @@
--// Image
--#include <cmath> //for floor
-+// Action_Image
- #include "Action_Image.h"
--#include "DistRoutines.h"
- #include "CpptrajStdio.h"
-
- // CONSTRUCTOR
--Image::Image() {
-+Action_Image::Action_Image() :
-+ ComMask_(NULL),
-+ origin_(false),
-+ center_(false),
-+ ortho_(false),
-+ truncoct_(false),
-+ triclinic_(OFF)
-+{
- //fprintf(stderr,"Image Con\n");
-- ComMask=NULL;
-- origin = false;
-- center = false;
-- ortho = false;
- useMass = true;
-- triclinic = OFF;
- }
-
- // DESTRUCTOR
--Image::~Image() {
-- if (ComMask!=NULL) delete ComMask;
-+Action_Image::~Action_Image() {
-+ if (ComMask_!=NULL) delete ComMask_;
- }
-
--// Image::init()
-+// Action_Image::init()
- /** Expected call: image [origin] [center] [triclinic | familiar [com <mask>]] <mask>
- * - origin: center at 0.0, 0.0, 0.0, otherwise center at box center.
- * - center: Use center of mass for imaging, otherwise use first atom.
-@@ -33,86 +33,86 @@ Image::~Image() {
- // Check order is:
- // 1) Keywords
- // 2) Masks
--int Image::init() {
-+int Action_Image::init() {
- char *mask1;
-
- // Get keywords
-- origin = actionArgs.hasKey("origin");
-- center = actionArgs.hasKey("center");
-- if (actionArgs.hasKey("familiar")) triclinic = FAMILIAR;
-- if (actionArgs.hasKey("triclinic")) triclinic = FORCE;
-+ origin_ = actionArgs.hasKey("origin");
-+ center_ = actionArgs.hasKey("center");
-+ if (actionArgs.hasKey("familiar")) triclinic_ = FAMILIAR;
-+ if (actionArgs.hasKey("triclinic")) triclinic_ = FORCE;
-
- // Get Masks
-- if (triclinic == FAMILIAR) {
-+ if (triclinic_ == FAMILIAR) {
- mask1 = actionArgs.getKeyString("com",NULL);
- if (mask1!=NULL) {
-- ComMask = new AtomMask();
-- ComMask->SetMaskString(mask1);
-+ ComMask_ = new AtomMask();
-+ ComMask_->SetMaskString(mask1);
- }
- }
- mask1 = actionArgs.getNextMask();
-- Mask1.SetMaskString(mask1);
-+ Mask1_.SetMaskString(mask1);
-
- mprintf(" IMAGE: To");
-- if (origin)
-+ if (origin_)
- mprintf(" origin");
- else
- mprintf(" box center");
- mprintf(" based on");
-- if (center)
-+ if (center_)
- mprintf(" center of mass");
- else
- mprintf(" first atom position");
-- mprintf(" using atoms in mask %s\n",Mask1.MaskString());
-- if (triclinic == FORCE)
-+ mprintf(" using atoms in mask %s\n",Mask1_.MaskString());
-+ if (triclinic_ == FORCE)
- mprintf( " Triclinic On.\n");
-- else if (triclinic == FAMILIAR) {
-+ else if (triclinic_ == FAMILIAR) {
- mprintf( " Triclinic On, familiar shape");
-- if (ComMask!=NULL)
-- mprintf( " centering on atoms in mask %s", ComMask->MaskString());
-+ if (ComMask_!=NULL)
-+ mprintf( " centering on atoms in mask %s", ComMask_->MaskString());
- mprintf(".\n");
- }
-
- return 0;
- }
-
--// Image::setup()
-+// Action_Image::setup()
- /** Set Imaging up for this parmtop. Get masks etc.
- * currentParm is set in Action::Setup
- */
--int Image::setup() {
-- atomPair apair;
-+int Action_Image::setup() {
-+ //atomPair apair;
-
-- if ( currentParm->SetupCharMask( Mask1, activeReference ) ) return 1;
-- if (Mask1.None()) {
-+ if ( currentParm->SetupCharMask( Mask1_, activeReference ) ) return 1;
-+ if (Mask1_.None()) {
- mprintf("Warning: Image::setup: Mask contains 0 atoms.\n");
- return 1;
- }
-
-- if (currentParm->boxType==NOBOX) {
-+ if (currentParm->boxType == NOBOX) {
- mprintf("Warning: Image::setup: Parm %s does not contain box information.\n",
- currentParm->parmName);
- return 1;
- }
-
-- ortho = false;
-- if (currentParm->boxType==ORTHO && triclinic==OFF) ortho=true;
-+ ortho_ = false;
-+ if (currentParm->boxType == ORTHO && triclinic_==OFF) ortho_=true;
-
- // If box is originally truncated oct and not forcing triclinic,
- // turn familiar on.
-- if (AmberIfbox(currentParm->Box[5])==2 && triclinic!=FORCE && triclinic!=FAMILIAR) {
-+ if ( AmberIfbox( currentParm->Box[4] ) == 2 && triclinic_!=FORCE && triclinic_!=FAMILIAR) {
- mprintf("\tOriginal box is truncated octahedron, turning on 'familiar'.\n");
-- triclinic=FAMILIAR;
-+ triclinic_=FAMILIAR;
- }
-
-- if (triclinic == FAMILIAR) {
-- if (ComMask!=NULL) {
-- if ( currentParm->SetupIntegerMask( *ComMask, activeReference) ) return 1;
-- if (ComMask->None()) {
-+ if (triclinic_ == FAMILIAR) {
-+ if (ComMask_!=NULL) {
-+ if ( currentParm->SetupIntegerMask( *ComMask_, activeReference ) ) return 1;
-+ if (ComMask_->None()) {
- mprintf("Warning: Image::setup: Mask for 'familiar com' contains no atoms.\n");
- return 1;
- }
-- mprintf("\tcom: mask [%s] contains %i atoms.\n",ComMask->MaskString(),ComMask->Nselected);
-+ mprintf("\tcom: mask [%s] contains %i atoms.\n",ComMask_->MaskString(),ComMask_->Nselected);
- }
- }
-
-@@ -120,178 +120,64 @@ int Image::setup() {
- // Currently imaging by molecule only, so each pair will be the first and
- // last atom of each molecule. Check that all atoms between first and last
- // are actually in the mask.
-- imageList.clear();
-- imageList.reserve( currentParm->Nmol() );
-- apair.firstAtom = 0;
-- apair.lastAtom = 0;
-- for (int mol = 0; mol < currentParm->Nmol(); mol++) {
-- apair.firstAtom = apair.lastAtom;
-- apair.lastAtom = apair.firstAtom + currentParm->AtomsPerMol(mol);
-+ imageList_.clear();
-+ imageList_.reserve( currentParm->Nmol() );
-+ int* AtomsPerMol = currentParm->AtomsPerMol_ptr();
-+ if (AtomsPerMol == NULL) {
-+ mprinterr("Error: Image: No molecule information in %s\n", currentParm->parmName);
-+ return 1;
-+ }
-+ int firstAtom = 0;
-+ int lastAtom = 0;
-+
-+ for (int molnum = 0; molnum < currentParm->Nmol(); ++molnum)
-+ {
-+ firstAtom = lastAtom;
-+ lastAtom += AtomsPerMol[ molnum ];
- // Check that each atom in the range is in Mask1
- bool rangeIsValid = true;
-- for (int atom = apair.firstAtom; atom < apair.lastAtom; atom++)
-- if (!Mask1.AtomInCharMask(atom)) {rangeIsValid = false; break;}
-- if (rangeIsValid) imageList.push_back( apair );
-+ for (int atom = firstAtom; atom < lastAtom; atom++) {
-+ if (!Mask1_.AtomInCharMask(atom)) {
-+ rangeIsValid = false;
-+ break;
-+ }
-+ }
-+ if (rangeIsValid) {
-+ imageList_.push_back( firstAtom );
-+ imageList_.push_back( lastAtom );
-+ }
- }
-- mprintf("\tNumber of molecules to be imaged is %u based on mask [%s]\n", imageList.size(),
-- Mask1.MaskString());
-+ mprintf("\tNumber of molecules to be imaged is %u based on mask [%s]\n", imageList_.size()/2,
-+ Mask1_.MaskString());
- // DEBUG: Print all pairs
-- //for (std::vector<atomPair>::iterator ap = imageList.begin();
-- // ap != imageList.end();
-- // ap++)
-- //{
-- // mprintf("\tPair: %i - %i\n",(*ap).firstAtom+1,(*ap).lastAtom);
-- //}
-+ if (debug>0) {
-+ for (std::vector<int>::iterator ap = imageList_.begin();
-+ ap != imageList_.end(); ap+=2)
-+ mprintf("\t\tMol First-Last atom#: %i - %i\n", (*ap)+1, *(ap+1) );
-+ }
-+
-+ // Truncoct flag
-+ truncoct_ = (triclinic_==FAMILIAR);
-
- return 0;
- }
-
--// Image::action()
--int Image::action() {
-- // Orthorhombic
-- double bp[3];
-- double bm[3];
-- // Non-orthorhombic
-- double ucell[9];
-- double recip[9];
-- double fc[3], ffc[3];
-- // Familiar
-- double fcom[3];
-- int ixyz[3];
-- // General
-- double boxTrans[3];
-- double Coord[3];
--
-- // Set up information for orthorhombic cell
-- if (ortho) {
-- if ( origin ) {
-- bp[0] = currentFrame->box[0] / 2.0;
-- bp[1] = currentFrame->box[1] / 2.0;
-- bp[2] = currentFrame->box[2] / 2.0;
-- bm[0] = -bp[0];
-- bm[1] = -bp[1];
-- bm[2] = -bp[2];
-- } else {
-- bp[0] = currentFrame->box[0];
-- bp[1] = currentFrame->box[1];
-- bp[2] = currentFrame->box[2];
-- bm[0] = 0.0;
-- bm[1] = 0.0;
-- bm[2] = 0.0;
-- }
--
-- // Set up information for non-orthorhombic cell
-+// Action_Image::action()
-+int Action_Image::action() {
-+ // Ortho
-+ double bp[3], bm[3];
-+ // Nonortho
-+ double ucell[9], recip[9], fcom[3];
-+
-+ if (ortho_) {
-+ currentFrame->SetupImageOrtho(bp, bm, origin_);
-+ currentFrame->ImageOrtho(bp, bm, center_, useMass, imageList_);
- } else {
-- // NOTE: Does this need to be done every time?
-- currentFrame->BoxToRecip(ucell, recip);
-- // Set up centering if putting nonortho cell into familiar trunc. oct. shape
-- if (triclinic == FAMILIAR) {
-- // Use center of mask of atoms in mask
-- if (ComMask!=NULL) {
-- if (useMass)
-- currentFrame->CenterOfMass(ComMask, fcom);
-- else
-- currentFrame->GeometricCenter(ComMask,fcom);
-- // Use origin
-- } else if (origin) {
-- fcom[0]=0.0;
-- fcom[1]=0.0;
-- fcom[2]=0.0;
-- // Use box center
-- } else {
-- fcom[0]=currentFrame->box[0] / 2.0;
-- fcom[1]=currentFrame->box[1] / 2.0;
-- fcom[2]=currentFrame->box[2] / 2.0;
-- }
-- //fprintf(stdout,"DEBUG: fcom = %lf %lf %lf\n",fcom[0],fcom[1],fcom[2]);
-- }
-+ currentFrame->BoxToRecip( ucell, recip );
-+ if (truncoct_)
-+ currentFrame->SetupImageTruncoct( fcom, ComMask_, useMass, origin_ );
-+ currentFrame->ImageNonortho(origin_, fcom, ucell, recip, truncoct_,
-+ center_, useMass, imageList_);
- }
--
-- // Loop over Atom pairs
-- for (std::vector<atomPair>::iterator apair = imageList.begin();
-- apair != imageList.end();
-- apair++)
-- {
-- int firstAtom = (*apair).firstAtom;
-- int lastAtom = (*apair).lastAtom;
--
-- //if (debug>2)
-- // mprintf( " IMAGE processing atoms %i to %i\n", firstAtom+1, lastAtom);
--
-- // boxTrans will hold calculated translation needed to move atoms back into box
-- boxTrans[0] = 0.0;
-- boxTrans[1] = 0.0;
-- boxTrans[2] = 0.0;
--
-- // Set up position based on first atom or center of mass
-- if (center) {
-- if (useMass)
-- currentFrame->CenterOfMass(Coord,firstAtom,lastAtom);
-- else
-- currentFrame->GeometricCenter(Coord,firstAtom,lastAtom);
-- } else
-- currentFrame->GetCoord(Coord,firstAtom);
--
-- // ORTHORHOMBIC
-- if (ortho) {
-- // Determine how far coords are out of box
-- for (int i=0; i<3; i++) {
-- while (Coord[i] < bm[i]) {
-- Coord[i] += currentFrame->box[i];
-- boxTrans[i] += currentFrame->box[i];
-- }
-- while (Coord[i] > bp[i]) {
-- Coord[i] -= currentFrame->box[i];
-- boxTrans[i] -= currentFrame->box[i];
-- }
-- }
--
-- // NON-ORTHORHOMBIC
-- } else {
-- fc[0]=(Coord[0]*recip[0]) + (Coord[1]*recip[1]) + (Coord[2]*recip[2]);
-- fc[1]=(Coord[0]*recip[3]) + (Coord[1]*recip[4]) + (Coord[2]*recip[5]);
-- fc[2]=(Coord[0]*recip[6]) + (Coord[1]*recip[7]) + (Coord[2]*recip[8]);
--
-- if ( origin ) {
-- fc[0] += 0.5;
-- fc[1] += 0.5;
-- fc[2] += 0.5;
-- }
--
-- ffc[0] = floor(fc[0]);
-- ffc[1] = floor(fc[1]);
-- ffc[2] = floor(fc[2]);
--
-- boxTrans[0] -= (ffc[0]*ucell[0] + ffc[1]*ucell[3] + ffc[2]*ucell[6]);
-- boxTrans[1] -= (ffc[0]*ucell[1] + ffc[1]*ucell[4] + ffc[2]*ucell[7]);
-- boxTrans[2] -= (ffc[0]*ucell[2] + ffc[1]*ucell[5] + ffc[2]*ucell[8]);
--
-- // Put into familiar trunc. oct. shape
-- if (triclinic == FAMILIAR) {
-- Coord[0] += boxTrans[0];
-- Coord[1] += boxTrans[1];
-- Coord[2] += boxTrans[2];
-- MinImageNonOrtho2(Coord, fcom, currentFrame->box, (int)origin, ixyz, ucell, recip);
-- if (ixyz[0] != 0 || ixyz[1] != 0 || ixyz[2] != 0) {
-- boxTrans[0] += (ixyz[0]*ucell[0] + ixyz[1]*ucell[3] + ixyz[2]*ucell[6]);
-- boxTrans[1] += (ixyz[0]*ucell[1] + ixyz[1]*ucell[4] + ixyz[2]*ucell[7]);
-- boxTrans[2] += (ixyz[0]*ucell[2] + ixyz[1]*ucell[5] + ixyz[2]*ucell[8]);
--
-- //if (debug > 2)
-- // mprintf( " IMAGING, FAMILIAR OFFSETS ARE %i %i %i\n",
-- // ixyz[0], ixyz[1], ixyz[2]);
-- }
-- }
-- }
--
-- //fprintf(stdout,"DEBUG: BoxTrans: %lf %lf %lf\n",boxTrans[0],boxTrans[1],boxTrans[2]);
--
-- // Translate atoms back into the box
-- currentFrame->Translate(boxTrans,firstAtom,lastAtom);
--
-- } // END loop over atom pairs
--
- return 0;
- }
--
--
-diff --git a/AmberTools/src/cpptraj/src/Action_Image.h b/AmberTools/src/cpptraj/src/Action_Image.h
-index ba233c1..139246e 100644
---- a/AmberTools/src/cpptraj/src/Action_Image.h
-+++ b/AmberTools/src/cpptraj/src/Action_Image.h
-@@ -1,31 +1,28 @@
- #ifndef INC_ACTION_IMAGE_H
- #define INC_ACTION_IMAGE_H
--// Class: Image
-+// Class: Action_Image
- /// Action to wrap coordinates back into primary box
- #include "Action.h"
--class Image: public Action {
-+class Action_Image: public Action {
-+ public:
-+ Action_Image();
-+ ~Action_Image();
-+ private:
- /// Only atoms in Mask1 will be imaged
-- AtomMask Mask1;
-+ AtomMask Mask1_;
- /// If defined, image w.r.t. the center of atoms in ComMask.
-- AtomMask *ComMask;
-+ AtomMask *ComMask_;
- /// If true image w.r.t. coordinate origin, otherwise box center
-- bool origin;
-+ bool origin_;
- /// If true molecules will be imaged w.r.t. their center, otherwise first atom will be used
-- bool center;
-+ bool center_;
- /// True if orthorhombic cell, false otherwise.
-- bool ortho;
-+ bool ortho_;
-+ bool truncoct_;
- enum TriclinicArg {OFF, FORCE, FAMILIAR};
-- TriclinicArg triclinic;
-- struct atomPair {
-- int firstAtom;
-- int lastAtom;
-- };
-+ TriclinicArg triclinic_;
- /// Vector containing atom ranges to be imaged (first to last)
-- std::vector<atomPair> imageList;
--
-- public:
-- Image();
-- ~Image();
-+ std::vector<int> imageList_;
-
- int init();
- int setup();
-diff --git a/AmberTools/src/cpptraj/src/CpptrajState.cpp b/AmberTools/src/cpptraj/src/CpptrajState.cpp
-index 7aa0e9e..4ce4228 100644
---- a/AmberTools/src/cpptraj/src/CpptrajState.cpp
-+++ b/AmberTools/src/cpptraj/src/CpptrajState.cpp
-@@ -209,11 +209,16 @@ int CpptrajState::Run() {
- }
- // Set current parm from current traj.
- CurrentParm = traj->TrajParm();
-+ // Check if parm has changed
-+ bool parmHasChanged = (lastPindex != CurrentParm->pindex);
-
-- // If Parm has changed, reset Frame and actions for new topology.
-- if (lastPindex != CurrentParm->pindex) {
-- // Set up the incoming trajectory frame for this parm
-+ // If Parm has changed or trajectory velocity status has changed,
-+ // reset the frame.
-+ if (parmHasChanged || ((TrajFrame.V != NULL) != traj->HasVelocity()))
- TrajFrame.SetupFrameV(CurrentParm->natom, CurrentParm->mass, traj->HasVelocity());
-+
-+ // If Parm has changed, reset actions for new topology.
-+ if (parmHasChanged) {
- // Set up actions for this parm
- if (actionList.Setup( &CurrentParm )) {
- mprintf("WARNING: Could not set up actions for %s: skipping.\n",
-diff --git a/AmberTools/src/cpptraj/src/Frame.cpp b/AmberTools/src/cpptraj/src/Frame.cpp
-index 3a8add6..0adbe67 100644
---- a/AmberTools/src/cpptraj/src/Frame.cpp
-+++ b/AmberTools/src/cpptraj/src/Frame.cpp
-@@ -462,20 +462,29 @@ void Frame::InverseRotate(double *T) {
- * or box center. Use geometric center if mass is NULL, otherwise center
- * of mass will be used.
- */
--void Frame::Center(AtomMask *Mask, double *boxcoord, bool useMassIn) {
-+void Frame::Center(AtomMask& Mask, bool origin, bool useMassIn) {
- double center[3];
-
- if (useMassIn)
-- this->CenterOfMass(Mask, center);
-+ this->CenterOfMass(&Mask, center);
- else
-- this->GeometricCenter(Mask, center);
-+ this->GeometricCenter(&Mask, center);
- //mprinterr(" FRAME CENTER: %lf %lf %lf\n",center[0],center[1],center[2]); //DEBUG
-
-- // Shift to whatever is in boxcoord (origin or center of box in Action_Center)
-- center[0] = boxcoord[0] - center[0];
-- center[1] = boxcoord[1] - center[1];
-- center[2] = boxcoord[2] - center[2];
-+ if (origin) {
-+ // Shift to coordinate origin (0,0,0)
-+ center[0] = -center[0];
-+ center[1] = -center[1];
-+ center[2] = -center[2];
-+ } else {
-+ // Shift to box center
-+ center[0] = (box[0] / 2) - center[0];
-+ center[1] = (box[1] / 2) - center[1];
-+ center[2] = (box[2] / 2) - center[2];
-+ }
-+
- this->Translate(center);
-+
- }
-
- // Frame::CenterReference()
-@@ -510,6 +519,202 @@ void Frame::ShiftToGeometricCenter( ) {
- this->Translate(frameCOM);
- }
-
-+void Frame::SetupImageTruncoct( double* fcom, AtomMask* ComMask, bool useMass, bool origin )
-+{
-+ // Set up centering if putting nonortho cell into familiar trunc. oct. shape
-+ //if (truncoct) {
-+ if (ComMask!=NULL) {
-+ // Use center of atoms in mask
-+ if (useMass)
-+ CenterOfMass(ComMask, fcom);
-+ else
-+ GeometricCenter(ComMask, fcom);
-+ } else if (origin) {
-+ // Use origin
-+ fcom[0] = 0;
-+ fcom[1] = 0;
-+ fcom[2] = 0;
-+ } else {
-+ // Use box center
-+ fcom[0] = box[0] / 2;
-+ fcom[1] = box[1] / 2;
-+ fcom[2] = box[2] / 2;
-+ }
-+ //fprintf(stdout,"DEBUG: fcom = %lf %lf %lf\n",fcom[0],fcom[1],fcom[2]);
-+ //}
-+}
-+
-+// Frame::ImageNonortho()
-+void Frame::ImageNonortho(bool origin, double* fcom, double* ucell, double* recip,
-+ bool truncoct, bool center,
-+ bool useMass, std::vector<int> &AtomPairs)
-+{
-+ //double ucell[9], recip[9],
-+ double boxTrans[3], Coord[3];
-+ // fcom and ixyz only needed for truncoct
-+ //double fcom[3];
-+
-+ //BoxToRecip(ucell, recip);
-+
-+ // Loop over atom pairs
-+ for (std::vector<int>::iterator atom = AtomPairs.begin();
-+ atom != AtomPairs.end();
-+ atom++)
-+ {
-+ int firstAtom = *atom;
-+ ++atom;
-+ int lastAtom = *atom;
-+ //if (debug>2)
-+ // mprintf( " IMAGE processing atoms %i to %i\n", firstAtom+1, lastAtom);
-+ // boxTrans will hold calculated translation needed to move atoms back into box
-+ boxTrans[0] = 0;
-+ boxTrans[1] = 0;
-+ boxTrans[2] = 0;
-+ // Set up Coord with position to check for imaging based on first atom or
-+ // center of mass of atoms first to last.
-+ if (center) {
-+ if (useMass)
-+ CenterOfMass(Coord,firstAtom,lastAtom);
-+ else
-+ GeometricCenter(Coord,firstAtom,lastAtom);
-+ } else {
-+ int atomidx = firstAtom * 3;
-+ Coord[0] = X[atomidx];
-+ ++atomidx;
-+ Coord[1] = X[atomidx];
-+ ++atomidx;
-+ Coord[2] = X[atomidx];
-+ }
-+
-+ ImageNonortho(boxTrans, Coord, truncoct, origin,
-+ ucell, recip, fcom);
-+
-+ Translate(boxTrans, firstAtom, lastAtom);
-+
-+ } // END loop over atom pairs
-+}
-+
-+// Frame::ImageNonortho()
-+void Frame::ImageNonortho(double* boxTrans, double* Coord,
-+ bool truncoct, bool origin,
-+ double* ucell, double* recip, double* fcom)
-+{
-+ double fc[3], ffc[3];
-+ int ixyz[3];
-+
-+ fc[0]=(Coord[0]*recip[0]) + (Coord[1]*recip[1]) + (Coord[2]*recip[2]);
-+ fc[1]=(Coord[0]*recip[3]) + (Coord[1]*recip[4]) + (Coord[2]*recip[5]);
-+ fc[2]=(Coord[0]*recip[6]) + (Coord[1]*recip[7]) + (Coord[2]*recip[8]);
-+
-+ if ( origin ) {
-+ fc[0] += 0.5;
-+ fc[1] += 0.5;
-+ fc[2] += 0.5;
-+ }
-+
-+ ffc[0] = floor(fc[0]);
-+ ffc[1] = floor(fc[1]);
-+ ffc[2] = floor(fc[2]);
-+
-+ boxTrans[0] -= (ffc[0]*ucell[0] + ffc[1]*ucell[3] + ffc[2]*ucell[6]);
-+ boxTrans[1] -= (ffc[0]*ucell[1] + ffc[1]*ucell[4] + ffc[2]*ucell[7]);
-+ boxTrans[2] -= (ffc[0]*ucell[2] + ffc[1]*ucell[5] + ffc[2]*ucell[8]);
-+
-+ // Put into familiar trunc. oct. shape
-+ if (truncoct) {
-+ Coord[0] += boxTrans[0];
-+ Coord[1] += boxTrans[1];
-+ Coord[2] += boxTrans[2];
-+ MinImageNonOrtho2(Coord, fcom, box, (int)origin, ixyz, ucell, recip);
-+ if (ixyz[0] != 0 || ixyz[1] != 0 || ixyz[2] != 0) {
-+ boxTrans[0] += (ixyz[0]*ucell[0] + ixyz[1]*ucell[3] + ixyz[2]*ucell[6]);
-+ boxTrans[1] += (ixyz[0]*ucell[1] + ixyz[1]*ucell[4] + ixyz[2]*ucell[7]);
-+ boxTrans[2] += (ixyz[0]*ucell[2] + ixyz[1]*ucell[5] + ixyz[2]*ucell[8]);
-+
-+ //if (debug > 2)
-+ // mprintf( " IMAGING, FAMILIAR OFFSETS ARE %i %i %i\n",
-+ // ixyz[0], ixyz[1], ixyz[2]);
-+ }
-+ }
-+}
-+
-+void Frame::SetupImageOrtho(double* bp, double* bm, bool origin) {
-+ // Set up boundary information for orthorhombic cell
-+ if (origin) {
-+ bp[0] = box[0] / 2;
-+ bp[1] = box[1] / 2;
-+ bp[2] = box[2] / 2;
-+ bm[0] = -bp[0];
-+ bm[1] = -bp[1];
-+ bm[2] = -bp[2];
-+ } else {
-+ bp[0] = box[0];
-+ bp[1] = box[1];
-+ bp[2] = box[2];
-+ bm[0] = 0;
-+ bm[1] = 0;
-+ bm[2] = 0;
-+ }
-+}
-+
-+// Frame::ImageOrtho()
-+void Frame::ImageOrtho(double* bp, double* bm, bool center, bool useMass,
-+ std::vector<int> &AtomPairs)
-+{
-+ double boxTrans[3], Coord[3];
-+
-+ // Loop over atom pairs
-+ for (std::vector<int>::iterator atom = AtomPairs.begin();
-+ atom != AtomPairs.end();
-+ atom++)
-+ {
-+ int firstAtom = *atom;
-+ ++atom;
-+ int lastAtom = *atom;
-+ //if (debug>2)
-+ // mprintf( " IMAGE processing atoms %i to %i\n", firstAtom+1, lastAtom);
-+ // boxTrans will hold calculated translation needed to move atoms back into box
-+ boxTrans[0] = 0;
-+ boxTrans[1] = 0;
-+ boxTrans[2] = 0;
-+ // Set up Coord with position to check for imaging based on first atom or
-+ // center of mass of atoms first to last.
-+ if (center) {
-+ if (useMass)
-+ CenterOfMass(Coord,firstAtom,lastAtom);
-+ else
-+ GeometricCenter(Coord,firstAtom,lastAtom);
-+ } else {
-+ int atomidx = firstAtom * 3;
-+ Coord[0] = X[atomidx];
-+ ++atomidx;
-+ Coord[1] = X[atomidx];
-+ ++atomidx;
-+ Coord[2] = X[atomidx];
-+ }
-+ ImageOrtho(boxTrans, Coord,bp,bm);
-+
-+ // Translate atoms according to Coord
-+ Translate(boxTrans,firstAtom,lastAtom);
-+ } // END loop over atom pairs
-+}
-+
-+void Frame::ImageOrtho(double* boxTrans, double* Coord, double* bp, double* bm)
-+{
-+ // Determine how far Coord is out of box
-+ for (int i=0; i < 3; i++) {
-+ while (Coord[i] < bm[i]) {
-+ Coord[i] += box[i];
-+ boxTrans[i] += box[i];
-+ }
-+ while (Coord[i] > bp[i]) {
-+ Coord[i] -= box[i];
-+ boxTrans[i] -= box[i];
-+ }
-+ }
-+}
-+
-+
- /* -------------- Coordinate Assignment/Extraction Routines ----------------- */
- // Frame::printAtomCoord()
- /** Print XYZ coords of given atom */
-diff --git a/AmberTools/src/cpptraj/src/Frame.h b/AmberTools/src/cpptraj/src/Frame.h
-index fb9be8b..b24f86c 100644
---- a/AmberTools/src/cpptraj/src/Frame.h
-+++ b/AmberTools/src/cpptraj/src/Frame.h
-@@ -53,9 +53,15 @@ class Frame {
- void Trans_Rot_Trans(double *, double *);
- void Rotate(double *);
- void InverseRotate(double *);
-- void Center(AtomMask *, double *,bool);
-+ void Center(AtomMask&, bool,bool);
- void CenterReference(double *, bool);
- void ShiftToGeometricCenter();
-+ void SetupImageTruncoct(double*, AtomMask*,bool,bool);
-+ void ImageNonortho(bool, double*, double*, double*, bool, bool, bool, std::vector<int> &);
-+ void ImageNonortho(double*, double*, bool, bool, double*, double*, double*);
-+ void SetupImageOrtho(double*, double*, bool);
-+ void ImageOrtho(double*,double*, bool, bool, std::vector<int> &);
-+ void ImageOrtho(double*, double*, double*, double*);
- // Coordinate assignment/extraction
- void printAtomCoord(int);
- void GetCoord(double *, int);
-diff --git a/AmberTools/src/cpptraj/src/Parm_CharmmPsf.cpp b/AmberTools/src/cpptraj/src/Parm_CharmmPsf.cpp
-index 98d1059..c11edc1 100644
---- a/AmberTools/src/cpptraj/src/Parm_CharmmPsf.cpp
-+++ b/AmberTools/src/cpptraj/src/Parm_CharmmPsf.cpp
-@@ -14,7 +14,7 @@ int CharmmPsfParmFile::ReadParm(AmberParm &parmOut, CpptrajFile &parmfile) {
- int bondatoms[8];
- int currResnum;
- int psfresnum;
-- int psfattype;
-+ char psfattype[6];
- int nbond,nlines;
-
- mprintf(" Reading Charmm PSF file %s as topology file.\n",parmOut.parmName);
-@@ -58,8 +58,8 @@ int CharmmPsfParmFile::ReadParm(AmberParm &parmOut, CpptrajFile &parmfile) {
- //if (buffer[bufferLen-1] == '\n') buffer[bufferLen-1]='\0';
- // Read line
- // ATOM# SEGID RES# RES ATNAME ATTYPE CHRG MASS (REST OF COLUMNS ARE LIKELY FOR CMAP AND CHEQ)
-- sscanf(buffer,"%*i %*s %i %s %s %i %lf %lf",&psfresnum,psfresname,psfname,
-- &psfattype,parmOut.charge+atom,parmOut.mass+atom);
-+ sscanf(buffer,"%*i %*s %i %s %s %s %lf %lf",&psfresnum,psfresname,psfname,
-+ psfattype,parmOut.charge+atom,parmOut.mass+atom);
- // Ensure name has 4 chars
- PadWithSpaces( psfname );
- strcpy(parmOut.names[atom],psfname);
-diff --git a/AmberTools/src/cpptraj/src/Traj_AmberRestart.cpp b/AmberTools/src/cpptraj/src/Traj_AmberRestart.cpp
-index d2a398a..6d060a6 100644
---- a/AmberTools/src/cpptraj/src/Traj_AmberRestart.cpp
-+++ b/AmberTools/src/cpptraj/src/Traj_AmberRestart.cpp
-@@ -9,6 +9,7 @@
- // CONSTRUCTOR
- AmberRestart::AmberRestart() {
- restartAtoms=0;
-+ coordSize_ = 0;
- frameSize=0;
- frameBuffer=NULL;
- numBoxCoords=0;
-@@ -218,6 +219,7 @@ int AmberRestart::setupRead(AmberParm *trajParm) {
- // For DOS files CR present before newline
- if (tfile->isDos) frame_lines*=2;
- frameSize = ((natom3 * 12) + frame_lines);
-+ coordSize_ = frameSize;
- frameBuffer=(char*) malloc(frameSize*sizeof(char));
- //if (debug>0) mprintf(" Amber Restart frameSize= %i\n",frameSize);
-
-@@ -302,13 +304,16 @@ int AmberRestart::readFrame(int set,double *X,double *V,double *box, double *T)
- return 1;
- }
- // Get velocity from buffer if present
-- if (hasVelocity && V!=NULL) {
-- if ( (bufferPosition = BufferToDouble(bufferPosition, V, natom3, 12))==NULL ) {
-- mprinterr("Error: AmberRestart::getFrame: * detected in velocities of %s\n",
-- tfile->filename);
-- return 1;
-+ if (hasVelocity) {
-+ if (V != NULL) {
-+ if ( (bufferPosition = BufferToDouble(bufferPosition, V, natom3, 12))==NULL ) {
-+ mprinterr("Error: AmberRestart::getFrame: * detected in velocities of %s\n",
-+ tfile->filename);
-+ return 1;
-+ }
-+ } else {
-+ bufferPosition += coordSize_;
- }
-- //F->V->printAtomCoord(0);
- }
- // Get box from buffer if present
- if (hasBox) {
-diff --git a/AmberTools/src/cpptraj/src/Traj_AmberRestart.h b/AmberTools/src/cpptraj/src/Traj_AmberRestart.h
-index ba21b2a..b231874 100644
---- a/AmberTools/src/cpptraj/src/Traj_AmberRestart.h
-+++ b/AmberTools/src/cpptraj/src/Traj_AmberRestart.h
-@@ -7,6 +7,7 @@ class AmberRestart : public TrajectoryIO {
- int restartAtoms; ///< Number of atoms in restart file
- int natom3; ///< Number of coords
- int frameSize; ///< Size of 1 coord frame in bytes, inc box & velo if present
-+ size_t coordSize_; ///< Size of 1 coord frame in bytes, used for blank reads.
- char *frameBuffer; ///< Used to read in restart coord
- int numBoxCoords; ///< Number of box coords (3 or 6)
- double restartTime; ///< Time in restart file, read in
-diff --git a/AmberTools/src/cpptraj/src/Traj_CharmmDcd.cpp b/AmberTools/src/cpptraj/src/Traj_CharmmDcd.cpp
-index 8563938..6074b05 100644
---- a/AmberTools/src/cpptraj/src/Traj_CharmmDcd.cpp
-+++ b/AmberTools/src/cpptraj/src/Traj_CharmmDcd.cpp
-@@ -203,7 +203,39 @@ int CharmmDcd::WriteBlock(int blocksize) {
- /** Call openTraj, which reads the DCD header and all necessary info.
- */
- int CharmmDcd::setupRead(AmberParm *trajParm) {
-+ size_t boxBytes, dim;
- if ( openTraj() ) return -1;
-+ // DCD file may have less frames than is stored in the header.
-+ // Check the file size against the reported number of frames.
-+ if (hasBox)
-+ boxBytes = 56; // 6(crds) * 8(double) + 4(hdr) + 4(end hdr)
-+ else
-+ boxBytes = 0;
-+ if (dcd4D)
-+ dim = 4;
-+ else
-+ dim = 3;
-+ size_t dimBytes = dim * sizeof(float);
-+ size_t frame1Bytes = (((size_t) dcdatom+2 ) * dimBytes) + boxBytes;
-+ size_t frameNBytes = (((size_t)(dcdatom - namnf)+2) * dimBytes) + boxBytes;
-+ // Header size should be current position after open, which automatically
-+ // reads DCD header.
-+ size_t headerBytes = (size_t)tfile->IO->Tell();
-+ size_t file_size = (size_t)tfile->file_size - headerBytes - frame1Bytes;
-+ if ( (file_size % frameNBytes) != 0 ) {
-+ mprintf("Warning: %s: Number of frames in DCD file could not be accurately determined.\n",
-+ tfile->filename);
-+ mprintf("Warning:\t\tFile may be corrupted.\n");
-+ }
-+ int nframes = (int)(file_size / frameNBytes) + 1; // +1 for first frame
-+ if (nframes != dcdframes) {
-+ mprintf("Warning: %s: Reported number of frames in DCD file is %i,\n",
-+ tfile->filename, dcdframes);
-+ mprintf("Warning:\tactual number of frames is %i. Only reading %i frames.\n",
-+ nframes, nframes);
-+ dcdframes = nframes;
-+ }
-+
- closeTraj();
- return dcdframes;
- }
-diff --git a/AmberTools/src/cpptraj/src/TrajectoryFile.cpp b/AmberTools/src/cpptraj/src/TrajectoryFile.cpp
-index e51b442..1fb8d14 100644
---- a/AmberTools/src/cpptraj/src/TrajectoryFile.cpp
-+++ b/AmberTools/src/cpptraj/src/TrajectoryFile.cpp
-@@ -635,6 +635,7 @@ FileFormat TrajectoryFile::getFmtFromArg(ArgList *argIn, FileFormat def) {
- else if ( argIn->hasKey("restartnc")) writeFormat=AMBERRESTARTNC;
- else if ( argIn->hasKey("mol2") ) writeFormat=MOL2FILE;
- else if ( argIn->hasKey("dcd") ) writeFormat=CHARMMDCD;
-+ else if ( argIn->hasKey("charmm") ) writeFormat=CHARMMDCD;
- return writeFormat;
- }
-
-diff --git a/AmberTools/src/cpptraj/src/cpptrajdepend b/AmberTools/src/cpptraj/src/cpptrajdepend
-index c8a9751..27016ab 100644
---- a/AmberTools/src/cpptraj/src/cpptrajdepend
-+++ b/AmberTools/src/cpptraj/src/cpptrajdepend
-@@ -38,13 +38,14 @@ Action_Center.o : Action_Center.cpp Action.h Action_Center.h AmberParm.h ArgList
- FileIO_Bzip2.o : FileIO_Bzip2.cpp CpptrajStdio.h FileIO.h FileIO_Bzip2.h
- Action_Hbond.o : Action_Hbond.cpp Action.h Action_Hbond.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h Constants.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h
- DataSet_integer.o : DataSet_integer.cpp CharBuffer.h CpptrajStdio.h DataSet.h DataSet_integer.h MpiRoutines.h
--Action_Image.o : Action_Image.cpp Action.h Action_Image.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DistRoutines.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h
-+Action_Image.o : Action_Image.cpp Action.h Action_Image.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h
- Action_Surf.o : Action_Surf.cpp Action.h Action_Surf.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h Constants.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h
- Action_Radgyr.o : Action_Radgyr.cpp Action.h Action_Radgyr.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h
- Action_Mask.o : Action_Mask.cpp Action.h Action_Mask.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h ProgressBar.h Range.h TrajectoryFile.h TrajectoryIO.h
- Action_Closest.o : Action_Closest.cpp Action.h Action_Closest.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFile.h ParmFileList.h
- NetcdfRoutines.o : NetcdfRoutines.cpp CpptrajStdio.h NetcdfRoutines.h
- CpptrajStdio.o : CpptrajStdio.cpp MpiRoutines.h
-+Action_AutoImage.o : Action_AutoImage.cpp Action.h Action_AutoImage.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DistRoutines.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h
- Mol2FileRoutines.o : Mol2FileRoutines.cpp CharBuffer.h CpptrajFile.h CpptrajStdio.h FileIO.h FileRoutines.h Mol2FileRoutines.h Name.h
- Action_NAstruct.o : Action_NAstruct.cpp Action.h Action_NAstruct.h AmberParm.h ArgList.h AtomMask.h AxisType.h Bonds.h BoxType.h CharBuffer.h Constants.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h DistRoutines.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h Range.h vectormath.h
- DistRoutines.o : DistRoutines.cpp Constants.h DistRoutines.h
-@@ -80,7 +81,7 @@ Action_Jcoupling.o : Action_Jcoupling.cpp Action.h Action_Jcoupling.h AmberParm.
- TriangleMatrix.o : TriangleMatrix.cpp CpptrajStdio.h TriangleMatrix.h
- Action_Clustering.o : Action_Clustering.cpp Action.h Action_Clustering.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h ClusterList.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h ProgressBar.h Range.h TrajectoryFile.h TrajectoryIO.h TriangleMatrix.h
- ClusterList.o : ClusterList.cpp CharBuffer.h ClusterList.h CpptrajFile.h CpptrajStdio.h FileIO.h FileRoutines.h TriangleMatrix.h
--Traj_CharmmDcd.o : Traj_CharmmDcd.cpp AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h FileIO.h FileRoutines.h Name.h Traj_CharmmDcd.h TrajectoryIO.h
-+Traj_CharmmDcd.o : Traj_CharmmDcd.cpp AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h Constants.h CpptrajFile.h CpptrajStdio.h FileIO.h FileRoutines.h Name.h Traj_CharmmDcd.h TrajectoryIO.h
- Bonds.o : Bonds.cpp Bonds.h CpptrajStdio.h Name.h
- FileRoutines.o : FileRoutines.cpp FileRoutines.h
- Action_Pairwise.o : Action_Pairwise.cpp Action.h Action_Pairwise.h AmberParm.h ArgList.h AtomMask.h Bonds.h BoxType.h CharBuffer.h CpptrajFile.h CpptrajStdio.h DataFile.h DataFileList.h DataSet.h DataSetList.h FileIO.h FileRoutines.h Frame.h FrameList.h Name.h ParmFileList.h ProgressBar.h Range.h TrajectoryFile.h TrajectoryIO.h vectormath.h
-diff --git a/AmberTools/src/cpptraj/src/cpptrajfiles b/AmberTools/src/cpptraj/src/cpptrajfiles
-index f7ecc50..9c05282 100644
---- a/AmberTools/src/cpptraj/src/cpptrajfiles
-+++ b/AmberTools/src/cpptraj/src/cpptrajfiles
-@@ -10,7 +10,7 @@ SOURCE=main.cpp AmberParm.cpp \
- Action_DSSP.cpp DataSet_string.cpp Action_Center.cpp FileIO_Bzip2.cpp \
- Action_Hbond.cpp DataSet_integer.cpp Action_Image.cpp Action_Surf.cpp \
- Action_Radgyr.cpp Action_Mask.cpp Action_Closest.cpp \
-- NetcdfRoutines.cpp CpptrajStdio.cpp \
-+ NetcdfRoutines.cpp CpptrajStdio.cpp Action_AutoImage.cpp \
- Mol2FileRoutines.cpp Action_NAstruct.cpp DistRoutines.cpp AxisType.cpp \
- TorsionRoutines.cpp Action_Pucker.cpp Range.cpp Action_Outtraj.cpp \
- Action_Rms2d.cpp ProgressBar.cpp TrajectoryIO.cpp \
-@@ -42,7 +42,7 @@ OBJECTS=main.o AmberParm.o \
- Action_DSSP.o DataSet_string.o Action_Center.o FileIO_Bzip2.o \
- Action_Hbond.o DataSet_integer.o Action_Image.o Action_Surf.o \
- Action_Radgyr.o Action_Mask.o Action_Closest.o \
-- NetcdfRoutines.o CpptrajStdio.o \
-+ NetcdfRoutines.o CpptrajStdio.o Action_AutoImage.o \
- Mol2FileRoutines.o Action_NAstruct.o DistRoutines.o AxisType.o \
- TorsionRoutines.o Action_Pucker.o Range.o Action_Outtraj.o \
- Action_Rms2d.o ProgressBar.o TrajectoryIO.o \
-@@ -74,7 +74,7 @@ HEADERS=AmberParm.h \
- Action_DSSP.h DataSet_string.h Action_Center.h FileIO_Bzip2.h \
- Action_Hbond.h DataSet_integer.h Action_Image.h Action_Surf.h \
- Action_Radgyr.h Action_Mask.h Action_Closest.h \
-- NetcdfRoutines.h CpptrajStdio.h \
-+ NetcdfRoutines.h CpptrajStdio.h Action_AutoImage.h \
- Mol2FileRoutines.h Action_NAstruct.h DistRoutines.h AxisType.h \
- TorsionRoutines.h Action_Pucker.h Range.h Action_Outtraj.h \
- Action_Rms2d.h ProgressBar.h TrajectoryIO.h \
-diff --git a/AmberTools/src/cpptraj/src/main.cpp b/AmberTools/src/cpptraj/src/main.cpp
-index 23f290e..4fc0434 100644
---- a/AmberTools/src/cpptraj/src/main.cpp
-+++ b/AmberTools/src/cpptraj/src/main.cpp
-@@ -9,7 +9,7 @@
- #include <cstdio>
- #include <cstdlib> // atoi
- #ifndef CPPTRAJ_VERSION_STRING
--#define CPPTRAJ_VERSION_STRING "V12.1"
-+#define CPPTRAJ_VERSION_STRING "V12.4"
- #define CPPTRAJ_INTERNAL_VERSION "V2.4.7b"
- #endif
-
-diff --git a/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py b/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
-index b01b891..0349ba9 100644
---- a/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
-+++ b/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
-@@ -1152,7 +1152,7 @@ class BindingStatistics(object):
- classes and returns the average and standard deviation of that diff.
- """
- if len(self.data[key1]) != len(other.data[key2]):
-- return (self.data[key1].avg() - self.data[key2].avg(),
-+ return (self.data[key1].avg() - other.data[key2].avg(),
- sqrt(self.data[key1].stdev()**2 + other.data[key2].stdev()**2))
-
- mydiff = self.data[key1] - other.data[key2]
-diff --git a/AmberTools/src/mmpbsa_py/MMPBSA_mods/calculation.py b/AmberTools/src/mmpbsa_py/MMPBSA_mods/calculation.py
-index dd010e7..6a2cd98 100644
---- a/AmberTools/src/mmpbsa_py/MMPBSA_mods/calculation.py
-+++ b/AmberTools/src/mmpbsa_py/MMPBSA_mods/calculation.py
-@@ -104,7 +104,8 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
-
- if not stability:
- # Don't re-run the receptor if we don't have to
-- if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop:
-+ if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop \
-+ and not INPUT['mutant_only']:
- print ' no mutation found in receptor -- using unmutated files'
- shutil.copy('%sreceptor_gb.mdout.%d' % (
- prefix[:prefix.index('mutant')], rank),
-@@ -127,7 +128,8 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
- calc.Setup()
- calc.Run()
-
-- if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop:
-+ if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop \
-+ and not INPUT['mutant_only']:
- print ' no mutation found in ligand -- using unmutated files'
- shutil.copy('%sligand_gb.mdout.%d' % (
- prefix[:prefix.index('mutant')], rank),
-@@ -166,15 +168,16 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
-
- print ' calculating complex contribution...'
-
-- calc = EnergyCalculation(progs['pb'], parmsystem.complex_prmtop,
-+ calc = PBEnergyCalculation(progs['pb'], parmsystem.complex_prmtop,
- incrd, '%scomplex.%s.%d' % (prefix, trj_sfx, rank), mdin,
- '%scomplex_pb.mdout.%d' % (prefix, rank),
- '_MMPBSA_restrt.%d' % rank)
- calc.Setup()
-- calc.Run(stdout=os.devnull)
-+ calc.Run()
-
- if not stability:
-- if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop:
-+ if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop \
-+ and not INPUT['mutant_only']:
- print ' no mutation found in receptor -- using unmutated files'
- shutil.copy('%sreceptor_pb.mdout.%d' % (
- prefix[:prefix.index('mutant')], rank),
-@@ -188,14 +191,15 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
- if 'mmpbsa_py_energy' in progs['pb']: incrd = '%sreceptor.pdb' % prefix
- else: incrd = '%sdummyreceptor.inpcrd' % prefix
-
-- calc = EnergyCalculation(progs['pb'], parmsystem.receptor_prmtop,
-+ calc = PBEnergyCalculation(progs['pb'], parmsystem.receptor_prmtop,
- incrd, '%sreceptor.%s.%d' % (prefix, trj_sfx, rank), mdin,
- '%sreceptor_pb.mdout.%d' % (prefix, rank),
- '_MMPBSA_restrt.%d' % rank)
- calc.Setup()
-- calc.Run(stdout=os.devnull)
-+ calc.Run()
-
-- if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop:
-+ if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop \
-+ and not INPUT['mutant_only']:
- print ' no mutation found in ligand -- using unmutated files'
- shutil.copy('%sligand_pb.mdout.%d' % (
- prefix[:prefix.index('mutant')], rank),
-@@ -207,12 +211,12 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
- if 'mmpbsa_py_energy' in progs['pb']: incrd = '%sligand.pdb' % prefix
- else: incrd = '%sdummyligand.inpcrd' % prefix
-
-- calc = EnergyCalculation(progs['pb'], parmsystem.ligand_prmtop,
-+ calc = PBEnergyCalculation(progs['pb'], parmsystem.ligand_prmtop,
- incrd, '%sligand.%s.%d' % (prefix, trj_sfx, rank), mdin,
- '%sligand_pb.mdout.%d' % (prefix, rank),
- '_MMPBSA_restrt.%d' % rank)
- calc.Setup()
-- calc.Run(stdout=os.devnull)
-+ calc.Run()
-
- MMPBSA_Timer.StopTimer('pb')
-
-@@ -232,7 +236,8 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
- calc.Run()
-
- if not stability:
-- if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop:
-+ if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop \
-+ and not INPUT['mutant_only']:
- print ' no mutation found in receptor -- using unmutated files'
- shutil.copy('%sreceptor_rism.mdout.%d' % (
- prefix[:prefix.index('mutant')], rank),
-@@ -246,7 +251,8 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
- calc.Setup()
- calc.Run()
-
-- if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop:
-+ if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop \
-+ and not INPUT['mutant_only']:
- print ' no mutation found in ligand -- using unmutated files'
- shutil.copy('%sligand_rism.mdout.%d' % (
- prefix[:prefix.index('mutant')], rank),
-@@ -278,7 +284,8 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
- calc.Run()
-
- if not stability:
-- if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop:
-+ if mutant and FILES.receptor_prmtop == FILES.mutant_receptor_prmtop \
-+ and not INPUT['mutant_only']:
- print ' no mutation found in receptor -- using unmutated files'
- shutil.copy('%sreceptor_nm.out.%d' % (
- prefix[:prefix.index('mutant')], rank),
-@@ -291,7 +298,8 @@ def run_calculations(FILES, INPUT, rank, MMPBSA_Timer, extern_progs, prefix,
- calc.Setup()
- calc.Run()
-
-- if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop:
-+ if mutant and FILES.ligand_prmtop == FILES.mutant_ligand_prmtop \
-+ and not INPUT['mutant_only']:
- print ' no mutation found in ligand -- using unmutated files'
- shutil.copy('%sligand_nm.out.%d' % (
- prefix[:prefix.index('mutant')], rank),
-@@ -605,3 +613,55 @@ class QuasiHarmCalc(Calculation):
- Calculation.Run(self, stdout=self.output)
-
- #+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-+
-+class PBEnergyCalculation(EnergyCalculation):
-+ """
-+ Specially handle the PB calculations to extract warnings and errors PBSA
-+ prints to stdout and redirect them to the user
-+ """
-+ def Run(self, stderr=sys.stderr):
-+ """ Runs the program. All command-line arguments must be set before
-+ calling this method. Command-line arguments should be set in Setup()
-+ """
-+ import re
-+ from subprocess import Popen, PIPE
-+
-+ # If this has not been set up yet
-+ # then raise a stink
-+ if not self.calc_setup:
-+ raise CalcError('Cannot run a calculation without calling its' +
-+ ' its Setup() function!')
-+
-+ errorre = re.compile('(pb (?:bomb)|(?:warning))', re.I)
-+ # Here, make sure that we could pass a file *OR* a string as stderr.
-+ if type(stderr).__name__ == 'str':
-+ stderr_is_string = True
-+ process_stderr = open(stderr, 'w', 0)
-+ else:
-+ stderr_is_string = False
-+ process_stderr = stderr
-+
-+ # The Setup() method sets the command-line arguments and makes sure that
-+ # all of the CL arguments are set. Now all we have to do is start the
-+ # process and monitor it for success.
-+
-+ # Popen can only take strings as command-line arguments, so convert
-+ # everything to a string here
-+ for i in range(len(self.command_args)):
-+ self.command_args[i] = str(self.command_args[i])
-+
-+ process = Popen(self.command_args, stdin=None, stdout=PIPE,
-+ stderr=process_stderr)
-+
-+ out, err = process.communicate('')
-+ calc_failed = bool(process.wait())
-+
-+ if stderr_is_string: process_stderr.close()
-+
-+ if calc_failed:
-+ error_list = [s.strip() for s in out.split('\n')
-+ if errorre.match(s.strip())]
-+ raise CalcError('%s failed with prmtop %s!\n\t' % (self.program,
-+ self.prmtop) + '\n\t'.join(error_list) + '\n')
-+
-+#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-diff --git a/AmberTools/src/parmed/ParmedTools/ParmedActions.py b/AmberTools/src/parmed/ParmedTools/ParmedActions.py
-index 4dd905f..4ea4a52 100644
---- a/AmberTools/src/parmed/ParmedTools/ParmedActions.py
-+++ b/AmberTools/src/parmed/ParmedTools/ParmedActions.py
-@@ -604,16 +604,15 @@ class changeljsingletype(Action):
- from math import sqrt
- from ParmedTools.exceptions import LJ_TypeError
- # If this is an empty mask do nothing
-- if not self.orig_radius: return
-+ if self.orig_radius is None: return
- # Make sure we've only selected a single atom type with our mask
- attype = None
-- iter = 0
-- for sel in self.mask.Selection():
-+ for i, sel in enumerate(self.mask.Selection()):
- if sel == 1:
-- if not attype:
-- attype = self.parm.parm_data['ATOM_TYPE_INDEX'][iter]
-+ if attype is None:
-+ attype = self.parm.parm_data['ATOM_TYPE_INDEX'][i]
- else:
-- if attype != self.parm.parm_data['ATOM_TYPE_INDEX'][iter]:
-+ if attype != self.parm.parm_data['ATOM_TYPE_INDEX'][i]:
- raise LJ_TypeError('changeLJSingleType: ' +
- 'Selection mask has multiple atom types!')
- # Fill the Lennard-Jones radius and depth arrays to make sure they're
-@@ -631,10 +630,6 @@ class changeljsingletype(Action):
- bcoef = 2 * wij * rij ** 6
- self.parm.parm_data['LENNARD_JONES_ACOEF'][lj_index] = acoef
- self.parm.parm_data['LENNARD_JONES_BCOEF'][lj_index] = bcoef
-- lj_index = self.parm.parm_data['NONBONDED_PARM_INDEX'][
-- self.parm.ptr('ntypes') * (attype-1) + i] - 1
-- self.parm.parm_data['LENNARD_JONES_ACOEF'][lj_index] = acoef
-- self.parm.parm_data['LENNARD_JONES_BCOEF'][lj_index] = bcoef
-
- #+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-diff --git a/AmberTools/src/pbsa/gen_dx_file.F90 b/AmberTools/src/pbsa/gen_dx_file.F90
-index 475b6ef..d50e453 100644
---- a/AmberTools/src/pbsa/gen_dx_file.F90
-+++ b/AmberTools/src/pbsa/gen_dx_file.F90
-@@ -37,6 +37,7 @@ subroutine gen_dx_file(xm,ym,zm,h,gox,goy,goz,voldata,filename,fn,dataname)
- end if
- end do
- end do; end do
-+ if (.not.(MOD(cnt,3).eq. 0) ) write(fn,*) ''
- write(fn,*) 'attribute "dep" string "positions"'
- write(fn,*) 'object "',dataname,'" class field'
- write(fn,*) 'component "positions" value 1'
-diff --git a/AmberTools/src/pbsa/pb_force.F90 b/AmberTools/src/pbsa/pb_force.F90
-index 37337bd..52f1edf 100644
---- a/AmberTools/src/pbsa/pb_force.F90
-+++ b/AmberTools/src/pbsa/pb_force.F90
-@@ -1399,7 +1399,7 @@ subroutine pb_fdfrc( pbverbose,pbprint,pbgrid,ifcap,ipb,imin,natom,atmlast,npdec
- close(64)
- elseif ( phiform == 2 ) then
- !write dx format phi
-- call gen_dx_file(xm,ym,zm,h,gox,goy,goz,phi(1:xmymzm),&
-+ call gen_dx_file(xm,ym,zm,h,gox,goy,goz,frcfac*phi(1:xmymzm),&
- phifilename,phifilenum,phidataname)
- ! write(6,*) 'writing potential map in dx format'
- ! open(67,file='pbsa_phi.dx')
-diff --git a/AmberTools/src/sqm/constants.F90 b/AmberTools/src/sqm/constants.F90
-index 590cc71..c19fd06 100644
---- a/AmberTools/src/sqm/constants.F90
-+++ b/AmberTools/src/sqm/constants.F90
-@@ -84,18 +84,23 @@ module constants
- !------------------------------------------------------------
- ! THE ARRAY FC(I) CONTAINS THE FACTORIALS OF (I-1).
-
-- _REAL_, parameter :: FC(1:17) =&
-- (/ 1.0D0,1.0D0, 2.0D0, 6.0D0, 24.0D0, 120.0D0, 720.0D0, 5040.0D0, &
-- 40320.0D0, 362880.0D0, 3628800.0D0, 39916800.0D0, &
-- 4.790016D+08, 6.2270208D+09, 8.71782912D+10, &
-- 1.307674368D+12, 2.092278989D+13 /)
-+ _REAL_, parameter :: FC(1:25) =&
-+ (/ 1.0D0,1.0D0, 2.0D0, 6.0D0, 24.0D0, &
-+ 120.0D0, 720.0D0, 5040.0D0, 40320.0D0, 362880.0D0, &
-+ 3628800.0D0, 39916800.0D0, 4.790016D+08, 6.2270208D+09, 8.71782912D+10, &
-+ 1.307674368D+12, 2.092278989D+13, 3.55687428096D+14, 6.402373705728D+15, 1.21645100408832D+17, &
-+ 2.43290200817664D+18, 5.109094217170944D+19, 1.12400072777760768D+21, 2.585201673888497664D+22, &
-+ 6.2044840173323943936D+23 /)
-
-- _REAL_, parameter :: logFC(1:17) = (/ 0.0D0, 0.0D0, 0.6931471805599D0, &
-+ _REAL_, parameter :: logFC(1:25) = (/ 0.0D0, 0.0D0, 0.6931471805599D0, &
- & 1.7917594692281D0, 3.1780538303479D0, 4.7874917427820D0, &
- & 6.5792512120101D0, 8.5251613610654D0, 10.6046029027453D0, &
- & 12.8018274800815D0, 15.1044125730755D0, 17.5023078458739D0, &
- & 19.9872144956619D0, 22.5521638531234D0, 25.1912211827387D0, &
-- & 27.8992713838409D0, 30.6718601061763D0 /)
-+ & 27.8992713838409D0, 30.6718601061763D0, 33.5050734501369D0, &
-+ 36.3954452080331D0, 39.3398841871995D0, 42.3356164607535D0, &
-+ 45.3801388984769D0, 48.4711813518352D0, 51.6066755677644D0, &
-+ 54.7847293981123D0 /)
-
- ! DEFINE C COEFFICIENTS FOR ASSOCIATE LEGENDRE POLYNOMIALS.
- _REAL_, parameter::CC(1:21,1:3) = reshape ( (/ &
-diff --git a/AmberTools/src/sqm/depend b/AmberTools/src/sqm/depend
-index 357ef59..0d3db38 100644
---- a/AmberTools/src/sqm/depend
-+++ b/AmberTools/src/sqm/depend
-@@ -599,7 +599,8 @@ qm2_h1elec_d.o: \
- rotation.o\
- elementOrbitalIndex.o\
- slater_overlap.o\
-- qmmm_module.o
-+ qmmm_module.o\
-+ utilitiesModule.o
-
-
- qm2_h1elec_d.o: qm2_h1elec_d.F90
-@@ -668,7 +669,8 @@ qm2_parameters.o: \
- elementOrbitalIndex.o\
- qmmm_qmtheorymodule.o\
- parameterReader.o\
-- qmmm_module.o
-+ qmmm_module.o\
-+ utilitiesModule.o
-
-
- qm2_parameters.o: qm2_parameters.F90
-@@ -679,7 +681,8 @@ qm2_params_module.o: \
- ../include/assert.fh\
- ../include/dprec.fh\
- elementOrbitalIndex.o\
-- qmmm_qmtheorymodule.o
-+ qmmm_qmtheorymodule.o\
-+ constants.o
-
-
- qm2_params_module.o: qm2_params_module.F90
-diff --git a/AmberTools/src/sqm/qm2_parameters.F90 b/AmberTools/src/sqm/qm2_parameters.F90
-index 9985f1f..e762063 100644
---- a/AmberTools/src/sqm/qm2_parameters.F90
-+++ b/AmberTools/src/sqm/qm2_parameters.F90
-@@ -263,6 +263,8 @@ if (currentTheory%MNDOD) then
- core_chg( 15) = 5; natomic_orbs( 15) = 9; heat_of_form( 15) = 75.570D0 !P
- core_chg( 16) = 6; natomic_orbs( 16) = 9; heat_of_form( 16) = 66.400D0 !S
- core_chg( 17) = 7; natomic_orbs( 17) = 9; heat_of_form( 17) = 28.990D0 !Cl
-+ core_chg( 35) = 7; natomic_orbs( 35) = 9; heat_of_form( 35) = 26.740D0 !Br
-+ core_chg( 53) = 7; natomic_orbs( 53) = 9; heat_of_form( 53) = 25.517D0 !I
- end if
-
- if (currentTheory%AM1D) then
-diff --git a/AmberTools/test/mmpbsa_py/04_Per_Residue_Decomp/FINAL_RESULTS_MMPBSA.dat.save b/AmberTools/test/mmpbsa_py/04_Per_Residue_Decomp/FINAL_RESULTS_MMPBSA.dat.save
-index 0390673..f9c1daf 100644
---- a/AmberTools/test/mmpbsa_py/04_Per_Residue_Decomp/FINAL_RESULTS_MMPBSA.dat.save
-+++ b/AmberTools/test/mmpbsa_py/04_Per_Residue_Decomp/FINAL_RESULTS_MMPBSA.dat.save
-@@ -1,11 +1,11 @@
--| Run on Fri Oct 21 16:59:53 2011
-+| Run on Thu Aug 23 19:08:46 2012
- |
- |Input file:
- |--------------------------------------------------------------
- |MMPBSA input file for running per-residue decomp
- |&general
- | startframe=1, endframe=2, interval=1,
--| keep_files=2, debug_printlevel=2
-+| keep_files=1, debug_printlevel=2
- |/
- |&gb
- | igb=5, saltcon=0.1
-@@ -14,7 +14,7 @@
- | idecomp=1, print_res='1-10; 200-241', csv_format=0,
- |/
- |--------------------------------------------------------------
--|MMPBSA.py Version=3.0
-+|MMPBSA.py Version=12.0
- |Solvated complex topology file: ../EstRAL_Files/sol.top
- |Complex topology file: ../EstRAL_Files/com.top
- |Receptor topology file: ../EstRAL_Files/rec.top
-@@ -38,13 +38,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
- -------------------------------------------------------------------------------
- VDWAALS -2027.4585 6.6828 4.7254
- EEL -17102.0128 39.7611 28.1154
--EGB -3036.0661 15.1517 10.7138
--ESURF 92.0643 0.2456 0.1737
-+EGB -3036.2753 15.1544 10.7158
-+ESURF 92.0404 0.2552 0.1805
-
- G gas -19129.4713 46.4439 32.8408
--G solv -2944.0018 15.3973 10.8875
-+G solv -2944.2348 15.4096 10.8963
-
--TOTAL -22073.4731 31.0467 21.9533
-+TOTAL -22073.7061 31.0343 21.9445
-
-
- Receptor:
-@@ -52,13 +52,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
- -------------------------------------------------------------------------------
- VDWAALS -1963.0469 6.3796 4.5110
- EEL -17062.3941 41.4017 29.2755
--EGB -3045.5263 17.9328 12.6804
--ESURF 94.5901 0.3006 0.2125
-+EGB -3045.7452 17.9344 12.6815
-+ESURF 94.5395 0.3071 0.2171
-
- G gas -19025.4410 47.7813 33.7865
--G solv -2950.9362 18.2334 12.8929
-+G solv -2951.2056 18.2415 12.8987
-
--TOTAL -21976.3773 29.5480 20.8936
-+TOTAL -21976.6467 29.5398 20.8878
-
-
- Ligand:
-@@ -66,13 +66,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
- -------------------------------------------------------------------------------
- VDWAALS -2.1842 0.9276 0.6559
- EEL -5.8905 0.2643 0.1869
--EGB -28.9823 0.3972 0.2809
--ESURF 5.5752 0.0080 0.0057
-+EGB -28.9847 0.3972 0.2809
-+ESURF 5.5941 0.0255 0.0181
-
- G gas -8.0747 1.1919 0.8428
--G solv -23.4071 0.4052 0.2865
-+G solv -23.3905 0.4228 0.2989
-
--TOTAL -31.4819 1.5971 1.1293
-+TOTAL -31.4653 1.6146 1.1417
-
-
- Differences (Complex - Receptor - Ligand):
-@@ -80,13 +80,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
- -------------------------------------------------------------------------------
- VDWAALS -62.2274 1.2308 0.8703
- EEL -33.7281 1.3763 0.9732
--EGB 38.4425 3.1784 2.2474
--ESURF -8.1010 0.0630 0.0445
-+EGB 38.4546 3.1772 2.2466
-+ESURF -8.0932 0.0774 0.0547
-
- DELTA G gas -95.9555 0.1455 0.1029
--DELTA G solv 30.3415 3.2413 2.2919
-+DELTA G solv 30.3614 3.2545 2.3013
-
--DELTA TOTAL -65.6140 3.0958 2.1890
-+DELTA TOTAL -65.5942 3.1090 2.1984
-
-
- -------------------------------------------------------------------------------
-diff --git a/AmberTools/test/mmpbsa_py/05_Pairwise_Decomp/FINAL_RESULTS_MMPBSA.dat.save b/AmberTools/test/mmpbsa_py/05_Pairwise_Decomp/FINAL_RESULTS_MMPBSA.dat.save
-index f7cbe88..2135ffe 100644
---- a/AmberTools/test/mmpbsa_py/05_Pairwise_Decomp/FINAL_RESULTS_MMPBSA.dat.save
-+++ b/AmberTools/test/mmpbsa_py/05_Pairwise_Decomp/FINAL_RESULTS_MMPBSA.dat.save
-@@ -1,11 +1,11 @@
--| Run on Fri Oct 21 17:35:19 2011
-+| Run on Thu Aug 23 19:09:35 2012
- |
- |Input file:
- |--------------------------------------------------------------
- |MMPBSA input file for running per-residue decomp
- |&general
- | startframe=1, endframe=2, interval=1,
--| keep_files=2, debug_printlevel=2,
-+| keep_files=0, debug_printlevel=2,
- |/
- |&gb
- | igb=5, saltcon=0.1
-@@ -15,7 +15,7 @@
- | csv_format=0,
- |/
- |--------------------------------------------------------------
--|MMPBSA.py Version=3.0
-+|MMPBSA.py Version=12.0
- |Solvated complex topology file: ../EstRAL_Files/sol.top
- |Complex topology file: ../EstRAL_Files/com.top
- |Receptor topology file: ../EstRAL_Files/rec.top
-@@ -39,13 +39,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
- -------------------------------------------------------------------------------
- VDWAALS -2027.4585 6.6828 4.7254
- EEL -17102.0128 39.7611 28.1154
--EGB -3036.0661 15.1517 10.7138
--ESURF 92.0643 0.2456 0.1737
-+EGB -3036.2753 15.1544 10.7158
-+ESURF 92.0404 0.2552 0.1805
-
- G gas -19129.4713 46.4439 32.8408
--G solv -2944.0018 15.3973 10.8875
-+G solv -2944.2348 15.4096 10.8963
-
--TOTAL -22073.4731 31.0467 21.9533
-+TOTAL -22073.7061 31.0343 21.9445
-
-
- Receptor:
-@@ -53,13 +53,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
- -------------------------------------------------------------------------------
- VDWAALS -1963.0469 6.3796 4.5110
- EEL -17062.3941 41.4017 29.2755
--EGB -3045.5263 17.9328 12.6804
--ESURF 94.5901 0.3006 0.2125
-+EGB -3045.7452 17.9344 12.6815
-+ESURF 94.5395 0.3071 0.2171
-
- G gas -19025.4410 47.7813 33.7865
--G solv -2950.9362 18.2334 12.8929
-+G solv -2951.2056 18.2415 12.8987
-
--TOTAL -21976.3773 29.5480 20.8936
-+TOTAL -21976.6467 29.5398 20.8878
-
-
- Ligand:
-@@ -67,13 +67,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
- -------------------------------------------------------------------------------
- VDWAALS -2.1842 0.9276 0.6559
- EEL -5.8905 0.2643 0.1869
--EGB -28.9823 0.3972 0.2809
--ESURF 5.5752 0.0080 0.0057
-+EGB -28.9847 0.3972 0.2809
-+ESURF 5.5941 0.0255 0.0181
-
- G gas -8.0747 1.1919 0.8428
--G solv -23.4071 0.4052 0.2865
-+G solv -23.3905 0.4228 0.2989
-
--TOTAL -31.4819 1.5971 1.1293
-+TOTAL -31.4653 1.6146 1.1417
-
-
- Differences (Complex - Receptor - Ligand):
-@@ -81,13 +81,13 @@ Energy Component Average Std. Dev. Std. Err. of Mean
- -------------------------------------------------------------------------------
- VDWAALS -62.2274 1.2308 0.8703
- EEL -33.7281 1.3763 0.9732
--EGB 38.4425 3.1784 2.2474
--ESURF -8.1010 0.0630 0.0445
-+EGB 38.4546 3.1772 2.2466
-+ESURF -8.0932 0.0774 0.0547
-
- DELTA G gas -95.9555 0.1455 0.1029
--DELTA G solv 30.3415 3.2413 2.2919
-+DELTA G solv 30.3614 3.2545 2.3013
-
--DELTA TOTAL -65.6140 3.0958 2.1890
-+DELTA TOTAL -65.5942 3.1090 2.1984
-
-
- -------------------------------------------------------------------------------
-diff --git a/AmberTools/test/mmpbsa_py/10_QM_MMGBSA/FINAL_RESULTS_MMPBSA.dat.save b/AmberTools/test/mmpbsa_py/10_QM_MMGBSA/FINAL_RESULTS_MMPBSA.dat.save
-index 1c6672d..4dc52b5 100644
---- a/AmberTools/test/mmpbsa_py/10_QM_MMGBSA/FINAL_RESULTS_MMPBSA.dat.save
-+++ b/AmberTools/test/mmpbsa_py/10_QM_MMGBSA/FINAL_RESULTS_MMPBSA.dat.save
-@@ -1,4 +1,4 @@
--| Run on Sun Feb 19 11:48:15 2012
-+| Run on Thu Aug 23 19:12:17 2012
- |
- |Input file:
- |--------------------------------------------------------------
-@@ -13,7 +13,7 @@
- | qm_theory='PM3',
- |/
- |--------------------------------------------------------------
--|MMPBSA.py Version=3.1
-+|MMPBSA.py Version=12.0
- |Solvated complex topology file: ../EstRAL_Files/sol.top
- |Complex topology file: ../EstRAL_Files/com.top
- |Receptor topology file: ../EstRAL_Files/rec.top
-@@ -38,14 +38,14 @@ Energy Component Average Std. Dev. Std. Err. of Mean
- -------------------------------------------------------------------------------
- VDWAALS -2025.2744 7.6103 5.3813
- EEL -17062.4395 41.4020 29.2756
--EGB -3038.1307 14.7141 10.4045
-+EGB -3038.3396 14.7163 10.4060
- ESURF 96.5366 0.2385 0.1686
--ESCF -21.6928 3.7699 2.6658
-+ESCF -21.6939 3.7699 2.6657
-
- G gas -19087.7139 49.0123 34.6570
--G solv -2941.5940 14.4757 10.2358
-+G solv -2941.8030 14.4778 10.2374
-
--TOTAL -22051.0007 30.7667 21.7554
-+TOTAL -22051.2107 30.7647 21.7539
-
-
- Receptor:
-@@ -53,26 +53,26 @@ Energy Component Average Std. Dev. Std. Err. of Mean
- -------------------------------------------------------------------------------
- VDWAALS -1963.0469 6.3796 4.5110
- EEL -17062.3941 41.4017 29.2755
--EGB -3045.5263 17.9328 12.6804
-+EGB -3045.7452 17.9344 12.6815
- ESURF 100.5546 0.3074 0.2173
-
- G gas -19025.4410 47.7813 33.7865
--G solv -2944.9718 17.6255 12.4631
-+G solv -2945.1907 17.6270 12.4642
-
--TOTAL -21970.4127 30.1558 21.3234
-+TOTAL -21970.6316 30.1543 21.3223
-
-
- Ligand:
- Energy Component Average Std. Dev. Std. Err. of Mean
- -------------------------------------------------------------------------------
--EGB -24.0340 0.8659 0.6123
-+EGB -24.0371 0.8661 0.6124
- ESURF 4.4275 0.0229 0.0162
--ESCF 6.8997 1.2609 0.8916
-+ESCF 6.9011 1.2609 0.8916
-
- G gas 0.0000 0.0000 0.0000
--G solv -19.6065 0.8889 0.6285
-+G solv -19.6096 0.8891 0.6287
-
--TOTAL -12.7069 2.1498 1.5201
-+TOTAL -12.7085 2.1499 1.5202
-
-
- Differences (Complex - Receptor - Ligand):
-@@ -80,14 +80,14 @@ Energy Component Average Std. Dev. Std. Err. of Mean
- -------------------------------------------------------------------------------
- VDWAALS -62.2274 1.2308 0.8703
- EEL -0.0454 0.0003 0.0002
--EGB 31.4297 4.0846 2.8882
-+EGB 31.4427 4.0842 2.8880
- ESURF -8.4454 0.0459 0.0325
--ESCF -28.5925 2.5090 1.7741
-+ESCF -28.5950 2.5090 1.7741
-
- DELTA G gas -62.2728 1.2310 0.8705
--DELTA G solv 22.9843 4.0386 2.8558
-+DELTA G solv 22.9973 4.0383 2.8555
-
--DELTA TOTAL -67.8811 2.7607 1.9521
-+DELTA TOTAL -67.8705 2.7603 1.9519
-
-
- -------------------------------------------------------------------------------
-diff --git a/AmberTools/test/parmed/normal_prmtop/final.prmtop.save b/AmberTools/test/parmed/normal_prmtop/final.prmtop.save
-index a7e4428..3ce70b7 100644
---- a/AmberTools/test/parmed/normal_prmtop/final.prmtop.save
-+++ b/AmberTools/test/parmed/normal_prmtop/final.prmtop.save
-@@ -1,4 +1,4 @@
--%VERSION VERSION_STAMP = V0001.000 DATE = 02/28/12 13:10:17
-+%VERSION VERSION_STAMP = V0001.000 DATE = 07/08/12 15:11:06
- %FLAG TITLE
- %FORMAT(20a4)
-
-@@ -1245,63 +1245,63 @@ GLU PHE LEU ASP ALA ASN LEU ALA
- 0.00000000E+00 0.00000000E+00
- %FLAG LENNARD_JONES_ACOEF
- %FORMAT(5E16.8)
-- 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.95480466E+05 2.56678134E+03
-- 1.04308023E+06 2.01791425E+04 9.14716912E+00 2.27401052E+04 2.01823541E+02
-- 6.20665997E+04 5.94667300E+01 6.78771368E+04 8.79040886E+02 3.25969625E+03
-- 7.44975864E+05 1.40467023E+03 7.91544157E+05 1.45985502E+04 4.66922514E+04
-+ 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.96389997E+05 2.56912650E+03
-+ 1.04498714E+06 2.01791425E+04 9.14716912E+00 2.27608820E+04 2.01823541E+02
-+ 6.20665997E+04 5.94667300E+01 6.79391534E+04 8.79040886E+02 3.25969625E+03
-+ 7.44975864E+05 1.40467023E+03 7.92267358E+05 1.45985502E+04 4.66922514E+04
- 5.81803229E+05 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
- 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.82619071E+05 2.27577561E+03
-- 9.24822270E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00
-- 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.47841731E+05 1.12780457E+04
-+ 9.25667242E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00
-+ 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.48433639E+05 1.12780457E+04
- 3.69471530E+04 4.71003287E+05 0.00000000E+00 5.74393458E+05 3.79876399E+05
-- 8.96776989E+04 1.07193646E+02 9.71708117E+04 1.41077189E+03 4.98586848E+03
-+ 8.96776989E+04 1.07193646E+02 9.72595927E+04 1.41077189E+03 4.98586848E+03
- 6.82786631E+04 0.00000000E+00 8.61541883E+04 5.44261042E+04 7.51607703E+03
-- 5.46147253E+04 4.90239937E+01 5.98885646E+04 7.50063100E+02 2.82099197E+03
-+ 5.46147253E+04 4.90239937E+01 5.99432824E+04 7.50063100E+02 2.82099197E+03
- 4.09427581E+04 0.00000000E+00 5.30987710E+04 3.23283631E+04 4.33325458E+03
-- 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.18621074E+04 9.55000044E+02
-+ 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.19277648E+04 9.55000044E+02
- 3.50301067E+03 4.96707306E+04 0.00000000E+00 6.37148278E+04 3.93690817E+04
- 5.34045360E+03 3.03448006E+03 3.76169105E+03 7.91627154E+04 8.90987508E+01
-- 8.59947003E+04 1.21014911E+03 4.33325458E+03 6.00750218E+04 0.00000000E+00
-+ 8.60732702E+04 1.21014911E+03 4.33325458E+03 6.00750218E+04 0.00000000E+00
- 7.62451550E+04 4.77908183E+04 6.55825601E+03 3.76169105E+03 4.64559155E+03
-- 5.71629601E+03 2.01562190E+06 5.97860700E+03 2.09861767E+06 4.93469320E+04
-+ 5.71629601E+03 2.01562190E+06 5.97860700E+03 2.10053510E+06 4.93469320E+04
- 1.42791446E+05 1.61587928E+06 0.00000000E+00 1.86068943E+06 1.32911052E+06
- 2.02461849E+05 1.26338489E+05 1.50848032E+05 1.79647996E+05 4.19430400E+06
-- 9.96389997E+05 2.56912650E+03 1.04403325E+06 2.27608820E+04 6.79391534E+04
-- 7.92267358E+05 0.00000000E+00 9.25667242E+05 6.48433639E+05 9.72595927E+04
-- 5.99432824E+04 7.19277648E+04 8.60732702E+04 2.10053510E+06 1.04498714E+06
-- 8.82619071E+05 2.27577560E+03 9.24822269E+05 2.01619733E+04 6.01816484E+04
-+ 9.44293233E+05 2.12601181E+03 9.96389997E+05 2.01791425E+04 6.20665998E+04
-+ 7.44975864E+05 0.00000000E+00 8.82619071E+05 6.06829343E+05 8.96776989E+04
-+ 5.46147253E+04 6.58473870E+04 7.91627155E+04 2.01562190E+06 9.44293233E+05
-+ 8.82619071E+05 2.27577560E+03 9.25667242E+05 2.01619733E+04 6.01816484E+04
- 7.01803794E+05 0.00000000E+00 8.19971662E+05 5.74393458E+05 8.61541883E+04
-- 5.30987710E+04 6.37148277E+04 7.62451551E+04 1.86068943E+06 9.25667242E+05
-+ 5.30987710E+04 6.37148277E+04 7.62451551E+04 1.86068943E+06 2.00000000E+00
- 8.19971662E+05
- %FLAG LENNARD_JONES_BCOEF
- %FORMAT(5E16.8)
-- 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.36907417E+02 2.06278363E+01
-- 6.75612247E+02 6.45756063E+01 7.57919667E-01 6.13981767E+01 3.56012899E+00
-- 1.13252061E+02 1.93248820E+00 1.06076943E+02 7.42992380E+00 1.43076527E+01
-- 7.50714425E+02 1.79702257E+01 6.93079947E+02 5.79323581E+01 1.03606917E+02
-+ 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.37580700E+02 2.06466831E+01
-+ 6.76847370E+02 6.45756063E+01 7.57919667E-01 6.14542738E+01 3.56012899E+00
-+ 1.13252061E+02 1.93248820E+00 1.06173862E+02 7.42992380E+00 1.43076527E+01
-+ 7.50714425E+02 1.79702257E+01 6.93713186E+02 5.79323581E+01 1.03606917E+02
- 6.99746810E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
- 0.00000000E+00 0.00000000E+00 0.00000000E+00 6.53361429E+02 1.82891803E+01
-- 5.99015525E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00
-- 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.26720080E+02 5.08951803E+01
-+ 5.99562822E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00
-+ 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.27292689E+02 5.08951803E+01
- 9.21192136E+01 6.29300710E+02 0.00000000E+00 5.55666448E+02 5.64885984E+02
-- 1.36131731E+02 2.59456373E+00 1.26919150E+02 9.41257003E+00 1.76949863E+01
-+ 1.36131731E+02 2.59456373E+00 1.27035111E+02 9.41257003E+00 1.76949863E+01
- 1.25287818E+02 0.00000000E+00 1.12529845E+02 1.11805549E+02 2.17257828E+01
-- 1.05031585E+02 1.73473071E+00 9.85097219E+01 6.78541827E+00 1.31591746E+01
-+ 1.05031585E+02 1.73473071E+00 9.85997263E+01 6.78541827E+00 1.31591746E+01
- 9.59185913E+01 0.00000000E+00 8.73413012E+01 8.51921330E+01 1.63092814E+01
-- 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.07908863E+02 7.65648470E+00
-+ 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.08007455E+02 7.65648470E+00
- 1.46638650E+01 1.05648788E+02 0.00000000E+00 9.56748258E+01 9.40124296E+01
- 1.81057616E+01 1.34932874E+01 1.50233639E+01 1.26451907E+02 2.33864085E+00
-- 1.18043746E+02 8.61880722E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00
-+ 1.18151598E+02 8.61880722E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00
- 1.04660679E+02 1.03580945E+02 2.00642027E+01 1.50233639E+01 1.66953734E+01
-- 1.85196588E+01 1.28923404E+03 3.87070358E+01 1.17824605E+03 1.11203892E+02
-+ 1.85196588E+01 1.28923404E+03 3.87070358E+01 1.17932256E+03 1.11203892E+02
- 1.89165096E+02 1.21753341E+03 0.00000000E+00 1.04466382E+03 1.10369829E+03
- 2.25248294E+02 1.75916126E+02 1.92224012E+02 2.09772716E+02 2.04800000E+03
-- 7.37580700E+02 2.06466831E+01 6.76229527E+02 6.14542738E+01 1.06173862E+02
-- 6.93713186E+02 0.00000000E+00 5.99562822E+02 6.27292689E+02 1.27035111E+02
-- 9.85997263E+01 1.08007455E+02 1.18151598E+02 1.17932256E+03 6.76847370E+02
-- 6.53361429E+02 1.82891803E+01 5.99015525E+02 5.44372327E+01 9.40505981E+01
-+ 8.01323529E+02 2.09604198E+01 7.37580700E+02 6.45756063E+01 1.13252062E+02
-+ 7.50714426E+02 0.00000000E+00 6.53361429E+02 6.77220874E+02 1.36131731E+02
-+ 1.05031585E+02 1.15327881E+02 1.26451907E+02 1.28923404E+03 8.01323529E+02
-+ 6.53361429E+02 1.82891803E+01 5.99562822E+02 5.44372327E+01 9.40505981E+01
- 6.14502846E+02 0.00000000E+00 5.31102864E+02 5.55666449E+02 1.12529845E+02
-- 8.73413013E+01 9.56748257E+01 1.04660679E+02 1.04466382E+03 5.99562822E+02
-+ 8.73413013E+01 9.56748257E+01 1.04660679E+02 1.04466382E+03 4.00000000E+00
- 5.31102864E+02
- %FLAG BONDS_INC_HYDROGEN
- %FORMAT(10I8)
-diff --git a/AmberTools/test/parmed/normal_prmtop/prmtop.add_AtNum.save b/AmberTools/test/parmed/normal_prmtop/prmtop.add_AtNum.save
-index a7e4428..3ce70b7 100644
---- a/AmberTools/test/parmed/normal_prmtop/prmtop.add_AtNum.save
-+++ b/AmberTools/test/parmed/normal_prmtop/prmtop.add_AtNum.save
-@@ -1,4 +1,4 @@
--%VERSION VERSION_STAMP = V0001.000 DATE = 02/28/12 13:10:17
-+%VERSION VERSION_STAMP = V0001.000 DATE = 07/08/12 15:11:06
- %FLAG TITLE
- %FORMAT(20a4)
-
-@@ -1245,63 +1245,63 @@ GLU PHE LEU ASP ALA ASN LEU ALA
- 0.00000000E+00 0.00000000E+00
- %FLAG LENNARD_JONES_ACOEF
- %FORMAT(5E16.8)
-- 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.95480466E+05 2.56678134E+03
-- 1.04308023E+06 2.01791425E+04 9.14716912E+00 2.27401052E+04 2.01823541E+02
-- 6.20665997E+04 5.94667300E+01 6.78771368E+04 8.79040886E+02 3.25969625E+03
-- 7.44975864E+05 1.40467023E+03 7.91544157E+05 1.45985502E+04 4.66922514E+04
-+ 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.96389997E+05 2.56912650E+03
-+ 1.04498714E+06 2.01791425E+04 9.14716912E+00 2.27608820E+04 2.01823541E+02
-+ 6.20665997E+04 5.94667300E+01 6.79391534E+04 8.79040886E+02 3.25969625E+03
-+ 7.44975864E+05 1.40467023E+03 7.92267358E+05 1.45985502E+04 4.66922514E+04
- 5.81803229E+05 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
- 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.82619071E+05 2.27577561E+03
-- 9.24822270E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00
-- 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.47841731E+05 1.12780457E+04
-+ 9.25667242E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00
-+ 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.48433639E+05 1.12780457E+04
- 3.69471530E+04 4.71003287E+05 0.00000000E+00 5.74393458E+05 3.79876399E+05
-- 8.96776989E+04 1.07193646E+02 9.71708117E+04 1.41077189E+03 4.98586848E+03
-+ 8.96776989E+04 1.07193646E+02 9.72595927E+04 1.41077189E+03 4.98586848E+03
- 6.82786631E+04 0.00000000E+00 8.61541883E+04 5.44261042E+04 7.51607703E+03
-- 5.46147253E+04 4.90239937E+01 5.98885646E+04 7.50063100E+02 2.82099197E+03
-+ 5.46147253E+04 4.90239937E+01 5.99432824E+04 7.50063100E+02 2.82099197E+03
- 4.09427581E+04 0.00000000E+00 5.30987710E+04 3.23283631E+04 4.33325458E+03
-- 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.18621074E+04 9.55000044E+02
-+ 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.19277648E+04 9.55000044E+02
- 3.50301067E+03 4.96707306E+04 0.00000000E+00 6.37148278E+04 3.93690817E+04
- 5.34045360E+03 3.03448006E+03 3.76169105E+03 7.91627154E+04 8.90987508E+01
-- 8.59947003E+04 1.21014911E+03 4.33325458E+03 6.00750218E+04 0.00000000E+00
-+ 8.60732702E+04 1.21014911E+03 4.33325458E+03 6.00750218E+04 0.00000000E+00
- 7.62451550E+04 4.77908183E+04 6.55825601E+03 3.76169105E+03 4.64559155E+03
-- 5.71629601E+03 2.01562190E+06 5.97860700E+03 2.09861767E+06 4.93469320E+04
-+ 5.71629601E+03 2.01562190E+06 5.97860700E+03 2.10053510E+06 4.93469320E+04
- 1.42791446E+05 1.61587928E+06 0.00000000E+00 1.86068943E+06 1.32911052E+06
- 2.02461849E+05 1.26338489E+05 1.50848032E+05 1.79647996E+05 4.19430400E+06
-- 9.96389997E+05 2.56912650E+03 1.04403325E+06 2.27608820E+04 6.79391534E+04
-- 7.92267358E+05 0.00000000E+00 9.25667242E+05 6.48433639E+05 9.72595927E+04
-- 5.99432824E+04 7.19277648E+04 8.60732702E+04 2.10053510E+06 1.04498714E+06
-- 8.82619071E+05 2.27577560E+03 9.24822269E+05 2.01619733E+04 6.01816484E+04
-+ 9.44293233E+05 2.12601181E+03 9.96389997E+05 2.01791425E+04 6.20665998E+04
-+ 7.44975864E+05 0.00000000E+00 8.82619071E+05 6.06829343E+05 8.96776989E+04
-+ 5.46147253E+04 6.58473870E+04 7.91627155E+04 2.01562190E+06 9.44293233E+05
-+ 8.82619071E+05 2.27577560E+03 9.25667242E+05 2.01619733E+04 6.01816484E+04
- 7.01803794E+05 0.00000000E+00 8.19971662E+05 5.74393458E+05 8.61541883E+04
-- 5.30987710E+04 6.37148277E+04 7.62451551E+04 1.86068943E+06 9.25667242E+05
-+ 5.30987710E+04 6.37148277E+04 7.62451551E+04 1.86068943E+06 2.00000000E+00
- 8.19971662E+05
- %FLAG LENNARD_JONES_BCOEF
- %FORMAT(5E16.8)
-- 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.36907417E+02 2.06278363E+01
-- 6.75612247E+02 6.45756063E+01 7.57919667E-01 6.13981767E+01 3.56012899E+00
-- 1.13252061E+02 1.93248820E+00 1.06076943E+02 7.42992380E+00 1.43076527E+01
-- 7.50714425E+02 1.79702257E+01 6.93079947E+02 5.79323581E+01 1.03606917E+02
-+ 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.37580700E+02 2.06466831E+01
-+ 6.76847370E+02 6.45756063E+01 7.57919667E-01 6.14542738E+01 3.56012899E+00
-+ 1.13252061E+02 1.93248820E+00 1.06173862E+02 7.42992380E+00 1.43076527E+01
-+ 7.50714425E+02 1.79702257E+01 6.93713186E+02 5.79323581E+01 1.03606917E+02
- 6.99746810E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
- 0.00000000E+00 0.00000000E+00 0.00000000E+00 6.53361429E+02 1.82891803E+01
-- 5.99015525E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00
-- 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.26720080E+02 5.08951803E+01
-+ 5.99562822E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00
-+ 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.27292689E+02 5.08951803E+01
- 9.21192136E+01 6.29300710E+02 0.00000000E+00 5.55666448E+02 5.64885984E+02
-- 1.36131731E+02 2.59456373E+00 1.26919150E+02 9.41257003E+00 1.76949863E+01
-+ 1.36131731E+02 2.59456373E+00 1.27035111E+02 9.41257003E+00 1.76949863E+01
- 1.25287818E+02 0.00000000E+00 1.12529845E+02 1.11805549E+02 2.17257828E+01
-- 1.05031585E+02 1.73473071E+00 9.85097219E+01 6.78541827E+00 1.31591746E+01
-+ 1.05031585E+02 1.73473071E+00 9.85997263E+01 6.78541827E+00 1.31591746E+01
- 9.59185913E+01 0.00000000E+00 8.73413012E+01 8.51921330E+01 1.63092814E+01
-- 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.07908863E+02 7.65648470E+00
-+ 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.08007455E+02 7.65648470E+00
- 1.46638650E+01 1.05648788E+02 0.00000000E+00 9.56748258E+01 9.40124296E+01
- 1.81057616E+01 1.34932874E+01 1.50233639E+01 1.26451907E+02 2.33864085E+00
-- 1.18043746E+02 8.61880722E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00
-+ 1.18151598E+02 8.61880722E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00
- 1.04660679E+02 1.03580945E+02 2.00642027E+01 1.50233639E+01 1.66953734E+01
-- 1.85196588E+01 1.28923404E+03 3.87070358E+01 1.17824605E+03 1.11203892E+02
-+ 1.85196588E+01 1.28923404E+03 3.87070358E+01 1.17932256E+03 1.11203892E+02
- 1.89165096E+02 1.21753341E+03 0.00000000E+00 1.04466382E+03 1.10369829E+03
- 2.25248294E+02 1.75916126E+02 1.92224012E+02 2.09772716E+02 2.04800000E+03
-- 7.37580700E+02 2.06466831E+01 6.76229527E+02 6.14542738E+01 1.06173862E+02
-- 6.93713186E+02 0.00000000E+00 5.99562822E+02 6.27292689E+02 1.27035111E+02
-- 9.85997263E+01 1.08007455E+02 1.18151598E+02 1.17932256E+03 6.76847370E+02
-- 6.53361429E+02 1.82891803E+01 5.99015525E+02 5.44372327E+01 9.40505981E+01
-+ 8.01323529E+02 2.09604198E+01 7.37580700E+02 6.45756063E+01 1.13252062E+02
-+ 7.50714426E+02 0.00000000E+00 6.53361429E+02 6.77220874E+02 1.36131731E+02
-+ 1.05031585E+02 1.15327881E+02 1.26451907E+02 1.28923404E+03 8.01323529E+02
-+ 6.53361429E+02 1.82891803E+01 5.99562822E+02 5.44372327E+01 9.40505981E+01
- 6.14502846E+02 0.00000000E+00 5.31102864E+02 5.55666449E+02 1.12529845E+02
-- 8.73413013E+01 9.56748257E+01 1.04660679E+02 1.04466382E+03 5.99562822E+02
-+ 8.73413013E+01 9.56748257E+01 1.04660679E+02 1.04466382E+03 4.00000000E+00
- 5.31102864E+02
- %FLAG BONDS_INC_HYDROGEN
- %FORMAT(10I8)
-diff --git a/AmberTools/test/parmed/normal_prmtop/prmtop.new_lj.save b/AmberTools/test/parmed/normal_prmtop/prmtop.new_lj.save
-index 0a2a704..d984445 100644
---- a/AmberTools/test/parmed/normal_prmtop/prmtop.new_lj.save
-+++ b/AmberTools/test/parmed/normal_prmtop/prmtop.new_lj.save
-@@ -1,4 +1,4 @@
--%VERSION VERSION_STAMP = V0001.000 DATE = 02/21/12 17:31:04
-+%VERSION VERSION_STAMP = V0001.000 DATE = 07/08/12 15:11:06
- %FLAG TITLE
- %FORMAT(20a4)
-
-@@ -1245,63 +1245,63 @@ GLU PHE LEU ASP ALA ASN LEU ALA
- 0.00000000E+00 0.00000000E+00
- %FLAG LENNARD_JONES_ACOEF
- %FORMAT(5E16.8)
-- 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.95480466E+05 2.56678134E+03
-- 1.04308023E+06 2.01791425E+04 9.14716912E+00 2.27401052E+04 2.01823541E+02
-- 6.20665997E+04 5.94667300E+01 6.78771368E+04 8.79040886E+02 3.25969625E+03
-- 7.44975864E+05 1.40467023E+03 7.91544157E+05 1.45985502E+04 4.66922514E+04
-+ 9.44293233E+05 2.12601181E+03 1.39982777E-01 9.96389997E+05 2.56912650E+03
-+ 1.04498714E+06 2.01791425E+04 9.14716912E+00 2.27608820E+04 2.01823541E+02
-+ 6.20665997E+04 5.94667300E+01 6.79391534E+04 8.79040886E+02 3.25969625E+03
-+ 7.44975864E+05 1.40467023E+03 7.92267358E+05 1.45985502E+04 4.66922514E+04
- 5.81803229E+05 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
- 0.00000000E+00 0.00000000E+00 0.00000000E+00 8.82619071E+05 2.27577561E+03
-- 9.24822270E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00
-- 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.47841731E+05 1.12780457E+04
-+ 9.25667242E+05 2.01619733E+04 6.01816484E+04 7.01803794E+05 0.00000000E+00
-+ 8.19971662E+05 6.06829342E+05 1.02595236E+03 6.48433639E+05 1.12780457E+04
- 3.69471530E+04 4.71003287E+05 0.00000000E+00 5.74393458E+05 3.79876399E+05
-- 8.96776989E+04 1.07193646E+02 9.71708117E+04 1.41077189E+03 4.98586848E+03
-+ 8.96776989E+04 1.07193646E+02 9.72595927E+04 1.41077189E+03 4.98586848E+03
- 6.82786631E+04 0.00000000E+00 8.61541883E+04 5.44261042E+04 7.51607703E+03
-- 5.46147253E+04 4.90239937E+01 5.98885646E+04 7.50063100E+02 2.82099197E+03
-+ 5.46147253E+04 4.90239937E+01 5.99432824E+04 7.50063100E+02 2.82099197E+03
- 4.09427581E+04 0.00000000E+00 5.30987710E+04 3.23283631E+04 4.33325458E+03
-- 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.18621074E+04 9.55000044E+02
-+ 2.43828624E+03 6.58473870E+04 6.63368273E+01 7.19277648E+04 9.55000044E+02
- 3.50301067E+03 4.96707306E+04 0.00000000E+00 6.37148278E+04 3.93690817E+04
- 5.34045360E+03 3.03448006E+03 3.76169105E+03 7.91627154E+04 8.90987508E+01
-- 8.59947003E+04 1.21014911E+03 4.33325458E+03 6.00750218E+04 0.00000000E+00
-+ 8.60732702E+04 1.21014911E+03 4.33325458E+03 6.00750218E+04 0.00000000E+00
- 7.62451550E+04 4.77908183E+04 6.55825601E+03 3.76169105E+03 4.64559155E+03
-- 5.71629601E+03 2.01562190E+06 5.97860700E+03 2.09861767E+06 4.93469320E+04
-+ 5.71629601E+03 2.01562190E+06 5.97860700E+03 2.10053510E+06 4.93469320E+04
- 1.42791446E+05 1.61587928E+06 0.00000000E+00 1.86068943E+06 1.32911052E+06
- 2.02461849E+05 1.26338489E+05 1.50848032E+05 1.79647996E+05 4.19430400E+06
-- 9.96389997E+05 2.56912650E+03 1.04403325E+06 2.27608820E+04 6.79391534E+04
-- 7.92267358E+05 0.00000000E+00 9.25667242E+05 6.48433639E+05 9.72595927E+04
-- 5.99432824E+04 7.19277648E+04 8.60732702E+04 2.10053510E+06 1.04498714E+06
-- 8.82619071E+05 2.27577560E+03 9.24822269E+05 2.01619733E+04 6.01816484E+04
-+ 9.44293233E+05 2.12601181E+03 9.96389997E+05 2.01791425E+04 6.20665998E+04
-+ 7.44975864E+05 0.00000000E+00 8.82619071E+05 6.06829343E+05 8.96776989E+04
-+ 5.46147253E+04 6.58473870E+04 7.91627155E+04 2.01562190E+06 9.44293233E+05
-+ 8.82619071E+05 2.27577560E+03 9.25667242E+05 2.01619733E+04 6.01816484E+04
- 7.01803794E+05 0.00000000E+00 8.19971662E+05 5.74393458E+05 8.61541883E+04
-- 5.30987710E+04 6.37148277E+04 7.62451551E+04 1.86068943E+06 9.25667242E+05
-+ 5.30987710E+04 6.37148277E+04 7.62451551E+04 1.86068943E+06 2.00000000E+00
- 8.19971662E+05
- %FLAG LENNARD_JONES_BCOEF
- %FORMAT(5E16.8)
-- 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.36907417E+02 2.06278363E+01
-- 6.75612247E+02 6.45756063E+01 7.57919667E-01 6.13981767E+01 3.56012899E+00
-- 1.13252061E+02 1.93248820E+00 1.06076943E+02 7.42992380E+00 1.43076527E+01
-- 7.50714425E+02 1.79702257E+01 6.93079947E+02 5.79323581E+01 1.03606917E+02
-+ 8.01323529E+02 2.09604198E+01 9.37598976E-02 7.37580700E+02 2.06466831E+01
-+ 6.76847370E+02 6.45756063E+01 7.57919667E-01 6.14542738E+01 3.56012899E+00
-+ 1.13252061E+02 1.93248820E+00 1.06173862E+02 7.42992380E+00 1.43076527E+01
-+ 7.50714425E+02 1.79702257E+01 6.93713186E+02 5.79323581E+01 1.03606917E+02
- 6.99746810E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
- 0.00000000E+00 0.00000000E+00 0.00000000E+00 6.53361429E+02 1.82891803E+01
-- 5.99015525E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00
-- 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.26720080E+02 5.08951803E+01
-+ 5.99562822E+02 5.44372326E+01 9.40505980E+01 6.14502845E+02 0.00000000E+00
-+ 5.31102864E+02 6.77220874E+02 1.53505284E+01 6.27292689E+02 5.08951803E+01
- 9.21192136E+01 6.29300710E+02 0.00000000E+00 5.55666448E+02 5.64885984E+02
-- 1.36131731E+02 2.59456373E+00 1.26919150E+02 9.41257003E+00 1.76949863E+01
-+ 1.36131731E+02 2.59456373E+00 1.27035111E+02 9.41257003E+00 1.76949863E+01
- 1.25287818E+02 0.00000000E+00 1.12529845E+02 1.11805549E+02 2.17257828E+01
-- 1.05031585E+02 1.73473071E+00 9.85097219E+01 6.78541827E+00 1.31591746E+01
-+ 1.05031585E+02 1.73473071E+00 9.85997263E+01 6.78541827E+00 1.31591746E+01
- 9.59185913E+01 0.00000000E+00 8.73413012E+01 8.51921330E+01 1.63092814E+01
-- 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.07908863E+02 7.65648470E+00
-+ 1.20953369E+01 1.15327881E+02 2.01792524E+00 1.08007455E+02 7.65648470E+00
- 1.46638650E+01 1.05648788E+02 0.00000000E+00 9.56748258E+01 9.40124296E+01
- 1.81057616E+01 1.34932874E+01 1.50233639E+01 1.26451907E+02 2.33864085E+00
-- 1.18043746E+02 8.61880722E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00
-+ 1.18151598E+02 8.61880722E+00 1.63092814E+01 1.16187983E+02 0.00000000E+00
- 1.04660679E+02 1.03580945E+02 2.00642027E+01 1.50233639E+01 1.66953734E+01
-- 1.85196588E+01 1.28923404E+03 3.87070358E+01 1.17824605E+03 1.11203892E+02
-+ 1.85196588E+01 1.28923404E+03 3.87070358E+01 1.17932256E+03 1.11203892E+02
- 1.89165096E+02 1.21753341E+03 0.00000000E+00 1.04466382E+03 1.10369829E+03
- 2.25248294E+02 1.75916126E+02 1.92224012E+02 2.09772716E+02 2.04800000E+03
-- 7.37580700E+02 2.06466831E+01 6.76229527E+02 6.14542738E+01 1.06173862E+02
-- 6.93713186E+02 0.00000000E+00 5.99562822E+02 6.27292689E+02 1.27035111E+02
-- 9.85997263E+01 1.08007455E+02 1.18151598E+02 1.17932256E+03 6.76847370E+02
-- 6.53361429E+02 1.82891803E+01 5.99015525E+02 5.44372327E+01 9.40505981E+01
-+ 8.01323529E+02 2.09604198E+01 7.37580700E+02 6.45756063E+01 1.13252062E+02
-+ 7.50714426E+02 0.00000000E+00 6.53361429E+02 6.77220874E+02 1.36131731E+02
-+ 1.05031585E+02 1.15327881E+02 1.26451907E+02 1.28923404E+03 8.01323529E+02
-+ 6.53361429E+02 1.82891803E+01 5.99562822E+02 5.44372327E+01 9.40505981E+01
- 6.14502846E+02 0.00000000E+00 5.31102864E+02 5.55666449E+02 1.12529845E+02
-- 8.73413013E+01 9.56748257E+01 1.04660679E+02 1.04466382E+03 5.99562822E+02
-+ 8.73413013E+01 9.56748257E+01 1.04660679E+02 1.04466382E+03 4.00000000E+00
- 5.31102864E+02
- %FLAG BONDS_INC_HYDROGEN
- %FORMAT(10I8)
-diff --git a/dat/leap/cmd/leaprc.pol12 b/dat/leap/cmd/leaprc.pol12
-deleted file mode 100644
-index 2bb10c7..0000000
---- a/dat/leap/cmd/leaprc.pol12
-+++ /dev/null
-@@ -1,182 +0,0 @@
--logFile leap.log
--#
--# ----- leaprc for loading pol12, the 2012 pol. force field, no lone pairs
--#
--#
--addAtomTypes {
-- { "H" "H" "sp3" }
-- { "HO" "H" "sp3" }
-- { "HS" "H" "sp3" }
-- { "H1" "H" "sp3" }
-- { "H2" "H" "sp3" }
-- { "H3" "H" "sp3" }
-- { "H4" "H" "sp3" }
-- { "H5" "H" "sp3" }
-- { "HW" "H" "sp3" }
-- { "HC" "H" "sp3" }
-- { "HA" "H" "sp3" }
-- { "HP" "H" "sp3" }
-- { "OH" "O" "sp3" }
-- { "OS" "O" "sp3" }
-- { "O" "O" "sp2" }
-- { "O2" "O" "sp2" }
-- { "OW" "O" "sp3" }
-- { "CT" "C" "sp3" }
-- { "CH" "C" "sp3" }
-- { "C2" "C" "sp3" }
-- { "C3" "C" "sp3" }
-- { "C" "C" "sp2" }
-- { "C*" "C" "sp2" }
-- { "CA" "C" "sp2" }
-- { "CB" "C" "sp2" }
-- { "CC" "C" "sp2" }
-- { "CN" "C" "sp2" }
-- { "CM" "C" "sp2" }
-- { "CK" "C" "sp2" }
-- { "CQ" "C" "sp2" }
-- { "CD" "C" "sp2" }
-- { "CE" "C" "sp2" }
-- { "CF" "C" "sp2" }
-- { "CP" "C" "sp2" }
-- { "CI" "C" "sp2" }
-- { "CJ" "C" "sp2" }
-- { "CW" "C" "sp2" }
-- { "CV" "C" "sp2" }
-- { "CR" "C" "sp2" }
-- { "CA" "C" "sp2" }
-- { "CY" "C" "sp2" }
-- { "C0" "Ca" "sp3" }
-- { "MG" "Mg" "sp3" }
-- { "N" "N" "sp2" }
-- { "NA" "N" "sp2" }
-- { "N2" "N" "sp2" }
-- { "N*" "N" "sp2" }
-- { "NP" "N" "sp2" }
-- { "NQ" "N" "sp2" }
-- { "NB" "N" "sp2" }
-- { "NC" "N" "sp2" }
-- { "NT" "N" "sp3" }
-- { "N3" "N" "sp3" }
-- { "S" "S" "sp3" }
-- { "SH" "S" "sp3" }
-- { "P" "P" "sp3" }
-- { "EP" "" "sp3" }
-- { "F" "F" "sp3" }
-- { "CL" "Cl" "sp3" }
-- { "BR" "Br" "sp3" }
-- { "I" "I" "sp3" }
-- { "FE" "Fe" "sp3" }
--# things should be there
-- { "IM" "Cl" "sp3" }
-- { "IP" "Na" "sp3" }
-- { "Li" "Li" "sp3" }
-- { "K" "K" "sp3" }
-- { "Rb" "Rb" "sp3" }
-- { "Cs" "Cs" "sp3" }
-- { "Zn" "Zn" "sp3" }
-- { "IB" "Na" "sp3" }
--# "new" types
-- { "H0" "H" "sp3" }
--
--}
--#
--# Load the main parameter set.
--#
--set default DIPOLE_DAMP_FACTOR 2.5873
--set default sceescalefactor 1.0
--set default scnbscalefactor 2.0
--set default CMAP on
--
--parm11 = loadamberparams parmpol12.dat
--parmpol= loadamberparams frcmod.pol12
--#
--# Load main chain and terminating
--# amino acid libraries.
--#
--loadOff aminoctpol12.lib
--loadOff aminontpol12.lib
--loadOff aminopol12.lib
--
--loadOff ions94.lib
--loadOff solvents.lib
--#HOH = TP3
--#WAT = TP3
--HOH = PL3
--WAT = PL3
--
--#
--# Define the PDB name map for the amino acids and DNA.
--#
--addPdbResMap {
-- { 0 "ALA" "NALA" } { 1 "ALA" "CALA" }
-- { 0 "ARG" "NARG" } { 1 "ARG" "CARG" }
-- { 0 "ASN" "NASN" } { 1 "ASN" "CASN" }
-- { 0 "ASP" "NASP" } { 1 "ASP" "CASP" }
-- { 0 "CYS" "NCYS" } { 1 "CYS" "CCYS" }
-- { 0 "CYX" "NCYX" } { 1 "CYX" "CCYX" }
-- { 0 "GLN" "NGLN" } { 1 "GLN" "CGLN" }
-- { 0 "GLU" "NGLU" } { 1 "GLU" "CGLU" }
-- { 0 "GLY" "NGLY" } { 1 "GLY" "CGLY" }
-- { 0 "HID" "NHID" } { 1 "HID" "CHID" }
-- { 0 "HIE" "NHIE" } { 1 "HIE" "CHIE" }
-- { 0 "HIP" "NHIP" } { 1 "HIP" "CHIP" }
-- { 0 "ILE" "NILE" } { 1 "ILE" "CILE" }
-- { 0 "LEU" "NLEU" } { 1 "LEU" "CLEU" }
-- { 0 "LYS" "NLYS" } { 1 "LYS" "CLYS" }
-- { 0 "MET" "NMET" } { 1 "MET" "CMET" }
-- { 0 "PHE" "NPHE" } { 1 "PHE" "CPHE" }
-- { 0 "PRO" "NPRO" } { 1 "PRO" "CPRO" }
-- { 0 "SER" "NSER" } { 1 "SER" "CSER" }
-- { 0 "THR" "NTHR" } { 1 "THR" "CTHR" }
-- { 0 "TRP" "NTRP" } { 1 "TRP" "CTRP" }
-- { 0 "TYR" "NTYR" } { 1 "TYR" "CTYR" }
-- { 0 "VAL" "NVAL" } { 1 "VAL" "CVAL" }
-- { 0 "HIS" "NHIS" } { 1 "HIS" "CHIS" }
-- { 0 "GUA" "DG5" } { 1 "GUA" "DG3" } { "GUA" "DG" }
-- { 0 "ADE" "DA5" } { 1 "ADE" "DA3" } { "ADE" "DA" }
-- { 0 "CYT" "DC5" } { 1 "CYT" "DC3" } { "CYT" "DC" }
-- { 0 "THY" "DT5" } { 1 "THY" "DT3" } { "THY" "DT" }
-- { 0 "G" "DG5" } { 1 "G" "DG3" } { "G" "DG" } { "GN" "DGN" }
-- { 0 "A" "DA5" } { 1 "A" "DA3" } { "A" "DA" } { "AN" "DAN" }
-- { 0 "C" "DC5" } { 1 "C" "DC3" } { "C" "DC" } { "CN" "DCN" }
-- { 0 "T" "DT5" } { 1 "T" "DT3" } { "T" "DT" } { "TN" "DTN" }
-- { 0 "C5" "DC5" }
-- { 0 "G5" "DG5" }
-- { 0 "A5" "DA5" }
-- { 0 "T5" "DT5" }
-- { 1 "C3" "DC3" }
-- { 1 "G3" "DG3" }
-- { 1 "A3" "DA3" }
-- { 1 "T3" "DT3" }
--
--}
--
--addPdbAtomMap {
-- { "O5*" "O5'" }
-- { "C5*" "C5'" }
-- { "C4*" "C4'" }
-- { "O4*" "O4'" }
-- { "C3*" "C3'" }
-- { "O3*" "O3'" }
-- { "C2*" "C2'" }
-- { "C1*" "C1'" }
-- { "C5M" "C7" }
-- { "H1*" "H1'" }
-- { "H2*1" "H2'1" }
-- { "H2*2" "H2'2" }
-- { "H3*" "H3'" }
-- { "H4*" "H4'" }
-- { "H5*1" "H5'1" }
-- { "H5*2" "H5'2" }
--# old ff atom names -> new
-- { "O1'" "O4'" }
-- { "OA" "O1P" }
-- { "OB" "O2P" }
--}
--
--#
--# assumed that most often proteins use HIE
--#
--NHIS = NHIE
--HIS = HIE
--CHIS = CHIE
-diff --git a/dat/leap/lib/aminoctpol12.lib b/dat/leap/lib/aminoctpol12.lib
-deleted file mode 100644
-index fa60138..0000000
---- a/dat/leap/lib/aminoctpol12.lib
-+++ /dev/null
-@@ -1,3677 +0,0 @@
--!!index array str
-- "CALA"
-- "CARG"
-- "CASH"
-- "CASN"
-- "CASP"
-- "CCYM"
-- "CCYS"
-- "CCYX"
-- "CGLH"
-- "CGLN"
-- "CGLU"
-- "CGLY"
-- "CHID"
-- "CHIE"
-- "CHIP"
-- "CILE"
-- "CLEU"
-- "CLYN"
-- "CLYS"
-- "CMET"
-- "CPHE"
-- "CPRO"
-- "CSER"
-- "CTHR"
-- "CTRP"
-- "CTYR"
-- "CVAL"
-- "NME"
--!entry.CALA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.139420
-- "HA" "H1" 0 1 131072 4 1 0.100300
-- "CB" "CT" 0 1 131072 5 6 -0.168880
-- "HB1" "HC" 0 1 131072 6 1 0.087020
-- "HB2" "HC" 0 1 131072 7 1 0.087020
-- "HB3" "HC" 0 1 131072 8 1 0.087020
-- "C" "C" 0 1 131072 9 6 0.705530
-- "O" "O2" 0 1 131072 10 8 -0.822990
-- "OXT" "O2" 0 1 131072 11 8 -0.822990
--!entry.CALA.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB1" "HC" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CALA.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CALA.unit.childsequence single int
-- 2
--!entry.CALA.unit.connect array int
-- 1
-- 0
--!entry.CALA.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 9 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 9 10 1
-- 9 11 1
--!entry.CALA.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
--!entry.CALA.unit.name single str
-- "CALA"
--!entry.CALA.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 3.877484 3.115795 2.131197
-- 4.075059 4.623017 1.205786
-- 2.496995 3.801075 1.241379
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CALA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CALA.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CALA" 1 12 1 "p" 0
--!entry.CALA.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CALA.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CALA.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CARG.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.246160
-- "HA" "H1" 0 1 131072 4 1 0.166180
-- "CB" "CT" 0 1 131072 5 6 0.246480
-- "HB2" "HC" 0 1 131072 6 1 -0.008560
-- "HB3" "HC" 0 1 131072 7 1 -0.008560
-- "CG" "CT" 0 1 131072 8 6 -0.353440
-- "HG2" "HC" 0 1 131072 9 1 0.103290
-- "HG3" "HC" 0 1 131072 10 1 0.103290
-- "CD" "CT" 0 1 131072 11 6 0.608250
-- "HD2" "H1" 0 1 131072 12 1 -0.078660
-- "HD3" "H1" 0 1 131072 13 1 -0.078660
-- "NE" "N2" 0 1 131072 14 7 -0.792460
-- "HE" "H" 0 1 131072 15 1 0.406710
-- "CZ" "CA" 0 1 131072 16 6 1.125120
-- "NH1" "N2" 0 1 131072 17 7 -0.963900
-- "HH11" "H" 0 1 131072 18 1 0.447010
-- "HH12" "H" 0 1 131072 19 1 0.447010
-- "NH2" "N2" 0 1 131072 20 7 -0.963900
-- "HH21" "H" 0 1 131072 21 1 0.447010
-- "HH22" "H" 0 1 131072 22 1 0.447010
-- "C" "C" 0 1 131072 23 6 0.705530
-- "O" "O2" 0 1 131072 24 8 -0.822990
-- "OXT" "O2" 0 1 131072 25 8 -0.822990
--!entry.CARG.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "CT" 0 -1 0.0
-- "HD2" "H1" 0 -1 0.0
-- "HD3" "H1" 0 -1 0.0
-- "NE" "N2" 0 -1 0.0
-- "HE" "H" 0 -1 0.0
-- "CZ" "CA" 0 -1 0.0
-- "NH1" "N2" 0 -1 0.0
-- "HH11" "H" 0 -1 0.0
-- "HH12" "H" 0 -1 0.0
-- "NH2" "N2" 0 -1 0.0
-- "HH21" "H" 0 -1 0.0
-- "HH22" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CARG.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CARG.unit.childsequence single int
-- 2
--!entry.CARG.unit.connect array int
-- 1
-- 0
--!entry.CARG.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 23 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 11 14 1
-- 14 15 1
-- 14 16 1
-- 16 17 1
-- 16 20 1
-- 17 18 1
-- 17 19 1
-- 20 21 1
-- 20 22 1
-- 23 24 1
-- 23 25 1
--!entry.CARG.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
-- "R" 1 "A" 23
-- "R" 1 "A" 24
-- "R" 1 "A" 25
--!entry.CARG.unit.name single str
-- "CARG"
--!entry.CARG.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.881105 5.817645 2.426721
-- 2.801135 5.964881 2.435959
-- 4.181626 5.279602 3.325774
-- 4.540320 7.142723 2.424483
-- 5.151805 7.375492 1.655065
-- 4.364284 8.040989 3.389382
-- 3.575026 7.807606 4.434133
-- 3.088949 6.925423 4.508848
-- 3.465367 8.513631 5.147998
-- 5.006254 9.201287 3.286991
-- 5.604855 9.375325 2.492329
-- 4.892216 9.903045 4.004368
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CARG.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CARG" 1 26 1 "p" 0
--!entry.CARG.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CARG.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CARG.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CASH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 0.020630
-- "HA" "H1" 0 1 131072 4 1 0.028510
-- "CB" "CT" 0 1 131072 5 6 -0.181320
-- "HB2" "HC" 0 1 131072 6 1 0.139090
-- "HB3" "HC" 0 1 131072 7 1 0.139090
-- "CG" "C" 0 1 131072 8 6 0.590540
-- "OD1" "O" 0 1 131072 9 8 -0.551750
-- "OD2" "OH" 0 1 131072 10 8 -0.583910
-- "HD2" "HO" 0 1 131072 11 1 0.452180
-- "C" "C" 0 1 131072 12 6 0.705530
-- "O" "O2" 0 1 131072 13 8 -0.822990
-- "OXT" "O2" 0 1 131072 14 8 -0.822990
--!entry.CASH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "C" 0 -1 0.0
-- "OD1" "O" 0 -1 0.0
-- "OD2" "OH" 0 -1 0.0
-- "HD2" "HO" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CASH.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CASH.unit.childsequence single int
-- 2
--!entry.CASH.unit.connect array int
-- 1
-- 0
--!entry.CASH.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 12 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 10 11 1
-- 12 13 1
-- 12 14 1
--!entry.CASH.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
--!entry.CASH.unit.name single str
-- "CASH"
--!entry.CASH.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.275101 5.011380 1.194527
-- 3.669108 5.954940 0.620011
-- 5.407731 5.091879 1.740667
-- 5.742902 5.987179 1.652920
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CASH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CASH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CASH" 1 15 1 "p" 0
--!entry.CASH.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CASH.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CASH.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CASN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.052240
-- "HA" "H1" 0 1 131072 4 1 0.042740
-- "CB" "CT" 0 1 131072 5 6 -0.207320
-- "HB2" "HC" 0 1 131072 6 1 0.119980
-- "HB3" "HC" 0 1 131072 7 1 0.119980
-- "CG" "C" 0 1 131072 8 6 0.659810
-- "OD1" "O" 0 1 131072 9 8 -0.563050
-- "ND2" "N" 0 1 131072 10 7 -0.856360
-- "HD21" "H" 0 1 131072 11 1 0.394760
-- "HD22" "H" 0 1 131072 12 1 0.394760
-- "C" "C" 0 1 131072 13 6 0.705530
-- "O" "O2" 0 1 131072 14 8 -0.822990
-- "OXT" "O2" 0 1 131072 15 8 -0.822990
--!entry.CASN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "C" 0 -1 0.0
-- "OD1" "O" 0 -1 0.0
-- "ND2" "N" 0 -1 0.0
-- "HD21" "H" 0 -1 0.0
-- "HD22" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CASN.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CASN.unit.childsequence single int
-- 2
--!entry.CASN.unit.connect array int
-- 1
-- 0
--!entry.CASN.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 13 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 10 11 1
-- 10 12 1
-- 13 14 1
-- 13 15 1
--!entry.CASN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
--!entry.CASN.unit.name single str
-- "CASN"
--!entry.CASN.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.253700 5.017112 1.232144
-- 5.005299 5.340406 0.315072
-- 3.984885 5.817909 2.265917
-- 4.408015 6.733702 2.314743
-- 3.359611 5.504297 2.994464
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CASN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CASN" 1 16 1 "p" 0
--!entry.CASN.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CASN.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CASN.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CASP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.132120
-- "HA" "H1" 0 1 131072 4 1 0.050730
-- "CB" "CT" 0 1 131072 5 6 -0.282900
-- "HB2" "HC" 0 1 131072 6 1 0.084070
-- "HB3" "HC" 0 1 131072 7 1 0.084070
-- "CG" "C" 0 1 131072 8 6 0.894610
-- "OD1" "O2" 0 1 131072 9 8 -0.822700
-- "OD2" "O2" 0 1 131072 10 8 -0.822700
-- "C" "C" 0 1 131072 11 6 0.705530
-- "O" "O2" 0 1 131072 12 8 -0.822990
-- "OXT" "O2" 0 1 131072 13 8 -0.822990
--!entry.CASP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "C" 0 -1 0.0
-- "OD1" "O2" 0 -1 0.0
-- "OD2" "O2" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CASP.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CASP.unit.childsequence single int
-- 2
--!entry.CASP.unit.connect array int
-- 1
-- 0
--!entry.CASP.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 11 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 11 12 1
-- 11 13 1
--!entry.CASP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
--!entry.CASP.unit.name single str
-- "CASP"
--!entry.CASP.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.275101 5.011380 1.194527
-- 3.669108 5.954940 0.620011
-- 5.407731 5.091879 1.740667
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CASP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CASP" 1 14 1 "p" 0
--!entry.CASP.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CASP.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CASP.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CCYM.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "HN" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.165660
-- "HA" "H1" 0 1 131072 4 1 0.090680
-- "CB" "CT" 0 1 131072 5 6 0.044510
-- "HB3" "H1" 0 1 131072 6 1 0.006690
-- "HB2" "H1" 0 1 131072 7 1 0.006690
-- "SG" "SH" 0 1 131072 8 16 -0.929850
-- "C" "C" 0 1 131072 9 6 0.705530
-- "O" "O2" 0 1 131072 10 8 -0.822990
-- "OXT" "O2" 0 1 131072 11 8 -0.822990
--!entry.CCYM.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "HN" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB3" "H1" 0 -1 0.0
-- "HB2" "H1" 0 -1 0.0
-- "SG" "SH" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CCYM.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CCYM.unit.childsequence single int
-- 2
--!entry.CCYM.unit.connect array int
-- 1
-- 0
--!entry.CCYM.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 9 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 9 10 1
-- 9 11 1
--!entry.CCYM.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
--!entry.CCYM.unit.name single str
-- "CCYM"
--!entry.CCYM.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 3.877484 3.115795 2.131197
-- 2.496995 3.801075 1.241379
-- 4.309573 5.303523 1.366036
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CCYM.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CCYM.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CCYM" 1 12 1 "p" 0
--!entry.CCYM.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CCYM.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CCYM.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CCYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.010480
-- "HA" "H1" 0 1 131072 4 1 0.057060
-- "CB" "CT" 0 1 131072 5 6 -0.033990
-- "HB2" "H1" 0 1 131072 6 1 0.066220
-- "HB3" "H1" 0 1 131072 7 1 0.066220
-- "SG" "SH" 0 1 131072 8 16 -0.244870
-- "HG" "HS" 0 1 131072 9 1 0.152900
-- "C" "C" 0 1 131072 10 6 0.705530
-- "O" "O2" 0 1 131072 11 8 -0.822990
-- "OXT" "O2" 0 1 131072 12 8 -0.822990
--!entry.CCYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "H1" 0 -1 0.0
-- "HB3" "H1" 0 -1 0.0
-- "SG" "SH" 0 -1 0.0
-- "HG" "HS" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CCYS.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CCYS.unit.childsequence single int
-- 2
--!entry.CCYS.unit.connect array int
-- 1
-- 0
--!entry.CCYS.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 10 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 10 11 1
-- 10 12 1
--!entry.CCYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
--!entry.CCYS.unit.name single str
-- "CCYS"
--!entry.CCYS.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.309573 5.303523 1.366036
-- 3.725392 5.622018 2.517640
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CCYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CCYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CCYS" 1 13 1 "p" 0
--!entry.CCYS.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CCYS.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CCYS.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CCYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.030070
-- "HA" "H1" 0 1 131072 4 1 0.037000
-- "CB" "CT" 0 1 131072 5 6 -0.043690
-- "HB2" "H1" 0 1 131072 6 1 0.084380
-- "HB3" "H1" 0 1 131072 7 1 0.084380
-- "SG" "S" 0 1 131072 8 16 -0.078940
-- "C" "C" 0 1 131072 9 6 0.705530
-- "O" "O2" 0 1 131072 10 8 -0.822990
-- "OXT" "O2" 0 1 131072 11 8 -0.822990
--!entry.CCYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "H1" 0 -1 0.0
-- "HB3" "H1" 0 -1 0.0
-- "SG" "S" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CCYX.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CCYX.unit.childsequence single int
-- 2
--!entry.CCYX.unit.connect array int
-- 1
-- 0
--!entry.CCYX.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 9 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 9 10 1
-- 9 11 1
--!entry.CCYX.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
--!entry.CCYX.unit.name single str
-- "CCYX"
--!entry.CCYX.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.309573 5.303523 1.366036
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CCYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 8 0 0 0
--!entry.CCYX.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CCYX" 1 12 1 "p" 0
--!entry.CCYX.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CCYX.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CCYX.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CGLH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.165080
-- "HA" "H1" 0 1 131072 4 1 0.120280
-- "CB" "CT" 0 1 131072 5 6 0.110660
-- "HB2" "HC" 0 1 131072 6 1 0.016640
-- "HB3" "HC" 0 1 131072 7 1 0.016640
-- "CG" "CT" 0 1 131072 8 6 -0.317930
-- "HG2" "HC" 0 1 131072 9 1 0.173880
-- "HG3" "HC" 0 1 131072 10 1 0.173880
-- "CD" "C" 0 1 131072 11 6 0.664690
-- "OE1" "O" 0 1 131072 12 8 -0.583590
-- "OE2" "OH" 0 1 131072 13 8 -0.613880
-- "HE2" "HO" 0 1 131072 14 1 0.456870
-- "C" "C" 0 1 131072 15 6 0.705530
-- "O" "O2" 0 1 131072 16 8 -0.822990
-- "OXT" "O2" 0 1 131072 17 8 -0.822990
--!entry.CGLH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "C" 0 -1 0.0
-- "OE1" "O" 0 -1 0.0
-- "OE2" "OH" 0 -1 0.0
-- "HE2" "HO" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CGLH.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CGLH.unit.childsequence single int
-- 2
--!entry.CGLH.unit.connect array int
-- 1
-- 0
--!entry.CGLH.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 15 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 15 16 1
-- 15 17 1
--!entry.CGLH.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
--!entry.CGLH.unit.name single str
-- "CGLH"
--!entry.CGLH.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.267328 4.996267 1.194946
-- 5.347413 4.849843 1.186158
-- 3.966923 5.535124 0.296342
-- 3.873732 5.805369 2.428706
-- 4.594590 5.679012 3.454376
-- 2.855965 6.542070 2.333721
-- 2.710526 6.996624 3.166684
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CGLH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CGLH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CGLH" 1 18 1 "p" 0
--!entry.CGLH.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CGLH.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CGLH.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CGLN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.174080
-- "HA" "H1" 0 1 131072 4 1 0.063260
-- "CB" "CT" 0 1 131072 5 6 0.396380
-- "HB2" "HC" 0 1 131072 6 1 -0.058620
-- "HB3" "HC" 0 1 131072 7 1 -0.058620
-- "CG" "CT" 0 1 131072 8 6 -0.593580
-- "HG2" "HC" 0 1 131072 9 1 0.218390
-- "HG3" "HC" 0 1 131072 10 1 0.218390
-- "CD" "C" 0 1 131072 11 6 0.770410
-- "OE1" "O" 0 1 131072 12 8 -0.650910
-- "NE2" "N" 0 1 131072 13 7 -0.874140
-- "HE21" "H" 0 1 131072 14 1 0.398090
-- "HE22" "H" 0 1 131072 15 1 0.398090
-- "C" "C" 0 1 131072 16 6 0.705530
-- "O" "O2" 0 1 131072 17 8 -0.822990
-- "OXT" "O2" 0 1 131072 18 8 -0.822990
--!entry.CGLN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "C" 0 -1 0.0
-- "OE1" "O" 0 -1 0.0
-- "NE2" "N" 0 -1 0.0
-- "HE21" "H" 0 -1 0.0
-- "HE22" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CGLN.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CGLN.unit.childsequence single int
-- 2
--!entry.CGLN.unit.connect array int
-- 1
-- 0
--!entry.CGLN.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 16 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 15 1
-- 16 17 1
-- 16 18 1
--!entry.CGLN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
--!entry.CGLN.unit.name single str
-- "CGLN"
--!entry.CGLN.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.906976 5.848443 2.410302
-- 3.138962 5.408349 3.262893
-- 4.458856 7.061523 2.488333
-- 4.248434 7.659045 3.274966
-- 5.084281 7.376210 1.760379
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CGLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CGLN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CGLN" 1 19 1 "p" 0
--!entry.CGLN.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CGLN.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CGLN.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CGLU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.265130
-- "HA" "H1" 0 1 131072 4 1 0.127760
-- "CB" "CT" 0 1 131072 5 6 0.520990
-- "HB2" "HC" 0 1 131072 6 1 -0.129940
-- "HB3" "HC" 0 1 131072 7 1 -0.129940
-- "CG" "CT" 0 1 131072 8 6 -0.693830
-- "HG2" "HC" 0 1 131072 9 1 0.205050
-- "HG3" "HC" 0 1 131072 10 1 0.205050
-- "CD" "C" 0 1 131072 11 6 0.835690
-- "OE1" "O2" 0 1 131072 12 8 -0.811320
-- "OE2" "O2" 0 1 131072 13 8 -0.811320
-- "C" "C" 0 1 131072 14 6 0.705530
-- "O" "O2" 0 1 131072 15 8 -0.822990
-- "OXT" "O2" 0 1 131072 16 8 -0.822990
--!entry.CGLU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "C" 0 -1 0.0
-- "OE1" "O2" 0 -1 0.0
-- "OE2" "O2" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CGLU.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CGLU.unit.childsequence single int
-- 2
--!entry.CGLU.unit.connect array int
-- 1
-- 0
--!entry.CGLU.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 14 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 14 15 1
-- 14 16 1
--!entry.CGLU.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
--!entry.CGLU.unit.name single str
-- "CGLU"
--!entry.CGLU.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.267328 4.996267 1.194946
-- 5.347413 4.849843 1.186158
-- 3.966923 5.535124 0.296342
-- 3.873732 5.805369 2.428706
-- 4.594590 5.679012 3.454376
-- 2.855965 6.542070 2.333721
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CGLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CGLU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CGLU" 1 17 1 "p" 0
--!entry.CGLU.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CGLU.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CGLU.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CGLY.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.195060
-- "HA2" "H1" 0 1 131072 4 1 0.124060
-- "HA3" "H1" 0 1 131072 5 1 0.124060
-- "C" "C" 0 1 131072 6 6 0.705530
-- "O" "O2" 0 1 131072 7 8 -0.822990
-- "OXT" "O2" 0 1 131072 8 8 -0.822990
--!entry.CGLY.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA2" "H1" 0 -1 0.0
-- "HA3" "H1" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CGLY.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CGLY.unit.childsequence single int
-- 2
--!entry.CGLY.unit.connect array int
-- 1
-- 0
--!entry.CGLY.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 6 1
-- 6 7 1
-- 6 8 1
--!entry.CGLY.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
--!entry.CGLY.unit.name single str
-- "CGLY"
--!entry.CGLY.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.671668 3.400125 0.889824
-- 5.483710 2.686702 -4.438857E-06
-- 5.993369 1.568360 -8.469843E-06
-- 6.214748 3.674642 -2.512987E-06
--!entry.CGLY.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CGLY.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CGLY" 1 9 1 "p" 0
--!entry.CGLY.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CGLY.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CGLY.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CHID.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.027370
-- "HA" "H1" 0 1 131072 4 1 0.038450
-- "CB" "CT" 0 1 131072 5 6 -0.339570
-- "HB2" "HC" 0 1 131072 6 1 0.133210
-- "HB3" "HC" 0 1 131072 7 1 0.133210
-- "CG" "CC" 0 1 131072 8 6 0.324210
-- "ND1" "NA" 0 1 131072 9 7 -0.387720
-- "HD1" "H" 0 1 131072 10 1 0.367140
-- "CE1" "CR" 0 1 131072 11 6 0.234580
-- "HE1" "H5" 0 1 131072 12 1 0.060770
-- "NE2" "NB" 0 1 131072 13 7 -0.513820
-- "CD2" "CV" 0 1 131072 14 6 -0.060620
-- "HD2" "H4" 0 1 131072 15 1 0.090590
-- "C" "C" 0 1 131072 16 6 0.705530
-- "O" "O2" 0 1 131072 17 8 -0.822990
-- "OXT" "O2" 0 1 131072 18 8 -0.822990
--!entry.CHID.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CC" 0 -1 0.0
-- "ND1" "NA" 0 -1 0.0
-- "HD1" "H" 0 -1 0.0
-- "CE1" "CR" 0 -1 0.0
-- "HE1" "H5" 0 -1 0.0
-- "NE2" "NB" 0 -1 0.0
-- "CD2" "CV" 0 -1 0.0
-- "HD2" "H4" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CHID.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CHID.unit.childsequence single int
-- 2
--!entry.CHID.unit.connect array int
-- 1
-- 0
--!entry.CHID.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 16 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 14 1
-- 9 10 1
-- 9 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 14 15 1
-- 16 17 1
-- 16 18 1
--!entry.CHID.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
--!entry.CHID.unit.name single str
-- "CHID"
--!entry.CHID.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 3.942782 5.885086 2.382972
-- 3.339725 5.691913 3.169805
-- 4.624274 6.997642 2.182500
-- 4.563048 7.811875 2.904563
-- 5.294011 6.891451 1.061663
-- 5.058974 5.678868 0.492453
-- 5.537741 5.417846 -0.451343
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CHID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CHID.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CHID" 1 19 1 "p" 0
--!entry.CHID.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CHID.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CHID.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CHIE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.124850
-- "HA" "H1" 0 1 131072 4 1 0.066680
-- "CB" "CT" 0 1 131072 5 6 -0.261430
-- "HB2" "HC" 0 1 131072 6 1 0.140860
-- "HB3" "HC" 0 1 131072 7 1 0.140860
-- "CG" "CC" 0 1 131072 8 6 0.443190
-- "ND1" "NB" 0 1 131072 9 7 -0.679990
-- "CE1" "CR" 0 1 131072 10 6 0.325720
-- "HE1" "H5" 0 1 131072 11 1 0.037400
-- "NE2" "NA" 0 1 131072 12 7 -0.315320
-- "HE2" "H" 0 1 131072 13 1 0.339080
-- "CD2" "CW" 0 1 131072 14 6 -0.228430
-- "HD2" "H4" 0 1 131072 15 1 0.169290
-- "C" "C" 0 1 131072 16 6 0.705530
-- "O" "O2" 0 1 131072 17 8 -0.822990
-- "OXT" "O2" 0 1 131072 18 8 -0.822990
--!entry.CHIE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CC" 0 -1 0.0
-- "ND1" "NB" 0 -1 0.0
-- "CE1" "CR" 0 -1 0.0
-- "HE1" "H5" 0 -1 0.0
-- "NE2" "NA" 0 -1 0.0
-- "HE2" "H" 0 -1 0.0
-- "CD2" "CW" 0 -1 0.0
-- "HD2" "H4" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CHIE.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CHIE.unit.childsequence single int
-- 2
--!entry.CHIE.unit.connect array int
-- 1
-- 0
--!entry.CHIE.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 16 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 14 1
-- 9 10 1
-- 10 11 1
-- 10 12 1
-- 12 13 1
-- 12 14 1
-- 14 15 1
-- 16 17 1
-- 16 18 1
--!entry.CHIE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
--!entry.CHIE.unit.name single str
-- "CHIE"
--!entry.CHIE.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 3.942782 5.885086 2.382972
-- 4.624274 6.997642 2.182500
-- 4.563048 7.811875 2.904563
-- 5.294011 6.891451 1.061663
-- 5.896297 7.605085 0.676854
-- 5.058974 5.678868 0.492453
-- 5.537741 5.417846 -0.451343
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CHIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CHIE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CHIE" 1 19 1 "p" 0
--!entry.CHIE.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CHIE.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CHIE.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CHIP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.029340
-- "HA" "H1" 0 1 131072 4 1 0.065870
-- "CB" "CT" 0 1 131072 5 6 -0.093770
-- "HB2" "HC" 0 1 131072 6 1 0.087980
-- "HB3" "HC" 0 1 131072 7 1 0.087980
-- "CG" "CC" 0 1 131072 8 6 0.263950
-- "ND1" "NA" 0 1 131072 9 7 -0.125480
-- "HD1" "H" 0 1 131072 10 1 0.367860
-- "CE1" "CR" 0 1 131072 11 6 -0.069000
-- "HE1" "H5" 0 1 131072 12 1 0.195860
-- "NE2" "NA" 0 1 131072 13 7 0.034660
-- "HE2" "H" 0 1 131072 14 1 0.297530
-- "CD2" "CW" 0 1 131072 15 6 -0.181280
-- "HD2" "H4" 0 1 131072 16 1 0.150240
-- "C" "C" 0 1 131072 17 6 0.705530
-- "O" "O2" 0 1 131072 18 8 -0.822990
-- "OXT" "O2" 0 1 131072 19 8 -0.822990
--!entry.CHIP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CC" 0 -1 0.0
-- "ND1" "NA" 0 -1 0.0
-- "HD1" "H" 0 -1 0.0
-- "CE1" "CR" 0 -1 0.0
-- "HE1" "H5" 0 -1 0.0
-- "NE2" "NA" 0 -1 0.0
-- "HE2" "H" 0 -1 0.0
-- "CD2" "CW" 0 -1 0.0
-- "HD2" "H4" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CHIP.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CHIP.unit.childsequence single int
-- 2
--!entry.CHIP.unit.connect array int
-- 1
-- 0
--!entry.CHIP.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 17 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 15 1
-- 9 10 1
-- 9 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 15 1
-- 15 16 1
-- 17 18 1
-- 17 19 1
--!entry.CHIP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
--!entry.CHIP.unit.name single str
-- "CHIP"
--!entry.CHIP.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 3.942782 5.885086 2.382972
-- 3.339725 5.691913 3.169805
-- 4.624274 6.997642 2.182500
-- 4.563048 7.811875 2.904563
-- 5.294011 6.891451 1.061663
-- 5.896297 7.605085 0.676854
-- 5.058974 5.678868 0.492453
-- 5.537741 5.417846 -0.451343
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CHIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CHIP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CHIP" 1 20 1 "p" 0
--!entry.CHIP.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CHIP.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CHIP.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CILE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.287930
-- "HA" "H1" 0 1 131072 4 1 0.135390
-- "CB" "CT" 0 1 131072 5 6 0.357940
-- "HB" "HC" 0 1 131072 6 1 -0.079320
-- "CG2" "CT" 0 1 131072 7 6 -0.501190
-- "HG21" "HC" 0 1 131072 8 1 0.140430
-- "HG22" "HC" 0 1 131072 9 1 0.140430
-- "HG23" "HC" 0 1 131072 10 1 0.140430
-- "CG1" "CT" 0 1 131072 11 6 -0.081150
-- "HG12" "HC" 0 1 131072 12 1 0.048560
-- "HG13" "HC" 0 1 131072 13 1 0.048560
-- "CD1" "CT" 0 1 131072 14 6 -0.094950
-- "HD11" "HC" 0 1 131072 15 1 0.028620
-- "HD12" "HC" 0 1 131072 16 1 0.028620
-- "HD13" "HC" 0 1 131072 17 1 0.028620
-- "C" "C" 0 1 131072 18 6 0.705530
-- "O" "O2" 0 1 131072 19 8 -0.822990
-- "OXT" "O2" 0 1 131072 20 8 -0.822990
--!entry.CILE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB" "HC" 0 -1 0.0
-- "CG2" "CT" 0 -1 0.0
-- "HG21" "HC" 0 -1 0.0
-- "HG22" "HC" 0 -1 0.0
-- "HG23" "HC" 0 -1 0.0
-- "CG1" "CT" 0 -1 0.0
-- "HG12" "HC" 0 -1 0.0
-- "HG13" "HC" 0 -1 0.0
-- "CD1" "CT" 0 -1 0.0
-- "HD11" "HC" 0 -1 0.0
-- "HD12" "HC" 0 -1 0.0
-- "HD13" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CILE.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CILE.unit.childsequence single int
-- 2
--!entry.CILE.unit.connect array int
-- 1
-- 0
--!entry.CILE.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 18 1
-- 5 6 1
-- 5 7 1
-- 5 11 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 11 12 1
-- 11 13 1
-- 11 14 1
-- 14 15 1
-- 14 16 1
-- 14 17 1
-- 18 19 1
-- 18 20 1
--!entry.CILE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
--!entry.CILE.unit.name single str
-- "CILE"
--!entry.CILE.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.552136 3.620733 1.245168
-- 2.470128 3.752486 1.245640
-- 3.970045 2.845728 2.490296
-- 5.052053 2.713974 2.490763
-- 3.671561 3.399208 3.380615
-- 3.485650 1.869275 2.490737
-- 4.230204 4.986694 1.245169
-- 5.312310 4.855746 1.245164
-- 3.931820 5.541027 0.355348
-- 3.812294 5.761632 2.490339
-- 4.110777 5.208104 3.380628
-- 4.296689 6.738085 2.490833
-- 2.730286 5.893383 2.490813
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CILE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CILE" 1 21 1 "p" 0
--!entry.CILE.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CILE.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CILE.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CLEU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.151630
-- "HA" "H1" 0 1 131072 4 1 0.080730
-- "CB" "CT" 0 1 131072 5 6 -0.251240
-- "HB2" "HC" 0 1 131072 6 1 0.113740
-- "HB3" "HC" 0 1 131072 7 1 0.113740
-- "CG" "CT" 0 1 131072 8 6 0.579270
-- "HG" "HC" 0 1 131072 9 1 -0.096890
-- "CD1" "CT" 0 1 131072 10 6 -0.760610
-- "HD11" "HC" 0 1 131072 11 1 0.197760
-- "HD12" "HC" 0 1 131072 12 1 0.197760
-- "HD13" "HC" 0 1 131072 13 1 0.197760
-- "CD2" "CT" 0 1 131072 14 6 -0.760610
-- "HD21" "HC" 0 1 131072 15 1 0.197760
-- "HD22" "HC" 0 1 131072 16 1 0.197760
-- "HD23" "HC" 0 1 131072 17 1 0.197760
-- "C" "C" 0 1 131072 18 6 0.705530
-- "O" "O2" 0 1 131072 19 8 -0.822990
-- "OXT" "O2" 0 1 131072 20 8 -0.822990
--!entry.CLEU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG" "HC" 0 -1 0.0
-- "CD1" "CT" 0 -1 0.0
-- "HD11" "HC" 0 -1 0.0
-- "HD12" "HC" 0 -1 0.0
-- "HD13" "HC" 0 -1 0.0
-- "CD2" "CT" 0 -1 0.0
-- "HD21" "HC" 0 -1 0.0
-- "HD22" "HC" 0 -1 0.0
-- "HD23" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CLEU.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CLEU.unit.childsequence single int
-- 2
--!entry.CLEU.unit.connect array int
-- 1
-- 0
--!entry.CLEU.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 18 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 14 1
-- 10 11 1
-- 10 12 1
-- 10 13 1
-- 14 15 1
-- 14 16 1
-- 14 17 1
-- 18 19 1
-- 18 20 1
--!entry.CLEU.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
--!entry.CLEU.unit.name single str
-- "CLEU"
--!entry.CLEU.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.853429 5.762895 -0.062857
-- 2.773449 5.910113 -0.054557
-- 4.351513 6.732052 -0.090203
-- 4.134159 5.185704 -0.943846
-- 3.881105 5.817645 2.426721
-- 4.181626 5.279602 3.325774
-- 4.379198 6.786825 2.400363
-- 2.801135 5.964881 2.435959
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CLEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CLEU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CLEU" 1 21 1 "p" 0
--!entry.CLEU.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CLEU.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CLEU.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CLYN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.163200
-- "HA" "H1" 0 1 131072 4 1 0.095860
-- "CB" "CT" 0 1 131072 5 6 0.095690
-- "HB2" "HC" 0 1 131072 6 1 -0.015960
-- "HB3" "HC" 0 1 131072 7 1 -0.015960
-- "CG" "CT" 0 1 131072 8 6 0.018310
-- "HG2" "HC" 0 1 131072 9 1 0.010750
-- "HG3" "HC" 0 1 131072 10 1 0.010750
-- "CD" "CT" 0 1 131072 11 6 -0.229410
-- "HD2" "HC" 0 1 131072 12 1 0.104310
-- "HD3" "HC" 0 1 131072 13 1 0.104310
-- "CE" "CT" 0 1 131072 14 6 0.528910
-- "HE2" "H1" 0 1 131072 15 1 -0.110750
-- "HE3" "H1" 0 1 131072 16 1 -0.110750
-- "NZ" "NT" 0 1 131072 17 7 -0.980200
-- "HZ2" "H" 0 1 131072 18 1 0.355200
-- "HZ3" "H" 0 1 131072 19 1 0.355200
-- "C" "C" 0 1 131072 20 6 0.705530
-- "O" "O2" 0 1 131072 21 8 -0.822990
-- "OXT" "O2" 0 1 131072 22 8 -0.822990
--!entry.CLYN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "CT" 0 -1 0.0
-- "HD2" "HC" 0 -1 0.0
-- "HD3" "HC" 0 -1 0.0
-- "CE" "CT" 0 -1 0.0
-- "HE2" "H1" 0 -1 0.0
-- "HE3" "H1" 0 -1 0.0
-- "NZ" "NT" 0 -1 0.0
-- "HZ2" "H" 0 -1 0.0
-- "HZ3" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CLYN.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CLYN.unit.childsequence single int
-- 2
--!entry.CLYN.unit.connect array int
-- 1
-- 0
--!entry.CLYN.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 20 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 11 14 1
-- 14 15 1
-- 14 16 1
-- 14 17 1
-- 17 18 1
-- 17 19 1
-- 20 21 1
-- 20 22 1
--!entry.CLYN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
--!entry.CLYN.unit.name single str
-- "CLYN"
--!entry.CLYN.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.881105 5.817645 2.426721
-- 2.801135 5.964881 2.435959
-- 4.181626 5.279602 3.325774
-- 4.578325 7.173410 2.389153
-- 5.658410 7.026987 2.380363
-- 4.277917 7.712267 1.490550
-- 4.199422 7.952309 3.576860
-- 4.661186 8.850226 3.551979
-- 3.198675 8.088466 3.584971
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CLYN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CLYN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CLYN" 1 23 1 "p" 0
--!entry.CLYN.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CLYN.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CLYN.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CLYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.185190
-- "HA" "H1" 0 1 131072 4 1 0.120990
-- "CB" "CT" 0 1 131072 5 6 0.035190
-- "HB2" "HC" 0 1 131072 6 1 0.015850
-- "HB3" "HC" 0 1 131072 7 1 0.015850
-- "CG" "CT" 0 1 131072 8 6 -0.039190
-- "HG2" "HC" 0 1 131072 9 1 0.047540
-- "HG3" "HC" 0 1 131072 10 1 0.047540
-- "CD" "CT" 0 1 131072 11 6 -0.190030
-- "HD2" "HC" 0 1 131072 12 1 0.094440
-- "HD3" "HC" 0 1 131072 13 1 0.094440
-- "CE" "CT" 0 1 131072 14 6 0.457400
-- "HE2" "HP" 0 1 131072 15 1 -0.049110
-- "HE3" "HP" 0 1 131072 16 1 -0.049110
-- "NZ" "N3" 0 1 131072 17 7 -0.371640
-- "HZ1" "H" 0 1 131072 18 1 0.336030
-- "HZ2" "H" 0 1 131072 19 1 0.336030
-- "HZ3" "H" 0 1 131072 20 1 0.336030
-- "C" "C" 0 1 131072 21 6 0.705530
-- "O" "O2" 0 1 131072 22 8 -0.822990
-- "OXT" "O2" 0 1 131072 23 8 -0.822990
--!entry.CLYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "CT" 0 -1 0.0
-- "HD2" "HC" 0 -1 0.0
-- "HD3" "HC" 0 -1 0.0
-- "CE" "CT" 0 -1 0.0
-- "HE2" "HP" 0 -1 0.0
-- "HE3" "HP" 0 -1 0.0
-- "NZ" "N3" 0 -1 0.0
-- "HZ1" "H" 0 -1 0.0
-- "HZ2" "H" 0 -1 0.0
-- "HZ3" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CLYS.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CLYS.unit.childsequence single int
-- 2
--!entry.CLYS.unit.connect array int
-- 1
-- 0
--!entry.CLYS.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 21 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 11 14 1
-- 14 15 1
-- 14 16 1
-- 14 17 1
-- 17 18 1
-- 17 19 1
-- 17 20 1
-- 21 22 1
-- 21 23 1
--!entry.CLYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
-- "R" 1 "A" 23
--!entry.CLYS.unit.name single str
-- "CLYS"
--!entry.CLYS.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.881105 5.817645 2.426721
-- 2.801135 5.964881 2.435959
-- 4.181626 5.279602 3.325774
-- 4.578325 7.173410 2.389153
-- 5.658410 7.026987 2.380363
-- 4.277917 7.712267 1.490550
-- 4.199422 7.952309 3.576860
-- 4.478085 7.453366 4.409628
-- 4.661186 8.850226 3.551979
-- 3.198675 8.088466 3.584971
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CLYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CLYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CLYS" 1 24 1 "p" 0
--!entry.CLYS.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CLYS.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CLYS.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CMET.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.171820
-- "HA" "H1" 0 1 131072 4 1 0.129660
-- "CB" "CT" 0 1 131072 5 6 0.250160
-- "HB2" "HC" 0 1 131072 6 1 -0.026630
-- "HB3" "HC" 0 1 131072 7 1 -0.026630
-- "CG" "CT" 0 1 131072 8 6 -0.366710
-- "HG2" "H1" 0 1 131072 9 1 0.160270
-- "HG3" "H1" 0 1 131072 10 1 0.160270
-- "SD" "S" 0 1 131072 11 16 -0.122120
-- "CE" "CT" 0 1 131072 12 6 -0.263690
-- "HE1" "H1" 0 1 131072 13 1 0.110100
-- "HE2" "H1" 0 1 131072 14 1 0.110100
-- "HE3" "H1" 0 1 131072 15 1 0.110100
-- "C" "C" 0 1 131072 16 6 0.705530
-- "O" "O2" 0 1 131072 17 8 -0.822990
-- "OXT" "O2" 0 1 131072 18 8 -0.822990
--!entry.CMET.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "H1" 0 -1 0.0
-- "HG3" "H1" 0 -1 0.0
-- "SD" "S" 0 -1 0.0
-- "CE" "CT" 0 -1 0.0
-- "HE1" "H1" 0 -1 0.0
-- "HE2" "H1" 0 -1 0.0
-- "HE3" "H1" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CMET.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CMET.unit.childsequence single int
-- 2
--!entry.CMET.unit.connect array int
-- 1
-- 0
--!entry.CMET.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 16 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 12 13 1
-- 12 14 1
-- 12 15 1
-- 16 17 1
-- 16 18 1
--!entry.CMET.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
--!entry.CMET.unit.name single str
-- "CMET"
--!entry.CMET.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.817309 5.981266 2.651708
-- 4.753212 7.463128 2.340949
-- 4.433582 7.904044 1.396741
-- 4.585907 8.175299 3.148985
-- 5.814074 7.218763 2.286554
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CMET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CMET.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CMET" 1 19 1 "p" 0
--!entry.CMET.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CMET.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CMET.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CPHE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.072690
-- "HA" "H1" 0 1 131072 4 1 0.053080
-- "CB" "CT" 0 1 131072 5 6 -0.213480
-- "HB2" "HC" 0 1 131072 6 1 0.116210
-- "HB3" "HC" 0 1 131072 7 1 0.116210
-- "CG" "CA" 0 1 131072 8 6 0.197950
-- "CD1" "CA" 0 1 131072 9 6 -0.219910
-- "HD1" "HA" 0 1 131072 10 1 0.142120
-- "CE1" "CA" 0 1 131072 11 6 -0.084720
-- "HE1" "HA" 0 1 131072 12 1 0.108500
-- "CZ" "CA" 0 1 131072 13 6 -0.128160
-- "HZ" "HA" 0 1 131072 14 1 0.091960
-- "CE2" "CA" 0 1 131072 15 6 -0.084720
-- "HE2" "HA" 0 1 131072 16 1 0.108500
-- "CD2" "CA" 0 1 131072 17 6 -0.219910
-- "HD2" "HA" 0 1 131072 18 1 0.142120
-- "C" "C" 0 1 131072 19 6 0.705530
-- "O" "O2" 0 1 131072 20 8 -0.822990
-- "OXT" "O2" 0 1 131072 21 8 -0.822990
--!entry.CPHE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CA" 0 -1 0.0
-- "CD1" "CA" 0 -1 0.0
-- "HD1" "HA" 0 -1 0.0
-- "CE1" "CA" 0 -1 0.0
-- "HE1" "HA" 0 -1 0.0
-- "CZ" "CA" 0 -1 0.0
-- "HZ" "HA" 0 -1 0.0
-- "CE2" "CA" 0 -1 0.0
-- "HE2" "HA" 0 -1 0.0
-- "CD2" "CA" 0 -1 0.0
-- "HD2" "HA" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CPHE.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CPHE.unit.childsequence single int
-- 2
--!entry.CPHE.unit.connect array int
-- 1
-- 0
--!entry.CPHE.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 19 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 17 1
-- 9 10 1
-- 9 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 15 1
-- 15 16 1
-- 15 17 1
-- 17 18 1
-- 19 20 1
-- 19 21 1
--!entry.CPHE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
--!entry.CPHE.unit.name single str
-- "CPHE"
--!entry.CPHE.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 3.911613 5.857250 2.409890
-- 3.236123 5.513843 3.193398
-- 4.490014 7.129513 2.492354
-- 4.264853 7.776651 3.340066
-- 5.357616 7.570591 1.486016
-- 5.807943 8.561138 1.550220
-- 5.646818 6.739407 0.397211
-- 6.322309 7.082817 -0.386295
-- 5.068419 5.467143 0.314744
-- 5.293584 4.820007 -0.532968
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CPHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CPHE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CPHE" 1 22 1 "p" 0
--!entry.CPHE.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CPHE.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CPHE.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CPRO.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.251210
-- "CD" "CT" 0 1 131072 2 6 0.062560
-- "HD2" "H1" 0 1 131072 3 1 0.022030
-- "HD3" "H1" 0 1 131072 4 1 0.022010
-- "CG" "CT" 0 1 131072 5 6 0.066380
-- "HG2" "HC" 0 1 131072 6 1 0.007490
-- "HG3" "HC" 0 1 131072 7 1 0.007490
-- "CB" "CT" 0 1 131072 8 6 0.069820
-- "HB2" "HC" 0 1 131072 9 1 0.013210
-- "HB3" "HC" 0 1 131072 10 1 0.013210
-- "CA" "CT" 0 1 131072 11 6 -0.200450
-- "HA" "H1" 0 1 131072 12 1 0.107910
-- "C" "C" 0 1 131072 13 6 0.705530
-- "O" "O2" 0 1 131072 14 8 -0.822990
-- "OXT" "O2" 0 1 131072 15 8 -0.822990
--!entry.CPRO.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "CD" "CT" 0 -1 0.0
-- "HD2" "H1" 0 -1 0.0
-- "HD3" "H1" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CPRO.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CPRO.unit.childsequence single int
-- 2
--!entry.CPRO.unit.connect array int
-- 1
-- 0
--!entry.CPRO.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 11 1
-- 2 3 1
-- 2 4 1
-- 2 5 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 15 1
--!entry.CPRO.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
--!entry.CPRO.unit.name single str
-- "CPRO"
--!entry.CPRO.unit.positions table dbl x dbl y dbl z
-- 3.326834 1.557389 -1.603945E-06
-- 4.302147 0.476598 0.080119
-- 4.419998 0.019283 -0.902263
-- 3.955888 -0.274040 0.790574
-- 5.547126 1.172441 0.544693
-- 6.413549 0.741636 0.042879
-- 5.652950 1.047934 1.622376
-- 5.369091 2.628184 0.185227
-- 5.969289 2.861861 -0.694123
-- 5.690642 3.251038 1.019947
-- 3.933610 2.871277 -0.104508
-- 3.611470 3.488570 0.734106
-- 3.505164 3.526392 -1.409783
-- 2.754240 2.939065 -2.185412
-- 3.904907 4.650696 -1.704043
--!entry.CPRO.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CPRO.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CPRO" 1 16 1 "p" 0
--!entry.CPRO.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CPRO.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CPRO.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CSER.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.069940
-- "HA" "H1" 0 1 131072 4 1 0.110000
-- "CB" "CT" 0 1 131072 5 6 0.169960
-- "HB2" "H1" 0 1 131072 6 1 0.022900
-- "HB3" "H1" 0 1 131072 7 1 0.022900
-- "OG" "OH" 0 1 131072 8 8 -0.571310
-- "HG" "HO" 0 1 131072 9 1 0.368550
-- "C" "C" 0 1 131072 10 6 0.705530
-- "O" "O2" 0 1 131072 11 8 -0.822990
-- "OXT" "O2" 0 1 131072 12 8 -0.822990
--!entry.CSER.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "H1" 0 -1 0.0
-- "HB3" "H1" 0 -1 0.0
-- "OG" "OH" 0 -1 0.0
-- "HG" "HO" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CSER.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CSER.unit.childsequence single int
-- 2
--!entry.CSER.unit.connect array int
-- 1
-- 0
--!entry.CSER.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 10 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 10 11 1
-- 10 12 1
--!entry.CSER.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
--!entry.CSER.unit.name single str
-- "CSER"
--!entry.CSER.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.230753 4.925145 1.196917
-- 3.983305 5.433814 1.972562
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CSER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CSER.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CSER" 1 13 1 "p" 0
--!entry.CSER.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CSER.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CSER.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CTHR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 0.019110
-- "HA" "H1" 0 1 131072 4 1 0.067720
-- "CB" "CT" 0 1 131072 5 6 0.444500
-- "HB" "H1" 0 1 131072 6 1 -0.106110
-- "CG2" "CT" 0 1 131072 7 6 -0.496090
-- "HG21" "HC" 0 1 131072 8 1 0.133070
-- "HG22" "HC" 0 1 131072 9 1 0.133070
-- "HG23" "HC" 0 1 131072 10 1 0.133070
-- "OG1" "OH" 0 1 131072 11 8 -0.724290
-- "HG1" "HO" 0 1 131072 12 1 0.449010
-- "C" "C" 0 1 131072 13 6 0.705530
-- "O" "O2" 0 1 131072 14 8 -0.822990
-- "OXT" "O2" 0 1 131072 15 8 -0.822990
--!entry.CTHR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB" "H1" 0 -1 0.0
-- "CG2" "CT" 0 -1 0.0
-- "HG21" "HC" 0 -1 0.0
-- "HG22" "HC" 0 -1 0.0
-- "HG23" "HC" 0 -1 0.0
-- "OG1" "OH" 0 -1 0.0
-- "HG1" "HO" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CTHR.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CTHR.unit.childsequence single int
-- 2
--!entry.CTHR.unit.connect array int
-- 1
-- 0
--!entry.CTHR.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 13 1
-- 5 6 1
-- 5 7 1
-- 5 11 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 11 12 1
-- 13 14 1
-- 13 15 1
--!entry.CTHR.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
--!entry.CTHR.unit.name single str
-- "CTHR"
--!entry.CTHR.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 4.075059 4.623017 1.205786
-- 2.065936 3.859425 1.244383
-- 1.567127 2.890627 1.271209
-- 1.784431 4.436953 2.124903
-- 1.764699 4.397847 0.345796
-- 3.971501 2.947413 2.411212
-- 3.724052 3.456082 3.186857
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CTHR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CTHR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CTHR" 1 16 1 "p" 0
--!entry.CTHR.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CTHR.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CTHR.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CTRP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.090040
-- "HA" "H1" 0 1 131072 4 1 0.084020
-- "CB" "CT" 0 1 131072 5 6 0.040520
-- "HB2" "HC" 0 1 131072 6 1 0.031680
-- "HB3" "HC" 0 1 131072 7 1 0.031680
-- "CG" "C*" 0 1 131072 8 6 -0.293840
-- "CD1" "CW" 0 1 131072 9 6 0.036620
-- "HD1" "H4" 0 1 131072 10 1 0.130250
-- "NE1" "NA" 0 1 131072 11 7 -0.473000
-- "HE1" "H" 0 1 131072 12 1 0.391490
-- "CE2" "CN" 0 1 131072 13 6 0.187500
-- "CZ2" "CA" 0 1 131072 14 6 -0.261570
-- "HZ2" "HA" 0 1 131072 15 1 0.183290
-- "CH2" "CA" 0 1 131072 16 6 -0.178280
-- "HH2" "HA" 0 1 131072 17 1 0.106010
-- "CZ3" "CA" 0 1 131072 18 6 -0.048150
-- "HZ3" "HA" 0 1 131072 19 1 0.086830
-- "CE3" "CA" 0 1 131072 20 6 -0.414910
-- "HE3" "HA" 0 1 131072 21 1 0.219040
-- "CD2" "CB" 0 1 131072 22 6 0.283920
-- "C" "C" 0 1 131072 23 6 0.705530
-- "O" "O2" 0 1 131072 24 8 -0.822990
-- "OXT" "O2" 0 1 131072 25 8 -0.822990
--!entry.CTRP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "C*" 0 -1 0.0
-- "CD1" "CW" 0 -1 0.0
-- "HD1" "H4" 0 -1 0.0
-- "NE1" "NA" 0 -1 0.0
-- "HE1" "H" 0 -1 0.0
-- "CE2" "CN" 0 -1 0.0
-- "CZ2" "CA" 0 -1 0.0
-- "HZ2" "HA" 0 -1 0.0
-- "CH2" "CA" 0 -1 0.0
-- "HH2" "HA" 0 -1 0.0
-- "CZ3" "CA" 0 -1 0.0
-- "HZ3" "HA" 0 -1 0.0
-- "CE3" "CA" 0 -1 0.0
-- "HE3" "HA" 0 -1 0.0
-- "CD2" "CB" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CTRP.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CTRP.unit.childsequence single int
-- 2
--!entry.CTRP.unit.connect array int
-- 1
-- 0
--!entry.CTRP.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 23 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 22 1
-- 9 10 1
-- 9 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 22 1
-- 14 15 1
-- 14 16 1
-- 16 17 1
-- 16 18 1
-- 18 19 1
-- 18 20 1
-- 20 21 1
-- 20 22 1
-- 23 24 1
-- 23 25 1
--!entry.CTRP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
-- "R" 1 "A" 23
-- "R" 1 "A" 24
-- "R" 1 "A" 25
--!entry.CTRP.unit.name single str
-- "CTRP"
--!entry.CTRP.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 4.023453 5.931084 2.293240
-- 3.368841 5.705466 3.135071
-- 4.811943 7.073555 1.949808
-- 4.882921 7.922010 2.493118
-- 5.427347 6.842060 0.816764
-- 6.297161 7.689052 0.119605
-- 6.531230 8.676649 0.517050
-- 6.814091 7.187011 -1.069023
-- 7.498074 7.791857 -1.664362
-- 6.482659 5.953119 -1.505101
-- 6.897660 5.575648 -2.439654
-- 5.604041 5.117355 -0.785636
-- 5.358720 4.126570 -1.168080
-- 5.083390 5.623004 0.411545
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CTRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CTRP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CTRP" 1 26 1 "p" 0
--!entry.CTRP.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CTRP.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CTRP.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CTYR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.175550
-- "HA" "H1" 0 1 131072 4 1 0.121890
-- "CB" "CT" 0 1 131072 5 6 -0.093730
-- "HB2" "HC" 0 1 131072 6 1 0.086440
-- "HB3" "HC" 0 1 131072 7 1 0.086440
-- "CG" "CA" 0 1 131072 8 6 0.017450
-- "CD1" "CA" 0 1 131072 9 6 -0.128300
-- "HD1" "HA" 0 1 131072 10 1 0.137650
-- "CE1" "CA" 0 1 131072 11 6 -0.334250
-- "HE1" "HA" 0 1 131072 12 1 0.190120
-- "CZ" "CA" 0 1 131072 13 6 0.442000
-- "OH" "OH" 0 1 131072 14 8 -0.544620
-- "HH" "HO" 0 1 131072 15 1 0.382300
-- "CE2" "CA" 0 1 131072 16 6 -0.334250
-- "HE2" "HA" 0 1 131072 17 1 0.190120
-- "CD2" "CA" 0 1 131072 18 6 -0.128300
-- "HD2" "HA" 0 1 131072 19 1 0.137650
-- "C" "C" 0 1 131072 20 6 0.705530
-- "O" "O2" 0 1 131072 21 8 -0.822990
-- "OXT" "O2" 0 1 131072 22 8 -0.822990
--!entry.CTYR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CA" 0 -1 0.0
-- "CD1" "CA" 0 -1 0.0
-- "HD1" "HA" 0 -1 0.0
-- "CE1" "CA" 0 -1 0.0
-- "HE1" "HA" 0 -1 0.0
-- "CZ" "CA" 0 -1 0.0
-- "OH" "OH" 0 -1 0.0
-- "HH" "HO" 0 -1 0.0
-- "CE2" "CA" 0 -1 0.0
-- "HE2" "HA" 0 -1 0.0
-- "CD2" "CA" 0 -1 0.0
-- "HD2" "HA" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CTYR.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CTYR.unit.childsequence single int
-- 2
--!entry.CTYR.unit.connect array int
-- 1
-- 0
--!entry.CTYR.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 20 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 18 1
-- 9 10 1
-- 9 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 16 1
-- 14 15 1
-- 16 17 1
-- 16 18 1
-- 18 19 1
-- 20 21 1
-- 20 22 1
--!entry.CTYR.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
--!entry.CTYR.unit.name single str
-- "CTYR"
--!entry.CTYR.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.267328 4.996267 1.194946
-- 4.059927 5.918911 2.227280
-- 3.400108 5.668218 3.057877
-- 4.699998 7.163547 2.192791
-- 4.538522 7.881891 2.996538
-- 5.547471 7.485542 1.125970
-- 6.169255 8.694617 1.092468
-- 5.956327 9.246984 1.848214
-- 5.754875 6.562900 0.093635
-- 6.414694 6.813595 -0.736962
-- 5.114806 5.318263 0.128119
-- 5.276286 4.599920 -0.675627
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CTYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CTYR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CTYR" 1 23 1 "p" 0
--!entry.CTYR.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CTYR.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CTYR.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CVAL.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.213060
-- "HA" "H1" 0 1 131072 4 1 0.122010
-- "CB" "CT" 0 1 131072 5 6 0.550920
-- "HB" "HC" 0 1 131072 6 1 -0.083650
-- "CG1" "CT" 0 1 131072 7 6 -0.705720
-- "HG11" "HC" 0 1 131072 8 1 0.181380
-- "HG12" "HC" 0 1 131072 9 1 0.181380
-- "HG13" "HC" 0 1 131072 10 1 0.181380
-- "CG2" "CT" 0 1 131072 11 6 -0.705720
-- "HG21" "HC" 0 1 131072 12 1 0.181380
-- "HG22" "HC" 0 1 131072 13 1 0.181380
-- "HG23" "HC" 0 1 131072 14 1 0.181380
-- "C" "C" 0 1 131072 15 6 0.705530
-- "O" "O2" 0 1 131072 16 8 -0.822990
-- "OXT" "O2" 0 1 131072 17 8 -0.822990
--!entry.CVAL.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB" "HC" 0 -1 0.0
-- "CG1" "CT" 0 -1 0.0
-- "HG11" "HC" 0 -1 0.0
-- "HG12" "HC" 0 -1 0.0
-- "HG13" "HC" 0 -1 0.0
-- "CG2" "CT" 0 -1 0.0
-- "HG21" "HC" 0 -1 0.0
-- "HG22" "HC" 0 -1 0.0
-- "HG23" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O2" 0 -1 0.0
-- "OXT" "O2" 0 -1 0.0
--!entry.CVAL.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CVAL.unit.childsequence single int
-- 2
--!entry.CVAL.unit.connect array int
-- 1
-- 0
--!entry.CVAL.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 15 1
-- 5 6 1
-- 5 7 1
-- 5 11 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 11 12 1
-- 11 13 1
-- 11 14 1
-- 15 16 1
-- 15 17 1
--!entry.CVAL.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
--!entry.CVAL.unit.name single str
-- "CVAL"
--!entry.CVAL.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.997712 2.900483 2.489542
-- 5.077693 2.753265 2.481244
-- 3.716972 3.477628 3.370558
-- 3.499630 1.931323 2.516834
-- 4.274186 5.009602 1.194577
-- 3.973781 5.548460 0.295972
-- 3.993559 5.587585 2.075079
-- 5.354271 4.863178 1.185788
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
-- 6.204455 3.702003 -2.420005E-06
--!entry.CVAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 0 0 0 0 0
--!entry.CVAL.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CVAL" 1 18 1 "p" 0
--!entry.CVAL.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CVAL.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CVAL.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NME.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.534190
-- "H" "H" 0 1 131072 2 1 0.339300
-- "CH3" "CT" 0 1 131072 3 6 0.044800
-- "HH31" "H1" 0 1 131072 4 1 0.050030
-- "HH32" "H1" 0 1 131072 5 1 0.050030
-- "HH33" "H1" 0 1 131072 6 1 0.050030
--!entry.NME.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CH3" "CT" 0 -1 0.0
-- "HH31" "H1" 0 -1 0.0
-- "HH32" "H1" 0 -1 0.0
-- "HH33" "H1" 0 -1 0.0
--!entry.NME.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NME.unit.childsequence single int
-- 2
--!entry.NME.unit.connect array int
-- 1
-- 0
--!entry.NME.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 6 1
--!entry.NME.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
--!entry.NME.unit.name single str
-- "NME"
--!entry.NME.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.211504 3.628554 2.348065E-06
-- 4.591993 2.943271 0.889822
-- 4.591988 2.943275 -0.889825
--!entry.NME.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 3 0 0 0 0
--!entry.NME.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NME" 1 7 1 "p" 0
--!entry.NME.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NME.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NME.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-diff --git a/dat/leap/lib/aminontpol12.lib b/dat/leap/lib/aminontpol12.lib
-deleted file mode 100644
-index ead0d89..0000000
---- a/dat/leap/lib/aminontpol12.lib
-+++ /dev/null
-@@ -1,3839 +0,0 @@
--!!index array str
-- "ACE"
-- "NALA"
-- "NARG"
-- "NASH"
-- "NASN"
-- "NASP"
-- "NCYM"
-- "NCYS"
-- "NCYX"
-- "NGLH"
-- "NGLN"
-- "NGLU"
-- "NGLY"
-- "NHID"
-- "NHIE"
-- "NHIP"
-- "NILE"
-- "NLEU"
-- "NLYN"
-- "NLYS"
-- "NMET"
-- "NPHE"
-- "NPRO"
-- "NSER"
-- "NTHR"
-- "NTRP"
-- "NTYR"
-- "NVAL"
--!entry.ACE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "HH31" "HC" 0 1 131072 1 1 0.245320
-- "CH3" "CT" 0 1 131072 2 6 -0.841920
-- "HH32" "HC" 0 1 131072 3 1 0.245320
-- "HH33" "HC" 0 1 131072 4 1 0.245320
-- "C" "C" 0 1 131072 5 6 0.730100
-- "O" "O" 0 1 131072 6 8 -0.624140
--!entry.ACE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "HH31" "HC" 0 -1 0.0
-- "CH3" "CT" 0 -1 0.0
-- "HH32" "HC" 0 -1 0.0
-- "HH33" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.ACE.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ACE.unit.childsequence single int
-- 2
--!entry.ACE.unit.connect array int
-- 0
-- 5
--!entry.ACE.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 2 3 1
-- 2 4 1
-- 2 5 1
-- 5 6 1
--!entry.ACE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
--!entry.ACE.unit.name single str
-- "ACE"
--!entry.ACE.unit.positions table dbl x dbl y dbl z
-- 2.000001 1.000000 -1.346410E-06
-- 2.000001 2.090000 1.211769E-07
-- 1.486264 2.453849 0.889824
-- 1.486259 2.453852 -0.889820
-- 3.427420 2.640795 -2.981008E-06
-- 4.390580 1.877406 -6.602402E-06
--!entry.ACE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 5 0 0 0 0
--!entry.ACE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "ACE" 1 7 1 "p" 0
--!entry.ACE.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.ACE.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ACE.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NALA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.062490
-- "HA" "HP" 0 1 131072 6 1 0.052310
-- "CB" "CT" 0 1 131072 7 6 -0.183710
-- "HB1" "HC" 0 1 131072 8 1 0.085560
-- "HB2" "HC" 0 1 131072 9 1 0.085560
-- "HB3" "HC" 0 1 131072 10 1 0.085560
-- "C" "C" 0 1 131072 11 6 0.670480
-- "O" "O" 0 1 131072 12 8 -0.583250
--!entry.NALA.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB1" "HC" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NALA.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NALA.unit.childsequence single int
-- 2
--!entry.NALA.unit.connect array int
-- 0
-- 11
--!entry.NALA.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 11 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 11 12 1
--!entry.NALA.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
--!entry.NALA.unit.name single str
-- "NALA"
--!entry.NALA.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 3.877484 3.115795 2.131197
-- 4.075059 4.623017 1.205786
-- 2.496995 3.801075 1.241379
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NALA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 11 0 0 0 0
--!entry.NALA.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NALA" 1 13 1 "p" 0
--!entry.NALA.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NALA.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NALA.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NARG.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.086660
-- "HA" "HP" 0 1 131072 6 1 0.033450
-- "CB" "CT" 0 1 131072 7 6 0.605740
-- "HB2" "HC" 0 1 131072 8 1 -0.089670
-- "HB3" "HC" 0 1 131072 9 1 -0.111750
-- "CG" "CT" 0 1 131072 10 6 -0.639700
-- "HG2" "HC" 0 1 131072 11 1 0.145340
-- "HG3" "HC" 0 1 131072 12 1 0.145340
-- "CD" "CT" 0 1 131072 13 6 0.616090
-- "HD2" "H1" 0 1 131072 14 1 -0.083600
-- "HD3" "H1" 0 1 131072 15 1 -0.083600
-- "NE" "N2" 0 1 131072 16 7 -0.781830
-- "HE" "H" 0 1 131072 17 1 0.416010
-- "CZ" "CA" 0 1 131072 18 6 1.114550
-- "NH1" "N2" 0 1 131072 19 7 -0.955440
-- "HH11" "H" 0 1 131072 20 1 0.443490
-- "HH12" "H" 0 1 131072 21 1 0.443490
-- "NH2" "N2" 0 1 131072 22 7 -0.955440
-- "HH21" "H" 0 1 131072 23 1 0.443490
-- "HH22" "H" 0 1 131072 24 1 0.443490
-- "C" "C" 0 1 131072 25 6 0.670480
-- "O" "O" 0 1 131072 26 8 -0.583250
--!entry.NARG.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "CT" 0 -1 0.0
-- "HD2" "H1" 0 -1 0.0
-- "HD3" "H1" 0 -1 0.0
-- "NE" "N2" 0 -1 0.0
-- "HE" "H" 0 -1 0.0
-- "CZ" "CA" 0 -1 0.0
-- "NH1" "N2" 0 -1 0.0
-- "HH11" "H" 0 -1 0.0
-- "HH12" "H" 0 -1 0.0
-- "NH2" "N2" 0 -1 0.0
-- "HH21" "H" 0 -1 0.0
-- "HH22" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NARG.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NARG.unit.childsequence single int
-- 2
--!entry.NARG.unit.connect array int
-- 0
-- 25
--!entry.NARG.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 25 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 12 1
-- 10 13 1
-- 13 14 1
-- 13 15 1
-- 13 16 1
-- 16 17 1
-- 16 18 1
-- 18 19 1
-- 18 22 1
-- 19 20 1
-- 19 21 1
-- 22 23 1
-- 22 24 1
-- 25 26 1
--!entry.NARG.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
-- "R" 1 "A" 23
-- "R" 1 "A" 24
-- "R" 1 "A" 25
-- "R" 1 "A" 26
--!entry.NARG.unit.name single str
-- "NARG"
--!entry.NARG.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.881105 5.817645 2.426721
-- 2.801135 5.964881 2.435959
-- 4.181626 5.279602 3.325774
-- 4.540320 7.142723 2.424483
-- 5.151805 7.375492 1.655065
-- 4.364284 8.040989 3.389382
-- 3.575026 7.807606 4.434133
-- 3.088949 6.925423 4.508848
-- 3.465367 8.513631 5.147998
-- 5.006254 9.201287 3.286991
-- 5.604855 9.375325 2.492329
-- 4.892216 9.903045 4.004368
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 25 0 0 0 0
--!entry.NARG.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NARG" 1 27 1 "p" 0
--!entry.NARG.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NARG.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NARG.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NASH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 0.084490
-- "HA" "HP" 0 1 131072 6 1 0.002600
-- "CB" "CT" 0 1 131072 7 6 -0.222150
-- "HB2" "HC" 0 1 131072 8 1 0.136250
-- "HB3" "HC" 0 1 131072 9 1 0.136250
-- "CG" "C" 0 1 131072 10 6 0.615590
-- "OD1" "O" 0 1 131072 11 8 -0.553020
-- "OD2" "OH" 0 1 131072 12 8 -0.580780
-- "HD2" "HO" 0 1 131072 13 1 0.443560
-- "C" "C" 0 1 131072 14 6 0.670480
-- "O" "O" 0 1 131072 15 8 -0.583250
--!entry.NASH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "C" 0 -1 0.0
-- "OD1" "O" 0 -1 0.0
-- "OD2" "OH" 0 -1 0.0
-- "HD2" "HO" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NASH.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NASH.unit.childsequence single int
-- 2
--!entry.NASH.unit.connect array int
-- 0
-- 14
--!entry.NASH.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 14 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 12 1
-- 12 13 1
-- 14 15 1
--!entry.NASH.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
--!entry.NASH.unit.name single str
-- "NASH"
--!entry.NASH.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.275101 5.011380 1.194527
-- 3.669108 5.954940 0.620011
-- 5.407731 5.091879 1.740667
-- 5.742902 5.987179 1.652920
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NASH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 14 0 0 0 0
--!entry.NASH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NASH" 1 16 1 "p" 0
--!entry.NASH.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NASH.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NASH.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NASN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 0.009080
-- "HA" "HP" 0 1 131072 6 1 0.021090
-- "CB" "CT" 0 1 131072 7 6 -0.279860
-- "HB2" "HC" 0 1 131072 8 1 0.139080
-- "HB3" "HC" 0 1 131072 9 1 0.139080
-- "CG" "C" 0 1 131072 10 6 0.649780
-- "OD1" "O" 0 1 131072 11 8 -0.558030
-- "ND2" "N" 0 1 131072 12 7 -0.826350
-- "HD21" "H" 0 1 131072 13 1 0.384460
-- "HD22" "H" 0 1 131072 14 1 0.384460
-- "C" "C" 0 1 131072 15 6 0.670480
-- "O" "O" 0 1 131072 16 8 -0.583250
--!entry.NASN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "C" 0 -1 0.0
-- "OD1" "O" 0 -1 0.0
-- "ND2" "N" 0 -1 0.0
-- "HD21" "H" 0 -1 0.0
-- "HD22" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NASN.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NASN.unit.childsequence single int
-- 2
--!entry.NASN.unit.connect array int
-- 0
-- 15
--!entry.NASN.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 15 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 12 1
-- 12 13 1
-- 12 14 1
-- 15 16 1
--!entry.NASN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
--!entry.NASN.unit.name single str
-- "NASN"
--!entry.NASN.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.253700 5.017112 1.232144
-- 5.005299 5.340406 0.315072
-- 3.984885 5.817909 2.265917
-- 4.408015 6.733702 2.314743
-- 3.359611 5.504297 2.994464
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 15 0 0 0 0
--!entry.NASN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NASN" 1 17 1 "p" 0
--!entry.NASN.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NASN.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NASN.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NASP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.021580
-- "HA" "HP" 0 1 131072 6 1 -0.015560
-- "CB" "CT" 0 1 131072 7 6 -0.319940
-- "HB2" "HC" 0 1 131072 8 1 0.089360
-- "HB3" "HC" 0 1 131072 9 1 0.089360
-- "CG" "C" 0 1 131072 10 6 0.883310
-- "OD1" "O2" 0 1 131072 11 8 -0.821080
-- "OD2" "O2" 0 1 131072 12 8 -0.821080
-- "C" "C" 0 1 131072 13 6 0.670480
-- "O" "O" 0 1 131072 14 8 -0.583250
--!entry.NASP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "C" 0 -1 0.0
-- "OD1" "O2" 0 -1 0.0
-- "OD2" "O2" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NASP.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NASP.unit.childsequence single int
-- 2
--!entry.NASP.unit.connect array int
-- 0
-- 13
--!entry.NASP.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 13 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 12 1
-- 13 14 1
--!entry.NASP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
--!entry.NASP.unit.name single str
-- "NASP"
--!entry.NASP.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.275101 5.011380 1.194527
-- 3.669108 5.954940 0.620011
-- 5.407731 5.091879 1.740667
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 13 0 0 0 0
--!entry.NASP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NASP" 1 15 1 "p" 0
--!entry.NASP.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NASP.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NASP.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NCYM.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.141590
-- "HA" "HP" 0 1 131072 6 1 0.070220
-- "CB" "CT" 0 1 131072 7 6 0.112010
-- "HB2" "H1" 0 1 131072 8 1 -0.023100
-- "HB3" "H1" 0 1 131072 9 1 -0.023100
-- "SG" "SH" 0 1 131072 10 16 -0.931650
-- "C" "C" 0 1 131072 11 6 0.670480
-- "O" "O" 0 1 131072 12 8 -0.583250
--!entry.NCYM.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "H1" 0 -1 0.0
-- "HB3" "H1" 0 -1 0.0
-- "SG" "SH" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NCYM.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NCYM.unit.childsequence single int
-- 2
--!entry.NCYM.unit.connect array int
-- 0
-- 11
--!entry.NCYM.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 11 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 11 12 1
--!entry.NCYM.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
--!entry.NCYM.unit.name single str
-- "NCYM"
--!entry.NCYM.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.309573 5.303523 1.366036
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NCYM.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 11 0 0 0 0
--!entry.NCYM.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NCYM" 1 13 1 "p" 0
--!entry.NCYM.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NCYM.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NCYM.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NCYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.008690
-- "HA" "HP" 0 1 131072 6 1 0.055730
-- "CB" "CT" 0 1 131072 7 6 -0.028460
-- "HB2" "H1" 0 1 131072 8 1 0.068320
-- "HB3" "H1" 0 1 131072 9 1 0.068320
-- "SG" "SH" 0 1 131072 10 16 -0.250480
-- "HG" "HS" 0 1 131072 11 1 0.158050
-- "C" "C" 0 1 131072 12 6 0.670480
-- "O" "O" 0 1 131072 13 8 -0.583250
--!entry.NCYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "H1" 0 -1 0.0
-- "HB3" "H1" 0 -1 0.0
-- "SG" "SH" 0 -1 0.0
-- "HG" "HS" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NCYS.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NCYS.unit.childsequence single int
-- 2
--!entry.NCYS.unit.connect array int
-- 0
-- 12
--!entry.NCYS.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 12 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 12 13 1
--!entry.NCYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
--!entry.NCYS.unit.name single str
-- "NCYS"
--!entry.NCYS.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.309573 5.303523 1.366036
-- 3.725392 5.622018 2.517640
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NCYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 12 0 0 0 0
--!entry.NCYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NCYS" 1 14 1 "p" 0
--!entry.NCYS.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NCYS.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NCYS.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NCYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.016590
-- "HA" "HP" 0 1 131072 6 1 0.026230
-- "CB" "CT" 0 1 131072 7 6 -0.036490
-- "HB2" "H1" 0 1 131072 8 1 0.084950
-- "HB3" "H1" 0 1 131072 9 1 0.084950
-- "SG" "S" 0 1 131072 10 16 -0.080260
-- "C" "C" 0 1 131072 11 6 0.670480
-- "O" "O" 0 1 131072 12 8 -0.583250
--!entry.NCYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "H1" 0 -1 0.0
-- "HB3" "H1" 0 -1 0.0
-- "SG" "S" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NCYX.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NCYX.unit.childsequence single int
-- 2
--!entry.NCYX.unit.connect array int
-- 0
-- 11
--!entry.NCYX.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 11 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 11 12 1
--!entry.NCYX.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
--!entry.NCYX.unit.name single str
-- "NCYX"
--!entry.NCYX.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.309573 5.303523 1.366036
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NCYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 11 10 0 0 0
--!entry.NCYX.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NCYX" 1 13 1 "p" 0
--!entry.NCYX.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NCYX.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NCYX.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NGLH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.058830
-- "HA" "HP" 0 1 131072 6 1 0.038110
-- "CB" "CT" 0 1 131072 7 6 0.146800
-- "HB2" "HC" 0 1 131072 8 1 0.015120
-- "HB3" "HC" 0 1 131072 9 1 0.015120
-- "CG" "CT" 0 1 131072 10 6 -0.424760
-- "HG2" "HC" 0 1 131072 11 1 0.200810
-- "HG3" "HC" 0 1 131072 12 1 0.200810
-- "CD" "C" 0 1 131072 13 6 0.647590
-- "OE1" "O" 0 1 131072 14 8 -0.569530
-- "OE2" "OH" 0 1 131072 15 8 -0.601150
-- "HE2" "HO" 0 1 131072 16 1 0.452700
-- "C" "C" 0 1 131072 17 6 0.670480
-- "O" "O" 0 1 131072 18 8 -0.583250
--!entry.NGLH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "C" 0 -1 0.0
-- "OE1" "O" 0 -1 0.0
-- "OE2" "OH" 0 -1 0.0
-- "HE2" "HO" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NGLH.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NGLH.unit.childsequence single int
-- 2
--!entry.NGLH.unit.connect array int
-- 0
-- 17
--!entry.NGLH.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 17 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 12 1
-- 10 13 1
-- 13 14 1
-- 13 15 1
-- 15 16 1
-- 17 18 1
--!entry.NGLH.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
--!entry.NGLH.unit.name single str
-- "NGLH"
--!entry.NGLH.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.267328 4.996267 1.194946
-- 5.347413 4.849843 1.186158
-- 3.966923 5.535124 0.296342
-- 3.873732 5.805369 2.428706
-- 4.594590 5.679012 3.454376
-- 2.855965 6.542070 2.333721
-- 2.710526 6.996624 3.166684
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NGLH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 17 0 0 0 0
--!entry.NGLH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NGLH" 1 19 1 "p" 0
--!entry.NGLH.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NGLH.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NGLH.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NGLN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.176770
-- "HA" "HP" 0 1 131072 6 1 0.074450
-- "CB" "CT" 0 1 131072 7 6 0.367300
-- "HB2" "HC" 0 1 131072 8 1 -0.042440
-- "HB3" "HC" 0 1 131072 9 1 -0.042440
-- "CG" "CT" 0 1 131072 10 6 -0.651590
-- "HG2" "HC" 0 1 131072 11 1 0.230560
-- "HG3" "HC" 0 1 131072 12 1 0.230560
-- "CD" "C" 0 1 131072 13 6 0.855380
-- "OE1" "O" 0 1 131072 14 8 -0.671160
-- "NE2" "N" 0 1 131072 15 7 -0.907460
-- "HE21" "H" 0 1 131072 16 1 0.398200
-- "HE22" "H" 0 1 131072 17 1 0.398200
-- "C" "C" 0 1 131072 18 6 0.670480
-- "O" "O" 0 1 131072 19 8 -0.583250
--!entry.NGLN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "C" 0 -1 0.0
-- "OE1" "O" 0 -1 0.0
-- "NE2" "N" 0 -1 0.0
-- "HE21" "H" 0 -1 0.0
-- "HE22" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NGLN.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NGLN.unit.childsequence single int
-- 2
--!entry.NGLN.unit.connect array int
-- 0
-- 18
--!entry.NGLN.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 18 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 12 1
-- 10 13 1
-- 13 14 1
-- 13 15 1
-- 15 16 1
-- 15 17 1
-- 18 19 1
--!entry.NGLN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
--!entry.NGLN.unit.name single str
-- "NGLN"
--!entry.NGLN.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.906976 5.848443 2.410302
-- 3.138962 5.408349 3.262893
-- 4.458856 7.061523 2.488333
-- 4.248434 7.659045 3.274966
-- 5.084281 7.376210 1.760379
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NGLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 18 0 0 0 0
--!entry.NGLN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NGLN" 1 20 1 "p" 0
--!entry.NGLN.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NGLN.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NGLN.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NGLU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.277630
-- "HA" "HP" 0 1 131072 6 1 0.115460
-- "CB" "CT" 0 1 131072 7 6 0.687660
-- "HB2" "HC" 0 1 131072 8 1 -0.198680
-- "HB3" "HC" 0 1 131072 9 1 -0.198680
-- "CG" "CT" 0 1 131072 10 6 -0.615270
-- "HG2" "HC" 0 1 131072 11 1 0.173380
-- "HG3" "HC" 0 1 131072 12 1 0.173380
-- "CD" "C" 0 1 131072 13 6 0.808370
-- "OE1" "O2" 0 1 131072 14 8 -0.802600
-- "OE2" "O2" 0 1 131072 15 8 -0.802600
-- "C" "C" 0 1 131072 16 6 0.670480
-- "O" "O" 0 1 131072 17 8 -0.583250
--!entry.NGLU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "C" 0 -1 0.0
-- "OE1" "O2" 0 -1 0.0
-- "OE2" "O2" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NGLU.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NGLU.unit.childsequence single int
-- 2
--!entry.NGLU.unit.connect array int
-- 0
-- 16
--!entry.NGLU.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 16 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 12 1
-- 10 13 1
-- 13 14 1
-- 13 15 1
-- 16 17 1
--!entry.NGLU.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
--!entry.NGLU.unit.name single str
-- "NGLU"
--!entry.NGLU.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.267328 4.996267 1.194946
-- 5.347413 4.849843 1.186158
-- 3.966923 5.535124 0.296342
-- 3.873732 5.805369 2.428706
-- 4.594590 5.679012 3.454376
-- 2.855965 6.542070 2.333721
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NGLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 16 0 0 0 0
--!entry.NGLU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NGLU" 1 18 1 "p" 0
--!entry.NGLU.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NGLU.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NGLU.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NGLY.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.170530
-- "HA2" "HP" 0 1 131072 6 1 0.116660
-- "HA3" "HP" 0 1 131072 7 1 0.116660
-- "C" "C" 0 1 131072 8 6 0.670480
-- "O" "O" 0 1 131072 9 8 -0.583250
--!entry.NGLY.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA2" "HP" 0 -1 0.0
-- "HA3" "HP" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NGLY.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NGLY.unit.childsequence single int
-- 2
--!entry.NGLY.unit.connect array int
-- 0
-- 8
--!entry.NGLY.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
--!entry.NGLY.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
--!entry.NGLY.unit.name single str
-- "NGLY"
--!entry.NGLY.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.671668 3.400125 0.889824
-- 5.483710 2.686702 -4.438857E-06
-- 5.993369 1.568360 -8.469843E-06
--!entry.NGLY.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 8 0 0 0 0
--!entry.NGLY.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NGLY" 1 10 1 "p" 0
--!entry.NGLY.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NGLY.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NGLY.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NHID.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.018360
-- "HA" "HP" 0 1 131072 6 1 0.005320
-- "CB" "CT" 0 1 131072 7 6 -0.207970
-- "HB2" "HC" 0 1 131072 8 1 0.122530
-- "HB3" "HC" 0 1 131072 9 1 0.122530
-- "CG" "CC" 0 1 131072 10 6 0.205880
-- "ND1" "NA" 0 1 131072 11 7 -0.380080
-- "HD1" "H" 0 1 131072 12 1 0.357430
-- "CE1" "CR" 0 1 131072 13 6 0.262300
-- "HE1" "H5" 0 1 131072 14 1 0.052860
-- "NE2" "NB" 0 1 131072 15 7 -0.525490
-- "CD2" "CV" 0 1 131072 16 6 -0.029750
-- "HD2" "H4" 0 1 131072 17 1 0.095590
-- "C" "C" 0 1 131072 18 6 0.670480
-- "O" "O" 0 1 131072 19 8 -0.583250
--!entry.NHID.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CC" 0 -1 0.0
-- "ND1" "NA" 0 -1 0.0
-- "HD1" "H" 0 -1 0.0
-- "CE1" "CR" 0 -1 0.0
-- "HE1" "H5" 0 -1 0.0
-- "NE2" "NB" 0 -1 0.0
-- "CD2" "CV" 0 -1 0.0
-- "HD2" "H4" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NHID.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NHID.unit.childsequence single int
-- 2
--!entry.NHID.unit.connect array int
-- 0
-- 18
--!entry.NHID.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 18 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 16 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 15 1
-- 15 16 1
-- 16 17 1
-- 18 19 1
--!entry.NHID.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
--!entry.NHID.unit.name single str
-- "NHID"
--!entry.NHID.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 3.942782 5.885086 2.382972
-- 3.339725 5.691913 3.169805
-- 4.624274 6.997642 2.182500
-- 4.563048 7.811875 2.904563
-- 5.294011 6.891451 1.061663
-- 5.058974 5.678868 0.492453
-- 5.537741 5.417846 -0.451343
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NHID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 18 0 0 0 0
--!entry.NHID.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NHID" 1 20 1 "p" 0
--!entry.NHID.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NHID.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NHID.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NHIE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.035930
-- "HA" "HP" 0 1 131072 6 1 0.022090
-- "CB" "CT" 0 1 131072 7 6 -0.326150
-- "HB2" "HC" 0 1 131072 8 1 0.147760
-- "HB3" "HC" 0 1 131072 9 1 0.147760
-- "CG" "CC" 0 1 131072 10 6 0.467290
-- "ND1" "NB" 0 1 131072 11 7 -0.678510
-- "CE1" "CR" 0 1 131072 12 6 0.312370
-- "HE1" "H5" 0 1 131072 13 1 0.042060
-- "NE2" "NA" 0 1 131072 14 7 -0.318040
-- "HE2" "H" 0 1 131072 15 1 0.341000
-- "CD2" "CW" 0 1 131072 16 6 -0.217930
-- "HD2" "H4" 0 1 131072 17 1 0.159020
-- "C" "C" 0 1 131072 18 6 0.670480
-- "O" "O" 0 1 131072 19 8 -0.583250
--!entry.NHIE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CC" 0 -1 0.0
-- "ND1" "NB" 0 -1 0.0
-- "CE1" "CR" 0 -1 0.0
-- "HE1" "H5" 0 -1 0.0
-- "NE2" "NA" 0 -1 0.0
-- "HE2" "H" 0 -1 0.0
-- "CD2" "CW" 0 -1 0.0
-- "HD2" "H4" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NHIE.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NHIE.unit.childsequence single int
-- 2
--!entry.NHIE.unit.connect array int
-- 0
-- 18
--!entry.NHIE.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 18 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 16 1
-- 11 12 1
-- 12 13 1
-- 12 14 1
-- 14 15 1
-- 14 16 1
-- 16 17 1
-- 18 19 1
--!entry.NHIE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
--!entry.NHIE.unit.name single str
-- "NHIE"
--!entry.NHIE.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 3.942782 5.885086 2.382972
-- 4.624274 6.997642 2.182500
-- 4.563048 7.811875 2.904563
-- 5.294011 6.891451 1.061663
-- 5.896297 7.605085 0.676854
-- 5.058974 5.678868 0.492453
-- 5.537741 5.417846 -0.451343
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NHIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 18 0 0 0 0
--!entry.NHIE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NHIE" 1 20 1 "p" 0
--!entry.NHIE.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NHIE.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NHIE.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NHIP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 0.119410
-- "HA" "HP" 0 1 131072 6 1 -0.053970
-- "CB" "CT" 0 1 131072 7 6 -0.059690
-- "HB2" "HC" 0 1 131072 8 1 0.073300
-- "HB3" "HC" 0 1 131072 9 1 0.073300
-- "CG" "CC" 0 1 131072 10 6 0.259530
-- "ND1" "NA" 0 1 131072 11 7 -0.115370
-- "HD1" "H" 0 1 131072 12 1 0.355750
-- "CE1" "CR" 0 1 131072 13 6 -0.085390
-- "HE1" "H5" 0 1 131072 14 1 0.198640
-- "NE2" "NA" 0 1 131072 15 7 0.055360
-- "HE2" "H" 0 1 131072 16 1 0.293500
-- "CD2" "CW" 0 1 131072 17 6 -0.207090
-- "HD2" "H4" 0 1 131072 18 1 0.155510
-- "C" "C" 0 1 131072 19 6 0.670480
-- "O" "O" 0 1 131072 20 8 -0.583250
--!entry.NHIP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CC" 0 -1 0.0
-- "ND1" "NA" 0 -1 0.0
-- "HD1" "H" 0 -1 0.0
-- "CE1" "CR" 0 -1 0.0
-- "HE1" "H5" 0 -1 0.0
-- "NE2" "NA" 0 -1 0.0
-- "HE2" "H" 0 -1 0.0
-- "CD2" "CW" 0 -1 0.0
-- "HD2" "H4" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NHIP.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NHIP.unit.childsequence single int
-- 2
--!entry.NHIP.unit.connect array int
-- 0
-- 19
--!entry.NHIP.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 19 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 17 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 15 1
-- 15 16 1
-- 15 17 1
-- 17 18 1
-- 19 20 1
--!entry.NHIP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
--!entry.NHIP.unit.name single str
-- "NHIP"
--!entry.NHIP.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 3.942782 5.885086 2.382972
-- 3.339725 5.691913 3.169805
-- 4.624274 6.997642 2.182500
-- 4.563048 7.811875 2.904563
-- 5.294011 6.891451 1.061663
-- 5.896297 7.605085 0.676854
-- 5.058974 5.678868 0.492453
-- 5.537741 5.417846 -0.451343
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NHIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 19 0 0 0 0
--!entry.NHIP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NHIP" 1 21 1 "p" 0
--!entry.NHIP.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NHIP.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NHIP.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NILE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.229690
-- "HA" "HP" 0 1 131072 6 1 0.080520
-- "CB" "CT" 0 1 131072 7 6 0.455630
-- "HB" "HC" 0 1 131072 8 1 -0.113680
-- "CG2" "CT" 0 1 131072 9 6 -0.498950
-- "HG21" "HC" 0 1 131072 10 1 0.129740
-- "HG22" "HC" 0 1 131072 11 1 0.129740
-- "HG23" "HC" 0 1 131072 12 1 0.129740
-- "CG1" "CT" 0 1 131072 13 6 -0.144720
-- "HG12" "HC" 0 1 131072 14 1 0.066780
-- "HG13" "HC" 0 1 131072 15 1 0.066780
-- "CD1" "CT" 0 1 131072 16 6 -0.134770
-- "HD11" "HC" 0 1 131072 17 1 0.041890
-- "HD12" "HC" 0 1 131072 18 1 0.041890
-- "HD13" "HC" 0 1 131072 19 1 0.041890
-- "C" "C" 0 1 131072 20 6 0.670480
-- "O" "O" 0 1 131072 21 8 -0.583250
--!entry.NILE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB" "HC" 0 -1 0.0
-- "CG2" "CT" 0 -1 0.0
-- "HG21" "HC" 0 -1 0.0
-- "HG22" "HC" 0 -1 0.0
-- "HG23" "HC" 0 -1 0.0
-- "CG1" "CT" 0 -1 0.0
-- "HG12" "HC" 0 -1 0.0
-- "HG13" "HC" 0 -1 0.0
-- "CD1" "CT" 0 -1 0.0
-- "HD11" "HC" 0 -1 0.0
-- "HD12" "HC" 0 -1 0.0
-- "HD13" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NILE.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NILE.unit.childsequence single int
-- 2
--!entry.NILE.unit.connect array int
-- 0
-- 20
--!entry.NILE.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 20 1
-- 7 8 1
-- 7 9 1
-- 7 13 1
-- 9 10 1
-- 9 11 1
-- 9 12 1
-- 13 14 1
-- 13 15 1
-- 13 16 1
-- 16 17 1
-- 16 18 1
-- 16 19 1
-- 20 21 1
--!entry.NILE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
--!entry.NILE.unit.name single str
-- "NILE"
--!entry.NILE.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.552136 3.620733 1.245168
-- 2.470128 3.752486 1.245640
-- 3.970045 2.845728 2.490296
-- 5.052053 2.713974 2.490763
-- 3.671561 3.399208 3.380615
-- 3.485650 1.869275 2.490737
-- 4.230204 4.986694 1.245169
-- 3.931820 5.541027 0.355348
-- 5.312310 4.855746 1.245164
-- 3.812294 5.761632 2.490339
-- 4.110777 5.208104 3.380628
-- 4.296689 6.738085 2.490833
-- 2.730286 5.893383 2.490813
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 20 0 0 0 0
--!entry.NILE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NILE" 1 22 1 "p" 0
--!entry.NILE.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NILE.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NILE.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NLEU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.048190
-- "HA" "HP" 0 1 131072 6 1 0.009070
-- "CB" "CT" 0 1 131072 7 6 -0.232000
-- "HB2" "HC" 0 1 131072 8 1 0.091230
-- "HB3" "HC" 0 1 131072 9 1 0.091230
-- "CG" "CT" 0 1 131072 10 6 0.595680
-- "HG" "HC" 0 1 131072 11 1 -0.106730
-- "CD1" "CT" 0 1 131072 12 6 -0.811380
-- "HD11" "HC" 0 1 131072 13 1 0.214210
-- "HD12" "HC" 0 1 131072 14 1 0.214210
-- "HD13" "HC" 0 1 131072 15 1 0.214210
-- "CD2" "CT" 0 1 131072 16 6 -0.811380
-- "HD21" "HC" 0 1 131072 17 1 0.214210
-- "HD22" "HC" 0 1 131072 18 1 0.214210
-- "HD23" "HC" 0 1 131072 19 1 0.214210
-- "C" "C" 0 1 131072 20 6 0.670480
-- "O" "O" 0 1 131072 21 8 -0.583250
--!entry.NLEU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG" "HC" 0 -1 0.0
-- "CD1" "CT" 0 -1 0.0
-- "HD11" "HC" 0 -1 0.0
-- "HD12" "HC" 0 -1 0.0
-- "HD13" "HC" 0 -1 0.0
-- "CD2" "CT" 0 -1 0.0
-- "HD21" "HC" 0 -1 0.0
-- "HD22" "HC" 0 -1 0.0
-- "HD23" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NLEU.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NLEU.unit.childsequence single int
-- 2
--!entry.NLEU.unit.connect array int
-- 0
-- 20
--!entry.NLEU.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 20 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 12 1
-- 10 16 1
-- 12 13 1
-- 12 14 1
-- 12 15 1
-- 16 17 1
-- 16 18 1
-- 16 19 1
-- 20 21 1
--!entry.NLEU.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
--!entry.NLEU.unit.name single str
-- "NLEU"
--!entry.NLEU.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.853429 5.762895 -0.062857
-- 2.773449 5.910113 -0.054557
-- 4.351513 6.732052 -0.090203
-- 4.134159 5.185704 -0.943846
-- 3.881105 5.817645 2.426721
-- 4.181626 5.279602 3.325774
-- 4.379198 6.786825 2.400363
-- 2.801135 5.964881 2.435959
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NLEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 20 0 0 0 0
--!entry.NLEU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NLEU" 1 22 1 "p" 0
--!entry.NLEU.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NLEU.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NLEU.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NLYN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.095720
-- "HA" "HP" 0 1 131072 6 1 0.049030
-- "CB" "CT" 0 1 131072 7 6 0.079910
-- "HB2" "HC" 0 1 131072 8 1 -0.013700
-- "HB3" "HC" 0 1 131072 9 1 -0.013700
-- "CG" "CT" 0 1 131072 10 6 0.022200
-- "HG2" "HC" 0 1 131072 11 1 0.016820
-- "HG3" "HC" 0 1 131072 12 1 0.016820
-- "CD" "CT" 0 1 131072 13 6 -0.303010
-- "HD2" "HC" 0 1 131072 14 1 0.123310
-- "HD3" "HC" 0 1 131072 15 1 0.123310
-- "CE" "CT" 0 1 131072 16 6 0.555520
-- "HE2" "HP" 0 1 131072 17 1 -0.113930
-- "HE3" "HP" 0 1 131072 18 1 -0.113930
-- "NZ" "NT" 0 1 131072 19 7 -0.979040
-- "HZ2" "H" 0 1 131072 20 1 0.354450
-- "HZ3" "H" 0 1 131072 21 1 0.354450
-- "C" "C" 0 1 131072 22 6 0.670480
-- "O" "O" 0 1 131072 23 8 -0.583250
--!entry.NLYN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "CT" 0 -1 0.0
-- "HD2" "HC" 0 -1 0.0
-- "HD3" "HC" 0 -1 0.0
-- "CE" "CT" 0 -1 0.0
-- "HE2" "HP" 0 -1 0.0
-- "HE3" "HP" 0 -1 0.0
-- "NZ" "NT" 0 -1 0.0
-- "HZ2" "H" 0 -1 0.0
-- "HZ3" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NLYN.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NLYN.unit.childsequence single int
-- 2
--!entry.NLYN.unit.connect array int
-- 0
-- 22
--!entry.NLYN.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 22 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 12 1
-- 10 13 1
-- 13 14 1
-- 13 15 1
-- 13 16 1
-- 16 17 1
-- 16 18 1
-- 16 19 1
-- 19 20 1
-- 19 21 1
-- 22 23 1
--!entry.NLYN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
-- "R" 1 "A" 23
--!entry.NLYN.unit.name single str
-- "NLYN"
--!entry.NLYN.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.881105 5.817645 2.426721
-- 2.801135 5.964881 2.435959
-- 4.181626 5.279602 3.325774
-- 4.578325 7.173410 2.389153
-- 5.658410 7.026987 2.380363
-- 4.277917 7.712267 1.490550
-- 4.199422 7.952309 3.576860
-- 4.661186 8.850226 3.551979
-- 3.198675 8.088466 3.584971
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NLYN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 22 0 0 0 0
--!entry.NLYN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NLYN" 1 24 1 "p" 0
--!entry.NLYN.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NLYN.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NLYN.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NLYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.109440
-- "HA" "HP" 0 1 131072 6 1 0.074110
-- "CB" "CT" 0 1 131072 7 6 0.027560
-- "HB2" "HC" 0 1 131072 8 1 0.006150
-- "HB3" "HC" 0 1 131072 9 1 0.006150
-- "CG" "CT" 0 1 131072 10 6 -0.012430
-- "HG2" "HC" 0 1 131072 11 1 0.044300
-- "HG3" "HC" 0 1 131072 12 1 0.044300
-- "CD" "CT" 0 1 131072 13 6 -0.229220
-- "HD2" "HC" 0 1 131072 14 1 0.103290
-- "HD3" "HC" 0 1 131072 15 1 0.103290
-- "CE" "CT" 0 1 131072 16 6 0.454620
-- "HE2" "HP" 0 1 131072 17 1 -0.045920
-- "HE3" "HP" 0 1 131072 18 1 -0.045920
-- "NZ" "N3" 0 1 131072 19 7 -0.357710
-- "HZ1" "H" 0 1 131072 20 1 0.333220
-- "HZ2" "H" 0 1 131072 21 1 0.333220
-- "HZ3" "H" 0 1 131072 22 1 0.333220
-- "C" "C" 0 1 131072 23 6 0.670480
-- "O" "O" 0 1 131072 24 8 -0.583250
--!entry.NLYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "CT" 0 -1 0.0
-- "HD2" "HC" 0 -1 0.0
-- "HD3" "HC" 0 -1 0.0
-- "CE" "CT" 0 -1 0.0
-- "HE2" "HP" 0 -1 0.0
-- "HE3" "HP" 0 -1 0.0
-- "NZ" "N3" 0 -1 0.0
-- "HZ1" "H" 0 -1 0.0
-- "HZ2" "H" 0 -1 0.0
-- "HZ3" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NLYS.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NLYS.unit.childsequence single int
-- 2
--!entry.NLYS.unit.connect array int
-- 0
-- 23
--!entry.NLYS.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 23 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 12 1
-- 10 13 1
-- 13 14 1
-- 13 15 1
-- 13 16 1
-- 16 17 1
-- 16 18 1
-- 16 19 1
-- 19 20 1
-- 19 21 1
-- 19 22 1
-- 23 24 1
--!entry.NLYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
-- "R" 1 "A" 23
-- "R" 1 "A" 24
--!entry.NLYS.unit.name single str
-- "NLYS"
--!entry.NLYS.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.881105 5.817645 2.426721
-- 2.801135 5.964881 2.435959
-- 4.181626 5.279602 3.325774
-- 4.578325 7.173410 2.389153
-- 5.658410 7.026987 2.380363
-- 4.277917 7.712267 1.490550
-- 4.199422 7.952309 3.576860
-- 4.478085 7.453366 4.409628
-- 4.661186 8.850226 3.551979
-- 3.198675 8.088466 3.584971
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NLYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 23 0 0 0 0
--!entry.NLYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NLYS" 1 25 1 "p" 0
--!entry.NLYS.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NLYS.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NLYS.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NMET.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.097630
-- "HA" "HP" 0 1 131072 6 1 0.070210
-- "CB" "CT" 0 1 131072 7 6 0.275580
-- "HB2" "HC" 0 1 131072 8 1 -0.049150
-- "HB3" "HC" 0 1 131072 9 1 -0.049150
-- "CG" "CT" 0 1 131072 10 6 -0.318690
-- "HG2" "H1" 0 1 131072 11 1 0.142380
-- "HG3" "H1" 0 1 131072 12 1 0.142380
-- "SD" "S" 0 1 131072 13 16 -0.124640
-- "CE" "CT" 0 1 131072 14 6 -0.228860
-- "HE1" "H1" 0 1 131072 15 1 0.100120
-- "HE2" "H1" 0 1 131072 16 1 0.100120
-- "HE3" "H1" 0 1 131072 17 1 0.100120
-- "C" "C" 0 1 131072 18 6 0.670480
-- "O" "O" 0 1 131072 19 8 -0.583250
--!entry.NMET.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "H1" 0 -1 0.0
-- "HG3" "H1" 0 -1 0.0
-- "SD" "S" 0 -1 0.0
-- "CE" "CT" 0 -1 0.0
-- "HE1" "H1" 0 -1 0.0
-- "HE2" "H1" 0 -1 0.0
-- "HE3" "H1" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NMET.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NMET.unit.childsequence single int
-- 2
--!entry.NMET.unit.connect array int
-- 0
-- 18
--!entry.NMET.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 18 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 12 1
-- 10 13 1
-- 13 14 1
-- 14 15 1
-- 14 16 1
-- 14 17 1
-- 18 19 1
--!entry.NMET.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
--!entry.NMET.unit.name single str
-- "NMET"
--!entry.NMET.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.817309 5.981266 2.651708
-- 4.753212 7.463128 2.340949
-- 4.433582 7.904044 1.396741
-- 4.585907 8.175299 3.148985
-- 5.814074 7.218763 2.286554
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NMET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 18 0 0 0 0
--!entry.NMET.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NMET" 1 20 1 "p" 0
--!entry.NMET.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NMET.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NMET.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NPHE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.033820
-- "HA" "HP" 0 1 131072 6 1 0.035950
-- "CB" "CT" 0 1 131072 7 6 -0.264720
-- "HB2" "HC" 0 1 131072 8 1 0.129600
-- "HB3" "HC" 0 1 131072 9 1 0.129600
-- "CG" "CA" 0 1 131072 10 6 0.233490
-- "CD1" "CA" 0 1 131072 11 6 -0.246420
-- "HD1" "HA" 0 1 131072 12 1 0.151840
-- "CE1" "CA" 0 1 131072 13 6 -0.076860
-- "HE1" "HA" 0 1 131072 14 1 0.108390
-- "CZ" "CA" 0 1 131072 15 6 -0.134740
-- "HZ" "HA" 0 1 131072 16 1 0.093530
-- "CE2" "CA" 0 1 131072 17 6 -0.076860
-- "HE2" "HA" 0 1 131072 18 1 0.108390
-- "CD2" "CA" 0 1 131072 19 6 -0.246420
-- "HD2" "HA" 0 1 131072 20 1 0.151840
-- "C" "C" 0 1 131072 21 6 0.670480
-- "O" "O" 0 1 131072 22 8 -0.583250
--!entry.NPHE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CA" 0 -1 0.0
-- "CD1" "CA" 0 -1 0.0
-- "HD1" "HA" 0 -1 0.0
-- "CE1" "CA" 0 -1 0.0
-- "HE1" "HA" 0 -1 0.0
-- "CZ" "CA" 0 -1 0.0
-- "HZ" "HA" 0 -1 0.0
-- "CE2" "CA" 0 -1 0.0
-- "HE2" "HA" 0 -1 0.0
-- "CD2" "CA" 0 -1 0.0
-- "HD2" "HA" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NPHE.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NPHE.unit.childsequence single int
-- 2
--!entry.NPHE.unit.connect array int
-- 0
-- 21
--!entry.NPHE.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 21 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 19 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 15 1
-- 15 16 1
-- 15 17 1
-- 17 18 1
-- 17 19 1
-- 19 20 1
-- 21 22 1
--!entry.NPHE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
--!entry.NPHE.unit.name single str
-- "NPHE"
--!entry.NPHE.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 3.911613 5.857250 2.409890
-- 3.236123 5.513843 3.193398
-- 4.490014 7.129513 2.492354
-- 4.264853 7.776651 3.340066
-- 5.357616 7.570591 1.486016
-- 5.807943 8.561138 1.550220
-- 5.646818 6.739407 0.397211
-- 6.322309 7.082817 -0.386295
-- 5.068419 5.467143 0.314744
-- 5.293584 4.820007 -0.532968
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NPHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 21 0 0 0 0
--!entry.NPHE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NPHE" 1 23 1 "p" 0
--!entry.NPHE.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NPHE.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NPHE.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NPRO.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 -0.138570
-- "H2" "H" 0 1 131072 2 1 0.257280
-- "H3" "H" 0 1 131072 3 1 0.257280
-- "CD" "CT" 0 1 131072 4 6 0.227570
-- "HD2" "HP" 0 1 131072 5 1 0.017160
-- "HD3" "HP" 0 1 131072 6 1 0.017150
-- "CG" "CT" 0 1 131072 7 6 -0.073460
-- "HG2" "HC" 0 1 131072 8 1 0.038960
-- "HG3" "HC" 0 1 131072 9 1 0.038960
-- "CB" "CT" 0 1 131072 10 6 0.189500
-- "HB2" "HC" 0 1 131072 11 1 -0.029230
-- "HB3" "HC" 0 1 131072 12 1 -0.029230
-- "CA" "CT" 0 1 131072 13 6 0.104090
-- "HA" "HP" 0 1 131072 14 1 0.035310
-- "C" "C" 0 1 131072 15 6 0.670480
-- "O" "O" 0 1 131072 16 8 -0.583250
--!entry.NPRO.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CD" "CT" 0 -1 0.0
-- "HD2" "HP" 0 -1 0.0
-- "HD3" "HP" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NPRO.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NPRO.unit.childsequence single int
-- 2
--!entry.NPRO.unit.connect array int
-- 0
-- 15
--!entry.NPRO.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 13 1
-- 4 5 1
-- 4 6 1
-- 4 7 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 12 1
-- 10 13 1
-- 13 14 1
-- 13 15 1
-- 15 16 1
--!entry.NPRO.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
--!entry.NPRO.unit.name single str
-- "NPRO"
--!entry.NPRO.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 4.293514 0.460336 0.080119
-- 4.408169 0.002209 -0.902263
-- 3.942023 -0.287867 0.790574
-- 5.543321 1.147470 0.544693
-- 6.406715 0.710627 0.042879
-- 5.648273 1.022228 1.622376
-- 5.375453 2.604421 0.185227
-- 5.977268 2.833902 -0.694123
-- 5.701345 3.225015 1.019947
-- 3.941704 2.857529 -0.104508
-- 3.623882 3.477056 0.734106
-- 3.517842 3.515620 -1.409783
-- 2.762837 2.933549 -2.185412
--!entry.NPRO.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 15 0 0 0 0
--!entry.NPRO.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NPRO" 1 17 1 "p" 0
--!entry.NPRO.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NPRO.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NPRO.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NSER.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 0.006090
-- "HA" "HP" 0 1 131072 6 1 0.050540
-- "CB" "CT" 0 1 131072 7 6 0.197970
-- "HB2" "H1" 0 1 131072 8 1 0.017960
-- "HB3" "H1" 0 1 131072 9 1 0.017970
-- "OG" "OH" 0 1 131072 10 8 -0.606020
-- "HG" "HO" 0 1 131072 11 1 0.378280
-- "C" "C" 0 1 131072 12 6 0.670480
-- "O" "O" 0 1 131072 13 8 -0.583250
--!entry.NSER.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "H1" 0 -1 0.0
-- "HB3" "H1" 0 -1 0.0
-- "OG" "OH" 0 -1 0.0
-- "HG" "HO" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NSER.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NSER.unit.childsequence single int
-- 2
--!entry.NSER.unit.connect array int
-- 0
-- 12
--!entry.NSER.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 12 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 12 13 1
--!entry.NSER.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
--!entry.NSER.unit.name single str
-- "NSER"
--!entry.NSER.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.230753 4.925145 1.196917
-- 3.983305 5.433814 1.972562
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NSER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 12 0 0 0 0
--!entry.NSER.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NSER" 1 14 1 "p" 0
--!entry.NSER.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NSER.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NSER.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NTHR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 0.036230
-- "HA" "HP" 0 1 131072 6 1 0.028680
-- "CB" "CT" 0 1 131072 7 6 0.563540
-- "HB" "H1" 0 1 131072 8 1 -0.161960
-- "CG2" "CT" 0 1 131072 9 6 -0.574400
-- "HG21" "HC" 0 1 131072 10 1 0.154000
-- "HG22" "HC" 0 1 131072 11 1 0.154000
-- "HG23" "HC" 0 1 131072 12 1 0.154000
-- "OG1" "OH" 0 1 131072 13 8 -0.735860
-- "HG1" "HO" 0 1 131072 14 1 0.444560
-- "C" "C" 0 1 131072 15 6 0.670480
-- "O" "O" 0 1 131072 16 8 -0.583250
--!entry.NTHR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB" "H1" 0 -1 0.0
-- "CG2" "CT" 0 -1 0.0
-- "HG21" "HC" 0 -1 0.0
-- "HG22" "HC" 0 -1 0.0
-- "HG23" "HC" 0 -1 0.0
-- "OG1" "OH" 0 -1 0.0
-- "HG1" "HO" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NTHR.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NTHR.unit.childsequence single int
-- 2
--!entry.NTHR.unit.connect array int
-- 0
-- 15
--!entry.NTHR.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 15 1
-- 7 8 1
-- 7 9 1
-- 7 13 1
-- 9 10 1
-- 9 11 1
-- 9 12 1
-- 13 14 1
-- 15 16 1
--!entry.NTHR.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
--!entry.NTHR.unit.name single str
-- "NTHR"
--!entry.NTHR.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 4.075059 4.623017 1.205786
-- 2.065936 3.859425 1.244383
-- 1.567127 2.890627 1.271209
-- 1.784431 4.436953 2.124903
-- 1.764699 4.397847 0.345796
-- 3.971501 2.947413 2.411212
-- 3.724052 3.456082 3.186857
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NTHR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 15 0 0 0 0
--!entry.NTHR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NTHR" 1 17 1 "p" 0
--!entry.NTHR.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NTHR.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NTHR.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NTRP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.064400
-- "HA" "HP" 0 1 131072 6 1 0.060910
-- "CB" "CT" 0 1 131072 7 6 0.072380
-- "HB2" "HC" 0 1 131072 8 1 0.023340
-- "HB3" "HC" 0 1 131072 9 1 0.023340
-- "CG" "C*" 0 1 131072 10 6 -0.302580
-- "CD1" "CW" 0 1 131072 11 6 0.030860
-- "HD1" "H4" 0 1 131072 12 1 0.139310
-- "NE1" "NA" 0 1 131072 13 7 -0.480170
-- "HE1" "H" 0 1 131072 14 1 0.392790
-- "CE2" "CN" 0 1 131072 15 6 0.192760
-- "CZ2" "CA" 0 1 131072 16 6 -0.261010
-- "HZ2" "HA" 0 1 131072 17 1 0.183580
-- "CH2" "CA" 0 1 131072 18 6 -0.180740
-- "HH2" "HA" 0 1 131072 19 1 0.106860
-- "CZ3" "CA" 0 1 131072 20 6 -0.044730
-- "HZ3" "HA" 0 1 131072 21 1 0.086480
-- "CE3" "CA" 0 1 131072 22 6 -0.427910
-- "HE3" "HA" 0 1 131072 23 1 0.225690
-- "CD2" "CB" 0 1 131072 24 6 0.286030
-- "C" "C" 0 1 131072 25 6 0.670480
-- "O" "O" 0 1 131072 26 8 -0.583250
--!entry.NTRP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "C*" 0 -1 0.0
-- "CD1" "CW" 0 -1 0.0
-- "HD1" "H4" 0 -1 0.0
-- "NE1" "NA" 0 -1 0.0
-- "HE1" "H" 0 -1 0.0
-- "CE2" "CN" 0 -1 0.0
-- "CZ2" "CA" 0 -1 0.0
-- "HZ2" "HA" 0 -1 0.0
-- "CH2" "CA" 0 -1 0.0
-- "HH2" "HA" 0 -1 0.0
-- "CZ3" "CA" 0 -1 0.0
-- "HZ3" "HA" 0 -1 0.0
-- "CE3" "CA" 0 -1 0.0
-- "HE3" "HA" 0 -1 0.0
-- "CD2" "CB" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NTRP.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NTRP.unit.childsequence single int
-- 2
--!entry.NTRP.unit.connect array int
-- 0
-- 25
--!entry.NTRP.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 25 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 24 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 15 1
-- 15 16 1
-- 15 24 1
-- 16 17 1
-- 16 18 1
-- 18 19 1
-- 18 20 1
-- 20 21 1
-- 20 22 1
-- 22 23 1
-- 22 24 1
-- 25 26 1
--!entry.NTRP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
-- "R" 1 "A" 23
-- "R" 1 "A" 24
-- "R" 1 "A" 25
-- "R" 1 "A" 26
--!entry.NTRP.unit.name single str
-- "NTRP"
--!entry.NTRP.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 4.023453 5.931084 2.293240
-- 3.368841 5.705466 3.135071
-- 4.811943 7.073555 1.949808
-- 4.882921 7.922010 2.493118
-- 5.427347 6.842060 0.816764
-- 6.297161 7.689052 0.119605
-- 6.531230 8.676649 0.517050
-- 6.814091 7.187011 -1.069023
-- 7.498074 7.791857 -1.664362
-- 6.482659 5.953119 -1.505101
-- 6.897660 5.575648 -2.439654
-- 5.604041 5.117355 -0.785636
-- 5.358720 4.126570 -1.168080
-- 5.083390 5.623004 0.411545
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NTRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 25 0 0 0 0
--!entry.NTRP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NTRP" 1 27 1 "p" 0
--!entry.NTRP.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NTRP.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NTRP.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NTYR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.117360
-- "HA" "HP" 0 1 131072 6 1 0.085560
-- "CB" "CT" 0 1 131072 7 6 -0.110270
-- "HB2" "HC" 0 1 131072 8 1 0.083860
-- "HB3" "HC" 0 1 131072 9 1 0.083860
-- "CG" "CA" 0 1 131072 10 6 0.037350
-- "CD1" "CA" 0 1 131072 11 6 -0.143640
-- "HD1" "HA" 0 1 131072 12 1 0.146300
-- "CE1" "CA" 0 1 131072 13 6 -0.334390
-- "HE1" "HA" 0 1 131072 14 1 0.190770
-- "CZ" "CA" 0 1 131072 15 6 0.444500
-- "OH" "OH" 0 1 131072 16 8 -0.546480
-- "HH" "HO" 0 1 131072 17 1 0.383690
-- "CE2" "CA" 0 1 131072 18 6 -0.334390
-- "HE2" "HA" 0 1 131072 19 1 0.190770
-- "CD2" "CA" 0 1 131072 20 6 -0.143640
-- "HD2" "HA" 0 1 131072 21 1 0.146300
-- "C" "C" 0 1 131072 22 6 0.670480
-- "O" "O" 0 1 131072 23 8 -0.583250
--!entry.NTYR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CA" 0 -1 0.0
-- "CD1" "CA" 0 -1 0.0
-- "HD1" "HA" 0 -1 0.0
-- "CE1" "CA" 0 -1 0.0
-- "HE1" "HA" 0 -1 0.0
-- "CZ" "CA" 0 -1 0.0
-- "OH" "OH" 0 -1 0.0
-- "HH" "HO" 0 -1 0.0
-- "CE2" "CA" 0 -1 0.0
-- "HE2" "HA" 0 -1 0.0
-- "CD2" "CA" 0 -1 0.0
-- "HD2" "HA" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NTYR.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NTYR.unit.childsequence single int
-- 2
--!entry.NTYR.unit.connect array int
-- 0
-- 22
--!entry.NTYR.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 22 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 10 11 1
-- 10 20 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 15 1
-- 15 16 1
-- 15 18 1
-- 16 17 1
-- 18 19 1
-- 18 20 1
-- 20 21 1
-- 22 23 1
--!entry.NTYR.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
-- "R" 1 "A" 23
--!entry.NTYR.unit.name single str
-- "NTYR"
--!entry.NTYR.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.267328 4.996267 1.194946
-- 4.059927 5.918911 2.227280
-- 3.400108 5.668218 3.057877
-- 4.699998 7.163547 2.192791
-- 4.538522 7.881891 2.996538
-- 5.547471 7.485542 1.125970
-- 6.169255 8.694617 1.092468
-- 5.956327 9.246984 1.848214
-- 5.754875 6.562900 0.093635
-- 6.414694 6.813595 -0.736962
-- 5.114806 5.318263 0.128119
-- 5.276286 4.599920 -0.675627
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NTYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 22 0 0 0 0
--!entry.NTYR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NTYR" 1 24 1 "p" 0
--!entry.NTYR.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NTYR.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NTYR.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.NVAL.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N3" 0 1 131072 1 7 0.351680
-- "H1" "H" 0 1 131072 2 1 0.166100
-- "H2" "H" 0 1 131072 3 1 0.166100
-- "H3" "H" 0 1 131072 4 1 0.166100
-- "CA" "CT" 0 1 131072 5 6 -0.131460
-- "HA" "HP" 0 1 131072 6 1 0.055960
-- "CB" "CT" 0 1 131072 7 6 0.600860
-- "HB" "HC" 0 1 131072 8 1 -0.088610
-- "CG1" "CT" 0 1 131072 9 6 -0.789890
-- "HG11" "HC" 0 1 131072 10 1 0.200970
-- "HG12" "HC" 0 1 131072 11 1 0.200970
-- "HG13" "HC" 0 1 131072 12 1 0.200970
-- "CG2" "CT" 0 1 131072 13 6 -0.789890
-- "HG21" "HC" 0 1 131072 14 1 0.200970
-- "HG22" "HC" 0 1 131072 15 1 0.200970
-- "HG23" "HC" 0 1 131072 16 1 0.200970
-- "C" "C" 0 1 131072 17 6 0.670480
-- "O" "O" 0 1 131072 18 8 -0.583250
--!entry.NVAL.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N3" 0 -1 0.0
-- "H1" "H" 0 -1 0.0
-- "H2" "H" 0 -1 0.0
-- "H3" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "HP" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB" "HC" 0 -1 0.0
-- "CG1" "CT" 0 -1 0.0
-- "HG11" "HC" 0 -1 0.0
-- "HG12" "HC" 0 -1 0.0
-- "HG13" "HC" 0 -1 0.0
-- "CG2" "CT" 0 -1 0.0
-- "HG21" "HC" 0 -1 0.0
-- "HG22" "HC" 0 -1 0.0
-- "HG23" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.NVAL.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NVAL.unit.childsequence single int
-- 2
--!entry.NVAL.unit.connect array int
-- 0
-- 17
--!entry.NVAL.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 1 4 1
-- 1 5 1
-- 5 6 1
-- 5 7 1
-- 5 17 1
-- 7 8 1
-- 7 9 1
-- 7 13 1
-- 9 10 1
-- 9 11 1
-- 9 12 1
-- 13 14 1
-- 13 15 1
-- 13 16 1
-- 17 18 1
--!entry.NVAL.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
--!entry.NVAL.unit.name single str
-- "NVAL"
--!entry.NVAL.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 4.046154 0.839991 -2.855245E-06
-- 2.823094 1.499508 -0.874687
-- 2.823097 1.499507 0.874685
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.997712 2.900483 2.489542
-- 5.077693 2.753265 2.481244
-- 3.716972 3.477628 3.370558
-- 3.499630 1.931323 2.516834
-- 4.274186 5.009602 1.194577
-- 3.973781 5.548460 0.295972
-- 3.993559 5.587585 2.075079
-- 5.354271 4.863178 1.185788
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.NVAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 0 17 0 0 0 0
--!entry.NVAL.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "NVAL" 1 19 1 "p" 0
--!entry.NVAL.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.NVAL.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.NVAL.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-diff --git a/dat/leap/lib/aminopol12.lib b/dat/leap/lib/aminopol12.lib
-deleted file mode 100644
-index ed9039d..0000000
---- a/dat/leap/lib/aminopol12.lib
-+++ /dev/null
-@@ -1,3521 +0,0 @@
--!!index array str
-- "ALA"
-- "ARG"
-- "ASH"
-- "ASN"
-- "ASP"
-- "CIM"
-- "CIP"
-- "CYM"
-- "CYS"
-- "CYX"
-- "GLH"
-- "GLN"
-- "GLU"
-- "GLY"
-- "HID"
-- "HIE"
-- "HIP"
-- "ILE"
-- "LEU"
-- "LYN"
-- "LYS"
-- "MET"
-- "PHE"
-- "PRO"
-- "SER"
-- "THR"
-- "TRP"
-- "TYR"
-- "VAL"
--!entry.ALA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.107660
-- "HA" "H1" 0 1 131072 4 1 0.039730
-- "CB" "CT" 0 1 131072 5 6 -0.131600
-- "HB1" "HC" 0 1 131072 6 1 0.074970
-- "HB2" "HC" 0 1 131072 7 1 0.074970
-- "HB3" "HC" 0 1 131072 8 1 0.074970
-- "C" "C" 0 1 131072 9 6 0.670480
-- "O" "O" 0 1 131072 10 8 -0.583250
--!entry.ALA.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB1" "HC" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.ALA.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ALA.unit.childsequence single int
-- 2
--!entry.ALA.unit.connect array int
-- 1
-- 9
--!entry.ALA.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 9 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 9 10 1
--!entry.ALA.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
--!entry.ALA.unit.name single str
-- "ALA"
--!entry.ALA.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 3.877484 3.115795 2.131197
-- 4.075059 4.623017 1.205786
-- 2.496995 3.801075 1.241379
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.ALA.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 9 0 0 0 0
--!entry.ALA.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "ALA" 1 11 1 "p" 0
--!entry.ALA.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.ALA.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ALA.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.ARG.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.226630
-- "HA" "H1" 0 1 131072 4 1 0.106720
-- "CB" "CT" 0 1 131072 5 6 0.333990
-- "HB2" "HC" 0 1 131072 6 1 -0.030430
-- "HB3" "HC" 0 1 131072 7 1 -0.030430
-- "CG" "CT" 0 1 131072 8 6 -0.417310
-- "HG2" "HC" 0 1 131072 9 1 0.127030
-- "HG3" "HC" 0 1 131072 10 1 0.127030
-- "CD" "CT" 0 1 131072 11 6 0.599560
-- "HD2" "H1" 0 1 131072 12 1 -0.082670
-- "HD3" "H1" 0 1 131072 13 1 -0.082670
-- "NE" "N2" 0 1 131072 14 7 -0.785780
-- "HE" "H" 0 1 131072 15 1 0.415010
-- "CZ" "CA" 0 1 131072 16 6 1.104320
-- "NH1" "N2" 0 1 131072 17 7 -0.960300
-- "HH11" "H" 0 1 131072 18 1 0.447060
-- "HH12" "H" 0 1 131072 19 1 0.447060
-- "NH2" "N2" 0 1 131072 20 7 -0.960300
-- "HH21" "H" 0 1 131072 21 1 0.447060
-- "HH22" "H" 0 1 131072 22 1 0.447060
-- "C" "C" 0 1 131072 23 6 0.670480
-- "O" "O" 0 1 131072 24 8 -0.583250
--!entry.ARG.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "CT" 0 -1 0.0
-- "HD2" "H1" 0 -1 0.0
-- "HD3" "H1" 0 -1 0.0
-- "NE" "N2" 0 -1 0.0
-- "HE" "H" 0 -1 0.0
-- "CZ" "CA" 0 -1 0.0
-- "NH1" "N2" 0 -1 0.0
-- "HH11" "H" 0 -1 0.0
-- "HH12" "H" 0 -1 0.0
-- "NH2" "N2" 0 -1 0.0
-- "HH21" "H" 0 -1 0.0
-- "HH22" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.ARG.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ARG.unit.childsequence single int
-- 2
--!entry.ARG.unit.connect array int
-- 1
-- 23
--!entry.ARG.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 23 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 11 14 1
-- 14 15 1
-- 14 16 1
-- 16 17 1
-- 16 20 1
-- 17 18 1
-- 17 19 1
-- 20 21 1
-- 20 22 1
-- 23 24 1
--!entry.ARG.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
-- "R" 1 "A" 23
-- "R" 1 "A" 24
--!entry.ARG.unit.name single str
-- "ARG"
--!entry.ARG.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.881105 5.817645 2.426721
-- 2.801135 5.964881 2.435959
-- 4.181626 5.279602 3.325774
-- 4.540320 7.142723 2.424483
-- 5.151805 7.375492 1.655065
-- 4.364284 8.040989 3.389382
-- 3.575026 7.807606 4.434133
-- 3.088949 6.925423 4.508848
-- 3.465367 8.513631 5.147998
-- 5.006254 9.201287 3.286991
-- 5.604855 9.375325 2.492329
-- 4.892216 9.903045 4.004368
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.ARG.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 23 0 0 0 0
--!entry.ARG.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "ARG" 1 25 1 "p" 0
--!entry.ARG.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.ARG.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ARG.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.ASH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 0.002180
-- "HA" "H1" 0 1 131072 4 1 0.013640
-- "CB" "CT" 0 1 131072 5 6 -0.142020
-- "HB2" "HC" 0 1 131072 6 1 0.124360
-- "HB3" "HC" 0 1 131072 7 1 0.124360
-- "CG" "C" 0 1 131072 8 6 0.584300
-- "OD1" "O" 0 1 131072 9 8 -0.548830
-- "OD2" "OH" 0 1 131072 10 8 -0.581530
-- "HD2" "HO" 0 1 131072 11 1 0.448920
-- "C" "C" 0 1 131072 12 6 0.670480
-- "O" "O" 0 1 131072 13 8 -0.583250
--!entry.ASH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "C" 0 -1 0.0
-- "OD1" "O" 0 -1 0.0
-- "OD2" "OH" 0 -1 0.0
-- "HD2" "HO" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.ASH.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ASH.unit.childsequence single int
-- 2
--!entry.ASH.unit.connect array int
-- 1
-- 12
--!entry.ASH.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 12 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 10 11 1
-- 12 13 1
--!entry.ASH.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
--!entry.ASH.unit.name single str
-- "ASH"
--!entry.ASH.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.275101 5.011380 1.194527
-- 3.669108 5.954940 0.620011
-- 5.407731 5.091879 1.740667
-- 5.742902 5.987179 1.652920
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.ASH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 12 0 0 0 0
--!entry.ASH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "ASH" 1 14 1 "p" 0
--!entry.ASH.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.ASH.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ASH.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.ASN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.045790
-- "HA" "H1" 0 1 131072 4 1 0.030960
-- "CB" "CT" 0 1 131072 5 6 -0.284870
-- "HB2" "HC" 0 1 131072 6 1 0.150880
-- "HB3" "HC" 0 1 131072 7 1 0.150880
-- "CG" "C" 0 1 131072 8 6 0.619540
-- "OD1" "O" 0 1 131072 9 8 -0.546540
-- "ND2" "N" 0 1 131072 10 7 -0.812900
-- "HD21" "H" 0 1 131072 11 1 0.381610
-- "HD22" "H" 0 1 131072 12 1 0.381610
-- "C" "C" 0 1 131072 13 6 0.670480
-- "O" "O" 0 1 131072 14 8 -0.583250
--!entry.ASN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "C" 0 -1 0.0
-- "OD1" "O" 0 -1 0.0
-- "ND2" "N" 0 -1 0.0
-- "HD21" "H" 0 -1 0.0
-- "HD22" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.ASN.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ASN.unit.childsequence single int
-- 2
--!entry.ASN.unit.connect array int
-- 1
-- 13
--!entry.ASN.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 13 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 10 11 1
-- 10 12 1
-- 13 14 1
--!entry.ASN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
--!entry.ASN.unit.name single str
-- "ASN"
--!entry.ASN.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.253700 5.017112 1.232144
-- 5.005299 5.340406 0.315072
-- 3.984885 5.817909 2.265917
-- 4.408015 6.733702 2.314743
-- 3.359611 5.504297 2.994464
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.ASN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 13 0 0 0 0
--!entry.ASN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "ASN" 1 15 1 "p" 0
--!entry.ASN.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.ASN.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ASN.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.ASP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.155870
-- "HA" "H1" 0 1 131072 4 1 0.001730
-- "CB" "CT" 0 1 131072 5 6 -0.175110
-- "HB2" "HC" 0 1 131072 6 1 0.072670
-- "HB3" "HC" 0 1 131072 7 1 0.072670
-- "CG" "C" 0 1 131072 8 6 0.847270
-- "OD1" "O2" 0 1 131072 9 8 -0.818990
-- "OD2" "O2" 0 1 131072 10 8 -0.818990
-- "C" "C" 0 1 131072 11 6 0.670480
-- "O" "O" 0 1 131072 12 8 -0.583250
--!entry.ASP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "C" 0 -1 0.0
-- "OD1" "O2" 0 -1 0.0
-- "OD2" "O2" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.ASP.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ASP.unit.childsequence single int
-- 2
--!entry.ASP.unit.connect array int
-- 1
-- 11
--!entry.ASP.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 11 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 11 12 1
--!entry.ASP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
--!entry.ASP.unit.name single str
-- "ASP"
--!entry.ASP.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.275101 5.011380 1.194527
-- 3.669108 5.954940 0.620011
-- 5.407731 5.091879 1.740667
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.ASP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 11 0 0 0 0
--!entry.ASP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "ASP" 1 13 1 "p" 0
--!entry.ASP.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.ASP.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ASP.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CIM.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "CL-" "IM" 0 1 131072 1 -1 -1.000000
--!entry.CIM.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "CL-" "IM" 0 -1 0.0
--!entry.CIM.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CIM.unit.childsequence single int
-- 2
--!entry.CIM.unit.connect array int
-- 1
-- 1
--!entry.CIM.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
--!entry.CIM.unit.name single str
-- "CIM"
--!entry.CIM.unit.positions table dbl x dbl y dbl z
-- 2.000001 1.000000 -1.346410E-06
--!entry.CIM.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 1 0 0 0 0
--!entry.CIM.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CIM" 1 2 1 "?" 0
--!entry.CIM.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CIM.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CIM.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
--!entry.CIP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "NA+" "IP" 0 1 131072 1 -1 1.000000
--!entry.CIP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "NA+" "IP" 0 -1 0.0
--!entry.CIP.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CIP.unit.childsequence single int
-- 2
--!entry.CIP.unit.connect array int
-- 1
-- 1
--!entry.CIP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
--!entry.CIP.unit.name single str
-- "CIP"
--!entry.CIP.unit.positions table dbl x dbl y dbl z
-- 2.000001 1.000000 -1.346410E-06
--!entry.CIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 1 0 0 0 0
--!entry.CIP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CIP" 1 2 1 "?" 0
--!entry.CIP.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CIP.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CIP.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
--!entry.CYM.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "HN" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.218730
-- "HA" "H1" 0 1 131072 4 1 0.077600
-- "CB" "CT" 0 1 131072 5 6 0.224400
-- "HB3" "H1" 0 1 131072 6 1 -0.057150
-- "HB2" "H1" 0 1 131072 7 1 -0.057150
-- "SG" "SH" 0 1 131072 8 16 -0.943590
-- "C" "C" 0 1 131072 9 6 0.670480
-- "O" "O" 0 1 131072 10 8 -0.583250
--!entry.CYM.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "HN" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB3" "H1" 0 -1 0.0
-- "HB2" "H1" 0 -1 0.0
-- "SG" "SH" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.CYM.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CYM.unit.childsequence single int
-- 2
--!entry.CYM.unit.connect array int
-- 1
-- 9
--!entry.CYM.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 9 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 9 10 1
--!entry.CYM.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
--!entry.CYM.unit.name single str
-- "CYM"
--!entry.CYM.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 3.877484 3.115795 2.131197
-- 2.496995 3.801075 1.241379
-- 4.309573 5.303523 1.366036
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.CYM.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 9 0 0 0 0
--!entry.CYM.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CYM" 1 11 1 "p" 0
--!entry.CYM.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CYM.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CYM.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.038240
-- "HA" "H1" 0 1 131072 4 1 0.042360
-- "CB" "CT" 0 1 131072 5 6 0.012160
-- "HB2" "H1" 0 1 131072 6 1 0.051450
-- "HB3" "H1" 0 1 131072 7 1 0.051450
-- "SG" "SH" 0 1 131072 8 16 -0.245770
-- "HG" "HS" 0 1 131072 9 1 0.151970
-- "C" "C" 0 1 131072 10 6 0.670480
-- "O" "O" 0 1 131072 11 8 -0.583250
--!entry.CYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "H1" 0 -1 0.0
-- "HB3" "H1" 0 -1 0.0
-- "SG" "SH" 0 -1 0.0
-- "HG" "HS" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.CYS.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CYS.unit.childsequence single int
-- 2
--!entry.CYS.unit.connect array int
-- 1
-- 10
--!entry.CYS.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 10 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 10 11 1
--!entry.CYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
--!entry.CYS.unit.name single str
-- "CYS"
--!entry.CYS.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.309573 5.303523 1.366036
-- 3.725392 5.622018 2.517640
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.CYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 10 0 0 0 0
--!entry.CYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CYS" 1 12 1 "p" 0
--!entry.CYS.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CYS.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CYS.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.CYX.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.036230
-- "HA" "H1" 0 1 131072 4 1 0.016940
-- "CB" "CT" 0 1 131072 5 6 -0.039530
-- "HB2" "H1" 0 1 131072 6 1 0.081010
-- "HB3" "H1" 0 1 131072 7 1 0.081010
-- "SG" "S" 0 1 131072 8 16 -0.077820
-- "C" "C" 0 1 131072 9 6 0.670480
-- "O" "O" 0 1 131072 10 8 -0.583250
--!entry.CYX.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "H1" 0 -1 0.0
-- "HB3" "H1" 0 -1 0.0
-- "SG" "S" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.CYX.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CYX.unit.childsequence single int
-- 2
--!entry.CYX.unit.connect array int
-- 1
-- 9
--!entry.CYX.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 9 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 9 10 1
--!entry.CYX.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
--!entry.CYX.unit.name single str
-- "CYX"
--!entry.CYX.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.309573 5.303523 1.366036
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.CYX.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 9 8 0 0 0
--!entry.CYX.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "CYX" 1 11 1 "p" 0
--!entry.CYX.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.CYX.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.CYX.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.GLH.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.137720
-- "HA" "H1" 0 1 131072 4 1 0.067770
-- "CB" "CT" 0 1 131072 5 6 0.139840
-- "HB2" "HC" 0 1 131072 6 1 0.014650
-- "HB3" "HC" 0 1 131072 7 1 0.014650
-- "CG" "CT" 0 1 131072 8 6 -0.360940
-- "HG2" "HC" 0 1 131072 9 1 0.184800
-- "HG3" "HC" 0 1 131072 10 1 0.184800
-- "CD" "C" 0 1 131072 11 6 0.639100
-- "OE1" "O" 0 1 131072 12 8 -0.571870
-- "OE2" "OH" 0 1 131072 13 8 -0.605840
-- "HE2" "HO" 0 1 131072 14 1 0.456140
-- "C" "C" 0 1 131072 15 6 0.670480
-- "O" "O" 0 1 131072 16 8 -0.583250
--!entry.GLH.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "C" 0 -1 0.0
-- "OE1" "O" 0 -1 0.0
-- "OE2" "OH" 0 -1 0.0
-- "HE2" "HO" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.GLH.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.GLH.unit.childsequence single int
-- 2
--!entry.GLH.unit.connect array int
-- 1
-- 15
--!entry.GLH.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 15 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 15 16 1
--!entry.GLH.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
--!entry.GLH.unit.name single str
-- "GLH"
--!entry.GLH.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.267328 4.996267 1.194946
-- 5.347413 4.849843 1.186158
-- 3.966923 5.535124 0.296342
-- 3.873732 5.805369 2.428706
-- 4.594590 5.679012 3.454376
-- 2.855965 6.542070 2.333721
-- 2.710526 6.996624 3.166684
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.GLH.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 15 0 0 0 0
--!entry.GLH.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "GLH" 1 17 1 "p" 0
--!entry.GLH.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.GLH.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.GLH.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.GLN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.239260
-- "HA" "H1" 0 1 131072 4 1 0.070250
-- "CB" "CT" 0 1 131072 5 6 0.515970
-- "HB2" "HC" 0 1 131072 6 1 -0.085650
-- "HB3" "HC" 0 1 131072 7 1 -0.085650
-- "CG" "CT" 0 1 131072 8 6 -0.728430
-- "HG2" "HC" 0 1 131072 9 1 0.258090
-- "HG3" "HC" 0 1 131072 10 1 0.258090
-- "CD" "C" 0 1 131072 11 6 0.823540
-- "OE1" "O" 0 1 131072 12 8 -0.668550
-- "NE2" "N" 0 1 131072 13 7 -0.858360
-- "HE21" "H" 0 1 131072 14 1 0.382670
-- "HE22" "H" 0 1 131072 15 1 0.382670
-- "C" "C" 0 1 131072 16 6 0.670480
-- "O" "O" 0 1 131072 17 8 -0.583250
--!entry.GLN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "C" 0 -1 0.0
-- "OE1" "O" 0 -1 0.0
-- "NE2" "N" 0 -1 0.0
-- "HE21" "H" 0 -1 0.0
-- "HE22" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.GLN.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.GLN.unit.childsequence single int
-- 2
--!entry.GLN.unit.connect array int
-- 1
-- 16
--!entry.GLN.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 16 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 15 1
-- 16 17 1
--!entry.GLN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
--!entry.GLN.unit.name single str
-- "GLN"
--!entry.GLN.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.906976 5.848443 2.410302
-- 3.138962 5.408349 3.262893
-- 4.458856 7.061523 2.488333
-- 4.248434 7.659045 3.274966
-- 5.084281 7.376210 1.760379
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.GLN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 16 0 0 0 0
--!entry.GLN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "GLN" 1 18 1 "p" 0
--!entry.GLN.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.GLN.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.GLN.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.GLU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.348150
-- "HA" "H1" 0 1 131072 4 1 0.126380
-- "CB" "CT" 0 1 131072 5 6 0.696480
-- "HB2" "HC" 0 1 131072 6 1 -0.186180
-- "HB3" "HC" 0 1 131072 7 1 -0.186180
-- "CG" "CT" 0 1 131072 8 6 -0.662250
-- "HG2" "HC" 0 1 131072 9 1 0.193310
-- "HG3" "HC" 0 1 131072 10 1 0.193310
-- "CD" "C" 0 1 131072 11 6 0.804540
-- "OE1" "O2" 0 1 131072 12 8 -0.802940
-- "OE2" "O2" 0 1 131072 13 8 -0.802940
-- "C" "C" 0 1 131072 14 6 0.670480
-- "O" "O" 0 1 131072 15 8 -0.583250
--!entry.GLU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "C" 0 -1 0.0
-- "OE1" "O2" 0 -1 0.0
-- "OE2" "O2" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.GLU.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.GLU.unit.childsequence single int
-- 2
--!entry.GLU.unit.connect array int
-- 1
-- 14
--!entry.GLU.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 14 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 14 15 1
--!entry.GLU.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
--!entry.GLU.unit.name single str
-- "GLU"
--!entry.GLU.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.267328 4.996267 1.194946
-- 5.347413 4.849843 1.186158
-- 3.966923 5.535124 0.296342
-- 3.873732 5.805369 2.428706
-- 4.594590 5.679012 3.454376
-- 2.855965 6.542070 2.333721
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.GLU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 14 0 0 0 0
--!entry.GLU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "GLU" 1 16 1 "p" 0
--!entry.GLU.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.GLU.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.GLU.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.GLY.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.277560
-- "HA2" "H0" 0 1 131072 4 -1 0.151470
-- "HA3" "H0" 0 1 131072 5 -1 0.151470
-- "C" "C" 0 1 131072 6 6 0.670480
-- "O" "O" 0 1 131072 7 8 -0.583250
--!entry.GLY.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA2" "H0" 0 -1 0.0
-- "HA3" "H0" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.GLY.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.GLY.unit.childsequence single int
-- 2
--!entry.GLY.unit.connect array int
-- 1
-- 6
--!entry.GLY.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 6 1
-- 6 7 1
--!entry.GLY.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
--!entry.GLY.unit.name single str
-- "GLY"
--!entry.GLY.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.671668 3.400125 0.889824
-- 5.483710 2.686702 -4.438857E-06
-- 5.993369 1.568360 -8.469843E-06
--!entry.GLY.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 6 0 0 0 0
--!entry.GLY.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "GLY" 1 8 1 "p" 0
--!entry.GLY.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.GLY.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.GLY.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.HID.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.046110
-- "HA" "H1" 0 1 131072 4 1 -0.008910
-- "CB" "CT" 0 1 131072 5 6 -0.213070
-- "HB2" "HC" 0 1 131072 6 1 0.111650
-- "HB3" "HC" 0 1 131072 7 1 0.111650
-- "CG" "CC" 0 1 131072 8 6 0.275120
-- "ND1" "NA" 0 1 131072 9 7 -0.364930
-- "HD1" "H" 0 1 131072 10 1 0.352330
-- "CE1" "CR" 0 1 131072 11 6 0.226080
-- "HE1" "H5" 0 1 131072 12 1 0.060700
-- "NE2" "NB" 0 1 131072 13 7 -0.504470
-- "CD2" "CV" 0 1 131072 14 6 -0.070100
-- "HD2" "H4" 0 1 131072 15 1 0.095440
-- "C" "C" 0 1 131072 16 6 0.670480
-- "O" "O" 0 1 131072 17 8 -0.583250
--!entry.HID.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CC" 0 -1 0.0
-- "ND1" "NA" 0 -1 0.0
-- "HD1" "H" 0 -1 0.0
-- "CE1" "CR" 0 -1 0.0
-- "HE1" "H5" 0 -1 0.0
-- "NE2" "NB" 0 -1 0.0
-- "CD2" "CV" 0 -1 0.0
-- "HD2" "H4" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.HID.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.HID.unit.childsequence single int
-- 2
--!entry.HID.unit.connect array int
-- 1
-- 16
--!entry.HID.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 16 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 14 1
-- 9 10 1
-- 9 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 14 15 1
-- 16 17 1
--!entry.HID.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
--!entry.HID.unit.name single str
-- "HID"
--!entry.HID.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 3.942782 5.885086 2.382972
-- 3.339725 5.691913 3.169805
-- 4.624274 6.997642 2.182500
-- 4.563048 7.811875 2.904563
-- 5.294011 6.891451 1.061663
-- 5.058974 5.678868 0.492453
-- 5.537741 5.417846 -0.451343
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.HID.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 16 0 0 0 0
--!entry.HID.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "HID" 1 18 1 "p" 0
--!entry.HID.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.HID.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.HID.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.HIE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.125440
-- "HA" "H1" 0 1 131072 4 1 0.030840
-- "CB" "CT" 0 1 131072 5 6 -0.214440
-- "HB2" "HC" 0 1 131072 6 1 0.140600
-- "HB3" "HC" 0 1 131072 7 1 0.140600
-- "CG" "CC" 0 1 131072 8 6 0.385250
-- "ND1" "NB" 0 1 131072 9 7 -0.681670
-- "CE1" "CR" 0 1 131072 10 6 0.349170
-- "HE1" "H5" 0 1 131072 11 1 0.030760
-- "NE2" "NA" 0 1 131072 12 7 -0.327570
-- "HE2" "H" 0 1 131072 13 1 0.341080
-- "CD2" "CW" 0 1 131072 14 6 -0.206690
-- "HD2" "H4" 0 1 131072 15 1 0.162890
-- "C" "C" 0 1 131072 16 6 0.670480
-- "O" "O" 0 1 131072 17 8 -0.583250
--!entry.HIE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CC" 0 -1 0.0
-- "ND1" "NB" 0 -1 0.0
-- "CE1" "CR" 0 -1 0.0
-- "HE1" "H5" 0 -1 0.0
-- "NE2" "NA" 0 -1 0.0
-- "HE2" "H" 0 -1 0.0
-- "CD2" "CW" 0 -1 0.0
-- "HD2" "H4" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.HIE.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.HIE.unit.childsequence single int
-- 2
--!entry.HIE.unit.connect array int
-- 1
-- 16
--!entry.HIE.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 16 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 14 1
-- 9 10 1
-- 10 11 1
-- 10 12 1
-- 12 13 1
-- 12 14 1
-- 14 15 1
-- 16 17 1
--!entry.HIE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
--!entry.HIE.unit.name single str
-- "HIE"
--!entry.HIE.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 3.942782 5.885086 2.382972
-- 4.624274 6.997642 2.182500
-- 4.563048 7.811875 2.904563
-- 5.294011 6.891451 1.061663
-- 5.896297 7.605085 0.676854
-- 5.058974 5.678868 0.492453
-- 5.537741 5.417846 -0.451343
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.HIE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 16 0 0 0 0
--!entry.HIE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "HIE" 1 18 1 "p" 0
--!entry.HIE.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.HIE.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.HIE.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.HIP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 0.017840
-- "HA" "H1" 0 1 131072 4 1 -0.000340
-- "CB" "CT" 0 1 131072 5 6 -0.074410
-- "HB2" "HC" 0 1 131072 6 1 0.084140
-- "HB3" "HC" 0 1 131072 7 1 0.084140
-- "CG" "CC" 0 1 131072 8 6 0.259530
-- "ND1" "NA" 0 1 131072 9 7 -0.134860
-- "HD1" "H" 0 1 131072 10 1 0.376730
-- "CE1" "CR" 0 1 131072 11 6 -0.086920
-- "HE1" "H5" 0 1 131072 12 1 0.197160
-- "NE2" "NA" 0 1 131072 13 7 0.089780
-- "HE2" "H" 0 1 131072 14 1 0.285300
-- "CD2" "CW" 0 1 131072 15 6 -0.259230
-- "HD2" "H4" 0 1 131072 16 1 0.186520
-- "C" "C" 0 1 131072 17 6 0.670480
-- "O" "O" 0 1 131072 18 8 -0.583250
--!entry.HIP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CC" 0 -1 0.0
-- "ND1" "NA" 0 -1 0.0
-- "HD1" "H" 0 -1 0.0
-- "CE1" "CR" 0 -1 0.0
-- "HE1" "H5" 0 -1 0.0
-- "NE2" "NA" 0 -1 0.0
-- "HE2" "H" 0 -1 0.0
-- "CD2" "CW" 0 -1 0.0
-- "HD2" "H4" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.HIP.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.HIP.unit.childsequence single int
-- 2
--!entry.HIP.unit.connect array int
-- 1
-- 17
--!entry.HIP.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 17 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 15 1
-- 9 10 1
-- 9 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 15 1
-- 15 16 1
-- 17 18 1
--!entry.HIP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
--!entry.HIP.unit.name single str
-- "HIP"
--!entry.HIP.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 3.942782 5.885086 2.382972
-- 3.339725 5.691913 3.169805
-- 4.624274 6.997642 2.182500
-- 4.563048 7.811875 2.904563
-- 5.294011 6.891451 1.061663
-- 5.896297 7.605085 0.676854
-- 5.058974 5.678868 0.492453
-- 5.537741 5.417846 -0.451343
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.HIP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 17 0 0 0 0
--!entry.HIP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "HIP" 1 19 1 "p" 0
--!entry.HIP.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.HIP.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.HIP.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.ILE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.319670
-- "HA" "H1" 0 1 131072 4 1 0.149580
-- "CB" "CT" 0 1 131072 5 6 0.330640
-- "HB" "HC" 0 1 131072 6 1 -0.064360
-- "CG2" "CT" 0 1 131072 7 6 -0.412720
-- "HG21" "HC" 0 1 131072 8 1 0.117730
-- "HG22" "HC" 0 1 131072 9 1 0.117730
-- "HG23" "HC" 0 1 131072 10 1 0.117730
-- "CG1" "CT" 0 1 131072 11 6 -0.127860
-- "HG12" "HC" 0 1 131072 12 1 0.051810
-- "HG13" "HC" 0 1 131072 13 1 0.051810
-- "CD1" "CT" 0 1 131072 14 6 -0.024360
-- "HD11" "HC" 0 1 131072 15 1 0.012440
-- "HD12" "HC" 0 1 131072 16 1 0.012440
-- "HD13" "HC" 0 1 131072 17 1 0.012440
-- "C" "C" 0 1 131072 18 6 0.670480
-- "O" "O" 0 1 131072 19 8 -0.583250
--!entry.ILE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB" "HC" 0 -1 0.0
-- "CG2" "CT" 0 -1 0.0
-- "HG21" "HC" 0 -1 0.0
-- "HG22" "HC" 0 -1 0.0
-- "HG23" "HC" 0 -1 0.0
-- "CG1" "CT" 0 -1 0.0
-- "HG12" "HC" 0 -1 0.0
-- "HG13" "HC" 0 -1 0.0
-- "CD1" "CT" 0 -1 0.0
-- "HD11" "HC" 0 -1 0.0
-- "HD12" "HC" 0 -1 0.0
-- "HD13" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.ILE.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ILE.unit.childsequence single int
-- 2
--!entry.ILE.unit.connect array int
-- 1
-- 18
--!entry.ILE.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 18 1
-- 5 6 1
-- 5 7 1
-- 5 11 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 11 12 1
-- 11 13 1
-- 11 14 1
-- 14 15 1
-- 14 16 1
-- 14 17 1
-- 18 19 1
--!entry.ILE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
--!entry.ILE.unit.name single str
-- "ILE"
--!entry.ILE.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.552136 3.620733 1.245168
-- 2.470128 3.752486 1.245640
-- 3.970045 2.845728 2.490296
-- 5.052053 2.713974 2.490763
-- 3.671561 3.399208 3.380615
-- 3.485650 1.869275 2.490737
-- 4.230204 4.986694 1.245169
-- 5.312310 4.855746 1.245164
-- 3.931820 5.541027 0.355348
-- 3.812294 5.761632 2.490339
-- 4.110777 5.208104 3.380628
-- 4.296689 6.738085 2.490833
-- 2.730286 5.893383 2.490813
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.ILE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 18 0 0 0 0
--!entry.ILE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "ILE" 1 20 1 "p" 0
--!entry.ILE.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.ILE.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.ILE.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.LEU.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.116580
-- "HA" "H1" 0 1 131072 4 1 0.026810
-- "CB" "CT" 0 1 131072 5 6 -0.227760
-- "HB2" "HC" 0 1 131072 6 1 0.095470
-- "HB3" "HC" 0 1 131072 7 1 0.095470
-- "CG" "CT" 0 1 131072 8 6 0.606550
-- "HG" "HC" 0 1 131072 9 1 -0.114060
-- "CD1" "CT" 0 1 131072 10 6 -0.794260
-- "HD11" "HC" 0 1 131072 11 1 0.208000
-- "HD12" "HC" 0 1 131072 12 1 0.208000
-- "HD13" "HC" 0 1 131072 13 1 0.208000
-- "CD2" "CT" 0 1 131072 14 6 -0.794260
-- "HD21" "HC" 0 1 131072 15 1 0.208000
-- "HD22" "HC" 0 1 131072 16 1 0.208000
-- "HD23" "HC" 0 1 131072 17 1 0.208000
-- "C" "C" 0 1 131072 18 6 0.670480
-- "O" "O" 0 1 131072 19 8 -0.583250
--!entry.LEU.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG" "HC" 0 -1 0.0
-- "CD1" "CT" 0 -1 0.0
-- "HD11" "HC" 0 -1 0.0
-- "HD12" "HC" 0 -1 0.0
-- "HD13" "HC" 0 -1 0.0
-- "CD2" "CT" 0 -1 0.0
-- "HD21" "HC" 0 -1 0.0
-- "HD22" "HC" 0 -1 0.0
-- "HD23" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.LEU.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.LEU.unit.childsequence single int
-- 2
--!entry.LEU.unit.connect array int
-- 1
-- 18
--!entry.LEU.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 18 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 14 1
-- 10 11 1
-- 10 12 1
-- 10 13 1
-- 14 15 1
-- 14 16 1
-- 14 17 1
-- 18 19 1
--!entry.LEU.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
--!entry.LEU.unit.name single str
-- "LEU"
--!entry.LEU.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.853429 5.762895 -0.062857
-- 2.773449 5.910113 -0.054557
-- 4.351513 6.732052 -0.090203
-- 4.134159 5.185704 -0.943846
-- 3.881105 5.817645 2.426721
-- 4.181626 5.279602 3.325774
-- 4.379198 6.786825 2.400363
-- 2.801135 5.964881 2.435959
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.LEU.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 18 0 0 0 0
--!entry.LEU.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "LEU" 1 20 1 "p" 0
--!entry.LEU.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.LEU.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.LEU.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.LYN.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.181890
-- "HA" "H1" 0 1 131072 4 1 0.074160
-- "CB" "CT" 0 1 131072 5 6 0.078320
-- "HB2" "HC" 0 1 131072 6 1 -0.000500
-- "HB3" "HC" 0 1 131072 7 1 -0.000500
-- "CG" "CT" 0 1 131072 8 6 0.004490
-- "HG2" "HC" 0 1 131072 9 1 0.023890
-- "HG3" "HC" 0 1 131072 10 1 0.023890
-- "CD" "CT" 0 1 131072 11 6 -0.277170
-- "HD2" "HC" 0 1 131072 12 1 0.112690
-- "HD3" "HC" 0 1 131072 13 1 0.112690
-- "CE" "CT" 0 1 131072 14 6 0.554010
-- "HE2" "H1" 0 1 131072 15 1 -0.114200
-- "HE3" "H1" 0 1 131072 16 1 -0.114200
-- "NZ" "NT" 0 1 131072 17 7 -0.979220
-- "HZ2" "H" 0 1 131072 18 1 0.354460
-- "HZ3" "H" 0 1 131072 19 1 0.354460
-- "C" "C" 0 1 131072 20 6 0.670480
-- "O" "O" 0 1 131072 21 8 -0.583250
--!entry.LYN.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "CT" 0 -1 0.0
-- "HD2" "HC" 0 -1 0.0
-- "HD3" "HC" 0 -1 0.0
-- "CE" "CT" 0 -1 0.0
-- "HE2" "H1" 0 -1 0.0
-- "HE3" "H1" 0 -1 0.0
-- "NZ" "NT" 0 -1 0.0
-- "HZ2" "H" 0 -1 0.0
-- "HZ3" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.LYN.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.LYN.unit.childsequence single int
-- 2
--!entry.LYN.unit.connect array int
-- 1
-- 20
--!entry.LYN.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 20 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 11 14 1
-- 14 15 1
-- 14 16 1
-- 14 17 1
-- 17 18 1
-- 17 19 1
-- 20 21 1
--!entry.LYN.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
--!entry.LYN.unit.name single str
-- "LYN"
--!entry.LYN.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.881105 5.817645 2.426721
-- 2.801135 5.964881 2.435959
-- 4.181626 5.279602 3.325774
-- 4.578325 7.173410 2.389153
-- 5.658410 7.026987 2.380363
-- 4.277917 7.712267 1.490550
-- 4.199422 7.952309 3.576860
-- 4.661186 8.850226 3.551979
-- 3.198675 8.088466 3.584971
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.LYN.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 20 0 0 0 0
--!entry.LYN.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "LYN" 1 22 1 "p" 0
--!entry.LYN.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.LYN.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.LYN.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.LYS.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.181230
-- "HA" "H1" 0 1 131072 4 1 0.099160
-- "CB" "CT" 0 1 131072 5 6 0.004110
-- "HB2" "HC" 0 1 131072 6 1 0.027580
-- "HB3" "HC" 0 1 131072 7 1 0.027580
-- "CG" "CT" 0 1 131072 8 6 -0.053270
-- "HG2" "HC" 0 1 131072 9 1 0.053050
-- "HG3" "HC" 0 1 131072 10 1 0.053050
-- "CD" "CT" 0 1 131072 11 6 -0.201370
-- "HD2" "HC" 0 1 131072 12 1 0.095630
-- "HD3" "HC" 0 1 131072 13 1 0.095630
-- "CE" "CT" 0 1 131072 14 6 0.465480
-- "HE2" "HP" 0 1 131072 15 1 -0.049170
-- "HE3" "HP" 0 1 131072 16 1 -0.049170
-- "NZ" "N3" 0 1 131072 17 7 -0.366380
-- "HZ1" "H" 0 1 131072 18 1 0.334900
-- "HZ2" "H" 0 1 131072 19 1 0.334900
-- "HZ3" "H" 0 1 131072 20 1 0.334900
-- "C" "C" 0 1 131072 21 6 0.670480
-- "O" "O" 0 1 131072 22 8 -0.583250
--!entry.LYS.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CD" "CT" 0 -1 0.0
-- "HD2" "HC" 0 -1 0.0
-- "HD3" "HC" 0 -1 0.0
-- "CE" "CT" 0 -1 0.0
-- "HE2" "HP" 0 -1 0.0
-- "HE3" "HP" 0 -1 0.0
-- "NZ" "N3" 0 -1 0.0
-- "HZ1" "H" 0 -1 0.0
-- "HZ2" "H" 0 -1 0.0
-- "HZ3" "H" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.LYS.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.LYS.unit.childsequence single int
-- 2
--!entry.LYS.unit.connect array int
-- 1
-- 21
--!entry.LYS.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 21 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 11 14 1
-- 14 15 1
-- 14 16 1
-- 14 17 1
-- 17 18 1
-- 17 19 1
-- 17 20 1
-- 21 22 1
--!entry.LYS.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
--!entry.LYS.unit.name single str
-- "LYS"
--!entry.LYS.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.881105 5.817645 2.426721
-- 2.801135 5.964881 2.435959
-- 4.181626 5.279602 3.325774
-- 4.578325 7.173410 2.389153
-- 5.658410 7.026987 2.380363
-- 4.277917 7.712267 1.490550
-- 4.199422 7.952309 3.576860
-- 4.478085 7.453366 4.409628
-- 4.661186 8.850226 3.551979
-- 3.198675 8.088466 3.584971
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.LYS.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 21 0 0 0 0
--!entry.LYS.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "LYS" 1 23 1 "p" 0
--!entry.LYS.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.LYS.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.LYS.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.MET.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.152290
-- "HA" "H1" 0 1 131072 4 1 0.080630
-- "CB" "CT" 0 1 131072 5 6 0.271900
-- "HB2" "HC" 0 1 131072 6 1 -0.049340
-- "HB3" "HC" 0 1 131072 7 1 -0.049340
-- "CG" "CT" 0 1 131072 8 6 -0.289240
-- "HG2" "H1" 0 1 131072 9 1 0.138580
-- "HG3" "H1" 0 1 131072 10 1 0.138580
-- "SD" "S" 0 1 131072 11 16 -0.127450
-- "CE" "CT" 0 1 131072 12 6 -0.275560
-- "HE1" "H1" 0 1 131072 13 1 0.112970
-- "HE2" "H1" 0 1 131072 14 1 0.112970
-- "HE3" "H1" 0 1 131072 15 1 0.112970
-- "C" "C" 0 1 131072 16 6 0.670480
-- "O" "O" 0 1 131072 17 8 -0.583250
--!entry.MET.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "H1" 0 -1 0.0
-- "HG3" "H1" 0 -1 0.0
-- "SD" "S" 0 -1 0.0
-- "CE" "CT" 0 -1 0.0
-- "HE1" "H1" 0 -1 0.0
-- "HE2" "H1" 0 -1 0.0
-- "HE3" "H1" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.MET.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.MET.unit.childsequence single int
-- 2
--!entry.MET.unit.connect array int
-- 1
-- 16
--!entry.MET.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 16 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 12 13 1
-- 12 14 1
-- 12 15 1
-- 16 17 1
--!entry.MET.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
--!entry.MET.unit.name single str
-- "MET"
--!entry.MET.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.274186 5.009602 1.194577
-- 5.354271 4.863178 1.185788
-- 3.973781 5.548460 0.295972
-- 3.817309 5.981266 2.651708
-- 4.753212 7.463128 2.340949
-- 4.433582 7.904044 1.396741
-- 4.585907 8.175299 3.148985
-- 5.814074 7.218763 2.286554
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.MET.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 16 0 0 0 0
--!entry.MET.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "MET" 1 18 1 "p" 0
--!entry.MET.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.MET.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.MET.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.PHE.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.097530
-- "HA" "H1" 0 1 131072 4 1 0.021040
-- "CB" "CT" 0 1 131072 5 6 -0.127300
-- "HB2" "HC" 0 1 131072 6 1 0.103640
-- "HB3" "HC" 0 1 131072 7 1 0.103640
-- "CG" "CA" 0 1 131072 8 6 0.128890
-- "CD1" "CA" 0 1 131072 9 6 -0.194310
-- "HD1" "HA" 0 1 131072 10 1 0.141910
-- "CE1" "CA" 0 1 131072 11 6 -0.098170
-- "HE1" "HA" 0 1 131072 12 1 0.108820
-- "CZ" "CA" 0 1 131072 13 6 -0.112640
-- "HZ" "HA" 0 1 131072 14 1 0.089140
-- "CE2" "CA" 0 1 131072 15 6 -0.098170
-- "HE2" "HA" 0 1 131072 16 1 0.108820
-- "CD2" "CA" 0 1 131072 17 6 -0.194310
-- "HD2" "HA" 0 1 131072 18 1 0.141910
-- "C" "C" 0 1 131072 19 6 0.670480
-- "O" "O" 0 1 131072 20 8 -0.583250
--!entry.PHE.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CA" 0 -1 0.0
-- "CD1" "CA" 0 -1 0.0
-- "HD1" "HA" 0 -1 0.0
-- "CE1" "CA" 0 -1 0.0
-- "HE1" "HA" 0 -1 0.0
-- "CZ" "CA" 0 -1 0.0
-- "HZ" "HA" 0 -1 0.0
-- "CE2" "CA" 0 -1 0.0
-- "HE2" "HA" 0 -1 0.0
-- "CD2" "CA" 0 -1 0.0
-- "HD2" "HA" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.PHE.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.PHE.unit.childsequence single int
-- 2
--!entry.PHE.unit.connect array int
-- 1
-- 19
--!entry.PHE.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 19 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 17 1
-- 9 10 1
-- 9 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 15 1
-- 15 16 1
-- 15 17 1
-- 17 18 1
-- 19 20 1
--!entry.PHE.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
--!entry.PHE.unit.name single str
-- "PHE"
--!entry.PHE.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 3.911613 5.857250 2.409890
-- 3.236123 5.513843 3.193398
-- 4.490014 7.129513 2.492354
-- 4.264853 7.776651 3.340066
-- 5.357616 7.570591 1.486016
-- 5.807943 8.561138 1.550220
-- 5.646818 6.739407 0.397211
-- 6.322309 7.082817 -0.386295
-- 5.068419 5.467143 0.314744
-- 5.293584 4.820007 -0.532968
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.PHE.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 19 0 0 0 0
--!entry.PHE.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "PHE" 1 21 1 "p" 0
--!entry.PHE.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.PHE.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.PHE.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.PRO.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.259820
-- "CD" "CT" 0 1 131072 2 6 0.070890
-- "HD2" "H1" 0 1 131072 3 1 0.019250
-- "HD3" "H1" 0 1 131072 4 1 0.019260
-- "CG" "CT" 0 1 131072 5 6 0.067960
-- "HG2" "HC" 0 1 131072 6 1 0.009600
-- "HG3" "HC" 0 1 131072 7 1 0.009600
-- "CB" "CT" 0 1 131072 8 6 0.038490
-- "HB2" "HC" 0 1 131072 9 1 0.020120
-- "HB3" "HC" 0 1 131072 10 1 0.020120
-- "CA" "CT" 0 1 131072 11 6 -0.194650
-- "HA" "H1" 0 1 131072 12 1 0.091950
-- "C" "C" 0 1 131072 13 6 0.670480
-- "O" "O" 0 1 131072 14 8 -0.583250
--!entry.PRO.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "CD" "CT" 0 -1 0.0
-- "HD2" "H1" 0 -1 0.0
-- "HD3" "H1" 0 -1 0.0
-- "CG" "CT" 0 -1 0.0
-- "HG2" "HC" 0 -1 0.0
-- "HG3" "HC" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.PRO.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.PRO.unit.childsequence single int
-- 2
--!entry.PRO.unit.connect array int
-- 1
-- 13
--!entry.PRO.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 11 1
-- 2 3 1
-- 2 4 1
-- 2 5 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 10 1
-- 8 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
--!entry.PRO.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
--!entry.PRO.unit.name single str
-- "PRO"
--!entry.PRO.unit.positions table dbl x dbl y dbl z
-- 3.326834 1.557389 -1.603945E-06
-- 4.302147 0.476598 0.080119
-- 4.419998 0.019283 -0.902263
-- 3.955888 -0.274040 0.790574
-- 5.547126 1.172441 0.544693
-- 6.413549 0.741636 0.042879
-- 5.652950 1.047934 1.622376
-- 5.369091 2.628184 0.185227
-- 5.969289 2.861861 -0.694123
-- 5.690642 3.251038 1.019947
-- 3.933610 2.871277 -0.104508
-- 3.611470 3.488570 0.734106
-- 3.505164 3.526392 -1.409783
-- 2.754240 2.939065 -2.185412
--!entry.PRO.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 13 0 0 0 0
--!entry.PRO.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "PRO" 1 15 1 "p" 0
--!entry.PRO.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.PRO.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.PRO.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.SER.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.066190
-- "HA" "H1" 0 1 131072 4 1 0.078820
-- "CB" "CT" 0 1 131072 5 6 0.185370
-- "HB2" "H1" 0 1 131072 6 1 0.025410
-- "HB3" "H1" 0 1 131072 7 1 0.025410
-- "OG" "OH" 0 1 131072 8 8 -0.602470
-- "HG" "HO" 0 1 131072 9 1 0.379030
-- "C" "C" 0 1 131072 10 6 0.670480
-- "O" "O" 0 1 131072 11 8 -0.583250
--!entry.SER.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "H1" 0 -1 0.0
-- "HB3" "H1" 0 -1 0.0
-- "OG" "OH" 0 -1 0.0
-- "HG" "HO" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.SER.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.SER.unit.childsequence single int
-- 2
--!entry.SER.unit.connect array int
-- 1
-- 10
--!entry.SER.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 10 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 10 11 1
--!entry.SER.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
--!entry.SER.unit.name single str
-- "SER"
--!entry.SER.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.230753 4.925145 1.196917
-- 3.983305 5.433814 1.972562
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.SER.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 10 0 0 0 0
--!entry.SER.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "SER" 1 12 1 "p" 0
--!entry.SER.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.SER.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.SER.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.THR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.022270
-- "HA" "H1" 0 1 131072 4 1 0.053100
-- "CB" "CT" 0 1 131072 5 6 0.522850
-- "HB" "H1" 0 1 131072 6 1 -0.139050
-- "CG2" "CT" 0 1 131072 7 6 -0.588650
-- "HG21" "HC" 0 1 131072 8 1 0.162040
-- "HG22" "HC" 0 1 131072 9 1 0.162040
-- "HG23" "HC" 0 1 131072 10 1 0.162040
-- "OG1" "OH" 0 1 131072 11 8 -0.739400
-- "HG1" "HO" 0 1 131072 12 1 0.452680
-- "C" "C" 0 1 131072 13 6 0.670480
-- "O" "O" 0 1 131072 14 8 -0.583250
--!entry.THR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB" "H1" 0 -1 0.0
-- "CG2" "CT" 0 -1 0.0
-- "HG21" "HC" 0 -1 0.0
-- "HG22" "HC" 0 -1 0.0
-- "HG23" "HC" 0 -1 0.0
-- "OG1" "OH" 0 -1 0.0
-- "HG1" "HO" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.THR.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.THR.unit.childsequence single int
-- 2
--!entry.THR.unit.connect array int
-- 1
-- 13
--!entry.THR.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 13 1
-- 5 6 1
-- 5 7 1
-- 5 11 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 11 12 1
-- 13 14 1
--!entry.THR.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
--!entry.THR.unit.name single str
-- "THR"
--!entry.THR.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 4.075059 4.623017 1.205786
-- 2.065936 3.859425 1.244383
-- 1.567127 2.890627 1.271209
-- 1.784431 4.436953 2.124903
-- 1.764699 4.397847 0.345796
-- 3.971501 2.947413 2.411212
-- 3.724052 3.456082 3.186857
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.THR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 13 0 0 0 0
--!entry.THR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "THR" 1 15 1 "p" 0
--!entry.THR.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.THR.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.THR.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.TRP.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.094050
-- "HA" "H1" 0 1 131072 4 1 0.058350
-- "CB" "CT" 0 1 131072 5 6 0.034010
-- "HB2" "HC" 0 1 131072 6 1 0.031520
-- "HB3" "HC" 0 1 131072 7 1 0.031520
-- "CG" "C*" 0 1 131072 8 6 -0.279060
-- "CD1" "CW" 0 1 131072 9 6 0.030520
-- "HD1" "H4" 0 1 131072 10 1 0.136990
-- "NE1" "NA" 0 1 131072 11 7 -0.483180
-- "HE1" "H" 0 1 131072 12 1 0.393090
-- "CE2" "CN" 0 1 131072 13 6 0.203200
-- "CZ2" "CA" 0 1 131072 14 6 -0.272110
-- "HZ2" "HA" 0 1 131072 15 1 0.185390
-- "CH2" "CA" 0 1 131072 16 6 -0.171160
-- "HH2" "HA" 0 1 131072 17 1 0.105360
-- "CZ3" "CA" 0 1 131072 18 6 -0.058970
-- "HZ3" "HA" 0 1 131072 19 1 0.088920
-- "CE3" "CA" 0 1 131072 20 6 -0.403270
-- "HE3" "HA" 0 1 131072 21 1 0.216660
-- "CD2" "CB" 0 1 131072 22 6 0.271650
-- "C" "C" 0 1 131072 23 6 0.670480
-- "O" "O" 0 1 131072 24 8 -0.583250
--!entry.TRP.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "C*" 0 -1 0.0
-- "CD1" "CW" 0 -1 0.0
-- "HD1" "H4" 0 -1 0.0
-- "NE1" "NA" 0 -1 0.0
-- "HE1" "H" 0 -1 0.0
-- "CE2" "CN" 0 -1 0.0
-- "CZ2" "CA" 0 -1 0.0
-- "HZ2" "HA" 0 -1 0.0
-- "CH2" "CA" 0 -1 0.0
-- "HH2" "HA" 0 -1 0.0
-- "CZ3" "CA" 0 -1 0.0
-- "HZ3" "HA" 0 -1 0.0
-- "CE3" "CA" 0 -1 0.0
-- "HE3" "HA" 0 -1 0.0
-- "CD2" "CB" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.TRP.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.TRP.unit.childsequence single int
-- 2
--!entry.TRP.unit.connect array int
-- 1
-- 23
--!entry.TRP.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 23 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 22 1
-- 9 10 1
-- 9 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 22 1
-- 14 15 1
-- 14 16 1
-- 16 17 1
-- 16 18 1
-- 18 19 1
-- 18 20 1
-- 20 21 1
-- 20 22 1
-- 23 24 1
--!entry.TRP.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
-- "R" 1 "A" 22
-- "R" 1 "A" 23
-- "R" 1 "A" 24
--!entry.TRP.unit.name single str
-- "TRP"
--!entry.TRP.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.200813 5.026064 1.321087
-- 4.023453 5.931084 2.293240
-- 3.368841 5.705466 3.135071
-- 4.811943 7.073555 1.949808
-- 4.882921 7.922010 2.493118
-- 5.427347 6.842060 0.816764
-- 6.297161 7.689052 0.119605
-- 6.531230 8.676649 0.517050
-- 6.814091 7.187011 -1.069023
-- 7.498074 7.791857 -1.664362
-- 6.482659 5.953119 -1.505101
-- 6.897660 5.575648 -2.439654
-- 5.604041 5.117355 -0.785636
-- 5.358720 4.126570 -1.168080
-- 5.083390 5.623004 0.411545
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.TRP.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 23 0 0 0 0
--!entry.TRP.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "TRP" 1 25 1 "p" 0
--!entry.TRP.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.TRP.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.TRP.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.TYR.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.176100
-- "HA" "H1" 0 1 131072 4 1 0.082580
-- "CB" "CT" 0 1 131072 5 6 -0.032040
-- "HB2" "HC" 0 1 131072 6 1 0.077470
-- "HB3" "HC" 0 1 131072 7 1 0.077470
-- "CG" "CA" 0 1 131072 8 6 -0.034160
-- "CD1" "CA" 0 1 131072 9 6 -0.120710
-- "HD1" "HA" 0 1 131072 10 1 0.140120
-- "CE1" "CA" 0 1 131072 11 6 -0.333900
-- "HE1" "HA" 0 1 131072 12 1 0.188970
-- "CZ" "CA" 0 1 131072 13 6 0.442780
-- "OH" "OH" 0 1 131072 14 8 -0.541860
-- "HH" "HO" 0 1 131072 15 1 0.380280
-- "CE2" "CA" 0 1 131072 16 6 -0.333900
-- "HE2" "HA" 0 1 131072 17 1 0.188970
-- "CD2" "CA" 0 1 131072 18 6 -0.120710
-- "HD2" "HA" 0 1 131072 19 1 0.140120
-- "C" "C" 0 1 131072 20 6 0.670480
-- "O" "O" 0 1 131072 21 8 -0.583250
--!entry.TYR.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB2" "HC" 0 -1 0.0
-- "HB3" "HC" 0 -1 0.0
-- "CG" "CA" 0 -1 0.0
-- "CD1" "CA" 0 -1 0.0
-- "HD1" "HA" 0 -1 0.0
-- "CE1" "CA" 0 -1 0.0
-- "HE1" "HA" 0 -1 0.0
-- "CZ" "CA" 0 -1 0.0
-- "OH" "OH" 0 -1 0.0
-- "HH" "HO" 0 -1 0.0
-- "CE2" "CA" 0 -1 0.0
-- "HE2" "HA" 0 -1 0.0
-- "CD2" "CA" 0 -1 0.0
-- "HD2" "HA" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.TYR.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.TYR.unit.childsequence single int
-- 2
--!entry.TYR.unit.connect array int
-- 1
-- 20
--!entry.TYR.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 20 1
-- 5 6 1
-- 5 7 1
-- 5 8 1
-- 8 9 1
-- 8 18 1
-- 9 10 1
-- 9 11 1
-- 11 12 1
-- 11 13 1
-- 13 14 1
-- 13 16 1
-- 14 15 1
-- 16 17 1
-- 16 18 1
-- 18 19 1
-- 20 21 1
--!entry.TYR.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
-- "R" 1 "A" 17
-- "R" 1 "A" 18
-- "R" 1 "A" 19
-- "R" 1 "A" 20
-- "R" 1 "A" 21
--!entry.TYR.unit.name single str
-- "TYR"
--!entry.TYR.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.877484 3.115795 2.131197
-- 4.267328 4.996267 1.194946
-- 4.059927 5.918911 2.227280
-- 3.400108 5.668218 3.057877
-- 4.699998 7.163547 2.192791
-- 4.538522 7.881891 2.996538
-- 5.547471 7.485542 1.125970
-- 6.169255 8.694617 1.092468
-- 5.956327 9.246984 1.848214
-- 5.754875 6.562900 0.093635
-- 6.414694 6.813595 -0.736962
-- 5.114806 5.318263 0.128119
-- 5.276286 4.599920 -0.675627
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.TYR.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 20 0 0 0 0
--!entry.TYR.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "TYR" 1 22 1 "p" 0
--!entry.TYR.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.TYR.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.TYR.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
--!entry.VAL.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-- "N" "N" 0 1 131072 1 7 -0.404070
-- "H" "H" 0 1 131072 2 1 0.291460
-- "CA" "CT" 0 1 131072 3 6 -0.248670
-- "HA" "H1" 0 1 131072 4 1 0.096610
-- "CB" "CT" 0 1 131072 5 6 0.652680
-- "HB" "HC" 0 1 131072 6 1 -0.125280
-- "CG1" "CT" 0 1 131072 7 6 -0.741410
-- "HG11" "HC" 0 1 131072 8 1 0.188810
-- "HG12" "HC" 0 1 131072 9 1 0.188810
-- "HG13" "HC" 0 1 131072 10 1 0.188810
-- "CG2" "CT" 0 1 131072 11 6 -0.741410
-- "HG21" "HC" 0 1 131072 12 1 0.188810
-- "HG22" "HC" 0 1 131072 13 1 0.188810
-- "HG23" "HC" 0 1 131072 14 1 0.188810
-- "C" "C" 0 1 131072 15 6 0.670480
-- "O" "O" 0 1 131072 16 8 -0.583250
--!entry.VAL.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-- "N" "N" 0 -1 0.0
-- "H" "H" 0 -1 0.0
-- "CA" "CT" 0 -1 0.0
-- "HA" "H1" 0 -1 0.0
-- "CB" "CT" 0 -1 0.0
-- "HB" "HC" 0 -1 0.0
-- "CG1" "CT" 0 -1 0.0
-- "HG11" "HC" 0 -1 0.0
-- "HG12" "HC" 0 -1 0.0
-- "HG13" "HC" 0 -1 0.0
-- "CG2" "CT" 0 -1 0.0
-- "HG21" "HC" 0 -1 0.0
-- "HG22" "HC" 0 -1 0.0
-- "HG23" "HC" 0 -1 0.0
-- "C" "C" 0 -1 0.0
-- "O" "O" 0 -1 0.0
--!entry.VAL.unit.boundbox array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.VAL.unit.childsequence single int
-- 2
--!entry.VAL.unit.connect array int
-- 1
-- 15
--!entry.VAL.unit.connectivity table int atom1x int atom2x int flags
-- 1 2 1
-- 1 3 1
-- 3 4 1
-- 3 5 1
-- 3 15 1
-- 5 6 1
-- 5 7 1
-- 5 11 1
-- 7 8 1
-- 7 9 1
-- 7 10 1
-- 11 12 1
-- 11 13 1
-- 11 14 1
-- 15 16 1
--!entry.VAL.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-- "U" 0 "R" 1
-- "R" 1 "A" 1
-- "R" 1 "A" 2
-- "R" 1 "A" 3
-- "R" 1 "A" 4
-- "R" 1 "A" 5
-- "R" 1 "A" 6
-- "R" 1 "A" 7
-- "R" 1 "A" 8
-- "R" 1 "A" 9
-- "R" 1 "A" 10
-- "R" 1 "A" 11
-- "R" 1 "A" 12
-- "R" 1 "A" 13
-- "R" 1 "A" 14
-- "R" 1 "A" 15
-- "R" 1 "A" 16
--!entry.VAL.unit.name single str
-- "VAL"
--!entry.VAL.unit.positions table dbl x dbl y dbl z
-- 3.325770 1.547909 -1.607204E-06
-- 3.909407 0.723611 -2.739882E-06
-- 3.970048 2.845795 -1.311163E-07
-- 3.671663 3.400129 -0.889820
-- 3.576965 3.653838 1.232143
-- 2.496995 3.801075 1.241379
-- 3.997712 2.900483 2.489542
-- 5.077693 2.753265 2.481244
-- 3.716972 3.477628 3.370558
-- 3.499630 1.931323 2.516834
-- 4.274186 5.009602 1.194577
-- 3.973781 5.548460 0.295972
-- 3.993559 5.587585 2.075079
-- 5.354271 4.863178 1.185788
-- 5.485541 2.705207 -4.398755E-06
-- 6.008824 1.593175 -8.449768E-06
--!entry.VAL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-- 1 15 0 0 0 0
--!entry.VAL.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-- "VAL" 1 17 1 "p" 0
--!entry.VAL.unit.residuesPdbSequenceNumber array int
-- 0
--!entry.VAL.unit.solventcap array dbl
-- -1.000000
-- 0.0
-- 0.0
-- 0.0
-- 0.0
--!entry.VAL.unit.velocities table dbl x dbl y dbl z
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-- 0.0 0.0 0.0
-diff --git a/dat/leap/parm/frcmod.pol12 b/dat/leap/parm/frcmod.pol12
-deleted file mode 100644
-index cff8162..0000000
---- a/dat/leap/parm/frcmod.pol12
-+++ /dev/null
-@@ -1,180 +0,0 @@
--Mainchain torsion parameters
--IPOL
-- 4
--
--MASS
--
--BOND
--
--ANGL
--
--DIHEDRAL
--C -N -CT-C 1 0.79 0.0 -1. 1.0 2.0 frm gly phi-psi gas map MP2(CBS, atz-aqz)+CCSD(T)(adz)
--C -N -CT-C 1 1.24 0.0 -2. 1.0 2.0 frm gly phi-psi gas map MP2(CBS, atz-aqz)+CCSD(T)(adz)
--C -N -CT-C 1 0.42 0.0 3. 1.0 2.0 frm gly phi-psi gas map MP2(CBS, atz-aqz)+CCSD(T)(adz)
--N -CT-C -N 1 1.96 0.0 -1. 1.0 2.0 frm gly phi-psi gas map MP2(CBS, atz-aqz)+CCSD(T)(adz)
--N -CT-C -N 1 1.37 180.0 -2. 1.0 2.0 frm gly phi-psi gas map MP2(CBS, atz-aqz)+CCSD(T)(adz)
--N -CT-C -N 1 0.42 180.0 3. 1.0 2.0 frm gly phi-psi gas map MP2(CBS, atz-aqz)+CCSD(T)(adz)
--CT-CT-N -C 1 0.02 180.0 -1. 1.0 2.0
--CT-CT-N -C 1 0.65 0.0 2. 1.0 2.0
--H1-CT-N -C 1 0.99 180.0 -1. 1.0 2.0
--H1-CT-N -C 1 0.80 0.0 2. 1.0 2.0
--CT-CT-C -N 1 1.34 0.0 -1. 1.0 2.0
--CT-CT-C -N 1 0.50 180.0 2. 1.0 2.0
--H1-CT-C -N 1 0.09 180.0 -2. 1.0 2.0
--H1-CT-C -N 1 1.14 0.0 1. 1.0 2.0
--
--NONBON
--
--CMAP
--%FLAG CMAP_COUNT 3
--%FLAG CMAP_TITLE
--ALA CMAP
--%FLAG CMAP_RESLIST 26
--ALA ASP SER THR LEU ILE VAL ASN GLN ARG
--HID HIE HIP TRP PHE TYR GLU ASP LYS LYN
--CYS CYX MET ASH GLH CYM
--%FLAG CMAP_RESOLUTION 18
--%FLAG CMAP_PARAMETER
-- 0.6996 0.7109 0.7452 0.8985 1.2822 1.4924 0.8283 0.0309
-- 0.1762 -0.0044 -0.9781 -0.9596 -0.2536 0.2216 0.2768 0.2998
-- 0.3343 0.4811 0.6979 0.5886 0.6524 0.9473 1.2845 1.1558
-- 0.6335 0.2926 0.8031 -0.6203 -1.0679 -0.8046 -0.1339 0.1863
-- 0.2679 0.4891 0.6519 0.7084 0.4314 0.4697 0.7114 1.0596
-- 1.0858 0.7096 0.5322 1.0603 -0.2603 -0.9325 -0.9777 -0.5784
-- -0.1384 -0.0963 0.0316 0.3500 0.5028 0.4746 0.6188 0.9074
-- 1.1282 1.2028 0.9105 0.6231 1.0358 0.2832 -0.7467 -0.8248
-- -0.5121 -0.1238 -0.1961 -0.4874 -0.2169 0.2218 0.4082 0.4486
-- 0.9788 1.1395 1.0923 1.0718 0.9625 1.1138 1.3863 -0.1392
-- -0.7237 -0.2872 0.4985 0.3261 -0.5791 -1.0942 -0.4770 0.2321
-- 0.5573 0.7415 0.5292 0.4950 0.5479 0.9137 1.3146 1.8892
-- 0.9379 -0.6194 -0.6632 0.6898 1.7557 1.5728 0.6566 -0.5970
-- -0.8672 -0.1900 0.2293 0.4321 -1.0380 -0.5799 0.3862 1.5984
-- 2.3166 2.1500 -0.0677 -1.2216 0.0062 2.3366 3.2155 2.7916
-- 1.8380 0.3829 -0.8178 -1.0808 -1.1518 -1.1570 -1.8094 -0.0773
-- 2.1498 3.7544 3.6406 0.8498 -1.3804 -0.9843 1.5549 3.2365
-- 3.3981 2.9209 2.2171 0.8749 -0.6221 -2.0341 -2.7537 -2.6330
-- -0.3319 2.8137 3.2646 1.8770 0.3246 -1.2216 -1.4980 0.5532
-- 2.1118 2.6618 2.5746 2.5164 2.1009 0.9974 -1.3076 -2.7967
-- -2.9532 -2.1699 3.6877 0.8028 -0.7043 -1.5370 -1.7409 -1.0954
-- 0.5853 1.2217 1.6359 1.8122 2.1382 2.1394 1.1467 -1.1553
-- -2.0555 -1.8169 -1.0220 0.4087 0.0138 -2.0970 -3.0277 -2.8743
-- -1.2829 0.5478 1.1379 1.4164 1.7734 2.3230 2.4142 1.2562
-- -1.5766 -1.7018 -0.3087 1.2616 2.6633 2.9485 -1.7710 -2.9352
-- -3.2016 -2.3880 -0.8571 0.2752 1.2115 1.6828 2.2605 2.5641
-- 1.5681 -1.1818 -2.0490 -0.0671 2.4541 3.1648 1.9621 0.0054
-- -0.5880 -1.1331 -1.1982 -0.9946 -0.7792 -0.0902 0.9375 1.5375
-- 1.8883 1.4039 -0.3318 -1.8684 -0.9853 1.1723 2.2107 1.9406
-- 1.1240 0.2128 1.1816 0.7833 0.6454 0.3474 -0.5170 -0.9473
-- -0.1769 0.3671 0.4441 -0.0054 -1.1102 -1.1976 0.1113 1.5763
-- 1.7120 1.7491 1.6278 1.5039 1.8743 1.3537 1.1335 0.8916
-- 0.2183 -0.9854 -1.0827 -0.5687 -0.2308 -0.5702 -0.8166 -0.2464
-- 1.0822 1.2795 1.3026 1.7406 1.9548 2.1020 1.2800 0.9715
-- 0.8172 0.7412 0.5890 0.3522 0.0954 -0.2460 -0.5892 -0.5927
-- -0.2446 0.9237 1.1241 0.5542 1.0488 1.5582 1.5830 1.4282
-- 0.3882 0.4559 0.4963 0.4920 0.6253 0.9252 0.5006 -0.7605
-- -0.6854 -0.3495 0.6981 0.6922 -0.0579 0.2654 0.8917 0.9409
-- 0.5017 0.1950 0.2477 0.3903 0.5167 0.6139 0.8817 1.2830
-- 0.7453 -0.3047 -0.4839 0.3175 -0.1271 -0.8020 -0.3850 0.2424
-- 0.4141 0.2357 -0.0419 -0.0473
--%FLAG CMAP_TITLE
--GLY CMAP
--%FLAG CMAP_RESLIST 1
--GLY
--%FLAG CMAP_RESOLUTION 18
--%COMMENT GLY CMAP from MP2(CBS atz-aqz)+CCSD(T)(adz) correction
--%COMMENT from gly-CMAP-optBBV01-gas-formatted-psi-phi.dat
--%COMMENT PSI PHI
--%FLAG CMAP_PARAMETER
-- 1.1507 0.7349 0.5033 0.4851 0.6055 0.6617 -0.1372 -0.4814
-- -0.4244 3.5760 -0.4244 -0.4814 -0.1372 0.6617 0.6055 0.4851
-- 0.5033 0.7349 0.8169 0.6015 0.5487 0.7802 1.0366 0.9827
-- 0.5364 0.2725 1.1192 -0.5549 -1.1726 -0.9070 -0.1156 0.2913
-- 0.3275 0.4620 0.6558 0.7885 0.7603 0.7381 0.9566 1.2999
-- 1.3313 0.9787 0.8744 1.4168 -0.1690 -1.1676 -1.3768 -1.0856
-- -0.2490 -0.0108 0.1378 0.4506 0.6648 0.7392 0.9915 1.1016
-- 1.2424 1.3636 1.2423 1.0643 1.4604 0.6995 -0.6354 -1.0819
-- -0.9636 -0.5145 -0.2270 -0.2924 0.0124 0.4572 0.7197 0.8353
-- 1.1798 1.1241 1.1031 1.2584 1.3540 1.5273 1.8196 0.1895
-- -0.6672 -0.5774 -0.0897 -0.1227 -0.6643 -0.9178 -0.3044 0.4086
-- 0.7943 1.0196 0.4751 0.3508 0.5391 1.1479 1.6817 2.1172
-- 1.0757 -0.5530 -0.7982 0.1466 0.8419 0.8318 0.3350 -0.6135
-- -0.8554 -0.2406 0.1999 0.4241 -1.1995 -0.7114 0.4296 1.8756
-- 2.6117 2.1615 -0.1812 -1.4398 -0.4034 1.4799 2.2439 2.0908
-- 1.5528 0.3805 -0.8859 -1.3330 -1.4658 -1.4169 -1.7376 0.0374
-- 2.3126 3.9828 3.4776 0.7125 -1.5839 -1.2740 1.1103 2.4687
-- 2.5524 2.2668 1.9382 0.8766 -0.7227 -2.3671 -3.1074 -2.8081
-- 0.1638 3.0876 3.5261 1.9682 0.2306 -1.3484 -1.5582 0.5419
-- 1.8350 2.0962 1.8764 1.8112 1.6715 0.8664 -1.3883 -2.9899
-- -3.0123 -1.9469 5.5352 1.0681 -0.6188 -1.6349 -1.9353 -1.1019
-- 0.8247 1.4255 1.5776 1.8010 1.5776 1.4255 0.8247 -1.1019
-- -1.9353 -1.6349 -0.6188 1.0681 0.1638 -1.9469 -3.0123 -2.9899
-- -1.3883 0.8664 1.6715 1.8112 1.8764 2.0962 1.8350 0.5419
-- -1.5582 -1.3484 0.2306 1.9682 3.5261 3.0876 -1.7376 -2.8081
-- -3.1074 -2.3671 -0.7227 0.8766 1.9382 2.2668 2.5524 2.4687
-- 1.1103 -1.2740 -1.5839 0.7125 3.4776 3.9828 2.3126 0.0374
-- -1.1995 -1.4169 -1.4658 -1.3330 -0.8859 0.3805 1.5528 2.0908
-- 2.2439 1.4799 -0.4034 -1.4398 -0.1812 2.1615 2.6117 1.8756
-- 0.4296 -0.7114 0.4751 0.4241 0.1999 -0.2406 -0.8554 -0.6135
-- 0.3350 0.8318 0.8419 0.1466 -0.7982 -0.5530 1.0757 2.1172
-- 1.6817 1.1479 0.5391 0.3508 1.1798 1.0196 0.7943 0.4086
-- -0.3044 -0.9178 -0.6643 -0.1227 -0.0897 -0.5774 -0.6672 0.1895
-- 1.8196 1.5273 1.3540 1.2584 1.1031 1.1241 0.9915 0.8353
-- 0.7197 0.4572 0.0124 -0.2924 -0.2270 -0.5145 -0.9636 -1.0819
-- -0.6354 0.6995 1.4604 1.0643 1.2423 1.3636 1.2424 1.1016
-- 0.7603 0.7392 0.6648 0.4506 0.1378 -0.0108 -0.2490 -1.0856
-- -1.3768 -1.1676 -0.1690 1.4168 0.8744 0.9787 1.3313 1.2999
-- 0.9566 0.7381 0.8169 0.7885 0.6558 0.4620 0.3275 0.2913
-- -0.1156 -0.9070 -1.1726 -0.5549 1.1192 0.2725 0.5364 0.9827
-- 1.0366 0.7802 0.5487 0.6015
--%FLAG CMAP_TITLE
--PRO CMAP
--%FLAG CMAP_RESLIST 1
--PRO
--%FLAG CMAP_RESOLUTION 18
--%COMMENT PRO CMAP from MP2(atz) correction
--%COMMENT PSI PHI
--%FLAG CMAP_PARAMETER
-- -11.8681 -11.9836 -12.3616 -13.6168 -14.1453 -14.0496 -13.2367 -11.7198
-- -12.3096 -13.3794 -14.8656 -16.1479 -16.2807 -15.2755 -14.2653 -13.6480
-- -13.2047 -12.3285 -6.6149 -6.6085 -6.9286 -8.0418 -8.9648 -9.1397
-- -8.0198 -7.5099 -8.3788 -9.3943 -10.1089 -10.4542 -10.0455 -9.4001
-- -8.8431 -8.2531 -7.6409 -6.9275 -2.2957 -2.2463 -2.3664 -3.3373
-- -4.3855 -4.6521 -3.5502 -3.0913 -3.9517 -5.7538 -5.9899 -5.5195
-- -4.8746 -4.7226 -4.4199 -3.7774 -3.1315 -2.5488 0.6680 0.7260
-- 0.9072 0.3973 -0.5339 -0.8094 0.0774 -0.6931 -1.1404 -1.1815
-- -1.1333 -0.6621 -0.7192 -1.4151 -1.1788 -0.0419 1.2083 0.4615
-- 2.1095 4.2916 4.4484 4.5978 2.0399 2.3643 1.5854 -0.6165
-- -2.3163 -2.1003 -1.6863 -2.0963 1.1545 0.2034 0.3478 1.5816
-- 2.8385 3.6463 1.4654 1.9240 2.1607 2.3294 2.1657 1.1236
-- 0.0568 -1.0419 -1.1277 0.0585 1.0645 0.9305 -0.0229 -1.3432
-- -1.8853 -0.9112 0.1465 0.8421 0.7720 0.5083 2.0895 4.2326
-- 3.4621 1.6070 -0.1446 -0.4766 0.0496 1.9172 2.8496 2.5803
-- 1.8081 0.4834 -0.8311 -0.9350 -0.4975 0.0686 0.1101 2.1266
-- 4.1675 4.8614 3.2766 0.8449 -1.0386 -0.7694 1.0610 2.6106
-- 2.9484 2.6931 2.3165 1.1273 -0.6244 -1.8051 -1.8110 -1.1012
-- 0.8389 3.2290 4.5077 3.5467 1.5644 -0.8184 -1.6190 -0.0314
-- 1.4359 1.9499 1.9228 2.1114 2.0614 0.8497 -1.6471 -2.9782
-- -2.4091 -1.0655 2.1214 2.4093 1.8722 0.8322 -0.9802 -2.0624
-- -0.9195 -0.7585 0.3481 0.2424 0.7417 1.3245 0.8544 -1.4936
-- -3.4435 -3.2387 -1.8418 -0.1330 1.1045 -0.0764 -1.2071 -2.5678
-- -3.1670 -2.1847 -1.3846 -1.6251 -1.7513 -1.1878 -0.5694 -0.9375
-- -3.0564 -4.7386 -4.5548 -3.3367 -2.2528 -0.6426 -2.6725 -4.4937
-- -5.8072 -6.1904 -5.2607 -4.0146 -3.6532 -3.7922 -3.4941 -3.0741
-- -3.5874 -5.8952 -8.2189 -7.9584 -6.6024 -5.1969 -2.9854 -5.5137
-- -7.9466 -9.1555 -9.7366 -9.4550 -8.4636 -7.2113 -6.5882 -6.3548
-- -6.2295 -6.8226 -8.8572 -11.4670 -11.6480 -10.2777 -8.5312 -6.9800
-- -8.2061 -5.8153 -11.6999 -12.2452 -12.6181 -13.0581 -13.3102 -12.5095
-- -11.5831 -11.1878 -11.4400 -12.4275 -14.0503 -14.7786 -14.2390 -13.2677
-- -14.5183 -11.0713 -10.6889 -11.0171 -13.0625 -13.4223 -13.6765 -14.3336
-- -14.6319 -14.0585 -16.8736 -16.1852 -15.4669 -15.8732 -16.5863 -16.5814
-- -16.0226 -15.6145 -14.9156 -14.2166 -13.6532 -13.3471 -14.4252 -14.5993
-- -14.7349 -15.6092 -15.9535 -15.6075 -16.3631 -15.6054 -15.8061 -16.5334
-- -17.0429 -16.9562 -16.5669 -16.5470 -15.8568 -15.1665 -15.5102 -15.0609
-- -15.7879 -15.7763 -15.7932 -16.8848 -17.2752 -17.1565 -17.2433 -16.5548
-- -16.1162 -16.6112 -17.8811 -19.0447 -19.4487 -18.9047 -17.8098 -17.1771
-- -17.3673 -16.7746 -17.1505 -16.9534 -16.8516 -18.1603 -18.1481 -18.1358
-- -18.1236 -17.5042 -16.4263 -16.6890 -18.7194 -21.1332 -22.3304 -21.2623
-- -19.7629 -19.1877 -19.2243 -18.4884
--
--
-diff --git a/dat/leap/parm/parmpol12.dat b/dat/leap/parm/parmpol12.dat
-deleted file mode 100644
-index 13fefad..0000000
---- a/dat/leap/parm/parmpol12.dat
-+++ /dev/null
-@@ -1,756 +0,0 @@
--based on PARM99 ff11D1, Thole-Linear SL=2.5874
--C 12.01 1.2955 2.5874 sp2 C carbonyl group
--C2 12.01 1.2955 2.5874 sp2 C
--CA 12.01 1.2955 2.5874 sp2 C pure aromatic (benzene)
--CB 12.01 1.2955 2.5874 sp2 aromatic C, 5&6 membered ring junction
--CC 12.01 1.2955 2.5874 sp2 aromatic C, 5 memb. ring HIS
--CD 12.01 1.2955 2.5874 sp2 C atom in the middle of: C=CD-CD=C
--CK 12.01 1.2955 2.5874 sp2 C 5 memb.ring in purines
--CM 12.01 1.2955 2.5874 sp2 C pyrimidines in pos. 5 & 6
--CN 12.01 1.2955 2.5874 sp2 C aromatic 5&6 memb.ring junct.(TRP)
--CQ 12.01 1.2955 2.5874 sp2 C in 5 mem.ring of purines between 2 N
--CR 12.01 1.2955 2.5874 sp2 arom as CQ but in HIS
--CT 12.01 0.9399 2.5874 sp3 aliphatic C
--CV 12.01 1.2955 2.5874 sp2 arom. 5 memb.ring w/1 N and 1 H (HIS)
--CW 12.01 1.2955 2.5874 sp2 arom. 5 memb.ring w/1 N-H and 1 H (HIS)
--C* 12.01 1.2955 2.5874 sp2 arom. 5 memb.ring w/1 subst. (TRP)
--CY 12.01 1.3916 2.5874 nitrile C (Howard et al.JCC,16,243,1995)
--CZ 12.01 1.3916 2.5874 sp C (Howard et al.JCC,16,243,1995)
--C0 40.08 calcium
--H 1.008 0.4255 2.5874 H bonded to nitrogen atoms
--H0 1.008 0.4255 2.5874 for Gly only
--HC 1.008 0.4255 2.5874 H aliph. bond. to C without electrwd.group
--H1 1.008 0.4255 2.5874 H aliph. bond. to C with 1 electrwd. group
--H2 1.008 0.4255 2.5874 H aliph. bond. to C with 2 electrwd.groups
--H3 1.008 0.4255 2.5874 H aliph. bond. to C with 3 eletrwd.groups
--HA 1.008 0.4255 2.5874 H arom. bond. to C without elctrwd. groups
--H4 1.008 0.4255 2.5874 H arom. bond. to C with 1 electrwd. group
--H5 1.008 0.4255 2.5874 H arom.at C with 2 elctrwd. gr,+HCOO group
--HO 1.008 0.4255 2.5874 hydroxyl group
--HS 1.008 0.4255 2.5874 hydrogen bonded to sulphur (pol?)
--HW 1.008 0.1700 2.4410 H in POL3 water
--HP 1.008 0.4255 2.5874 H bonded to C next to positively charged gr
--HZ 1.008 0.4255 2.5874 H bond sp C (Howard et al.JCC,16,243,1995)
--F 19.00 0.4839 2.5874 fluorine
--Cl 35.45 2.3707 2.5874 chlorine
--IM 35.45 2.3707 2.5874 assumed to be Cl- (ion minus)
--Br 79.90 3.5016 2.5874 bromine
--I 126.9 5.5787 2.5874 iodine
--IB 131.0 'big ion w/ waters' for vacuum (Na+, 6H2O)
--MG 24.305 0.120 2.5874 magnesium
--N 14.01 0.9603 2.5874 sp2 nitrogen in amide groups
--NA 14.01 0.9603 2.5874 sp2 N in 5 memb.ring w/H atom (HIS)
--NB 14.01 0.9603 2.5874 sp2 N in 5 memb.ring w/LP (HIS,ADE,GUA)
--NC 14.01 0.9603 2.5874 sp2 N in 6 memb.ring w/LP (ADE,GUA)
--N2 14.01 0.9603 2.5874 sp2 N in amino groups
--N3 14.01 0.9603 2.5874 sp3 N for charged amino groups (Lys, etc)
--NT 14.01 0.9603 2.5874 sp3 N for amino groups amino groups
--N* 14.01 0.9603 2.5874 sp2 N
--NY 14.01 0.9603 2.5874 nitrile N (Howard et al.JCC,16,243,1995)
--O 16.00 0.6049 2.5874 carbonyl group oxygen
--O2 16.00 0.6049 2.5874 carboxyl and phosphate group oxygen
--OW 16.00 0.5280 2.4410 oxygen in POL3 water
--OH 16.00 0.6148 2.5874 oxygen in hydroxyl group
--OS 16.00 0.6148 2.5874 ether and ester oxygen
--P 30.97 1.7927 2.5874 phosphate,pol:JACS,112,8543,90,K.J.Miller
--S 32.06 3.1686 2.5874 S in disulfide linkage,pol:JPC,102,2399,98
--SH 32.06 3.1686 2.5874 S in cystine
--S4 32.06 2.3149 2.5874 S
--CU 63.55 copper
--FE 55.00 iron
--Li 6.94 0.029 2.5874 lithium, ions pol:J.PhysC,11,1541,(1978)
--IP 22.99 0.250 2.5874 assumed to be Na+ (ion plus)
--Na 22.99 0.250 2.5874 Na+, ions pol:J.PhysC,11,1541,(1978)
--K 39.10 1.060 2.5874 potassium
--Rb 85.47 rubidium
--Cs 132.91 cesium
--Zn 65.4 Zn2+
--LP 3.00 0.000 lone pair
--
--C H HO N NA NB NC N2 NT N2 N3 N* O OH OS P O2
--OW-HW 320.0 1.0000 ! POL3, SPC/E water
--HW-HW 553.0 1.6330 POL3, SPC/E water
--C -C 310.0 1.525 Junmei et al, 1999
--C -CA 469.0 1.409 JCC,7,(1986),230; (not used any more in TYR)
--C -CB 447.0 1.419 JCC,7,(1986),230; GUA
--C -CM 410.0 1.444 JCC,7,(1986),230; THY,URA
--C -CT 317.0 1.522 JCC,7,(1986),230; AA
--C -N 490.0 1.335 JCC,7,(1986),230; AA
--C -N* 424.0 1.383 JCC,7,(1986),230; CYT,URA
--C -NA 418.0 1.388 JCC,7,(1986),230; GUA.URA
--C -NC 457.0 1.358 JCC,7,(1986),230; CYT
--C -O 570.0 1.229 JCC,7,(1986),230; AA,CYT,GUA,THY,URA
--C -O2 656.0 1.250 JCC,7,(1986),230; GLU,ASP
--C -OH 450.0 1.364 JCC,7,(1986),230; (not used any more for TYR)
--C -OS 450.0 1.323 Junmei et al, 1999
--C -H4 367.0 1.080 Junmei et al, 1999
--C -H5 367.0 1.080 Junmei et al, 1999
--CA-CA 469.0 1.400 JCC,7,(1986),230; BENZENE,PHE,TRP,TYR
--CA-CB 469.0 1.404 JCC,7,(1986),230; ADE,TRP
--CA-CM 427.0 1.433 JCC,7,(1986),230; CYT
--CA-CN 469.0 1.400 JCC,7,(1986),230; TRP
--CA-CT 317.0 1.510 JCC,7,(1986),230; PHE,TYR
--CA-HA 367.0 1.080 changed from 340. bsd on C6H6 nmodes; PHE,TRP,TYR
--CA-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes; no assigned
--CA-N2 481.0 1.340 JCC,7,(1986),230; ARG,CYT,GUA
--CA-NA 427.0 1.381 JCC,7,(1986),230; GUA
--CA-NC 483.0 1.339 JCC,7,(1986),230; ADE,CYT,GUA
--CA-OH 450.0 1.364 substituted for C-OH in tyr
--CB-CB 520.0 1.370 JCC,7,(1986),230; ADE,GUA
--CB-N* 436.0 1.374 JCC,7,(1986),230; ADE,GUA
--CB-NB 414.0 1.391 JCC,7,(1986),230; ADE,GUA
--CB-NC 461.0 1.354 JCC,7,(1986),230; ADE,GUA
--CD-HA 367.0 1.080 Junmei et al, 1999
--CD-CD 469.0 1.400 Junmei et al, 1999
--CD-CM 549.0 1.350 Junmei et al, 1999
--CD-CT 317.0 1.510 Junmei et al, 1999
--CK-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes; ADE,GUA
--CK-N* 440.0 1.371 JCC,7,(1986),230; ADE,GUA
--CK-NB 529.0 1.304 JCC,7,(1986),230; ADE,GUA
--CM-CM 549.0 1.350 JCC,7,(1986),230; CYT,THY,URA
--CM-CT 317.0 1.510 JCC,7,(1986),230; THY
--CM-HA 367.0 1.080 changed from 340. bsd on C6H6 nmodes; CYT,URA
--CM-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes; CYT,URA
--CM-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes; not assigned
--CM-N* 448.0 1.365 JCC,7,(1986),230; CYT,THY,URA
--CM-OS 480.0 1.240 Junmei et al, 1999
--CQ-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes; ADE
--CQ-NC 502.0 1.324 JCC,7,(1986),230; ADE
--CT-CT 310.0 1.526 JCC,7,(1986),230; AA, SUGARS
--CT-HC 340.0 1.090 changed from 331 bsd on NMA nmodes; AA, SUGARS
--CT-H0 340.0 1.090 changed from 331 bsd on NMA nmodes; AA, RIBOSE
--CT-H1 340.0 1.090 changed from 331 bsd on NMA nmodes; AA, RIBOSE
--CT-H2 340.0 1.090 changed from 331 bsd on NMA nmodes; SUGARS
--CT-H3 340.0 1.090 changed from 331 bsd on NMA nmodes; not assigned
--CT-HP 340.0 1.090 changed from 331; AA-lysine, methyl ammonium cation
--CT-N* 337.0 1.475 JCC,7,(1986),230; ADE,CYT,GUA,THY,URA
--CT-N2 337.0 1.463 JCC,7,(1986),230; ARG
--CT-OH 320.0 1.410 JCC,7,(1986),230; SUGARS
--CT-OS 320.0 1.410 JCC,7,(1986),230; NUCLEIC ACIDS
--C*-HC 367.0 1.080 changed from 340. bsd on C6H6 nmodes, not needed AA
--C*-CB 388.0 1.459 JCC,7,(1986),230; TRP
--C*-CT 317.0 1.495 JCC,7,(1986),230; TRP
--C*-CW 546.0 1.352 JCC,7,(1986),230; TRP
--CB-CN 447.0 1.419 JCC,7,(1986),230; TRP
--CC-CT 317.0 1.504 JCC,7,(1986),230; HIS
--CC-CV 512.0 1.375 JCC,7,(1986),230; HIS(delta)
--CC-CW 518.0 1.371 JCC,7,(1986),230; HIS(epsilon)
--CC-NA 422.0 1.385 JCC,7,(1986),230; HIS
--CC-NB 410.0 1.394 JCC,7,(1986),230; HIS
--CN-NA 428.0 1.380 JCC,7,(1986),230; TRP
--CR-H5 367.0 1.080 changed from 340. bsd on C6H6 nmodes;HIS
--CR-NA 477.0 1.343 JCC,7,(1986),230; HIS
--CR-NB 488.0 1.335 JCC,7,(1986),230; HIS
--CT-N 337.0 1.449 JCC,7,(1986),230; AA
--CT-N3 367.0 1.471 JCC,7,(1986),230; LYS
--CT-NT 367.0 1.471 for neutral amines
--CT-S 227.0 1.810 changed from 222.0 based on dimethylS nmodes
--CT-SH 237.0 1.810 changed from 222.0 based on methanethiol nmodes
--CT-CY 400.0 1.458 Howard et al JCC.16,243,1995
--CT-CZ 400.0 1.459 Howard et al JCC,16,243,1995
--CV-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes; HIS
--CV-NB 410.0 1.394 JCC,7,(1986),230; HIS
--CW-H4 367.0 1.080 changed from 340. bsd on C6H6 nmodes;HIS(epsilon,+)
--CW-NA 427.0 1.381 JCC,7,(1986),230; HIS,TRP
--CY-NY 600.0 1.150 Howard et al JCC,16,243,1995
--CZ-CZ 600.0 1.206 Howard et al JCC,16,243,1995
--CZ-HZ 400.0 1.056 Howard et al JCC,16,243,1995
--O2-P 525.0 1.480 JCC,7,(1986),230; NA PHOSPHATES
--OH-P 230.0 1.610 JCC,7,(1986),230; NA PHOSPHATES
--OS-P 230.0 1.610 JCC,7,(1986),230; NA PHOSPHATES
--H -N2 434.0 1.010 JCC,7,(1986),230; ADE,CYT,GUA,ARG
--H -N* 434.0 1.010 for plain unmethylated bases ADE,CYT,GUA,ARG
--H -NA 434.0 1.010 JCC,7,(1986),230; GUA,URA,HIS
--H -N 434.0 1.010 JCC,7,(1986),230; AA
--H -N3 434.0 1.010 JCC,7,(1986),230; LYS
--H -NT 434.0 1.010 for neutral amines
--HO-OH 553.0 0.960 JCC,7,(1986),230; SUGARS,SER,TYR
--HO-OS 553.0 0.960 JCC,7,(1986),230; NUCLEOTIDE ENDS
--HS-SH 274.0 1.336 JCC,7,(1986),230; CYS
--S -S 166.0 2.038 JCC,7,(1986),230; CYX (SCHERAGA)
--F -CT 367.0 1.380 JCC,13,(1992),963;CF4; R0=1.332 FOR CHF3
--Cl-CT 232.0 1.766 6-31g* opt
--Br-CT 159.0 1.944 Junmei et al,99
--I -CT 148.0 2.166 Junmei et al,99
--F -CA 386.0 1.359 Junmei et al,99
--Cl-CA 193.0 1.727 Junmei et al,99
--I -CA 171.0 2.075 Junmei et al,99
--Br-CA 172.0 1.890 Junmei et al,99
--LP-O 600.0 0.200 or 0.35
--LP-OH 600.0 0.200 or 0.35
--LP-OS 600.0 0.200 or 0.35
--LP-N3 600.0 0.200 or 0.35
--LP-NT 600.0 0.200 or 0.35
--LP-NB 600.0 0.200 or 0.35 histidines, nucleic acids
--LP-NC 600.0 0.200 or 0.35 nucleic acids
--LP-S 600.0 0.700 cys,cyx,met
--LP-SH 600.0 0.700 cys,cyx
--
--HW-OW-HW 100. 104.52 TIP3P water
--HW-HW-OW 0. 127.74 (found in crystallographic water with 3 bonds)
--C -C -O 80.0 120.00 Junmei et al, 1999 acrolein
--C -C -OH 80.0 120.00 Junmei et al, 1999
--CA-C -CA 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes; AA
--CA-C -OH 70.0 120.00 AA (not used in tyr)
--CB-C -NA 70.0 111.30 NA
--CB-C -O 80.0 128.80
--CM-C -NA 70.0 114.10
--CM-C -O 80.0 125.30
--CT-C -O 80.0 120.40
--CT-C -O2 70.0 117.00
--CT-C -N 70.0 116.60 AA general
--CT-C -CT 63.0 117.00 Junmei et al, 1999
--CT-C -OS 80.0 115.00 Junmei et al, 1999
--CT-C -OH 80.0 110.00 Junmei et al, 1999
--N*-C -NA 70.0 115.40
--N*-C -NC 70.0 118.60
--N*-C -O 80.0 120.90
--NA-C -O 80.0 120.60
--NC-C -O 80.0 122.50
--N -C -O 80.0 122.90 AA general
--O -C -O 80.0 126.00 AA COO- terminal residues
--O -C -OH 80.0 120.00 (check with Junmei for: theta0:120.0?)
--O -C -OS 80.0 125.00 Junmei et al, 1999
--O2-C -O2 80.0 126.00 AA GLU (SCH JPC 79,2379)
--H4-C -C 50.0 120.00 Junmei et al, 1999
--H4-C -CM 50.0 115.00 Junmei et al, 1999
--H4-C -CT 50.0 115.00 Junmei et al, 1999
--H4-C -O 50.0 120.00 Junmei et al, 1999
--H4-C -OH 50.0 120.00 Junmei et al, 1999
--H5-C -N 50.0 120.00 Junmei et al, 1999
--H5-C -O 50.0 119.00 Junmei et al, 1999
--H5-C -OH 50.0 107.00 Junmei et al, 1999
--H5-C -OS 50.0 107.00 Junmei et al, 1999
--C -CA-CA 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes
--C -CA-HA 50.0 120.00 AA (not used in tyr)
--CA-CA-CA 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes
--CA-CA-CB 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes
--CA-CA-CT 70.0 120.00
--CA-CA-HA 50.0 120.00
--CA-CA-H4 50.0 120.00
--CA-CA-OH 70.0 120.00 replacement in tyr
--CA-CA-CN 63.0 120.00 changed from 85.0 bsd on C6H6 nmodes; AA trp
--CB-CA-HA 50.0 120.00
--CB-CA-H4 50.0 120.00
--CB-CA-N2 70.0 123.50
--CB-CA-NC 70.0 117.30
--CM-CA-N2 70.0 120.10
--CM-CA-NC 70.0 121.50
--CN-CA-HA 50.0 120.00 AA trp
--NA-CA-NC 70.0 123.30
--N2-CA-NA 70.0 116.00
--N2-CA-NC 70.0 119.30
--N2-CA-N2 70.0 120.00 AA arg
--F -CA-CA 70.0 121.00 Junmei et al,99
--Cl-CA-CA 70.0 118.80 Junmei et al,99
--Br-CA-CA 70.0 118.80 Junmei et al,99
--I -CA-CA 70.0 118.80 Junmei et al,99
--C -CB-CB 63.0 119.20 changed from 85.0 bsd on C6H6 nmodes; NA gua
--C -CB-NB 70.0 130.00
--CA-CB-CB 63.0 117.30 changed from 85.0 bsd on C6H6 nmodes; NA ade
--CA-CB-NB 70.0 132.40
--CB-CB-N* 70.0 106.20
--CB-CB-NB 70.0 110.40
--CB-CB-NC 70.0 127.70
--C*-CB-CA 63.0 134.90 changed from 85.0 bsd on C6H6 nmodes; AA trp
--C*-CB-CN 63.0 108.80 changed from 85.0 bsd on C6H6 nmodes; AA trp
--CA-CB-CN 63.0 116.20 changed from 85.0 bsd on C6H6 nmodes; AA trp
--N*-CB-NC 70.0 126.20
--CD-CD-CM 63.0 120.00 Junmei et al, 1999
--CD-CD-CT 70.0 120.00 Junmei et al, 1999
--CM-CD-CT 70.0 120.00 Junmei et al, 1999
--HA-CD-HA 35.0 119.00 Junmei et al, 1999
--HA-CD-CD 50.0 120.00 Junmei et al, 1999
--HA-CD-CM 50.0 120.00 Junmei et al, 1999
--H5-CK-N* 50.0 123.05
--H5-CK-NB 50.0 123.05
--N*-CK-NB 70.0 113.90
--C -CM-CM 63.0 120.70 changed from 85.0 bsd on C6H6 nmodes; NA thy
--C -CM-CT 70.0 119.70
--C -CM-HA 50.0 119.70
--C -CM-H4 50.0 119.70
--CA-CM-CM 63.0 117.00 changed from 85.0 bsd on C6H6 nmodes; NA cyt
--CA-CM-HA 50.0 123.30
--CA-CM-H4 50.0 123.30
--CM-CM-CT 70.0 119.70
--CM-CM-HA 50.0 119.70
--CM-CM-H4 50.0 119.70
--CM-CM-N* 70.0 121.20
--CM-CM-OS 80.0 125.00 Junmei et al, 1999
--H4-CM-N* 50.0 119.10
--H4-CM-OS 50.0 113.00 Junmei et al, 1999
--HA-CM-HA 35.0 120.00 Junmei et al, 1999
--HA-CM-CD 50.0 120.00 Junmei et al, 1999
--HA-CM-CT 50.0 120.00 Junmei et al, 1999
--NC-CQ-NC 70.0 129.10
--H5-CQ-NC 50.0 115.45
--H0-CT-H0 35.0 109.50
--H0-CT-N 50.0 109.50 AA general changed based on NMA nmodes
--C -CT-H0 50.0 109.50 AA general changed based on NMA nmodes
--H1-CT-H1 35.0 109.50
--H1-CT-N* 50.0 109.50 changed based on NMA nmodes
--H1-CT-OH 50.0 109.50 changed based on NMA nmodes
--H1-CT-OS 50.0 109.50 changed based on NMA nmodes
--H1-CT-CM 50.0 109.50 Junmei et al, 1999
--H1-CT-CY 50.0 110.00 Junmei et al, 1999
--H1-CT-CZ 50.0 110.00 Junmei et al, 1999
--H1-CT-N 50.0 109.50 AA general changed based on NMA nmodes
--H1-CT-S 50.0 109.50 AA cys changed based on NMA nmodes
--H1-CT-SH 50.0 109.50 AA cyx changed based on NMA nmodes
--H1-CT-N2 50.0 109.50 AA arg changed based on NMA nmodes
--H1-CT-NT 50.0 109.50 neutral amines
--H2-CT-H2 35.0 109.50 AA lys
--H2-CT-N* 50.0 109.50 changed based on NMA nmodes
--H2-CT-OS 50.0 109.50 changed based on NMA nmodes
--HP-CT-HP 35.0 109.50 AA lys, ch3nh4+
--HP-CT-N3 50.0 109.50 AA lys, ch3nh3+, changed based on NMA nmodes
--HC-CT-HC 35.0 109.50
--HC-CT-CM 50.0 109.50 changed based on NMA nmodes
--HC-CT-CD 50.0 109.50 Junmei et al, 1999
--HC-CT-CZ 50.0 110.00 Junmei et al, 1999
--C -CT-H1 50.0 109.50 AA general changed based on NMA nmodes
--C -CT-HP 50.0 109.50 AA zwitterion changed based on NMA nmodes
--C -CT-HC 50.0 109.50 AA gln changed based on NMA nmodes
--C -CT-N 63.0 110.10 AA general
--C -CT-N3 80.0 111.20 AA amino terminal residues
--C -CT-CT 63.0 111.10 AA general
--C -CT-OS 60.0 109.50 Junmei et al, 1999
--CA-CT-HC 50.0 109.50 AA tyr changed based on NMA nmodes
--CC-CT-CT 63.0 113.10 AA his
--CC-CT-HC 50.0 109.50 AA his changed based on NMA nmodes
--CM-CT-CT 63.0 111.00 Junmei et al, 1999 (last change: Mar24,99)
--CM-CT-OS 50.0 109.50 Junmei et al, 1999
--CT-CT-CT 40.0 109.50
--CT-CT-HC 50.0 109.50 changed based on NMA nmodes
--CT-CT-H1 50.0 109.50 changed based on NMA nmodes
--CT-CT-H2 50.0 109.50 changed based on NMA nmodes
--CT-CT-HP 50.0 109.50 changed based on NMA nmodes
--CT-CT-N* 50.0 109.50
--CT-CT-OH 50.0 109.50
--CT-CT-OS 50.0 109.50
--CT-CT-S 50.0 114.70 AA cyx (SCHERAGA JPC 79,1428)
--CT-CT-SH 50.0 108.60 AA cys
--CT-CT-CA 63.0 114.00 AA phe tyr (SCH JPC 79,2379)
--CT-CT-N2 80.0 111.20 AA arg (JCP 76, 1439)
--CT-CT-N 80.0 109.70 AA ala, general (JACS 94, 2657)
--CT-CT-N3 80.0 111.20 AA lys (JCP 76, 1439)
--CT-CT-NT 80.0 111.20 neutral amines
--CT-CT-CY 63.0 110.00 Junmei et al, 1999
--CT-CT-CZ 63.0 110.00 Junmei et al, 1999
--C*-CT-CT 63.0 115.60 AA trp
--C*-CT-HC 50.0 109.50 AA trp changed based on NMA nmodes
--OS-CT-OS 160.0 101.00 Junmei et al, 1999
--OS-CT-CY 50.0 110.00 Junmei et al, 1999
--OS-CT-CZ 50.0 110.00 Junmei et al, 1999
--OS-CT-N* 50.0 109.50
--F -CT-F 77.0 109.10 JCC,13,(1992),963;
--F -CT-H1 50.0 109.50 JCC,13,(1992),963;
--F -CT-CT 50.0 109.00
--F -CT-H2 50.0 109.50
--Cl-CT-CT 50.0 108.50 (6-31g* opt value)
--Cl-CT-H1 50.0 108.50 (6-31g* opt value)
--Br-CT-CT 50.0 108.00 Junmei et al 99
--Br-CT-H1 50.0 106.50 Junmei et al 99
--I -CT-CT 50.0 106.00 Junmei et al,99
--CT-CC-NA 70.0 120.00 AA his
--CT-CC-CV 70.0 120.00 AA his
--CT-CC-NB 70.0 120.00 AA his
--CV-CC-NA 70.0 120.00 AA his
--CW-CC-NA 70.0 120.00 AA his
--CW-CC-NB 70.0 120.00 AA his
--CT-CC-CW 70.0 120.00 AA his
--H5-CR-NA 50.0 120.00 AA his
--H5-CR-NB 50.0 120.00 AA his
--NA-CR-NA 70.0 120.00 AA his
--NA-CR-NB 70.0 120.00 AA his
--CC-CV-H4 50.0 120.00 AA his
--CC-CV-NB 70.0 120.00 AA his
--H4-CV-NB 50.0 120.00 AA his
--CC-CW-H4 50.0 120.00 AA his
--CC-CW-NA 70.0 120.00 AA his
--C*-CW-H4 50.0 120.00 AA trp
--C*-CW-NA 70.0 108.70 AA trp
--H4-CW-NA 50.0 120.00 AA his
--CB-C*-CT 70.0 128.60 AA trp
--CB-C*-CW 63.0 106.40 changed from 85.0 bsd on C6H6 nmodes; AA trp
--CT-C*-CW 70.0 125.00 AA trp
--CA-CN-CB 63.0 122.70 changed from 85.0 bsd on C6H6 nmodes; AA trp
--CA-CN-NA 70.0 132.80 AA trp
--CB-CN-NA 70.0 104.40 AA trp
--CT-CY-NY 80.0 180.00 Junmei et al, 1999
--CT-CZ-CZ 80.0 180.00 Junmei et al, 1999
--CZ-CZ-HZ 50.0 180.00 Junmei et al, 1999
--C -N -CT 50.0 121.90 AA general
--C -N -H 50.0 120.00 AA general, gln, asn,changed based on NMA nmodes
--CT-N -H 50.0 118.04 AA general, changed based on NMA nmodes
--CT-N -CT 50.0 118.00 AA pro (DETAR JACS 99,1232)
--H -N -H 35.0 120.00 ade,cyt,gua,gln,asn **
--C -N*-CM 70.0 121.60
--C -N*-CT 70.0 117.60
--C -N*-H 50.0 119.20 changed based on NMA nmodes
--CB-N*-CK 70.0 105.40
--CB-N*-CT 70.0 125.80
--CB-N*-H 50.0 125.80 for unmethylated n.a. bases,chngd bsd NMA nmodes
--CK-N*-CT 70.0 128.80
--CK-N*-H 50.0 128.80 for unmethylated n.a. bases,chngd bsd NMA nmodes
--CM-N*-CT 70.0 121.20
--CM-N*-H 50.0 121.20 for unmethylated n.a. bases,chngd bsd NMA nmodes
--CA-N2-H 50.0 120.00
--CA-N2-CT 50.0 123.20 AA arg
--CT-N2-H 50.0 118.40 AA arg
--H -N2-H 35.0 120.00
--CT-N3-H 50.0 109.50 AA lys, changed based on NMA nmodes
--CT-N3-CT 50.0 109.50 AA pro/nt
--H -N3-H 35.0 109.50 AA lys, AA(end)
--CT-NT-H 50.0 109.50 neutral amines
--CT-NT-CT 50.0 109.50 neutral amines
--H -NT-H 35.0 109.50 neutral amines
--C -NA-C 70.0 126.40
--C -NA-CA 70.0 125.20
--C -NA-H 50.0 116.80 changed based on NMA nmodes
--CA-NA-H 50.0 118.00 changed based on NMA nmodes
--CC-NA-CR 70.0 120.00 AA his
--CC-NA-H 50.0 120.00 AA his, changed based on NMA nmodes
--CR-NA-CW 70.0 120.00 AA his
--CR-NA-H 50.0 120.00 AA his, changed based on NMA nmodes
--CW-NA-H 50.0 120.00 AA his, changed based on NMA nmodes
--CN-NA-CW 70.0 111.60 AA trp
--CN-NA-H 50.0 123.10 AA trp, changed based on NMA nmodes
--CB-NB-CK 70.0 103.80
--CC-NB-CR 70.0 117.00 AA his
--CR-NB-CV 70.0 117.00 AA his
--C -NC-CA 70.0 120.50
--CA-NC-CB 70.0 112.20
--CA-NC-CQ 70.0 118.60
--CB-NC-CQ 70.0 111.00
--C -OH-HO 50.0 113.00 (not used in tyr anymore)
--CA-OH-HO 50.0 113.00 replacement in tyr
--CT-OH-HO 55.0 108.50
--HO-OH-P 45.0 108.50
--C -OS-CT 60.0 117.00 Junmei et al, 1999
--CM-OS-CT 60.0 117.00 Junmei et al, 1999
--CT-OS-CT 60.0 109.50
--CT-OS-P 100.0 120.50
--P -OS-P 100.0 120.50
--O2-P -OH 45.0 108.23
--O2-P -O2 140.0 119.90
--O2-P -OS 100.0 108.23
--OH-P -OS 45.0 102.60
--OS-P -OS 45.0 102.60
--CT-S -CT 62.0 98.90 AA met
--CT-S -S 68.0 103.70 AA cyx (SCHERAGA JPC 79,1428)
--CT-SH-HS 43.0 96.00 changed from 44.0 based on methanethiol nmodes
--HS-SH-HS 35.0 92.07 AA cys
--CB-NB-LP 150.0 126.0 NA
--CC-NB-LP 150.0 126.0 his,NA
--CK-NB-LP 150.0 126.0 NA
--CR-NB-LP 150.0 126.0 his,NA
--CV-NB-LP 150.0 126.0 his,NA
--C -NC-LP 150.0 120.0 NA
--CA-NC-LP 150.0 120.0 NA
--CB-NC-LP 150.0 120.0 NA
--CQ-NC-LP 150.0 120.0 NA
--CT-N3-LP 150.0 109.5 in neutral lysine
--H -N3-LP 150.0 109.5 in neutral lysine
--CT-NT-LP 150.0 109.5
--H -NT-LP 150.0 109.5
--C -O -LP 150.0 120.0
--LP-O -LP 150.0 120.0
--C -OH-LP 150.0 120.0
--CT-OH-LP 150.0 109.5
--HO-OH-LP 150.0 109.5
--LP-OH-LP 150.0 109.5
--C -OS-LP 150.0 109.5
--CM-OS-LP 150.0 109.5 methyl vinyl ether
--CT-OS-LP 150.0 109.5
--LP-OS-LP 150.0 109.5
--CT-S -LP 150.0 90.0 cys,cyx,met
--CT-SH-LP 150.0 90.0 cys,cyx,met
--P -OS-LP 150.0 109.5 NA
--LP-S -LP 150.0 180.0 cys,cyx,met
--LP-SH-LP 150.0 180.0 cys,cyx,met
--HS-SH-LP 150.0 90.0 cys
--
--X -C -C -X 4 14.50 180.0 2. Junmei et al, 1999
--X -C -CA-X 4 14.50 180.0 2. intrpol.bsd.on C6H6
--X -C -CB-X 4 12.00 180.0 2. intrpol.bsd.on C6H6
--X -C -CM-X 4 8.70 180.0 2. intrpol.bsd.on C6H6
--X -C -CT-X 6 0.00 0.0 2. JCC,7,(1986),230
--X -C -N -X 4 10.00 180.0 2. AA,NMA
--X -C -N*-X 4 5.80 180.0 2. JCC,7,(1986),230
--X -C -NA-X 4 5.40 180.0 2. JCC,7,(1986),230
--X -C -NC-X 2 8.00 180.0 2. JCC,7,(1986),230
--X -C -O -X 4 11.20 180.0 2. Junmei et al, 1999
--X -C -OH-X 2 4.60 180.0 2. Junmei et al, 1999
--X -C -OS-X 2 5.40 180.0 2. Junmei et al, 1999
--X -CA-CA-X 4 14.50 180.0 2. intrpol.bsd.on C6H6
--X -CA-CB-X 4 14.00 180.0 2. intrpol.bsd.on C6H6
--X -CA-CM-X 4 10.20 180.0 2. intrpol.bsd.on C6H6
--X -CA-CN-X 4 14.50 180.0 2. reinterpolated 93'
--X -CA-CT-X 6 0.00 0.0 2. JCC,7,(1986),230
--X -CA-N2-X 4 9.60 180.0 2. reinterpolated 93'
--X -CA-NA-X 4 6.00 180.0 2. JCC,7,(1986),230
--X -CA-NC-X 2 9.60 180.0 2. JCC,7,(1986),230
--X -CA-OH-X 2 1.80 180.0 2. Junmei et al, 99
--X -CB-CB-X 4 21.80 180.0 2. intrpol.bsd.on C6H6
--X -CB-CN-X 4 12.00 180.0 2. reinterpolated 93'
--X -CB-N*-X 4 6.60 180.0 2. JCC,7,(1986),230
--X -CB-NB-X 2 5.10 180.0 2. JCC,7,(1986),230
--X -CB-NC-X 2 8.30 180.0 2. JCC,7,(1986),230
--X -CC-CT-X 6 0.00 0.0 2. JCC,7,(1986),230
--X -CC-CV-X 4 20.60 180.0 2. intrpol.bsd.on C6H6
--X -CC-CW-X 4 21.50 180.0 2. intrpol.bsd.on C6H6
--X -CC-NA-X 4 5.60 180.0 2. JCC,7,(1986),230
--X -CC-NB-X 2 4.80 180.0 2. JCC,7,(1986),230
--X -CD-CD-X 4 4.00 180.0 2. Junmei et al, 1999
--X -CD-CT-X 6 0.00 0.0 2. Junmei et al, 1999
--X -CD-CM-X 4 26.60 180.0 2. Junmei et al, 1999
--X -CK-N*-X 4 6.80 180.0 2. JCC,7,(1986),230
--X -CK-NB-X 2 20.00 180.0 2. JCC,7,(1986),230
--X -CM-CM-X 4 26.60 180.0 2. intrpol.bsd.on C6H6
--X -CM-CT-X 6 0.00 0.0 3. JCC,7,(1986),230
--X -CM-N*-X 4 7.40 180.0 2. JCC,7,(1986),230
--X -CM-OS-X 2 2.10 180.0 2. Junmei et al, 1999
--X -CN-NA-X 4 6.10 180.0 2. reinterpolated 93'
--X -CQ-NC-X 2 13.60 180.0 2. JCC,7,(1986),230
--X -CT-CT-X 9 1.40 0.0 3. JCC,7,(1986),230
--X -CT-CY-X 3 0.00 0.0 1. Junmei et al, 1999
--X -CT-CZ-X 3 0.00 0.0 1. Junmei et al, 1999
--X -CT-N -X 6 0.00 0.0 2. JCC,7,(1986),230
--X -CT-N*-X 6 0.00 0.0 2. JCC,7,(1986),230
--X -CT-N2-X 6 0.00 0.0 3. JCC,7,(1986),230
--X -CT-NT-X 6 1.80 0.0 3. Junmei et al, 1999
--X -CT-N3-X 9 1.40 0.0 3. JCC,7,(1986),230
--X -CT-OH-X 3 0.50 0.0 3. JCC,7,(1986),230
--X -CT-OS-X 3 1.15 0.0 3. JCC,7,(1986),230
--X -CT-S -X 3 1.00 0.0 3. JCC,7,(1986),230
--X -CT-SH-X 3 0.75 0.0 3. JCC,7,(1986),230
--X -C*-CB-X 4 6.70 180.0 2. intrpol.bsd.onC6H6aa
--X -C*-CT-X 6 0.00 0.0 2. JCC,7,(1986),230
--X -C*-CW-X 4 26.10 180.0 2. intrpol.bsd.on C6H6
--X -CR-NA-X 4 9.30 180.0 2. JCC,7,(1986),230
--X -CR-NB-X 2 10.00 180.0 2. JCC,7,(1986),230
--X -CV-NB-X 2 4.80 180.0 2. JCC,7,(1986),230
--X -CW-NA-X 4 6.00 180.0 2. JCC,7,(1986),230
--X -OH-P -X 3 0.75 0.0 3. JCC,7,(1986),230
--X -OS-P -X 3 0.75 0.0 3. JCC,7,(1986),230
--N -CT-C -N 1 1.700 180.000 -1.
--N -CT-C -N 1 2.000 180.000 2.
--C -N -CT-C 1 0.850 180.000 -2.
--C -N -CT-C 1 0.800 0.000 1.
--CT-CT-N -C 1 0.50 180.0 -4. phi,psi,parm94
--CT-CT-N -C 1 0.15 180.0 -3. phi,psi,parm94
--CT-CT-N -C 1 0.00 0.0 -2. JCC,7,(1986),230
--CT-CT-N -C 1 0.53 0.0 1. phi,psi,parm94
--CT-CT-C -N 1 0.100 0.0 -4. phi,psi,parm94
--CT-CT-C -N 1 0.07 0.0 2. phi,psi,parm94
--H -N -C -O 1 2.50 180.0 -2. JCC,7,(1986),230
--H -N -C -O 1 2.00 0.0 1. J.C.cistrans-NMA DE
--CT-S -S -CT 1 3.50 0.0 -2. JCC,7,(1986),230
--CT-S -S -CT 1 0.60 0.0 3. JCC,7,(1986),230
--OH-P -OS-CT 1 0.25 0.0 -3. JCC,7,(1986),230
--OH-P -OS-CT 1 1.20 0.0 2. gg> ene.631g*/mp2
--OS-P -OS-CT 1 0.25 0.0 -3. JCC,7,(1986),230
--OS-P -OS-CT 1 1.20 0.0 2. gg> ene.631g*/mp2
--H1-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999
--H1-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
--H1-CT-C -O 1 0.08 180.0 3. Junmei et al, 1999
--HC-CT-C -O 1 0.80 0.0 -1. Junmei et al, 1999
--HC-CT-C -O 1 0.00 0.0 -2. Explicit of wild card X-C-CT-X
--HC-CT-C -O 1 0.08 180.0 3. Junmei et al, 1999
--HC-CT-CT-HC 1 0.15 0.0 3. Junmei et al, 1999
--HC-CT-CT-CT 1 0.16 0.0 3. Junmei et al, 1999
--HC-CT-CM-CM 1 0.38 180.0 -3. Junmei et al, 1999
--HC-CT-CM-CM 1 1.15 0.0 1. Junmei et al, 1999
--HO-OH-CT-CT 1 0.16 0.0 -3. Junmei et al, 1999
--HO-OH-CT-CT 1 0.25 0.0 1. Junmei et al, 1999
--HO-OH-C -O 1 2.30 180.0 -2. Junmei et al, 1999
--HO-OH-C -O 1 0.00 0.0 1. Junmei et al, 2011, actyle acid density optimization
--CM-CM-C -O 1 2.175 180.0 -2. Junmei et al, 1999
--CM-CM-C -O 1 0.30 0.0 3. Junmei et al, 1999
--CT-CM-CM-CT 1 6.65 180.0 -2. Junmei et al, 1999
--CT-CM-CM-CT 1 1.90 180.0 1. Junmei et al, 1999
--CT-CT-CT-CT 1 0.18 0.0 -3. Junmei et al, 1999
--CT-CT-CT-CT 1 0.25 180.0 -2. Junmei et al, 1999
--CT-CT-CT-CT 1 0.20 180.0 1. Junmei et al, 1999
--CT-CT-NT-CT 1 0.30 0.0 -3. Junmei et al, 1999
--CT-CT-NT-CT 1 0.48 180.0 2. Junmei et al, 1999
--CT-CT-OS-CT 1 0.383 0.0 -3.
--CT-CT-OS-CT 1 0.1 180.0 2.
--CT-CT-OS-C 1 0.383 0.0 -3. Junmei et al, 1999
--CT-CT-OS-C 1 0.80 180.0 1. Junmei et al, 1999
--CT-OS-CT-OS 1 0.10 0.0 -3. Junmei et al, 1999
--CT-OS-CT-OS 1 0.85 180.0 -2. Junmei et al, 1999
--CT-OS-CT-OS 1 1.35 180.0 1. Junmei et al, 1999
--CT-OS-CT-N* 1 0.383 0.0 -3. parm98.dat, TC,PC,PAK
--CT-OS-CT-N* 1 0.65 0.0 2. Piotr et al.
--CT-CZ-CZ-HZ 1 0.00 0.0 1. Junmei et al, 1999
--O -C -OS-CT 1 2.70 180.0 -2. Junmei et al, 1999
--O -C -OS-CT 1 1.40 180.0 1. Junmei et al, 1999
--OS-CT-N*-CK 1 0.00 000.0 -2. parm98, TC,PC,PAK
--OS-CT-N*-CK 1 2.50 0.0 1. parm98, TC,PC,PAK
--OS-CT-N*-CM 1 0.00 000.0 -2. parm98, TC,PC,PAK
--OS-CT-N*-CM 1 2.50 0.0 1. parm98, TC,PC,PAK
--OS-CT-CT-OS 1 0.144 0.0 -3. parm98, TC,PC,PAK
--OS-CT-CT-OS 1 1.175 0.0 2. Piotr et al.
--OS-CT-CT-OH 1 0.144 0.0 -3. parm98, TC,PC,PAK
--OS-CT-CT-OH 1 1.175 0.0 2. parm98, TC,PC,PAK
--OH-CT-CT-OH 1 0.144 0.0 -3. parm98, TC,PC,PAK
--OH-CT-CT-OH 1 1.175 0.0 2. parm98, TC,PC,PAK
--F -CT-CT-F 1 0.000 0.0 -3. JCC,7,(1986),230
--F -CT-CT-F 1 1.20 180.0 1. Junmei et al, 1999
--Cl-CT-CT-Cl 1 0.000 0.0 -3. JCC,7,(1986),230
--Cl-CT-CT-Cl 1 0.45 180.0 1. Junmei et al, 1999
--Br-CT-CT-Br 1 0.000 0.0 -3. JCC,7,(1986),230
--Br-CT-CT-Br 1 0.00 180.0 1. Junmei et al, 1999
--H1-CT-CT-OS 1 0.000 0.0 -3. JCC,7,(1986),230
--H1-CT-CT-OS 1 0.25 0.0 1. Junmei et al, 1999
--H1-CT-CT-OH 1 0.000 0.0 -3. JCC,7,(1986),230
--H1-CT-CT-OH 1 0.25 0.0 1. Junmei et al, 1999
--H1-CT-CT-F 1 0.000 0.0 -3. JCC,7,(1986),230
--H1-CT-CT-F 1 0.19 0.0 1. Junmei et al, 1999
--H1-CT-CT-Cl 1 0.000 0.0 -3. JCC,7,(1986),230
--H1-CT-CT-Cl 1 0.25 0.0 1. Junmei et al, 1999
--H1-CT-CT-Br 1 0.000 0.0 -3. JCC,7,(1986),230
--H1-CT-CT-Br 1 0.55 0.0 1. Junmei et al, 1999
--HC-CT-CT-OS 1 0.000 0.0 -3. JCC,7,(1986),230
--HC-CT-CT-OS 1 0.25 0.0 1. Junmei et al, 1999
--HC-CT-CT-OH 1 0.000 0.0 -3. JCC,7,(1986),230
--HC-CT-CT-OH 1 0.25 0.0 1. Junmei et al, 1999
--HC-CT-CT-F 1 0.000 0.0 -3. JCC,7,(1986),230
--HC-CT-CT-F 1 0.19 0.0 1. Junmei et al, 1999
--HC-CT-CT-Cl 1 0.000 0.0 -3. JCC,7,(1986),230
--HC-CT-CT-Cl 1 0.25 0.0 1. Junmei et al, 1999
--HC-CT-CT-Br 1 0.000 0.0 -3. JCC,7,(1986),230
--HC-CT-CT-Br 1 0.55 0.0 1. Junmei et al, 1999
--H1-CT-NT-LP 1 0.000 0.000 3.
--CT-CT-NT-LP 1 0.000 0.000 3.
--CT-C -N -LP 1 0.000 180.000 2.
--O -C -N -LP 1 0.000 180.000 2.
--H1-CT-OH-LP 1 0.000 0.000 3.
--CT-CT-OH-LP 1 0.000 0.000 3.
--H1-CT-OS-LP 1 0.000 0.000 3.
--H2-CT-OS-LP 1 0.000 0.000 3.
--CT-CT-OS-LP 1 0.000 0.000 3.
--CM-CM-OS-LP 1 0.000 180.000 2.
--HA-CM-OS-LP 1 0.000 180.000 2.
--H4-CM-OS-LP 1 0.000 180.000 2.
--
--X -X -C -O 10.5 180. 2. JCC,7,(1986),230
--X -O2-C -O2 10.5 180. 2. JCC,7,(1986),230
--X -X -N -H 1.0 180. 2. JCC,7,(1986),230
--X -X -N2-H 1.0 180. 2. JCC,7,(1986),230
--X -X -NA-H 1.0 180. 2. JCC,7,(1986),230
--X -N2-CA-N2 10.5 180. 2. JCC,7,(1986),230
--X -CT-N -CT 1.0 180. 2. JCC,7,(1986),230
--X -X -CA-HA 1.1 180. 2. bsd.on C6H6 nmodes
--X -X -CW-H4 1.1 180. 2.
--X -X -CR-H5 1.1 180. 2.
--X -X -CV-H4 1.1 180. 2.
--X -X -CQ-H5 1.1 180. 2.
--X -X -CK-H5 1.1 180. 2.
--X -X -CM-H4 1.1 180. 2.
--X -X -CM-HA 1.1 180. 2.
--X -X -CA-H4 1.1 180. 2. bsd.on C6H6 nmodes
--X -X -CA-H5 1.1 180. 2. bsd.on C6H6 nmodes
--CB-CK-N*-CT 1.0 180. 2.
--C -CM-N*-CT 1.0 180. 2. dac guess, 9/94
--C -CM-CM-CT 1.1 180. 2.
--CT-O -C -OH 10.5 180. 2.
--CT-CV-CC-NA 1.1 180. 2.
--CT-CW-CC-NB 1.1 180. 2.
--CT-CW-CC-NA 1.1 180. 2.
--CB-CT-C*-CW 1.1 180. 2.
--CA-CA-CA-CT 1.1 180. 2.
--C -CM-CM-CT 1.1 180. 2. dac guess, 9/94
--CM-N2-CA-NC 1.1 180. 2. dac guess, 9/94
--CB-N2-CA-NC 1.1 180. 2. dac, 10/94
--N2-NA-CA-NC 1.1 180. 2. dac, 10/94
--CA-CA-C -OH 1.1 180. 2. (not used in tyr!)
--CA-CA-CA-OH 1.1 180. 2. in tyr
--H5-O -C -OH 1.1 180. 2. Junmei et al.1999
--H5-O -C -OS 1.1 180. 2.
--CM-CT-CM-HA 1.1 180. 2. Junmei et al.1999
--Br-CA-CA-CA 1.1 180. 2. Junmei et al.1999
--CM-H4-C -O 1.1 180. 2. Junmei et al.1999
--C -CT-N -H 1.1 180. 2. Junmei et al.1999
--C -CT-N -O 1.1 180. 2. Junmei et al.1999
--
-- HW OW 0000. 0000. 4. flag for fast water
--
--N NA N2 N* NC NB NY
--C* CA CB CC CD CK CM CN CQ CR CV CW CZ
--
--MOD4 RE
-- H 0.9000 0.0008 Junmei optimization
-- HO 0.6000 0.0000 Junmei optimization
-- HS 0.6000 0.0157 Junmei optimization
-- HC 1.3992 0.0326 Junmei optimization
-- H0 1.2992 0.0326 Junmei optimization
-- H1 1.2992 0.0326 Junmei optimization
-- H2 1.1992 0.0326 Junmei optimization
-- H3 1.0992 0.0326 Junmei optimization
-- H4 1.5424 0.0052 Junmei optimization
-- H5 1.4924 0.0052 Junmei optimization
-- HA 1.5924 0.0052 Junmei optimization
-- HP 0.9000 0.0008 Junmei optimization
-- HZ 1.4590 0.0150 H bonded to sp C (Howard et al JCC 16)
-- HW 0.0000 0.0000 TIP3P, POL3, SPC/E water models
-- OW 1.7980 0.1560 POL3 water model
-- O 1.6582 0.2146 Junmei optimization
-- OH 1.7895 0.0752 Junmei optimization
-- O2 1.4062 1.3962 Junmei optimization
-- OS 1.7127 0.1385 Junmei optimization
-- C 2.1034 0.0267 Junmei optimization
-- C2 1.8446 0.1290 Junmei optimization
-- CY 1.9295 0.1836 Junmei optimization
-- CT 2.0242 0.0538 Junmei optimization
-- C* 1.8738 0.1068 Junmei optimization
-- N 1.8714 0.1312 Junmei optimization
-- NT 1.9500 0.0450 Junmei optimization
-- N3 1.9500 0.0450 Junmei optimization
-- S 1.9980 0.2530 Junmei optimization
-- SH 1.9980 0.2530 Junmei optimization
-- P 2.1000 0.2000 JCC,7,(1986),230;
-- IM 2.47 0.1 Cl- Smith & Dang, JCP 1994,100:5,3757
-- Li 1.1370 0.0183 Li+ Aqvist JPC 1990,94,8021. (adapted)
-- IP 1.8680 0.00277 Na+ Aqvist JPC 1990,94,8021. (adapted)
-- Na 1.8680 0.00277 Na+ Aqvist JPC 1990,94,8021. (adapted)
-- K 2.6580 0.000328 K+ Aqvist JPC 1990,94,8021. (adapted)
-- Rb 2.9560 0.00017 Rb+ Aqvist JPC 1990,94,8021. (adapted)
-- Cs 3.3950 0.0000806 Cs+ Aqvist JPC 1990,94,8021. (adapted)
-- MG 0.7926 0.8947 Mg2+ Aqvist JPC 1990,94,8021.(adapted)
-- C0 1.7131 0.459789 Ca2+ Aqvist JPC 1990,94,8021.(adapted)
-- Zn 1.10 0.0125 Zn2+, Merz,PAK, JACS,113,8262,(1991)
-- F 1.75 0.061 Gough et al. JCC 13,(1992),963.
-- Cl 1.948 0.265 Fox, JPCB,102,8070,(98),flex.mdl CHCl3
-- Br 2.22 0.320 Junmei(?)
-- I 2.35 0.40 JCC,7,(1986),230;
-- IB 5.0 0.1 solvated ion for vacuum approximation
-- LP 0.00 0.0000 lone pair
--
--END
--
--
--####################################################
--Polarizabilities:
--Mg2+ 0.120
--F- 0.9743
--
--
--additional parameters of LP
--
--H1-CT-NT-LP 1 0.000 0.000 3.000
--CT-CT-NT-LP 1 0.000 0.000 3.000
--CT-C -N -LP 1 0.000 180.000 2.000
--O -C -N -LP 1 0.000 180.000 2.000
--H1-CT-OH-LP 1 0.000 0.000 3.000
--CT-CT-OH-LP 1 0.000 0.000 3.000
--H1-CT-OS-LP 1 0.000 0.000 3.000
--H2-CT-OS-LP 1 0.000 0.000 3.000
--CT-CT-OS-LP 1 0.000 0.000 3.000
--CM-CM-OS-LP 1 0.000 180.000 2.000
--HA-CM-OS-LP 1 0.000 180.000 2.000
--H4-CM-OS-LP 1 0.000 180.000 2.000
--
--
-diff --git a/patch_amber.py b/patch_amber.py
-index 84d90c4..2b5ae7a 100755
---- a/patch_amber.py
-+++ b/patch_amber.py
-@@ -25,7 +25,7 @@ Acknowledgements/Contributions from others
- * Tyler Luchko made helpful contributions to the user-interface
- """
- # Load common os module and package into top level namespace
--from os import path, getenv
-+from os import path, getenv, chmod
-
- # Global variables. Other ones that change less frequently can be found below
- # the Patch class definitions.
-@@ -230,9 +230,11 @@ class Patch(object):
- """
- # This regex matches lines that start like "+++ path/to/file.cpp"
- modfile = re.compile(r'\+\+\+ \.*\/*[\w\-\/\.\+]+[\w\-\.\+]+\.*\w*')
-- selffile = re.compile('\\+\\+\\+ %s' % path.split(sys.argv[0])[1])
-+ selffile = re.compile(r'\+\+\+ %s' % path.split(sys.argv[0])[1])
-+ newfile = re.compile(r'new file mode (\d{3})+')
- patch = open(self.name, 'r')
- files_modified = []
-+ newfile_modes = []
- for line in patch:
- if modfile.match(line):
- filename = modfile.findall(line)[0].strip('+++').strip()
-@@ -247,8 +249,17 @@ class Patch(object):
- elif selffile.match(line):
- filename = path.split(sys.argv[0])[1]
- if not filename in files_modified: files_modified.append(filename)
-+ elif newfile.match(line):
-+ ftmp = newfile.match(line).groups()
-+ if isinstance(ftmp, tuple):
-+ if len(ftmp) == 2:
-+ newfile_modes.append(ftmp[1])
-+ elif len(ftmp) == 1:
-+ newfile_modes.append(ftmp[0])
-+ elif isinstance(ftmp, str):
-+ newfile_modes.append(ftmp)
- patch.close()
-- return files_modified
-+ return files_modified, newfile_modes
-
- #========================================
-
-@@ -331,7 +342,7 @@ class PatchBz2(Patch):
-
- print 'Decompressing %s with %s' % (patch_file, bunzip)
-
-- process = Popen([bunzip, patch_file], stdout=PIPE, stderr=PIPE)
-+ process = Popen([bunzip, '-f', patch_file], stdout=PIPE, stderr=PIPE)
-
- (output, error) = process.communicate('')
-
-@@ -340,8 +351,8 @@ class PatchBz2(Patch):
- patch_file, error))
- sys.exit(1)
-
-- # Get rid of the file extension
-- patch_file = patch_file.strip('.bz2')
-+ # Get rid of the file extension (.bz2)
-+ patch_file = patch_file[:len(patch_file)-4]
- Patch.__init__(self, patch_file)
-
- #~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~
-@@ -370,7 +381,7 @@ class PatchGz(Patch):
-
- print 'Decompressing %s with %s' % (patch_file, gunzip)
-
-- process = Popen([gunzip, patch_file], stdout=PIPE, stderr=PIPE)
-+ process = Popen([gunzip, '-f', patch_file], stdout=PIPE, stderr=PIPE)
-
- (output, error) = process.communicate('')
-
-@@ -379,14 +390,14 @@ class PatchGz(Patch):
- patch_file, error))
- sys.exit(1)
-
-- # Get rid of the file extension
-- patch_file = patch_file.strip('.gz')
-+ # Get rid of the file extension (.gz)
-+ patch_file = patch_file[:len(patch_file)-3]
- Patch.__init__(self, patch_file)
-
- #~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~+~
-
- # The list of searched suffixes for patch names (ASCII, Bzip2, Gzip)
--patch_suffixes = ('', '.bz2', '.gz')
-+patch_suffixes = ('', '.bz2_', '.gz_')
- # The corresponding classes for each patch suffix listed above IN SAME ORDER
- patch_classes = (Patch, PatchBz2, PatchGz)
- # This is the description printed with the program usage message
-@@ -413,14 +424,18 @@ def download_patch(search_location, patch_number, save_loc):
- if 'timed out' in str(err):
- print >> sys.stderr, 'Timed out connecting to server'
- sys.exit(1)
-- raise err
-+ continue
- # A 404 code means we didn't find it
- if url_patch.getcode() == 404:
- url_patch.close()
- continue
- # Otherwise we found it, so use urlretrieve to download the file
- url_patch.close()
-- local_patch = path.join(save_loc, fixname)
-+ # Hack for compressed patch files
-+ if fixname.endswith('_'):
-+ local_patch = path.join(save_loc, fixname[:len(fixname)-1])
-+ else:
-+ local_patch = path.join(save_loc, fixname)
- print ' Downloading %s' % fixname
- urllib.urlretrieve(search_location + fixname, local_patch)
- # Now that we have the patch file saved, return the appropriate PatchClass
-@@ -484,8 +499,8 @@ def describe_patch(patch, full=True, hide_prefix=True):
- if patch.author(): print ' Author: ', patch.author()
- if patch.date(): print ' Created on: ', patch.date()
- if patch.programs(): print ' Programs fixed: ', ', '.join(patch.programs())
-- if patch.files_edited():
-- print ' Files affected: ', ('\n%19s' % ' ').join(patch.files_edited())
-+ if patch.files_edited()[0]:
-+ print ' Files affected: ', ('\n%19s' % ' ').join(patch.files_edited()[0])
- if full: print '\n', patch.description()
- print ''
-
-@@ -513,18 +528,32 @@ def _files_present(patch):
- return -2: Same as -1, except we also modify this program (as in 2)
- """
-
-- edfiles = patch.files_edited()
-+ edfiles, newmodes = patch.files_edited()
- if not edfiles:
- print >> sys.stderr, ('Fatal Error: The patch "%s" does not edit any ' +
- 'files!') % patch.name
- sys.exit(1)
- fname = edfiles[0]
- ret_code = 1
-+ newfile_count = 0
- if ('src/sander' in fname or 'src/pmemd' in fname) and not path.isdir(
- path.join(getenv('AMBERHOME'), 'src', 'pmemd', 'src')):
- ret_code = 0
- if fname == path.split(sys.argv[0])[1]:
- ret_code = 2
-+ elif not path.exists(path.join(getenv('AMBERHOME'), fname)):
-+ _mkdir(path.join(getenv('AMBERHOME'), path.split(fname)[0]))
-+ print 'Creating file %s' % (path.join(getenv('AMBERHOME'), fname))
-+ tmpfile = open(path.join(getenv('AMBERHOME'), fname), 'w')
-+ tmpfile.close()
-+ try:
-+ print 'Changing mode to %s' % (newmodes[0])
-+ # chmod takes octal numbers, so convert the octal number
-+ chmod(path.join(getenv('AMBERHOME'), fname), int(newmodes[0], 8))
-+ newfile_count += 1
-+ except IndexError:
-+ # If our patch didn't have mode info, don't pitch a fit
-+ pass
- for i in range(1,len(edfiles)):
- fname = edfiles[i]
- # If ret_code is already 1, then our first file matched one we had,
-@@ -544,6 +573,15 @@ def _files_present(patch):
- print 'Creating file %s' % (path.join(getenv('AMBERHOME'), fname))
- tmpfile = open(path.join(getenv('AMBERHOME'), fname), 'w')
- tmpfile.close()
-+ try:
-+ print 'Changing mode to %s' % (newmodes[newfile_count])
-+ # chmod takes octal numbers, so convert the octal number
-+ chmod(path.join(getenv('AMBERHOME'), fname),
-+ int(newmodes[newfile_count], 8))
-+ newfile_count += 1
-+ except IndexError:
-+ # Don't pitch a fit if our patch file didn't have permission info
-+ pass
-
- return ret_code
-
-@@ -775,7 +813,7 @@ if __name__ == '__main__':
- sys.exit(1)
- if opt.apply_patch: single_patch = Patch(opt.apply_patch)
- else: single_patch = Patch(opt.reverse_patch)
-- if not single_patch.files_edited():
-+ if not single_patch.files_edited()[0]:
- print >> sys.stderr, 'Fatal Error: Bad patch. Could not find the ' + \
- 'files that were supposed to be edited!'
- # Print out message based on whether we're applying forward or reverse
diff --git a/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch b/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch
index e52e39d..110343e 100644
--- a/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch
+++ b/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch
@@ -1,3 +1,26 @@
+ AmberTools/src/Makefile | 42 +-
+ AmberTools/src/configure2 | 63 +-
+ AmberTools/src/cpptraj/src/Makefile_at | 14 +-
+ AmberTools/src/mdgx/Makefile | 9 +-
+ AmberTools/src/mdgx/Trajectory.c | 2 +-
+ .../src/mmpbsa_py/MMPBSA_mods/amber_outputs.py | 4 +-
+ AmberTools/src/nab/database.c | 2 +-
+ AmberTools/src/nab/nab.c | 4 +-
+ AmberTools/src/pbsa/Makefile | 44 +-
+ AmberTools/src/ptraj/Makefile | 9 +-
+ AmberTools/src/ptraj/trajectory.c | 2 +-
+ AmberTools/src/sff/Makefile | 4 +-
+ AmberTools/src/sff/dsarpack.f | 654 +++++++++++++++++++++
+ AmberTools/src/sqm/Makefile | 7 +-
+ AmberTools/test/Makefile | 4 +-
+ .../01_Generalized_Born/energies.csv.save | 8 +-
+ AmberTools/test/nab/Makefile | 2 +
+ AmberTools/test/nab/Run.rism_sp | 2 +-
+ AmberTools/test/nab/Run.rism_sp2 | 2 +-
+ AmberTools/test/test_at_serial.sh | 6 +
+ Makefile | 2 +-
+ 21 files changed, 725 insertions(+), 161 deletions(-)
+
diff --git a/AmberTools/src/Makefile b/AmberTools/src/Makefile
index e5c0ded..ce8f883 100644
--- a/AmberTools/src/Makefile
@@ -145,10 +168,10 @@ index e5c0ded..ce8f883 100644
cuda:
@echo "$(AMBERTOOLS) has no CUDA-enabled components"
diff --git a/AmberTools/src/configure2 b/AmberTools/src/configure2
-index 9ce5ef0..8dfcd3e 100755
+index 25d3f0a..1ad86e6 100755
--- a/AmberTools/src/configure2
+++ b/AmberTools/src/configure2
-@@ -389,11 +389,11 @@ omp_flag=
+@@ -387,11 +387,11 @@ omp_flag=
mpi_flag=
lex=flex
flibs_mkl=
@@ -164,7 +187,7 @@ index 9ce5ef0..8dfcd3e 100755
#-----------------------------------
# skip building of xleap?
-@@ -621,13 +621,14 @@ gnu)
+@@ -618,13 +618,14 @@ gnu)
flibs_arch="-lgfortran -w"
flibsf_arch=
cc=gcc
@@ -182,7 +205,7 @@ index 9ce5ef0..8dfcd3e 100755
staticflag='-static'
# If -noopt has been requested, force lack of optimisation;
-@@ -648,11 +649,11 @@ gnu)
+@@ -645,11 +646,11 @@ gnu)
foptflags=""
else
cnooptflags=
@@ -197,7 +220,7 @@ index 9ce5ef0..8dfcd3e 100755
fi
# Debugging options
-@@ -2044,26 +2045,26 @@ EOF
+@@ -2026,26 +2027,26 @@ EOF
if [ "$sse" = "yes" ]; then
enable_sse="--enable-sse2=yes" # --enable-avx=yes"
fi
@@ -243,7 +266,7 @@ index 9ce5ef0..8dfcd3e 100755
fftw3="\$(LIBDIR)/libfftw3.a"
if [ "$mpi" = 'yes' ]; then
flibs_fftw3="-lfftw3_mpi $flibs_fftw3"
-@@ -2300,7 +2301,7 @@ LDFLAGS=$ldflags \$(CUSTOMBUILDFLAGS)
+@@ -2282,7 +2283,7 @@ LDFLAGS=$ldflags \$(CUSTOMBUILDFLAGS)
AMBERLDFLAGS=\$(AMBERBUILDFLAGS)
LEX= $lex
@@ -252,7 +275,7 @@ index 9ce5ef0..8dfcd3e 100755
AR= ar rv
M4= $m4
RANLIB=$ranlib
-@@ -2337,7 +2338,7 @@ CP=$localcp
+@@ -2319,7 +2320,7 @@ CP=$localcp
# Information about Fortran compilation:
FC=$fc
@@ -330,7 +353,7 @@ index 524dad8..5df64c6 100644
coord tc;
diff --git a/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py b/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
-index 0349ba9..c700beb 100644
+index b01b891..24ea20f 100644
--- a/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
+++ b/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
@@ -210,7 +210,7 @@ class AmberOutput(object):
@@ -502,7 +525,7 @@ index 110ffce..49bdf1a 100644
char c;
int j,ret;
diff --git a/AmberTools/src/sff/Makefile b/AmberTools/src/sff/Makefile
-index 83f362c..b1a1b2e 100644
+index 83f362c..13efc78 100644
--- a/AmberTools/src/sff/Makefile
+++ b/AmberTools/src/sff/Makefile
@@ -3,7 +3,7 @@ include ../config.h
@@ -514,9 +537,19 @@ index 83f362c..b1a1b2e 100644
prm.o rand2.o sasad.o sff.o time.o xminC.o AmberNetcdf.o $(SFF_RISM_INTERFACE)
+@@ -63,7 +63,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
-index e69de29..5544df9 100644
---- a/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,
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2015-10-28 9:07 Justin Lecher
0 siblings, 0 replies; 18+ messages in thread
From: Justin Lecher @ 2015-10-28 9:07 UTC (permalink / raw
To: gentoo-commits
commit: f457d5639ad562f52d697a2b33a7474a8c76d0a2
Author: Justin Lecher <jlec <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 28 09:06:45 2015 +0000
Commit: Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Wed Oct 28 09:06:56 2015 +0000
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=f457d563
sci-chemistry/ambertools: Fix for gcc-5 and format-security
Package-Manager: portage-2.2.23
Signed-off-by: Justin Lecher <jlec <AT> gentoo.org>
sci-chemistry/ambertools/ambertools-12_p38.ebuild | 16 ++--
.../files/ambertools-12_p38-format-security.patch | 100 +++++++++++++++++++++
.../ambertools/files/ambertools-12_p38-gcc5.patch | 28 ++++++
3 files changed, 136 insertions(+), 8 deletions(-)
diff --git a/sci-chemistry/ambertools/ambertools-12_p38.ebuild b/sci-chemistry/ambertools/ambertools-12_p38.ebuild
index 812bbdb..1c907c4 100644
--- a/sci-chemistry/ambertools/ambertools-12_p38.ebuild
+++ b/sci-chemistry/ambertools/ambertools-12_p38.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=5
-inherit eutils fortran-2 multilib toolchain-funcs
+inherit eutils fortran-2 multilib multiprocessing toolchain-funcs
DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
HOMEPAGE="http://ambermd.org/#AmberTools"
@@ -54,6 +54,8 @@ pkg_setup() {
src_prepare() {
epatch \
+ "${FILESDIR}"/${P}-gcc5.patch \
+ "${FILESDIR}"/${P}-format-security.patch \
"${FILESDIR}"/${PN}-12-gentoo.patch \
"${WORKDIR}"/bugfixes/bugfix.{14..38}
cd "${S}"/AmberTools/src || die
@@ -69,9 +71,7 @@ src_prepare() {
reduce \
ucpp-1.3 \
|| die
-}
-src_configure() {
cd "${S}"/AmberTools/src || die
sed \
-e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
@@ -94,6 +94,9 @@ src_configure() {
-e "s:arsecond_:arscnd_:g" \
-i sff/time.c sff/sff.h sff/sff.c || die
+}
+
+src_configure() {
local myconf="--no-updates"
use X || myconf="${myconf} -noX11"
@@ -114,10 +117,7 @@ src_configure() {
}
src_test() {
- # Get the number of physical cores
- local ncpus=$(grep "^core id" /proc/cpuinfo | sort -u | wc -l)
- # Limit number of OpenMP threads
- use openmp && export OMP_NUM_THREADS=$((1+${ncpus}/2))
+ use openmp && export OMP_NUM_THREADS=$(makeopts_jobs)
emake test
}
diff --git a/sci-chemistry/ambertools/files/ambertools-12_p38-format-security.patch b/sci-chemistry/ambertools/files/ambertools-12_p38-format-security.patch
new file mode 100644
index 0000000..bb22a62
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-12_p38-format-security.patch
@@ -0,0 +1,100 @@
+ AmberTools/src/mdgx/ChargeFit.c | 4 ++--
+ AmberTools/src/nab/cgen.c | 2 +-
+ AmberTools/src/nab/traceback.c | 2 +-
+ AmberTools/src/ptraj/cluster.c | 2 +-
+ AmberTools/src/ptraj/interface.c | 6 +++---
+ AmberTools/src/semantics/parse.c | 2 +-
+ 6 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/AmberTools/src/mdgx/ChargeFit.c b/AmberTools/src/mdgx/ChargeFit.c
+index fccf5d0..fe4afac 100644
+--- a/AmberTools/src/mdgx/ChargeFit.c
++++ b/AmberTools/src/mdgx/ChargeFit.c
+@@ -77,9 +77,9 @@ static void AssignGridTopologies(fset *myfit, prmtop *tp)
+ }
+ for (i = 0; i < myfit->ngrd; i++) {
+ if (myfit->tpname.map[i][0] == '\0') {
+- sprintf(myfit->tpname.map[i], tp->source);
++ sprintf(myfit->tpname.map[i], "%s", tp->source);
+ if (myfit->eprule.map[i][0] == '\0' && tp->eprulesource[0] != '\0') {
+- sprintf(myfit->eprule.map[i], tp->eprulesource);
++ sprintf(myfit->eprule.map[i], "%s", tp->eprulesource);
+ }
+ }
+ }
+diff --git a/AmberTools/src/nab/cgen.c b/AmberTools/src/nab/cgen.c
+index 6254d44..e206879 100644
+--- a/AmberTools/src/nab/cgen.c
++++ b/AmberTools/src/nab/cgen.c
+@@ -1642,7 +1642,7 @@ static char *CG_gentype( char *csp, NODE_T *npt )
+ strcpy( csp, tname );
+ csp += strlen( csp );
+ }else
+- fprintf( cg_cfp, tname );
++ fprintf( cg_cfp, "%s", tname );
+ needspace = TRUE;
+ return( csp );
+ }
+diff --git a/AmberTools/src/nab/traceback.c b/AmberTools/src/nab/traceback.c
+index f916474..e376552 100644
+--- a/AmberTools/src/nab/traceback.c
++++ b/AmberTools/src/nab/traceback.c
+@@ -6,7 +6,7 @@
+ int rt_errormsg( int fatal, char msg[] )
+ {
+
+- fprintf( stderr, msg );
++ fprintf( stderr, "%s", msg );
+ if( fatal )
+ exit( 1 );
+ return(0);
+diff --git a/AmberTools/src/ptraj/cluster.c b/AmberTools/src/ptraj/cluster.c
+index 2cb60f0..5e0f33d 100644
+--- a/AmberTools/src/ptraj/cluster.c
++++ b/AmberTools/src/ptraj/cluster.c
+@@ -1240,7 +1240,7 @@ void ClusteringMergeNames(PtrajClustering* This, ClusterNode* MergeNodeA, Cluste
+ {
+ return;
+ }
+- sprintf(Temp, ClusterB->Name);
++ sprintf(Temp, "%s", ClusterB->Name);
+ sprintf(ClusterB->Name, "(%s,%s)", ClusterA->Name, Temp);
+
+ }
+diff --git a/AmberTools/src/ptraj/interface.c b/AmberTools/src/ptraj/interface.c
+index 4087fa7..1ee4273 100644
+--- a/AmberTools/src/ptraj/interface.c
++++ b/AmberTools/src/ptraj/interface.c
+@@ -97,8 +97,8 @@ interface(interfaceMode mode, char *filename)
+
+ tokenlist = (Token *) &rdparmTokenlist;
+
+- fprintf(stdout, rdparm_header);
+- fprintf(stdout, rdparm_prompt);
++ fprintf(stdout, "%s", rdparm_header);
++ fprintf(stdout, "%s", rdparm_prompt);
+ while (1) {
+
+ fflush(stdout);
+@@ -112,7 +112,7 @@ interface(interfaceMode mode, char *filename)
+
+ }
+
+- fprintf(stdout, rdparm_prompt);
++ fprintf(stdout, "%s", rdparm_prompt);
+ }
+ }
+ }
+diff --git a/AmberTools/src/semantics/parse.c b/AmberTools/src/semantics/parse.c
+index 55c724c..68f23da 100644
+--- a/AmberTools/src/semantics/parse.c
++++ b/AmberTools/src/semantics/parse.c
+@@ -2039,7 +2039,7 @@ int n_tab;
+ DEF_T tab[];
+ {
+
+- fprintf( fp, oval );
++ fprintf( fp, "%s", oval );
+
+ }
+ \f
diff --git a/sci-chemistry/ambertools/files/ambertools-12_p38-gcc5.patch b/sci-chemistry/ambertools/files/ambertools-12_p38-gcc5.patch
new file mode 100644
index 0000000..92e6495
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-12_p38-gcc5.patch
@@ -0,0 +1,28 @@
+ AmberTools/src/configure2 | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/AmberTools/src/configure2 b/AmberTools/src/configure2
+index 913c50d..1232f6a 100755
+--- a/AmberTools/src/configure2
++++ b/AmberTools/src/configure2
+@@ -703,12 +703,14 @@ gnu)
+ # if gcc <= 4.2, fftw3 is not compiled and pbsa fft solver and rism
+ # are disabled
+ if [ "$rism" != 'no' -o -n "$pbsaflag" ]; then
+- if ( [ $gnu_majorversion -ge 4 ] && [ $gnu_minorversion -le 2 ] ) \
+- || [ $gnu_majorversion -le 3 ]; then
+- echo "ERROR: RISM and PBSA FFT solver require version 4.3 or higher of the GNU compiler."
+- echo " Please re-run configure with the '-nofftw3' flag to use this compiler:"
+- echo " `mod_command_args '-rism' '-nofftw3'`"
+- exit 1
++ if [ $gnu_majorversion -lt 5 ]; then
++ if ( [ $gnu_majorversion -ge 4 ] && [ $gnu_minorversion -le 2 ] ) \
++ || [ $gnu_majorversion -le 3 ]; then
++ echo "ERROR: RISM and PBSA FFT solver require version 4.3 or higher of the GNU compiler."
++ echo " Please re-run configure with the '-nofftw3' flag to use this compiler:"
++ echo " `mod_command_args '-rism' '-nofftw3'`"
++ exit 1
++ fi
+ fi
+ fi
+
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2016-02-19 12:56 Justin Lecher
0 siblings, 0 replies; 18+ messages in thread
From: Justin Lecher @ 2016-02-19 12:56 UTC (permalink / raw
To: gentoo-commits
commit: ff6a64f8cc45313c370860fae925de4f50c2404e
Author: Reinis Danne <rei4dan <AT> gmail <DOT> com>
AuthorDate: Wed Jan 20 21:00:58 2016 +0000
Commit: Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Fri Feb 19 12:55:38 2016 +0000
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=ff6a64f8
sci-chemistry/ambertools: Version bump to 15
sci-chemistry/ambertools/ambertools-15_p6.ebuild | 165 +++
.../ambertools/files/ambertools-15-gentoo.patch | 1441 ++++++++++++++++++++
.../ambertools/files/ambertools-15-update.1.patch | 118 ++
.../ambertools/files/ambertools-15-update.2.patch | 56 +
.../ambertools/files/ambertools-15-update.3.patch | 95 ++
.../ambertools/files/ambertools-15-update.4.patch | 908 ++++++++++++
.../ambertools/files/ambertools-15-update.5.patch | 25 +
.../ambertools/files/ambertools-15-update.6.patch | 59 +
8 files changed, 2867 insertions(+)
diff --git a/sci-chemistry/ambertools/ambertools-15_p6.ebuild b/sci-chemistry/ambertools/ambertools-15_p6.ebuild
new file mode 100644
index 0000000..c3a46c5
--- /dev/null
+++ b/sci-chemistry/ambertools/ambertools-15_p6.ebuild
@@ -0,0 +1,165 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit eutils fortran-2 multilib python-r1 toolchain-funcs
+
+DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
+HOMEPAGE="http://ambermd.org/#AmberTools"
+SRC_URI="
+ AmberTools${PV%_p*}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux"
+IUSE="X"
+
+RESTRICT="fetch"
+
+RDEPEND="${PYTHON_DEPS}
+ virtual/cblas
+ virtual/lapack
+ sci-libs/clapack
+ sci-libs/arpack
+ sci-chemistry/mopac7
+ sci-libs/netcdf
+ sci-libs/netcdf-fortran
+ >=sci-libs/fftw-3.3:3.0
+ sci-chemistry/reduce"
+DEPEND="${RDEPEND}
+ app-shells/tcsh
+ dev-util/byacc
+ dev-libs/libf2c
+ sys-devel/ucpp"
+
+S="${WORKDIR}/amber14"
+
+pkg_nofetch() {
+ einfo "Go to ${HOMEPAGE} and get AmberTools${PV%_p*}.tar.bz2"
+ einfo "Place it into ${DISTDIR}"
+}
+
+pkg_setup() {
+ fortran-2_pkg_setup
+ export AMBERHOME="${S}"
+}
+
+src_prepare() {
+ epatch \
+ "${FILESDIR}"/${PN}-15-gentoo.patch \
+ "${FILESDIR}"/${PN}-15-update.{1..6}.patch
+
+ epatch_user
+
+ cd "${S}"/AmberTools/src || die
+ rm -r \
+ arpack \
+ blas \
+ byacc \
+ lapack \
+ fftw-3.3 \
+ c9x-complex \
+ netcdf-fortran-4.2 \
+ netcdf-4.3.0 \
+ reduce \
+ ucpp-1.3 \
+ || die
+
+ cd "${S}"/AmberTools/src || die
+ sed \
+ -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
+ -e "s:\\\\\$(LIBDIR)/lapack.a:$($(tc-getPKG_CONFIG) lapack --libs) -lclapack:g" \
+ -e "s:-llapack:$($(tc-getPKG_CONFIG) lapack --libs) -lclapack:g" \
+ -e "s:\\\\\$(LIBDIR)/blas.a:$($(tc-getPKG_CONFIG) blas cblas --libs):g" \
+ -e "s:-lblas:$($(tc-getPKG_CONFIG) blas cblas --libs):g" \
+ -e "s:GENTOO_CFLAGS:${CFLAGS}:g" \
+ -e "s:GENTOO_CXXFLAGS:${CXXFLAGS}:g" \
+ -e "s:GENTOO_FFLAGS:${FFLAGS}:g" \
+ -e "s:GENTOO_LDFLAGS:${LDFLAGS}:g" \
+ -e "s:GENTOO_INCLUDE:${EPREFIX}/usr/include:g" \
+ -e "s:GENTOO_FFTW3_LIBS:$($(tc-getPKG_CONFIG) fftw3 --libs):" \
+ -e "s:fc=g77:fc=$(tc-getFC):g" \
+ -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
+ -e "s:\$netcdf_flag:$($(tc-getPKG_CONFIG) netcdf --libs):g" \
+ -e "s:\$netcdfflagc:$($(tc-getPKG_CONFIG) netcdf --libs):g" \
+ -e "s:\$netcdfflagf:$($(tc-getPKG_CONFIG) netcdf-fortran --libs):g" \
+ -i configure2 || die
+
+ sed \
+ -e "s:arsecond_:arscnd_:g" \
+ -i sff/time.c sff/sff.h sff/sff.c || die
+
+}
+
+src_configure() {
+ python_setup
+
+ local myconf="--no-updates"
+
+ use X || myconf="${myconf} -noX11"
+
+ cd "${S}" || die
+
+ sed \
+ -e '/patch_amber.py/d' \
+ -i configure || die
+
+ ./configure \
+ ${myconf} \
+ -nomtkpp \
+ --with-python ${PYTHON} \
+ --with-netcdf /usr \
+ gnu || die
+}
+
+src_test() {
+ source ${AMBERHOME}/amber.sh
+
+ emake test
+}
+
+src_compile() {
+ emake \
+ CC=$(tc-getCC) \
+ FC=$(tc-getFC)
+}
+
+src_install() {
+ for x in bin/*
+ do
+ [ ! -d ${x} ] && dobin ${x}
+ done
+
+ dobin AmberTools/src/antechamber/mopac.sh
+ sed \
+ -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
+ -i "${ED}/usr/bin/mopac.sh" || die
+
+ # Make symlinks untill binpath for amber will be fixed
+ dodir /usr/share/${PN}/bin
+ cd "${ED}/usr/bin" || die
+ for x in *
+ do dosym /usr/bin/${x} ../share/${PN}/bin/${x}
+ done
+ cd "${S}" || die
+
+ dodoc doc/Amber15.pdf
+ dolib.a lib/*{.a,.so}
+ insinto /usr/$(get_libdir)
+ doins -r lib/python2.7
+ insinto /usr/include/${PN}
+ doins include/*
+ insinto /usr/share/${PN}
+ doins -r dat
+ cd AmberTools || die
+ doins -r benchmarks examples test
+
+ cat >> "${T}"/99ambertools <<- EOF
+ AMBERHOME="${EPREFIX}/usr/share/ambertools"
+ EOF
+ doenvd "${T}"/99ambertools
+}
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 0000000..f949a49
--- /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')
diff --git a/sci-chemistry/ambertools/files/ambertools-15-update.1.patch b/sci-chemistry/ambertools/files/ambertools-15-update.1.patch
new file mode 100644
index 0000000..28d25e5
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-15-update.1.patch
@@ -0,0 +1,118 @@
+*******> update.1
+
+Author: Jason Swails
+
+Date: June 1, 2015
+
+Programs: MMPBSA.py, ParmEd, cpptraj
+
+Description: This fixes a number of small issues:
+ 1) Fix Python 2.4 and Python 2.5 support for ParmEd and MMPBSA.py
+ 2) Fix the MMPBSA.py Python API
+ 3) Scale charges correctly for LIE action in cpptraj with non-unity
+ dielectric constant
+
+--------------------------------------------------------------------------------
+
+ AmberTools/src/cpptraj/src/Action_LIE.cpp | 2 +-
+ AmberTools/src/mmpbsa_py/MMPBSA_mods/API.py | 3 ++-
+ AmberTools/src/mmpbsa_py/MMPBSA_mods/infofile.py | 1 +
+ AmberTools/src/parmed/chemistry/__init__.py | 6 +++++-
+ .../test/mmpbsa_py/07_Comprehensive/Run.comprehensive | 18 ++++++++++++++++++
+ 5 files changed, 27 insertions(+), 3 deletions(-)
+
+diff --git AmberTools/src/cpptraj/src/Action_LIE.cpp AmberTools/src/cpptraj/src/Action_LIE.cpp
+index 25825c1..716a04f 100644
+--- AmberTools/src/cpptraj/src/Action_LIE.cpp
++++ AmberTools/src/cpptraj/src/Action_LIE.cpp
+@@ -132,7 +132,7 @@ int Action_LIE::SetupParms(Topology const& ParmIn) {
+ atom_charge_.reserve( ParmIn.Natom() );
+ for (Topology::atom_iterator atom = ParmIn.begin();
+ atom != ParmIn.end(); ++atom)
+- atom_charge_.push_back( atom->Charge() * Constants::ELECTOAMBER / dielc_ );
++ atom_charge_.push_back( atom->Charge() * Constants::ELECTOAMBER / sqrt(dielc_) );
+ return 0;
+ }
+
+diff --git AmberTools/src/mmpbsa_py/MMPBSA_mods/API.py AmberTools/src/mmpbsa_py/MMPBSA_mods/API.py
+index e6c4fe9..d7cc7ec 100644
+--- AmberTools/src/mmpbsa_py/MMPBSA_mods/API.py
++++ AmberTools/src/mmpbsa_py/MMPBSA_mods/API.py
+@@ -63,7 +63,7 @@ class mmpbsa_data(dict):
+ self.stability = app.stability
+ # Now load the data
+ for key in app.calc_types:
+- if key == 'mutant':
++ if key == 'mutant' or key =='qh':
+ has_mutant = True
+ continue
+ self[key] = {}
+@@ -86,6 +86,7 @@ class mmpbsa_data(dict):
+ if has_mutant:
+ self.mutant = {}
+ for key in app.calc_types['mutant']:
++ if key == 'qh': continue
+ self.mutant[key] = {}
+ tmpdict = {}
+ for dkey in app.calc_types['mutant'][key]['complex'].data:
+diff --git AmberTools/src/mmpbsa_py/MMPBSA_mods/infofile.py AmberTools/src/mmpbsa_py/MMPBSA_mods/infofile.py
+index ecdc2f2..ecaa6c1 100644
+--- AmberTools/src/mmpbsa_py/MMPBSA_mods/infofile.py
++++ AmberTools/src/mmpbsa_py/MMPBSA_mods/infofile.py
+@@ -80,6 +80,7 @@ class InfoFile(object):
+ outfile.write('numframes = %d\n' % self.app.numframes)
+ outfile.write('numframes_nmode = %d\n' % self.app.numframes_nmode)
+ outfile.write("mut_str = '%s'\n" % self.app.mut_str)
++ outfile.write('using_chamber = %s\n' % self.app.using_chamber)
+ outfile.write(self.app.input_file_text)
+
+ def read_info(self, name=None):
+diff --git AmberTools/src/parmed/chemistry/__init__.py AmberTools/src/parmed/chemistry/__init__.py
+index 52f5245..544e016 100644
+--- AmberTools/src/parmed/chemistry/__init__.py
++++ AmberTools/src/parmed/chemistry/__init__.py
+@@ -11,10 +11,14 @@ from chemistry.structure import Structure
+ from chemistry.topologyobjects import *
+ from chemistry import unit
+ from chemistry.residue import *
+-from chemistry import amber, charmm, tinker, openmm
++from chemistry import amber, charmm, tinker
+ from chemistry import formats
+ load_file = formats.load_file
+ read_PDB = formats.PDBFile.parse
+ read_CIF = formats.CIFFile.parse
+ write_PDB = formats.PDBFile.write
+ write_CIF = formats.CIFFile.write
++try:
++ from chemistry import openmm
++except ImportError:
++ pass
+diff --git AmberTools/test/mmpbsa_py/07_Comprehensive/Run.comprehensive AmberTools/test/mmpbsa_py/07_Comprehensive/Run.comprehensive
+index 268515e..aa7d9df 100755
+--- AmberTools/test/mmpbsa_py/07_Comprehensive/Run.comprehensive
++++ AmberTools/test/mmpbsa_py/07_Comprehensive/Run.comprehensive
+@@ -108,6 +108,24 @@ if [ -z "$DO_PARALLEL" ]; then
+ ../../dacdif -a 6.0 FINAL_RESULTS_MMPBSA_2.dat.save FINAL_RESULTS_MMPBSA_2.dat
+ fi
+
++# Check the API
++python << EOF
++from __future__ import division
++import MMPBSA_mods.API as API
++
++print('Checking the API')
++try:
++ stuff = API.load_mmpbsa_info('_MMPBSA_info')
++ total_data = stuff['gb']['complex']['TOTAL']
++ if abs((sum(total_data) / len(total_data)) + 466.7565) > 0.0002:
++ print('possible FAILURE')
++ else:
++ print('PASSED')
++except:
++ print('Program error')
++print('==============================================================')
++EOF
++
+ $EXE --clean 2>&1 > /dev/null
+
+ rm -f mmpbsa.in mmpbsa.out FINAL_DECOMP_MMPBSA_2.csv-e FINAL_DECOMP_MMPBSA.dat
diff --git a/sci-chemistry/ambertools/files/ambertools-15-update.2.patch b/sci-chemistry/ambertools/files/ambertools-15-update.2.patch
new file mode 100644
index 0000000..b0f1cd9
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-15-update.2.patch
@@ -0,0 +1,56 @@
+*******> update.2
+
+Author: Jason Swails, Ross Walker
+
+Date: June 2, 2015
+
+Programs: AmberTools, CUDA
+
+Description: Adds support for CUDA 7. Also fixes an erroneous error report when
+ AmberTools is configured for *only* OpenMP, CUDA, or CUDA-MPI with
+ regards to missing Python modules.
+
+--------------------------------------------------------------------------------
+
+ AmberTools/src/configure2 | 4 ++--
+ AmberTools/test/test_check.sh | 7 ++++---
+ 2 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git AmberTools/src/configure2 AmberTools/src/configure2
+index f1a3cff..9a504b1 100755
+--- AmberTools/src/configure2
++++ AmberTools/src/configure2
+@@ -861,13 +861,13 @@ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPXP" = 'yes' -o "$cuda_DPFP" = 'yes' ]; the
+ echo "CUDA Version $cudaversion detected"
+ echo "Configuring for SM2.0 and SM3.0 - warning does not support Maxwell (GM200/GM204) cards [e.g. GTX970/980]"
+ nvccflags="$sm20flags $sm30flags"
+- elif [ "$cudaversion" = "6.5" ]; then
++ elif [ "$cudaversion" = "6.5" -o "$cudaversion" = "7.0" ]; then
+ echo "CUDA Version $cudaversion detected"
+ echo "Configuring for SM2.0, SM3.0 and SM5.0"
+ nvccflags="$sm20flags $sm30flags $sm50flags"
+ else
+ echo "Error: Unsupported CUDA version $cudaversion detected."
+- echo " AMBER requires CUDA version == 5.0 .or. 5.5 .or. 6.0 .or. 6.5"
++ echo " AMBER requires CUDA version == 5.0 .or. 5.5 .or. 6.0 .or. 6.5 .or. 7.0"
+ exit 1
+ fi
+ nvcc="$nvcc $nvccflags"
+diff --git AmberTools/test/test_check.sh AmberTools/test/test_check.sh
+index 108c446..a5399d8 100644
+--- AmberTools/test/test_check.sh
++++ AmberTools/test/test_check.sh
+@@ -83,9 +83,10 @@ def error():
+ try:
+ import chemistry
+ except ImportError:
+- sys.stderr.write('Could not import Amber Python modules. This likely means\\n'
+- 'that your Amber Python environment was not set up correctly\\n\\n')
+- error()
++ if os.path.exists(os.path.join(ambhome, 'parmed.py')):
++ sys.stderr.write('Could not import Amber Python modules. This likely means\\n'
++ 'that your Amber Python environment was not set up correctly\\n\\n')
++ error()
+
+ if 'darwin' in sys.platform:
+ sys.exit(0) # Nothing to check here
diff --git a/sci-chemistry/ambertools/files/ambertools-15-update.3.patch b/sci-chemistry/ambertools/files/ambertools-15-update.3.patch
new file mode 100644
index 0000000..a892ece
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-15-update.3.patch
@@ -0,0 +1,95 @@
+********> update.3
+ Author: Istvan Kolossvary
+ Date: 15 June 2015
+
+ Programs: nab, sff
+
+ Description: Fix problem with lmod docking when fixed atoms are present
+
+ ---------------------------------------------------------------------------
+
+diff --git AmberTools/src/sff/lmodC.c AmberTools/src/sff/lmodC.c
+index 8a19dd8..45c8244 100644
+--- AmberTools/src/sff/lmodC.c
++++ AmberTools/src/sff/lmodC.c
+@@ -864,7 +864,7 @@ trans_ligand(double *xyz, int start, int end, double dx, double dy,
+ double dz)
+ {
+ int i, x, y, z;
+- for (i = start - 1; i < end; i++) {
++ for (i = start; i <= end; i++) {
+ x = 3 * i;
+ y = x + 1;
+ z = y + 1;
+@@ -900,7 +900,7 @@ rot_ligand(double *xyz, int start, int end, double cent_x, double cent_y,
+ {
+ int i, x, y, z;
+ double temp_x, temp_y, temp_z;
+- for (i = start - 1; i < end; i++) {
++ for (i = start; i <= end; i++) {
+ x = 3 * i;
+ y = x + 1;
+ z = y + 1;
+@@ -930,7 +930,7 @@ calc_centroid(double *xyz, int start, int end, double *cent_x,
+ {
+ int i, x, y, z, n;
+ *cent_x = *cent_y = *cent_z = ZERO;
+- for (i = start - 1; i < end; i++) {
++ for (i = start; i <= end; i++) {
+ x = 3 * i;
+ y = x + 1;
+ z = y + 1;
+@@ -1591,6 +1591,7 @@ lmodC(int *nlmodit, int *nmod, int *kmod, int *rotran, int *natm_ext,
+ i, j, k, kk, l, n, cnt;
+ static int barrier_crossing_test_on, do_all, do_ligs;
+ static int *index = NULL;
++ static int ikk, lig_start_kk, lig_end_kk, lig_rot_cent_kk;
+ static double ref_energy, energy, energy_old, min_energy,
+ glob_min_energy, rad, sum, max_atmov, scale, lmod_step, rms,
+ rms_old, grad_rms;
+@@ -2554,7 +2555,19 @@ lmodC(int *nlmodit, int *nmod, int *kmod, int *rotran, int *natm_ext,
+ xtrans *= trscale / trnorm;
+ ytrans *= trscale / trnorm;
+ ztrans *= trscale / trnorm;
+- trans_ligand(xyz_local, lig_start[kk], lig_end[kk], xtrans,
++ for (ikk = 0; ikk < natm_local; ikk++ ) {
++ if ( atm_indx[ikk] == (lig_start[kk] -1) ) { /* lig_start[] contains external PDB atom numbers */
++ lig_start_kk = ikk;
++ break;
++ }
++ }
++ for (ikk = 0; ikk < natm_local; ikk++ ) {
++ if ( atm_indx[ikk] == (lig_end[kk] -1) ) { /* lig_end[] contains external PDB atom numbers */
++ lig_end_kk = ikk;
++ break;
++ }
++ }
++ trans_ligand(xyz_local, lig_start_kk, lig_end_kk, xtrans,
+ ytrans, ztrans);
+ do {
+ xrot = 2 * rand2() - 1;
+@@ -2568,13 +2581,19 @@ lmodC(int *nlmodit, int *nmod, int *kmod, int *rotran, int *natm_ext,
+ rotang = angmin[kk] + (angmax[kk] - angmin[kk]) * rand2();
+ calc_rot_matrix(DEG2RAD * rotang, xrot, yrot, zrot, rotmat);
+ if (lig_rot_cent[kk]) {
+- xcent = xyz_local[(lig_rot_cent[kk] - 1) * 3 ];
+- ycent = xyz_local[(lig_rot_cent[kk] - 1) * 3 + 1];
+- zcent = xyz_local[(lig_rot_cent[kk] - 1) * 3 + 2];
++ for (ikk = 0; ikk < natm_local; ikk++ ) {
++ if ( atm_indx[ikk] == (lig_rot_cent[kk] -1) ) { /* lig_rot_cent[] contains external PDB atom numbers */
++ lig_rot_cent_kk = ikk;
++ break;
++ }
++ }
++ xcent = xyz_local[ lig_rot_cent_kk * 3 ];
++ ycent = xyz_local[ lig_rot_cent_kk * 3 + 1];
++ zcent = xyz_local[ lig_rot_cent_kk * 3 + 2];
+ } else
+- calc_centroid(xyz_local, lig_start[kk], lig_end[kk],
++ calc_centroid(xyz_local, lig_start_kk, lig_end_kk,
+ &xcent, &ycent, &zcent);
+- rot_ligand(xyz_local, lig_start[kk], lig_end[kk], xcent,
++ rot_ligand(xyz_local, lig_start_kk, lig_end_kk, xcent,
+ ycent, zcent, rotmat);
+ }
+ /* close pair separation operates on xyz_ext[]: */
diff --git a/sci-chemistry/ambertools/files/ambertools-15-update.4.patch b/sci-chemistry/ambertools/files/ambertools-15-update.4.patch
new file mode 100644
index 0000000..4176a58
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-15-update.4.patch
@@ -0,0 +1,908 @@
+*******> update.4
+Author: Benjamin D. Madej
+Date: October 19, 2015
+Programs: Leap, Lipid14 force field
+Description: Adds a parameter set for cholesterol to the Lipid14 force field.
+ Please reference:
+ Madej, B. D.; Gould, I.R.; Walker, R. C. A Parameterization of
+ Cholesterol for Mixed Lipid Bilayer Simulation within the Amber
+ Lipid14 Force Field. J. Phys. Chem. B 2015, 119 (38)
+ pp 12424-12435.
+-------------------------------------------------------------------------------
+ dat/leap/lib/lipid14.lib | 480 ++++++++++++++++++++++++++++++++++++++++++++++
+ dat/leap/parm/lipid11.dat | 2 +-
+ dat/leap/parm/lipid14.dat | 291 ++++++++++++++++++----------
+ 3 files changed, 666 insertions(+), 107 deletions(-)
+
+diff --git dat/leap/lib/lipid14.lib dat/leap/lib/lipid14.lib
+index 891937b..75c2f2b 100644
+--- dat/leap/lib/lipid14.lib
++++ dat/leap/lib/lipid14.lib
+@@ -1,10 +1,490 @@
+ !!index array str
++ "CHL"
+ "LA"
+ "MY"
+ "OL"
+ "PA"
+ "PC"
+ "PE"
++!entry.CHL.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
++ "C1" "cA" 0 1 131073 1 6 -0.031691
++ "H11" "hA" 0 1 131073 2 1 0.009380
++ "H12" "hA" 0 1 131073 3 1 0.009380
++ "C2" "cA" 0 1 131073 4 6 -0.088130
++ "H21" "hA" 0 1 131073 5 1 0.044625
++ "H22" "hA" 0 1 131073 6 1 0.044625
++ "C3" "cA" 0 1 131073 7 6 0.293553
++ "H31" "hE" 0 1 131073 8 1 0.029611
++ "C4" "cA" 0 1 131073 9 6 -0.162218
++ "H41" "hA" 0 1 131073 10 1 0.090036
++ "H42" "hA" 0 1 131073 11 1 0.090036
++ "C5" "cB" 0 1 131073 12 6 -0.139495
++ "C6" "cB" 0 1 131073 13 6 -0.208190
++ "H61" "hB" 0 1 131073 14 1 0.122828
++ "C7" "cA" 0 1 131073 15 6 -0.069897
++ "H71" "hA" 0 1 131073 16 1 0.047919
++ "H72" "hA" 0 1 131073 17 1 0.047919
++ "C8" "cA" 0 1 131073 18 6 -0.011390
++ "H81" "hA" 0 1 131073 19 1 0.072891
++ "C9" "cA" 0 1 131073 20 6 0.019609
++ "H91" "hA" 0 1 131073 21 1 0.029289
++ "C10" "cA" 0 1 131073 22 6 0.079112
++ "C11" "cA" 0 1 131073 23 6 -0.066365
++ "H111" "hA" 0 1 131073 24 1 0.030085
++ "H112" "hA" 0 1 131073 25 1 0.030085
++ "C12" "cA" 0 1 131073 26 6 -0.064973
++ "H121" "hA" 0 1 131073 27 1 0.010352
++ "H122" "hA" 0 1 131073 28 1 0.010352
++ "C13" "cA" 0 1 131073 29 6 0.057407
++ "C14" "cA" 0 1 131073 30 6 0.005830
++ "H141" "hA" 0 1 131073 31 1 0.031557
++ "C15" "cA" 0 1 131073 32 6 -0.101977
++ "H151" "hA" 0 1 131073 33 1 0.026458
++ "H152" "hA" 0 1 131073 34 1 0.026458
++ "C16" "cA" 0 1 131073 35 6 -0.092064
++ "H161" "hA" 0 1 131073 36 1 0.033335
++ "H162" "hA" 0 1 131073 37 1 0.033335
++ "C17" "cA" 0 1 131073 38 6 0.032398
++ "H171" "hA" 0 1 131073 39 1 0.016590
++ "C18" "cA" 0 1 131073 40 6 -0.115049
++ "H181" "hA" 0 1 131073 41 1 0.024541
++ "H182" "hA" 0 1 131073 42 1 0.024541
++ "H183" "hA" 0 1 131073 43 1 0.024541
++ "C19" "cA" 0 1 131073 44 6 -0.108064
++ "H191" "hA" 0 1 131073 45 1 0.033990
++ "H192" "hA" 0 1 131073 46 1 0.033990
++ "H193" "hA" 0 1 131073 47 1 0.033990
++ "C20" "cD" 0 1 131075 48 6 0.044268
++ "H201" "hL" 0 1 131075 49 1 0.020951
++ "C21" "cD" 0 1 131075 50 6 -0.154621
++ "H211" "hL" 0 1 131075 51 1 0.036274
++ "H212" "hL" 0 1 131075 52 1 0.036274
++ "H213" "hL" 0 1 131075 53 1 0.036274
++ "C22" "cD" 0 1 131075 54 6 -0.039033
++ "H221" "hL" 0 1 131075 55 1 0.008359
++ "H222" "hL" 0 1 131075 56 1 0.008359
++ "C23" "cD" 0 1 131075 57 6 -0.028460
++ "H231" "hL" 0 1 131075 58 1 0.015742
++ "H232" "hL" 0 1 131075 59 1 0.015742
++ "C24" "cD" 0 1 131075 60 6 -0.125596
++ "H241" "hL" 0 1 131075 61 1 0.040110
++ "H242" "hL" 0 1 131075 62 1 0.040110
++ "C25" "cD" 0 1 131075 63 6 0.212446
++ "H251" "hL" 0 1 131075 64 1 -0.002466
++ "C26" "cD" 0 1 131075 65 6 -0.257776
++ "H261" "hL" 0 1 131075 66 1 0.057982
++ "H262" "hL" 0 1 131075 67 1 0.057982
++ "H263" "hL" 0 1 131075 68 1 0.057982
++ "C27" "cD" 0 1 131075 69 6 -0.257776
++ "H271" "hL" 0 1 131075 70 1 0.057982
++ "H272" "hL" 0 1 131075 71 1 0.057982
++ "H273" "hL" 0 1 131075 72 1 0.057982
++ "O1" "oH" 0 1 131073 73 8 -0.703022
++ "HO1" "hO" 0 1 131073 74 1 0.414804
++!entry.CHL.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
++ "C1" "cA" 0 -1 0.0
++ "H11" "hA" 0 -1 0.0
++ "H12" "hA" 0 -1 0.0
++ "C2" "cA" 0 -1 0.0
++ "H21" "hA" 0 -1 0.0
++ "H22" "hA" 0 -1 0.0
++ "C3" "cA" 0 -1 0.0
++ "H31" "hE" 0 -1 0.0
++ "C4" "cA" 0 -1 0.0
++ "H41" "hA" 0 -1 0.0
++ "H42" "hA" 0 -1 0.0
++ "C5" "cB" 0 -1 0.0
++ "C6" "cB" 0 -1 0.0
++ "H61" "hB" 0 -1 0.0
++ "C7" "cA" 0 -1 0.0
++ "H71" "hA" 0 -1 0.0
++ "H72" "hA" 0 -1 0.0
++ "C8" "cA" 0 -1 0.0
++ "H81" "hA" 0 -1 0.0
++ "C9" "cA" 0 -1 0.0
++ "H91" "hA" 0 -1 0.0
++ "C10" "cA" 0 -1 0.0
++ "C11" "cA" 0 -1 0.0
++ "H111" "hA" 0 -1 0.0
++ "H112" "hA" 0 -1 0.0
++ "C12" "cA" 0 -1 0.0
++ "H121" "hA" 0 -1 0.0
++ "H122" "hA" 0 -1 0.0
++ "C13" "cA" 0 -1 0.0
++ "C14" "cA" 0 -1 0.0
++ "H141" "hA" 0 -1 0.0
++ "C15" "cA" 0 -1 0.0
++ "H151" "hA" 0 -1 0.0
++ "H152" "hA" 0 -1 0.0
++ "C16" "cA" 0 -1 0.0
++ "H161" "hA" 0 -1 0.0
++ "H162" "hA" 0 -1 0.0
++ "C17" "cA" 0 -1 0.0
++ "H171" "hA" 0 -1 0.0
++ "C18" "cA" 0 -1 0.0
++ "H181" "hA" 0 -1 0.0
++ "H182" "hA" 0 -1 0.0
++ "H183" "hA" 0 -1 0.0
++ "C19" "cA" 0 -1 0.0
++ "H191" "hA" 0 -1 0.0
++ "H192" "hA" 0 -1 0.0
++ "H193" "hA" 0 -1 0.0
++ "C20" "cA" 0 -1 0.0
++ "H201" "hA" 0 -1 0.0
++ "C21" "cA" 0 -1 0.0
++ "H211" "hA" 0 -1 0.0
++ "H212" "hA" 0 -1 0.0
++ "H213" "hA" 0 -1 0.0
++ "C22" "cA" 0 -1 0.0
++ "H221" "hA" 0 -1 0.0
++ "H222" "hA" 0 -1 0.0
++ "C23" "cA" 0 -1 0.0
++ "H231" "hA" 0 -1 0.0
++ "H232" "hA" 0 -1 0.0
++ "C24" "cA" 0 -1 0.0
++ "H241" "hA" 0 -1 0.0
++ "H242" "hA" 0 -1 0.0
++ "C25" "cA" 0 -1 0.0
++ "H251" "hA" 0 -1 0.0
++ "C26" "cA" 0 -1 0.0
++ "H261" "hA" 0 -1 0.0
++ "H262" "hA" 0 -1 0.0
++ "H263" "hA" 0 -1 0.0
++ "C27" "cA" 0 -1 0.0
++ "H271" "hA" 0 -1 0.0
++ "H272" "hA" 0 -1 0.0
++ "H273" "hA" 0 -1 0.0
++ "O1" "oH" 0 -1 0.0
++ "HO1" "hO" 0 -1 0.0
++!entry.CHL.unit.boundbox array dbl
++ -1.000000
++ 0.0
++ 0.0
++ 0.0
++ 0.0
++!entry.CHL.unit.childsequence single int
++ 2
++!entry.CHL.unit.connect array int
++ 0
++ 0
++!entry.CHL.unit.connectivity table int atom1x int atom2x int flags
++ 1 2 1
++ 1 3 1
++ 1 4 1
++ 1 22 1
++ 4 5 1
++ 4 6 1
++ 4 7 1
++ 7 8 1
++ 7 9 1
++ 7 73 1
++ 9 10 1
++ 9 11 1
++ 9 12 1
++ 12 13 2
++ 12 22 1
++ 13 14 1
++ 13 15 1
++ 15 16 1
++ 15 17 1
++ 15 18 1
++ 18 19 1
++ 18 20 1
++ 18 30 1
++ 20 21 1
++ 20 22 1
++ 20 23 1
++ 22 44 1
++ 23 24 1
++ 23 25 1
++ 23 26 1
++ 26 27 1
++ 26 28 1
++ 26 29 1
++ 29 30 1
++ 29 38 1
++ 29 40 1
++ 30 31 1
++ 30 32 1
++ 32 33 1
++ 32 34 1
++ 32 35 1
++ 35 36 1
++ 35 37 1
++ 35 38 1
++ 38 39 1
++ 38 48 1
++ 40 41 1
++ 40 42 1
++ 40 43 1
++ 44 45 1
++ 44 46 1
++ 44 47 1
++ 48 49 1
++ 48 50 1
++ 48 54 1
++ 50 51 1
++ 50 52 1
++ 50 53 1
++ 54 55 1
++ 54 56 1
++ 54 57 1
++ 57 58 1
++ 57 59 1
++ 57 60 1
++ 60 61 1
++ 60 62 1
++ 60 63 1
++ 63 64 1
++ 63 65 1
++ 63 69 1
++ 65 66 1
++ 65 67 1
++ 65 68 1
++ 69 70 1
++ 69 71 1
++ 69 72 1
++ 73 74 1
++!entry.CHL.unit.hierarchy table str abovetype int abovex str belowtype int belowx
++ "U" 0 "R" 1
++ "R" 1 "A" 1
++ "R" 1 "A" 2
++ "R" 1 "A" 3
++ "R" 1 "A" 4
++ "R" 1 "A" 5
++ "R" 1 "A" 6
++ "R" 1 "A" 7
++ "R" 1 "A" 8
++ "R" 1 "A" 9
++ "R" 1 "A" 10
++ "R" 1 "A" 11
++ "R" 1 "A" 12
++ "R" 1 "A" 13
++ "R" 1 "A" 14
++ "R" 1 "A" 15
++ "R" 1 "A" 16
++ "R" 1 "A" 17
++ "R" 1 "A" 18
++ "R" 1 "A" 19
++ "R" 1 "A" 20
++ "R" 1 "A" 21
++ "R" 1 "A" 22
++ "R" 1 "A" 23
++ "R" 1 "A" 24
++ "R" 1 "A" 25
++ "R" 1 "A" 26
++ "R" 1 "A" 27
++ "R" 1 "A" 28
++ "R" 1 "A" 29
++ "R" 1 "A" 30
++ "R" 1 "A" 31
++ "R" 1 "A" 32
++ "R" 1 "A" 33
++ "R" 1 "A" 34
++ "R" 1 "A" 35
++ "R" 1 "A" 36
++ "R" 1 "A" 37
++ "R" 1 "A" 38
++ "R" 1 "A" 39
++ "R" 1 "A" 40
++ "R" 1 "A" 41
++ "R" 1 "A" 42
++ "R" 1 "A" 43
++ "R" 1 "A" 44
++ "R" 1 "A" 45
++ "R" 1 "A" 46
++ "R" 1 "A" 47
++ "R" 1 "A" 48
++ "R" 1 "A" 49
++ "R" 1 "A" 50
++ "R" 1 "A" 51
++ "R" 1 "A" 52
++ "R" 1 "A" 53
++ "R" 1 "A" 54
++ "R" 1 "A" 55
++ "R" 1 "A" 56
++ "R" 1 "A" 57
++ "R" 1 "A" 58
++ "R" 1 "A" 59
++ "R" 1 "A" 60
++ "R" 1 "A" 61
++ "R" 1 "A" 62
++ "R" 1 "A" 63
++ "R" 1 "A" 64
++ "R" 1 "A" 65
++ "R" 1 "A" 66
++ "R" 1 "A" 67
++ "R" 1 "A" 68
++ "R" 1 "A" 69
++ "R" 1 "A" 70
++ "R" 1 "A" 71
++ "R" 1 "A" 72
++ "R" 1 "A" 73
++ "R" 1 "A" 74
++!entry.CHL.unit.name single str
++ "CHL"
++!entry.CHL.unit.positions table dbl x dbl y dbl z
++ 4.697000 -1.469000 -0.739000
++ 4.428000 -1.214000 -1.762000
++ 4.303000 -2.462000 -0.556000
++ 6.224000 -1.517000 -0.642000
++ 6.547000 -1.874000 0.331000
++ 6.617000 -2.214000 -1.376000
++ 6.830000 -0.145000 -0.877000
++ 6.590000 0.176000 -1.891000
++ 6.246000 0.863000 0.111000
++ 6.601000 0.589000 1.102000
++ 6.636000 1.856000 -0.095000
++ 4.731000 0.895000 0.070000
++ 4.091000 2.041000 -0.088000
++ 4.668000 2.946000 -0.204000
++ 2.599000 2.206000 -0.119000
++ 2.323000 3.070000 0.480000
++ 2.290000 2.443000 -1.137000
++ 1.853000 0.964000 0.375000
++ 1.922000 0.946000 1.460000
++ 2.514000 -0.306000 -0.204000
++ 2.518000 -0.165000 -1.285000
++ 4.012000 -0.452000 0.214000
++ 1.671000 -1.566000 0.076000
++ 2.085000 -2.410000 -0.467000
++ 1.730000 -1.829000 1.125000
++ 0.190000 -1.429000 -0.312000
++ 0.108000 -1.322000 -1.392000
++ -0.312000 -2.355000 -0.056000
++ -0.469000 -0.212000 0.358000
++ 0.381000 1.015000 -0.041000
++ 0.381000 1.020000 -1.132000
++ -0.462000 2.215000 0.391000
++ -0.304000 2.443000 1.442000
++ -0.217000 3.115000 -0.163000
++ -1.913000 1.751000 0.131000
++ -2.537000 1.930000 1.001000
++ -2.357000 2.309000 -0.684000
++ -1.859000 0.228000 -0.203000
++ -1.794000 0.127000 -1.286000
++ -0.546000 -0.407000 1.886000
++ -1.062000 0.412000 2.374000
++ 0.431000 -0.485000 2.344000
++ -1.086000 -1.316000 2.130000
++ 4.156000 -0.937000 1.675000
++ 3.579000 -0.319000 2.354000
++ 5.185000 -0.898000 2.008000
++ 3.826000 -1.963000 1.788000
++ -3.141000 -0.519000 0.237000
++ -3.267000 -0.372000 1.309000
++ -3.080000 -2.029000 -0.029000
++ -2.330000 -2.520000 0.577000
++ -2.851000 -2.232000 -1.072000
++ -4.025000 -2.508000 0.198000
++ -4.375000 0.093000 -0.461000
++ -4.324000 1.175000 -0.403000
++ -4.337000 -0.153000 -1.522000
++ -5.732000 -0.335000 0.111000
++ -5.862000 -1.406000 0.010000
++ -5.752000 -0.121000 1.179000
++ -6.898000 0.389000 -0.569000
++ -6.718000 1.461000 -0.516000
++ -6.910000 0.137000 -1.629000
++ -8.286000 0.104000 0.028000
++ -8.244000 0.333000 1.092000
++ -8.705000 -1.362000 -0.122000
++ -8.034000 -2.035000 0.400000
++ -8.723000 -1.655000 -1.169000
++ -9.702000 -1.521000 0.280000
++ -9.336000 1.023000 -0.605000
++ -9.079000 2.069000 -0.470000
++ -10.316000 0.862000 -0.166000
++ -9.420000 0.839000 -1.674000
++ 8.224000 -0.262000 -0.734000
++ 8.633000 0.570000 -0.924000
++!entry.CHL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
++ 0 0 0 0 0 0
++!entry.CHL.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
++ "CHL" 1 75 1 "?" 0
++!entry.CHL.unit.residuesPdbSequenceNumber array int
++ 0
++!entry.CHL.unit.solventcap array dbl
++ -1.000000
++ 0.0
++ 0.0
++ 0.0
++ 0.0
++!entry.CHL.unit.velocities table dbl x dbl y dbl z
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
++ 0.0 0.0 0.0
+ !entry.LA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
+ "H12T" "hL" 0 1 131073 1 1 0.025809
+ "C112" "cD" 0 1 131073 2 6 -0.118534
+diff --git dat/leap/parm/lipid11.dat dat/leap/parm/lipid11.dat
+index 0f8d83e..9c25f35 100644
+--- dat/leap/parm/lipid11.dat
++++ dat/leap/parm/lipid11.dat
+@@ -1,4 +1,4 @@
+-AMBER Lipid 2011 Force Field (v1.0), A.Skjevik, B. Madej, K.Teigen & R.C.Walker
++** Warning: Lipid11 is deprecated. Please refer to Amber Lipid14 for more information ** AMBER Lipid 2011 Force Field (v1.0), A.Skjevik, B. Madej, K.Teigen & R.C.Walker
+ cC 12.01 carbonyl sp2 carbon (GAFF c -)
+ cB 12.01 aliphatic sp2 carbon (GAFF c2-)
+ cA 12.01 sp3 carbon (GAFF c3-)
+diff --git dat/leap/parm/lipid14.dat dat/leap/parm/lipid14.dat
+index 46da737..f102976 100644
+--- dat/leap/parm/lipid14.dat
++++ dat/leap/parm/lipid14.dat
+@@ -3,59 +3,81 @@ cA 12.01 sp3 carbon (GAFF c3-head,glycerol)
+ cB 12.01 aliphatic sp2 carbon (GAFF c2-tail)
+ cC 12.01 carbonyl sp2 carbon (GAFF c -head,glycerol)
+ cD 12.010 sp3 carbon (GAFFlipid a3-tail)
++hA 1.008 H bonded to aliphatic carbon without electrwd. group (GAFF hc-)
++hB 1.008 H bonded to aromatic carbon (GAFF ha-)
++hE 1.008 H bonded to aliphatic carbon with 1 electrwd. group (GAFF h1-)
++hL 1.008 H bonded to aliphatic carbon without electrwd. group (GAFFlipid hl-)
++hN 1.008 H bonded to nitrogen (GAFF hn-)
++hO 1.008 H in Hydroxyl group (GAFF ho-)
++hX 1.008 H bonded to C next to positively charged group (GAFF hx-)
++nA 14.01 sp3 N with four connected atoms (GAFF n4-)
+ oC 16.00 sp2 oxygen with one connected atom (e.g C=O, COO-) (GAFF o -)
+-oS 16.00 sp3 oxygen in ethers and esters (GAFF os-)
++oH 16.00 sp3 oxygen in hydroxyl group (GAFF oh-)
+ oP 16.00 sp2 oxygen with one connected atom (e.g P-O) in phosphate group (GAFF o -)
++oS 16.00 sp3 oxygen in ethers and esters (GAFF os-)
+ oT 16.00 sp3 oxygen bonded to carbon in phosphate group (GAFF os-)
+-nA 14.01 sp3 N with four connected atoms (GAFF n4-)
+ pA 30.97 phosphorus with four connected atoms, such as O=P(OH)3 (GAFF p5-)
+-hE 1.008 H bonded to aliphatic carbon with 1 electrwd. group (GAFF h1-)
+-hX 1.008 H bonded to C next to positively charged group (GAFF hx-)
+-hB 1.008 H bonded to aromatic carbon (GAFF ha-)
+-hN 1.008 H bonded to nitrogen (GAFF hn-)
+-hL 1.008 H bonded to aliphatic carbon without electrwd. group (GAFFlipid hl-)
+
+ cA cB cC cD oC oS oP oT nA pA hE hX hB hN hL
+ cA-cA 303.1 1.5350 Lipid11 v1.0 (GAFF c3-c3)
++cA-cB 328.3 1.5080 Lipid11 v1.0 (GAFF c3-c2)
++cA-cD 303.1 1.5350 Lipid14 v2.14(GAFF c3-c3)
++cA-hA 337.3 1.0920 Lipid11 v1.0 (GAFF c3-hc)
+ cA-hE 335.9 1.0930 Lipid11 v1.0 (GAFF c3-h1)
+ cA-hX 338.7 1.0910 Lipid11 v1.0 (GAFF c3-hx)
+ cA-nA 293.6 1.4990 Lipid11 v1.0 (GAFF c3-n4)
++cA-oH 314.1 1.4260 Lipid11 v1.0 (GAFF c3-oh)
+ cA-oS 301.5 1.4390 Lipid11 v1.0 (GAFF c3-os)
+ cA-oT 301.5 1.4390 Lipid11 v1.0 (GAFF c3-os)
+ cB-cB 589.7 1.3240 Lipid11 v1.0 (GAFF c2-c2)
++cB-cD 328.3 1.5080 Lipid14 v2.0 (GAFF c2-c3)
+ cB-hB 344.3 1.0870 Lipid11 v1.0 (GAFF c2-ha)
++cC-cD 328.3 1.5080 Lipid14 v2.0 (GAFF c -c3)
+ cC-oC 648.0 1.2140 Lipid11 v1.0 (GAFF c -o )
+ cC-oS 411.3 1.3430 Lipid11 v1.0 (GAFF c -os)
+-cD-cB 328.3 1.5080 Lipid14 v2.0 (GAFF c3-c2)
+-cD-cC 328.3 1.5080 Lipid14 v2.0 (GAFF c3-c )
+ cD-cD 303.1 1.5350 Lipid14 v2.0 (GAFF c3-c3)
+ cD-hL 337.3 1.0920 Lipid14 v2.0 (GAFF c3-hc)
+ hN-nA 369.0 1.0330 Lipid11 v1.0 (GAFF hn-n4)
++hO-oH 369.6 0.9740 Lipid11 v1.0 (GAFF ho-oh)
+ oP-pA 487.7 1.4810 Lipid11 v1.0 (GAFF o -p5)
+ oT-pA 342.5 1.6020 Lipid11 v1.0 (GAFF os-p5)
+
+ cA-cA-cA 63.210 110.630 Lipid11 v1.0 (GAFF c3-c3-c3)
++cA-cA-cB 63.530 111.440 Lipid11 v1.0 (GAFF c3-c3-c2)
++cA-cA-cD 63.210 110.630 Lipid14 v2.14(GAFF c3-c3-c3)
++cA-cA-hA 46.370 110.050 Lipid11 v1.0 (GAFF c3-c3-hc)
+ cA-cA-hE 46.360 110.070 Lipid11 v1.0 (GAFF c3-c3-h1)
+ cA-cA-hX 46.020 111.740 Lipid11 v1.0 (GAFF c3-c3-hx)
+ cA-cA-nA 64.450 114.320 Lipid11 v1.0 (GAFF c3-c3-n4)
++cA-cA-oH 67.720 109.430 Lipid11 v1.0 (GAFF c3-c3-oh)
+ cA-cA-oS 67.780 108.420 Lipid11 v1.0 (GAFF c3-c3-os)
+ cA-cA-oT 67.780 108.420 Lipid11 v1.0 (GAFF c3-c3-os)
++cA-cB-cA 62.700 116.520 Lipid11 v1.0 (GAFF c3-c2-c3)
++cA-cB-cB 64.330 123.420 Lipid11 v1.0 (GAFF c3-c2-c2)
++cA-cB-hB 45.660 117.300 Lipid11 v1.0 (GAFF c3-c2-ha)
++cA-cD-cD 63.210 110.630 Lipid14 v2.14(GAFF c3-c3-c3)
++cA-cD-hL 46.370 110.050 Lipid14 v2.14(GAFF c3-c3-hc)
+ cA-nA-cA 62.840 110.640 Lipid11 v1.0 (GAFF c3-n4-c3)
+ cA-nA-hN 46.190 110.110 Lipid11 v1.0 (GAFF c3-n4-hn)
++cA-oH-hO 47.090 108.160 Lipid11 v1.0 (GAFF c3-oh-ho)
+ cA-oS-cC 63.630 115.140 Lipid11 v1.0 (GAFF c3-os-c )
+ cA-oT-pA 78.480 118.000 Lipid11 v1.0 (GAFF c3-os-p5)
++cB-cA-hA 47.030 110.490 Lipid11 v1.0 (GAFF c2-c3-hc)
++cB-cB-cD 64.330 123.420 Lipid14 v2.0 (GAFF c2-c2-c3)
+ cB-cB-hB 50.040 120.940 Lipid11 v1.0 (GAFF c2-c2-ha)
++cB-cD-cD 63.530 111.440 Lipid14 v2.0 (GAFF c2-c3-c3)
+ cB-cD-hL 47.030 110.490 Lipid14 v2.0 (GAFF c2-c3-hc)
++cC-cD-cD 63.790 110.530 Lipid14 v2.0 (GAFF c -c3-c3)
+ cC-cD-hL 47.200 109.680 Lipid14 v2.0 (GAFF c -c3-hc)
+-cD-cB-cB 64.330 123.420 Lipid14 v2.0 (GAFF c3-c2-c2)
++cD-cA-hA 46.370 110.050 Lipid14 v2.14(GAFF c3-c3-hc)
+ cD-cB-hB 45.660 117.300 Lipid14 v2.0 (GAFF c3-c2-ha)
+ cD-cC-oC 68.030 123.110 Lipid14 v2.0 (GAFF c3-c -o )
+ cD-cC-oS 69.260 111.960 Lipid14 v2.0 (GAFF c3-c -os)
+-cD-cD-cB 63.530 111.440 Lipid14 v2.0 (GAFF c3-c3-c2)
+-cD-cD-cC 63.790 110.530 Lipid14 v2.0 (GAFF c3-c3-c )
+ cD-cD-cD 63.210 110.630 Lipid14 v2.0 (GAFF c3-c3-c3)
+ cD-cD-hL 46.370 110.050 Lipid14 v2.0 (GAFF c3-c3-hc)
++hA-cA-hA 39.430 108.350 Lipid11 v1.0 (GAFF hc-c3-hc)
+ hE-cA-hE 39.180 109.550 Lipid11 v1.0 (GAFF h1-c3-h1)
++hE-cA-oH 50.970 109.880 Lipid11 v1.0 (GAFF ha-c3-oh)
+ hE-cA-oS 50.840 108.820 Lipid11 v1.0 (GAFF h1-c3-os)
+ hE-cA-oT 50.840 108.820 Lipid11 v1.0 (GAFF h1-c3-os)
+ hL-cD-hL 39.430 108.350 Lipid14 v2.0 (GAFF hc-c3-hc)
+@@ -67,86 +89,133 @@ oP-pA-oP 46.010 115.800 Lipid11 v1.0 (GAFF o -p5-o )
+ oP-pA-oT 44.010 116.090 Lipid11 v1.0 (GAFF o -p5-os)
+ oT-pA-oT 45.370 101.770 Lipid11 v1.0 (GAFF os-p5-os)
+
+-cA-cA-cA-hE 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
+-cA-cA-cA-oS 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
+-cA-cA-cA-oT 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
+-cA-cA-nA-cA 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
+-cA-cA-nA-hN 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
+-cA-cA-oT-pA 1 0.3833 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-os-X )
+-cA-nA-cA-hX 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
+-cA-oS-cC-oS 1 2.700 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c -os-X )
+-cA-oT-pA-oP 1 0.800 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -os-p5-X )
+-cA-oT-pA-oP 1 0.800 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -os-p5-X )
+-cA-oT-pA-oT 1 0.25 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-p5-os)
+-cA-oT-pA-oT 1 1.20 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-p5-os)
+-cB-cB-cD-cD 1 0.3464 0.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cB-cB-cD-cD 1 -0.5577 0.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cB-cB-cD-cD 1 -0.2920 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cB-cB-cD-cD 1 -0.0943 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cB-cB-cD-cD 1 0.0226 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cB-cD-cD-cD 1 0.0251 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cB-cD-cD-cD 1 0.0054 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cB-cD-cD-cD 1 0.2007 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cB-cD-cD-cD 1 0.2103 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cB-cD-cD-cD 1 0.0811 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cB-cD-cD-hL 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c3-X )
+-cC-cD-cD-hL 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c3-X )
+-cC-oS-cA-cA 1 0.383 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-os-c )
+-cC-oS-cA-cA 1 0.80 180.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-os-c )
+-cC-oS-cA-hE 1 0.3833 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-os-X )
+-cD-cB-cB-cD 1 0.3073 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cB-cB-cD 1 4.0051 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cB-cB-cD 1 0.1990 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cB-cB-cD 1 0.3242 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cB-cB-cD 1 -0.0415 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cB-cB-hB 1 6.650 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c2-c2-X )
+-cD-cC-oS-cA 1 2.700 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c -os-X )
+-cD-cD-cC-oC 1 -0.9110 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cC-oC 1 0.7382 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cC-oC 1 0.3290 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cC-oC 1 -0.5864 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cC-oC 1 0.1333 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cC-oS 1 -0.1226 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cC-oS 1 -0.2054 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cC-oS 1 0.1802 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cC-oS 1 0.5107 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cC-oS 1 0.1355 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cD-cC 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF )
+-cD-cD-cD-cD 1 0.3112 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cD-cD 1 -0.1233 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cD-cD 1 0.1149 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cD-cD 1 -0.2199 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cD-cD 1 0.2170 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
+-cD-cD-cD-hL 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF c3-c3-c3-hc)
+-hB-cB-cB-hB 1 6.650 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c2-c2-X )
+-hE-cA-cA-hE 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
+-hE-cA-cA-nA 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
+-hE-cA-cA-hX 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
+-hE-cA-cA-oS 1 0.00 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
+-hE-cA-cA-oS 1 0.25 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
+-hE-cA-cA-oT 1 0.00 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
+-hE-cA-cA-oT 1 0.25 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
+-hE-cA-oT-pA 1 0.3833 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-os-X )
+-hB-cB-cD-cD 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c2-X )
+-hB-cB-cD-hL 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c2-X )
+-hL-cD-cB-cB 1 0.38 180.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c2-c2)
+-hL-cD-cB-cB 1 1.15 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c2-c2)
+-hL-cD-cC-oC 1 0.80 0.0 -1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c -o )
+-hL-cD-cC-oC 1 0.08 180.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c -o )
+-hL-cD-cC-oS 1 0.000 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c -c3-X )
+-hL-cD-cD-hL 1 0.15 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c3-hc)
+-hN-nA-cA-hX 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
+-hX-cA-cA-oT 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
+-nA-cA-cA-oT 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
+-cA-oS-cC-oC 1 2.70 180.0 -2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-c -o )
+-cA-oS-cC-oC 1 1.40 180.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-c -o )
+-oS-cA-cA-oS 1 0.144 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
+-oS-cA-cA-oS 1 1.175 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
+-oT-cA-cA-oS 1 0.144 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
+-oT-cA-cA-oS 1 1.175 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
+-
++cA-cA-cA-cA 1 0.18 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-c3-c3)
++cA-cA-cA-cA 1 0.25 180.0 -2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-c3-c3)
++cA-cA-cA-cA 1 0.20 180.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-c3-c3)
++cA-cA-cA-cB 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++cA-cA-cA-cD 1 0.3112 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cA-cA-cD 1 -0.1233 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cA-cA-cD 1 0.1149 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cA-cA-cD 1 -0.2199 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cA-cA-cD 1 0.2170 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cA-cA-hA 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-c3-hc)
++cA-cA-cA-hE 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++cA-cA-cA-oH 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++cA-cA-cA-oS 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++cA-cA-cA-oT 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++cA-cA-cB-cA 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c2-X )
++cA-cA-cB-cB 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c2-X )
++cA-cA-cB-hB 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c2-X )
++cA-cA-cD-cD 1 0.3112 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cA-cD-cD 1 -0.1233 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cA-cD-cD 1 0.1149 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cA-cD-cD 1 -0.2199 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cA-cD-cD 1 0.2170 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cA-cD-hL 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(GAFF c3-c3-c3-hc)
++cA-cA-nA-cA 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
++cA-cA-nA-hN 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
++cA-cA-oH-hO 1 0.16 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-oh-ho)
++cA-cA-oH-hO 1 0.25 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-oh-ho)
++cA-cA-oS-cC 1 0.383 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-os-c )
++cA-cA-oS-cC 1 0.80 180.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-os-c )
++cA-cA-oT-pA 1 0.3833 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-os-X )
++cA-cB-cA-hA 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c2-X )
++cA-cB-cB-cA 1 6.65 180.0 -2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c2-c2-c3)
++cA-cB-cB-cA 1 1.90 180.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c2-c2-c3)
++cA-cB-cB-hB 1 6.650 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c2-c2-X )
++cA-cD-cD-cD 1 0.3112 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cD-cD-cD 1 -0.1233 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cD-cD-cD 1 0.1149 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cD-cD-cD 1 -0.2199 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cD-cD-cD 1 0.2170 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
++cA-cD-cD-hL 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(GAFF c3-c3-c3-hc)
++cA-nA-cA-hX 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
++cA-oS-cC-cD 1 2.700 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -os-c -X )
++cA-oS-cC-oC 1 2.70 180.0 -2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-c -o )
++cA-oS-cC-oC 1 1.40 180.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-c -o )
++cA-oS-cC-oS 1 2.700 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c -os-X )
++cA-oT-pA-oP 1 0.800 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -os-p5-X )
++cA-oT-pA-oT 1 0.25 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-p5-os)
++cA-oT-pA-oT 1 1.20 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-p5-os)
++cB-cA-cA-hA 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++cB-cA-cA-hE 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++cB-cA-cA-oH 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++cB-cB-cA-hA 1 0.38 180.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF hc-c3-c2-c2)
++cB-cB-cA-hA 1 1.15 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF hc-c3-c2-c2)
++cB-cB-cD-cD 1 0.3464 0.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cB-cB-cD-cD 1 -0.5577 0.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cB-cB-cD-cD 1 -0.2920 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cB-cB-cD-cD 1 -0.0943 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cB-cB-cD-cD 1 0.0226 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cB-cB-cD-hL 1 0.38 180.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF c2-c2-c3-hc)
++cB-cB-cD-hL 1 1.15 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF c2-c2-c3-hc)
++cB-cD-cD-cD 1 0.0251 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cB-cD-cD-cD 1 0.0054 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cB-cD-cD-cD 1 0.2007 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cB-cD-cD-cD 1 0.2103 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cB-cD-cD-cD 1 0.0811 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cB-cD-cD-hL 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c3-X )
++cC-cD-cD-cD 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++cC-cD-cD-hL 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c3-X )
++cC-oS-cA-hE 1 0.3833 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-os-X )
++cD-cA-cA-hA 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(GAFF c3-c3-c3-hc)
++cD-cB-cB-cD 1 0.3073 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cB-cB-cD 1 4.0051 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cB-cB-cD 1 0.1990 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cB-cB-cD 1 0.3242 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cB-cB-cD 1 -0.0415 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cB-cB-hB 1 6.650 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c2-c2-X )
++cD-cD-cA-hA 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(GAFF c3-c3-c3-hc)
++cD-cD-cB-hB 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c2-X )
++cD-cD-cC-oC 1 -0.9110 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cC-oC 1 0.7382 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cC-oC 1 0.3290 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cC-oC 1 -0.5864 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cC-oC 1 0.1333 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cC-oS 1 -0.1226 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cC-oS 1 -0.2054 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cC-oS 1 0.1802 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cC-oS 1 0.5107 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cC-oS 1 0.1355 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cD-cD 1 0.3112 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cD-cD 1 -0.1233 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cD-cD 1 0.1149 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cD-cD 1 -0.2199 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cD-cD 1 0.2170 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
++cD-cD-cD-hL 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF c3-c3-c3-hc)
++hA-cA-cA-hA 1 0.15 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF hc-c3-c3-hc)
++hA-cA-cA-hE 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++hA-cA-cA-oH 1 0.00 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF hc-c3-c3-oh)
++hA-cA-cA-oH 1 0.25 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF hc-c3-c3-oh)
++hA-cA-cB-hB 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c2-X )
++hA-cA-cD-hL 1 0.15 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(GAFF hc-c3-c3-hc)
++hB-cB-cB-hB 1 6.650 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c2-c2-X )
++hB-cB-cD-hL 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c2-X )
++hE-cA-cA-hE 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++hE-cA-cA-hX 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++hE-cA-cA-nA 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++hE-cA-cA-oS 1 0.00 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
++hE-cA-cA-oS 1 0.25 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
++hE-cA-cA-oT 1 0.00 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
++hE-cA-cA-oT 1 0.25 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
++hE-cA-oH-hO 1 0.500 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-oh-X )
++hE-cA-oT-pA 1 0.3833 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-os-X )
++hL-cD-cC-oC 1 0.08 180.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c -o )
++hL-cD-cC-oC 1 0.80 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c -o )
++hL-cD-cC-oS 1 0.000 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c -c3-X )
++hL-cD-cD-hL 1 0.15 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c3-hc)
++hN-nA-cA-hX 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
++hX-cA-cA-oT 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++nA-cA-cA-oT 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
++oS-cA-cA-oS 1 0.144 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
++oS-cA-cA-oS 1 1.175 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
++oS-cA-cA-oT 1 0.144 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
++oS-cA-cA-oT 1 1.175 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
++
++cA-cB-cB-cA 1.1 180. 2.0 Lipid14 CHL (GAFF)
++cB-cA-cB-hB 1.1 180. 2.0 Lipid14 CHL (GAFF)
++cB-cD-cB-hB 1.1 180.0 2.0 Lipid14 v2.0 aliphatic improper (GAFF c2-c3-c2-ha)
+ cD-oC-cC-oS 10.5 180.0 2.0 Lipid14 v2.0 ester improper (GAFF X -X -c -o )
+-cB-cD-cB-hB 1.1 180.0 2.0 Lipid14 v2.0 aliphatic improper (GAFF c2-c3-c2-ha - default)
+
+ hw ow 0000. 0000. 4. flag for fast water - Hack for no 10-12 terms
+
+@@ -156,17 +225,20 @@ MOD4 RE
+ cB 1.9080 0.0860 Lipid14 v2.10
+ cC 1.9080 0.0700 Lipid14 v2.10
+ cD 1.9080 0.1094 OPLS
++ hA 1.4870 0.0157 OPLS
++ hB 1.2500 0.0070 Lipid14 v2.10
++ hE 1.3870 0.0157 Veenstra et al JCC,8,(1992),963
++ hL 1.4600 0.0100 Lipid14 v2.10
++ hN 0.6000 0.0157 !Ferguson base pair geom.
++ hO 0.0000 0.0000 OPLS Jorgensen, JACS,110,(1988),1657 (RCW Needs fixing give radii)
++ hX 1.1000 0.0157 Veenstra et al JCC,8,(1992),963
++ nA 1.8240 0.1700 OPLS
+ oC 1.6500 0.1400 Lipid14 v2.10
++ oH 1.7210 0.2104 OPLS
++ oP 1.6500 0.1400 Lipid14 v2.10
+ oS 1.6500 0.1200 Lipid14 v2.10
+ oT 1.6500 0.1200 Lipid14 v2.10
+- oP 1.6500 0.1400 Lipid14 v2.10
+- nA 1.8240 0.1700 OPLS
+ pA 2.1000 0.2000 JCC,7,(1986),230;
+- hE 1.3870 0.0157 Veenstra et al JCC,8,(1992),963
+- hX 1.1000 0.0157 Veenstra et al JCC,8,(1992),963
+- hB 1.2500 0.0070 Lipid14 v2.10
+- hN 0.6000 0.0157 !Ferguson base pair geom.
+- hL 1.4600 0.0100 Lipid14 v2.10
+
+ END
+
+@@ -175,7 +247,7 @@ END
+
+ *** AMBER Lipid14 Force Field, C. Dickson, B. Madej, A.Skjevik, K. Teigen, I.R. Gould, R.C. Walker ***
+
+-Citation is - Released version 2.10:
++Citation is:
+
+ Dickson, C.J., Madej, B.D., Skjevik, A.A., Betz, R.M., Teigen, K., Gould, I.R., Walker, R.C., "Lipid14: The Amber Lipid Force Field", J. Chem. Theory Comput., 2014, in press, DOI: 10.1021/ct4010307
+
+@@ -241,24 +313,31 @@ Version 2.11 (February 2014)
+ Version 2.12 (February 2014)
+ - Replace angle force constants involving phosporus with the correct values from the update GAFF.dat file.
+
++Version 2.14 (September 2015)
++- Reorder parameters so they are alphabetical.
++- Add cholesterol parameters
++
+ Atom type mapping
+ -----------------
+
+ GAFF Lipid14 Description
+ ---- ------- -----------
+- c3 cA sp3 carbon
+- c2 cB aliphatic sp2 carbon
+ c cC carbonyl sp2 carbon
+- o oC sp2 oxygen with one connected atom (e.g C=O, COO-)
+- os oS sp3 oxygen in ethers and esters
+- n4 nA sp3 N with four connected atoms
+- p5 pA phosphorus with four connected atoms, such as O=P(OH)3
++ c2 cB aliphatic sp2 carbon
++ c3 cA sp3 carbon
+ h1 hE H bonded to aliphatic carbon with 1 electrwd. group
+- hx hX H bonded to C next to positively charged group
+ ha hB H bonded to aromatic carbon
++ hc hA H bonded to aliphatic carbon without electrwd. group
+ hn hN H bonded to nitrogen
++ ho hO H in Hydroxyl group
++ hx hX H bonded to C next to positively charged group
++ n4 nA sp3 N with four connected atoms
++ o oC sp2 oxygen with one connected atom (e.g C=O, COO-)
+ o oP sp2 oxygen with one connected atom (e.g P-O) in phosphate group
++ oh oH sp3 oxygen in hydroxyl group
++ os oS sp3 oxygen in ethers and esters
+ os oT sp3 oxygen bonded to carbon in phosphate group
++ p5 pA phosphorus with four connected atoms, such as O=P(OH)3
+
+ GAFFlipid Lipid14 Description
+ --------- ------- -----------
diff --git a/sci-chemistry/ambertools/files/ambertools-15-update.5.patch b/sci-chemistry/ambertools/files/ambertools-15-update.5.patch
new file mode 100644
index 0000000..017cb8d
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-15-update.5.patch
@@ -0,0 +1,25 @@
+**********> update.5
+
+Author: Jason Swails
+
+Date: Oct. 31, 2015
+
+Program: ParmEd
+
+Description: Fix Python 2.6-compatibility for ParmEd
+
+--------------------------------------------------------------------------------
+
+ AmberTools/src/parmed/chemistry/openmm/reporters.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git AmberTools/src/parmed/chemistry/openmm/reporters.py AmberTools/src/parmed/chemistry/openmm/reporters.py
+index d4e47d4..0f4c3ea 100644
+--- AmberTools/src/parmed/chemistry/openmm/reporters.py
++++ AmberTools/src/parmed/chemistry/openmm/reporters.py
+@@ -1,4 +1,4 @@
+-from __future__ import division
++from __future__ import division, with_statement
+
+ from chemistry.amber.asciicrd import AmberMdcrd
+ from chemistry.geometry import box_vectors_to_lengths_and_angles
diff --git a/sci-chemistry/ambertools/files/ambertools-15-update.6.patch b/sci-chemistry/ambertools/files/ambertools-15-update.6.patch
new file mode 100644
index 0000000..d7df551
--- /dev/null
+++ b/sci-chemistry/ambertools/files/ambertools-15-update.6.patch
@@ -0,0 +1,59 @@
+********> update.6
+
+Author: Charles Lin
+
+Date: November 10, 2015
+
+Programs: pmemd.cuda
+
+Description: This update gives support to cuda 7.5 and optional support for 7.0 (it is recommended to run cuda 6.5 or 7.5)
+
+--------------------------------------------------------
+
+ AmberTools/src/configure2 | 31 ++++++++++++++++++++++++++++++-
+ 1 file changed, 30 insertions(+), 1 deletion(-)
+
+diff --git AmberTools/src/configure2 AmberTools/src/configure2
+index 9a504b1..6835c9c 100755
+--- AmberTools/src/configure2
++++ AmberTools/src/configure2
+@@ -865,9 +865,38 @@ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPXP" = 'yes' -o "$cuda_DPFP" = 'yes' ]; the
+ echo "CUDA Version $cudaversion detected"
+ echo "Configuring for SM2.0, SM3.0 and SM5.0"
+ nvccflags="$sm20flags $sm30flags $sm50flags"
++ elif [ "$cudaversion" = "7.0" ]; then
++ printf "\n"
++ printf "Version 7.0 of the NVIDIA CUDA compiler has been detected.\n\
++Support for version 7.0 has been deprecated and we recommend use\n\
++of either 7.5 or 6.5 instead. Version 7.0 introduced a performance\n\
++regression over earlier compilers and also a bug in the way that GPUs are\n\
++selected based on whether they are in use or not. This bug causes AMBER to\n\
++print a GPU selection error rather than auto selecting a free GPU. These\n\
++issues do not effect v6.5 and have been addressed in version 7.5."
++ printf "\n"
++ printf "If you still want to proceed with v7.0 on the\n\
++understanding that it is considered deprecated from a support process please type\n\
++'yes' to proceed. Otherwise type 'no', switch to either 6.5 or 7.5\n\
++and rerun configure."
++ printf "\n"
++ read answer
++ ans=`echo $answer | awk '{print substr($1,1,1)}'`
++
++ if [ "$ans" = "y" -o "$ans" = "Y" ]; then
++ echo "Configuring for SM2.0, SM3.0 and SM5.0"
++ nvccflags="$sm20flags $sm30flags $sm50flags"
++ else
++ echo "Please set cuda version to 6.5 or 7.5!"
++ exit 1
++ fi
++ elif [ "$cudaversion" = "7.5" ]; then
++ echo "CUDA Version $cudaversion detected"
++ echo "Configuring for SM2.0, SM3.0, SM5.0 and SM5.2"
++ nvccflags="$sm20flags $sm30flags $sm50flags $sm52flags"
+ else
+ echo "Error: Unsupported CUDA version $cudaversion detected."
+- echo " AMBER requires CUDA version == 5.0 .or. 5.5 .or. 6.0 .or. 6.5 .or. 7.0"
++ echo " AMBER requires CUDA version == 5.0 .or. 5.5 .or. 6.0 .or. 6.5 .or. 7.5"
+ exit 1
+ fi
+ nvcc="$nvcc $nvccflags"
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2016-02-19 12:56 Justin Lecher
0 siblings, 0 replies; 18+ messages in thread
From: Justin Lecher @ 2016-02-19 12:56 UTC (permalink / raw
To: gentoo-commits
commit: e0b38273977b99aad7dd94c460f5783c98bb46a9
Author: Reinis Danne <rei4dan <AT> gmail <DOT> com>
AuthorDate: Fri Jan 22 13:16:08 2016 +0000
Commit: Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Fri Feb 19 12:55:38 2016 +0000
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=e0b38273
sci-chemistry/ambertools: Bump to EAPI=6, cleanup
- Remove unused eclass imports
- Fix symlink creation
- Declare loop variable local
- Use proper functions for library installation
sci-chemistry/ambertools/ambertools-15_p6.ebuild | 56 ++++++++++++++++------
.../ambertools/files/ambertools-15-gentoo.patch | 31 ++++--------
2 files changed, 50 insertions(+), 37 deletions(-)
diff --git a/sci-chemistry/ambertools/ambertools-15_p6.ebuild b/sci-chemistry/ambertools/ambertools-15_p6.ebuild
index c3a46c5..a80390c 100644
--- a/sci-chemistry/ambertools/ambertools-15_p6.ebuild
+++ b/sci-chemistry/ambertools/ambertools-15_p6.ebuild
@@ -2,11 +2,11 @@
# Distributed under the terms of the GNU General Public License v2
# $Id$
-EAPI=5
+EAPI=6
PYTHON_COMPAT=( python2_7 )
-inherit eutils fortran-2 multilib python-r1 toolchain-funcs
+inherit fortran-2 python-r1 toolchain-funcs
DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
HOMEPAGE="http://ambermd.org/#AmberTools"
@@ -49,11 +49,12 @@ pkg_setup() {
}
src_prepare() {
- epatch \
- "${FILESDIR}"/${PN}-15-gentoo.patch \
+ eapply \
+ "${FILESDIR}"/${PN}-15-gentoo.patch
+ eapply -p0 \
"${FILESDIR}"/${PN}-15-update.{1..6}.patch
- epatch_user
+ eapply_user
cd "${S}"/AmberTools/src || die
rm -r \
@@ -116,19 +117,20 @@ src_configure() {
gnu || die
}
-src_test() {
- source ${AMBERHOME}/amber.sh
-
- emake test
-}
-
src_compile() {
emake \
CC=$(tc-getCC) \
FC=$(tc-getFC)
}
+src_test() {
+ source ${AMBERHOME}/amber.sh
+
+ emake test
+}
+
src_install() {
+ local x
for x in bin/*
do
[ ! -d ${x} ] && dobin ${x}
@@ -143,16 +145,40 @@ src_install() {
dodir /usr/share/${PN}/bin
cd "${ED}/usr/bin" || die
for x in *
- do dosym /usr/bin/${x} ../share/${PN}/bin/${x}
+ do
+ dosym ../../../bin/${x} /usr/share/${PN}/bin/${x}
done
cd "${S}" || die
dodoc doc/Amber15.pdf
- dolib.a lib/*{.a,.so}
- insinto /usr/$(get_libdir)
- doins -r lib/python2.7
+
+ dolib.a lib/*.a
+ dolib.so lib/*.so
+
+ local m=(
+ chemistry
+ compat24.py
+ cpinutils
+ fortranformat
+ interface
+ mcpb
+ mdoutanalyzer
+ MMPBSA_mods
+ ParmedTools
+ pymsmtexp.py
+ pymsmtlib
+ pymsmtmol
+ sander
+ sanderles
+ )
+ for x in ${m[@]}
+ do
+ python_domodule lib/${EPYTHON}/site-packages/${x}
+ done
+
insinto /usr/include/${PN}
doins include/*
+
insinto /usr/share/${PN}
doins -r dat
cd AmberTools || die
diff --git a/sci-chemistry/ambertools/files/ambertools-15-gentoo.patch b/sci-chemistry/ambertools/files/ambertools-15-gentoo.patch
index f949a49..76be4f8 100644
--- a/sci-chemistry/ambertools/files/ambertools-15-gentoo.patch
+++ b/sci-chemistry/ambertools/files/ambertools-15-gentoo.patch
@@ -1,5 +1,5 @@
diff --git a/AmberTools/src/Makefile b/AmberTools/src/Makefile
-index 3d69773..c2a5045 100644
+index 3d69773..71c794c 100644
--- a/AmberTools/src/Makefile
+++ b/AmberTools/src/Makefile
@@ -15,12 +15,6 @@ install: $(INSTALLTYPE)
@@ -36,26 +36,26 @@ index 3d69773..c2a5045 100644
(cd pbsa && $(MAKE) libinstall )
(cd rism && $(MAKE) $(RISM) )
(cd cifparse && $(MAKE) install )
-@@ -144,12 +131,6 @@ parallel: configured_parallel THIRDPARTY
+@@ -144,12 +131,7 @@ 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 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:
+@@ -215,18 +197,12 @@ 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 cifparse && $(MAKE) clean )
-(cd nab && $(MAKE) clean )
-(cd sff && $(MAKE) clean )
-(cd nss && $(MAKE) clean )
@@ -68,7 +68,7 @@ index 3d69773..c2a5045 100644
-(cd etc && $(MAKE) clean )
-(cd chamber && $(MAKE) clean )
-(cd pbsa && $(MAKE) clean )
-@@ -236,15 +210,12 @@ clean::
+@@ -236,15 +212,12 @@ clean::
-(cd lib && $(MAKE) clean )
-(cd ptraj && $(MAKE) clean )
-(cd cpptraj && $(MAKE) clean)
@@ -84,7 +84,7 @@ index 3d69773..c2a5045 100644
-(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:
+@@ -315,7 +288,7 @@ $(LIBDIR)/libxblas-amb.a:
$(LIBDIR)/libfftw3.a $(LIBDIR)/libfftw3_mpi.a:
cd fftw-3.3 && $(MAKE) && $(MAKE) -j 1 install;
@@ -447,19 +447,6 @@ index 12acf35..4f26593 100644
$(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
@@ -517,7 +504,7 @@ index df789e8..48227d5 100644
netlib:
cd ../lapack && $(MAKE) $(LAPACK)
diff --git a/AmberTools/src/sander/Makefile b/AmberTools/src/sander/Makefile
-index 9b9488c..67fe45a 100644
+index 9b9488c..de25fc7 100644
--- a/AmberTools/src/sander/Makefile
+++ b/AmberTools/src/sander/Makefile
@@ -90,7 +90,7 @@ APBSOBJ= \
@@ -651,7 +638,7 @@ index 9b9488c..67fe45a 100644
-o rand2.o ../sff/rand2.c
+dsarpack.o: ../sff/dsarpack.f
-+ $(CC) -c -DSQM $(CNOOPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) \
++ $(FC) -c $(FPPFLAGS) $(CFLAGS) $(AMBERFFLAGS) \
+ -o dsarpack.o ../sff/dsarpack.f
+
lmodC.o: ../sff/lmodC.c
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/
@ 2020-09-26 16:21 Aisha Tammy
0 siblings, 0 replies; 18+ messages in thread
From: Aisha Tammy @ 2020-09-26 16:21 UTC (permalink / raw
To: gentoo-commits
commit: 3f82bedc598954b453b33eda83de53c47dd30ed0
Author: Aisha Tammy <gentoo <AT> aisha <DOT> cc>
AuthorDate: Sat Sep 26 16:20:34 2020 +0000
Commit: Aisha Tammy <gentoo <AT> aisha <DOT> cc>
CommitDate: Sat Sep 26 16:20:34 2020 +0000
URL: https://gitweb.gentoo.org/proj/sci.git/commit/?id=3f82bedc
sci-chemistry/ambertools: drop dead package
Package-Manager: Portage-3.0.8, Repoman-3.0.1
Signed-off-by: Aisha Tammy <gentoo <AT> aisha.cc>
.../ambertools/ambertools-12_p38-r1.ebuild | 164 ---
sci-chemistry/ambertools/ambertools-15_p6.ebuild | 190 ---
.../ambertools/files/ambertools-12-gentoo.patch | 1345 ------------------
.../files/ambertools-12_p38-format-security.patch | 100 --
.../ambertools/files/ambertools-12_p38-gcc5.patch | 28 -
.../ambertools/files/ambertools-15-gentoo.patch | 1428 --------------------
.../ambertools/files/ambertools-15-update.1.patch | 118 --
.../ambertools/files/ambertools-15-update.2.patch | 56 -
.../ambertools/files/ambertools-15-update.3.patch | 95 --
.../ambertools/files/ambertools-15-update.4.patch | 908 -------------
.../ambertools/files/ambertools-15-update.5.patch | 25 -
.../ambertools/files/ambertools-15-update.6.patch | 59 -
sci-chemistry/ambertools/metadata.xml | 12 -
13 files changed, 4528 deletions(-)
diff --git a/sci-chemistry/ambertools/ambertools-12_p38-r1.ebuild b/sci-chemistry/ambertools/ambertools-12_p38-r1.ebuild
deleted file mode 100644
index e8fe18256..000000000
--- a/sci-chemistry/ambertools/ambertools-12_p38-r1.ebuild
+++ /dev/null
@@ -1,164 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit eutils fortran-2 multilib multiprocessing toolchain-funcs
-
-DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
-HOMEPAGE="http://ambermd.org/#AmberTools"
-SRC_URI="
- AmberTools${PV%_p*}.tar.bz2
- http://dev.gentoo.org/~jlec/distfiles/${PN}-bugfixes-${PV}.tar.xz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux"
-IUSE="openmp X"
-
-RESTRICT="fetch"
-
-RDEPEND="
- virtual/cblas
- virtual/lapack
- sci-libs/clapack
- sci-libs/arpack
- sci-libs/cifparse-obj
- sci-chemistry/mopac7
- sci-libs/netcdf
- >=sci-libs/fftw-3.3:3.0
- sci-chemistry/reduce"
-DEPEND="${RDEPEND}
- app-shells/tcsh
- dev-util/byacc
- dev-libs/libf2c
- sys-devel/ucpp"
-
-S="${WORKDIR}/amber12"
-
-pkg_nofetch() {
- einfo "Go to ${HOMEPAGE} and get AmberTools${PV%_p*}.tar.bz2"
- einfo "and download http://dev.gentoo.org/~jlec/distfiles/${PN}-bugfixes-${PV}.tar.xz"
- einfo "Place both into ${DISTDIR}"
-}
-
-pkg_setup() {
- fortran-2_pkg_setup
- if use openmp; then
- tc-has-openmp || \
- die "Please select an openmp capable compiler like gcc[openmp]"
- fi
- export AMBERHOME="${S}"
-}
-
-src_prepare() {
- epatch \
- "${FILESDIR}"/${P}-gcc5.patch \
- "${FILESDIR}"/${P}-format-security.patch \
- "${FILESDIR}"/${PN}-12-gentoo.patch \
- "${WORKDIR}"/bugfixes/bugfix.{14..38}
- cd "${S}"/AmberTools/src || die
- rm -r \
- arpack \
- blas \
- byacc \
- lapack \
- fftw-3.3 \
- c9x-complex \
- cifparse \
- netcdf \
- reduce \
- ucpp-1.3 \
- || die
-
- cd "${S}"/AmberTools/src || die
- sed \
- -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
- -e "s:\\\\\$(LIBDIR)/lapack.a:$($(tc-getPKG_CONFIG) lapack --libs) -lclapack:g" \
- -e "s:-llapack:$($(tc-getPKG_CONFIG) lapack --libs) -lclapack:g" \
- -e "s:\\\\\$(LIBDIR)/blas.a:$($(tc-getPKG_CONFIG) blas cblas --libs):g" \
- -e "s:-lblas:$($(tc-getPKG_CONFIG) blas cblas --libs):g" \
- -e "s:GENTOO_CFLAGS:${CFLAGS} -DBINTRAJ :g" \
- -e "s:GENTOO_CXXFLAGS:${CXXFLAGS}:g" \
- -e "s:GENTOO_FFLAGS:${FFLAGS}:g" \
- -e "s:GENTOO_LDFLAGS:${LDFLAGS}:g" \
- -e "s:GENTOO_INCLUDE:${EPREFIX}/usr/include:g" \
- -e "s:GENTOO_FFTW3_LIBS:$($(tc-getPKG_CONFIG) fftw3 --libs):" \
- -e "s:fc=g77:fc=$(tc-getFC):g" \
- -e "s:\$netcdfflag:$($(tc-getPKG_CONFIG) netcdf --libs):g" \
- -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
- -i configure2 || die
-
- sed \
- -e "s:arsecond_:arscnd_:g" \
- -i sff/time.c sff/sff.h sff/sff.c || die
-
-}
-
-src_configure() {
- local myconf="--no-updates"
-
- use X || myconf="${myconf} -noX11"
-
- use openmp && myconf="${myconf} -openmp"
-
- cd "${S}" || die
-
- sed \
- -e '/patch_amber.py/d' \
- -i configure || die
-
- ./configure \
- ${myconf} \
- -nobintraj \
- -nomtkpp \
- gnu || die
-}
-
-src_test() {
- use openmp && export OMP_NUM_THREADS=$(makeopts_jobs)
-
- emake test
-}
-
-src_compile() {
- emake \
- CC=$(tc-getCC) \
- FC=$(tc-getFC)
-}
-
-src_install() {
- rm bin/*.py || die
-
- for x in bin/*
- do
- [ ! -d ${x} ] && dobin ${x}
- done
-
- dobin AmberTools/src/antechamber/mopac.sh
- sed \
- -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
- -i "${ED}/usr/bin/mopac.sh" || die
-
- # Make symlinks untill binpath for amber will be fixed
- dodir /usr/share/${PN}/bin
- cd "${ED}/usr/bin" || die
- for x in *; do
- dosym ../../../bin/${x} /usr/share/${PN}/bin/${x}
- done
- cd "${S}" || die
-
- dodoc doc/AmberTools12.pdf
- dolib.a lib/*
- insinto /usr/include/${PN}
- doins include/*
- insinto /usr/share/${PN}
- doins -r dat
- cd AmberTools || die
- doins -r benchmarks examples test
-
- cat >> "${T}"/99ambertools <<- EOF
- AMBERHOME="${EPREFIX}/usr/share/ambertools"
- EOF
- doenvd "${T}"/99ambertools
-}
diff --git a/sci-chemistry/ambertools/ambertools-15_p6.ebuild b/sci-chemistry/ambertools/ambertools-15_p6.ebuild
deleted file mode 100644
index 8aa759071..000000000
--- a/sci-chemistry/ambertools/ambertools-15_p6.ebuild
+++ /dev/null
@@ -1,190 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python2_7 )
-
-inherit fortran-2 python-r1 toolchain-funcs
-
-DESCRIPTION="A suite for carrying out complete molecular mechanics investigations"
-HOMEPAGE="http://ambermd.org/#AmberTools"
-SRC_URI="
- AmberTools${PV%_p*}.tar.bz2"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux"
-IUSE="X"
-
-RESTRICT="fetch"
-
-RDEPEND="${PYTHON_DEPS}
- virtual/cblas
- virtual/lapack
- sci-libs/clapack
- sci-libs/arpack
- sci-chemistry/mopac7
- sci-libs/netcdf
- sci-libs/netcdf-fortran
- >=sci-libs/fftw-3.3:3.0
- sci-chemistry/reduce"
-DEPEND="${RDEPEND}
- app-shells/tcsh
- dev-util/byacc
- dev-libs/libf2c
- sys-devel/ucpp"
-
-S="${WORKDIR}/amber14"
-
-pkg_nofetch() {
- einfo "Go to ${HOMEPAGE} and get AmberTools${PV%_p*}.tar.bz2"
- einfo "Place it into ${DISTDIR}"
-}
-
-pkg_setup() {
- fortran-2_pkg_setup
- export AMBERHOME="${S}"
-}
-
-src_prepare() {
- eapply \
- "${FILESDIR}"/${PN}-15-gentoo.patch
- eapply -p0 \
- "${FILESDIR}"/${PN}-15-update.{1..6}.patch
-
- eapply_user
-
- cd "${S}"/AmberTools/src || die
- rm -r \
- arpack \
- blas \
- byacc \
- lapack \
- fftw-3.3 \
- c9x-complex \
- netcdf-fortran-4.2 \
- netcdf-4.3.0 \
- reduce \
- ucpp-1.3 \
- || die
-
- cd "${S}"/AmberTools/src || die
- sed \
- -e "s:\\\\\$(LIBDIR)/arpack.a:-larpack:g" \
- -e "s:\\\\\$(LIBDIR)/lapack.a:$($(tc-getPKG_CONFIG) lapack --libs) -lclapack:g" \
- -e "s:-llapack:$($(tc-getPKG_CONFIG) lapack --libs) -lclapack:g" \
- -e "s:\\\\\$(LIBDIR)/blas.a:$($(tc-getPKG_CONFIG) blas cblas --libs):g" \
- -e "s:-lblas:$($(tc-getPKG_CONFIG) blas cblas --libs):g" \
- -e "s:GENTOO_CFLAGS:${CFLAGS}:g" \
- -e "s:GENTOO_CXXFLAGS:${CXXFLAGS}:g" \
- -e "s:GENTOO_FFLAGS:${FFLAGS}:g" \
- -e "s:GENTOO_LDFLAGS:${LDFLAGS}:g" \
- -e "s:GENTOO_INCLUDE:${EPREFIX}/usr/include:g" \
- -e "s:GENTOO_FFTW3_LIBS:$($(tc-getPKG_CONFIG) fftw3 --libs):" \
- -e "s:fc=g77:fc=$(tc-getFC):g" \
- -e "s:NETCDF=\$netcdf:NETCDF=netcdf.mod:g" \
- -e "s:\$netcdf_flag:$($(tc-getPKG_CONFIG) netcdf --libs):g" \
- -e "s:\$netcdfflagc:$($(tc-getPKG_CONFIG) netcdf --libs):g" \
- -e "s:\$netcdfflagf:$($(tc-getPKG_CONFIG) netcdf-fortran --libs):g" \
- -i configure2 || die
-
- sed \
- -e "s:arsecond_:arscnd_:g" \
- -i sff/time.c sff/sff.h sff/sff.c || die
-
-}
-
-src_configure() {
- python_setup
-
- local myconf="--no-updates"
-
- use X || myconf="${myconf} -noX11"
-
- cd "${S}" || die
-
- sed \
- -e '/patch_amber.py/d' \
- -i configure || die
-
- ./configure \
- ${myconf} \
- -nomtkpp \
- --with-python ${PYTHON} \
- --with-netcdf /usr \
- gnu || die
-}
-
-src_compile() {
- emake \
- CC=$(tc-getCC) \
- FC=$(tc-getFC)
-}
-
-src_test() {
- source ${AMBERHOME}/amber.sh
-
- emake test
-}
-
-src_install() {
- local x
- for x in bin/*
- do
- [ ! -d ${x} ] && dobin ${x}
- done
-
- dobin AmberTools/src/antechamber/mopac.sh
- sed \
- -e "s:\$AMBERHOME/bin/mopac:mopac7:g" \
- -i "${ED}/usr/bin/mopac.sh" || die
-
- # Make symlinks untill binpath for amber will be fixed
- dodir /usr/share/${PN}/bin
- cd "${ED}/usr/bin" || die
- for x in *
- do
- dosym ../../../bin/${x} /usr/share/${PN}/bin/${x}
- done
- cd "${S}" || die
-
- dodoc doc/Amber15.pdf
-
- dolib.a lib/*.a
- dolib.so lib/*.so
-
- local m=(
- chemistry
- compat24.py
- cpinutils
- fortranformat
- interface
- mcpb
- mdoutanalyzer
- MMPBSA_mods
- ParmedTools
- pymsmtexp.py
- pymsmtlib
- pymsmtmol
- sander
- sanderles
- )
- for x in ${m[@]}
- do
- python_domodule lib/${EPYTHON}/site-packages/${x}
- done
-
- insinto /usr/include/${PN}
- doins include/*
-
- insinto /usr/share/${PN}
- doins -r dat
- cd AmberTools || die
- doins -r benchmarks examples test
-
- cat >> "${T}"/99ambertools <<- EOF
- AMBERHOME="${EPREFIX}/usr/share/ambertools"
- EOF
- doenvd "${T}"/99ambertools
-}
diff --git a/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch b/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch
deleted file mode 100644
index 110343e22..000000000
--- a/sci-chemistry/ambertools/files/ambertools-12-gentoo.patch
+++ /dev/null
@@ -1,1345 +0,0 @@
- AmberTools/src/Makefile | 42 +-
- AmberTools/src/configure2 | 63 +-
- AmberTools/src/cpptraj/src/Makefile_at | 14 +-
- AmberTools/src/mdgx/Makefile | 9 +-
- AmberTools/src/mdgx/Trajectory.c | 2 +-
- .../src/mmpbsa_py/MMPBSA_mods/amber_outputs.py | 4 +-
- AmberTools/src/nab/database.c | 2 +-
- AmberTools/src/nab/nab.c | 4 +-
- AmberTools/src/pbsa/Makefile | 44 +-
- AmberTools/src/ptraj/Makefile | 9 +-
- AmberTools/src/ptraj/trajectory.c | 2 +-
- AmberTools/src/sff/Makefile | 4 +-
- AmberTools/src/sff/dsarpack.f | 654 +++++++++++++++++++++
- AmberTools/src/sqm/Makefile | 7 +-
- AmberTools/test/Makefile | 4 +-
- .../01_Generalized_Born/energies.csv.save | 8 +-
- AmberTools/test/nab/Makefile | 2 +
- AmberTools/test/nab/Run.rism_sp | 2 +-
- AmberTools/test/nab/Run.rism_sp2 | 2 +-
- AmberTools/test/test_at_serial.sh | 6 +
- Makefile | 2 +-
- 21 files changed, 725 insertions(+), 161 deletions(-)
-
-diff --git a/AmberTools/src/Makefile b/AmberTools/src/Makefile
-index e5c0ded..ce8f883 100644
---- a/AmberTools/src/Makefile
-+++ b/AmberTools/src/Makefile
-@@ -13,12 +13,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 etc && $(MAKE) install )
- (cd chamber && $(MAKE) install )
- (cd pbsa && $(MAKE) install )
-@@ -34,13 +28,11 @@ serial: configured_serial THIRDPARTY $(MTKPP)
- (cd cpptraj && $(MAKE) install)
-
- # miscellaneous:
-- (cd reduce && $(MAKE) install )
-
- # leap
- (cd leap && $(MAKE) install )
-
- # nab:
-- (cd cifparse && $(MAKE) install )
- (cd sff && $(MAKE) install )
- (cd pbsa && $(MAKE) libinstall )
- (cd rism && $(MAKE) $(RISM) )
-@@ -77,17 +69,10 @@ serial: configured_serial THIRDPARTY $(MTKPP)
- @echo "Installation of ${AMBERTOOLS} serial is complete at `date`."
- @echo ""
-
--nabonly: $(NETCDF) $(XBLAS)
-+nabonly: $(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 )
- (cd sff && $(MAKE) install )
- (cd nab && $(MAKE) install )
- (cd nss && $(MAKE) install )
-@@ -119,8 +104,6 @@ parallel: configured_parallel THIRDPARTY
- (cd sff && $(MAKE) libsff_mpi )
- # (cd pbsa && $(MAKE) clean && $(MAKE) install.parallel )
- (cd pbsa && $(MAKE) libinstall )
-- (cd byacc && $(MAKE) install )
-- (cd ucpp-1.3 && $(MAKE) $(UCPP) )
- # (cd mdgx && $(MAKE) parallel )
- (if [ "$(RISM)" = "yes" ]; then \
- cd rism && $(MAKE) install_mpi ; \
-@@ -162,18 +145,11 @@ configured_parallel: configured
- )
-
- clean:: 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 )
-@@ -182,15 +158,12 @@ clean:: netcdf_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 xray && $(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 && $(MAKE) clean )
- -(cd parmed && $(MAKE) clean )
-
-@@ -201,18 +174,11 @@ netcdf_clean:
- -(cd netcdf/bin && rm -f *)
-
- uninstall:
-- -(cd ucpp-1.3 && $(MAKE) uninstall )
-- -(cd byacc && $(MAKE) uninstall )
-- -(cd cifparse && $(MAKE) uninstall )
- -(cd nab && $(MAKE) uninstall )
- -(cd sff && $(MAKE) uninstall )
- -(cd nss && $(MAKE) uninstall )
- -(cd leap && $(MAKE) uninstall )
-- -(cd arpack && $(MAKE) uninstall )
-- -(cd blas && $(MAKE) uninstall )
- -($(RM) -f $(LIBDIR)/libxblas.a )
-- -(cd lapack && $(MAKE) uninstall )
-- -(cd c9x-complex && $(MAKE) uninstall )
- -(cd etc && $(MAKE) uninstall )
- -(cd chamber && $(MAKE) uninstall )
- -(cd pbsa && $(MAKE) uninstall )
-@@ -220,7 +186,6 @@ uninstall:
- -(cd sqm && $(MAKE) uninstall )
- -(cd lib && $(MAKE) uninstall )
- -(cd ptraj && $(MAKE) uninstall )
-- -(cd reduce && $(MAKE) uninstall )
- -(cd mdgx && $(MAKE) uninstall )
- -(cd xtalutil/CPrograms && $(MAKE) uninstall )
- -(cd xray && $(MAKE) uninstall )
-@@ -228,15 +193,12 @@ uninstall:
- -(cd paramfit && $(MAKE) uninstall )
- -(cd rism && $(MAKE) uninstall )
- -(cd netcdf/src && $(MAKE) uninstall)
-- -(cd fftw-3.3 && $(MAKE) uninstall)
- -(cd cpptraj && $(MAKE) uninstall)
- -(cd mmpbsa_py && $(MAKE) uninstall )
- -(cd parmed && $(MAKE) uninstall )
- -(cd amberlite && $(MAKE) uninstall )
- -/bin/rm -f ../test/numprocs
- -/bin/rm -fr $(BINDIR)/ncmpidump $(BINDIR)/ncmpigen $(BINDIR)/ncvalid $(LIBDIR)/libnetcdf.a $(INCDIR)/mtkpp
-- -(cd $(LIBDIR) && /bin/rm -f libxblas-amb.a libfftw3_mpi.a libfftw3_mpi.la)
-- -(cd $(INCDIR) && /bin/rm -f fftw3-mpi.f03 fftw3-mpi.h)
-
- $(INCDIR)/netcdf.mod:
- cd netcdf/src && $(MAKE) && $(MAKE) -j 1 install
-@@ -247,7 +209,7 @@ $(LIBDIR)/libxblas-amb.a:
- $(LIBDIR)/libfftw3.a $(LIBDIR)/libfftw3_mpi.a:
- cd fftw-3.3 && $(MAKE) && $(MAKE) -j 1 install;
-
--THIRDPARTY: $(NETCDF) $(XBLAS) $(FFTW3)
-+THIRDPARTY: $(XBLAS)
-
- cuda:
- @echo "$(AMBERTOOLS) has no CUDA-enabled components"
-diff --git a/AmberTools/src/configure2 b/AmberTools/src/configure2
-index 25d3f0a..1ad86e6 100755
---- a/AmberTools/src/configure2
-+++ b/AmberTools/src/configure2
-@@ -387,11 +387,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?
-@@ -618,13 +618,14 @@ gnu)
- flibs_arch="-lgfortran -w"
- flibsf_arch=
- cc=gcc
-- cflags=
-+ cflags="GENTOO_CFLAGS"
- ambercflags=""
- cplusplus=g++
-- cxxflags=
-+ cxxflags="GENTOO_CXXFLAGS"
- ambercxxflags=""
- fc=gfortran
-- fflags=
-+ fflags="GENTOO_FFLAGS"
-+ ldflags="GENTOO_LDFLAGS"
- staticflag='-static'
-
- # If -noopt has been requested, force lack of optimisation;
-@@ -645,11 +646,11 @@ gnu)
- foptflags=""
- else
- cnooptflags=
-- coptflags="-O3"
-+ coptflags="GENTOO_CFLAGS"
- cxxnooptflags=
-- cxxoptflags="-O3"
-+ cxxoptflags="GENTOO_CXXFLAGS"
- fnooptflags="-O0"
-- foptflags="-O3"
-+ foptflags="GENTOO_FFLAGS"
- fi
-
- # Debugging options
-@@ -2026,26 +2027,26 @@ EOF
- 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=yes \
-- $enable_mpi $enable_debug $enable_sse\
-- CC="$cc" CFLAGS="$cflags $coptflags" \
-- F77="$fc" FFLAGS="$fflags $foptflags" \
-- FLIBS="$flibs_arch" \
-- > ../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 diretory."
-- exit 1
-- else
-- echo " fftw-3.3 configure succeeded."
-- fi
-- cd ..
-+# cd fftw-3.3 && \
-+# ./configure --prefix=$AMBERHOME --libdir=$AMBERHOME/lib \
-+# --enable-static=yes \
-+# $enable_mpi $enable_debug $enable_sse\
-+# CC="$cc" CFLAGS="$cflags $coptflags" \
-+# F77="$fc" FFLAGS="$fflags $foptflags" \
-+# FLIBS="$flibs_arch" \
-+# > ../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 diretory."
-+# exit 1
-+# else
-+# echo " fftw-3.3 configure succeeded."
-+# fi
-+# cd ..
- fftw3="FFTW3"
-- flibs_fftw3="-lfftw3"
-+ flibs_fftw3="GENTOO_FFTW3_LIBS"
- fftw3="\$(LIBDIR)/libfftw3.a"
- if [ "$mpi" = 'yes' ]; then
- flibs_fftw3="-lfftw3_mpi $flibs_fftw3"
-@@ -2282,7 +2283,7 @@ LDFLAGS=$ldflags \$(CUSTOMBUILDFLAGS)
- AMBERLDFLAGS=\$(AMBERBUILDFLAGS)
-
- LEX= $lex
--YACC= \$(BINDIR)/yacc
-+YACC= byacc
- AR= ar rv
- M4= $m4
- RANLIB=$ranlib
-@@ -2319,7 +2320,7 @@ CP=$localcp
- # Information about Fortran compilation:
-
- FC=$fc
--FFLAGS= $fflags \$(LOCALFLAGS) \$(CUSTOMBUILDFLAGS) -I\$(INCDIR) \$(NETCDFINC) $mklinc
-+FFLAGS= $fflags \$(LOCALFLAGS) \$(CUSTOMBUILDFLAGS) -IGENTOO_INCLUDE \$(NETCDFINC) $mklinc
- FNOOPTFLAGS= $fnooptflags
- FOPTFLAGS= $foptflags
- AMBERFFLAGS=\$(AMBERBUILDFLAGS)
-diff --git a/AmberTools/src/cpptraj/src/Makefile_at b/AmberTools/src/cpptraj/src/Makefile_at
-index 822b451..0684b0c 100644
---- a/AmberTools/src/cpptraj/src/Makefile_at
-+++ b/AmberTools/src/cpptraj/src/Makefile_at
-@@ -29,22 +29,10 @@ dependclean:
- -/bin/rm FindDepend.o
- -/bin/rm findDepend
-
--cpptraj$(SFX): $(NETCDF) $(OBJECTS) $(PTRAJ_OBJECTS) $(EXTERNAL_LIBS)
-+cpptraj$(SFX): $(OBJECTS) $(PTRAJ_OBJECTS)
- $(CXX) $(LDFLAGS) -o cpptraj$(SFX) $(OBJECTS) $(PTRAJ_OBJECTS) \
- -L$(LIBDIR) $(NETCDFLIB) $(ZLIB) $(BZLIB) $(FLIBS_PTRAJ)
-
--$(INCDIR)/netcdf.mod: ../../netcdf_config.log
-- cd ../../netcdf/src && $(MAKE) install
--
--$(LIBDIR)/libarpack.a:
-- cd ../../arpack && $(MAKE) install
--
--$(LIBDIR)/liblapack.a:
-- cd ../../lapack && $(MAKE) $(LAPACK)
--
--$(LIBDIR)/libblas.a:
-- cd ../../blas && $(MAKE) $(BLAS)
--
- thermo.o: ../../ptraj/thermo.F90
- $(FC) $(FPPFLAGS) -c $(FREEFORMAT_FLAG) $(FOPTFLAGS) $(FFLAGS) $(AMBERFFLAGS) -o $@ ../../ptraj/thermo.F90
-
-diff --git a/AmberTools/src/mdgx/Makefile b/AmberTools/src/mdgx/Makefile
-index 7bad950..b7a560b 100644
---- a/AmberTools/src/mdgx/Makefile
-+++ b/AmberTools/src/mdgx/Makefile
-@@ -132,19 +132,16 @@ MDGX_HEADERS = \
- ptrajmask.h \
- ../sff/AmberNetcdf.h
-
--mdgx$(SFX) : $(MDGX_OBJS) $(LIBDIR)/libfftw3.a
-+mdgx$(SFX) : $(MDGX_OBJS)
- $(CC) $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) \
- -o $@ $(MDGX_OBJS) $(FFTWLIB) -L$(LIBDIR) $(NETCDFLIB) $(LM)
-
--mdgx.MPI$(SFX) : $(MDGX_OBJS) $(LIBDIR)/libfftw3.a
-+mdgx.MPI$(SFX) : $(MDGX_OBJS)
- $(CC) $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) $(LDFLAGS) \
- -o $@ $(MDGX_OBJS) $(FFTWLIB) -L$(LIBDIR) $(NETCDFLIB) $(LM)
-
--$(LIBDIR)/fftw3.a: ../fftw-3.3/config.log
-- cd ../fftw-3.3 && $(MAKE) && $(MAKE) -j 1 install;
--
- .c.o:
-- $(CC) -c $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) -I$(INCDIR) -I../fftw-3.3/api -o $@ $<
-+ $(CC) -c $(COPTFLAGS) $(CFLAGS) $(AMBERCFLAGS) -I$(INCDIR) -o $@ $<
-
- clean:
- /bin/rm -f $(MDGX_OBJS) mdgx$(SFX)
-diff --git a/AmberTools/src/mdgx/Trajectory.c b/AmberTools/src/mdgx/Trajectory.c
-index 524dad8..5df64c6 100644
---- a/AmberTools/src/mdgx/Trajectory.c
-+++ b/AmberTools/src/mdgx/Trajectory.c
-@@ -214,7 +214,7 @@ void ExtendCoordinates(coord *tc, prmtop *tp)
- coord ReadRst(prmtop *tp, char* source)
- {
- int i, rsttype;
-- char line[128];
-+ char line[MAXLINE];
- FILE *inp;
- coord tc;
-
-diff --git a/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py b/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
-index b01b891..24ea20f 100644
---- a/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
-+++ b/AmberTools/src/mmpbsa_py/MMPBSA_mods/amber_outputs.py
-@@ -210,7 +210,7 @@ class AmberOutput(object):
-
- # write out each frame
- for i in range(len(self.data[print_keys[0]])):
-- csvwriter.writerow([i] + [self.data[key][i] for key in print_keys])
-+ csvwriter.writerow([i] + ["%.4f" % self.data[key][i] for key in print_keys])
-
- #==================================================
-
-@@ -1003,7 +1003,7 @@ class BindingStatistics(object):
-
- # write out each frame
- for i in range(len(self.data[print_keys[0]])):
-- csvwriter.writerow([i]+[self.data[key][i] for key in print_keys])
-+ csvwriter.writerow([i]+["%.4f" % self.data[key][i] for key in print_keys])
- csvwriter.writerow([])
-
- #==================================================
-diff --git a/AmberTools/src/nab/database.c b/AmberTools/src/nab/database.c
-index 0b98d35..9aad62a 100644
---- a/AmberTools/src/nab/database.c
-+++ b/AmberTools/src/nab/database.c
-@@ -1135,7 +1135,7 @@ int* iPLines;
- char* PBuffer;
- int iBufferInc;
- {
--String sLine;
-+String sLine[MAXDATALINELEN];
-
-
-
-diff --git a/AmberTools/src/nab/nab.c b/AmberTools/src/nab/nab.c
-index 84e03ef..d49b711 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/pbsa/Makefile b/AmberTools/src/pbsa/Makefile
-index 0a3f12f..2105b00 100644
---- a/AmberTools/src/pbsa/Makefile
-+++ b/AmberTools/src/pbsa/Makefile
-@@ -144,23 +144,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
-@@ -188,48 +188,12 @@ libFpbsa.parallel: $(SANDERPBSAOBJS)
- $(RANLIB) libFpbsa.a
- /bin/mv libFpbsa.a $(LIBDIR)
-
--FFTW3:
-- @if [ "$(PBSAFLAG)" = "-DFFTW" ]; then \
-- if [ "$(FLIBS_FFTW3)" = '-lfftw3xf_$(COMPILER)' ]; then\
-- cd $(MKL)/interfaces/fftw3xf && $(MAKE) lib$(MKL_PROCESSOR) \
-- compiler=$(COMPILER) PRECISION=MKL_DOUBLE \
-- INSTALL_DIR=$(LIBDIR); \
-- else \
-- if [ ! -f $(INCDIR)/fftw3.f03 ]; then\
-- cd ../fftw-3.3 && $(MAKE) && $(MAKE) -j 1 install; \
-- fi \
-- fi \
-- fi
--
--FFTW3.MPI:
-- @if [ "$(PBSAFLAG)" = "-DFFTW" ]; then \
-- if [ "$(FLIBS_FFTW3)" = '-lfftw3xf_$(COMPILER)' ]; then\
-- cd $(MKL)/interfaces/fftw3xf && $(MAKE) lib$(MKL_PROCESSOR) \
-- compiler=$(COMPILER) PRECISION=MKL_DOUBLE \
-- INSTALL_DIR=$(LIBDIR); \
-- else \
-- if [ ! -f $(INCDIR)/fftw3-mpi.f03 ]; then\
-- cd ../fftw-3.3 && $(MAKE) && $(MAKE) -j 1 install; \
-- fi \
-- fi \
-- fi
--
- syslib:
- cd ../lib && $(MAKE) nxtsec.o random.o
-
- sfflib:
- cd ../sff && $(MAKE) install
-
--netlib:
-- cd ../lapack && $(MAKE) $(LAPACK)
-- cd ../blas && $(MAKE) $(BLAS)
-- cd ../arpack && $(MAKE) install
--
--c9x-complex:
-- @if test $(C9XCOMPLEX) != "skip"; then \
-- cd ../c9x-complex && $(MAKE) libmc.a; \
-- fi
--
- pb_init.o: pb_init.F90
- $(FC) $(PBSAFLAG) $(FPPFLAGS) -c -O0 $(FFLAGS) $(AMBERFFLAGS) -o $@ $<
-
-diff --git a/AmberTools/src/ptraj/Makefile b/AmberTools/src/ptraj/Makefile
-index 3e643b9..b3089f1 100644
---- a/AmberTools/src/ptraj/Makefile
-+++ b/AmberTools/src/ptraj/Makefile
-@@ -61,21 +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)
-- cd ../blas && $(MAKE) $(BLAS)
-
- clean:
- cd pdb && $(MAKE) clean
-diff --git a/AmberTools/src/ptraj/trajectory.c b/AmberTools/src/ptraj/trajectory.c
-index 110ffce..49bdf1a 100644
---- a/AmberTools/src/ptraj/trajectory.c
-+++ b/AmberTools/src/ptraj/trajectory.c
-@@ -1315,7 +1315,7 @@ readAmberTrajectory_nobuffer(FILE *fpin, int natoms,
- {
- fpos_t fileMarker; /* marker for current file postition */
- char *junk;
-- char buffer[120];
-+ char buffer[BUFFER_SIZE];
- char coords[26]; /* room for 24 characters (3f8.3) + \n + (char) 0 */
- char c;
- int j,ret;
-diff --git a/AmberTools/src/sff/Makefile b/AmberTools/src/sff/Makefile
-index 83f362c..13efc78 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 $(SFF_RISM_INTERFACE)
-
-
-@@ -63,7 +63,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 3b49c55..61d0dc3 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)
-
-@@ -101,11 +101,6 @@ $(LIBDIR)/libsqm.a: $(QMOBJ) $(LIBQMOBJ)
- sys:
- cd ../lib; $(MAKE) sys.a
-
--netlib:
-- cd ../lapack; $(MAKE) $(LAPACK)
-- cd ../blas; $(MAKE) $(BLAS)
-- cd ../arpack && $(MAKE) install
--
- clean:
- /bin/rm -f *.o *.mod *.d sqm$(SFX)
-
-diff --git a/AmberTools/test/Makefile b/AmberTools/test/Makefile
-index 27afe24..4796250 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.ptraj test.cpptraj test.antechamber \
- test.leap test.resp test.pbsa test.mmpbsa test.parmed \
- test.ambpdb test.elsize test.chamber test.sqm test.rism1d \
-diff --git a/AmberTools/test/mmpbsa_py/01_Generalized_Born/energies.csv.save b/AmberTools/test/mmpbsa_py/01_Generalized_Born/energies.csv.save
-index 3595375..1a0be46 100644
---- a/AmberTools/test/mmpbsa_py/01_Generalized_Born/energies.csv.save
-+++ b/AmberTools/test/mmpbsa_py/01_Generalized_Born/energies.csv.save
-@@ -7,16 +7,16 @@ Frame #,VDWAALS,EEL,EGB,ESURF,G gas,G solv,TOTAL
- Receptor Energy Terms
- Frame #,VDWAALS,EEL,EGB,ESURF,G gas,G solv,TOTAL
- 0,-1969.4265,-17103.7958,-3027.0953,101.7772,-19073.2223,-2925.3181,-21998.5404
--1,-1956.6674,-17020.9923,-3062.954,102.3918,-18977.6597,-2960.5622,-21938.2219
-+1,-1956.6674,-17020.9923,-3062.9540,102.3918,-18977.6597,-2960.5622,-21938.2219
-
- Ligand Energy Terms
- Frame #,VDWAALS,EEL,EGB,ESURF,G gas,G solv,TOTAL
--0,-1.2566,-5.6263,-28.5797,4.4486,-6.8829,-24.1311,-31.014
-+0,-1.2566,-5.6263,-28.5797,4.4486,-6.8829,-24.1311,-31.0140
- 1,-3.1118,-6.1548,-29.3738,4.4016,-9.2666,-24.9722,-34.2388
-
- DELTA Energy Terms
- Frame #,VDWAALS,EEL,EGB,ESURF,DELTA G gas,DELTA G solv,DELTA TOTAL
--0,-63.4582,-32.3518,35.2679,-8.3751,-95.81,26.8928,-68.9172
--1,-60.9966,-35.1045,41.6205,-8.465,-96.1011,33.1555,-62.9456
-+0,-63.4582,-32.3518,35.2679,-8.3751,-95.8100,26.8928,-68.9172
-+1,-60.9966,-35.1045,41.6205,-8.4650,-96.1011,33.1555,-62.9456
-
-
-diff --git a/AmberTools/test/nab/Makefile b/AmberTools/test/nab/Makefile
-index 1bb2505..7459a15 100644
---- a/AmberTools/test/nab/Makefile
-+++ b/AmberTools/test/nab/Makefile
-@@ -12,6 +12,8 @@ testrism: \
- rism_ion-noasymp rism_ion_pse1 rism_ion_pse3 rism_mdiis0 rism_mdiis1 \
- rism_sp rism_sp2
-
-+.NOTPARALLEL:
-+
- duplex_test::
- @./Run.duplex
-
-diff --git a/AmberTools/test/nab/Run.rism_sp b/AmberTools/test/nab/Run.rism_sp
-index bd8471d..a88bf58 100755
---- a/AmberTools/test/nab/Run.rism_sp
-+++ b/AmberTools/test/nab/Run.rism_sp
-@@ -47,7 +47,7 @@ $DO_PARALLEL $cmd --pdb ala.pdb --prmtop ala.parm7 --traj ala.nc \
- --polarDecomp\
- --noprogress > rism3d.snglpnt.out || error
-
--checkrism3d -err 1e-6 rism3d.snglpnt.out.check rism3d.snglpnt.out
-+./checkrism3d -err 1e-6 rism3d.snglpnt.out.check rism3d.snglpnt.out
-
- awk '{if (NR % 10 == 0) print $0}' quv.1.xyzv > quv.1.xyzv.trunc
- ../dacdif -r 1e-6 quv.1.xyzv.trunc.check quv.1.xyzv.trunc
-diff --git a/AmberTools/test/nab/Run.rism_sp2 b/AmberTools/test/nab/Run.rism_sp2
-index a2b9521..11da8de 100755
---- a/AmberTools/test/nab/Run.rism_sp2
-+++ b/AmberTools/test/nab/Run.rism_sp2
-@@ -38,7 +38,7 @@ $DO_PARALLEL $cmd --pdb ala.pdb --prmtop ala.parm7 --traj ala.crd \
- --buffer 10 --guv guv.2\
- --noprogress > rism3d.snglpnt.2.out || error
-
--checkrism3d -err 1e-6 rism3d.snglpnt.2.out.check rism3d.snglpnt.2.out
-+./checkrism3d -err 1e-6 rism3d.snglpnt.2.out.check rism3d.snglpnt.2.out
- ../dacdif -a 1e-6 guv.2.O.1.dx.check guv.2.O.1.dx
- ../dacdif -a 1e-6 guv.2.H1.2.dx.check guv.2.H1.2.dx
- ../dacdif -a 1e-6 guv.2.O.3.dx.check guv.2.O.3.dx
-diff --git a/AmberTools/test/test_at_serial.sh b/AmberTools/test/test_at_serial.sh
-index 15bb590..8fa52e3 100755
---- a/AmberTools/test/test_at_serial.sh
-+++ b/AmberTools/test/test_at_serial.sh
-@@ -39,3 +39,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/Makefile b/Makefile
-index 54ddfcb..643ba15 100644
---- a/Makefile
-+++ b/Makefile
-@@ -30,7 +30,7 @@ clean.test:
- test:: test.$(INSTALLTYPE)
-
- test.serial:
-- -(cd AmberTools/test && $(MAKE) test)
-+ (cd AmberTools/test && $(MAKE) test)
- -@(if [ -n "$(BUILDAMBER)" ] ; then \
- cd test && $(MAKE) test; \
- echo "" ; \
diff --git a/sci-chemistry/ambertools/files/ambertools-12_p38-format-security.patch b/sci-chemistry/ambertools/files/ambertools-12_p38-format-security.patch
deleted file mode 100644
index bb22a627a..000000000
--- a/sci-chemistry/ambertools/files/ambertools-12_p38-format-security.patch
+++ /dev/null
@@ -1,100 +0,0 @@
- AmberTools/src/mdgx/ChargeFit.c | 4 ++--
- AmberTools/src/nab/cgen.c | 2 +-
- AmberTools/src/nab/traceback.c | 2 +-
- AmberTools/src/ptraj/cluster.c | 2 +-
- AmberTools/src/ptraj/interface.c | 6 +++---
- AmberTools/src/semantics/parse.c | 2 +-
- 6 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/AmberTools/src/mdgx/ChargeFit.c b/AmberTools/src/mdgx/ChargeFit.c
-index fccf5d0..fe4afac 100644
---- a/AmberTools/src/mdgx/ChargeFit.c
-+++ b/AmberTools/src/mdgx/ChargeFit.c
-@@ -77,9 +77,9 @@ static void AssignGridTopologies(fset *myfit, prmtop *tp)
- }
- for (i = 0; i < myfit->ngrd; i++) {
- if (myfit->tpname.map[i][0] == '\0') {
-- sprintf(myfit->tpname.map[i], tp->source);
-+ sprintf(myfit->tpname.map[i], "%s", tp->source);
- if (myfit->eprule.map[i][0] == '\0' && tp->eprulesource[0] != '\0') {
-- sprintf(myfit->eprule.map[i], tp->eprulesource);
-+ sprintf(myfit->eprule.map[i], "%s", tp->eprulesource);
- }
- }
- }
-diff --git a/AmberTools/src/nab/cgen.c b/AmberTools/src/nab/cgen.c
-index 6254d44..e206879 100644
---- a/AmberTools/src/nab/cgen.c
-+++ b/AmberTools/src/nab/cgen.c
-@@ -1642,7 +1642,7 @@ static char *CG_gentype( char *csp, NODE_T *npt )
- strcpy( csp, tname );
- csp += strlen( csp );
- }else
-- fprintf( cg_cfp, tname );
-+ fprintf( cg_cfp, "%s", tname );
- needspace = TRUE;
- return( csp );
- }
-diff --git a/AmberTools/src/nab/traceback.c b/AmberTools/src/nab/traceback.c
-index f916474..e376552 100644
---- a/AmberTools/src/nab/traceback.c
-+++ b/AmberTools/src/nab/traceback.c
-@@ -6,7 +6,7 @@
- int rt_errormsg( int fatal, char msg[] )
- {
-
-- fprintf( stderr, msg );
-+ fprintf( stderr, "%s", msg );
- if( fatal )
- exit( 1 );
- return(0);
-diff --git a/AmberTools/src/ptraj/cluster.c b/AmberTools/src/ptraj/cluster.c
-index 2cb60f0..5e0f33d 100644
---- a/AmberTools/src/ptraj/cluster.c
-+++ b/AmberTools/src/ptraj/cluster.c
-@@ -1240,7 +1240,7 @@ void ClusteringMergeNames(PtrajClustering* This, ClusterNode* MergeNodeA, Cluste
- {
- return;
- }
-- sprintf(Temp, ClusterB->Name);
-+ sprintf(Temp, "%s", ClusterB->Name);
- sprintf(ClusterB->Name, "(%s,%s)", ClusterA->Name, Temp);
-
- }
-diff --git a/AmberTools/src/ptraj/interface.c b/AmberTools/src/ptraj/interface.c
-index 4087fa7..1ee4273 100644
---- a/AmberTools/src/ptraj/interface.c
-+++ b/AmberTools/src/ptraj/interface.c
-@@ -97,8 +97,8 @@ interface(interfaceMode mode, char *filename)
-
- tokenlist = (Token *) &rdparmTokenlist;
-
-- fprintf(stdout, rdparm_header);
-- fprintf(stdout, rdparm_prompt);
-+ fprintf(stdout, "%s", rdparm_header);
-+ fprintf(stdout, "%s", rdparm_prompt);
- while (1) {
-
- fflush(stdout);
-@@ -112,7 +112,7 @@ interface(interfaceMode mode, char *filename)
-
- }
-
-- fprintf(stdout, rdparm_prompt);
-+ fprintf(stdout, "%s", rdparm_prompt);
- }
- }
- }
-diff --git a/AmberTools/src/semantics/parse.c b/AmberTools/src/semantics/parse.c
-index 55c724c..68f23da 100644
---- a/AmberTools/src/semantics/parse.c
-+++ b/AmberTools/src/semantics/parse.c
-@@ -2039,7 +2039,7 @@ int n_tab;
- DEF_T tab[];
- {
-
-- fprintf( fp, oval );
-+ fprintf( fp, "%s", oval );
-
- }
- \f
diff --git a/sci-chemistry/ambertools/files/ambertools-12_p38-gcc5.patch b/sci-chemistry/ambertools/files/ambertools-12_p38-gcc5.patch
deleted file mode 100644
index 92e64954f..000000000
--- a/sci-chemistry/ambertools/files/ambertools-12_p38-gcc5.patch
+++ /dev/null
@@ -1,28 +0,0 @@
- AmberTools/src/configure2 | 14 ++++++++------
- 1 file changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/AmberTools/src/configure2 b/AmberTools/src/configure2
-index 913c50d..1232f6a 100755
---- a/AmberTools/src/configure2
-+++ b/AmberTools/src/configure2
-@@ -703,12 +703,14 @@ gnu)
- # if gcc <= 4.2, fftw3 is not compiled and pbsa fft solver and rism
- # are disabled
- if [ "$rism" != 'no' -o -n "$pbsaflag" ]; then
-- if ( [ $gnu_majorversion -ge 4 ] && [ $gnu_minorversion -le 2 ] ) \
-- || [ $gnu_majorversion -le 3 ]; then
-- echo "ERROR: RISM and PBSA FFT solver require version 4.3 or higher of the GNU compiler."
-- echo " Please re-run configure with the '-nofftw3' flag to use this compiler:"
-- echo " `mod_command_args '-rism' '-nofftw3'`"
-- exit 1
-+ if [ $gnu_majorversion -lt 5 ]; then
-+ if ( [ $gnu_majorversion -ge 4 ] && [ $gnu_minorversion -le 2 ] ) \
-+ || [ $gnu_majorversion -le 3 ]; then
-+ echo "ERROR: RISM and PBSA FFT solver require version 4.3 or higher of the GNU compiler."
-+ echo " Please re-run configure with the '-nofftw3' flag to use this compiler:"
-+ echo " `mod_command_args '-rism' '-nofftw3'`"
-+ exit 1
-+ fi
- fi
- fi
-
diff --git a/sci-chemistry/ambertools/files/ambertools-15-gentoo.patch b/sci-chemistry/ambertools/files/ambertools-15-gentoo.patch
deleted file mode 100644
index 76be4f8af..000000000
--- a/sci-chemistry/ambertools/files/ambertools-15-gentoo.patch
+++ /dev/null
@@ -1,1428 +0,0 @@
-diff --git a/AmberTools/src/Makefile b/AmberTools/src/Makefile
-index 3d69773..71c794c 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,7 @@ 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 +197,12 @@ 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 +212,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 +288,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/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..de25fc7 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
-+ $(FC) -c $(FPPFLAGS) $(CFLAGS) $(AMBERFFLAGS) \
-+ -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')
diff --git a/sci-chemistry/ambertools/files/ambertools-15-update.1.patch b/sci-chemistry/ambertools/files/ambertools-15-update.1.patch
deleted file mode 100644
index 28d25e590..000000000
--- a/sci-chemistry/ambertools/files/ambertools-15-update.1.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-*******> update.1
-
-Author: Jason Swails
-
-Date: June 1, 2015
-
-Programs: MMPBSA.py, ParmEd, cpptraj
-
-Description: This fixes a number of small issues:
- 1) Fix Python 2.4 and Python 2.5 support for ParmEd and MMPBSA.py
- 2) Fix the MMPBSA.py Python API
- 3) Scale charges correctly for LIE action in cpptraj with non-unity
- dielectric constant
-
---------------------------------------------------------------------------------
-
- AmberTools/src/cpptraj/src/Action_LIE.cpp | 2 +-
- AmberTools/src/mmpbsa_py/MMPBSA_mods/API.py | 3 ++-
- AmberTools/src/mmpbsa_py/MMPBSA_mods/infofile.py | 1 +
- AmberTools/src/parmed/chemistry/__init__.py | 6 +++++-
- .../test/mmpbsa_py/07_Comprehensive/Run.comprehensive | 18 ++++++++++++++++++
- 5 files changed, 27 insertions(+), 3 deletions(-)
-
-diff --git AmberTools/src/cpptraj/src/Action_LIE.cpp AmberTools/src/cpptraj/src/Action_LIE.cpp
-index 25825c1..716a04f 100644
---- AmberTools/src/cpptraj/src/Action_LIE.cpp
-+++ AmberTools/src/cpptraj/src/Action_LIE.cpp
-@@ -132,7 +132,7 @@ int Action_LIE::SetupParms(Topology const& ParmIn) {
- atom_charge_.reserve( ParmIn.Natom() );
- for (Topology::atom_iterator atom = ParmIn.begin();
- atom != ParmIn.end(); ++atom)
-- atom_charge_.push_back( atom->Charge() * Constants::ELECTOAMBER / dielc_ );
-+ atom_charge_.push_back( atom->Charge() * Constants::ELECTOAMBER / sqrt(dielc_) );
- return 0;
- }
-
-diff --git AmberTools/src/mmpbsa_py/MMPBSA_mods/API.py AmberTools/src/mmpbsa_py/MMPBSA_mods/API.py
-index e6c4fe9..d7cc7ec 100644
---- AmberTools/src/mmpbsa_py/MMPBSA_mods/API.py
-+++ AmberTools/src/mmpbsa_py/MMPBSA_mods/API.py
-@@ -63,7 +63,7 @@ class mmpbsa_data(dict):
- self.stability = app.stability
- # Now load the data
- for key in app.calc_types:
-- if key == 'mutant':
-+ if key == 'mutant' or key =='qh':
- has_mutant = True
- continue
- self[key] = {}
-@@ -86,6 +86,7 @@ class mmpbsa_data(dict):
- if has_mutant:
- self.mutant = {}
- for key in app.calc_types['mutant']:
-+ if key == 'qh': continue
- self.mutant[key] = {}
- tmpdict = {}
- for dkey in app.calc_types['mutant'][key]['complex'].data:
-diff --git AmberTools/src/mmpbsa_py/MMPBSA_mods/infofile.py AmberTools/src/mmpbsa_py/MMPBSA_mods/infofile.py
-index ecdc2f2..ecaa6c1 100644
---- AmberTools/src/mmpbsa_py/MMPBSA_mods/infofile.py
-+++ AmberTools/src/mmpbsa_py/MMPBSA_mods/infofile.py
-@@ -80,6 +80,7 @@ class InfoFile(object):
- outfile.write('numframes = %d\n' % self.app.numframes)
- outfile.write('numframes_nmode = %d\n' % self.app.numframes_nmode)
- outfile.write("mut_str = '%s'\n" % self.app.mut_str)
-+ outfile.write('using_chamber = %s\n' % self.app.using_chamber)
- outfile.write(self.app.input_file_text)
-
- def read_info(self, name=None):
-diff --git AmberTools/src/parmed/chemistry/__init__.py AmberTools/src/parmed/chemistry/__init__.py
-index 52f5245..544e016 100644
---- AmberTools/src/parmed/chemistry/__init__.py
-+++ AmberTools/src/parmed/chemistry/__init__.py
-@@ -11,10 +11,14 @@ from chemistry.structure import Structure
- from chemistry.topologyobjects import *
- from chemistry import unit
- from chemistry.residue import *
--from chemistry import amber, charmm, tinker, openmm
-+from chemistry import amber, charmm, tinker
- from chemistry import formats
- load_file = formats.load_file
- read_PDB = formats.PDBFile.parse
- read_CIF = formats.CIFFile.parse
- write_PDB = formats.PDBFile.write
- write_CIF = formats.CIFFile.write
-+try:
-+ from chemistry import openmm
-+except ImportError:
-+ pass
-diff --git AmberTools/test/mmpbsa_py/07_Comprehensive/Run.comprehensive AmberTools/test/mmpbsa_py/07_Comprehensive/Run.comprehensive
-index 268515e..aa7d9df 100755
---- AmberTools/test/mmpbsa_py/07_Comprehensive/Run.comprehensive
-+++ AmberTools/test/mmpbsa_py/07_Comprehensive/Run.comprehensive
-@@ -108,6 +108,24 @@ if [ -z "$DO_PARALLEL" ]; then
- ../../dacdif -a 6.0 FINAL_RESULTS_MMPBSA_2.dat.save FINAL_RESULTS_MMPBSA_2.dat
- fi
-
-+# Check the API
-+python << EOF
-+from __future__ import division
-+import MMPBSA_mods.API as API
-+
-+print('Checking the API')
-+try:
-+ stuff = API.load_mmpbsa_info('_MMPBSA_info')
-+ total_data = stuff['gb']['complex']['TOTAL']
-+ if abs((sum(total_data) / len(total_data)) + 466.7565) > 0.0002:
-+ print('possible FAILURE')
-+ else:
-+ print('PASSED')
-+except:
-+ print('Program error')
-+print('==============================================================')
-+EOF
-+
- $EXE --clean 2>&1 > /dev/null
-
- rm -f mmpbsa.in mmpbsa.out FINAL_DECOMP_MMPBSA_2.csv-e FINAL_DECOMP_MMPBSA.dat
diff --git a/sci-chemistry/ambertools/files/ambertools-15-update.2.patch b/sci-chemistry/ambertools/files/ambertools-15-update.2.patch
deleted file mode 100644
index b0f1cd978..000000000
--- a/sci-chemistry/ambertools/files/ambertools-15-update.2.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-*******> update.2
-
-Author: Jason Swails, Ross Walker
-
-Date: June 2, 2015
-
-Programs: AmberTools, CUDA
-
-Description: Adds support for CUDA 7. Also fixes an erroneous error report when
- AmberTools is configured for *only* OpenMP, CUDA, or CUDA-MPI with
- regards to missing Python modules.
-
---------------------------------------------------------------------------------
-
- AmberTools/src/configure2 | 4 ++--
- AmberTools/test/test_check.sh | 7 ++++---
- 2 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git AmberTools/src/configure2 AmberTools/src/configure2
-index f1a3cff..9a504b1 100755
---- AmberTools/src/configure2
-+++ AmberTools/src/configure2
-@@ -861,13 +861,13 @@ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPXP" = 'yes' -o "$cuda_DPFP" = 'yes' ]; the
- echo "CUDA Version $cudaversion detected"
- echo "Configuring for SM2.0 and SM3.0 - warning does not support Maxwell (GM200/GM204) cards [e.g. GTX970/980]"
- nvccflags="$sm20flags $sm30flags"
-- elif [ "$cudaversion" = "6.5" ]; then
-+ elif [ "$cudaversion" = "6.5" -o "$cudaversion" = "7.0" ]; then
- echo "CUDA Version $cudaversion detected"
- echo "Configuring for SM2.0, SM3.0 and SM5.0"
- nvccflags="$sm20flags $sm30flags $sm50flags"
- else
- echo "Error: Unsupported CUDA version $cudaversion detected."
-- echo " AMBER requires CUDA version == 5.0 .or. 5.5 .or. 6.0 .or. 6.5"
-+ echo " AMBER requires CUDA version == 5.0 .or. 5.5 .or. 6.0 .or. 6.5 .or. 7.0"
- exit 1
- fi
- nvcc="$nvcc $nvccflags"
-diff --git AmberTools/test/test_check.sh AmberTools/test/test_check.sh
-index 108c446..a5399d8 100644
---- AmberTools/test/test_check.sh
-+++ AmberTools/test/test_check.sh
-@@ -83,9 +83,10 @@ def error():
- try:
- import chemistry
- except ImportError:
-- sys.stderr.write('Could not import Amber Python modules. This likely means\\n'
-- 'that your Amber Python environment was not set up correctly\\n\\n')
-- error()
-+ if os.path.exists(os.path.join(ambhome, 'parmed.py')):
-+ sys.stderr.write('Could not import Amber Python modules. This likely means\\n'
-+ 'that your Amber Python environment was not set up correctly\\n\\n')
-+ error()
-
- if 'darwin' in sys.platform:
- sys.exit(0) # Nothing to check here
diff --git a/sci-chemistry/ambertools/files/ambertools-15-update.3.patch b/sci-chemistry/ambertools/files/ambertools-15-update.3.patch
deleted file mode 100644
index a892ecefd..000000000
--- a/sci-chemistry/ambertools/files/ambertools-15-update.3.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-********> update.3
- Author: Istvan Kolossvary
- Date: 15 June 2015
-
- Programs: nab, sff
-
- Description: Fix problem with lmod docking when fixed atoms are present
-
- ---------------------------------------------------------------------------
-
-diff --git AmberTools/src/sff/lmodC.c AmberTools/src/sff/lmodC.c
-index 8a19dd8..45c8244 100644
---- AmberTools/src/sff/lmodC.c
-+++ AmberTools/src/sff/lmodC.c
-@@ -864,7 +864,7 @@ trans_ligand(double *xyz, int start, int end, double dx, double dy,
- double dz)
- {
- int i, x, y, z;
-- for (i = start - 1; i < end; i++) {
-+ for (i = start; i <= end; i++) {
- x = 3 * i;
- y = x + 1;
- z = y + 1;
-@@ -900,7 +900,7 @@ rot_ligand(double *xyz, int start, int end, double cent_x, double cent_y,
- {
- int i, x, y, z;
- double temp_x, temp_y, temp_z;
-- for (i = start - 1; i < end; i++) {
-+ for (i = start; i <= end; i++) {
- x = 3 * i;
- y = x + 1;
- z = y + 1;
-@@ -930,7 +930,7 @@ calc_centroid(double *xyz, int start, int end, double *cent_x,
- {
- int i, x, y, z, n;
- *cent_x = *cent_y = *cent_z = ZERO;
-- for (i = start - 1; i < end; i++) {
-+ for (i = start; i <= end; i++) {
- x = 3 * i;
- y = x + 1;
- z = y + 1;
-@@ -1591,6 +1591,7 @@ lmodC(int *nlmodit, int *nmod, int *kmod, int *rotran, int *natm_ext,
- i, j, k, kk, l, n, cnt;
- static int barrier_crossing_test_on, do_all, do_ligs;
- static int *index = NULL;
-+ static int ikk, lig_start_kk, lig_end_kk, lig_rot_cent_kk;
- static double ref_energy, energy, energy_old, min_energy,
- glob_min_energy, rad, sum, max_atmov, scale, lmod_step, rms,
- rms_old, grad_rms;
-@@ -2554,7 +2555,19 @@ lmodC(int *nlmodit, int *nmod, int *kmod, int *rotran, int *natm_ext,
- xtrans *= trscale / trnorm;
- ytrans *= trscale / trnorm;
- ztrans *= trscale / trnorm;
-- trans_ligand(xyz_local, lig_start[kk], lig_end[kk], xtrans,
-+ for (ikk = 0; ikk < natm_local; ikk++ ) {
-+ if ( atm_indx[ikk] == (lig_start[kk] -1) ) { /* lig_start[] contains external PDB atom numbers */
-+ lig_start_kk = ikk;
-+ break;
-+ }
-+ }
-+ for (ikk = 0; ikk < natm_local; ikk++ ) {
-+ if ( atm_indx[ikk] == (lig_end[kk] -1) ) { /* lig_end[] contains external PDB atom numbers */
-+ lig_end_kk = ikk;
-+ break;
-+ }
-+ }
-+ trans_ligand(xyz_local, lig_start_kk, lig_end_kk, xtrans,
- ytrans, ztrans);
- do {
- xrot = 2 * rand2() - 1;
-@@ -2568,13 +2581,19 @@ lmodC(int *nlmodit, int *nmod, int *kmod, int *rotran, int *natm_ext,
- rotang = angmin[kk] + (angmax[kk] - angmin[kk]) * rand2();
- calc_rot_matrix(DEG2RAD * rotang, xrot, yrot, zrot, rotmat);
- if (lig_rot_cent[kk]) {
-- xcent = xyz_local[(lig_rot_cent[kk] - 1) * 3 ];
-- ycent = xyz_local[(lig_rot_cent[kk] - 1) * 3 + 1];
-- zcent = xyz_local[(lig_rot_cent[kk] - 1) * 3 + 2];
-+ for (ikk = 0; ikk < natm_local; ikk++ ) {
-+ if ( atm_indx[ikk] == (lig_rot_cent[kk] -1) ) { /* lig_rot_cent[] contains external PDB atom numbers */
-+ lig_rot_cent_kk = ikk;
-+ break;
-+ }
-+ }
-+ xcent = xyz_local[ lig_rot_cent_kk * 3 ];
-+ ycent = xyz_local[ lig_rot_cent_kk * 3 + 1];
-+ zcent = xyz_local[ lig_rot_cent_kk * 3 + 2];
- } else
-- calc_centroid(xyz_local, lig_start[kk], lig_end[kk],
-+ calc_centroid(xyz_local, lig_start_kk, lig_end_kk,
- &xcent, &ycent, &zcent);
-- rot_ligand(xyz_local, lig_start[kk], lig_end[kk], xcent,
-+ rot_ligand(xyz_local, lig_start_kk, lig_end_kk, xcent,
- ycent, zcent, rotmat);
- }
- /* close pair separation operates on xyz_ext[]: */
diff --git a/sci-chemistry/ambertools/files/ambertools-15-update.4.patch b/sci-chemistry/ambertools/files/ambertools-15-update.4.patch
deleted file mode 100644
index 4176a583a..000000000
--- a/sci-chemistry/ambertools/files/ambertools-15-update.4.patch
+++ /dev/null
@@ -1,908 +0,0 @@
-*******> update.4
-Author: Benjamin D. Madej
-Date: October 19, 2015
-Programs: Leap, Lipid14 force field
-Description: Adds a parameter set for cholesterol to the Lipid14 force field.
- Please reference:
- Madej, B. D.; Gould, I.R.; Walker, R. C. A Parameterization of
- Cholesterol for Mixed Lipid Bilayer Simulation within the Amber
- Lipid14 Force Field. J. Phys. Chem. B 2015, 119 (38)
- pp 12424-12435.
--------------------------------------------------------------------------------
- dat/leap/lib/lipid14.lib | 480 ++++++++++++++++++++++++++++++++++++++++++++++
- dat/leap/parm/lipid11.dat | 2 +-
- dat/leap/parm/lipid14.dat | 291 ++++++++++++++++++----------
- 3 files changed, 666 insertions(+), 107 deletions(-)
-
-diff --git dat/leap/lib/lipid14.lib dat/leap/lib/lipid14.lib
-index 891937b..75c2f2b 100644
---- dat/leap/lib/lipid14.lib
-+++ dat/leap/lib/lipid14.lib
-@@ -1,10 +1,490 @@
- !!index array str
-+ "CHL"
- "LA"
- "MY"
- "OL"
- "PA"
- "PC"
- "PE"
-+!entry.CHL.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
-+ "C1" "cA" 0 1 131073 1 6 -0.031691
-+ "H11" "hA" 0 1 131073 2 1 0.009380
-+ "H12" "hA" 0 1 131073 3 1 0.009380
-+ "C2" "cA" 0 1 131073 4 6 -0.088130
-+ "H21" "hA" 0 1 131073 5 1 0.044625
-+ "H22" "hA" 0 1 131073 6 1 0.044625
-+ "C3" "cA" 0 1 131073 7 6 0.293553
-+ "H31" "hE" 0 1 131073 8 1 0.029611
-+ "C4" "cA" 0 1 131073 9 6 -0.162218
-+ "H41" "hA" 0 1 131073 10 1 0.090036
-+ "H42" "hA" 0 1 131073 11 1 0.090036
-+ "C5" "cB" 0 1 131073 12 6 -0.139495
-+ "C6" "cB" 0 1 131073 13 6 -0.208190
-+ "H61" "hB" 0 1 131073 14 1 0.122828
-+ "C7" "cA" 0 1 131073 15 6 -0.069897
-+ "H71" "hA" 0 1 131073 16 1 0.047919
-+ "H72" "hA" 0 1 131073 17 1 0.047919
-+ "C8" "cA" 0 1 131073 18 6 -0.011390
-+ "H81" "hA" 0 1 131073 19 1 0.072891
-+ "C9" "cA" 0 1 131073 20 6 0.019609
-+ "H91" "hA" 0 1 131073 21 1 0.029289
-+ "C10" "cA" 0 1 131073 22 6 0.079112
-+ "C11" "cA" 0 1 131073 23 6 -0.066365
-+ "H111" "hA" 0 1 131073 24 1 0.030085
-+ "H112" "hA" 0 1 131073 25 1 0.030085
-+ "C12" "cA" 0 1 131073 26 6 -0.064973
-+ "H121" "hA" 0 1 131073 27 1 0.010352
-+ "H122" "hA" 0 1 131073 28 1 0.010352
-+ "C13" "cA" 0 1 131073 29 6 0.057407
-+ "C14" "cA" 0 1 131073 30 6 0.005830
-+ "H141" "hA" 0 1 131073 31 1 0.031557
-+ "C15" "cA" 0 1 131073 32 6 -0.101977
-+ "H151" "hA" 0 1 131073 33 1 0.026458
-+ "H152" "hA" 0 1 131073 34 1 0.026458
-+ "C16" "cA" 0 1 131073 35 6 -0.092064
-+ "H161" "hA" 0 1 131073 36 1 0.033335
-+ "H162" "hA" 0 1 131073 37 1 0.033335
-+ "C17" "cA" 0 1 131073 38 6 0.032398
-+ "H171" "hA" 0 1 131073 39 1 0.016590
-+ "C18" "cA" 0 1 131073 40 6 -0.115049
-+ "H181" "hA" 0 1 131073 41 1 0.024541
-+ "H182" "hA" 0 1 131073 42 1 0.024541
-+ "H183" "hA" 0 1 131073 43 1 0.024541
-+ "C19" "cA" 0 1 131073 44 6 -0.108064
-+ "H191" "hA" 0 1 131073 45 1 0.033990
-+ "H192" "hA" 0 1 131073 46 1 0.033990
-+ "H193" "hA" 0 1 131073 47 1 0.033990
-+ "C20" "cD" 0 1 131075 48 6 0.044268
-+ "H201" "hL" 0 1 131075 49 1 0.020951
-+ "C21" "cD" 0 1 131075 50 6 -0.154621
-+ "H211" "hL" 0 1 131075 51 1 0.036274
-+ "H212" "hL" 0 1 131075 52 1 0.036274
-+ "H213" "hL" 0 1 131075 53 1 0.036274
-+ "C22" "cD" 0 1 131075 54 6 -0.039033
-+ "H221" "hL" 0 1 131075 55 1 0.008359
-+ "H222" "hL" 0 1 131075 56 1 0.008359
-+ "C23" "cD" 0 1 131075 57 6 -0.028460
-+ "H231" "hL" 0 1 131075 58 1 0.015742
-+ "H232" "hL" 0 1 131075 59 1 0.015742
-+ "C24" "cD" 0 1 131075 60 6 -0.125596
-+ "H241" "hL" 0 1 131075 61 1 0.040110
-+ "H242" "hL" 0 1 131075 62 1 0.040110
-+ "C25" "cD" 0 1 131075 63 6 0.212446
-+ "H251" "hL" 0 1 131075 64 1 -0.002466
-+ "C26" "cD" 0 1 131075 65 6 -0.257776
-+ "H261" "hL" 0 1 131075 66 1 0.057982
-+ "H262" "hL" 0 1 131075 67 1 0.057982
-+ "H263" "hL" 0 1 131075 68 1 0.057982
-+ "C27" "cD" 0 1 131075 69 6 -0.257776
-+ "H271" "hL" 0 1 131075 70 1 0.057982
-+ "H272" "hL" 0 1 131075 71 1 0.057982
-+ "H273" "hL" 0 1 131075 72 1 0.057982
-+ "O1" "oH" 0 1 131073 73 8 -0.703022
-+ "HO1" "hO" 0 1 131073 74 1 0.414804
-+!entry.CHL.unit.atomspertinfo table str pname str ptype int ptypex int pelmnt dbl pchg
-+ "C1" "cA" 0 -1 0.0
-+ "H11" "hA" 0 -1 0.0
-+ "H12" "hA" 0 -1 0.0
-+ "C2" "cA" 0 -1 0.0
-+ "H21" "hA" 0 -1 0.0
-+ "H22" "hA" 0 -1 0.0
-+ "C3" "cA" 0 -1 0.0
-+ "H31" "hE" 0 -1 0.0
-+ "C4" "cA" 0 -1 0.0
-+ "H41" "hA" 0 -1 0.0
-+ "H42" "hA" 0 -1 0.0
-+ "C5" "cB" 0 -1 0.0
-+ "C6" "cB" 0 -1 0.0
-+ "H61" "hB" 0 -1 0.0
-+ "C7" "cA" 0 -1 0.0
-+ "H71" "hA" 0 -1 0.0
-+ "H72" "hA" 0 -1 0.0
-+ "C8" "cA" 0 -1 0.0
-+ "H81" "hA" 0 -1 0.0
-+ "C9" "cA" 0 -1 0.0
-+ "H91" "hA" 0 -1 0.0
-+ "C10" "cA" 0 -1 0.0
-+ "C11" "cA" 0 -1 0.0
-+ "H111" "hA" 0 -1 0.0
-+ "H112" "hA" 0 -1 0.0
-+ "C12" "cA" 0 -1 0.0
-+ "H121" "hA" 0 -1 0.0
-+ "H122" "hA" 0 -1 0.0
-+ "C13" "cA" 0 -1 0.0
-+ "C14" "cA" 0 -1 0.0
-+ "H141" "hA" 0 -1 0.0
-+ "C15" "cA" 0 -1 0.0
-+ "H151" "hA" 0 -1 0.0
-+ "H152" "hA" 0 -1 0.0
-+ "C16" "cA" 0 -1 0.0
-+ "H161" "hA" 0 -1 0.0
-+ "H162" "hA" 0 -1 0.0
-+ "C17" "cA" 0 -1 0.0
-+ "H171" "hA" 0 -1 0.0
-+ "C18" "cA" 0 -1 0.0
-+ "H181" "hA" 0 -1 0.0
-+ "H182" "hA" 0 -1 0.0
-+ "H183" "hA" 0 -1 0.0
-+ "C19" "cA" 0 -1 0.0
-+ "H191" "hA" 0 -1 0.0
-+ "H192" "hA" 0 -1 0.0
-+ "H193" "hA" 0 -1 0.0
-+ "C20" "cA" 0 -1 0.0
-+ "H201" "hA" 0 -1 0.0
-+ "C21" "cA" 0 -1 0.0
-+ "H211" "hA" 0 -1 0.0
-+ "H212" "hA" 0 -1 0.0
-+ "H213" "hA" 0 -1 0.0
-+ "C22" "cA" 0 -1 0.0
-+ "H221" "hA" 0 -1 0.0
-+ "H222" "hA" 0 -1 0.0
-+ "C23" "cA" 0 -1 0.0
-+ "H231" "hA" 0 -1 0.0
-+ "H232" "hA" 0 -1 0.0
-+ "C24" "cA" 0 -1 0.0
-+ "H241" "hA" 0 -1 0.0
-+ "H242" "hA" 0 -1 0.0
-+ "C25" "cA" 0 -1 0.0
-+ "H251" "hA" 0 -1 0.0
-+ "C26" "cA" 0 -1 0.0
-+ "H261" "hA" 0 -1 0.0
-+ "H262" "hA" 0 -1 0.0
-+ "H263" "hA" 0 -1 0.0
-+ "C27" "cA" 0 -1 0.0
-+ "H271" "hA" 0 -1 0.0
-+ "H272" "hA" 0 -1 0.0
-+ "H273" "hA" 0 -1 0.0
-+ "O1" "oH" 0 -1 0.0
-+ "HO1" "hO" 0 -1 0.0
-+!entry.CHL.unit.boundbox array dbl
-+ -1.000000
-+ 0.0
-+ 0.0
-+ 0.0
-+ 0.0
-+!entry.CHL.unit.childsequence single int
-+ 2
-+!entry.CHL.unit.connect array int
-+ 0
-+ 0
-+!entry.CHL.unit.connectivity table int atom1x int atom2x int flags
-+ 1 2 1
-+ 1 3 1
-+ 1 4 1
-+ 1 22 1
-+ 4 5 1
-+ 4 6 1
-+ 4 7 1
-+ 7 8 1
-+ 7 9 1
-+ 7 73 1
-+ 9 10 1
-+ 9 11 1
-+ 9 12 1
-+ 12 13 2
-+ 12 22 1
-+ 13 14 1
-+ 13 15 1
-+ 15 16 1
-+ 15 17 1
-+ 15 18 1
-+ 18 19 1
-+ 18 20 1
-+ 18 30 1
-+ 20 21 1
-+ 20 22 1
-+ 20 23 1
-+ 22 44 1
-+ 23 24 1
-+ 23 25 1
-+ 23 26 1
-+ 26 27 1
-+ 26 28 1
-+ 26 29 1
-+ 29 30 1
-+ 29 38 1
-+ 29 40 1
-+ 30 31 1
-+ 30 32 1
-+ 32 33 1
-+ 32 34 1
-+ 32 35 1
-+ 35 36 1
-+ 35 37 1
-+ 35 38 1
-+ 38 39 1
-+ 38 48 1
-+ 40 41 1
-+ 40 42 1
-+ 40 43 1
-+ 44 45 1
-+ 44 46 1
-+ 44 47 1
-+ 48 49 1
-+ 48 50 1
-+ 48 54 1
-+ 50 51 1
-+ 50 52 1
-+ 50 53 1
-+ 54 55 1
-+ 54 56 1
-+ 54 57 1
-+ 57 58 1
-+ 57 59 1
-+ 57 60 1
-+ 60 61 1
-+ 60 62 1
-+ 60 63 1
-+ 63 64 1
-+ 63 65 1
-+ 63 69 1
-+ 65 66 1
-+ 65 67 1
-+ 65 68 1
-+ 69 70 1
-+ 69 71 1
-+ 69 72 1
-+ 73 74 1
-+!entry.CHL.unit.hierarchy table str abovetype int abovex str belowtype int belowx
-+ "U" 0 "R" 1
-+ "R" 1 "A" 1
-+ "R" 1 "A" 2
-+ "R" 1 "A" 3
-+ "R" 1 "A" 4
-+ "R" 1 "A" 5
-+ "R" 1 "A" 6
-+ "R" 1 "A" 7
-+ "R" 1 "A" 8
-+ "R" 1 "A" 9
-+ "R" 1 "A" 10
-+ "R" 1 "A" 11
-+ "R" 1 "A" 12
-+ "R" 1 "A" 13
-+ "R" 1 "A" 14
-+ "R" 1 "A" 15
-+ "R" 1 "A" 16
-+ "R" 1 "A" 17
-+ "R" 1 "A" 18
-+ "R" 1 "A" 19
-+ "R" 1 "A" 20
-+ "R" 1 "A" 21
-+ "R" 1 "A" 22
-+ "R" 1 "A" 23
-+ "R" 1 "A" 24
-+ "R" 1 "A" 25
-+ "R" 1 "A" 26
-+ "R" 1 "A" 27
-+ "R" 1 "A" 28
-+ "R" 1 "A" 29
-+ "R" 1 "A" 30
-+ "R" 1 "A" 31
-+ "R" 1 "A" 32
-+ "R" 1 "A" 33
-+ "R" 1 "A" 34
-+ "R" 1 "A" 35
-+ "R" 1 "A" 36
-+ "R" 1 "A" 37
-+ "R" 1 "A" 38
-+ "R" 1 "A" 39
-+ "R" 1 "A" 40
-+ "R" 1 "A" 41
-+ "R" 1 "A" 42
-+ "R" 1 "A" 43
-+ "R" 1 "A" 44
-+ "R" 1 "A" 45
-+ "R" 1 "A" 46
-+ "R" 1 "A" 47
-+ "R" 1 "A" 48
-+ "R" 1 "A" 49
-+ "R" 1 "A" 50
-+ "R" 1 "A" 51
-+ "R" 1 "A" 52
-+ "R" 1 "A" 53
-+ "R" 1 "A" 54
-+ "R" 1 "A" 55
-+ "R" 1 "A" 56
-+ "R" 1 "A" 57
-+ "R" 1 "A" 58
-+ "R" 1 "A" 59
-+ "R" 1 "A" 60
-+ "R" 1 "A" 61
-+ "R" 1 "A" 62
-+ "R" 1 "A" 63
-+ "R" 1 "A" 64
-+ "R" 1 "A" 65
-+ "R" 1 "A" 66
-+ "R" 1 "A" 67
-+ "R" 1 "A" 68
-+ "R" 1 "A" 69
-+ "R" 1 "A" 70
-+ "R" 1 "A" 71
-+ "R" 1 "A" 72
-+ "R" 1 "A" 73
-+ "R" 1 "A" 74
-+!entry.CHL.unit.name single str
-+ "CHL"
-+!entry.CHL.unit.positions table dbl x dbl y dbl z
-+ 4.697000 -1.469000 -0.739000
-+ 4.428000 -1.214000 -1.762000
-+ 4.303000 -2.462000 -0.556000
-+ 6.224000 -1.517000 -0.642000
-+ 6.547000 -1.874000 0.331000
-+ 6.617000 -2.214000 -1.376000
-+ 6.830000 -0.145000 -0.877000
-+ 6.590000 0.176000 -1.891000
-+ 6.246000 0.863000 0.111000
-+ 6.601000 0.589000 1.102000
-+ 6.636000 1.856000 -0.095000
-+ 4.731000 0.895000 0.070000
-+ 4.091000 2.041000 -0.088000
-+ 4.668000 2.946000 -0.204000
-+ 2.599000 2.206000 -0.119000
-+ 2.323000 3.070000 0.480000
-+ 2.290000 2.443000 -1.137000
-+ 1.853000 0.964000 0.375000
-+ 1.922000 0.946000 1.460000
-+ 2.514000 -0.306000 -0.204000
-+ 2.518000 -0.165000 -1.285000
-+ 4.012000 -0.452000 0.214000
-+ 1.671000 -1.566000 0.076000
-+ 2.085000 -2.410000 -0.467000
-+ 1.730000 -1.829000 1.125000
-+ 0.190000 -1.429000 -0.312000
-+ 0.108000 -1.322000 -1.392000
-+ -0.312000 -2.355000 -0.056000
-+ -0.469000 -0.212000 0.358000
-+ 0.381000 1.015000 -0.041000
-+ 0.381000 1.020000 -1.132000
-+ -0.462000 2.215000 0.391000
-+ -0.304000 2.443000 1.442000
-+ -0.217000 3.115000 -0.163000
-+ -1.913000 1.751000 0.131000
-+ -2.537000 1.930000 1.001000
-+ -2.357000 2.309000 -0.684000
-+ -1.859000 0.228000 -0.203000
-+ -1.794000 0.127000 -1.286000
-+ -0.546000 -0.407000 1.886000
-+ -1.062000 0.412000 2.374000
-+ 0.431000 -0.485000 2.344000
-+ -1.086000 -1.316000 2.130000
-+ 4.156000 -0.937000 1.675000
-+ 3.579000 -0.319000 2.354000
-+ 5.185000 -0.898000 2.008000
-+ 3.826000 -1.963000 1.788000
-+ -3.141000 -0.519000 0.237000
-+ -3.267000 -0.372000 1.309000
-+ -3.080000 -2.029000 -0.029000
-+ -2.330000 -2.520000 0.577000
-+ -2.851000 -2.232000 -1.072000
-+ -4.025000 -2.508000 0.198000
-+ -4.375000 0.093000 -0.461000
-+ -4.324000 1.175000 -0.403000
-+ -4.337000 -0.153000 -1.522000
-+ -5.732000 -0.335000 0.111000
-+ -5.862000 -1.406000 0.010000
-+ -5.752000 -0.121000 1.179000
-+ -6.898000 0.389000 -0.569000
-+ -6.718000 1.461000 -0.516000
-+ -6.910000 0.137000 -1.629000
-+ -8.286000 0.104000 0.028000
-+ -8.244000 0.333000 1.092000
-+ -8.705000 -1.362000 -0.122000
-+ -8.034000 -2.035000 0.400000
-+ -8.723000 -1.655000 -1.169000
-+ -9.702000 -1.521000 0.280000
-+ -9.336000 1.023000 -0.605000
-+ -9.079000 2.069000 -0.470000
-+ -10.316000 0.862000 -0.166000
-+ -9.420000 0.839000 -1.674000
-+ 8.224000 -0.262000 -0.734000
-+ 8.633000 0.570000 -0.924000
-+!entry.CHL.unit.residueconnect table int c1x int c2x int c3x int c4x int c5x int c6x
-+ 0 0 0 0 0 0
-+!entry.CHL.unit.residues table str name int seq int childseq int startatomx str restype int imagingx
-+ "CHL" 1 75 1 "?" 0
-+!entry.CHL.unit.residuesPdbSequenceNumber array int
-+ 0
-+!entry.CHL.unit.solventcap array dbl
-+ -1.000000
-+ 0.0
-+ 0.0
-+ 0.0
-+ 0.0
-+!entry.CHL.unit.velocities table dbl x dbl y dbl z
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
-+ 0.0 0.0 0.0
- !entry.LA.unit.atoms table str name str type int typex int resx int flags int seq int elmnt dbl chg
- "H12T" "hL" 0 1 131073 1 1 0.025809
- "C112" "cD" 0 1 131073 2 6 -0.118534
-diff --git dat/leap/parm/lipid11.dat dat/leap/parm/lipid11.dat
-index 0f8d83e..9c25f35 100644
---- dat/leap/parm/lipid11.dat
-+++ dat/leap/parm/lipid11.dat
-@@ -1,4 +1,4 @@
--AMBER Lipid 2011 Force Field (v1.0), A.Skjevik, B. Madej, K.Teigen & R.C.Walker
-+** Warning: Lipid11 is deprecated. Please refer to Amber Lipid14 for more information ** AMBER Lipid 2011 Force Field (v1.0), A.Skjevik, B. Madej, K.Teigen & R.C.Walker
- cC 12.01 carbonyl sp2 carbon (GAFF c -)
- cB 12.01 aliphatic sp2 carbon (GAFF c2-)
- cA 12.01 sp3 carbon (GAFF c3-)
-diff --git dat/leap/parm/lipid14.dat dat/leap/parm/lipid14.dat
-index 46da737..f102976 100644
---- dat/leap/parm/lipid14.dat
-+++ dat/leap/parm/lipid14.dat
-@@ -3,59 +3,81 @@ cA 12.01 sp3 carbon (GAFF c3-head,glycerol)
- cB 12.01 aliphatic sp2 carbon (GAFF c2-tail)
- cC 12.01 carbonyl sp2 carbon (GAFF c -head,glycerol)
- cD 12.010 sp3 carbon (GAFFlipid a3-tail)
-+hA 1.008 H bonded to aliphatic carbon without electrwd. group (GAFF hc-)
-+hB 1.008 H bonded to aromatic carbon (GAFF ha-)
-+hE 1.008 H bonded to aliphatic carbon with 1 electrwd. group (GAFF h1-)
-+hL 1.008 H bonded to aliphatic carbon without electrwd. group (GAFFlipid hl-)
-+hN 1.008 H bonded to nitrogen (GAFF hn-)
-+hO 1.008 H in Hydroxyl group (GAFF ho-)
-+hX 1.008 H bonded to C next to positively charged group (GAFF hx-)
-+nA 14.01 sp3 N with four connected atoms (GAFF n4-)
- oC 16.00 sp2 oxygen with one connected atom (e.g C=O, COO-) (GAFF o -)
--oS 16.00 sp3 oxygen in ethers and esters (GAFF os-)
-+oH 16.00 sp3 oxygen in hydroxyl group (GAFF oh-)
- oP 16.00 sp2 oxygen with one connected atom (e.g P-O) in phosphate group (GAFF o -)
-+oS 16.00 sp3 oxygen in ethers and esters (GAFF os-)
- oT 16.00 sp3 oxygen bonded to carbon in phosphate group (GAFF os-)
--nA 14.01 sp3 N with four connected atoms (GAFF n4-)
- pA 30.97 phosphorus with four connected atoms, such as O=P(OH)3 (GAFF p5-)
--hE 1.008 H bonded to aliphatic carbon with 1 electrwd. group (GAFF h1-)
--hX 1.008 H bonded to C next to positively charged group (GAFF hx-)
--hB 1.008 H bonded to aromatic carbon (GAFF ha-)
--hN 1.008 H bonded to nitrogen (GAFF hn-)
--hL 1.008 H bonded to aliphatic carbon without electrwd. group (GAFFlipid hl-)
-
- cA cB cC cD oC oS oP oT nA pA hE hX hB hN hL
- cA-cA 303.1 1.5350 Lipid11 v1.0 (GAFF c3-c3)
-+cA-cB 328.3 1.5080 Lipid11 v1.0 (GAFF c3-c2)
-+cA-cD 303.1 1.5350 Lipid14 v2.14(GAFF c3-c3)
-+cA-hA 337.3 1.0920 Lipid11 v1.0 (GAFF c3-hc)
- cA-hE 335.9 1.0930 Lipid11 v1.0 (GAFF c3-h1)
- cA-hX 338.7 1.0910 Lipid11 v1.0 (GAFF c3-hx)
- cA-nA 293.6 1.4990 Lipid11 v1.0 (GAFF c3-n4)
-+cA-oH 314.1 1.4260 Lipid11 v1.0 (GAFF c3-oh)
- cA-oS 301.5 1.4390 Lipid11 v1.0 (GAFF c3-os)
- cA-oT 301.5 1.4390 Lipid11 v1.0 (GAFF c3-os)
- cB-cB 589.7 1.3240 Lipid11 v1.0 (GAFF c2-c2)
-+cB-cD 328.3 1.5080 Lipid14 v2.0 (GAFF c2-c3)
- cB-hB 344.3 1.0870 Lipid11 v1.0 (GAFF c2-ha)
-+cC-cD 328.3 1.5080 Lipid14 v2.0 (GAFF c -c3)
- cC-oC 648.0 1.2140 Lipid11 v1.0 (GAFF c -o )
- cC-oS 411.3 1.3430 Lipid11 v1.0 (GAFF c -os)
--cD-cB 328.3 1.5080 Lipid14 v2.0 (GAFF c3-c2)
--cD-cC 328.3 1.5080 Lipid14 v2.0 (GAFF c3-c )
- cD-cD 303.1 1.5350 Lipid14 v2.0 (GAFF c3-c3)
- cD-hL 337.3 1.0920 Lipid14 v2.0 (GAFF c3-hc)
- hN-nA 369.0 1.0330 Lipid11 v1.0 (GAFF hn-n4)
-+hO-oH 369.6 0.9740 Lipid11 v1.0 (GAFF ho-oh)
- oP-pA 487.7 1.4810 Lipid11 v1.0 (GAFF o -p5)
- oT-pA 342.5 1.6020 Lipid11 v1.0 (GAFF os-p5)
-
- cA-cA-cA 63.210 110.630 Lipid11 v1.0 (GAFF c3-c3-c3)
-+cA-cA-cB 63.530 111.440 Lipid11 v1.0 (GAFF c3-c3-c2)
-+cA-cA-cD 63.210 110.630 Lipid14 v2.14(GAFF c3-c3-c3)
-+cA-cA-hA 46.370 110.050 Lipid11 v1.0 (GAFF c3-c3-hc)
- cA-cA-hE 46.360 110.070 Lipid11 v1.0 (GAFF c3-c3-h1)
- cA-cA-hX 46.020 111.740 Lipid11 v1.0 (GAFF c3-c3-hx)
- cA-cA-nA 64.450 114.320 Lipid11 v1.0 (GAFF c3-c3-n4)
-+cA-cA-oH 67.720 109.430 Lipid11 v1.0 (GAFF c3-c3-oh)
- cA-cA-oS 67.780 108.420 Lipid11 v1.0 (GAFF c3-c3-os)
- cA-cA-oT 67.780 108.420 Lipid11 v1.0 (GAFF c3-c3-os)
-+cA-cB-cA 62.700 116.520 Lipid11 v1.0 (GAFF c3-c2-c3)
-+cA-cB-cB 64.330 123.420 Lipid11 v1.0 (GAFF c3-c2-c2)
-+cA-cB-hB 45.660 117.300 Lipid11 v1.0 (GAFF c3-c2-ha)
-+cA-cD-cD 63.210 110.630 Lipid14 v2.14(GAFF c3-c3-c3)
-+cA-cD-hL 46.370 110.050 Lipid14 v2.14(GAFF c3-c3-hc)
- cA-nA-cA 62.840 110.640 Lipid11 v1.0 (GAFF c3-n4-c3)
- cA-nA-hN 46.190 110.110 Lipid11 v1.0 (GAFF c3-n4-hn)
-+cA-oH-hO 47.090 108.160 Lipid11 v1.0 (GAFF c3-oh-ho)
- cA-oS-cC 63.630 115.140 Lipid11 v1.0 (GAFF c3-os-c )
- cA-oT-pA 78.480 118.000 Lipid11 v1.0 (GAFF c3-os-p5)
-+cB-cA-hA 47.030 110.490 Lipid11 v1.0 (GAFF c2-c3-hc)
-+cB-cB-cD 64.330 123.420 Lipid14 v2.0 (GAFF c2-c2-c3)
- cB-cB-hB 50.040 120.940 Lipid11 v1.0 (GAFF c2-c2-ha)
-+cB-cD-cD 63.530 111.440 Lipid14 v2.0 (GAFF c2-c3-c3)
- cB-cD-hL 47.030 110.490 Lipid14 v2.0 (GAFF c2-c3-hc)
-+cC-cD-cD 63.790 110.530 Lipid14 v2.0 (GAFF c -c3-c3)
- cC-cD-hL 47.200 109.680 Lipid14 v2.0 (GAFF c -c3-hc)
--cD-cB-cB 64.330 123.420 Lipid14 v2.0 (GAFF c3-c2-c2)
-+cD-cA-hA 46.370 110.050 Lipid14 v2.14(GAFF c3-c3-hc)
- cD-cB-hB 45.660 117.300 Lipid14 v2.0 (GAFF c3-c2-ha)
- cD-cC-oC 68.030 123.110 Lipid14 v2.0 (GAFF c3-c -o )
- cD-cC-oS 69.260 111.960 Lipid14 v2.0 (GAFF c3-c -os)
--cD-cD-cB 63.530 111.440 Lipid14 v2.0 (GAFF c3-c3-c2)
--cD-cD-cC 63.790 110.530 Lipid14 v2.0 (GAFF c3-c3-c )
- cD-cD-cD 63.210 110.630 Lipid14 v2.0 (GAFF c3-c3-c3)
- cD-cD-hL 46.370 110.050 Lipid14 v2.0 (GAFF c3-c3-hc)
-+hA-cA-hA 39.430 108.350 Lipid11 v1.0 (GAFF hc-c3-hc)
- hE-cA-hE 39.180 109.550 Lipid11 v1.0 (GAFF h1-c3-h1)
-+hE-cA-oH 50.970 109.880 Lipid11 v1.0 (GAFF ha-c3-oh)
- hE-cA-oS 50.840 108.820 Lipid11 v1.0 (GAFF h1-c3-os)
- hE-cA-oT 50.840 108.820 Lipid11 v1.0 (GAFF h1-c3-os)
- hL-cD-hL 39.430 108.350 Lipid14 v2.0 (GAFF hc-c3-hc)
-@@ -67,86 +89,133 @@ oP-pA-oP 46.010 115.800 Lipid11 v1.0 (GAFF o -p5-o )
- oP-pA-oT 44.010 116.090 Lipid11 v1.0 (GAFF o -p5-os)
- oT-pA-oT 45.370 101.770 Lipid11 v1.0 (GAFF os-p5-os)
-
--cA-cA-cA-hE 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
--cA-cA-cA-oS 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
--cA-cA-cA-oT 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
--cA-cA-nA-cA 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
--cA-cA-nA-hN 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
--cA-cA-oT-pA 1 0.3833 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-os-X )
--cA-nA-cA-hX 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
--cA-oS-cC-oS 1 2.700 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c -os-X )
--cA-oT-pA-oP 1 0.800 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -os-p5-X )
--cA-oT-pA-oP 1 0.800 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -os-p5-X )
--cA-oT-pA-oT 1 0.25 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-p5-os)
--cA-oT-pA-oT 1 1.20 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-p5-os)
--cB-cB-cD-cD 1 0.3464 0.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cB-cB-cD-cD 1 -0.5577 0.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cB-cB-cD-cD 1 -0.2920 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cB-cB-cD-cD 1 -0.0943 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cB-cB-cD-cD 1 0.0226 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cB-cD-cD-cD 1 0.0251 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cB-cD-cD-cD 1 0.0054 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cB-cD-cD-cD 1 0.2007 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cB-cD-cD-cD 1 0.2103 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cB-cD-cD-cD 1 0.0811 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cB-cD-cD-hL 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c3-X )
--cC-cD-cD-hL 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c3-X )
--cC-oS-cA-cA 1 0.383 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-os-c )
--cC-oS-cA-cA 1 0.80 180.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-os-c )
--cC-oS-cA-hE 1 0.3833 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-os-X )
--cD-cB-cB-cD 1 0.3073 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cB-cB-cD 1 4.0051 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cB-cB-cD 1 0.1990 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cB-cB-cD 1 0.3242 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cB-cB-cD 1 -0.0415 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cB-cB-hB 1 6.650 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c2-c2-X )
--cD-cC-oS-cA 1 2.700 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c -os-X )
--cD-cD-cC-oC 1 -0.9110 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cC-oC 1 0.7382 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cC-oC 1 0.3290 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cC-oC 1 -0.5864 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cC-oC 1 0.1333 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cC-oS 1 -0.1226 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cC-oS 1 -0.2054 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cC-oS 1 0.1802 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cC-oS 1 0.5107 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cC-oS 1 0.1355 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cD-cC 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF )
--cD-cD-cD-cD 1 0.3112 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cD-cD 1 -0.1233 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cD-cD 1 0.1149 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cD-cD 1 -0.2199 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cD-cD 1 0.2170 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
--cD-cD-cD-hL 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF c3-c3-c3-hc)
--hB-cB-cB-hB 1 6.650 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c2-c2-X )
--hE-cA-cA-hE 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
--hE-cA-cA-nA 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
--hE-cA-cA-hX 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
--hE-cA-cA-oS 1 0.00 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
--hE-cA-cA-oS 1 0.25 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
--hE-cA-cA-oT 1 0.00 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
--hE-cA-cA-oT 1 0.25 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
--hE-cA-oT-pA 1 0.3833 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-os-X )
--hB-cB-cD-cD 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c2-X )
--hB-cB-cD-hL 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c2-X )
--hL-cD-cB-cB 1 0.38 180.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c2-c2)
--hL-cD-cB-cB 1 1.15 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c2-c2)
--hL-cD-cC-oC 1 0.80 0.0 -1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c -o )
--hL-cD-cC-oC 1 0.08 180.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c -o )
--hL-cD-cC-oS 1 0.000 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c -c3-X )
--hL-cD-cD-hL 1 0.15 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c3-hc)
--hN-nA-cA-hX 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
--hX-cA-cA-oT 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
--nA-cA-cA-oT 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
--cA-oS-cC-oC 1 2.70 180.0 -2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-c -o )
--cA-oS-cC-oC 1 1.40 180.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-c -o )
--oS-cA-cA-oS 1 0.144 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
--oS-cA-cA-oS 1 1.175 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
--oT-cA-cA-oS 1 0.144 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
--oT-cA-cA-oS 1 1.175 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
--
-+cA-cA-cA-cA 1 0.18 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-c3-c3)
-+cA-cA-cA-cA 1 0.25 180.0 -2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-c3-c3)
-+cA-cA-cA-cA 1 0.20 180.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-c3-c3)
-+cA-cA-cA-cB 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+cA-cA-cA-cD 1 0.3112 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cA-cA-cD 1 -0.1233 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cA-cA-cD 1 0.1149 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cA-cA-cD 1 -0.2199 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cA-cA-cD 1 0.2170 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cA-cA-hA 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-c3-hc)
-+cA-cA-cA-hE 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+cA-cA-cA-oH 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+cA-cA-cA-oS 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+cA-cA-cA-oT 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+cA-cA-cB-cA 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c2-X )
-+cA-cA-cB-cB 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c2-X )
-+cA-cA-cB-hB 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c2-X )
-+cA-cA-cD-cD 1 0.3112 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cA-cD-cD 1 -0.1233 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cA-cD-cD 1 0.1149 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cA-cD-cD 1 -0.2199 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cA-cD-cD 1 0.2170 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cA-cD-hL 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(GAFF c3-c3-c3-hc)
-+cA-cA-nA-cA 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
-+cA-cA-nA-hN 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
-+cA-cA-oH-hO 1 0.16 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-oh-ho)
-+cA-cA-oH-hO 1 0.25 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-oh-ho)
-+cA-cA-oS-cC 1 0.383 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-os-c )
-+cA-cA-oS-cC 1 0.80 180.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c3-os-c )
-+cA-cA-oT-pA 1 0.3833 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-os-X )
-+cA-cB-cA-hA 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c2-X )
-+cA-cB-cB-cA 1 6.65 180.0 -2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c2-c2-c3)
-+cA-cB-cB-cA 1 1.90 180.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-c2-c2-c3)
-+cA-cB-cB-hB 1 6.650 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c2-c2-X )
-+cA-cD-cD-cD 1 0.3112 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cD-cD-cD 1 -0.1233 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cD-cD-cD 1 0.1149 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cD-cD-cD 1 -0.2199 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cD-cD-cD 1 0.2170 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(Lipid14 cD-cD-cD-cD)
-+cA-cD-cD-hL 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(GAFF c3-c3-c3-hc)
-+cA-nA-cA-hX 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
-+cA-oS-cC-cD 1 2.700 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -os-c -X )
-+cA-oS-cC-oC 1 2.70 180.0 -2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-c -o )
-+cA-oS-cC-oC 1 1.40 180.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-c -o )
-+cA-oS-cC-oS 1 2.700 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c -os-X )
-+cA-oT-pA-oP 1 0.800 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -os-p5-X )
-+cA-oT-pA-oT 1 0.25 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-p5-os)
-+cA-oT-pA-oT 1 1.20 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF c3-os-p5-os)
-+cB-cA-cA-hA 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+cB-cA-cA-hE 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+cB-cA-cA-oH 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+cB-cB-cA-hA 1 0.38 180.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF hc-c3-c2-c2)
-+cB-cB-cA-hA 1 1.15 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF hc-c3-c2-c2)
-+cB-cB-cD-cD 1 0.3464 0.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cB-cB-cD-cD 1 -0.5577 0.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cB-cB-cD-cD 1 -0.2920 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cB-cB-cD-cD 1 -0.0943 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cB-cB-cD-cD 1 0.0226 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cB-cB-cD-hL 1 0.38 180.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF c2-c2-c3-hc)
-+cB-cB-cD-hL 1 1.15 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF c2-c2-c3-hc)
-+cB-cD-cD-cD 1 0.0251 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cB-cD-cD-cD 1 0.0054 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cB-cD-cD-cD 1 0.2007 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cB-cD-cD-cD 1 0.2103 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cB-cD-cD-cD 1 0.0811 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cB-cD-cD-hL 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c3-X )
-+cC-cD-cD-cD 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+cC-cD-cD-hL 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c3-X )
-+cC-oS-cA-hE 1 0.3833 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-os-X )
-+cD-cA-cA-hA 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(GAFF c3-c3-c3-hc)
-+cD-cB-cB-cD 1 0.3073 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cB-cB-cD 1 4.0051 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cB-cB-cD 1 0.1990 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cB-cB-cD 1 0.3242 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cB-cB-cD 1 -0.0415 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cB-cB-hB 1 6.650 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c2-c2-X )
-+cD-cD-cA-hA 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(GAFF c3-c3-c3-hc)
-+cD-cD-cB-hB 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c2-X )
-+cD-cD-cC-oC 1 -0.9110 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cC-oC 1 0.7382 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cC-oC 1 0.3290 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cC-oC 1 -0.5864 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cC-oC 1 0.1333 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cC-oS 1 -0.1226 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cC-oS 1 -0.2054 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cC-oS 1 0.1802 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cC-oS 1 0.5107 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cC-oS 1 0.1355 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cD-cD 1 0.3112 180.000 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cD-cD 1 -0.1233 180.000 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cD-cD 1 0.1149 0.000 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cD-cD 1 -0.2199 0.000 4.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cD-cD 1 0.2170 0.000 5.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.10 (paramfit)
-+cD-cD-cD-hL 1 0.16 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF c3-c3-c3-hc)
-+hA-cA-cA-hA 1 0.15 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF hc-c3-c3-hc)
-+hA-cA-cA-hE 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+hA-cA-cA-oH 1 0.00 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF hc-c3-c3-oh)
-+hA-cA-cA-oH 1 0.25 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF hc-c3-c3-oh)
-+hA-cA-cB-hB 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c2-X )
-+hA-cA-cD-hL 1 0.15 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.14(GAFF hc-c3-c3-hc)
-+hB-cB-cB-hB 1 6.650 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c2-c2-X )
-+hB-cB-cD-hL 1 0.000 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c3-c2-X )
-+hE-cA-cA-hE 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+hE-cA-cA-hX 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+hE-cA-cA-nA 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+hE-cA-cA-oS 1 0.00 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
-+hE-cA-cA-oS 1 0.25 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
-+hE-cA-cA-oT 1 0.00 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
-+hE-cA-cA-oT 1 0.25 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF h1-c3-c3-os)
-+hE-cA-oH-hO 1 0.500 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-oh-X )
-+hE-cA-oT-pA 1 0.3833 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-os-X )
-+hL-cD-cC-oC 1 0.08 180.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c -o )
-+hL-cD-cC-oC 1 0.80 0.0 1.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c -o )
-+hL-cD-cC-oS 1 0.000 180.0 2.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF X -c -c3-X )
-+hL-cD-cD-hL 1 0.15 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid14 v2.0 (GAFF hc-c3-c3-hc)
-+hN-nA-cA-hX 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-n4-X )
-+hX-cA-cA-oT 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+nA-cA-cA-oT 1 0.1556 0.0 3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF X -c3-c3-X )
-+oS-cA-cA-oS 1 0.144 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
-+oS-cA-cA-oS 1 1.175 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
-+oS-cA-cA-oT 1 0.144 0.0 -3.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
-+oS-cA-cA-oT 1 1.175 0.0 2.000 SCEE=1.2 SCNB=2.0 Lipid11 v1.0 (GAFF os-c3-c3-os)
-+
-+cA-cB-cB-cA 1.1 180. 2.0 Lipid14 CHL (GAFF)
-+cB-cA-cB-hB 1.1 180. 2.0 Lipid14 CHL (GAFF)
-+cB-cD-cB-hB 1.1 180.0 2.0 Lipid14 v2.0 aliphatic improper (GAFF c2-c3-c2-ha)
- cD-oC-cC-oS 10.5 180.0 2.0 Lipid14 v2.0 ester improper (GAFF X -X -c -o )
--cB-cD-cB-hB 1.1 180.0 2.0 Lipid14 v2.0 aliphatic improper (GAFF c2-c3-c2-ha - default)
-
- hw ow 0000. 0000. 4. flag for fast water - Hack for no 10-12 terms
-
-@@ -156,17 +225,20 @@ MOD4 RE
- cB 1.9080 0.0860 Lipid14 v2.10
- cC 1.9080 0.0700 Lipid14 v2.10
- cD 1.9080 0.1094 OPLS
-+ hA 1.4870 0.0157 OPLS
-+ hB 1.2500 0.0070 Lipid14 v2.10
-+ hE 1.3870 0.0157 Veenstra et al JCC,8,(1992),963
-+ hL 1.4600 0.0100 Lipid14 v2.10
-+ hN 0.6000 0.0157 !Ferguson base pair geom.
-+ hO 0.0000 0.0000 OPLS Jorgensen, JACS,110,(1988),1657 (RCW Needs fixing give radii)
-+ hX 1.1000 0.0157 Veenstra et al JCC,8,(1992),963
-+ nA 1.8240 0.1700 OPLS
- oC 1.6500 0.1400 Lipid14 v2.10
-+ oH 1.7210 0.2104 OPLS
-+ oP 1.6500 0.1400 Lipid14 v2.10
- oS 1.6500 0.1200 Lipid14 v2.10
- oT 1.6500 0.1200 Lipid14 v2.10
-- oP 1.6500 0.1400 Lipid14 v2.10
-- nA 1.8240 0.1700 OPLS
- pA 2.1000 0.2000 JCC,7,(1986),230;
-- hE 1.3870 0.0157 Veenstra et al JCC,8,(1992),963
-- hX 1.1000 0.0157 Veenstra et al JCC,8,(1992),963
-- hB 1.2500 0.0070 Lipid14 v2.10
-- hN 0.6000 0.0157 !Ferguson base pair geom.
-- hL 1.4600 0.0100 Lipid14 v2.10
-
- END
-
-@@ -175,7 +247,7 @@ END
-
- *** AMBER Lipid14 Force Field, C. Dickson, B. Madej, A.Skjevik, K. Teigen, I.R. Gould, R.C. Walker ***
-
--Citation is - Released version 2.10:
-+Citation is:
-
- Dickson, C.J., Madej, B.D., Skjevik, A.A., Betz, R.M., Teigen, K., Gould, I.R., Walker, R.C., "Lipid14: The Amber Lipid Force Field", J. Chem. Theory Comput., 2014, in press, DOI: 10.1021/ct4010307
-
-@@ -241,24 +313,31 @@ Version 2.11 (February 2014)
- Version 2.12 (February 2014)
- - Replace angle force constants involving phosporus with the correct values from the update GAFF.dat file.
-
-+Version 2.14 (September 2015)
-+- Reorder parameters so they are alphabetical.
-+- Add cholesterol parameters
-+
- Atom type mapping
- -----------------
-
- GAFF Lipid14 Description
- ---- ------- -----------
-- c3 cA sp3 carbon
-- c2 cB aliphatic sp2 carbon
- c cC carbonyl sp2 carbon
-- o oC sp2 oxygen with one connected atom (e.g C=O, COO-)
-- os oS sp3 oxygen in ethers and esters
-- n4 nA sp3 N with four connected atoms
-- p5 pA phosphorus with four connected atoms, such as O=P(OH)3
-+ c2 cB aliphatic sp2 carbon
-+ c3 cA sp3 carbon
- h1 hE H bonded to aliphatic carbon with 1 electrwd. group
-- hx hX H bonded to C next to positively charged group
- ha hB H bonded to aromatic carbon
-+ hc hA H bonded to aliphatic carbon without electrwd. group
- hn hN H bonded to nitrogen
-+ ho hO H in Hydroxyl group
-+ hx hX H bonded to C next to positively charged group
-+ n4 nA sp3 N with four connected atoms
-+ o oC sp2 oxygen with one connected atom (e.g C=O, COO-)
- o oP sp2 oxygen with one connected atom (e.g P-O) in phosphate group
-+ oh oH sp3 oxygen in hydroxyl group
-+ os oS sp3 oxygen in ethers and esters
- os oT sp3 oxygen bonded to carbon in phosphate group
-+ p5 pA phosphorus with four connected atoms, such as O=P(OH)3
-
- GAFFlipid Lipid14 Description
- --------- ------- -----------
diff --git a/sci-chemistry/ambertools/files/ambertools-15-update.5.patch b/sci-chemistry/ambertools/files/ambertools-15-update.5.patch
deleted file mode 100644
index 017cb8d6d..000000000
--- a/sci-chemistry/ambertools/files/ambertools-15-update.5.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-**********> update.5
-
-Author: Jason Swails
-
-Date: Oct. 31, 2015
-
-Program: ParmEd
-
-Description: Fix Python 2.6-compatibility for ParmEd
-
---------------------------------------------------------------------------------
-
- AmberTools/src/parmed/chemistry/openmm/reporters.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git AmberTools/src/parmed/chemistry/openmm/reporters.py AmberTools/src/parmed/chemistry/openmm/reporters.py
-index d4e47d4..0f4c3ea 100644
---- AmberTools/src/parmed/chemistry/openmm/reporters.py
-+++ AmberTools/src/parmed/chemistry/openmm/reporters.py
-@@ -1,4 +1,4 @@
--from __future__ import division
-+from __future__ import division, with_statement
-
- from chemistry.amber.asciicrd import AmberMdcrd
- from chemistry.geometry import box_vectors_to_lengths_and_angles
diff --git a/sci-chemistry/ambertools/files/ambertools-15-update.6.patch b/sci-chemistry/ambertools/files/ambertools-15-update.6.patch
deleted file mode 100644
index d7df551f5..000000000
--- a/sci-chemistry/ambertools/files/ambertools-15-update.6.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-********> update.6
-
-Author: Charles Lin
-
-Date: November 10, 2015
-
-Programs: pmemd.cuda
-
-Description: This update gives support to cuda 7.5 and optional support for 7.0 (it is recommended to run cuda 6.5 or 7.5)
-
---------------------------------------------------------
-
- AmberTools/src/configure2 | 31 ++++++++++++++++++++++++++++++-
- 1 file changed, 30 insertions(+), 1 deletion(-)
-
-diff --git AmberTools/src/configure2 AmberTools/src/configure2
-index 9a504b1..6835c9c 100755
---- AmberTools/src/configure2
-+++ AmberTools/src/configure2
-@@ -865,9 +865,38 @@ if [ "$cuda_SPFP" = 'yes' -o "$cuda_SPXP" = 'yes' -o "$cuda_DPFP" = 'yes' ]; the
- echo "CUDA Version $cudaversion detected"
- echo "Configuring for SM2.0, SM3.0 and SM5.0"
- nvccflags="$sm20flags $sm30flags $sm50flags"
-+ elif [ "$cudaversion" = "7.0" ]; then
-+ printf "\n"
-+ printf "Version 7.0 of the NVIDIA CUDA compiler has been detected.\n\
-+Support for version 7.0 has been deprecated and we recommend use\n\
-+of either 7.5 or 6.5 instead. Version 7.0 introduced a performance\n\
-+regression over earlier compilers and also a bug in the way that GPUs are\n\
-+selected based on whether they are in use or not. This bug causes AMBER to\n\
-+print a GPU selection error rather than auto selecting a free GPU. These\n\
-+issues do not effect v6.5 and have been addressed in version 7.5."
-+ printf "\n"
-+ printf "If you still want to proceed with v7.0 on the\n\
-+understanding that it is considered deprecated from a support process please type\n\
-+'yes' to proceed. Otherwise type 'no', switch to either 6.5 or 7.5\n\
-+and rerun configure."
-+ printf "\n"
-+ read answer
-+ ans=`echo $answer | awk '{print substr($1,1,1)}'`
-+
-+ if [ "$ans" = "y" -o "$ans" = "Y" ]; then
-+ echo "Configuring for SM2.0, SM3.0 and SM5.0"
-+ nvccflags="$sm20flags $sm30flags $sm50flags"
-+ else
-+ echo "Please set cuda version to 6.5 or 7.5!"
-+ exit 1
-+ fi
-+ elif [ "$cudaversion" = "7.5" ]; then
-+ echo "CUDA Version $cudaversion detected"
-+ echo "Configuring for SM2.0, SM3.0, SM5.0 and SM5.2"
-+ nvccflags="$sm20flags $sm30flags $sm50flags $sm52flags"
- else
- echo "Error: Unsupported CUDA version $cudaversion detected."
-- echo " AMBER requires CUDA version == 5.0 .or. 5.5 .or. 6.0 .or. 6.5 .or. 7.0"
-+ echo " AMBER requires CUDA version == 5.0 .or. 5.5 .or. 6.0 .or. 6.5 .or. 7.5"
- exit 1
- fi
- nvcc="$nvcc $nvccflags"
diff --git a/sci-chemistry/ambertools/metadata.xml b/sci-chemistry/ambertools/metadata.xml
deleted file mode 100644
index 7daa2ce7e..000000000
--- a/sci-chemistry/ambertools/metadata.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>alexxy@gentoo.org</email>
- <name>Alexey Shvetsov</name>
- </maintainer>
- <maintainer type="project">
- <email>sci-chemistry@gentoo.org</email>
- <name>Gentoo Chemistry Project</name>
- </maintainer>
-</pkgmetadata>
^ permalink raw reply related [flat|nested] 18+ messages in thread
end of thread, other threads:[~2020-09-26 16:21 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-25 17:21 [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/ Justin Lecher
-- strict thread matches above, loose matches on Subject: below --
2020-09-26 16:21 Aisha Tammy
2016-02-19 12:56 Justin Lecher
2016-02-19 12:56 Justin Lecher
2015-10-28 9:07 Justin Lecher
2014-11-11 15:48 Justin Lecher
2012-10-21 12:52 Reinis Danne
2012-10-20 16:41 Reinis Danne
2012-08-28 16:53 Reinis Danne
2012-03-03 22:11 Reinis Danne
2012-03-03 21:06 Reinis Danne
2011-10-26 20:06 Reinis Danne
2011-10-25 22:40 Reinis Danne
2011-07-28 13:08 Alexey Shvetsov
2011-06-05 0:21 Reinis Danne
2011-03-08 13:40 Alexey Shvetsov
2011-03-07 1:49 Alexey Shvetsov
2011-03-06 21:40 Alexey Shvetsov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox