This is a listing of the 158 programs currently distributed as part of the Computer Programs in Seismology. These have been developed over the years, and many are little used in my current research. For example, the FILE96 file format used for waveforms and many programs were written to filter and display waveforms. Currently I work with files in the SAC binary format and use the CPS gsac for processing, although the FILE96 format is used to create Sac files, e.g., f96tosac.
The ✔ in the first column indicates the programs that I use most. The second column provide a simple description of the program. The final column provides a link to PDF documentation and/or to a specific tutorial.
Most Used | Program | Document/Tutorial |
---|---|---|
INVERSION FOR VELOCITY MODEL | ||
Surface wave inversion | ||
✔ | surf96 which calls the programs srfdis96, srfdrl96, srfdrr96, srfgph, srfinv96, srfphr96, srfphv96, srfpre96, srfrph and srfvph | Crustal structure - Chap. 3
Surface wave synthetics and group velocity Inversion for structure |
Receiver function inversion | ||
✔ | rftn96 - Receiver function inversion program which calls rftndr96, rftnpr96, rftnpv96 and rftnvp | Crustal structure - Chap. 4
Inversion for structure |
Joint inversion of surface wave dispersion and receiver function | ||
✔ | joint96 which calls jntpre96 and the support programs of surf96 and rftn96 | Crustal structure - Chap. 5
Inversion for structure |
Joint inversion of surface wave dispersion and first arrival times. This needs a tutorial | ||
shallow96 - Joint inversion of dispersion and first arrival times. This calls shalpr96, srfdis96, srfdrl96, srfdrr96, ttinvdr96, srfinv96, srfvph, ttinvvp, srfgph and srfrph | ||
Inversion of first arrival times | ||
ttinv96 - A travel time inversion program which calls ttinvdr96, ttinvpr96, ttinvpv96and ttinvvp | ||
Surface wave inversion kernels | ||
srfker96 - This uses the output of surf96 for simple data set | Surface-wave inversion kernels -I | |
srfpar96 - Partial derivatives for actual data set | Surface-wave inversion kernels - II | |
GENERALIZED RAY THEORY SYNTHETICS | ||
gprep96 | Overview - Chap. 2 | |
genray96 | Overview - Chap. 2 | |
gpulse96 | Overview - Chap. 2 | |
CERVENY RAY TRACING SYNTHETICS | ||
cprep96 | Overview - Chap. 5 | |
cseis96 | Overview - Chap. 5 | |
cpulse96 | Overview - Chap. 5 | |
cray96 | Overview - Chap. 5 | |
SURFACE WAVE DISPERSION AND SYNTHETICS | ||
Isotropic model: | ||
✔ | sprep96 - prepare a data set for dispersion computation | Overview - Chap. 4 |
✔ | sdisp96 - get Love and Rayleigh phase velocity for isotropic media | Overview - Chap. 4 |
✔ | scomb96 - fix dispersion curves if a mode is skipped | Overview - Chap. 4 |
✔ | slegn96 - compute Love wave eigenfunctions | Overview - Chap. 4 |
✔ | sregn96 - compute Rayleigh wave eigenfunctions | Overview - Chap. 4 |
✔ | spulse96 - make a synthetic by convolving with source pulse | Overview - Chap. 4 |
✔ | spulse96strain - make a stress, strain synthetic by convolving with source pulse | Overview - Chap. 10 |
✔ | sdpder96 - display depth dependent eigenfunctions | Overview - Chap. 4 |
✔ | sdpdsp96 - plot observed data in same format as sdpegn96 | Overview - Chap. 4 |
✔ | sdpegn96 - display eigenvalues, phase group velocity, etc | Overview - Chap. 4 |
✔ | sdprad96 - plot radiation patterns for a given double couple mechanism | Overview - Chap. 4 Source - Chap. 4 |
✔ | sdpsrf96 - plot theoretical phase velocities from sdisp96 | Overview - Chap. 4 |
✔ | rlegn96 - Love wave eigenfunctions using generalized reflection matrices. This will handle low velocity zones correctly | Eigenfunctions using GR matrices |
✔ | rregn96 - Rayleigh wave eigenfunctions using generalized reflection matrices. This will handle low velocity zones correctly | Eigenfunctions using GR matrices |
slat2d96 - apply conservation of energy to fundamental model to estimate dispersion and synthetics for a laterally varying medium | Further surface-wave in 2D media
Surface waves in 2-D media |
|
Transverse isotropic model: | ||
✔ | tprep96 - prepare a data set for dispersion computation | Overview Chap. 1, 9 |
✔ | tdisp96 - compute Love and Rayleigh wave phase velocities | Overview Chap. 1, 9 |
✔ | tlegn96 - compute Love wave eigenfunctions | Overview Chap. 1, 9 |
✔ | tregn96 - compute Rayleigh wave eigenfunctions | Overview Chap. 1, 9 |
✔ | tpulse96 - make a synthetic by convolving with source pulse | Overview Chap. 1, 9 |
✔ | tcomb96 - fix dispersion curves if a mode is skipped | Overview Chap. 9 |
✔ | tdpder96 - display depth dependent eigenfunctions | Overview Chap. 9 |
✔ | tdpegn96 - display eigenvalues, phase group velocity, etc | Overview Chap. 9 |
✔ | tdpsrf96 - plot theoretical phase velocities from tdisp96 | Overview Chap. 9 |
WAVENUMBER INTEGRATION SYNTHETICS | ||
Isotropic media | ||
✔ | hprep96 - prepare the hspec96 run | Overview - Chap. 3 |
✔ | hspec96 - make wavenumber integration synthetics | Overview - Chap. 3 |
✔ | hprep96p - prepare the hspec96p run | Overview - Chap. 3 |
✔ | hspec96p - make plane wave synthetics | Overview - Chap. 3 |
hwhole96 | Overview - Chap. 3 | |
✔ | hpulse96 - convolve with source time function and create a FILE96 file | Overview - Chap. 3 |
✔ | hrftn96 - make a P-wave receiver function for an isotropic model | Crustal structure - Chap. 4 |
✔ | hspec96strain - wavenumber integration for use with hpulse96strain | Overview - Chap. 10 Numerical stress test of code |
✔ | hwhole96strain - analytic wholespace for use with hpulse96strain | Overview - Chap. 10 Numerical stress test of code |
✔ | hpulse96strain - output Green, strain, stress time series | Overview - Chap. 10 |
rspec96 - wavenumber integration using generalized reflection matrices will handle solid-fluid-solid problem | Overview - Chap. 3 | |
rspec96p - plane wave synthetics using generalized reflection matrices | Overview - Chap. 3 | |
ISOTROPIC STEEPEST DESCENT TELESEISMIC SYNTHETICS | ||
✔ | hudson96 - Make teleseismic synthetics for layered structure at source and receiver and ray tracing through the mantle | Hudson synthetics
Hudson synthetics - Part II |
ISOTROPIC STATIC DISPLACEMENT | ||
hsanal96 - computes analytic permanent deformation Greens functions for a wholespace and halfspace for an isotropic model | Static deformation | |
hstat96 - compute static deformation Green's functions for a layered isotropic model | Static deformation | |
TRANSVERSE ISOTROPIC (VTI) MEDIA | ||
tspec96 - compute wavenumber integration synthetic for transverse isotropic media | Overview - Chap. 9 | |
tspec96p - compute plane wave synthetics for transverse isotropic medium | Overview - Chap. 9 | |
tspec96strain - wavenumber integration for use with hpulse96strain for TI media | Overview - Chap. 10 | |
trftn96 - make a P-wave receiver function for a transverse isotropic model | Overview - Chap. 9 | |
UTILITY PROGRAMS | ||
✔ | elocate - location program. Requires sac2eloc to create arrival file elocate.dat from the information in the Sac file headers. | GSAC - Chap. 4
Epicenter determination |
✔ | udelaz - compute great circle distance (km), arc distance (deg), azimuth and back azimuth | udelaz -h |
udtdd - compute P-wave ray parameter for Jeffreys-Bullen model. Use time96 or ttime96 instead | udtdd -h | |
stereo - compute stereo nets using equal area or equal angle projection. | GSAC - Chap. 4 | |
✔ | redodate - a date calculator. I use this to define a time 60 sec before origin time when I request data | redodate -h |
✔ | mtinfo - decomposes a general moment tensor into isotropic - deviatoric, isotropic - major double couple - minor double couple, etc | mtinfo -h |
MODEL96 PROGRAMS | ||
✔ | shwmod96 - plot the isotropic model | Overview - Chap. 8 |
tshwmod96 - plot the transverse isotropic model | Overview - Chap. 9 | |
✔ | time96 - compute first arrival time, ray parameter, T* for an isotropic MODEL96 model file for a given distance and depth | Overview - Chap. 8 |
timmod96 - compute and plot first arrival times for an isotropic model | Overview - Chap. 8 | |
ttime96 - compute first arrival time, ray parameter, T* for a transverse isotropic MODEL96 model file for a given distance and depth | Overview - Chap. 9 | |
ttimmod96 - compute first arrival time, ray parameter, T* for a transverse isotropic MODEL96 model file for a given distance and depth | Overview - Chap. 9 | |
mkmod96 - interactively create an isotropic velocity model in MODEL96 format | Overview - Chap. 8 | |
tmkmod96 - interactively create a transverse isotropic model in MODEL96 format | Overview - Chap. 9 | |
is2timod - convert isotropic model to transverse isotropic model format | Overview - Chap. 9 | |
ti2ismod - convert a transverse isotropic model to the best isotropic model (Dahlen) | Overview - Chap. 9 | |
refmod96 - make a nice plot or refraction and reflection arrivals. Each invocation of 'prs' in gsac will create a prototype shell script to present an overlay of travel times onto waveforms | Overview - Chap. 8 | |
prfmod96 - an attempt to display a sequence of 1-D isotropic velocity models as contours on a profile | Overview - Chap. 8 | |
GRAPHICS | ||
✔ | calxvig - this is required by all interactive graphics programs | |
plotdbg - debug a PLT file | CALPLOT - Appendix A | |
✔ | plotnps - convert a PLT file to PS or EPS | Overview - App. 1 CALPLOT - Appendix A |
✔ | plotxvig - display a PLOT file on an X11 screen | Overview - App. 1 CALPLOT - Appendix A |
✔ | reframe - manipulate individual PLOT files to change position and to clip | Overview - App. 1 CALPLOT - Appendix A |
✔ | genplt - a command line driven plot routine for making nice annotated plots | CALPLOT - Chap. 7 |
✔ | calplt - simple program that permits implementation of Calcomp calls interactively | CALPLOT - Chap. 7 |
Sac FILE PROGRAMS | ||
✔ | gsac - SLU alternative to sac | GSAC |
✔ | shwsac - display contents of Sac header and plot the trace. This will show the actual header. On the other hand, gsac will compute some values, e.g., distance and azimuth, if possible. This is useful for debugging the header | GSAC - Chap. 5 Overview - Chap. 7 |
✔ | saccvt - convert binary Sac file byte order between big-endian and little endian.
When getting Sac files, it is often necessary to correct for the byte order:
saccvt -I < sac_file > tmp ; mv tmp sac_file before sac_file can be used on the local machine. |
Overview - Chap. 7 GSAC - Chap. 5 |
asctosac - convert Sac ASCII to Sac binary | GSAC - Chap. 5 Overview - Chap. 7 |
|
sactoasc - convert Sac binary to Sac ascii | GSAC - Chap. 5 Overview - Chap. 7 |
|
✔ | saclhdr - list contents of Sac header. This is used to get header information from the sac file header | GSAC - Chap. 5 Overview - Chap. 7 |
sacpol - make particle motion plots in 2D | GSAC - Chap. 5 | |
✔ | sac2eloc - read station coordinates and arrival time picks from Sac header to create the elocate.datelocate. | GSAC - Chap. 5 |
sacpsd - computer power spectral density for noise. NOTE: some of the shell scripts for waveform download in the SACPSD.tgz may be out of date. /TD> | GSAC - Chap. 5
Theory and example of its use. |
|
sacnoise - generate noise based on NHNM and NLNM. This can be used to apply realistic noise to synthetics for testing of algorithms | Effect of noise on moment tensors | |
sacspc96 - plot spectra of Sac file | GSAC - Chap. 5 | |
sactof96 - convert a sac file to FILE96 format | GSAC - Chap. 5 Overview - Chap. 7 |
|
✔ | pltsac - general utility for plotting sac trace. Use primarily to compare observed and predicted traces from source inversion | GSAC - Chap. 5 |
✔ | sacdecon - frequency domain water level deconvolution - use saciterd instead | GSAC - Chap. 5 Overview - Chap. 7 Estimating source time function |
sacevalr - filter a sac file using frequency-phase and frequency-amplitude files
! use the gsac 'transfer' instead |
GSAC - Chap. 5 Overview - Chap. 7 |
|
sacfilt - filter a sac file using pole-zero file. ! use the gsac 'transfer' instead |
Overview - Chap. 7 GSAC - Chap. 5 |
|
✔ | saciterd - iterative time-domain deconvolution for receiver functions or source time function determination | Overview - Chap. 7 |
saciterdc - C version of saciterd | ||
✔ | sacampl - compute 1-D site response using Boore-Brown quarter wavelength method | Quarter wavelength site response" |
✔ | srotate96 - given appropriate Sac files, rotate Ur Uz Ut, strain, stress, rotation to a local X Y Z system | Overview - Chap. 10 |
SURFACE WAVE ANALYSIS | ||
✔ | do_mft - GUI front end to sacmft96 and sacmat96. This GUI calls sacmat96 and sacmft96 | Crustal structure - Chap. 3
Phase velocity from empirical Green |
✔ | do_pom - GUI font end to sacpom96. this GUI calls sacpom96 which does a p-ω stack to get phase velocities | Crustal structure - Chap. 3
Surface wave synthetics and phase velocity Phase velocity from a network |
✔ | MFTSRF - Shell script to convert output of do_mft or do_pom to SURF96 format for inversion | MFTSRF do_mft.dsp_files > surf96_dispersion_file |
SOURCE INVERSION | ||
Surface wave spectral amplitude inversion | ||
✔ | srfgrd96 | Source - Chap. 4 |
Waveform inversion programs | ||
✔ | wvfdly96 - reads the time delay in the wvfgrd96 and wvfmtgrd96 created sac files to examine time shift as a function of azimuth to estimate location error | Test of moment tensor inversion |
✔ | wvfgrd96 - grid search for best double couple | Test of moment tensor inversion |
wvfmch96 - creates a synthetic for a given double couple or moment tensor | Source - Chap. 5 | |
wvfmt96 - linear inversion for full moment tensor - however the time shift correction is not implemented well and the program has been superseded by wvfmtgrd96 | Source - Chap. 5 Test of moment tensor inversion |
|
wvfmtd96 - linear inversion for deviatoric moment tensor - however the time shift correction is not implemented well and the program has been superseded by wvfmtgrd96 | Source - Chap. 6 Test of moment tensor inversion |
|
Test of wvfmtgrd96 | wvfmtgrd96 - Implementation of Zhu and Ben-Zion grid search for best double couple, deviatoric moment tensor or full moment tensor. The time shifting works well. The deviatoric search takes longer than the double couple search, and the full moment tensor search takes longer than the deviatoric source, since there at searches over 5, 4 and 3 parameters for the full, deviatoric and double couple solutions, respectively. | Test of moment tensor inversion |
Utilities displaying the inversion results | ||
✔ | fmdfit - plot goodness of fit output of wvfgrd96 or wvfmtgrd96 as a function of depth | Source - Chap. 6 |
✔ | fmmfitwvfgrd96 to show goodness of fit as function of strike, dip and rake | Source - Chap. 6 |
✔ | fmlpr - create an ASCII focal mechanism plot for double couple | MTSCRIPTS unpack MECH.tgz, see MECH/0XXXREG/HTML.REG/DOHTML5 |
✔ | fmplot - plot focal mechanism, P SV or SH amplitudes, for double couple or moment tensor mechanism | Source - Chap. 6 GSAC - Chap. 4 |
fmtp - Given strike, dip or rake, determine parameters of the other nodal plane, or given P and T trend and plunge, compute the nodal plane parameters | Source - Chap. 6 | |
REFORMATTING PROGRAMS USING THE file96 FORMAT | ||
✔ | f96tosac Converts file96 file to Sac | GSAC - Chap.5, Overview - Chap. 7 |
OTHER FILE96 PROGRAMS
Most functionality is in gsac |
||
f96list - List f96 header | ||
fbutt96 - apply a Butterworth filter ! Use 'hp, lp, bp, br' in gsac |
Overview - Chap. 6 | |
fderiv96 - Take a derivative of the f96 traces ! Use 'dif' in gsac |
Overview - Chap. 6 | |
ffilt96 - Apply a polezero filter to f96 traces ! Use 'transfer' in gsac |
Overview - Chap. 6 | |
finteg96 - Integrate a f96 trace ! Use 'int' is gsac |
Overview - Chap. 6 | |
fmech96 - Apply a mechanism to f96 Greens functions ! Use 'mt' in gsac |
Overview - Chap. 6 | |
tfmech96 - Apply a mechanism to a data files created for an isotropic or transverse isotropic model - may eventually will replace fmech96 | Overview - Chap. 9 | |
fplot396 - Plot sets of 3 traces. This was for use with
the 3 component waveforms generated using
fmech96
! Use 'plot perplot 3' in gsac |
Overview - Chap. 6 | |
fplot96 - This plotted traces ! Use 'plot' in gsac |
Overview - Chap. 6 | |
fplotg96 - Plot all Greens functions | Overview - Chap. 6 | |
fprof96 - Plot a record section ! Use 'prs ' in gsac |
Overview - Chap. 6 | |
fsel96 - select a Green function of distance | Overview - Chap. 6 | |
fspec96 - Plot spectra ! Use 'psp' in gsac |
Overview - Chap. 6 | |
IRIS PROGRAMS | ||
✔ | evalresp - make a table of amplitude and phase response from a SEED RESP file | PROGRAMS.330/IRIS/evalresp-5.0.1.slu/doc/evalresp.pdf
evalresp.pdf |
✔ | rdseed - binary provided - old but still needed | PROGRAMS.330/IRIS/rdseedv5.3/Man/rdseed.1
rdseed.pdf |
xmlresp - create RESP file from FDSN station XML file | xml2resp.pdf |