* *
* New Programs in August, 2001 (by Y. Hisada) *
* *
http://kouzou.cc.kogakuin.ac.jp/Open/Green/2001/Grbox/
*** Phs3.f (Phase and Group Velocity of Surface Waves) ***
1) Calculation of the phase and group velocities, in addition to the secular
functions and eigen vectors at an arbitrary frequency. This is modified
from phs2.f.
2) The algorithm of the bi-section method was improved. Thus this code is
faster and more stable than phs2.f. This code even calculates for structure
model including softer layers under the top layer.
3) The input parameters are as follows;
Case 1 (Phase and Group Velocities):
1: Compile and run phs3.f.
2: Enter an input file name (frequencies and structures),
such as "grflt01p.in"
3: For 'Check Secular Functions and Eigen Vectors? (yes=1)', enter 0.
4: For 'Enter Tolerance for Secular Function (ex., 0.1):', enter
a value, such as, 0.01. The amplitudes of secular functions are
normalized, thus 0.01 are usually ok. When the convergence condition
is very tough, such as a structure including layers softer than the
top layer, you might use larger tolerance value, such as 0.1. But it
should be less than 0.5.
5: For 'Enter Max Number of Iterations (ex., 100):', enter a value, such
as 100. When the iteration of the bi-section method finishes and still
amplitude of the secular function is still larger than the tolerance
value, the code judges the given phase velocity is not that of the
surface wave, and moves to the next phase velocity.
6: For 'Enter Number of Partitions from CMIN to CMAX :', enter a value,
such as 200. In this case, dC = (CMAX - CMIN)/200 gives the
increment of the phase velocity. Note that, when a structure
includes softer layers under the top layers, the partition sometimes
must be very large number.
7: After finishing the run, the output data are stored in "mdl_dat",
"mdr_dat", "phsl_dat", "phsr_dat", and "om_dat". You can plot the
phase and group velocities of the Love and Rayleigh waves using
the "m" files of Matlab, "phsl.m", and "phsr.m", respectively. Or,
open "Ldisper" and "Rdisper" by Excel, and plot them.
Case 2 (Secular Functions and Eigen Vectors):
1: Compile and run phs3.f.
2: Enter an input file name (frequencies and structures),
such as "grflt01p.in"
3: For 'Check Secular Functions and Eigen Vectors? (yes=1)', enter 1.
4: For 'Enter the frequency for checking (Hz)', enter the frequency,
which you want to output.
5: For 'Enter Tolerance for Secular Function (ex., 0.1):', enter
a value, such as, 0.01. The amplitudes of secular functions are
normalized, thus 0.01 are usually ok. When the convergence condition
is very tough, such as a structure including layers softer than the
top layer, you might use larger tolerance value, such as 0.1. But it
should be less than 0.5.
6: For 'Enter Max Number of Iterations (ex., 100):', enter a value, such
as 100. When the iteration of the bi-section method finishes and still
amplitude of the secular function is still larger than the tolerance
value, the code judges the given phase velocity is not that of the
surface wave.
7: For 'Enter Number of Partitions from CMIN to CMAX :', enter a value,
such as 200. In this case, dC = (CMAX - CMIN)/200 gives the
increment of the phase velocity. Note that, when a structure
includes softer layers under the top layers, the partition sometimes
must be very large number.
8: For 'Enter Depth to Output the Eigen Vectors (m):', enter a depth to
output and plot eigen vectors. The depth should be deeper than the
total thickness of layers.
9: For 'Enter Number of Partitions along the Depth :', enter, a value
such as 200. In this case, dD = Depth / 200 gives the increment of
depth. Use a larger value, if the plotted eigen vectors are not
smooth enough.
7: After finishing the run, the output data for the secular functions
are stored in "sclc_dat" (the used phase velocities), "sclr_dat"
(the corresponding real parts), "scli_dat" (the imaginary parts), and
"phsl_dat" (the phase velocities of the Love wave" for the Love waves.
And, "scrc_dat" (the phase velocities), "scrr_dat" (the real parts),
"scri_dat" (the imaginary parts), and "phsr_dat" (the phase
velocities of the Rayleigh wave" for the Rayleigh waves. You can plot
the secular functions phase and group velocities of the Love and
Rayleigh waves using the "m" files of Matlab, "secl.m", and "secr.m",
respectively.
8: The output data for the eigen vectors are stored in "vl1_dat" (the
displacement vectors), "vl2_dat" (the stress vectors), and "vzn_dat"
(the depth data), for the Love waves, and "vr1_dat" and "vr2_dat"
(the horizontal and vertical displacement vectors), "vr3_dat" and
"vr3_dat" (the horizontal and vertical stress vectors), for the
Rayleigh waves. You can plot eigen vectors velocities using the m
files of Matlab using "vld.m" and "vls.m" for the displacement and
stress vectors of the Love waves, and "vrd.m" and "vrs.m" for those
of Rayleigh waves. Or, open "Ldis", "Lstr" (Love waves), and "Rdis",
"Rstr" (Rayleigh wave) by Excel, and plot them.
c
c *** grfltwv1.f + grfltwv11.f <- grfltwv1.in (GF Wave) ***
c
1) grfltwv1.f calculates Green's function seismic waves. This is modified
from grflt01p.f and grfftp.m.
2) Output wave data are stored in "wave1_d". You can plot the waves using
grfltwv1.m, a m-file of Matlab.
3) Note that this code is slower than grflt01p.f, when the number of
observation points at a same depth are large, because grflt01p.f
uses the R/T coefficient library.
c
c *** grfltbx1.f + grfltbx11.f <- grfltbx1.in (3D Interpolation Library) ***
c
1) grfltbx1.f calculates Green's functions at 27 nodes of several boxes.
Those data are later used as a GF library for calculating seismic waves
using the triquadratic interpolation.
2) Output data are stored in "grbox.dxyz". The wave data are obtained by
the FFT code, "grfftbx1.f", and are stored in "waveb_d". You can plot
the waves using "grfltbx1.m", a m-file of Matlab.
c
c *** grfbxwv1.f + grfbxwv11.f <- grfbxwv1.in (3D Interpolation Library) ***
c
1) grfbxwv1.f calculates Green's function waves at 27 nodes of several boxes.
This code is modified from grfltbx1.f and grfftbx1.f.Those data are later
used as a GF library for calculating seismic waves using the triquadratic
interpolation.
2) Output wave data are stored in "wave_d". You can plot the waves using
"grfbxwv1.m", a m-file of Matlab.
3) Note that this code is slower than grfltbx1.f, when the number of
observation points at a same depth are large, because grfltbx1.f
uses the R/T coefficient library.
c
c *** grfbxin1.f (Seismic Waves using Triquadratic Interpolation) ***
c
1) grfbxin1.f calculates seismic waves at an arbitrary point using GR a
library "wave_d", which is obtained by grfltbx1.f or grfbxwv1.f. Thus,
the file name of the results by grfltbx1.f or grfbxwv1.f must be changed
accordingly.
2) The observation points must be within the library boxes, otherwise this
code stops.
3) Output data are stored in "wave1_dat".
c
c *** grfbxin2.f (Seismic Waves using Triquadratic Interpolation) ***
c
1) grfbxin2.f calculates seismic waves at arbitrary points using GR
libraries obtained by grfltbx1.f or grfbxwv1.f. In this code, two sets of
libraries are needed under the name of "wave_d1" and "wave_d2", which can
have different sizes of boxes for different layers. Thus, the file name of
the results by grfltbx1.f or grfbxwv1.f must be changed accordingly.
2) The observation points must be within the library boxes, otherwise this
code stops. The locations of the observation points are written at the
top of the code.
3) Output data are stored in "wave2_dat". You can compare the results using
this code and "grflt01p.f" + "grfftpm.f" using "grfbxin2.m", a m-file of
Matlab.
c
c *** grfbxwv2.f <- grfbxwv2.in (3D Interpolation Library) (2004/01/07) ***
c
1) grfbxwv1.f より周波数依存Q値など任意のQ値を代入できるように変更（grflt12s.fを参考にした）
2) 表面波の位相速度計算はphs3sQ.fを利用
3) Bessel関数も０次・１次を同時に計算し、高速化
4) Output wave data are stored in "wave_d". You can plot the waves using
"grfbxwv2.m", a m-file of Matlab.