Introduction

During a long career,  V. Červený  contributed much to seismic ray theory. The initial impetus was for the determination of crustal structure from refraction profiles. Initial codes were for a 2-D model with corrections to represent 3-D propagation. One program was named seis81 which is encapsulated in the Computer Programs in Seismology (Herrmann, 2013)  program cseis96. The techniques are described n a number of publications (Červený et al, 1977; Červený, 1985; Červený, 2010;  Červený and Pšenčík. 2011).

cseis96 differs from the original seis81 in that the radiation patterns from point force and moment tensor sources was corrected and in the  output formats.  The program cprep96 is a front end that simplifies the preparation input for seis81. However  cseis96 run more complicated models if the input data set is created manually. The documentation for this is in PROGRAMS.330/VOLIX/DOC/seis81.txt.

As mentioned seis81 was developed to interpret refraction line observations. The codes use asymptotic ray theory to make synthetics. The implication is that the codes cannot model phenomena such as the classical refraction or a Rayleigh wave. This tutorial investigates the use of these codes to make synthetics that can be used to model teleseismic P-wave receiver functions which assume a plane wave incident to the base of the structure.

In the process of testing this use, updates were made on November 1, 2022  to the source code in PROGRAMS.330/VOLIX/src, speciflcally to cprep96, cseis96 and cpulse96. Changes were made in format statements since the testing required placing the source at a great depth to be able to approximate an incident plane wave. In addition, changes were made to cpulse96 to permit a new way to define the time of the first sample and to restrict the rays contributing to the seismogram according to a range of ray parameter.

The ray tracing code works by shooting a set of rays through the structure until a pair is found that brackets the horizontal position of the receiver. At this point the angle of the ray leaving the source is refined so that the ray hits the receiver within a given accuracy. The ray so defined uses Snell's law locally at each interface. The final step is to account for the reflection and transmission at each interface and the geometrical spreading.  

The program cpulse96 was initially written assuming that the source is to the left of the profile and wave propagate to the right in the +x direction. Thus the  RDD, RDS, RSS,. REX, RVF and RHF  Green's functions will be such that the motion of a P wave incident at the surface will be up on the vertical component and positive on the radial component or down and negative if the  initial motion is a dilation.  As will be show below, if the source is to the right of the array, then the radial motion will be reversed. The radial motions should be interpreted as motions with respect to the direction of the horizontal x-axis rather.  This means that computation of receiver functions for observations at distances less than the source position (e.g., in the negative x-direction), must have the R Green's function reversed.

Since this tutorial is directed toward modeling teleseismic P-wave receiver functions, only the EX Green's functions will be used since these only emit P waves at the source.

Codes and scripts

The scripts for the examples below are contained in the file Cerveny.tgz. Download this file and unpack using the command

 
gunzip -c Cerveny.tgz | tar xf - 

This will create a directory structure, such as
Cerveny---
         |--/Halfsapce--
         |              |--/DOIT  
         |              |--/DOPLT 
         | 
         |--/Layer------ 
         |              |--/DOIT 
         |              |--/DOPLT 
         | 
        ... 
Note the names of the subdirectories. These will be the headings of each of the examples given below. Thus if an example has the heading Layerb, then the computational scripts will be in Cerveny/Layerb.

The objective of this tutorial is to model teleseismic P-wave receiver functions for observations above a subduction zone. There are some caveats.
First cseis96 is 2-D code. Thus a subduction zone is modeled as infinitely long and the source and receivers are on a line perpendicular to strike. If this were not true, then 3-D code would be required. The next limitation is that the receiver function analysis assumes a plane wave incident at the base of the structure while cseis96 uses a point source. If the point source is placed deep enough, then the incident wave field may be assumed to approximate a plane wave. However some experimentation is required to test this assumption.

The following sections consider a suite of models, ranging from a single halfspace to a complex subduction zone. For  halfspace and   plane layered halfspace models, the synthetics and receiver functions can be compared to more exact synthetics derived using the hspec96 and rftn96 codes. The output of cseis96 and hspec96 can be directly compared. The receiver functions computed  using hrftn96 can be compared to those base on the cseis96 synthetics processed by the iterative deconvolution code saciterd.

The user has a choice about a complex model when trying to model teleseismic waves incident from the right or the left of the structure.  One can fi the structure and make separate computations for with sources to the left and the right, or one can have the source to the left, but two models, were are reflected.  Some experimentation in defining the source position for receiver function analysis, since one is interested in a certain set of ray parameters from the source (s/km) that reach the station. This will be illustrated in the examples.

The program cprep96 prepares the data set for the cseis96 program by creating the file cseis96.dat. The format of that file is given in PROGRAMS.330/VOLIX/DOC/seis81.txt.  The command line flags are seen by the command cprep96 -h

 Usage: cprep96 -M model  [-DOP] [-DOSV] [-DOSH] [-DOALL] [-DOCONV] [-DOREFL]  [-DOTRAN] [-DEBUG] [-DENY deny ]
[-R reverb] [-N maxseg] [-HS sourcez] [-XS sourcex] -d dfile
-M model (default none ) Earth model file name
-N nseg (default 12 ) Maximum number of ray segments
-DOP (default false) Generate P ray description
-DOSV (default false) Generate SV ray description
-DOSH (default false) Generate SH ray description
-DOALL (default false) Generate P, SV, SH ray description
-DOCONV (default false) Permit P-SV conversions
-DOREFL (default false) P-SV conversions on reflection
-DOTRAN (default false) P-SV conversions on transmission
-DENY (default none ) file with layer conversion denial
-R reverb (default none ) file with maximum number of multiples in layer
-HS sourcez(default 0.0 ) source depth
-XS sourcex(default 0.0 ) source x-coordinate
-d dfile (default none ) distance file
dfile contains one of more lines with following entries
DIST(km) DT(sec) NPTS T0(sec) VRED(km/s)
first time point is T0 + DIST/VRED
VRED=0 means infinite velocity though
-? (default none ) this help message
-h (default none ) this help message


The importance of the -XS sourcex command line flag is illustrated in Figure 1. This figure shows the ideal ray paths to each receiver associated with an incident plane wave. Since cseis96 can only use point sources, it is assumed that the point source (red circle) is at a depth such that the wavefront is effectively planar.  To preserve the ray geometry, the source must be moved horizontally as the receiver position changes.

Fig1.png

Fig. 1. Sketch showing receiver and effective source positions. Left) plane wave incident on 2-D structure.
Center and right) point source locations to preserve the angle of incidence at the receiver.


The next program that is executed is cseis96. Its command lines are obtained by executing cseis96 -h which gives

 Usage cseis96 [-v] [-P] [-?] [-h]
-v (default false) verbose output
-R (default false) generate file for CRAY96
-? (default false) this help screen
-h (default false) this help screen

The output of this program consists of the file cseis96.amp which is used by cpulse96 and cseis96.trc if cseis96 -R  flag is run.  The cseis96.try is used by cray96.

The program cray96 plots the structure and the individual rays, with colors indicating P or S segments.  As will be seen below, such a plot can be very complicated, and it is recommended that only one receiver position be considered.

Finally the program cpulse96 uses the cseis96.amp file created by cseis96 to make the synthetics.  The command line options of this program are seen by executing the command
cpulse96 -h. The output of this program the in the ASCII file96 format which can be converted to Sac files using f96tosac -B.

 USAGE: cpulse96 [ -v  ] [ -t -o -p -i ] -a alpha -l L [ -D -V -A]  [-F rfile ] [ -m mult]  [ -OD -OV -OA ] [-Z]   
[-Q] [-DELAY delay [-EQEX -EXF -ALL] [ -PMIN pmin -PMAX pmax ] [-?] [-h]
-v Verbose output
-t Triangular pulse of base 2 L dt
-p Parabolic Pulse of base 4 L dt
-l L (default 1 )duration control parameter
-D Output is ground displacment
-V Output is ground velocity (default)
-A Output is ground acceleration
-F rfile User supplied pulse
-m mult Multiplier (default 1.0)
-OD Output is ground displacement
-OV Output is ground velocity
-OA Output is ground acceleration
-Q (default false) do causal Q
-DELAY delay (default use t=t0+x/vred for first sample,
else use delay seconds before the first arrival
-EXF (default) Explosion/point force green functions
-EQEX Earthquake and double couple green functions
-ALL Earthquake, Explosion and Point Force
-Z (default false) zero phase triangular/parabolic pulse
-PMIN pmin -PMAX pmax
If pmin and pmax have the same sign, then rays
with ray parameter |pmin|<= p <=|pmax| are used.
A positive sign means a ray from source
propagates in the +x direction, and a negative
in the -x direction
-? Write this help message
-h Write this help message


The code update of November 1, 2022 added the -DELAY delay and -PMIN pmin -PMAX  pmax command line flags.  The reason for the  -DELAY delay  is as follows. The specification of desired horizontal distances in the dfile  used by cprep96 consists of lines containing the following

DIST(km) DT(sec) NPTS T0(sec) VRED(km/s)
first time point is T0 + DIST/VRED
an example of which is
 00.0     0.125   1024   -10.0 6.0
10.0 0.125 1024 -10.0 6.0
20.0 0.125 1024 -10.0 6.0
For the emulation of the teleseismic arrival, which will be approximated by placing the point source at a large depth, one would have to manually change the TO so some large value and have VRED= 0.0.  The -DELAY delay option says to start the synthetics delay  seconds before the first arrival.


The resulting output of cseis96 is; the file cseis96.amp which looks like the following.

model.d
10
0.00000 200.00000 0.00000 10.00000 Source is at (0,200)
0.1000E+02 0.1250E+00 1024 -0.1000E+01 0.6000E+01 Distance 1
0.2000E+02 0.1250E+00 1024 -0.1000E+01 0.6000E+01 Distance 2 0.3000E+02 0.1250E+00 1024 -0.1000E+01 0.6000E+01
0.4000E+02 0.1250E+00 1024 -0.1000E+01 0.6000E+01
0.5000E+02 0.1250E+00 1024 -0.1000E+01 0.6000E+01
0.6000E+02 0.1250E+00 1024 -0.1000E+01 0.6000E+01
0.7000E+02 0.1250E+00 1024 -0.1000E+01 0.6000E+01
0.8000E+02 0.1250E+00 1024 -0.1000E+01 0.6000E+01
0.9000E+02 0.1250E+00 1024 -0.1000E+01 0.6000E+01
0.1000E+03 0.1250E+00 1024 -0.1000E+01 0.6000E+01
1 10 0.3727E+02 0.4561E-02 0.7823E-02 0.3142E+01 0.0000E+00-0.1107E+01 1 0.2800E+01 0.6000E+01 0.0000E+00 0.2800E+01 0.6000E+01
1 9 0.3655E+02 0.4284E-02 0.8160E-02 0.3142E+01 0.0000E+00-0.1148E+01 1 0.2800E+01 0.6000E+01 0.0000E+00 0.2800E+01 0.6000E+01
1 8 0.3590E+02 0.3963E-02 0.8487E-02 0.3142E+01 0.0000E+00-0.1190E+01 1 0.2800E+01 0.6000E+01 0.0000E+00 0.2800E+01 0.6000E+01
The output here are
ray number - ray one
distance number - 10 means here means the 10'th distance entry, which is 100 km here
horizontal amplitude - these are used to make the synthetic
vertical amplitude
horizontal phase
vertical phase
pnew - For the first entry this is -1.107 radians, or and angle of 63.44 degrees measured upward
from the horizontal. This is equivalent to an incident angle of 90 - 64.44 = 25.56 degrees (true is 26.56)
There is a rounding error in the presentation of
-0.1107E+01 mwave 1 means ray leaves the source as P
ros Source density is 2.8 gm/cm3
vels Velocity of ray type, e.g., P, at source is 6.00 km/s
sumtq
rsrf Density at receiver 2.8
gm/cm3 vsrf Velocity at receiver to this ray is 6.00 km/s

This output does not have any information about the ray identified by the ray number. That information is contained in the file cseis96.dat, where you will see lines such as

    0    2    2    1
0 2 -2 1
0 2 2 -1
0 2 -2 -1
which represent the rays P2P1, S2P1, P2S1 and S2S1, respectively. In this notation the 0 indicates that an acceptable ray can go up or down from the source, the initial 2 says that there are two ray segments, which is followed by a layer number and whether the ray of P (positive) or S (negative).


for the first two ray designations. There are two since the model had two layers, but since the layers have the same velocity and density, there will be no wavetype conversion. The CPREP96R.PLT (from which CPREP96R,eps and CPREP96R.png are derived) shows a picture of the rays. These lines are created by cprep96 and their meaning is given about line 622 of VOLVIII/DOC/cseis81.txt.  This line is

kc,kref,code(1),code(2),...,code(kref) 

kc=0 indicates that the ray can leave the source either by going up or down. The code
kref =2 means there there are 2 ray segments between the source and receiver
code(1) and code(2) describe the layer number and type of wave (>0 for P and (< 0 for S). Thus the second entry means an S in layer 2 and a P in layer 1.  All possibilities are examined. Obviously the second line is not used for an EX source since that source does not generate an S wave.

Lets consider a receiver function for the observation at a distance of 100 km. Since this is a halfspace, the angle of incidence at the surface is atan ( 100/200) = 26.56 degrees and the ray parameter is p = sin(26.56)/6.0 = 0.0745 s/km. The seismograms to be used are 0010002000.ZEX and 0010002000.REX. Now run saciterd

saciterd -FN 0010002000.REX -FD 0010002000.ZEX -RAYP 0.0745 -D 10 -ALP 1.0

which creates the Sac file decon.out. Also compute the theoretical using hrftn96 with the command
hrftn96 -M model.d -NSAMP 1024 -DT 0.125 -ALP 1.0 -P -RAYP 0.0745 -D 10

which creates the Sac file hrftn96.sac.

Halfspace

The control file is in  Halfspace.tgz  Download and unpack this using the command gunzip -c Halfspace.tgz | tar xf - which creates Cerveny/Halfspace/DOIT.  cd to that directory, and then ./DOIT.  The output of cseis96 is the file cseis96.amp.  You will see the following png files: CPREP96M.png  CPREP96R.png  REX.png  RFTN.png  ZEX.png which are plotted here:

CPREP96M.png
CPREP96R.png
Plot of the model
Plot of the rays generated. These can be increased by the command line flag



ZEX.png
REX.png
Vertical component record section
Radial component record section
RFTN.png
Comparison of receiver functions section







Layer over halfspace

The output of cseis96 is the file cseis96.amp. 

You will see the following png files: CPREP96M.png  CPREP96R.png  REX.png  RFTN.png  ZEX.png which are plotted here:
CPREP96M.png
CPREP96R.png
Plot of the model
Plot of the rays generated. These can be increased by the command line flag



ZEX.png
REX.png
Vertical component record section
Radial component record section
RFTN.png


Comparison of receiver functions section

NOTE: The agreement is not perfect. Try running again with a smaller sample interval, e.g., 0.0625 sec taking care that the length of the times series is not too short. You may have to change 1024 to 2048. Since the discrepancy is at early tome, e.g., at 22 - 24 sec on the plot, the number of rays should not be a problem.  Another simulation should test whether the incident waves approximate plane waves. This could be done by placing the source depth at 400 km and then computing a synthetic at a horizontal distance of 200 km instead of the 200 and 100 km as done in the example.

Initial subduction model

Consider the following image from https://www.chegg.com/homework-help/questions-and-answers/figure-56-generalized-east-west-profile-center-nazca-plate-eastern-side-andes-mountains-ho-q52257549


DO

Lets approximate this



Notes

Charles Langston has a paper in the Bulletin, Seismological Society of America in the late 1970's on receiver functions in the Pacific Northwest of the U.S. This may be a good early reference.

References

Červený, V., I. A. Molotkov, and I. Pšenčík, 1977, Ray Method in Seismology. Praha: Universita Karlova.

Červený, V. (1985). Seismic Ray Theory, DOI:  10.1007/0-387-30752-4_134

Červený, V. (2010). Seismic Ray Theory, Cambridge University Press, https://doi.org/10.1017/CBO9780511529399

Červený, V. and I. Pšenčík (2011). Seismic ray theory, http://sw3d.cz/papers.bin/r20vc1.pdf, 24pp.

Herrmann, R. B. (2013) Computer programs in seismology: An evolving tool for instruction and research, Seism. Res. Lettr. 84, 1081-1088, doi:10.1785/0220110096