Fortran 77 package NET version 3.30
- Ludek Klimes
- Department of Geophysics, Charles University Prague,
Ke Karlovu 3, 121 16 Praha 2, Czech Republic
- E-mail:
klimes@seis.karlov.mff.cuni.cz
- Michal Kvasnicka
- Formerly
Department of Geophysics, Charles University Prague,
Ke Karlovu 3, 121 16 Praha 2, Czech Republic
- E-mail:
qasnicka@seis.karlov.mff.cuni.cz
This is just a general overview, the detailed description of input
data, procedures, and other important topics is included within the
individual FORTRAN77 source code files.
General description of network ray tracing package NET
Purpose:
Network ray tracing is designed to calculate first-arrival travel
times and the corresponding rays. For your application, please,
do not confuse the first-arrival travel times with the ray-theory
body-wave travel times. The first-arrival travel times from the
given source of any shape are calculated at all grid points of a
given rectangular grid of points. Together with the first-arrival
travel times, also the maximum travel-time errors may be automatically
estimated.
Model specification:
For network ray tracing, the seismic model is specified in terms
of grid velocities at a rectangular grid. The density of the grid
should correspond to the accuracy required and to the computer
memory available. In a layered or blocky medium, also the indices
of geological blocks at gridpoints are recommended to be specified
in addition to the velocities, in order to improve accuracy
considerably.
The model specification subroutine package MODEL is recommended
to describe the models and to generate the grid values, unless the
user prefers his own model specification system.
Programming language,
error messages, screen output, etc.
Unified memory management.
Array dimensions MRAM,
MFS,
MSRC and MREC and
MREFL in net.inc
should be adjusted according to a particular
computer memory and particular application. In the basic version
delivered, arrays in 'net.for' are roughly dimensioned for a
computer with 16MB of RAM (see ram.inc).
History files.
Alphabetical list of input parameters of all programs.
New in version 3.30
Compiling and linking programs of package NET
(a) Program NET:
- Copy all files (or at least files
ram.inc, error.for, sep.for, sep.inc,
length.for, forms.for, eigen.for
and f.pl) of package FORMS
into your working directory.
All the files including subdirectories may also be extracted using
pkunzip -d forms.zip or
tar -xvf forms.tar
- Edit include file ram.inc
and Perl script f.pl
according to the description
in package FORMS.
- 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, net.fs2 and net.fs3) of package
NET into your working directory.
All the files including subdirectories may also be extracted using
pkunzip -d net.zip or
tar -xvf net.tar
- Now you may compile and link program net.for
by entering command
perl f.pl net
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 file 'net.for'.
If you have no Perl interpreter, it should be available at
www.perl.org
(b) Additional program NETIND for network ray tracing within Fresnel volumes:
- You may also compile and link program
netind.for
by entering command
perl f.pl netind
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 file
netind.for.
Running programs of package NET
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.
Data from standard input *:
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.
For the description of input data of individual programs refer to
the list of files below.
Application of the network shortest path ray tracing program NET in
the models described in terms of model specification subroutines of
package MODEL (ver. 5.40 or later is recommended):
- Install package NET into your working directory.
- Compile and link program grid.for
of package MODEL.
See package MODEL for details.
- Prepare the input data for package MODEL, describing the
seismic model of the medium.
Example:
In the demo data of subdirectory - len
of package DATA, the model data file 'len-mod.dat' is assumed.
- Program 'grid.for' of the package MODEL generates the velocities
and indices of geological blocks in the given rectangular grid of
points.
Example:
In the demo data of subdirectory
- len,
the input model file is 'len-mod.dat' and the grid is
described within history file 'len-net.h'.
- Program 'net.for' of this package performs the network
shortest path calculation of the first-arrival travel times in the
generated discretized (raster) representation of the model.
Example:
In the demo data of subdirectory
- len,
the input data file for 'net.for' is called 'len-net.dat'.
Other input files are 'lenn-src.dat', 'lenn-rec.dat' and
the output files of program 'grid.for'.
The generated output files 'tt.out' and 'err.out' contain
first-arrival travel times and their estimated maximum
errors.
Two-point network ray tracing within Fresnel volumes
Description of the algorithm employing programs NET and NETIND.
List of error messages
File list of package NET
- (A) Documentation:
- net.htm
-
This file.
General documentation to NET (main HTML file containing basic
description and links the files of this package).
- netver.htm
-
List of released versions.
- neterr.htm
-
List of error messages with the links to their descriptions.
- (B) Network ray tracing program NET:
-
FORTRAN77 codes listed herein, together with auxiliary
data files 'net.fs2' and 'net.fs3' containing template
forward stars, form the complete and functional network
ray tracing program 'NET'. Usually, no other files of
this package are required to perform network ray tracing.
- net.for
-
Fortran77 source code of the network ray tracing
program NET.
The source code also contains the description
of the input and output data, and the brief comments on
the program.
-
Description of input data (regular network ray tracing).
- net.inc
-
Include file with most COMMON blocks for 'net.for'.
- netnode.inc
-
Include file with a COMMON block for 'net.for'.
- ttt.for
-
Part of the FORTRAN77 source code of the NET program
responsible for the 2-D "second-order" grid travel-time
tracing according to Klimes (1996).
- ttt.inc
-
Include file with a COMMON block for 'ttt.for'.
- net.fs2
-
Optimized circular 2-D forward stars.
- net.fs3
-
Optimized spherical 3-D forward stars.
- (C) Programs designed to generate forward stars for the NET program:
-
These programs are not required when using the NET
program, because the forward stars for the net program are
already generated and stored in 'net.fs2' and 'net.fs3'.
They may be used if (1) larger forward stars than stored
in the current versions of 'net.fs2' or 'net.fs3' are
required (unlikely for most applications on most nowadays
computers), or (2) if other than optimized forward stars
are required for the purposes of comparing the
performances of different algorithms or programs.
- fs (subdirectory)
- fs-opt2.for
-
Program generating 2-D optimized circular forward
stars according to Section 4.3 of the paper by Klimes and
Kvasnicka (1994).
- fs-opt3.for
-
Program generating 3-D optimized spherical
forward stars according to Section 4.3 of the paper by
Klimes and Kvasnicka (1994).
- fs-mcir2.for
-
Program generating 2-D circular Moser-Saito
forward stars, containing all nodes within a circle except
for the end nodes of the edges that would be parallel with
shorter edges in a homogeneous medium.
- fs-msph3.for
-
Program generating 3-D spherical Moser-Saito
forward stars, containing all nodes within a sphere except
for the end nodes of the edges that would be parallel with
shorter edges in a homogeneous medium.
- fs-msqr2.for
-
Program generating 2-D square Moser-Saito
forward stars, containing all nodes within a square except
for the end nodes of the edges that would be parallel with
shorter edges in a homogeneous medium. Such forward stars
have been used, e.g., by T-J.Moser or H.Saito.
- fs-mcub3.for
-
Program generating 3-D cubic Moser-Saito forward
stars, containing all nodes within a cube except for the
end nodes of the edges that would be parallel with shorter
edges in a homogeneous medium. Such forward stars have
been used, e.g., by T-J.Moser or H.Saito.
- (D) Demo data files for the network ray tracing program itself:
- net.h
-
SEP parameter file describing the grid dimensions.
- net.dat
-
Sample input data file for the 'net.for' program, to
perform 2-D network ray tracing in a simple model without
interfaces. The velocities are gridded in 'vel.dat'.
The data correspond to the example described in Subsection
6.1 of Klimes and Kvasnicka (1994).
- src.dat
-
Coordinates of a point source.
- rec.dat
-
Receiver coordinates.
- vel.dat
-
Grid velocities in a 1-D constant velocity gradient
model by P.Podvin and I.Lecomte (1991), Geophys.J.int.,
105, 271-284.
- (E) Indexing of Fresnel volumes (accuracy enhancement of two-point
rays by means of network ray tracing within Fresnel volumes):
- netfv.htm
-
Notes on two-point network ray tracing within Fresnel volumes.
- netind.for
-
Program NETIND to generate
the index file mapping
gridpoints onto the network nodes situated within the
Fresnel volume corresponding to the maximum two-point
travel-time error. It also may adjust the grid density in
the input data for the 'net.for' program in order to
achieve the best possible accuracy of network ray tracing.
-
Description of input data
(network ray tracing inside Fresnel volumes).
Data files related to particular models
Data files for network ray tracing in models specified by means
of the FORMS or MODEL subroutine packages located in package
DATA:
- n2 (subdirectory)
- n2-mod.dat
-
Input data for the MODEL subroutine package to
specify the model used in the example described in
Subsection 6.2 of Klimes and Kvasnicka (1994).
- n2-net.h
-
SEP history file for network ray tracing in model N2,
describing the input data and program execution.
- n2-net.dat
-
Input data file for the 'net.for' program
of the package 'NET'. The data file refers two files
'n2-src.dat' and 'n2-rec.dat' of this package, and to
output file 'vel.out' of the 'grid.for'
program. The three referred files should be located in
the current directory. Program 'net.for' should generate
four output files 'rays.out', 'end.out', 'tt.out', and
'err.out', containing rays, the first-arrival travel times
at the receivers (endpoints), and the first-arrival travel
times and their estimated errors in the rectangular grid
of points.
The data correspond to the example described in Subsection
6.2 of Klimes and Kvasnicka (1994) with the exception of
the number of gridpoints and maximum forward-star size.
Whereas 100*100*50 gridpoints are used in the paper, only
50*50*25 gridpoints are considered within the demo data
in order to comply with the array dimensions of the basic
version of 'net.for'.
- n2-src.dat
-
Additional input data file for the 'net.for'
program with the coordinates of a source point.
- n2-rec.dat
-
Additional input data file for the 'net.for'
program with the coordinates of receiver points.
- n2-sec.dat
-
Main input data file for the 'sec.for' program
of the package MODEL to generate the velocity isolines
in Fig.6 of Klimes and Kvasnicka (1994). The data file
refers file 'n2-mod.dat' of this package. The referred
file should be located in the current directory.
- len (subdirectory)
- len-mod.dat
-
Input data for the MODEL subroutine package to
specify the model with a lenticular inclusion.
- len-net.h
-
SEP history file for network ray tracing in model LEN
with a lenticular inclusion.
- len-net.dat
-
Input data file for the 'net.for' program
of package NET. The data file refers two files
'lenn-src.dat' and 'lenn-rec.dat' of this package, and two
output files 'vel.out' and 'icb.out' of the 'grid.for'
program. The four referred files should be located in
the current directory. Program 'net.for' should generate
four output files 'rays.out', 'end.out', 'tt.out', and
'err.out', containing rays, the first-arrival travel times
at the receivers (endpoints), and the first-arrival travel
times and their estimated errors in the rectangular grid
of points.
The data correspond to the example described in Subsection
6.3 of Klimes and Kvasnicka (1994) with the exception of
the number of gridpoints and maximum forward-star size.
Whereas 120*80*60 gridpoints are used in the paper, only
60*40*30 gridpoints are considered within the demo data
in order to comply with the array dimensions of the basic
version of 'net.for'.
- lenn-src.dat
-
Additional input data file for the 'net.for'
program with the coordinates of a source point.
- lenn-rec.dat
-
Additional input data file for the 'net.for'
program with the coordinates of receiver points.
- vgr (subdirectory)
- Constant velocity gradient model.
- Demo data files for network ray tracing within Fresnel volumes:
- For network ray tracing within Fresnel volumes, dimension
MIND in 'net.for' has to be adjusted properly (MIND=1 in
the basic version). If there are no structural interfaces
in the model, that is also the case of the following data,
dimension MICB in 'net.for' may be decreased to NICB=1 to
save the memory (MICB=MGRID in the basic version).
Dimension MGRID in 'net.for' may be adjusted according to
the memory available (MGRID=666666 in the basic version
roughly corresponds to 16 MB of RAM). When having
adjusted the dimensions in 'net.for', it is recommended to
adjust the dimensions in 'netind.for' accordingly.
The following data may be run by entering
perl go.pl fv-net.h
from the command line.
- vgr-mod.dat
-
Data for the MODEL package specifying a 1-D
constant velocity gradient model used by P.Podvin and
I.Lecomte (1991), Geophys.J.int., 105, 271-284.
- fv-net.h
-
SEP history file to perform iterative two-point network
ray tracing within Fresnel volumes.
Network ray tracing is first performed in the initial grid,
without index file, using input data 'fv-net1.out' and
'fv-net2.out'.
Program 'netind.for' then updates the grid and appends the
updated parameters to its input history file.
Program 'netind.for' also creates the index file describing
the Fresnel volume for the next iteration. The name of the
index file is taken from file 'fv-net3.out'.
The Fresnel volume corresponds to the
two-point travel-time error.
Network ray tracing is then performed in the updated grid,
within the Fresnel volume specified by the index file,
using input data 'fv-net3.out' and 'fv-net4.out'.
The grid and the Fresnel volume are updated by program
'netind.for', and iterations may continue...
- fv-net1.dat
-
The data for network ray tracing from the first
given point (file 'fv-src.dat') to the second given point
(file 'fv-rec.dat') during the first iteration when no
volume indexing is applied (no index file is specified).
Velocities gridded in 'fv-vel.out' are referred.
Output files 'fv-rays1.out' containing the two-point ray,
'fv-end1.out' containing the two-point travel time and its
error, and 'fv-tt1.out' containing the travel-time field
will be generated.
- fv-net2.dat
-
The data for network ray tracing from the second
given point (file 'fv-rec.dat') to the first given point
(file 'fv-src.dat') during the first iteration when no
volume indexing is applied (no index file is specified).
Velocities gridded in 'fv-vel.out' are referred.
Output files 'fv-rays2.out' containing the two-point ray,
'fv-end2.out' containing the two-point travel time and its
error, and 'fv-tt2.out' containing the travel-time field
will be generated.
- fv-net3.dat
-
The data for network ray tracing from the first
given point (file 'fv-src.dat') to the second given point
(file 'fv-rec.dat') during the subsequent iterations.
File 'fv-net3.dat' differs from 'fv-net1.dat' only by
specifying input index file 'fv-ind.out' generated by
program 'netind.for' according to the results of the
previous iteration. The numbers of gridpoints in this
file are not important. They are updated by program
'netind.for' and new updated file 'fv-net.out' is used for
network ray tracing during each subsequent iteration.
- fv-net4.dat
-
The data for network ray tracing from the second
given point (file 'fv-rec.dat') to the first given point
(file 'fv-src.dat') during the subsequent iterations.
The numbers of gridpoints in this file are not important.
They are updated by program 'netind.for' and new updated
file 'fv-net.out' is used for network ray tracing during
each subsequent iteration.
- ran (subdirectory)
-
Data and script files to generate a
representation of a random medium and to calculate
the first-arrival travel times in it.
Acknowledgements
The development of the NET package and the related algorithms has
been partially supported by:
- Faculty of Mathematics and Physics, Charles University, Prague.
- Energy, Mines and Resources Canada, Ottawa, Ontario.
- Institute of Geotechnics, Czechoslovak Academy of Sciences, Prague.
- Geophysical Institute, Academy of Sciences of the Czech Republic.
- Grant Agency of the Academy of Sciences of the Czech Republic
under Contracts 31223 and 346110.
- Grant Agency of the Charles University under Contracts 8/94 and
38/94.
- Grant Agency of the Czech Republic under Contract 205/95/1465.
- European Commission within the framework of the JOULE II Project
"Integrated Structural Imaging of Seismic Data".
- Members of consortium "Seismic Waves in Complex 3-D Structures".
References
- Klimes L. and Kvasnicka M. (1994): 3-D network ray tracing.
Geophys.J.int., 116, 726-738.
- Klimes L. (1996): Grid travel-time tracing: second-order method
for the first arrivals in smooth media.
PAGEOPH, 148, 539-563.