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,NEGPAR 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,NEGPAR,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 NEGPAR..Flag whether the negative values of material parameters C are allowed: C NEGPAR=0: Negative values of material parameters or zero C P-wave velocity are reported as errors. C NEGPAR=1: Negative values of material parameters or zero C P-wave velocity are not reported as errors. 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: 1999, August 16 C Coded by Ludek Klimes C C======================================================================= C