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: (b) Additional program NETIND for network ray tracing within Fresnel volumes:

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):

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:

References