Introduction

This tutorial will discuss the organization of and the scripts used  to compute the Green's functions for source inversion.


1. Unpack the prototypes

Grab the GREEN.tgz

cd Suitable_Directory
gunzip -c GREEN.tgz | tar xvf -

You will see the following directories:

AK135.TEL/  AK135.TELPBBD/  CUS.REG/    Models/  PROTO.REG/  WUS.REG/

 In these you will see scripts that I used for my Green's functions.  These are examples.  The prototypes for your Green's functions are in the directory PROTP.REG. The Models directory contains the models that I use.

2. Set the environment

The moment tensor inversion scripts require knowledge of the location of the Green's functions.  To make the scripts independent of the physical disk location of the Green's functions, the SHELL variable GREENDIR is used in the scripts.  Do the following on your system:

If using the bash shell, place this in the  .bashrc file in your login directory:

    export GREENDIR=/path_to_top_level/GREEN
On my system I have
    export GREENDIR=/backup/rbh/GREEN
Now execute the command
    source ~/.bashrc
And now verify that this variable is in your environment.

 rbh@crust:~> echo $GREENDIR
    /backup/rbh/GREEN
will verify that this is correctly set. If you execute the command
     ls ${GREEDDIR}
you will see the contents of the distribution
 
        AK135.TEL/  AK135.TELPBBD/  CUS.REG/   Models/  PROTO.REG/  WUS.REG/


Of course if you logout and then login, this will be set without the required source command.

If you are using the csh shell, then edit the .cshrc in you login directory to add something like
       sevtenv GREENDIR /backup/rbh/GREEN
and then
       source .cshrc

3. Modify the prototypes for your models

First define a name for your velocity model. This is very important for the proper operation of the scripts. For example, assume that we wish to create Green's functions for regional data in Yunnan Province. YUN is a good identifier.

3.1 Create the model file:

You can read the tutorial on the overview of synthetic seismogram generation, or use the program mkmod96. I use mkmod96 even for models with very many layers, just manually entering the first few layers and then using a editor to create the complete velocity model file.

Assume that we are given the following information for a model:

Average velocity structure model in Yunnan
thickness   Vp     Vs     Qa      Qb
 4.00      4.85   2.80   600.0   300.0
16.00      6.25   3.61   600.0   300.0
22.00      6.40   3.70   600.0   300.0
 0.00      7.75   4.47   600.0   300.0
Wu Jian Ping

Using mkmod96 I interactively create the model file  YUN.mod  which is just

MODEL.01
Yunnan model from Wu Jian Ping CEA 2003?
ISOTROPIC
KGS
FLAT EARTH
1-D
CONSTANT VELOCITY
LINE08
LINE09
LINE10
LINE11
 H(KM) VP(KM/S) VS(KM/S)  RHO(GM/CC)   QP   QS  ETAP  ETAS FREFP  FREFS
 4.000   4.8500   2.8000      2.4670   600. 300. 0.00  0.00 1.00   1.00
16.0     6.25     3.61        2.775    600. 300. 0     0    1      1
22.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 0.0     7.75     4.47        3.225    600. 300. 0     0    1      1

I derived the density from the p-wave velocity using a Nafe-Drake relation (buried in surf96).  The ETAP=ETAS=0 for wavenumber integration and the FREFP and FREFS are the reference frequency for causal Q, which is always 1 Hz.

3.2 Create a directory for Regional Green's functions for the YUN model

In this step we create a unique place for the Green's functions, copy the prototype processing scripts into that directory, and then copy the velocity model there as well as the Model directory.  First we go to the proper area, and then we perform these steps.

cd ${GREENDIR}
mkdir YUN.REG
cp YUN.mod YUN.REG
mv YUN.mod Models
cp PROTO.REG/* YUN.REG
cd YUN.REG

3.3 Modify the prototype processing scripts

The scripts that you see here are the following:

    DOIT.WK  - computes complete waveform integration synthetics
    DOIT.SW  - computes synthetics by model superposition and also creates the eigenfunctions versus depth for source inversion
    MWK        - a script to compute a complete table of contents for each source depth directory.  The waveform inversion code uses this table of contents.
    DODCTL  - creates a table of contents for source depths.

Now edit DOIT.WK and DOIT.SW  to replace the word PROTO by your model name, which is YUN for this example.

The changed lines in DOIT.SW and in DOIT.WK will look like

DEST=${GREENDIR}
#####
#
#####
MODEL=YUN.REG
PMIN=4.0
PMAX=100.0
Mname=YUN.mod

If you wish to use the surface-wave spectral amplitude technique, then you must create another velocity file with many layers to give the eigenfunctions as a function of depth.  This file must be called dYUN.mod for the scripts. This is what it looks like:

MODEL.01
Yunnan model from Wu Jian Ping CEA 2003?
ISOTROPIC
KGS
FLAT EARTH
1-D
CONSTANT VELOCITY
LINE08
LINE09
LINE10
LINE11
 H(KM) VP(KM/S) VS(KM/S)  RHO(GM/CC)   QP   QS  ETAP  ETAS FREFP  FREFS
 1.000   4.8500   2.8000      2.4670   600. 300. 0.00  0.00 1.00   1.00
 1.000   4.8500   2.8000      2.4670   600. 300. 0.00  0.00 1.00   1.00
 1.000   4.8500   2.8000      2.4670   600. 300. 0.00  0.00 1.00   1.00
 1.000   4.8500   2.8000      2.4670   600. 300. 0.00  0.00 1.00   1.00
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.25     3.61        2.775    600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     6.40     3.70        2.82     600. 300. 0     0    1      1
 1.0     7.75     4.47        3.225    600. 300. 0     0    1      1
 1.0     7.75     4.47        3.225    600. 300. 0     0    1      1
 1.0     7.75     4.47        3.225    600. 300. 0     0    1      1
 1.0     7.75     4.47        3.225    600. 300. 0     0    1      1
 1.0     7.75     4.47        3.225    600. 300. 0     0    1      1
 1.0     7.75     4.47        3.225    600. 300. 0     0    1      1

4. Compute the Green' functions

This is the most time consuming part.  First decide if you require all of the distances.  If you are only looking at one earthquake, then you only need to compute the synthetics at the required distances.   So,

cp DOIT.WK DOIT.WK.save

I will compute some distances to 566 km. I know that the time interval between the first P arrival and the end of the surface wave depends on depth somewhat, but on distance a lot.  I thus need to compute a longer time series for the larger distances.  In the DOIT.WK script you will see that there are two loops over source depth, within each is a loop  over distance. The first loop is for short distance and the second is for larger, and will have a longer time series.  The number of points and sampling interval are fine for my sudy of earthquakes from broadband stations 10 - 500 km and in the frequency band of 0.02 - 0.10 Hz.
In selecting the distances, use distances to the nearest km.  Do not change the depth selection.

The DOIT.SW script accomplished two purposes. First it creates the eigenfunctions as a function of depth. The are stored in the subdirectory SW. It also creates the Green's functions for a selection of depths.  For regional earthquakes with M < 5, it is difficult to see the P wave at large distances because of ground noise.  The  surface wave is usually very easy to see.  So DOIT.SW creates the Green's functions by adding together surface-wave modes, e.g., creating a seismogram for the signal following the first S arrival.  These synthetics are very fast to compute and are actully quite good at 200 km. Compute these if you do not want to fit the initial P-wave form.

After the computations are complete the GREEN/YUN.REG directory contains the following:

0005/  0060/  0120/  0180/  0240/  0300/  0360/  0420/  0480/     dYUN.mod
0010/  0070/  0130/  0190/  0250/  0310/  0370/  0430/  0490/     MKW*
0020/  0080/  0140/  0200/  0260/  0320/  0380/  0440/  0500/     Model/
0030/  0090/  0150/  0210/  0270/  0330/  0390/  0450/  DODCTL*   YUN.mod
0040/  0100/  0160/  0220/  0280/  0340/  0400/  0460/  DOIT.SW*
0050/  0110/  0170/  0230/  0290/  0350/  0410/  0470/  DOIT.WK*

The directories 0005, 0010, ... 0500 contain the Green's functions for source depths of 0.5, 1, ..., 50 km.  A partial listing of the contents of the 0100 directory shows the following

007000100.RDD  017500100.RDS  020000100.REX  036000100.RSS  046000100.TDS
007000100.RDS  017500100.REX  020000100.RSS  036000100.TDS  046000100.TSS
.........................................................................
011500100.TSS  019000100.ZDD  035000100.ZDS  045000100.ZEX  056500100.ZSS
011500100.ZDD  019000100.ZDS  035000100.ZEX  045000100.ZSS  dfile
011500100.ZDS  019000100.ZEX  035000100.ZSS  046000100.RDD  hspec96.dat
011500100.ZEX  019000100.ZSS  036000100.RDD  046000100.RDS  hspec96.grn
011500100.ZSS  020000100.RDD  036000100.RDS  046000100.REX  W.CTL
017500100.RDD  020000100.RDS  036000100.REX  046000100.RSS

The files  011500100.ZEX is the Green function for the ZEX source at an epicentral  distance of 115.0 km and a source depth of 10.0 km. The file naming convention used is DDDDdHHHh.GRN which permits us to represent distances from 0 to 9999.9 km in increments of 0.1 km and source depths from 0 to 999.9 km in 0.1 km increments.

The dfile, hspec96.dat and hspec96.grn are from the computational run and can be removed.  The W.CTL file has entries as follow:

70 0.25 512 3.75 0 0100 007000100
115 0.25 512 9.375 0 0100 011500100
175 0.25 512 16.875 0 0100 017500100
190 0.25 512 18.75 0 0100 019000100
200 0.25 1024 20 0 0100 020000100
350 0.25 1024 38.75 0 0100 035000100
360 0.25 1024 40 0 0100 036000100
450 0.25 1024 51.25 0 0100 045000100
460 0.25 1024 52.5 0 0100 046000100
565 0.25 2048 65.625 0 0100 056500100

The columns are the epicentral distacne, the sample rate, the number of points, the time of the first sample, the reduction velocity (a 0 hear means that the time is actually that of the first sample), the directory for this dource depth, and the Green function prototype for this source depth and the distance.  Moment tensor inversion uses the epicentral distance of the actual observed waveform to find the Green function appropriate for that distance by searching the first column for the best fit.  For example if the actual distance is 116.51 km, then the processing script will use the Green function computed at a distance of 115 km.

5. Other Green's functions

The distribution contains several other directories.
    AK135.TEL  gives the scripts and in the location for teleseismic Green's functions from 30 to 95 degrees.  These are used for network QC, and for source inversion. The computation of the complete set of Green's functions will keep the computer busy for several weeks. The continental AK135 model is used.
    AK135.TELPBBD - The program hudson96 is used to comptue high-frequency synthetics for use in BroadBand Depth determination from the teleseismic P-wave signal at epicentral distances of 30 to 95 degrees.  This computation is fast because of the assumption that only one ray parameter is required. This assumption is fine for shallow earthquakes for which the P, pP and sP have the same ray parameter, but may not be appropriate for large epicentral distances and 700 km depths. 

    CUS.REG - Compute the Green's  functions for the CUS model
    WUS.REG - Compute the Green's functions for the WUS model

Note that I attempt to distinguish Green's functions by the naming of the directory. If I wish to use the AK135 model for regional synthetics, I would place the Green's functions in a directory named AK135.REG, which would have the synthetics from 0 to  2000 km

Last Changed November 19, 2008