****************************************************************************
*** README for Green Function Program Library (Modified on Sep., 2001) ***
****************************************************************************
In the following directories, you can find free Fortran programs for
computing Green's functions for layered half-spaces.
Note: Please use them only for academic purposes. If you want to use them
for other purposes, please contact to Yoshiaki Hisada
at "hisada@cc.kogakuin.ac.jp"
*** Information of Bugs (Sep., 2001) ***
I found bugs in "grflt6" and the newer codes. In the wrong codes, the
simulated waves are smaller than the correct waves, when an observation point
is deeper than a source point. Please get the new codes from this web page, or
correct the two bugs as follows:
1) in subroutine CASYM(LS,NL)
wrong: CUSZ=0.25d0/(3.14159265d04*SM2*(X2+1.0))
correct: CUSZ=0.25d0/(3.141592654d0*SM2*(X2+1.0))
2) in subroutine CASYM(LS,NL)
wrong: 15 CUSZ=0.25d0/(3.14159265d04*SM2*(X2+1.0))
correct: 15 CUSZ=0.25d0/(3.141592654d0*SM2*(X2+1.0))
*** Information for directory and codes ***
"green"
In this directory, there are two old Fortran codes: "grpoint.f" and
"grfault.f". "grpoint.f" simulates Green's functions due to point spurces,
and "grfault.f" computes those due to seismic sources. Those are the oldest
and slowest codes.
"grflt4"
In this directory, "grflt4.f" is a Fortran code for computing Green's
functions due to seismic sources, which is more than ten times faster
than "grfault.f" in the "green" directory.
However, before running this code, you must run "normal.f",
which computes the normal mode solutions (phase and group velocities,
and eigen vectors of surface waves). If you use Matlab, you
can plot all results (dispersion curves, eigen vectors, secular functions
of the surface waves, and the integrands and syntheesized waves using Green
functions and so on) using "m-files" in this directory.
Please check README in this directory first.
Currently, a code for Green's functions due to point sources is not
available using this new method. We will finish it in near future.
"grflt6"
In this directory, "grflt6.f" is improved from "grflt4.f" to consider
the smoothed ramp function, in which the slip velocity is triangle.
"phs.f" is modified from "normal.f" to compute phase velocities at very
high frequencies. In this program, addition to the input tolerance parameter
"TOL" for the amplitudes of the secular functions, "CTOL" for phase
velocities is newly included.
"grflt61.f" is modified from grflt6.f to compute very high-freq. waves.
As example data for very high-frequencies, we made "grflt.in" and "m.dat",
which compute seismic waves up to 10 Hz in a crustal structure.
Please try "phs.exe < m.dat", then "grflt61.exe < m.dat", after making
executive files.
"grflt8"
grflt8.f is modified from grflt6.f, in order to use the cubic-spline
method for the spacial interpolation. This program is efficient for
generating a lot of green's functions within a relatively small area.
"grpnt1"
grpnt1.f is modified from grflt6.f in order to gererate green's functions
for a point source. As compared with the oldest code, grpoint.f, this is
much faster and more efficient.
"grflt9"
grflt941.f + grflt942.f are modified from grflt6.f to represent smooth
rupture front by using the Gaussian quadrature up to 6 x 6 points on
each sub-faults. In addition, each sub-fault can slip up to 6 times by
using scalene triangle slip velocity. Therefore, a very complex slip
velocity function can be used at each sub-fault.
"grflt00" (Aug.25, 2000)
grflt00p.f + grflt00p1.f (grflt00p.in as the input data) calculate seismic waves
in a layered half-spaces, which are modified from grflt9.f as follows
1) Phinney's integration method are added by including the imaginay omega
2) Dense Integration points are added around the branch points
3) The integration range are changed to the two from the four of grflt9.f
4) The exponential-type source is included (when, Source Type =3)
5) For r*k > 8, the approximate Bessel function are improved including higher
order expansion functions
6) When the numbers of sub-faults and observation points are both one,
you can plot integrands using Matlab (use integ.m, integr.m, and integz.m).
* Prior to this code, you must run phs1.f to obtain locations of the poles
(phase velocities of the surface waves), such as,
1) f77 phs1.f -o phs1.exe
2) phs1.exe < phs1.ctl
* For FFT, you must use grfftp.f.
"grflt01" (Aug.25, 2000)
grflt01p.f + grflt00p1.f (grflt00p.in as the input data) calculate seismic waves
in a layered half-spaces, which are modified from grflt00p.f to utilize a dynamic
distribution of source points on the fault planes, in which the points per
wavelength are automatically assigned.
* Prior to this code, you must run phs1.f to obtain locations of the poles
(phase velocities of the surface waves), such as,
1) f77 phs1.f -o phs1.exe
2) phs1.exe < phs1.ctl
* For FFT, you must use grfftp.f.
The all codes are open to academic users. Feel free to re-distribute
them codes. But, please use them by your own risks.
IF you have comments or questions for those codes, please send an e-mail
to
hisada@cc.kogakuin.ac.jp
or mail to:
Yoshiaki Hisada
Dept. of Architecture, Kogakuin Univ.,
Nishi-Shinjuku 1-24-2, Tokyo 163-91, Japan
(FAX: 3-3340-0140)
January, 1997
Yoshiaki Hisada