================================================================
                ParPre Parallel Preconditioners Package
================================================================

This package contains a number of parallel preconditioners
for iterative methods such as the method of conjugate gradients.

-- Installation step 1
For installation, you need to have the MPI library
and the Petsc libraries installed.

You can find Petsc at
http://www.mcs.anl.gov/petsc/petsc.html
or directly by anonymous ftp from info.mcs.anl.gov in pub/petsc 
as petsc.tar.Z orpetsc.tar.gz.

This is version 2.0.15 of the ParPre library; correspondingly
you need Petsc 2.0.15 or later.

-- Installation step 2
The following environment variables need to be set:

PETSC_DIR <location of the Petsc library>
PETSC_ARCH <machine type; check $PETSC_DIR/bmake for possibilities>
PARPRE_DIR <location of the ParPre library>
PARPRE_ARCH <identical to the PETSC_ARCH variable>
BOPT <optimisation type; eg, g for debug>

-- Installation step 3
Edit $PARPRE_DIR/bmake/$PARPRE_ARCH/base.site to make the settings
identical to $PARPRE_DIR/bmake/$PARPRE_ARCH/base.site
If you edited any other files in the $PETSC_DIR/bmake subdirectories,
make corresponding changes in ParPre.

-- Installation step 4
cd $PARPRE_DIR ; make all

At present this gives a few compiler warnings.
If any real errors show up, please contact eijkhout@math.ucla.edu

-- Manual
Print out $PARPRE_DIR/man.ps, or read online
http://www.math.ucla.edu/~eijkhout/reports/parpre/parpre.html

-- Example programs
The directory $PARPRE_DIR/Examples gives you a makefile, a Readme,
and some example codes in C.

-- KNOWN BUGS
The domain decomposition method may corrupt memory. At the
call of PetscFinalise you may see a message like

Block [id=0(0)] at address 2d8f78 is corrupted (probably write past end)
Block allocated in nreg.c[67]
[1]PETSC ERROR: src/sys/src/mtr.c line # 302 PetscTrFree:Corrupted memory

If you don't finalise Petsc until the end of your program, you may get
away with this.