3 !-----------------------------------------------------------------------------
4 !-----------------------------------------------------------------------------
6 #if defined(AIX) || defined(AMD64)
8 integer,parameter :: nmax=1021
9 integer(kind=8),dimension(2,0:nmax) :: iparam
10 ! common/ksrprng/iparam(2,0:nmax)
11 integer,private :: i,j
12 data (iparam(1,i),iparam(2,i),i= 0, 29) / &
13 11848219, 11848219, 11848237, 11848237, 11848241, 11848241,&
14 11848247, 11848247, 11848253, 11848253, 11848271, 11848271,&
15 11848297, 11848297, 11848313, 11848313, 11848339, 11848339,&
16 11848351, 11848351, 11848357, 11848357, 11848363, 11848363,&
17 11848367, 11848367, 11848373, 11848373, 11848379, 11848379,&
18 11848393, 11848393, 11848433, 11848433, 11848451, 11848451,&
19 11848469, 11848469, 11848477, 11848477, 11848489, 11848489,&
20 11848493, 11848493, 11848513, 11848513, 11848523, 11848523,&
21 11848531, 11848531, 11848537, 11848537, 11848553, 11848553,&
22 11848589, 11848589, 11848591, 11848591, 11848601, 11848601 /
23 data (iparam(1,i),iparam(2,i),i= 30, 59) / &
24 11848619, 11848619, 11848637, 11848637, 11848663, 11848663,&
25 11848673, 11848673, 11848679, 11848679, 11848691, 11848691,&
26 11848699, 11848699, 11848709, 11848709, 11848717, 11848717,&
27 11848721, 11848721, 11848729, 11848729, 11848741, 11848741,&
28 11848751, 11848751, 11848757, 11848757, 11848787, 11848787,&
29 11848801, 11848801, 11848829, 11848829, 11848853, 11848853,&
30 11848861, 11848861, 11848867, 11848867, 11848873, 11848873,&
31 11848891, 11848891, 11848909, 11848909, 11848919, 11848919,&
32 11848931, 11848931, 11848937, 11848937, 11848961, 11848961,&
33 11848981, 11848981, 11849021, 11849021, 11849039, 11849039 /
34 data (iparam(1,i),iparam(2,i),i= 60, 89) / &
35 11849053, 11849053, 11849059, 11849059, 11849069, 11849069,&
36 11849077, 11849077, 11849087, 11849087, 11849093, 11849093,&
37 11849107, 11849107, 11849111, 11849111, 11849129, 11849129,&
38 11849137, 11849137, 11849177, 11849177, 11849183, 11849183,&
39 11849203, 11849203, 11849231, 11849231, 11849237, 11849237,&
40 11849239, 11849239, 11849249, 11849249, 11849251, 11849251,&
41 11849269, 11849269, 11849273, 11849273, 11849291, 11849291,&
42 11849297, 11849297, 11849309, 11849309, 11849339, 11849339,&
43 11849359, 11849359, 11849363, 11849363, 11849399, 11849399,&
44 11849401, 11849401, 11849413, 11849413, 11849417, 11849417 /
45 data (iparam(1,i),iparam(2,i),i= 90, 119) / &
46 11849437, 11849437, 11849443, 11849443, 11849473, 11849473,&
47 11849491, 11849491, 11849503, 11849503, 11849507, 11849507,&
48 11849557, 11849557, 11849567, 11849567, 11849569, 11849569,&
49 11849573, 11849573, 11849587, 11849587, 11849599, 11849599,&
50 11849633, 11849633, 11849641, 11849641, 11849653, 11849653,&
51 11849659, 11849659, 11849671, 11849671, 11849683, 11849683,&
52 11849689, 11849689, 11849693, 11849693, 11849699, 11849699,&
53 11849701, 11849701, 11849707, 11849707, 11849713, 11849713,&
54 11849723, 11849723, 11849741, 11849741, 11849743, 11849743,&
55 11849759, 11849759, 11849767, 11849767, 11849771, 11849771 /
56 data (iparam(1,i),iparam(2,i),i= 120, 149) / &
57 11849791, 11849791, 11849801, 11849801, 11849809, 11849809,&
58 11849813, 11849813, 11849869, 11849869, 11849881, 11849881,&
59 11849891, 11849891, 11849909, 11849909, 11849923, 11849923,&
60 11849933, 11849933, 11849947, 11849947, 11849987, 11849987,&
61 11850001, 11850001, 11850011, 11850011, 11850019, 11850019,&
62 11850023, 11850023, 11850031, 11850031, 11850049, 11850049,&
63 11850061, 11850061, 11850073, 11850073, 11850077, 11850077,&
64 11850103, 11850103, 11850109, 11850109, 11850121, 11850121,&
65 11850127, 11850127, 11850133, 11850133, 11850149, 11850149,&
66 11850161, 11850161, 11850169, 11850169, 11850191, 11850191 /
67 data (iparam(1,i),iparam(2,i),i= 150, 179) / &
68 11850233, 11850233, 11850247, 11850247, 11850259, 11850259,&
69 11850269, 11850269, 11850283, 11850283, 11850301, 11850301,&
70 11850341, 11850341, 11850347, 11850347, 11850367, 11850367,&
71 11850373, 11850373, 11850379, 11850379, 11850389, 11850389,&
72 11850407, 11850407, 11850427, 11850427, 11850437, 11850437,&
73 11850469, 11850469, 11850481, 11850481, 11850511, 11850511,&
74 11850529, 11850529, 11850541, 11850541, 11850557, 11850557,&
75 11850607, 11850607, 11850611, 11850611, 11850667, 11850667,&
76 11850677, 11850677, 11850679, 11850679, 11850701, 11850701,&
77 11850731, 11850731, 11850739, 11850739, 11850749, 11850749 /
78 data (iparam(1,i),iparam(2,i),i= 180, 209) / &
79 11850791, 11850791, 11850803, 11850803, 11850829, 11850829,&
80 11850833, 11850833, 11850859, 11850859, 11850877, 11850877,&
81 11850899, 11850899, 11850907, 11850907, 11850913, 11850913,&
82 11850919, 11850919, 11850931, 11850931, 11850941, 11850941,&
83 11850947, 11850947, 11850953, 11850953, 11850961, 11850961,&
84 11850983, 11850983, 11850991, 11850991, 11850997, 11850997,&
85 11851031, 11851031, 11851033, 11851033, 11851051, 11851051,&
86 11851061, 11851061, 11851067, 11851067, 11851093, 11851093,&
87 11851109, 11851109, 11851123, 11851123, 11851127, 11851127,&
88 11851139, 11851139, 11851157, 11851157, 11851163, 11851163 /
89 data (iparam(1,i),iparam(2,i),i= 210, 239) / &
90 11851181, 11851181, 11851201, 11851201, 11851219, 11851219,&
91 11851291, 11851291, 11851303, 11851303, 11851309, 11851309,&
92 11851313, 11851313, 11851319, 11851319, 11851349, 11851349,&
93 11851351, 11851351, 11851361, 11851361, 11851373, 11851373,&
94 11851403, 11851403, 11851409, 11851409, 11851423, 11851423,&
95 11851447, 11851447, 11851451, 11851451, 11851481, 11851481,&
96 11851493, 11851493, 11851519, 11851519, 11851523, 11851523,&
97 11851529, 11851529, 11851547, 11851547, 11851549, 11851549,&
98 11851559, 11851559, 11851577, 11851577, 11851589, 11851589,&
99 11851591, 11851591, 11851597, 11851597, 11851603, 11851603 /
100 data (iparam(1,i),iparam(2,i),i= 240, 269) / &
101 11851607, 11851607, 11851613, 11851613, 11851621, 11851621,&
102 11851627, 11851627, 11851639, 11851639, 11851673, 11851673,&
103 11851681, 11851681, 11851727, 11851727, 11851753, 11851753,&
104 11851759, 11851759, 11851787, 11851787, 11851793, 11851793,&
105 11851799, 11851799, 11851813, 11851813, 11851841, 11851841,&
106 11851859, 11851859, 11851867, 11851867, 11851891, 11851891,&
107 11851909, 11851909, 11851919, 11851919, 11851927, 11851927,&
108 11851933, 11851933, 11851949, 11851949, 11851967, 11851967,&
109 11851997, 11851997, 11852017, 11852017, 11852051, 11852051,&
110 11852053, 11852053, 11852059, 11852059, 11852083, 11852083 /
111 data (iparam(1,i),iparam(2,i),i= 270, 299) / &
112 11852089, 11852089, 11852129, 11852129, 11852147, 11852147,&
113 11852149, 11852149, 11852161, 11852161, 11852171, 11852171,&
114 11852177, 11852177, 11852209, 11852209, 11852221, 11852221,&
115 11852237, 11852237, 11852251, 11852251, 11852263, 11852263,&
116 11852273, 11852273, 11852279, 11852279, 11852287, 11852287,&
117 11852293, 11852293, 11852297, 11852297, 11852303, 11852303,&
118 11852311, 11852311, 11852327, 11852327, 11852339, 11852339,&
119 11852341, 11852341, 11852359, 11852359, 11852369, 11852369,&
120 11852437, 11852437, 11852453, 11852453, 11852459, 11852459,&
121 11852473, 11852473, 11852513, 11852513, 11852531, 11852531 /
122 data (iparam(1,i),iparam(2,i),i= 300, 329) / &
123 11852537, 11852537, 11852539, 11852539, 11852557, 11852557,&
124 11852573, 11852573, 11852579, 11852579, 11852591, 11852591,&
125 11852609, 11852609, 11852611, 11852611, 11852623, 11852623,&
126 11852641, 11852641, 11852647, 11852647, 11852657, 11852657,&
127 11852663, 11852663, 11852717, 11852717, 11852719, 11852719,&
128 11852741, 11852741, 11852759, 11852759, 11852767, 11852767,&
129 11852773, 11852773, 11852803, 11852803, 11852807, 11852807,&
130 11852809, 11852809, 11852831, 11852831, 11852833, 11852833,&
131 11852837, 11852837, 11852857, 11852857, 11852873, 11852873,&
132 11852879, 11852879, 11852891, 11852891, 11852917, 11852917 /
133 data (iparam(1,i),iparam(2,i),i= 330, 359) / &
134 11852921, 11852921, 11852957, 11852957, 11852959, 11852959,&
135 11852969, 11852969, 11852983, 11852983, 11852989, 11852989,&
136 11853001, 11853001, 11853013, 11853013, 11853019, 11853019,&
137 11853031, 11853031, 11853089, 11853089, 11853133, 11853133,&
138 11853157, 11853157, 11853161, 11853161, 11853181, 11853181,&
139 11853203, 11853203, 11853217, 11853217, 11853221, 11853221,&
140 11853227, 11853227, 11853241, 11853241, 11853307, 11853307,&
141 11853319, 11853319, 11853323, 11853323, 11853329, 11853329,&
142 11853367, 11853367, 11853383, 11853383, 11853419, 11853419,&
143 11853421, 11853421, 11853427, 11853427, 11853449, 11853449 /
144 data (iparam(1,i),iparam(2,i),i= 360, 389) / &
145 11853451, 11853451, 11853463, 11853463, 11853529, 11853529,&
146 11853557, 11853557, 11853571, 11853571, 11853601, 11853601,&
147 11853613, 11853613, 11853617, 11853617, 11853629, 11853629,&
148 11853649, 11853649, 11853659, 11853659, 11853679, 11853679,&
149 11853689, 11853689, 11853719, 11853719, 11853731, 11853731,&
150 11853757, 11853757, 11853761, 11853761, 11853773, 11853773,&
151 11853791, 11853791, 11853817, 11853817, 11853839, 11853839,&
152 11853847, 11853847, 11853857, 11853857, 11853869, 11853869,&
153 11853883, 11853883, 11853887, 11853887, 11853889, 11853889,&
154 11853893, 11853893, 11853899, 11853899, 11853911, 11853911 /
155 data (iparam(1,i),iparam(2,i),i= 390, 419) / &
156 11853931, 11853931, 11853943, 11853943, 11853979, 11853979,&
157 11853991, 11853991, 11854001, 11854001, 11854009, 11854009,&
158 11854019, 11854019, 11854057, 11854057, 11854061, 11854061,&
159 11854147, 11854147, 11854159, 11854159, 11854163, 11854163,&
160 11854169, 11854169, 11854211, 11854211, 11854247, 11854247,&
161 11854261, 11854261, 11854267, 11854267, 11854279, 11854279,&
162 11854303, 11854303, 11854327, 11854327, 11854331, 11854331,&
163 11854333, 11854333, 11854363, 11854363, 11854379, 11854379,&
164 11854399, 11854399, 11854411, 11854411, 11854429, 11854429,&
165 11854433, 11854433, 11854439, 11854439, 11854441, 11854441 /
166 data (iparam(1,i),iparam(2,i),i= 420, 449) / &
167 11854463, 11854463, 11854477, 11854477, 11854489, 11854489,&
168 11854517, 11854517, 11854519, 11854519, 11854523, 11854523,&
169 11854529, 11854529, 11854567, 11854567, 11854571, 11854571,&
170 11854573, 11854573, 11854603, 11854603, 11854607, 11854607,&
171 11854681, 11854681, 11854691, 11854691, 11854709, 11854709,&
172 11854723, 11854723, 11854757, 11854757, 11854783, 11854783,&
173 11854793, 11854793, 11854813, 11854813, 11854847, 11854847,&
174 11854853, 11854853, 11854873, 11854873, 11854877, 11854877,&
175 11854883, 11854883, 11854891, 11854891, 11854897, 11854897,&
176 11854901, 11854901, 11854919, 11854919, 11854937, 11854937 /
177 data (iparam(1,i),iparam(2,i),i= 450, 479) / &
178 11854961, 11854961, 11854963, 11854963, 11854979, 11854979,&
179 11855003, 11855003, 11855017, 11855017, 11855023, 11855023,&
180 11855029, 11855029, 11855033, 11855033, 11855111, 11855111,&
181 11855141, 11855141, 11855147, 11855147, 11855149, 11855149,&
182 11855159, 11855159, 11855177, 11855177, 11855203, 11855203,&
183 11855213, 11855213, 11855219, 11855219, 11855231, 11855231,&
184 11855267, 11855267, 11855269, 11855269, 11855303, 11855303,&
185 11855309, 11855309, 11855321, 11855321, 11855329, 11855329,&
186 11855339, 11855339, 11855351, 11855351, 11855353, 11855353,&
187 11855357, 11855357, 11855359, 11855359, 11855381, 11855381 /
188 data (iparam(1,i),iparam(2,i),i= 480, 509) / &
189 11855383, 11855383, 11855387, 11855387, 11855399, 11855399,&
190 11855407, 11855407, 11855413, 11855413, 11855489, 11855489,&
191 11855491, 11855491, 11855507, 11855507, 11855521, 11855521,&
192 11855531, 11855531, 11855549, 11855549, 11855551, 11855551,&
193 11855567, 11855567, 11855581, 11855581, 11855587, 11855587,&
194 11855593, 11855593, 11855633, 11855633, 11855653, 11855653,&
195 11855663, 11855663, 11855687, 11855687, 11855689, 11855689,&
196 11855699, 11855699, 11855713, 11855713, 11855731, 11855731,&
197 11855737, 11855737, 11855743, 11855743, 11855747, 11855747,&
198 11855759, 11855759, 11855773, 11855773, 11855801, 11855801 /
199 data (iparam(1,i),iparam(2,i),i= 510, 539) / &
200 11855807, 11855807, 11855813, 11855813, 11855827, 11855827,&
201 11855839, 11855839, 11855869, 11855869, 11855881, 11855881,&
202 11855903, 11855903, 11855911, 11855911, 11855933, 11855933,&
203 11855959, 11855959, 11855989, 11855989, 11855993, 11855993,&
204 11855999, 11855999, 11856001, 11856001, 11856023, 11856023,&
205 11856049, 11856049, 11856071, 11856071, 11856101, 11856101,&
206 11856107, 11856107, 11856113, 11856113, 11856139, 11856139,&
207 11856151, 11856151, 11856161, 11856161, 11856179, 11856179,&
208 11856193, 11856193, 11856199, 11856199, 11856223, 11856223,&
209 11856239, 11856239, 11856263, 11856263, 11856269, 11856269 /
210 data (iparam(1,i),iparam(2,i),i= 540, 569) / &
211 11856281, 11856281, 11856287, 11856287, 11856307, 11856307,&
212 11856311, 11856311, 11856329, 11856329, 11856343, 11856343,&
213 11856359, 11856359, 11856371, 11856371, 11856373, 11856373,&
214 11856409, 11856409, 11856419, 11856419, 11856461, 11856461,&
215 11856469, 11856469, 11856473, 11856473, 11856479, 11856479,&
216 11856511, 11856511, 11856517, 11856517, 11856541, 11856541,&
217 11856547, 11856547, 11856553, 11856553, 11856583, 11856583,&
218 11856629, 11856629, 11856641, 11856641, 11856653, 11856653,&
219 11856659, 11856659, 11856673, 11856673, 11856697, 11856697,&
220 11856709, 11856709, 11856727, 11856727, 11856731, 11856731 /
221 data (iparam(1,i),iparam(2,i),i= 570, 599) / &
222 11856763, 11856763, 11856809, 11856809, 11856811, 11856811,&
223 11856821, 11856821, 11856841, 11856841, 11856857, 11856857,&
224 11856877, 11856877, 11856883, 11856883, 11856899, 11856899,&
225 11856919, 11856919, 11856947, 11856947, 11856953, 11856953,&
226 11856979, 11856979, 11857003, 11857003, 11857033, 11857033,&
227 11857037, 11857037, 11857039, 11857039, 11857049, 11857049,&
228 11857061, 11857061, 11857067, 11857067, 11857073, 11857073,&
229 11857081, 11857081, 11857091, 11857091, 11857093, 11857093,&
230 11857099, 11857099, 11857123, 11857123, 11857127, 11857127,&
231 11857147, 11857147, 11857151, 11857151, 11857193, 11857193 /
232 data (iparam(1,i),iparam(2,i),i= 600, 629) / &
233 11857217, 11857217, 11857229, 11857229, 11857243, 11857243,&
234 11857249, 11857249, 11857267, 11857267, 11857277, 11857277,&
235 11857291, 11857291, 11857303, 11857303, 11857309, 11857309,&
236 11857327, 11857327, 11857331, 11857331, 11857333, 11857333,&
237 11857361, 11857361, 11857367, 11857367, 11857369, 11857369,&
238 11857393, 11857393, 11857399, 11857399, 11857409, 11857409,&
239 11857421, 11857421, 11857423, 11857423, 11857451, 11857451,&
240 11857453, 11857453, 11857457, 11857457, 11857477, 11857477,&
241 11857481, 11857481, 11857493, 11857493, 11857499, 11857499,&
242 11857519, 11857519, 11857523, 11857523, 11857529, 11857529 /
243 data (iparam(1,i),iparam(2,i),i= 630, 659) / &
244 11857543, 11857543, 11857561, 11857561, 11857589, 11857589,&
245 11857591, 11857591, 11857613, 11857613, 11857621, 11857621,&
246 11857661, 11857661, 11857667, 11857667, 11857693, 11857693,&
247 11857697, 11857697, 11857709, 11857709, 11857711, 11857711,&
248 11857751, 11857751, 11857753, 11857753, 11857759, 11857759,&
249 11857763, 11857763, 11857777, 11857777, 11857787, 11857787,&
250 11857793, 11857793, 11857801, 11857801, 11857817, 11857817,&
251 11857819, 11857819, 11857831, 11857831, 11857837, 11857837,&
252 11857873, 11857873, 11857877, 11857877, 11857883, 11857883,&
253 11857889, 11857889, 11857907, 11857907, 11857913, 11857913 /
254 data (iparam(1,i),iparam(2,i),i= 660, 689) / &
255 11857931, 11857931, 11857969, 11857969, 11857991, 11857991,&
256 11857999, 11857999, 11858009, 11858009, 11858017, 11858017,&
257 11858023, 11858023, 11858029, 11858029, 11858039, 11858039,&
258 11858051, 11858051, 11858057, 11858057, 11858059, 11858059,&
259 11858101, 11858101, 11858111, 11858111, 11858131, 11858131,&
260 11858149, 11858149, 11858159, 11858159, 11858177, 11858177,&
261 11858191, 11858191, 11858201, 11858201, 11858227, 11858227,&
262 11858243, 11858243, 11858267, 11858267, 11858269, 11858269,&
263 11858279, 11858279, 11858281, 11858281, 11858291, 11858291,&
264 11858311, 11858311, 11858323, 11858323, 11858359, 11858359 /
265 data (iparam(1,i),iparam(2,i),i= 690, 719) / &
266 11858377, 11858377, 11858381, 11858381, 11858387, 11858387,&
267 11858423, 11858423, 11858443, 11858443, 11858447, 11858447,&
268 11858479, 11858479, 11858533, 11858533, 11858543, 11858543,&
269 11858551, 11858551, 11858557, 11858557, 11858569, 11858569,&
270 11858573, 11858573, 11858579, 11858579, 11858597, 11858597,&
271 11858599, 11858599, 11858629, 11858629, 11858657, 11858657,&
272 11858659, 11858659, 11858683, 11858683, 11858701, 11858701,&
273 11858719, 11858719, 11858723, 11858723, 11858729, 11858729,&
274 11858747, 11858747, 11858779, 11858779, 11858783, 11858783,&
275 11858801, 11858801, 11858807, 11858807, 11858813, 11858813 /
276 data (iparam(1,i),iparam(2,i),i= 720, 749) / &
277 11858839, 11858839, 11858851, 11858851, 11858893, 11858893,&
278 11858897, 11858897, 11858921, 11858921, 11858947, 11858947,&
279 11858953, 11858953, 11858969, 11858969, 11858971, 11858971,&
280 11858989, 11858989, 11859017, 11859017, 11859031, 11859031,&
281 11859049, 11859049, 11859061, 11859061, 11859073, 11859073,&
282 11859077, 11859077, 11859079, 11859079, 11859083, 11859083,&
283 11859101, 11859101, 11859109, 11859109, 11859137, 11859137,&
284 11859139, 11859139, 11859151, 11859151, 11859157, 11859157,&
285 11859163, 11859163, 11859167, 11859167, 11859179, 11859179,&
286 11859187, 11859187, 11859229, 11859229, 11859233, 11859233 /
287 data (iparam(1,i),iparam(2,i),i= 750, 779) / &
288 11859241, 11859241, 11859247, 11859247, 11859269, 11859269,&
289 11859293, 11859293, 11859307, 11859307, 11859311, 11859311,&
290 11859349, 11859349, 11859359, 11859359, 11859371, 11859371,&
291 11859377, 11859377, 11859383, 11859383, 11859427, 11859427,&
292 11859433, 11859433, 11859451, 11859451, 11859457, 11859457,&
293 11859461, 11859461, 11859473, 11859473, 11859481, 11859481,&
294 11859487, 11859487, 11859493, 11859493, 11859503, 11859503,&
295 11859509, 11859509, 11859539, 11859539, 11859541, 11859541,&
296 11859563, 11859563, 11859569, 11859569, 11859571, 11859571,&
297 11859583, 11859583, 11859599, 11859599, 11859611, 11859611 /
298 data (iparam(1,i),iparam(2,i),i= 780, 809) / &
299 11859643, 11859643, 11859707, 11859707, 11859713, 11859713,&
300 11859719, 11859719, 11859739, 11859739, 11859751, 11859751,&
301 11859791, 11859791, 11859817, 11859817, 11859821, 11859821,&
302 11859833, 11859833, 11859847, 11859847, 11859853, 11859853,&
303 11859877, 11859877, 11859889, 11859889, 11859893, 11859893,&
304 11859901, 11859901, 11859907, 11859907, 11859917, 11859917,&
305 11859923, 11859923, 11859929, 11859929, 11859961, 11859961,&
306 11859979, 11859979, 11859989, 11859989, 11859997, 11859997,&
307 11860021, 11860021, 11860031, 11860031, 11860039, 11860039,&
308 11860049, 11860049, 11860081, 11860081, 11860087, 11860087 /
309 data (iparam(1,i),iparam(2,i),i= 810, 839) / &
310 11860097, 11860097, 11860103, 11860103, 11860109, 11860109,&
311 11860117, 11860117, 11860133, 11860133, 11860151, 11860151,&
312 11860171, 11860171, 11860207, 11860207, 11860223, 11860223,&
313 11860231, 11860231, 11860243, 11860243, 11860267, 11860267,&
314 11860301, 11860301, 11860307, 11860307, 11860327, 11860327,&
315 11860379, 11860379, 11860397, 11860397, 11860411, 11860411,&
316 11860469, 11860469, 11860477, 11860477, 11860483, 11860483,&
317 11860487, 11860487, 11860489, 11860489, 11860493, 11860493,&
318 11860517, 11860517, 11860547, 11860547, 11860567, 11860567,&
319 11860573, 11860573, 11860613, 11860613, 11860619, 11860619 /
320 data (iparam(1,i),iparam(2,i),i= 840, 869) / &
321 11860627, 11860627, 11860637, 11860637, 11860643, 11860643,&
322 11860649, 11860649, 11860661, 11860661, 11860669, 11860669,&
323 11860687, 11860687, 11860691, 11860691, 11860697, 11860697,&
324 11860699, 11860699, 11860703, 11860703, 11860727, 11860727,&
325 11860741, 11860741, 11860753, 11860753, 11860777, 11860777,&
326 11860787, 11860787, 11860789, 11860789, 11860811, 11860811,&
327 11860837, 11860837, 11860859, 11860859, 11860867, 11860867,&
328 11860889, 11860889, 11860897, 11860897, 11860963, 11860963,&
329 11860969, 11860969, 11860973, 11860973, 11860993, 11860993,&
330 11861011, 11861011, 11861033, 11861033, 11861071, 11861071 /
331 data (iparam(1,i),iparam(2,i),i= 870, 899) / &
332 11861081, 11861081, 11861089, 11861089, 11861093, 11861093,&
333 11861099, 11861099, 11861107, 11861107, 11861131, 11861131,&
334 11861141, 11861141, 11861159, 11861159, 11861167, 11861167,&
335 11861191, 11861191, 11861197, 11861197, 11861207, 11861207,&
336 11861219, 11861219, 11861221, 11861221, 11861231, 11861231,&
337 11861237, 11861237, 11861273, 11861273, 11861293, 11861293,&
338 11861299, 11861299, 11861303, 11861303, 11861327, 11861327,&
339 11861351, 11861351, 11861357, 11861357, 11861363, 11861363,&
340 11861371, 11861371, 11861401, 11861401, 11861407, 11861407,&
341 11861411, 11861411, 11861413, 11861413, 11861429, 11861429 /
342 data (iparam(1,i),iparam(2,i),i= 900, 929) / &
343 11861441, 11861441, 11861467, 11861467, 11861527, 11861527,&
344 11861539, 11861539, 11861543, 11861543, 11861557, 11861557,&
345 11861569, 11861569, 11861573, 11861573, 11861579, 11861579,&
346 11861581, 11861581, 11861599, 11861599, 11861611, 11861611,&
347 11861617, 11861617, 11861627, 11861627, 11861639, 11861639,&
348 11861651, 11861651, 11861659, 11861659, 11861671, 11861671,&
349 11861683, 11861683, 11861687, 11861687, 11861693, 11861693,&
350 11861701, 11861701, 11861711, 11861711, 11861713, 11861713,&
351 11861749, 11861749, 11861791, 11861791, 11861803, 11861803,&
352 11861819, 11861819, 11861827, 11861827, 11861849, 11861849 /
353 data (iparam(1,i),iparam(2,i),i= 930, 959) / &
354 11861873, 11861873, 11861879, 11861879, 11861887, 11861887,&
355 11861911, 11861911, 11861917, 11861917, 11861921, 11861921,&
356 11861923, 11861923, 11861953, 11861953, 11861959, 11861959,&
357 11861987, 11861987, 11862007, 11862007, 11862013, 11862013,&
358 11862029, 11862029, 11862031, 11862031, 11862049, 11862049,&
359 11862077, 11862077, 11862083, 11862083, 11862157, 11862157,&
360 11862167, 11862167, 11862199, 11862199, 11862203, 11862203,&
361 11862217, 11862217, 11862223, 11862223, 11862229, 11862229,&
362 11862233, 11862233, 11862239, 11862239, 11862241, 11862241,&
363 11862259, 11862259, 11862269, 11862269, 11862271, 11862271 /
364 data (iparam(1,i),iparam(2,i),i= 960, 989) / &
365 11862293, 11862293, 11862307, 11862307, 11862313, 11862313,&
366 11862317, 11862317, 11862343, 11862343, 11862353, 11862353,&
367 11862373, 11862373, 11862391, 11862391, 11862439, 11862439,&
368 11862469, 11862469, 11862493, 11862493, 11862527, 11862527,&
369 11862547, 11862547, 11862563, 11862563, 11862569, 11862569,&
370 11862577, 11862577, 11862581, 11862581, 11862611, 11862611,&
371 11862623, 11862623, 11862661, 11862661, 11862673, 11862673,&
372 11862679, 11862679, 11862701, 11862701, 11862703, 11862703,&
373 11862713, 11862713, 11862761, 11862761, 11862791, 11862791,&
374 11862803, 11862803, 11862839, 11862839, 11862841, 11862841 /
375 data (iparam(1,i),iparam(2,i),i= 990,1019) / &
376 11862857, 11862857, 11862869, 11862869, 11862881, 11862881,&
377 11862911, 11862911, 11862919, 11862919, 11862959, 11862959,&
378 11862979, 11862979, 11862989, 11862989, 11862997, 11862997,&
379 11863021, 11863021, 11863031, 11863031, 11863037, 11863037,&
380 11863039, 11863039, 11863057, 11863057, 11863067, 11863067,&
381 11863073, 11863073, 11863099, 11863099, 11863109, 11863109,&
382 11863121, 11863121, 11863123, 11863123, 11863133, 11863133,&
383 11863151, 11863151, 11863153, 11863153, 11863171, 11863171,&
384 11863183, 11863183, 11863207, 11863207, 11863213, 11863213,&
385 11863237, 11863237, 11863249, 11863249, 11863253, 11863253 /
386 data (iparam(1,i),iparam(2,i),i=1020,1021) / &
387 11863259, 11863259, 11863279, 11863279 /
389 !-----------------------------------------------------------------------------
393 ! Sequence of prime numbers represented as pairs of 16-bit integers
394 ! modulo 2**16, obtained from Mal Kalos August 28, 1992. Only 98
395 ! continuation cards are allowed by ksr Fortran, so several DATA
396 ! statements are used to initialize 1022 generators.
398 ! @cornell university, 1992
400 integer,parameter :: nmax=1021,nmax1=2*nmax+2
401 integer,dimension(16,0:nmax) :: l,n
402 integer,private :: i,j
403 ! common/ksrprng/l(16,0:nmax),n(16,0:nmax)
404 !*ksr*subpage /ksrprng/
406 ! High order quads in arrays "l" and "n" are initialized to zero : rows 1-2
407 ! Rows 5-16 remain uninitialized. They are just pads, never used.
408 DATA ((l(i,j),i=1,2),j=0,nmax)/nmax1*0.0/
409 DATA ((n(i,j),i=1,2),j=0,nmax)/nmax1*0.0/
411 ! The rest of array "l" and "n" are initialized to a 20-bit seed
412 DATA ((l(i,j),i=3,4),j=0,489)/ &
413 180, 51739,180, 51757,180, 51761,180, 51767,180,51773,&
414 180, 51791,180, 51817,180, 51833,180, 51859,180, 51871,&
415 180, 51877,180, 51883,180, 51887,180, 51893,180, 51899,&
416 180, 51913,180, 51953,180, 51971,180, 51989,180, 51997,&
417 180, 52009,180, 52013,180, 52033,180, 52043,180, 52051,&
418 180, 52057,180, 52073,180, 52109,180, 52111,180, 52121,&
419 180, 52139,180, 52157,180, 52183,180, 52193,180, 52199,&
420 180, 52211,180, 52219,180, 52229,180, 52237,180, 52241,&
421 180, 52249,180, 52261,180, 52271,180, 52277,180, 52307,&
422 180, 52321,180, 52349,180, 52373,180, 52381,180, 52387,&
423 180, 52393,180, 52411,180, 52429,180, 52439,180, 52451,&
424 180, 52457,180, 52481,180, 52501,180, 52541,180, 52559,&
425 180, 52573,180, 52579,180, 52589,180, 52597,180, 52607,&
426 180, 52613,180, 52627,180, 52631,180, 52649,180, 52657,&
427 180, 52697,180, 52703,180, 52723,180, 52751,180, 52757,&
428 180, 52759,180, 52769,180, 52771,180, 52789,180, 52793,&
429 180, 52811,180, 52817,180, 52829,180, 52859,180, 52879,&
430 180, 52883,180, 52919,180, 52921,180, 52933,180, 52937,&
431 180, 52957,180, 52963,180, 52993,180, 53011,180, 53023,&
432 180, 53027,180, 53077,180, 53087,180, 53089,180, 53093,&
433 180, 53107,180, 53119,180, 53153,180, 53161,180, 53173,&
434 180, 53179,180, 53191,180, 53203,180, 53209,180, 53213,&
435 180, 53219,180, 53221,180, 53227,180, 53233,180, 53243,&
436 180, 53261,180, 53263,180, 53279,180, 53287,180, 53291,&
437 180, 53311,180, 53321,180, 53329,180, 53333,180, 53389,&
438 180, 53401,180, 53411,180, 53429,180, 53443,180, 53453,&
439 180, 53467,180, 53507,180, 53521,180, 53531,180, 53539,&
440 180, 53543,180, 53551,180, 53569,180, 53581,180, 53593,&
441 180, 53597,180, 53623,180, 53629,180, 53641,180, 53647,&
442 180, 53653,180, 53669,180, 53681,180, 53689,180, 53711,&
443 180, 53753,180, 53767,180, 53779,180, 53789,180, 53803,&
444 180, 53821,180, 53861,180, 53867,180, 53887,180, 53893,&
445 180, 53899,180, 53909,180, 53927,180, 53947,180, 53957,&
446 180, 53989,180, 54001,180, 54031,180, 54049,180, 54061,&
447 180, 54077,180, 54127,180, 54131,180, 54187,180, 54197,&
448 180, 54199,180, 54221,180, 54251,180, 54259,180, 54269,&
449 180, 54311,180, 54323,180, 54349,180, 54353,180, 54379,&
450 180, 54397,180, 54419,180, 54427,180, 54433,180, 54439,&
451 180, 54451,180, 54461,180, 54467,180, 54473,180, 54481,&
452 180, 54503,180, 54511,180, 54517,180, 54551,180, 54553,&
453 180, 54571,180, 54581,180, 54587,180, 54613,180, 54629,&
454 180, 54643,180, 54647,180, 54659,180, 54677,180, 54683,&
455 180, 54701,180, 54721,180, 54739,180, 54811,180, 54823,&
456 180, 54829,180, 54833,180, 54839,180, 54869,180, 54871,&
457 180, 54881,180, 54893,180, 54923,180, 54929,180, 54943,&
458 180, 54967,180, 54971,180, 55001,180, 55013,180, 55039,&
459 180, 55043,180, 55049,180, 55067,180, 55069,180, 55079,&
460 180, 55097,180, 55109,180, 55111,180, 55117,180, 55123,&
461 180, 55127,180, 55133,180, 55141,180, 55147,180, 55159,&
462 180, 55193,180, 55201,180, 55247,180, 55273,180, 55279,&
463 180, 55307,180, 55313,180, 55319,180, 55333,180, 55361,&
464 180, 55379,180, 55387,180, 55411,180, 55429,180, 55439,&
465 180, 55447,180, 55453,180, 55469,180, 55487,180, 55517,&
466 180, 55537,180, 55571,180, 55573,180, 55579,180, 55603,&
467 180, 55609,180, 55649,180, 55667,180, 55669,180, 55681,&
468 180, 55691,180, 55697,180, 55729,180, 55741,180, 55757,&
469 180, 55771,180, 55783,180, 55793,180, 55799,180, 55807,&
470 180, 55813,180, 55817,180, 55823,180, 55831,180, 55847,&
471 180, 55859,180, 55861,180, 55879,180, 55889,180, 55957,&
472 180, 55973,180, 55979,180, 55993,180, 56033,180, 56051,&
473 180, 56057,180, 56059,180, 56077,180, 56093,180, 56099,&
474 180, 56111,180, 56129,180, 56131,180, 56143,180, 56161,&
475 180, 56167,180, 56177,180, 56183,180, 56237,180, 56239,&
476 180, 56261,180, 56279,180, 56287,180, 56293,180, 56323,&
477 180, 56327,180, 56329,180, 56351,180, 56353,180, 56357,&
478 180, 56377,180, 56393,180, 56399,180, 56411,180, 56437,&
479 180, 56441,180, 56477,180, 56479,180, 56489,180, 56503,&
480 180, 56509,180, 56521,180, 56533,180, 56539,180, 56551,&
481 180, 56609,180, 56653,180, 56677,180, 56681,180, 56701,&
482 180, 56723,180, 56737,180, 56741,180, 56747,180, 56761,&
483 180, 56827,180, 56839,180, 56843,180, 56849,180, 56887,&
484 180, 56903,180, 56939,180, 56941,180, 56947,180, 56969,&
485 180, 56971,180, 56983,180, 57049,180, 57077,180, 57091,&
486 180, 57121,180, 57133,180, 57137,180, 57149,180, 57169,&
487 180, 57179,180, 57199,180, 57209,180, 57239,180, 57251,&
488 180, 57277,180, 57281,180, 57293,180, 57311,180, 57337,&
489 180, 57359,180, 57367,180, 57377,180, 57389,180, 57403,&
490 180, 57407,180, 57409,180, 57413,180, 57419,180, 57431,&
491 180, 57451,180, 57463,180, 57499,180, 57511,180, 57521,&
492 180, 57529,180, 57539,180, 57577,180, 57581,180, 57667,&
493 180, 57679,180, 57683,180, 57689,180, 57731,180, 57767,&
494 180, 57781,180, 57787,180, 57799,180, 57823,180, 57847,&
495 180, 57851,180, 57853,180, 57883,180, 57899,180, 57919,&
496 180, 57931,180, 57949,180, 57953,180, 57959,180, 57961,&
497 180, 57983,180, 57997,180, 58009,180, 58037,180, 58039,&
498 180, 58043,180, 58049,180, 58087,180, 58091,180, 58093,&
499 180, 58123,180, 58127,180, 58201,180, 58211,180, 58229,&
500 180, 58243,180, 58277,180, 58303,180, 58313,180, 58333,&
501 180, 58367,180, 58373,180, 58393,180, 58397,180, 58403,&
502 180, 58411,180, 58417,180, 58421,180, 58439,180, 58457,&
503 180, 58481,180, 58483,180, 58499,180, 58523,180, 58537,&
504 180, 58543,180, 58549,180, 58553,180, 58631,180, 58661,&
505 180, 58667,180, 58669,180, 58679,180, 58697,180, 58723,&
506 180, 58733,180, 58739,180, 58751,180, 58787,180, 58789,&
507 180, 58823,180, 58829,180, 58841,180, 58849,180, 58859,&
508 180, 58871,180, 58873,180, 58877,180, 58879,180, 58901,&
509 180, 58903,180, 58907,180, 58919,180, 58927,180, 58933,&
510 180, 59009,180, 59011,180, 59027,180, 59041,180, 59051/
511 DATA ((l(i,j),i=3,4),j=490,979)/ &
512 180, 59069,180, 59071,180, 59087,180, 59101,180, 59107,&
513 180, 59113,180, 59153,180, 59173,180, 59183,180, 59207,&
514 180, 59209,180, 59219,180, 59233,180, 59251,180, 59257,&
515 180, 59263,180, 59267,180, 59279,180, 59293,180, 59321,&
516 180, 59327,180, 59333,180, 59347,180, 59359,180, 59389,&
517 180, 59401,180, 59423,180, 59431,180, 59453,180, 59479,&
518 180, 59509,180, 59513,180, 59519,180, 59521,180, 59543,&
519 180, 59569,180, 59591,180, 59621,180, 59627,180, 59633,&
520 180, 59659,180, 59671,180, 59681,180, 59699,180, 59713,&
521 180, 59719,180, 59743,180, 59759,180, 59783,180, 59789,&
522 180, 59801,180, 59807,180, 59827,180, 59831,180, 59849,&
523 180, 59863,180, 59879,180, 59891,180, 59893,180, 59929,&
524 180, 59939,180, 59981,180, 59989,180, 59993,180, 59999,&
525 180, 60031,180, 60037,180, 60061,180, 60067,180, 60073,&
526 180, 60103,180, 60149,180, 60161,180, 60173,180, 60179,&
527 180, 60193,180, 60217,180, 60229,180, 60247,180, 60251,&
528 180, 60283,180, 60329,180, 60331,180, 60341,180, 60361,&
529 180, 60377,180, 60397,180, 60403,180, 60419,180, 60439,&
530 180, 60467,180, 60473,180, 60499,180, 60523,180, 60553,&
531 180, 60557,180, 60559,180, 60569,180, 60581,180, 60587,&
532 180, 60593,180, 60601,180, 60611,180, 60613,180, 60619,&
533 180, 60643,180, 60647,180, 60667,180, 60671,180, 60713,&
534 180, 60737,180, 60749,180, 60763,180, 60769,180, 60787,&
535 180, 60797,180, 60811,180, 60823,180, 60829,180, 60847,&
536 180, 60851,180, 60853,180, 60881,180, 60887,180, 60889,&
537 180, 60913,180, 60919,180, 60929,180, 60941,180, 60943,&
538 180, 60971,180, 60973,180, 60977,180, 60997,180, 61001,&
539 180, 61013,180, 61019,180, 61039,180, 61043,180, 61049,&
540 180, 61063,180, 61081,180, 61109,180, 61111,180, 61133,&
541 180, 61141,180, 61181,180, 61187,180, 61213,180, 61217,&
542 180, 61229,180, 61231,180, 61271,180, 61273,180, 61279,&
543 180, 61283,180, 61297,180, 61307,180, 61313,180, 61321,&
544 180, 61337,180, 61339,180, 61351,180, 61357,180, 61393,&
545 180, 61397,180, 61403,180, 61409,180, 61427,180, 61433,&
546 180, 61451,180, 61489,180, 61511,180, 61519,180, 61529,&
547 180, 61537,180, 61543,180, 61549,180, 61559,180, 61571,&
548 180, 61577,180, 61579,180, 61621,180, 61631,180, 61651,&
549 180, 61669,180, 61679,180, 61697,180, 61711,180, 61721,&
550 180, 61747,180, 61763,180, 61787,180, 61789,180, 61799,&
551 180, 61801,180, 61811,180, 61831,180, 61843,180, 61879,&
552 180, 61897,180, 61901,180, 61907,180, 61943,180, 61963,&
553 180, 61967,180, 61999,180, 62053,180, 62063,180, 62071,&
554 180, 62077,180, 62089,180, 62093,180, 62099,180, 62117,&
555 180, 62119,180, 62149,180, 62177,180, 62179,180, 62203,&
556 180, 62221,180, 62239,180, 62243,180, 62249,180, 62267,&
557 180, 62299,180, 62303,180, 62321,180, 62327,180, 62333,&
558 180, 62359,180, 62371,180, 62413,180, 62417,180, 62441,&
559 180, 62467,180, 62473,180, 62489,180, 62491,180, 62509,&
560 180, 62537,180, 62551,180, 62569,180, 62581,180, 62593,&
561 180, 62597,180, 62599,180, 62603,180, 62621,180, 62629,&
562 180, 62657,180, 62659,180, 62671,180, 62677,180, 62683,&
563 180, 62687,180, 62699,180, 62707,180, 62749,180, 62753,&
564 180, 62761,180, 62767,180, 62789,180, 62813,180, 62827,&
565 180, 62831,180, 62869,180, 62879,180, 62891,180, 62897,&
566 180, 62903,180, 62947,180, 62953,180, 62971,180, 62977,&
567 180, 62981,180, 62993,180, 63001,180, 63007,180, 63013,&
568 180, 63023,180, 63029,180, 63059,180, 63061,180, 63083,&
569 180, 63089,180, 63091,180, 63103,180, 63119,180, 63131,&
570 180, 63163,180, 63227,180, 63233,180, 63239,180, 63259,&
571 180, 63271,180, 63311,180, 63337,180, 63341,180, 63353,&
572 180, 63367,180, 63373,180, 63397,180, 63409,180, 63413,&
573 180, 63421,180, 63427,180, 63437,180, 63443,180, 63449,&
574 180, 63481,180, 63499,180, 63509,180, 63517,180, 63541,&
575 180, 63551,180, 63559,180, 63569,180, 63601,180, 63607,&
576 180, 63617,180, 63623,180, 63629,180, 63637,180, 63653,&
577 180, 63671,180, 63691,180, 63727,180, 63743,180, 63751,&
578 180, 63763,180, 63787,180, 63821,180, 63827,180, 63847,&
579 180, 63899,180, 63917,180, 63931,180, 63989,180, 63997,&
580 180, 64003,180, 64007,180, 64009,180, 64013,180, 64037,&
581 180, 64067,180, 64087,180, 64093,180, 64133,180, 64139,&
582 180, 64147,180, 64157,180, 64163,180, 64169,180, 64181,&
583 180, 64189,180, 64207,180, 64211,180, 64217,180, 64219,&
584 180, 64223,180, 64247,180, 64261,180, 64273,180, 64297,&
585 180, 64307,180, 64309,180, 64331,180, 64357,180, 64379,&
586 180, 64387,180, 64409,180, 64417,180, 64483,180, 64489,&
587 180, 64493,180, 64513,180, 64531,180, 64553,180, 64591,&
588 180, 64601,180, 64609,180, 64613,180, 64619,180, 64627,&
589 180, 64651,180, 64661,180, 64679,180, 64687,180, 64711,&
590 180, 64717,180, 64727,180, 64739,180, 64741,180, 64751,&
591 180, 64757,180, 64793,180, 64813,180, 64819,180, 64823,&
592 180, 64847,180, 64871,180, 64877,180, 64883,180, 64891,&
593 180, 64921,180, 64927,180, 64931,180, 64933,180, 64949,&
594 180, 64961,180, 64987,180, 65047,180, 65059,180, 65063,&
595 180, 65077,180, 65089,180, 65093,180, 65099,180, 65101,&
596 180, 65119,180, 65131,180, 65137,180, 65147,180, 65159,&
597 180, 65171,180, 65179,180, 65191,180, 65203,180, 65207,&
598 180, 65213,180, 65221,180, 65231,180, 65233,180, 65269,&
599 180, 65311,180, 65323,180, 65339,180, 65347,180, 65369,&
600 180, 65393,180, 65399,180, 65407,180, 65431,180, 65437,&
601 180, 65441,180, 65443,180, 65473,180, 65479,180, 65507,&
602 180, 65527,180, 65533,181, 13,181, 15,181, 33,&
603 181, 61,181, 67,181, 141,181, 151,181, 183,&
604 181, 187,181, 201,181, 207,181, 213,181, 217,&
605 181, 223,181, 225,181, 243,181, 253,181, 255,&
606 181, 277,181, 291,181, 297,181, 301,181, 327,&
607 181, 337,181, 357,181, 375,181, 423,181, 453,&
608 181, 477,181, 511,181, 531,181, 547,181, 553,&
609 181, 561,181, 565,181, 595,181, 607,181, 645/
610 DATA ((l(i,j),i=3,4),j=980,nmax)/ &
611 181, 657,181, 663,181, 685,181, 687,181, 697,&
612 181, 745,181, 775,181, 787,181, 823,181, 825,&
613 181, 841,181, 853,181, 865,181, 895,181, 903,&
614 181, 943,181, 963,181, 973,181, 981,181, 1005,&
615 181,1015,181,1021,181,1023,181,1041,181,1051,&
616 181, 1057,181, 1083,181, 1093,181, 1105,181, 1107,&
617 181, 1117,181, 1135,181, 1137,181, 1155,181, 1167,&
618 181, 1191,181, 1197,181, 1221,181, 1233,181, 1237,&
620 DATA ((n(i,j),i=3,4),j=0,489)/ &
621 180, 51739,180, 51757,180, 51761,180, 51767,180, 51773,&
622 180, 51791,180, 51817,180, 51833,180, 51859,180, 51871,&
623 180, 51877,180, 51883,180, 51887,180, 51893,180, 51899,&
624 180, 51913,180, 51953,180, 51971,180, 51989,180, 51997,&
625 180, 52009,180, 52013,180, 52033,180, 52043,180, 52051,&
626 180, 52057,180, 52073,180, 52109,180, 52111,180, 52121,&
627 180, 52139,180, 52157,180, 52183,180, 52193,180, 52199,&
628 180, 52211,180, 52219,180, 52229,180, 52237,180, 52241,&
629 180, 52249,180, 52261,180, 52271,180, 52277,180, 52307,&
630 180, 52321,180, 52349,180, 52373,180, 52381,180, 52387,&
631 180, 52393,180, 52411,180, 52429,180, 52439,180, 52451,&
632 180, 52457,180, 52481,180, 52501,180, 52541,180, 52559,&
633 180, 52573,180, 52579,180, 52589,180, 52597,180, 52607,&
634 180, 52613,180, 52627,180, 52631,180, 52649,180, 52657,&
635 180, 52697,180, 52703,180, 52723,180, 52751,180, 52757,&
636 180, 52759,180, 52769,180, 52771,180, 52789,180, 52793,&
637 180, 52811,180, 52817,180, 52829,180, 52859,180, 52879,&
638 180, 52883,180, 52919,180, 52921,180, 52933,180, 52937,&
639 180, 52957,180, 52963,180, 52993,180, 53011,180, 53023,&
640 180, 53027,180, 53077,180, 53087,180, 53089,180, 53093,&
641 180, 53107,180, 53119,180, 53153,180, 53161,180, 53173,&
642 180, 53179,180, 53191,180, 53203,180, 53209,180, 53213,&
643 180, 53219,180, 53221,180, 53227,180, 53233,180, 53243,&
644 180, 53261,180, 53263,180, 53279,180, 53287,180, 53291,&
645 180, 53311,180, 53321,180, 53329,180, 53333,180, 53389,&
646 180, 53401,180, 53411,180, 53429,180, 53443,180, 53453,&
647 180, 53467,180, 53507,180, 53521,180, 53531,180, 53539,&
648 180, 53543,180, 53551,180, 53569,180, 53581,180, 53593,&
649 180, 53597,180, 53623,180, 53629,180, 53641,180, 53647,&
650 180, 53653,180, 53669,180, 53681,180, 53689,180, 53711,&
651 180, 53753,180, 53767,180, 53779,180, 53789,180, 53803,&
652 180, 53821,180, 53861,180, 53867,180, 53887,180, 53893,&
653 180, 53899,180, 53909,180, 53927,180, 53947,180, 53957,&
654 180, 53989,180, 54001,180, 54031,180, 54049,180, 54061,&
655 180, 54077,180, 54127,180, 54131,180, 54187,180, 54197,&
656 180, 54199,180, 54221,180, 54251,180, 54259,180, 54269,&
657 180, 54311,180, 54323,180, 54349,180, 54353,180, 54379,&
658 180, 54397,180, 54419,180, 54427,180, 54433,180, 54439,&
659 180, 54451,180, 54461,180, 54467,180, 54473,180, 54481,&
660 180, 54503,180, 54511,180, 54517,180, 54551,180, 54553,&
661 180, 54571,180, 54581,180, 54587,180, 54613,180, 54629,&
662 180, 54643,180, 54647,180, 54659,180, 54677,180, 54683,&
663 180, 54701,180, 54721,180, 54739,180, 54811,180, 54823,&
664 180, 54829,180, 54833,180, 54839,180, 54869,180, 54871,&
665 180, 54881,180, 54893,180, 54923,180, 54929,180, 54943,&
666 180, 54967,180, 54971,180, 55001,180, 55013,180, 55039,&
667 180, 55043,180, 55049,180, 55067,180, 55069,180, 55079,&
668 180, 55097,180, 55109,180, 55111,180, 55117,180, 55123,&
669 180, 55127,180, 55133,180, 55141,180, 55147,180, 55159,&
670 180, 55193,180, 55201,180, 55247,180, 55273,180, 55279,&
671 180, 55307,180, 55313,180, 55319,180, 55333,180, 55361,&
672 180, 55379,180, 55387,180, 55411,180, 55429,180, 55439,&
673 180, 55447,180, 55453,180, 55469,180, 55487,180, 55517,&
674 180, 55537,180, 55571,180, 55573,180, 55579,180, 55603,&
675 180, 55609,180, 55649,180, 55667,180, 55669,180, 55681,&
676 180, 55691,180, 55697,180, 55729,180, 55741,180, 55757,&
677 180, 55771,180, 55783,180, 55793,180, 55799,180, 55807,&
678 180, 55813,180, 55817,180, 55823,180, 55831,180, 55847,&
679 180, 55859,180, 55861,180, 55879,180, 55889,180, 55957,&
680 180, 55973,180, 55979,180, 55993,180, 56033,180, 56051,&
681 180, 56057,180, 56059,180, 56077,180, 56093,180, 56099,&
682 180, 56111,180, 56129,180, 56131,180, 56143,180, 56161,&
683 180, 56167,180, 56177,180, 56183,180, 56237,180, 56239,&
684 180, 56261,180, 56279,180, 56287,180, 56293,180, 56323,&
685 180, 56327,180, 56329,180, 56351,180, 56353,180, 56357,&
686 180, 56377,180, 56393,180, 56399,180, 56411,180, 56437,&
687 180, 56441,180, 56477,180, 56479,180, 56489,180, 56503,&
688 180, 56509,180, 56521,180, 56533,180, 56539,180, 56551,&
689 180, 56609,180, 56653,180, 56677,180, 56681,180, 56701,&
690 180, 56723,180, 56737,180, 56741,180, 56747,180, 56761,&
691 180, 56827,180, 56839,180, 56843,180, 56849,180, 56887,&
692 180, 56903,180, 56939,180, 56941,180, 56947,180, 56969,&
693 180, 56971,180, 56983,180, 57049,180, 57077,180, 57091,&
694 180, 57121,180, 57133,180, 57137,180, 57149,180, 57169,&
695 180, 57179,180, 57199,180, 57209,180, 57239,180, 57251,&
696 180, 57277,180, 57281,180, 57293,180, 57311,180, 57337,&
697 180, 57359,180, 57367,180, 57377,180, 57389,180, 57403,&
698 180, 57407,180, 57409,180, 57413,180, 57419,180, 57431,&
699 180, 57451,180, 57463,180, 57499,180, 57511,180, 57521,&
700 180, 57529,180, 57539,180, 57577,180, 57581,180, 57667,&
701 180, 57679,180, 57683,180, 57689,180, 57731,180, 57767,&
702 180, 57781,180, 57787,180, 57799,180, 57823,180, 57847,&
703 180, 57851,180, 57853,180, 57883,180, 57899,180, 57919,&
704 180, 57931,180, 57949,180, 57953,180, 57959,180, 57961,&
705 180, 57983,180, 57997,180, 58009,180, 58037,180, 58039,&
706 180, 58043,180, 58049,180, 58087,180, 58091,180, 58093,&
707 180, 58123,180, 58127,180, 58201,180, 58211,180, 58229,&
708 180, 58243,180, 58277,180, 58303,180, 58313,180, 58333,&
709 180, 58367,180, 58373,180, 58393,180, 58397,180, 58403,&
710 180, 58411,180, 58417,180, 58421,180, 58439,180, 58457,&
711 180, 58481,180, 58483,180, 58499,180, 58523,180, 58537,&
712 180, 58543,180, 58549,180, 58553,180, 58631,180, 58661,&
713 180, 58667,180, 58669,180, 58679,180, 58697,180, 58723,&
714 180, 58733,180, 58739,180, 58751,180, 58787,180, 58789,&
715 180, 58823,180, 58829,180, 58841,180, 58849,180, 58859,&
716 180, 58871,180, 58873,180, 58877,180, 58879,180, 58901,&
717 180, 58903,180, 58907,180, 58919,180, 58927,180, 58933,&
718 180, 59009,180, 59011,180, 59027,180, 59041,180, 59051/
719 DATA ((n(i,j),i=3,4),j=490,979)/ &
720 180, 59069,180, 59071,180, 59087,180, 59101,180, 59107,&
721 180, 59113,180, 59153,180, 59173,180, 59183,180, 59207,&
722 180, 59209,180, 59219,180, 59233,180, 59251,180, 59257,&
723 180, 59263,180, 59267,180, 59279,180, 59293,180, 59321,&
724 180, 59327,180, 59333,180, 59347,180, 59359,180, 59389,&
725 180, 59401,180, 59423,180, 59431,180, 59453,180, 59479,&
726 180, 59509,180, 59513,180, 59519,180, 59521,180, 59543,&
727 180, 59569,180, 59591,180, 59621,180, 59627,180, 59633,&
728 180, 59659,180, 59671,180, 59681,180, 59699,180, 59713,&
729 180, 59719,180, 59743,180, 59759,180, 59783,180, 59789,&
730 180, 59801,180, 59807,180, 59827,180, 59831,180, 59849,&
731 180, 59863,180, 59879,180, 59891,180, 59893,180, 59929,&
732 180, 59939,180, 59981,180, 59989,180, 59993,180, 59999,&
733 180, 60031,180, 60037,180, 60061,180, 60067,180, 60073,&
734 180, 60103,180, 60149,180, 60161,180, 60173,180, 60179,&
735 180, 60193,180, 60217,180, 60229,180, 60247,180, 60251,&
736 180, 60283,180, 60329,180, 60331,180, 60341,180, 60361,&
737 180, 60377,180, 60397,180, 60403,180, 60419,180, 60439,&
738 180, 60467,180, 60473,180, 60499,180, 60523,180, 60553,&
739 180, 60557,180, 60559,180, 60569,180, 60581,180, 60587,&
740 180, 60593,180, 60601,180, 60611,180, 60613,180, 60619,&
741 180, 60643,180, 60647,180, 60667,180, 60671,180, 60713,&
742 180, 60737,180, 60749,180, 60763,180, 60769,180, 60787,&
743 180, 60797,180, 60811,180, 60823,180, 60829,180, 60847,&
744 180, 60851,180, 60853,180, 60881,180, 60887,180, 60889,&
745 180, 60913,180, 60919,180, 60929,180, 60941,180, 60943,&
746 180, 60971,180, 60973,180, 60977,180, 60997,180, 61001,&
747 180, 61013,180, 61019,180, 61039,180, 61043,180, 61049,&
748 180, 61063,180, 61081,180, 61109,180, 61111,180, 61133,&
749 180, 61141,180, 61181,180, 61187,180, 61213,180, 61217,&
750 180, 61229,180, 61231,180, 61271,180, 61273,180, 61279,&
751 180, 61283,180, 61297,180, 61307,180, 61313,180, 61321,&
752 180, 61337,180, 61339,180, 61351,180, 61357,180, 61393,&
753 180, 61397,180, 61403,180, 61409,180, 61427,180, 61433,&
754 180, 61451,180, 61489,180, 61511,180, 61519,180, 61529,&
755 180, 61537,180, 61543,180, 61549,180, 61559,180, 61571,&
756 180, 61577,180, 61579,180, 61621,180, 61631,180, 61651,&
757 180, 61669,180, 61679,180, 61697,180, 61711,180, 61721,&
758 180, 61747,180, 61763,180, 61787,180, 61789,180, 61799,&
759 180, 61801,180, 61811,180, 61831,180, 61843,180, 61879,&
760 180, 61897,180, 61901,180, 61907,180, 61943,180, 61963,&
761 180, 61967,180, 61999,180, 62053,180, 62063,180, 62071,&
762 180, 62077,180, 62089,180, 62093,180, 62099,180, 62117,&
763 180, 62119,180, 62149,180, 62177,180, 62179,180, 62203,&
764 180, 62221,180, 62239,180, 62243,180, 62249,180, 62267,&
765 180, 62299,180, 62303,180, 62321,180, 62327,180, 62333,&
766 180, 62359,180, 62371,180, 62413,180, 62417,180, 62441,&
767 180, 62467,180, 62473,180, 62489,180, 62491,180, 62509,&
768 180, 62537,180, 62551,180, 62569,180, 62581,180, 62593,&
769 180, 62597,180, 62599,180, 62603,180, 62621,180, 62629,&
770 180, 62657,180, 62659,180, 62671,180, 62677,180, 62683,&
771 180, 62687,180, 62699,180, 62707,180, 62749,180, 62753,&
772 180, 62761,180, 62767,180, 62789,180, 62813,180, 62827,&
773 180, 62831,180, 62869,180, 62879,180, 62891,180, 62897,&
774 180, 62903,180, 62947,180, 62953,180, 62971,180, 62977,&
775 180, 62981,180, 62993,180, 63001,180, 63007,180, 63013,&
776 180, 63023,180, 63029,180, 63059,180, 63061,180, 63083,&
777 180, 63089,180, 63091,180, 63103,180, 63119,180, 63131,&
778 180, 63163,180, 63227,180, 63233,180, 63239,180, 63259,&
779 180, 63271,180, 63311,180, 63337,180, 63341,180, 63353,&
780 180, 63367,180, 63373,180, 63397,180, 63409,180, 63413,&
781 180, 63421,180, 63427,180, 63437,180, 63443,180, 63449,&
782 180, 63481,180, 63499,180, 63509,180, 63517,180, 63541,&
783 180, 63551,180, 63559,180, 63569,180, 63601,180, 63607,&
784 180, 63617,180, 63623,180, 63629,180, 63637,180, 63653,&
785 180, 63671,180, 63691,180, 63727,180, 63743,180, 63751,&
786 180, 63763,180, 63787,180, 63821,180, 63827,180, 63847,&
787 180, 63899,180, 63917,180, 63931,180, 63989,180, 63997,&
788 180, 64003,180, 64007,180, 64009,180, 64013,180, 64037,&
789 180, 64067,180, 64087,180, 64093,180, 64133,180, 64139,&
790 180, 64147,180, 64157,180, 64163,180, 64169,180, 64181,&
791 180, 64189,180, 64207,180, 64211,180, 64217,180, 64219,&
792 180, 64223,180, 64247,180, 64261,180, 64273,180, 64297,&
793 180, 64307,180, 64309,180, 64331,180, 64357,180, 64379,&
794 180, 64387,180, 64409,180, 64417,180, 64483,180, 64489,&
795 180, 64493,180, 64513,180, 64531,180, 64553,180, 64591,&
796 180, 64601,180, 64609,180, 64613,180, 64619,180, 64627,&
797 180, 64651,180, 64661,180, 64679,180, 64687,180, 64711,&
798 180, 64717,180, 64727,180, 64739,180, 64741,180, 64751,&
799 180, 64757,180, 64793,180, 64813,180, 64819,180, 64823,&
800 180, 64847,180, 64871,180, 64877,180, 64883,180, 64891,&
801 180, 64921,180, 64927,180, 64931,180, 64933,180, 64949,&
802 180, 64961,180, 64987,180, 65047,180, 65059,180, 65063,&
803 180, 65077,180, 65089,180, 65093,180, 65099,180, 65101,&
804 180, 65119,180, 65131,180, 65137,180, 65147,180, 65159,&
805 180, 65171,180, 65179,180, 65191,180, 65203,180, 65207,&
806 180, 65213,180, 65221,180, 65231,180, 65233,180, 65269,&
807 180, 65311,180, 65323,180, 65339,180, 65347,180, 65369,&
808 180, 65393,180, 65399,180, 65407,180, 65431,180, 65437,&
809 180, 65441,180, 65443,180, 65473,180, 65479,180, 65507,&
810 180, 65527,180, 65533,181, 13,181, 15,181, 33,&
811 181, 61,181, 67,181, 141,181, 151,181, 183,&
812 181, 187,181, 201,181, 207,181, 213,181, 217,&
813 181, 223,181, 225,181, 243,181, 253,181, 255,&
814 181, 277,181, 291,181, 297,181, 301,181, 327,&
815 181, 337,181, 357,181, 375,181, 423,181, 453,&
816 181, 477,181, 511,181, 531,181, 547,181, 553,&
817 181, 561,181, 565,181, 595,181, 607,181, 645/
818 DATA ((n(i,j),i=3,4),j=980,nmax)/ &
819 181, 657,181, 663,181, 685,181, 687,181, 697,&
820 181, 745,181, 775,181, 787,181, 823,181, 825,&
821 181, 841,181, 853,181, 865,181, 895,181, 903,&
822 181, 943,181, 963,181, 973,181, 981,181, 1005,&
823 181, 1015,181, 1021,181, 1023,181, 1041,181, 1051,&
824 181, 1057,181, 1083,181, 1093,181, 1105,181, 1107,&
825 181, 1117,181, 1135,181, 1137,181, 1155,181, 1167,&
826 181, 1191,181, 1197,181, 1221,181, 1233,181, 1237,&
830 !-----------------------------------------------------------------------------
833 !-----------------------------------------------------------------------------
835 !-----------------------------------------------------------------------------
837 !-----------------------------------------------------------------------------
838 #if defined(AIX) || defined(AMD64)
839 real(kind=8) function prng_next(me)
844 ! <new random number> = prng_next ( <ordinal of generator desired> )
845 ! <vector of random #s> = vprng ( <ordinal>, <vector>, <length> )
847 ! This code is based on a sequential algorithm provided by Mal Kalos.
848 ! This version uses a single 64-bit word to store the initial seeds
849 ! and additive constants.
850 ! A 64-bit floating point number is returned.
852 ! The array "iparam" is full-word aligned, being padded by zeros to
853 ! let each generator be on a subpage boundary.
854 ! That is, rows 1 and 2 in a given column of the array are for real,
855 ! rows 3-16 are bogus.
857 ! July 12, 1993: double the number of sequences. We should have been
858 ! using two packets per seed, rather than four
859 ! October 31, 1993: merge the two arrays of seeds and constants,
860 ! and switch to 64-bit arithmetic.
861 ! June 1994: port to RS6K. Internal state is kept as 2 64-bit integers
862 ! The ishft function is defined only on 32-bit integers, so we will
863 ! shift numbers by dividing by 2**11 and then adding on 2**53-1.
865 ! November 1994: ishift now works on 64-bit numbers (though it gives a
866 ! warning). Thus we go back to using it. John Zollweg also added the
867 ! vprng() routine to return vectors of real*8 random numbers.
869 real(kind=8),parameter :: recip53 = 2.0D0**(-53)
870 integer(kind=8),parameter :: two = 2**11
871 integer(kind=8) :: m,ishift
872 ! parameter ( m = 34522712143931 ) ! 11**13
873 ! parameter ( ishift = 9007199254740991 ) ! 2**53-1
877 !EL parameter(nmax=1021)
878 !EL common/ksrprng/iparam(2,0:nmax)
880 integer(kind=8) :: next
882 !rc g77 doesn't support integer*8 constants
883 m = dint(34522712143931.0d0)
884 ishift = dint(9007199254740991.0d0)
885 if(me.gt.nmax) me=mod(me,nmax)
887 ! RS6K porting note: ishift now takes 64-bit integers , with a warning
888 if ( 0.le.me .and. me.le.nmax ) then
889 next = iparam(1,me)*m + iparam(2,me)
891 prng_next = recip53 * ishft( next, -11 )
896 end function prng_next
897 !-----------------------------------------------------------------------------
899 ! vprng(me, rn, num) Get a vector of random numbers
901 subroutine vprng(me,rn,num)
903 real(kind=8),parameter :: recip53 = 2.0D0**(-53)
904 real(kind=8),dimension(1) :: rn
908 ! parameter ( m = 34522712143931 ) ! 11**13
911 !EL parameter(nmax=1021)
912 !EL common/ksrprng/iparam(2,0:nmax)
914 integer(kind=8) :: next
916 !rc g77 doesn't support integer*8 constants
917 m = dint(34522712143931.0d0)
919 if ( 0.le.me .and. me.le.nmax ) then
921 next = iparam(1,me)*m + iparam(2,me)
923 rn(i) = recip53 * ishft( next, -11 )
930 !-----------------------------------------------------------------------------
932 ! prng_chkpnt Get the current state of a generator
935 ! logical prng_chkpnt, status
936 ! status = prng_chkpnt (me, iseed) where
938 ! me is the particular generator whose state is being gotten
939 ! seed is an 4-element integer array where the "l"-values will be saved
941 logical function prng_chkpnt(me,iseed)
944 integer(kind=8) :: iseed
948 !EL parameter(nmax=1021)
949 !EL common/ksrprng/iparam(2,0:nmax)
951 if (me .lt. 0 .or. me .gt. nmax) then
957 end function prng_chkpnt
958 !-----------------------------------------------------------------------------
960 ! prng_restart Restart generator from a saved state
963 ! logical prng_restart, status
964 ! status = prng_restart (me, iseed) where
966 ! me is the particular generator being restarted
967 ! iseed is a 8-byte integer containing the "l"-values
969 logical function prng_restart(me,iseed)
972 integer(kind=8) :: iseed
976 !EL parameter(nmax=1021)
977 !EL common/ksrprng/iparam(2,0:nmax)
979 if(me.gt.nmax) me=mod(me,nmax)
980 if (me .lt. 0 .or. me .gt. nmax) then
987 end function prng_restart
988 !-----------------------------------------------------------------------------
990 real(kind=4) function prng_next(me)
991 !rc logical prng_restart, prng_chkpnt
994 ! <new random number> = prng_next ( <ordinal of generator desired> )
996 ! This code is based on a sequential algorithm provided by Mal Kalos.
997 ! This version uses 4 16-bit packets, and uses a block data common
998 ! area for the initial seeds and constants. A 64-bit floating point
999 ! number is returned.
1001 ! The arrays "l" and "n" are full-word aligned, being padded by zeros
1002 ! That is, rows 1-4 in a given column are for real, rows 5-16 are bogus
1004 ! July 12, 1993: double the number of sequences. We should have been
1005 ! using two packets per seed, rather than four
1007 real(kind=4),parameter :: tpm12 = 1.d0/65536.d0
1008 integer,dimension(4) :: iseed
1010 !EL parameter(nmax=1021)
1012 !el integer,dimension(16,0:nmax) :: l,n
1013 !EL common/ksrprng/l(16,0:nmax),n(16,0:nmax)
1014 !*ksr*subpage /ksrprng/
1015 integer :: m1,m2,m3,m4,l1,l2,l3,l4,i1,i2,i3,i4
1016 data m1,m2,m3,m4 / 0, 8037, 61950, 30779/
1017 if (me .lt. 0 .or. me .gt. nmax) then
1025 i1=l1*m4+l2*m3+l3*m2+l4*m1 + n(1,me)
1026 i2=l2*m4+l3*m3+l4*m2 + n(2,me)
1027 i3=l3*m4+l4*m3 + n(3,me)
1034 l1=and(i1+ishft(i2,-16),65535)
1035 prng_next=tpm12*(l1+tpm12*(l2+tpm12*(l3+tpm12*l4)))
1041 end function prng_next
1042 !-----------------------------------------------------------------------------
1044 ! prng_chkpnt Get the current state of a generator
1047 ! logical prng_chkpnt, status
1048 ! status = prng_chkpnt (me, iseed) where
1050 ! me is the particular generator whose state is being gotten
1051 ! seed is an 4-element integer array where the "l"-values will be saved
1053 !rc entry prng_chkpnt (me, iseed)
1054 logical function prng_chkpnt(me,iseed)
1055 integer,dimension(4) :: iseed
1057 !el parameter(nmax=1021)
1058 !el common/ksrprng/l(16,0:nmax),n(16,0:nmax)
1059 if (me .lt. 0 .or. me .gt. nmax) then
1069 end function prng_chkpnt
1070 !-----------------------------------------------------------------------------
1071 ! prng_restart Restart generator from a saved state
1074 ! logical prng_restart, status
1075 ! status = prng_restart (me, iseed) where
1077 ! me is the particular generator being restarted
1078 ! seed is an 4-element integer array containing the "l"-values
1080 !rc entry prng_restart (me, iseed)
1081 logical function prng_restart(me,iseed)
1083 integer,dimension(4) :: iseed
1085 !el parameter(nmax=1021)
1086 !el common/ksrprng/l(16,0:nmax),n(16,0:nmax)
1087 if (me .lt. 0 .or. me .gt. nmax) then
1088 prng_restart=.false.
1098 end function prng_restart
1100 !-----------------------------------------------------------------------------
1101 !-----------------------------------------------------------------------------