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