C
C INCLUDE 'mtt.inc'
C Declaration of the common blocks used through MTT program:
C
C Date: 1999, May 21
C
C ------------------------------------------------------------------
INCLUDE 'ram.inc'
C
INTEGER IRAM(MRAM)
EQUIVALENCE (IRAM,RAM)
INTEGER NRAMP,MRAMP,NT,NR,NQ,NRAMT
INTEGER ORAYE,ORAYA,IRAYMI,IRAYMA
INTEGER NOUT,MOUT
PARAMETER (MOUT=21)
CHARACTER*80 OUT(MOUT),FOUT(MOUT)
REAL GIANT,DWARF
PARAMETER (GIANT=2000000000.)
LOGICAL L3D,L2D
COMMON/MTTC/NRAMP,MRAMP,NT,NR,NQ,NRAMT,ORAYE,ORAYA,IRAYMI,IRAYMA,
* NOUT,OUT,FOUT,DWARF,L3D,L2D
SAVE /MTTC/
C ------------------------------------------------------------------
C MRAM ...Dimension of the arrays IRAM, RAM.
C NRAMP...Number of records for points on rays in arrays IRAM, RAM.
C MRAMP...Maximum number of records for points in arrays IRAM, RAM.
C IRAM(1 : 3*NT), where NT is a number of triangles ...
C Indices of the rays forming the homogeneous triangles
C in the ray-parameter domain.
C IRAM(3*NT+1 : 4*NT) ... indices of triangles sorted according to
C the indices of the rays forming the triangles, i.e. the
C triangle formed by rays with the lowest indices is located
C in IRAM(IRAM(3*NT+1):IRAM(3*NT+1)+2), the triangle formed
C by rays with the highest indices is located in
C IRAM(IRAM(4*NT):IRAM(4*NT)+2)
C IRAM(4*NT+1 : 4*NT+NR), where NR is a number of rays ...
C "Deleting array" containing the information about when
C can be the rays erased from memory. Each record of the
C array corresponds to one ray. The record
C describes the last triangle where the ray is used;
C it displays the highest index of the rays of the
C last triangle.
C Zero for the rays, which will not be used.
C IRAM(4*NT+NR+1 : 4*NT+2*NR+1) ... "Addressing array" containing
C the addresses of the ends of individual
C records for rays in the array [I]RAM.
C If the ray have not yet been read into memory, zero.
C If the ray was already read but is no longer stored in
C the memory, the address of previous ray stored in memory.
C To enable reading of the ray IRAYMI, address of the ray
C IRAYMI-1 is set to 3*NT+2*NR+1 and stored as the first ray.
C [I]RAM(4*NT+2*NR+2 : 4*NT+2*NR+2+JR, ...) JR parameters of a ray,
C where JR=address of the ray - address of the previous ray;
C or JR=number of points on the ray * NQ.
C NT ... Number of triangles.
C NR ... Number of rays, which may be used in some triangle.
C NQ ... Number of quantities recorded for each point on a ray.
C The quantities represent:
C 1. X1-coordinate.
C 2. X2-coordinate.
C 3. X3-coordinate.
C 4. Index of the surface at which the endpoint of the
C computed element of the ray is situated, zero for
C endpoint situated inside complex block.
C 5. Sequential index of a point.
C 6. - 5.+NOUT Quantities to be interpolated. The kinds
C of quantities are given by
C input data OUT.
C ORAYE . When substracting this number from the index of a ray,
C we get the position of the ray in "deleting array".
C ORAYA . When substracting this number from the index of a ray,
C we get the position of the ray in "addressing array".
C Address of the ray with index IRAY: IRAM(IRAY-ORAYA)
C Parameters of the ray with index IRAY:
C from RAM(IRAM(IRAY-ORAYA-1)+1)
C to RAM(IRAM(IRAY-ORAY).
C IRAYMI,IRAYMA ... Minimum and maximum of indices of rays.
C GIANT . High real number which is smaller than the highest integer
C existing on the computer. Here the value 2*10to9 was
C selected as the highest integer on most computers
C equals 2to31.
C DWARF . Small real number, 100 times greater than the
C highest number R satisfying the equation 1.+R=1.
C
C L3D ... L3D=.TRUE. indicates a 3-D computation.
C L2D ... L2D=.TRUE. indicates a 2-D computation.
C Coded by Petr Bulant
C
C=======================================================================
C