History of the iaspei-tau traveltime table package

The original release of the iaspei-tau package was hard-wired to handle only the
iasp91 velocity structure, which it did through polynomial fits within
designated layers for the velocities and density.  In June 1991, Buland,
Engdahl, and Kennett posted the package on the USGS gldfs.cr.usgs.gov anonymous
ftp site with a slight modification in one of the polynomials. The file
(amessage.txt) that accompanied the June 1991 release is appended at the end of
this file.

In 1991, I (Arthur Snoke) decided to use the iasp91-table format for velocity
models with a crust and upper-most mantle that differed from iasp91.  I modified
subroutine emdlv.f so that it could read in a v-z model from an ASCII file. My
program used linear interpolation for calculating velocities and densities
within layers.  In 1992, I added cubic-spline interpolation as an alternative to
linear interpolation, and at the suggestion of Ray Buland, I doubled the entries
at depths 120 km and 760 km because there are second-order discontinuities at
those depths.  In February 1996, a version was posted on the USGS anonymous ftp
site that included a variant of my 1992 emdlv.f and the ASCII v-z file for model
ak135.

The USGS anonymous ftp site <gldfs.cr.usgs.gov> no longer exists, but as of
mid-2008, the 1992 version of the tau.tar package could be obtained from the
ORFEUS Web site: <http://www.orfeus-eu.org/Software/softwarelib.html>.  Later in
2008, that link was replaced by a link to this package on the IRIS Web site.

In developing model ak135, Brian Kennett used linear interpolation from ASCII
v-z files.  Accordingly, linear interpolation is used in this package for
producing traveltime tables.

Program ttimes has been modified from the original version (described below).
Instead of the second printing of the travel time for each phase,
the take-off angle (with respect to the downward vertical) is printed.

Snoke (2009) contains a history and discussion of the iaspei-tau package, and
this package can be downloaded from the IRIS Web site:
<http://www.iris.edu/software/downloads/processing/>.

References:

Kennett, B.L.N., and E.R. Engdahl (1991).  Traveltimes for global earthquake
location and phase identification,  Geophys. J. Int., 122, 429-465.  This is the
source paper for model iasp91.

Kennett, B.L N., E.R. Engdahl, and R. Buland (1995), Constraints on seismic
velocities in the Earth from traveltimes, Geophys. J. Int., 122, 108-124. This
is the source paper for model ak135.

Snoke, J.A. (2009), Traveltime tables for iasp91 and ak135, Seismological
Research Letters, 80(2), 260-262.

===============================(Jun 21  1991 amessage.txt)==============

TAU 
   
   The files in this anonymous FTP implement the travel time computation
algorithm described by Buland and Chapman (1983) in "The Computation of
Seismic Travel Times", BSSA, v. 73, pp. 1271-1302, for the IASPEI phase
set derived from the IASPEI travel-time model developed by Brian Kennett.
This phase set currently includes:  P, Pdiff, PKP, PKiKP, pP, pPdiff,
pPKP, pPKiKP, sP, sPdiff, sPKP, sPKiKP, PP, P'P', S, Sdiff, SKS, pS,
pSdiff, pSKS, sS, sSdiff, sSKS, SS, S'S', PS, PKS, SP, SKP, SKiKP, PcP,
PcS, ScP, ScS, PKKP, PKKS, SKKP, and SKKS.  The IASPEI model was
developed specifically as a replacement for the Jeffreys-Bullen model for
earthquake location work.  It incorporates a PEM core, a lower mantle 
developed by Ken Toy, and an upper mantle constructed by Brian Kennett.
The phase set was chosen by requiring that the phases be well observed in
some distance range and that they be useful either for earthquake
location or for studies of earth structure.

   This implementation of the travel-time algorithm includes all
refracted arrivals of each phase listed, but only the partial
reflections specifically noted in the phase list.  All total internal
reflections (except at the free surface) have been suppressed as they are
almost always tertiary arrivals.  This policy does result in no PS and
SP arrivals in the distance range of about 25-50 degrees.  Phase naming
is derived directly from the model layer in which the phase turns and is
sometimes at odds with various seismological conventions.  In particular,
the lack of a low velocity zone in the upper mantle of the IASPEI model
results in Pn and Sn extending out to about 25 degrees.  Even without the
total reflections, the upper mantle discontinuities and triplications
will typically result in two to four P and S arrivals each in the
distance range of about 17-30 degrees.

   The tables are generated by a two step process which involves running
first program REMODL and then program SETBRN.  REMODL generates the
model by calling routines in EMIASP91.F.  In principle, any model may be
used.  However, a range of IASPEI models has actually been tested.
REMODL examines the model and its implications, makes up a best guess at
how to sample slowness, and performs all of the raw integrals.  It writes
its results into the REMODL.HED and REMODL.TBL files.  REMODL1.LIS and
REMODL2.LIS show some of what goes on inside of REMODL and are useful
when REMODL is being converted to a different computer.  SETBRN takes the
results of REMODL from (REMODL.HED AND REMODL.TBL) and constructs the
specific branches desired by the user.  While some attempt has been
made to make SETBRN ``programmable'', care must be taken that phases
added are within the assumptions made by the interpolation routines in
LIBTAU.F.  SETBRN produces the tau-p tables IASP91.HED AND IASP91.TBL.
The access to these tables has been cleaned up so that they are quite
machine independent.  SETBRN also produces internal listing files
SETBRN1.LIS, SETBRN2.LIS, and SETBRN3.LIS.  REMODL and SETBRN (and the
routines they call) use the include file LIMITS.INC.  It is assumed that
the include file is in the directory in which compilation is being done.
These programs are linked with the library LIBTAU.A (which should be
constructed from the source in LIBTAU.F).  REMODL and SETBRN also require
machine dependent routines from either LIBVAX.A or LIBSUN.A (which should
be constructed from the source in LIBVAX.F or LIBSUN.F) depending on the
computer being used.  Note that REMODL and SETBRN are not actually needed
to simply invoke the tau-p tables once generated.  They are only used for
setting up the tables the first time.

   To invoke the travel times, a handful of routines also in the LIBTAU
library need to be called.  An example of how this is done is given in
the program TTIMES.  Note that a different include file, TTLIM.INC is
needed.  Playing with the print flags can give you a feeling for what
TTIMES does, but one of them generates a lot of output (into file
TTIM1.LIS).  The tau interpolation is usually only needed for debugging.
However, the range summary can be very useful as it shows the distance
range over which each branch of each phase will appear.  The BRNSET
routine can be used interactively (as in TTIMES) or hardwired for a
specific set of phases.  It allows the user to select only the phases
of immediate interest.  When running TTIMES, note that at each distance,
all possible arrivals from all branches are given in time order.  The
travel time is given twice (in seconds and in minutes and seconds).  The
numbers at the end of each line are various derivatives (travel time
with respect to distance, travel time with respect to depth and the
second derivative of travel time with respect to distance).

                                           Ray Buland

P.S. UNIX manual pages generated by Brian Kennett are provided in the file 
     TAU.MAN
=======================================
