Packages FORMS version 5.20, MODEL version 5.20, CRT version 5.20, NET version 3.10, FD version 5.20 and RMATRIX

Ludek Klimes

1 Introduction

Only the most important new features of the program packages are listed here. Other changes, like bug fixing, simple upgrades, improvement of documentation or new data for numerical examples, are listed in more detail within the HTML documentation on compact disk SW3D-CD-2. The features, which are not explicitly related to a particular package, are common to packages FORMS version 5.20, MODEL version 5.20, CRT version 5.20, NET version 3.10 and FD version 5.20. These packages use packages RMATRIX and NR as subroutine packages.

2 History files

New versions of the packages include a new possibility to run the programs according to the "history files" containing both the input data and the instructions on program execution. It considerably simplifies and clarifies the preparation of the jobs requiring several programs to run, especially if the programs read input data from "SEP (Stanford Exploration Project) parameter files". The history files are the SEP parameter files with instructions when and how to run the programs. Programs reading the SEP parameter files can share the same input data and may be run several times with various modifications of the input data. The history files are designed to be computer-independent job descriptions.

The history files are recommended for the description of computations. The use of the history files is explained, e.g., by Klimes (1998), using the application of history files to the calculation of synthetic seismograms as an example. Other applications are discussed by Bulant & Klimes (1998b).

The programs calculating or plotting synthetic seismograms have been revised to read the data from the SEP parameter (or history) files in the first place. This process will continue in the next versions of the program packages.

Note that our history files, unlike "SEP (Stanford Exploration Project) history files", may consider Perl scripts, and each instruction to run a program is followed by the input data for the program. These modifications enable to include the programs, which have not been designed for the history files, in the history files.

3 Perl scripts

MS-DOS batch files *.bat and Unix Bourne shell scripts * have been replaced by corresponding Perl scripts *.pl or by history files *.h containing the lines specifying how to run the programs.

As a rule, history files are used to describe the computational jobs and are executed using Perl script of package FORMS. The system-dependent tasks, like compilation of Fortran programs and manipulation with files (e.g., creating or copying), is now coded in Perl, which is preferably used as the programming language rather than scripting language.

For example, Perl script of package FORMS is designed to compile a single Fortran program. Everybody should edit it manually to use his own Fortran compiler and linker. After that, the programs of packages FORMS, MODEL, CRT, NET, ANRAY and FD may simply be compiled and linked by executing commands "perl", "perl", "perl", "perl net", "perl" and "perl".

Perl should be, to a large extent, system-independent and is available for many computers and operational systems. In particular, it runs under MS-DOS and Unix and thus fully replaces MS-DOS batch files and Unix Bourne shell scripts. Perl interpreter should be available at "".

4 Unified error handling

All error messages in the Fortran files, previously generated by statements like PAUSE 'Error ...' followed by STOP, are now generated by CALL ERROR('...'). Similarly, most warning messages in the Fortran files, previously generated by statements like PAUSE 'Warning ...', are now generated by CALL WARN('...').

This enables to fit the error and warning handling for a particular computer by editing file error.for of package FORMS. It will also enable for future improvement of the communication of error conditions between Fortran programs, history files and Perl scripts.

5 Seismogram calculation and plotting

As mentioned above, the programs calculating or plotting synthetic seismograms have been revised to read the data from the SEP parameter (or history) files, which considerably simplifies their usage. They may now share the same input data instead of repeating the same values in several data files. It also considerably simplifies the repetitions of the calculations with modifications of the input data. The programs have been, together with file calcops.for of package FORMS, modified to enable to specify the name of the output PostScript file in the input parameter (history) file.

Program ss.for, moved to package FORMS, can now calculate all 3 components within a single run. Program sp.for, also moved to package FORMS, can now overlay seismograms of several GSE files, plotted in specified colours (examples are given by Klimes 1998 and by Bulant & Klimes 1998c). Program sp.for can now plot all 3 components within a single run, select receivers according to the receiver file, etc.

6 Weak anisotropy and coupling ray theory

The numerical integration of the coupling equation, derived by Coates & Chapman (1990), has been coded in Fortran 77 using the algorithm proposed by Cerveny (1998). For more details on the numerical implementation refer to the paper by Bulant & Klimes (1998c).

The Fortran 77 coding of the perturbations from the isotropic reference model to the weakly anisotropic model (without structural interfaces in this version) and of the coupling ray theory is collected in file wan.for of package CRT. It is automatically called by program green.for of package CRT if an anisotropic model is specified.

In an anisotropic model, program green.for calculates frequency-dependent elementary Green functions for S waves in anisotropic models using coupling ray theory. Program greenss.for of package CRT, calculating the response function, is now able to read these frequency-dependent elementary Green functions. Note that the bug in file parm.for of package MODEL, disabling anisotropic models in the previous version, has been fixed.

7 Response of a stack of fine horizontal layer at each receiver location

Fortran package RMATRIX, designed to calculate the frequency-dependent transmission coefficients through a stack of fine horizontal layers, by Colin J. Thomson (see Thomson 1998a, 1998b) is included on compact disk SW3D-CD-2. Programs and subroutines of package RMATRIX may be used freely by university researchers and teachers. Commercial parties interested in using the program should contact C. J. Thomson (e-mail: The author can also provide information on new or different versions of the program and how to obtain them via anonymous ftp.

Program greenss.for of package CRT, calculating the response function, may include the response of the transmission through a stack of fine horizontal layers at each receiver location. For more details refer to the paper by Klimes (1998).

8 Finite differences

The first released version of package FD contains program modfd.for, which converts the data specifying the model in terms of the MODEL package into the effective elastic parameters required by the finite-difference program fd2d.for. It further contains program fd2d.for for 2-D P-SV elastic second-order finite differences, some other programs and subroutine files, Perl scripts, demo data and history files. A numerical example with the application of package FD is discussed by Klimes (1998).

9 4-D data cubes and snapshots

Subroutine file forms.for of package FORMS and several programs (like, e.g., grdcal.for, grdfd.for, grdnorm.for, grdps.for, mgrd.for, mttgrd.for, fd2d.for) can now consider 4-D grids (data cubes), consisting of several 3-D grids (data cubes). For example, finite-difference snapshots or single-valued sheets of multi-valued ray-theory travel-time maps may be stored in a single file and may be decomposed into the series of PostScript figures.

In the future, this feature will be extended to other programs, together with implementation of unformatted files in order to speed up the operations with gridded data (data cubes).

10 Miscellaneous

Accuracy and reliability of the interpolation of ray-theory travel times within ray cells (program mtt.for of package CRT) have been considerably improved (Bulant & Klimes 1998a). Tricubic travel-time interpolation has been introduced, errors on sides of ray cells have been removed, interpolation of the slowness vector has been enabled, subroutine indexx of package NR is used to speed up sorting of ray tubes and some errors and bugs have been fixed.

Unified memory management using Fortran include file have been extended to new programs.

The gridding of Fresnel volumes for the accuracy improvement of network ray tracing (package NET) and the corresponding memory management have been, to a great extent, automatized and clarified.

Program grdcal.for of package FORMS, updated from 3-D to 4-D data cubes, may now take the values of constants from the input SEP parameter file, which considerably enhances its applications.

Program grdps.for of package FORMS, updated from 3-D to 4-D data cubes (snapshot generation), may now display multiple data cubes in the same figure (e.g., colours from the first data file and shades from the other data file). Various length units (cm,in,pt) now facilitate bitmap generation from the PostScript figures.


Hardcopy of the paper

The paper is available in PostScript (91 kB) and GZIPped PostScript (25 kB).

In: Seismic Waves in Complex 3-D Structures, Report 7, pp. 399-402, Dep. Geophys., Charles Univ., Prague, 1998.
SW3D - main page of consortium Seismic Waves in Complex 3-D Structures .