]> git.uio.no Git - u/mrichter/AliRoot.git/blame - GEANT321/gtrak/grndmq.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / GEANT321 / gtrak / grndmq.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1995/10/24 10:21:42 cernlib
6* Geant
7*
8*
9#include "geant321/pilot.h"
10*CMZ : 3.21/04 31/10/94 10.11.27 by S.Ravndal
11*-- Author :
12 SUBROUTINE GRNDMQ(IS1,IS2,ISEQ,CHOPT)
13C.
14C. ******************************************************************
15C. * *
16C. * To set/retrieve the seed of the random number generator *
17C. * Copy of the CERN Library routine RECUSQ *
18C. * Each sequence has a period of 10**9 numbers *
19C. * *
20C. * ==>Called by : <USER>, many GEANT routines *
21C. * Author R.Brun, F.Carminati ********* *
22C. * *
23C. ******************************************************************
24C.
25#include "geant321/gcbank.inc"
26 CHARACTER*(*) CHOPT
27 CHARACTER*12 CCHOPT
28#if defined(CERNLIB_CRAY)
29 REAL ISEED
30#endif
31#if defined(CERNLIB_IBMALL)||defined(CERNLIB_IBMRT)||defined(CERNLIB_APO10K)||defined(CERNLIB_HPUX)||defined(CERNLIB_MSDOS)||defined(CERNLIB_WINNT)
32 DOUBLE PRECISION ISEED
33#endif
34 PARAMETER (MAXSEQ=215)
35 COMMON / GCRNDM / JSEQ(2), ISEED(2,MAXSEQ)
36 DIMENSION LSEQS(2,MAXSEQ)
37 DATA LSEQS(1, 1),LSEQS(2, 1 )/ 9876, 54321/
38 DATA LSEQS(1, 2),LSEQS(2, 2 )/1299961164, 253987020/
39 DATA LSEQS(1, 3),LSEQS(2, 3 )/ 669708517,2079157264/
40 DATA LSEQS(1, 4),LSEQS(2, 4 )/ 190904760, 417696270/
41 DATA LSEQS(1, 5),LSEQS(2, 5 )/1289741558,1376336092/
42 DATA LSEQS(1, 6),LSEQS(2, 6 )/1803730167, 324952955/
43 DATA LSEQS(1, 7),LSEQS(2, 7 )/ 489854550, 582847132/
44 DATA LSEQS(1, 8),LSEQS(2, 8 )/1348037628,1661577989/
45 DATA LSEQS(1, 9),LSEQS(2, 9 )/ 350557787,1155446919/
46 DATA LSEQS(1, 10),LSEQS(2, 10 )/ 591502945, 634133404/
47 DATA LSEQS(1, 11),LSEQS(2, 11 )/1901084678, 862916278/
48 DATA LSEQS(1, 12),LSEQS(2, 12 )/1988640932,1785523494/
49 DATA LSEQS(1, 13),LSEQS(2, 13 )/1873836227, 508007031/
50 DATA LSEQS(1, 14),LSEQS(2, 14 )/1146416592, 967585720/
51 DATA LSEQS(1, 15),LSEQS(2, 15 )/1837193353,1522927634/
52 DATA LSEQS(1, 16),LSEQS(2, 16 )/ 38219936, 921609208/
53 DATA LSEQS(1, 17),LSEQS(2, 17 )/ 349152748, 112892610/
54 DATA LSEQS(1, 18),LSEQS(2, 18 )/ 744459040,1735807920/
55 DATA LSEQS(1, 19),LSEQS(2, 19 )/1983990104, 728277902/
56 DATA LSEQS(1, 20),LSEQS(2, 20 )/ 309164507,2126677523/
57 DATA LSEQS(1, 21),LSEQS(2, 21 )/ 362993787,1897782044/
58 DATA LSEQS(1, 22),LSEQS(2, 22 )/ 556776976, 462072869/
59 DATA LSEQS(1, 23),LSEQS(2, 23 )/1584900822,2019394912/
60 DATA LSEQS(1, 24),LSEQS(2, 24 )/1249892722, 791083656/
61 DATA LSEQS(1, 25),LSEQS(2, 25 )/1686600998,1983731097/
62 DATA LSEQS(1, 26),LSEQS(2, 26 )/1127381380, 198976625/
63 DATA LSEQS(1, 27),LSEQS(2, 27 )/1999420861,1810452455/
64 DATA LSEQS(1, 28),LSEQS(2, 28 )/1972906041, 664182577/
65 DATA LSEQS(1, 29),LSEQS(2, 29 )/ 84636481,1291886301/
66 DATA LSEQS(1, 30),LSEQS(2, 30 )/1186362995, 954388413/
67 DATA LSEQS(1, 31),LSEQS(2, 31 )/2141621785, 61738584/
68 DATA LSEQS(1, 32),LSEQS(2, 32 )/1969581251,1557880415/
69 DATA LSEQS(1, 33),LSEQS(2, 33 )/1150606439, 136325185/
70 DATA LSEQS(1, 34),LSEQS(2, 34 )/ 95187861,1592224108/
71 DATA LSEQS(1, 35),LSEQS(2, 35 )/ 940517655,1629971798/
72 DATA LSEQS(1, 36),LSEQS(2, 36 )/ 215350428, 922659102/
73 DATA LSEQS(1, 37),LSEQS(2, 37 )/ 786161212,1121345074/
74 DATA LSEQS(1, 38),LSEQS(2, 38 )/1450830056,1922787776/
75 DATA LSEQS(1, 39),LSEQS(2, 39 )/1696578057,2025150487/
76 DATA LSEQS(1, 40),LSEQS(2, 40 )/1803414346,1851324780/
77 DATA LSEQS(1, 41),LSEQS(2, 41 )/1017898585,1452594263/
78 DATA LSEQS(1, 42),LSEQS(2, 42 )/1184497978, 82122239/
79 DATA LSEQS(1, 43),LSEQS(2, 43 )/ 633338765,1829684974/
80 DATA LSEQS(1, 44),LSEQS(2, 44 )/ 430889421, 230039326/
81 DATA LSEQS(1, 45),LSEQS(2, 45 )/ 492544653, 76320266/
82 DATA LSEQS(1, 46),LSEQS(2, 46 )/ 389386975,1314148944/
83 DATA LSEQS(1, 47),LSEQS(2, 47 )/1720322786, 709120323/
84 DATA LSEQS(1, 48),LSEQS(2, 48 )/1868768216,1992898523/
85 DATA LSEQS(1, 49),LSEQS(2, 49 )/ 443210610, 811117710/
86 DATA LSEQS(1, 50),LSEQS(2, 50 )/1191938868,1548484733/
87 DATA LSEQS(1, 51),LSEQS(2, 51 )/ 616890172, 159787986/
88 DATA LSEQS(1, 52),LSEQS(2, 52 )/ 935835339,1231440405/
89 DATA LSEQS(1, 53),LSEQS(2, 53 )/1058009367,1527613300/
90 DATA LSEQS(1, 54),LSEQS(2, 54 )/1463148129,1970575097/
91 DATA LSEQS(1, 55),LSEQS(2, 55 )/1795336935, 434768675/
92 DATA LSEQS(1, 56),LSEQS(2, 56 )/ 274019517, 605098487/
93 DATA LSEQS(1, 57),LSEQS(2, 57 )/ 483689317, 217146977/
94 DATA LSEQS(1, 58),LSEQS(2, 58 )/2070804364, 340596558/
95 DATA LSEQS(1, 59),LSEQS(2, 59 )/ 930226308,1602100969/
96 DATA LSEQS(1, 60),LSEQS(2, 60 )/ 989324440, 801809442/
97 DATA LSEQS(1, 61),LSEQS(2, 61 )/ 410606853,1893139948/
98 DATA LSEQS(1, 62),LSEQS(2, 62 )/1583588576,1219225407/
99 DATA LSEQS(1, 63),LSEQS(2, 63 )/2102034391,1394921405/
100 DATA LSEQS(1, 64),LSEQS(2, 64 )/2005037790,2031006861/
101 DATA LSEQS(1, 65),LSEQS(2, 65 )/1244218766, 923231061/
102 DATA LSEQS(1, 66),LSEQS(2, 66 )/ 49312790, 775496649/
103 DATA LSEQS(1, 67),LSEQS(2, 67 )/ 721012176, 321339902/
104 DATA LSEQS(1, 68),LSEQS(2, 68 )/1719909107,1865748178/
105 DATA LSEQS(1, 69),LSEQS(2, 69 )/1156177430,1257110891/
106 DATA LSEQS(1, 70),LSEQS(2, 70 )/ 307561322,1918244397/
107 DATA LSEQS(1, 71),LSEQS(2, 71 )/ 906041433, 360476981/
108 DATA LSEQS(1, 72),LSEQS(2, 72 )/1591375755, 268492659/
109 DATA LSEQS(1, 73),LSEQS(2, 73 )/ 461522398, 227343256/
110 DATA LSEQS(1, 74),LSEQS(2, 74 )/2145930725,2020665454/
111 DATA LSEQS(1, 75),LSEQS(2, 75 )/1938419274,1331283701/
112 DATA LSEQS(1, 76),LSEQS(2, 76 )/ 174405412, 524140103/
113 DATA LSEQS(1, 77),LSEQS(2, 77 )/ 494343653, 18063908/
114 DATA LSEQS(1, 78),LSEQS(2, 78 )/1025534808, 181709577/
115 DATA LSEQS(1, 79),LSEQS(2, 79 )/2048959776,1913665637/
116 DATA LSEQS(1, 80),LSEQS(2, 80 )/ 950636517, 794796256/
117 DATA LSEQS(1, 81),LSEQS(2, 81 )/1828843197,1335757744/
118 DATA LSEQS(1, 82),LSEQS(2, 82 )/ 211109723, 983900607/
119 DATA LSEQS(1, 83),LSEQS(2, 83 )/ 825474095,1046009991/
120 DATA LSEQS(1, 84),LSEQS(2, 84 )/ 374915657, 381856628/
121 DATA LSEQS(1, 85),LSEQS(2, 85 )/1241296328, 698149463/
122 DATA LSEQS(1, 86),LSEQS(2, 86 )/1260624655,1024538273/
123 DATA LSEQS(1, 87),LSEQS(2, 87 )/ 900676210,1628865823/
124 DATA LSEQS(1, 88),LSEQS(2, 88 )/ 697951025, 500570753/
125 DATA LSEQS(1, 89),LSEQS(2, 89 )/1007920268,1708398558/
126 DATA LSEQS(1, 90),LSEQS(2, 90 )/ 264596520, 624727803/
127 DATA LSEQS(1, 91),LSEQS(2, 91 )/1977924811, 674673241/
128 DATA LSEQS(1, 92),LSEQS(2, 92 )/1440257718, 271184151/
129 DATA LSEQS(1, 93),LSEQS(2, 93 )/1928778847, 993535203/
130 DATA LSEQS(1, 94),LSEQS(2, 94 )/1307807366,1801502463/
131 DATA LSEQS(1, 95),LSEQS(2, 95 )/1498732610, 300876954/
132 DATA LSEQS(1, 96),LSEQS(2, 96 )/1617712402,1574250679/
133 DATA LSEQS(1, 97),LSEQS(2, 97 )/1261800762,1556667280/
134 DATA LSEQS(1, 98),LSEQS(2, 98 )/ 949929273, 560721070/
135 DATA LSEQS(1, 99),LSEQS(2, 99 )/1766170474,1953522912/
136 DATA LSEQS(1,100),LSEQS(2,100 )/1849939248, 19435166/
137 DATA LSEQS(1,101),LSEQS(2,101 )/ 887262858,1219627824/
138 DATA LSEQS(1,102),LSEQS(2,102 )/ 483086133, 603728993/
139 DATA LSEQS(1,103),LSEQS(2,103 )/1330541052,1582596025/
140 DATA LSEQS(1,104),LSEQS(2,104 )/1850591475, 723593133/
141 DATA LSEQS(1,105),LSEQS(2,105 )/1431775678,1558439000/
142 DATA LSEQS(1,106),LSEQS(2,106 )/ 922493739,1356554404/
143 DATA LSEQS(1,107),LSEQS(2,107 )/1058517206, 948567762/
144 DATA LSEQS(1,108),LSEQS(2,108 )/ 709067283,1350890215/
145 DATA LSEQS(1,109),LSEQS(2,109 )/1044787723,2144304941/
146 DATA LSEQS(1,110),LSEQS(2,110 )/ 999707003, 513837520/
147 DATA LSEQS(1,111),LSEQS(2,111 )/2140038663,1850568788/
148 DATA LSEQS(1,112),LSEQS(2,112 )/1803100150, 127574047/
149 DATA LSEQS(1,113),LSEQS(2,113 )/ 867445693,1149173981/
150 DATA LSEQS(1,114),LSEQS(2,114 )/ 408583729, 914837991/
151 DATA LSEQS(1,115),LSEQS(2,115 )/1166715497, 602315845/
152 DATA LSEQS(1,116),LSEQS(2,116 )/ 430738528,1743308384/
153 DATA LSEQS(1,117),LSEQS(2,117 )/1388022681,1760110496/
154 DATA LSEQS(1,118),LSEQS(2,118 )/1664028066, 654300326/
155 DATA LSEQS(1,119),LSEQS(2,119 )/1767741172,1338181197/
156 DATA LSEQS(1,120),LSEQS(2,120 )/1625723550,1742482745/
157 DATA LSEQS(1,121),LSEQS(2,121 )/ 464486085,1507852127/
158 DATA LSEQS(1,122),LSEQS(2,122 )/ 754082421,1187454014/
159 DATA LSEQS(1,123),LSEQS(2,123 )/1315342834, 425995190/
160 DATA LSEQS(1,124),LSEQS(2,124 )/ 960416608,2004255418/
161 DATA LSEQS(1,125),LSEQS(2,125 )/1262630671, 671761697/
162 DATA LSEQS(1,126),LSEQS(2,126 )/ 59809238, 103525918/
163 DATA LSEQS(1,127),LSEQS(2,127 )/1205644919,2107823293/
164 DATA LSEQS(1,128),LSEQS(2,128 )/1615183160,1152411412/
165 DATA LSEQS(1,129),LSEQS(2,129 )/1024474681,2118672937/
166 DATA LSEQS(1,130),LSEQS(2,130 )/1703877649,1235091369/
167 DATA LSEQS(1,131),LSEQS(2,131 )/1821417852,1098463802/
168 DATA LSEQS(1,132),LSEQS(2,132 )/1738806466,1529062843/
169 DATA LSEQS(1,133),LSEQS(2,133 )/ 620780646,1654833544/
170 DATA LSEQS(1,134),LSEQS(2,134 )/1070174101, 795158254/
171 DATA LSEQS(1,135),LSEQS(2,135 )/ 658537995,1693620426/
172 DATA LSEQS(1,136),LSEQS(2,136 )/2055317555, 508053916/
173 DATA LSEQS(1,137),LSEQS(2,137 )/1647371686,1282395762/
174 DATA LSEQS(1,138),LSEQS(2,138 )/ 29067379, 409683067/
175 DATA LSEQS(1,139),LSEQS(2,139 )/1763495989,1917939635/
176 DATA LSEQS(1,140),LSEQS(2,140 )/1602690753, 810926582/
177 DATA LSEQS(1,141),LSEQS(2,141 )/ 885787576, 513818500/
178 DATA LSEQS(1,142),LSEQS(2,142 )/1853512561,1195205756/
179 DATA LSEQS(1,143),LSEQS(2,143 )/1798585498,1970460256/
180 DATA LSEQS(1,144),LSEQS(2,144 )/1819261032,1306536501/
181 DATA LSEQS(1,145),LSEQS(2,145 )/1133245275, 37901/
182 DATA LSEQS(1,146),LSEQS(2,146 )/ 689459799,1334389069/
183 DATA LSEQS(1,147),LSEQS(2,147 )/1730609912,1854586207/
184 DATA LSEQS(1,148),LSEQS(2,148 )/1556832175,1228729041/
185 DATA LSEQS(1,149),LSEQS(2,149 )/ 251375753, 683687209/
186 DATA LSEQS(1,150),LSEQS(2,150 )/2083946182,1763106152/
187 DATA LSEQS(1,151),LSEQS(2,151 )/2142981854,1365385561/
188 DATA LSEQS(1,152),LSEQS(2,152 )/ 763711891,1735754548/
189 DATA LSEQS(1,153),LSEQS(2,153 )/1581256466, 173689858/
190 DATA LSEQS(1,154),LSEQS(2,154 )/2121337132,1247108250/
191 DATA LSEQS(1,155),LSEQS(2,155 )/1004003636, 891894307/
192 DATA LSEQS(1,156),LSEQS(2,156 )/ 569816524, 358675254/
193 DATA LSEQS(1,157),LSEQS(2,157 )/ 626626425, 116062841/
194 DATA LSEQS(1,158),LSEQS(2,158 )/ 632086003, 861268491/
195 DATA LSEQS(1,159),LSEQS(2,159 )/1008211580, 779404957/
196 DATA LSEQS(1,160),LSEQS(2,160 )/1134217766,1766838261/
197 DATA LSEQS(1,161),LSEQS(2,161 )/1423829292,1706666192/
198 DATA LSEQS(1,162),LSEQS(2,162 )/ 942037869,1549358884/
199 DATA LSEQS(1,163),LSEQS(2,163 )/1959429535, 480779114/
200 DATA LSEQS(1,164),LSEQS(2,164 )/ 778311037,1940360875/
201 DATA LSEQS(1,165),LSEQS(2,165 )/1531372185,2009078158/
202 DATA LSEQS(1,166),LSEQS(2,166 )/ 241935492,1050047003/
203 DATA LSEQS(1,167),LSEQS(2,167 )/ 272453504,1870883868/
204 DATA LSEQS(1,168),LSEQS(2,168 )/ 390441332,1057903098/
205 DATA LSEQS(1,169),LSEQS(2,169 )/1230238834,1548117688/
206 DATA LSEQS(1,170),LSEQS(2,170 )/1242956379,1217296445/
207 DATA LSEQS(1,171),LSEQS(2,171 )/ 515648357,1675011378/
208 DATA LSEQS(1,172),LSEQS(2,172 )/ 364477932, 355212934/
209 DATA LSEQS(1,173),LSEQS(2,173 )/2096008713,1570161804/
210 DATA LSEQS(1,174),LSEQS(2,174 )/1409752526, 214033983/
211 DATA LSEQS(1,175),LSEQS(2,175 )/1288158292,1760636178/
212 DATA LSEQS(1,176),LSEQS(2,176 )/ 407562666,1265144848/
213 DATA LSEQS(1,177),LSEQS(2,177 )/1071056491,1582316946/
214 DATA LSEQS(1,178),LSEQS(2,178 )/1014143949, 911406955/
215 DATA LSEQS(1,179),LSEQS(2,179 )/ 203080461, 809380052/
216 DATA LSEQS(1,180),LSEQS(2,180 )/ 125647866,1705464126/
217 DATA LSEQS(1,181),LSEQS(2,181 )/2015685843, 599230667/
218 DATA LSEQS(1,182),LSEQS(2,182 )/1425476020, 668203729/
219 DATA LSEQS(1,183),LSEQS(2,183 )/1673735652, 567931803/
220 DATA LSEQS(1,184),LSEQS(2,184 )/1714199325, 181737617/
221 DATA LSEQS(1,185),LSEQS(2,185 )/1389137652, 678147926/
222 DATA LSEQS(1,186),LSEQS(2,186 )/ 288547803, 435433694/
223 DATA LSEQS(1,187),LSEQS(2,187 )/ 200159281, 654399753/
224 DATA LSEQS(1,188),LSEQS(2,188 )/1580828223,1298308945/
225 DATA LSEQS(1,189),LSEQS(2,189 )/1832286107, 169991953/
226 DATA LSEQS(1,190),LSEQS(2,190 )/ 182557704,1046541065/
227 DATA LSEQS(1,191),LSEQS(2,191 )/1688025575,1248944426/
228 DATA LSEQS(1,192),LSEQS(2,192 )/1508287706,1220577001/
229 DATA LSEQS(1,193),LSEQS(2,193 )/ 36721212,1377275347/
230 DATA LSEQS(1,194),LSEQS(2,194 )/1968679856,1675229747/
231 DATA LSEQS(1,195),LSEQS(2,195 )/ 279109231,1835333261/
232 DATA LSEQS(1,196),LSEQS(2,196 )/1358617667,1416978076/
233 DATA LSEQS(1,197),LSEQS(2,197 )/ 740626186,2103913602/
234 DATA LSEQS(1,198),LSEQS(2,198 )/1882655908, 251341858/
235 DATA LSEQS(1,199),LSEQS(2,199 )/ 648016670,1459615287/
236 DATA LSEQS(1,200),LSEQS(2,200 )/ 780255321, 154906988/
237 DATA LSEQS(1,201),LSEQS(2,201 )/ 857296483, 203375965/
238 DATA LSEQS(1,202),LSEQS(2,202 )/1631676846, 681204578/
239 DATA LSEQS(1,203),LSEQS(2,203 )/1906971307,1623728832/
240 DATA LSEQS(1,204),LSEQS(2,204 )/1541899600,1168449797/
241 DATA LSEQS(1,205),LSEQS(2,205 )/1267051693,1020078717/
242 DATA LSEQS(1,206),LSEQS(2,206 )/1998673940,1298394942/
243 DATA LSEQS(1,207),LSEQS(2,207 )/1914117058,1381290704/
244 DATA LSEQS(1,208),LSEQS(2,208 )/ 426068513,1381618498/
245 DATA LSEQS(1,209),LSEQS(2,209 )/ 139365577,1598767734/
246 DATA LSEQS(1,210),LSEQS(2,210 )/2129910384, 952266588/
247 DATA LSEQS(1,211),LSEQS(2,211 )/ 661788054, 19661356/
248 DATA LSEQS(1,212),LSEQS(2,212 )/1104640222, 240506063/
249 DATA LSEQS(1,213),LSEQS(2,213 )/ 356133630,1676634527/
250 DATA LSEQS(1,214),LSEQS(2,214 )/ 242242374,1863206182/
251 DATA LSEQS(1,215),LSEQS(2,215 )/ 957935844,1490681416/
252C
253 CCHOPT = CHOPT
254 IF(CCHOPT.EQ.' ') THEN
255 IF(ISEQ.GT.215.OR.ISEQ.LT.1) THEN
256 ISEED(1,1) = LSEQS(1,1)
257 ISEED(2,1) = LSEQS(2,1)
258 JSEQ(1) = 1
259 ELSE
260 ISEED(1,ISEQ) = LSEQS(1,ISEQ)
261 ISEED(2,ISEQ) = LSEQS(2,ISEQ)
262 JSEQ(1) = ISEQ
263 END IF
264 GO TO 999
265 END IF
266 IF(INDEX(CHOPT,'S').NE.0) THEN
267 IF(ISEQ.GT.0) JSEQ(1) = ISEQ
268 IF(IS1.GT.0.AND.IS2.GT.0) THEN
269 ISEED(1,JSEQ(1)) = IS1
270 ISEED(2,JSEQ(1)) = IS2
271 END IF
272 IF(INDEX(CHOPT,'H').NE.0) THEN
273 IQ(JHEAD+3) = IS1
274 IQ(JHEAD+4) = IS2
275 END IF
276 END IF
277 IF(INDEX(CHOPT,'G').NE.0) THEN
278 IF(ISEQ.LE.0)THEN
279 KSEQ = JSEQ(1)
280 ELSE
281 KSEQ = ISEQ
282 ENDIF
283 IS1 = ISEED(1,KSEQ)
284 IS2 = ISEED(2,KSEQ)
285 END IF
286 IF(INDEX(CHOPT,'Q').NE.0) THEN
287 IF(ISEQ.GE.1.AND.ISEQ.LE.MAXSEQ) THEN
288 IS1 = LSEQS(1,ISEQ)
289 IS2 = LSEQS(2,ISEQ)
290 ELSE
291 IS1 = 0
292 IS2 = 0
293 END IF
294 END IF
295C
296 999 END