--- mpqc-2.0.4.orig/debian/changelog
+++ mpqc-2.0.4/debian/changelog
@@ -0,0 +1,64 @@
+mpqc (2.0.4-1) unstable; urgency=low
+
+  * New upstream release
+  * Changed libsc-dev's Depends: from libsc1 to libsc2. D'oh.
+
+ -- Michael Banck <mbanck@gmx.net>  Sat,  2 Mar 2002 13:51:36 +0100
+
+mpqc (2.0.3-1) unstable; urgency=low
+
+  * New upstream release; closes: #133051
+  * SO-name bumped to 2:0:0 in agreement with upstream's versioning
+
+ -- Michael Banck <mbanck@gmx.net>  Sun, 17 Feb 2002 20:32:20 +0100
+
+mpqc (2.0.1-1) unstable; urgency=low
+
+  * New upstream release
+  * SO-name bumped to 1:0:0 in agreement with upstream's versioning
+  * Hardcoded CFLAGS='-O0 -Wall', this allows to build fine on s/390 
+    at least
+
+ -- Michael Banck <mbanck@gmx.net>  Sat, 12 Jan 2002 00:22:23 +0100
+
+mpqc (2.0.0-3) unstable; urgency=low
+
+  * Changed --with-sc-datadir from ${prefix}/share/mpqc to
+    /usr/share/mpqc. mpqc did not find its data files.
+  * Changed datadir= to scdatadir= in debian/rules install:
+  * Changed SC_VERSION back to 2.0.0 (got changed by the applied 
+    patch from 2.0.0-2 below)
+
+ -- Michael Banck <mbanck@gmx.net>  Tue,  8 Jan 2002 23:57:26 +0100
+
+mpqc (2.0.0-2) unstable; urgency=low
+
+  * Applied the patch provided by upstream that resolves most of the
+    2.0.0-1 changes I describe below.
+  * Changed buildid and SO-name from [pre1] and [1:0:0] back to
+    [] and [0:0:0]
+  * Updated bin/config.sub and bin/config.guess so that they recognize
+    ia64 and s390
+  * Added '--disable-parallel' to the configure switches
+
+ -- Michael Banck <mbanck@gmx.net>  Tue, 25 Dec 2001 00:41:09 +0100
+
+mpqc (2.0.0-1) unstable; urgency=low
+
+  * Initial Release; closes: #116157
+  * Compiled manpages for mpqc, sc-config, scls and scpr from
+    the documentation
+  * Changed files.cc and atominfo.cc to look for data files
+    in DATADIR instead of INSTALLED_SCLIBDIR
+  * Added AC_DEFINE for DATADIR in configure.in and scconfig.h
+  * Changed all library names from lib* to libSC* in agreement with
+    upstream
+  * Added some distclean rules to various Makefiles
+  * Changed sc-config to honor $includedir instead of $prefix/include
+  * Added a SO-name for shared libraries, starting with 0:0:0 
+
+ -- Michael Banck <mbanck@gmx.net>  Sun,  9 Dec 2001 12:44:59 +0100
+
+Local variables:
+mode: debian-changelog
+End:
--- mpqc-2.0.4.orig/debian/sc-config.1
+++ mpqc-2.0.4/debian/sc-config.1
@@ -0,0 +1,71 @@
+.TH SC 1 "19 October 2001" Version 2.0.0
+.SH NAME
+sc-config - script to get information about the installed version of SC
+.SH SYNOPSIS
+.B sc-config
+[\-\-prefix\fI[=DIR]\fP] [\-\-exec\-prefix\fI[=DIR]\fP] [\-\-version] [\-\-libs] [\-\-cppflags] [\-\-cc] [\-\-cflags] [\-\-cxx] [\-\-cxxflags] [\-\-f77] [\-\-f77flags]
+.SH DESCRIPTION
+.PP
+The \fIsc-config\fP program can be use to obtain the compilers, compiler
+options, and libraries needed to use the SC(Scientific Computing) toolkit from
+your program.
+.
+.SH OPTIONS
+.l
+The \fIsc-config\fP program returns information about how SC was compiled and
+installed. The following information is available:
+.TP 8
+.B  \-\-prefix
+The directory where SC is installed.
+.TP 8
+.B  \-\-version
+The version of SC.
+.TP 8
+.B  \-\-libdir
+The directory were the libraries are found.
+.TP 8
+.B  \-\-libs
+The libraries and library paths needed to link.
+.TP 8
+.B  \-\-cppflags
+The include directories needed to build.
+.TP 8
+.B  \-\-cc
+The C compiler.
+.TP 8
+.B  \-\-cflags
+The C compiler flags.
+.TP 8
+.B  \-\-cxx
+The C++ compiler.
+.TP 8
+.B  \-\-cxxflags
+The C++ compiler flags.
+.TP 8
+.B  \-\-f77
+The FORTRAN 77 compiler.
+.TP 8
+.B  \-\-f77flags
+The FORTRAN 77 compiler flags.
+.SH EXAMPLES
+
+To use the sc-config program to link your executable to SC, use a Makefile for
+GNU make similar to the following:
+.br
+
+.RS
+SCCONFIG = /usr/bin/sc-config
+.br
+CXX := $(shell $(SCCONFIG) --cxx)
+.br
+CXXFLAGS := $(shell $(SCCONFIG) --cxxflags)
+.br
+CPPFLAGS := $(shell $(SCCONFIG) --cppflags)
+.br
+LIBS := $(shell $(SCCONFIG) --libs)
+
+.TP 8
+myprog: myprog.o
+$(CXX) $(CXXFLAGS) -o $@ $^ $(LIBS)
+
+
--- mpqc-2.0.4.orig/debian/scls.1
+++ mpqc-2.0.4/debian/scls.1
@@ -0,0 +1,42 @@
+.TH SC 1 "18 Oct 2001" Version 2.0.0
+.ad l
+.nh
+.SH NAME
+scls \- The scls Program
+.SH DESCRIPTION
+The \fIscls\fP program is used to list objects in checkpoint files. 
+.PP
+.SH "OPTIONS"
+.PP
+scls takes the following command line options followed by a list of files:
+.PP
+
+.B \-memorygrp <val>
+Which memory group to use. 
+.TP 8
+.B \-threadgrp <val>
+Which thread group to use. 
+.TP 8
+.B \-messagegrp <val>
+Which message group to use. 
+.TP 8
+.B \-W <val>
+Set the working directory. 
+.TP 8
+.B \-d
+Turn on debugging. 
+.TP
+.B \-v
+Print the version. 
+.TP 8
+.B \-l
+Detailed list of objects.
+.TP 8
+.B \-w
+Print the warranty. 
+.TP 8
+.B \-L
+Print the license. 
+.TP 8
+.B \-h
+Print this help. 
--- mpqc-2.0.4.orig/debian/scpr.1
+++ mpqc-2.0.4/debian/scpr.1
@@ -0,0 +1,43 @@
+.TH SC 1 "18 Oct 2001" Version 2.0.0
+.ad l
+.nh
+.SH NAME
+scpr \- The scpr Program
+.SH DESCRIPTION
+The \fIscpr\fP program is used to print out objects in checkpoint files. 
+.PP
+.SH "OPTIONS"
+.PP
+scpr takes the following command line options followed by a list of files:
+.PP
+
+.TP 8
+.B -o <val>
+Print the object with the name val. Object names take the form '<classname>:<ordinal_number>'. At least one file and object name must be given. 
+.TP 8
+.B -memorygrp <val>
+Which memory group to use. 
+.TP 8
+.B -threadgrp <val>
+Which thread group to use. 
+.TP 8
+.B -messagegrp <val>
+Which message group to use. 
+.TP 8
+.B -W <val>
+Set the working directory. 
+.TP 8
+.B -d
+Turn on debugging. 
+.TP
+.B -v
+Print the version. 
+.TP 8
+.B -w
+Print the warranty. 
+.TP 8
+.B -L
+Print the license. 
+.TP 8
+.B -h
+Print this help. 
--- mpqc-2.0.4.orig/debian/rules
+++ mpqc-2.0.4/debian/rules
@@ -0,0 +1,139 @@
+#!/usr/bin/make -f
+# Sample debian/rules that uses debhelper.
+# GNU copyright 1997 to 1999 by Joey Hess.
+#export DH_VERBOSE=1
+export DH_COMPAT=3
+TOPDIR = $(CURDIR)
+STATICDIR = $(CURDIR)/build-static
+SHAREDDIR = $(CURDIR)/build-shared
+DOCDIR = $(CURDIR)/build-doc
+SO_NAME = 2
+LIBSC_DIR = $(CURDIR)/debian/libsc$(SO_NAME)/usr/lib
+LIBSC_DEV_DIR = $(CURDIR)/debian/libsc-dev/usr/lib
+COMMONARGS=--prefix=/usr --enable-production --host=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) --libdir=/usr/lib --datadir=/usr/share/mpqc --with-sc-datadir=/usr/share/mpqc --disable-parallel #--with-build-id=\"\"
+
+configure-doc-stamp:
+	dh_testdir
+	mkdir $(DOCDIR)
+	(cd $(DOCDIR); \
+	$(TOPDIR)/configure $(COMMONARGS) --disable-doxygen-man --without-dot)
+	touch configure-doc-stamp
+
+configure-shared-stamp:
+	dh_testdir
+	mkdir $(SHAREDDIR)
+	(cd $(SHAREDDIR); \
+	$(TOPDIR)/configure $(COMMONARGS) --enable-shared --disable-static)
+	touch configure-shared-stamp
+
+configure-static-stamp:
+	dh_testdir
+	mkdir $(STATICDIR)
+	(cd $(STATICDIR); \
+	$(TOPDIR)/configure $(COMMONARGS) --includedir=/usr/include/sc)
+	touch configure-static-stamp
+
+build: build-stamp
+build-stamp: build-shared-stamp build-doc-stamp build-static-stamp
+	touch build-stamp
+
+build-doc-stamp: configure-doc-stamp
+	dh_testdir
+	(cd $(DOCDIR)/doc; $(MAKE))
+	touch build-doc-stamp
+
+build-static-stamp: configure-static-stamp
+	dh_testdir
+	# lebedev.c brings up compiler errors with -O2
+	(cd $(STATICDIR); $(MAKE) CFLAGS='-O0 -Wall')
+	touch build-static-stamp
+
+build-shared-stamp: configure-shared-stamp
+	dh_testdir
+	# FFLAGS are here because libtool compiles the sole fortran source without
+	# -fPIC and lintian complains
+	(cd $(SHAREDDIR); $(MAKE) FFLAGS='-O2 -fPIC -Wall' CFLAGS='-O0 -Wall')
+	touch build-shared-stamp
+
+clean:
+	dh_testdir
+	dh_testroot
+	-rm *-stamp
+	-$(MAKE) distclean
+	# stuff that distclean doesn't clean:
+	rm -f lib/LocalMakefile lib/Makedirlist doc/doxygen.cfg
+	rm -rf $(STATICDIR) $(SHAREDDIR) $(DOCDIR)
+	dh_clean
+
+install:
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+	cp -R $(CURDIR)/src/bin/mpqc/validate/input/* $(CURDIR)/debian/mpqc/usr/share/doc/mpqc/examples
+	(cd $(SHAREDDIR)/src/bin/mpqc; $(MAKE) install \
+		prefix=$(CURDIR)/debian/mpqc/usr \
+                libdir=$(CURDIR)/debian/mpqc/usr/lib \
+        	scdatadir=$(CURDIR)/debian/mpqc/usr/share/mpqc)
+	(cd $(SHAREDDIR)/lib; $(MAKE) install \
+		prefix=$(CURDIR)/debian/mpqc/usr \
+		libdir=$(CURDIR)/debian/mpqc/usr/lib \
+		scdatadir=$(CURDIR)/debian/mpqc/usr/share/mpqc)
+	(cd $(STATICDIR); $(MAKE) install_devel \
+		prefix=$(CURDIR)/debian/libsc-dev/usr \
+		includedir=$(CURDIR)/debian/libsc-dev/usr/include/sc \
+		libdir=$(CURDIR)/debian/libsc-dev/usr/lib)
+	(cd $(SHAREDDIR)/src/lib; $(MAKE) install \
+		prefix=$(CURDIR)/debian/libsc$(SO_NAME)/usr \
+		includedir=$(CURDIR)/debian/libsc$(SO_NAME)/usr/include/sc \
+		libdir=$(CURDIR)/debian/libsc$(SO_NAME)/usr/lib)
+	$(SHAREDDIR)/bin/sc-libtool --finish $(LIBSC_DIR)
+	mv $(LIBSC_DIR)/*.la $(LIBSC_DEV_DIR)
+	mv $(LIBSC_DIR)/*.so $(LIBSC_DEV_DIR)
+	rm -rf $(CURDIR)/debian/mpqc/usr/bin/chkmpqcout 
+	rm -rf $(CURDIR)/debian/mpqc/usr/lib
+	rm -rf $(CURDIR)/debian/mpqc/usr/share/mpqc/perl
+	rm -rf $(CURDIR)/debian/mpqc/usr/share/mpqc/elisp
+	install $(STATICDIR)/src/bin/scpr/scpr $(CURDIR)/debian/libsc-dev/usr/bin
+	install $(STATICDIR)/src/bin/scls/scls $(CURDIR)/debian/libsc-dev/usr/bin
+	install $(DOCDIR)/doc/html/* $(CURDIR)/debian/libsc-doc/usr/share/doc/libsc-doc/html
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+#	dh_movefiles
+
+#	dh_installdebconf	
+	dh_installdocs
+	dh_installexamples
+	dh_installmenu
+#	dh_installlogrotate
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installmime
+#	dh_installinit
+	dh_installcron
+	dh_installman 
+	dh_installinfo
+#	dh_undocumented
+	dh_installchangelogs 
+	dh_link
+	dh_strip 
+	dh_compress
+	dh_fixperms
+	dh_makeshlibs -plibsc$(SO_NAME)
+	dh_installdeb
+#	dh_perl
+	dh_shlibdeps -plibsc$(SO_NAME) -l$(LIBSC_DIR)
+	dh_shlibdeps -pmpqc -l$(LIBSC_DIR)# -- $(CURDIR)/debian/mpqc/usr/bin/mpqc
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
--- mpqc-2.0.4.orig/debian/libsc-dev.manpages
+++ mpqc-2.0.4/debian/libsc-dev.manpages
@@ -0,0 +1,3 @@
+debian/sc-config.1
+debian/scls.1
+debian/scpr.1
--- mpqc-2.0.4.orig/debian/copyright
+++ mpqc-2.0.4/debian/copyright
@@ -0,0 +1,46 @@
+This package was debianized by Michael Banck <mbanck@gmx.net> on
+Sat, 13 Oct 2001 14:56:13 +0000.
+
+It was downloaded from http://aros.ca.sandia.gov/~cljanss/mpqc
+
+Upstream Author: Curtis L. Janssen <cljanss@aros.ca.sandia.gov>
+
+Copyright for the executables:
+
+   This package is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; version 2 dated June, 1991.
+
+   This package is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this package; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.
+
+On Debian GNU/Linux systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.
+
+Copyright for the libraries:
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free
+    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+    02111-1307, USA.
+
+On Debian GNU/Linux systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/LGPL'.
+
--- mpqc-2.0.4.orig/debian/control
+++ mpqc-2.0.4/debian/control
@@ -0,0 +1,63 @@
+Source: mpqc
+Priority: optional
+Section: science
+Maintainer: Michael Banck <mbanck@gmx.net>
+Build-Depends: debhelper (>> 3.0.0), doxygen, flex, bison, blas-dev, lapack-dev, g77, perl
+Standards-Version: 3.5.2
+
+Package: libsc-dev
+Architecture: any
+Section: devel
+Depends: libsc2 (= ${Source-Version}), libc6-dev
+Description: The Scientific Computing Toolkit (development version)
+ The Scientific Computing toolkit (SC) provides C++ class libraries for
+ scientific computation.  Included are classes for managing memory, saving and
+ restoring the state of objects, reading objects from an input file, parallel
+ communication, matrix algebra, among others.
+ .
+ Class libraries supporting quantum chemistry applications are provided with
+ this distribution of SC.
+ .
+ These are the static libraries and header files.
+
+Package: libsc2
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Suggests: libsc-doc
+Description: The Scientific Computing Toolkit
+ The Scientific Computing toolkit (SC) provides C++ class libraries for
+ scientific computation.  Included are classes for managing memory, saving and
+ restoring the state of objects, reading objects from an input file, parallel
+ communication, matrix algebra, among others. 
+ .
+ Class libraries supporting quantum chemistry applications are provided with
+ this distribution of SC.  
+ .
+ These are the shared libraries.
+
+Package: libsc-doc
+Architecture: all
+Section: doc
+Description: The Scientific Computing Toolkit (Documentation)
+ The Scientific Computing toolkit (SC) provides C++ class libraries for
+ scientific computation.  Included are classes for managing memory, saving and
+ restoring the state of objects, reading objects from an input file, parallel
+ communication, matrix algebra, among others.
+ .
+ This package includes the html-documentation of the classes.
+
+Package: mpqc
+Architecture: any
+Section: science
+Depends: ${shlibs:Depends}
+Description: The Massively Parallel Quantum Chemistry Program
+ MPQC computes the properties of molecules through ab-initio methods.  It can
+ compute closed shell and general restricted open shell Hartree-Fock energies
+ and gradients, density functional theory energies and gradients, second order
+ open shell perturbation theory (OPT2[2]) and Z-averaged perturbation theory
+ (ZAPT2) energies, and second order closed shell Moeller-Plesset perturbation
+ theory energies and gradients.  It also includes an internal coordinate
+ geometry optimizer.
+ .
+ MPQC is build upon the Scientific Computing Toolkit (SC).
--- mpqc-2.0.4.orig/debian/mpqc.dirs
+++ mpqc-2.0.4/debian/mpqc.dirs
@@ -0,0 +1,4 @@
+usr/bin
+usr/share/mpqc
+usr/share/mpqc/basis
+usr/share/doc/mpqc/examples
--- mpqc-2.0.4.orig/debian/mpqc.1
+++ mpqc-2.0.4/debian/mpqc.1
@@ -0,0 +1,1180 @@
+.TH MPQC 1 "18 Oct 2001" Version 2.0.0
+.ad l
+.nh
+.SH NAME
+mpqc \- The Massively Parallel Quantum Chemistry program (MPQC)
+.SH SYNOPSIS
+.B mpqc
+[options] [filename]
+.SH DESCRIPTION
+MPQC computes the properties of molecules, \fIab initio\fP, on a wide variety of computer architectures.
+.PP
+It can compute closed shell and general restricted open-shell Hartree-Fock energies and gradients, second order open-shell perturbation theory (OPT2[2]) and Z-averaged perturbation theory (ZAPT2) energies, and second order closed shell Moeller-Plesset perturbation theory energies and gradients. It also includes methods for optimizing molecules in either Cartesian or internal coordinates.
+.PP
+MPQC is designed using object-oriented programming techniques and implemented in the C++ programming language.
+.SH OPTIONS
+.PP 
+MPQC can be given options followed by an optional input file name. If the input file name is not given, it will default to 'mpqc.in'. The following command line options are recognized:
+.TP 8
+.B -o
+Gives the name of the output file. The default is the console.
+.TP 8
+.B -i
+Convert a simple input file to an object oriented input file and write the result to the ouput. No calculations are done.
+.TP 8
+.B -messagegrp
+A \fBParsedKeyVal\fP specification of a \fBMessageGrp\fP object. The default depends on how MPQC was compiled.
+.TP 8
+.B -memorygrp
+A \fBParsedKeyVal\fP specification of a \fBMemoryGrp\fP object. The default depends on how MPQC was compiled.
+.TP 8
+.B -threadgrp
+A \fBParsedKeyVal\fP specification of a \fBThreadGrp\fP object. The default depends on how MPQC was compiled.
+.TP 8
+.B "\fC-l\fP"
+Sets a limit on the number of basis functions. The default is zero, which means an unlimited number of basis functions.
+.TP 8
+.B -W
+Sets the working directory. The default is the current directory.
+.TP 8
+.B -c
+Check the input and exit.
+.TP 8
+.B -v
+Print the version number.
+.TP 8
+.B -w
+Print the warranty information (there is no warranty).
+.TP 8
+.B -d
+If a debugger object was given in the input, start the debugger running as soon as MPQC is started.
+.TP 8
+.B -h
+Print a list of options.
+.TP 8
+.B -f
+The name of an object-oriented input file. The default is \fCmpqc.in\fP. This cannot be used if another input file is specified. This option is deprecated, as both input file formats can be read by given the input file name on the command line without any option flags.
+.PP
+Some MPI environments do not pass the command line to slave programs, but supply it when MPI_Init is called. To make MPQC call MPI_Init on start-up, instead of when an \fBMPIMessageGrp\fP is created, name the executable mpqc-mpi.
+.PP
+.SH ENVIRONMENTAL VARIABLES
+.PP 
+MPQC looks at four environmental variables to set up communication and find library files. Machine specific libraries and utilities to run programs in parallel might look at other environment variables as well. The four that apply on all platforms are:
+.TP 8
+.B SCLIBDIR
+The name of the library directory.
+.TP
+.B MESSAGEGRP
+A \fBParsedKeyVal\fP specification of a \fBMessageGrp\fP object. The default depends on how MPQC was compiled. See the \fBMessageGrp\fP class documentation for more information.
+.TP 8
+.B MEMORYGRP
+A \fBParsedKeyVal\fP specification of a \fBMemoryGrp\fP object. The default depends on how MPQC was compiled and the \fBMessageGrp\fP in use.
+.TP 8
+.B THREADGRP
+A \fBParsedKeyVal\fP specification of a \fBThreadGrp\fP object. The default depends on how MPQC was compiled.
+.PP
+By default, MPQC tries to find library files first in the \fClib\fP subdirectory of the installation directory and then the source code directory. If the library files cannot be found, MPQC must be notified of the new location with the environmental variable \fCSCLIBDIR\fP.
+.PP
+The other three keywords specify objects. This is done by giving a mini \fBParsedKeyVal\fP input in a string. The object is anonymous, that is, no keyword is associated with it. Here is an example:
+.PP
+.nf
+
+setenv MESSAGEGRP '<\fBShmMessageGrp\fP>:(n = 4)'
+
+.fi
+.PP
+.SH SHARED MEMORY MULTIPROCESSOR WITH SYSV IPC
+.PP
+By default, MPQC will run on only one CPU. To specify more, you can give a \fBShmMessageGrp\fP object on the command line. The following would run mpqc in four processes: 
+.PP
+.nf
+
+mpqc -messagegrp '<\fBShmMessageGrp\fP>:(n = 4)' input_file
+
+.fi
+.PP
+Alternately, the \fBShmMessageGrp\fP object can be given as an environmental variable: 
+.PP
+.nf
+
+setenv MESSAGEGRP '<\fBShmMessageGrp\fP>:(n = 4)'
+mpqc input_file
+
+.fi
+.PP
+If MPQC should unexpectedly die, shared memory segments and semaphores will be left on the machine. These should be promptly cleaned up or other jobs may be prevented from running successfully. To see if you have any of these resources allocated, use the \fCipcs\fP command. The output will look something like:
+.PP
+.nf
+
+IPC status from /dev/kmem as of Wed Mar 13 14:42:18 1996
+T     ID     KEY        MODE       OWNER    GROUP
+Message Queues:
+Shared Memory:
+m 288800 0x00000000 --rw-------  cljanss     user
+Semaphores:
+s    390 0x00000000 --ra-------  cljanss     user
+s    391 0x00000000 --ra-------  cljanss     user
+
+.fi
+.PP
+To remove the IPC resources used by \fCcljanss\fP in the above example on IRIX, type:
+.PP
+.nf
+
+ipcrm -m 288800
+ipcrm -s 390
+ipcrm -s 391
+
+.fi
+.PP
+And on Linux, type:
+.PP
+.nf
+
+ipcrm shm 288800
+ipcrm sem 390
+ipcrm sem 391
+
+.fi
+.PP
+.SH SHARED MEMORY MULTIPROCESSOR WITH POSIX THREADS
+.PP 
+By default, MPQC will run with only one thread. To specify more, you can give a \fBPthreadThreadGrp\fP object on the command line. MPQC is not parallelized to as large an extent with threads as it is with the more conventional distributed memory model, so you might not get the best performance using this technique. On the other the memory overhead is lower and no interprocess communication is needed.
+.PP
+The following would run MPQC in four threads:
+.PP
+.nf
+
+mpqc -threadgrp '<\fBPthreadThreadGrp\fP>:(num_threads = 4)' input_file
+
+.fi
+.PP
+Alternately, the \fBPthreadThreadGrp\fP object can be given as an environmental variable: 
+.PP
+.nf
+
+setenv THREADGRP '<\fBPthreadThreadGrp\fP>:(n = 4)'
+mpqc input_file
+
+.fi
+.PP
+.SH SHARED OR DISTRIBUTED MEMORY MULTIPROCESSOR WITH MPI
+.PP 
+A \fBMPIMessageGrp\fP object is used to run using MPI. The number of nodes used is determined by the MPI run-time and is not specified as input data to \fBMPIMessageGrp\fP.
+.PP
+.nf
+
+mpqc -messagegrp '<\fBMPIMessageGrp\fP>:()' input_file
+
+.fi
+.PP
+Alternately, the \fBMPIMessageGrp\fP object can be given as an environmental variable: 
+.PP
+.nf
+
+setenv MESSAGEGRP '<\fBMPIMessageGrp\fP>:()'
+mpqc input_file
+
+.fi
+.PP
+Usually, a special command is needed to start MPI jobs; typically it is named \fCmpirun\fP.
+.PP
+.SH INPUT
+MPQC supports two input formats. The primary input is an object oriented format which gives users access to all of MPQC's options. The second format allows access to a subset of MPQC's capabilities, but is more intuitive and easier to learn. New users are advised to start with the simplified format. MPQC can be used to convert the simplified format to the full object-oriented format with the \fC-i\fP option.
+.PP
+.SH Simple Input
+The simple input format consists of keywords followed by a ':' followed by a value. The keywords are case sensitive. The values might be modified by options found in parenthesis. For example, the following input performs an optimization of water using density functional theory with the B3LYP exchange-correlation functional:
+.PP
+.nf
+
+% B3LYP optimization of water
+optimize: yes
+method: KS (xc = B3LYP)
+basis: 3-21G*
+molecule:
+    O    0.172   0.000   0.000
+    H    0.745   0.000   0.754
+    H    0.745   0.000  -0.754
+
+.fi
+.PP
+Comments begin with a \fC%\fP and continue to the end of the line. Basis set names containing special characters, such as a space or parentheses, must be quoted inside a pair of double quotes. The accepted keywords are:
+.PP
+.IP "\fCmolecule\fP" 1c
+ Gives the atoms types and coordinates. The following options can be used
+.PP
+ 
+.IP "\fCbohr\fP" 1c
+ The coordinates are given in Bohr. 
+.IP "\fCangstrom\fP" 1c
+ The coordinates are given in Angstroms. 
+.IP "\fCcharge\fP" 1c
+ This option can be given after an 'element x y z' quadruple. This will override the charge on the atom. For example, \fC(charge = 0)\fP can be given for the ghost atoms in a counterpoise correction calculation. 
+.PP
+.IP "\fCmultiplicity\fP" 1c
+ Gives the multiplicity of the molecule. The default is \fC1\fP.
+.PP
+.IP "\fCoptimize\fP" 1c
+ If \fCyes\fP, then an optimization will be performed. The default is \fCno\fP. The following options can be given.
+.PP
+ 
+.IP "\fCcartesian\fP" 1c
+ Use Cartesian coordinates. 
+.IP "\fCinternal\fP" 1c
+ Use internal coordinates. 
+.IP "\fCredundant\fP" 1c
+ Use redundant internal coordinates. 
+.PP
+.IP "\fCgradient\fP" 1c
+ If \fCyes\fP, then a gradient calculation will be performed. The default is \fCno\fP.
+.PP
+.IP "\fCfrequencies\fP" 1c
+ If \fCyes\fP, then the frequencies will be obtained. The default is \fCno\fP.
+.PP
+.IP "\fCcharge\fP" 1c
+ Specificies the charge on the molecule. The default is \fC0\fP.
+.PP
+.IP "\fCmethod\fP" 1c
+ Specifices the method. There is no default and the possible values are:
+.PP
+.IP "\fCHF\fP" 1c
+ Hartree-Fock. Unrestricted HF is used if \fCmultiplicity\fP > 1 
+.IP "\fCRHF\fP" 1c
+ Restricted Hartree-Fock. 
+.IP "\fCUHF\fP" 1c
+ Unrestricted Hartree-Fock. 
+.IP "\fCKS\fP" 1c
+ Kohn-Sham. Unrestricted KS is used if \fCmultiplicity\fP > 1 
+.IP "\fCRKS\fP" 1c
+ Restricted Kohn-Sham. 
+.IP "\fCUKS\fP" 1c
+ Unrestricted Kohn-Sham. 
+.IP "\fCMP2\fP" 1c
+ Second order Moeller-Plesset perturbation theory. Only available for \fCmultiplicity\fP = 1. 
+.IP "\fCZAPT2\fP" 1c
+ Z-averaged perturbation theory. Only available for \fCmultiplicity\fP > 1. No gradient, optimization, or frequencies are possible. 
+.PP
+The following options are valid with the \fCKS\fP, \fCRKS\fP, and \fCUKS\fP methods:
+.PP
+ 
+.IP "\fCgrid\fP" 1c
+ Specifies the grid to be used for numerical integrations. The following values can be given:  
+.IP "\fCxcoarse\fP" 1c
+ 
+.IP "\fCcoarse\fP" 1c
+ 
+.IP "\fCmedium\fP" 1c
+ 
+.IP "\fCfine\fP" 1c
+ 
+.IP "\fCxfine\fP" 1c
+ 
+.IP "\fCultrafine\fP" 1c
+  
+.IP "\fCxc\fP" 1c
+ Specifies the exchange-correlation functional. There is no default. See the table in the \fBStdDenFunctional\fP class documentation for the possible values. 
+.PP
+.IP "\fCbasis\fP" 1c
+ Specifies the basis set. There is no default. See the table in the \fBGaussianBasisSet\fP class documentation for the available basis sets.
+.PP
+.IP "\fCrestart\fP" 1c
+ Set to \fCyes\fP to restart an optimization. The default is \fCno\fP.
+.PP
+.IP "\fCcheckpoint\fP" 1c
+ Set to \fCno\fP to not save checkpoint files during an optimization. The default is \fCyes\fP.
+.PP
+.IP "\fCsymmetry\fP" 1c
+ Specifices the Schoenflies symbol of the point group of the molecule. The default is \fCauto\fP, which will cause to program to find the highest order Abelian subgroup of the molecule.
+.PP
+.IP "\fCdocc\fP" 1c
+ Gives the number of doubly occupied orbitals in each each irreducible representation in a parenthesized list. The symmetry must be specified and not be \fCauto\fP. The method must be restricted.
+.PP
+.IP "\fCsocc\fP" 1c
+ Gives the number of single occupied orbitals in each each irreducible representation in a parenthesized list. The symmetry must be specified and not be \fCauto\fP. The method must be restricted.
+.PP
+.IP "\fCalpha\fP" 1c
+ Gives the number of alpha occupied orbitals in each each irreducible representation in a parenthesized list. The symmetry must be specified and not be \fCauto\fP. The method must be unrestricted.
+.PP
+.IP "\fCbeta\fP" 1c
+ Gives the number of beta occupied orbitals in each each irreducible representation in a parenthesized list. The symmetry must be specified and not be \fCauto\fP. The method must be unrestricted.
+.PP
+.IP "\fCfrozen_docc\fP" 1c
+ Gives the number of frozen core orbitals. Can be either a single integer or a parenthesized list giving the frozen core orbitals in each irreducible representation. In the latter case the symmetry must be given and not be \fCauto\fP.
+.PP
+.IP "\fCfrozen_uocc\fP" 1c
+ Gives the number of frozen virtual orbitals. Can be either a single integer or a parenthesized list giving the frozen virtual orbitals in each irreducible representation. In the latter case the symmetry must be given and not be \fCauto\fP.
+.PP
+.SH Object-Oriented Input
+MPQC is an object-oriented program that directly allows the user to specify objects that MPQC then manipulates to obtain energies, properties, etc. This makes the input very flexible, but very complex. However, most calculations should be quite similar to the one of the examples given later in this chapter. The best way to get started is to use one of the example input files and modify it to meet your needs.
+.PP
+MPQC starts off by creating a \fBParsedKeyVal\fP object that parses the input file specified on the command line. The format of the input file is documented in . It is basically a free format input that associates keywords and logical groupings of keywords with values. The values can be scalars, arrays, or objects.
+.PP
+The keywords recognized by MPQC begin with the mpqc prefix. That is, they must be nested between an \fCmpqc:(\fP and a \fC)\fP. Alternately, each keyword can be individually prefixed by \fCmpqc:\fP. The primary keywords are given below. Some of the keywords specify objects, in which case the object will require more \fBParsedKeyVal\fP input. These objects are created from the input by using their \fBParsedKeyVal\fP constructors. These constructors are documented with the source code documentation for the class.
+.PP
+.IP "\fCmole\fP" 1c
+ This is the most important keyword for MPQC. It specifies the \fBMolecularEnergy\fP object. This is an object that knows how to compute the energy of a molecule. The specializations of \fBMolecularEnergy\fP that are most commonly used are CLKS, HSOSKS, UKS, \fBCLHF\fP, \fBHSOSHF\fP, UHF, and \fBMBPT2\fP.
+.PP
+.IP "\fCopt\fP" 1c
+ This keyword must be specified for optimizations. It specifies an \fBOptimize\fP object. Usually, \fBQNewtonOpt\fP is best for finding minima and \fBEFCOpt\fP is best for transition states.
+.PP
+.IP "\fCfreq\fP" 1c
+ This keyword must be specified to compute frequencies. It specifies a \fBMolecularFrequencies\fP object.
+.PP
+.IP "\fCthread\fP" 1c
+ This specifies an object of type \fBThreadGrp\fP that can be used to advantage on shared-memory multiprocessor machines for certain types of calculations. This keyword can be overridden by giving the \fBThreadGrp\fP in the environment or command line. See the section on running MPQC for more information.
+.PP
+.IP "\fCcheckpoint\fP" 1c
+ The value of this keyword is boolean. If true, then optimizations will be checkpointed after each iteration. The checkpoint file suffice is \fC.ckpt\fP. The default is to checkpoint.
+.PP
+.IP "\fCsavestate\fP" 1c
+ The value of this keyword is boolean. If true, then the states of the optimizer and wavefunction objects will be saved after the calculation completes. The output file suffix is \fC.wfn\fP. The default is to save state.
+.PP
+.IP "\fCrestart\fP" 1c
+ The value of this keyword is boolean. If true, mpqc will attempt to restart the calculation. If the checkpoint file is not found, the calculation will continue as if the value were false. The default is true.
+.PP
+.IP "\fCrestart_file\fP" 1c
+ This gives the name of a file from which restart information is read. If the file name ends in \fC.wfn\fP the \fBMolecularEnergy\fP object will be restored. Otherwise, the \fBOptimize\fP object will be restored. The default file name is formed by appending \fC.ckpt\fP to the input file name with the extension removed.
+.PP
+.IP "\fCdo_energy\fP" 1c
+ The value of this keyword is boolean. If true a single point energy calculation will be done for the \fBMolecularEnergy\fP object given with the mole keyword. The default is true.
+.PP
+.IP "\fCdo_gradient\fP" 1c
+ The value of this keyword is boolean. If true a single point gradient calculation will be done for the \fBMolecularEnergy\fP object given with the mole keyword. The default is false.
+.PP
+.IP "\fCoptimize\fP" 1c
+ The value of this keyword is boolean. If true and the opt keyword was set to a valid value, then an optimization will be performed. The default is true.
+.PP
+.IP "\fCwrite_pdb\fP" 1c
+ The value of this keyword is boolean. If true a PDB file with the molecular coordinates will be written.
+.PP
+.IP "\fCfilename\fP" 1c
+ The value of this keyword is a string that gives a name from which checkpoint and other filenames are constructed. The default is the basename of the input file.
+.PP
+.IP "\fCprint_timings\fP" 1c
+ If this is true, timing information is printed at the end of the run. The default is true.
+.PP
+There are also some utility keywords that tell mpqc some technical details about how to do the calculation:  
+.IP "\fCdebug\fP" 1c
+ This optional keyword gives a \fBDebugger\fP object which can used to help find the problem if MPQC encounters a catastrophic error. 
+.IP "\fCmatrixkit\fP" 1c
+ This optional keyword gives a \fBSCMatrixKit\fP specialization which is used to produce matrices of the desired type. The default is a \fBReplSCMatrixKit\fP which replicates matrices on all of the nodes. Other choices are not thoroughly tested. 
+.PP
+.SH EXAMPLES
+.PP 
+This example input does a Hartree-Fock calculation on water. Following is the entire input, followed by a breakdown with descriptions.
+.PP
+.nf
+
+% This input does a Hartree-Fock calculation on water.
+molecule<\fBMolecule\fP>: (
+  symmetry = C2V
+  unit = angstrom
+  { atoms geometry } = {
+    O     [     0.00000000     0.00000000     0.37000000 ]
+    H     [     0.78000000     0.00000000    -0.18000000 ]
+    H     [    -0.78000000     0.00000000    -0.18000000 ]
+  }
+)
+basis<\fBGaussianBasisSet\fP>: (
+  name = 'STO-3G'
+  molecule = $:molecule
+)
+mpqc: (
+  mole<\fBCLHF\fP>: (
+    molecule = $:molecule
+    basis = $:basis
+  )
+)
+
+.fi
+.PP
+We start with a descriptive comment. Comments begin with a \fC%\fP. Everything from the \fC%\fP to the end of the line is ignored.
+.PP
+.nf
+
+% This input does a Hartree-Fock calculation on water.
+
+.fi
+.PP
+Now lets set up a \fBMolecule\fP object. The name of the object comes first, it is \fCmolecule\fP. Then, in angle brackets, comes the type of the molecule, which is the class \fBMolecule\fP. The keyword and class name are followed by a \fC:\fP and then several pieces of input grouped between a pair of matching parentheses. These parentheses contain the information that will be given to \fBMolecule\fP \fBKeyVal\fP constructor.
+.PP
+.nf
+
+molecule<\fBMolecule\fP>: (
+
+.fi
+.PP
+The point group of the molecule is needed. This is done by assigning \fCsymmetry\fP to a case insensitive Schoenflies symbol that is used to initialize a \fBPointGroup\fP object. An Abelian point group should be used.
+.PP
+.nf
+
+  symmetry = C2V
+
+.fi
+.PP
+The default unit for the Cartesian coordinates is Bohr. You can specify other units by assigned \fCunit\fP to a string that will be used to initialize a \fBUnits\fP object.
+.PP
+.nf
+
+  unit = angstrom
+
+.fi
+.PP
+Finally, the atoms and coordinates are given. This can be given in the shorthand table syntax shown below. The headings of the table are the keywords between the first pair of brackets. These are followed by an \fC=\fP and another pair of brackets that contain the data. The first datum is assigned to the first element of the array that corresponds to the first heading, \fCatom\fP. The second datum is assigned to the first element of the array associated with the second heading, \fCgeometry\fP, and so on. Here the second datum is actually a vector: the x, y and z coordinates of the first atom.
+.PP
+.nf
+
+  { atoms                       geometry                   } = {
+    O     [     0.00000000     0.00000000     0.37000000 ]
+    H     [     0.78000000     0.00000000    -0.18000000 ]
+    H     [    -0.78000000     0.00000000    -0.18000000 ]
+  }
+)
+
+.fi
+.PP
+Next, a basis set object is given.
+.PP
+.nf
+
+basis<\fBGaussianBasisSet\fP>: (
+  name = 'STO-3G'
+  molecule = $:molecule
+)
+
+.fi
+.PP
+Now we will give the main body of input. All the subsequent keywords will be grouped in the \fCmpqc\fP section of the input (that is, each keyword will be prefixed with \fCmpqc:\fP).
+.PP
+.nf
+
+mpqc: (
+
+.fi
+.PP
+Next we give the \fCmole\fP keyword which provides a specialization of the \fBMolecularEnergy\fP class. In this case we will do a closed-shell Hartree-Fock calculation. That is done with an object of type \fBCLHF\fP. The keywords that \fBCLHF\fP accepts are given with the documentation for the \fBCLHF\fP class, usually in the description of the \fCconst RefKeyVal&\fP constructor for the class. Also with the \fBCLHF\fP documentation is a list of parent classes. Each of the parent classes may also have input. This input is included with the rest of the input for the child class.
+.PP
+.nf
+
+  mole<\fBCLHF\fP>: (
+
+.fi
+.PP
+The next line specifies the molecule to be used. There are two things to note, first that this is actually a reference to complete molecule specification elsewhere in the input file. The \fC$\fP indicates that this is a reference and the keyword following the \fC$\fP is the actual location of the molecule. The \fC:\fP in front of the keyword means that the keyword is not relative to the current location in the input, but rather relative to the root of the tree of keywords. Thus, this line grabs the molecule that was specified above. The molecule object could have been placed here, but frequently it is necessary that several objects refer to the exact same object and this can only be done using references.
+.PP
+The second point is that if you look at the documentation for \fBCLHF\fP, you will see that it doesn't read \fCmolecule\fP keyword. However, if you follow its parent classes up to \fBMolecularEnergy\fP, you'll find that \fCmolecule\fP is indeed read.
+.PP
+.nf
+
+    molecule = $:molecule
+
+.fi
+.PP
+Just as we gave \fCmolecule\fP, specify the basis set with the \fCbasis\fP keyword as follows:
+.PP
+.nf
+
+    basis = $:basis
+
+.fi
+.PP
+Now we close off the parentheses we opened above and we are finished.
+.PP
+.nf
+
+  )
+)
+
+.fi
+.PP
+.SH "Sample Object-Oriented Input Files"
+.PP 
+The easiest way to get started with mpqc is to start with one of sample inputs that most nearly matches your problem. All of the samples inputs shown here can be found in the directory \fCsrc/bin/mpqc/samples\fP.
+.PP
+.TP
+  
+.TP
+  
+.TP
+  
+.TP
+  
+.TP
+  
+.TP
+  
+.TP
+  
+.TP
+  
+.TP
+  
+.TP
+  
+.TP
+  
+.PP
+.SS "Hartree-Fock Energy"
+.PP
+The following input will compute the Hartree-Fock energy of water.
+.PP
+.nf
+
+% emacs should use -*- \fBKeyVal\fP -*- mode
+% molecule specification
+molecule<\fBMolecule\fP>: (
+  symmetry = C2V
+  unit = angstrom
+  { atoms geometry } = {
+    O     [     0.00000000     0.00000000     0.37000000 ]
+    H     [     0.78000000     0.00000000    -0.18000000 ]
+    H     [    -0.78000000     0.00000000    -0.18000000 ]
+  }
+)
+% basis set specification
+basis<\fBGaussianBasisSet\fP>: (
+  name = 'STO-3G'
+  molecule = $:molecule
+)
+mpqc: (
+  checkpoint = no
+  savestate = no
+  % method for computing the molecule's energy
+  mole<\fBCLHF\fP>: (
+    molecule = $:molecule
+    basis = $:basis
+    memory = 16000000
+  )
+)
+
+.fi
+.PP
+.SS "MP2 Energy"
+.PP
+The following input will compute the MP2 energy of water.
+.PP
+.nf
+
+% emacs should use -*- \fBKeyVal\fP -*- mode
+% molecule specification
+molecule<\fBMolecule\fP>: (
+  symmetry = C2V
+  unit = angstrom
+  { atoms geometry } = {
+    O     [     0.00000000     0.00000000     0.37000000 ]
+    H     [     0.78000000     0.00000000    -0.18000000 ]
+    H     [    -0.78000000     0.00000000    -0.18000000 ]
+  }
+)
+% basis set specification
+basis<\fBGaussianBasisSet\fP>: (
+  name = 'STO-3G'
+  molecule = $:molecule
+)
+mpqc: (
+  checkpoint = no
+  savestate = no
+  % method for computing the molecule's energy
+  mole<\fBMBPT2\fP>: (
+    molecule = $:molecule
+    basis = $:basis
+    memory = 16000000
+    % reference wavefunction
+    reference<\fBCLHF\fP>: (
+      molecule = $:molecule
+      basis = $:basis
+      memory = 16000000
+    )
+  )
+)
+
+.fi
+.PP
+.SS "Hartree-Fock Optimization"
+.PP
+The following input will optimize the geometry of water using the quasi-Newton method.
+.PP
+.nf
+
+% emacs should use -*- \fBKeyVal\fP -*- mode
+% molecule specification
+molecule<\fBMolecule\fP>: (
+  symmetry = C2V
+  unit = angstrom
+  { atoms geometry } = {
+    O     [     0.00000000     0.00000000     0.37000000 ]
+    H     [     0.78000000     0.00000000    -0.18000000 ]
+    H     [    -0.78000000     0.00000000    -0.18000000 ]
+  }
+)
+% basis set specification
+basis<\fBGaussianBasisSet\fP>: (
+  name = '6-31G*'
+  molecule = $:molecule
+)
+mpqc: (
+  checkpoint = no
+  savestate = no
+  % molecular coordinates for optimization
+  coor<\fBSymmMolecularCoor\fP>: (
+    molecule = $:molecule
+    generator<\fBIntCoorGen\fP>: (
+      molecule = $:molecule
+    )
+  )
+  % method for computing the molecule's energy
+  mole<\fBCLHF\fP>: (
+    molecule = $:molecule
+    basis = $:basis
+    coor = $..:coor
+    memory = 16000000
+  )
+  % optimizer object for the molecular geometry
+  opt<\fBQNewtonOpt\fP>: (
+    function = $..:mole
+    update<\fBBFGSUpdate\fP>: ()
+    convergence<MolEnergyConvergence>: (
+      cartesian = yes
+      energy = $..:..:mole
+    )
+  )
+)
+
+.fi
+.PP
+.SS "Optimization with a Computed Guess Hessian"
+.PP
+The following input will optimize the geometry of water using the quasi-Newton method. The guess Hessian will be computed at a lower level of theory.
+.PP
+.nf
+
+% emacs should use -*- \fBKeyVal\fP -*- mode
+% molecule specification
+molecule<\fBMolecule\fP>: (
+  symmetry = C2V
+  unit = angstrom
+  { atoms geometry } = {
+    O     [     0.00000000     0.00000000     0.37000000 ]
+    H     [     0.78000000     0.00000000    -0.18000000 ]
+    H     [    -0.78000000     0.00000000    -0.18000000 ]
+  }
+)
+% basis set specification
+basis<\fBGaussianBasisSet\fP>: (
+  name = '6-31G*'
+  molecule = $:molecule
+)
+mpqc: (
+  checkpoint = no
+  savestate = no
+  % molecular coordinates for optimization
+  coor<\fBSymmMolecularCoor\fP>: (
+    molecule = $:molecule
+    generator<\fBIntCoorGen\fP>: (
+      molecule = $:molecule
+    )
+  )
+  % method for computing the molecule's energy
+  mole<\fBCLHF\fP>: (
+    molecule = $:molecule
+    basis = $:basis
+    coor = $..:coor
+    memory = 16000000
+    guess_hessian<\fBFinDispMolecularHessian\fP>: (
+      molecule = $:molecule
+      only_totally_symmetric = yes
+      eliminate_cubic_terms = no
+      checkpoint = no
+      energy<\fBCLHF\fP>: (
+        molecule = $:molecule
+        memory = 16000000
+        basis<\fBGaussianBasisSet\fP>: (
+          name = '3-21G'
+          molecule = $:molecule
+        )
+      )
+    )
+  )
+  % optimizer object for the molecular geometry
+  opt<\fBQNewtonOpt\fP>: (
+    function = $..:mole
+    update<\fBBFGSUpdate\fP>: ()
+    convergence<MolEnergyConvergence>: (
+      cartesian = yes
+      energy = $..:..:mole
+    )
+  )
+)
+
+.fi
+.PP
+.SS "Optimization Using Newton's Method"
+.PP
+The following input will optimize the geometry of water using the Newton's method. The Hessian will be computed at each step in the optimization. However, Hessian recomputation is usually not worth the cost; try using the computed Hessian as a guess Hessian for a quasi-Newton method before resorting to a Newton optimization.
+.PP
+.nf
+
+% Emacs should use -*- \fBKeyVal\fP -*- mode
+% molecule specification
+molecule<\fBMolecule\fP>: (
+  symmetry = c2v
+  unit = angstrom
+  { atoms geometry } = {
+     O     [     0.00000000     0.00000000     0.36937294 ]
+     H     [     0.78397590     0.00000000    -0.18468647 ]
+     H     [    -0.78397590     0.00000000    -0.18468647 ]
+  }
+)
+% basis set specification
+basis<\fBGaussianBasisSet\fP>: (
+  name = '3-21G'
+  molecule = $:molecule
+)
+mpqc: (
+  checkpoint = no
+  savestate = no
+  restart = no
+  % molecular coordinates for optimization
+  coor<\fBSymmMolecularCoor\fP>: (
+    molecule = $:molecule
+    generator<\fBIntCoorGen\fP>: (
+      molecule = $:molecule
+    )
+  )
+  do_energy = no
+  do_gradient = no
+  % method for computing the molecule's energy
+  mole<\fBCLHF\fP>: (
+    molecule = $:molecule
+    basis = $:basis
+    memory = 16000000
+    coor = $..:coor
+    guess_wavefunction<\fBCLHF\fP>: (
+      molecule = $:molecule
+      total_charge = 0
+      basis<\fBGaussianBasisSet\fP>: (
+        molecule = $:molecule
+        name = 'STO-3G'
+      )
+      memory = 16000000
+    )
+    hessian<\fBFinDispMolecularHessian\fP>: (
+      only_totally_symmetric = yes
+      eliminate_cubic_terms = no
+      checkpoint = no
+    )
+  )
+  optimize = yes
+  % optimizer object for the molecular geometry
+  opt<NewtonOpt>: (
+    print_hessian = yes
+    max_iterations = 20
+    function = $..:mole
+    convergence<MolEnergyConvergence>: (
+      cartesian = yes
+      energy = $..:..:mole
+    )
+  )
+)
+
+.fi
+.PP
+.SS "Hartree-Fock Frequencies"
+.PP
+The following input will compute Hartree-Fock frequencies by finite displacements. A thermodynamic analysis will also be performed. If optimization input is also provided, then the optimization will be run first, then the frequencies.
+.PP
+.nf
+
+% emacs should use -*- \fBKeyVal\fP -*- mode
+% molecule specification
+molecule<\fBMolecule\fP>: (
+  symmetry = C1
+  { atoms geometry } = {
+    O     [  0.0000000000    0.0000000000    0.8072934188 ]
+    H     [  1.4325589285    0.0000000000   -0.3941980761 ]
+    H     [ -1.4325589285    0.0000000000   -0.3941980761 ]
+  }
+)
+% basis set specification
+basis<\fBGaussianBasisSet\fP>: (
+  name = 'STO-3G'
+  molecule = $:molecule
+)
+mpqc: (
+  checkpoint = no
+  savestate = no
+  % method for computing the molecule's energy
+  mole<\fBCLHF\fP>: (
+    molecule = $:molecule
+    basis = $:basis
+    memory = 16000000
+  )
+% vibrational frequency input
+  freq<\fBMolecularFrequencies\fP>: (
+    molecule = $:molecule
+  )
+)
+
+.fi
+.PP
+.SS "Giving Coordinates and a Guess Hessian"
+.PP
+The following example shows several features that are really independent. The variable coordinates are explicitly given, rather than generated automatically. This is especially useful when a guess Hessian is to be provided, as it is here. This Hessian, as given by the user, is not complete and the \fBQNewtonOpt\fP object will fill in the missing values using a guess the Hessian provided by the \fBMolecularEnergy\fP object. Also, fixed coordinates are given in this sample input.
+.PP
+.nf
+
+% emacs should use -*- \fBKeyVal\fP -*- mode
+% molecule specification
+molecule<\fBMolecule\fP>: (
+  symmetry = C1
+  { atoms geometry } = {
+      H    [ 0.088    2.006    1.438 ]
+      O    [ 0.123    3.193    0.000 ]
+      H    [ 0.088    2.006   -1.438 ]
+      O    [ 4.502    5.955   -0.000 ]
+      H    [ 2.917    4.963   -0.000 ]
+      H    [ 3.812    7.691   -0.000 ]
+  }
+)
+% basis set specification
+basis<\fBGaussianBasisSet\fP>: (
+  name = 'STO-3G'
+  molecule = $:molecule
+)
+mpqc: (
+  checkpoint = no
+  savestate = no
+  % method for computing the molecule's energy
+  mole<\fBCLHF\fP>: (
+    molecule = $:molecule
+    basis = $:basis
+    coor = $..:coor
+    memory = 16000000
+  )
+  % molecular coordinates for optimization
+  coor<\fBSymmMolecularCoor\fP>: (
+    molecule = $:molecule
+    generator<\fBIntCoorGen\fP>: (
+      molecule = $:molecule
+      extra_bonds = [ 2 5 ]
+    )
+    % use these instead of generated coordinates
+    variable<\fBSetIntCoor\fP>: [
+      <\fBStreSimpleCo\fP>:( atoms = [ 2 5 ] )
+      <\fBBendSimpleCo\fP>:( atoms = [ 2 5 4 ] )
+      <OutSimpleCo>: ( atoms = [ 5 2 1 3 ] )
+      <\fBSumIntCoor\fP>: (
+        coor: [
+          <\fBStreSimpleCo\fP>:( atoms = [ 1 2 ] )
+          <\fBStreSimpleCo\fP>:( atoms = [ 2 3 ] )
+          ]
+        coef = [ 1.0 1.0 ]
+        )
+      <\fBSumIntCoor\fP>: (
+        coor: [
+          <\fBStreSimpleCo\fP>:( atoms = [ 4 5 ] )
+          <\fBStreSimpleCo\fP>:( atoms = [ 4 6 ] )
+          ]
+        coef = [ 1.0 1.0 ]
+        )
+      <\fBBendSimpleCo\fP>:( atoms = [ 1 2 3 ] )
+      <\fBBendSimpleCo\fP>:( atoms = [ 5 4 6 ] )
+    ]
+    % these are fixed by symmetry anyway,
+    fixed<\fBSetIntCoor\fP>: [
+      <\fBSumIntCoor\fP>: (
+        coor: [
+          <\fBStreSimpleCo\fP>:( atoms = [ 1 2 ] )
+          <\fBStreSimpleCo\fP>:( atoms = [ 2 3 ] )
+          ]
+        coef = [ 1.0 -1.0 ]
+        )
+      <\fBSumIntCoor\fP>: (
+        coor: [
+          <\fBStreSimpleCo\fP>:( atoms = [ 4 5 ] )
+          <\fBStreSimpleCo\fP>:( atoms = [ 4 6 ] )
+          ]
+        coef = [ 1.0 -1.0 ]
+        )
+      <\fBTorsSimpleCo\fP>:( atoms = [ 2 5 4 6] )
+      <OutSimpleCo>:( atoms = [ 3 2 6 4 ] )
+      <OutSimpleCo>:( atoms = [ 1 2 6 4 ] )
+    ]
+  )
+  % optimizer object for the molecular geometry
+  opt<\fBQNewtonOpt\fP>: (
+    function = $..:mole
+    update<\fBBFGSUpdate\fP>: ()
+    convergence<MolEnergyConvergence>: (
+      cartesian = yes
+      energy = $..:..:mole
+    )
+    % give a partial guess hessian in internal coordinates
+    % the missing elements will be filled in automatically
+    hessian = [
+        [  0.0109261670 ]
+        [ -0.0004214845    0.0102746106  ]
+        [ -0.0008600592    0.0030051330    0.0043149957 ]
+        [  0.0             0.0             0.0          ]
+        [  0.0             0.0             0.0          ]
+        [  0.0             0.0             0.0          ]
+        [  0.0             0.0             0.0          ]
+     ]
+  )
+)
+
+.fi
+.PP
+.SS "Optimization with a Hydrogen Bond"
+.PP
+The automatic internal coordinate generator will fail if it cannot find enough redundant internal coordinates. In this case, the internal coordinate generator must be explicitly created in the input and given extra connectivity information, as is shown below.
+.PP
+.nf
+
+% emacs should use -*- \fBKeyVal\fP -*- mode
+% molecule specification
+molecule<\fBMolecule\fP>: (
+  symmetry = C1
+  { atoms geometry } = {
+      H    [ 0.088    2.006    1.438 ]
+      O    [ 0.123    3.193    0.000 ]
+      H    [ 0.088    2.006   -1.438 ]
+      O    [ 4.502    5.955   -0.000 ]
+      H    [ 2.917    4.963   -0.000 ]
+      H    [ 3.812    7.691   -0.000 ]
+  }
+)
+% basis set specification
+basis<\fBGaussianBasisSet\fP>: (
+  name = 'STO-3G'
+  molecule = $:molecule
+)
+mpqc: (
+  checkpoint = no
+  savestate = no
+  % method for computing the molecule's energy
+  mole<\fBCLHF\fP>: (
+    molecule = $:molecule
+    basis = $:basis
+    coor = $..:coor
+    memory = 16000000
+  )
+  % molecular coordinates for optimization
+  coor<\fBSymmMolecularCoor\fP>: (
+    molecule = $:molecule
+    % give an internal coordinate generator that knows about the
+    % hydrogen bond between atoms 2 and 5
+    generator<\fBIntCoorGen\fP>: (
+      molecule = $:molecule
+      extra_bonds = [ 2 5 ]
+    )
+  )
+  % optimizer object for the molecular geometry
+  opt<\fBQNewtonOpt\fP>: (
+    function = $..:mole
+    update<\fBBFGSUpdate\fP>: ()
+    convergence<MolEnergyConvergence>: (
+      cartesian = yes
+      energy = $..:..:mole
+    )
+  )
+)
+
+.fi
+.PP
+.SS "Fixed Coordinate Optimization"
+.PP
+This example shows how to selectively fix internal coordinates in an optimization. Any number of linearly independent coordinates can be given. These coordinates must remain linearly independent throughout the optimization, a condition that might not hold since the coordinates can be nonlinear.
+.PP
+By default, the initial fixed coordinates' values are taken from the cartesian geometry given by the \fBMolecule\fP object; however, the molecule will be displaced to the internal coordinate values given with the fixed internal coordinates if have_fixed_values keyword is set to true, as shown in this example. In this case, the initial cartesian geometry should be reasonably close to the desired initial geometry and all of the variable coordinates will be frozen to their original values during the initial displacement.
+.PP
+.nf
+
+% emacs should use -*- \fBKeyVal\fP -*- mode
+% molecule specification
+molecule<\fBMolecule\fP>: (
+  symmetry = CS
+  { atoms geometry } = {
+    H [  3.04 -0.69 -1.59 ]
+    H [  3.04 -0.69  1.59 ]
+    N [  2.09 -0.48 -0.00 ]
+    C [ -0.58 -0.15  0.00 ]
+    H [ -1.17  1.82  0.00 ]
+    H [ -1.41 -1.04 -1.64 ]
+    H [ -1.41 -1.04  1.64 ]
+  }
+)
+% basis set specification
+basis<\fBGaussianBasisSet\fP>: (
+  name = '4-31G*'
+  molecule = $:molecule
+)
+mpqc: (
+  checkpoint = no
+  savestate = no
+  % molecular coordinates for optimization
+  coor<\fBSymmMolecularCoor\fP>: (
+    molecule = $:molecule
+    generator<\fBIntCoorGen\fP>: (
+      molecule = $:molecule
+    )
+    have_fixed_values = yes
+    fixed<\fBSetIntCoor\fP>: [
+      <OutSimpleCo>: ( value = -0.1
+                       label = 'N-inversion'
+                       atoms = [4 3 2 1] )
+      ]
+  )
+  % method for computing the molecule's energy
+  mole<\fBCLHF\fP>: (
+    molecule = $:molecule
+    basis = $:basis
+    coor = $..:coor
+    memory = 16000000
+  )
+  % optimizer object for the molecular geometry
+  opt<\fBQNewtonOpt\fP>: (
+    max_iterations = 20
+    function = $..:mole
+    update<\fBBFGSUpdate\fP>: ()
+    convergence<MolEnergyConvergence>: (
+      cartesian = yes
+      energy = $..:..:mole
+    )
+  )
+)
+
+.fi
+.PP
+.SS "Transition State Optimization"
+.PP
+This example shows a transition state optimization of the N-inversion in  using mode following. The initial geometry was obtained by doing a few fixed coordinate optimizations along the inversion coordinate.
+.PP
+.nf
+
+% emacs should use -*- \fBKeyVal\fP -*- mode
+% molecule specification
+molecule<\fBMolecule\fP>: (
+  symmetry = CS
+  { atoms geometry } = {
+    H [  3.045436 -0.697438 -1.596748 ]
+    H [  3.045436 -0.697438  1.596748 ]
+    N [  2.098157 -0.482779 -0.000000 ]
+    C [ -0.582616 -0.151798  0.000000 ]
+    H [ -1.171620  1.822306  0.000000 ]
+    H [ -1.417337 -1.042238 -1.647529 ]
+    H [ -1.417337 -1.042238  1.647529 ]
+  }
+)
+% basis set specification
+basis<\fBGaussianBasisSet\fP>: (
+  name = '4-31G*'
+  molecule = $:molecule
+)
+mpqc: (
+  checkpoint = no
+  savestate = no
+  % molecular coordinates for optimization
+  coor<\fBSymmMolecularCoor\fP>: (
+    molecule = $:molecule
+    generator<\fBIntCoorGen\fP>: (
+      molecule = $:molecule
+    )
+    followed<OutSimpleCo> = [ 'N-inversion' 4 3 2 1 ]
+  ) 
+  % method for computing the molecule's energy
+  mole<\fBCLHF\fP>: (
+    molecule = $:molecule
+    basis = $:basis
+    coor = $..:coor
+    memory = 16000000
+  )
+  % optimizer object for the molecular geometry
+  opt<\fBEFCOpt\fP>: (
+    transition_state = yes
+    mode_following = yes
+    max_iterations = 20
+    function = $..:mole
+    update<\fBPowellUpdate\fP>: ()
+    convergence<MolEnergyConvergence>: (
+      cartesian = yes
+      energy = $..:..:mole
+    )
+  )
+)
+
+.fi
+.PP
+.SS "Transition State Optimization with a Computed Guess Hessian"
+.PP
+This example shows a transition state optimization of the N-inversion in  using mode following. The initial geometry was obtained by doing a few fixed coordinate optimizations along the inversion coordinate. An approximate guess Hessian will be computed, which makes the optimiziation converge much faster in this case.
+.PP
+.nf
+
+% emacs should use -*- \fBKeyVal\fP -*- mode
+% molecule specification
+molecule<\fBMolecule\fP>: (
+  symmetry = CS
+  { atoms geometry } = {
+    H [  3.045436 -0.697438 -1.596748 ]
+    H [  3.045436 -0.697438  1.596748 ]
+    N [  2.098157 -0.482779 -0.000000 ]
+    C [ -0.582616 -0.151798  0.000000 ]
+    H [ -1.171620  1.822306  0.000000 ]
+    H [ -1.417337 -1.042238 -1.647529 ]
+    H [ -1.417337 -1.042238  1.647529 ]
+  }
+)
+% basis set specification
+basis<\fBGaussianBasisSet\fP>: (
+  name = '4-31G*'
+  molecule = $:molecule
+)
+mpqc: (
+  checkpoint = no
+  savestate = no
+  % molecular coordinates for optimization
+  coor<\fBSymmMolecularCoor\fP>: (
+    molecule = $:molecule
+    generator<\fBIntCoorGen\fP>: (
+      molecule = $:molecule
+    )
+    followed<OutSimpleCo> = [ 'N-inversion' 4 3 2 1 ]
+  ) 
+  % method for computing the molecule's energy
+  mole<\fBCLHF\fP>: (
+    molecule = $:molecule
+    basis = $:basis
+    coor = $..:coor
+    memory = 16000000
+    guess_hessian<\fBFinDispMolecularHessian\fP>: (
+      molecule = $:molecule
+      only_totally_symmetric = yes
+      eliminate_cubic_terms = no
+      checkpoint = no
+      energy<\fBCLHF\fP>: (
+        molecule = $:molecule
+        memory = 16000000
+        basis<\fBGaussianBasisSet\fP>: (
+          name = '3-21G'
+          molecule = $:molecule
+        )
+      )
+    )
+  )
+  % optimizer object for the molecular geometry
+  opt<\fBEFCOpt\fP>: (
+    transition_state = yes
+    mode_following = yes
+    max_iterations = 20
+    function = $..:mole
+    update<\fBPowellUpdate\fP>: ()
+    convergence<MolEnergyConvergence>: (
+      cartesian = yes
+      energy = $..:..:mole
+    )
+  )
+)
+
+.fi
+.PP
--- mpqc-2.0.4.orig/debian/mpqc.docs
+++ mpqc-2.0.4/debian/mpqc.docs
@@ -0,0 +1 @@
+README
--- mpqc-2.0.4.orig/debian/mpqc.manpages
+++ mpqc-2.0.4/debian/mpqc.manpages
@@ -0,0 +1 @@
+debian/mpqc.1
--- mpqc-2.0.4.orig/debian/libsc-dev.dirs
+++ mpqc-2.0.4/debian/libsc-dev.dirs
@@ -0,0 +1,3 @@
+usr/bin
+usr/lib
+usr/include/sc
--- mpqc-2.0.4.orig/debian/libsc-doc.dirs
+++ mpqc-2.0.4/debian/libsc-doc.dirs
@@ -0,0 +1 @@
+usr/share/doc/libsc-doc/html
--- mpqc-2.0.4.orig/debian/shlibs.local
+++ mpqc-2.0.4/debian/shlibs.local
@@ -0,0 +1,24 @@
+libSCoptions 2 libsc2
+libSCref 2 libsc2
+libSCcontainer 2 libsc2
+libSCclass 2 libsc2
+libSCstate 2 libsc2
+libSCmisc 2 libsc2
+libSCkeyval 2 libsc2
+libSCgroup 2 libsc2
+libSCrender 2 libsc2
+libSClinpackd 2 libsc2
+libSCscmat 2 libsc2
+libSCoptimize 2 libsc2
+libSCisosurf 2 libsc2
+libSCsymmetry 2 libsc2
+libSCmolecule 2 libsc2
+libSCsolvent 2 libsc2
+libSCbasis 2 libsc2
+libSCoint3 2 libsc2
+libSCintv3 2 libsc2
+libSCwfn 2 libsc2
+libSCscf 2 libsc2
+libSCdft 2 libsc2
+libSCmbpt 2 libsc2
+libSCpsi 2 libsc2
--- mpqc-2.0.4.orig/debian/libsc2.dirs
+++ mpqc-2.0.4/debian/libsc2.dirs
@@ -0,0 +1 @@
+usr/lib
