Users should be aware of the following disclaimer: Although these programs have been used by the U.S. Geological Survey, no warranty, expressed or implied, is made by the USGS as to the accuracy and functioning of the programs and related program material, nor shall the fact of distribution constitute any such warranty, and no responsibility is assumed by the USGS in connection therewith.
The disclaimer applies even more than usual to these programs. The programs are part of evolving packages and are provided solely for the convenience of the user. I would like to hear about bugs, but please do not ask me for software support.
Revised version: 23 March 2012
Click here for notes concerning the program including sample input and output. Click here for a zip file containing all necessary program files, coefficient files, and sample input and output files. This version corrects a bug in computing the AS08 equations for reverse slip faults (Fnm was set to 1.0 rather than to 0.0); I thank John Douglas for finding this bug.
Click here for a zip file containing all necessary program files, coefficient files, and sample input and output files to evaluate the Boore et al. (2014) (aka "BSSA14") GMPEs (click here for a copy of the paper).
An update of the stochastic method part of the SMSIM software was uploaded on 08 June 2016
The main changes in this version are the inclusion of a new program (ratios_of_loop_program) that computes ratios of the output of some of the "loop" programs that produce output for loops over such things as period, magnitude, distance, stress, and κ0. In addition, the program tmrsk_loop_rv_drvr, added in the 15 January 2016 update of SMSIM, has been modified to allow the output to be ordered in various ways for period, magnitude, distance, stress, and κ0 (T, M, R, S, and K). This is for convenience in plotting the output. For example, the order KTMRS (specified in the control file tmrsk_loop_rv_drvr.ctl) would be used if the output was to be plotted as a function of the stress parameter. In this case, the initials indicate the loop order, from outer (κ0) to inner (S).
Here are some of the comments accompanying the 15 January 2016 update. They are important, for they describe what I consider to be the most useful programs in doing SMSIM calculations. The program names are tmrsk_loop_rv_drvr, tmrsk_loop_td_drvr, and fmrsk_loop_fas_drvr. These programs replace tmrs_rv_drvr, tmrs_loop_rv_drvr, tmrs_td_drvr, tmrs_loop_td_drvr, fmrs_fas_drvr, and fmrs_loop_fas_drvr. The new tmrsk programs combine output with units of velocity and acceleration into single columns, one for which the acceleration has units of cm/s/s, and the other where the acceleration has units of g. A possible undesirable change in the first versions of the new programs is that there is no longer any control over output in terms of the order of T, M, R, Δσ, and κ0. (This was modified for tmrsk_loop_rv_drvr in the 08 June 2016 update.) It is easy enough to open the output in programs such as Excel and CoStat and sort as desired. This is especially useful in making plots.
The site amplification part of the SMSIM software was updated 09 April 2016 (v5.5) and on 16 April 2016 (v5.6, differing only in adding smc_apply_site_response.for to the zip file) . The nrattle output file with the model and the complex transfer function has been changed to include the number of layers in the model before the model parameters, for ease of use in reading the file. In addition, a program (impulse_response_from_nrattle_output) was added that computes the impulse response time series for the transfer function.
Because I do not keep a careful record of changes from one version to the next of the distribution files, I will make no effort to describe what has changed. The best way of doing that is to carefully compare a new params file (and control file, if used) with a previous one. Note that the params files (and control files) have a date indicating when the file was modified. The programs check this date to make sure that the proper version is being used.
The params file for the stochastic method programs now include the names of the files containing the coefficients for the Boore and Thompson (2015, BSSA, 1029--1041) (BT15) modification of RV simulation results. These files have extensions "pars". Note that these params files were developed for the Der Kiureghian (1980) rms-to-peak factor (DK80 R2PF) and the 2014 Boore and Thompson path durations (two papers). In a change as of 16 November, the programs gm_rv_drvr, tmrs_rv_drvr, tmrs_loop_rv_drvr, and tmrsk_loop_rv_drvr writes out results only for the DK80 R2PF; they no longer write the results for the Cartwright and Longuet-Higgins R2PF. In the params files the folder "\smsim\" is included as part of the file names. If these files are to be used in your simulations, be sure that the program can find the files. There are several options to make sure that the program can find the pars files: 1) put the BT15 files in a folder named "smsim"; 2) put the files into your working folder and remove the folder designation from the file names in the params file; 3) specify the folder in which the files are located.
Note the addition of a new 2-corner source model (source 12) that is a generalization of the additive model used by Atkinson and Boore (1995) and Atkinson and Silva (2000), among others. This change required a change to the params files used by the SMSIM programs. The new model allows the high-frequency spectral level to be the same as that for the standard one-corner source model, with a specified stress parameter. The two generalized 2-corner models (sources 11 and 12) in SMSIM allow considerable flexibility in modeling data (both observed and simulated). A paper describing the model and giving examples is available on the online publications page (click here for a copy of the paper. If the link is dead (as may happen if I place a newer version on the online publications page), look for the paper by Boore, Di Alessandro, and Abrahamson.
***A warning***. After making revisions and compiling all programs, I do not test each program. Usually my changes involve only one or two programs, and I do test those programs. Please contact me if something seems not to be working.
For SMSIM, download the Read Me File file (19 Kb), the Manual (1.1 Mb), the zip file containing the SMSIM source code and associated files (1.8 Mb), the zip file containing the SMSIM executables (4.8 Mb), and Site Amplification software (3.7 Mb) (some files might be missing. If so, contact me.).
The manual has not been updated to incorporate the latest changes, but the existing manual does explain the meaning of a number of input parameters related to such things as the geometrical spreading, Q, and specification of the time series envelope in the time-domain simulations. One important change: the files containing parameters for a run have the extension "params" rather than "dat". For example, the file used to create the examples in the manual is "ofr.params", where "ofr" stands for "Open-File Report" and "params" stands for "parameters". There are often extensive comment lines in the params files explaining the meaning of the parameters. These comments should be read carefully. I also recommend looking at the comment lines at the beginning of the Fortran source code for each program for more up-to-date information. New since the manual was written are a suite of "driver" programs that do not require user input from the screen. These make it much easier to generate motions for any combination of period, magnitude, distance, and stress parameter for response spectra and frequency, magnitude, distance, and stress parameter for Fourier spectra. Two versions of these programs are provided, the most general of which compute motions for values of the period, magnitude, distance, and stress parameter given in individual lines in the control files tmrs_rv_drvr.ctl (for random-vibration calculations) and tmrs_td_drvr.ctl (for time-domain calculations). Any combination of period, magnitude, distance, and stress parameter can be used. More useful in many cases are the programs tmrsk_loop_rv_drvr and tmrsk_loop_td_drvr, which allow loops over a series of periods, magnitude, distances, stress parameters, and κ0 to be easily specified. There are comparable programs for computing the Fourier amplitude spectra of the ground-motion models.
I make heavy use of include statements to append necessary subroutines into the main program source code at compile time. For ease of use, I have made collections of subroutines that are in different folders on my computer. By putting all of the source code in the SMSIM zip file into a single folder and compiling the programs from within that folder, there should be no problems with the include statements finding the subroutines. There may still be a few cases, however, where the include statements specify a different folder (usually "forprogs", the folder in which I keep my non-SMSIM programs), in which case the source code needs to be edited to remove that different folder.
I am using a new method for keeping track of which files to include in the distribution zip file. If some source code is missing, please contact me. Be aware that some of the Fortran files, such as rv_subs.for, td_subs.for, rv_td_subs.for, smsim_util_subs.for, ff_subprograms.for, and recipes.for are collections of subprograms used by the SMSIM programs; these collections of subprograms are added to the source code of the main programs by use of INCLUDE statements.
For EXSIM_DMB, download a zip file containing the source code, site and crustal amplification input files, the parameter file, and the output files produced by running the program with the parameter file. Also included is my paper published in Bull. Seismol. Soc. Am. describing the modifications I have made to D. Motazedian's program EXSIM, as well as some figures illustrating the geometry. The executable (made using the LF95 compiler on a Windows machine) is contained in this zip file. (09 March 2016 update: The file common_blocks.fi in the 20 October 2015 update was not updated along with the other files; the correct version is included in this update (thanks to Meng Chen for finding the error). No other files have changed. Here are comments for previous updates. 20 October 2015 update: Added some comments to the exsim_dmb.params file regarding the use of the crustal amps and site amps files. 17 May 2015 update: renamed some Q parameters to correct an error I encountered when using a simpler Q function that does not require multiple entry points in the subroutine. The names of the Q parameters s1 and s2 were being used for other purposes and thus were being reset from their original values. This bug took me a long time to uncover. Luckily, the Q function in the previous distribution version of the program seems not to produce this bug. In spite of this, I recommend that the current version be used). .
Because I do not keep a careful record of changes from one version to the next of the distribution files, I will make no effort to describe what has changed. The best way of doing that is to carefully compare a new params file with a previous one. Note that the params files have a date indicating when the file was modified. The programs check this date to make sure that the proper version is being used.
Updated 10 January 2017. This version enforces the proper order of w1, w2, s1, and s2 (a prime source of confusion in constructing the control file). A figure was added to distance_programs_geometry_definitions.pdf showing the values of w1, w2, s1, and s2 for different reference points on the same fault plane. In addition, the PEER NGA-W2 distance measure Rx was added to the output.
Click here for a zip files containing programs for computing various distance measures between a station and a finite fault; also included are programs to compute the distance between two points specified by their latitudes and longitudes, as well as other useful programs, such as those for converting between kilometers and degrees (useful when the vertices of a fault's surface projection are in terms of kilometers on a cartesian grid, rather than latitude and longitude, and vice versa).
Note that the reference coordinates in the control file are a point on the fault surface. For this reason, a different reference point will probably need to be specified for a multi-fault situation (I should revise my program some day not to require this).
This one of a series of occasional updates to capture small revisions that have been made to the programs. This version is very similar to the December, 2016 version. One program (smc_hicut_fd_cosine_taper) was added that simulates an anti-aliasing filter by applying a raised half-cycle of a cosine in the frequency; this program was used in the Boore and Goulet (2014) paper. The July, 2016 version included a new program (smc_apply_site_response) that does what its name describes: it applies the complex site response from the site_amp program nrattle to an input time series to produce a time series that includes the site response. Note the comments in the header lines of both the source code and control file to see important constraints on the nrattle output and the input time series. Also included is a version of the subroutine get_path_from_system_call that should be used if compiling and running the programs on a machine using a Linux operating system; this subroutine is given in the file get_path_from_system_call.4linux_os.for. The existing subroutine in filt_plot_util_subs.for (which is a collection of subroutines used in the filt_plot programs) should be replaced with the subroutine in get_path_from_system_call.4linux_os.for.
The major change relative to v4.1 is that the computations in smc2psa_gmrot_rot program are much faster, thanks to a suggestion by Norm Abrahamson. In addition, the new program allows resampling of the input time series. Here are the notes on the 14 September revision (v.4.1): added a potentially useful driver (smc_interpolate_time_series_using_fft) and associated subroutine (interpolate_time_series_using_fft) that uses the FFT to interpolate a time series to a finer time spacing (increased number of samples per second). This was done after Norm Abrahamson found that response spectra computed using the Nigam and Jennings algorithm, which assumes straight line interpolation between sample points, could be different than those computed if the interpolation were based on the fundamentally more correct sampling theorem (convolution in the time domain with a sinc function). The difference in response spectra can be an issue if the FAS has little reduction in amplitude as the Nyquist frequency is approached, as can happen in low-sample-rate recordings on hard rock sites. In the future I will incorporate an option in the response spectral drivers (e.g., smc2rs, smc2rs2) to resample before computing the response spectra, but for now, the program smc_interpolate_time_series_using_fork can be used (it creates resampled smc-formatted files for a list of input smc-formatted files).
The zip files accompanying the Open-File Report 2008-1111 can be obtained from the links below. Note that the revision of the manual is lagging behind the program revisions, and for that reason some of the control files in the examples in the Open-File Report may not correspond exactly to the current control files (e.g., smc2fs2.ctl).
Note that these programs keep evolving, and I often find that changes are needed as I use particular programs in various projects. For my convenience, and to make sure that the latest versions of the programs are on my web site, I use a batch command file to create new zip files for all of the programs, even if only a few have been modified (e.g., on 20 December 2010 I modified only the smc_detrend processing program, but I created v.2.38 of all the files). It is too hard for me to keep a change log for all of the programs in a single file, so I recommend that users download the latest zip files and simply overwrite the previous files. If a file is missing, please let me know.