C
C INCLUDE 'model.inc'
C ------------------------------------------------------------------
CHARACTER*80 TEXTM
COMMON/MODELT/TEXTM
SAVE /MODELT/
C ..................................................................
INTEGER MSB,MCB
PARAMETER (MSB=128)
PARAMETER (MCB=128)
INTEGER NEXPV,NEXPQ,IVERT
REAL BOUNDM(6)
INTEGER NSRFCS,NSB,KSB(0:MSB),NCB,KCB(0:MSB)
EQUIVALENCE (KSB(0),NSB),(KCB(0),NCB)
COMMON/MODELC/NEXPV,NEXPQ,IVERT,BOUNDM,NSRFCS,KSB,KCB
SAVE /MODELC/
C ------------------------------------------------------------------
C TEXTM...The name of the model. String of 80 characters.
C
C NEXPV,NEXPQ... Specify exponents of the power of velocities
C (NEXPV) and Q-factors (NEXPQ) in input data. For example,
C unit values of NEXPV and NEXPQ indicate that the
C parameters of the medium are velocities and Q factors,
C indices equal -1 indicate reciprocal values of these
C quantities, i.e. slownesses and loss factors.
C IVERT...Orientation of the vertical axis:
C IVERT=0: unknown (default),
C IVERT=+1: X1 vertical, pointing upwards,
C IVERT=-1: X1 vertical, pointing downwards,
C IVERT=+2: X2 vertical, pointing upwards,
C IVERT=-2: X2 vertical, pointing downwards,
C IVERT=+3: X3 vertical, pointing upwards,
C IVERT=-3: X3 vertical, pointing downwards,
C Should have no influence on the calculations. If it
C is non-zero, it may be considered for plotting purposes.
C BOUNDM..Boundaries X1MIN,X1MAX,X2MIN,X2MAX,X3MIN,X3MAX of the
C model.
C NSRFCS..Number of smooth surfaces in the model. The surfaces
C are indexed sequentially by positive integers, from 1 to
C NSRFCS. NSRFCS is the storage location for NSRFC.
C NSB... Number of material simple blocks in the model. The blocks
C are indexed sequentially by positive integers ISB from 1
C to NSB. Free-space blocks are not indexed.
C KSB... Contains the indices of the surfaces bounding individual
C simple blocks. KSB(ISB), for ISB = 1 to NSB, specify the
C partition of array KSB(NSB+1:NSB+NS) among the simple
C blocks. Here NS is the total number of all occurences of
C the indices of the surfaces bounding all individual simple
C blocks in the input data. The indices of the surfaces
C bounding individual simple blocks are stored from
C KSB(NSB+1) to KSB(NSB+NS). The locations KSB(NSB+NS+1:MSB)
C are undefined. It must be NSB+NS.LT.MSB. The indices of
C the surfaces bounding the simple block ISB are stored in
C KSB(I1) to KSB(I2), with
C I1 = KSB(ISB-1)+1 ,
C I2 = KSB(ISB) ,
C where KSB(ISB-1)=NSB for ISB=1. For each simple block
C with index ISB, the indices of the surfaces forming the
C set F(+) are stored with positive signs, the indices of
C surfaces from F(-) with negative signs. For an example
C refer to the sample input data for the model.
C NCB... Number of material complex blocks in the model. The blocks
C are indexed sequentially by positive integers ICB from 1
C to NCB. The free-space blocks are not indexed.
C KCB... Contains the indices of the simple blocks forming
C individual complex blocks. KCB(ICB), for ICB = 1 to NCB,
C specify the partition of array KSB(NCB+1:NCB+NB) among the
C complex blocks. Here NB is the total number of all
C occurences of the indices of the simple blocks forming
C individual complex blocks in the input data. The indices
C of the simple blocks forming individual complex blocks are
C stored from KSB(NCB+1) to KSB(NCB+NB). The locations
C KSB(NCB+NB+1:MCB) are undefined. It must be NCB+NB.LT.MCB.
C The indices of the simple blocks forming complex block ICB
C are stored in KCB(I1) to KCB(I2), where
C I1 = KCB(ICB-1)+1 ,
C I2 = KCB(ICB) .
C Here KCB(ICB-1)=NCB for ICB=1. For an example refer to
C the sample input data for the model.
C
C All the input data are stored sequentially in the same order as
C they were read. The only exception are locations KSB(1) to
C KSB(NSB) and KCB(1) to KCB(NCB) which are inserted when the input
C data are being read . The index of the last allocated numeric
C storage unit of array KSB is named MSB. The index of the last
C allocated numeric storage unit of array KCB is named MCB. The
C values of MSB and MCB are given by the sixth and seventh statement
C of the block data subroutine MODELB. If the value of MSB or MCB
C is changed, it must be adjusted in all subroutines which include
C the common block /MODELC/.
C
C Common block /MODELT/ is included in external procedure MODEL1.
C of file 'model.for', and in subroutine SECT1 of file 'sec.for'.
C
C Common block /MODELC/ is included in external procedures MODEL1,
C BLOCK, ISIDE, INTERF of file 'model.for', in subroutines FUNC and
C DISC of file 'sec.for', in program 'intf.for', in subroutine
C RAY1 of file 'ray.for' of package CRT, in 'bndlin.for',
C and may be included in any other subroutine.
C
C Date: 1996, July 8
C Coded by Ludek Klimes
C
C=======================================================================
C