Seismic model specification subroutine package MODEL (general description)

Version 5.20 Date: 1998, September 20 Authors: Vaclav Bucha Department of Geophysics, Charles University Prague Ke Karlovu 3 121 16 Praha 2, Czech Republic E-mail: bucha@seis.karlov.mff.cuni.cz Petr Bulant Department of Geophysics, Charles University Prague Ke Karlovu 3 121 16 Praha 2, Czech Republic E-mail: bulant@seis.karlov.mff.cuni.cz Vlastislav Cerveny Department of Geophysics, Charles University Prague Ke Karlovu 3 121 16 Praha 2, Czech Republic E-mail: vcerveny@seis.karlov.mff.cuni.cz 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 Ivan Psencik Geophysical Institute, Acad. Sci. Czech Rep. Bocni II, 1401 141 31 Praha 4, Czech Republic E-mail: ip@ig.cas.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. References: Cerveny V., Klimes L. and Psencik I. (1988): Complete seismic-ray tracing in three-dimensional structures. In: Seismological Algorithms, ed. Doornbos D.J., Academic Press, New York. The above paper contains detailed description of the model construction and is frequently referred throughout the FORTRAN77 code of model specification routines. The references like (C.R.T.5.4) or (5.4) are related to the paper. The detailed description of the input data, subroutine and function parameters, and other specifications not contained in the paper, is included within the individual source code files. Cline, A.K. (1974): Scalar- and planar-valued curve fitting using splines under tension. Commun. ACM, 17, 218-220. Cline, A.K. (1974): Algorithm 476 -- Six subprograms for curve fitting using splines under tension. Commun. ACM, 17, 220-223. Cline, A.K. (1981): FITPACK -- software package for curve and surface fitting employing splines under tension. Dept. of Comp. Sci., Univ. of Texas, Austin. These references are related to the interpolation subroutines located in file 'fit.for'. Model specification: The way of building the model is concisely described in the above paper on C.R.T. The model building technique is independent of the coordinate system, independent of the method used to specify and interpolate the surfaces covering structural interfaces, and independent of the functions describing the distribution of material properties within the individual complex geological blocks. The basic subroutines to deal with general blocky geological structures are located within the source code file 'model.for'. Among them, the most important subroutine is BLOCK determining the relation of a given point with respect to geological blocks. The data describing the model topology are described within the source code file 'model.for'. To specify a particular model, the following routines should be available: METR1 (file 'metric.for')... Memorizes the type of the model coordinate system. KOOR (file 'metric.for')... Recalls the type of the model coordinate system (zero for Cartesian coordinates). METRIC (file 'metric.for')... Evaluates the metric tensor and Christoffel symbols at a given point. CARTES (file 'metric.for')... Transforms the model coordinates to Cartesian coordinates. Not employed within the complete ray tracing, used rather for model imaging. SRFC1 (file 'srfc.for')... Reads the input data for smooth surfaces. SRFC2 (file 'srfc.for')... Evaluates functions describing the smooth surfaces. PARM1 (file 'parm.for')... Reads the input data for the material parameters of the model. PARM2 (file 'parm.for')... Evaluates the material parameters of a given complex geological block at a given point. To deal with the first order model variations for the purposes of inverse problems, the routines VAR1 to VAR5 should be called properly during the evaluation of functions describing surfaces or material properties in order to memorize the variations. The invocations of VAR1 to VAR5 are irrelevant for forward modelling. These invocations are denoted by '*V' in the first two columns of source code (files 'model.for', 'parm.for', 'val.for', and 'fit.for'). The source code lines with '*V' should be modified or removed by means of the program 'clean.for' or a text editor. When submitting different subroutines SRFC2 and PARM2 while dealing with inverse problems, the user is responsible for proper invocation of routines VAR1 to VAR5. ...................................................................... Compilation and linking: All Fortran 77 source code and include files are assumed to be located in a single directory when being compiled and linked. The files with main programs contain, at their ends, Fortran 90 INCLUDE command for all subroutine files required. In this way, each program may simply be compiled and linked as a single file. All filenames are assumed to be expressed in lowercase (since version 5.00) which should be more convenient than uppercase on Unix systems. Fortran 77 source code files have extension '.for'. The corresponding files with specifications of the COMMON blocks have extension '.inc' and are included in the Fortran 77 source code by means of Fortran 90 INCLUDE command. Notes on linking: Model specification routines (B) and (C) for forward modelling are likely to be required by all applications. Example: 'grid.for' program linked with all files of (B) and (C). In addition, some of service routines (E) are required by some applications. Example 1: 'sec.for' program linked with the files 'modsec.for', 'means.for', 'rkgs.for', and all files of (B) and (C). Example 2: complete ray tracing program and routines linked with 'means.for', 'hpcg.for', and all files of (B) and (C). Inverse modelling programs are likely to require model specification routines (B) and (C) for forward modelling together with the model specification routines (D) for inverse modelling. Do not forget to use the versions with '*V' in the first two columns of source code replaced by a pair of spaces. ...................................................................... Running the executable programs: Within the FORTRAN77 source code submitted with this package, all programs read main input data from the * interactive unit. MS-DOS example: Executable program named, e.g., PROG.EXE may be run with single-line main input data 'DATA' 1 2 3 'END' / in at least three different ways: (a) Running the program by entering PROG from the MS-DOS command line, then entering data 'DATA' 1 2 3 'END' / (b) Redirection: storing 'DATA' 1 2 3 'END' / into a file named, e.g., prog.tmp (e.g., by entering ECHO 'DATA' 1 2 3 'END' / >prog.tmp ), then entering PROG < prog.tmp from the MS-DOS command line. (c) Piping: entering ECHO 'DATA' 1 2 3 'END' / |PROG from the MS-DOS command line. If the corresponding executables '*.EXE' have been prepared, they may be run from the MS-DOS command line, e.g., by entering: ECHO 'grid.dat' / |GRID ECHO 'sec.dat' / |SEC ECHO 'sec-pts.dat' / |SEC ECHO 'model.dat' ' ' 'inv3.dat' 'inv3.out' /|INV3 ECHO 'inv3.dat' 'inv3.out' / |INV4 ECHO 'model.dat' 'answer.out' 'inv3.dat' 'inv3.out' /|INV3 The last command assumes that file 'answer.out' has been prepared by user's own software. Analogously under the UNIX operating systems. ...................................................................... Data sets: The model specification programs may read or write the following data sets: (1) MODEL...Input data for the model. The data are read by the subroutine MODEL1 and are described in the FORTRAN77 source code file 'model.for'. (2) GRID... main input data for the 'grid.for' program. The data are described in the FORTRAN77 source code file 'grid.for'. (3) NET... Additional input file for the 'grid.for' program. The data are described in the FORTRAN77 source code file 'grid.for'. (4) IND, vel.out, icb.out, velder.out... Optional input or output files of the grid program. The data are described in the FORTRAN77 source code file 'grid.for'. (5) SEC... Input data for the 'modsec.for' routines ('SEC' program). The data are read by the subroutine SECT1 and are described in the FORTRAN77 source code file 'modsec.for'. (6) sec.out... Output of the 'modsec.for' routines ('SEC' program), containing interfaces and velocity isolines in the given model sections, stored in the form of several polylines per each isoline. The data are described in the FORTRAN77 source code file 'modsec.for'. and others, not mentioned here now. ...................................................................... Acknowledgements: The development of this 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'. ======================================================================