Mineos Manual
Mineos Manual
Mineos Manual
Mineos
1 Introduction 9
1.1 Mineos Package Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Mineos History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Known Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Getting Help and Reporting Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Eigenfunction System of Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5.1 Synthetic Seismogram System of Programs . . . . . . . . . . . . . . . . . . . . . . . . 11
2 Installation 15
2.1 Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1 Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.2 System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Download and Configure Mineos (Unix/Linux/Mac OS X) . . . . . . . . . . . . . . . . . . . . 16
2.3 Download and Configure Mineos (Windows using Cygwin) . . . . . . . . . . . . . . . . . . . . 17
2.4 Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3
4 CONTENTS
7 Attribute Description 47
8 Examples 57
8.1 minos_bran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.1.1 Example 1. Interactive dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.1.2 Example 2. Redirection of input file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.1.3 Example 3. Direct shell script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2 eigcon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.1 Example 1. Interactive dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8.2.2 Example 2. Redirection of input file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.2.3 Example 3. Direct shell script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.3 green . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
8.3.1 Example 1. Interactive dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.2 Example 2. Redirection of input file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.3.3 Example 3. Direct shell script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
8.4 syndat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.4.1 Example 1. Interactive dialog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.4.2 Example 2. Redirection of input file . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.4.3 Example 3. Direct shell script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
A Model Example 65
B Benchmarking 71
B.1 Revised Version vs. UCSD Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
B.2 Mineos Code vs. Herrmann’s Plane Code for Fundamental Modes . . . . . . . . . . . . . . . . 71
B.3 Mineos vs. SPECFEM3D_GLOBE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
B.3.1 Input 1D Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
B.3.2 SPECFEM3D_GLOBE Run Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
B.3.3 Mineos Run Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
B.3.4 Tapering, Results Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
D License 93
List of Figures
1.1 Summary of information flow through the eigenfunction system of programs comprising mi-
nos_bran and eigcon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Summary of information flow through the synthetic seismogram system of programs compris-
ing green and syndat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
B.1 Station BJT. Comparison with Herrmann’s plane code. Three-component synthetic seismo-
gram for the fundamental spheroidal and toroidal modes. Mineos seismogram is plotted in
red, Herrmann’s in blue. Earthquake is 25.39N, 101.40E (Southern China), depth is 33 km.
Model is PREM, in which the water layer is filled with the upper crust’s velocities. The crust
has only two layers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
B.2 Comparison with Herrmann’s plane code, as in Figure B.1, but for station TLY. . . . . . . . 74
B.3 Comparison with Herrmann’s plane code, as in Figure B.1, but for station BILL. . . . . . . . 75
B.4 Dispersion curves of phase and group velocities for spheroidal and toroidal fundamental modes.
The solid color lines are the Mineos results, the (faint) black dotted lines are for the Her-
rmann’s plane code. The solid line colors are blue for Rayleigh phase velocity, red for Rayleigh
group velocity, green for Love phase velocity, and magenta for group Love velocity. . . . . . 76
B.5 Synthetic seismograms for SPECFEM3D_GLOBE (red) and Mineos (blue). Station BJT,
channel LHZ. Distance = 19.123o , Az = −135.267o . The top plot shows the whole record; the
others plot separate fragments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
B.6 The same as Figure B.5, but for the LHN channel. . . . . . . . . . . . . . . . . . . . . . . . . 79
B.7 The same as Figure B.5, but for the LHE channel. . . . . . . . . . . . . . . . . . . . . . . . . 80
B.8 Amplitude spectra for the station BJT. SPECFEM3D_GLOBE spectra (red), Mineos (blue). 81
B.9 Synthetic seismograms for SPECFEM3D_GLOBE (red) and Mineos (blue). Station TLY,
channel LHZ. Distance = 26.308o , Az = −175, 417o . The top plot shows the whole record;
the others plot separate fragments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
B.10 The same as Figure B.9, but for the LHN channel. . . . . . . . . . . . . . . . . . . . . . . . . 83
B.11 The same as Figure B.9, but for the LHE channel. . . . . . . . . . . . . . . . . . . . . . . . . 84
B.12 Amplitude spectra for the station TLY. SPECFEM3D_GLOBE spectra (red), Mineos (blue). 85
B.13 Synthetic seismograms for SPECFEM3D_GLOBE (red) and Mineos (blue). Station BILL,
channel LHZ. Distance = 57.417o , Az = −103.266o . The top plot shows the whole record; the
others plot separate fragments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
B.14 The same as Figure B.13, but for the LHN channel. . . . . . . . . . . . . . . . . . . . . . . . 87
B.15 The same as Figure B.13, but for the LHE channel. . . . . . . . . . . . . . . . . . . . . . . . . 88
B.16 Amplitude spectra for the station BILL. SPECFEM3D_GLOBE spectra (red), Mineos (blue). 89
5
6 LIST OF FIGURES
List of Tables
4.1 Relation: origin. Description: Data on event location and confidence bounds. . . . . . . . . . 39
B.1 Station coordinates (geographic), epicentral distances (geocentric), and source azimuths (geo-
centric) for Benchmark test #2, Mineos vs. Herrmann’s plane code for fundamental modes. . 72
7
8 LIST OF TABLES
Chapter 1
Introduction
9
10 CHAPTER 1. INTRODUCTION
versity of California, San Diego. Tests showed the code, then called EOS, was superior to Burlisch-Stoer
(despite claims to the contrary in Numerical Recipes). The variable step size was based on the growth rate
approximated from estimates of the eigenvalues of the matrix A [7].
Finding the solution for spheroidal modes was computationally unstable, Gilbert and Backus suggested
using the method of minors [6]. This was implemented in 1980 by John Woodhouse of Harvard University,
who included a clever method of computing eigenfunctions and, later, a mode counter for spheroidals. Shortly
thereafter Guy Masters of IGPP, UC San Diego, began working with the code, adding counters for toroidals
and radials.
The codes were benchmarked against the Rayleigh-Ritz code of Ray Buland circa 1981. Slight differences
discovered were tracked down to the use of a slightly different value of the gravitational constant. Around
1985, the code was modified to compute accurate eigenfunctions of “difficult” modes, e.g., Stoneley and IC
modes, and the code was renamed Mineos.
The Mineos code has been uncopyrighted and handed down from investigator to investigator until donated
to the community with an open source license via Computational Infrastructure for Geodynamics (CIG) in
2006 by Guy Masters and Michael Ritzwoller of University of Colorado at Boulder. At that time, the code
was cleaned up and placed under source control, and its user documentation assembled and revised, by Misha
Barmine (U. Colorado at Boulder). CIG released Mineos under a GNU free software license in March 2007.
CIG is making this source code available to you in the hope that the software will enhance your research
in geophysics. CIG requests that in your oral presentations and in your papers that you indicate your use
of this code and acknowledge the authors of the code and CIG (http://geodynamics.org).
If you find a bug in the code you should use the bug tracker system at Github (http://github.com/
geodynamics/mineos/issues/). Use this facility to not only submit bugs but also to request new features.
Your reports will be forwarded to the appropriate CIG staff or member of the community.
The program minos_bran is the work-horse of the Mineos Package. Given a 1D model of the Earth
and the normal mode band of interest, i.e., defined in terms of a range of frequencies (fmin, fmax ) and
normal mode indices (nmin, nmax, lmin, lmax ), minos_bran computes and outputs the eigenfunctions
and eigenfrequencies of the model for spheroidal, toroidal, or radial modes (optionally). The output from
1.5. EIGENFUNCTION SYSTEM OF PROGRAMS 11
MINOS_BRAN
headers eigenfunctions
ASCII file binary file
EIGCON
eigenfunctions
.eigen
Figure 1.1: Summary of information flow through the eigenfunction system of programs comprising mi-
nos_bran and eigcon.
minos_bran is in an informally defined pair of files, one an ASCII file containing the input model and
output normal mode parameters and the other a binary file containing the eigenfunctions from the free
surface to the Earth’s center. The size of the output depends on fmax, the highest desired frequency, and
the number of radial knots in the input model file. If the desired frequencies extend to periods as short as
6 sec, the eigenfunctions and eigenfrequencies of more than 150,000 spheroidal and 100,000 toroidal modes
will be computed if all dispersion branches are chosen.
The eigenfunctions themselves may be interesting to some users if sensitivity kernels, for examples, are
desired. The normalization of the eigenfunctions that emerge from program minos_bran is discussed in
Chapter 3.
The program eigcon repackages the eigenfunctions in two principal ways. First it renormalizes the
eigenfunctions and then truncates the tabulation to extend only to a cut-off depth which is intended to be
the depth of the deepest earthquake considered. This truncation greatly reduces the size of the eigenfunction
file and speeds computation of the Green’s functions. In addition, eigcon reformats the output eigenfunction
file into a binary file that is much more independent of computer architecture than that which emerges from
minos_bran.
The final output is represented more formally than the output from minos_bran, based on the .eigen
relation, which points to the eigenfunction file on disk. The .eigen table is an extension of the CSS database
schema.
Synthetic seismograms are produced in two stages. In the first stage, program green computes Green’s
functions and, in the second stage, program syndat transforms the Green’s functions to synthetic seismo-
grams by convolving them with a centroid moment tensor and input event half-rise time.
Program green computes the Green’s function for an event at an input depth. The primary input is the
.eigen relation(s) output from eigcon. Typically, there may only be two .eigen files input, one for spheroidal
12 CHAPTER 1. INTRODUCTION
and another for toroidal modes. Radial modes could constitute another input file. However, the input is
sufficiently flexible to allow the user to separate the input eigenfunctions into more files, if desired. It is up to
the user to ensure that the files contain unique normal modes, however. The stations and channels for which
Green’s functions are produced by program green are driven by the input .sitechan table. The .site table
is also needed by green to provide the station coordinates. The .sitechan table, therefore, must contain all
and only those stations and channels desired by the user. The user must strictly adhere to the format of
these files. A natural way to do this is to order a dataless (or data-full) SEED volume (for example, from
the IRIS DMC) for the stations of interest, and run RDSEED or an Antelope product (e.g., sd2de, seed2db)
to convert to the two CSS tables. Event coordinates and depth are contained in an unformatted, single lines
file that we call cmt_event. This file must be created and input into program green and syndat.
The output of program green is a .wfdisc file (in the CSS-3.0 database schema) in which each row
corresponds to a given station:channel pair and points to the Green’s function on disk. Antelope products
can be used to view the Green’s functions in which each station:channel set of six waveforms is multiplexed
into a single waveform.
Program syndat convolves the Green’s functions pointed to by the .wfdisc relation that emerges from
green with the centroid-moment tensor and half-rise time of the chosen event that is contained in file
cmt_event. The output is a .wfdisc in which each row corresponds to a single station:channel pair and
points to the associated waveform on disk presented in velocity ground units (nm/sec). Transfer functions
to convert to instrument counts for direct comparison with data are not part of the package.
1.5. EIGENFUNCTION SYSTEM OF PROGRAMS 13
eigenfunctions eigenfunctions
.eigen .eigen
GREEN
Green functions
.wfdisc
SYNDAT
Synthetic seismograms
.wfdisc
Figure 1.2: Summary of information flow through the synthetic seismogram system of programs comprising
green and syndat.
14 CHAPTER 1. INTRODUCTION
Chapter 2
Installation
2.1.1 Utilities
Currently we provide four utilities: cucss2sac, eigen2asc, endi, simpledit, and creat_origin.
• cucss2sac converts synthetic waveforms represented in CSS3.0 (i.e., .wfdisc relation pointing to binary
formatted waveforms on disk) into SAC or ASCII formatted waveform files.
Note that the seismological community provides us with other CSS to SAC converters, and
you may use them at your own risk. For example, for the SUN platform, the distribution
set css2sac-3.0.3.tar.z is available from IRIS (www.iris.edu). The utility from that site,
however, doesn’t work under Linux or Windows platforms.
15
16 CHAPTER 2. INSTALLATION
• eigen2asc prints out on the standard output device the requested eigenfunctions from .eigen relation
(CSS3.0 extension). The eigenfunctions can be requested by order numbers (n, l) or by (n, T). In
the second case, eigen2asc matches the order number l with the closest period to T. Output can be
redirected to a file for further usage.
• endi swaps the order of word bytes in binary files. The length of a word is any integer number, for
example, 2, 4, 6, 16, etc. endi can be used for BIG_ENDIAN-LOW_ENDIAN binary data conversion.
Note that this program upgrades files in place.
• simpledit is a simple filter program. It converts a manually created (text editor) unformatted ASCII
file with station and channel information into CSS3.0 .site and .sitechan relation tables.
• creat_origin is a shell script that converts an event file (e.g., china_cmt_event.txt) into the
CSS3.0 .origin relation.
~ OR ~
• Check out the source from the Git server:
2. If you checked-out the source using Git, run “autoreconf -i” to generate the ’configure’ script and related
files. (Skip this step if you downloaded the source package. The resulting files are included in the tar
file.)
$ autoreconf -i
3. Run “configure”
./configure --prefix=$HOME/cig
4. Run “make”
make
make install
2.3. DOWNLOAD AND CONFIGURE MINEOS (WINDOWS USING CYGWIN) 17
6. Now you can run using the demo input files. For example, under the Bash shell:
export PATH=$HOME/cig/bin:$PATH
cd DEMO/DEMO3
./RUN_MINEOS.sh prem_noocean
• make
Select these packages for installation in the “Cygwin Setup - Select Packages” dialog box. See Chapter 2 of
the Cygwin User’s Guide (www.cygwin.com/cygwin-ug-net/setup-net.html).
Once you have Cygwin installed with all the necessary packages, you can install Mineos just as you would
under Unix, as instructed in Section 2.2.
2.4 Support
To obtain assistance or report problems or bugs with the code, see Section 1.4 for support options.
18 CHAPTER 2. INSTALLATION
Chapter 3
minos_bran
2. Single shell command with redirection of the standard input to the parameter file parameter_file
containing exactly the same information and in the same order as an interactive dialog – one answer
per line:
3. Direct shell script. In this case, the contents of the parameter file are directly included into the shell
script between the delimiters “WORD”:
19
20 CHAPTER 3. RUNNING THE MINEOS PROGRAMS
Line 1: title
Any text of up to 80 characters long.
Line 2: ifanis, tref, ifdeck
if anis = 1 for an anisotropic (transversely isotropic) model, = 0 for isotropic. tref is the reference
period (seconds) of the model for the physical dispersion correction. If tref ≤ 0, no correction is made.
The parameter if deck defines the type of model. If if deck = 1, the model is presented in tabular form.
If if deck = 0, the model is presented as a polynomial.
r - radius of the knot in meters (m). minos_bran truncates the fractional part of radius, so a
layer with thickness less that 1 m does not make any sense. Introducing thin layers (less than 1
m) leads to creating additional interfaces. If the model includes a surface liquid layer, it must be
a single layer without intermediate knots. Radius starts from zero (index= 1) and ends at the
free surface, growing from the center of the Earth outward.
rho - density, (kg/m3 )
vpv - velocity of vertically polarized P wave, (m/s)
vsv - velocity of vertically polarized S wave, (m/s)
qkappa - compressional Q
3.1. MINOS_BRAN PROGRAM 21
qshear - shear Q
vph - velocity of horizontally polarized P, (m/s)
vsh - velocity of horizontally polarized S, (m/s)
eta - transversely isotropic model parameter
If the model is isotropic, if anis = 0 and minos_bran reads and changes the values of vph, vsh and
eta field in the following way: vph = vpv, vsh = vsv, and eta = 1. If both qkappa and qshear are
equal to zero, the Q model is not specified for the knot and no correction for attenuation is made.
Format: (f8.0, 3f9.2, 2f9.1, 2f9.2, f9.5)
3.1.3.1 out_plain_file
The file consists of two parts:
Part 1: Model table. The model output is always in tabular form. If the input model is in tabular form,
the output model is just a copy except that knots are given indices and columns are placed in a different
order. For an isotropic model, vph will be replaced on vpv, vsh on vsv, and eta = 1. If the input model
is in polynomial form, the model is converted to tabular form by interpolation across region layers. For
each region, the program constructs nlay + 1 knots with a constant step in radius. The total number
of knots N is equal to nreg · (nlay + 1). Lines from the beginning of the file look as follows:
22 CHAPTER 3. RUNNING THE MINEOS PROGRAMS
Lines 1-5: Contains the model title, reference period tref , header for the model table, and empty
lines. Format: no format.
Lines 6 − (N + 5): index, r, rho, vpv, vph, vsv, vsh, eta, dshear, qkappa
where index is the knot number, starting from 1. The content of the remaining fields is described
in Section 3.2.2. Format: (3x, i3, f12.1, 5f12.2, f12.5, 2f12.2)
Lines N + 6 ÷ N + 11: Contains text messages with Runge-Kutta precision integration, gravity cut
off frequency, empty lines, and the header for the normal mode properties table (totaling 6 lines).
Format: Free.
Part 2: Mode properties. For a fixed radial order number n and angular order l, minos_bran computes
the eigenfunctions (stored separately) and the scalar parameters (properties): eigenvalue (frequency),
phase and group velocities, Q and ratio of kinetic to potential energy. These scalar parameters are
stored in the normal mode properties table. Each row (line) in this table gives the properties for the
current n and l. Lines following the first part look as follows:
Lines (N + 12) − end: norder, typeo, lorder, phvel, freq, per, grvel, Q, raylquo,
where
norder - mode radial order number n
typeo - type of oscillation (single character): s - spheroidal, t - toroidal, c - inner core toroidal
lorder - mode angular order number l
phvel - phase velocity, (km/s)
freq - frequency (eigenvalue), (millihertz,mHz)
per - period, per = 1000/freq, (sec)
grvel - group velocity, (km/s)
Q - shear Q
raylquo - ratio of kinetic to potential energy minus 1 which should be small (of order eps) if the eigen-
function is accurate and if there are enough radial knots in the model to allow quadratures to
be done accurately. (You will probably see some degradation in this parameter for strongly
exponential modes such as Stoneley modes.)
Format: (i5, a2, i5, 6g16.7)
3.1.3.2 out_bin_file
This is a fixed record length binary encapsulated file. The file is not portable, which means that the type of
encapsulation strongly depends on the compiler. For example, if the file was created on a SUN platform by
the f77 compiler, it cannot be read by a progam created by the g77 compiler on the same platform. To avoid
this inconvenience, the program eigcon removes encapsulation and creates a binary file portable between
different languages and platforms. minos_bran outputs each eigenfunction with a single write statement:
real*4 abuf(nvec)
.....
write(ioeig) (abuf(i),i=1,nvec)
where nvec is 5 + 6 ∗ N words long for spheroidal modes and 5 + 2 ∗ N words long for other modes. The
first five words of abuf are n, l, ω, Q, and group velocity Cg . The rest of abuf contains eigenfunctions and
their derivatives by radius - U (1..N), U 0 (1..N), V (1..N), V 0 (1..N), P (1..N), P 0 (1..N) for spheroidal modes and
W (1..N), W 0 (1..N) for other modes. Here, U is the eigenfunction for the vertical spheroidal (S) component,
V for the horizontal S component, P is the gravitational potential. W is the common notation for modes
other than S.
Eigenfunctions are stored in normalized form. The normalization of eigenfunctions is given by
Z rn
ω2 ρ(r) W 2 (r)r2 dr = 1
0
3.1. MINOS_BRAN PROGRAM 23
Note that r, ω, ρ, V, U, W in the two formulas above are normalized such that a density of ρn =
5515 kg/m3 is 1, πg is 1, where G is the gravitational constant G = 6.6723 · 10−11 m3 /kg/s2 ,
and the radius rn of the free surface is 1. These normalizations result in:
3.1.4 Messages
Program minos_bran prints out dialog messages only on the standard output. See an example in Section
8.1.1 (Interactive dialog).
24 CHAPTER 3. RUNNING THE MINEOS PROGRAMS
eigcon
2. Single shell command with redirection of the standard input from a parameter file parameter_file
containing exactly the same information and in the same order as in the interactive dialog – one
answer per line:
3. Direct shell script. In this case, the contents of the parameter file are directly included in the shell
script between delimiters “WORD”:
Line 5: in_bin_file
in_bin_file is the path to the input FORTRAN binary unformatted file, which was produced by the
program minos_bran. See Section 2.1.
3.2. EIGCON PROGRAM 25
Line 6: dbname
dbname is the path to the output database name. The path is a string up to 256 characters long.
The path should not end with a backslash, “/”. The part of the string after the last “/” (or from the
beginning of the string, if the string does not have “/” at all) is the database name. The database name
must be at least one character long.
Note that eigcon performs an additional eigenfunction normalization. Eigenfunctions for toroidal and the
horizontal part of spheroidal modes are divided by (l(l + 1))1/2 . This is done in accordance with theory
developed by Woodhouse and Dahlen (1978) [10]. The new normalization of eigenfunctions is given by
Z rn
2
ω ρ(r) l(l + 1) W 2 (r)r2 dr = 1
0
3.2.4 Messages
Program eigcon prints out on the standard output device the following messages:
green
2. Single shell command with redirection of the standard input to a parameter file parameter_file con-
taining exactly the same information and in the same order as in the interactive dialog – one answer
per line
3. Direct shell script. In this case, the contents of the parameter file are directly included in the shell
script between the delimiters “WORD”:
Line 3: cmt_event
This is the path to the file with the CMT solution for a single event. It includes the CMT location, the
seismic moment tensor components, the scalar moment, the focal planes, the source half duration time,
and the output time step of the synthetic seismograms. Format: Any string up to 256 characters
long.
Line 5: nsamples
This is the number of samples in the synthetic seismograms. All synthetic seismograms start from the
source time. Format: Unformatted.
Line 6: out_dbname
This is the output database name including only the .wfdisc relation for unit Green’s functions. Each
row of the .wfdisc relation refers to the binary file with 6 multiplexed Green’s functions, i.e., one tensor
component. Format: Any string up to 256 characters long.
db_list This file allows joining an unlimited number of eigcon outputs for spheroidal, toroidal, or radial
modes. The single requirement is that intersection between these files is null. Each desired eigenfunc-
tion must be present and unique in some eigcon output.
cmt_event This file consists of a single line with the following fields:
evid, year, jday, hour, min, sec, lat, lon, depth, step, halfd,
M0 , Mrr , Mθθ , Mϕϕ , Mrθ , Mrϕ , Mθϕ ,
Mn , strike1, dip1, slip1, strike2, dip2, slip2
where
evid is the event identifier, 8 characters long
year is the event year in the form yyyy
jday is the event day starting from the beginning of the year
hour is the event hour
min is the event minutes
sec is the event seconds with decimal fractions
lat is the event geographical latitude (degree)
lon is the event geographical longitude (degree)
depth is the event depth (km)
step is the time step for Green’s functions and seismograms (sec)
halfd is the source half-time duration (sec)
M0 is the scalar tensor moment (dyn·cm)
Mrr , M θθ , Mϕϕ , Mrθ , Mrϕ , Mθϕ are moment tensor components normalized by the coefficient Mn
Mn is the normalization coefficient for the tensor components (dyn·cm)
strike1, dip1, slip1 are the first fault plane solution (degree)
strike2, dip2, slip2 are the second fault plane solution (degree)
30 CHAPTER 3. RUNNING THE MINEOS PROGRAMS
3.3.4 Messages
Program green prints out on the standard output device the following messages:
syndat
2. Single shell command with redirection of the standard input from a parameter file parameter_file
containing exactly the same information and in the same order as in the interactive dialog - one answer
per line:
3. Direct shell script. In this case, the contents of the parameter file are directly included in the shell
script between the delimiters “WORD”:
in_dbname out_dbname database for the .wfdisc relation from the green program.
4.1 cucss2sac
NAME
cucss2sac Converts CSS 3.0 waveforms to SAC binary or ASCII files
SYNOPSIS
cucss2sac [-a [-n]] db_name out_SAC_dir
OPTIONS
-a Generate ASCII files
-n Suppress header output in ASCII files. Used together with -a option.
DESCRIPTION
The cucss2sac utility converts a CSS 3.0 .wfdisc relation into a set of SAC binary files or ASCII files.
Output files are stored in out_SAC_dir directory. This program has been designed especially for the
Mineos package due to bugs in the standard IRIS css2sac utility. cucss2sac supports limited capabilities
and is not a complete substitution of the standard css2sac utility. For example, cucss2sac only supports
the CSS3.0 schema and two input CSS binary data formats:
35
36 CHAPTER 4. THE UTILITIES USER’S MANUAL
0.0000000E+00 5.7025738E+00
1.0000000E+00 1.9508668E+00
2.0000000E+00 -4.1160989E+00
3.0000000E+00 -4.1094885E+00
......
......
......
7.9970000E+03 1.5211651E+01
7.9980000E+03 2.7408613E+01
7.9990000E+03 3.5795624E+01
where
• the EVENT line represents event information: origin time (human and epoch), latitude (deg), longitude
(deg), and depth (km);
• the STATION line represents station information: station code, channel name, latitude (deg), longitude
(deg), and depth = 0;
• the DATA line represents data parameters: waveform starting time (human and epoch), number of
samples, and sampling step (sec).
The rest of the lines (the body) is a two-column table. The first column represents relative time from the
beginning of waveform in seconds, and the second one shows waveform samples in nm, nm/s or nm/s2 ,
according to the syndat output format.
If the presence of the header is not desired, suppress it with option -n (no header).
The output ASCII file format for the Green’s functions is different. The header is the same, but the body
is a 7-column table. The first column is relative time, as before, and the other 6 columns are the 6-unit
Green’s functions (Grr , Gθθ , Gϕϕ , Grθ , Grϕ , Gθϕ ) for the chosen component – vertical or some horizontal.
The order of the components is the same as the order of the seismic moment tensor components Mij defined
in the syndat program. So the corresponding synthetic seismogram S (NOTE: IN ACCELERATION,
nm/s2 ) is given by the formula
X
S = 10−18 Gij Mij
ij
where Mij are given in dyne*cm for ij = rr, θθ, ϕϕ, rθ, rϕ, θϕ.
NOTE: According to SAC compliance, event depth is stored in the SAC header in meters.
EXAMPLES
cucss2sac Syndat Syndat_SAC
cucss2sac green green_SAC
cucss2sac -a Syndat Syndat_ASC
cucss2sac -a -n Syndat Syndat_ASC_NOHEADER
4.2 eigen2asc
NAME
eigen2asc Converts the .eigen relation table to ASCII files
SYNOPSIS
eigen2asc [-n] nmin nmax lmin lmax db_name out_dir
4.3. ENDI 37
OPTIONS
-n Suppress header output in ASCII files.
DESCRIPTION
The eigen2asc utility converts some part or the whole .eigen relation into a set of ASCII files. Program
eigen2asc searches in the db_name.eigen file for all eigenfunctions with mode numbers n, l satisfying
the following conditions: nmin ≤ n ≤ nmax, lmin ≤ l ≤ lmax, and converts eigenfunctions to ASCII
files. Output files are stored in out_dir. Each output file consists of the header and the body. The
header is a single line including the first 10 fields of the .eigen relation, see Table 6.1. The option -n
excludes the header output. The body is a three-column (radial, toroidal modes) or seven-column (spheroidal
mode) table. The first body column is radius in meters and the other columns contain the eigen functions
and their derivatives by radius (in the internal, normalized units) – U, U’, V, V’, P, P’ for spheroidal
modes and W, W’ for other modes. For more details, see Section 4.1. The output file name has the form
X.nnnnnnn.mmmmmmm.ASC, where, letter X is “S” for spheroidal modes or “T” for toroidal modes,
nnnnnnn is the number n, and mmmmmmm is the mode number l.
EXAMPLES
eigen2asc 0 1 2 500 test_S Eigen_S_ASC
eigen2asc -n 0 1 2 500 test_S Eigen_S_no_headers_ASC
4.3 endi
NAME
endi In-place file swapping with fixed width
SYNOPSIS
endi nw file1 [ file2 ... filen]
DESCRIPTION
This utility is used when you transfer binary files of .wfdisc or .eigen relations to a platform with a different
byte order. The utility changes the byte order from BIG_ENDIAN to LOW_ENDIAN and vice versa. endi
sequentially reads the file from the list file1 [ file2 ... filen] into memory as an unsigned character string,
swaps sequential groups of nw bytes long starting from the beginning of the file, and stores the swapped
data into the same place as before (swapping in-place). If the last group has a length less than nw, it stays
unswapped.
EXAMPLES
In this example, w.00001 and w.00002 are the binary real*4 data files from some .wfdisc relation created
on a PC computer. These files have internal LOW_ENDIAN data representation created, e.g., by a direct
access FORTRAN WRITE statement. After applying the command:
we change the order of 4-byte words to BIG_ENDIAN for transferring these files on a computer with
BIG_ENDIAN byte order, e.g., a SUN Ultra machine, where we may use a direct access READ statement
to read data as real*4 variables.
38 CHAPTER 4. THE UTILITIES USER’S MANUAL
4.4 simpledit
NAME
simpledit Filter to create .site and .sitechan CSS relations from an input ASCII file
SYNOPSIS
simpledit ascii_file db_name
DESCRIPTION
The simpledit is a simple filter program. It converts a manually created (text editor) unformatted ASCII
file ascii_file with station and channel information into CSS3.0 db_name.site and db_name.sitechan
relation tables (files). The prefix db_name, coming from the command line, is the database name. In
the case of real data, there is another way to create these relations. Use the IRIS rdseed program, which
provides SEED volume conversion to CSS format. Note, CSS format is strictly defined, so do not create .site
and .sitechan tables manually. This leads to numerous format errors and as a result can crash the Mineos
programs. In case of a lot of station data, a better solution is to write a program which creates ascii_file
or .site and .sitechan files directly.
Description of ascii_file The ascii_file is a set of ASCII text lines. Each line describes a single station
or a single channel. All channel lines, placed after some station line, belong to that station.
Each line in the file consists of some number of fields separated with one or more space characters. If a
field has an internal space character, e.g., as in a station’s full name, it must be surrounded with single
quotes. The first field starts with the first position in the line. A station line has the fields: sta, lat, lon,
elev, staname. See the description in the .site relation table, Table 6.3. A channel line starts with text field
“@”. The other fields are: chan, edepth, hang, vang. See description in Table 6.4, .sitechan relation. The
standard orientation of a sensor “XX” is defined as
where dd.dddd is a sensor edepth. Note that the order of channels for the given station is not important.
4.5. CREATE_ORIGIN 39
4.5 create_origin
NAME
create_origin Convert an event text file into the CSS3.0 .origin relation.
SYNOPSIS
create_origin cmt_event db_name
DESCRIPTION
The shell script create_origin reads from the cmt_event ASCII file the first line written in the format
of input cmt_event file for program green, converts the source time and location into a single row CSS3.0
relation table, and stores it into the db_name.origin file. The script create_origin only fills out in the
.origin relation the following fields: lat, lon, depth, time, orid, jdate, auth, and lddate. The other fields are
not important for the Mineos package and are filled with default values. For more details about the .origin
relation see Table 4.1 below, or for the complete description, see Anderson et al. 1990 [1].
Table 4.1: Relation: origin. Description: Data on event location and confidence bounds.
attribute name field no. storage type external format character position attribute description
lat 1 f4 f9.4 1-9 estimated latitude
lon 2 f4 f9.4 11-19 estimated longitude
depth 3 f4 f9.4 21-29 estimated depth
time 4 f8 f17.5 31-47 epoch time
orid 5 i4 i8 49-56 origin id
evid 6 i4 i8 58-65 event id
jdate 7 i4 i8 67-74 julian date
nass 8 i4 i4 76-79 no. of associated phases
ndef 9 i4 i4 81-84 no. of locating phases
ndp 10 i4 i4 86-89 no. of depth phases
grn 11 i4 i8 91-98 geographic region no.
srn 12 i4 i8 100-107 seismic region no.
etype 13 c7 a7 109-115 event type
depdp 14 f4 f9.4 117-125 est. depth from depth phases
dtype 15 c1 a1 127-127 depth method used
mb 16 f4 f7.2 129-135 body wave magnitude
mbid 17 i4 i8 137-144 mb magid
ms 18 f4 f7.2 146-152 surface wave magnitude
msid 19 i4 i8 154-161 ms magid latitude
ml 20 f4 f7.2 163-169 local magnitude
mlid 21 i4 i8 171-178 ml magid
algorithm 22 c15 a15 180-194 location algorithm used
auth 23 c15 a15 196-210 source/originator
commid 24 i4 i8 212-219 comment id
lddate 25 date a17 221-237 load date
40 CHAPTER 4. THE UTILITIES USER’S MANUAL
Chapter 5
41
42 CHAPTER 5. FDB AND TIME SUBROUTINES/FUNCTIONS
subroutine epochtoh (t, year, doy, hour, min, sec) converts epoch time, double* t, into human time
year, day of year (doy), hour, minutes (min), sec. Note: integer*4 applies to year, doy, hour,
min and real*8 applies to sec. Day of year (doy) is the number of days counted from the first day
of the year.
real*8 function htoepoch (year, doy, hour, min, sec) returns epoch time. Input arguments are year,
doy, hour, minutes (min), sec. Note: integer*4 applies to year, doy, hour, min and real*8 applies
to sec.
subroutine doytom (year, doy, mon, day) converts year and day of year (doy) into month (mon) and
day of month (day). The type of all arguments is integer*4.
integer*4 function mtodoy (year, mon, day) returns days of year. Input arguments are year, month
(mon), and day. The type of all arguments is integer*4.
character*17 function loctime() returns local system time of form mm/dd/yy-hh:mm:ss.
Chapter 6
This chapter defines the tables (relations) in the flat file database. The name of each relation appears in
bold print at the top of each table. The format of the flat files specify fixed field widths and precisions in
FORTRAN style. Fields are separated in these files with exactly one blank space.
Table 6.1: Relation: eigen. Description: Eigenfunction and eigenvalue file header.
attribute name field no. storage type external format character position attribute description
norder 1 i4 i8 1-8 radial order no. n
lorder 2 i4 i8 10-17 angular order no. 1
typeo 3 i4 a1 19-19 type of modes
eigid 4 i4 i8 21-28 eigen id
per 5 f4 f16.5 30-45 eigenvalue, period
phvel 6 f4 f16.5 47-62 phase velocity
grvel 7 f4 f16.5 64-79 group velocity
attn 8 f4 f16.5 81-96 attenuation
nrow 9 i4 i8 98-105 no. of rows
ncol 10 i4 i4 107-110 no. of columns
npar 11 i4 i4 112-115 no. of parameters
datatype 12 c2 a2 117-118 numeric storage
foff 13 i4 i10 120-129 byte offset
dir 14 c64 a64 131-194 directory
dfile 15 c32 a32 196-227 file name
commid 16 i4 i8 229-236 comment id
lddate 17 date a17 238-254 load date
43
44 CHAPTER 6. FLAT FILE DATABASE TABLES
Table 6.5: Relation: wfdisc. Description: Waveform file header and descriptive information.
attribute name field no. storage type external format character position attribute description
sta 1 c6 a6 1-6 station identifier
chan 2 c8 a8 8-15 channel identifier
time 3 f8 f17.5 17-33 epoch time of the first
sample in file
wfid 4 i4 i8 35-42 waveform id
chanid 5 i4 i8 44-51 channel operation id
jdate 6 i4 i8 53-60 Julian date
endtime 7 f8 if17.5 62-78 time*(nsamp-
1)/samprate
nsamp 8 i4 i8 80-87 no. of samples
samprate 9 f4 f11.5 89-99 sampling rate in
samples/sec
calib 1 f4 f16.6 101-116 nominal calibration
calper 11 f4 f16.6 118-133 nominal calibration
period
instype 12 c6 a6 135-140 instrument code
segtype 13 c1 a1 142-142 indexing method
datatype 14 c2 a2 144-145 numerical storage
clip 15 c1 a1 147-147 clipped flag
dir 16 c64 ia64 149-212 directory
dfile 17 c32 a32 214-245 data file
foff 18 i4 i10 247-256 byte offset
commid 19 i4 i8 258-265 comment id
lddate 20 date a17 267-283 load date
46 CHAPTER 6. FLAT FILE DATABASE TABLES
Chapter 7
Attribute Description
Name: attn
Relation: eigen
Description: Attenuation coefficient Q
NA Value: −1
Range: attn > 0
Name: calib
Relation: wfdisc
Description: Calibration factor. This is the conversion factor that maps digital data to earth displacement.
The factor holds true at the oscillation period specified by the attribute calper. A positive value means
ground motion increasing in a component direction (up, north, east) is indicated by increasing counts.
A negative value means the opposite. Calib generally reflects the best calibration information available
at a time of recording.
NA Value: NOT ALLOWED. A valid entry is required.
Units: Nanometers/digital count
Range: Any nonzero floating point number
Name: clip
Relation: wfdisc
Description: Clipped data flag. This is a single-character flag to indicate whether (c) or not (n) the data
were clipped.
NA Value: - (a dash)
Range: { c | n}, lowercase
Name: calper
47
48 CHAPTER 7. ATTRIBUTE DESCRIPTION
Relation: wfdisc
Description: Calibration period. This gives the period for which calib is valid.
NA Value: NOT ALLOWED. A valid entry is required.
Units: Seconds
Name: chan
Name: chanid
Relation: wfdisc
Description: Channel recording identifier. This is the surrogate key used to uniquely identify a specific
recording. Chanid duplicates the information of the compound key sta, chan, time. As a single
identifier it is often convenient. Sta, chan, time is more appropriate to the human interface.
NA Value: −1
Range: chanid > 0
Name: commid
Relation: eigen, wfdisc
Description: Data file. Comment identification. This is the integer key used to point to free-form comments
in the predefined remark list. Not implemented yet.
Name: ctype
Relation: sitechan
Description: This attribute specifies the type of data channel: n (normal , a normal instrument response),
b (beam, a coherent beam firmed with array data), or i (an incoherent beam of energy stack).
NA Value: - (a dash)
49
Range: { n | b | i }, lowercase
Name: datatype
Relation: eigen, wfdisc
Description: Numeric storage data. This attribute specifies the format of data series in the file system.
Currently only the data type t4 and f4 are supported. Attribute is used to enable swapping four bytes
in real numbers if necessary.
NA Value: NOT ALLOWED. A valid entry is required.
Range: The currently recognized types (lowercase) are:
Name: descrip
Relation: sitechan
Description: Channel description. This is a description of the data channel. For non-instrument channels
(e.g., beams) this is the only quantitative description of channel operations in the core tables.
NA Value: - (a dash)
Range: Any free-format string up to 50 characters long.
Name: deast
Relation: site
Description: Distance east. This attribute gives the “easting” or relative position of an array element, east
of the array center specified by the value of refsta. See dnorth.
NA Value: 0.0
Units: Kilometers
Range: −20, 000.00 ≤ deast ≤ +20, 000.00
Name: dfile
Relation: eigen, wfdisc
Description: Data file. In wf disc this is the file name of a disk waveform or single component Green’s
function. In eigen this is the name of a multiplexed eigenfunction file.
NA Value: NOT ALLOWED. A valid entry is required.
Range: Any string up to 32 characters long.
50 CHAPTER 7. ATTRIBUTE DESCRIPTION
Name: dir
Relation: eigen, wfdisc
Description: Directory. This attribute is the directory part of a path name. This is a relative path for the
current directory containing the eigen relation.
NA Value: NOT ALLOWED. A valid entry is required.
Range: Any string of up to 64 characters.
Name: dnorth
Relation: site
Description: Distance north. This attribute gives the “northing” or relative position of an array element,
north of the array center specified by the value of refsta. See deast.
NA Value: 0.0
Units: Kilometers
Range: −20, 000.00 ≤ dnorth ≤ +20, 000.00
Name: edepth
Relation: sitechan
Description: Emplacement depth. This attribute gives the depth at which the instrument is positioned,
relative to the value of elev in the site relation.
NA Value: NOT ALLOWED. A valid entry is required.
Units: Kilometers
Range: edepth ≥ 0.0
Name: eigid
Relation: eigen
Description: Eigenfunction identifier. The key field is a unique identifier for an eigenfunction data defined
by mode numbers n, l and the type of mode.
NA Value: NOT ALLOWED. A valid entry is required.
Name: elev
Relation: site
Description: Elevation. This attribute is the elevation of a seismic station relative to mean sea level.
NA Value: −999.0
Units: Kilometers
Range: −10.0 ≤ elev ≤ +10.0
51
Name: endtime
Relation: wfdisc
Description: Time of last datum. This attribute is the time of the last sample in the waveform file. Endtime
is equivalent to time + (nsamp − 1)/samprate.
NA Value: +9999999999.999
Range: endtime > time
Name: foff
Relation: eigen, wfdisc
Description: File offset. This is the byte offset of eigenfunction segments within data file. See dir and
df ile.
NA Value: NOT ALLOWED. A valid entry is required.
Range: f of f ≥ 0
Name: grvel
Relation: eigen
Description: Group velocity. This gives the magnitude value of group velocity for attribute per. Evaluated
only for S, T, and C modes. See typeo.
NA Value: −1
Units: kilometers/seconds
Range: grvel > 0
Name: hang
Relation: sitechan
Description: Horizontal orientation of seismometer. This attribute specifies the orientation of the seis-
mometer in the horizontal plane, measured clockwise from North. For a North-South orientation with
the seismometer pointing toward the north, hang = 0; for East-West orientation with seismometer
pointing toward the west, hang = 270. See vang.
NA Value: NOT ALLOWED. A valid entry is required.
Units: Degrees
Name: instype
Relation: wfdisc
52 CHAPTER 7. ATTRIBUTE DESCRIPTION
Description: Instrument type. This character string is used to indicate the instrument type. Some exam-
ples are: SRO, ASRO, and S-750.
NA Value: - (a dash)
Range: Uppercase, and too numerous to mention. For details, see Ganse and Hutt, 1982 [4].
Name: jdate
Relation: wfdisc
Description: Julian date. This attribute is the date of seismic recording. The same information is available
in epoch time, but the Julian date format is more convenient for many types of searches. Dates B.C.E.
are negative. Note: there is no year = 0000 or day = 000. Where only the year is known, day of the
year = 001; where only year and month are known, day of year = first day of month. For example,
Jan 1 of 10 B.C.E. is -0010001. See time and attribute per. Evaluated only for S, T, and C modes.
See typeo.
NA Value: −1
Range: Julian dates of the form yyyyddd. Must be consistent with the accompanying time attribute.
Name: lat
Relation: site
Description: Latitude. This attribute is the geographic latitude. Locations north of the equator have
positive latitudes.
NA Value: NOT ALLOWED. A valid entry is required.
Units: Degrees
Range: −90.0 ≤ lat ≤ +90.0
Name: lddate
Relation: all
Description: Load date. This is the date and time the record was created. Not implemented yet.
Range: Any value
Name: lon
Relation: site
Description: Longitude. This attribute is the geographic longitude. Longitudes are measured positive east
of the Greenwich meridian.
NA Value: NOT ALLOWED. A valid entry is required.
Units: Degrees
Name: lorder
Relation: eigen
Description: Angular order number (harmonic degree) l of a normal mode.
NA Value: −1
Name: ncol
Relation: eigen
Description: This attribute is the number of columns in the eigenfunction grid stored in binary data.
FORTRAN: i4
NA Value: NOT ALLOWED. A valid entry is required.
Range: { 2 | 4 | 6 }
Name: norder
Relation: eigen
Description: Radial order number n of a normal mode.
NA Value: −1
Name: npar
Relation: eigen
Description: This attribute is the number of parameters stored in the binary data.
NA Value: 0
Range: npar > 0
Name: nrow
Relation: eigen
Description: This attribute is the number of rows in the eigenfunction grid stored in the binary data.
NA Value: NOT ALLOWED. A valid entry is required.
Range: nrow > 0
Name: nsamp
Relation: wfdisc
Description: Number of samples. This quantity is the number of samples in waveform segment.
54 CHAPTER 7. ATTRIBUTE DESCRIPTION
Name: offdate
Relation: site, sitechan
Description: Turn off date. This attribute is the Julian Date on which the station or sensor indicated was
turned off, dismantled, or removed. See ondate.
NA Value: −1
Range: Julian date of the form yyyyddd
Name: ondate
Relation: site, sitechan
Description: Turn on date. This attribute is the Julian Date on which the station or sensor indicated
began operation. Offdate or ondate is not intended to accommodate temporary downtimes, but rather
to indicate the time period for which the attributes of the station lat, lon, elev are valid for the given
station code. Stations are often moved, but usually the station code remains unchanged.
NA Value: NOT ALLOWED. A valid entry is required.
Range: Julian date of the form yyyyddd
Name: per
Relation: eigen
Description: Eigenvalue period. The frequency is ω = 2 ∗ π/per. The normalized value of ω is located in
the associated binary data.
NA Value −1
Units: seconds
Range: per > 0
Name: phvel
Relation: eigen
Description: Phase velocity. This gives the magnitude value of phase velocity for attribute per. Evaluated
only for S, T, and C modes. See typeo.
NA Value: −1
Units: kilometers/seconds
Range: phvel > 0
Name: samprate
55
Relation: wfdisc
Description: Sampling rate. The attribute is the sample rate in samples/second. This value may vary
slightly from the nominal to reflect clock drift.
NA Value: NOT ALLOWED. A valid entry is required.
Units: 1/seconds
Range: samprate > 0
Name: segtype
Relation: wfdisc
Description: Segment type. The attribute indicates if a waveform is o (original), v (virtual), s (segmented),
d (duplicate), g (Green’s function), or w (synthetic waveform).
NA Value: - (a dash)
Range: { o | v | s | d | g | w }
Name: sta
Relation: site, sitechan, wfdisc
Description: Station code, or common code-name for a seismic observatory. Generally only three or four
characters are used.
NA Value: A valid entry is required.
Range: Any uppercase string of up to 6 characters.
Name: staname
Relation: site
Description: Station name/description. This is the full name of the station whose code-name is in sta.
NA Value: - (a dash)
Range: Any uppercase string of up to 50 characters.
Name: statype
Relation: site
Description: Station type. This character string specifies the station type. Recommended types are ss
(single stations) or ar (array).
NA Value: - (a dash)
Range: { ss | ar }, lowercase
Name: time
56 CHAPTER 7. ATTRIBUTE DESCRIPTION
Relation: wfdisc
Description: Epoch time. Epochal time given as seconds and fractions of a second since hour 0 January 1,
1970, and stored in a double precision floating number. Refers to start time data. The double precision
floating number allows 15 decimal digits. At 1 millisecond accuracy this is a range of 3 × 104 years.
Generally only three or four characters are used.
Name: typeo
Relation: eigen
Description: Type of binary data. This single character indicates the type of data. The values are R
(radial), S (spheroidal), T (toroidal) or C (inner core toroidal) modes. The character P indicates that
data includes constants, normalization parameters, and radius samples.
Name: refsta
Relation: site
Description: Reference station. This string specifies the reference station with respect to which the array
members are located. See deast, dnorth.
NA Value: - (a dash)
Name: vang
Relation: sitechan
Description: Vertical orientation of seismometer. This attribute measures the angle between the sensitive
axis of a seismometer and the outward-pointing vertical direction. For a vertically oriented seismometer,
vang = 0. For a horizontally oriented seismometer, vang = 90. See hang.
NA Value: NOT ALLOWED. A valid entry is required.
Units: Degrees
Range: 0.0 ≤ vang ≤ 90.0
Chapter 8
Examples
This section contains examples of the interaction with each of the four programs of the Mineos package.
Each program can be run in three different ways: by interactive dialog, redirection from an input file, or
direct use of a shell script. In each subsection, examples of running the program in each way are presented.
The output from each approach should be the same. The programs are run in order: minos_bran, eigcon,
green, syndat.
All of the input files named here are included in the standard distribution of the Mineos package.
8.1 minos_bran
In the example given here, minos_bran reads in a model file called prem_noocean.txt, which is a tabu-
lar listing of the PREM model with the ocean filled in with solid crust. The program outputs two files:
prem_noocean_S and eprem_noocean_S. The first file contains a listing of some normal mode properties
(n, l, frequency, period, phase and group speed, etc.) and the second file contains the eigenfunctions. Both
files are needed to be read into the eigenfunction renormalization program, eigcon. In this example, the
numerical tolerance parameter eps is set to 10−10 and gravity is taken into consideration in computing the
eigenfunctions only if the frequency is less than 10 mHz. The output normal mode properties will be for
spheroidal modes with angular order l values ranging between 1 and 6000, frequencies ranging between 0
and 166 mHz (i.e., 6 sec), and radial orders n ranging from 0 to 0 – that is, only fundamental modes will be
computed in this example.
57
58 CHAPTER 8. EXAMPLES
prem_noocean.txt
prem_noocean_S
eprem_noocean_S
1e-10 10
3
1 6000 0.0 166.0 0 0
.............
minos_bran << EOF
prem_noocean.txt
prem_noocean_S
eprem_noocean_S
1e-10 10
3
1 6000 0.0 166.0 0 0
EOF
.............
8.2 eigcon
In this example, the two files computed by minos_bran are read in as input, prem_noocean_S and
eprem_noocean_S, together with the input model file prem_noocean.txt. eigcon renormalizes the eigen-
functions and outputs them to a depth of 1000 km, in this example. The renormalized eigenfunctions are
placed in an extension of the CSS3.0 database, using the relation test_S.eigen. This relation points to a file
called eigen located in a subdirectory called test_S.dat. The file eigen is non-encapsulated, which allows
greater flexibility in access from different platforms and code from different compilers. Information about
the eigenfunction’s byte order is contained in the .eigen relation, which is used in subsequent programs to
swap bytes appropriately. Eigenfunctions are computed here to 1000 km for plotting purposes, but for runs
in which earthquakes are no deeper than, for example, 40 km, “40” would be input here.
eprem_noocean_S
enter pathdbase_name or dbase_name to store eigenfunctions:
test_S
$
3
prem_noocean.txt
1000
prem_noocean_S
eprem_noocean_S
test_S
.............
eigcon << EOF
3
prem_noocean.txt
1000
prem_noocean_S
eprem_noocean_S
test_S
EOF
.............
8.3 green
In this example, there are three principal input files.
1. The first input file is the database name of the .site and .sitechan relations. The entries of the .sitechan
file determine which stations and channels are used for constructing the Green’s functions. Channel
orientations are in the .sitechan file, but station coordinates are in the .site file. The database name for
these relations in this example is short. There must be, therefore, two pre-constructed files: short.site
and short.sitechan.
2. The second input file is the file db_list. This file contains the listing of all database names for the
eigenfunction files. In the previous subsection, the .eigen relation prem_noocean_S.eigen was created.
So if that file contains the only normal modes to be used in the construction of the Green’s functions,
then the file db_list would have a single entry: prem_noocean_S.
Note: Only the database name is included and not the relation name suffix .eigen. If other
modes are desired, then the file db_list would include the database names of the other modes.
For example, toroidal modes are usually included in synthetic, or SH motions will be ignored.
In this simple example, db_list can be considered to have a single entry.
60 CHAPTER 8. EXAMPLES
3. The third input file is the file china_cmt_evt, which is a single-lined listing containing the coordinates
and event parameters of an earthquake in China. The moment tensor is not used by this program, but
by the program syndat which follows.
This example will choose modes only between frequencies of 0 and 166 mHz (i.e., periods greater than 6
sec). It will produce Green’s functions that are 8000 samples long. The time sampling specified in the
china_cmt_evt file is 1 sec, so this is a time series length of a little over two hours. In many cases, both the
minor and major arc arrivals can be seen.
The program will output a .wfdisc relation in the database called green; that is, a file called green.wfdisc
which points to the waveforms on disk in a default location.
8.4 syndat
In this example, syndat reads in two files. First, there is the event file that contains the CMT: china_cmt_event.
Second, there is the output from the program green: green.wfdisc. Only the database name, green, is input
rather than the whole file name. The output database name is also specified, which in this example is Syndat.
The program will output a .wfdisc relation, Syndat.wfdisc in this example, pointing to the waveforms on
disk.
china_cmt_event
0
green
Syndat
0
.............
syndat << EOF
china_cmt_event
0
green
Syndat
0
EOF
.............
62 CHAPTER 8. EXAMPLES
Bibliography
[1] Anderson, J., Farrell, W.E., et al. Center for Seismic Studies version 3 database: Schema reference
manual. Technical Report C90-01, DARPA, September 1990.
[2] Biswas, N.N., and L. Knopoff (1970), Exact earth-flattening calculations for Love wave. Bull. Seismol.
Soc. Amer., 60, 1123-1127.
[3] Biswas, N.N. (1972), Earth-flattening procedure for propagation of Rayleigh wave. PAGEOPH, 96,
61-74.
[4] Ganse, R., and C.R. Hutt (1982), Directory of World Digital Seismic Stations. Boulder: World Data
Center for Solid Earth Geophysics, Report SE-32.
[5] Gilbert, F., and A.M. Dziewonski (1975), An application of normal mode theory to the retrieval of
structural parameters and source mechanisms from seismic spectra. Phil. Trans. R. Soc., A278, 187-
269.
[6] Gilbert, F., and G.E. Backus (1969), A computational problem encountered in a study of the earth’s
normal modes. Proceedings of AFIPS Fall Joint Computer Conference, 32, San Francisco, CA, December
1968, 1273-1277.
[7] Gilbert, F., and G.E. Backus (1966), Propagator matrices in elastic wave and vibration problems.
Geophys. 31(2), 326-332.
[8] Herrmann, R.B. (1978), Computer programs in earthquake seismology. Vol. 2, St. Louis: St. Louis
University.
[9] Shanks, E.B. (1966), Solutions of differential equations by evaluations of functions, Math. Comp. 20,
21-38 MR 32:4858
[10] Woodhouse, J.H., and F.A. Dahlen (1978), The effect of a general aspherical perturbation on the free
oscillation of the Earth. Geophys. J.R. Astr Soc., 53, 335-354.
[11] SPECFEM3D_GLOBE, Version 3.6. User Manual. CIG/CIT, October 24, 2006
63
64 BIBLIOGRAPHY
Appendix A
Model Example
One-dimensional aniziotropic PREM noocean model. The PREM water layer is filled with solid crust.
The columns in the model table have the following names:
65
66 APPENDIX A. MODEL EXAMPLE
Benchmarking
Due to modification of the Mineos codes, the revised version has been benchmarked again. Three benchmark
tests were performed: a test against the original code at UCSD, a test against Bob Hermann’s eigenfunction
and synthetic seismogram code for fundamental modes, and a test against SPECFEM3D_GLOBE v3.6 code
designed for simulation of three-dimensional global seismic wave propagation based upon the spectral-element
method (SEM).
71
72 APPENDIX B. BENCHMARKING
To take into account the Earth’s sphericity, the original version of Herrmann’s plane code [8] had been
modified using the Earth flattening exact formulas for Love waves [2] and Earth flattening approximation
for Rayleigh waves [3]. All input information in Herrmann’s code is in geocentric coordinates.
As an example, Figures B.1 - B.3 illustrate plane (blue) and spherical (red) three-component synthetic
seismograms for the three different seismic stations: BJT, TLY, and BILL. The event location (CMT solution)
is 25.39N, 101.40E, depth is 33 km. The station coordinates (geographic), epicentral distances (geocentric),
and source azimuths (geocentric) are shown in Table B.1; units are degrees.
Table B.1: Station coordinates (geographic), epicentral distances (geocentric), and source azimuths (geocen-
tric) for Benchmark test #2, Mineos vs. Herrmann’s plane code for fundamental modes.
Mrr = −0.60e24, Mθθ = −6.29e24, Mϕϕ = 6.89e24, Mrθ = −1.85e24, Mrϕ = 0.12e24, Mθϕ = −4.73e24
The input model is isotropic double-layered crust PREM in which the water layer is filled with the upper
crust’s velocities.
Computations for both codes were performed without attenuation and gravity effects. Srtictly speaking,
plane code does not support gravity computation at all, so gravity was turned off for the Mineos code.
The Mineos synthetic accelerograms were converted to displacement. All seismograms were computed in
the period range 5 to 200 seconds. The spectral range was tapered with half-cosine windows with corner
frequencies (1/200, 1/100) Hz and (1/6, 1/5) Hz.
The dispersion curves of the phase and group velocities obtained from the two codes (Figure B.4) are
practically identical; the maximum absolute difference of velocities doesn’t exceed 0.8 m/s. Synthetic seis-
mograms are very close, except the long period in the earlier part of the records. This difference is due to
the significant increasing noise level after acceleration-displacement transformation (proportional to 1/ω 2 )
and due to differences in the deeper parts of the input models.
B.2. MINEOS CODE VS. HERRMANN’S PLANE CODE FOR FUNDAMENTAL MODES 73
4 LHZ
x 10
2
Amplitude, nm
−1
−2
300 400 500 600 700 800 900 1000
5 LHN
x 10
1
Amplitude, nm
0.5
−0.5
−1
300 400 500 600 700 800 900 1000
5 LHE
x 10
1
Amplitude, nm
0.5
−0.5
−1
300 400 500 600 700 800 900 1000
Time, s
Figure B.1: Station BJT. Comparison with Herrmann’s plane code. Three-component synthetic seismogram
for the fundamental spheroidal and toroidal modes. Mineos seismogram is plotted in red, Herrmann’s in
blue. Earthquake is 25.39N, 101.40E (Southern China), depth is 33 km. Model is PREM, in which the water
layer is filled with the upper crust’s velocities. The crust has only two layers.
74 APPENDIX B. BENCHMARKING
4 LHZ
x 10
2
Amplitude, nm
1
−1
−2
400 500 600 700 800 900 1000 1100 1200 1300
4 LHN
x 10
2
Amplitude, nm
−1
−2
400 500 600 700 800 900 1000 1100 1200 1300
4 LHE
x 10
5
Amplitude, nm
−5
−10
400 500 600 700 800 900 1000 1100 1200 1300
Time, s
Figure B.2: Comparison with Herrmann’s plane code, as in Figure B.1, but for station TLY.
B.2. MINEOS CODE VS. HERRMANN’S PLANE CODE FOR FUNDAMENTAL MODES 75
4 LHZ
x 10
1
Amplitude, nm
0.5
−0.5
−1
500 1000 1500 2000 2500 3000
4 LHN
x 10
4
Amplitude, nm
−2
−4
500 1000 1500 2000 2500 3000
4 LHE
x 10
1
Amplitude, nm
−1
−2
500 1000 1500 2000 2500 3000
Time, s
Figure B.3: Comparison with Herrmann’s plane code, as in Figure B.1, but for station BILL.
76 APPENDIX B. BENCHMARKING
4.5
Velocity, km/s
3.5
S−phase
S−group
T−phase
T−group
2.5
20 40 60 80 100 120 140 160 180 200 220
T, sec
Figure B.4: Dispersion curves of phase and group velocities for spheroidal and toroidal fundamental modes.
The solid color lines are the Mineos results, the (faint) black dotted lines are for the Herrmann’s plane
code. The solid line colors are blue for Rayleigh phase velocity, red for Rayleigh group velocity, green for
Love phase velocity, and magenta for group Love velocity.
• ELLIPTICITY - off
• TOPOGRAPHY - off
• ROTATION - off
• GRAVITY - on
As with Mineos, input coordinates are geographic, and geocentric coordinates are used internally.
BJT, LHZ
18000
12000
Amp., nm
6000
0
-6000
-12000
-18000
200 400 600 800 1000
4000
2000
Amp., nm
0
-2000
-4000
100 200 300 400
8000
Amp., nm
4000
0
-4000
-8000
18000
12000
Amp., nm
6000
0
-6000
-12000
-18000
800 900 1000
Time, s
Figure B.5: Synthetic seismograms for SPECFEM3D_GLOBE (red) and Mineos (blue). Station BJT,
channel LHZ. Distance = 19.123o , Az = −135.267o . The top plot shows the whole record; the others plot
separate fragments.
B.3. MINEOS VS. SPECFEM3D_GLOBE 79
BJT, LHN
60000
40000
Amp., nm
20000
0
-20000
-40000
-60000
200 400 600 800 1000
4000
2000
Amp., nm
0
-2000
-4000
100 200 300 400
60000
40000
Amp., nm
20000
0
-20000
-40000
-60000
400 500 600 700
16000
Amp., nm
8000
0
-8000
-16000
Figure B.6: The same as Figure B.5, but for the LHN channel.
80 APPENDIX B. BENCHMARKING
BJT, LHE
60000
40000
Amp., nm
20000
0
-20000
-40000
-60000
200 400 600 800 1000
4000
2000
Amp., nm
0
-2000
-4000
100 200 300 400
60000
40000
Amp., nm
20000
0
-20000
-40000
-60000
400 500 600 700
16000
Amp., nm
8000
0
-8000
-16000
Figure B.7: The same as Figure B.5, but for the LHE channel.
B.3. MINEOS VS. SPECFEM3D_GLOBE 81
5 BJT, LHZ
x 10
6
Amp., nm*s
0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
5 BJT, LHN
x 10
15
Amp., nm*s
10
0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
5 BJT, LHE
x 10
15
Amp., nm*s
10
0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
Freq., Hz
Figure B.8: Amplitude spectra for the station BJT. SPECFEM3D_GLOBE spectra (red), Mineos (blue).
82 APPENDIX B. BENCHMARKING
TLY, LHZ
15000
10000
Amp., nm
5000
0
-5000
-10000
-15000
200 400 600 800 1000 1200
1500
1000
Amp., nm
500
0
-500
-1000
-1500
100 200 300 400 500
6000
4000
Amp., nm
2000
0
-2000
-4000
-6000
500 600 700 800 900
15000
10000
Amp., nm
5000
0
-5000
-10000
-15000
900 1000 1100 1200 1300
Time, s
Figure B.9: Synthetic seismograms for SPECFEM3D_GLOBE (red) and Mineos (blue). Station TLY,
channel LHZ. Distance = 26.308o , Az = −175, 417o . The top plot shows the whole record; the others plot
separate fragments.
B.3. MINEOS VS. SPECFEM3D_GLOBE 83
TLY, LHN
9000
6000
Amp., nm
3000
0
-3000
-6000
-9000
200 400 600 800 1000 1200
1000
500
Amp., nm
0
-500
-1000
100 200 300 400 500
6000
4000
Amp., nm
2000
0
-2000
-4000
-6000
500 600 700 800 900
10000
5000
Time, s
0
-5000
-10000
900 1000 1100 1200 1300
Figure B.10: The same as Figure B.9, but for the LHN channel.
84 APPENDIX B. BENCHMARKING
TLY, LHE
40000
Amp., nm
20000
0
-20000
-40000
200 400 600 800 1000 1200
300
150
Amp., nm
0
-150
-300
100 200 300 400 500
45000
30000
Amp., nm
15000
0
-15000
-30000
-45000
500 600 700 800 900 1000 1100
1000
500
Time, s
0
-500
-1000
1100 1150 1200 1250 1300
Figure B.11: The same as Figure B.9, but for the LHE channel.
B.3. MINEOS VS. SPECFEM3D_GLOBE 85
5 TLY, LHZ
x 10
6
Amp., nm*s
0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
5 TLY, LHN
x 10
4
3
Amp., nm*s
0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
5 TLY, LHE
x 10
10
Amp., nm*s
0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
Freq., Hz
Figure B.12: Amplitude spectra for the station TLY. SPECFEM3D_GLOBE spectra (red), Mineos (blue).
86 APPENDIX B. BENCHMARKING
BILL, LHZ
5000
2500
Amp., nm
0
-2500
-5000
400 800 1200 1600 2000 2400 2800 3200
400
Amp., nm
200
0
-200
-400
1000
500
Amp., nm
0
-500
-1000
1000 1200 1400 1600
5000
2500
Amp., nm
0
-2500
-5000
1600 1800 2000
5000
2500
Time, s
0
-2500
-5000
2200 2400 2600
Figure B.13: Synthetic seismograms for SPECFEM3D_GLOBE (red) and Mineos (blue). Station BILL,
channel LHZ. Distance = 57.417o , Az = −103.266o . The top plot shows the whole record; the others plot
separate fragments.
B.3. MINEOS VS. SPECFEM3D_GLOBE 87
BILL, LHN
20000
Amp., nm
-20000
100
50
Amp., nm
0
-50
-100
400 600 800
9000
6000
Amp., nm
3000
0
-3000
-6000
-9000
1000 1200 1400 1600
20000
Amp., nm
-20000
6000
4000
Amp., nm
2000
0
-2000
-4000
-6000
2200 2400 2600
Figure B.14: The same as Figure B.13, but for the LHN channel.
88 APPENDIX B. BENCHMARKING
BILL, LHE
5000
2500
Amp., nm
0
-2500
-5000
400 800 1200 1600 2000 2400 2800 3200
400
Amp., nm
200
0
-200
-400
1000
500
Amp., nm
0
-500
-1000
1000 1200 1400 1600
5000
2500
Amp., nm
0
-2500
-5000
1600 1800 2000
5000
2500
Time, s
0
-2500
-5000
2200 2400 2600
Figure B.15: The same as Figure B.13, but for the LHE channel.
B.3. MINEOS VS. SPECFEM3D_GLOBE 89
5 BILL, LHZ
x 10
2
1.5
Amp., nm*s
0.5
0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
5 BILL, LHN
x 10
8
6
Amp., nm*s
0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
5 BILL, LHE
x 10
3
Amp., nm*s
0
0 0.02 0.04 0.06 0.08 0.1 0.12 0.14 0.16
Freq., Hz
Figure B.16: Amplitude spectra for the station BILL. SPECFEM3D_GLOBE spectra (red), Mineos (blue).
90 APPENDIX B. BENCHMARKING
Appendix C
The Mineos code uses the following convention for the Cartesian reference frame defining the standard
sensor orientation:
• the x axis points East
• the y axis points North
• the z axis points up
Note that this convention is the same as for SPECFEM3D_GLOBE code, and it is different from the
Harvard Centroid-Moment Tensor (CMT) convention. The Harvard CMT convention is
• the x axis points South
• the y axis points East
91
92 APPENDIX C. REFERENCE FRAME CONVENTION
Appendix D
License
GNU GENERAL PUBLIC LICENSE Version 2, June 1991. Copyright (C) 1989, 1991 Free
Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is
not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast,
the GNU General Public License is intended to guarantee your freedom to share and change free software –
to make sure the software is free for all its users. This General Public License applies to most of the Free
Software Foundation’s software and to any other program whose authors commit to using it. (Some other
Free Software Foundation software is covered by the GNU Library General Public License instead.) You can
apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses
are designed to make sure that you have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it if you want it, that you can change the
software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask
you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute
copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the
recipients all the rights that you have. You must make sure that they, too, receive or can get the source
code. And you must show them these terms so they know their rights.
We protect your rights with two steps:
93
94 APPENDIX D. LICENSE
Activities other than copying, distribution and modification are not covered by this License; they
are outside its scope. The act of running the Program is not restricted, and the output from the
Program is covered only if its contents constitute a work based on the Program (independent of having
been made by running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program’s source code as you receive it, in any
medium, provided that you conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and
to the absence of any warranty; and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer
warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on
the Program, and copy and distribute such modifications or work under the terms of Section 1 above,
provided that you also meet all of these conditions:
(a) You must cause the modified files to carry prominent notices stating that you changed the files
and the date of any change.
(b) You must cause any work that you distribute or publish, that in whole or in part contains or is
derived from the Program or any part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
(c) If the modified program normally reads commands interactively when run, you must cause it,
when started running for such interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a notice that there is no warranty
(or else, saying that you provide a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this License. (Exception: if the
Program itself is interactive but does not normally print such an announcement, your work based
on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are
not derived from the Program, and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those sections when you distribute them
as separate works. But when you distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of this License, whose permissions
for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely
by you; rather, the intent is to exercise the right to control the distribution of derivative or collective
works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a
work based on the Program) on a volume of a storage or distribution medium does not bring the other
work under the scope of this License.
95
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code
or executable form under the terms of Sections 1 and 2 above provided that you also do one of the
following:
(a) Accompany it with the complete corresponding machine-readable source code, which must be
distributed under the terms of Sections 1 and 2 above on a medium customarily used for software
interchange; or,
(b) Accompany it with a written offer, valid for at least three years, to give any third party, for a
charge no more than your cost of physically performing source distribution, a complete machine-
readable copy of the corresponding source code, to be distributed under the terms of Sections 1
and 2 above on a medium customarily used for software interchange; or,
(c) Accompany it with the information you received as to the offer to distribute corresponding source
code. (This alternative is allowed only for noncommercial distribution and only if you received
the program in object code or executable form with such an offer, in accord with Subsection b
above.)
The source code for a work means the preferred form of the work for making modifications to it. For
an executable work, complete source code means all the source code for all modules it contains, plus
any associated interface definition files, plus the scripts used to control compilation and installation of
the executable. However, as a special exception, the source code distributed need not include anything
that is normally distributed (in either source or binary form) with the major components (compiler,
kernel, and so on) of the operating system on which the executable runs, unless that component itself
accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place,
then offering equivalent access to copy the source code from the same place counts as distribution of
the source code, even though third parties are not compelled to copy the source along with the object
code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under
this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void,
and will automatically terminate your rights under this License. However, parties who have received
copies, or rights, from you under this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else
grants you permission to modify or distribute the Program or its derivative works. These actions
are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the
Program (or any work based on the Program), you indicate your acceptance of this License to do so,
and all its terms and conditions for copying, distributing or modifying the Program or works based on
it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automati-
cally receives a license from the original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further restrictions on the recipients’ exercise
of the rights granted herein. You are not responsible for enforcing compliance by third parties to this
License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason
(not limited to patent issues), conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not excuse you from the conditions
of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may not distribute the Program
at all. For example, if a patent license would not permit royalty-free redistribution of the Program
by all those who receive copies directly or indirectly through you, then the only way you could satisfy
both it and this License would be to refrain entirely from distribution of the Program.
96 APPENDIX D. LICENSE
If any portion of this section is held invalid or unenforceable under any particular circumstance, the
balance of the section is intended to apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims
or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of
the free software distribution system, which is implemented by public license practices. Many people
have made generous contributions to the wide range of software distributed through that system in
reliance on consistent application of that system; it is up to the author/donor to decide if he or she is
willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of
this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by
copyrighted interfaces, the original copyright holder who places the Program under this License may
add an explicit geographical distribution limitation excluding those countries, so that distribution is
permitted only in or among countries not thus excluded. In such case, this License incorporates the
limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License
from time to time. Such new versions will be similar in spirit to the present version, but may differ in
detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of
this License which applies to it and "any later version," you have the option of following the terms and
conditions either of that version or of any later version published by the Free Software Foundation.
If the Program does not specify a version number of this License, you may choose any version ever
published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions
are different, write to the author to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this.
Our decision will be guided by the two goals of preserving the free status of all derivatives of our free
software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EX-
PRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK
AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD
THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SER-
VICING, REPAIR OR CORRECTION.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
Gnomovision version 69, Copyright © year name of author Gnomovision comes with ABSO-
LUTELY NO WARRANTY; for details type ‘show w’. This is free software, and you are welcome
to redistribute it under certain conditions; type ‘show c’ for details.
The hypothetical commands ‘show w’ and ‘show c’ should show the appropriate parts of the General Public
License. Of course, the commands you use may be called something other than ‘show w’ and ‘show c’; they
could even be mouse-clicks or menu items – whatever suits your program.
You should also get your employer (if you work as a programmer) or your school, if any, to sign a
"copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program ‘Gnomovision’ (which
makes passes at compilers) written by James Hacker.
(signature of Ty Coon)
1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into proprietary programs. If your
program is a subroutine library, you may consider it more useful to permit linking proprietary applications
with the library. If this is what you want to do, use the GNU Library General Public License instead of this
License.