P. Reasenberg and D. Oppenheimer U.S. Geological …. FPFIT Overview I Program FPFIT finds the...

109
FPFIT, FPPLOT and FPPAGE: Fortran computer programs for calculating ana displaying earthquake fault-plane solutions by P. Reasenberg and D. Oppenheimer U.S. Geological Survey 345 Middlefield Road Menlo Park, California Open-File Report No. 85-739

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

B.7

46

Graphic output from program FPPAGE fol the first 42 solutions

listed in section B.2.

47

APPENDIX C

C.I FPFIT FORTRAN listing

C.2 FPPLOT FORTRAN listing

C.3 FPPAGE FORTRAN listing

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,

' *** '

PRINT

' *', 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