This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / GEANT321 / gtrak / grndmq.F
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)
13 C.
14 C.    ******************************************************************
15 C.    *                                                                *
16 C.    *       To set/retrieve the seed of the random number generator  *
17 C.    *        Copy of the CERN Library routine RECUSQ                 *
18 C.    *        Each sequence has a period of 10**9 numbers             *
19 C.    *                                                                *
20 C.    *    ==>Called by : <USER>, many GEANT routines                  *
21 C.    *       Author    R.Brun, F.Carminati  *********                 *
22 C.    *                                                                *
23 C.    ******************************************************************
24 C.
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/
252 C
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
295 C
296  999  END