Fortran 77 package MODEL version 5.20

General description

Programming language, error messages, screen output, etc.
Unified memory management.

New in version 5.20

History files.

Compiling and linking programs of package MODEL

Specification of the model

The model is specified in terms of subroutines (e.g., subroutines to evaluate the values and partial derivatives of the functions describing surfaces or material parameters) and of the input data for the subroutines. Although both the subroutines and the data may be modified by a user, most of the users wish to modify only the input data, using the interpolation routines contained within the basic version of the MODEL package.

Description of input data to specify the model

Running programs of package MODEL

It is recommended to run the programs from the history files. The history files may contain the information how to execute the programs, the data read from standard input (Fortran) or from the command line (Perl) and the data read from the SEP parameter files.

Main input data of each program are read from the standard input, and mostly consist of a single line containing filenames and at most few numerical parameters.

List of error messages

File list of package MODEL

(A) Documentation:
model.htm
This file.
modeldoc.htm
General documentation to MODEL. File containing a brief overview of the MODEL package. The detailed description of input data, procedures, and other important topics is included within the individual FORTRAN77 source code files.
modelver.htm
List of the released versions.
modelerr.htm
List of error messages.
(B) General subroutines dealing with blocky geological structures:
model.for
Subroutines reading input data to specify a blocky seismic model for complete ray tracing (see C.R.T.3.2.1), routines to determine the position of a given point with respect to geological blocks and structural interfaces, and other auxiliary subroutines related to the model (see C.R.T.3.3). These routines assume a general form of user-defined subroutines METR1 (file 'metric.for') to define the coordinate system.
modelv.for
Version of 'model.for' for inverse problems.
model.inc
Include file with COMMON blocks for 'model.for'.
(C) Sample user-defined model specification routines required for forward modelling:
metric.for
Subroutine evaluating the metric tensor and Christoffel symbols at a given point (see C.R.T.2), and the related subroutines and external functions. Any user-defined coordinate system may simply be introduced by modification of these subroutines.
metric.inc
Include file with COMMON block for 'metric.for'.
srfc.for
Subroutines for specification and interpolation, in rectangular grids, of the functions describing smooth surfaces in the model (see C.R.T.3.2.2). Any user-defined surfaces may simply be included within the whole system by modification of these subroutines.
parm.for
Subroutines for specification and interpolation, in rectangular grids, of the material parameters within individual complex blocks in the model (see C.R.T.3.2.3). Any user-defined spatial distribution of material properties may simply be included within the whole system by modification of these subroutines.
parmv.for
Version of 'parm.for' for inverse problems.
val.for
Subroutines controlling function specification and interpolation. Designed to perform the interpolation of a set of functions in a rectangular grid, employing splines under tension. These subroutines are referred by the subroutines of files 'srfc', 'parm', and sample complete ray tracing source code file 'init'.
valv.for
Version of 'val.for' for inverse problems.
val.inc
Include file with COMMON block for 'val.for'.
fit.for
Some routines taken from Cline's software package 'FITPACK', called by the subroutines of the package 'val' to perform the spline-under-tension interpolation. Note that not all of the subroutines of the software package 'fit' are used at the same time.
fitv.for
Version of 'fit.for' for inverse problems.
auxmod.inc
Include file with COMMON block containing auxiliary storage locations for local model parameters required to call subroutines METRIC, SRFC2, PARM2 and VELOC.
(D) Additional model specification routines related to inverse modelling:
var.for
Subroutine VAR1 and its entries VAR2, VAR3, VAR4 and VAR5 are called from the model-treating subroutine packages in order to keep in the memory variations of the functions describing the model, with respect to their coefficients. The variations are required for the travel-time inversion of the model and are recalled from the memory by calling the entry VAR6.
varnul.for
Empty versions of the subroutine VAR1 and its entries VAR2 to VAR6 called from the model-treating subroutine files in order to keep in the memory variations of the functions describing the model, with respect to their coefficients. The variations are required for the travel-time inversion of the model, see also the subroutine file 'var.for'. In the case of forward modelling, the variations are useless.
spsp.for
Subroutines evaluating the Sobolev scalar products of variations of the functions describing the model, with respect to their coefficients. This raw low-level version is related rather to the low-level 'fit.for' subroutines than to 'srfc.for' and 'parm.for' model specification subroutines.
soft.for
Subroutine accumulating the prior subjective information covariance matrix describing the smoothness of the functions interpolated by means of subroutines of the file 'val.for'.
(E) Service routines useful to handle the model and to perform some calculations:
means.for
Service subroutines facilitating the work with the model. E.g., subroutine CROSS determining the point of intersection of a given curve with a given surface described by a general subroutine SRFC2 of 'srfc.for', subroutine CDE searching for the point of intersection of the given curve with the boundaries of the complex block based on the subroutine BLOCK of 'model.dat', or subroutine SMVPRD mutually transforming covariant and contravariant coordinates of a vector. These routines are employed by complete ray tracing and by model imaging routines 'modsec.for'.
hpcg.for
Subroutine of the IBM Scientific Subroutine Package solving a system of general first order ordinary differential equations with given initial values. It is called, e.g., by the subroutine RAYCB of the complete ray tracing source code file 'raycb.for'.
rkgs.for
Subroutine of the IBM Scientific Subroutine Package solving a system of general first order ordinary differential equations with given initial values. It is called, e.g., by the subroutines of the file 'modsec.for'.
gels.for
Subroutine of the IBM Scientific Subroutine Package to solve a system of simultaneous linear equations with symmetric coefficient matrix.
(F) Sample application programs and routines working with the model:
modchk.for
Program checking the model consistency.
grid.for
Program generating velocities in a rectangular grid required for full wave finite differences, shortest path calculation of seismic rays, eikonal equation 'finite differences', raster imaging of the model, or debugging purposes.
sec.for
Program to determine interfaces and velocity isolines in 2-D sections of a 3-D seismic model. May be used to generate a wireframe representing some model properties to be displayed, or to approximate interfaces by small tetragonal facets for display purposes.
sec.inc
Include file with COMMON blocks for 'sec.for'.
intf.for
Program to check the positions of given points with respect to interfaces in the model.
inv1soft.for
Program to evaluate the coefficients of the soft subjective a priori information on the perturbations of the model parameters. The subjective a priori information is composed of the squares of the Sobolev norms of the functions describing the model.
inv3.for
Program designed to update the input data for a function describing the model according to the results of a tomographic inversion. The tomographic inversion proper is not included.
inv4.for
A simple program designed to subtract two sets of grid values of a function describing the model: GRID1-GRID2=GRID3.
(G) Source code editing programs:
clean.for
Program to modify the lines with given letters in the first two columns.
mod.pl
Perl script executing program 'clean.for' to convert model specification routines 'model.for', 'parm.for', 'val.for' and 'fit.for' for forward modelling programs into the model specification routines 'modelv.for', 'parmv.for', 'valv.for' and 'fitv.for', for inverse modelling programs.
(H) Demo files:
fmod.pl
Perl script to compile the MODEL package by means of predefined script 'f.pl'.
model.dat
Sample input data for the model specification routines. The 3-D model consists of two layers and of the lenticular inclusion with edges, situated in the upper layer, see the schematic Figure 5 in the paper on C.R.T. mentioned above. The data are read by the subroutine MODEL1 of 'model.for' with the help from the subroutines of files 'srfc.for', 'parm.for', 'val.for', and 'fit.for'.
modchk.dat
Sample additional input data for the 'modchk.for' program, supplementing data 'model.dat' with the specification of the free-space simple block.
grid.h
Sample history file to run the 'grid.for' program.
grid.dat
Sample main input data for the 'grid.for' program.
sec.dat
Sample input data for the 'sec.for' program to generate the file with isolines.
sec-pts.dat
Sample input data for the 'sec.for' program to generate the file with points at structural interfaces.
soft.dat
Sample input data for the 'inv1soft.for' program specifying a particular kind of the Sobolev norm.
inv3.dat
Sample additional input data file for the INV3 program, containing the specification of the rectangular grid for the discretization of the P-wave velocity in the 1-st complex block.
len-grd.h
History file to display 2-D velocity sections across the demo model 'model.dat'.
(I) Subdirectories with data files related to particular models:
prem
Preliminary Reference Earth Model by Dziewonski and Anderson (1981).
elf1
Homogeneous layers separated by dipping plane interfaces (model MI).
sd
Salt dome model and dislocated salt dome model.
slit
Slit model.
wb
Western Bohemia a priori model.
l7
Model L7.
mar
INRIA bench-mark versions of the 2-D Marmousi model.
u2d
Unconformity 2-D model by Cormier and Mellen (1984).