I. Notice
--------------------
 
 Copyright (c) 2008 Kristopher L. Kuhlman (kuhlman at hwr dot arizona dot edu)
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
 in the Software without restriction, including without limitation the rights
 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:
 
 The above copyright notice and this permission notice shall be included in
 all copies or substantial portions of the Software.
 
 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 
 Malama, B., K.L. Kuhlman, and W. Barrash, 2007. Semi-analytical solution
  for flow in leaky unconfined aquifer-aquitard systems, Journal of
  Hydrology, 346(1-2), 59–68.
 http://dx.doi.org/10.1016/j.jhydrol.2007.08.018

 Malama, B., K.L. Kuhlman, and W. Barrash, 2008. Semi-analytical solution
  for flow in a leaky unconfined aquifer toward a partially penetrating
  pumping well, Journal of Hydrology, 356(1-2), 234–244.
 http://dx.doi.org/10.1016/j.jhydrol.2008.03.029



II. How to compile this code
----------------------------------

This code was developed in a Linux environment, I have no idea how
well it works on Windows (e.g., you need GNU Make to utilize the
makefile), but you might have luck using Cygwin.  The code is 
quad-precision standard-conforming Fortran95, so it should compile 
with any relatively modern f90/f95 compiler that supports this
extended precision.

There are a few compiler-specific things, that is why there are three
makefiles.

To compile with the Intel compiler (I used version 9), the command

> make -f Makefile.intel

should compile the default (with optimizations) binary.  The Intel
compiler supports quad-precision via software, so it is quite accurate
but very slow.

The G95 compiler has "extended" precision on x86 and x86_64, which
utilizes the  fact that 80 bits of precision are kept internally, and
only keeps the range of the quad-precision, not the more digits of
accuracy.  Because of this using g95 results in much faster, albeit
less accurate results.

> make -f Makefile.g95

There are miscellaneous other targets in the makefile for debugging
and testing which of not of much use to anybody but the authors, I
assume.

It is always a good idea to try

> make clean

if you have weird issues.  The object files and modules from one
compiler are definitely not readable by the other.

If you are actually trying to understand the flow of the code, an
auto-generated callgraph is included (callgraph.pdf).  It was made by
applying egypt and graphviz to special debugging output of the g95
compiler.


III. Windows-specific (added July 2008)
----------------------------------

I have compiled this code using the Intel 9.1 compiler in WindowsXP.
"windows_compile.bat" is a batch file that does the basic functions
that the Makefile does in Linux, if you want to try to compile it with
different options or for a different type of Windows.

The program appears to run, but it has not been extensively tested in
Windows.


------------------------------

contact:

Kris Kuhlman
kristopher.kuhlman@gmail.com
Tucson, AZ (July 2008)

Bwalya Malama
bmalama@cgiss.boisestate.edu
Boise, ID
	
