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