public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [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&gt 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&gt 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&gt 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&gt 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&gt 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&gt 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&gt 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&gt 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:     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/
@ 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/
@ 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-03-06 21:40 [gentoo-commits] proj/sci:master commit in: sci-chemistry/ambertools/files/, sci-chemistry/ambertools/ Alexey Shvetsov
  -- strict thread matches above, loose matches on Subject: below --
2011-03-07  1:49 Alexey Shvetsov
2011-03-08 13:40 Alexey Shvetsov
2011-06-05  0:21 Reinis Danne
2011-06-25 17:21 Justin Lecher
2011-07-28 13:08 Alexey Shvetsov
2011-10-25 22:40 Reinis Danne
2011-10-26 20:06 Reinis Danne
2012-03-03 21:06 Reinis Danne
2012-03-03 22:11 Reinis Danne
2012-08-28 16:53 Reinis Danne
2012-10-20 16:41 Reinis Danne
2012-10-21 12:52 Reinis Danne
2014-11-11 15:48 Justin Lecher
2015-10-28  9:07 Justin Lecher
2016-02-19 12:56 Justin Lecher
2016-02-19 12:56 Justin Lecher
2020-09-26 16:21 Aisha Tammy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox