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
- Copy all files (or at least all *.for and *.inc
files) of package FORMS
into your working directory.
All the files may also be extracted using
pkunzip -d forms.zip or
tar -xvf forms.tar
On a computer with a very small memory (less than 16 MB), you may
need to decrease array dimension MRAM in the include file
ram.inc.
It is also recommended to compile and link all programs of package
FORMS according to the description in
forms.htm.
- Copy all files (or at least all *.for and *.inc
files) of package MODEL
into your working directory.
All the files including subdirectories may also be extracted using
pkunzip -d model.zip or
tar -xvf model.tar
- Now you may compile and link following programs of package MODEL:
All necessary subroutine files and include files are included
by the Fortran 90 INCLUDE command.
Fortran 77 subroutine files are included at the end of above
listed files containing main programs.
You may perform the above task by editing Perl script
f.pl
designed to compile and link a single file, and then running Perl script
fmod.pl by entering command
perl fmod.pl
If you have no Perl interpreter, it should be available at
www.perl.org
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).