SHEPPACK
This directory contains files for various Shepard algorithms for
interpolation.  Also, there is a directory, "paper", that contains the 
full paper describing SHEPPACK (in TeX).

To use the package, please edit the Makefile first to choose the right
Fortran 95 complier on your machine.  The required BLAS and LAPACK routines
are included in this package for completeness; users can employ their own
BLAS and/or LAPACK library by editing the Makefile.  However, LAPACK 
version 3 or later must be used.

There is a small issue with DGELSS in LAPACK.  There is a statement:
CALL DLASET( 'F', MINMN, 1, ZERO, ZERO, S, 1 ) that needs to be:
CALL DLASET( 'F', MINMN, 1, ZERO, ZERO, S, MINMN). This issue manifests 
itself when compiled with subscript checking turned on.  The LAPACK
file contained in this package has this change implemented.

After that, run

   make install

to install the package.

Use the commmad

   make test_X

to test the package "X", where "X" is chosen from: "cshep2d", "qshep2d",
"qshep3d", "qshepmd", "lshep", or "all".  This will produce an executable
file, test_X, that can be run after the make finishes.  You can check the 
output by comparing your results with output_X (X cannot be "all").  These
results were generated using a Dell Optiplex GX620 running Ubuntu.
The linear_shepard test program uses randomly generated sample points, so 
your results may not be exactly the same as the output_lshep file,
but your results should be similar.

Report any problems to  thackerw@winthrop.edu  .


Detailed description of each file:

cshep2d.f95 --- cubic Shepard method for 2-dimensional data.
linear_shepard.f95 --- linear Shepard method for arbitrary dimension data,
   also includes RIPPLE for piecewise linear approximation in arbitrary
   dimension.
qshep2d.f95 --- quadratic Shepard method for 2-dimensional data.
qshep3d.f95 --- quadratic Shepard method for 3-dimensional data.
qshepmd.f95 --- quadratic Shepard method for up to 5-dimensional data.

cshep2d_test.f95 --- test program for cshep2d.
linear_shepard_test.f95 --- test program for linear_shepard and RIPPLE.
qshep2d_test.f95 --- test program for qshep2d.
qshep3d_test.f95 --- test program for qshep3d.
qshepmd_test.f95 --- test program for qshepmd.

qshepmdata.f95 --- module containing the data structures created by the 
   subroutine QSHEPM and used by the function QSMVAL.

real_precision.f95 --- module defining the real precision (double
   precision/64-bit by default).

lapack.f --- all the LAPACK subroutines needed directly or
   indirectly by linear_shepard.f95:
   dbdsqr.f  dgeqr2.f  dlapy2.f  dlas2.f   dlasq6.f  dlazq4.f  dorm2r.f
   dgebd2.f  dgeqrf.f  dlarfb.f  dlascl.f  dlasr.f   dorg2r.f  dormbr.f
   dgebrd.f  dlabad.f  dlarf.f   dlaset.f  dlasrt.f  dorgbr.f  dorml2.f
   dgelq2.f  dlabrd.f  dlarfg.f  dlasq1.f  dlassq.f  dorgl2.f  dormlq.f
   dgelqf.f  dlacpy.f  dlarft.f  dlasq2.f  dlasv2.f  dorglq.f  dormqr.f
   dgelss.f  dlange.f  dlartg.f  dlasq5.f  dlazq3.f  dorgqr.f  drscl.f

blas.f --- all the BLAS subroutines used by lapack.f:
   ddot.f   dger.f   drot.f    dtrmm.f  idamax.f lsame.f
   daxpy.f  dgemm.f  dlamch.f  dscal.f  dtrmv.f  ieeeck.f  xerbla.f
   dcopy.f  dgemv.f  dnrm2.f   dswap.f  dtrsm.f  ilaenv.f

blas_shep.f95 --- contains the Givens rotation subroutines
   used by cshep2d, qshep2d, qshep3d, and qshepmd.

sheppack.f95 --- a module that contains the interfaces for all the
   Shepard methods. 

Makefile --- the makefile described above.

paper --- a directory with the TeX files and figures for the full paper 
   describing this package.
