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