1*     $$$$$$$$$$$$$   ARRAY SIZE LIMITS START HERE   $$$$$$$$$$$$$$
2*
3*     Maximum size for dynamic (allocatable) arrays.
4*     The values MAXNTX * MAXNTY, MAXNPX * MAXNPY, MAXOBJ, MAXDET,
5*     MAXSDT, MAXSHR, MAXSSL, and MAXGLOWS below are initial sizes,
6*     which can be expanded to this limit as needed.
7      INTEGER MAXMEM
8      PARAMETER (MAXMEM = 600000000)
9*
10*     Maximum number of tiles
11      INTEGER    MAXNTX,       MAXNTY
12      PARAMETER (MAXNTX = 256, MAXNTY = 256)
13*
14*     Number of shadow tiles
15***   (One of these can fail to be enough when the aspect ratio is
16***   extreme or when the model is far from being "centred" near z=0.
17***   Keep them well ahead of MAXNTX, MAXNTY to be on the safe side)
18***   EAM - Allow soft failure and monitor required values in NSXMAX,NSYMAX
19      INTEGER    NSX,       NSY
20      PARAMETER (NSX = 360, NSY = 360)
21*
22*     Maximum number of pixels per tile
23      INTEGER    MAXNPX,      MAXNPY
24      PARAMETER (MAXNPX = 32, MAXNPY = 32)
25*
26*     Maximum number of objects
27      INTEGER    MAXOBJ
28***   PARAMETER (MAXOBJ =   7500)
29      PARAMETER (MAXOBJ = 200000)
30*
31*     Array elements available for object details
32*     Should be roughly 10*MAXOBJ
33      INTEGER    MAXDET,             MAXSDT
34***   PARAMETER (MAXDET =   150 000, MAXSDT =   150 000)
35      PARAMETER (MAXDET = 2 000 000, MAXSDT = 2 000 000)
36*
37*     Array elements available for sorted lists ("short" lists)
38*     Increased requirements as more objects are stacked behind each other
39      INTEGER    MAXSHR,             MAXSSL
40***   PARAMETER (MAXSHR =   150 000, MAXSSL =   150 000)
41      PARAMETER (MAXSHR = 4 000 000, MAXSSL = 2 000 000)
42*
43*     Maximum number of MATERIAL definitions (object type 8)
44      INTEGER    MAXMAT
45      PARAMETER (MAXMAT = 250)
46*
47*     Maximum number of stacked transparent objects at any single pixel
48*     (any further further stacking is ignored)
49      INTEGER    MAXTRANSP
50      PARAMETER (MAXTRANSP=25)
51*
52*     Maximum number of non-shadowing lights (object type 13)
53      INTEGER    MAXGLOWS
54      PARAMETER (MAXGLOWS = 10)
55*
56*     Maximum levels of file indirection in input stream
57      INTEGER    MAXLEV
58      PARAMETER (MAXLEV = 10)
59*
60*     $$$$$$$$$$$$$$$$$  END OF LIMITS  $$$$$$$$$$$$$$$$$$$$$$$
61*
62*     Other possibly platform-dependent stuff
63      REAL       HUGE
64      PARAMETER (HUGE = 1.0e37)
65*     Slop is related to the accuracy (in pixels) to which we must predict
66*     shadow edges. Too low a value causes whole triangles to be spuriously
67*     in shadow; too high a value may cause shadows to be missed altogether.
68*     Perfect accuracy in floating point calculations would allow SLOP << 1.
69      REAL       SLOP
70      PARAMETER (SLOP= 0.35)
71*     Edgeslop is similarly a kludge for dealing with triangles whose explicit
72*     normals describe wrapping around from front-facing to back-facing.
73      REAL       EDGESLOP
74      PARAMETER (EDGESLOP = 0.25)
75*     Ribbonslop is a kludge so that distortion due to perspective doesn't
76*     prevent us from identifying ribbon triangles
77      REAL       RIBBONSLOP
78      PARAMETER (RIBBONSLOP = 0.001)
79