Sie sind auf Seite 1von 8

The files accompanying the SMSIM Open-File report (David M. Boore (2000).

SMSIM --- Fortran Programs for Simulating Ground Motions from Earthquakes:
Version 2.0 --- A Revision of OFR 96-80-A, U.S.Geological Survey Open-File
Report 96-80-A, 73 pp.) are contained in compressed files that can be extracted
using WinZip or PKZip (or equivalent). These files are SMSIMxxx.ZIP, which
contains the SMSIM programs and SITEAxxx.ZIP, which contains the site
amplification programs. Both SMSIMxxx.ZIP and SITEAxxx.ZIP contain source
code, executables, and sample input and output files. In the file names,
"xxx" represent the current version number (e.g., xxx = 218 is version 2.018
of the program).
The manual, in Adobe Acrobat format, is contained in the file SMSIM_MANUAL.PDF.
I recommend that the programs be placed in a directory with the name "smsim"
because the Fortran routines contain include statements that assume that the
programs to be included are in a folder or directory with this name (e.g.,
"include '\smsim\rvtdsubs.for'"). This recommendation is not relevant if only
the executable files are being used.
Version 1.5: Includes Arias intensity
Version 1.6 (01/21/99): Includes an improved way of adjusting the duration used
in computing response spectra from random vibration theory. This
improvement is described in L. Liu and S. Pezeshk, 1999, Improvement on the
estimation of pseudo response spectral velocity using RVT method, Bull. Seism.
Soc. Am., (submitted). Response spectra computed using the Liu and Pezeshk
equations are closer to those computed from time domain calculations than are
the RVT simulations using the equations in D. Boore and W. Joyner, 1984, A
note on the use of random vibration theory to predict amplitudes of transient
signals, Bull. Seism. Soc. Am. 74, 2035--2039. The new method can be specified
by setting the new variable osc_crrctn in the line following rv params to 2;
the Boore and Joyner equations are used if osc_crrctn =1. For consistency
with previous runs, osc_crrctn.dat has been set to 1.0 in the *.dat files
provided with the smsim programs, but I recommend using osc_crrctn = 2 for
new runs. This version also includes program TDFADRVR to compute the Fourier
amplitude spectrum from the time series as well as the target spectrum
(FAS_DRVR computes only the target spectrum from the underlying equations).
Also new with this version is TD_DRVR and RV_DRVR printing out the relative
displacement response spectra in addition to the pseudo relative velocity and
pseudo absolute acceleration response spectra.
Version 1.7 (02/12/99): Includes computation of displacement and peak
displacement. Note that in the time-domain calculations these are computed
by integrating the acceleration trace twice. If a low-cut filter is used to
simulate processed observed accelerograms, it is important to allow a long
enough tshift and minimum duration to capture the filter response (the
filtering is only done on the acceleration spectrum); otherwise the
displacement will probably exhibit a long term trend that will
dominate the signal (the filter is acausal, so allowance for the filter
response before tshift is important). It is a good idea to save the
time series for one of the suite of simulations to check that the various
time-domain parameters have been chosen so that numerical artifacts such as
long-period drifts are not present. To help ensure that adequate pre- and
post-signal pads are included, the algorithm to determine the number of
points used in the FFT has been changed, and the parameter TSIMDUR in previous
versions has been changed to DUR_FCTR (make sure that this change has been
made in *.dat files). The algorithm overides tshift if necessary to allow
for filter response. E.g., if fcut = 0.1, norder = 2, pads of 15 sec are needed
before and after the signal (the pads are given by 1.5*(norder/2)/fcut),
according to Converse in the BAP manual... USGS OFR 92-296A). If tshift were
set to 5 sec, this would be replaced with 15 sec. If, on the other hand,
tshift were greater than 15 sec then thift would not be overwritten).
DUR_FCTR is used to give some control on the total duration used in
the FFT. The number of points in the FFT is a power of 2 such that
npts*dt > max(filter pad, tshift) + dur_fctr*(source duration + path duration)
+ filter pad.
Also include in this version is the site amplification program NRATTLE.FOR,
which is a modification by R. Herrmann of C. Mueller's program RATTLE.FOR.
The program is numerically better behaved than RATTLE at high frequencies, and
the input has been redesigned to be more user friendly.
Various supplementary files connected with NRATTLE.FOR are also included,
including F4NRATTL.FOR, which creates an input file for NRATTLE from the
output of SITE_AMP (using SITE_AMP is a convenient way of obtaining a
"stair-step" model from a gradient model, even if the quarter-wavelength
amplifications computed using SITE_AMP are ignored). The sample control file
needed by F4NRATTL is F4NRATTL.CTL. Not surprisingly, the control file needed
by NRATTLE is NRATTLE.CTL.
Other minor changes have been made, including renaming the variable "nruns"
to "nsims"
Version 1.8 (03/05/99): A minor revision of v. 1.7, renumbered only because
many copies of v. 1.7 were recently distributed via a mass emailing, and
I do not want confusion over what is the most recent version. The main changes
are to separate out the get_date and get_time routines into a separate file
(datetime.for), to write a "banner" with the version number, to change "a\"
to "a" in format specifications to allow redirection of I/O, and to gather
together the specification of the various subroutines needed to
create an application by using include statements at the end of the driver
programs to bring in the various subroutines rather than a few include
statements in e.g., smsim_rv.for and specifying other specific programs in
the compile and link batch files (e.g., cl_rv.bat). The result of specifying
the files in several places before is that I made the mistake of including
some files twice.
Version 1.81 (04/23/99): includes a fix to fas_drvr to correct a problem in
printing the column file for the FAS of oscillator response.
Version 1.82 (07/02/99): Added arguments to durpath to incorporate Atkinson
and Silva (1999) magnitude-dependent modification to distance.
Version 1.83 (08/03/99): Added option to use normal deviates in time series
programs (iran_type = 0 for normal, anything else for uniform).
Version 1.84 (02/06/00): Added C. Mueller's improvement to cl68_integrand
(to correct a numerical problem he encountered while compiling and running
using DEC Fortran; I never encountered the problem using Lahey F77, running
on a pc), corrected error if stem of column file name is less than 4
characters, and improved construction of column headers for some of the
column files. I also included the most recent versions of the Numerical Recipes
routines (the biggest change seems to be in locate.for, with a lesser change in
qtrap.for (which I altered to qmidpnt.for)
Version 1.85 (04/25/00): Minor change --- added site_amp program pwr2lyr,
and some useful comments regarding usage have been added to the text
at the beginning of f4nrattl.
Version 1.86 (06/05/00 & 06/08/00): Added a separate velocity (c_q) to be
used in computation of Q, instead of assuming it is the same as the velocity
near the source. This requires the addtion of a parameter in the dat file, so
I have updated those dat files included in the standard distribution. I also
changed the reference for source model 9 (Atkinson and Silva) from 1999 to
2000 (the year in which the paper was published). I also added some
comments regarding the meaning of "r" for source model 9 in appropirate places
in rvtdsubs.for. On 06/08/00 I added the variable r_ref and redid the
geometrical spreading so that it is nondimensional. The dimensionality of
1/distance is now contained in the definition of the constant factor in
const_am0_gsprd; usually r_ref = 1.0 km, but if this value or the units are
changed, care must be taken to ensure that the program is producing the desired
output. In particular, changing the units requires eliminating the factor
of 1.e-20 in variable const, which can only be done in the source code. It
is safest to keep the dimensions of velocity and distance in km, and the
dimension of density in gm/cm**3.
Version 1.87 (06/09/00): Bob Herrmann found some include statements that did not
pointed to directories forprogs and site_amp. I included a statement in
read.me that the programs should be placed in a directory named "smsim", and
I tried to change all include statements to only point to this directory.
Version 1.88 (06/20/00): No changes to the main programs, but some
auxiliary programs have been modified, an additional dat file has
been added been added (e_bck01l.datm, used by Frankel et al., 1996),
and an update to the portion of the manual describing the use of the
smsim programs has been added (smsim_in.pdf).
Version 1.89 (06/22/00): Print out standard error of the mean rather
than std.
Version 1.90: 07/29/00: Major change to tbldrvrr.
Obtain input from a control file, eliminate redundancy in code.
Added computation of twopi to smsim.fi, and corrected an error in
harmoscf in rvtdsubs when idva = 2. Luckily, I think harmoscf is only
called by random vibration routine smsim_rv, and in that routine I
force idva = 0. 08/08/00: Obtain units (cgs or g) and type of response
spectrum from control file. With this change, drvr4art (used to compute
the ground motions used in Frankel et al, 1996, is no longer needed)
Version 2.00: 10/11/00: This probably does not warrant an increase
from 1.xx to 2.00, but I am doing so because the manual is being
revised, and it will have a version number 2.0. The manual is being
revised for inclusion in the CD accompanying the IASPEI hanbook on
seismology (Willie Lee's brainchild). Only a few minor changes were
made in the programs between versions 1.90 and 2.00.
Version 2.10: 02/12/01: Modified the exponential window, using
normalized time and adding a parameter to control the total extent of
the window; this required a modification to the parameter files (*.dat).
In addition, use dynamic allocation of time series arrays rather than
hardwiring a dimension. Combined smsim_td and get_acc. The version
number 2.10 rather than 2.01 is warranted by the use of allocatable
arrays for the first time.
Version 2.11: 02/16/01: Corrected error in computing average FAS in
tdfadrvr.for
Version 2.12: 03/12/01: Use double precision version of rd_calc and improve
dealing with end of control file for program
ratiotbl
Version 2.13: 04/17/01: Allow variable number of headers in control
files for f4nrattl.for and nrattle.for

Version 2.14: 05/01/01: Change nrattle to obtain halfspace velocity
and density from the layer specified as the
effective halfspace (if less than the actual
halfspace).
Version 2.15: 08/14/01: In get_motion.for in smsim_rv.for:
Prompted by Bob Herrmann's suggestion, I changed the
code dealing with small values of arg, in order to
eliminate sqrt of a negative number. I probably
should use a double precision version of odeint
(called by amom_rv), but the results are not too
sensitive to the exact value of arg when it is small
(as it is for a very narrow band response). The
variables deltay and eps_rv are affected by the
sqrt(arg) code; eps_rv and deltay is used only in the
Liu & Pezeshk oscillator correction. According to Bob
Herrmann, by eliminating the sqrt .le. 0.0 problem, a
larger eps (e.g., 0.001 rather than 0.00001) can
be used with little loss of accuracy and a significant
increase in computational speed. If arg < 0.0, this
version prints to the screen the value of arg. These
messages may be deleted in future versions.
In site_amp.for: Fill in density only if dens .eq. 0.0,
unlike the change on 4/22/98, in which case the density
would also be obtained from the subroutine if
specify_dens_coeff was true. I have no idea why I had
made that change, which no longer makes sense to me.
Version 2.16: 01/27/02: 1) Following Silva, add 2 parameters to the input
parameter for geometrical spreading to allow
magnitude-dependent slopes in
the geometrical spreading. The slope of each segment
is now given by a_s(i) + b_s(i) * ( amag - m_s(i))
instead of slope(i). This requires using 0.0 for
b_s if a magnitude-independent slope is desired.
2) Reset zup, the upper limit of integration used to
evaluate Cartwright & L.H. eq. 6.8 in smsim_rv, if
needed to limit the integration from 0.0 to the value
of z when the integrand is so small that the compiler
sets it to 0.0 because of underflow. Evaluating the
integral for larger values is a waste of resources
and on rare occasions can lead to small numerical
"chatter" in the results (the values of the pk_rms
factor changing discontinuously by about 2 or 3 %
for closely spaced oscillator periods).
Version 2.17: 05/29/02: 1) Placed the code that computes the acceleration
time series in smsim_td into a separate subroutine
(smsimacc.for) that can be used in drivers for
which only a suite of accelerograms are desired
(and not all of the other things provided by
smsim_td, such as response spectra, velocity and
displacements, peak motion parameters, etc.).
2) Wrote acc_drvr.for to compute a suite of
accelerograms for a given M, R, storing each as a
smc file (for later processing, using one of my
smc utility programs).
Version 2.18: 06/14/02: Extensive reorganization and renaming of various
drivers and modules.
Version 2.19: 08/08/02: Removed the last input parameter (remove dc from
noise) because if the mean noise is removed,
distortion is produced at long periods. Think of
it as subtracting a box function with duration
equal to the duration of the noise. If I had
removed the mean from the whole time series (noise
segment plus leading and trailing zeros) there
would have been no distortion, but then the
portions of the time series before and after the
noise segment would have been nonzero. The
simulation process works just fine without forcing
the mean of each noise sample to be zero ---
averages of the spectra from a number
of simulations match the target spectrum.
Version 2.20: 02/10/03: Compiled using Lahey/Fujitsu LF95 compiler, so
the programs will run under the Windows XP
operating system. Some minor changes were made,
but overall the programs are the same as V 2.19.

Version 2.30: 07/15/05: Added new Atkinson ENA model as source 10.

07/15/05: In tbldrvrr - Write r, rs (not log) also
08/16/05: Took advantage of the lack of
file name length restriction (8.3 previously).
This allowed the renaming of many program files
to make it easier to know what the program does---
e.g., gm_td_drvr rather than gm_drvrt. I also
started to handle character strings in a better
fashion (using trim_c), but this has not been
done throughout. Another change in some
programs is to suggest output file names as
defaults if cr is pressed.
Add some smc utility programs to help in computing
velocity, displacements, and response spectra for
the smc files made using a_ts_drvr (smc2vd and
smc2rs2). I've also included program smctsplt
to make a Postscript file with many time series on
a single page; this is very useful in taking a
quick look at the accelerations (and velocities
and displacements, if made using smc2vd) made using
a_ts_drvr. No comparable program is given to look
quickly at the suite of response spectra, but the
program smc2asc will make a single ascii file with
columns containing individual response spectra;
this ascii file can be imported into a graphics
program for plotting any set of spectra.
Version 2.31: 01/13/06: Some very minor changes (usually formatting).
Version 2.32: 03/08/06: Some minor changes (usually formatting).
Version 2.33: 04/22/06: Some minor changes (Added tmr_td_drvr, write null
(-999.9) values for the tmr_rv_drvr, tmr_td_drvr
output when pgv or pga is specified).
Version 2.34: 05/23/06: Improvements to layr2plt ("depth" can be depth-to-bottom
or thickness of each layer, and reading density from the
input file is an option.
Version 2.40: 04/09/07: SMSIM: Use skipcmnt to read up to 60 text headers before
each
line containing input parameters in the SMSIM
parameter files, and put the various forprogs utility
programs in a separate file that is created each
time that one of the cl*.bat programs is used
(to make sure that the latest versions of the utility
subroutines are used). Also, rename the *.dat files as
*.params, and edit to add "!" to explanatory text header
s.
Added program tmrs_rv_drvr, which includes the stress pa
rameter
as an input parameter (in which case the params file mus
t specify
a source that uses Deltasigma as an input parameter, suc
h as
source 1). The tmr and tmrs programs are the
most general programs, because the output can be arrange
d
to be many periods for a single R and M, many M's for a
given R, many Deltasigmas for a given R and M, etc. The
control file for this and these programs can be construc
ted
in Excel if many distances or periods are wanted, and th
e
control can subsequently be modified by a text editor th
at
allows editing of blocks of text (e.g.,
TextPad: http://www.textpad.com/).
Remove "\smsim\" from include statements so that the sms
im
programs can be unzipped into any folder and the Fortran
code can be compiled from that folder. This eliminates
the necessity to edit the include statments in the
Fortran source code if the programs had been unzipped
in a folder other than "\smsim\".
The programs were compiled with the "-chk" flag in Lahey
Fortran 95, in order to check for exceedances of array b
ounds,
etc. This slows down the execution time somewhat, and I
think
that this check is unnecessary. But for the time being,
I will
sacrify speed for safety.
SITE_AMP: show more lines of input file to to determine
on which line the model starts. Also, allow more depths
.
Update density function, including a parameter to indica
te
the units of vel. Correct error when do not read density
from
input file but do read Q or 1/Q. NOTE: I have only chan
ged
the include statements to refer only to files in the wor
king
folder for program site_amp.
***UNFINISHED***: I have not updated the smsim manual t
o
incorporate the recent changes. WARNING: In particular,
the params
file has not in the manual has not kept up to date. Ple
ase look
at ofr.params to see the current input parameters.
Version 2.41: 04/10/08: Add a general two-corner model (model 11). This require
d changes to
the params file (see ofr.params).

Version 2.42: 03/01/09: Numerous small changes, plus added programs TMRS_FF_RV_D
RVR and
TMRS_FF_TD_DRVR to compute an effective distance, accoun
ting
for fault finiteness, before doing the SMSIM simulations
.

Version 2.45: 06/01/10: See the comment lines at the beginning of the source cod
e for each program
to see what changes have been made.

Version 3.2: 04/16/11: I am no longer updating this log of changes. I will no
te that
there are three main programs for doing stochastic model
simulation, with a
time-domain (td) and a random-vibration (rv) version of
each. Here is a brief description
of these programs (note that for all progams, the import
ant model parameters are in a file
(usually named with "params" as the extension to the fil
e name):

NAME DESCRIPTION
gm_rv_drvr, gm_td_drvr Obtains inpu
t, such as the name of the params
file, the ma
gnitude and distance and type of
ground-motio
n intensity measure for which simulations
will be made
, interactively from the terminal

tmrs_rv_drvr, tmrs_td_drvr Obtains inpu
t, such as the name of the params
file, the ma
gnitude and distance and type of
ground-motio
n intensity measure for which simulations
will be made
, from a control file. Period (T),
magnitude (M
), distance (R), and stress parameter (S)
(for source
models for which stress is a parameter, as
is NOT the c
ase, for example, for the Atkinson and
Silva (2000)
source model) are entered n one line.
This line is
read and the simulation is made and
the results
written to an output file. The next line
of the contr
ol file is then read and this process is
repeated unt
il the end of the file or the character
string "stop
" is reached. This makes the program very
flexible, an
d by editing the control file or constructing
a new one us
ing a spreadsheet, the output can be ground
motion as a
function of M for a given R, a function of R for
a given M, a
function of stress (S) for a given M and R,
a function o
f period (T) for a given M, R, and S, etc.


tmrs_loop_rv_drvr, tmrs_loop_td_drvr Obtains inpu
t, such as the name of the params
file, the ma
gnitude and distance and type of
ground-motio
n intensity measure for which simulations
will be made
, from a control file. Simulations are done
for loops ov
er ranges of period (T), magnitude (M),
distance (R)
, and stress parameter (S). This can be more
convenient t
han editing the control file used by
tmrs_rv_drvr
and tmr_td_drvr for the common cases when
want the out
put for a range of period, distance, magnitude,
or stress.

Das könnte Ihnen auch gefallen