P. Reasenberg and D. Oppenheimer U.S. Geological …. FPFIT Overview I Program FPFIT finds the...
Transcript of P. Reasenberg and D. Oppenheimer U.S. Geological …. FPFIT Overview I Program FPFIT finds the...
FPFIT, FPPLOT and FPPAGE:
Fortran computer programs for calculating ana displaying earthquake fault-plane solutions
by
P. Reasenberg and D. Oppenheimer
U.S. Geological Survey345 Middlefield RoadMenlo Park, California
Open-File Report No. 85-739
I. FPFIT Overview I
Program FPFIT finds the double-couple fault-plbne solution (source model)
that best fits a given set of observed first motion polarities for an
earthquake. The inversion is accomplished through
procedure that finds the source model minimizing a
a two-stage grid-search
normalized, weighted sum of
first-motion polarity discrepancies. Two weighting factors are incorporatedI
in the minimization: one reflecting the estimated 'variance of the data, and
one based on the absolute value of the theoretical P wave radiation amplitude
{Aki and Richards, 1980). The latter weighting g
to observations near radiation lobes (nodal plane
the minimum-misfit solution, FPFIT finds alternat
ves greater (lesser) weight
). In addition to finding
ive solutions corresponding
to significant relative minima in misfit. Such solutions, when they exist,i
generally correspond to faulting mechanisms distinctly different from the
minimum-misfit solution, and may be deemed the preferred solution after
Consideration of possible data errors, unmodeled
knowledge of the tectonic environment. For each
refractions and a^ priori
double-couple source model
Obtained, FPFIT formally estimates the uncertainty in the model parameters
(strike, dip, rake). Finally, FPFIT calculates a uniformly distributed set of
solutions within the range of estimated uncertainty. This set is used in the
display program FPPLOT to graphically define the range of P-axis and T-axis
orientation consistent with the data.
FPFIT calculates fault-plane solutions sequentially for a suite of
earthquakes and accumulates statistics on the entire suite, such as the
cumulative discrepancy rates for each station anj for each data class
(0-weight, 1-weight, etc..). FPFIT also accumulates statistics on the suite
iof misfit scores, estimated solution uncertainti BS, and other calculateo
quantities that characterize the overall quality of the inversion results.
Based on an examination of these statistics, adjustments to the inversion
procedure, such as revising the estimated data variance, or removing or
reversing one or more individual seismograph stations, may be indicated. Such
an iterative use of FPFIT provides an easy and sound way to identify and avoid
some common problems in the computation of fault-plane solutions, including
the presence of stations that consistently receive refracted rays that cross a
nodal plane, stations with reversed polarity, and noisy data.
Certain caution must be excercised when interpreting fault-plane solutions
computed by FPFIT. Non-double-couple solutions are not considered in the
program, and hence adoption of a source model obtained by FPFIT implies the
assumption that the earthquake is a double-couple source. Furthermore, data
errors, unmodeled refractions, and oversimplified layer boundaries in the
hypocentral solution should always be critically assessed in the evaluation of
fault-plane solutions. Hence, we strongly recommend that all applications of
FPFIT include careful consideration of reported multiple solutions, as well as
a visual check for unreported alternate solutions, and that the results not be
uncritically adopted.
II. Computational Procedures used in FPFIT
For each earthquake, EJ , FPFIT compares the observed polarity at the k
station with that calculated for a suite of source models [M1 ]. A one-
norm misfit function, F 1 '^, is defined as
(1)I
k
lik i k 1 i k i k pj»* p ' »* u J> u * i|K o " K t ' ' w o wt J
Ik
i k i Ic W . W
Ik i k where P J> , p. ' are terms representing, respectively, the
observed and theoretical first-motion polarity (0.5 for compression, -0.5 fori k dilatation). The term WQJ »* is the observation weight that must be
estimated and assigned to the data. The term
W. A(i.k)] 1 ' 2
is the square root of the normalized theoretical P-wave radiation amplitude,
A(i,k), expected at the k station for source model M1 . This weighting
scheme down-weights observations near nodal planes, thereby minimizing the
effect of inconsistancies near nodal planes, such as those caused by unmodelea. . i
refractions. The misfit function, F 1 "3 , is calculated for each source model
in the suite, and the model that minimizes F is adopted as the fault-plane
solution. An exceptional case occurs when more than one solution have
identical values of F 1 "3 . This case may occur because, particularly in the
case of models perfectly fitting the data, the misfit function may be
flat-bottomed. To break the tie in such cases FPRT applies the additional
constraint that the denominator in Equation (1) bi> maximized. The effect of
this constraint is to maximize the distance on the focal sphere between the
observations and the nodal planes.
In computation each source model is represented by the strike, dip and
rake of one of its nodal planes. Specification of one plane and the
associated rake angle is, of course, sufficient tb represent both the fault
plane and the auxilliary plane. No special importance is attached to the
particular plane used to represent each model, and representation of the final
solution is consequently in terms of one plane and its rake. In the companion
plotting programs FPPLOT and FPPAGE, both planes (and "P" and "T" axes) are
calculated and displayed for each solution.
The procedure by which the suite of source models [M1 ] is tested is a
two-stage three-dimensional grid search*. The first (coarse) stage uses 20*
increments in each of the three parameters (strike, dip, and rake). All
possible gridded values of rake and dip are included in the course search.
However, only half the range of possible values of strike (from 0 to 160
degrees) is searched to avoid computing M1 for both the fault plane and its
associated auxilliary plane. The course search identifies the solution
corresponding to the minimum misfit, F . and, when they exist, multiple
solutions corresponding to significant relative minima in misfit. The
relative minima are detected in the course search up to a level of misfit F <_
F . + DFITC, where DFITC is an input parameter. Each of these solutions is
then taken as the center of a second stage (fine) 3-dimensional grid search.
The fine search uses grid point spacing of 5* for strike and dip, and 10* for
rake. Parameter ranges in the fine search are, relative to the central value,
+_ 45* in strike and dip, +_ 30° in rake. It is in the fine grid search that
the final solutions are identified, and estimates of solution parameter
uncertainty are calculated. When multiple solutions are identified for an
event, the solutions are distinguished by an asterisk in the output files.
* In the following discussion we assume that the default values of the search
parameters are used. The default values ensure that all regions in solution
space are searched. When a restricted search (that is, one in which only a
subset of the possible solutions is considered) is desired, the search
parameters may be explicitly set in the input control file.
III. Estimation of Parameter Uncertainty and So ution Quality
It is possible to determine formal confidenc^ intervals for the parameters
of fault-plane solutions obtained with a grid-seirch procedure. The misfit
measure (Equation 1) is a sum of terms that take Ion discrete values, most of
which are zero. Accordingly, the variance in F, and the associated 90-percent
one-sided confidence interval for F, are estimated from the data using the
method descrioed in Appendix A. Having obtained the confidence interval for
F, we determine the range of each solution parameter, relative to the
minimum-misfit value, within which the solution Misfit is bounded by the
confidence interval for F. These ranges are taken as the uncertainties for
the solution parameters.
For each fault-plane solution, FPFIT calculates the uncertainties
described above and several other quantitites de
quality of the final solution. These quantities
igned to characterize the
are reported, together with
the fault-plane solution, in the program's output. They are:
i1. F. = minimum [F. _ ], or a relative minimum of F. .. Note F. = 0.0
J ' »J '»J Jrepresents a perfect fit to the data, while F. = 1.0 represents a
jperfect misfit.
2. NOBS = number of observations used in the solution.
NOBS3. AVWT =
NOBS
AVWT is the mean data weight used in
thethe solution; it is an overall measure of
the solution. AVWT ranges from 0.0 to 30.0,
quality of the data usea in
with larger values reflecting
solutions computed from higher quality data.
NOBSy / J»k i»k \
I \ \j L> /
4. STDR = _________ . STDR is the station distribution ratio.NOBS . .
E W J> wo
k=l
(0.0 <_ STDR <_ 1.0). This quantity is sensitive to the distribution of the
data on the focal sphere, relative to the radiation pattern. When this
ratio has a low value (say, STDR < 0.5), then a relatively large number of
the data lie near nodal planes in the solution. Such a solution is less
robust than one for which STDR > 0.5, and, consequently, should be
scrutinized closely and possibly rejected.
5. ASTR, ADIP, ARAK. These quantities are ranges (in degrees) of
perturbations to the strike, dip and rake, respectively, of the final
solution, that result in a misfit score bounded by the 90-percent
confidence interval for F. ASTR, ADIP and ARAK are taken as the
uncertainties in the solution parameters. When the distribution of the
data on the focal sphere do not tightly constrain one or more parameters
of the solution, the corresponding uncertainties are large; when the
distribution of the data tightly constrain the solution these quantities
are small.
FPFIT summarizes the quality of the adopted fault-plane solution with two
letter codes, each of which may be "A", "B" or "C". The first letter code,
QF, summarizes the value of F.. The second quality code, QP, summarizes thej
three parameter uncertainties ASTR, ADIP, and ARAK, as follows:
F < 0.025
0.025 < F £ 0.1
F > 0.1
ASTR and ADIP and ARAK
< 20'20" to 40"
> 40"
A
B
C
QP
A
B
C
IV. Restricted Search Mode
FPFIT may be run in either of two modes. Iri the "unrestricted search"
mode, all possible gridded solutions are testedj This mode is the usual mode
of operation for FPFIT and is the one described
the user chooses to search only a subset of the
in Section II. However, if
possible fault plane
solutions, the "restricted search" mode may be used. In this mode the userimay limit the ranges of strike, dip and rake from which test solutions are
drawn in the search procedure. For example, th£ user may specify that only
thrust solutions (rake = 90 degrees), or only vertical dextral strike-slip
solutions (dip = 90 degrees and rake = 180 degrees) be considered. FPFIT will
search for solutions only within the specified parameter ranges.
If the restricted search mode is used, two points should be kept in mind.
First, the resulting solution may not be a true minimum-misfit
(zero-derivative) solution, as the adopted solution may lie at the edge of one
of the restricted parameter ranges. Second, th 2 estimates of uncertainty for
the solution parameters (ASTR, ADIP, ARAK, QF and QP are invalid, owing to the
inability of FPFIT to perform its uncertainty analysis without a full range of
solutions neighboring the adopted solution. Hence, the restricted search mode
should only be used in special studies in which a "forced" solution is desired
and estimates of solution uncertainty are not needed.
The unrestricted search mode is invoked by including in the input control
file only lines 1, 2 and 3, and (optionally) station status lines, as in
Appendix examples B.I,a and B.l.b (see also Section V.B).
The restricted search mode is invoked by including in the input control
file an additional line specifying the ranges of the restricted search, as in
Appendix examples B.l.c and B.l.d.
V. Input Files
A. Data File: FPFIT reads the print output file from program HYP071
(Lee and Lahr, 1975). This file contains the hypocenter summary
card, followed by (for each P-wave observation) the
station-to-epicenter distance and azimuth, P-remark, angle of
incidence, and flag denoting phase data discarded due to Jeffrey's
weighting.
B. Control File (see appendix B.I): This file sets parameter values to
tailor the computation to suit the particular requirements of the
data set. At least three lines are required:
Line 1 - DISTMX, FMAGMN, MINOBS, IPRNT, IJEFF, NEV, DFITC (free
format)
Name Explanation
DISTMX Maximum epicentral distance in km. Phase data from
stations at epicentral distances greater than DISTMX are
ignored.
10
I FMAGMN Minimum magnitude. Fault-plane solutions are not computed
for events with magnitudes smaller than FMAGMN.
MINOBS Minimum number of observations. Fault plane solutions
are not computed for events f<j>r which NOBS < MINOBS.
IPRNT Print output control. If IPRNT = 1, FPFIT generates a
listing of the misfit function for each test solution in
the fine search. Normally, I^RNT = 0.
IJEFF Jeffrey's weighting control. When I JEFF = 1, inversion
includes phase data discarded!by Jeffrey's weighting in
HYP071. When IJEFF = 0, phas|» data discarded by
Jeffrey's-weighting are omitttd
NEV Maximum number of events for ^hich fault plane solutions
will be calculated. Solution^ are calculated sequentiallyi
from the input file until NEV events have been processed.
DFITC Depth of search for relative minima in misfit. Relative
minima with F < F . + DFITC are considered. We mm
recommend the value DFITC=0.05 be used for most
applications.
Line 2 - ERATE(l), ERATE(2), ERATE(3), ERATE(4) (free format)
Name Explanation
ERATE Estimated weighted error (discrepancy) rates for classes of
hand-picked data. ERATE(J+1) corresponds to assigned pick
quality J. Set ERATE(J+1) =
class J. For 0.0 < ERATE(J)
better-quality data. Use actual weighted error rates
reported in a previous run of FPFIT on same data for best
estimates of ERATE.
1.0 to exclude all data from
< 0.5 lower values reflect
11
Line 3 - ERATE(5), ERATE(6), ERATE(7), ERATE(8) (free format)
Name Explanation
ERATE Same as Line 2, except for classes of machine-picked (e.g.,
RTP) data, which are denoted by an 'X 1 in the first
position of the P-remark field, as in XPUO. ERATE(J+5)
corresponds to assigned pick quality J for machine-picked
data.
Line 4, 5,..., N - STATUS, STATN (al, Ix, a4) (Optional)
These lines are included if data from some stations are to
be omitted from the inversion, or if first motion
directions from some stations are to be reversed.
Name Explanation
STATUS If STATUS = 'R 1 , FPFIT reverses first motion direction for
all phase data from station 'STATN 1 . If STATUS - 'K 1 ,
FPFIT ignores all phase data from station 'STATN 1 .
STATN Station name
Line N+l - Blank (Included only if next line is present)
Line N+2 - PHIOC, PHI1, DELOC, DELI, XLAMOC, XLAM1, DPHIC, DELC,
DLAMC, DPHIF, DDELF, DLAMF (free format) (Optional)
This line is included if a restricted search range or non-default
values of the grid spacing are desired; if this line is omitted, the
default search range values are used, as described in section IV.
12
Strike is measured clockwise from northfc dip is measured down from
horizontal; rake of 0 = left lateral, 90 = reverse, ^180 = right
lateral, -90 = normal.
Name Explanation
PHIOC Minimum value of coarse search strike range, in degrees
(0 £ PHIOC £ 180)
PHI1 Maximum value of coarse search strike range, in degrees
(0 £ PHI 1 £ 180)
DELOC Minimum value of coarse search dip range, in degrees
(0 £ DELOC £ 90)
DELI Maximum value of coarse search dip range, in degrees
(0 £ DELI £ 90) i
XLAMOC Minimum value of coarse search rake range, in degrees
(-180 £ XLAMOC £ 180)
XLAM1 Maximum value of coarse search rake range, in degrees
(-180 £ XLAM1 £ 180)i
DPHIC Strike increment, in degrees, for coarse search (0 < DPHIC)
DDELC Dip increment, in degrees, fdr coarse search (0 < DDELC)
DLAMC Rake increment, in degrees, for coarse search (0 < DLAMC)
DPHIF Strike increment, in degrees, for fine search (0 < DPHIF)
DDELF Dip increment, in degrees, for fine search (0 < DDELF)
DLAMF Rake increment, in degrees, -tfor fine search (0 < DLAMF)
VI. Output Files
A. Extended hypocenter summary card file (see Appendix B.2). For each
earthquake satisfying the input criteria FMAGMN and MINOBS, FPFIT
13
calculates a fault-plane solution and writes to this file an
'extended 1 summary card consisting of the original HYP071 summary
card concatenated with the fault-plane solution parameters. The
format of the extended summary card is as follows:
Column
1-80
82-84
86-87
88-91
94-97
100-101
103-107
109-112
114-117
120-121
123-124
126-127
129
131
132
Explanation
HYP071 summary card.
Dip direction (downdip azimuth in degrees, clockwise
from north).
Dip angle in degrees down from horizontal.
Rake in degrees: 0=1 eft lateral, 90=reverse,
^180=right lateral, -90=normal.
FJNOBS
AVwT
STDR
Ratio of number of machine-picked phases to total
number of phases used in solution.
ASTR
ADIP
ARAK
Solution quality code QF
Solution quality code QP
Flag, normally blank. '*' indicates that solution is
one of a set of multiple solutions found for this
event.
I 14
Ray file (see Appendix B.3): This file is used as input to thei
plotting programs FPPLOT and FPPAGE. the first line in this file is
the HYP071 heading card. Following itjis, for each solution: 1) the
extended hypocenter summary card; 2) ^he number of additional
fault-plane solutions in the suite of solutions corresponding to the
90-percent confidence interval for F.; 3) the dip direction, dipj
angle and rake of each solution in the 90-percent confidence suite
(Format 11(14,13,14)); 4) the phase data used in the fault-plane
determination and the normalized weights assigned to them.
The format of the phase cards is as follows:
Column Explanation
2- 5 Station name.
7-11 Epicentral distance, in km.
13-17 Azimuth angle from epicenter to station (from north,
in degrees).
19-23 Angle of incidence.
27-30 P-remark (eg., IPU2, XPt)0, etc.)
32-35 Normalized observation weight w\ used in inversion.3 o
38 Discrepancy flag. If this field contains a '*', the
observed polarity was Discrepant with the adopted
fault-plane solution. If the field is blank,
observation was concordant.
15
C. Statistical summary file (see Appendix B.4): This file lists the
options specified in the control file and used in the calculation,
followed by an alphabetized summary listing of all stations used in
the computation of all focal mechanisms. For each station, the
summary reports the number of first motion polarity discrepancies,
the number of agreements, the total number of observations, the
weighted discrepancy rate (as in the numerator of Equation 1), and
the fractional contribution from that station to the accumulated
weighted error (misfit) from all stations for the suite of
earthquakes processed. This last statistic is a measure of the
effect of a station's discrepancy rate upon the entire inversion.
Following the station list are similar reports of the
discrepancy rates for the hand-picked and machine-picked data,
calculated separately for each data quality class (0, 1, 2, 3). The
reported weighted error rate for each data class should be used as
the input value for ERATE in a subsequent run of FPFIT with the same
data. A double asterisk ('**') next to a reported weighted error
rate indicates that this value differs from the corresponding
(estimated) input value by more than 20 percent.
Next is a report of the distribution of the calculated
fault-plane solution parameters F., ADIP, ASTR, and ARAK. Thesej
distributions provide a measure of the variance in the fault-plane
set, and highlight the presence of solutions with unusually large
uncertainties.
D. Fit file (see Appendix B.5): This file is optionally generated (when
16
I IPRNT = 1). For each solution the extended summary card is followed
by a listing of the 3-dimensional fit parameter matrix. This matrix
contains the misfit scores F. . (multiplied by 1000) for the sourcei f<3
models calculated in the fine grid search, and is organized according
to strike, dip and rake. The misfit scpre for the adopted solution
is annotated with an "A"; the "additional solutions", corresponding
to the 90-percent confidence interval fpr F, are annotated by an "*".
Examination of this matrix shows the bepavior of F. . for solutions"i »J
near the adopted solution and provides some insight as to whether the
adopted solution is well-constrained. This listing file consists of
3 printer pages per fault-plane solution for the default grid search
range.
VII. FPFIT Installation Considerations
A. The dimension of all arrays are variable, and are set through
assignments in the PARAMETER statement at the beginning of the maini
program. Thus, the array dimensions ca[n be easily modified by
changing the variable assignments in the PARAMETER statement and
recompiling.
B. All I/O statements refer to variable na|mes for logical unit numbers.
These variables are also set through assignment in the PARAMETER
statement. In this way, the program ce.n be tailored to use any
convenient logical unit numbers by charging the assignments in the
PARAMETER statement and recompiling.
C. This program was developed on a DEC VA> 11/780 computer with a VMS
operating system. The FORTRAN compiler has an extension to the
FORTRAN 77 standard which permits character strings following an
17
exclamation point (!) anywhere on a line to be interpreted as a
comment. FPFIT takes advantage of this extension to describe the
function of each variable in the code on the same line as the
variable declaration. These embedded comments may need to be removed
for other compilers.
D. The OPEN statement for logical unit SUNIT in the main program
contains the non-standard argument 'CARRIAGECONTROL=L1ST 1 . Under VMS
this changes the attributes of the file such that the printer does
not interpret the first column of each line as a print control
character. Similarly, all WRITE statements to logical unit SUNIT do
not have carriage control characters in the first column. The OPEN
statement for logical units IUNIT and CUNIT contain the non-standard
argument "READONLY". Under VMS this permits the program to open
files for which the user does not have "Write Status". This argument
may have to be removed for use with other operating systems.
VIII. FPPLOT Overview
FPPLOT is an interactive plotting program for displaying fault plane
solutions calculated by FPFIT. FPPLOT produces one frame of graphic output
for each solution found by FPFIT. The input file for FPPLOT is the "RAY"
output file produced by FPFIT (see section VLB). What follows is a brief
description of the graphic output from FPPLOT. Refer to any of the examples
in Appendix B.6, all of which were produced with FPPLOT.
The top line is an image of the "Heading Card" optionally included in the
HYP071 input file used to locate the earthquake. It is reproduced here to
provide a convenient label that associates the fault-plane solution with the
18
hypocenter location model.i
Below the heading card is the extended summary card, on two lines, as
described in Section VI.A.
The 5.75-inch-diameter circle below the extended summary card is a
lower-hemisphere equal-area projection of the adapted fault-plane solution and
first-motion data. Compressional rays are represented by circle symbols,
dilational rays by triangle symbols. Upgoing (direct) rays are indicated by
bold-face symbols, downgoing (refracted) rays by light-lined symbols. The
size of the symbol is proportional to the observational weight W associated
with the ray. The ray symbols are centered on the points of the projection to
which they correspond. The bold-face symbols "P" and "T" are centered on the
points corresponding to the "pressure-axis" and j"tension-axis", respectively,
for the adopted solution.
To the right of the 5.75-inch-diameter circle is a table listing the
observations that are discrepant with the adopted fault-plane solution. The
table includes, from left to right for each discrepant observation, the
station name, epicentral distance, azimuth in degrees from north, angle of
incidence in degrees, and the P-remark. If no observations are discrepant,
this table is omitted.
The 2.5-inch-diameter circle in the lower right corner of the page is a
lower-hemisphere equal-area projection showing the position of the P-axis ana
T-axis corresponding to the adopted fault-plane solution (bold-face "P" and
"T" symbols, respectively). A set of additional pairs of P- and T-axes are
plotted (light lines), corresponding to a set of solutions with misfit scores
within the 90-percent confidence interval for F. The resulting distribution
of P- and T-axes represents the range of orientations of P and T consistent
19
with the data, allowing for uncertainty.
IX. FPPLOT and FPPAGE Installation Considerations
In addition to the installation considerations for FPFIT (see section VI), the
following apply:
A. VMS requires that character variables be passed to plot calls by
"reference". Therefore, character variables in subroutine argument
lists are themselves arguments of the VMS system function %REF.
This function may be omitted for use with other operating systems.
B. The subroutine DELAY calls VMS system routines to achieve a half
second delay following the clearing of the plot screen for Tektronix
plotting terminals. Installation of PLOTFM on other operating
systems will require the corresponding system calls.
C. All calls to graphics rountines conform to standard Versatec or
Calcomp software.
X. FPPAGE Overview
FPPAGE is an interactive plotting program for displaying on a single page
up to 42 fault plane solutions calculated by FPFIT. The input file for FPPAGE
is the "RAY" output file produced by FPFIT (see section VLB). Refer to the
example in Appendix B.7.
Each fault plane solution is represented by a lower-hemisphere equal-area
projection. Above each projection is plotted a header consisting, according
to the user request, of either the sequential number of the earthquake in the
"RAY" file, or the origin time of the earthquake. The header is annotated
20
with an asterisk (*) to indicate multiple solutions. Compressions! rays are
depicted as solid circles; dilational rays as opein circles. Plotting of the
first motion symbols may be suppressed by the user. Finally the P- and T-axes
of the solution are plotted. If first-motion plotting is suppressed, only the
T-axis is plotted.
XI. References
Aki, K., and P. G. Richards, 1980, Quantitative Seismology, Theory and Methods,
Vol. 1, W. H. Freeman and Co., San Francisco, California.
Lee, W. H. K., and 0. C. Lahr, 1975, HYP071 (Revised): A computer program for
determining hypocenter, magnitude, and first motion pattern of locali
earthquakes, U.S. Geol. Surv. Open File Rep.^ 75-311, 114 pp.
21
ACKNOWLEDGEMENTS
Some of the computer routines used in FPFIT, FPPAGE an'd FPPLOT were
written by our colleagues at the U.S.G.S. in Menlo Park. John Lahr and Fred
Klein kindly provided some of the graphics routines; Bruce Julian provided the
moment tensor computation routines and showed us how to increase the
computational speed of FPFIT with their use. Mark Mathews, at Stanford
University, assisted us with the error analysis used in determining the
uncertainties in the solution parameters. Donna Eberhart-Phillips assisted in
the development of an early unpublished version of FPFIT.
We have had encouraging and stimulating discussions with many colleagues
that were helpful in shaping these programs. We especially appreciate the
comments of Jerry Eaton, Bruce Julian, John Lahr, Al Lindh, and Chris
Stephens. We thank Bruce Julian and John Lahr for their reviews of the
manuscript.
22
APPENDIX A
We wish to know the variance of F in Equation (1) solely from a priori
knowledge of the variance of the data. To do thjis we take advantage of the
fact that the data are provided with assigned "quality codes" (0, 1, etc.)
that we assume correspond to uniform variances for each data class. This
allows us to treat F as a sum of binomial processes. For one earthquake, let
n * the number of observations
N = the number of data classes represented by the observations
n. * the number of observations in data class j. j
n = £ n.
Now let
p, & the error (discrepancy) probability for the k'th observation
r. s the error (discrepancy) rate for class j. j
k k We may simplify Equation (1) by combining the weighting terms W and W. intoL/ V
a single term
Wk Wo ' Wt
and expressing the misfit term
where
1, when the k'th observation is. 0, otherwise.
a misfit;
23 Then
The appropriate weighting terms in (A.I) are
°k vPfcd-Pfc)
Equation (A.I) can be rewritten in terms of the observations and weights in
each data class as
V? (** -WjJ JkN i
V* V w -H fa Jkj=l k=l
N ~ <ri LJ Wj 2.J Ji/i-l J ^-1J J. N J.
^
where W. sJ °j
Finally,
(A.2)
24
where
n.
mk
is the number of discrepancies in data class j. Equation (A.2) is an
expression for F in terms of the number of discrepancies in each data class
and the (uniform) weights assigned to observations in each data class.
The variance of F is easily obtained from (A.2):
,Nt
Var(F)£ (var(m.).W. 2 ) j=l X J J '
r.2
Var(m.) =
Var(F)
N
fi (A.3)
J=lN.s ~ 2
Finally, the standard deviation of F
O F = v/Var(F)
is calculated. The 90-percent one-sided confidence interval for F is
estimated from c p by assuming that F is normally distributed.
To implement this estimation procedure we mu|st start with some estimates
of the terms [r.], recalling that these discrepancy rates include j
contributions from both data errors and modelinc errors. While we may have
some idea of the contribution to [r.] from data (reading) errors, we cannot
25
know the contribution from modeling (refraction) errors until after the
inversion is done. Therefore the first run of FPFIT requires an educated
guess for the [r.]. Upon completion of the inversion for a suite of j
earthquakes, FPFIT reports the actual accumulated data-class error rates
[r.] for the entire suite. These rates ("WEIGHTED ERROR RATE") should be j
used as initial estimates in the subsequent run of FPFIT. Such an iterative
use of FPFIT provides a "bootstrap" ability to estimate formal error
confidence limits from the data.
26
APPENDIX B
B.I
B.2
B.3
B.4
B.5
B.6
B.7
Examples of CONTROL FILES for processing a set of fault-plane
solutions. t
Example of EXTENDED SUMMARY CARD FILE.
A portion of the RAY FILE corresponding
STATISTICAL SUMMARY FILE resulting from
to one selected earthquake,
a run of FPFIT on a suite of
40 earthquakes.
A portion of the FIT FILE corresponding to one selected earthquake.
Graphic output from program FPPLOT for Selected earthquakes.
Graphic output from program FPPAGE.
27
B.I Examples of CONTROL FILEs for FPFIT.
a) Control file corresponding to the statistical summary file shown
in B.4.
b) Control file that excludes all machine-picked data.
c) Control file that allows only vertical right-lateral slip fault
planes.
d) Control file that allows only pure thrust solutions.
t)999. 0.0 15
0 0 999 0.05
0.04 0.06 0.10 0.12
0.15 1.00 1.00 1.00
R FR
IR
JAS
R KPK
R MGL
R MIN
R MINB
R ORV
R FR
IR
JAS
R KPK
R MGL
R MIN
R ORV
K ABC
K DEF
K GH1
C)
999. 0.0 15
0 0 99 0.05
0.07 0.09 0.10 0.13
1.00 1.00 1.00 1.00
0. 160. 90.
90.
180.
18
0. 20.
20.
20.
5. 5.
10,
b)
999. 0.0 15
0 0 99 0.05
0.07 0.09 0.10 0.13
1 .00
1 .00
1 .00
1.00
d)
999. 0.0 15
0 0 99 0.05
0.07 0.09 0.10 0.13
1.00 1.00 1.00 1.00
0. 16
0.
10.
90.
90.
90.
20.
20.
20.
5. 5. 10
.ro CO
B.2
EX
TEN
DED
SU
MM
ARY
CARD
F
ILE
841211
759 14.60 38-49.07 122-49.71
IB4I22S 1218 36.29 38-49.43 122-47. 05
C850910
647 26.13 38-49.03 122-49.44
C841123 17
6
19.33 38-48.65 122-48.66
t850907 1052
5.47 38-4B.9B 122-48.81
t850306 1411 50.10 38-47.55 122-46.61
I850504 1622 16.78 38-51.41 122-51.25
t850728 2010 31.85 38-47.08 122-46.02
t850808 19 7
5.89 3B-47.S3 122-46. 3B
t850925
437 30.48 3B-46.B2 122-45.97
t851006 1030 22.32 38-49.35 122-46.48
1850509
314 18.95 3B-49.43 122-48.05
I840404 19
0 34.59 38-48.66 122-48.01
I841220
154
50.27 38-49.27 122-49.47
I850529
010 37.58 38-48. 0B 122-4B.70
850729 2157 12.27 38-47.90 122-46.93
850708 1856 46.64 38-48.02 122-46. B2
850415 2150 27.52 38-48.04 122-48.81
8S041S 2150 27.52 38-4B.04 122-48.81
841222 1537 43.29 38-47.65 122-46.17
840617
624 51.41 38-47.25 122-46.34
850914 13
3
26.97 38-48.73 122-47.44
850727 1059 16.89 38-48. Bl
I22-4B.52
850831 1611
7.6B 38-48.69 122-48.12
841103 1733
3.16 38-47.44 122-46.41
841221 1128 55.00 38-48.65 122-47.43
B50905 2043 38.09 38-4B.78 122-49.14
841222
9 0 41.52 38-49.65 122-49.13
BS0403
839 35.64 38-47.79 122-46.71
850907 2226
5.80 38-47.26 122-46.55
850907 2226
5 . B0 38-47.26 122-46.55
850828
112
10.05 38-48.40 122-47.56
840410
4 2
2.49 38-48.52 122-47.63
850810 1934 16.86 3B-49.53 122-47. Bl
850810 1934 16.86 38-49.53 122-47.81
850829 IS
4
9.01 38-47.02 122-46.15
841208
440 48.59 38-48.23 122-47.10
850418
610 25.03 3B-49.S9 122-48.39
B4I222 1633 41.77 3B-47.41 122-46.46
850731
350 43.96 38-4B.3S 122-50.39
850615
037 32.10 38-49.42 122-48.42
841213 1410 13.86 38-48.98 122-48.66
850719 1549 14.24 38-49.52 122-46.92
B50SI1 1428 IB
. 14
38-48.05 122-47. BB
850606 1012 17.71 38-48.03 122-47.02
850706
357 33.00 3B-49.40 122-49.02
850601 1750 11.19 38-49.09 122-49.17
850216 2144 15.48 38-46.97 122-45.64
B50410 16
7
39.14 38-47.19 122-45.53
841220
155 22.60 38-49.23 122-49.17
B50405
934 23. BS 3B-48.13 122-48.37
B504I2 2041 34.62 38-48.20 122-48.29
850603 2049 27.66 38-49.11 122-48.69
850531
613 39.22 38-48.06 122-4B.69
B50909 1319
6.34 38-49.23 122-49.35
B50909 1319
6.34 38-49.23 122-49.35
850419 1B38 17.68 3B-49.26 122-4B.67
r.i2
r.16
r.28
r.64
r.67
r.68
r.75
r.B4
r.87
r.9i
r.95
r.96
r.97
r.99
.02
.03
.06
.06
.06
. 12
.18
.21
.22
.28
.33
.34
.34
.34
.36
.37
.37
.37
.38
.38
.38
.42
.43
.47
.52
.53
.54
.55
.55
.57
.59
.61
.61
.61
.65
.71
.72
.73
.73
.76
.78
.78
.80
1.77 2B
1 .39
211 .2
7 18
2.02 30
1.45 25
1 .8
9 17
1.41
19
1.57 23
1 .77
242.04 27
1 .74
25
1.75 24
2.04 20
1.72 22
1 .80 24
1.67 24
1.48 23
1.85 27
1 .BS
271 .3
4 18
1.52 19
1 .39
2323
1.76 27
2.22 17
1 .9
6 27
1.34 19
1.40 21
2.65 21
1 .4
4 22
1 .44
22
1 .43
20
2.95 25
1 .20 20
1 .20 20
1 .74
172.46 20
1.56 24
2.71 27
1 .3
2 22
1.4B 19
l.SS 18
2.40 22
2.35 20
1.35 19
1.85 22
1.94 20
2.19 29
1 .70
172.47 28
2.15 30
2.17 23
1 .77
24
2.11 30
1.51 20
1.51
20
2.00 22
3840
4533
34 52
60
38 4B
37 4540
39 46 46
31 35 35 35 43 37 40
44 38 54 39
44 4632
38 38 38 38 4040
3B 44 41 46 45 46 72 41 36 56 45 83 47
112 33
63 40
42 32 45 45 44
2.0 0.07
3.0 0.1B
2.0 0.17
2.0 0.09
2.0 0. 18
8.0 0.09
2.0 0.09
2.0 0.07
2.0 0.08
2.0 0.07
2.0 0.07
1.0 0 . 06
3.0 0.
19
2.0 0.07
1.0 0.07
1.0 0.
10
2.0 0.08
2.0 0.08
2.0 0.04
2.0 0.04
1.0 0.07
1.0 0.08
1 .0
0.07
2.0 0.04
0.0 0.
14
2.0 0.07
2 .
0,09
2.
0.03
2.
0.04
2.
0.04
0.
0.08
0.
0.05
1.
0.08
1 .0
0.08
2.0 0.04
1.0 0.05
1.0
.05
2.0
.09
4.0
.07
2.0
.05
2.0
.07
2.0
.04
1.0 0.05
1 .0
0.04
2.0 0.04
3.0 0.04
2.0 0.07
2.0 0.05
3.0 0.09
1 .0
0.06
1.0 0.05
2.0 0.08
2.0 0.06
3.0 0.09
3.0 0.09
2.0 0.06
0.2
0.5
0.4
0.2
0.5
0.3
0.2
0.2
0.2
0.2
0.2
0.2
0.5
0.2
0.1
0.2
0.2
0.2
0.1
0.1
0.2
0.2
0.2
0.1
0.3
0.2
0.2
0. 1
0.1
0.1
0.2
0.1
0.2
0.2 .1 .1 .1 .2 .2
0. 1
0.2
0.1
0.1
0.1
0.1
0.1
0.2
0.2
0.2
0. 1
0. 1
0.2
0.1
0.3
0.3
0.2
0.3 A
0.B B
0.6 B
0.3 A
0.6 B
0.4 B
0.2 A
0.2 A
0.2 A
0.2 A
0.2 A
0.1 A
0.6 B
0.2 A
0.2 A
0.2 A
0.2 A
0.2 A
0.1 A
0.1 A
0.2 A
0.2 A
0.2 A
0.1 A
0.3 A
0.3 A
0.3 A
0.1 A
0. 1
A
0.1 A
0.2 A
0.1 A
0.2 A
0.2 A
0.1 A
0.1 A
0.1 A
0.S A
0.5 A
0.3 A
0.4 A
0.2 A
0.3 A
0.2 A
0.3 A
0.3 A
0.3 A
0.3 B
0.5 A
0.2 A
0.2 A
0.4 A
0.3 A
0.6 A
0.6 A
0.3 A
60 60 170
315 B5
40
145 B0
30
145 90
30
215 35 100
200 40
B0
130 45 -70
165 35
20
155 80
10325 80
01B0 80 -40
115 75 -30
70 80 160
95 55-130
230 85 170
190 70 -30
145
90 -30
60 70-150
80 50-120
320 75
30
140 65 -30
90 50-100
205 85 170
80 70-120
220 75 170
215 65 150
240 45
90
145
85 -30
235 B0 170
200 75 -20
190 55 -30
220 80 160
75 85-140
140 35-150
110 65-130
220 70 150
350 85
10
1100 50-140
1245 70-1B0
1160 55-100
330 70 -10
105 35-140
255 80 160
35 80
10235 75 170
100 60-100
170 70-100
1240 75
160
1170 B5 -50
1BS 65-120
1330 B5
40
160 80-130
1160 30 -30
1130 80
10
1145
90
80
180 10-150
I95 75 -90
(
.02
.09
.03
.02
.05
.05
.06
.00
.04
.08
.01
.04
.09
.05
.00
.02
.00
.01
.04
.04
.09
. 10
.04
.08
.02
.08
.02
.04
.00
.05
.06
.00
.02
.09
.12
.04
V.00
».00
V.02
.01
.00
.03
.00
.00
.00
V.05
If. 07
7.00
7.03
7.08
7.05
I. 05
7.05
7.00
7.07
7.08
7.05
21
I19
i
17
424
:
22
'17
i16
<
18
'19
t
22
t20
'23
'20
'19
t
18
tIB
<
16
'22
'22
<16
'
18
<18
<19
<
19
i17
i26
:17
'17
'22
'16
'
16
'17
'25
'16
-
16
-16
'
20
«17
-
31 18 16 18 23 20 17 19 17 24 16 34 28
23 19 22 16 16 20
1.24
0.65 0.19
1.15 0.51 0.16
1.48 0.61 0.00
1.99 0.67 0.33
1.61 0.50 0.00
1.79 0.48 0.00
I.3B 0.S7 0.00
1.30 0.63 0.00
1.59 0.63 0.00
I.S4
0.63 0.00
1.66
0.62 0.00
1.29 0.62 0.00
1.50 0.63
.00
1.03 0.S7
.16
1.56 0.64
.00
1.32 0.65
.00
1.55 0.63
.00
1.57 0.57 0.00
I.S7 0.*49 0.00
1.43 0.53 0. 13
1.14 0.61 0 . 00
1.76 0.4B 0.00
1.45 0.61 0.00
1.47 0.S8 0.00
I.B4 0.59 0.00
i.94
.59
0.31
1.58
.45
0.00
1.44
.62
0. 18
1.86
.64
0.00
1.66
.62
0.00
1.66
.55
0.00
1.74
.61
0.00
1.09 0.56 0.00
1.42 0.S0 0.00
1.42 0.60 0.00
1.38 0.55 0.00
i.01
0.61 0.00
1.57 0.56 0.00
3.93 0.62 0.00
«.S6 0.4S 0.00
l.SS 0.70 0.00
.48
0.S9 0.00
.51
0.78 0.00
.39
0.81 0.00
.36
0.70 0.00
.45
0.SS 0.00
.79
0.47 0.00
.33
0.64 0.00
.52
0.55 0.00
.09
0.56 0.29
.23
0.58 0.00
.63
0.55 0.00
.33 0.59 0.00
.62
0.81 0.00
.55 0.43 0.00
.55 0.45 0.00
.56 0.50 0.00
10 46 30 AIB
10 15 10 BIA
10 35 30 BIB
15 20 40 AIB
25
5 20 BIB
20
5 30 BIB
15 10 30 BIB
IS 30 30 AIB
10 25 30 BIB
10 40 30 BIB
20 50 30 AIB
10 20 20 BIA
S 30 40 BIB
25 15
30 BIB
10 30 10
AIB
15 25 40 AIB
10 20 40 AIB
10 15
20 AIA
10
5 10 BIA*
5 25 60 BIB
20 35 30 BIB
25 10 20 CIB
20 25 20 BIB
25 15 30 BIB
IS 30 20 AIB
IS 25 30 BIB
15
5 10 AIA
10 IS
20 BIA
10 25 10
AIB
10 30 30 BIB
10 20 10
BIA*
10 20 20 AIA
10 IS 20 AIA
25
5 20 BIB
15 20 10
CIA*
5 10 20 BIA
5 25 20 AIB
10 IB
30 AIB
10 35 20 AIB
10 15
10
AIA
10 45 40 AIB
IS 20 30 BIB
IS 50 30 AIB
15 55 40 AIB
[)>
10 45
20 AIB
15 35
10
BIB
45 10 20 BIB
5 35
30 AIB
10 10
20 BIA
15 10
20 BIA
15 20 40 818
10 10
20 BIA
25 25 20 818
15 45
50 AIB
15 20 20 BIA
15 30 10
BIB*
30 10 10
BIB
B.3
P
ort
ion
o
f th
e RA
Y F
ILE
fo
r on
e se
lect
ed
eart
hquake
.
8S0S09
314 18.96 38-49
9090 50 -70
96 56 -60
110 60 -40 100 66 -40
116 76 -40 120 76 -40
100 56 -30 10
5 66 -30
120 70 -30 10
5 76 -30
116 85 -30 120 86 -30
110 65 -20 116 66 -20
120 80 -20 126 80 -20
120 76 -10 116 80 -10
.43
122-48.05
0.96
1.76 24
40
2.0 0.07
0.2
0.2 A
116 76 -30
0.04
23
4.29 0.62 0.00
10 20 20 BIA
105 60 -60
105
65 -40
110 80 -40
105 60 -30
110 75 -30
125 85 -30
120 65 -20
116 86 -20
110 66 -50
110 65 -40
115 80 -40
110 60 -30
120 75 -30
110 90 -30
110 70 -20
120 86 -20
116 65 -50 110 70 -60 115
115
66 -40 106 70 -40 110
120 80 -40 126 80 -40 116
105 65 -30 110 65 -30 116
105 80 -30 110 80 -30 116
116 90 -30 120 90 -30 125
116 70 -20 120 70 -20 110
116 90 -20 120 90 -20 116
70 -50 120 70 -50 100 66 -40 100 60 -40 105 60 -40
70 -40 116 70 -40 120 70 -40 105 75 -40 110 75 -40
86 -40 120 86 -40 126 85 -40 120 90 -40 126 90 -40
66 -30 120 65 -30 105 70 -30 110 70 -30 115 70 -30
80 -30 120 80 -30 126 80 -30 105 86 -30 110 85 -30
90 -30 296 86
30 300 86
30 305 85
30 110 60 -20
75 -20 116 76 -20 120 76 -20 110 80 -20 116 80 -20
66 -10 110 70 -10 116 70 -10 120 70 -10 116 76 -10
CHH
COX
CCH
CSH
CCPV
CCL
ecu
CSC
GBG
CPH
CAM
CHK
CRT
CCV
NHH
ess
NH8
CMC
CHL
NHT
CMO
CHC
6DC
1.6
6.1.9
161.
4.4
1 17
.6.3
164.
7.6
Z10.
8.4
16.
9.2
127.
9.2
69.
10.6
96.
12.9
282.
13.2 162.
16.2
4.17.1
42.
19.6 252.
22.6 139.
22.9 23
4.27.7 200.
28.8 26
3.30.6 32
2.30.9
94.
32.3 24
7.33.9 36
7.38.6 261.
121.
117.
102. 99.
60.
60.
60.
60.
60.
60.
60.
60.
60.
60,
64.
64.
64.
64.
64.
64.
64.
64.
63.
1PD0 1.00
IP00 1.00
1P00
1.00
IP00
1.00
1PU0 1.00
IP00 1.00
IPU0 1.00
IPU0 1.
00IPU0 1.00
IPU0
1 .00
EPD2 0.66
1PD0
1.00
EPU2
.65
EPU2
.65
EPU2
.65
EPU2
.66
IPUI
.83
IPUI
.83
EP02
.66
IPUI
.83
EP02
.65
EPD2
.66
EPU2
.66
CO o
B.4
STA
TIS
TIC
AL
SUM
MAR
Y F
ILE
VELEST MODEL LCAR27 WITH REMAINING CALNET *'D
CONTROL FILE CEYS.INP;16
MAXIMUM EPICENTRAL DISTANCE -
999.MM
MINIMUM MAGNITUDE -
0.0000000E+00
MINIMUM * OI
1SI RVATION"
- 15
PARAMETER FIT FILE SUPPRESSED UPRNT
0)
PHASE DATA REJECTED BV JEFFREYS' WEIGHTING EXCLUDED <IJEFF »
0)
UPTO
999
EVENTS PROCESSED
MISFIT RANGE FOR RELATIVE MINIMA IN
COARSE SEARCH
6.0000001E-02
HAND-PICKED DATAi
QU
AL
ITY
W
EIG
HT
0
5.1
03
1 4
.21
12
3.3
33
3 3.0
77
MACHINE-PICKED DATAi QUALITY
WEIGHT
0
2.801
1 0.000
2 0.000
3 0.000
WEIGHTED ERROR RATE (EST.)
0.040
0.060
0.100
0.120
WEIGHTED ERROR RATE (EST.)
0.150
1.000
1.000
1.000
UNRESTRICTED
SEARCH RANGE i
STRIKEi
DIPi
RAKEi
-START
0.0
10.0
180.0
COARSE
END
160.0
90.0
160.0
SEARCH
INCRMNT
20.0
20.0
20.0
* INCRMNTS 9 6 18
FINE SEARCH
INCRMNT
* INCRMNTS
6.0
6.0
10.0
19 19 7
EVENT
EVENT
EVENT
EVENT
EVENT
EVENT
EVENT
EVENT
EVENT
EVENT
EVENT
860416
850907
850810
860909
841217
840616
841210
860130
850816
850701
860906
2160
2226
1934
1319
1334
1236 6 9
6 4
2047
1430
1324
27. 6. 16. 6.
68.
66. 0. 9.
23.
31.
19.
62 80
86 34 86 36 69 26 99 23 66
HAS
HAS
HAS
HAS
HAS
HAS
HAS
HAS
HAS
HAS
HAS
MULTIPLE
MULTIPLE
MULTIPLE
MULTIPLE
MULTIPLE
MULTIPLE
MULTIPLE
MULTIPLE
MULTIPLE
MULTIPLE
MULTIPLE
SOLUTIONS
SOLUTIONS
SOLUTIONS
SOLUTIONS
SOLUTIONS
SOLUTIONS
SOLUTIONS
SOLUTIONS
SOLUTIONS
SOLUTIONS
SOLUTIONS
CjJ
SUMMARY OF
STATION
CBW
CDU
GAR
GAS
GAX
GBG
GBM
GCH
GCR
GCS
GCV
GCW
GDC
GOX
GGL
GGP
GGPV
GGU
GHC
GHG
GHL
GHV
CMC
GMK
GHH
GMO
GNA
GPH
CRT
CSC
CSH
CSN
GSS
GVK
STATIONS HAVING POLARITIES IN DISCREPANCY WITH BEST FIT SOLUTION < DENOTES REVERSED STATION)
OISCRLPANCICS
AGRLCMENTS
TOTAL
WEIGHTED ERROR RATE
TOTAL ERROR CONTRIBUTION
JPR
NBP
NBR
NCF
NDH
NFR
NGV
NHB
NHH
NLH
NLN
NMH
NMT
NHW
NOL
NSH
NSP
NTB
NTM
NVA
NVE
NWR
I 0 I 0 5 S 0 4 5 0 6 0 3 7 2 I 9 0 2 6 6 0 2 7 7 5 0 6 5 7 2 2 IS 0 i 0 3 3 1 0 1 1
10
0 0 I 6 910 I
111 2 3 I I 3
0 3 3 I197
195 I
197
200 14
167 13
53
198
207 36
1B3
21 343778 II 75
156
185
171 1
201
161
196
20835
154 S 4 I 6 6 2 218 4
93 1 1 S
144
124
110 1
150 5 3 7 2
17
1 3 4 1202
200 I
201
205 14
173 13
56
205
20937
192
213643
84 II 77
163
192
176 I
207
166
203
21037
169 S S 9 9 3 219 S
103 1 1 6
149
133
120 2
161 6 S10 3
18
1 I
1 .000
0.00
00.131
0.000
0.015
0.010
0.000
0.005
0.005
0.000
0.016
0.000
0.025
0.013
0.00B
0.003
0.015
0.000
0.02?
0.120
0.055
0.000
0.015
0.024
0.02G
0.012
0.000
0.017
0.014
0.012
0.003
0.017
0.053
0.000
0.109
0.000
0.222
0.338
0.586
0.000
0.033
0.202
0.031
0.000
0.000
0.039
0.020
0.042
0.056
0.359
0.037
0.084
0.382
0.316
0.349
0.005
0.217
0.0001
0.0000
0.0001
0.0000
0.0008
0.0005
0.0000
0.0002
0.0003
0.0000
0.0006
0.0000
0.0003
0.0006
0.0004
0.0000
0.0007
0.0000
0.0002
0.0008
0.0009
0.0000
0.0003
0.0008
0.0012
0.0005
0.0000
0.0010
0.0005
0.0006
0.0001
0.0001
0.0018
0.0000
0.0001
0^0000-
0.0004
0.0004
0.0002
0.0000
0.0001
0.0002
0.0007
0.0000
0.0000
0 . 0000
0.0007
0.0011
0.0013
0.0001
0.0012
0.0001
0.0002
0.0006
0.0002
0.0000
0.0005
OJ ro
TOTAL
189
41 11
4300
SUMMARY OF HAND-PICKED DATA WITH RESPECT TO
BEST FIT SOLUTIONS
QUAL
DISCREPANCIES
AGREEMENTS
TOTAL
WEIGHTED ERROR RATE
0
64
2526
2590
0.0106
1 15
595
610
0.0144
2
70
602
70/
0.H69:)
3
21
170
191
0.0703
«
TOTAL
170
3973
4143
SUMMARY OF MACHINE-PICKED DATA WITH RESPECT TO BEST FIT SOLUTIONS
QUAL
DISCREPANCIES
AGREEMENTS
TOTAL
WEIGHTED ERROR RATE
0
19
138
157
0.0860
1 000
0.0
00
02
00
0
0.0
00
03
000
0.0
00
0
TOTAL
19
138
157
DISTRIBUTION OF SOLUTION MISFIT SCORES
MISFIT SCORE
*0.000 - 0.025
127
0.025 - 0.050
410.050 - 0.075
27
0.075 - 0.100
130.100 - 0.125
20.125 - 0.150
00.150 - 0.175
00.175 - 0.200
00.200 - 0.225
00.225 - 0.250
00.250 - 0.275
00.275 - 0.300
00.300 - 0.325
00.325 - 0.350
00.350 - 0.375
00.375 - 0.400
00.400 - 0.425
00.425 - 0.450
00.450 - 0.475
00.476 - 0.600
0
CO
CO
DISTRIBUTION Of SOLUTION DIP RANGES
kANi.r a. a
5.0
10.0
i'j.
020
. 0
25.8
30.0
35.0
40.0
45. 0
50.0
55.0
£0.0
65.0
70.0
75.0
80.0
85.0
90.0
DISTRIBUTION
RANGE
0.0
5.0
10.0
15.0
20.0
25.0
30.0
35.0
40.0
45.0
50.0
55.0
60.0
65.0
70,0
75.0
!!:!
90.0
DISTRIBUTION
RANGE
0.0
10.0
20.0
30.0
40.0
50.0
C0.0
* 0 922 3b 26 29 24 19 19 177 2 0 1 0 0 0 0 0
OF SOLUTION STRIKE RANGES
* 0 18 65
65
29 16 5 4 3 3 0 1 0 0 0 0 1 0
OF SOLUTION RAKE RANGES
* 032 68 79 23 6 2
210 EVENTS READ.
21f PROCESSED
to
B.5
P
ort
ion
of
the
FIT
FIL
E
for
one
sele
cte
d
ea
rth
qu
ake
.
700711 19
1 3.79 37- 8.29 122- 0.34
13.40
2.94 29
90
3.0 0.10
0.3
0.7 A
240 50-160
0.03
23
3.90 0.59 0.00
15 35 20 BIB
SLIP
STRIKE!
DIP 5 10 15 20
25 30
35 40
45 50
55 60
65 70
75 80
8590
95 SLIP
STRlKEi
DIP S 10 15 20
25 30
35 40
45 50
55 60
65 70
75808590
95
ANGLE
115
565
542
518
502
507
501
508
507
506
507
496
494
502
503
502
499
494
492
490
ANGLE
115
567
554
549
S38
541
532
537
S34
530
S28
512
507
513
511
508
504
494
489
485
-190
120
S58
527
488
456
433
436
436
422
418
421
421
431
432
433
440
435
424
421
420
" -181
120
564
540
515
483
456
457
453
436
429
428
424
431
431
431
436
430
420
417
415
125
554
515
456
405
358
349
337
348
343
330
330
334
342
345
347
354
351
357
357
125
557
525
484
433
384
374
361
368
361
344
342
343
344
344
344
350
347
353
352
130
543
498
425
356
314
282
269
261
256
257
257
256
267
265
256
246
241
236
247
130
550
510
454
379
333
299
284
273
263
263
262
261
271
269
260
250
247
243
247
135
524
474
396
318
283
240
211
200
192
185
182
184
179
184
192
192
187
181
187
135
547
S00
426
327
282
231
196
181
167
158
156
159
157
170
178
180
177
174
181
140
B10
458
369
288
236
199
168
142
117
105
123
130
134
145
151
176
185
181
186
140
537
485
397
293
228
183
145
112
80*
65*
84*
92"
97*
111
118
146
159
161
171
145
495
446
336
258
196
158
12895*
92*
102
104
118
137
144
149
151
151
159
163
14S
518
468
357
263
190
146
110
69"
65*
75*
78"
92*
112
121
127
132
135
146
154
150
476
426
310
240
164
146
134
130
131
130
129
127
124
128
131
139
143
142
139
150
S05
453
329
236
146
121
10393*
94«
95*
95*
95*
95«
108
112
123
130
132
132
15S
461
409
286
199
173
151
150
147
148
148
147
146
144
142
139
147
146
142
130
155
491
436
303
193
152
123
117
106
106
106
106
106
106
105
105
115
119
119
115
160
441
382
254
172
173
174
173
165
166
167
167
165
162
157
154
151
147
150
142
160
472
416
283
183
169
162
152
132
132
132
132
132
132
132
131
131
130
137
134
165
412
359
247
187
191
192
194
199
200
199
194
187
186
184
181
178
173
167
155
165
458
400
267
190
181
178
173
165
163
160
154
148
148
148
147
147
146
145
140
170
396
341
258
215
220
220
224
233
236
237
237
235
231
226
217
208
197
192
184
170
441
376
264
200
194
188
187
184
184
183
182
181
179
178
175
172
164
162
159
175
380
327
274
233
249
254
251
258
263
265
265
265
263
261
259
255
251
245
245
175
412
347
270
205
212
213
207
209
211
213
214
215
215
216
216
216
215
215
221
180
362
310
284
280
277
288
295
307
311
312
306
304
302
299
292
296
296
294
290
180
395
328
282
250
238
245
248
255
258
259
254
254
256
258
259
268
274
277
278
185
348
309
299
312
305
316
324
340
346
350
351
352
353
360
360
357
353
345
337
185
380
318
289
277
261
267
273
284
290
294
297
300
304
315
319
321
322
319
318
190
338
310
317
346
352
365
366
382
391
396
403
410
410
405
401
399
395
392
387
190
363
307
293
303
300
308
307
321
330
337
347
358
364
368
371
374
376
378
379
195
330
312
329
370
390
398
413
427
432
446
450
451
451
450
448
445
442
438
432
195
349
305
302
325
337
339
352
364
370
388
397
402
407
411
414
417
419
421
423
200
317
319
346
395
433
449
464
482
507
506
499
495
492
490
487
483
480
476
472
200
340
313
314
345
372
384
395
413
441
449
448
450
454
457
460
462
465
467
469
205
309
330
369
427
473
496
519
552
563
565
565
563
560
555
546
537
525
518
512
205
332
321
328
365
400
418
437
470
485
494
500
505
508
510
508
507
508
510
511
00 en
SLIP
STRIKE.
DIP 5 10 15 20
25 30
35
4550
5560
65 70 75 80
8590
95 SLIP
STRIKE i
DIP 5 10 IS 20 25 30
3540
4550
5560
65 70
75
80
8590
95
ANGLE
115
575
570
577
567
565
551
553
539
532
513
506
509
507
503
498
491
486
482
ANGLE
115
584
594
614
60S
594
571
557
545
532
521
500
492
494
493
490
488
490
488
485
- -170
130
566
553
546
518
488
488
479
450
446
438
443
441
438
442
435
426
417
412
-160
120
576
571
575
546
510
503
486
454
442
434
425
430
428
427
431
426
428
427
422
125
558
536
515
465
415
402
387
379
357
350
343
340
339
338
343
342
349
347
125
566
551
542
491
435
419
397
388
374
351
346
344
342
340
339
342
338
351
351
130
556
523
479
400
352
315
297
269
266
263
261
269
265
256
246
244
242
245
130
557
534
510
430
380
342
320
300
273
269
265
260
263
252
243
235
237
245
250
135
549
508
452
350
304
251
216
180
.169
165
166
163
173
180
180
175
169
176
135
550
518
481
375
328
273
233
209
171
154
151
153
151
163
172
175
174
183
186
140
542
496
422
311
241
193
152
78*
58"
69*
77*
82*
97*
105
134
148
155
166
140
548
506
444
327
255
203
159
11775*
52"
71*
79*
84*
98*
104
128
136
153
168
145
540
491
382
268
182
131 90*
35"
45*
48*
61*
81"
90"
97*
103
108
123
140
145
542
497
404
287
198
145
101 45*
34*
36*
39*
^T*^
66*
71*
80*
88*
96*
115
135
150
531
478
352
235
132
99 75"
59*
58*
58*
57"
65*
81*
89"
102
113
120
126
150
536
485
371
247
139
10374*
49*
37*
30A
32*
~J*^
36"
60*
58*
71*
82*
101
123
155
512
456
316
193
141
10696*
81*
81*
81*
82*
83*
84*
86"
98*
104
108
110
155
535
477
336
192
129
88*
73"
51"
46"
37"
39"
40*
42"
44*
54"
73*
84"
94"
109
160
500
441
294
174
149
136
121 94"
93"
93"
93*
94*
95"
96"
97"
105
119
126
160
526
464
309
172
132
11391*
58*
52*
43*
50*
S«*
62*
66*
71*
76*
81*
95"
115
165
488
424
277
181
159
149
138
121
122
119
115
117
120
122
125
128
131
132
165
508
442
282
180
146
131
1 14 95*
88*
77*
74*
71*
75"
78"
82"
87"
103
114
123
170
469
400
276
200
183
171
164
153
152
151
151
151
151
151
150
145
148
149
170
497
423
282
190
162
144
129
113
107 98
99
f00-
107
115
120
124
124
132
140
175
456
385
287
209
205
197
184
172
172
172
172
173
175
176
178
180
183
194
175
485
407
293
197
182
167
146
128
127
125
129
-«3-
138
143
148
153
160
167
183
180
441
362
290
237
216
215
210
202
200
193
193
195
198
202
221
238
250
260
180
467
382
296
229
202
193
183
169
157
156
151
H^5^
159
164
170
IBS
198
211
234
185
413
336
284
249
225
228
232
241
244
248
252
258
274
282
289
295
297
303
185
456
370
299
248
218
210
202
190
182
184
187
i9l
196
213
224
242
254
263
277
190
395
322
291
274
261
263
258
273
279
289
302
311
318
325
333
342
356
366
190
441
357
300
262
240
232
218
208
204
208
217
237
252
264
276
289
308
324
342
195
382
313
292
291
291
285
294
305
326
339
349
357
365
373
381
388
398
409
195
414
330
289
265
260
248
251
238
238
258
270
283
296
309
322
337
359
379
399
200
364
308
291
304
321
325
331
373
382
384
390
398
407
419
429
440
450
461
200
397
323
290
278
282
277
273
276
300
310
314
J24-
336
356
373
390
410
437
457
205
352
314
301
3Z4
349
362
376
423
435
444
449
456
464
469
475
485
495
506
205
384
323
295
292
301
302
298
324
339
357
371
^85
399
415
433
449
468
488
510
CO
SLIP ANGLE
STRlKEi
DIP 5
10 IS 20
25 30
36 40
46 50
5660
65 70
75 60
8590
95
1 15
608
627
659
635
616
590
581
570
554
539
512
493
490
4B6
482
480
485
483
480
- -150
120
585
598
618
577
531
522
503
476
454
440
426
428
424
422
425
420
424
424
421
125
575
574
578
SIB
442
423
400
396
382
357
350
345
343
340
339
344
346
349
348
130
567
550
537
450
3B2
343
322
306
285
280
275
271
275
269
256
236
233
244
250
135
558
531
506
393
331
274
239
222
199
187
181
179
171
170
172
173
172
185
193
140
549
515
471
351
273
212
173
137
10283*
93"
88"
92"
105
1 12
136
147
156
167
145
542
503
427
307
212
146
10550"
40"
52"
56*
68*
84*
91*
95*
94"
92"
1 10
134
150
541
493
388
256
143 92"
69"
51"
54"
55"
56*
55*
53"
58"
56"
68"
79"
88"
108
155
535
481
346
203
137 81"
70*
52"
53*
52"
50"
40*
42"
43"
45*
56*
63"
81*
104
160
530
469
315
176
132
10377"
46"
41"
42*
43"
45*
46"
47*
49*
60*
70"
86"
105
165
530
462
293
IBI
132
105
81"
63"
61"
58"
54"
49"
51"
61"
69"
76"
83"
93"
114
170
522
444
292
190
144
11491"
76*
74"
73*
79"
83"
87"
90"
93"
95"
108
121
133
175
505
423
296
192
165
140
III 95"
96"
98
100
103
106
1 11
126
137
146
157
177
180
495
403
301
215
179
158
139
125
124
122
117
126
135
144
152
169
185
200
216
185
484
391
304
232
194
170
157
146
153
157
162
167
174
192
203
214
226
246
266
190
467
374
303
251
221
196
184
175
178
182
191
207
217
228
239
261
280
298
319
195
456
363
304
263
244
214
213
201
200
217
227
237
24B
267
284
300
318
341
385
200
443
358
306
270
259
239
234
235
249
256
262
276
289
303
319
338
374
413
461
205
417
341
304
278
271
260
265
286
290
300
311
323
336
351
376
406
449
492
527
SLIP ANGLE
STRlKEi
DIP 5
10 15 20
25 30
35 40
45 50
5560
65 70
75 80
8590
95
115
626
656
708
706
682
645
613
597
575
547
515
501
498
490
475
471
477
475
472
- -140
120
611
638
666
632
577
560
529
497
478
462
444
440
424
417
417
411
417
418
415
125
594
603
604
547
484
464
439
428
411
379
361
347
342
338
335
339
343
355
342
130
576
575
564
473
418
382
358
336
301
290
284
278
279
272
259
246
239
241
247
135
565
551
535
401
351
297
262
244
217
203
196
193
186
189
189
179
169
184
193
140
558
529
493
351
281
234
198
163
129
11 1
120
122
121
126
1 17
137
148
163
165
145
549
514
446
305
218
172
13584"
80"
89"
90"
95"
101
100
103
105
105
105
132
150
541
49B
407
263
154
126
10483"
83"
82"
76"
69"
68"
75"
76"
80"
76"
84*
107
155
535
484
359
209
138
106
94*
72"
66"
67*
67"
66"
64"
61"
52"
55"
61"
67"
92"
160
535
475
321
175
122
109
92"
64"
64"
64"
63"
61*
57"
47"
48"
50"
52"
72"
99
165
530
463
292
185
125
11297"
78"
75"
70"
63"
49"
50"
51"
52"
54"
69"
81"
98*
170
525
447
2B9
190
130
113
98"
80"
72"
71"
70"
69"
69"
68"
68"
81"
84"
103
124
175
526
440
303
191
140
122
101 62"
81"
81"
81"
81"
82"
93*
100
107
127
144
170
180
520
423
309
210
152
137
122
105
1029992"
101
107
1 12
119
149
171
190
210
IBS
504
405
305
221
171
152
141
127
127
129
131
134
139
165
182
197
211
224
258
190
494
394
308
234
190
175
160
146
147
149
156
177
192
205
218
233
251
284
314
195
484
383
308
248
211
192
186
169
170
189
201
211
222
234
248
266
298
328
374
200
468
374
309
260
233
222
213
211
221
228
229
238
249
262
287
311
340
3B7
456
205
458
373
314
270
249
243
240
253
251
258
267
276
292
312
328
358
403
471
540
CO
SLIP ANGLE
STRIKEi
DIP 5 10 15 20 25 30 35 40 *r 50
55 60 65 70
75 80 85 90
95
115
651
697
762
755
714
677
647
624
^7°
543
508
491
486
470
464
458
463
462
460
- -130
120
641
665
720
696
642
619
576
525
/>ai
475
449
435
422
418
408
396
404
406
404
125
616
629
675
631
563
521
405
459
f.r}
395
373
362
352
333
327
329
333
347
338
130
600
600
621
527
467
429
396
370
?rr>
320
309
296
280
270
256
242
238
245
239
135
S83
574
557
442
395
343
308
287
?S4
233
213
204
194
195
194
188
176
178
188
140
S66
548
510
387
320
273
236
198
1S3
133
138
138
137
144
144
152
145
161
174
I4S
S56
525
454
330
242
196
159
108
T4
113
114
119
128
128
123
111
111
117
128
150
550
508
408
273
176
149
127
106
Iff
107
106
103 99 97*
87*
91"
93"
80*
105
155
542
492
365
211
159
131
120
99 on 99 97*
92"
83"
75*
72*
74*
62"
64"
84*
160
534
477
325
177
147
135
11992*
M*
89"
84*
75*
74"
71*
67"
56"
52"
60"
78"
16S
529
463
287
181
142
131
116 96*
R9*
83*
78*
73*
71"
67"
55*
54*
55*
58*
82*
170
529
450
284
176
138
123
109 92*
«»»*
89*
87*
84*
79"
67*
66"
65*
60*
80"
108
175
526
439
296
177
148
133
1 14 95*
o-l*
92*
89*
84*
79"
79*
80*
82"
99 119
161
180
522
423
301
187
155
142
127
108
103 94*
88*
88"
89*
90*
93*
117
138
176
205
185
524
421
309
202
168
146
133
US
113
1 12
111
112
113
128
148
162
192
213
257
190
519
414
315
217
187
164
146
128
177
127
130
143
158
170
183
211
234
275
331
195
504
396
311
228
204
182
169
147
MT
159
168
177
186
203
223
243
280
333
393
200
495
394
315
240
218
204
192
183
I nn
194
194
202
219
234
252
283
334
392
474
205
486
392
321
254
234
223
216
224
r'7
226
235
245
256
270
286
338
392
465
556
CO
CO
39
B.6 Graphic output from program FPPLOT for selected earthquakes.
Note the multiple solutions for event 840909.
Note the low value of STDR for event 750426.
GEYSERS, Cf
lLIF
ORNI
fl ER
RTHQ
UflK
ES
840909
2 8
37.03
38-47.05 122-46.38
1.32
2.54
17
51
2.0
0.03
0.1
0.1
fl
85 80-170
0.03
17
4.68 0.58 0.00
20 20
30 B-
B
DISCREPANT OBSERVATIONS
STRT DI5T
RZH
BIN
PRHK
Cnx
8.3
169
60
1POI
NMH
26.3
170
54
IPU1
GETS
ERS,
Cf
lLIF
ORNI
fl Ef
lRTH
QUfl
KES
840909
2 8
37.0
3 38-47.05 122-46.38
1.32
2.54
17
51
2.0
0.03
0.1
0.1
fl
130
50-100
0.06
17
4.68
0.
50 0.
00
15
10
10 B-
fl*
01S
CR
EP
RN
T
OB
SE
RV
AT
ION
S
5TB
T
01
51
R
ZH
BIN
P
RH
K
GR
X 8
.3
169
60
IF
'Dl
A
DlL
OT
nT
lON
O
C
flM
FR
ES
OIO
N
GEYSERS, CRLIFORNIR ERRTHQURKES
840909
2 8
37.03 38-47.05 122-MB.38
1.32
2.54
17
51
2.
0 0.03
0.1
0.1
R
230
50
90
0.00
17
4.68 0.42 0.00
10
0 10
R-fl*
ION
GEYSERS. CRLIFORNIR ERRTHOURKES
8M0410
M 2
2.49
38-48.52 122-47.G3
1.38
2.95
25
38
0.0
0.05
0.1
0.1
R
75 85-140
0.02
25
4.09
0.
56 0.
00
10 15
20
R-
R
OISCRE
PRNT
OBSEHVRT ION
S 5T
RT-D
J5T
- _
C
OX
0.1
1
77
1
75
IP
liO
CO
GEYSERS, CRLIFORNIR ERRTHQURKES
850509 3m 18
.95
38-49.43 122-48.05
0.96
1.75 24
40
2.0
0.07
0.2
0.2
R
115
75 -30
0.04
23
4.29 0.
62 0.00
10 20
20
B-fl
DIS
CR
EP
AN
T O
BS
ER
VA
TIO
NS
S
TflT
D
15T
RZH
B
IN
PRH
K
GMO
32.3
21
47
SU
EP
D2
A
DR
RT
qT
ION
O
C
OM
PRFS
r'in
N
750426
9 6
57.89 37-
7.01
121-53.43
10.4
5 1.57 33
83
6.0
0.08
0.2
0.4
R
145
10
10
0.03
20
3.
88 0.37 0.
00
10 10
10 B-
R
DISCREPANT OBSERVATIONS
STRT D1ST
RZH
fllN
FRHK
HCl 21.2
135
105
1FDO
SGC 23.2
322
103
IP-1
cn
A
DILOTOTION
O
COMPRESSION
PROGRAM FPFIT
VERSION 1.0
- OCTOBER 31
, 1985
PURPOSE:
CALCULATE DOUBLE-COUPLE FAULT PLANE SOLUTIONS FROM P-WAVE FIRST MOTIONS (SEE REASENBERG. P.
AND
D. OPPENHEIMER, FPFIT, FPPLOT AND FPPAGEt FORTRAN COMPUTER PROGRAMS FOR CALCULATING AND DISPLAYING
EARTHQUAKE FAULT-PLANE SOLUTIONS, U.S. GEOLOGICAL SURVEY OPEN-FILE REPORT 85-???>.
INPUT FILE:
1.
A HYP071 LISTING FILE WHICH IS
READ ON LOGICAL UNIT IUNIT (-2), (SEE LEE AND LAHR, 1975, HYP071
(REVISED): A COMPUTER PROGRAM FOR DETERMINING HYPOCENTER, MAGNITUDE AND FIRST
MOTION PATTERN OF LOCAL EARTHQUAKES, U.
S.
GEOLOGICAL SURVEY OPEN-FILE REP. 75-311.).
2.
A PARAMETER CONTROL FILE WHICH IS
READ ON LOGICAL UNIT CUNIT (-1)
REQUIRED ROUTINESi ALL ROUTINES ARE ENCLOSED
DEPARTURES FROM FORTRAN-77 STANDARD!
1. KEYWORDS "READONLY" AND "CARRIAGECONTROL
- LIST"
IN OPEN STATEMENTS
2. EMBEDDED COMMENTS PREFACED WITH AN EXCLAMATION MARK (!
) FOLLOWING VARIABLE DECLARATIONS
OUTPUT:
AUTHORS:
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
1. AN ASCII FILE OF HYP071 SUMMARY CARDS EXTENDED WITH FAULT PLANE SOLUTION PARAMETERS ON LOGICAL UNIT SUNIT
(-4).
THIS FILE SERVES AS INPUT TO PROGRAMS "QPLOT" AND "PLOTPT".
2. AN ASCII FILE CONSISTING, FOR EACH EARTHQUAKE. OF THE HYP071 EXTENDED SUMMARY CARD, FOLLOWED BY
NEIGHBORING SOLUTIONS (WITHIN 90X CONFIDENCE LIMITS), FOLLOWED BY INDIVIDUAL P-PHASE INFORMATION,
ON LOGICAL UNIT PUNIT (-3). THIS FILE SERVES AS INPUT TO PROGRAMS "PLOTFM" AND "FPPAGE".
3. AN OPTIONAL ASCII FILE OF THE MINIMIZED FIT FUNCTION ABOUT THE BEST SOLUTION ON LOGICAL UNIT FUNIT (-9)
4. AN ASCII FILE DESCRIBING ANY ERRORS IN
THE CONTROL FILE, HYP071 FILE, PRESENCE OF MULTIPLE MECHANISMS,
A SUMMARY OF POLARITY DISCREPANCIES BY STATION AND READING QUALITY, AND THE DISTRIBUTION OF
STRIKE, DIP, AND
RAKE UNCERTAINTIES ON LOGICAL UNIT EUNIT (-8)
PAUL REASENBERG AND DAVID OPPENHEIMER, U.S.G.S.
IN MENLO PARK.
SOME OF THE ROUTINES
WERE ADAPTED FROM CODE WRITTEN BY JOHN LAHR, BRUCE JULIAN, AND FRED KLEIN.
MARK MATTHEWS, STANFORD UNIVERSITY, PROVIDED ASSISTANCE IN
THE ERROR PROPAGATION ANALYSIS.
EUNIT
FUNIT
IUNIT
MXDIP
MXQUAL
MXRAKE
MXSLNS
MXSTAT
MXSTRK
PUNIT
SUNIT
LOGICAL
LOGICAL
LOGICAL
LOGICAL
MAXIMUM
MAXIMUM
MAXIMUM
MAXIMUM
MAXIMUM
MAXIMUM
LOGICAL
FOR USE
LOGICAL
DIPS
4*H>UT CONTROL FILE
- __
_ ______
UNIT # OF OUTPUT OF ERROR MESSAGES
UNIT # OF OUTPUT OF FIT LISTING FOR ALL STRIKES,
UNIT # OF HYP071 LISTING FILE (INPUT FILE)
OF DIP INCREMENTS PERMITTED
OF QUALITIES PERMITTED
OF RAKE INCREMENTS PERMITTED
OF MULTIPLE SOLUTIONS PERMITTED
OF STATIONS PERMITTED
OF STRIKE INCREMENTS PERMITTED
* OF OUTPUT OF EXTENDED SUMMARY AND RAY PARAMETERS
IN PLOTTING FOCAL MECH. DIAGRAMS WITH PLOTFM
UNIT * OF OUTPUT OF EXTENDED SUMMARY CARDS
UNIT
PARAMETER (CUNIT -
1, EUNIT -
B, FUNIT -
9, IUNIT -
2, MXDIP
- 19
, & MXQUAL -
8. MXRAKE -
IB,
MXSLNS -
20,
MXSTAT -
1000, MXSTRK -
19,
& PUNIT -
3, SUNIT -
4)
REAL
REAL
REAL
REAL
REAL
REAL
CHARACTER*!
LOGICAL
AERR
AIN(MXSTAT)
AINR
AZ<MXSTAT)
AVWT
AZR
6DFLAG
BEST
ALLOWABLE DIFFERENCE BETWEEN CORRESPONDING ANGLES OF COMPLIMENTARY PLANES
RAY INCIDENCE ANGLES IN
DEGREES
AIN CONVERTED TO RADIANS
RAY AZIMUTH ANGLES (CORRESPONDING TO AIN)
MEAN OBSERVATIONAL WEIGHT OF DATA USED IN
SOLUTION
AZ CONVERTED TO RADIANS
SIGNALS POLARITY DISCREPANCY WITH BEST FIT SOLUTION
FLAG: TRUE=BEST SOLUTION FOR EVENT
00
REAL
REAL
LOGICAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
CHARACTER*80
CHARACTER-52
LOGICAL
REAL
REAL
REAL
REAL
CHARACTER*!
REAL
LOGICAL
CHARACTER*3
REAL
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
CHARACTERS
INTEGER
CHARACTERM22
BOT<MXDIP.MXSTRK.MXRAKE)
COEF(MXSTAT,6)
COMPL
DA2
DD2
DDELC
DDELF
DEL(MXDIP)
DELC(MXDIP)
DEL0C
DEL0F
DELIF
DFITC
DIP
DIST(MXSTAT)
DISTMX
DLAMC
DLAMF
DPHIC
DPHIF
ERATE(MXQUAL)
EVENT
EVFIT
FIRST
FIT90
FIT<MXDIP.MXSTRK.MXRAKE)
FITLIM
FITMIN
FLAG(MXDIP.MXSTRK.MXRAKE)
FMAGMN
FPINP
FTOUAL
GFIT(MXDIP.MXSTRK.MXRAKE)
I ID IDIP
IDIP1
IDIPOR
IDST(MXSLNS,3)
I DP
OR
1IDRNG
I ERR
IEVP
IEVR
IFIT(MXSTRK)
I GOOD(MXDIP «MXSTRK«MXRAKE,4)
IOEFF
IND(MXSTAT)
INDEX
IPRNT
IPWT
IRES
IRRNG
ISLIP
ISLIP1
ISRNG
0 01 OMAX
OMIN
K KILSTA(MXSTAT)
L LINE
SUM OF PRODUCT OF OBSERVED AND PREDICTED WEIGHTS
COEFICIENTS BY WHICH MOMENT TENSOR MULTIPLIED TO GIVE P RADIATION PATTERN
FUNCTION
DIP ANGLE OF AUXILLIARY SOLUTION
DIP DIRECTION OF AUXILLIARY SOLUTION
FAULT DIP INCREMENT IN
DEGREES FOR COARSE SEARCH
FAULT DIP INCREMENT IN
DEGREES FOR FINE SEARCH
FAULT DIP ANGLE IN
DEGREES
FAULT DIP ANGLE IN
DEGREES FOR COARSE SEARCH
INITIAL FAULT DIP ANGLE IN
DEGREES FOR COARSE SEARCH
INITIAL FAULT DIP ANGLE IN
DEGREES FOR FINE SEARCH
TERMINATING FAULT DIP ANGLE IN
DEGREES FOR FINE SEARCH
INCREMENT TO COARSE FIT FUNCTION
DIP ANGLE OF BEST SOLUTION
EPICENTRAL DISTANCE
MAXIMUM PERMITTED EPICENTRAL DISTANCE
FAULT RAKE INCREMENT IN
DEGREES FOR COARSE SEARCH
FAULT RAKE INCREMENT IN
DEGREES FOR FINE SEARCH
FAULT STRIKE INCREMENT IN
DEGREES FOR COARSE SEARCH
FAULT STRIKE INCREMENT IN
DEGREES FOR FINE SEARCH
ASSUMED WEIGHTED ERROR RATES FOR EACH DATA CLASS
SUMMARY CARD
DUMMY CHARACTER STRING TO HOLD FIT VALUES ON OUTPUT
FLAGi TRUE-FIRST TIME INTO SUBROUTINE SEARCH
90 X CONFIDENCE LIMIT OF FIT IN
FINE SEARCH
SOLUTION FIT: WEIGHTED MEASURE OF AGREEMENT BETWEEN OBS, PRED POLARITIES
UPPER BOUND ON "GOOD" SOLUTIONS: 5X ABOVE FITMIN
FIT OF BEST SOLUTION CORRESPONDING TO FIT(01, NI.
MI)
OUTPUT STRING:
IF FIT
< FITLIM THEN *
', OTHERWISE BLANK
MINIMUM PERMITTED MAGNITUDE
FUNCTION
SOLUTION OUALITYi CONCATENATED FIT QUALITY, RANGE QUALITY
FITS OF "GOOD" SOLUTIONS FOUND IN
COARSE SEARCH
LOOP INDEX
LOOP INDEX OVER NDST
DIP ANGLE OF NEARBY SOLUTIONS
DIP ANGLE OF BEST FIT
DIP DIRECTION OF NEARBY SOLUTIONS
INDICES OF DISTINCT SOLUTIONS FOUND BY HHOG
DIP DIRECTION OF BEST FIT
DIP RANGE VARIATION FOR SOLUTIONS WITH FIT<FITLIM
I/O ERROR CODE ON OPEN
NUMBER OF EVENTS PROCESSED
NUMBER OF EVENTS READ
INTEGER CONVERSION OF FITM00 FOR PRINTER OUTPUT
ARRAY OF INDICES OF "GOOD" SOLUTIONS FOUND IN
COARSE SEARCH
FLAGi I(0)-DO (NOT) USE PHASE DATA WEIGHTED OUT BY JEFFREY'S WEIGHTING
POINTER ARRAY TO SORTED ORDER
BIN INDEX INTO NDRNG,NSRNG,NRRNG,NFIT
FLAGi I(0)-DO (NOT) PRINT OUT FIT PARAMETERS
WEIGHT ASSIGNED TO P ARRIVAL
FLAG* 0<1)-(UN)RESTRICTED SEARCH
RAKE RANGE VARIATION FOR SOLUTIONS WITH FIT<FITLIM
RAKE OF NEARBY SOLUTIONS
RAKE OF BEST FIT
STRIKE RANGE VARIATION FOR SOLUTIONS WITH FIT<FITLIM
LOOP INDEX OVER DIP
DIP INDEX OF BEST SOLUTION
LARGEST DIP INDEX OF SOLUTION WITH FIT OFITLIM ABOUT (01, Nl. Ml)
SMALLEST DIP INDEX OF SOLUTION WITH FIT <-FITLIM ABOUT (01, Nl
, Ml)
LOOP INDEX
IGNORED STATION NAMES
LOOP INDEX OVER MOMENT TENSOR
OUTPUT STRING OF NEARBY SOLUTIONS ORIENTATIONS
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
REAL
REAL
REAL
REAL
REAL
*Eft
t
REAL
REAL
CHARACTERS
INTEGER
REAL
REAL
CHARACTERS
REAL
INTEGER
REAL
CHARACTER*!
REAL
REAL
REAL
CHARACTERS
REAL
CHARACTERS
CHARACTER'11
REAL
REAL
CHARACTER*B0
CHARACTER*48
REAL
REAL
REAL
REAL
M Ml MINOBS
MM AX
MMIN
N Nl NDELC
NDELF
NDELFDF
NDRNG(MXDIP)
NDST
NEV
NFIT(20)
NG
NKIL
NLAMC
NLAMF
NLAMFDF
NMAX
NMIN
NPHIC
NPHIF
NPHIFDF
NRNREV
NRRNG<MXRAKE)
NSOL
NSRNG(MXSTRK)
NSTAR
NSTAT
PHKMXSTRK)
PHIC<MXSTRK)
PHI0C
PHI0F
PHI1F
-RUBS(MXSTAT)
PRAD
PRCNTX
PRMK(MXSTAT)
QCNT<MXQUAL,2)
QCNTWT(MXQUAL,2)
RAD
REVSTA(MXSTAT)
SA2
SCNT(MXSTAT,2)
SCNTWT<MXSTAT,2)
SFLAG
SIGMAF
SLIP
SOLNS(MXSLNS,3)
STAT(MXSTAT)
STDR
STN(MXSTAT)
STRING
STRIKE
SUMWT
TEMP
TITLE
TM(6)
U(3)
WEIGHT(MXQUAL)
WTMAX
LOOP INDEX OVER RAKE
RAKE INDEX OF BEST SOLUTION
MINIMUM NUMBER OF OBSERVATIONS REQUIRED
LARGEST RAKE INDEX OF SOLUTION WITH FIT <-FITLIM ABOUT (Jl, Nl,
Ml)
SMALLEST RAKE INDEX OF SOLUTION WITH FIT <-FITLIM ABOUT <J1, Nl. Ml)
LOOP INDEX OF STRIKE
STRIKE INDEX OF BEST SOLUTION
NUMBER OF FAULT DIP INCREMENTS FOR COARSE SEARCH
NUMBER OF FAULT DIP INCREMENTS FOR FINE SEARCH
DEFAULT NUMBER OF FAULT DIP INCREMENTS FOR FINE SEARCH
NUMBER OF DIP SOLUTION RANGES BINNED INTO DDELF DEGREE INCREMENTS
NUMBER OF DISTINCT SOLUTIONS FOUND BY HHOG
NUMBER OF EVENTS TO PROCESS
NUMBER OF SOLUTIONS BINNED INTO .025 FIT INCREMENTS
NUMBER OF "GOOD" SOLUTIONS FOUND IN COARSE SEARCH
NUMBER OF IGNORED STATIONS
NUMBER OF FAULT RAKE INCREMENTS FOR COARSE SEARCH
NUMBER OF FAULT RAKE INCREMENTS FOR FINE SEARCH
DEFAULT NUMBER OF FAULT RAKE INCREMENTS FOR FINE SEARCH
LARGEST STRIKE INDEX OF SOLUTION WITH FIT <-FITLIM ABOUT (Jl, Nl, Ml)
SMALLEST STRIKE INDEX OF SOLUTION WITH FIT <-FITLIM ABOUT (Jl, Nl, Ml)
NUMBER OF FAULT STRIKE INCREMENTS FOR COARSE SEARCH
NUMBER OF FAULT STRIKE INCREMENTS FOR FINE SEARCH
DEFAULT NUMBER OF FAULT STRIKE INCREMENTS FOR FINE SEARCH
-1-EOF, 0-SKIP EVENT, NR>0 -> NUMBER OF STATIONS
NUMBER OF REVERSED STATIONS
NUMBER OF RAKE SOLUTION RANGES BINNED INTO DLAMF DEGREE INCREMENTS
NUMBER OF PLANES STORED IN
ARRAY SOLNS
NUMBER OF STRIKE SOLUTION RANGES BINNED INTO DPHIF DEGREE INCREMENTS
NUMBER OF SOLUTIONS HAVING FIT WITHIN 5X OF FITMIN
TOTAL * OF STATIONS REPORTING FOR ENTIRE DATA SET
FAULT STRIKE ANGLE IN
DEGREES
FAULT STRIKE ANGLE IN
DEGREES FOR COARSE SEARCH
.INITIAL FAULT STRIKE ANGLE IN
DEGREES FOR COARSE SEARCH
INITIAL FAULT STRIKE ANGLE IN
DEGREES FOR FINE SEARCH
TERMINATING FAULT STRIKE ANGLE IN
DEGREES FOR Fl
ttE SEARCiL
OBSERVED FIRST MOTION POLARITIES; .5-COMPRESSION, -.5-DILATATION
RADIATION AMPLITUDE CORRESPONDING AIN, AZ.
(DILATATION) -1
. <PRAD< + 1.(COMPRESSION)
X OF STATIONS THAT ARE MACHINE PICKED
FIRST MOTION DESCRIPTION (EG. IPU0)
(INPUT) INDX 1-* OF DSCRPNT PLRTIES FOR OLITY, INDX 2-# OF OBSERVATIONS
INDEX 1-WEIGHTED * DSCRPNT POLRITIES FOR QUALITY, INDEX 2-SUM OF WEIGHTS
CONVERSION FROM DEGREES TO RADIANS
REVERSED STATION NAMES
SLIP ANGLE OF AUXILLIARY SOLUTION
INDEX 1-* OF DSCRPNT POLARITIES FOR STAT, INDEX 2-# OF OBSERVATIONS
INDEX 1-WEIGHTED * DSCRPNT POLARITIES FOR STAT, INDEX 2-SUM OF WEIGHTS
FLAG INDICATING SECONDARY SOLUTIONS
CALCULATED STANDARD DEVIATION OF FIT BASED ON DATA ERRORS
SLIP ANGLE OF BEST SOLUTION
ARRAY OF FINAL SOLUTIONS USED TO CHECK FOR REDUNDANCY
NAMES OF ALL STATIONS REPORTING
STATION DISTIBUTION RATIO
STATION NAMES PER EVENT
SCRATCH VARIABLE
STRIKE OF BEST SOLUTION
SUM OF OBSERVED FIRST MOTION WEIGHTS
SCRATCH VARIABLE FOR REFORMATTING EVENT CARD
DATA SET DESCRIPTOR
MOMENT TENSOR IN
UPPER TRIANGULAR SYMETRIC STORAGE MODE
CARTESIAN P-WAVE DIRECTION VECTOR (POSITIVE UP,
SOUTH, EAST)
WEIGHTS ASSOCIATED WITH QUALITIES
MAXIMUM WEIGHT
cn O
REAL
REAL
REAL
REAL
REAL
REAL
WTOBS(MXSTAT)
XLAM(MXRAKE)
XLAMC(MXRAKE)
XLAM0C
XLAM0F
XLAMIF
! OBSERVED FIRST MOTIONS WEIGHTS
! FAULT RAKE ANGLE IN
DEGREES
! FAULT RAKE ANGLE IN DEGREES FOR COARSE SEARCH
! INITIAL FAULT RAKE ANGLE IN DEGREES FOR COARSE SEARCH
I INITIAL FAULT RAKE ANGLE IN DEGREES FOR FINE SEARCH
! TERMINATING FAULT RAKE ANGLE IN DEGREES FOR FINE SEARCH
INITIALIZE STATISTICS ARRAYS TO ZERO
DATA NSTAT, NFIT /0, 20*0/
DATA QCNT, QCNTWT /MXQUAL*0, MXQUAL*0, MXQUAL*0.0, MXQUAL*0.0/
DATA NDRNG, NSRNG, NRRNG /MXDIP*0, MXSTRK*0, MXRAKE*0/
OPEN FILES
'FORMATTED', ACCESS
FORM
< IERR)
'FORMATTED', ACCESS
OPEN (UNIT
- SUNIT, STATUS -
'NEW'. FORM
& -
'SEQUENTIAL'. CARRIAGECONTROL -
'LIST')
OPEN (UNIT
PUNIT. STATUS -
'NEW'. FORM -
'FORMATTED', ACCESS
& -
'SEQUENTIAL')
OPEN (UNIT -
IUNIT, STATUS -
'OLD'
& -
'SEQUENTIAL', READONLY, IOSTAT -
IF
( IERR .NE. 0) THEN
PRINT *,
* * FPFIT: ERROR OPENING HYPO FILE? ERROR CODE
',
& IERR,
', LOGICAL UNIT # -
', IUNIT,
' **
STOP
END IF
OPEN (UNIT -
CUNIT, STATUS -
'OLD'. FORM -
'FORMATTED', ACCESS
& -
'SEQUENTIAL', READONLY, IOSTAT -
IERR)
IF (IERR .NE. 0) THEN
'***** FPFITi ERROR OPENING CONTROL FILE; ERROR CODE -
LOGICAL UNIT » -
', CUNIT,
' *** '
' *', IERR,
STOP
END IF
RAD ATAN(1
READ (IUNIT,
READ (IUNIT,
)/45.0
10)
10)
TITLE
10FORMAT (40X, A48)
WRITE (PUNIT, ) TITLE
WRITE (EUNIT, *) TITLE
C READ IN CONTROL PARAMETERS
CIF (.NOT. FPINP (CUNIT, DDELC, DDELF, DEL0C, DF1TC, D1STMX.
& DLAMC, DLAMF, DPHIC, DPHIF, ERATE, EUNIT, FMAGMN, IJEFF, IPRNT,
& IRES, IUNIT, KILSTA, MINOBS, MXDIP, MXQUAL, MXRAKE, MXSTAT,
& MXSTRK, NDELC, NDELFDF, NEV, NKIL. NLAMC. NLAMFDF, NPHIC,
& NPHIFDF. NREV, PHI0C, REVSTA, WEIGHT, XLAM0C)) STOP
IF (IPRNT .EQ.
I) OPEN (UNIT
FUNIT, STATUS -
'NEW', FORM -
& 'FORMATTED', ACCESS -
'SEQUENTIAL')
C C C C Cll
C
WRITE (SUNIT, 11)
' DATE
1MAG NO GAP
DM
RMS
ERH
2 XX S.D.R RNG
Q'
FORMAT(A)
IEVP
- 0
IEVR
- 0
ORIGIN
LAT N
ERZ QL
DD DA
SA
LONG W
FIT
NRDEPTH
SMWT
BOT
15
FIND MAXIMUM WEIGHT
WTMAX =
0.DO 15
I
= I. MXQUAL
IF (WEIGHT(I) .GT.
CONTINUE
WTMAX) WTMAX - WEIGHT(I)
c C READ NEXT EVENT
C 20
IEVR -
IEVR
+ 1
CALL READEQ (AIN. AZ. DIST. DISTMX, EUNIT, EVENT, FMAGMN,
A IOEFF, IUNIT, KILSTA, MINOBS, MXQUAL, MXSTAT. NKIL, NR.
NREV,
& FOBS, PRCNTX, PRMK, REVSTA, SIGMAF, STN, SUMWT, WEIGHT, WTOBS)
IF (N
R .EG.
-1 .OR. IEVP .EG.
NEV> THEN
C C END OF DATA, CLOSE FILES
CIE
VR -
IEVR
- I
CLOSE (CUNIT)
CLOSE (IUNIT)
CLOSE (PUNIT)
CLOSE (SUNIT)
IF (IPRNT .E
G.
I) CLOSE (FUNIT)
IF (NSTAT .GT. 0> THEN
CALL FPOUT (DDELF, DLAMF, OPHIF, ERATE, EUNIT, IEVP, IEVR,
& INO, IRES, MXDIP, MXQUAL, MXRAKE, MXSTAT. MXSTRK, NOELF, NDRNG,
& NFIT, NLAMF, NPHIF. NREV, NRRNG, NSRNG, NSTAT, QCNT, OCNTWT,
& REVSTA, SCNT, SCNTWT, STAT)
CELSEWRITE (EUNIT, *)
****** FPFIT ERRORs NO EVENTS SATISFY INPUT
A CRITERIA ***""
END IF
CLOSE (EUNIT)
STOP
END IF
C C INSUFFICIENT READINGS SKIP EVENT
CIF (NR .EG. 0) GOTO 20
C C GOOD EVENTt BEGIN EVENT LOOP
_______
-£ SET UF P^VAVE DIRECTION UNIT VECTOR
itff^SWHtr^EftSTt FOR EACH-RAY
_
CDO 30
I
I ,
NR
AINR AINU )*RAD
AZR - AZ(I)*RAD
U(l)
-COS(AINR)
U(2) -
-SIN(AINR)*COS(AZR)
U(3) SIN(AINR)*SIN(AZR>
C C FIND EXCITATION COEFFICIENTS FOR DETERMINING FAR-FIELD P RADIATION PATTERN
CCALL PEXCF (COEF,
I, MXSTAT, U)
30
CONTINUE
C C COARSE LOOP THROUGH FAULT MODELS
CIEVP -
IEVP +
1FIRST -
.TRUE.
CH
CALL SEARCH (BOT, COEF, DDELC, DEL, DELC. DEL0C, DFITC, DLAMC,
I^O
& DPHIC, FIRST, FIT. FITMIN, FLAG, GFIT. IGOOD, IPRNT, Jl, Ml,
& MXDIP, MXRAKE, MXSTAT. MXSTRK. NI,
NDELC, NG
. NLAMC, NPHIC, NR,
& NSTAR, PHI, PHIC. PHI0C, POBS, RAD, WTOBS, XLAM, XLAMC, XLAM0C)
C C DETERMINE DISTINCT SOLUTIONS FROM ARRAY OF "GOOD" SOLUTIONS IN COARSE SEARCH
CCALL HHOG (EUNIT, 01, Nl, Ml, IGOOD. GFIT, NG, IDST, NDST,
& MXDIP. MXSLNS, MXSTRK, MXRAKE, NDELC, NPHIC, NLAMC>
C BEGIN LOOP FOR FINE SEARCH CENTERED ON EACH DISTINCT SOLUTION FOUND BY HHOG
CFIT90 «
1 .282
SIGMAF
N'.OL
= 0
Al HR
2.*AMAXI(DPTLF. DLAMF. DPHIF)
IMJ
.'7(
1 10
=
1. ND'.T
Jl
- ID
r>T<ID.
1)Nl
-
IDSTIID.
2>Ml
- IDSTI ID.
3 )
nrsr
«
.FALSE.
IF (ID .tO.
I) BEST «
.TRUE.
FIRST =
.FALSE.
C C DETERMINE FINE SEARCH RANGE FOR UNRESTRICTED SEARCH
CIF
I IRES .E
Q. 0) THEN
NDCLF
« NDELFDF
NPHIF
« NPHIFDF
NLAMF
- NLAMFDF
DEL0F
- DELC(Jl)
- FLOAT(NDELF/2 )
*DDELF
PHI0F
« PHIC<NI)
- FLOAT(NPHIF/2)«DPHIF
XLAM0F -
XLAMC(Ml)
- FLOAT<NLAMF/2)"DLAMF
ELSE
C C DETERMINE FINE SEARCH DIP RANGE FOR RESTRICTED SEARCH
CDEL0F
- DELC(JI)
- FLOAT(NDELC/2)-DDELC
IF (DEL0F .L
T. DEL0C) DEL0F
« DEL0C
JF (DEL0F
.LT.
0.) DEL0F
« 0.
DELIF
« DELC(JI)
» FLOAT(NDELC/2)-DDELC
IF (DELIF
.GT.
DELC(NDELC)) DELIF
« DELC(NDELC)
IF (DELIF .GT. 90.) DELIF
- 90.
NDELF
- INTMDEL1F
- DEL0F >/DDELF >
*
I IF (NDELF
.GT.
MXDIP) THEN
NDELF
« MXDIP
DEL0F
DELC(OI)
- FLOAT(NDELF/2)"DDELF
40
IF (DEL0F
» FLOAT(NDELF
- I)«DDELF
.GT.
DELC(NDELO) THEN
NDELF
« NDELF
- 1
GOTO 40
END
IF
END
IF
C C DETERMINE FINE SEARCH STRIKE RANGE FOR RESTRICTED SEARCH
CPHI0F
- PHIC(NI)
- FLOAT<NPHIC/2)*DPHIC
IF (PHI0F
.LT. PHI0C) PHI0F
- PHI0C
PHI1F
PHIC(NI)
+ FLOAT(NPHIC/2)*DPHIC
IF (PHI1F .G
T. PHIC(NPHIO) PHI1F
« PHIC(NPHIC)
NPHIF
- INTUPHI1F -
PHI0F )/DPH IF
) +
I IF (NPHIF .G
T. MXSTRK) THEN
NPHIF
- MXSTRK
PHI0F
« PHIC(Nl)
- FLOAT<NPHIF/2)«DPHIF
IF (PHI0F
.LT. PHI0C) PHI0F
- PHI0C
5*
IF (PHI0F
+ FLOATINPHIF
- 1)"DPHIF .GT. PHIC(NPHIO) THEN
NPHIF
NPHIF
- 1
GOTO 50
END
IF
END
IF
C C DETERMINE FINE SEARCH RAKE RANGE FOR RESTRICTED SEARCH
CXLAM0F
« XLAMC(MI)
- FLOAT(NLAMC/2)"DLAMC
IF (XLAM0F
.LT.
XLAM0C) XLAMUF
« XLAM0C
XLAM1F
- XLAMC(MI)
* FLOAT<NLAMC/2)"DLAMC
IF (XLAMIF
.GT. XLAMC(NLAMC )
) XLAMIF
« XLAMC(NLAMC)
Nl AMF
* INTHXLAM1F
- XL
AM0F )
/OLAMF )
+
J If (NLAMF
.GT.
MXRAKE >
THEN
NLAMF
- MXRAKt
XLAM0r
- XLAMC(MI)
- FLOAT ' NLAMF /." )
*DLAMF
IF <XLAM0F
.LT.
XLAM
flfC)
XLAM0F
= XLAM0C
60
IF <XtAM0f
+ FLOATINLAMF -1)*DLAMF
.GT. XLAMC ( NLAMC )
) THEN
Nl AMF
» NLAMF
- I
GOTO 60
END
IF
END
IF
END IF
C C DO FINE SEARCH
CCALL SEARCH (80T, COEF, OOELF, DEL, DELC, DEL0F. FIT90, DLAMF ,
& OPH1F. FIRST. FIT, FITMIN, FLAG, GFIT, IGOOO. IPRNT, Jl,
Ml,
& MXDIP. MXRAKE, MXSTAT. MXSTRK. Nl. NOELF .
NG ,
NLAMF, NPHIF. NR ,
&
NSTAR, PHI, PHIC. PHI0F. FOBS, RAO. WTOBS, XLAM. XLAMC, XLAM0F )
C C
EXPRESS SOLUTION IN
TERMS OF DIP DIRECTION. DIP ANGLE, AND SLIP ANGLE.
CCALL REFRMT(DEL< Jl
> ,
IDIP1, IDPDR1, ISLIP1, PHKNI), XLAM(Ml))
C C REPLACE EACH PLANE WITH IDIP1
- 0 BY ITS AUXILLIARY PLANE
CIF
( IDIPI
.EQ.
0) THEN
CALL AUXPLN
( FLOAT( I
DPDR 1
) ,
FLOAT ( ID
IP
1 )
, F LOAT< ISL IP
1 )
. & DD2, DA2, SA2)
IDPDRI
IF!X(DD2)
IDIPI
IFIX(DA2)
ISLIP1
- IFIXISA2)
END
IF
C C FOR CASES WHERE PLANE IS
VERTICAL AND RAKE IS
-90, FLIP REPRESENTATION TO
C ONE WITH POSITIVE RAKE
CIF
(IDIPI
.EQ.
90 .AND. ISLIP1 .E
G. -90) THEN
ISLIP1
« ISLIP1
+ 180
IDPDRI
JMOD( (IDPDRI
* 180), 360)
C C SKIP SOLUTION IF IT
IS COMPLIMENTARY (AUXILLIARY PLANE) TO ANOTHER 'SOLUTION
C OR
IF
IT IS THE SAME AS ANOTHER SOLUTION IN
THE LIST
CIF <NSOL .EO. 0 .OR. (.NOT. COMPL(SOLNS, NSOL ,
FLOAT( IDPDR 1
) ,
&
FLOAT( IDIPI )
. FLOAT( ISLIP1 >
. AERR ,
MXSLNS))) THEN
NSOL
' NSOL
+ 1
SOLNSINSOL,
I)
IDPDRI
SOLNS(NSOL, 2)
-
IDIPI
SOLNS(NSOL, 3)
ISLIP1
C C FIND THE RANGE OF DIP, STRIKE AND RAKE SPANNING EACH GOOD SOLUTION FOR WHICH THE FIT IS
.LE. FITLIM
CFITLIM
- FITMIN
* FIT90
JMAX -
0JMIN "
NDELF
NMAX -
0
01
NMIN =
NPHIF
**
MMAX -
0MMIN «
NLAMF
DO 70 M
- I
, NLAMF
IF (FIT(J1, Nl
. M)
.L
E. FITLIM) THEN
IF (M .L
T. MMIN) MMIN -
M
IF (M
.G
T. MMAX) MMAX
- M
END
IF
70
80
90
C C UPDATE
CONTINUE
DO 80 N
- I
, IF
(FIT(JI,
IF (N
.LT
IF (N
.GT
END IF
CONTINUE
DO 90 J
- I
, IF
(FIT(J,
IF (J
.LT
IF (J
.GT
END IF
CONTINUE
NPHIF
N. Ml
)
. NMIN)
. NMAX)
NDELF
Nl ,
MI
)
. OMIN)
. JMAX)
.LE.
NMIN
NMAX
.LE.
OMIN
JMAX
FITLIM)
- N
- N
FITLIM)
- J
- J
THEN
THEN
DISTRIBUTION OF DIP. STRIKE, RAKE RANGES FOR
BEST SOLUTIONS
IDRNG - MAXCJMAX -
Jl,
Jl
- JMIN)«IFIX(DDELF)
ISRNG
- MAX(NMAX -
NI,
Nl
- NMIN ) * IF IX(DPHIF>
IRRNG
- MAX(MMAX -Ml, Ml
-
MM1N)* IF IX(DLAMF)
ACCUMULATE STATISTICS ON DISTRIBUTION OF DI
P, STRIKE, RAKE RANGES
FOR
BEST SOLUTIONS ONLY
IF (BEST .A
ND.
(IRES
.EO. 0)> THEN
INDEX -
IDRNG/IFIX(DDELF)
+ 1
NDRNG(INDEX)
- NDRNG(INDEX)
+ 1
INDEX -
ISRNG/IFIXiDPHIF)
* 1
NSRNG(INDEX)
NSRNG( INDEX)
* 1
INDEX
- IRRNG/IFIXiDLAMF) +
INRRNG(INDEX)
- NRRNG(INDEX)
* 1
END
IF
C ASSIGN
CQUALITY CODE TO SOLUTION
FTOUAL(2i2)
- 'I
'IF (FITMIN .L
E. .025)
THEN
FTOUAL(Itl) -
'A'
ELSE
IF (FITMIN .GT.
FTOUAL(ltl)
- 'C*
ELSE FTOUAL(Itl)
- 'B
' END IF
IF (ISRNG .LE
0.1) THEN
20 .AND. IDRNG .LE. 20 .AND. IRRNG .LE. 20)
& THEN
& .GT,
FTOUAL(3«3)
ELSE IF (ISRNG
40)
THEN
FTOUAL(3«3)
' ELSEFTOUAL(3«3)
END IF
A*
.GT. 'C'
40 .AND. IDRNG .GT. 40 .AND. IRRNG
WRITE OUT RESULTS
100
SFLAG -
* *
IF (.NOT. BEST) SFLAG
* '
TEMP
« EVENT< 1«53>//EVENT(57:60)//EVENTC54«56)//' .0V/
EVENT(63i80)
AVWT - SUMWT/FLOAT(NR)
STDR
- BOT(JI,NI.Ml)/SUMWT
WRITE (EVFIT,
100) IDPDRl,
IDIP1, ISLIPI,
FIT(J1, Nl,
Ml).
NR,
AVWT, STDR, PRCNTX, ISRNG, IDRNG, IRRNG, FTOUAL, SFLAG
FORMAT (1
4,
13,
14,
2X,
F4.2,
IX.
13,
IX,
2F5.2,
IX,
F4.2.
IX,
313. IX,
A3, Al)
cn
cn
110
120
130
C C C 140
150
IF (IPRNT .EQ.
1) WRITE (FUNIT, 110) TEMP, EVFIT
FORMAT
( '1 *
. A80. A52)
WRITE (SUNIT, 120) TEMP, EVFIT
FORMAT (A80, A52)
WRITE (PUNIT. 130) TEMP, EVFIT
FORMAT <IX, A80, A52)
WRITE (PUNIT, )
NSTAR
LOOP OVER SEARCH AREA TO PRINT OUT FIT PARAMETERS
NSTAR -
0DO 200 M *
1, NLAMF
IF (IPRNT .EQ.
I) THEN
WRITE (FUNIT, 140)
IFIX(XLAM(M))
FORMAT ('0', //,
4X,
'SLIP ANGLE -
*, 14
) WRITE (FUNIT, 150) (IFIX(PHI(N )),
N
- I. NPHIF)
FORMAT ('
',
' STRIKE*
1, 24(2X, 13))
WRITE (FUNIT, *)
' DIP*
END IF
DO 190 J
- 1
, NDELF
DO 170 N
* 1, NPHIF
IF (IPRNT .EQ.
1) THEN
IFIT(N) -
IFIX(1000."FIT(J, N,
M))
IF (IFIT(N) .E
Q. 1000) IFIT(N)
- 999
END IF
IF (FLAG(0, N,
M) .E
Q. '*') THEN
NSTAR -
NSTAR *
1 CALL REFRMT(DEL(J), IDIP, IDIPDR, ISLIP,
& XLAM(M))
14)'
)
PHI(N),
IDIPDR, IDIP, ISLIP
160
170
180
190
200
WRITE (STRING, '(14,
13,
IF (NSTAR .EG.
1) THEN
LINE - STRING
ELSE LINE - LINEUiiNSTAR -
1 )«
11 )//STR ING
END IF
U (NSTAR .EG.
11
) THEN
__
NSTAR -
0WRITE (PUNIT, 160) LINE
FORMAT ('
', A)
END IF
END IF
CONTINUE
IF (IPRNT .EQ.
1) WRITE (FUNIT, 180) IFIX(DEL(J )
),
& (IFIT(N), FLAGCJ, N,
M). N
- 1, NPHIF)
FORMAT
CONTINUE
CONTINUE
IF (NSTAR
,
14,
6X, 24(13, Al, IX
), //)
NE. 0) WRITE (PUNIT. 160) LINE
ACCUMULATE STATISTICS ON FIT PARAMETER DISTRIBUTION FOR BEST SOLUTIONS ONLY
IF (BEST) THEN
INDEX -
IFIX(FIT(J1, Nl, Ml)/.025) *
1IF
(INDEX .GT. 20) INDEX
20
NFIT(INDEX)
- NFIT(INDEX) *
1 END IF
RECOMPUTE MOMENT TENSOR REPRESENTATION FOR BEST SOLUTION TO CHECK FOR POLARITY DISCREPANCIES
STRIKE -
PHI(N1)*RAD
DIP
- DEL(J1)*RAD
SLIP *
XLAM(M1)*RAD
CALL SHRFLT (STRIKE, DIP, SLIP, TM)
DO 260 K
« 1, NR
cn CT»
210
1) THEN
NSTAT
.EG. STATU))
IF (NSTAT .GE.
00 210
I -
1IF
(STN(K) .EG. STATU)) GOTO 220
CONTINUE
END IF
NSTAT -
NSTAT *
1 IF (NSTAT .GT. MXSTAT) THEN
WRITE (EUNIT, *)
****« FPFIT ERROR t
* OF STATIONS HAVE
APOLARITY DISCEPANCIES EXCEEDS
', MXSTAT,
' *** *
WRITE (EUNIT, *)
' STATION
', STN(K),
&FINAL SUMMARY'
GOTO 240
END IF
I -
NSTAT
STAT(NSTAT)
« STN(K)
1)
- 0
2) - 0
0.
0.
NOT REPORTED IN
SCNTiNSTAT,
SCNT(NSTAT,
SCNTWT( NSTAT,
I )
SCNTWT(NSTAT, 2)
220
& IPWT
READ (PRMK(K),
' < 3X ,
ID
IF (PRMK(KHlil) .EQ.
*X
IPWT * MXQUAL/2
) IPWT
.OR.
PRMK(KHlil) .E
Q. 'V
')
C RECOMPUTE RADIATION PATTERN
CPRAD - 0
00 230 L
- 1,
6
PRAD -
PRAD * TM<L)*COEF(K, L)
230
CONTINUE
C C CHECK POLARITY AND UPDATE APPROPRIATE STATION COUNT
CIF <SIGN<0.5. PRAO) .NE.
POBS(K» THEN
IF (BEST) THEN
SCNT( I,
1)
- SCNTi I,
1)
* 1
SCNTWTU,
1)
- SCNTWTU.
1)
* & WTOBS(K)*SQRT(ABS<PRAO»
QCNTdPWT *
1,
1)
QCNTdPWT
1QCNTWTdPWT
& WTOBS(K)*SQRT(ABS(PRAD) )
END IF
BDFLAG -
*
ELSE BDFLAG -
' '
END IF
IF (BEST) THEN
SCNT( 1,2)- SCNTd ,
SCNTWTd, 2)
& WTOBS<K>*SQRT(ABS(PRAD) )
QC NT (IPWT +
1, 2) -
QCNTWTdPWT *
1, 2)
4 WTOBS(K)*SQRT(ABS(PRAO»
END
IF
1)
* 1
1,
1)
- QCNTWTdPWT +1,1)
2)
SCNTWTd,
QC
NT
dP
WT
*
1,
- Q
CN
TW
Td
PW
T2
) 1.
1 2)
C WRITE OUT TO POLARITY FILE
C 240
WRITE (PUNIT, 250) STN(K), DIST(K), AZ(K>, AIN(K),
& PRMK(K), WTOBS<K>/WTMAX, BDFLAG
250
FORMAT (IX, A4, 3F6.1. 3X
, A4, F5.2, 2X . AD
260
CONTINUE
WRITE (PUNIT, «)
*
END IF
C C END OF
SOLUTION LOOP
c 270
CONTINUE
IF (NSOL .GT.
1) WRITE (EUNIT, )
HAS MULTIPLE SOLUTIONS
**
EVENT
EVENTdil?),
C END OF EVENT
CGOTO 20
END
C C C C CLOGICAL FUNCTION FPINP (CUNIT, DDELC, DDELF, DEL0C, DFITC, DISTMX,
& DLAMC, DLAMF, DPHIC, DPHIF, ERATE. EUNIT. FMAGMN, IJEFF, IPRNT.
& IRES, IUNIT, KILSTA, MINOBS, MXDIP, MXQUAL, MXRAKE, MXSTAT,
& MXSTRK, NDELC, NDELF, NEV, NKIL, NLAMC, NLAMF, NPHIC, NPHIF,
& NREV, PHI0C, REVSTA, WEIGHT, XLAM0C)
READ IN
CONTROL PARAMETERS
INTEGER
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
INTEGER
REAL
INTEGER
INTEGER
INTEGER
CHARACIERM -
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
REAL
CHARACTERS
REAL
REAL
REAL
REAL
REAL
REAL
CHARACTER'80
INTEGER
CUNIT
DDELC
DDELF
DEL0C
DFITC
DLAMC
DLAMF
DPHIC
DPHIF
ERATE(MXQUAL)
EUNIT
FMAGMN
IJEFF
IPRNT
IRES
KILSTAtMXSTATK
MINOBS
MXDIP
MXQUAL
MXRAKE
MXSTAT
MXSTRK
NDELC
NDELF
NEV
NKIL
NLAMC
NLAMF
NPHIC
NPHIF
NREV
PHI0C
REVSTA(MXSTAT)
WEIGHT(MXQUAL)
XLAM0C
DDELCDF
DEL0CDF
DLAMFDF
DPHICDF
FILNAM
I
( INPUT) LOGICAL UNIT * OF INPUT CONTROL FILE
(OUTPUT) FAULT DIP INCREMENT IN
DEGREES FOR COARSE SEARCH
(OUTPUT) FAULT DIP INCREMENT IN DEGREES FOR FINE SEARCH
(OUTPUT) INITIAL FAULT DIP ANGLE IN DEGREES FOR COARSE SEARCH
(OUTPUT) INCREMENT TO COARSE FIT FUNCTION
(OUTPUT) FAULT RAKE INCREMENT IN DEGREES FOR COARSE SEARCH
(OUTPUT) FAULT RAKE INCREMENT IN DEGREES FOR FINE SEARCH
(OUTPUT) FAULT STRIKE INCREMENT IN
DEGREES FOR COARSE SEARCH
(OUTPUT) FAULT STRIKE INCREMENT IN
DEGREES FOR FINE SEARCH
(OUTPUT) ASSUMED WEIGHTED ERROR RATES FOR DATA. READ FROM CONTROL CARD
(INPUT) LOGICAL UNIT OF OUTPUT OF ERROR MESSAGES
(OUTPUT) MINIMUM PERMITTED MAGNITUDE
(OUTPUT) FLAGi 1(0)-DO (NOT) USE DATA WEIGHTED OUT BY JEFFREY'S WEIGHTING
(OUTPUT) FLAGi 1(0)-DO (NOT) PRINT OUT FIT PARAMETERS
(OUTPUT) FLAGt 0(
1 )
- ( UN )RESTR I
CTED SEARCH
IGNORED STATION 4tAMeS _ ___ _____ __ ___
(OUTPUT) MINIMUM NUMBER OF OBSERVATIONS REQUIRED
(INPUT) MAXIMUM # OF DIP INCREMENTS PERMITTED
(INPUT) MAXIMUM # OF QUALITIES PERMITTED
(INPUT) MAXIMUM * OF RAKE INCREMENTS PERMITTED
(INPUT) MAXIMUM # OF STATIONS PERMITTED
(INPUT) MAXIMUM # OF STRIKE INCREMENTS PERMITTED
(OUTPUT) NUMBER OF FAULT DIP INCREMENTS FOR COARSE SEARCH
(OUTPUT) DEFAULT NUMBER OF FAULT DIP INCREMENTS FOR FINE SEARCH
(OUTPUT) NUMBER OF EVENTS TO PROCESS
(OUTPUT) NUMBER OF IGNORED STATIONS
(OUTPUT) NUMBER OF FAULT RAKE INCREMENTS FOR COARSE SEARCH
(OUTPUT) DEFAULT NUMBER OF FAULT RAKE INCREMENTS FOR FINE SEARCH
(OUTPUT) NUMBER OF FAULT STRIKE INCREMENTS FOR COARSE SEARCH
(OUTPUT) DEFAULT NUMBER OF FAULT STRIKE INCREMENTS FOR FINE SEARCH
(OUTPUT) NUMBER OF REVERSED STATIONS
(OUTPUT) INITIAL FAULT STRIKE ANGLE IN
DEGREES FOR COARSE SEARCH
(OUTPUT) REVERSED STATION NAMES
(OUTPUT) WEIGHTS ASSOCIATED WITH QUALITIES
(OUTPUT) INITIAL FAULT RAKE ANGLE IN
DEGREES FOR COARSE SEARCH
DEFAULT FAULT DIP INCREMENT IN
DEGREES FOR COARSE SEARCH
DEFAULT INITIAL FAULT DIP ANGLE IN DEGREES FOR COARSE SEARCH
DEFAULT FAULT RAKE INCREMENT IN
DEGREES FOR FINE SEARCH
DEFAULT FAULT STRIKE INCREMENT IN DEGREES FOR COARSE SEARCH
NAME OF CONTROL FILE
DUMMY LOOP INDEX
cn 00
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
REAL
CHARACTER*4
CHARACTER*!
REAL
REAL
REAL
ICARD
INDEX!
INDEX2
IDS
NDELCDF
NDELFDF
NLAMCDF
NLAMFDF
NPHICDF
NPHIFDF
PHI0CDF
STATN
STATUS
TMP
XLAM0CDF
WT
INPUT LINE *
POSITION OF
']'
IN CONTROL AND DATA FILENAMES
POSITION OF
;'
IN CONTROL AND DATA FILENAMES
I/O STATUS SPECIFIER
DEFAULT NUMBER OF FAULT DIP INCREMENTS FOR COARSE SEARCH
DEFAULT NUMBER OF FAULT DIP INCREMENTS FOR FINE SEARCH
DEFAULT NUMBER OF FAULT RAKE INCREMENTS FOR COARSE SEARCH
DEFAULT NUMBER OF FAULT RAKE INCREMENTS FOR FINE SEARCH
DEFAULT NUMBER OF FAULT STRIKE INCREMENTS FOR COARSE SEARCH
DEFAULT NUMBER OF FAULT STRIKE INCREMENTS FOR FINE SEARCH
DEFAULT INITIAL FAULT STRIKE ANGLE IN DEGREES FOR COARSE SEARCH
SCRATCH STATION NAME
FLAGi R-REVERSED, K-IGNORED STATION
SCRATCH VARIABLE
DEFAULT INITIAL FAULT RAKE ANGLE IN DEGREES FOR COARSE SEARCH
SUM OF WEIGHTS
C SET UP DEFAULT GRID SPACING
CPARAMETER (PHI0CDF -
0. ,
DEL0CDF
PARAMETER (DPHICDF -
20., DDELCDF
PARAMETER (NPHICDF -
9, NDELCDF -
PARAMETER (DPHIFDF -
5., DDELFDF
PARAMETER (NPHIFDF -
19, NDELFDF
10., XLAM0CDF
20., DLAMCDF
-180.)
20. )
5, NLAMCDF -
18)
5., DLAMFDF -
10.)
19,
NLAMFDF -
7)
FILNAMdNDEXltINDEX2)
FILNAM<INDEX1tINDEX2)
FPINP -
.TRUE.
INQUIRE (CUNIT, NAME -
FILNAM)
INDEXI
INDEX(FILNAM, ']')
+ 1
INDEX2
INDEXCFILNAM,
':')
+ 2
WRITE (EUNIT, *) 'CONTROL FILE "
( INQUIRE (IUNIT, NAME -
FILNAM)
INDEXI
- INDEX(FILNAM. '!')
+ 1
INDEX2 -
INDEX(FILNAM, ';')
+ 2
WRITE (EUNIT, *) 'INPUT DATA FILE
ICARD
1READ (CUNIT, *,
ERR
- 1000) DISTMX. FMAGMN, MINOBS, IPRNT, IJEFF,
& NEV, DFITC
C C CHECK PARAMETERS
CIF
(DISTMX .LE. 0.) THEN
WRITE (EUNIT. *) *« ** FPINP ERRORt DISTMX .LE. 0 ******
FPINP -
.FALSE.
END IF
IF (IPRNT .NE. 0 .AND. IPRNT .NE.
1) THEN
WRITE (EUNIT, *) '***** FPINP ERRORi IPRNT .NE. 0 OR
1 ««**«
FPINP -
.FALSE.
END IF
IF (IJEFF .NE. 0 .AND. IJEFF .NE.
1) THEN
WRITE (EUNIT, *) *«*** FPINP ERRORi IOEFF .NE. 0 OR
1 ***«*'
FPINP -
.FALSE.
END IF
IF (MINOBS .LT. 0) THEN
WRITE (EUNIT. *) *»** FPINP ERRORi MINOBS LESS THAN 0 ******
FPINP -
.FALSE.
END IF
IF (NEV .LE. 0) THEN
WRITE (EUNIT, *> ****** FPINP ERRORi NEV .LE. THAN 0 ******
FPINP -
.FALSE.
END IF
IF
(DFITC .LT. 0) THEN
WRITE (EUNIT. *)
*** FPINP ERRORi DFITC .LT. THAN 0 ******
FPINP -
.FALSE.
ELSE
IF (DFITC .GE.
0.25) THEN
cn
WRITE (EUNIT, *)
****** WARNING* DFITC TRUNCATED TO 0.25 ******
END IF
C C READ IN
ESTIMATED WEIGHTED ERROR RATES FOR EACH QUALITY CLASS OF HAND-
C PICKED AND MACHINE-PICKED DATA.
CIF
(.NOT. FPINP) RETURN
ICARD -
1CARD +
1READ (CUNIT, *, ERR -
1000) (ERATE(I),
I -
1, MXQUAL/2)
ICARD -
ICARD +
1READ tCUNIT, *,
ERR -
1000) (ERATE(I),
I - MXQUAL/2 *
1, MXQUAL)
WT -
0.
C C CONVERT ESTIMATED ERROR RATES TO WEIGHTING FACTORS
CDO 10
I -
1. MXQUAL
IF (ERATE(I) .LT. 0.5) THEN
IF (ERATE(I) .LT. 0.001) ERATE(I) -
0.001
WEIGHTU)
- l./SQRT(ERATE(I)
- ERATEI 1
)*ERATE( I
»
ELSE
WEIGHTd )
- 0.0
END
IFWT - WT * WEIGHTd)
10
CONTINUE
IF (WT .Ed. 0.) THEN
WRITE (EUNIT, *)
****** FPINP ERROR« ALL WEIGHTS ARE 0 ******
FPINP -
.FALSE.
END
IF
C C READ IN
LIST OF REVERSED, IGNORED STATIONS
CIF
(.HOT. FPINP) RETURN
NREV -
1 NKIL
- 1
ICARD -
ICARD +
120
READ (CUNIT, 30
. END -
40,
ERR "
1000) STATUS, STATN
3*
FORMAT (Al, IX,
A4)
_...
____
_ __
_ ___ ____
IF (STATN .NE.
* ')
THEN
IF (STATUS .EQ.
*R*) THEN
REVSTA(NREV) - STATN
NREV -
NREV *
1 IF
(NREV .GT. MXSTAT) THEN
WRITE (EUNIT, *)
*** * FPINP ERRORi * OF REVERSED STATION
4S EXCEEDS
*, MXSTAT,
* * ***
FPINP -
.FALSE.
END IF
ELSE IF (STATUS .EQ. 'K') THEN
KILSTA(NKIL)
STATN
NKIL
- NKIL
+ 1
IF (NKIL .GT. MXSTAT) THEN
WRITE (EUNIT, *)
* *** FPINP ERROR« * OF IGNORED STATIONS
& EXCEEDS
', MXSTAT,
' ******
FPINP -
.FALSE.
END IF
_
ELSE
§WRITE (EUNIT, *)
****** FPINP ERRORs STATUS OF STATION
',
& STATN,
' .NE. "K"
OR "R"
******
FPINP -
.FALSE.
END
IF
GOTO 20
END IF
40
NKIL -
NKIL
- 1
NREV -
NREV -
1 C
C READ IN
OPTIONAL GRID SEARCH PARAMETERS
CIF <.NOT. FPINP) RETURN
ICARD
ICARD +
1READ (CUNIT,
*, IOSTAT -
IOS> PHI0C, PH11, DEL0C, DELI, XLAM0C,
& XLAM1, DPHIC, DDELC, DLAMC, DPH1F. DDELF, DLAMF
C C UNRESTRICTED SEARCH AREA
CIF
(IDS .LT. 0} THEN
IRES - 0
PH10C -
PHI0CDF
DPHIC -
DPHICDF
DPHIF -
DPHIFDF
PHII
- PHI0CDF *
(NPHICDF -
1)*DPHICDF
NPHIC -
NPHICDF
NPHIF -
NPHIFDF
DEL0C -
DEL0CDF
DDELC -
DDELCDF
DDELF -
DDELFDF
DELI
- DEL0CDF
* (NDELCDF -
1 )*DDELCDF
NDELC -
NDELCDF
NDELF - NDELFDF
XLAM0C - XLAM0CDF
DLAMC
DLAMCDF
DLAMF -
DLAMFDF
XLAM1 -
XLAM0CDF
* (NLAMCDF
- 1>*DLAMCDF
NLAMC -
NLAMCDF
NLAMF -
NLAMFDF
C C RESTRICED SEARCH AREA
CELSE
IF (IOS .EQ. 0) THEN
IRES -
1 C C
CHECK RESTRICTED STRIKE RANGE PARAMETERS FOR CONSISTENCY
CIF
(PHI0C .GT. PHI1> THEN
TMP -
PHII
PHII
- PHI0C
PH10C -
TMP
END IF
DPHI
- PHII
- PHI0C
IF ((PHI0C .LT. PH10CDF) .OR.
& (PHI0C .GT. PHI0CDF
* FLOAT(NPHICDF>*DPHICDF>> THEN
WRITE (EUNIT, 50) 'PH10C', PH10C, PH10CDF. PHI0CDF
* & FLOAT(NPHICDF)*DPHICDF
50
FORMAT
{
', ****** FP1NP ERRORi
', A6,
' (-
', F6.1,
& *>
OUTSIDE RANGE OF
', F6.1,
' -
', F6.1,
' *«*** )
FPINP -
.FALSE.
END IF
IF ((PHII .LT. PHI0CDF) .OR.
& (PHII
.GT. PHI0CDF
+ FLOAT(NPHICDF)*DPHICDF)> THEN
WRITE (EUNIT, 50> 'PHII', PHII, PH10CDF, PH10CDF
* 4
FLOAT(NPHICDF>"DPHICDF
FPINP -
.FALSE.
END IF
IF (DPHIC .LE. 0.> THEN
WRITE (EUNIT. 60) 'DPHIC'
60
FORMAT ('
',
* * * FPINP ERRORi
', AS,
& ' MUST BE GREATER THAN 0 * * )
FPINP -
.FALSE.
ELSE NPHIC -
INT(DPH1/DPHIC)
* 1
IF (NPHIC .GT. MXSTRK) THEN
WRITE (EUNIT, 70
) 'STRIKE', PHI1, PHI0C, OPHIC, MXSTRK
70
FORMAT ('
', * *» FP1NP ERRORi
', A6,
& ' RANGE TOO LARGE.
(',
F6.1,
' -
'. F6.1, ')/', F6.1,
& '
+ 1 GREATER THAN
',
12,
' )
FPINP -
.FALSE.
END
IF
END IF
IF (OPHIF .LE. 0.
) THEN
WRITE (EUNIT, 60) 'DPHIF*
FPINP -
.FALSE.
END
IF
C C CHECK RESTRICTED DIP RANGE PARAMETERS FOR CONSISTENCY
CIF (DEL0C .GT. DELI) THEN
TMP -
DELI
DELI -
DEL0C
DEL0C -
TMP
END IF
DDEL
- DELI
- DEL0C
IF ((DEL0C .LT. 0.) .OR. (DEL0C .GT. 90.)) THEN
WRITE (EUNIT, 50) 'DEL0C', DEL0C, 0., 90.
FPINP -
.FALSE.
END
IFIF
((DEL1C .LT. 0.) .OR. (DEL1C .G
T. 90.)) THEN
WRITE (EUNIT, 50) 'DEL1C', DEL1C, 0., 90
. FPINP -
.FALSE.
END IF
IF (DDELC .LE. 0.) THEN
WRITE <EW«T, 60) 'DDELC'
FPINP -
.FALSE.
ELSE NDELC -
INT(DDEL/DDELC)
* 1
IF (NDELC .GT. MXSTRK) THEN
WRITE (EUNIT, 70) 'DIP** DELI, DEL0C
t DDELC
t MXSTRK
____
_____ ___
FPINP -
.FALSE.
END IF
END IF
IF (DDELF .LE. 0.> THEN
WRITE (EUNIT, 60) 'DDELF*
FPINP -
.FALSE.
END IF
C C
CHECK RESTRICTED RAKE RANGE PARAMETERS FOR CONSISTENCY
CIF
(XLAM0C .GT. XLAM1 )
THEN
TMP -
XLAM1
XLAM1
XLAM0C
XLAM0C -
TMP
END IF
DLAM
XLAM1
- XLAM0C
IF ((XLAM0C .LT. XLAM0CDF) .OR.
& (XLAM0C .GT. XLAM0CDF * FLOAT(NLAMCDF)"DLAMCDF)) THEN
CT
WRITE (EUNIT. 50) 'XLAM0C', XLAM0C, XLAM0CDF, XLAM0CDF +
IND
* FLOAT(NLAMCDF)*DLAMCDF
FPINP -
.FALSE.
END
IFIF
((XLAM1
.LT. XLAM0CDF) .OR.
& (XLAM1 .GT. XLAM0CDF
* FLOAT(NLAMCDF)"DLAMCDF)) THEN
WRITE (EUNIT, 50) 'XLAM1', XLAM1, XLAM0CDF, XLAM0CDF
+ & FLOAT(NLAMCDF)*DLAMCDF
FPINP -
.FALSE.
END IF
IF (OLAMC .LE. 0.) THEN
WRITE (EUN1T. 60) 'DLAMC*
FPINP
* .FALSE.
ELSE NLAMC
= !NT(DLAM/OLAMC>
« 1
IF (NLAMC .GT. MXSTRK) THEN
WRITE (EUNIT, 70) 'RAKE
1, XLAMI, XLAM0C, DLAMC, MXSTRK
FPINP -
.FALSE.
END
IF
END
IFIF
(DIAMF
.LE. 0.> THEN
WRITE (EUNIT. 60) 'DLAMF'
FPINP
- .FALSE.
END
IF
C C READ ERROR
CELSEGOTO 1000
END IF
C C WRITE OUT PARAMETERS
CIF
(FPINP) THEN
WRITE (EUNIT, ") 'MAXIMUM EPICENTRAL DISTANCE
', DISTMX
WRITE (EUNIT, *) 'MINIMUM MAGNITUDE
', FMAGMN
WRITE (EUNIT, *) 'MINIMUM * OBSERVATIONS -
', MINOBS
IF (IPRNT .EQ.
1) THEN
WRITE (EUNIT, *> 'PARAMETER FIT FILE GENERATED (IPRNT -
1)*
ELSEWRITE (EUNIT, *> 'PARAMETER FIT FILE SUPPRESSED (IPRNT -
0)'
END IF
IF
((JEFF
.EO.
1) THEN
WRITE (EUNIT. *> 'PHASE DATA REJECTED BY JEFFREYS" WEIGHTING
^INCLUDED (IJEFF -
1)'
ELSEWRITE (EUNIT, ) 'PHASE DATA REJECTED BY JEFFREYS" WEIGHTING
^EXCLUDED (IJEFF
0>*
END IF
WRITE (EUNIT. *) 'UPTO
', NEV,
* EVENTS PROCESSED'
WRITE (EUNIT, ) 'MISFIT RANGE FOR RELATIVE MINIMA IN COARSE SEA
4RCH -
' .OF1TC
WRITE
(EUNIT, 80)
80
FORMAT ('0', 'HAND-PICKED DATAi
QUALITY
WEIGHT
WEIGHTE
4D ERROR RATE (EST. )
' )
DO 100 1-1, MXQUAL/2
WRITE (EUNIT, 90)
I -
1, WEIGHT(I), ERATE(I)
90
FORMAT ('
', 23X.
12.
7X. F6.3. SX, F6.3)
100
CONTINUE
WRITE
(EUNIT, 110)
110
FORMAT ('0'. 'MACHINE-PICKED DATAi QUALITY
WEIGHT
WEIGHTE
40 ERROR RATE (EST.>'>
DO 120
1 - MXQUAL/2 +
1. MXQUAL
WRITE (EUNIT. 90)
1 - MXQUAL/2 -
1, WEIGHT(I), ERATE(l)
120
CONTINUE
IF (NKIL .GT. 0) THEN
WRITE (EUNIT, > 'THE FOLLOWING STATIONS IGNORED IN FAULT-PLAN
*E CALCULATIONS'
DO 130
I -
1, NKIL
WRITE (EUNIT, «> KILSTA(l)
130
CONTINUE
END IF
IF (IRES .EO.
1) THEN
WRITE (EUNIT, 140)
140
150
160
170
180
190
FORMAT ('0',
'RESTRICTED SEARCH RANGEi
& FINE SEARCH')
WRITE (EUNIT, 150)
FORMAT
('
', T28,
A'START
END
INCRMNT
* INCRMNTS
INCRMNT
1
COARSE SEARCH
/, T28,
WRITE (EUNIT, 160) 'STRIKE:
FORMAT('
', T19, A8, 3(F6.1
WRITE (EUNIT, 160)
' DIP»
WRITE (EUNIT, 160)
' RAKEt
& DLAMF
ELSEWRITE (EUNIT,
FORMAT (*0*,
', PHI0C, PHII, DPHIC, NPHIC.DPHIF
2X), 9X.
12.
9X,
F6.1, 9X,
IZ)
'. DEL0C. DELI.
DDELC, NDELC,DDELF
', XLAM0C, XLAM1, DLAMC, NLAMC,
WRITE (EUNIT,
FORMAT
( '
' ,
A'START
END
4 /, T28,
170)
'UNRESTRICTED SEARCH RANGE«
FINE SEARCH* )
180)
T28,
INCRMNT
COARSE SEARCH
0 INCRMNTS
INCRMNT
# IN
CRMN
TS'
WRITE (EUNIT, 160) 'STRIKE:
& DPHIF. NPHIF
WRITE (E
UNIT
, 16
0)
' DIPi
& DDELF, NDELF
WRITE (EUNIT, 16
0)
' RAKE >
& DLAMF, NLAMF
END IF
WRITE (E
UNIT
, 19
0)
FORMAT
( '0'
) END
IF
RETURN
PHI0C. PHII,
DPHIC, NPHIC,
DEL0C, DELI, DDELC, NDELC,
, XLAM0C, XLAM1, DLAMC, NLAMC.
C READ ERROR
C 1000
WRITE (EUNIT, 1010) ICARD. CUNIT
1010
FORMAT
('
', '**** FPINP ERRORi READ ERROR ON LINE
& ' ON LOGICAL UNIT ',12,
' " ** )
_____________
13.
FPINP
RETURN
.FALSE.
END
C C C CSUBROUTINE READEQ (AIM. AZ, DIST, DISTMX, EUNIT, EVENT, FMAGMN,
& IJEFF, IUNIT, KILSTA, MINOBS, MXQUAL, MXSTAT, NKIL,
NR,
NREV,
& POBS,
PRCNTX, PRMK,
REVSTA, SIGMAF, ST
N, SUMWT, WEIGHT, WTOBS)
C C READS HYP071 OUTPUT LISTING. RETURNS SUMMARY CARD AND CORRESPONDING PHASE FIRST MOTIONS, QUALITITES, ANGLES OF
INCIDENCE,
C STATION NAMES, AND AZIMUTHS.
CALCULATES STANDARD DEVIATION (SIGMAF) OF FIT FROM ESTIMATED STANDARD DEVIATIONS OF TH
E DATA.
C THE
ESTIMATED DATA ERRORS ARE CONTROL-FILE IN
PUTS
: CORRESPONDING DATA WEIGHTS ARE CALCULATED IN MAIN AND PASSED TO THIS
C ROUTINE IN
THE PARAMETER "WEIGHT".
REAL
REAL
REAL
REAL
INTEGER
CHARACTER*80
REAL
INTEGER
INTEGER
CHARACTER'4
AIN(MXSTAT)
AZ(MXSTAT)
DIST(MXSTAT)
DISTMX
EUNIT
EVENT
FMAGMN
IJEF
FIUNIT
KILSTA(MXSTAT)
(OUTPUT) RAY INCIDENCE ANGLES
(OUTPUT) RAY AZIMUTH ANGLES (CORRESPONDING TO AIN)
(OUTPUT) EPICENTRAL DISTANCE
(INPUT) MAXIMUM PERMITTED EPICENTRAL DISTANCE
(INPUT) LOGICAL UNIT *
OF OUTPUT OF
ERROR MESSAGES
(OUTPUT) SUMMARY CARD
(INPUT) MINIMUM PERMITTED MAGNITUDE
(INP
UT)
FLAGt
1(0)-DO (NOT)
USE
DATA WEIGHTED OUT BY
JEFFREY'S WEIGHTING
(INPUT) LOGICAL UNIT *
OF HYP071 LISTING FILE (INPUT FILE)
(INP
UT)
IGNORED STATION NAMES
CT>
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
REAL
REAL
CHARACTER*4
CHARACTER*4
REAL
CHARACTER*4
REAL
REAL
REAL
CHARACTER*!
REAL
INTEGER
INTEGER
CHARACTER*2
INTEGER
INTEGER
CHARACTER*80
CHARACTER*!
INTEGER
CHARACTER*4
REAL
REAL
MINOBS
MXQUAL
MXSTAT
NKIL
NR NREV
POBS(MXSTAT)
PRCNTX
PRMK(MXSTAT)
REVSTA(MXSTAT)
SIGMAF
STN( MXSTAT)
SUMWT
WEIGHT(MXQUAL )
WTOBS( MXSTAT)
FM FMAG
IPWT
J JFRYWT
JWT
K LINE
M NCLAS<20)
TEST
VARF
WT
(INPUT) MINIMUM NUMBER OF OBSERVATIONS REQUIRED
(INPUT) MAXIMUM * OF QUALITIES PERMITTED
(INPUT) MAXIMUM * OF STATIONS PERMITTED
(INPUT) NUMBER OF IGNORED STATIONS
(OUTPUT) -1=EOF, 0-SKIP EVENT, NR
>0
-> NUMBER OF STATIONS
(INPUT) NUMBER OF REVERSED STATIONS
(OUTPUT) OBSERVED FIRST MOTION POLARITIES: .5-COMPRESSION, -.5-DILATATION
(OUTPUT) X
OF STATIONS THAT ARE MACHINE PICKED
(OUTPUT) FIRST MOTION DESCRIPTION (EG. IPU0)
(INPUT) REVERSED STATION NAMES
(OUTPUT) CALCULATED STANDARD DEVIATION OF
FIT BASED ON DATA ERRORS
(OUTPUT) STATION NAMES
(OUTPUT) SUM OF OBSERVED FIRST MOTION WEIGHTS
(INPUT) WEIGHTS ASSOCIATED WITH QUALITIES
(INPUT) OBSERVED FIRST MOTIONS WEIGHTS
FIRST MOTION DIRECTION (U
, D,
+, -)
EVENT MAGNITUDE
OUALIITY ASSIGNED TO P ARRIVAL
DUMMY LOOP INDEX
FLAGi
'**'
DENOTES P ARRIVAL TIME UNRELIABLE BY JEFFREYS' WEIGHTING
INDEX FOR DATA WEIGHT
COUNTER OF GOOD PHASE READINGS
LINE OF HYP071 STATION OUTPUT
TEST FOR FORTRAN CARRIAGE CONTROL
NUMBER OF OBSERVATIONS IN
EACH DATA CLASS
2ND-6TH CHARACTERS OF LINE OF HYP071 OUTPUT
CALCULATED VARIANCE IN
FIT BASED ON DATA ERRORS.
WEIGHT ASSIGNED TO P ARRIVAL
C RESET VALUES
CDO 10
I -
1, MXQUAL
NCLASU) 0
10
CONTINUE
C C FIND LINE PRIOR TO SUMMARY CARD
CPRCNTX -
0.SUMWT
0.20 30
1000) TEST
READ (IUNIT, 30, END
FORMAT (2X, A4)
IF (TEST .NE. 'DATE') GOTO 20
C READ SUMMARY CARD
CREAD (IUNIT, 40
, END -
1000) EVENT
40
FORMAT (IX, AB0)
READ (EVENT, *(45X, F5.2)*> FMAG
C C CHECK MAGNTITUDE
CIF (FMAG .LT. FMAGMN) THEN
NR -
0
RETURN
END
IFREAD (IUNIT, 30
. END -
1000) TEST
READ (IUNIT, 30
, END -
1000) TEST
C C CHECK WHETHER PHASE DATA OR FOCAL MECHANISM FOLLOW
CIF (TEST .NE.
'STN
') GOTO 20
K -
I 50
STN(K) -
' '
CT>
cn
READ MUNIT. 60, END
70)
LINE
60
rORMAT (A)
READ (LINE, '(Al, A4)' )
M,
STN(K)
C C CHECK FOR END OF PHASE DATA
C 70
IF (M .EQ.
'!'
.OR. STN(K> .E
Q.
* ') THEN
C C END OF EVENT
CIF (K -
1 .GE. MINOBS) THEN
NR
- K
- 1
PRCNTX -
PRCNTXXFLOAT(NR)
VARF1
- 0.
VARF2 -
0.
DO 80 OUT
1, MXQUAL
IF (WEIGHT(JWT) .GE.
.0001) THEN
VARF1
- VARFI +
NCLAS(JWT)
VARF2 - VARF2 +
NCLAS(JWT>*WEIGHT(JWT)
END IF
80
CONTINUE
VARF
- VARFI/<VARF2*VARF2)
SIGMAF- SQRT(VARF)
ELSE NR - 0
END IF
RETURN
END
IF
C C CHECK FOR REPEATED PHASE CARD
CIF (K .GT. 2)
THEN
DO 100 J
- 1
, K
- 1
IF (STN(K) .EQ. STN<0>) THEN
WRITE <EUNIT, 90) STN(K), EVENT(ltlB)
90
FORMAT (
f,
****** READEQ ERROR:
*. A4.
&
' H
AS
M
UL
TIP
LE
P
HA
SE
C
AR
DS
FO
R
EV
EN
T:'
, A
18
,
***** )
G
tJT
O S
flT
END IF
100
CONTINUE
END IF
C C IGNORE THIS STATION?
CIF (NKIL .GT. 0) THEN
DO 110
1
1, NKIL
IF (STN(K) .EQ. KILSTA(I)) GOTO 50
110
CONTINUE
END
IF
C C SO FAR, SO GOOD: NOW CHECK PHASE CARD FOR POLARITY. DISTANCE, JEFFREYS* WEIGHTING, QUALITY
CREAD (LINE, 120) DIST(K), AZ(K), AIN(K). PRMK(K), OFRYWT
120
FORMAT <6X, F5.1,
IX,
F3.0, IX,
F3.J
&, IX,
A4, 35X, A2)
READ <PRMK<K>, '<2X, Al, II)') FM,
IPWT
IF <FM .NE.
'Uf
.AND. FM .N
E.
'D'
.AND. FM .N
E.
'+'
.AND.
& FM .NE.
'-'
) GOTO 50
IF (DIST(K) .GT. D1STMX) GOTO 50
IF (1JEFF
.EQ.
0 .AND.
JFRYWT .E
Q. * ) GOTO 50
IF (IPWT .GE. MXQUAL/2) THEN
WT »
0.ELSE
IF (PRMK(K)d «1
> .E
O.
'X'
.OR.
PRMK(KHlsl) .EQ. 'Y
') THEN
JWT -
IPWT +
MXQUAL/2 +
1 WT » WEIGHT(JWT)
IF (WT .NE. 0.) PRCNTX -
PRCNTX +
1.
ELSE JWT -
IPWT *
1 WT - WEIGHT(JWT)
END
IFIF (WT
.EQ. 0. )
GOTO 50
C C FLIP POLARIITES IF STATION IS DESIGNATED AS REVERSED
CDO 130
I -
1, NREV
IF (STN(K> .EQ. REVSTA(I» THEN
IF
(FM
.E
Q.
*U')
P
RM
K(K
)(3»3)
*D
' IF
(F
M
.EQ
. 'D
'>
PR
MK
(K)(
3i3
) -
'IT
IF
(F
M
.EQ
. '*
')
PR
MK
(KM
3i3
) -
'-'
IF
(FM
.E
Q.
'-')
P
RM
K(K
)(3i3
) -
'+'
FM
- P
RM
K(K
M3
i3)
EN
D
IF130
CO
NT
INU
E
CN
CL
AS
(JW
T)
- N
CL
AS
(OW
T)
+ 1
WT
OB
S(K
) -
WT
SUMWT - SUMWT + WT
IF (FM .EQ.
'U'
.OR. FM .E
Q. '+
') THEN
POBS(K) -
.5
ELSE POBS(K)
- -.5
END
IF
C C INCREMENT K AND CHECK NUMBER AGAINST ARRAY DIMENSIONS
CK
- K
+ 1
IF (K
.GT. MXSTAT) THEN
WRITE (EUNIT, *> *** * REAOEQ ERROR» NUMBER OF STATIONS READI
4NGS EXCEEDS
', MXSTAT, 'FOR EVENTi', EVENT(IiIB),
' ** *
IF (NR .GT. MI
NOBS) THEN
NR
- K
- 1
PRCNTX - PRCNTX/FLOAT(NR>
ELSE NR
- 0
END IF
RETURN
END
IF
C C READ ANOTHER PHASE
CGOTO 50
C C END OF FILE
C 1000
NR
-1
RETURN
END
C C C C CSUBROUTINE FPOUT (DDELF, DLAMF, DPHIF, ERATE, EUNIT, IEVP, IEVR,
8. IND, IRES, MXDIP, MXQUAL, MXRAKE, MXSTAT, MXSTRK, NDELF, NDRNG,
4 NFIT, NLAMF, NPHIF, NREV, NRRNG, NSRNG, NSTAT, QCNT, QCNTWT,
& REVSTA, SCNT, SCNTWT, STAT)
C C GENERATE SUMMARY LISTING OF POLARITY DISCREPANCIES AS A
FUNCTION OF STATION AND QUALITY, THE DISTRIBUTION OF
C FIT PARAMETERS, AND THE DISTRIBUTION OF DIP, STRIKE, AND RAKE RANGES ABOUT BEST FIT SOLUTION
REAL
REAL
REAL
REAL
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
REAL
CHARACTER*4
INTEGER
REAL
CHARACTER*4
CHARACTER*2
INTEGER
INTEGER
INTEGER
IN 1
tlitK
INTEGER
REAL
CHARACTER"!
REAL
DDELF
DLAMF
DPHIF
ERATE(MXQUAL)
EUNIT
IEVP
IEVR
INO(MXSTAT)
IRES
MXDIP
MXQUAL
MXRAKE
MXSTAT
MXSTRK
NDELF
NDRNG(MXDIP)
NFIT<20>
NLAMF
NPHIF
NREV
NRRNG(MXRAKE)
NSRNG(MXSTRK)
NSTAT
QCNT(MXQUAL.2>
QCNTWT( MXQUAL, 2)
REVSTA(MXSTAT)
SCNTC MXSTAT, 2)
SCNTWTC MXSTAT, 2)
STAT( MXSTAT)
ESTAR
I J NATOT
HDTOT
NTOT
RATE
STAR
WTOT
(INPUT) FAULT DIP INCREMENT IN
DEGREES FOR FINE SEARCH
(INPUT) FAULT RAKE INCREMENT IN
DEGREES FOR FINE SEARCH
(INPUT) FAULT STRIKE INCREMENT IN
DEGREES FOR FINE SEARCH
INPUT) ESTIMATED WEIGHTED ERROR RATES
INPUT) LOGICAL UNIT * OF OUTPUT OF
ERROR MESSAGES
INPUT) * OF EVENTS PROCESSED
INPUT) * OF EVENTS READ
INPUT) POINTER ARRAY TO SORTED ORDER
INPUT) FLAGi 0(1)-(UN)RESTRICTED SEARCH
INPUT) MAXIMUM * OF DIP INCREMENTS PERMITTED
INPUT) MAXIMUM # OF QUALITIES PERMITTED
INPUT) MAXIMUM * OF RAKE INCREMENTS PERMITTED
INPUT) MAXIMUM # OF STATIONS PERMITTED
INPUT) MAXIMUM * OF STRIKE INCREMENTS PERMITTED
INPUT)
OF FAULT DIP INCREMENTS FOR FINE SEARCH
INPUT)
OF DIP SOLUTION RANGES BINNED INTO DDELF DEGREE INCREMENTS
INPUT)
OF SOLUTIONS BINNED INTO .025 FIT INCREMENTS
INPUT)
OF FAULT RAKE INCREMENTS FOR FINE SEARCH
INPUT)
OF FAULT STRIKE INCREMENTS FOR FINE SEARCH
INPUT)
OF REVERSED STATIONS
INPUT)
OF RAKE SOLUTION RANGES BINNED INTO DLAMF DEGREE INCREMENTS
INPUT)
OF STRIKE SOLUTION RANGES BINNED INTO DPHIF DEGREE INCREMENTS
INPUT) TOTAL # OF STATIONS REPORTING FOR ENTIRE DATA SET
INPUT) INDX 1-* OF DSCRPNT PLRTIES FOR OLITY, INDX 2-* OF OBSERVATIONS
INPUT) INDX 1-WEIGHTED * DSCRPNT PLRTIES FOR QLITY, INDX 2-SUM OF WEIGHTS
INPUT) REVERSED STATION NAMES
INPUT) INDEX I-* OF DSCRPNT POLARITIES FOR STAT, INDEX 2-* OF OBSRVATIONS
INPUT) INDX 1-WEIGHTED * DSCRPNT POLRTIES FOR STAT, INDX 2-SUM OF WEIGHTS
INPUT) NAMES OF ALL STATIONS REPORTING
FLAG INDICATES LARGE DISCREPANCY BETWEEN ACTUAL AND ESTIMATED ERROR RATES
LOOP INDEX
DUMMY VARIABLE
SUM OF * OF POLARITIES IN
AGREEMENT WITH SOLUTION
SUM OF OF POLARlTrES-Ttr IHSCftgyANCY WITH SOLUTION
TOTAL * OF OBSERVATIONS
WEIGHTED ERROR RATE PER QUALITY CLASS
DENOTES STATION DESIGNATED AS REVERSED
SUMMATION OF WEIGHTS OVER ALL STATIONS
NDTOT - 0
NTOT - 0
WTOT -
0.DO 5
I -
I. NSTAT
NDTOT -
NDTOT *
SCNT(I,
1)
NTOT -
NTOT *
SCNT(I, 2)
WTOT - WTOT * SCNTWTU, 2)
6 CONTINUE
NATOT -
NTOT -
NDTOT
C C WRITE OUT SUMMARY OF POLARITY DISCREPANCIES BY STATION
CWRITE (EUNIT, 10)
10
FORMAT ('0', 'SUMMARY OF STATIONS HAVING POLARITIES IN
DISCREPANCY
& WITH BEST FIT SOLUTION (*
DENOTES REVERSED STATION)',
/,
& ' STATION
DISCREPANCIES
AGREEMENTS
TOTAL
4WEIGHTED ERROR RATE
TOTAL ERROR CONTRIBUTION', />
C C
SORT STATIONS ALPHABETICALLY
CCALL CSORT <STAT, IND, NSTAT)
DO 40
I -
1, NSTAT
J -
IND( I
>
CO
STAR -
' '
DO 20 K
- 1,
NREV
IF <STAT(J) .EO. REVSTA(K)) STAR -
'*'
20
CONTINUE
WRITE (EUNIT. 30) STAR, STAT(J), SCNT<J. 1),
SCNT(J, 2)
-
& SCNTCJ,
1),
SCNTCJ, 2)
, SCNTWT(J, 1)/SCNTWT(J, 2)
, &
SCNTWT(J, 1J/WTOT
30
FORMAT ('
',
Al, A4, 3<10X, 15
), 9X, F6.3, 10
X, F6.4)
40
CONTINUE
WRITE (EUNIT, 50) NDTOT, NATOT, NTOT
50
FORMAT ('0', 'TOTAL
1, 3U0X, 15))
C C
WRITE OUT SUMMARY OF HAND-PICKED POLARITY DISCREPANCIES BY READING QUALITY
CWRITE (EUNIT, 70)
70
FORMAT ('0', 'SUMMARY OF HAND-PICKED DATA WITH RESPECT TO
& BEST FIT SOLUTIONS',
/,&
QUAL
DISCREPANCIES
AGREEMENTS
TOTAL
& WEIGHTED ERROR RATE', /)
NDTOT - 0
NTOT - 0
DO 90
I -
1, MXQUAL/2
ESTAR
- '
'NDTOT -
NDTOT +
QCNTC1,
1)
NTOT -
NTOT + QCNT(1,2)
IF {QCNTWTd. 2)
.E
Q. 0.) THEN
RATE -
0.
ELSE RATE QCNTWTU, 1)/QCNTWT(1, 2)
IF
(RATE .GE. 0.0001) THEN
IF (ABS( (ERATEU )-RATE )/RATE) .G
E. 0.2) ESTAR -
'**'
END IF
END IF
WRITE (EUNIT, 80)
1 -
1, QCNTd, 1)
, QCNTd, 2)
-
& QCNTd, 1). QCNTd, 2)
, RATE, ESTAR
80
FORMAT ('
', 2X
. II,
2X.
3(10X, 15
), 9X,
F6.4,
IX,
A3)
90
CONTINUE
NATOT -
NTOT -
NDTOT
WRITE (EUNIT, 50) NDTOT, NATOT, NTOT
C C WRITE OUT SUMMARY OF MACHINE-PICKED POLARITY DISCREPANCIES BY READING QUALITY
CWRITE (E
UNIT
, 11
0)110
FORMAT C0', 'SUMMARY OF MACHINE-PICKED DATA WITH RESPECT TO
& BEST FIT SOLUTIONS',
/,&
' QUAL
DISCREPANCIES
AGREEMENTS
TOTAL
& WEIGHTED ERROR RATE', /)
NDTOT - 0
NTOT - 0
DO 120
I - MXQUAL/2 +
1, MXQUAL
ESTAR -
' '
NDTOT
NDTOT + QCNTd,
1)
NTOT -
NTOT + QCNTd, 2)
IF (QCNTWTd, 2)
.E
Q. 0.)
THEN
RATE
0.
ELSE RATE - QCNTWTd, l)/QCNTWTd, 2)
IF (RATE .GE. 0.0001) THEN
IF (ABS((ERATEd)-RATE)/RATE> .GE. 0.2)
ESTAR -
'**'
END IF
END IF
WRITE (EUNIT, 80)
1 - MXQUAL/2
- 1, QCNTd, 1),
QCNTd, 2)
-
& QCNTd,
1), QCNTd, 2)
, RATE, ESTAR
120
CONTINUE
NATOT -
NTOT -
NOTOT
WRITE <EUNIT, 50) NOTOT, NATOT, NTOT
C C WRITE OUT DISTRIBUTION OF FIT PARAMETERS
CWRITE <EUNIT, 130)
130
FORMAT C0', 'DISTRIBUTION OF SOLUTION MISFIT SCORES', /,
4
IX,
' MISFIT SCORE
**)
DO 150
I -
1, 20
WRITE (EUNIT, 140) FLOATU
- 1>*.025, FLOAT(I)*.025, NFIT(I)
140
FORMAT <*
', F5.3,
-
', F5.3, 3X,
15)
150
CONTINUE
C C WRITE OUT DISTRIBUTION OF DIP, STRIKE, RAKE RANGES FOR UNRESTRICTED SEARCHES
CIF
(IRES .Ed. 0} THEN
WRITE (EUNIT, 160)
160
FORMAT C0', 'DISTRIBUTION OF SOLUTION DIP RANGES', /.
& IX,
' RANGE
*' )
DO IB0
I -
1, NDELF
WRITE (EUNIT, 170) FLOATU -
1>*DDELF, NDRNG(I)
170
FORMAT
('
',
IX,
F5.1, 5X, 15)
180
CONTINUE
WRITE (EUNIT, 190)
190
FORMAT ('0', 'DISTRIBUTION OF SOLUTION STRIKE RANGES', /,
&
IX,
' RANGE
*')
DO 200
I -
1, NPHIF
WRITE (EUNIT, 170) FLOAT(I -
1)*DPHIF, NSRNG(I)
200
CONTINUE
WRITE (EUNIT, 210)
210
FORMAT ('0', 'DISTRIBUTION OF SOLUTION RAKE RANGES', /,
& IX,
' RANGE
*')
DO 220
I -
1, NLAMF
WRITE (EUNIT, 170) FLOATd -
I>*DLAMF, NRRNGU)
220
CONTINUE
____ END IF
C
WRITE (EUNIT, )
'
' WRITE (EUNIT, )
IEVR,
' EVENTS READ,
', IEVP,
' PROCESSED'
'
C C C C C C C C C C 10 C
RETURN
END
SUBROUTINE CSORT(CX.
IX,
N)
INDIRECT SORT ROUTINE
STORES ASCENDING SORT
INTEGER
CHARACTER** )
INTEGER
INTEGER
INTEGER
INTEGER
DO 10
I -
1, N
IX(
I )
- I
CONTINUE
FROM MEISSNER &
ORGANIC*, P.
352
ORDER OF CX
IN
ARRAY IX
, LEAVING
IX(*
)CX<*)
N I J NEXT
CX UNCHANGED
(OUTPUT) POINTER ARRAY TO SORTED
(INPUT) ARRAY TO BE
SORT
(INPUT) NUMBER OF ELEMENTS TO BE
LOOP INDEX
LOOP INDEX
INDE
X INTO CX
ORDER
SORTED
DO 40 J
- 1,
N
- 1
NEXT -
IX(J *
1 )
DO 20
I
J,
I ,
-1IF
(CX(NEXT) .GT. CX(IX(I») GOTO 30
IX(I
* 1
)
IX< I)
CONTINUE
IX(I
* 1)
-
NEXT
CONTINUE
RETURN
END
20
30
40
C C C C C CSUBROUTINE SEARCH (BOT, COEF, DDEL, DEL, DELC, DEL0. DFIT. DLAM,
& DPMI, FIRST, FIT, FITMIN, FLAG, GFIT, IGOOD, IPRNT, 01, Ml,
& MXDIP, MXRAKE, MXSTAT, MXSTRK, Nl.
NOEL, NG
, NLAM, NPHI, NR,
& NSTAR, PHIS, PHISC, PHIS0, POBS, RAD, VTOBS, XLAM, XLAMC, XLAM0)
C C LOOP OVER THE ENTIRE FOCAL MECHANISM SPACE, COMPUTE FIT PARAMETER FOR EACH SOLUTION, AND RETURN BEST FIT INDICES
C IN CASE OF TIE FIT. CHOOSE FIT WITH LARGEST 'BOT".
IF FINE SEARCH (FIRST -
FALSE) THEN FILL IN
FLAG ARRAY WITH
C STARS FOR SOLUTIONS WITH FIT PARAMETER <- BEST FIT +
DFIT
C(OUTPUT) SUM OF PRODUCT OF OBSERVED AND PREDICTED WEIGHTS
(INPUT) COEFFICIENTS BY WHICH TM MULTIPLIED TO GIVE P RADIATION PATTERN
(INPUT) FAULT DIP INCREMENT IN
DEGREES
(OUTPUT) FAULT DIP ANGLE IN
DEGREES
(OUTPUT) FAULT DIP ANGLE FOR COARSE SEARCH
(INPUT) INITIAL FAULT DIP ANGLE IN DEGREES
(INPUT) INCREMENT TO FIT FUNCTION
(INPUT) FAULT RAKE INCREMENT IN
DEGREES
(INPUT) FAULT STRIKE INCREMENT IN
DEGREES
(INPUT) FLAGt TRUE-FIRST TIME INTO SUBROUTINE SEARCH
(OUTPUT) WEIGHTED MEASURE OF AGREEMENT BETWEEN OBS, PRED POLARITIES
(OUTPUT) FIT OF BEST SOLUTION CORRESPONDING TO FIT(J1, NI ,
Ml)
(OUTPUT)
IF FIT <
FITLIM THEN '*',
OTHERWISE BLANK
(OUTPUT) FITS OF GOOD SOLUTIONS FROM COARSE SEARCH
(OUTPUT) ARRAY CONTAINING INDICES OF GOOD SOLUTIONS (COARSE)
(OUTPUT) FLAGt I(0)-DO (NOT) PRINT OUT FIT PARAMETERS
(OUTPUT) DIP INDEX OF BEST SOLUTION
(OUTPUT) RAKE INDEX OF BEST SOLUTION
(INPUT) MAXIMUM * OF DIP INCREMENTS PERMITTED
(INPUT) MAXIMUM * OF RAKE INCREMENTS PERMITTED
(INPUT) MAXIMUM * OF STATIONS PERMITTED
(INPUT) MAXIMUM * OF STRIKE INCREMENTS PERMITTED
(OUTPUT) STRIKE INDEX OF BEST SOLUTION
(INPUT) NUMBER OF FAULT DIP INCREMENTS
(OUTPUT) NUMBER OF GOOD SOLUTIONS IN
COARSE SEARCH
(INPUT) NUMBER OF FAULT RAKE INCREMENTS
(INPUT) NUMBER OF FAULT STRIKE INCREMENTS
(INPUT) -1-EOF, 0-NR<MINOBS. NR>0 -> NUMBER OF STATIONS
(OUTPUT) NUMBER OF SOLUTIONS HAVING FIT WITHIN 5X OF FITMIN
(OUTPUT) FAULT STRIKE ANGLE IN
DEGREES
(OUTPUT) FAULT STRIKE ANGLE IN
DEGREES FOR COARSE SEARCH
(INPUT) INITIAL FAULT STRIKE ANGLE IN DEGREES
(INPUT) OBSERVED FIRST MOTION POLARITIES; .5-COMPRESSION, -.5-DILATATION
(INPUT) CONVERSION FROM DEGREES TO RADIANS
(INPUT) OBSERVED FIRST MOTIONS WEIGHTS
(OUTPUT) FAULT RAKE ANGLE IN
DEGREES
(OUTPUT) FAULT RAKE ANGLE IN
DEGREES FOR COARSE SEARCH
(INPUT) INITIAL FAULT RAKE ANGLE IN DEGREES
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
LOGICAL
REAL
REAL
CHARACTER*!
REAL
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
BOT(MXDIP,MXSTRK,MXRAKE)
COEF(MXSTAT,6)
DDEL
DEL(MXDIP)
DELC(MXDIP)
DEL0
DFIT
DLAM
DPHI
FIRST
FIT(MXDIP,MXSTRK,MXRAKE)
FITMIN
FLAG(MXDIP,MXSTRK,MXRAKE)
GFIT(MXDIP*MXSTRK*MXRAKE>
IGOOD(MXDIP*MXSTRK*MXRAKE,4>
IPRNT
01 Ml MXDIP
MXRAKE
MXSTAT
MXSTRK
Nl NOEL
NG NLAM
NPHI
NR NSTAR
PHIS(MXSTRK)
PHISC(MXSTRK)
PHIS0
POBS(MXSTAT)
RAD
WTOBS(MXSTAT)
XLAM(MXRAKE)
XLAMC(MXRAKE)
XLAM0
REAL
BEST
I LARGEST BOT FOR SOLUTIONS WITH FIT-FITMIN (IE. TIES)
REAL
LOGICAL
REAL
INTEGER
INTEGER
INTEGER
REAL
REAL
REAL
REAL
REAL
REAL
REAL
DIP
FIRST1
FITL1M
J M N PRAD
PTH
SLIP
STRIKE
TM(6)
TOP
WTTH
FAULT DIP ANGLE IN
RADIANS
TEST FOR FIRST TIME INTO ROUTINE
UPPER BOUND ON "GOOD' SOLUTIONS IN
SEARCH
LOOP INDEX OVER DIP
LOOP INDEX OVER RAKE
LOOP INDEX OF STRIKE
RADIATION AMPLITUDE CORRESPONDING AIN, PHI.
(DILATATION) -1.<PRAD<+1.(COMPRESSION)
PREDICTED FIRST MOTION POLARITY; SAME CONVENTION AS FOR POBS
FAULT SLIP ANGLE IN
RADIANS
FAULT STRIKE ANGLE IN
RADIANS
MOMENT TENSOR IN
UPPER TRIANGULAR SVMETRIC STORAGE MODE
SUM OF WEIGHTED DIFFERENCE OF PREDICTED, OBS. POLARITIES; 0O TOP <-l
PREDICTED FIRST MOTIONS WEIGHTS
BEST -
0.FITMIN -
2.0
DO 50 M -
I, NLAM
XLAM(M) - XLAM0 +
(M -
1)*DLAM
IF (FIRST) XLAMC(M)-XLAM<M)
DO 40 N
- 1, NPHI
PHIS(N)
- PHIS0 +
(N -
1)
* DPMI
IF (FIRST) PHISC(N)-PHIS<N)
DO 30 J
- 1, NDEL
DEL(J)
- DEL0 +
(J -
1)
* DDEL
IF (FIRST) DELC(J)-DEL(J)
STRIKE -
PHIS(N)*RAD
DIP -
DEL(J)*RAD
SLIP - XLAM(M)*RAD
C C CALCULATE MOMENT TENSOR REPRESENTATION OF SHEAR FAULT (POSTIVE UP,
SOUTH, EAST)
CCALL SHRFLT (STRIKE, DIP, SLIP, TM)
C C CALCULATE RADIATION PATTERN FOR MODEL (EQTN 4.91. AKI & RICHARDS, PG.
118)
BOT(J, N,
M) -0
DO 20
I -
1, NR
PRAD - 0
DO 10 K
- 1,
6
PRAD -
PRAD + TM(K)*COEF(I, K)
10
CONTINUE
C C CALCULATE FIT FUNCTION FOR THIS MODEL
CPTH - SIGN(0.5, PRAD)
WTTH -
SORT(ABS(PRAD))
TOP -
TOP + ABS(POBSd)
- PTH)*WTOBS<1>*WTTH
BOT(J, N,
M)
- BOT(J, N,
M)
+ WTOBS(I)*WTTH
20
CONTINUE
FIT(J, N,
M)
- TOP/BOT(J, N,
M)
IF (FIT(0, N,
M) .LT. FITMIN) FITMIN -
FIT(J, N,
M)
30
CONTINUE
40
CONTINUE
50
CONTINUE
C C FOR TIE SOLUTIONS, FIND SOLUTION WITH MOST STATIONS AWAY FROM NODES
CFITLIM -
FITMIN +
DFIT
NG - 0
NSTAR -
-1
DO 90 M «
I, NLAM
DO 80 N
- I,
NPHI
DO 70 J
- 1,
NDEL
IF <FIT<J, N, M) .EQ. FITMIN .AND. BOT(J,
N, M) .G
T. BEST)
& THEN
BEST -
BOT<J, N,
M)
Jl
- J
Nl
- N
Ml
- M
END IF
C C SAVE SOLUTIONS IN
COARSE SEARCH WITH FIT .L
E. FITLIM AS "GOOD" SOLUTIONS
CIF (FIRST) THEN
IF <FIT(J. N. M) .LE.
FITLIM) THEN
NG -
NG +
1 IGOOD(NG,
1)
- J
IGOOD(NG, Z)
-
N IGOOD(NG, 3)
-
M
IGOOD(NG,
4)
0
GFIT(NG) »
FIT(J, N,
M)
END IF
C C STAR SOLUTIONS HAVING FIT WITHIN DFIT OF FITMIN ON FINE SEARCH
CELSE IF <FIT(J, N,
M) .LE. FITLIM) THEN
FLAG(J, N, M) -
'*'
NSTAR -
NSTAR +
1 ELSE FLAG(J, N, M) -
' '
END IF
END IF
70
CONTINUE
80
CONTINUE
90
CONTINUE
IF (.NOT. FIRST) FLAG(J1, Nl, Ml)
'A'
CRETURN
END
C C C C CSUBROUTINE PEXCF (COEF,
I, MXSTAT, U)
C C C
CALCULATES COEFFICIENTS FOR DETERMINING THE FAR-FIELD RADIATION PATTERN OF P WAVES FROM THE MOMENT-RATE TENSOR COMPONENTS OF A
C POINT SOURCE IN AN INFINITE, HOMOGENEOUS, ELASTIC MEDIUM.
THE RADIATION PATTERN IS
NORMALIZED; TO OBTAIN PARTICLE AMPLITUDES,
C MULTIPLY BY
C C 1.0/<4.0*PI*RHO*(V**3)*R),
C C WHERE I
C RHO IS
THE DENSITY IN
THE SOURCE REGION,
C V IS
THE P-WAVE SPEED IN
THE SOURCE REGION, AND
C R
IS THE GEOMETRIC SPREADING FACTOR
C (FOR A HOMOGENEOUS MEDIUM, THIS IS
EQUAL TO THE DISTANCE
C TO THE OBSERVATION POINT.)
C C REFERENCE!
C AKI, KEIITI, AND PAUL G.
RICHARDS, QUANTITATIVE SEISMOLOGY,
C FREEMAN, SAN FRANCISCO, 1980, EQUATION 49.1, PAGE 11
8.
C C WRITTEN BY BRUCE JULIAN
c c c c c c c c c c c c c c c c c c c c c c -c- c c c c c c c c c c c c
REAL
COEF(MXSTAT, 6)
1INTEGER
I 1
INTEGER
MXSTAT
!REAL
U(3>
1
COEF< I
,
1)
U< 1)*U< 1>
COEF< I,
2)
2.*U< 1
)*U<2)
COEFd, 3)
U(2)*U<2)
COEF< I
, 4>
-
2.*U(3)*U< 1>
COEFd, 5>
2.*U(2)*U<3>
COEFd, 6)
-
U<3>*U<3>
RETURN
END
SUBROUTINE SHRFLT(STRIKE ,
DIP, SLIP, TM>
(OUTPUT) EXCITATION COEFFICIENTS
(INPUT) INDEX OF STATION
(INPUT) MAXIMUM * OF STATIONS PERMITTED
(INPUT) UNIT VECTOR IN
RAY DIRECTION
THIS SUBROUTINE CALCULATES THE MOMENT-TENSOR REPRESENTATION OF A SHEAR FAULT, GIVEN ITS STRIKE, DIP, AND SLIP ANGLES.
METHOD i
THE MOMENT TENSOR IS
FIRST EXPRESSED IN A COORDINATE SYSTEM WITH THE Z AXIS NORMAL TO THE FAULT PLANE AND THE X AXIS IN
THE SLIP DIRECTIONi
(0.
0.
1.)
<0.
0.
0.)
( 1
. 0.
0. )
THIS COORDINATE SYSTEM IS
THEN ROTATED THROUGH THE EULER ANGLES PHI
-SLIP, THETA
-DIP, AND PSI -
STRIKE -
PI,
(CONVENTIONS OF GOLDSTEIN, CLASSICAL MECHANICS, SEC
4-4) WHICH RESULTS IN
A (SOUTH, EAST, UP) ORIENTATION OF THE (X
, Y,
Z)
AXES, RESPECTIVELY.
A PERMUTATION THEN CONVERTS THIS TO THE ORDER (UP, SOUTH, EAST).
THE STRENGTH OF THE DOUBLE-COUPLE IS
TAKEN AS UNITY} THE CALCULATED MOMENT TENSOR COMPONENTS MUST BE MULTIPLIED BY THE FACTOR i
MU*A*S
WHERE i MU IS
THE RIGIDITY MODULUS OF THE MEDIUM
A IS
THE FAULT AREA, AND
S IS
THE MEAN DISLOCATION ACROSS THE FAULT.
-----
- ..__._.
(NOTEi
IF THE MEAN DISLOCATION VELOCITY IS
USED INSTEAD,
THE RESULT WILL BE THE MOMENT-RATE TENSOR.)
WRITTEN BY BRUCE R.
JULIAN ON 7
APRIL, 1977.
REAL
DIP
REAL
SLIP
REAL
STRIKE
REAL
TM(6)
REAL
All
REAL
A21
REAL
A31
REAL
A13
REAL
A23
(INPUT) FAULT DIP ANGLE IN
RADIANS
(INPUT) FAULT SLIP ANGLE IN
RADIANS
(INPUT) FAULT STRIKE ANGLE IN
RADIANS
(OUTPUT) SEISMIC MOMENT TENSOR ARRANGED IN
THE FOLLOWING ORDER i
(R,
R)
.E.
(UP, UP)
(R,
THETA)
.E.
(UP, SOUTH)
(THETA, THETA)
.E.
(SOUTH, SOUTH)
(R,
PHI)
.E.
(UP, EAST)
(THETA, PHI)
.E.
(SOUTH. EAST)
(PHI, PHI)
.E.
(EAST, EAST)
TRANSFORMATION MATRIX
TRANSFORMATION MATRIX
TRANSFORMATION MATRIX
TRANSFORMATION MATRIX
TRANSFORMATION MATRIX
REAL
REAL
REAL
REAL
REAL
REAL
REAL
A33
CD
CL CSSD
SL SS
TRANSFORMATION MATRIX
COS(DIP)
COS(SLIP)
COS<STRIKE>
SIN(DIP)
SIN(SLIP)
SIN(STRIKE)
CALCULATE COMPONENTS OF
ORTHOGONAL TRANSFORMATION MATRIX
FROM FAULT-ORIENTED TO (SOUTH, EAST, UP)
COORDINATE SYSTEM
SS -
SIN(STRIKE)
CS - COS(STRIKE)
SD -
SIN(DIP)
CD -
COSCDIP)
SL -
SIN(SLIP)
CL -
COS(SLIP)
All
- -CS*CL - CO«SL«SS
A21
- SS«CL -
CD«SL«CS
A31
- SD«SL
A13 -
SS«SD
A23 - CS«SD
A33 -
CD
TRANSFORM MOMENT TENSOR (0,
0,
I,0,
0,
0.1,
0,
0)
AND PERMUTE AXES TO (UP, SOUTH, EAST) ORDER
TM(1)
- 2«A31*A33
TM(Z) - A11-A33 * A3I*A13
TM(3> -
2«A11«A13
TM(4) - A21«A33 * A31*A23
TM(5)
- A11*AZ3 * A21«A13
TM(6> -
2«A21«A23
RETURN
END
SUBROUTINE REFRMT (DEL, IDIP, IDIPDR, ISLIP, PHIS. XLAM)
REFORMAT DIP, STRIKE, AND RAKE ANGLES TO INTEGER VALUES AND CONVERT STRIKE TO DOWN-DIP DIRECTION
REAL
INTEGER
INTEGER
INTEGER
REAL
REAL
INTEGER
DEL
IDIP
IDIPDR
ISLIP
PHIS
XLAM
ISTRK
(INPUT) FAULT DIP ANGLE IN
DEGREES
(OUTPUT) FAULT DIP ANGLE IN
DEGREES
(OUTPUT) DIP DIRECTION IN
DEGREES
(OUTPUT) RAKE IN
DEGREES
(INPUT) FAULT STRIKE ANGLE IN
DEGREES
(INPUT) FAULT RAKE ANGLE IN
DEGREES
» STRIKE OF BEST FIT
cn
IDIP -
IFIX(DEL)
ISTRK -
IFIX(PHIS)
ISLIP
- IFIX(XLAM)
IF (IDIP .GT. 90
) THEN
IDIP -
1B0 -
IDIP
ISTRK -
ISTRK
+ 1B0
ISLIP -
-ISLIP
ELSE
IF (IOIP .LT. 0) THEN
IDIP
-IOIP
ISTRK
ISTRK +
180
ISLIP
ISLIP +
180
END IF
IDIPDR JMOO(ISTRK +
90,
360)
IF (IDIPDR .LT. 0) IDIPDR
IDIPDR * 360
ISLIP
- JMODdSLIP, 360)
IF (ISLIP .GT. 180) ISLIP -
ISLIP -
360
IF (ISLIP .LT. -180) ISLIP -
ISLIP *
360
RETURN
END
LOGICAL FUNCTION COMPL (SOLNS, NSOL, DD, DA, SA. AERR, MXSLNS)
THIS FUNCTION COMPARES A "NEW" FAULT PLANE SOLUTION (DD, DA, SA) WITH A LIST OF OTHER FAULT PLANE SOLUTIONS
AND CHECKS FOR ANY OF THE FOLLOWING CONDITIONS
1. THE "NEW* SOLUTION IS
SIMILAR TO ONE OF THE SOLUTIONS IN
SOLNS
2. THE COMPLIMENT OF THE "NEW" SOLUTION IS
SIMILAR TO ONE OF THE SOLUTIONS IN
SOLNS
3. THE "NEW" SOLUTION IS
SIMILAR TO THE COMPLIMENT OF ONE OF THE SOLUTIONS IN
SOLNS
IF ANY ONE OF THE ABOVE CONDITIONS IS
TRUE, FUNCTION COMPL RETURNS WITH A VALUE .TRUE.
OTHERWISE, FUNCTION COMPL RETURNS WITH THE VALUE .FALSE.
SOLUTIONS ARE SIMILAR IF ALL THREE PAIRS OF CORRESPONDING ANGLES DIFFER BY LESS THAN AERR.
INTEGER
REAL
REAL
AERR
DA
DDMXSLNS
NSOL
SASOLNS(MXSLNS,3)
J AUXK3)
AUX2(3)
ALLOWABLE DIFFERENCE BETWEEN CORRESPONDING ANGLES OF COMPLIMENTARY PLANES
DIP ANGLE OF NEW PLANE
DIP DIRECTION ANGLE OF NEW PLANE
MAXIMUM * OF MULTIPLE SOLUTIONS PERMITTED
____
NUMBER OF PLANES STORED IN ARRAY SOLNS
SLIP ANGLE OF NEW PLANE
ARRAY OF PLANES (D
D, DA,
SA) TO TEST NEW PLANE AGAINST
LOOP INDEX
DIP DIRECTION, ANGLE. AND RAKE OF AUXILLIARY PLANE OF NEW PLANE
DIP DIRECTION, ANGLE, AND RAKE OF AUXILLIARY PLANE OF PRREVIOUS PLANES
^COMPL -
.FALSE.
CALL AUXPLN (DD. DA, SA, AUXK1), AUXK2). AUXK3))
DO 40 J
I, NSOL
COMPARE NEW SOLUTION WITH EACH SOLUTION ON LIST
IF (ABS(DD
- SOLNSU, 1)
) .L
T. AERR .AND.
&ABS(DA -
SOLNS(J, 2» .LT. AERR .AND.
&RDIFFISA, SOLNSIJ, 3)) .LT.
AERR)
THEN
COMPL -
.TRUE.
RETURN
END
IF
COMPARE COMPLIMENT OF "NEW SOLUTION" WITH EACH SOLUTION ON LIST
IF (ABS(SOLNS(J,
1) - AUXK1)) .L
T. AERR .AND.
&ABS(SOLNS(J, 2)
- AUXK2))
.LT. AERR .AND.
&RDIFF(SOLNS(J, 3)
, AUXK3)) .LT. AERR) THEN
CT»
40
C
COMPL
- .TRUE.
RETURN
END IF
CALL AUXPLN (SOLNStJ,
1),
SOLNS(J. 2), SOLNSiJ, 3). AUX2U),
& AUX2<2> ,
AUX2(3> )
COMPARE "NEW SOLUTION" WITH COMPLIMENT OF EACH SOLUTION ON LIST
IF (ABSCDD - AUX2(1)> .LT. AERR .AND.
AABS<DA - AUX2(2» .LT. AERR .AND.
ARDIFF(SA. AUX2(3)) .LT. AERR) THEN
COMPL -
.TRUE.
RETURN
END IF
CONTINUE
RETURN
END
SUBROUTINE AUXPLN (DD1. DA1, SA1, DD2, DA2, SA2>
CALCULATE THE AUXILLIARY PLANE OF A DOUBLE COUPLE FAULT PLANE SOLUTION, GIVEN THE PRINCIPLE PLANE.
WRITTEN BY PAUL REASENBERG, JUNE, 1984, FROM CLASS NOTES BY DAVE BOORE, (BOTH AT THE U.S.G.S., MENLO PARK.)
ANGLE VARIABLES PHI, DEL AND LAM ARE AS DEFINED IN
AKI AND RICHARDS, (1980). P.114.
REAL
REAL
REAL
REAL
REAL
REAL
DA I
DD1
SA1
DA2
DD2
SA2
(INPUT)
DIP ANGLE IN
DEGREES OF PRICIPLE PLANE
(INPUT)
DIP DIRECTIONS IN DEGREES OF PRICIPLE PLANE
(INPUT)
SLIP ANGLE IN
DEGREES OF
PRICIPLE PLANE
(OUTPUT)
DIP ANGLE IN
DEGREES OF AUXILLIARY PLANE
(OUTPUT)
DIP DIRECTIONS IN
DEGREES OF AUXILLIARY PLANE
IQDTPUT)
SLIP ANGLE IN
DEGREES OF AUXILLIARY PLANE
DOUBLE PRECISION
DOUBLE PRECISION
LOGICAL
DOUBLE PRECISION
DOUBLE PRECISION
DOUBLE PRECISION
DOUBLE PRECISION
DOUBLE PRECISION
DOUBLE PRECISION
DOUBLE PRECISION
BOT
DELI
FIRST
PHI1
PHI2
RAD
SGN
TOP
XLAM1
XLAM2
SCRATCH VARIABLE
DIP ANGLE OF PRINCIPAL PLANE IN RADIANS
TESTi TRUE IF FIRST TIME INTO ROUTINE
FAULT PLANE STRIKE OF PRINCIPAL PLANE
STRIKE OF AUXILLIARY PLANE IN
RADIANS
CONVERSION FACTOR FROM DEGREES TO RADIAN
SAVES PRINCIPAL PLANE SLIP ANGLE FOR ASSIGNING PROPER SIGN TO AUXILLIARY
SCRATCH VARIABLE
SLIP ANGLE OF PRINCIPAL PLANE IN
RADIANS
SLIP ANGLE OF AUXILLIARY PLANE
DATA FIRST /.TRUE./
SAVE FIRST. RAD
IF (FIRST) THEN
FIRST -
.FALSE.
RAD -
DATAN(1.0D0)/45.0D0
END
IF
PHII
- DD1 -
90.0D0
IF (PHII
.LT. 0.0D0) PHII
PHII
PHII
- PHI1*RAD
DELI
- DA1*RAD
SGN
SA1
XLAM1
- SA1*RAD
360.0D0
TOP -
DCOS(XLAMI)*DSIN(PHI1)
- DCOS(DEL 1)*DSIN(XLAM1 )*DCOS(PHI1 )
BOT -
DCOS(XLAM1)*DCOS(PHI1)
+ DCOS(DEL 1)-DSIN(XLAM1)*DSIN(PHI 1
)DD2 -
DATAN2(TOP, BOT)/RAD
PHI2 -
(DD2 -
90.0D0)*RAD
IF (SA1 .LT. 0.000} 002 -
DD2 -
180.0D0
IF (DD2 .LT. 0.000} 002
" 002
* 360.000
IF (DD2. GT
. 360.0D0) DD2 -
DD2 -
360.0D0
DA2
DACOS(DSIN(DABS(XLAM1))"DSIN(DELI))/RAD
XLAM2 -
-DCOS(PHI2)*DSIN(DEL1)*DSIN(PHI1)
+ & DSIN(PHI2)*DSIN(DEL1)*DCOS(PHI1)
MACHINE ACCURACY PROBLEM
IF (ABS(XLAM2) .GT. 1.0D0) THEN
XLAM2 - DSIGNU.0D0, XLAM2)
END IF
XLAM2 -
DSIGN(DACOS(XLAM2), SGN)
SA2 - XLAM2/RAD
->
RETURN
END
c c c c cSUBROUTINE HHOG (EUNIT, JSTRT, NSTRT, MSTRT, IGOOD, GFIT, NG ,
C C C C C C C
& IDST, NDST, MXDIP
PERFORMS A 'HEDGEHOG*
, MXSLNS, MXSTRK, MXRAKE, NDELC, NPHIC, NLAMC )
SEARCH THROUGH COARSE SOLUTIONS WITH FITS LESS THAN FITLIM, IDENTIFIES SOLUTIONS BELONGING TO
DISCRETE LOCALIZED MINIMA, AND RETURNS STRIKE, DIP, AND RAKE INDICES OF SOLUTION WITH BEST FIT WITHIN EACH MINIMA
INTEGER
PARAMETER (MXHOG -
INTEGER
REAL
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
REAL
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
MXHOG
1 MAXIMUM NUMBER OF SOLUTIONS PER LOCALIZED MINIMA
200)
EUNIT
GF IT(MXDIP*MXSTRK*MXRAKE>
IDST<MXSLNS,3)
IGOOD(MXDIP*MXSTRK*MXRAKE,4)
OSTRT
MSTRT
MXDIP
MXRAKE
MXSLNS
MXSTRK
NDELC
NDST
NGNLAMC
NPHIC
NSTRT
FMIN
1C ICACHC MXHOG)
ICT
IG IK 00
00 OOX
(INPUT) LOGICAL UNIT * OF OUTPUT OF ERROR MESSAGES
(INPUT) CONTAINS FITS OF SOLUTIONS IN. IGOOD
(OUTPUT INDICES OF BEST FITTING SOLUTIONS IN EACH LOCALIZED MINIMA
(INPUT) INDICES OF SOLUTIONS WITH "GOOD" FITS DETERMINED BY COARSE SEARCH
(INPUT) DIP INDEX OF BEST SOLUTION FROM COARSE SEARCH
(INPUT) RAKE INDEX OF BEST SOLUTION FROM COARSE SEARCH
(INPUT) MAXIMUM NUMBER OF DIP VALUES IN
SEARCH
(INPUT) MAXIMUM NUMBER OF RAKE VALUES IN
SEARCH
(INPUT) MAXIMUM NUMBER OR MULTIPLE SOLUTIONS PERMITTED
(INPUT) MAXIMUM NUMBER OR STRIKE VALUES IN
SEARCH
(INPUT) NUMBER OF INCREMENTS OF DIP IN
COARSE SEARCH
(OUTPUT NUMBER OF SOLUTIONS IN
IDST
(INPUT) NUMBER OF SOLUTIONS IN
IGOOD
(INPUT) NUMBER OF INCREMENTS OF RAKE IN
COARSE SEARCH
(INPUT) NUMBER OF INCREMENTS OF STRIKE IN COARSE SEARCH
(INPUT) STRIKE INDEX OF BEST SOLUTION FROM COARSE SEARCH
SMALLEST FIT VALUE WITHIN SET OF
SOLUTIONS COMPRISING A LOCALIZED MINIMA
NUMBER OF SOLUTIONS USED AS CENTER POINT FOR EXPANSION
POINTER ARRAY INDICES OF IGOOD
TOTAL NUMBER OF SOLUTIONS IN
A HEDGEHOG
INDEX OVER IGOOD
LOOP INDEX OVER ICACH
DIP INDEX OF CENTER POINT FOR EXPANSION
DIP INDEX OF NEARBY SOLUTION TO CENTERPOINT
DIP INDEX OF NEARBY SOLUTION TO CENTERPOINT
CO
INTEGER
M0
INTEGER
MM
INTEGER
MMX
INTEGER
N0
INTEGER
NHH
INTEGER
NN
INTEGER
NNX
CNHH -
I1C
- 0
ICT - 0
J0 -
JSTRT
N0 -
NSTRT
M0 -
MSTRT
C C EXPAND ABOUT (J0. N0
, M0) FOR NEAREST NEIGHBORS
C
RAKE INDEX OF CENTER POINT FOR EXPANSION
RAKE INDEX OF NEARBY SOLUTION TO CENTERPOINT
RAKE INDEX OF NEARBY SOLUTION TO CENTERPOINT
STRIKE INDEX OF CENTER POINT FOR EXPANSION
HEDGEHOG INDEX
STRIKE INDEX OF NEARBY SOLUTION TO CENTERPOINT
STRIKE INDEX OF NEARBY SOLUTION TO CENTERPOINT
20DO 90 JJ
IF (J
JJJX -
ELSE IF
JJX -
ELSE JJX -
JJ
END IF
DO 80 NN -J0 -
1, J0 +
1 LE
. 0) THEN
NDELC -
JJ
(JO .GT. NDELC) THEN
JJ -
NDELC
N0
N0 +
1IF (NN .LE. 0) THEN
NNX -
NPHIC -
NN
ELSE
IF (NN .GT. NPHIC) THEN
NNX -
NN -
NPHIC
ELSE NNX -
NN
END IF
DO 70 MM
IF (MM
MMX -
ELSE IF
MMX -
ELSE
-
J4MX
-
END IF
M0 -
1, M0 +
1 .L
E. 0) THEN
NLAMC - MM
(MM .GT. NLAMC) THEN
MM -
NLAMC
MH _____
__
C LOOK UP EACH SOLUTION IN
IGOOD.
IF FOUND, ANNOTATE IT
WITH THE CURRENT VALUE OF NHH
CDO 60 IG
-
1, NG
IF (IGOODUG,
1) .EQ. JJX .AND. IGOODUG, 2)
.EQ. NNX
& .AND. IGOODUG, 3)
.EQ. MMX .AND. IGOODUG, 4)
.E
Q. 0) THEN
IGOODUG, 4)
-
NHH
C C CHECK TO SEE IF THIS SOLUTION IS
ALREADY IN
A CACHE
CIF
UCT .GT. 0) THEN
DO 50 IK -
I, IC
TIF
UCACHUK) .E
Q.
IG)
GOTO 70
50
CONTINUE
END IF
C C
STORE THIS SOLUTION IN
CACHE
CICT -
ICT +
1IF UCT .G
T. MXHOG) THEN
WRITE lEUNIT, *>
** ** HHCC CP
.ROR
: NUMBER OF SOLUTION
4S WITHIN HEDGEHOG EXCEEDS
', MXHOG,
' ******
STOP
END IF
ICACH(ICT) -
IG
END IF
60
CONTINUE
70
CONTINUE
80
CONTINUE
90
CONTINUE
C C SELECT NEXT SOLUTION WITHIN CURRENT HEDGEHOG AS STARTING POINT FOR EXPANSION
C1C
-
1C +
1IF
(1C .LE. 1CT) THEN
00 -
IGOODIICACHI1C),
1>
N0 -
IGOOD(ICACHI1C), 2)
M0 *
IGOODIICACHI1C). 3)
GOTO 20
ELSE
C C FINISHED PROCESSING CACHE FOR CURRENT HEDGEHOG
CICT
- 0
1C - 0
NHH -
NHH *
1IF (NHH .GT. MXSLNS) THEN
PRINT *,
* * * HHOG ERROR* NUMBER OF MULTIPLE SOLUTIONS EXCEE
ADS
', MXSLNS,
' *** *
STOP
END IF
C C GET NEXT SOLUTION FROM IGOOD THAT DOES NOT ALREADY BELONG TO A MINIMA
CDO 100 IG
-
1, NG
' IF (IGOODUG, 4)
.EQ. 0) THEN
! 00 *
IGOODIIG,
1)
N0 *
IGOODIIG, 2)
M0 -
IGOODIIG, 3)
GOTO 20
END IF
100
CONTINUE
END IF
C C IDENTIFY SOLUTION CORRESPONDING TO FIT MINIMUM WITHIN EACH HEDGEHOG
CDO 130 NDST "
1. NHH -
1 FMIN -
1.
DO 120 IG -
1, NG
IF (IGOODUG, 4)
.EQ. NDST .AND. GFIT(IG) .L
E. FMIN) THEN
IDSTINDST,
1)
IGOODUG,
1)
IDSTCNDST, 2)
*
IGOODUG, 2)
IDSTINDST, 3)
IGOODUG, 3)
FMIN - GFITUG)
END
IF120
CONTINUE
130
CONTINUE
NDST *
NHH -
1C
CO
RETURN
°
END
C C C C CFUNCTION RDIFF (RAKE1, RAKE2)
c C RETURNS WITH THE SMALLEST ABSOLUTE DIFFERENCE IN SLIP ANGLE BETWEEN RAKE1 AND RAKEZ.
C C RAKE CONVENTION FOLLOWS AKI & RICHARDS, 1980. QUANTITATIVE SEISMOLOGY, P.
114
CREAL
RAKE1
I (INPUT) FIRST RAKE
REAL
RAKEZ
I (INPUT) SECOND RAKE
CREAL
A
! STORES FIRST RAKE
REAL
B ! STORES SECOND RAKE
REAL
C I STORES RAKE blFFERENCE
CRDIFF -
999.
A
RAKE1
IF (RAKE1 .LT. B.
) A
360.
+ RAKE1
B RAKEZ
IF (RAKEZ .LT. 0.
) B
- 360.
+ RAKEZ
C ABS(A -
B)IF <C
.GT. 1B0. )
C
360. -
CRDIFF
- C
RETURN
END
CO
PROGRAM FPPLOT
VERSION 1.0
- OCTOBER 31
, I9B5
PURPOSE:
PLOT EARTHQUAKE RAY POLARITIES AND FAULT PLANES ON A LOWER HEMISPHERE EQUAL AREA PROJECTION.
INPUT FILEi
A FILE OF THE TYPE "*.POL". WHICH IS
GENERATED BY THE PROGRAM "FPFIT" (SEE 'FPFIT, FPPLOT, AND FPPAGEt FORTRAN
COMPUTER PROGRAMS FOR CALCULATING AND DISPLAYING EARTHQUAKE FAULT-PLANE SOLUTIONS
BY P.
REASENBERG AND D. OPPENHEIMER, U.S. GEOLOGICAL SURVEY OPEN-FILE REPORT 85-???)
REQUIRED ROUTINESi CALCOMP STYLE PLOT ROUTINES PLOTS. PLOT, NEWPEN, SYMBOL.
DEPARTURES FROM FORTRAN-77 STANDARD!
1. KEYWORD "READONLY" OPEN STATEMENT
2. EMBEDDED COMMENTS PREFACED WITH AN EXCLAMATION MARK (!)
FOLLOWING VARIABLE DECLARATIONS
3. ARGUMENT LIST BUILT-IN FUNCTION "XREF"
4. CALLS TO VAX SYSTEM ROUTINES "SYSSBI NTIM", "SYSSSCHDWK", "SYSSHIBER"
(SUBROUTINE DELAY)
OUTPUTi
GRAPHIC OUTPUT ONLY
AUTHORSi
PAUL REASENBERG AND DAVID OPPENHEIMER, U.S.G.S.
IN MENLO PARK.
SOME OF THE ROUTINES
WERE ADOPTED FROM CODE WRITTEN BY JOHN LAHR ,
BRUCE JULIAN, AND FRED KLEIN.
RAY ANGLE OF INCIDENCE
FLAGt Y(N)=DO (NOT) PLOT STATION NAMES ADJACENT TO FIRST MOTIONS
RAY AZIMUTH
X POSITION OF LARGE CIRCLE CENTER
X POSITION OF SMALL CIRCLE CENTER
Y POSITION OF LARGE CIRCLE CENTER
Y POSITION OF SMALL CIRCLE CENTER
DIP ANGLE
DIP ANGLE OF NEARBY SOLUTIONS
DIP DIRECTION
DIP DIRECTION OF NEARBY SOLUTIONS
FLAGt
IF " "
THEN FIRST MOTION DISCREPANT WITH SOLUTION
EPICENTRAL DISTANCE
HYP071 SUMMARY CARD
FILE NAME OF DATA
FLAGt TRUE PRIOR TO PLOTTING DISCREPANT FIRST MOTION
HEIGHT OF P,T SYMBOL IN LARGE CIRCLE
HEIGHT OF P,T SYMBOL IN SMALL CIRCLE, DSCRPNCY RPRT
HETGWT OF
TITLE. EXTENDED SUMMARY-CARD. FIRST MOTION LEGEND
LOOP INDEX OVER NUMBER OF LINES OF NEARBY SOLUTIONS
CHARACTER POSITION OF FIRST BLANK IN
TITLE
I/O STATUS DESCRIPTOR
SCRATCH VARIABLE FOR PLOT OUTPUT
STATION NAME
LOOP INDEX OVER NUMBER OF NEARBY SOLUTIONS
EVENT NUMBER
NUMBER OF LINES OF NEARBY SOLUTIONS
NUMBER OF NEARBY SOLUTIONS PER LINE
NUMBER OF SOLUTIONS TO SKIP
NUMBER OF SOLUTIONS WITH FIT WITHIN
5X OF BEST SOLUTION
PI FIRST MOTION DESCRIPTION (EG. IPU0)
PI/180
RADIUS OF LARGE CIRCLE
RADIUS OF SMALL CIRCLE
RAKE
RAKE OF NEARBY SOLUTIONS
FIRST MOTION DIRECTION
DATA SET DESCRIPTOR
WEIGHT ASSIGNED TO PICK QUALITY IN
PROGRAM FPFIT
LEFTMOST X
POSITION OF TITLE, SUMMARY CARD, SYMBOL LEGEND
LEFTMOST X
POSITION OF
DISCREPANCY REPORT
Y PLOT POSITION
Y PLOT POSITION OF
TITLE
Y PLOT POSITION OF SYMBOL LEGEND
Y PLOT POSITION OF
TOP OF DISCREPANCY REPORT
REAL
CHARACTER*!
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
CHARACTER"!
REAL
CHARACTERM32
CHARACTER'50
LOGICAL
REAL
REAL
REAL
INTEGER
INTEGER
INTEGER
CHARACTER'40
CHARACTER'4
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
REAL
CHARACTER'4
REAL
REAL
REAL
REAL
REAL
CHARACTER'1
CHARACTER'80
REAL
REAL
REAL
REAL
REAL
REAL
REAL
AIN
ANS
AZM
CXI
CX2
CY1
CY2
DA DAN( 1
1 >
DD
DDN( 1
1 >
DISC
DIST
EVENT
FILNAM
FIRST
HITE1
HITE2
HITE3
I INDX
I OS
LINE
NAME
N NEV
NLINE
NREAD
NSKIP
NSTAR
PI PRMK
RAD
RMAXI
RMAX2
SA
SAN( 1
I >
SYM
TITLE
WT XPOSI
XPOS2
YPOS
YPOS1
YPOS2
YPOS3
CO ro
PARAMETER (CX1
- 3.0, CX2
- 7.25, CYI
- 3.0. CY2 -
1.25)
PARAMETER (HITE1
- 0.2. HITE2 - 0.07, HITE3 -
0.1. RMAX1 -
2.95)
PARAMETER (RMAX2 =
1.25, XPOS1
- 0.1. XPOS2 -
6.5)
PARAMETER (YPOS1
7.3. YPOS2
- 0.1. YPOS3 -
6.0)
PI
- ATAN( 1
.0)*4.0
RAD
" PI/180.0
C 10
WRITE (6.
15)
'ENTER NAME OF DATA FILEi
'15
FORMAT ('«'. A)
READ (5
. 16,
ERR
- 10)
FILNAM
16
FORMAT (A)
OPEN (UNIT -
2. FILE
- FILNAM. ERR
- 10.
STATUS
'OLD', BLANK
- &
'ZERO', READONLY)
WRITE (6
, 15)
'PLOT STATION NAMES (Y OR N>?
20
READ (5
. 16
, IOSTAT -
IDS) ANS
IF ((ANS .NE.
'Y'
.AND. ANS .N
E. 'N'> .OR. IOS .NE. 0) THEN
PRINT *,
'***** PLEASE ANSWER "Y
" OR "N
"; TRY AGAIN *****'
GOTO 20
END IF
WRITE (6
. 15)
'ENTER NUMBER OF MECHANISMS TO SKIP (INCLUDING MULTI
&PLE SOLUTIONS)!
25
READ (5.
*. IOSTAT
- IOS) NSKIP
IF (NSKIP .LT. 0 .OR.
IOS
.NE.
0) THEN
PRINT *,
****** INVALID NUMBER; TRY AGAIN ******
GOTO 25
END IF
C C
READ HYP071 HEADER CARD (FIRST LINE IN MODEL FILE)
CNEV 0
ILINE
- 1
READ (2
, 30. ERR
- 2000) TITLE
30
FORMAT (A
) INDX
- 1
DO 40
I
1 ,
80
IF (TITLE(III) .NE.
' '> THEN
INDX
- I
GOTO 50
END
IF40
CONTINUE
50
TITLE
- TITLE(INDXtLEN(TITLE)>
C C INITIALIZE PLOT PROGRAM
CCALL PLOTS (0., 0., 0)
C C READ EVENT
C 60
ILINE -
ILINE *
1READ (2
, 70, END
1000. ERR
2000) EVENT
70
FORMAT (IX, A132)
NEV -
NEV
+ 1
IF (NEV .G
T. NSKIP) THEN
C C START NEW FRAME
CCALL ERASE
CALL DELAY ('0000 00i00i01.00'>
CALL PLOT (1.,
1.,
-3 >
FIRST -
.TRUE.
CALL NEWPEN (1
>READ (EVENT, 75) DD1, DA I,
SA1
75
FORMAT (T81, F4.0, F3.0, F4.0)
C C PLOT SUMMARY CARD &
EXPLANATION OF SYMBOLS
CYPOS
- YPOS1
CALL SYMBOL (XPOS1. YPOS, HITE3. XREF(TITLE), 0., LEN(TITLE))
YPOS =YPOS -
.3CALL SYMBOL (XPOS1, YPOS, HITE3, XREF(EVENT(1:80>>, 0., 80)
YPOS «YPOS -
.3
00
CALL SVMBOL (XPOSI. YPOS, HITE3. XREF(EVENT(82i132) )
. 0.. 51)
CALL NEWPLN (1)
YPOS
YPOS2
CALL CIRCLE (HITE2. 2.0*PI, XPOSI. YPOS
« HITE2/2.)
LINE(1:11)
- 'COMPRESSION
1C
AL
L
SY
MB
OL
(XP
OS
I »
.2.
YP
OS
. H
ITE
2.
XR
EF
(LIN
E>
. 0..1I)
YP
OS
YP
OS
»
2.0
*HIT
E2
CALL TR1NCL (H1TE2. XPOSI, YPOS *
H1TE2/2.)
LlNE(lill)
- 'DILATATION
'CALL SYMBOL(XPOSI
» .2,
YPOS. HITE2. XREF(LINE),0. ,
I I
) C C
PLOT BIG & LITTLE STEREO NET PERIMETERS
CCALL STRNET (CX1. CYI. RAD. RMAX1)
CALL STRNET (CX2. CY2. RAD, RMAX2)
C C PLOT NODAL PLANES
CCALL PLOTPL (CXI, CYI, DA1. PI. RAD. RMAXI. DDI
- 90.)
CALL AUXPLN (001. DA1, SA1. DD2. OA2. SA2)
CALL PLOTPL (CXI. CYI. DA2. PI. RAD. RMAXI. DD2
- 90.)
C C
PLOT -P" AND 'T* AXES IN
BIG NET
CNAME
' WT -
1.0
CALL NEWPEN (3)
CALL TPPLOT (CXI, CYI, DAI, DDI, HITEI. PI. RAD, RMAXI, SA1 .
i WT)
C C PLOT THE P AND T AXES IN SMALL NET CORRESPONDING TO THE SET OF 'NEIGHBORING SOLUTIONS'
CCALL TPPLOT (CX2, CY2. DAI. DDI, HITE2. PI, RAD, RMAX2, SA1.
A WT)CALL NEWPEN (1)
END IF
1LINE -
ILINE
« 1
READ (2, «,
ERR
- 2000) NSTAR
NL1NE -
(NSTAR-1 )/lI
* I
DO 90
I "
I, NL1NE
IF
(1
.LT. NL1NE) THEN
NREAD -II
___
_______ELSE_________
-___
NREAD -
MODINSTAR. II)
END
IFILINE -
ILINE »
1 IF (NEV .GT. NSK1P) THEN
READ (2, 80. ERR
2000) (DDN(N). DAN(N). SAN(N), N
1.
* NREAD)
B0
FORMAT (IX, 1KF4.0. F3.0, F4.0))
DO 85 N -
1. NREAD
CALL TPPLOT (CX2, CY2, DAN(N). DDN(N). HITE2, PI, RAD,
& RMAX2, SAN(N), WT)
85
CONTINUE
END IF
90
CONTINUE
C C READ PHASE CARD
C 100
ILINE
ILINE *
1READ (2. 110, END -
1000, ERR -
2000) NAME. DIST, AZM. AIN,
03
& PRMK, WT. DISC
-£»
110
FORMAT (IX. A4, 3F6.1. 3X. A4, F5.2, 2X, All
IF (NAME .NE.
' ')
THEN
C C REPORT DISCREPANT OBSERVATIONS
CIF
(NEV .GT. NSK1P) THEN
IF (DISC .EQ. ' ') THEN
IF (FIRST) THEN
LINE!1.23)
'DISCREPANT OBSERVATIONS'
YPOS
YPOS3
CALL SYMBOL (XPOS2, YPOS. HITE2. XREF(LINE). 0.. 23)
YPOS
YPOS
- H1TE2M .5
120
LINE(1:25)
*STAT OIST
AZM
AIN
PRMK*
CALL SYMBOL (XPOS2. YPOS .
HITEZ. XREF(LINE), 0.. 25)
YPOS =
YPOS
- HITE2*. 1
LINE(1:25>
« ' ________________________ '
CALL SYMBOL (XPOS2, YPOS. HITE2. XREF(LINE), 0., 25)
YPOS
* YPOS
- HITE2*1.5
FIRST «
.FALSE.
END
IFWRITE (LINE. 120) NAME. DIST. NINT(AZM). NINT(AIN). PRMK
FORMAT (A4. F5.I, 215. 2X .
A4, 15X)
CALL SYMBOL (XPOS2, YPOS. HITE2. XREF(LINE), 0., 31)
YPOS «
YPOS
- HITE2*1 .5
C PLOT FIRST MOTION
CEND IF
IF (ANS .EQ.
'N1
) NAME
'
IF <PRMK<3!3> .EQ.
'U'
.OR. PRMK(3t3> .Ed. '+') THEN
SYM -
'C*
ELSE SYM «
*D'
END
IFCALL PLTSYM {AIN, AZM. CX1, CY1. HITE1. NAME, PI, RAD,
& RMAX1 .
SYM. WT)
END
IF
GOTO 100
END IF
IF <NEV .GT. NSKIP) CALL PLOT <!.,
1.. -999)
GOTO 60
C C END OF FILE
C 1000
CALL PLOT (0., 0.. 999)
CLOSE (2)
STOP
C C READ ERROR
C 2000
PRINT *,
'READ ERROR ON LINE
', ILINE
STOP
END
C C C C
CSUBROUTINE ERASE
C SENDS A SCREEN ERASE CODE TO A TEKTRONIX TERMINAL
CCHARACTER*!
ACHARACTER*!
B C
A - CHAR(27)
B CHAR(12)
WRITE (6
, 10
) A,
B
10
C
I ASCII ESCAPE
! ASCII FORM FEED
FORMAT (IX. 2A1)
RETURN
END
00
U1
SUBROUTINE DELAY (TIME)
C CREATES A
DELAY FO
R SCREEN RECOVERY
CCHARACTERS")
TIME
DOUBLE PRECISION
8 C C
CONVERT ASCII TIME TO BINARY TIME
CCALL SYSSBINTIM (TIME,8)
C C SCHEDULE A WAKEUP FOR A ELAPSED TIME (NEGATIVE B)
C
CALL SYSSSCHDWK (.,-B.)
C C HIBERNATE AND REAWAKE
CCALL SYStHlBER
! STANDARD VMS TIME FORMAT OF THE FORM
I BINARY TIME CORRESPONDING TO TIME
'DDD
D HHtMMtSS.SS
1
RETURN
END
SUBROUTINE CIRCLE (SIZE, TWOPI, X0. Y0)
C PLOT A CIRCLE
CREAL
REAL
REAL
REAL
CREAL
INTEGER
INTEGER
REAL
REAL
REAL
CSIZE2 -
SIZE"0.5
C C COMPUTE OPTIMUM # OF POINTS TO DRAW
CN
- 20"SQRT(S1ZE2'*20. >
IF (N .LT. 10
) N
- 10
C C DRAW CIRCLE
CX
- X0 *
SIZE2
CALL PLOT (X
. Y0, 3)
DO 10 J
- I,
NANGLE - TWOP1«FLOAT(J)/FLOAT(N)
X "
X0 *
SIZE2"COS(ANGLE)
Y -
Y0 * S1ZE2«SIN(ANGLE>
CALL PLOT (X.
Y, 2)
CO
NT
INU
E
SIZE OF CIRCLE
TWO"PI
X POSTION OF CENTER
Y POSTION OF CENTER
ANGLE
LOOP INDEX
NUMBER OF POINTS OF- WHICH
SCRATCH VARIABLE
X PLOT POSTION
Y PLOT POSTION
00 cr>
10 CR
ET
UR
N
EN
D
c c c c c c c c c c
SUBROUTINE
PLOT A TRIANGE
REAL
REAL
REAL
REAL
REAL
REAL
REAL
PARAMETER
TRINGL (SIZE. X0. Y0)
SIZE
X0
Y0
SIZEX
SIZEY
X Y
(COS30 - 0.B660254, SIN30
SIZEY SIZE«SIN30
SIZEX
- SIZEY«COS30
0.5)
MOVE TO TOP
Y -
Y0 + SIZEY
CALL PLOT (X0, Y,
3)
DRAW TO LOWER LEFT
X -
X0 -
SIZEX
Y
Y0 -
SIZEY/2
CALL PLOT (X,
Y, 2)
DRAW TO LOWER RIGHT
X -
X0 +
SIZEX
CALL PLOT (X
, Y,
2)
DRAW TO TOP
Y Y0 +
SIZEY
CALL PLOT (X0, Y,
2)
RETURN
END
SUBROUTINE STRNET (CX, CY, RAD. RMAX)
PLOT PERIMETER OF A STEREO NET
REAL
REAL
REAL
REAL
REAL
INTEGER
INTEGER
INTEGER
REAL
CX
CY
RAO
RMAX
CSIZ
I N NN
P
SIZE OF TRIANGE
X POSTION OF CENTER
Y POSTION OF CENTER
SCRATCH VARIABLE
SCRATCH VARIABLE
X PLOT POSTION
Y PLOT POSTION
X POSITION OF CIRCLE CENTER
Y POSITION OF CIRCLE CENTER
PI/1B0
RADIUS OF CIRCLE
SCRATCH VARIABLE (RMAX/100)
LOOP INDEX OVER DEGREES
TESTS 10 DEGREE TICK POSITION
TESTS 90 DEGREE TICK POSITION
TICK LENGTH
00
REAL
REAL
REAL
REAL
REAL
CALL NEWPEN (2)
PHI
X XP Y YP
I AZIMUTH IN
RADIANS
I X
POSTION OF CIRCLE
! X
POSITION OF END OF TICK
! Y
POSTION OF CIRCLE
! Y
POSITION OF END OF TICK
C DRAW CIRCLE 0
1 DEGREE INCREMENTS
CDO 10
I »
I .
361
PHI
- (I
-
1)*RAD
X - RMAX*COS(PHI )
+
,CX
Y «
RMAX*SIN(PHI)
* CY
N"(I-1)-«I-1 )/10)*10
NN -
<I
- 1>
-
<(
I -
1)/90>*90
P - 0.01*RMAX
IF ((N .Ed. 0> .AND.
(I
.GT.
10)) P
' IF ((NN .EQ. 0) .AND.
(I
.GT. 90)) P
XP
- (RMAX
+ P>*COS(PHI>
+ CX
YP
- (RMAX +
P)*SIN(PHI>
+ CY
IF
(I .G
T.
I ) THEN
CALL PLOT (X.
Y, Z)
CALL PLOT (XP, YP. 2)
(X,
Y
0.02*RMAX
- 0.04«RMAX
10
C C PLOT
C
CALL PLOT
ELSE CALL PLOT (X,
Y,
END IF
CONTINUE
+ AT CENTER
CSIZ
- .0I-RMAX
CALL PLOT (CX
- CSIZ
CALL PIOT (CX
2> 3)
CY,
3>
CSIZ, CY
, 2)
CALL PLOT (CX, CY -
CSIZ, 3)
CALL PLOT (CX, CY
CALL NEWPEN (I )
+ CSIZ, 2)
RETURN
END
SUBROUTINE PLOTPL (CX, CY, DPIDG, PI, RAD. RMAX, STRKDG)
C PLOTS FAULT PLANE ON LOWER HEMISPHERE STEREO NET
CREAL
CX
REAL
CY
REAL
DPIDG
REAL
PIREAL
RAD
REAL
RMAX
REAL
STRKDG
REAL
REAL
REAL
REAL
REAL
REAL
ANG
AINPt 91
)ARG
AZ CON
DIPRD
X POSITION OF CIRCLE CENTER
Y POSITION OF CIRCLE CENTER
DIP ANGLE IN
DEGREES
PI PI/180
RADIUS OF CIRCLE
STRIKE ANGLE IN
DEGREES
ANGLE IN
RADIANS
ANGLE OF INCIDENCE IN
RADIANS
DUMMY ARGUMENT
AZIMUTH
RADIUS COEFFICIENT
DIP ANGLE IN
RADIANS
CO
CO
INTEGER
INTEGER
REAL
REAL
REAL
REAL
REAL
REAL
REAL
I MI RADIUS
SAZ<91)
STRKRD
TAZ
TPD
X Y
! LOOP INDEX
! SCRATCH INDEX
'. RADIUS
! AZIMUTH IN RADIANS
! STRIKE IN RADIANS
! SCRATCH VARIABLE
I SCRATCH VARIABLE
! X
PLOT POSITION
! Y
PLOT POSITION
STRKRD
- STRKDG'RAD
DIPRD
« DPIDG*RAD
TPD
- TAN(PI*.5 - DIPRD)*«2
CASE OF VERTICAL PLANE
IF (DPIDG .EQ. 90.0) THEN
X « RMAX*SIN«STRKRD)
* CX
Y « RMAX*COS(STRKRD)
* CY
CALL PLOT (X
. Y.
3)
X « RMAX*S1N(STRKRD
* PI)
+ CX
Y - RMAX*COS«STRKRD
* PI) +
CY
CALL PLOT «X
, Y, 2)
RETURN
END
IF
COMPUTE ANGLE OF INCIDENCE, AZIMUTH
DO 10
I -
I. 90
ANG -
FLOAT!I -
1)*RAD
ARG - SQRTl(COS(DIPRD)*«2)*<SIN(ANG)««2))/COS(ANG)
SAZ«I)
» ATAN(ARG)
TAZ
« TAN(SAZ(1))**2
ARG « SQRT(TPD + TPD*TAZ *
TAZ)
AINP(I)
ACOS(TAN(SAZ(I))/ARG)
10
CONTINUE
SAZ(9I)
« 90.*RAD
AINP(9I )
«
PI*.5 -
DIPRD
PLOT PLANE
CON « RMAX*SQRT«2.>
DO 20
I -
I, 180
IF
« I
.LE.
91) THEN
MI
- I
AZ «
ELSE MI
-AZ «
END IF
RADIUS
SAZ(I) +
STRKRD
181
- I
PI
- SAZ(MI )
+ STRKRD
- CON*SIN(AINP(MI )*0.5)
X « RAOIUS*SIN«AZ)
* CX
Y « RAOIUS*COS«AZ)
+ CY
20
C c C
IF (I
CALL
ELSE CALL
END IF
CONTINUE
RETURN
END
.EQ.
1) THEN
PLOT (X
, Y.
3)
PLOT (X
, Y, 2)
CD
SUBROUTINE AUXPLN (DD1, DA1, SA1, DD2, DA2, SA2)
CALCULATE THE AUXILLIARY PLANE OF A DOUBLE COUPLE FAULT PLANE SOLUTION, GIVEN THE PRINCIPLE PLANE.
WRITTEN BY PAUL REASENBERG. OUNE, 1984, FROM CLASS NOTES BY DAVE BOORE, (BOTH AT THE U.S.G.S., MENLO PARK.)
ANGLE VARIABLES PHI, DEL AND LAM ARE AS DEFINED IN AKI AND RICHARDS, (1900), P.114.
DIP ANGLE IN
DEGREES
DIP DIRECTIONS IN
DEGREES
SLIP ANGLE IN
DEGREES
DIP ANGLE OF AUXILLIARY PLANE
DIP DIRECTION OF AUXILLIARY PLANE
SLIP ANGLE OF AUXILLARY PLANE
SCRATCH VARIABLE
DIP ANGLE OF PRINCIPAL PLANE IN RADIANS
TEST: TRUE IF
FIRST TIME INTO ROUTINE
FAULT PLANE STRIKE OF PRINCIPAL PLANE
STRIKE OF AUXILLIARY PLANE IN
RADIANS
CONVERSION FACTOR FROM DEGREES TO RADIAN
SAVES PRINCIPAL PLANE SLIP ANGLE FOR ASSIGNING PROPER SIGN TO AUXILLIARY
SCRATCH VARIABLE
SLIP ANGLE OF PRINCIPAL PLANE IN RADIANS
SLIP ANGLE OF AUXILLIARY PLANE
DATA FIRST /.TRUE./
SAVE FIRST, RAD
IF (FIRST) THEN
FIRST -
.FALSE.
RAD
" OATAN(1.000)/45 .000
END IF
PHI1 "
001 -
90.000
IF (PHI1 .L
T. 0.0D0) PHI1
PHII +
360.0D0
REAL
REAL
REAL
REAL
REAL
REAL
DOUBLE
DOUBLE
LOGICAL
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
PRECISION
PRECISION
PRECISION
PRECISION
PRECISION
PRECISION
PRECISION
PRECISION
PRECISION
DA1
DD1
SA1
DA2
DD2
SA2
BOT
DELI
FIRST
PHII
PHI2
RAD
SGN
TOP
XLAM1
XLAM2
DELI
< SGN -
XLAM1
> DA1*RAO
SA1
- SA1*RAD
TOP
- DCOS(XLAM1)"DSIN(PHI1) -
OCOS(DEL 1>*DSIN(XLAM1)*DCOS(PHI 1>
BOT "
DCOS(XLAM1)*DCOS(PHI1)
+ DCOS(DEL 1)«DSIN(XLAM1)"DSIN(PHI 1)
002
- DATAN2(TOP, BOT)/RAO
PHI2 "
(002 - 90.0D0)*RAD
IF (SA1 .L
T. 0.0D0) OD2
- OD2 -
180.0D0
IF (D02 .LT. 0.0D0) DD2 -
DD2
+ 360.0D0
IF (D02. GT. 360.0D0) OD2
" D02
- 360.0D0
CD
A2
O
AC
OS
(OS
1N
(DA
BS
(XL
AM
1 )
)*D
SIN
(OE
H M
/RA
DXLAM2
-DCOS(PHI2)"DSIN(DEL1)*DSIN(PHI1 )
+
& DSIN<PHI2)"DSIN(OEL1)*DCOS<PHI1)
C C MACHINE ACCURACY PROBLEM
CIF
(XLAM2 .GT. 1.0D0) THEN
XLAM2
« 1.000
END IF
XLAM2
- DSIGN(DACOS(XLAM2), SGN)
SA2
- XLAM2/RAD
VO
O
RETURN
END
c c c c c c c c c c c c c c c c
SUBROUTINE TPPLOT
PLOT P
AND T AXES
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
CHARACTER*4
REAL
REAL
REAL
CHARACTER*!
CHARACTER*!
PARAMETER (ANG -
FIND AUXILLIARY PLANE
CALL AUXPLN <DD1 ,
FIND P
AND T
AXES
(CX.
CY.
DA1, DD
1, HITE. PI,
RAD .
RMAX, SA1, WT )
CX CY DA1
001
HITE
PI RAD
RMAX
SA1
WT AIN1
AIN2
ANG
AZ1
AZ2
BLANK
DA2
DD2
SA2
SYM1
SYM2
X POSITION OF CIRCLE CENTER
Y POSITION OF
CIRCLE CENTER
DIP
ANGLE OF
PRINCIPLE PLANE
DIP
DIRECTION OF
PRINCIPLE PLANE
HEIGHT OF
P ,T SYMBOL
PI PI/1B0
RADIUS OF CIRCLE
RAKE OF
PRINCIPLE PLANE
WEIGHT ASSIGNED TO PICK QUALITY IN
PROGRAM FPFIT
ANGLE OF
INCIDENCE OF
P/T AXIS
ANGLE OF
INCIDENCE OF
T/P AXIS
ANGLE OF
PLOT SYMBOL
AZIMUTH OF
P/T AXIS
AZIMUTH OF
T/P AXIS
BLANK
DIP ANGLE OF
AUXILLIARY PLANE
DIP
DIRECTION OF
AUXILLIARY PLANE
STRIKE OF
AUXILLIARY PLANE
P/T PLOT SYMBOL
T/P
PLOT SYMBOL
0.0, BLANK -
'
)
DA1, SA1, DD2,
DA2, SA2)
CALL TANDP (AIN1, AIN2, AZ1, AZ2. OA1, DA2. DD1
IF (SA1
.LT. 0. )
THEN
SYM1
- 'P*
SYM2 -
'T*
ELSE SYM1 -
'T*
SYM2 -
*P*
END IF
PLOT SYMBOLS
CALL PLTSYM (AIN1. AZ1. CX.
CY,
HITE, BLANK, PI
&
WT)
CALL PLTSYM (AIN2. AZ2, CX,
CY,
HITE, BLANK, PI
&
WT)
RETURN
END
DD2. PI.
RAD)
RAD, RMAX. SYM1.
RAD, RMAX, SYM2.
SUBROUTINE TANDP(AIN1. AIN2, AZ1, AZ2, DA1. DA2, DDI. DD2, PI.RAD)
GIVEN TWO PLANES COMPUTE AZ AND ANGLE OF INCIDENCE OF
P & T AXES
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
AINI
AIN2
AZ1
AZ2
DA1
DA2
DD1
DD2
PIRAD
ALAT1
ALAT2
ALON1
ALON2
AZIMTH
AZ0
8AZM
DELTA
PLUNGE
SHIFT
XPOS
YPOS
ANGLE OF INCIDENCE OF P/T AXIS
ANGLE OF INCIDENCE OF T/P AXIS
AZIMUTH OF P/T AXIS
AZIMUTH OF T/P AXIS
DIP ANGLE OF PRINICIPLE PLANE
DIP ANGLE OF AUXILLIARY PLANE
DIP DIRECTION OF PRINCIPLE PLANE
DIP DIRECTION OF AUXILLIARY PLANE
PIPI/180
DIP ANGLE IN RADIANS OF PRINCIPLE PLANE MEASURED FROM VERTICAL
DIP ANGLE IN RADIANS OF AUXILLIARY PLANE MEASURED FROM VERTICAL
DDI
IN RADIANS
DD2 IN RADIANS
AZIMUTH IN RADIANS OF POLE ??
AZIMUTH FROM POLE OF AUXILLIARY PLANE TO POLE OF PRINCIPLE 7?
NOT USED
NOT USED
PLUNGE
IN RADIANS OF POLE ??
AZIMUTHAL SHIFT FROM POLE OF PLANE TO P
TO T
AXIS (- 45 DEGREES)??
NOT USED
NOT USED
PARAMETER (SHIFT - 0.7853981)
ALAT1
- (90.
- DA1)«RAD
ALON1
- DD1-RAD
ALAT2 -
(90.
- DA2)*RAD
ALON2
- DD2*RAD
CALL REFPT (ALAT2, ALON2)
CALL DELAZ (ALATI. ALON1. DELTA. AZ0. BAZM. XPOS, YPOS)
CALL BACK (SHIFT, AZ0, PLUNGE, AZIMTH)
~tf"<ABS(AZIMTH) TCT^Pl) A21HTH » AZ1HTH =~
S1GH( 2 .F*FT .
AZIMTH)
AZ1
- AZIMTH/RAD
AINI
- PLUNGE/RAD
+ 90.
AZ0 - AZ0 +
PICALL BACK (SHIFT, AZ0, PLUNGE, AZIMTH)
IF (ABS(AZIMTH) .GT. PI) AZIMTH
- AZIMTH -
SIGN<2.0«PI, AZIMTH)
AZ2 - AZIMTH/RAD
AIN2 -
PLUNGE/RAD
+ 90.
RETURN
END
SUBROUTINE GEOCEN
GEOCEN
- CALCULATE GEOCENTRIC POSTITIONS. DISTANCES, AND AZIMUTHS (BRUCE JULIAN, USGS MENLO PARK. CA>
THE GEOCENTRIC DISTANCE DELTA AND AZIMUTH AZ0 FROM POINT (LAT0, LON0) TO POINT (LAT1, LON1) ARE CALCULTED FROM
COS(DELTA)
- COS(LAT0'>*COS(LAT1'>«COS(LON1
- LON0)
+ SIN(LAT0'>«SIN(LAT1'>
SIN(DELTA)
* SORT(A«A +
B*B)
TAN(AZ0)
* A/B
WHERE
ro
A
= COSILATI '
)*SIN(LON1-LON0)
B = COSUATN0' >*SIN(LAT1 '
>
- SIN(LAT0' )«COS(LAT1')*COS<LON1
- LON0)
LAT0', LAT1'
- GEOCENTRIC LATITUDES OF POINTS
LON0, LON1
- LONGITUDES OF POINTS
THE GEOCENTRIC LATITUDE LAT'
IS GOTTEN FROM THE GEOGRAPHIC LATITUDE LAT BY TAN(LAT')
WHERE ALPHA IS THE FLATTENING OF THE ELLIPSOID.
SEE FUNCTION GGTOGC FOR CONVERSION.
THE BACK AZIMUTH IS
CALCULATED BY THE SAME FORMULAS WITH <LAT0', LON0) AND <LAT1', LON1) INTERCHANGED.
AZIMUTH IS MEASURED CLOCKWISE FROM NORTH THRU EAST.
- ALPHA)«U
- ALPHA)«TAN<LAT)
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
INTEGER
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
R. THETA
AZ0
AZ1
CDELT
COLON
COLAT
CT0
CT1
CZ0
DELTA
DLON
ERAD
FLAT
LAMBDA
LAT
LON
OLAT
OLON
PHI0
PIRADIUS
SDELT
SDLON
ST0
ST1
TWOPI
RADIUS. AZIMUTH IN POLAR COORDINATES
AZIMUTH FROM REFERENCE POINT TO SECONDARY POINT IN RADIANS
AZIMUTH FROM SECONDARY POINT TO REFERENCE POINT IN RADIANS
SINE OF DELTA TO SECONDARY POINT
COSINE OF DIFFERENCE OF SECONDARY POINT, REFERENCE LONGITUDE
AVERAGE COLATITUDE OF STATION
SINE OF REFERENCE POINT LATITUDE
SINE OF SECONDARY POINT LATITUDE
COSINE OF AZIMUTH TO SECONDARY POINT
GEOCENTRIC DISTANCE IN DEGREES
AZIMUTH IN POLAR COORDINATES TO SECONDARY POINT 7
EQUATORIAL RADIUS (CHOVITZ, 1981, EOS, 62, 65-67)
EARTH FLATTENING CONSTANT tCHOVITZ. 1981, EOS. 62, 65-67)
DUMMY VARIABLE
LATITUDE IN RADIANS
LONGITUDE IN RADIANS
ORIGIN LATITUDE IN RADIANS
ORIGIN LONGITUDE IN RADIANS
REFERENCE SECONDARY POINT LONGITUDE
3.14159...
EARTH RADIUS AT COLAT
COSINE OF DELTA TO SECONDARY POINT
! SINE OF DIFFERENCE OF SECONDARY POINT, REFERENCE LONGITUDE
I COSINE OF REFERENCE POINT LATITUDE
! COSINE OF SECONDARY POINT LATITUDE
! 2*PI
SAVE ST0, CT0, PHI0, OLAT
PARAMETER (PI
3.1415926535897. TWOPI
2.«Pl)
PARAMETER <FLAT
1./298.257, ERAD
6378.137)
PARAMETER (LAMBDA
FLAT«<2.
- FLATJ/U.
- FLAT)"2)
REFPT -
STORE THE GEOCENTRIC COORDINATES OF THE REFEERNCE POINT
ENTRY REFPT(OLAT, OLON)
ST0 COS<OLAT)
CT0 SINtOLAT)
PHI0 - OLON
RETURN
DELAZ - CALCULATE THE GEOCENTRIC DISTANCE, AZIMUTHS
ENTRY DELAZaAT, LON. DELTA. AZ0. AZ1 ,
X, Y)
CTI
- SIN(LAT)
ST1 -
COStLAT)
IF UCT1
- CT0) .EO. 0.
.AND. <LON
- PHI0)
.EO. 0.) THEN
DELTA
« 0.
AZ0
- 0.
AZ1
= 0.
ELSE SDLON = SINtLON
- PHI0)
COLON
« COStLON
- PHI0)
CO
CDELT
- ST0«ST1"CDLON
+ CT0*CT1
CALL CVRTOP <ST0*CT1
- ST1«CT0«CDLON, ST1*SDLON, SDELT, AZ0)
DELTA - ATAN2(SDELT. CDELT)
CALL CVRTOP <ST1«CT0 - ST0*CT1"COLON, -SDLON«ST0, SDELT, AZ1 )
IF (AZ0 .LT. 0.0) AZ0 - AZ0 *
TUOPI
IF (AZ1
.LT. 0.0) AZI
- AZ1
* TWOPI
END IF
COLAT
" PI/2.
- (LAT
* OLAT)/2.
RADIUS -
ERAD/SORT<1.0
+ LAMBDA*COS<COLAT)*«2)
V - RADIUS*DELTA*COS(AZ0)
X - RADIUS«DELTA*S1N(AZ0)
RETURN
C C BACK - CALCULATE GEOCENTRIC COORDINATES OF SECONDARY POINT FROM DELTA, AZ
CENTRY BACK (DELTA. AZ0. LAT, LON)
CSDELT - SIN(DELTA)
CDELT
- COS(DELTA)
CZ0 - COS(AZ0)
CT1
- ST0*SDELT*CZ0
+ CT0*CDELT
CALL CVRTOP (ST0«CDELT
- CT0*SDELT"CZ0, SDELT«SIN(AZ0), ST1, DLON)
LAT
- ATAN2(CT1, ST1)
LON
- PHI0 *
DLON
IF (ABS(LON)
.GT. PI) LON
- LON
- SIGNtTWOPI, LON)
CRETURN
END
C
C C
C CSUBROUTINE CVRTOPtX, Y, R. THETA)
C C CVRTOP
- CONVERT FROM RECTANGULAR TO POLAR COORDINATES (BRUCE JULIAN, USGS MENLO PARK, CA)
C _
REAL_____________X.Y
____________
I X.Y RECTANGULAR COORDINATES
REAL
R, THETA
! RAD1 US 7~AZ IMUTH TTT FOTA1* COORD1 NATES
CR
- SORT(X*X
* Y«Y)
THETA - ATANZtY, X)
RETURN
END
C C C
C
CSUBROUTINE PLTSYM (AIN, AZ, CX. CY. HITE, NAME, PI, RAD, RMAX,
& SYM. WT)
C C
PLOT EITHER FIRST MOTION SYMBOL (C,D,*,-> WITH STATION NAME NEXT TO SYMBOL, OR STRESS AXES SYMBOL <P & T)
CREAL
AIN
! ANGLE OF INCIDENCE OF SYMBOL
REAL
AZ
! AZIMUTH OF SYMBOL
REAL
CX
! X
POSITION OF CIRCLE CENTER
REAL
CY
! Y
POSITION OF CIRCLE CENTER
REAL
HITE
\ HEIGHT OF SYMBOL
CHARACTER*4
NAME
! STRING TO BE PLOTTED TO RIGHT OF SYMBOL
REAL
PI
I PI
REAL
RAD
! PI/180
REAL
RMAX
! RADIUS OF CIRCLE
CHARACTER"!
SYM
! PLOT SYMBOL
REAL
WT
! WEIGHT ASSIGNED TO PICK QUALITY IN PROGRAM FPFIT
REAL
REAL
REAL
REAL
LOGICAL
REAL
REAL
REAL
REAL
REAL
AINR
ANG
AZR
CON
FIRST
R SIZE
SYMSIZ
X V
AIN IN RADIANS
PLOT ANGLE OF SYMBOL
AZ IN
RADIANS
RMAX *
SORT<2.0)
FLAG FIRST TIME INTO ROUTINE
DISTANCE FROM CX. CY TO PLOT POSITION
PLOT SYMBOL SIZE SCALED BY WT
MAXIMUM SYMBOL SIZE
X POSITION OF SYMBOL
Y POSITION OF SYMBOL
PARAMETER (ANG -
0.0. SYMSIZ -
0.2)
AZR
-
AINR
AZ«RAD
AIN«RAD
UPGOING RAYS
IF (AIN .GT. 90.) THEN
AINR -PI
- AINR
AZR
- PI
« AZR
END IF
CON - RMAX*SORT(Z.0>
R CON*SIN<AINR«0.5>
X - R*SIN(AZR>
+ CX
Y R*COS(AZR>
+ CY
STRESS AXIS SYMBOL
IF ((SYM .EG. 'P'> .OR. (SYM .EQ. 'T'» THEN
X -
X -
.286*HITE
Y
Y
- .5*HITE
CALL SYMBOL (X, Y, HITE, XREF(SYM), ANG.
1)
ELSE
FIRST MOTION SYMBOL
SIZE
- SYMSIZ«WT
IF (AIN .GT. 90.> THEN
CALL NEWPEN (4)
ELSECALL NEWPEN (1)
END
IF
IF (SYM .EQ.
*C'> THEN
CALL CIRCLE (SIZE, 2.0*PI. X, Y)
ELSECALL TRINGL (SIZE, X, Y)
END IF
CALL NEWPEN (1)
PLOT STATION NAME
IF (NAME .NE.
' & XREF(NAME), 0.,
4)
END IF
RETURN
END
) CALL SYMBOL (X
+ SIZE/2., Y, SIZE/2.,
cn
c c c c c c c c c c c c c c c c c c c c c
PROGRAM FPPAGE
PURPOSE:
INPUT FILEJ
PLOT EARTHQUAKE RAY POLARITIES AND FAULT PLANES ON A LOWER HEMISPHERE EQUAL AREA PROJECTION.
MAKES MULTIPLE PLOTS PER PA
GF.
.
A FILE OF THE TYPE " .POL", WHICH IS GENERATED BY THE PROGRAM "FPFIT" (SEE "FPFIT. FPPLOT AND FPPAGE:
FORTRAN COMPUTER PROGRAMS FOR CALCULATING AND DISPLAYING EARTHQUAKE FAULT-PLANE SOLUTIONS,
BY P.
REASENBERG AND D.
OPPENHEIMER. U.S. GEOLOGICAL SURVEY OPEN-FILE REPORT 85-77?)
REQUIRED ROUTINES! CALCOMP STYLE PLOT ROUTINES PLOTS. PLOT. NEWPEN. SYMBOL.
DEPARTURES FROM
OUTPUT:
AUTHORS:
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
CHARACTER
1*!
REAL
REAL
REAL
CHARACTER'132
CHARACTER*50
CHARACTER*!
REAL
INTEGER
INTEGER
INTEGER
CHARACTER'40
CHARACTER*!
INTEGER
CHARACTER'4
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
INTEGER
REAL
REAL
CHARACTER*!
CHARACTER**
REAL
REAL
REAL
REAL
FORTRAN-77 STANDARD:
I. KEYWORD "READONLY" IN OPEN STATEMENT
2. EMBEDDED COMMENTS PREFACED WITH AN EXCLAMATION MARK (!)
FOLLOWING VARIABLE DECLARATIONS
3. ARGUMENT LIST BUILT-IN FUNCTION "XREF"
4. CALLS TO VAX SYSTEM ROUTINES "SYSSB I
NT I M" ,
"SYSSSCHDWK" .
"SYSSHIBER"
(SUBROUTINE DELAY)
GRAPHIC OUTPUT ONLY
PAUL REASENBERG AND DAVID OPPENHEIMER. U.S.G.S.
IN MENLO PARK.
SOME OF THE ROUTINES
WERE ADOPTED FROM CODE WRITTEN BY JOHN LAHR .
BRUCE JULIAN. AND FRED KLEIN.
AIN
A2M
CXCXMAX
CY DAI
DA2
DD1
DD2
DISC
DIST
DX DYEVENT
FILNAM
HEAD
HITE
I ILINE
I OS
LINE
MULT
MXEVNT
NAME
NCHAR
NEV
NLABEL
NL INE
NSKIP
NSTAR
NUM
NY
PI PLOTLN
PLTPOL
PRMK
RAD
RMAX1
RMAX2
SAI
RAY ANGLE OF INCIDENCE
RAY AZIMUTH
X POSITION OF STEREO NET CENTER
GREATEST X
POSITION IN PLOT
Y POSITION OF STEREO NET CENTER
DIP ANGLE OF PRINCIPLE PLANE
DIP ANGLE OF AUXILLIARY PLANE
DIP DIRECTION OF PRINCIPLE PLANE
DIP DIRECTION OF AUXILLIARY PLANE
FLAG:
IF "*
" THEN FIRST MOTION DISCREPANT WITH SOLUTION
EPICENTRAL DISTANCE
INCREMENTAL X
POSITION BETWEEN BEACHBALLS
INCREMENTAL Y
POSITION BETWEEN BEACHBALLS
t HVJWf SUMMARY CARD
FILE NAME OF DATA
HEADER FLAG: N-PLOT EVENT NUMBER, D=EVENT DATE
HEIGHT OF EVENT #
LOOP INDEX OVER NUMBER OF LINES OF NEARBY SOLUTIONS
INPUT LINE NUMBER
10 STATUS DESCRIPTOR
SCRATCH VARIABLE FOR PLOT OUTPUT
FLAG: Y(N)=DO (NOT) PLOT MULTIPLE SOLUTIONS
MAXIMUM NUMBER OF EVENTS PER PAGE
STATION NAME
NUMBER OF CHARACTERS TO BE PLOTTED
EVENT NUMBER
CURRENT EVENT LABEL NUMBER
NUMBER OF LINES OF NEARBY SOLUTIONS
NUMBER OF EVENTS TO SKIP
NUMBER OF SOLUTIONS WITH FIT WITHIN
5X OF BEST SOLUTION
NUMBER OF EVENTS PLOTTED
NUMBER OF BEACHBALLS IN
Y
DIRECTION
PI PLOT LENGTH IN
X DIRECTION
FLAG: Y(N)=DO (NOT) PLOT FIRST MOTION DATA
FIRST MOTION DESCRIPTION (EG. IPU0)
PI/ 180
RADIUS OF STEREO NET
RADIUS OF FIRST MOTION SYMBOL
RAKE OF
AUXILLIARY PLANE
01
REAL
CHARACTER*!
CHARACTER I
CHARACTER'80
REAL
REAL
REAL
SA2
STAR
SYM
TITLE
WT XPOS
YPOS
! RAKE OF AUXILLIARY PLANE
! MULTIPLE INDICATOR
! FIRST MOTION DIRECTION
! DATA SET DESCRIPTOR
! WEIGHT ASSIGNED TO PICK QUALITY IN PROGRAM FPFIT
! X
PLOT POSITION
! Y
PLOT POSITION
C 10
IB 16 20
50
PARAMETER (HUE =
0.15, MXEVNT =
42,
RMAX1
= 0.5, RMAX2 -
.065,
A YPAGE
- 10.5)
PI
= ATAN(I.0)*4.0
. BAD
" PI/180.0
DY
« RMAX1*3
NY
« YPAGE/DY
DX =
DY
WRITE (6,
15)
"ENTER NAME OF DATA FILEi
FORMAT ('$'. A)
READ (5
. 16.
ERR =
10)
FILNAM
FORMAT (A
)OPEN (UNIT
« 2.
FILE =
FILNAM, ERR
- 10
, STATUS
" 'OLD', BLANK
- A
'ZERO', READONLY)
WRITE (6
. 15
) 'DO YOU WANT TO PLOT EVENT HEADERS AS NUMBERS (N
) OR
A DATES (D>?
'READ (5
. 16,
IOSTAT
- IOS) HEAD
IF (HEAD .E
O. 'y') HEAD =
*Y'
.EO. 'n*) HEAD "
'N'
.OR.
IOS .NE. 0) THEN
D"; TRY AGAIN «****
IF (HEAD
IF ((HEAD .NE.
'N*
.AND. HEAD .N
E. 'DM
PRINT *,
« « PLEASE ANSWER "N
" OR
GOTO 20
END IF
WRITE (6.
15)
'ENTER NUMBER OF MECHANISMS TO SKIP (INCLUDING MULTI
APLE SOLUTIONS)!
READ (5
, *,
IOSTAT
- IOS) NSKIP
IF (NSKIP .LT. 0 .OR. IOS
. NE .
0) THEN
PRINT *,
' * ** INVALID NUMBER; TRY AGAIN «**
GOTO 30
END
IFWRITE (6,15)
READ (5
. 16,
'y') MULT -
'Y'
*n') MULT
- *N'
.EO.
.E
Q. .NE.
'Y'
.AND. MULT .NE.
* PLEASE ANSWER "Y"
'N'
) .O
R. IOS .NE. 0) THEN
OR "N"; TRY AGAIN * *
'DO YOU WANT TO PLOT MULTIPLE SOLUTIONS (Y
OR N)?
IOSTAT
- IOS) MULT
IF (MULT
IF (MULT
IF ((MULT
PRINT *
GOTO 40
END
IFWRITE (6.15) 'DO YOU WANT TO PLOT FIRST MOTION DATA (Y
OR N)7
READ (5
, 16.
IOSTAT *
IOS) PLTPOL
IF (PLTPOL .E
O. 'y') PLTPOL
- *Y'
IF (PLTPOL .E
O.
'n'> PLTPOL
- 'N'
IF ((PLTPOL .NE. 'V .AND. PLTPOL .NE.
PRINT *.
«« PLEASE ANSWER "Y
" OR
GOTO 50
END
IF
.OR. IOS .N
E.
TRY AGAIN ***'
0) THEN
C READ HYP071 HEADER CARD (FIRST LINE IN MODEL FILE)
CNLABEL
= 0
NEV 0
NUM
0
CXMAX
« 0.
ILINE =
1READ (2.
60. ERR
- 2000) TITLE
60
FORMAT (A
)
C INITIALIZE PLOT PROGRAM
CCALL PLOTS (0
., 0.. 0)
CALL ERASE
CALL DELAY ('000000:00:01.00')
CALL PLOT (.1.
.I.
-3)
CALL NEWPEN (2
) C C
READ EVENT
C 70
ILINE
- ILINE
+ 1
READ (2.
80,
END
= 1000, ERR
2000) EVENT
80
FORMAT (IX. A132)
NEV -
NEV *
1READ (EVENT, 90
, ERR
- 2000) DDL DA1. SA1, STAR
90
FORMAT (T81, F4.0. F3.0, F4.0, T132, Al )
IF
(STAR .E
Q.
' ') NLABEL
NLABEL
+ 1
IF {(NEV .GT. NSK1P) .AND. ((MULT .EQ.
& .O
R. MULT .E
Q. 'Y')) THEN
.AND. STAR .EQ.
C END PLOT IF MORE THAN MXEVNT EVENTS
CNUM
NUM
+ 1
IF (NUM .GT. MXEVNT) THEN
NUM
- 1
CALL PLOT (0.. 0.. -999)
CALL ERASE
CALL DELAY ('0000 00:00:01.00')
CALL PLOT (.1,
.1.
-3)
CALL NEWPEN (2)
END IF
CY
YPAGE -
DY«FLOAT(OMOD(NUM
- 1, NY»
- RMAX1"2.0
CX
RMAX1 *
DX«FLOAT( (NUM - M/NY
> IF (JMOD(NUM -
1, NY) .EQ. 0) CXMAX
- CXMAX
+ DX
XPOS -CX
- RMAX1
YPOS
CY
* RMAX1
* .I
H^ (HEAD T^frr JN') THEN
-
IF (NLABEL .L
T. 10) THEN
NCHAR
- 2
WRITE (LINE, Mil
ELSE
IF (NLABEL .GE
3( 12
Al )
' >
NLABEL, STAR
10 .AND. NLABEL .L
T. 100) THEN
NCHAR
WRITE (LINE.
ELSE NCHAR -
4
Alt') NLABEL, STAR
WRITE (LINE. MI3, Alt') NLABEL, STAR
END
IFCALL SYMBOL (XPOS, YPOS, HITE. XREF(LINE). 0., NCHAR)
ELSEWRITE (LINE, '(All. Al)') EVENT(1:11>. STAR
NCHAR
12
CALL SYMBOL (XPOS, YPOS, HITE*.75. XREF(LINE), 0., NCHAR)
END IF
C C
PLOT STEREO NET PERIMETERS
CCALL STRNT1 (CX, CY, RAD, RMAX1 )
C C
PLOT NODAL PLANES AND "P"
AND "T
" AXES
CCALL PLOTPL (CX, CY, DA1, PI, RAD, RMAX1, DD1
- 90.)
CALL AUXPLN (DDL DA 1, SAL DD2, DA2, SA2)
CALL PLOTPL (CX, CY, DA2, PI
, RAD. RMAX1. DD2
- 90.)
00
CALL TPPLOT (CX. CY, DA 1.
DD1, RMAX2*I.5, PI. PLTPOL, RAD,
& RMAXI. SAI, 1.0)
END
IF
C C SKIP OVER NEARBY SOLUTIONS
CILINE
- ILINE
« I
READ (2.
*, ERR
- 2000) NSTAR
NLINE
« (NSTAR-I)/Il
« I
DO 110
I -
I. NLINE
ILINE
- ILINE
« I
READ (2, 100, ERR
* 2000) LINE
100
FORMAT <A>
110
CONTINUE
C C READ PHASE CARD
C 120
ILINE
- ILINE +
1READ (2, 130, END
- 1000. ERR "
2000) NAME, DIST, A2M. AIN,
& PRMK, WT. DISC
130
FORMAT (IX, A4, 3F6.1. 3X, A4, F5.2, 2X. Al )
IF
(NAME .NE.
' '> THEN
IFCINEV .GT. NSKIP) .AND. {{MULT .Ed.
'N*
.AND. STAR .Ed.
' ')
& .OR. MULT .Ed.
'Y'> .AND. {PLTPOL .EQ. 'Y')> THEN
C C PLOT FIRST MOTION
CIF
{PRMK(3i3> .EQ.
'U1
.OR. PRMK(3:3) .EQ.
' + ')
THEN
SYM -
*C*
ELSESYM
- *D*
END IF
CALL PLTSYM {AIN, A2M, CX, CY, RMAX2,
' ',
PI, RAD,
& RMAXI, SYM. 1.0)
END IF
GOTO 120
END IF
GOTO 70
C C END OF FILE
C 1000
CALL PLOT {0., 0., 999)
PLOTLN CXMAX
* RMAXI
PRINT *, 'MAXIMUM PLOT SIZE -', PLOTLN, 'X'. YPAGE
CLOSE {2)
STOP
C C READ ERROR
C 2000
PRINT *.
' READ ERROR ON LINE', ILINE
STOP
END
C
C C
C C C
SUBROUTINE AUXPLN {DD1. DA 1,
SAI, DD2, DA2, SA2)
C C CALCULATE THE AUXILLIARY PLANE OF A DOUBLE COUPLE FAULT PLANE SOLUTION, GIVEN THE PRINCIPLE PLANE.
C C WRITTEN BY PAUL REASENBERG. JUNE. 1984. FROM CLASS NOTES BY DAVE BOORE, (BOTH AT THE U.S.G.S., MENLO PARK.)
C ANGLE VARIABLES PHI, DEL AND LAM ARC AS DEFINED IN AKI AND RICHARDS, (1980), P.114.
REAL
REAL
REAL
REAL
REAL
REAL
DA1
DD1
SA1
DA2
DD2
SA2
! DIP ANGLE IN
DEGREES
I DIP DIRECTIONS IN DEGREES
! SLIP ANGLE IN DEGREES
I DIP ANGLE OF AUXILLIARY PLANE
! DIP DIRECTION OF AUXILLIARY PLANE
! SLIP ANGLE OF
AUXILLARY PLANE
DOUBLE PRECISION
BOT
DOUBLE PRECISION
DELI
LOGICAL
FIRST
DOUBLE PRECISION
PHI1
DOUBLE PRECISION
PHIZ
DOUBLE PRECISION
RAD
DOUBLE PRECISION
SGN
DOUBLE PRECISION
TOP
DOUBLE PRECISION
XLAM1
DOUBLE PRECISION
XLAMZ
I SCRATCH VARIABLE
I DIP ANGLE OF
PRINCIPAL PLANE IN RADIANS
! TEST: TRUE
IF FIRST TIME INTO ROUTINE
! FAULT PLANE STRIKE OF PRINCIPAL PLANE
! STRIKE OF AUXILLIARY PLANE IN RADIANS
! CONVERSION FACTOR FROM DEGREES TO RADIAN
! SAVES PRINCIPAL PLANE SLIP ANGLE FOR ASSIGNING PROPER SIGN TO AUXILLIARY
! SCRATCH VARIABLE
! SLIP ANGLE OF PRINCIPAL PLANE IN RADIANS
! SLIP ANGLE OF AUXILLIARY PLANE
DATA FIRST /.TRUE./
SAVE FIRST. RAD
IF (FIRST) THEN
FIRST -
.FALSE.
RAD " DATAN(1.0D0)/45.0D0
END IF
PHI1
" DD1
- 90.0D0
IF <PHI1
.LT. 0.0D0) PHI1
PHI1
+ 360.000
PHI1
- PHII*RAD
DELI
DA1*RAD
SGN
SAI
XLAM1
SAI*RAD
TOP
- DCOS(XLAM1)*DSIN(PHI1)
BOT - DCOSULAM1 )*DCOS(PHI1 )
JLD2_- JA1AN21TOP .
BQTl/RAH
__ ______
(DD2 -
90.0D0)*RAD
0.000) DD2 "
DDZ -
180.0D0
0.0D0) DDZ -
DDZ +
360.0D0
360.0D0) DD2
DDZ
- 360.0D0
DCOS(DELt)"DSIN(XLAM1)«DCOS(PHI1)
DCOSIDEL1>*DSIN(XLAMI)*DSIN<PHI1)
PHIZ
IF (SA1
.LT.
IF
(DD2 .L
T.
IF (DD2. GT.
DA
2
DA
CO
S<
DS
IN(D
AB
S(X
LA
M1>
)*D
SIN
(DE
L1M
/RA
DXLAMZ «
-DCOS(PHI2)*DSIN(DEL1 )*DSIN(PHI1)
+ A
DSIN(PHI2)*DSIN(DEL1)*DCOS(PHI1)
C C MACHINE ACCURACY PROBLEM
CIF
(XLAM2 .GT. 1.0D0) THEN
XLAM2 "
1.0D0
END IF
XLAM2
" DSIGN(DACOS<XLAMZ). SGN)
SA2
- XLAM2/RAD
RETURN
END
SUBROUTINE CIRCLE (SIZE, TWOPI, X0. Y0)
O O
C PLOT A CIRCLE
CREAL
REAL
REAL
REAL
CREAL
INTEGER
INTEGER
REAL
REAL
REAL
SIZE
TWOPI
X0
Y0
ANGLE
J N SIZE2
X Y
SIZE2
- SIZE-0.5
C COMPUTE OPTIMUM # OF POINTS TO DRAW
CN -
20*SORT(SIZE2*20.)
IF (N .LT.
10) N
« 10
C C DRAW CIRCLE
CX -
X0 +
SIZE2
CALL PLOT (X, Y0, 3)
DO 10 J
1, N
ANGLE
TWOPI«FLOAT(J)/FLOAT(N>
X -
X0 + SIZE2"COS(ANGLE»
Y
- Y0 + SIZE2*SIN(ANGLE>
CALL PLOT (X, Y, 2)
CONTINUE
10
CRETURN
END SUBROUTINE DELAY (TIME)
CIRCLE DIAMETER
TWO«PI
X POSTION OF CENTER
Y POSTION OF CENTER
ANGLE
LOOP INDEX
NUMBER OF POINTS OF WHICH CIRCLE COMPOSED
CIRCLE RADIUS
X PLOT POSTION
Y PLOT POSTION
C CREATES A DELAY FOR SCREEN RECOVERY
CCHARACTERM")
TIME
DOUBLE PRECISION
B C C CONVERT ASCII TIME TO BINARY TIME
CCALL SYSSBINTIM (TIME.B)
C C SCHEDULE A WAKEUP FOR A ELAPSED TIME (NEGATIVE B)
CCALL SYS$SCHDWK (,,-B.)
C C HIBERNATE AND REAWAKE
CCALL SYSSHIBER
! STANDARD VMS TIME FORMAT OF THE FORM
! BINARY TIME CORRESPONDING TO TIME
DDDD HHtMMtSS.SS
1
RETURN
END
SUBROUTINE ERASE
C SENDS A SCREEN ERASE CODE TO A TEKTRONIX TERMINAL
CCHARACTER*!
ACHARACTER*!
B! ASCII ESCAPE
! ASCII FORM FEED
10
C
A
» CHAR(27)
B »
CHAR(12)
WRITE (6.
10) A.
B FORMAT (IX, 2AI )
RETURN
END
SUBROUTINE PLOTPL <CX, CY, DPIDG, PI, RAD, RMAX, STRKDG)
C PLOTS FAULT PLANE ON LOWER HEMISPHERE STEREO NET
CREAL
CX
REAL
CY
REAL
DPIDG
REAL
PIREAL
RAD
REAL
RMAX
REAL
STRKDG
REAL
REAL
REAL
JUtAL
REAL
REAL
INTEGER
INTEGER
REAL
REAL
REAL
REAL
REAL
REAL
REAL
ANG
AINPI91)
ARG
AZ___
CON
DIPRD
I MI RADIUS
SAZOl )
STRKRD
TAZ
TPD
X Y
X POSITION OF CIRCLE CENTER
Y POSITION OF CIRCLE CENTER
DIP ANGLE IN DEGREES
PI PI/180
RADIUS OF CIRCLE
STRIKE ANGLE IN DEGREES
ANGLE IN RADIANS
ANGLE OF INCIDENCE IN RADIANS
DUMMY ARGUMENT
AZIMUTH
RADIUS COEFFICIENT
DIP ANGLE IN RADIANS
LOOP INDEX
SCRATCH INDEX
RADIUS
AZIMUTH IN RADIANS
STRIKE IN RADIANS
SCRATCH VARIABLE
SCRATCH VARIABLE
X PLOT POSITION
Y PLOT POSITION
ST
RK
RD
-
ST
RK
DG
*RA
D
DIP
RD
-
DP
IDG
*RA
D
TP
D
- T
AN
(PI*
.5
- D
IPR
D>
**2
C C CASE OF VERTICAL PLANE
CIF
(DPIDG .EO. 90.0) THEN
X - RMAX*S!N(STRKRD>
+ CX
Y - RMAX*COS(STRKRD) *
CY
CALL PLOT (X, Y. 3)
X
- RMAX*SIN(STRKRD
+ PI)
Y - RMAX*COS(STRKRD
+ PI)
CALL PLOT (X. Y, 2)
RETURN
END IF
CX
CY
O ro
COMPUTE ANGLE OF INCIDENCE, AZIMUTH
DO 10
I «
1. 90
ANG
- FLOAT! I
-
I )*RAD
ARC
- SQRT((COS(DIPRD)**2)*(SIN(ANG)**2))/COS(ANG)
SAZ( I
)
«= ATAN(ARG)
TAZ
- TAN(SAZ( I
) >**2
ARC * SQRTITPD +
TPD-TAZ
+ TAZ)
AINP(I)
- ACOS(TAN(SAZ( I
»/ARG>
10
CONTINUE
SAZ(9I
) "
90.*RAD
AINP(91)
- PI*.5 -
DIPRD
PLOT PLANE
CON * RMAX*SORT(2.)
DO 20
I *
I. 180
IF
(I .LE. 91) THEN
MI
*AZ
-ELSE MI
*AZ
-END IF
RADIUS
I SAZ( I
)
+ STRKRD
181
- I
PI
- SAZ(MI )
+
STRKRD
« CON*SIN(AINP<MI >*0.5>
X "
RADIUS*SIN(AZ)
+ CX
Y "
RADIUS*COS(AZ)
+ CY
20
C C C C C C
IF
(1CALL
ELSECALL
END
IFCONTINUE
RETURN
END
.EG.
1
) THEN
PLOT (X,
Y. 3)
PLOT (X,
Y, 2)
SUBROUTINE STRNT1 (CX. CY. RAD, RMAX)
C C C C
PLOT PERIMETER OF A
STEREO NET
REAL
REAL
REAL
REAL
REAL
INTEGER
INTEGER
INTEGER
REAL
REAL
REAL
REAL
REAL
REAL
CXCYRAD
RMAX
CSIZ
I N NN
P PHI
X XP Y YP
CALL NEWPEN (2)
C CDRAW CIRCLE
9 5
DEGREE INCREMENTS
X POSITION OF CIRCLE CENTER
Y POSITION OF CIRCLE CENTER
PI/180
RADIUS OF CIRCLE
SCRATCH VARIABLE (RMAX/100)
LOOP INDEX OVER DEGREES
TESTS 10 DEGREE TICK POSITION
TESTS 90 DEGREE TICK POSITION
TICK LENGTH
AZIMUTH IN RADIANS
X POSTION OF CIRCLE
X POSITION OF END OF TICK
Y POSTION OF CIRCLE
Y POSITION OF END OF TICK
O
00
DO 10
I «
1. 73
PHI
= FLOATU
- !)
X « RMAX*COS(PHI )
Y
" RMAX*SIN(PHI >
RAD«5.0
CXCY 1 )/I0>*10
I )/90>«90
(I .G
T.NN
- <
I -
I )
- « I
-
IF ((N .EQ. 0) .AND.
(I .G
T. 10» THEN
P 0.02*RMAX
ELSE
IF ((NN .EQ. 0> .AND.
(I
.GT.
90)) THEN
P 0.04*RMAX
ELSE P " 0.0I*RMAX
END IF
XP
(RMAX
+ P)*COS<PHI)
* CX
YP
- (RMAX
* P)«SIN(PHI)
* CY
IF
(1
.GT.
1) THEN
CALL PLOT <X
. Y. 2)
10 C C
IF
( JMOD( I
-
1,
IB)
.EQ.
0)
XP
« (RMAX * TIC)*COS(PHI
YP
- (RMAX
* TIC)*SIN(PHI
CALL PLOT (XP, YP, 2)
CALL PLOT (X
. Y.
3)
END IF
ELSE
CALL PLOT (X,
Y, 3)
END IF
CONTINUE
PLOT
+ AT CENTER
THEN
> *
CX
) *
CY
CSIZ
.01-RMAX
CALL PLOT (CX -
CSIZ, CY, 3)
CALL PLOT (CX
* CSIZ, CY, 2)
CALL PLOT (CX, CY -
CSIZ, 3)
CALL PLOT (CX, CY
+ CSIZ, 2)
RETURN
END
SUBROUTINE TPPLOT
& SA1, WT>
PLOT P AND T
AXES
REAL
CX
REAL
CY
REAL
DA I
REAL
DD1
REAL
HITE
REAL
PI
CHARACTER'1
PLTPOL
REAL
RAD
REAL
RMAX
REAL
SA1
REAL
WT
REAL
AIN!
REAL
AIN2
REAL
ANG
(CX, CY, OA1, 001, HITE, PI, PLTPOL, RAO, RMAX,
X POSITION OF CIRCLE CENTER
Y POSITION OF CIRCLE CENTER
DIP ANGLE
DIP DIRECTION
HEIGHT OF P.T SYMBOL
PI FLAG: Y(N)-DO (NOT) PLOT FIRST MOTION DATA
PI/180
RADIUS OF CIRCLE
RAKE
WEIGHT ASSIGNED TO PICK QUALITY IN
PROGRAM FPFIT
ANGLE OF INCIDENCE OF P/T AXIS
ANGLE OF INCIDENCE OF T/P AXIS
ANGLE OF PLOT SYMBOL
O
REAL
REAL
CHARACTER*4
REAL
REAL
REAL
CHARACTER*!
CHARACTER*!
AZ1
A22
BLANK
DA2
DD2
SA2
SYMI
SYM2
! AZIMUTH OF P/T AXIS
AZIMUTH OF T/P AXIS
BLANK
DIP ANGLE OF AUXILIARY PLANE
DIP DIRECTION OF AUXILIARY PLANE
STRIKE OF AUXILIARY PLANE
P/T PLOT SYMBOL
T/P PLOT SYMBOL
PARAMETER (ANG -
0.0, BLANK -
')
FIND AUXILLIARY PLANE
CALL AUXPLN (D01, DAI, SA1, DD2, DA2, SA2)
FIND P AND T AXES
CALL TANDP (AINI. AIN2, AZ1. AZ2, DAI, DA2. DD1, DD2, PI, RAD)
IF (SA1 .LT. 0.) THEN
SYMI -
'P'
SYM2
- *T'
ELSESYMI
- 'T*
SYM2
'P'
END
IF
PLOT SYMBOLS
IF (SYMI .Ed.
'T'
.OR. PLTPOL .Ed.
'Y') CALL PLTSYM (AINI, AZ1,
& CX. CY, HITE, BLANK, PI, RAD, RMAX, SYMI, WT)
IF (SYMZ .Ed.
*T'
.OR. PLTPOL
.Ed.
*Y') CALL PLTSYM (AIN2, AZ2,
«, CX, CY, HITE, BLANK. PI, RAD, RMAX, SYM2. WT)
RETURN
END
SUBROUTINE TANDPIAIN1, AIN2. AZ1, AZ2, DAI. DA2, DD1, DD2, PI,RAD)
GIVEN TWO PLANES COMPUTE AZ AND ANGLE OF INCIDENCE OF
P & T AXES
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
AINI
AIN2
AZ1
AZ2
DA!
DA2
DD!
DD2
PI RAD
ALAT1
ALAT2
ALON!
ALON2
AZIMTH
AZ0
BAZM
DELTA
PLUNGE
ANGLE OF INCIDENCE OF P/T AXIS
ANGLE OF INCIDENCE OF T/P AXIS
AZIMUTH OF P/T AXIS
AZIMUTH OF T/P AXIS
DIP ANGLE OF PRINICIPLE PLANE
DIP ANGLE OF AUXILLIARY PLANE
DIP DIRECTION OF PRINCIPLE PLANE
DIP DIRECTION OF AUXILLIARY PLANE
PI
P 1/180
DIP ANGLE IN RADIANS OF PRINCIPLE PLANE MEASURED FROM VERTICAL
DIP ANGLE IN
RADIANS OF AUXILLIARY PLANE MEASURED FROM VERTICAL
DO!
IN RADIANS
DD2 IN
RADIANS
AZIMUTH IN
RADIANS OF POLE 7?
AZIMUTH FROM POLE OF AUXILLIARY PLANE TO POLE OF PRINCIPLE 7?
NOT USED
NOT USED
PLUNGE
IN RADIANS OF POLE 7?
O cn
RIAL
RIAL
REAL
SHIFT
XPOS
YPOS
! AZIMUTHAL SHIFT FROM POLE OF PLANE
! NOT USED
! NOT USED
TO P
TO
T AXIS («
45 DEGREES)??
PARAMETER (SHIFT
- 0.78S39BI)
ALAT1
ALONI
ALAT2
ALON2
(90.
- DA1 )*RAD
DDi*RAD
(90.
- DA2)»RAD
DDZ'RAD
CALL REFPT (ALAT2. ALON2>
CALL DELAZ (ALATI, ALONI, DELTA, AZ0. BAZM. XPOS, YPOS)
CALL BACK (SHIFT. AZ0. PLUNGE. AZ1MTH)
IF (ABS(AZIMTH)
.GT. PI) AZIMTH - AZIMTH
- SIGN(2.0*PI, AZIMTM)
AZI
- AZIMTH/RAD
AINI
PLUNGE/RAD
* 90.
AZ0 AZ0
» PI
CALL BACK (SHIFT, AZ0. PLUNGE. AZIMTH)
IF (ABS(AZIMTH)
.GT. PI) AZIMTH - AZIMTH
- SIGN(2.0*PI. AZIMTH)
AZ2
AZIMTH/RAD
AIN2
PLUNGE/RAD
* 90.
c c c c c c c c c c c c
RETURN
END
SUBROUTINE PLTSYM
i SYM, WT)
PLOT EITHER FIRST
REAL
REAL
REAL
REAL
REAL
CHARACTERS
REAL
REAL
REAL
CHARACTER"!
REAL
REAL
REAL
REAL
REAL
REAL
REAL
LOGICAL
REAL
REAL
REAL
REAL
REAL
AZR
- AZ«RAD
AINR
AIN*RAD
UPGOING RAYS
(AIN, AZ, CX, CY. HITE, NAME, PI, RAD. RMAX,
MOTION SYMBOL (C.D.+.-) WITH STATION NAME NEXT TO SYMBOL, OR STRESS AXES SYMBOL (P
i
T)
AIN
AZ
CXCY HITE
NAME
PI RAD
RMAX
SYM
WT
AINR
ANG
ANGLE
AZR
CON
DANG
FIRST
R X XPOS
Y YPOS
ANGLE OF INCIDENCE OF SYMBOL
AZIMUTH OF SYMBOL
X POSITION OF CIRCLE CENTER
Y POSITION OF CIRCLE CENTER
HEIGHT OF SYMBOL
STRING TO BE PLOTTED TO RIGHT OF SYMBOL
PI P I /
1 80
RADIUS OF CIRCLE
PLOT SYMBOL
WEIGHT ASSIGNED TO PICK QUALITY IN
PROGRAM FPFIT
AIN IN RADIANS
ANGLE OF
CIRCLE BISECTOR FOR COMPRESSIONAL FILL
SAME AS ANG
AZ IN RADIANS
RMAX
SORT (2.0)
ANGLE INCREMENT OF CIRCLE BISECTOR FOR COMPRESSIONAL FILL
FLAG FIRST TIME INTO ROUTINE
DISTANCE FROM CX. CY TO PLOT POSITION
X POSITION OF SYMBOL
X POSITION OF CIRCLE BISECTOR FOR COMPRESSIONAL FILL
Y POSITION OF SYMBOL
Y POSITION OF CIRCLE BISECTOR FOR COMPRESSIONAL FILL
o
en
IF <AIN .GT. 90.) THEN
AINR
» PI
- AINR
AZR
« PI
» AZR
END IF
CON
- RMAX-SORT<2.0>
R - CON-SINIAINR'B.S)
X - R«SIN(AZR)
» CX
Y « R«COS(AZR>
» CY
C C STRESS AXIS SYMBOL
CIF «SYM .EO.
'P') .OR. (SYM .EQ.
'T')) THEN
X
X -
.286"HITE
Y
Y -
.5*HITE
CALL SYMBOL (X, Y, HITE. %REF«SYM), 0.0.
1)
ELSE
C C FIRST MOTION SYMBOL
CCALL CIRCLE (HITE. 2.0*PI. X. Y)
C C
FILL
IN COMPRESSION CIRCLE
CIF
(SYM .EQ.
'C'> THEN
N
9 ANG
0.
DANG PIXFLOAT(N)
DO 10
I "
I, N
ANG
ANG
» DANG
ANGLE
ANG
XPOS
X +
,5"HITE«COS(ANGLE)
YPOS -
Y
» .5"HITE"SIN(ANGLE)
CALL PLOT (XPOS, YPOS, 3)
ANGLE
ANG
» PI
XPOS
X
» .5"HITE«'COS(ANGLE)
YPOS
Y +
.5«HITE"SIN(ANGLE)
CALL PLOT (XPOS, YPOS, 2)
10
CONTINUE
END
IF
C C PLOT STATION NAME
CIF
(NAME .NE.
' ') CALL SYMBOL (X
* HITE/2., Y. HITE/2.,
& XREF(NAME). 0.. 4)
END
IF
CRETURN
END
C
C
C
C
CSUBROUTINE GEOCEN
C C
GEOCEN
- CALCULATE GEOCENTRIC POSTITIONS. DISTANCES, AND AZIMUTHS (BRUCE JULIAN, USGS MENLO PARK, CA)
C C
THE GEOCENTRIC DISTANCE DELTA AND AZIMUTH AZ0 FROM POINT (LAT0. LON0) TO POINT (LAT1, LON1) ARE CALCULTED FROM
C
COS(DELTA)
- COS(LAT0*)*COS(LAT1*>-COS(LON1
- LON0)
» SIN(LAT0*)"SIN(LAT1')
C
SIN(OELTA) SQRT(A*A *
B«B>
C TANIAZ0)
A/B
C C WHERE
C
A COS(LAT1')*SIN(LON1-LON0)
B
= COSUATN0' )*SIN(LAT1 '
)
- SI N ILAT0' )
«COS( LAT 1 '
) «COS ( LON 1
- LON0)
LAT0'. LAT1
1 « GEOCENTRIC LATITUDES OF POINTS
LON0. LON1
- LONGITUDES OF POINTS
THE GEOCENTRIC LATITUDE LAT'
IS GOTTEN FROM THE GEOGRAPHIC LATITUDE LAT BY TAN(LAT')
- (1
- ALPHA)«(1
- ALPHA)*TAN<LAT)
WHERE ALPHA IS
THE FLATTENING OF THE ELLIPSOID.
SEE FUNCTION GGTOGC FOR CONVERSION.
THE BACK AZIMUTH IS CALCULATED BY THE SAME FORMULAS WITH (LAT0*. LON0) AND (LAT1*. LON1) INTERCHANGED.
AZIMUTH IS MEASURED CLOCKWISE FROM NORTH THRU EAST.
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
INTEGER
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
REAL
R. THETA
A20
AZ1
CDELT
COLON
COLAT
CT0
CTI
CZ0
DELTA
DLON
ERAD
FLAT
LAMBDA
LAT
LON
OLAT
OLON
PHI0
PIRADIUS
SDELT
SOLON
ST0
ST1
TWOPI
RADIUS. AZIMUTH IN
POLAR COORDINATES
AZIMUTH FROM REFERENCE POINT TO SECONDARY POINT IN RADIANS
AZIMUTH FROM SECONDARY POINT TO REFERENCE POINT IN RADIANS
SINE OF DELTA TO SECONDARY POINT
COSINE OF DIFFERENCE OF SECONDARY POINT, REFERENCE LONGITUDE
AVERAGE COLATITUDE OF STATION
SINE OF REFERENCE POINT LATITUDE
SINE OF SECONDARY POINT LATITUDE
COSINE OF AZIMUTH TO SECONDARY POINT
GEOCENTRIC DISTANCE
IN DEGREES
AZIMUTH IN
POLAR COORDINATES TO SECONDARY POINT 7
EQUATORIAL RADIUS (CHOVITZ, 1981. EOS.
f>2,
6S-67)
EARTH FLATTENING CONSTANT (CHOVITZ. 1981, EOS, 62. 65-67)
DUMMY VARIABLE
LATITUDE IN
RADIANS
LONGITUDE IN RADIANS
ORIGIN LATITUDE IN
RADIANS
ORIGIN LONGITUDE IN
RADIANS
REFERENCE SECONDARY POINT LONGITUDE
3.14159...
EARTH RADIUS AT COLAT
COSINE OF DELTA TO SECONDARY POINT
SINE OF DIFFERENCE OF SECONDARY POINT. REFERENCE LONGITUDE
COSINE OF REFERENCE POINT LATITUDE
COSINE OF SECONDARY POINT LATITUDE
2*Pl
SAVE ST0. CT0. PHI0, OLAT
f+ «-
3.1415926*
)26S35997^ TWOPI -
2.*P*i
PARAMETER (FLAT "
1./298.257, ERAD "
637B.137)
PARAMETER (LAMBDA
FLAT««2.
- FLAT)/U.
- FLAT)**2)
REFPT
- STORE THE GEOCENTRIC COORDINATES OF THE REFEERNCE POINT
ENTRY REFPT(OLAT. OLON)
ST0 - COS(OLAT)
CT0 - SIN(OLAT)
PHI0
OLON
RETURN
DELAZ - CALCULATE THE GEOCENTRIC DISTANCE. AZIMUTHS
ENTRY DELAZ(LAT. LON. DELTA. AZ0. AZ1. X. Y)
CTI
- SINILAT)
ST1
- COS(LAT)
IF ((CTI
- CT0) .EO. 0. .AND. (LON
- PHI0) .EO. 0.) THEN
DELTA
- 0.
AZ0
0.
AZ1
« 0.
ELSE SOLON
- S1N(LON
- PHI0)
COLON - COSILON
- PHI0)
CDELT
- ST0-ST1*COLON
+ CT0*CT1
O CO
CA
LL
C
VR
TO
P
(ST
0-C
TI
- S
TI*
CT
0»C
DL
ON
. S
TI'S
DL
ON
, S
DE
LT
, A
Z0
)D
LL
TA
«
AT
AN
2IS
OE
LT
, C
DE
LT
)C
AL
L
CV
RT
OP
(S
TC
CT
0
- S
T0
«C
TI"
CO
LO
N.
-SD
LO
N«S
T0,
SO
EL
T,
AZ
1)
IF
(AZ
0
.LT
. 0.0
) A
Z0
AZ
0
» T
WO
PI
IF
(AZ
I .L
T.
0.0
) A
ZI
« A
ZI
+ T
WO
PI
EN
D
IFC
OL
AT
«
PI/2.
- (L
AT
»
OL
AT
J/2
.R
AD
IUS
*
ER
AD
/SO
RT
C I
.0
* L
AM
BD
A*C
OS
(CO
LA
T)»
»2
)V
-
RA
DIU
S*D
EL
TA
«C
OS
(AZ
0)
X
RA
DIU
S*D
EL
TA
*SIN
(AZ
0>
RE
TU
RN
C C
BACK
- CALCULATE GEOCENTRIC COORDINATES OF SECONDARY POINT FROM DELTA, AZ
CENTRY BACK (DELTA, AZ0, LAT, LON)
CSDELT - SIN(DELTA)
CDELT
« COS(DELTA)
CZ0
- COS(AZ0)
CTI
ST0»SDELT»CZ0
» CT0*CDELT
CALL CVRTOP (ST0"CDELT - CT0*SD£LT*CZ0. SDELT«SIN<AZ0), STI. DLON)
LAT
« ATAN2CCTI, STI)
LON
- PHI0
» DLON
IF (ABS(LON)
.GT. PI) LON -
LON
- SIGN(TWOPI, LON)
CRETURN
END
C C C C CSUBROUTINE CVRTOPCX, V, R, THETA)
C C CVRTOP
- CONVERT FROM RECTANGULAR TO POLAR COORDINATES (BRUCE JULIAN. USGS MENLO PARK. CA>
CREAL
X.Y
I X.Y RECTANGULAR COORDINATES
REAL
R. THETA
I RADIUS, AZIMUTH IN POLAR COORDINATES
CR
- SORT(X«X
» Y«Y)
THETA « ATAN2CY, X)
RETURN
END