(git:374b731)
Loading...
Searching...
No Matches
hfx_compression_core_methods.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2024 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \brief Contains routines for data compression. PLEASE DO NOT MODIFY.
10!> \par History
11!> 04.2008 created [Manuel Guidon]
12!> \author Manuel Guidon
13! **************************************************************************************************
15
16 USE kinds, ONLY: int_8
17#include "../base/base_uses.f90"
18
19 IMPLICIT NONE
20 PRIVATE
21
22 ! masks the corresponding number of bits from the right
23 INTEGER(kind=int_8), PARAMETER :: mask_right(0:63) = &
24 (/0_int_8, 1_int_8, 3_int_8, 7_int_8, 15_int_8, 31_int_8, 63_int_8, 127_int_8, 255_int_8, 511_int_8, &
25 1023_int_8, 2047_int_8, 4095_int_8, 8191_int_8, 16383_int_8, 32767_int_8, 65535_int_8, 131071_int_8, &
26 262143_int_8, 524287_int_8, 1048575_int_8, 2097151_int_8, 4194303_int_8, 8388607_int_8, 16777215_int_8, &
27 33554431_int_8, 67108863_int_8, 134217727_int_8, 268435455_int_8, 536870911_int_8, 1073741823_int_8, &
28 2147483647_int_8, 4294967295_int_8, 8589934591_int_8, 17179869183_int_8, 34359738367_int_8, &
29 68719476735_int_8, 137438953471_int_8, 274877906943_int_8, 549755813887_int_8, 1099511627775_int_8, &
30 2199023255551_int_8, 4398046511103_int_8, 8796093022207_int_8, 17592186044415_int_8, &
31 35184372088831_int_8, 70368744177663_int_8, 140737488355327_int_8, 281474976710655_int_8, &
32 562949953421311_int_8, 1125899906842623_int_8, 2251799813685247_int_8, 4503599627370495_int_8, &
33 9007199254740991_int_8, 18014398509481983_int_8, 36028797018963967_int_8, 72057594037927935_int_8, &
34 144115188075855871_int_8, 288230376151711743_int_8, 576460752303423487_int_8, &
35 1152921504606846975_int_8, 2305843009213693951_int_8, 4611686018427387903_int_8, &
36 9223372036854775807_int_8/)
37
38 ! masks the corresponding number of bits from the left
39 ! use ishft to avoid explicitly writing -HUGE-1, and keep it out of the array a work-around for a bug in pgi 6.1-1
40 INTEGER(kind=int_8), PARAMETER :: ugly_duck = ishft(1_int_8, 63)
41 INTEGER(kind=int_8), PARAMETER :: mask_left(0:63) = &
42 (/0_int_8, ugly_duck, -4611686018427387904_int_8, -2305843009213693952_int_8, &
43 -1152921504606846976_int_8, -576460752303423488_int_8, -288230376151711744_int_8, &
44 -144115188075855872_int_8, -72057594037927936_int_8, -36028797018963968_int_8, &
45 -18014398509481984_int_8, -9007199254740992_int_8, -4503599627370496_int_8, -2251799813685248_int_8, &
46 -1125899906842624_int_8, -562949953421312_int_8, -281474976710656_int_8, -140737488355328_int_8, &
47 -70368744177664_int_8, -35184372088832_int_8, -17592186044416_int_8, -8796093022208_int_8, &
48 -4398046511104_int_8, -2199023255552_int_8, -1099511627776_int_8, -549755813888_int_8, &
49 -274877906944_int_8, -137438953472_int_8, -68719476736_int_8, -34359738368_int_8, -17179869184_int_8, &
50 -8589934592_int_8, -4294967296_int_8, -2147483648_int_8, -1073741824_int_8, -536870912_int_8, &
51 -268435456_int_8, -134217728_int_8, -67108864_int_8, -33554432_int_8, -16777216_int_8, &
52 -8388608_int_8, -4194304_int_8, -2097152_int_8, -1048576_int_8, -524288_int_8, -262144_int_8, &
53 -131072_int_8, -65536_int_8, -32768_int_8, -16384_int_8, -8192_int_8, -4096_int_8, -2048_int_8, &
54 -1024_int_8, -512_int_8, -256_int_8, -128_int_8, -64_int_8, -32_int_8, -16_int_8, -8_int_8, -4_int_8, &
55 -2_int_8/)
56
58
59CONTAINS
60
61! **************************************************************************************************
62!> \brief ...
63!> \param Ndata ...
64!> \param packed_data ...
65!> \param full_data ...
66! **************************************************************************************************
67 SUBROUTINE ints2ints(Ndata, packed_data, full_data)
68 INTEGER, INTENT(IN) :: Ndata
69 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
70 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
71
72 full_data(1:ndata) = packed_data(1:ndata)
73 END SUBROUTINE
74
75 ! Nbits : number of relevant bits per int in the bit stream (this includes all bits)
76 ! Ndata : number of ints that need to be extracted from the bit stream
77 ! packed_data : the stream of bits
78 ! full_data : the extracted ints
79! **************************************************************************************************
80!> \brief ...
81!> \param Nbits ...
82!> \param Ndata ...
83!> \param packed_data ...
84!> \param full_data ...
85! **************************************************************************************************
86 SUBROUTINE bits2ints_generic(Nbits, Ndata, packed_data, full_data)
87
88 INTEGER, INTENT(IN) :: Nbits, Ndata
89 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
90 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
91
92 INTEGER :: i_odd_bits, ibits_remaining, idata, ipack
93 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
94
95 idata = 0
96
97 ! number of data bits in the pack_tmp that should still be read
98 ibits_remaining = 64
99 ipack = 1
100 pack_tmp = packed_data(ipack)
101
102 ! give the compiler a hint that Nbits is strictly positive
103 IF (nbits < 1) cpabort("This is a bug")
104 ! we also limit the making number of bits
105 IF (nbits >= 64) cpabort("This is a bug")
106
107 DO
108 ! we've unpacked all data
109 IF (idata == ndata) EXIT
110 idata = idata + 1
111 IF (ibits_remaining >= nbits) THEN
112 data_tmp = iand(pack_tmp, mask_right(nbits)) ! get the last Nbits
113 full_data(idata) = data_tmp
114 pack_tmp = ishft(pack_tmp, -nbits) ! and shift right to get the bits in place for the next
115 ibits_remaining = ibits_remaining - nbits
116 ELSE
117 i_odd_bits = nbits - ibits_remaining
118 data_tmp = ishft(pack_tmp, i_odd_bits) ! use all remaining bits, shifted left to make place for the missing bits
119 ipack = ipack + 1
120 pack_tmp = packed_data(ipack) ! get new storage
121 ibits_remaining = 64
122 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(i_odd_bits))) ! and use the missing bits to assemble the data
123 pack_tmp = ishft(pack_tmp, -i_odd_bits) ! shift right to get the bits in place for the next
124 ibits_remaining = 64 - i_odd_bits
125 END IF
126 END DO
127
128 END SUBROUTINE bits2ints_generic
129
130! **************************************************************************************************
131!> \brief ...
132!> \param Nbits ...
133!> \param Ndata ...
134!> \param packed_data ...
135!> \param full_data ...
136! **************************************************************************************************
137 SUBROUTINE ints2bits_generic(Nbits, Ndata, packed_data, full_data)
138 INTEGER, INTENT(IN) :: Nbits, Ndata
139 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
140 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
141
142 INTEGER :: i_odd_bits, ibits_remaining, idata, ipack
143 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
144
145 idata = 0
146 ipack = 0
147 pack_tmp = 0
148
149 ! number of data bits in the pack_tmp that should still be written
150 ibits_remaining = 64
151
152 ! give the compiler a hint that Nbits is strictly positive
153 IF (nbits < 1) cpabort("This is a bug")
154 ! we also limit the making number of bits
155 IF (nbits >= 64) cpabort("This is a bug")
156
157 DO
158 ! we've packed all data
159 IF (idata == ndata) EXIT
160 idata = idata + 1
161 IF (ibits_remaining >= nbits) THEN
162 data_tmp = full_data(idata)
163 data_tmp = ishft(data_tmp, 64 - nbits) ! put bits on the left
164 pack_tmp = ior(pack_tmp, data_tmp) ! add to the packed data
165 ibits_remaining = ibits_remaining - nbits
166 pack_tmp = ishft(pack_tmp, -min(nbits, ibits_remaining)) ! and shift to the right to make place for the next
167 ELSE
168 i_odd_bits = ibits_remaining
169 data_tmp = full_data(idata)
170 data_tmp = ishft(data_tmp, 64 - nbits) ! put bits on the left
171 data_tmp = iand(data_tmp, mask_left(i_odd_bits)) ! restrict to those bits for which we still have space
172 pack_tmp = ior(pack_tmp, data_tmp) ! add them to the packed bits
173 ipack = ipack + 1
174 packed_data(ipack) = pack_tmp ! store the full packed data away and start with a new one
175 data_tmp = full_data(idata)
176 pack_tmp = ishft(data_tmp, 64 - nbits + i_odd_bits) ! put the missing bits on the left if pack_tmp
177 ibits_remaining = 64 - nbits + i_odd_bits
178 pack_tmp = ishft(pack_tmp, -min(nbits, ibits_remaining)) ! shift to make place, but not more than the number of available bits
179 END IF
180 END DO
181
182 ! cleanup this unfinished packed data and store
183 pack_tmp = ishft(pack_tmp, -max(0, ibits_remaining - nbits))
184 ipack = ipack + 1
185 packed_data(ipack) = pack_tmp
186
187 END SUBROUTINE ints2bits_generic
188
189! **************************************************************************************************
190!> \brief ...
191!> \param Ndata ...
192!> \param packed_data ...
193!> \param full_data ...
194! **************************************************************************************************
195 SUBROUTINE ints2bits_1(Ndata, packed_data, full_data)
196 INTEGER, INTENT(IN) :: Ndata
197 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
198 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
199
200 INTEGER, PARAMETER :: Nbits = 1
201
202 INTEGER :: idata, ipack, kdata, Ndata_rep
203 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
204
205 idata = 0
206 ipack = 0
207 ndata_rep = (ndata/64)*64
208 DO kdata = 1, ndata_rep, 64
209 pack_tmp = 0
210 idata = idata + 1
211 data_tmp = full_data(idata)
212 data_tmp = ishft(data_tmp, 63)
213 pack_tmp = ior(pack_tmp, data_tmp)
214 pack_tmp = ishft(pack_tmp, -1)
215 idata = idata + 1
216 data_tmp = full_data(idata)
217 data_tmp = ishft(data_tmp, 63)
218 pack_tmp = ior(pack_tmp, data_tmp)
219 pack_tmp = ishft(pack_tmp, -1)
220 idata = idata + 1
221 data_tmp = full_data(idata)
222 data_tmp = ishft(data_tmp, 63)
223 pack_tmp = ior(pack_tmp, data_tmp)
224 pack_tmp = ishft(pack_tmp, -1)
225 idata = idata + 1
226 data_tmp = full_data(idata)
227 data_tmp = ishft(data_tmp, 63)
228 pack_tmp = ior(pack_tmp, data_tmp)
229 pack_tmp = ishft(pack_tmp, -1)
230 idata = idata + 1
231 data_tmp = full_data(idata)
232 data_tmp = ishft(data_tmp, 63)
233 pack_tmp = ior(pack_tmp, data_tmp)
234 pack_tmp = ishft(pack_tmp, -1)
235 idata = idata + 1
236 data_tmp = full_data(idata)
237 data_tmp = ishft(data_tmp, 63)
238 pack_tmp = ior(pack_tmp, data_tmp)
239 pack_tmp = ishft(pack_tmp, -1)
240 idata = idata + 1
241 data_tmp = full_data(idata)
242 data_tmp = ishft(data_tmp, 63)
243 pack_tmp = ior(pack_tmp, data_tmp)
244 pack_tmp = ishft(pack_tmp, -1)
245 idata = idata + 1
246 data_tmp = full_data(idata)
247 data_tmp = ishft(data_tmp, 63)
248 pack_tmp = ior(pack_tmp, data_tmp)
249 pack_tmp = ishft(pack_tmp, -1)
250 idata = idata + 1
251 data_tmp = full_data(idata)
252 data_tmp = ishft(data_tmp, 63)
253 pack_tmp = ior(pack_tmp, data_tmp)
254 pack_tmp = ishft(pack_tmp, -1)
255 idata = idata + 1
256 data_tmp = full_data(idata)
257 data_tmp = ishft(data_tmp, 63)
258 pack_tmp = ior(pack_tmp, data_tmp)
259 pack_tmp = ishft(pack_tmp, -1)
260 idata = idata + 1
261 data_tmp = full_data(idata)
262 data_tmp = ishft(data_tmp, 63)
263 pack_tmp = ior(pack_tmp, data_tmp)
264 pack_tmp = ishft(pack_tmp, -1)
265 idata = idata + 1
266 data_tmp = full_data(idata)
267 data_tmp = ishft(data_tmp, 63)
268 pack_tmp = ior(pack_tmp, data_tmp)
269 pack_tmp = ishft(pack_tmp, -1)
270 idata = idata + 1
271 data_tmp = full_data(idata)
272 data_tmp = ishft(data_tmp, 63)
273 pack_tmp = ior(pack_tmp, data_tmp)
274 pack_tmp = ishft(pack_tmp, -1)
275 idata = idata + 1
276 data_tmp = full_data(idata)
277 data_tmp = ishft(data_tmp, 63)
278 pack_tmp = ior(pack_tmp, data_tmp)
279 pack_tmp = ishft(pack_tmp, -1)
280 idata = idata + 1
281 data_tmp = full_data(idata)
282 data_tmp = ishft(data_tmp, 63)
283 pack_tmp = ior(pack_tmp, data_tmp)
284 pack_tmp = ishft(pack_tmp, -1)
285 idata = idata + 1
286 data_tmp = full_data(idata)
287 data_tmp = ishft(data_tmp, 63)
288 pack_tmp = ior(pack_tmp, data_tmp)
289 pack_tmp = ishft(pack_tmp, -1)
290 idata = idata + 1
291 data_tmp = full_data(idata)
292 data_tmp = ishft(data_tmp, 63)
293 pack_tmp = ior(pack_tmp, data_tmp)
294 pack_tmp = ishft(pack_tmp, -1)
295 idata = idata + 1
296 data_tmp = full_data(idata)
297 data_tmp = ishft(data_tmp, 63)
298 pack_tmp = ior(pack_tmp, data_tmp)
299 pack_tmp = ishft(pack_tmp, -1)
300 idata = idata + 1
301 data_tmp = full_data(idata)
302 data_tmp = ishft(data_tmp, 63)
303 pack_tmp = ior(pack_tmp, data_tmp)
304 pack_tmp = ishft(pack_tmp, -1)
305 idata = idata + 1
306 data_tmp = full_data(idata)
307 data_tmp = ishft(data_tmp, 63)
308 pack_tmp = ior(pack_tmp, data_tmp)
309 pack_tmp = ishft(pack_tmp, -1)
310 idata = idata + 1
311 data_tmp = full_data(idata)
312 data_tmp = ishft(data_tmp, 63)
313 pack_tmp = ior(pack_tmp, data_tmp)
314 pack_tmp = ishft(pack_tmp, -1)
315 idata = idata + 1
316 data_tmp = full_data(idata)
317 data_tmp = ishft(data_tmp, 63)
318 pack_tmp = ior(pack_tmp, data_tmp)
319 pack_tmp = ishft(pack_tmp, -1)
320 idata = idata + 1
321 data_tmp = full_data(idata)
322 data_tmp = ishft(data_tmp, 63)
323 pack_tmp = ior(pack_tmp, data_tmp)
324 pack_tmp = ishft(pack_tmp, -1)
325 idata = idata + 1
326 data_tmp = full_data(idata)
327 data_tmp = ishft(data_tmp, 63)
328 pack_tmp = ior(pack_tmp, data_tmp)
329 pack_tmp = ishft(pack_tmp, -1)
330 idata = idata + 1
331 data_tmp = full_data(idata)
332 data_tmp = ishft(data_tmp, 63)
333 pack_tmp = ior(pack_tmp, data_tmp)
334 pack_tmp = ishft(pack_tmp, -1)
335 idata = idata + 1
336 data_tmp = full_data(idata)
337 data_tmp = ishft(data_tmp, 63)
338 pack_tmp = ior(pack_tmp, data_tmp)
339 pack_tmp = ishft(pack_tmp, -1)
340 idata = idata + 1
341 data_tmp = full_data(idata)
342 data_tmp = ishft(data_tmp, 63)
343 pack_tmp = ior(pack_tmp, data_tmp)
344 pack_tmp = ishft(pack_tmp, -1)
345 idata = idata + 1
346 data_tmp = full_data(idata)
347 data_tmp = ishft(data_tmp, 63)
348 pack_tmp = ior(pack_tmp, data_tmp)
349 pack_tmp = ishft(pack_tmp, -1)
350 idata = idata + 1
351 data_tmp = full_data(idata)
352 data_tmp = ishft(data_tmp, 63)
353 pack_tmp = ior(pack_tmp, data_tmp)
354 pack_tmp = ishft(pack_tmp, -1)
355 idata = idata + 1
356 data_tmp = full_data(idata)
357 data_tmp = ishft(data_tmp, 63)
358 pack_tmp = ior(pack_tmp, data_tmp)
359 pack_tmp = ishft(pack_tmp, -1)
360 idata = idata + 1
361 data_tmp = full_data(idata)
362 data_tmp = ishft(data_tmp, 63)
363 pack_tmp = ior(pack_tmp, data_tmp)
364 pack_tmp = ishft(pack_tmp, -1)
365 idata = idata + 1
366 data_tmp = full_data(idata)
367 data_tmp = ishft(data_tmp, 63)
368 pack_tmp = ior(pack_tmp, data_tmp)
369 pack_tmp = ishft(pack_tmp, -1)
370 idata = idata + 1
371 data_tmp = full_data(idata)
372 data_tmp = ishft(data_tmp, 63)
373 pack_tmp = ior(pack_tmp, data_tmp)
374 pack_tmp = ishft(pack_tmp, -1)
375 idata = idata + 1
376 data_tmp = full_data(idata)
377 data_tmp = ishft(data_tmp, 63)
378 pack_tmp = ior(pack_tmp, data_tmp)
379 pack_tmp = ishft(pack_tmp, -1)
380 idata = idata + 1
381 data_tmp = full_data(idata)
382 data_tmp = ishft(data_tmp, 63)
383 pack_tmp = ior(pack_tmp, data_tmp)
384 pack_tmp = ishft(pack_tmp, -1)
385 idata = idata + 1
386 data_tmp = full_data(idata)
387 data_tmp = ishft(data_tmp, 63)
388 pack_tmp = ior(pack_tmp, data_tmp)
389 pack_tmp = ishft(pack_tmp, -1)
390 idata = idata + 1
391 data_tmp = full_data(idata)
392 data_tmp = ishft(data_tmp, 63)
393 pack_tmp = ior(pack_tmp, data_tmp)
394 pack_tmp = ishft(pack_tmp, -1)
395 idata = idata + 1
396 data_tmp = full_data(idata)
397 data_tmp = ishft(data_tmp, 63)
398 pack_tmp = ior(pack_tmp, data_tmp)
399 pack_tmp = ishft(pack_tmp, -1)
400 idata = idata + 1
401 data_tmp = full_data(idata)
402 data_tmp = ishft(data_tmp, 63)
403 pack_tmp = ior(pack_tmp, data_tmp)
404 pack_tmp = ishft(pack_tmp, -1)
405 idata = idata + 1
406 data_tmp = full_data(idata)
407 data_tmp = ishft(data_tmp, 63)
408 pack_tmp = ior(pack_tmp, data_tmp)
409 pack_tmp = ishft(pack_tmp, -1)
410 idata = idata + 1
411 data_tmp = full_data(idata)
412 data_tmp = ishft(data_tmp, 63)
413 pack_tmp = ior(pack_tmp, data_tmp)
414 pack_tmp = ishft(pack_tmp, -1)
415 idata = idata + 1
416 data_tmp = full_data(idata)
417 data_tmp = ishft(data_tmp, 63)
418 pack_tmp = ior(pack_tmp, data_tmp)
419 pack_tmp = ishft(pack_tmp, -1)
420 idata = idata + 1
421 data_tmp = full_data(idata)
422 data_tmp = ishft(data_tmp, 63)
423 pack_tmp = ior(pack_tmp, data_tmp)
424 pack_tmp = ishft(pack_tmp, -1)
425 idata = idata + 1
426 data_tmp = full_data(idata)
427 data_tmp = ishft(data_tmp, 63)
428 pack_tmp = ior(pack_tmp, data_tmp)
429 pack_tmp = ishft(pack_tmp, -1)
430 idata = idata + 1
431 data_tmp = full_data(idata)
432 data_tmp = ishft(data_tmp, 63)
433 pack_tmp = ior(pack_tmp, data_tmp)
434 pack_tmp = ishft(pack_tmp, -1)
435 idata = idata + 1
436 data_tmp = full_data(idata)
437 data_tmp = ishft(data_tmp, 63)
438 pack_tmp = ior(pack_tmp, data_tmp)
439 pack_tmp = ishft(pack_tmp, -1)
440 idata = idata + 1
441 data_tmp = full_data(idata)
442 data_tmp = ishft(data_tmp, 63)
443 pack_tmp = ior(pack_tmp, data_tmp)
444 pack_tmp = ishft(pack_tmp, -1)
445 idata = idata + 1
446 data_tmp = full_data(idata)
447 data_tmp = ishft(data_tmp, 63)
448 pack_tmp = ior(pack_tmp, data_tmp)
449 pack_tmp = ishft(pack_tmp, -1)
450 idata = idata + 1
451 data_tmp = full_data(idata)
452 data_tmp = ishft(data_tmp, 63)
453 pack_tmp = ior(pack_tmp, data_tmp)
454 pack_tmp = ishft(pack_tmp, -1)
455 idata = idata + 1
456 data_tmp = full_data(idata)
457 data_tmp = ishft(data_tmp, 63)
458 pack_tmp = ior(pack_tmp, data_tmp)
459 pack_tmp = ishft(pack_tmp, -1)
460 idata = idata + 1
461 data_tmp = full_data(idata)
462 data_tmp = ishft(data_tmp, 63)
463 pack_tmp = ior(pack_tmp, data_tmp)
464 pack_tmp = ishft(pack_tmp, -1)
465 idata = idata + 1
466 data_tmp = full_data(idata)
467 data_tmp = ishft(data_tmp, 63)
468 pack_tmp = ior(pack_tmp, data_tmp)
469 pack_tmp = ishft(pack_tmp, -1)
470 idata = idata + 1
471 data_tmp = full_data(idata)
472 data_tmp = ishft(data_tmp, 63)
473 pack_tmp = ior(pack_tmp, data_tmp)
474 pack_tmp = ishft(pack_tmp, -1)
475 idata = idata + 1
476 data_tmp = full_data(idata)
477 data_tmp = ishft(data_tmp, 63)
478 pack_tmp = ior(pack_tmp, data_tmp)
479 pack_tmp = ishft(pack_tmp, -1)
480 idata = idata + 1
481 data_tmp = full_data(idata)
482 data_tmp = ishft(data_tmp, 63)
483 pack_tmp = ior(pack_tmp, data_tmp)
484 pack_tmp = ishft(pack_tmp, -1)
485 idata = idata + 1
486 data_tmp = full_data(idata)
487 data_tmp = ishft(data_tmp, 63)
488 pack_tmp = ior(pack_tmp, data_tmp)
489 pack_tmp = ishft(pack_tmp, -1)
490 idata = idata + 1
491 data_tmp = full_data(idata)
492 data_tmp = ishft(data_tmp, 63)
493 pack_tmp = ior(pack_tmp, data_tmp)
494 pack_tmp = ishft(pack_tmp, -1)
495 idata = idata + 1
496 data_tmp = full_data(idata)
497 data_tmp = ishft(data_tmp, 63)
498 pack_tmp = ior(pack_tmp, data_tmp)
499 pack_tmp = ishft(pack_tmp, -1)
500 idata = idata + 1
501 data_tmp = full_data(idata)
502 data_tmp = ishft(data_tmp, 63)
503 pack_tmp = ior(pack_tmp, data_tmp)
504 pack_tmp = ishft(pack_tmp, -1)
505 idata = idata + 1
506 data_tmp = full_data(idata)
507 data_tmp = ishft(data_tmp, 63)
508 pack_tmp = ior(pack_tmp, data_tmp)
509 pack_tmp = ishft(pack_tmp, -1)
510 idata = idata + 1
511 data_tmp = full_data(idata)
512 data_tmp = ishft(data_tmp, 63)
513 pack_tmp = ior(pack_tmp, data_tmp)
514 pack_tmp = ishft(pack_tmp, -1)
515 idata = idata + 1
516 data_tmp = full_data(idata)
517 data_tmp = ishft(data_tmp, 63)
518 pack_tmp = ior(pack_tmp, data_tmp)
519 pack_tmp = ishft(pack_tmp, -1)
520 idata = idata + 1
521 data_tmp = full_data(idata)
522 data_tmp = ishft(data_tmp, 63)
523 pack_tmp = ior(pack_tmp, data_tmp)
524 pack_tmp = ishft(pack_tmp, -1)
525 idata = idata + 1
526 data_tmp = full_data(idata)
527 data_tmp = ishft(data_tmp, 63)
528 pack_tmp = ior(pack_tmp, data_tmp)
529 pack_tmp = ishft(pack_tmp, 0)
530 pack_tmp = ishft(pack_tmp, 0)
531 ipack = ipack + 1
532 packed_data(ipack) = pack_tmp
533 END DO
534 IF (ndata_rep < ndata) THEN
535 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
536 END IF
537 END SUBROUTINE ints2bits_1
538
539! **************************************************************************************************
540!> \brief ...
541!> \param Ndata ...
542!> \param packed_data ...
543!> \param full_data ...
544! **************************************************************************************************
545 SUBROUTINE bits2ints_1(Ndata, packed_data, full_data)
546 INTEGER, INTENT(IN) :: Ndata
547 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
548 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
549
550 INTEGER, PARAMETER :: Nbits = 1
551
552 INTEGER :: idata, ipack, kdata, Ndata_rep
553 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
554
555 ipack = 0
556 idata = 0
557 pack_tmp = 0
558 ndata_rep = (ndata/64)*64
559 DO kdata = 1, ndata_rep, 64
560 idata = idata + 1
561 data_tmp = ishft(pack_tmp, 1)
562 ipack = ipack + 1
563 pack_tmp = packed_data(ipack)
564 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
565 pack_tmp = ishft(pack_tmp, -1)
566 idata = idata + 1
567 data_tmp = iand(pack_tmp, mask_right(nbits))
568 full_data(idata) = data_tmp
569 pack_tmp = ishft(pack_tmp, -nbits)
570 idata = idata + 1
571 data_tmp = iand(pack_tmp, mask_right(nbits))
572 full_data(idata) = data_tmp
573 pack_tmp = ishft(pack_tmp, -nbits)
574 idata = idata + 1
575 data_tmp = iand(pack_tmp, mask_right(nbits))
576 full_data(idata) = data_tmp
577 pack_tmp = ishft(pack_tmp, -nbits)
578 idata = idata + 1
579 data_tmp = iand(pack_tmp, mask_right(nbits))
580 full_data(idata) = data_tmp
581 pack_tmp = ishft(pack_tmp, -nbits)
582 idata = idata + 1
583 data_tmp = iand(pack_tmp, mask_right(nbits))
584 full_data(idata) = data_tmp
585 pack_tmp = ishft(pack_tmp, -nbits)
586 idata = idata + 1
587 data_tmp = iand(pack_tmp, mask_right(nbits))
588 full_data(idata) = data_tmp
589 pack_tmp = ishft(pack_tmp, -nbits)
590 idata = idata + 1
591 data_tmp = iand(pack_tmp, mask_right(nbits))
592 full_data(idata) = data_tmp
593 pack_tmp = ishft(pack_tmp, -nbits)
594 idata = idata + 1
595 data_tmp = iand(pack_tmp, mask_right(nbits))
596 full_data(idata) = data_tmp
597 pack_tmp = ishft(pack_tmp, -nbits)
598 idata = idata + 1
599 data_tmp = iand(pack_tmp, mask_right(nbits))
600 full_data(idata) = data_tmp
601 pack_tmp = ishft(pack_tmp, -nbits)
602 idata = idata + 1
603 data_tmp = iand(pack_tmp, mask_right(nbits))
604 full_data(idata) = data_tmp
605 pack_tmp = ishft(pack_tmp, -nbits)
606 idata = idata + 1
607 data_tmp = iand(pack_tmp, mask_right(nbits))
608 full_data(idata) = data_tmp
609 pack_tmp = ishft(pack_tmp, -nbits)
610 idata = idata + 1
611 data_tmp = iand(pack_tmp, mask_right(nbits))
612 full_data(idata) = data_tmp
613 pack_tmp = ishft(pack_tmp, -nbits)
614 idata = idata + 1
615 data_tmp = iand(pack_tmp, mask_right(nbits))
616 full_data(idata) = data_tmp
617 pack_tmp = ishft(pack_tmp, -nbits)
618 idata = idata + 1
619 data_tmp = iand(pack_tmp, mask_right(nbits))
620 full_data(idata) = data_tmp
621 pack_tmp = ishft(pack_tmp, -nbits)
622 idata = idata + 1
623 data_tmp = iand(pack_tmp, mask_right(nbits))
624 full_data(idata) = data_tmp
625 pack_tmp = ishft(pack_tmp, -nbits)
626 idata = idata + 1
627 data_tmp = iand(pack_tmp, mask_right(nbits))
628 full_data(idata) = data_tmp
629 pack_tmp = ishft(pack_tmp, -nbits)
630 idata = idata + 1
631 data_tmp = iand(pack_tmp, mask_right(nbits))
632 full_data(idata) = data_tmp
633 pack_tmp = ishft(pack_tmp, -nbits)
634 idata = idata + 1
635 data_tmp = iand(pack_tmp, mask_right(nbits))
636 full_data(idata) = data_tmp
637 pack_tmp = ishft(pack_tmp, -nbits)
638 idata = idata + 1
639 data_tmp = iand(pack_tmp, mask_right(nbits))
640 full_data(idata) = data_tmp
641 pack_tmp = ishft(pack_tmp, -nbits)
642 idata = idata + 1
643 data_tmp = iand(pack_tmp, mask_right(nbits))
644 full_data(idata) = data_tmp
645 pack_tmp = ishft(pack_tmp, -nbits)
646 idata = idata + 1
647 data_tmp = iand(pack_tmp, mask_right(nbits))
648 full_data(idata) = data_tmp
649 pack_tmp = ishft(pack_tmp, -nbits)
650 idata = idata + 1
651 data_tmp = iand(pack_tmp, mask_right(nbits))
652 full_data(idata) = data_tmp
653 pack_tmp = ishft(pack_tmp, -nbits)
654 idata = idata + 1
655 data_tmp = iand(pack_tmp, mask_right(nbits))
656 full_data(idata) = data_tmp
657 pack_tmp = ishft(pack_tmp, -nbits)
658 idata = idata + 1
659 data_tmp = iand(pack_tmp, mask_right(nbits))
660 full_data(idata) = data_tmp
661 pack_tmp = ishft(pack_tmp, -nbits)
662 idata = idata + 1
663 data_tmp = iand(pack_tmp, mask_right(nbits))
664 full_data(idata) = data_tmp
665 pack_tmp = ishft(pack_tmp, -nbits)
666 idata = idata + 1
667 data_tmp = iand(pack_tmp, mask_right(nbits))
668 full_data(idata) = data_tmp
669 pack_tmp = ishft(pack_tmp, -nbits)
670 idata = idata + 1
671 data_tmp = iand(pack_tmp, mask_right(nbits))
672 full_data(idata) = data_tmp
673 pack_tmp = ishft(pack_tmp, -nbits)
674 idata = idata + 1
675 data_tmp = iand(pack_tmp, mask_right(nbits))
676 full_data(idata) = data_tmp
677 pack_tmp = ishft(pack_tmp, -nbits)
678 idata = idata + 1
679 data_tmp = iand(pack_tmp, mask_right(nbits))
680 full_data(idata) = data_tmp
681 pack_tmp = ishft(pack_tmp, -nbits)
682 idata = idata + 1
683 data_tmp = iand(pack_tmp, mask_right(nbits))
684 full_data(idata) = data_tmp
685 pack_tmp = ishft(pack_tmp, -nbits)
686 idata = idata + 1
687 data_tmp = iand(pack_tmp, mask_right(nbits))
688 full_data(idata) = data_tmp
689 pack_tmp = ishft(pack_tmp, -nbits)
690 idata = idata + 1
691 data_tmp = iand(pack_tmp, mask_right(nbits))
692 full_data(idata) = data_tmp
693 pack_tmp = ishft(pack_tmp, -nbits)
694 idata = idata + 1
695 data_tmp = iand(pack_tmp, mask_right(nbits))
696 full_data(idata) = data_tmp
697 pack_tmp = ishft(pack_tmp, -nbits)
698 idata = idata + 1
699 data_tmp = iand(pack_tmp, mask_right(nbits))
700 full_data(idata) = data_tmp
701 pack_tmp = ishft(pack_tmp, -nbits)
702 idata = idata + 1
703 data_tmp = iand(pack_tmp, mask_right(nbits))
704 full_data(idata) = data_tmp
705 pack_tmp = ishft(pack_tmp, -nbits)
706 idata = idata + 1
707 data_tmp = iand(pack_tmp, mask_right(nbits))
708 full_data(idata) = data_tmp
709 pack_tmp = ishft(pack_tmp, -nbits)
710 idata = idata + 1
711 data_tmp = iand(pack_tmp, mask_right(nbits))
712 full_data(idata) = data_tmp
713 pack_tmp = ishft(pack_tmp, -nbits)
714 idata = idata + 1
715 data_tmp = iand(pack_tmp, mask_right(nbits))
716 full_data(idata) = data_tmp
717 pack_tmp = ishft(pack_tmp, -nbits)
718 idata = idata + 1
719 data_tmp = iand(pack_tmp, mask_right(nbits))
720 full_data(idata) = data_tmp
721 pack_tmp = ishft(pack_tmp, -nbits)
722 idata = idata + 1
723 data_tmp = iand(pack_tmp, mask_right(nbits))
724 full_data(idata) = data_tmp
725 pack_tmp = ishft(pack_tmp, -nbits)
726 idata = idata + 1
727 data_tmp = iand(pack_tmp, mask_right(nbits))
728 full_data(idata) = data_tmp
729 pack_tmp = ishft(pack_tmp, -nbits)
730 idata = idata + 1
731 data_tmp = iand(pack_tmp, mask_right(nbits))
732 full_data(idata) = data_tmp
733 pack_tmp = ishft(pack_tmp, -nbits)
734 idata = idata + 1
735 data_tmp = iand(pack_tmp, mask_right(nbits))
736 full_data(idata) = data_tmp
737 pack_tmp = ishft(pack_tmp, -nbits)
738 idata = idata + 1
739 data_tmp = iand(pack_tmp, mask_right(nbits))
740 full_data(idata) = data_tmp
741 pack_tmp = ishft(pack_tmp, -nbits)
742 idata = idata + 1
743 data_tmp = iand(pack_tmp, mask_right(nbits))
744 full_data(idata) = data_tmp
745 pack_tmp = ishft(pack_tmp, -nbits)
746 idata = idata + 1
747 data_tmp = iand(pack_tmp, mask_right(nbits))
748 full_data(idata) = data_tmp
749 pack_tmp = ishft(pack_tmp, -nbits)
750 idata = idata + 1
751 data_tmp = iand(pack_tmp, mask_right(nbits))
752 full_data(idata) = data_tmp
753 pack_tmp = ishft(pack_tmp, -nbits)
754 idata = idata + 1
755 data_tmp = iand(pack_tmp, mask_right(nbits))
756 full_data(idata) = data_tmp
757 pack_tmp = ishft(pack_tmp, -nbits)
758 idata = idata + 1
759 data_tmp = iand(pack_tmp, mask_right(nbits))
760 full_data(idata) = data_tmp
761 pack_tmp = ishft(pack_tmp, -nbits)
762 idata = idata + 1
763 data_tmp = iand(pack_tmp, mask_right(nbits))
764 full_data(idata) = data_tmp
765 pack_tmp = ishft(pack_tmp, -nbits)
766 idata = idata + 1
767 data_tmp = iand(pack_tmp, mask_right(nbits))
768 full_data(idata) = data_tmp
769 pack_tmp = ishft(pack_tmp, -nbits)
770 idata = idata + 1
771 data_tmp = iand(pack_tmp, mask_right(nbits))
772 full_data(idata) = data_tmp
773 pack_tmp = ishft(pack_tmp, -nbits)
774 idata = idata + 1
775 data_tmp = iand(pack_tmp, mask_right(nbits))
776 full_data(idata) = data_tmp
777 pack_tmp = ishft(pack_tmp, -nbits)
778 idata = idata + 1
779 data_tmp = iand(pack_tmp, mask_right(nbits))
780 full_data(idata) = data_tmp
781 pack_tmp = ishft(pack_tmp, -nbits)
782 idata = idata + 1
783 data_tmp = iand(pack_tmp, mask_right(nbits))
784 full_data(idata) = data_tmp
785 pack_tmp = ishft(pack_tmp, -nbits)
786 idata = idata + 1
787 data_tmp = iand(pack_tmp, mask_right(nbits))
788 full_data(idata) = data_tmp
789 pack_tmp = ishft(pack_tmp, -nbits)
790 idata = idata + 1
791 data_tmp = iand(pack_tmp, mask_right(nbits))
792 full_data(idata) = data_tmp
793 pack_tmp = ishft(pack_tmp, -nbits)
794 idata = idata + 1
795 data_tmp = iand(pack_tmp, mask_right(nbits))
796 full_data(idata) = data_tmp
797 pack_tmp = ishft(pack_tmp, -nbits)
798 idata = idata + 1
799 data_tmp = iand(pack_tmp, mask_right(nbits))
800 full_data(idata) = data_tmp
801 pack_tmp = ishft(pack_tmp, -nbits)
802 idata = idata + 1
803 data_tmp = iand(pack_tmp, mask_right(nbits))
804 full_data(idata) = data_tmp
805 pack_tmp = ishft(pack_tmp, -nbits)
806 idata = idata + 1
807 data_tmp = iand(pack_tmp, mask_right(nbits))
808 full_data(idata) = data_tmp
809 pack_tmp = ishft(pack_tmp, -nbits)
810 idata = idata + 1
811 data_tmp = iand(pack_tmp, mask_right(nbits))
812 full_data(idata) = data_tmp
813 pack_tmp = ishft(pack_tmp, -nbits)
814 idata = idata + 1
815 data_tmp = iand(pack_tmp, mask_right(nbits))
816 full_data(idata) = data_tmp
817 pack_tmp = ishft(pack_tmp, -nbits)
818 END DO
819 IF (ndata_rep < ndata) THEN
820 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
821 END IF
822 END SUBROUTINE bits2ints_1
823
824! **************************************************************************************************
825!> \brief ...
826!> \param Ndata ...
827!> \param packed_data ...
828!> \param full_data ...
829! **************************************************************************************************
830 SUBROUTINE ints2bits_2(Ndata, packed_data, full_data)
831 INTEGER, INTENT(IN) :: Ndata
832 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
833 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
834
835 INTEGER, PARAMETER :: Nbits = 2
836
837 INTEGER :: idata, ipack, kdata, Ndata_rep
838 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
839
840 idata = 0
841 ipack = 0
842 ndata_rep = (ndata/64)*64
843 DO kdata = 1, ndata_rep, 64
844 pack_tmp = 0
845 idata = idata + 1
846 data_tmp = full_data(idata)
847 data_tmp = ishft(data_tmp, 62)
848 pack_tmp = ior(pack_tmp, data_tmp)
849 pack_tmp = ishft(pack_tmp, -2)
850 idata = idata + 1
851 data_tmp = full_data(idata)
852 data_tmp = ishft(data_tmp, 62)
853 pack_tmp = ior(pack_tmp, data_tmp)
854 pack_tmp = ishft(pack_tmp, -2)
855 idata = idata + 1
856 data_tmp = full_data(idata)
857 data_tmp = ishft(data_tmp, 62)
858 pack_tmp = ior(pack_tmp, data_tmp)
859 pack_tmp = ishft(pack_tmp, -2)
860 idata = idata + 1
861 data_tmp = full_data(idata)
862 data_tmp = ishft(data_tmp, 62)
863 pack_tmp = ior(pack_tmp, data_tmp)
864 pack_tmp = ishft(pack_tmp, -2)
865 idata = idata + 1
866 data_tmp = full_data(idata)
867 data_tmp = ishft(data_tmp, 62)
868 pack_tmp = ior(pack_tmp, data_tmp)
869 pack_tmp = ishft(pack_tmp, -2)
870 idata = idata + 1
871 data_tmp = full_data(idata)
872 data_tmp = ishft(data_tmp, 62)
873 pack_tmp = ior(pack_tmp, data_tmp)
874 pack_tmp = ishft(pack_tmp, -2)
875 idata = idata + 1
876 data_tmp = full_data(idata)
877 data_tmp = ishft(data_tmp, 62)
878 pack_tmp = ior(pack_tmp, data_tmp)
879 pack_tmp = ishft(pack_tmp, -2)
880 idata = idata + 1
881 data_tmp = full_data(idata)
882 data_tmp = ishft(data_tmp, 62)
883 pack_tmp = ior(pack_tmp, data_tmp)
884 pack_tmp = ishft(pack_tmp, -2)
885 idata = idata + 1
886 data_tmp = full_data(idata)
887 data_tmp = ishft(data_tmp, 62)
888 pack_tmp = ior(pack_tmp, data_tmp)
889 pack_tmp = ishft(pack_tmp, -2)
890 idata = idata + 1
891 data_tmp = full_data(idata)
892 data_tmp = ishft(data_tmp, 62)
893 pack_tmp = ior(pack_tmp, data_tmp)
894 pack_tmp = ishft(pack_tmp, -2)
895 idata = idata + 1
896 data_tmp = full_data(idata)
897 data_tmp = ishft(data_tmp, 62)
898 pack_tmp = ior(pack_tmp, data_tmp)
899 pack_tmp = ishft(pack_tmp, -2)
900 idata = idata + 1
901 data_tmp = full_data(idata)
902 data_tmp = ishft(data_tmp, 62)
903 pack_tmp = ior(pack_tmp, data_tmp)
904 pack_tmp = ishft(pack_tmp, -2)
905 idata = idata + 1
906 data_tmp = full_data(idata)
907 data_tmp = ishft(data_tmp, 62)
908 pack_tmp = ior(pack_tmp, data_tmp)
909 pack_tmp = ishft(pack_tmp, -2)
910 idata = idata + 1
911 data_tmp = full_data(idata)
912 data_tmp = ishft(data_tmp, 62)
913 pack_tmp = ior(pack_tmp, data_tmp)
914 pack_tmp = ishft(pack_tmp, -2)
915 idata = idata + 1
916 data_tmp = full_data(idata)
917 data_tmp = ishft(data_tmp, 62)
918 pack_tmp = ior(pack_tmp, data_tmp)
919 pack_tmp = ishft(pack_tmp, -2)
920 idata = idata + 1
921 data_tmp = full_data(idata)
922 data_tmp = ishft(data_tmp, 62)
923 pack_tmp = ior(pack_tmp, data_tmp)
924 pack_tmp = ishft(pack_tmp, -2)
925 idata = idata + 1
926 data_tmp = full_data(idata)
927 data_tmp = ishft(data_tmp, 62)
928 pack_tmp = ior(pack_tmp, data_tmp)
929 pack_tmp = ishft(pack_tmp, -2)
930 idata = idata + 1
931 data_tmp = full_data(idata)
932 data_tmp = ishft(data_tmp, 62)
933 pack_tmp = ior(pack_tmp, data_tmp)
934 pack_tmp = ishft(pack_tmp, -2)
935 idata = idata + 1
936 data_tmp = full_data(idata)
937 data_tmp = ishft(data_tmp, 62)
938 pack_tmp = ior(pack_tmp, data_tmp)
939 pack_tmp = ishft(pack_tmp, -2)
940 idata = idata + 1
941 data_tmp = full_data(idata)
942 data_tmp = ishft(data_tmp, 62)
943 pack_tmp = ior(pack_tmp, data_tmp)
944 pack_tmp = ishft(pack_tmp, -2)
945 idata = idata + 1
946 data_tmp = full_data(idata)
947 data_tmp = ishft(data_tmp, 62)
948 pack_tmp = ior(pack_tmp, data_tmp)
949 pack_tmp = ishft(pack_tmp, -2)
950 idata = idata + 1
951 data_tmp = full_data(idata)
952 data_tmp = ishft(data_tmp, 62)
953 pack_tmp = ior(pack_tmp, data_tmp)
954 pack_tmp = ishft(pack_tmp, -2)
955 idata = idata + 1
956 data_tmp = full_data(idata)
957 data_tmp = ishft(data_tmp, 62)
958 pack_tmp = ior(pack_tmp, data_tmp)
959 pack_tmp = ishft(pack_tmp, -2)
960 idata = idata + 1
961 data_tmp = full_data(idata)
962 data_tmp = ishft(data_tmp, 62)
963 pack_tmp = ior(pack_tmp, data_tmp)
964 pack_tmp = ishft(pack_tmp, -2)
965 idata = idata + 1
966 data_tmp = full_data(idata)
967 data_tmp = ishft(data_tmp, 62)
968 pack_tmp = ior(pack_tmp, data_tmp)
969 pack_tmp = ishft(pack_tmp, -2)
970 idata = idata + 1
971 data_tmp = full_data(idata)
972 data_tmp = ishft(data_tmp, 62)
973 pack_tmp = ior(pack_tmp, data_tmp)
974 pack_tmp = ishft(pack_tmp, -2)
975 idata = idata + 1
976 data_tmp = full_data(idata)
977 data_tmp = ishft(data_tmp, 62)
978 pack_tmp = ior(pack_tmp, data_tmp)
979 pack_tmp = ishft(pack_tmp, -2)
980 idata = idata + 1
981 data_tmp = full_data(idata)
982 data_tmp = ishft(data_tmp, 62)
983 pack_tmp = ior(pack_tmp, data_tmp)
984 pack_tmp = ishft(pack_tmp, -2)
985 idata = idata + 1
986 data_tmp = full_data(idata)
987 data_tmp = ishft(data_tmp, 62)
988 pack_tmp = ior(pack_tmp, data_tmp)
989 pack_tmp = ishft(pack_tmp, -2)
990 idata = idata + 1
991 data_tmp = full_data(idata)
992 data_tmp = ishft(data_tmp, 62)
993 pack_tmp = ior(pack_tmp, data_tmp)
994 pack_tmp = ishft(pack_tmp, -2)
995 idata = idata + 1
996 data_tmp = full_data(idata)
997 data_tmp = ishft(data_tmp, 62)
998 pack_tmp = ior(pack_tmp, data_tmp)
999 pack_tmp = ishft(pack_tmp, -2)
1000 idata = idata + 1
1001 data_tmp = full_data(idata)
1002 data_tmp = ishft(data_tmp, 62)
1003 pack_tmp = ior(pack_tmp, data_tmp)
1004 pack_tmp = ishft(pack_tmp, 0)
1005 idata = idata + 1
1006 data_tmp = full_data(idata)
1007 data_tmp = ishft(data_tmp, 62)
1008 data_tmp = iand(data_tmp, mask_left(0))
1009 pack_tmp = ior(pack_tmp, data_tmp)
1010 ipack = ipack + 1
1011 packed_data(ipack) = pack_tmp
1012 data_tmp = full_data(idata)
1013 pack_tmp = ishft(data_tmp, 62)
1014 pack_tmp = ishft(pack_tmp, -2)
1015 idata = idata + 1
1016 data_tmp = full_data(idata)
1017 data_tmp = ishft(data_tmp, 62)
1018 pack_tmp = ior(pack_tmp, data_tmp)
1019 pack_tmp = ishft(pack_tmp, -2)
1020 idata = idata + 1
1021 data_tmp = full_data(idata)
1022 data_tmp = ishft(data_tmp, 62)
1023 pack_tmp = ior(pack_tmp, data_tmp)
1024 pack_tmp = ishft(pack_tmp, -2)
1025 idata = idata + 1
1026 data_tmp = full_data(idata)
1027 data_tmp = ishft(data_tmp, 62)
1028 pack_tmp = ior(pack_tmp, data_tmp)
1029 pack_tmp = ishft(pack_tmp, -2)
1030 idata = idata + 1
1031 data_tmp = full_data(idata)
1032 data_tmp = ishft(data_tmp, 62)
1033 pack_tmp = ior(pack_tmp, data_tmp)
1034 pack_tmp = ishft(pack_tmp, -2)
1035 idata = idata + 1
1036 data_tmp = full_data(idata)
1037 data_tmp = ishft(data_tmp, 62)
1038 pack_tmp = ior(pack_tmp, data_tmp)
1039 pack_tmp = ishft(pack_tmp, -2)
1040 idata = idata + 1
1041 data_tmp = full_data(idata)
1042 data_tmp = ishft(data_tmp, 62)
1043 pack_tmp = ior(pack_tmp, data_tmp)
1044 pack_tmp = ishft(pack_tmp, -2)
1045 idata = idata + 1
1046 data_tmp = full_data(idata)
1047 data_tmp = ishft(data_tmp, 62)
1048 pack_tmp = ior(pack_tmp, data_tmp)
1049 pack_tmp = ishft(pack_tmp, -2)
1050 idata = idata + 1
1051 data_tmp = full_data(idata)
1052 data_tmp = ishft(data_tmp, 62)
1053 pack_tmp = ior(pack_tmp, data_tmp)
1054 pack_tmp = ishft(pack_tmp, -2)
1055 idata = idata + 1
1056 data_tmp = full_data(idata)
1057 data_tmp = ishft(data_tmp, 62)
1058 pack_tmp = ior(pack_tmp, data_tmp)
1059 pack_tmp = ishft(pack_tmp, -2)
1060 idata = idata + 1
1061 data_tmp = full_data(idata)
1062 data_tmp = ishft(data_tmp, 62)
1063 pack_tmp = ior(pack_tmp, data_tmp)
1064 pack_tmp = ishft(pack_tmp, -2)
1065 idata = idata + 1
1066 data_tmp = full_data(idata)
1067 data_tmp = ishft(data_tmp, 62)
1068 pack_tmp = ior(pack_tmp, data_tmp)
1069 pack_tmp = ishft(pack_tmp, -2)
1070 idata = idata + 1
1071 data_tmp = full_data(idata)
1072 data_tmp = ishft(data_tmp, 62)
1073 pack_tmp = ior(pack_tmp, data_tmp)
1074 pack_tmp = ishft(pack_tmp, -2)
1075 idata = idata + 1
1076 data_tmp = full_data(idata)
1077 data_tmp = ishft(data_tmp, 62)
1078 pack_tmp = ior(pack_tmp, data_tmp)
1079 pack_tmp = ishft(pack_tmp, -2)
1080 idata = idata + 1
1081 data_tmp = full_data(idata)
1082 data_tmp = ishft(data_tmp, 62)
1083 pack_tmp = ior(pack_tmp, data_tmp)
1084 pack_tmp = ishft(pack_tmp, -2)
1085 idata = idata + 1
1086 data_tmp = full_data(idata)
1087 data_tmp = ishft(data_tmp, 62)
1088 pack_tmp = ior(pack_tmp, data_tmp)
1089 pack_tmp = ishft(pack_tmp, -2)
1090 idata = idata + 1
1091 data_tmp = full_data(idata)
1092 data_tmp = ishft(data_tmp, 62)
1093 pack_tmp = ior(pack_tmp, data_tmp)
1094 pack_tmp = ishft(pack_tmp, -2)
1095 idata = idata + 1
1096 data_tmp = full_data(idata)
1097 data_tmp = ishft(data_tmp, 62)
1098 pack_tmp = ior(pack_tmp, data_tmp)
1099 pack_tmp = ishft(pack_tmp, -2)
1100 idata = idata + 1
1101 data_tmp = full_data(idata)
1102 data_tmp = ishft(data_tmp, 62)
1103 pack_tmp = ior(pack_tmp, data_tmp)
1104 pack_tmp = ishft(pack_tmp, -2)
1105 idata = idata + 1
1106 data_tmp = full_data(idata)
1107 data_tmp = ishft(data_tmp, 62)
1108 pack_tmp = ior(pack_tmp, data_tmp)
1109 pack_tmp = ishft(pack_tmp, -2)
1110 idata = idata + 1
1111 data_tmp = full_data(idata)
1112 data_tmp = ishft(data_tmp, 62)
1113 pack_tmp = ior(pack_tmp, data_tmp)
1114 pack_tmp = ishft(pack_tmp, -2)
1115 idata = idata + 1
1116 data_tmp = full_data(idata)
1117 data_tmp = ishft(data_tmp, 62)
1118 pack_tmp = ior(pack_tmp, data_tmp)
1119 pack_tmp = ishft(pack_tmp, -2)
1120 idata = idata + 1
1121 data_tmp = full_data(idata)
1122 data_tmp = ishft(data_tmp, 62)
1123 pack_tmp = ior(pack_tmp, data_tmp)
1124 pack_tmp = ishft(pack_tmp, -2)
1125 idata = idata + 1
1126 data_tmp = full_data(idata)
1127 data_tmp = ishft(data_tmp, 62)
1128 pack_tmp = ior(pack_tmp, data_tmp)
1129 pack_tmp = ishft(pack_tmp, -2)
1130 idata = idata + 1
1131 data_tmp = full_data(idata)
1132 data_tmp = ishft(data_tmp, 62)
1133 pack_tmp = ior(pack_tmp, data_tmp)
1134 pack_tmp = ishft(pack_tmp, -2)
1135 idata = idata + 1
1136 data_tmp = full_data(idata)
1137 data_tmp = ishft(data_tmp, 62)
1138 pack_tmp = ior(pack_tmp, data_tmp)
1139 pack_tmp = ishft(pack_tmp, -2)
1140 idata = idata + 1
1141 data_tmp = full_data(idata)
1142 data_tmp = ishft(data_tmp, 62)
1143 pack_tmp = ior(pack_tmp, data_tmp)
1144 pack_tmp = ishft(pack_tmp, -2)
1145 idata = idata + 1
1146 data_tmp = full_data(idata)
1147 data_tmp = ishft(data_tmp, 62)
1148 pack_tmp = ior(pack_tmp, data_tmp)
1149 pack_tmp = ishft(pack_tmp, -2)
1150 idata = idata + 1
1151 data_tmp = full_data(idata)
1152 data_tmp = ishft(data_tmp, 62)
1153 pack_tmp = ior(pack_tmp, data_tmp)
1154 pack_tmp = ishft(pack_tmp, -2)
1155 idata = idata + 1
1156 data_tmp = full_data(idata)
1157 data_tmp = ishft(data_tmp, 62)
1158 pack_tmp = ior(pack_tmp, data_tmp)
1159 pack_tmp = ishft(pack_tmp, -2)
1160 idata = idata + 1
1161 data_tmp = full_data(idata)
1162 data_tmp = ishft(data_tmp, 62)
1163 pack_tmp = ior(pack_tmp, data_tmp)
1164 pack_tmp = ishft(pack_tmp, -2)
1165 idata = idata + 1
1166 data_tmp = full_data(idata)
1167 data_tmp = ishft(data_tmp, 62)
1168 pack_tmp = ior(pack_tmp, data_tmp)
1169 pack_tmp = ishft(pack_tmp, 0)
1170 pack_tmp = ishft(pack_tmp, 0)
1171 ipack = ipack + 1
1172 packed_data(ipack) = pack_tmp
1173 END DO
1174 IF (ndata_rep < ndata) THEN
1175 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
1176 END IF
1177 END SUBROUTINE ints2bits_2
1178
1179! **************************************************************************************************
1180!> \brief ...
1181!> \param Ndata ...
1182!> \param packed_data ...
1183!> \param full_data ...
1184! **************************************************************************************************
1185 SUBROUTINE bits2ints_2(Ndata, packed_data, full_data)
1186 INTEGER, INTENT(IN) :: Ndata
1187 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
1188 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
1189
1190 INTEGER, PARAMETER :: Nbits = 2
1191
1192 INTEGER :: idata, ipack, kdata, Ndata_rep
1193 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
1194
1195 ipack = 0
1196 idata = 0
1197 pack_tmp = 0
1198 ndata_rep = (ndata/64)*64
1199 DO kdata = 1, ndata_rep, 64
1200 idata = idata + 1
1201 data_tmp = ishft(pack_tmp, 2)
1202 ipack = ipack + 1
1203 pack_tmp = packed_data(ipack)
1204 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
1205 pack_tmp = ishft(pack_tmp, -2)
1206 idata = idata + 1
1207 data_tmp = iand(pack_tmp, mask_right(nbits))
1208 full_data(idata) = data_tmp
1209 pack_tmp = ishft(pack_tmp, -nbits)
1210 idata = idata + 1
1211 data_tmp = iand(pack_tmp, mask_right(nbits))
1212 full_data(idata) = data_tmp
1213 pack_tmp = ishft(pack_tmp, -nbits)
1214 idata = idata + 1
1215 data_tmp = iand(pack_tmp, mask_right(nbits))
1216 full_data(idata) = data_tmp
1217 pack_tmp = ishft(pack_tmp, -nbits)
1218 idata = idata + 1
1219 data_tmp = iand(pack_tmp, mask_right(nbits))
1220 full_data(idata) = data_tmp
1221 pack_tmp = ishft(pack_tmp, -nbits)
1222 idata = idata + 1
1223 data_tmp = iand(pack_tmp, mask_right(nbits))
1224 full_data(idata) = data_tmp
1225 pack_tmp = ishft(pack_tmp, -nbits)
1226 idata = idata + 1
1227 data_tmp = iand(pack_tmp, mask_right(nbits))
1228 full_data(idata) = data_tmp
1229 pack_tmp = ishft(pack_tmp, -nbits)
1230 idata = idata + 1
1231 data_tmp = iand(pack_tmp, mask_right(nbits))
1232 full_data(idata) = data_tmp
1233 pack_tmp = ishft(pack_tmp, -nbits)
1234 idata = idata + 1
1235 data_tmp = iand(pack_tmp, mask_right(nbits))
1236 full_data(idata) = data_tmp
1237 pack_tmp = ishft(pack_tmp, -nbits)
1238 idata = idata + 1
1239 data_tmp = iand(pack_tmp, mask_right(nbits))
1240 full_data(idata) = data_tmp
1241 pack_tmp = ishft(pack_tmp, -nbits)
1242 idata = idata + 1
1243 data_tmp = iand(pack_tmp, mask_right(nbits))
1244 full_data(idata) = data_tmp
1245 pack_tmp = ishft(pack_tmp, -nbits)
1246 idata = idata + 1
1247 data_tmp = iand(pack_tmp, mask_right(nbits))
1248 full_data(idata) = data_tmp
1249 pack_tmp = ishft(pack_tmp, -nbits)
1250 idata = idata + 1
1251 data_tmp = iand(pack_tmp, mask_right(nbits))
1252 full_data(idata) = data_tmp
1253 pack_tmp = ishft(pack_tmp, -nbits)
1254 idata = idata + 1
1255 data_tmp = iand(pack_tmp, mask_right(nbits))
1256 full_data(idata) = data_tmp
1257 pack_tmp = ishft(pack_tmp, -nbits)
1258 idata = idata + 1
1259 data_tmp = iand(pack_tmp, mask_right(nbits))
1260 full_data(idata) = data_tmp
1261 pack_tmp = ishft(pack_tmp, -nbits)
1262 idata = idata + 1
1263 data_tmp = iand(pack_tmp, mask_right(nbits))
1264 full_data(idata) = data_tmp
1265 pack_tmp = ishft(pack_tmp, -nbits)
1266 idata = idata + 1
1267 data_tmp = iand(pack_tmp, mask_right(nbits))
1268 full_data(idata) = data_tmp
1269 pack_tmp = ishft(pack_tmp, -nbits)
1270 idata = idata + 1
1271 data_tmp = iand(pack_tmp, mask_right(nbits))
1272 full_data(idata) = data_tmp
1273 pack_tmp = ishft(pack_tmp, -nbits)
1274 idata = idata + 1
1275 data_tmp = iand(pack_tmp, mask_right(nbits))
1276 full_data(idata) = data_tmp
1277 pack_tmp = ishft(pack_tmp, -nbits)
1278 idata = idata + 1
1279 data_tmp = iand(pack_tmp, mask_right(nbits))
1280 full_data(idata) = data_tmp
1281 pack_tmp = ishft(pack_tmp, -nbits)
1282 idata = idata + 1
1283 data_tmp = iand(pack_tmp, mask_right(nbits))
1284 full_data(idata) = data_tmp
1285 pack_tmp = ishft(pack_tmp, -nbits)
1286 idata = idata + 1
1287 data_tmp = iand(pack_tmp, mask_right(nbits))
1288 full_data(idata) = data_tmp
1289 pack_tmp = ishft(pack_tmp, -nbits)
1290 idata = idata + 1
1291 data_tmp = iand(pack_tmp, mask_right(nbits))
1292 full_data(idata) = data_tmp
1293 pack_tmp = ishft(pack_tmp, -nbits)
1294 idata = idata + 1
1295 data_tmp = iand(pack_tmp, mask_right(nbits))
1296 full_data(idata) = data_tmp
1297 pack_tmp = ishft(pack_tmp, -nbits)
1298 idata = idata + 1
1299 data_tmp = iand(pack_tmp, mask_right(nbits))
1300 full_data(idata) = data_tmp
1301 pack_tmp = ishft(pack_tmp, -nbits)
1302 idata = idata + 1
1303 data_tmp = iand(pack_tmp, mask_right(nbits))
1304 full_data(idata) = data_tmp
1305 pack_tmp = ishft(pack_tmp, -nbits)
1306 idata = idata + 1
1307 data_tmp = iand(pack_tmp, mask_right(nbits))
1308 full_data(idata) = data_tmp
1309 pack_tmp = ishft(pack_tmp, -nbits)
1310 idata = idata + 1
1311 data_tmp = iand(pack_tmp, mask_right(nbits))
1312 full_data(idata) = data_tmp
1313 pack_tmp = ishft(pack_tmp, -nbits)
1314 idata = idata + 1
1315 data_tmp = iand(pack_tmp, mask_right(nbits))
1316 full_data(idata) = data_tmp
1317 pack_tmp = ishft(pack_tmp, -nbits)
1318 idata = idata + 1
1319 data_tmp = iand(pack_tmp, mask_right(nbits))
1320 full_data(idata) = data_tmp
1321 pack_tmp = ishft(pack_tmp, -nbits)
1322 idata = idata + 1
1323 data_tmp = iand(pack_tmp, mask_right(nbits))
1324 full_data(idata) = data_tmp
1325 pack_tmp = ishft(pack_tmp, -nbits)
1326 idata = idata + 1
1327 data_tmp = iand(pack_tmp, mask_right(nbits))
1328 full_data(idata) = data_tmp
1329 pack_tmp = ishft(pack_tmp, -nbits)
1330 idata = idata + 1
1331 data_tmp = ishft(pack_tmp, 2)
1332 ipack = ipack + 1
1333 pack_tmp = packed_data(ipack)
1334 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
1335 pack_tmp = ishft(pack_tmp, -2)
1336 idata = idata + 1
1337 data_tmp = iand(pack_tmp, mask_right(nbits))
1338 full_data(idata) = data_tmp
1339 pack_tmp = ishft(pack_tmp, -nbits)
1340 idata = idata + 1
1341 data_tmp = iand(pack_tmp, mask_right(nbits))
1342 full_data(idata) = data_tmp
1343 pack_tmp = ishft(pack_tmp, -nbits)
1344 idata = idata + 1
1345 data_tmp = iand(pack_tmp, mask_right(nbits))
1346 full_data(idata) = data_tmp
1347 pack_tmp = ishft(pack_tmp, -nbits)
1348 idata = idata + 1
1349 data_tmp = iand(pack_tmp, mask_right(nbits))
1350 full_data(idata) = data_tmp
1351 pack_tmp = ishft(pack_tmp, -nbits)
1352 idata = idata + 1
1353 data_tmp = iand(pack_tmp, mask_right(nbits))
1354 full_data(idata) = data_tmp
1355 pack_tmp = ishft(pack_tmp, -nbits)
1356 idata = idata + 1
1357 data_tmp = iand(pack_tmp, mask_right(nbits))
1358 full_data(idata) = data_tmp
1359 pack_tmp = ishft(pack_tmp, -nbits)
1360 idata = idata + 1
1361 data_tmp = iand(pack_tmp, mask_right(nbits))
1362 full_data(idata) = data_tmp
1363 pack_tmp = ishft(pack_tmp, -nbits)
1364 idata = idata + 1
1365 data_tmp = iand(pack_tmp, mask_right(nbits))
1366 full_data(idata) = data_tmp
1367 pack_tmp = ishft(pack_tmp, -nbits)
1368 idata = idata + 1
1369 data_tmp = iand(pack_tmp, mask_right(nbits))
1370 full_data(idata) = data_tmp
1371 pack_tmp = ishft(pack_tmp, -nbits)
1372 idata = idata + 1
1373 data_tmp = iand(pack_tmp, mask_right(nbits))
1374 full_data(idata) = data_tmp
1375 pack_tmp = ishft(pack_tmp, -nbits)
1376 idata = idata + 1
1377 data_tmp = iand(pack_tmp, mask_right(nbits))
1378 full_data(idata) = data_tmp
1379 pack_tmp = ishft(pack_tmp, -nbits)
1380 idata = idata + 1
1381 data_tmp = iand(pack_tmp, mask_right(nbits))
1382 full_data(idata) = data_tmp
1383 pack_tmp = ishft(pack_tmp, -nbits)
1384 idata = idata + 1
1385 data_tmp = iand(pack_tmp, mask_right(nbits))
1386 full_data(idata) = data_tmp
1387 pack_tmp = ishft(pack_tmp, -nbits)
1388 idata = idata + 1
1389 data_tmp = iand(pack_tmp, mask_right(nbits))
1390 full_data(idata) = data_tmp
1391 pack_tmp = ishft(pack_tmp, -nbits)
1392 idata = idata + 1
1393 data_tmp = iand(pack_tmp, mask_right(nbits))
1394 full_data(idata) = data_tmp
1395 pack_tmp = ishft(pack_tmp, -nbits)
1396 idata = idata + 1
1397 data_tmp = iand(pack_tmp, mask_right(nbits))
1398 full_data(idata) = data_tmp
1399 pack_tmp = ishft(pack_tmp, -nbits)
1400 idata = idata + 1
1401 data_tmp = iand(pack_tmp, mask_right(nbits))
1402 full_data(idata) = data_tmp
1403 pack_tmp = ishft(pack_tmp, -nbits)
1404 idata = idata + 1
1405 data_tmp = iand(pack_tmp, mask_right(nbits))
1406 full_data(idata) = data_tmp
1407 pack_tmp = ishft(pack_tmp, -nbits)
1408 idata = idata + 1
1409 data_tmp = iand(pack_tmp, mask_right(nbits))
1410 full_data(idata) = data_tmp
1411 pack_tmp = ishft(pack_tmp, -nbits)
1412 idata = idata + 1
1413 data_tmp = iand(pack_tmp, mask_right(nbits))
1414 full_data(idata) = data_tmp
1415 pack_tmp = ishft(pack_tmp, -nbits)
1416 idata = idata + 1
1417 data_tmp = iand(pack_tmp, mask_right(nbits))
1418 full_data(idata) = data_tmp
1419 pack_tmp = ishft(pack_tmp, -nbits)
1420 idata = idata + 1
1421 data_tmp = iand(pack_tmp, mask_right(nbits))
1422 full_data(idata) = data_tmp
1423 pack_tmp = ishft(pack_tmp, -nbits)
1424 idata = idata + 1
1425 data_tmp = iand(pack_tmp, mask_right(nbits))
1426 full_data(idata) = data_tmp
1427 pack_tmp = ishft(pack_tmp, -nbits)
1428 idata = idata + 1
1429 data_tmp = iand(pack_tmp, mask_right(nbits))
1430 full_data(idata) = data_tmp
1431 pack_tmp = ishft(pack_tmp, -nbits)
1432 idata = idata + 1
1433 data_tmp = iand(pack_tmp, mask_right(nbits))
1434 full_data(idata) = data_tmp
1435 pack_tmp = ishft(pack_tmp, -nbits)
1436 idata = idata + 1
1437 data_tmp = iand(pack_tmp, mask_right(nbits))
1438 full_data(idata) = data_tmp
1439 pack_tmp = ishft(pack_tmp, -nbits)
1440 idata = idata + 1
1441 data_tmp = iand(pack_tmp, mask_right(nbits))
1442 full_data(idata) = data_tmp
1443 pack_tmp = ishft(pack_tmp, -nbits)
1444 idata = idata + 1
1445 data_tmp = iand(pack_tmp, mask_right(nbits))
1446 full_data(idata) = data_tmp
1447 pack_tmp = ishft(pack_tmp, -nbits)
1448 idata = idata + 1
1449 data_tmp = iand(pack_tmp, mask_right(nbits))
1450 full_data(idata) = data_tmp
1451 pack_tmp = ishft(pack_tmp, -nbits)
1452 idata = idata + 1
1453 data_tmp = iand(pack_tmp, mask_right(nbits))
1454 full_data(idata) = data_tmp
1455 pack_tmp = ishft(pack_tmp, -nbits)
1456 idata = idata + 1
1457 data_tmp = iand(pack_tmp, mask_right(nbits))
1458 full_data(idata) = data_tmp
1459 pack_tmp = ishft(pack_tmp, -nbits)
1460 END DO
1461 IF (ndata_rep < ndata) THEN
1462 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
1463 END IF
1464 END SUBROUTINE bits2ints_2
1465
1466! **************************************************************************************************
1467!> \brief ...
1468!> \param Ndata ...
1469!> \param packed_data ...
1470!> \param full_data ...
1471! **************************************************************************************************
1472 SUBROUTINE ints2bits_3(Ndata, packed_data, full_data)
1473 INTEGER, INTENT(IN) :: Ndata
1474 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
1475 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
1476
1477 INTEGER, PARAMETER :: Nbits = 3
1478
1479 INTEGER :: idata, ipack, kdata, Ndata_rep
1480 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
1481
1482 idata = 0
1483 ipack = 0
1484 ndata_rep = (ndata/64)*64
1485 DO kdata = 1, ndata_rep, 64
1486 pack_tmp = 0
1487 idata = idata + 1
1488 data_tmp = full_data(idata)
1489 data_tmp = ishft(data_tmp, 61)
1490 pack_tmp = ior(pack_tmp, data_tmp)
1491 pack_tmp = ishft(pack_tmp, -3)
1492 idata = idata + 1
1493 data_tmp = full_data(idata)
1494 data_tmp = ishft(data_tmp, 61)
1495 pack_tmp = ior(pack_tmp, data_tmp)
1496 pack_tmp = ishft(pack_tmp, -3)
1497 idata = idata + 1
1498 data_tmp = full_data(idata)
1499 data_tmp = ishft(data_tmp, 61)
1500 pack_tmp = ior(pack_tmp, data_tmp)
1501 pack_tmp = ishft(pack_tmp, -3)
1502 idata = idata + 1
1503 data_tmp = full_data(idata)
1504 data_tmp = ishft(data_tmp, 61)
1505 pack_tmp = ior(pack_tmp, data_tmp)
1506 pack_tmp = ishft(pack_tmp, -3)
1507 idata = idata + 1
1508 data_tmp = full_data(idata)
1509 data_tmp = ishft(data_tmp, 61)
1510 pack_tmp = ior(pack_tmp, data_tmp)
1511 pack_tmp = ishft(pack_tmp, -3)
1512 idata = idata + 1
1513 data_tmp = full_data(idata)
1514 data_tmp = ishft(data_tmp, 61)
1515 pack_tmp = ior(pack_tmp, data_tmp)
1516 pack_tmp = ishft(pack_tmp, -3)
1517 idata = idata + 1
1518 data_tmp = full_data(idata)
1519 data_tmp = ishft(data_tmp, 61)
1520 pack_tmp = ior(pack_tmp, data_tmp)
1521 pack_tmp = ishft(pack_tmp, -3)
1522 idata = idata + 1
1523 data_tmp = full_data(idata)
1524 data_tmp = ishft(data_tmp, 61)
1525 pack_tmp = ior(pack_tmp, data_tmp)
1526 pack_tmp = ishft(pack_tmp, -3)
1527 idata = idata + 1
1528 data_tmp = full_data(idata)
1529 data_tmp = ishft(data_tmp, 61)
1530 pack_tmp = ior(pack_tmp, data_tmp)
1531 pack_tmp = ishft(pack_tmp, -3)
1532 idata = idata + 1
1533 data_tmp = full_data(idata)
1534 data_tmp = ishft(data_tmp, 61)
1535 pack_tmp = ior(pack_tmp, data_tmp)
1536 pack_tmp = ishft(pack_tmp, -3)
1537 idata = idata + 1
1538 data_tmp = full_data(idata)
1539 data_tmp = ishft(data_tmp, 61)
1540 pack_tmp = ior(pack_tmp, data_tmp)
1541 pack_tmp = ishft(pack_tmp, -3)
1542 idata = idata + 1
1543 data_tmp = full_data(idata)
1544 data_tmp = ishft(data_tmp, 61)
1545 pack_tmp = ior(pack_tmp, data_tmp)
1546 pack_tmp = ishft(pack_tmp, -3)
1547 idata = idata + 1
1548 data_tmp = full_data(idata)
1549 data_tmp = ishft(data_tmp, 61)
1550 pack_tmp = ior(pack_tmp, data_tmp)
1551 pack_tmp = ishft(pack_tmp, -3)
1552 idata = idata + 1
1553 data_tmp = full_data(idata)
1554 data_tmp = ishft(data_tmp, 61)
1555 pack_tmp = ior(pack_tmp, data_tmp)
1556 pack_tmp = ishft(pack_tmp, -3)
1557 idata = idata + 1
1558 data_tmp = full_data(idata)
1559 data_tmp = ishft(data_tmp, 61)
1560 pack_tmp = ior(pack_tmp, data_tmp)
1561 pack_tmp = ishft(pack_tmp, -3)
1562 idata = idata + 1
1563 data_tmp = full_data(idata)
1564 data_tmp = ishft(data_tmp, 61)
1565 pack_tmp = ior(pack_tmp, data_tmp)
1566 pack_tmp = ishft(pack_tmp, -3)
1567 idata = idata + 1
1568 data_tmp = full_data(idata)
1569 data_tmp = ishft(data_tmp, 61)
1570 pack_tmp = ior(pack_tmp, data_tmp)
1571 pack_tmp = ishft(pack_tmp, -3)
1572 idata = idata + 1
1573 data_tmp = full_data(idata)
1574 data_tmp = ishft(data_tmp, 61)
1575 pack_tmp = ior(pack_tmp, data_tmp)
1576 pack_tmp = ishft(pack_tmp, -3)
1577 idata = idata + 1
1578 data_tmp = full_data(idata)
1579 data_tmp = ishft(data_tmp, 61)
1580 pack_tmp = ior(pack_tmp, data_tmp)
1581 pack_tmp = ishft(pack_tmp, -3)
1582 idata = idata + 1
1583 data_tmp = full_data(idata)
1584 data_tmp = ishft(data_tmp, 61)
1585 pack_tmp = ior(pack_tmp, data_tmp)
1586 pack_tmp = ishft(pack_tmp, -3)
1587 idata = idata + 1
1588 data_tmp = full_data(idata)
1589 data_tmp = ishft(data_tmp, 61)
1590 pack_tmp = ior(pack_tmp, data_tmp)
1591 pack_tmp = ishft(pack_tmp, -1)
1592 idata = idata + 1
1593 data_tmp = full_data(idata)
1594 data_tmp = ishft(data_tmp, 61)
1595 data_tmp = iand(data_tmp, mask_left(1))
1596 pack_tmp = ior(pack_tmp, data_tmp)
1597 ipack = ipack + 1
1598 packed_data(ipack) = pack_tmp
1599 data_tmp = full_data(idata)
1600 pack_tmp = ishft(data_tmp, 62)
1601 pack_tmp = ishft(pack_tmp, -3)
1602 idata = idata + 1
1603 data_tmp = full_data(idata)
1604 data_tmp = ishft(data_tmp, 61)
1605 pack_tmp = ior(pack_tmp, data_tmp)
1606 pack_tmp = ishft(pack_tmp, -3)
1607 idata = idata + 1
1608 data_tmp = full_data(idata)
1609 data_tmp = ishft(data_tmp, 61)
1610 pack_tmp = ior(pack_tmp, data_tmp)
1611 pack_tmp = ishft(pack_tmp, -3)
1612 idata = idata + 1
1613 data_tmp = full_data(idata)
1614 data_tmp = ishft(data_tmp, 61)
1615 pack_tmp = ior(pack_tmp, data_tmp)
1616 pack_tmp = ishft(pack_tmp, -3)
1617 idata = idata + 1
1618 data_tmp = full_data(idata)
1619 data_tmp = ishft(data_tmp, 61)
1620 pack_tmp = ior(pack_tmp, data_tmp)
1621 pack_tmp = ishft(pack_tmp, -3)
1622 idata = idata + 1
1623 data_tmp = full_data(idata)
1624 data_tmp = ishft(data_tmp, 61)
1625 pack_tmp = ior(pack_tmp, data_tmp)
1626 pack_tmp = ishft(pack_tmp, -3)
1627 idata = idata + 1
1628 data_tmp = full_data(idata)
1629 data_tmp = ishft(data_tmp, 61)
1630 pack_tmp = ior(pack_tmp, data_tmp)
1631 pack_tmp = ishft(pack_tmp, -3)
1632 idata = idata + 1
1633 data_tmp = full_data(idata)
1634 data_tmp = ishft(data_tmp, 61)
1635 pack_tmp = ior(pack_tmp, data_tmp)
1636 pack_tmp = ishft(pack_tmp, -3)
1637 idata = idata + 1
1638 data_tmp = full_data(idata)
1639 data_tmp = ishft(data_tmp, 61)
1640 pack_tmp = ior(pack_tmp, data_tmp)
1641 pack_tmp = ishft(pack_tmp, -3)
1642 idata = idata + 1
1643 data_tmp = full_data(idata)
1644 data_tmp = ishft(data_tmp, 61)
1645 pack_tmp = ior(pack_tmp, data_tmp)
1646 pack_tmp = ishft(pack_tmp, -3)
1647 idata = idata + 1
1648 data_tmp = full_data(idata)
1649 data_tmp = ishft(data_tmp, 61)
1650 pack_tmp = ior(pack_tmp, data_tmp)
1651 pack_tmp = ishft(pack_tmp, -3)
1652 idata = idata + 1
1653 data_tmp = full_data(idata)
1654 data_tmp = ishft(data_tmp, 61)
1655 pack_tmp = ior(pack_tmp, data_tmp)
1656 pack_tmp = ishft(pack_tmp, -3)
1657 idata = idata + 1
1658 data_tmp = full_data(idata)
1659 data_tmp = ishft(data_tmp, 61)
1660 pack_tmp = ior(pack_tmp, data_tmp)
1661 pack_tmp = ishft(pack_tmp, -3)
1662 idata = idata + 1
1663 data_tmp = full_data(idata)
1664 data_tmp = ishft(data_tmp, 61)
1665 pack_tmp = ior(pack_tmp, data_tmp)
1666 pack_tmp = ishft(pack_tmp, -3)
1667 idata = idata + 1
1668 data_tmp = full_data(idata)
1669 data_tmp = ishft(data_tmp, 61)
1670 pack_tmp = ior(pack_tmp, data_tmp)
1671 pack_tmp = ishft(pack_tmp, -3)
1672 idata = idata + 1
1673 data_tmp = full_data(idata)
1674 data_tmp = ishft(data_tmp, 61)
1675 pack_tmp = ior(pack_tmp, data_tmp)
1676 pack_tmp = ishft(pack_tmp, -3)
1677 idata = idata + 1
1678 data_tmp = full_data(idata)
1679 data_tmp = ishft(data_tmp, 61)
1680 pack_tmp = ior(pack_tmp, data_tmp)
1681 pack_tmp = ishft(pack_tmp, -3)
1682 idata = idata + 1
1683 data_tmp = full_data(idata)
1684 data_tmp = ishft(data_tmp, 61)
1685 pack_tmp = ior(pack_tmp, data_tmp)
1686 pack_tmp = ishft(pack_tmp, -3)
1687 idata = idata + 1
1688 data_tmp = full_data(idata)
1689 data_tmp = ishft(data_tmp, 61)
1690 pack_tmp = ior(pack_tmp, data_tmp)
1691 pack_tmp = ishft(pack_tmp, -3)
1692 idata = idata + 1
1693 data_tmp = full_data(idata)
1694 data_tmp = ishft(data_tmp, 61)
1695 pack_tmp = ior(pack_tmp, data_tmp)
1696 pack_tmp = ishft(pack_tmp, -3)
1697 idata = idata + 1
1698 data_tmp = full_data(idata)
1699 data_tmp = ishft(data_tmp, 61)
1700 pack_tmp = ior(pack_tmp, data_tmp)
1701 pack_tmp = ishft(pack_tmp, -2)
1702 idata = idata + 1
1703 data_tmp = full_data(idata)
1704 data_tmp = ishft(data_tmp, 61)
1705 data_tmp = iand(data_tmp, mask_left(2))
1706 pack_tmp = ior(pack_tmp, data_tmp)
1707 ipack = ipack + 1
1708 packed_data(ipack) = pack_tmp
1709 data_tmp = full_data(idata)
1710 pack_tmp = ishft(data_tmp, 63)
1711 pack_tmp = ishft(pack_tmp, -3)
1712 idata = idata + 1
1713 data_tmp = full_data(idata)
1714 data_tmp = ishft(data_tmp, 61)
1715 pack_tmp = ior(pack_tmp, data_tmp)
1716 pack_tmp = ishft(pack_tmp, -3)
1717 idata = idata + 1
1718 data_tmp = full_data(idata)
1719 data_tmp = ishft(data_tmp, 61)
1720 pack_tmp = ior(pack_tmp, data_tmp)
1721 pack_tmp = ishft(pack_tmp, -3)
1722 idata = idata + 1
1723 data_tmp = full_data(idata)
1724 data_tmp = ishft(data_tmp, 61)
1725 pack_tmp = ior(pack_tmp, data_tmp)
1726 pack_tmp = ishft(pack_tmp, -3)
1727 idata = idata + 1
1728 data_tmp = full_data(idata)
1729 data_tmp = ishft(data_tmp, 61)
1730 pack_tmp = ior(pack_tmp, data_tmp)
1731 pack_tmp = ishft(pack_tmp, -3)
1732 idata = idata + 1
1733 data_tmp = full_data(idata)
1734 data_tmp = ishft(data_tmp, 61)
1735 pack_tmp = ior(pack_tmp, data_tmp)
1736 pack_tmp = ishft(pack_tmp, -3)
1737 idata = idata + 1
1738 data_tmp = full_data(idata)
1739 data_tmp = ishft(data_tmp, 61)
1740 pack_tmp = ior(pack_tmp, data_tmp)
1741 pack_tmp = ishft(pack_tmp, -3)
1742 idata = idata + 1
1743 data_tmp = full_data(idata)
1744 data_tmp = ishft(data_tmp, 61)
1745 pack_tmp = ior(pack_tmp, data_tmp)
1746 pack_tmp = ishft(pack_tmp, -3)
1747 idata = idata + 1
1748 data_tmp = full_data(idata)
1749 data_tmp = ishft(data_tmp, 61)
1750 pack_tmp = ior(pack_tmp, data_tmp)
1751 pack_tmp = ishft(pack_tmp, -3)
1752 idata = idata + 1
1753 data_tmp = full_data(idata)
1754 data_tmp = ishft(data_tmp, 61)
1755 pack_tmp = ior(pack_tmp, data_tmp)
1756 pack_tmp = ishft(pack_tmp, -3)
1757 idata = idata + 1
1758 data_tmp = full_data(idata)
1759 data_tmp = ishft(data_tmp, 61)
1760 pack_tmp = ior(pack_tmp, data_tmp)
1761 pack_tmp = ishft(pack_tmp, -3)
1762 idata = idata + 1
1763 data_tmp = full_data(idata)
1764 data_tmp = ishft(data_tmp, 61)
1765 pack_tmp = ior(pack_tmp, data_tmp)
1766 pack_tmp = ishft(pack_tmp, -3)
1767 idata = idata + 1
1768 data_tmp = full_data(idata)
1769 data_tmp = ishft(data_tmp, 61)
1770 pack_tmp = ior(pack_tmp, data_tmp)
1771 pack_tmp = ishft(pack_tmp, -3)
1772 idata = idata + 1
1773 data_tmp = full_data(idata)
1774 data_tmp = ishft(data_tmp, 61)
1775 pack_tmp = ior(pack_tmp, data_tmp)
1776 pack_tmp = ishft(pack_tmp, -3)
1777 idata = idata + 1
1778 data_tmp = full_data(idata)
1779 data_tmp = ishft(data_tmp, 61)
1780 pack_tmp = ior(pack_tmp, data_tmp)
1781 pack_tmp = ishft(pack_tmp, -3)
1782 idata = idata + 1
1783 data_tmp = full_data(idata)
1784 data_tmp = ishft(data_tmp, 61)
1785 pack_tmp = ior(pack_tmp, data_tmp)
1786 pack_tmp = ishft(pack_tmp, -3)
1787 idata = idata + 1
1788 data_tmp = full_data(idata)
1789 data_tmp = ishft(data_tmp, 61)
1790 pack_tmp = ior(pack_tmp, data_tmp)
1791 pack_tmp = ishft(pack_tmp, -3)
1792 idata = idata + 1
1793 data_tmp = full_data(idata)
1794 data_tmp = ishft(data_tmp, 61)
1795 pack_tmp = ior(pack_tmp, data_tmp)
1796 pack_tmp = ishft(pack_tmp, -3)
1797 idata = idata + 1
1798 data_tmp = full_data(idata)
1799 data_tmp = ishft(data_tmp, 61)
1800 pack_tmp = ior(pack_tmp, data_tmp)
1801 pack_tmp = ishft(pack_tmp, -3)
1802 idata = idata + 1
1803 data_tmp = full_data(idata)
1804 data_tmp = ishft(data_tmp, 61)
1805 pack_tmp = ior(pack_tmp, data_tmp)
1806 pack_tmp = ishft(pack_tmp, -3)
1807 idata = idata + 1
1808 data_tmp = full_data(idata)
1809 data_tmp = ishft(data_tmp, 61)
1810 pack_tmp = ior(pack_tmp, data_tmp)
1811 pack_tmp = ishft(pack_tmp, -3)
1812 idata = idata + 1
1813 data_tmp = full_data(idata)
1814 data_tmp = ishft(data_tmp, 61)
1815 pack_tmp = ior(pack_tmp, data_tmp)
1816 pack_tmp = ishft(pack_tmp, 0)
1817 pack_tmp = ishft(pack_tmp, 0)
1818 ipack = ipack + 1
1819 packed_data(ipack) = pack_tmp
1820 END DO
1821 IF (ndata_rep < ndata) THEN
1822 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
1823 END IF
1824 END SUBROUTINE ints2bits_3
1825
1826! **************************************************************************************************
1827!> \brief ...
1828!> \param Ndata ...
1829!> \param packed_data ...
1830!> \param full_data ...
1831! **************************************************************************************************
1832 SUBROUTINE bits2ints_3(Ndata, packed_data, full_data)
1833 INTEGER, INTENT(IN) :: Ndata
1834 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
1835 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
1836
1837 INTEGER, PARAMETER :: Nbits = 3
1838
1839 INTEGER :: idata, ipack, kdata, Ndata_rep
1840 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
1841
1842 ipack = 0
1843 idata = 0
1844 pack_tmp = 0
1845 ndata_rep = (ndata/64)*64
1846 DO kdata = 1, ndata_rep, 64
1847 idata = idata + 1
1848 data_tmp = ishft(pack_tmp, 3)
1849 ipack = ipack + 1
1850 pack_tmp = packed_data(ipack)
1851 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
1852 pack_tmp = ishft(pack_tmp, -3)
1853 idata = idata + 1
1854 data_tmp = iand(pack_tmp, mask_right(nbits))
1855 full_data(idata) = data_tmp
1856 pack_tmp = ishft(pack_tmp, -nbits)
1857 idata = idata + 1
1858 data_tmp = iand(pack_tmp, mask_right(nbits))
1859 full_data(idata) = data_tmp
1860 pack_tmp = ishft(pack_tmp, -nbits)
1861 idata = idata + 1
1862 data_tmp = iand(pack_tmp, mask_right(nbits))
1863 full_data(idata) = data_tmp
1864 pack_tmp = ishft(pack_tmp, -nbits)
1865 idata = idata + 1
1866 data_tmp = iand(pack_tmp, mask_right(nbits))
1867 full_data(idata) = data_tmp
1868 pack_tmp = ishft(pack_tmp, -nbits)
1869 idata = idata + 1
1870 data_tmp = iand(pack_tmp, mask_right(nbits))
1871 full_data(idata) = data_tmp
1872 pack_tmp = ishft(pack_tmp, -nbits)
1873 idata = idata + 1
1874 data_tmp = iand(pack_tmp, mask_right(nbits))
1875 full_data(idata) = data_tmp
1876 pack_tmp = ishft(pack_tmp, -nbits)
1877 idata = idata + 1
1878 data_tmp = iand(pack_tmp, mask_right(nbits))
1879 full_data(idata) = data_tmp
1880 pack_tmp = ishft(pack_tmp, -nbits)
1881 idata = idata + 1
1882 data_tmp = iand(pack_tmp, mask_right(nbits))
1883 full_data(idata) = data_tmp
1884 pack_tmp = ishft(pack_tmp, -nbits)
1885 idata = idata + 1
1886 data_tmp = iand(pack_tmp, mask_right(nbits))
1887 full_data(idata) = data_tmp
1888 pack_tmp = ishft(pack_tmp, -nbits)
1889 idata = idata + 1
1890 data_tmp = iand(pack_tmp, mask_right(nbits))
1891 full_data(idata) = data_tmp
1892 pack_tmp = ishft(pack_tmp, -nbits)
1893 idata = idata + 1
1894 data_tmp = iand(pack_tmp, mask_right(nbits))
1895 full_data(idata) = data_tmp
1896 pack_tmp = ishft(pack_tmp, -nbits)
1897 idata = idata + 1
1898 data_tmp = iand(pack_tmp, mask_right(nbits))
1899 full_data(idata) = data_tmp
1900 pack_tmp = ishft(pack_tmp, -nbits)
1901 idata = idata + 1
1902 data_tmp = iand(pack_tmp, mask_right(nbits))
1903 full_data(idata) = data_tmp
1904 pack_tmp = ishft(pack_tmp, -nbits)
1905 idata = idata + 1
1906 data_tmp = iand(pack_tmp, mask_right(nbits))
1907 full_data(idata) = data_tmp
1908 pack_tmp = ishft(pack_tmp, -nbits)
1909 idata = idata + 1
1910 data_tmp = iand(pack_tmp, mask_right(nbits))
1911 full_data(idata) = data_tmp
1912 pack_tmp = ishft(pack_tmp, -nbits)
1913 idata = idata + 1
1914 data_tmp = iand(pack_tmp, mask_right(nbits))
1915 full_data(idata) = data_tmp
1916 pack_tmp = ishft(pack_tmp, -nbits)
1917 idata = idata + 1
1918 data_tmp = iand(pack_tmp, mask_right(nbits))
1919 full_data(idata) = data_tmp
1920 pack_tmp = ishft(pack_tmp, -nbits)
1921 idata = idata + 1
1922 data_tmp = iand(pack_tmp, mask_right(nbits))
1923 full_data(idata) = data_tmp
1924 pack_tmp = ishft(pack_tmp, -nbits)
1925 idata = idata + 1
1926 data_tmp = iand(pack_tmp, mask_right(nbits))
1927 full_data(idata) = data_tmp
1928 pack_tmp = ishft(pack_tmp, -nbits)
1929 idata = idata + 1
1930 data_tmp = iand(pack_tmp, mask_right(nbits))
1931 full_data(idata) = data_tmp
1932 pack_tmp = ishft(pack_tmp, -nbits)
1933 idata = idata + 1
1934 data_tmp = ishft(pack_tmp, 2)
1935 ipack = ipack + 1
1936 pack_tmp = packed_data(ipack)
1937 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
1938 pack_tmp = ishft(pack_tmp, -2)
1939 idata = idata + 1
1940 data_tmp = iand(pack_tmp, mask_right(nbits))
1941 full_data(idata) = data_tmp
1942 pack_tmp = ishft(pack_tmp, -nbits)
1943 idata = idata + 1
1944 data_tmp = iand(pack_tmp, mask_right(nbits))
1945 full_data(idata) = data_tmp
1946 pack_tmp = ishft(pack_tmp, -nbits)
1947 idata = idata + 1
1948 data_tmp = iand(pack_tmp, mask_right(nbits))
1949 full_data(idata) = data_tmp
1950 pack_tmp = ishft(pack_tmp, -nbits)
1951 idata = idata + 1
1952 data_tmp = iand(pack_tmp, mask_right(nbits))
1953 full_data(idata) = data_tmp
1954 pack_tmp = ishft(pack_tmp, -nbits)
1955 idata = idata + 1
1956 data_tmp = iand(pack_tmp, mask_right(nbits))
1957 full_data(idata) = data_tmp
1958 pack_tmp = ishft(pack_tmp, -nbits)
1959 idata = idata + 1
1960 data_tmp = iand(pack_tmp, mask_right(nbits))
1961 full_data(idata) = data_tmp
1962 pack_tmp = ishft(pack_tmp, -nbits)
1963 idata = idata + 1
1964 data_tmp = iand(pack_tmp, mask_right(nbits))
1965 full_data(idata) = data_tmp
1966 pack_tmp = ishft(pack_tmp, -nbits)
1967 idata = idata + 1
1968 data_tmp = iand(pack_tmp, mask_right(nbits))
1969 full_data(idata) = data_tmp
1970 pack_tmp = ishft(pack_tmp, -nbits)
1971 idata = idata + 1
1972 data_tmp = iand(pack_tmp, mask_right(nbits))
1973 full_data(idata) = data_tmp
1974 pack_tmp = ishft(pack_tmp, -nbits)
1975 idata = idata + 1
1976 data_tmp = iand(pack_tmp, mask_right(nbits))
1977 full_data(idata) = data_tmp
1978 pack_tmp = ishft(pack_tmp, -nbits)
1979 idata = idata + 1
1980 data_tmp = iand(pack_tmp, mask_right(nbits))
1981 full_data(idata) = data_tmp
1982 pack_tmp = ishft(pack_tmp, -nbits)
1983 idata = idata + 1
1984 data_tmp = iand(pack_tmp, mask_right(nbits))
1985 full_data(idata) = data_tmp
1986 pack_tmp = ishft(pack_tmp, -nbits)
1987 idata = idata + 1
1988 data_tmp = iand(pack_tmp, mask_right(nbits))
1989 full_data(idata) = data_tmp
1990 pack_tmp = ishft(pack_tmp, -nbits)
1991 idata = idata + 1
1992 data_tmp = iand(pack_tmp, mask_right(nbits))
1993 full_data(idata) = data_tmp
1994 pack_tmp = ishft(pack_tmp, -nbits)
1995 idata = idata + 1
1996 data_tmp = iand(pack_tmp, mask_right(nbits))
1997 full_data(idata) = data_tmp
1998 pack_tmp = ishft(pack_tmp, -nbits)
1999 idata = idata + 1
2000 data_tmp = iand(pack_tmp, mask_right(nbits))
2001 full_data(idata) = data_tmp
2002 pack_tmp = ishft(pack_tmp, -nbits)
2003 idata = idata + 1
2004 data_tmp = iand(pack_tmp, mask_right(nbits))
2005 full_data(idata) = data_tmp
2006 pack_tmp = ishft(pack_tmp, -nbits)
2007 idata = idata + 1
2008 data_tmp = iand(pack_tmp, mask_right(nbits))
2009 full_data(idata) = data_tmp
2010 pack_tmp = ishft(pack_tmp, -nbits)
2011 idata = idata + 1
2012 data_tmp = iand(pack_tmp, mask_right(nbits))
2013 full_data(idata) = data_tmp
2014 pack_tmp = ishft(pack_tmp, -nbits)
2015 idata = idata + 1
2016 data_tmp = iand(pack_tmp, mask_right(nbits))
2017 full_data(idata) = data_tmp
2018 pack_tmp = ishft(pack_tmp, -nbits)
2019 idata = idata + 1
2020 data_tmp = ishft(pack_tmp, 1)
2021 ipack = ipack + 1
2022 pack_tmp = packed_data(ipack)
2023 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
2024 pack_tmp = ishft(pack_tmp, -1)
2025 idata = idata + 1
2026 data_tmp = iand(pack_tmp, mask_right(nbits))
2027 full_data(idata) = data_tmp
2028 pack_tmp = ishft(pack_tmp, -nbits)
2029 idata = idata + 1
2030 data_tmp = iand(pack_tmp, mask_right(nbits))
2031 full_data(idata) = data_tmp
2032 pack_tmp = ishft(pack_tmp, -nbits)
2033 idata = idata + 1
2034 data_tmp = iand(pack_tmp, mask_right(nbits))
2035 full_data(idata) = data_tmp
2036 pack_tmp = ishft(pack_tmp, -nbits)
2037 idata = idata + 1
2038 data_tmp = iand(pack_tmp, mask_right(nbits))
2039 full_data(idata) = data_tmp
2040 pack_tmp = ishft(pack_tmp, -nbits)
2041 idata = idata + 1
2042 data_tmp = iand(pack_tmp, mask_right(nbits))
2043 full_data(idata) = data_tmp
2044 pack_tmp = ishft(pack_tmp, -nbits)
2045 idata = idata + 1
2046 data_tmp = iand(pack_tmp, mask_right(nbits))
2047 full_data(idata) = data_tmp
2048 pack_tmp = ishft(pack_tmp, -nbits)
2049 idata = idata + 1
2050 data_tmp = iand(pack_tmp, mask_right(nbits))
2051 full_data(idata) = data_tmp
2052 pack_tmp = ishft(pack_tmp, -nbits)
2053 idata = idata + 1
2054 data_tmp = iand(pack_tmp, mask_right(nbits))
2055 full_data(idata) = data_tmp
2056 pack_tmp = ishft(pack_tmp, -nbits)
2057 idata = idata + 1
2058 data_tmp = iand(pack_tmp, mask_right(nbits))
2059 full_data(idata) = data_tmp
2060 pack_tmp = ishft(pack_tmp, -nbits)
2061 idata = idata + 1
2062 data_tmp = iand(pack_tmp, mask_right(nbits))
2063 full_data(idata) = data_tmp
2064 pack_tmp = ishft(pack_tmp, -nbits)
2065 idata = idata + 1
2066 data_tmp = iand(pack_tmp, mask_right(nbits))
2067 full_data(idata) = data_tmp
2068 pack_tmp = ishft(pack_tmp, -nbits)
2069 idata = idata + 1
2070 data_tmp = iand(pack_tmp, mask_right(nbits))
2071 full_data(idata) = data_tmp
2072 pack_tmp = ishft(pack_tmp, -nbits)
2073 idata = idata + 1
2074 data_tmp = iand(pack_tmp, mask_right(nbits))
2075 full_data(idata) = data_tmp
2076 pack_tmp = ishft(pack_tmp, -nbits)
2077 idata = idata + 1
2078 data_tmp = iand(pack_tmp, mask_right(nbits))
2079 full_data(idata) = data_tmp
2080 pack_tmp = ishft(pack_tmp, -nbits)
2081 idata = idata + 1
2082 data_tmp = iand(pack_tmp, mask_right(nbits))
2083 full_data(idata) = data_tmp
2084 pack_tmp = ishft(pack_tmp, -nbits)
2085 idata = idata + 1
2086 data_tmp = iand(pack_tmp, mask_right(nbits))
2087 full_data(idata) = data_tmp
2088 pack_tmp = ishft(pack_tmp, -nbits)
2089 idata = idata + 1
2090 data_tmp = iand(pack_tmp, mask_right(nbits))
2091 full_data(idata) = data_tmp
2092 pack_tmp = ishft(pack_tmp, -nbits)
2093 idata = idata + 1
2094 data_tmp = iand(pack_tmp, mask_right(nbits))
2095 full_data(idata) = data_tmp
2096 pack_tmp = ishft(pack_tmp, -nbits)
2097 idata = idata + 1
2098 data_tmp = iand(pack_tmp, mask_right(nbits))
2099 full_data(idata) = data_tmp
2100 pack_tmp = ishft(pack_tmp, -nbits)
2101 idata = idata + 1
2102 data_tmp = iand(pack_tmp, mask_right(nbits))
2103 full_data(idata) = data_tmp
2104 pack_tmp = ishft(pack_tmp, -nbits)
2105 idata = idata + 1
2106 data_tmp = iand(pack_tmp, mask_right(nbits))
2107 full_data(idata) = data_tmp
2108 pack_tmp = ishft(pack_tmp, -nbits)
2109 END DO
2110 IF (ndata_rep < ndata) THEN
2111 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
2112 END IF
2113 END SUBROUTINE bits2ints_3
2114
2115! **************************************************************************************************
2116!> \brief ...
2117!> \param Ndata ...
2118!> \param packed_data ...
2119!> \param full_data ...
2120! **************************************************************************************************
2121 SUBROUTINE ints2bits_4(Ndata, packed_data, full_data)
2122 INTEGER, INTENT(IN) :: Ndata
2123 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
2124 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
2125
2126 INTEGER, PARAMETER :: Nbits = 4
2127
2128 INTEGER :: idata, ipack, kdata, Ndata_rep
2129 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
2130
2131 idata = 0
2132 ipack = 0
2133 ndata_rep = (ndata/64)*64
2134 DO kdata = 1, ndata_rep, 64
2135 pack_tmp = 0
2136 idata = idata + 1
2137 data_tmp = full_data(idata)
2138 data_tmp = ishft(data_tmp, 60)
2139 pack_tmp = ior(pack_tmp, data_tmp)
2140 pack_tmp = ishft(pack_tmp, -4)
2141 idata = idata + 1
2142 data_tmp = full_data(idata)
2143 data_tmp = ishft(data_tmp, 60)
2144 pack_tmp = ior(pack_tmp, data_tmp)
2145 pack_tmp = ishft(pack_tmp, -4)
2146 idata = idata + 1
2147 data_tmp = full_data(idata)
2148 data_tmp = ishft(data_tmp, 60)
2149 pack_tmp = ior(pack_tmp, data_tmp)
2150 pack_tmp = ishft(pack_tmp, -4)
2151 idata = idata + 1
2152 data_tmp = full_data(idata)
2153 data_tmp = ishft(data_tmp, 60)
2154 pack_tmp = ior(pack_tmp, data_tmp)
2155 pack_tmp = ishft(pack_tmp, -4)
2156 idata = idata + 1
2157 data_tmp = full_data(idata)
2158 data_tmp = ishft(data_tmp, 60)
2159 pack_tmp = ior(pack_tmp, data_tmp)
2160 pack_tmp = ishft(pack_tmp, -4)
2161 idata = idata + 1
2162 data_tmp = full_data(idata)
2163 data_tmp = ishft(data_tmp, 60)
2164 pack_tmp = ior(pack_tmp, data_tmp)
2165 pack_tmp = ishft(pack_tmp, -4)
2166 idata = idata + 1
2167 data_tmp = full_data(idata)
2168 data_tmp = ishft(data_tmp, 60)
2169 pack_tmp = ior(pack_tmp, data_tmp)
2170 pack_tmp = ishft(pack_tmp, -4)
2171 idata = idata + 1
2172 data_tmp = full_data(idata)
2173 data_tmp = ishft(data_tmp, 60)
2174 pack_tmp = ior(pack_tmp, data_tmp)
2175 pack_tmp = ishft(pack_tmp, -4)
2176 idata = idata + 1
2177 data_tmp = full_data(idata)
2178 data_tmp = ishft(data_tmp, 60)
2179 pack_tmp = ior(pack_tmp, data_tmp)
2180 pack_tmp = ishft(pack_tmp, -4)
2181 idata = idata + 1
2182 data_tmp = full_data(idata)
2183 data_tmp = ishft(data_tmp, 60)
2184 pack_tmp = ior(pack_tmp, data_tmp)
2185 pack_tmp = ishft(pack_tmp, -4)
2186 idata = idata + 1
2187 data_tmp = full_data(idata)
2188 data_tmp = ishft(data_tmp, 60)
2189 pack_tmp = ior(pack_tmp, data_tmp)
2190 pack_tmp = ishft(pack_tmp, -4)
2191 idata = idata + 1
2192 data_tmp = full_data(idata)
2193 data_tmp = ishft(data_tmp, 60)
2194 pack_tmp = ior(pack_tmp, data_tmp)
2195 pack_tmp = ishft(pack_tmp, -4)
2196 idata = idata + 1
2197 data_tmp = full_data(idata)
2198 data_tmp = ishft(data_tmp, 60)
2199 pack_tmp = ior(pack_tmp, data_tmp)
2200 pack_tmp = ishft(pack_tmp, -4)
2201 idata = idata + 1
2202 data_tmp = full_data(idata)
2203 data_tmp = ishft(data_tmp, 60)
2204 pack_tmp = ior(pack_tmp, data_tmp)
2205 pack_tmp = ishft(pack_tmp, -4)
2206 idata = idata + 1
2207 data_tmp = full_data(idata)
2208 data_tmp = ishft(data_tmp, 60)
2209 pack_tmp = ior(pack_tmp, data_tmp)
2210 pack_tmp = ishft(pack_tmp, -4)
2211 idata = idata + 1
2212 data_tmp = full_data(idata)
2213 data_tmp = ishft(data_tmp, 60)
2214 pack_tmp = ior(pack_tmp, data_tmp)
2215 pack_tmp = ishft(pack_tmp, 0)
2216 idata = idata + 1
2217 data_tmp = full_data(idata)
2218 data_tmp = ishft(data_tmp, 60)
2219 data_tmp = iand(data_tmp, mask_left(0))
2220 pack_tmp = ior(pack_tmp, data_tmp)
2221 ipack = ipack + 1
2222 packed_data(ipack) = pack_tmp
2223 data_tmp = full_data(idata)
2224 pack_tmp = ishft(data_tmp, 60)
2225 pack_tmp = ishft(pack_tmp, -4)
2226 idata = idata + 1
2227 data_tmp = full_data(idata)
2228 data_tmp = ishft(data_tmp, 60)
2229 pack_tmp = ior(pack_tmp, data_tmp)
2230 pack_tmp = ishft(pack_tmp, -4)
2231 idata = idata + 1
2232 data_tmp = full_data(idata)
2233 data_tmp = ishft(data_tmp, 60)
2234 pack_tmp = ior(pack_tmp, data_tmp)
2235 pack_tmp = ishft(pack_tmp, -4)
2236 idata = idata + 1
2237 data_tmp = full_data(idata)
2238 data_tmp = ishft(data_tmp, 60)
2239 pack_tmp = ior(pack_tmp, data_tmp)
2240 pack_tmp = ishft(pack_tmp, -4)
2241 idata = idata + 1
2242 data_tmp = full_data(idata)
2243 data_tmp = ishft(data_tmp, 60)
2244 pack_tmp = ior(pack_tmp, data_tmp)
2245 pack_tmp = ishft(pack_tmp, -4)
2246 idata = idata + 1
2247 data_tmp = full_data(idata)
2248 data_tmp = ishft(data_tmp, 60)
2249 pack_tmp = ior(pack_tmp, data_tmp)
2250 pack_tmp = ishft(pack_tmp, -4)
2251 idata = idata + 1
2252 data_tmp = full_data(idata)
2253 data_tmp = ishft(data_tmp, 60)
2254 pack_tmp = ior(pack_tmp, data_tmp)
2255 pack_tmp = ishft(pack_tmp, -4)
2256 idata = idata + 1
2257 data_tmp = full_data(idata)
2258 data_tmp = ishft(data_tmp, 60)
2259 pack_tmp = ior(pack_tmp, data_tmp)
2260 pack_tmp = ishft(pack_tmp, -4)
2261 idata = idata + 1
2262 data_tmp = full_data(idata)
2263 data_tmp = ishft(data_tmp, 60)
2264 pack_tmp = ior(pack_tmp, data_tmp)
2265 pack_tmp = ishft(pack_tmp, -4)
2266 idata = idata + 1
2267 data_tmp = full_data(idata)
2268 data_tmp = ishft(data_tmp, 60)
2269 pack_tmp = ior(pack_tmp, data_tmp)
2270 pack_tmp = ishft(pack_tmp, -4)
2271 idata = idata + 1
2272 data_tmp = full_data(idata)
2273 data_tmp = ishft(data_tmp, 60)
2274 pack_tmp = ior(pack_tmp, data_tmp)
2275 pack_tmp = ishft(pack_tmp, -4)
2276 idata = idata + 1
2277 data_tmp = full_data(idata)
2278 data_tmp = ishft(data_tmp, 60)
2279 pack_tmp = ior(pack_tmp, data_tmp)
2280 pack_tmp = ishft(pack_tmp, -4)
2281 idata = idata + 1
2282 data_tmp = full_data(idata)
2283 data_tmp = ishft(data_tmp, 60)
2284 pack_tmp = ior(pack_tmp, data_tmp)
2285 pack_tmp = ishft(pack_tmp, -4)
2286 idata = idata + 1
2287 data_tmp = full_data(idata)
2288 data_tmp = ishft(data_tmp, 60)
2289 pack_tmp = ior(pack_tmp, data_tmp)
2290 pack_tmp = ishft(pack_tmp, -4)
2291 idata = idata + 1
2292 data_tmp = full_data(idata)
2293 data_tmp = ishft(data_tmp, 60)
2294 pack_tmp = ior(pack_tmp, data_tmp)
2295 pack_tmp = ishft(pack_tmp, -4)
2296 idata = idata + 1
2297 data_tmp = full_data(idata)
2298 data_tmp = ishft(data_tmp, 60)
2299 pack_tmp = ior(pack_tmp, data_tmp)
2300 pack_tmp = ishft(pack_tmp, 0)
2301 idata = idata + 1
2302 data_tmp = full_data(idata)
2303 data_tmp = ishft(data_tmp, 60)
2304 data_tmp = iand(data_tmp, mask_left(0))
2305 pack_tmp = ior(pack_tmp, data_tmp)
2306 ipack = ipack + 1
2307 packed_data(ipack) = pack_tmp
2308 data_tmp = full_data(idata)
2309 pack_tmp = ishft(data_tmp, 60)
2310 pack_tmp = ishft(pack_tmp, -4)
2311 idata = idata + 1
2312 data_tmp = full_data(idata)
2313 data_tmp = ishft(data_tmp, 60)
2314 pack_tmp = ior(pack_tmp, data_tmp)
2315 pack_tmp = ishft(pack_tmp, -4)
2316 idata = idata + 1
2317 data_tmp = full_data(idata)
2318 data_tmp = ishft(data_tmp, 60)
2319 pack_tmp = ior(pack_tmp, data_tmp)
2320 pack_tmp = ishft(pack_tmp, -4)
2321 idata = idata + 1
2322 data_tmp = full_data(idata)
2323 data_tmp = ishft(data_tmp, 60)
2324 pack_tmp = ior(pack_tmp, data_tmp)
2325 pack_tmp = ishft(pack_tmp, -4)
2326 idata = idata + 1
2327 data_tmp = full_data(idata)
2328 data_tmp = ishft(data_tmp, 60)
2329 pack_tmp = ior(pack_tmp, data_tmp)
2330 pack_tmp = ishft(pack_tmp, -4)
2331 idata = idata + 1
2332 data_tmp = full_data(idata)
2333 data_tmp = ishft(data_tmp, 60)
2334 pack_tmp = ior(pack_tmp, data_tmp)
2335 pack_tmp = ishft(pack_tmp, -4)
2336 idata = idata + 1
2337 data_tmp = full_data(idata)
2338 data_tmp = ishft(data_tmp, 60)
2339 pack_tmp = ior(pack_tmp, data_tmp)
2340 pack_tmp = ishft(pack_tmp, -4)
2341 idata = idata + 1
2342 data_tmp = full_data(idata)
2343 data_tmp = ishft(data_tmp, 60)
2344 pack_tmp = ior(pack_tmp, data_tmp)
2345 pack_tmp = ishft(pack_tmp, -4)
2346 idata = idata + 1
2347 data_tmp = full_data(idata)
2348 data_tmp = ishft(data_tmp, 60)
2349 pack_tmp = ior(pack_tmp, data_tmp)
2350 pack_tmp = ishft(pack_tmp, -4)
2351 idata = idata + 1
2352 data_tmp = full_data(idata)
2353 data_tmp = ishft(data_tmp, 60)
2354 pack_tmp = ior(pack_tmp, data_tmp)
2355 pack_tmp = ishft(pack_tmp, -4)
2356 idata = idata + 1
2357 data_tmp = full_data(idata)
2358 data_tmp = ishft(data_tmp, 60)
2359 pack_tmp = ior(pack_tmp, data_tmp)
2360 pack_tmp = ishft(pack_tmp, -4)
2361 idata = idata + 1
2362 data_tmp = full_data(idata)
2363 data_tmp = ishft(data_tmp, 60)
2364 pack_tmp = ior(pack_tmp, data_tmp)
2365 pack_tmp = ishft(pack_tmp, -4)
2366 idata = idata + 1
2367 data_tmp = full_data(idata)
2368 data_tmp = ishft(data_tmp, 60)
2369 pack_tmp = ior(pack_tmp, data_tmp)
2370 pack_tmp = ishft(pack_tmp, -4)
2371 idata = idata + 1
2372 data_tmp = full_data(idata)
2373 data_tmp = ishft(data_tmp, 60)
2374 pack_tmp = ior(pack_tmp, data_tmp)
2375 pack_tmp = ishft(pack_tmp, -4)
2376 idata = idata + 1
2377 data_tmp = full_data(idata)
2378 data_tmp = ishft(data_tmp, 60)
2379 pack_tmp = ior(pack_tmp, data_tmp)
2380 pack_tmp = ishft(pack_tmp, -4)
2381 idata = idata + 1
2382 data_tmp = full_data(idata)
2383 data_tmp = ishft(data_tmp, 60)
2384 pack_tmp = ior(pack_tmp, data_tmp)
2385 pack_tmp = ishft(pack_tmp, 0)
2386 idata = idata + 1
2387 data_tmp = full_data(idata)
2388 data_tmp = ishft(data_tmp, 60)
2389 data_tmp = iand(data_tmp, mask_left(0))
2390 pack_tmp = ior(pack_tmp, data_tmp)
2391 ipack = ipack + 1
2392 packed_data(ipack) = pack_tmp
2393 data_tmp = full_data(idata)
2394 pack_tmp = ishft(data_tmp, 60)
2395 pack_tmp = ishft(pack_tmp, -4)
2396 idata = idata + 1
2397 data_tmp = full_data(idata)
2398 data_tmp = ishft(data_tmp, 60)
2399 pack_tmp = ior(pack_tmp, data_tmp)
2400 pack_tmp = ishft(pack_tmp, -4)
2401 idata = idata + 1
2402 data_tmp = full_data(idata)
2403 data_tmp = ishft(data_tmp, 60)
2404 pack_tmp = ior(pack_tmp, data_tmp)
2405 pack_tmp = ishft(pack_tmp, -4)
2406 idata = idata + 1
2407 data_tmp = full_data(idata)
2408 data_tmp = ishft(data_tmp, 60)
2409 pack_tmp = ior(pack_tmp, data_tmp)
2410 pack_tmp = ishft(pack_tmp, -4)
2411 idata = idata + 1
2412 data_tmp = full_data(idata)
2413 data_tmp = ishft(data_tmp, 60)
2414 pack_tmp = ior(pack_tmp, data_tmp)
2415 pack_tmp = ishft(pack_tmp, -4)
2416 idata = idata + 1
2417 data_tmp = full_data(idata)
2418 data_tmp = ishft(data_tmp, 60)
2419 pack_tmp = ior(pack_tmp, data_tmp)
2420 pack_tmp = ishft(pack_tmp, -4)
2421 idata = idata + 1
2422 data_tmp = full_data(idata)
2423 data_tmp = ishft(data_tmp, 60)
2424 pack_tmp = ior(pack_tmp, data_tmp)
2425 pack_tmp = ishft(pack_tmp, -4)
2426 idata = idata + 1
2427 data_tmp = full_data(idata)
2428 data_tmp = ishft(data_tmp, 60)
2429 pack_tmp = ior(pack_tmp, data_tmp)
2430 pack_tmp = ishft(pack_tmp, -4)
2431 idata = idata + 1
2432 data_tmp = full_data(idata)
2433 data_tmp = ishft(data_tmp, 60)
2434 pack_tmp = ior(pack_tmp, data_tmp)
2435 pack_tmp = ishft(pack_tmp, -4)
2436 idata = idata + 1
2437 data_tmp = full_data(idata)
2438 data_tmp = ishft(data_tmp, 60)
2439 pack_tmp = ior(pack_tmp, data_tmp)
2440 pack_tmp = ishft(pack_tmp, -4)
2441 idata = idata + 1
2442 data_tmp = full_data(idata)
2443 data_tmp = ishft(data_tmp, 60)
2444 pack_tmp = ior(pack_tmp, data_tmp)
2445 pack_tmp = ishft(pack_tmp, -4)
2446 idata = idata + 1
2447 data_tmp = full_data(idata)
2448 data_tmp = ishft(data_tmp, 60)
2449 pack_tmp = ior(pack_tmp, data_tmp)
2450 pack_tmp = ishft(pack_tmp, -4)
2451 idata = idata + 1
2452 data_tmp = full_data(idata)
2453 data_tmp = ishft(data_tmp, 60)
2454 pack_tmp = ior(pack_tmp, data_tmp)
2455 pack_tmp = ishft(pack_tmp, -4)
2456 idata = idata + 1
2457 data_tmp = full_data(idata)
2458 data_tmp = ishft(data_tmp, 60)
2459 pack_tmp = ior(pack_tmp, data_tmp)
2460 pack_tmp = ishft(pack_tmp, -4)
2461 idata = idata + 1
2462 data_tmp = full_data(idata)
2463 data_tmp = ishft(data_tmp, 60)
2464 pack_tmp = ior(pack_tmp, data_tmp)
2465 pack_tmp = ishft(pack_tmp, -4)
2466 idata = idata + 1
2467 data_tmp = full_data(idata)
2468 data_tmp = ishft(data_tmp, 60)
2469 pack_tmp = ior(pack_tmp, data_tmp)
2470 pack_tmp = ishft(pack_tmp, 0)
2471 pack_tmp = ishft(pack_tmp, 0)
2472 ipack = ipack + 1
2473 packed_data(ipack) = pack_tmp
2474 END DO
2475 IF (ndata_rep < ndata) THEN
2476 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
2477 END IF
2478 END SUBROUTINE ints2bits_4
2479
2480! **************************************************************************************************
2481!> \brief ...
2482!> \param Ndata ...
2483!> \param packed_data ...
2484!> \param full_data ...
2485! **************************************************************************************************
2486 SUBROUTINE bits2ints_4(Ndata, packed_data, full_data)
2487 INTEGER, INTENT(IN) :: Ndata
2488 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
2489 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
2490
2491 INTEGER, PARAMETER :: Nbits = 4
2492
2493 INTEGER :: idata, ipack, kdata, Ndata_rep
2494 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
2495
2496 ipack = 0
2497 idata = 0
2498 pack_tmp = 0
2499 ndata_rep = (ndata/64)*64
2500 DO kdata = 1, ndata_rep, 64
2501 idata = idata + 1
2502 data_tmp = ishft(pack_tmp, 4)
2503 ipack = ipack + 1
2504 pack_tmp = packed_data(ipack)
2505 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
2506 pack_tmp = ishft(pack_tmp, -4)
2507 idata = idata + 1
2508 data_tmp = iand(pack_tmp, mask_right(nbits))
2509 full_data(idata) = data_tmp
2510 pack_tmp = ishft(pack_tmp, -nbits)
2511 idata = idata + 1
2512 data_tmp = iand(pack_tmp, mask_right(nbits))
2513 full_data(idata) = data_tmp
2514 pack_tmp = ishft(pack_tmp, -nbits)
2515 idata = idata + 1
2516 data_tmp = iand(pack_tmp, mask_right(nbits))
2517 full_data(idata) = data_tmp
2518 pack_tmp = ishft(pack_tmp, -nbits)
2519 idata = idata + 1
2520 data_tmp = iand(pack_tmp, mask_right(nbits))
2521 full_data(idata) = data_tmp
2522 pack_tmp = ishft(pack_tmp, -nbits)
2523 idata = idata + 1
2524 data_tmp = iand(pack_tmp, mask_right(nbits))
2525 full_data(idata) = data_tmp
2526 pack_tmp = ishft(pack_tmp, -nbits)
2527 idata = idata + 1
2528 data_tmp = iand(pack_tmp, mask_right(nbits))
2529 full_data(idata) = data_tmp
2530 pack_tmp = ishft(pack_tmp, -nbits)
2531 idata = idata + 1
2532 data_tmp = iand(pack_tmp, mask_right(nbits))
2533 full_data(idata) = data_tmp
2534 pack_tmp = ishft(pack_tmp, -nbits)
2535 idata = idata + 1
2536 data_tmp = iand(pack_tmp, mask_right(nbits))
2537 full_data(idata) = data_tmp
2538 pack_tmp = ishft(pack_tmp, -nbits)
2539 idata = idata + 1
2540 data_tmp = iand(pack_tmp, mask_right(nbits))
2541 full_data(idata) = data_tmp
2542 pack_tmp = ishft(pack_tmp, -nbits)
2543 idata = idata + 1
2544 data_tmp = iand(pack_tmp, mask_right(nbits))
2545 full_data(idata) = data_tmp
2546 pack_tmp = ishft(pack_tmp, -nbits)
2547 idata = idata + 1
2548 data_tmp = iand(pack_tmp, mask_right(nbits))
2549 full_data(idata) = data_tmp
2550 pack_tmp = ishft(pack_tmp, -nbits)
2551 idata = idata + 1
2552 data_tmp = iand(pack_tmp, mask_right(nbits))
2553 full_data(idata) = data_tmp
2554 pack_tmp = ishft(pack_tmp, -nbits)
2555 idata = idata + 1
2556 data_tmp = iand(pack_tmp, mask_right(nbits))
2557 full_data(idata) = data_tmp
2558 pack_tmp = ishft(pack_tmp, -nbits)
2559 idata = idata + 1
2560 data_tmp = iand(pack_tmp, mask_right(nbits))
2561 full_data(idata) = data_tmp
2562 pack_tmp = ishft(pack_tmp, -nbits)
2563 idata = idata + 1
2564 data_tmp = iand(pack_tmp, mask_right(nbits))
2565 full_data(idata) = data_tmp
2566 pack_tmp = ishft(pack_tmp, -nbits)
2567 idata = idata + 1
2568 data_tmp = ishft(pack_tmp, 4)
2569 ipack = ipack + 1
2570 pack_tmp = packed_data(ipack)
2571 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
2572 pack_tmp = ishft(pack_tmp, -4)
2573 idata = idata + 1
2574 data_tmp = iand(pack_tmp, mask_right(nbits))
2575 full_data(idata) = data_tmp
2576 pack_tmp = ishft(pack_tmp, -nbits)
2577 idata = idata + 1
2578 data_tmp = iand(pack_tmp, mask_right(nbits))
2579 full_data(idata) = data_tmp
2580 pack_tmp = ishft(pack_tmp, -nbits)
2581 idata = idata + 1
2582 data_tmp = iand(pack_tmp, mask_right(nbits))
2583 full_data(idata) = data_tmp
2584 pack_tmp = ishft(pack_tmp, -nbits)
2585 idata = idata + 1
2586 data_tmp = iand(pack_tmp, mask_right(nbits))
2587 full_data(idata) = data_tmp
2588 pack_tmp = ishft(pack_tmp, -nbits)
2589 idata = idata + 1
2590 data_tmp = iand(pack_tmp, mask_right(nbits))
2591 full_data(idata) = data_tmp
2592 pack_tmp = ishft(pack_tmp, -nbits)
2593 idata = idata + 1
2594 data_tmp = iand(pack_tmp, mask_right(nbits))
2595 full_data(idata) = data_tmp
2596 pack_tmp = ishft(pack_tmp, -nbits)
2597 idata = idata + 1
2598 data_tmp = iand(pack_tmp, mask_right(nbits))
2599 full_data(idata) = data_tmp
2600 pack_tmp = ishft(pack_tmp, -nbits)
2601 idata = idata + 1
2602 data_tmp = iand(pack_tmp, mask_right(nbits))
2603 full_data(idata) = data_tmp
2604 pack_tmp = ishft(pack_tmp, -nbits)
2605 idata = idata + 1
2606 data_tmp = iand(pack_tmp, mask_right(nbits))
2607 full_data(idata) = data_tmp
2608 pack_tmp = ishft(pack_tmp, -nbits)
2609 idata = idata + 1
2610 data_tmp = iand(pack_tmp, mask_right(nbits))
2611 full_data(idata) = data_tmp
2612 pack_tmp = ishft(pack_tmp, -nbits)
2613 idata = idata + 1
2614 data_tmp = iand(pack_tmp, mask_right(nbits))
2615 full_data(idata) = data_tmp
2616 pack_tmp = ishft(pack_tmp, -nbits)
2617 idata = idata + 1
2618 data_tmp = iand(pack_tmp, mask_right(nbits))
2619 full_data(idata) = data_tmp
2620 pack_tmp = ishft(pack_tmp, -nbits)
2621 idata = idata + 1
2622 data_tmp = iand(pack_tmp, mask_right(nbits))
2623 full_data(idata) = data_tmp
2624 pack_tmp = ishft(pack_tmp, -nbits)
2625 idata = idata + 1
2626 data_tmp = iand(pack_tmp, mask_right(nbits))
2627 full_data(idata) = data_tmp
2628 pack_tmp = ishft(pack_tmp, -nbits)
2629 idata = idata + 1
2630 data_tmp = iand(pack_tmp, mask_right(nbits))
2631 full_data(idata) = data_tmp
2632 pack_tmp = ishft(pack_tmp, -nbits)
2633 idata = idata + 1
2634 data_tmp = ishft(pack_tmp, 4)
2635 ipack = ipack + 1
2636 pack_tmp = packed_data(ipack)
2637 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
2638 pack_tmp = ishft(pack_tmp, -4)
2639 idata = idata + 1
2640 data_tmp = iand(pack_tmp, mask_right(nbits))
2641 full_data(idata) = data_tmp
2642 pack_tmp = ishft(pack_tmp, -nbits)
2643 idata = idata + 1
2644 data_tmp = iand(pack_tmp, mask_right(nbits))
2645 full_data(idata) = data_tmp
2646 pack_tmp = ishft(pack_tmp, -nbits)
2647 idata = idata + 1
2648 data_tmp = iand(pack_tmp, mask_right(nbits))
2649 full_data(idata) = data_tmp
2650 pack_tmp = ishft(pack_tmp, -nbits)
2651 idata = idata + 1
2652 data_tmp = iand(pack_tmp, mask_right(nbits))
2653 full_data(idata) = data_tmp
2654 pack_tmp = ishft(pack_tmp, -nbits)
2655 idata = idata + 1
2656 data_tmp = iand(pack_tmp, mask_right(nbits))
2657 full_data(idata) = data_tmp
2658 pack_tmp = ishft(pack_tmp, -nbits)
2659 idata = idata + 1
2660 data_tmp = iand(pack_tmp, mask_right(nbits))
2661 full_data(idata) = data_tmp
2662 pack_tmp = ishft(pack_tmp, -nbits)
2663 idata = idata + 1
2664 data_tmp = iand(pack_tmp, mask_right(nbits))
2665 full_data(idata) = data_tmp
2666 pack_tmp = ishft(pack_tmp, -nbits)
2667 idata = idata + 1
2668 data_tmp = iand(pack_tmp, mask_right(nbits))
2669 full_data(idata) = data_tmp
2670 pack_tmp = ishft(pack_tmp, -nbits)
2671 idata = idata + 1
2672 data_tmp = iand(pack_tmp, mask_right(nbits))
2673 full_data(idata) = data_tmp
2674 pack_tmp = ishft(pack_tmp, -nbits)
2675 idata = idata + 1
2676 data_tmp = iand(pack_tmp, mask_right(nbits))
2677 full_data(idata) = data_tmp
2678 pack_tmp = ishft(pack_tmp, -nbits)
2679 idata = idata + 1
2680 data_tmp = iand(pack_tmp, mask_right(nbits))
2681 full_data(idata) = data_tmp
2682 pack_tmp = ishft(pack_tmp, -nbits)
2683 idata = idata + 1
2684 data_tmp = iand(pack_tmp, mask_right(nbits))
2685 full_data(idata) = data_tmp
2686 pack_tmp = ishft(pack_tmp, -nbits)
2687 idata = idata + 1
2688 data_tmp = iand(pack_tmp, mask_right(nbits))
2689 full_data(idata) = data_tmp
2690 pack_tmp = ishft(pack_tmp, -nbits)
2691 idata = idata + 1
2692 data_tmp = iand(pack_tmp, mask_right(nbits))
2693 full_data(idata) = data_tmp
2694 pack_tmp = ishft(pack_tmp, -nbits)
2695 idata = idata + 1
2696 data_tmp = iand(pack_tmp, mask_right(nbits))
2697 full_data(idata) = data_tmp
2698 pack_tmp = ishft(pack_tmp, -nbits)
2699 idata = idata + 1
2700 data_tmp = ishft(pack_tmp, 4)
2701 ipack = ipack + 1
2702 pack_tmp = packed_data(ipack)
2703 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
2704 pack_tmp = ishft(pack_tmp, -4)
2705 idata = idata + 1
2706 data_tmp = iand(pack_tmp, mask_right(nbits))
2707 full_data(idata) = data_tmp
2708 pack_tmp = ishft(pack_tmp, -nbits)
2709 idata = idata + 1
2710 data_tmp = iand(pack_tmp, mask_right(nbits))
2711 full_data(idata) = data_tmp
2712 pack_tmp = ishft(pack_tmp, -nbits)
2713 idata = idata + 1
2714 data_tmp = iand(pack_tmp, mask_right(nbits))
2715 full_data(idata) = data_tmp
2716 pack_tmp = ishft(pack_tmp, -nbits)
2717 idata = idata + 1
2718 data_tmp = iand(pack_tmp, mask_right(nbits))
2719 full_data(idata) = data_tmp
2720 pack_tmp = ishft(pack_tmp, -nbits)
2721 idata = idata + 1
2722 data_tmp = iand(pack_tmp, mask_right(nbits))
2723 full_data(idata) = data_tmp
2724 pack_tmp = ishft(pack_tmp, -nbits)
2725 idata = idata + 1
2726 data_tmp = iand(pack_tmp, mask_right(nbits))
2727 full_data(idata) = data_tmp
2728 pack_tmp = ishft(pack_tmp, -nbits)
2729 idata = idata + 1
2730 data_tmp = iand(pack_tmp, mask_right(nbits))
2731 full_data(idata) = data_tmp
2732 pack_tmp = ishft(pack_tmp, -nbits)
2733 idata = idata + 1
2734 data_tmp = iand(pack_tmp, mask_right(nbits))
2735 full_data(idata) = data_tmp
2736 pack_tmp = ishft(pack_tmp, -nbits)
2737 idata = idata + 1
2738 data_tmp = iand(pack_tmp, mask_right(nbits))
2739 full_data(idata) = data_tmp
2740 pack_tmp = ishft(pack_tmp, -nbits)
2741 idata = idata + 1
2742 data_tmp = iand(pack_tmp, mask_right(nbits))
2743 full_data(idata) = data_tmp
2744 pack_tmp = ishft(pack_tmp, -nbits)
2745 idata = idata + 1
2746 data_tmp = iand(pack_tmp, mask_right(nbits))
2747 full_data(idata) = data_tmp
2748 pack_tmp = ishft(pack_tmp, -nbits)
2749 idata = idata + 1
2750 data_tmp = iand(pack_tmp, mask_right(nbits))
2751 full_data(idata) = data_tmp
2752 pack_tmp = ishft(pack_tmp, -nbits)
2753 idata = idata + 1
2754 data_tmp = iand(pack_tmp, mask_right(nbits))
2755 full_data(idata) = data_tmp
2756 pack_tmp = ishft(pack_tmp, -nbits)
2757 idata = idata + 1
2758 data_tmp = iand(pack_tmp, mask_right(nbits))
2759 full_data(idata) = data_tmp
2760 pack_tmp = ishft(pack_tmp, -nbits)
2761 idata = idata + 1
2762 data_tmp = iand(pack_tmp, mask_right(nbits))
2763 full_data(idata) = data_tmp
2764 pack_tmp = ishft(pack_tmp, -nbits)
2765 END DO
2766 IF (ndata_rep < ndata) THEN
2767 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
2768 END IF
2769 END SUBROUTINE bits2ints_4
2770
2771! **************************************************************************************************
2772!> \brief ...
2773!> \param Ndata ...
2774!> \param packed_data ...
2775!> \param full_data ...
2776! **************************************************************************************************
2777 SUBROUTINE ints2bits_5(Ndata, packed_data, full_data)
2778 INTEGER, INTENT(IN) :: Ndata
2779 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
2780 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
2781
2782 INTEGER, PARAMETER :: Nbits = 5
2783
2784 INTEGER :: idata, ipack, kdata, Ndata_rep
2785 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
2786
2787 idata = 0
2788 ipack = 0
2789 ndata_rep = (ndata/64)*64
2790 DO kdata = 1, ndata_rep, 64
2791 pack_tmp = 0
2792 idata = idata + 1
2793 data_tmp = full_data(idata)
2794 data_tmp = ishft(data_tmp, 59)
2795 pack_tmp = ior(pack_tmp, data_tmp)
2796 pack_tmp = ishft(pack_tmp, -5)
2797 idata = idata + 1
2798 data_tmp = full_data(idata)
2799 data_tmp = ishft(data_tmp, 59)
2800 pack_tmp = ior(pack_tmp, data_tmp)
2801 pack_tmp = ishft(pack_tmp, -5)
2802 idata = idata + 1
2803 data_tmp = full_data(idata)
2804 data_tmp = ishft(data_tmp, 59)
2805 pack_tmp = ior(pack_tmp, data_tmp)
2806 pack_tmp = ishft(pack_tmp, -5)
2807 idata = idata + 1
2808 data_tmp = full_data(idata)
2809 data_tmp = ishft(data_tmp, 59)
2810 pack_tmp = ior(pack_tmp, data_tmp)
2811 pack_tmp = ishft(pack_tmp, -5)
2812 idata = idata + 1
2813 data_tmp = full_data(idata)
2814 data_tmp = ishft(data_tmp, 59)
2815 pack_tmp = ior(pack_tmp, data_tmp)
2816 pack_tmp = ishft(pack_tmp, -5)
2817 idata = idata + 1
2818 data_tmp = full_data(idata)
2819 data_tmp = ishft(data_tmp, 59)
2820 pack_tmp = ior(pack_tmp, data_tmp)
2821 pack_tmp = ishft(pack_tmp, -5)
2822 idata = idata + 1
2823 data_tmp = full_data(idata)
2824 data_tmp = ishft(data_tmp, 59)
2825 pack_tmp = ior(pack_tmp, data_tmp)
2826 pack_tmp = ishft(pack_tmp, -5)
2827 idata = idata + 1
2828 data_tmp = full_data(idata)
2829 data_tmp = ishft(data_tmp, 59)
2830 pack_tmp = ior(pack_tmp, data_tmp)
2831 pack_tmp = ishft(pack_tmp, -5)
2832 idata = idata + 1
2833 data_tmp = full_data(idata)
2834 data_tmp = ishft(data_tmp, 59)
2835 pack_tmp = ior(pack_tmp, data_tmp)
2836 pack_tmp = ishft(pack_tmp, -5)
2837 idata = idata + 1
2838 data_tmp = full_data(idata)
2839 data_tmp = ishft(data_tmp, 59)
2840 pack_tmp = ior(pack_tmp, data_tmp)
2841 pack_tmp = ishft(pack_tmp, -5)
2842 idata = idata + 1
2843 data_tmp = full_data(idata)
2844 data_tmp = ishft(data_tmp, 59)
2845 pack_tmp = ior(pack_tmp, data_tmp)
2846 pack_tmp = ishft(pack_tmp, -5)
2847 idata = idata + 1
2848 data_tmp = full_data(idata)
2849 data_tmp = ishft(data_tmp, 59)
2850 pack_tmp = ior(pack_tmp, data_tmp)
2851 pack_tmp = ishft(pack_tmp, -4)
2852 idata = idata + 1
2853 data_tmp = full_data(idata)
2854 data_tmp = ishft(data_tmp, 59)
2855 data_tmp = iand(data_tmp, mask_left(4))
2856 pack_tmp = ior(pack_tmp, data_tmp)
2857 ipack = ipack + 1
2858 packed_data(ipack) = pack_tmp
2859 data_tmp = full_data(idata)
2860 pack_tmp = ishft(data_tmp, 63)
2861 pack_tmp = ishft(pack_tmp, -5)
2862 idata = idata + 1
2863 data_tmp = full_data(idata)
2864 data_tmp = ishft(data_tmp, 59)
2865 pack_tmp = ior(pack_tmp, data_tmp)
2866 pack_tmp = ishft(pack_tmp, -5)
2867 idata = idata + 1
2868 data_tmp = full_data(idata)
2869 data_tmp = ishft(data_tmp, 59)
2870 pack_tmp = ior(pack_tmp, data_tmp)
2871 pack_tmp = ishft(pack_tmp, -5)
2872 idata = idata + 1
2873 data_tmp = full_data(idata)
2874 data_tmp = ishft(data_tmp, 59)
2875 pack_tmp = ior(pack_tmp, data_tmp)
2876 pack_tmp = ishft(pack_tmp, -5)
2877 idata = idata + 1
2878 data_tmp = full_data(idata)
2879 data_tmp = ishft(data_tmp, 59)
2880 pack_tmp = ior(pack_tmp, data_tmp)
2881 pack_tmp = ishft(pack_tmp, -5)
2882 idata = idata + 1
2883 data_tmp = full_data(idata)
2884 data_tmp = ishft(data_tmp, 59)
2885 pack_tmp = ior(pack_tmp, data_tmp)
2886 pack_tmp = ishft(pack_tmp, -5)
2887 idata = idata + 1
2888 data_tmp = full_data(idata)
2889 data_tmp = ishft(data_tmp, 59)
2890 pack_tmp = ior(pack_tmp, data_tmp)
2891 pack_tmp = ishft(pack_tmp, -5)
2892 idata = idata + 1
2893 data_tmp = full_data(idata)
2894 data_tmp = ishft(data_tmp, 59)
2895 pack_tmp = ior(pack_tmp, data_tmp)
2896 pack_tmp = ishft(pack_tmp, -5)
2897 idata = idata + 1
2898 data_tmp = full_data(idata)
2899 data_tmp = ishft(data_tmp, 59)
2900 pack_tmp = ior(pack_tmp, data_tmp)
2901 pack_tmp = ishft(pack_tmp, -5)
2902 idata = idata + 1
2903 data_tmp = full_data(idata)
2904 data_tmp = ishft(data_tmp, 59)
2905 pack_tmp = ior(pack_tmp, data_tmp)
2906 pack_tmp = ishft(pack_tmp, -5)
2907 idata = idata + 1
2908 data_tmp = full_data(idata)
2909 data_tmp = ishft(data_tmp, 59)
2910 pack_tmp = ior(pack_tmp, data_tmp)
2911 pack_tmp = ishft(pack_tmp, -5)
2912 idata = idata + 1
2913 data_tmp = full_data(idata)
2914 data_tmp = ishft(data_tmp, 59)
2915 pack_tmp = ior(pack_tmp, data_tmp)
2916 pack_tmp = ishft(pack_tmp, -5)
2917 idata = idata + 1
2918 data_tmp = full_data(idata)
2919 data_tmp = ishft(data_tmp, 59)
2920 pack_tmp = ior(pack_tmp, data_tmp)
2921 pack_tmp = ishft(pack_tmp, -3)
2922 idata = idata + 1
2923 data_tmp = full_data(idata)
2924 data_tmp = ishft(data_tmp, 59)
2925 data_tmp = iand(data_tmp, mask_left(3))
2926 pack_tmp = ior(pack_tmp, data_tmp)
2927 ipack = ipack + 1
2928 packed_data(ipack) = pack_tmp
2929 data_tmp = full_data(idata)
2930 pack_tmp = ishft(data_tmp, 62)
2931 pack_tmp = ishft(pack_tmp, -5)
2932 idata = idata + 1
2933 data_tmp = full_data(idata)
2934 data_tmp = ishft(data_tmp, 59)
2935 pack_tmp = ior(pack_tmp, data_tmp)
2936 pack_tmp = ishft(pack_tmp, -5)
2937 idata = idata + 1
2938 data_tmp = full_data(idata)
2939 data_tmp = ishft(data_tmp, 59)
2940 pack_tmp = ior(pack_tmp, data_tmp)
2941 pack_tmp = ishft(pack_tmp, -5)
2942 idata = idata + 1
2943 data_tmp = full_data(idata)
2944 data_tmp = ishft(data_tmp, 59)
2945 pack_tmp = ior(pack_tmp, data_tmp)
2946 pack_tmp = ishft(pack_tmp, -5)
2947 idata = idata + 1
2948 data_tmp = full_data(idata)
2949 data_tmp = ishft(data_tmp, 59)
2950 pack_tmp = ior(pack_tmp, data_tmp)
2951 pack_tmp = ishft(pack_tmp, -5)
2952 idata = idata + 1
2953 data_tmp = full_data(idata)
2954 data_tmp = ishft(data_tmp, 59)
2955 pack_tmp = ior(pack_tmp, data_tmp)
2956 pack_tmp = ishft(pack_tmp, -5)
2957 idata = idata + 1
2958 data_tmp = full_data(idata)
2959 data_tmp = ishft(data_tmp, 59)
2960 pack_tmp = ior(pack_tmp, data_tmp)
2961 pack_tmp = ishft(pack_tmp, -5)
2962 idata = idata + 1
2963 data_tmp = full_data(idata)
2964 data_tmp = ishft(data_tmp, 59)
2965 pack_tmp = ior(pack_tmp, data_tmp)
2966 pack_tmp = ishft(pack_tmp, -5)
2967 idata = idata + 1
2968 data_tmp = full_data(idata)
2969 data_tmp = ishft(data_tmp, 59)
2970 pack_tmp = ior(pack_tmp, data_tmp)
2971 pack_tmp = ishft(pack_tmp, -5)
2972 idata = idata + 1
2973 data_tmp = full_data(idata)
2974 data_tmp = ishft(data_tmp, 59)
2975 pack_tmp = ior(pack_tmp, data_tmp)
2976 pack_tmp = ishft(pack_tmp, -5)
2977 idata = idata + 1
2978 data_tmp = full_data(idata)
2979 data_tmp = ishft(data_tmp, 59)
2980 pack_tmp = ior(pack_tmp, data_tmp)
2981 pack_tmp = ishft(pack_tmp, -5)
2982 idata = idata + 1
2983 data_tmp = full_data(idata)
2984 data_tmp = ishft(data_tmp, 59)
2985 pack_tmp = ior(pack_tmp, data_tmp)
2986 pack_tmp = ishft(pack_tmp, -5)
2987 idata = idata + 1
2988 data_tmp = full_data(idata)
2989 data_tmp = ishft(data_tmp, 59)
2990 pack_tmp = ior(pack_tmp, data_tmp)
2991 pack_tmp = ishft(pack_tmp, -2)
2992 idata = idata + 1
2993 data_tmp = full_data(idata)
2994 data_tmp = ishft(data_tmp, 59)
2995 data_tmp = iand(data_tmp, mask_left(2))
2996 pack_tmp = ior(pack_tmp, data_tmp)
2997 ipack = ipack + 1
2998 packed_data(ipack) = pack_tmp
2999 data_tmp = full_data(idata)
3000 pack_tmp = ishft(data_tmp, 61)
3001 pack_tmp = ishft(pack_tmp, -5)
3002 idata = idata + 1
3003 data_tmp = full_data(idata)
3004 data_tmp = ishft(data_tmp, 59)
3005 pack_tmp = ior(pack_tmp, data_tmp)
3006 pack_tmp = ishft(pack_tmp, -5)
3007 idata = idata + 1
3008 data_tmp = full_data(idata)
3009 data_tmp = ishft(data_tmp, 59)
3010 pack_tmp = ior(pack_tmp, data_tmp)
3011 pack_tmp = ishft(pack_tmp, -5)
3012 idata = idata + 1
3013 data_tmp = full_data(idata)
3014 data_tmp = ishft(data_tmp, 59)
3015 pack_tmp = ior(pack_tmp, data_tmp)
3016 pack_tmp = ishft(pack_tmp, -5)
3017 idata = idata + 1
3018 data_tmp = full_data(idata)
3019 data_tmp = ishft(data_tmp, 59)
3020 pack_tmp = ior(pack_tmp, data_tmp)
3021 pack_tmp = ishft(pack_tmp, -5)
3022 idata = idata + 1
3023 data_tmp = full_data(idata)
3024 data_tmp = ishft(data_tmp, 59)
3025 pack_tmp = ior(pack_tmp, data_tmp)
3026 pack_tmp = ishft(pack_tmp, -5)
3027 idata = idata + 1
3028 data_tmp = full_data(idata)
3029 data_tmp = ishft(data_tmp, 59)
3030 pack_tmp = ior(pack_tmp, data_tmp)
3031 pack_tmp = ishft(pack_tmp, -5)
3032 idata = idata + 1
3033 data_tmp = full_data(idata)
3034 data_tmp = ishft(data_tmp, 59)
3035 pack_tmp = ior(pack_tmp, data_tmp)
3036 pack_tmp = ishft(pack_tmp, -5)
3037 idata = idata + 1
3038 data_tmp = full_data(idata)
3039 data_tmp = ishft(data_tmp, 59)
3040 pack_tmp = ior(pack_tmp, data_tmp)
3041 pack_tmp = ishft(pack_tmp, -5)
3042 idata = idata + 1
3043 data_tmp = full_data(idata)
3044 data_tmp = ishft(data_tmp, 59)
3045 pack_tmp = ior(pack_tmp, data_tmp)
3046 pack_tmp = ishft(pack_tmp, -5)
3047 idata = idata + 1
3048 data_tmp = full_data(idata)
3049 data_tmp = ishft(data_tmp, 59)
3050 pack_tmp = ior(pack_tmp, data_tmp)
3051 pack_tmp = ishft(pack_tmp, -5)
3052 idata = idata + 1
3053 data_tmp = full_data(idata)
3054 data_tmp = ishft(data_tmp, 59)
3055 pack_tmp = ior(pack_tmp, data_tmp)
3056 pack_tmp = ishft(pack_tmp, -5)
3057 idata = idata + 1
3058 data_tmp = full_data(idata)
3059 data_tmp = ishft(data_tmp, 59)
3060 pack_tmp = ior(pack_tmp, data_tmp)
3061 pack_tmp = ishft(pack_tmp, -1)
3062 idata = idata + 1
3063 data_tmp = full_data(idata)
3064 data_tmp = ishft(data_tmp, 59)
3065 data_tmp = iand(data_tmp, mask_left(1))
3066 pack_tmp = ior(pack_tmp, data_tmp)
3067 ipack = ipack + 1
3068 packed_data(ipack) = pack_tmp
3069 data_tmp = full_data(idata)
3070 pack_tmp = ishft(data_tmp, 60)
3071 pack_tmp = ishft(pack_tmp, -5)
3072 idata = idata + 1
3073 data_tmp = full_data(idata)
3074 data_tmp = ishft(data_tmp, 59)
3075 pack_tmp = ior(pack_tmp, data_tmp)
3076 pack_tmp = ishft(pack_tmp, -5)
3077 idata = idata + 1
3078 data_tmp = full_data(idata)
3079 data_tmp = ishft(data_tmp, 59)
3080 pack_tmp = ior(pack_tmp, data_tmp)
3081 pack_tmp = ishft(pack_tmp, -5)
3082 idata = idata + 1
3083 data_tmp = full_data(idata)
3084 data_tmp = ishft(data_tmp, 59)
3085 pack_tmp = ior(pack_tmp, data_tmp)
3086 pack_tmp = ishft(pack_tmp, -5)
3087 idata = idata + 1
3088 data_tmp = full_data(idata)
3089 data_tmp = ishft(data_tmp, 59)
3090 pack_tmp = ior(pack_tmp, data_tmp)
3091 pack_tmp = ishft(pack_tmp, -5)
3092 idata = idata + 1
3093 data_tmp = full_data(idata)
3094 data_tmp = ishft(data_tmp, 59)
3095 pack_tmp = ior(pack_tmp, data_tmp)
3096 pack_tmp = ishft(pack_tmp, -5)
3097 idata = idata + 1
3098 data_tmp = full_data(idata)
3099 data_tmp = ishft(data_tmp, 59)
3100 pack_tmp = ior(pack_tmp, data_tmp)
3101 pack_tmp = ishft(pack_tmp, -5)
3102 idata = idata + 1
3103 data_tmp = full_data(idata)
3104 data_tmp = ishft(data_tmp, 59)
3105 pack_tmp = ior(pack_tmp, data_tmp)
3106 pack_tmp = ishft(pack_tmp, -5)
3107 idata = idata + 1
3108 data_tmp = full_data(idata)
3109 data_tmp = ishft(data_tmp, 59)
3110 pack_tmp = ior(pack_tmp, data_tmp)
3111 pack_tmp = ishft(pack_tmp, -5)
3112 idata = idata + 1
3113 data_tmp = full_data(idata)
3114 data_tmp = ishft(data_tmp, 59)
3115 pack_tmp = ior(pack_tmp, data_tmp)
3116 pack_tmp = ishft(pack_tmp, -5)
3117 idata = idata + 1
3118 data_tmp = full_data(idata)
3119 data_tmp = ishft(data_tmp, 59)
3120 pack_tmp = ior(pack_tmp, data_tmp)
3121 pack_tmp = ishft(pack_tmp, -5)
3122 idata = idata + 1
3123 data_tmp = full_data(idata)
3124 data_tmp = ishft(data_tmp, 59)
3125 pack_tmp = ior(pack_tmp, data_tmp)
3126 pack_tmp = ishft(pack_tmp, -5)
3127 idata = idata + 1
3128 data_tmp = full_data(idata)
3129 data_tmp = ishft(data_tmp, 59)
3130 pack_tmp = ior(pack_tmp, data_tmp)
3131 pack_tmp = ishft(pack_tmp, 0)
3132 pack_tmp = ishft(pack_tmp, 0)
3133 ipack = ipack + 1
3134 packed_data(ipack) = pack_tmp
3135 END DO
3136 IF (ndata_rep < ndata) THEN
3137 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
3138 END IF
3139 END SUBROUTINE ints2bits_5
3140
3141! **************************************************************************************************
3142!> \brief ...
3143!> \param Ndata ...
3144!> \param packed_data ...
3145!> \param full_data ...
3146! **************************************************************************************************
3147 SUBROUTINE bits2ints_5(Ndata, packed_data, full_data)
3148 INTEGER, INTENT(IN) :: Ndata
3149 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
3150 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
3151
3152 INTEGER, PARAMETER :: Nbits = 5
3153
3154 INTEGER :: idata, ipack, kdata, Ndata_rep
3155 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
3156
3157 ipack = 0
3158 idata = 0
3159 pack_tmp = 0
3160 ndata_rep = (ndata/64)*64
3161 DO kdata = 1, ndata_rep, 64
3162 idata = idata + 1
3163 data_tmp = ishft(pack_tmp, 5)
3164 ipack = ipack + 1
3165 pack_tmp = packed_data(ipack)
3166 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
3167 pack_tmp = ishft(pack_tmp, -5)
3168 idata = idata + 1
3169 data_tmp = iand(pack_tmp, mask_right(nbits))
3170 full_data(idata) = data_tmp
3171 pack_tmp = ishft(pack_tmp, -nbits)
3172 idata = idata + 1
3173 data_tmp = iand(pack_tmp, mask_right(nbits))
3174 full_data(idata) = data_tmp
3175 pack_tmp = ishft(pack_tmp, -nbits)
3176 idata = idata + 1
3177 data_tmp = iand(pack_tmp, mask_right(nbits))
3178 full_data(idata) = data_tmp
3179 pack_tmp = ishft(pack_tmp, -nbits)
3180 idata = idata + 1
3181 data_tmp = iand(pack_tmp, mask_right(nbits))
3182 full_data(idata) = data_tmp
3183 pack_tmp = ishft(pack_tmp, -nbits)
3184 idata = idata + 1
3185 data_tmp = iand(pack_tmp, mask_right(nbits))
3186 full_data(idata) = data_tmp
3187 pack_tmp = ishft(pack_tmp, -nbits)
3188 idata = idata + 1
3189 data_tmp = iand(pack_tmp, mask_right(nbits))
3190 full_data(idata) = data_tmp
3191 pack_tmp = ishft(pack_tmp, -nbits)
3192 idata = idata + 1
3193 data_tmp = iand(pack_tmp, mask_right(nbits))
3194 full_data(idata) = data_tmp
3195 pack_tmp = ishft(pack_tmp, -nbits)
3196 idata = idata + 1
3197 data_tmp = iand(pack_tmp, mask_right(nbits))
3198 full_data(idata) = data_tmp
3199 pack_tmp = ishft(pack_tmp, -nbits)
3200 idata = idata + 1
3201 data_tmp = iand(pack_tmp, mask_right(nbits))
3202 full_data(idata) = data_tmp
3203 pack_tmp = ishft(pack_tmp, -nbits)
3204 idata = idata + 1
3205 data_tmp = iand(pack_tmp, mask_right(nbits))
3206 full_data(idata) = data_tmp
3207 pack_tmp = ishft(pack_tmp, -nbits)
3208 idata = idata + 1
3209 data_tmp = iand(pack_tmp, mask_right(nbits))
3210 full_data(idata) = data_tmp
3211 pack_tmp = ishft(pack_tmp, -nbits)
3212 idata = idata + 1
3213 data_tmp = ishft(pack_tmp, 1)
3214 ipack = ipack + 1
3215 pack_tmp = packed_data(ipack)
3216 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
3217 pack_tmp = ishft(pack_tmp, -1)
3218 idata = idata + 1
3219 data_tmp = iand(pack_tmp, mask_right(nbits))
3220 full_data(idata) = data_tmp
3221 pack_tmp = ishft(pack_tmp, -nbits)
3222 idata = idata + 1
3223 data_tmp = iand(pack_tmp, mask_right(nbits))
3224 full_data(idata) = data_tmp
3225 pack_tmp = ishft(pack_tmp, -nbits)
3226 idata = idata + 1
3227 data_tmp = iand(pack_tmp, mask_right(nbits))
3228 full_data(idata) = data_tmp
3229 pack_tmp = ishft(pack_tmp, -nbits)
3230 idata = idata + 1
3231 data_tmp = iand(pack_tmp, mask_right(nbits))
3232 full_data(idata) = data_tmp
3233 pack_tmp = ishft(pack_tmp, -nbits)
3234 idata = idata + 1
3235 data_tmp = iand(pack_tmp, mask_right(nbits))
3236 full_data(idata) = data_tmp
3237 pack_tmp = ishft(pack_tmp, -nbits)
3238 idata = idata + 1
3239 data_tmp = iand(pack_tmp, mask_right(nbits))
3240 full_data(idata) = data_tmp
3241 pack_tmp = ishft(pack_tmp, -nbits)
3242 idata = idata + 1
3243 data_tmp = iand(pack_tmp, mask_right(nbits))
3244 full_data(idata) = data_tmp
3245 pack_tmp = ishft(pack_tmp, -nbits)
3246 idata = idata + 1
3247 data_tmp = iand(pack_tmp, mask_right(nbits))
3248 full_data(idata) = data_tmp
3249 pack_tmp = ishft(pack_tmp, -nbits)
3250 idata = idata + 1
3251 data_tmp = iand(pack_tmp, mask_right(nbits))
3252 full_data(idata) = data_tmp
3253 pack_tmp = ishft(pack_tmp, -nbits)
3254 idata = idata + 1
3255 data_tmp = iand(pack_tmp, mask_right(nbits))
3256 full_data(idata) = data_tmp
3257 pack_tmp = ishft(pack_tmp, -nbits)
3258 idata = idata + 1
3259 data_tmp = iand(pack_tmp, mask_right(nbits))
3260 full_data(idata) = data_tmp
3261 pack_tmp = ishft(pack_tmp, -nbits)
3262 idata = idata + 1
3263 data_tmp = iand(pack_tmp, mask_right(nbits))
3264 full_data(idata) = data_tmp
3265 pack_tmp = ishft(pack_tmp, -nbits)
3266 idata = idata + 1
3267 data_tmp = ishft(pack_tmp, 2)
3268 ipack = ipack + 1
3269 pack_tmp = packed_data(ipack)
3270 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
3271 pack_tmp = ishft(pack_tmp, -2)
3272 idata = idata + 1
3273 data_tmp = iand(pack_tmp, mask_right(nbits))
3274 full_data(idata) = data_tmp
3275 pack_tmp = ishft(pack_tmp, -nbits)
3276 idata = idata + 1
3277 data_tmp = iand(pack_tmp, mask_right(nbits))
3278 full_data(idata) = data_tmp
3279 pack_tmp = ishft(pack_tmp, -nbits)
3280 idata = idata + 1
3281 data_tmp = iand(pack_tmp, mask_right(nbits))
3282 full_data(idata) = data_tmp
3283 pack_tmp = ishft(pack_tmp, -nbits)
3284 idata = idata + 1
3285 data_tmp = iand(pack_tmp, mask_right(nbits))
3286 full_data(idata) = data_tmp
3287 pack_tmp = ishft(pack_tmp, -nbits)
3288 idata = idata + 1
3289 data_tmp = iand(pack_tmp, mask_right(nbits))
3290 full_data(idata) = data_tmp
3291 pack_tmp = ishft(pack_tmp, -nbits)
3292 idata = idata + 1
3293 data_tmp = iand(pack_tmp, mask_right(nbits))
3294 full_data(idata) = data_tmp
3295 pack_tmp = ishft(pack_tmp, -nbits)
3296 idata = idata + 1
3297 data_tmp = iand(pack_tmp, mask_right(nbits))
3298 full_data(idata) = data_tmp
3299 pack_tmp = ishft(pack_tmp, -nbits)
3300 idata = idata + 1
3301 data_tmp = iand(pack_tmp, mask_right(nbits))
3302 full_data(idata) = data_tmp
3303 pack_tmp = ishft(pack_tmp, -nbits)
3304 idata = idata + 1
3305 data_tmp = iand(pack_tmp, mask_right(nbits))
3306 full_data(idata) = data_tmp
3307 pack_tmp = ishft(pack_tmp, -nbits)
3308 idata = idata + 1
3309 data_tmp = iand(pack_tmp, mask_right(nbits))
3310 full_data(idata) = data_tmp
3311 pack_tmp = ishft(pack_tmp, -nbits)
3312 idata = idata + 1
3313 data_tmp = iand(pack_tmp, mask_right(nbits))
3314 full_data(idata) = data_tmp
3315 pack_tmp = ishft(pack_tmp, -nbits)
3316 idata = idata + 1
3317 data_tmp = iand(pack_tmp, mask_right(nbits))
3318 full_data(idata) = data_tmp
3319 pack_tmp = ishft(pack_tmp, -nbits)
3320 idata = idata + 1
3321 data_tmp = ishft(pack_tmp, 3)
3322 ipack = ipack + 1
3323 pack_tmp = packed_data(ipack)
3324 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
3325 pack_tmp = ishft(pack_tmp, -3)
3326 idata = idata + 1
3327 data_tmp = iand(pack_tmp, mask_right(nbits))
3328 full_data(idata) = data_tmp
3329 pack_tmp = ishft(pack_tmp, -nbits)
3330 idata = idata + 1
3331 data_tmp = iand(pack_tmp, mask_right(nbits))
3332 full_data(idata) = data_tmp
3333 pack_tmp = ishft(pack_tmp, -nbits)
3334 idata = idata + 1
3335 data_tmp = iand(pack_tmp, mask_right(nbits))
3336 full_data(idata) = data_tmp
3337 pack_tmp = ishft(pack_tmp, -nbits)
3338 idata = idata + 1
3339 data_tmp = iand(pack_tmp, mask_right(nbits))
3340 full_data(idata) = data_tmp
3341 pack_tmp = ishft(pack_tmp, -nbits)
3342 idata = idata + 1
3343 data_tmp = iand(pack_tmp, mask_right(nbits))
3344 full_data(idata) = data_tmp
3345 pack_tmp = ishft(pack_tmp, -nbits)
3346 idata = idata + 1
3347 data_tmp = iand(pack_tmp, mask_right(nbits))
3348 full_data(idata) = data_tmp
3349 pack_tmp = ishft(pack_tmp, -nbits)
3350 idata = idata + 1
3351 data_tmp = iand(pack_tmp, mask_right(nbits))
3352 full_data(idata) = data_tmp
3353 pack_tmp = ishft(pack_tmp, -nbits)
3354 idata = idata + 1
3355 data_tmp = iand(pack_tmp, mask_right(nbits))
3356 full_data(idata) = data_tmp
3357 pack_tmp = ishft(pack_tmp, -nbits)
3358 idata = idata + 1
3359 data_tmp = iand(pack_tmp, mask_right(nbits))
3360 full_data(idata) = data_tmp
3361 pack_tmp = ishft(pack_tmp, -nbits)
3362 idata = idata + 1
3363 data_tmp = iand(pack_tmp, mask_right(nbits))
3364 full_data(idata) = data_tmp
3365 pack_tmp = ishft(pack_tmp, -nbits)
3366 idata = idata + 1
3367 data_tmp = iand(pack_tmp, mask_right(nbits))
3368 full_data(idata) = data_tmp
3369 pack_tmp = ishft(pack_tmp, -nbits)
3370 idata = idata + 1
3371 data_tmp = iand(pack_tmp, mask_right(nbits))
3372 full_data(idata) = data_tmp
3373 pack_tmp = ishft(pack_tmp, -nbits)
3374 idata = idata + 1
3375 data_tmp = ishft(pack_tmp, 4)
3376 ipack = ipack + 1
3377 pack_tmp = packed_data(ipack)
3378 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
3379 pack_tmp = ishft(pack_tmp, -4)
3380 idata = idata + 1
3381 data_tmp = iand(pack_tmp, mask_right(nbits))
3382 full_data(idata) = data_tmp
3383 pack_tmp = ishft(pack_tmp, -nbits)
3384 idata = idata + 1
3385 data_tmp = iand(pack_tmp, mask_right(nbits))
3386 full_data(idata) = data_tmp
3387 pack_tmp = ishft(pack_tmp, -nbits)
3388 idata = idata + 1
3389 data_tmp = iand(pack_tmp, mask_right(nbits))
3390 full_data(idata) = data_tmp
3391 pack_tmp = ishft(pack_tmp, -nbits)
3392 idata = idata + 1
3393 data_tmp = iand(pack_tmp, mask_right(nbits))
3394 full_data(idata) = data_tmp
3395 pack_tmp = ishft(pack_tmp, -nbits)
3396 idata = idata + 1
3397 data_tmp = iand(pack_tmp, mask_right(nbits))
3398 full_data(idata) = data_tmp
3399 pack_tmp = ishft(pack_tmp, -nbits)
3400 idata = idata + 1
3401 data_tmp = iand(pack_tmp, mask_right(nbits))
3402 full_data(idata) = data_tmp
3403 pack_tmp = ishft(pack_tmp, -nbits)
3404 idata = idata + 1
3405 data_tmp = iand(pack_tmp, mask_right(nbits))
3406 full_data(idata) = data_tmp
3407 pack_tmp = ishft(pack_tmp, -nbits)
3408 idata = idata + 1
3409 data_tmp = iand(pack_tmp, mask_right(nbits))
3410 full_data(idata) = data_tmp
3411 pack_tmp = ishft(pack_tmp, -nbits)
3412 idata = idata + 1
3413 data_tmp = iand(pack_tmp, mask_right(nbits))
3414 full_data(idata) = data_tmp
3415 pack_tmp = ishft(pack_tmp, -nbits)
3416 idata = idata + 1
3417 data_tmp = iand(pack_tmp, mask_right(nbits))
3418 full_data(idata) = data_tmp
3419 pack_tmp = ishft(pack_tmp, -nbits)
3420 idata = idata + 1
3421 data_tmp = iand(pack_tmp, mask_right(nbits))
3422 full_data(idata) = data_tmp
3423 pack_tmp = ishft(pack_tmp, -nbits)
3424 idata = idata + 1
3425 data_tmp = iand(pack_tmp, mask_right(nbits))
3426 full_data(idata) = data_tmp
3427 pack_tmp = ishft(pack_tmp, -nbits)
3428 END DO
3429 IF (ndata_rep < ndata) THEN
3430 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
3431 END IF
3432 END SUBROUTINE bits2ints_5
3433
3434! **************************************************************************************************
3435!> \brief ...
3436!> \param Ndata ...
3437!> \param packed_data ...
3438!> \param full_data ...
3439! **************************************************************************************************
3440 SUBROUTINE ints2bits_6(Ndata, packed_data, full_data)
3441 INTEGER, INTENT(IN) :: Ndata
3442 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
3443 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
3444
3445 INTEGER, PARAMETER :: Nbits = 6
3446
3447 INTEGER :: idata, ipack, kdata, Ndata_rep
3448 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
3449
3450 idata = 0
3451 ipack = 0
3452 ndata_rep = (ndata/64)*64
3453 DO kdata = 1, ndata_rep, 64
3454 pack_tmp = 0
3455 idata = idata + 1
3456 data_tmp = full_data(idata)
3457 data_tmp = ishft(data_tmp, 58)
3458 pack_tmp = ior(pack_tmp, data_tmp)
3459 pack_tmp = ishft(pack_tmp, -6)
3460 idata = idata + 1
3461 data_tmp = full_data(idata)
3462 data_tmp = ishft(data_tmp, 58)
3463 pack_tmp = ior(pack_tmp, data_tmp)
3464 pack_tmp = ishft(pack_tmp, -6)
3465 idata = idata + 1
3466 data_tmp = full_data(idata)
3467 data_tmp = ishft(data_tmp, 58)
3468 pack_tmp = ior(pack_tmp, data_tmp)
3469 pack_tmp = ishft(pack_tmp, -6)
3470 idata = idata + 1
3471 data_tmp = full_data(idata)
3472 data_tmp = ishft(data_tmp, 58)
3473 pack_tmp = ior(pack_tmp, data_tmp)
3474 pack_tmp = ishft(pack_tmp, -6)
3475 idata = idata + 1
3476 data_tmp = full_data(idata)
3477 data_tmp = ishft(data_tmp, 58)
3478 pack_tmp = ior(pack_tmp, data_tmp)
3479 pack_tmp = ishft(pack_tmp, -6)
3480 idata = idata + 1
3481 data_tmp = full_data(idata)
3482 data_tmp = ishft(data_tmp, 58)
3483 pack_tmp = ior(pack_tmp, data_tmp)
3484 pack_tmp = ishft(pack_tmp, -6)
3485 idata = idata + 1
3486 data_tmp = full_data(idata)
3487 data_tmp = ishft(data_tmp, 58)
3488 pack_tmp = ior(pack_tmp, data_tmp)
3489 pack_tmp = ishft(pack_tmp, -6)
3490 idata = idata + 1
3491 data_tmp = full_data(idata)
3492 data_tmp = ishft(data_tmp, 58)
3493 pack_tmp = ior(pack_tmp, data_tmp)
3494 pack_tmp = ishft(pack_tmp, -6)
3495 idata = idata + 1
3496 data_tmp = full_data(idata)
3497 data_tmp = ishft(data_tmp, 58)
3498 pack_tmp = ior(pack_tmp, data_tmp)
3499 pack_tmp = ishft(pack_tmp, -6)
3500 idata = idata + 1
3501 data_tmp = full_data(idata)
3502 data_tmp = ishft(data_tmp, 58)
3503 pack_tmp = ior(pack_tmp, data_tmp)
3504 pack_tmp = ishft(pack_tmp, -4)
3505 idata = idata + 1
3506 data_tmp = full_data(idata)
3507 data_tmp = ishft(data_tmp, 58)
3508 data_tmp = iand(data_tmp, mask_left(4))
3509 pack_tmp = ior(pack_tmp, data_tmp)
3510 ipack = ipack + 1
3511 packed_data(ipack) = pack_tmp
3512 data_tmp = full_data(idata)
3513 pack_tmp = ishft(data_tmp, 62)
3514 pack_tmp = ishft(pack_tmp, -6)
3515 idata = idata + 1
3516 data_tmp = full_data(idata)
3517 data_tmp = ishft(data_tmp, 58)
3518 pack_tmp = ior(pack_tmp, data_tmp)
3519 pack_tmp = ishft(pack_tmp, -6)
3520 idata = idata + 1
3521 data_tmp = full_data(idata)
3522 data_tmp = ishft(data_tmp, 58)
3523 pack_tmp = ior(pack_tmp, data_tmp)
3524 pack_tmp = ishft(pack_tmp, -6)
3525 idata = idata + 1
3526 data_tmp = full_data(idata)
3527 data_tmp = ishft(data_tmp, 58)
3528 pack_tmp = ior(pack_tmp, data_tmp)
3529 pack_tmp = ishft(pack_tmp, -6)
3530 idata = idata + 1
3531 data_tmp = full_data(idata)
3532 data_tmp = ishft(data_tmp, 58)
3533 pack_tmp = ior(pack_tmp, data_tmp)
3534 pack_tmp = ishft(pack_tmp, -6)
3535 idata = idata + 1
3536 data_tmp = full_data(idata)
3537 data_tmp = ishft(data_tmp, 58)
3538 pack_tmp = ior(pack_tmp, data_tmp)
3539 pack_tmp = ishft(pack_tmp, -6)
3540 idata = idata + 1
3541 data_tmp = full_data(idata)
3542 data_tmp = ishft(data_tmp, 58)
3543 pack_tmp = ior(pack_tmp, data_tmp)
3544 pack_tmp = ishft(pack_tmp, -6)
3545 idata = idata + 1
3546 data_tmp = full_data(idata)
3547 data_tmp = ishft(data_tmp, 58)
3548 pack_tmp = ior(pack_tmp, data_tmp)
3549 pack_tmp = ishft(pack_tmp, -6)
3550 idata = idata + 1
3551 data_tmp = full_data(idata)
3552 data_tmp = ishft(data_tmp, 58)
3553 pack_tmp = ior(pack_tmp, data_tmp)
3554 pack_tmp = ishft(pack_tmp, -6)
3555 idata = idata + 1
3556 data_tmp = full_data(idata)
3557 data_tmp = ishft(data_tmp, 58)
3558 pack_tmp = ior(pack_tmp, data_tmp)
3559 pack_tmp = ishft(pack_tmp, -6)
3560 idata = idata + 1
3561 data_tmp = full_data(idata)
3562 data_tmp = ishft(data_tmp, 58)
3563 pack_tmp = ior(pack_tmp, data_tmp)
3564 pack_tmp = ishft(pack_tmp, -2)
3565 idata = idata + 1
3566 data_tmp = full_data(idata)
3567 data_tmp = ishft(data_tmp, 58)
3568 data_tmp = iand(data_tmp, mask_left(2))
3569 pack_tmp = ior(pack_tmp, data_tmp)
3570 ipack = ipack + 1
3571 packed_data(ipack) = pack_tmp
3572 data_tmp = full_data(idata)
3573 pack_tmp = ishft(data_tmp, 60)
3574 pack_tmp = ishft(pack_tmp, -6)
3575 idata = idata + 1
3576 data_tmp = full_data(idata)
3577 data_tmp = ishft(data_tmp, 58)
3578 pack_tmp = ior(pack_tmp, data_tmp)
3579 pack_tmp = ishft(pack_tmp, -6)
3580 idata = idata + 1
3581 data_tmp = full_data(idata)
3582 data_tmp = ishft(data_tmp, 58)
3583 pack_tmp = ior(pack_tmp, data_tmp)
3584 pack_tmp = ishft(pack_tmp, -6)
3585 idata = idata + 1
3586 data_tmp = full_data(idata)
3587 data_tmp = ishft(data_tmp, 58)
3588 pack_tmp = ior(pack_tmp, data_tmp)
3589 pack_tmp = ishft(pack_tmp, -6)
3590 idata = idata + 1
3591 data_tmp = full_data(idata)
3592 data_tmp = ishft(data_tmp, 58)
3593 pack_tmp = ior(pack_tmp, data_tmp)
3594 pack_tmp = ishft(pack_tmp, -6)
3595 idata = idata + 1
3596 data_tmp = full_data(idata)
3597 data_tmp = ishft(data_tmp, 58)
3598 pack_tmp = ior(pack_tmp, data_tmp)
3599 pack_tmp = ishft(pack_tmp, -6)
3600 idata = idata + 1
3601 data_tmp = full_data(idata)
3602 data_tmp = ishft(data_tmp, 58)
3603 pack_tmp = ior(pack_tmp, data_tmp)
3604 pack_tmp = ishft(pack_tmp, -6)
3605 idata = idata + 1
3606 data_tmp = full_data(idata)
3607 data_tmp = ishft(data_tmp, 58)
3608 pack_tmp = ior(pack_tmp, data_tmp)
3609 pack_tmp = ishft(pack_tmp, -6)
3610 idata = idata + 1
3611 data_tmp = full_data(idata)
3612 data_tmp = ishft(data_tmp, 58)
3613 pack_tmp = ior(pack_tmp, data_tmp)
3614 pack_tmp = ishft(pack_tmp, -6)
3615 idata = idata + 1
3616 data_tmp = full_data(idata)
3617 data_tmp = ishft(data_tmp, 58)
3618 pack_tmp = ior(pack_tmp, data_tmp)
3619 pack_tmp = ishft(pack_tmp, -6)
3620 idata = idata + 1
3621 data_tmp = full_data(idata)
3622 data_tmp = ishft(data_tmp, 58)
3623 pack_tmp = ior(pack_tmp, data_tmp)
3624 pack_tmp = ishft(pack_tmp, 0)
3625 idata = idata + 1
3626 data_tmp = full_data(idata)
3627 data_tmp = ishft(data_tmp, 58)
3628 data_tmp = iand(data_tmp, mask_left(0))
3629 pack_tmp = ior(pack_tmp, data_tmp)
3630 ipack = ipack + 1
3631 packed_data(ipack) = pack_tmp
3632 data_tmp = full_data(idata)
3633 pack_tmp = ishft(data_tmp, 58)
3634 pack_tmp = ishft(pack_tmp, -6)
3635 idata = idata + 1
3636 data_tmp = full_data(idata)
3637 data_tmp = ishft(data_tmp, 58)
3638 pack_tmp = ior(pack_tmp, data_tmp)
3639 pack_tmp = ishft(pack_tmp, -6)
3640 idata = idata + 1
3641 data_tmp = full_data(idata)
3642 data_tmp = ishft(data_tmp, 58)
3643 pack_tmp = ior(pack_tmp, data_tmp)
3644 pack_tmp = ishft(pack_tmp, -6)
3645 idata = idata + 1
3646 data_tmp = full_data(idata)
3647 data_tmp = ishft(data_tmp, 58)
3648 pack_tmp = ior(pack_tmp, data_tmp)
3649 pack_tmp = ishft(pack_tmp, -6)
3650 idata = idata + 1
3651 data_tmp = full_data(idata)
3652 data_tmp = ishft(data_tmp, 58)
3653 pack_tmp = ior(pack_tmp, data_tmp)
3654 pack_tmp = ishft(pack_tmp, -6)
3655 idata = idata + 1
3656 data_tmp = full_data(idata)
3657 data_tmp = ishft(data_tmp, 58)
3658 pack_tmp = ior(pack_tmp, data_tmp)
3659 pack_tmp = ishft(pack_tmp, -6)
3660 idata = idata + 1
3661 data_tmp = full_data(idata)
3662 data_tmp = ishft(data_tmp, 58)
3663 pack_tmp = ior(pack_tmp, data_tmp)
3664 pack_tmp = ishft(pack_tmp, -6)
3665 idata = idata + 1
3666 data_tmp = full_data(idata)
3667 data_tmp = ishft(data_tmp, 58)
3668 pack_tmp = ior(pack_tmp, data_tmp)
3669 pack_tmp = ishft(pack_tmp, -6)
3670 idata = idata + 1
3671 data_tmp = full_data(idata)
3672 data_tmp = ishft(data_tmp, 58)
3673 pack_tmp = ior(pack_tmp, data_tmp)
3674 pack_tmp = ishft(pack_tmp, -6)
3675 idata = idata + 1
3676 data_tmp = full_data(idata)
3677 data_tmp = ishft(data_tmp, 58)
3678 pack_tmp = ior(pack_tmp, data_tmp)
3679 pack_tmp = ishft(pack_tmp, -4)
3680 idata = idata + 1
3681 data_tmp = full_data(idata)
3682 data_tmp = ishft(data_tmp, 58)
3683 data_tmp = iand(data_tmp, mask_left(4))
3684 pack_tmp = ior(pack_tmp, data_tmp)
3685 ipack = ipack + 1
3686 packed_data(ipack) = pack_tmp
3687 data_tmp = full_data(idata)
3688 pack_tmp = ishft(data_tmp, 62)
3689 pack_tmp = ishft(pack_tmp, -6)
3690 idata = idata + 1
3691 data_tmp = full_data(idata)
3692 data_tmp = ishft(data_tmp, 58)
3693 pack_tmp = ior(pack_tmp, data_tmp)
3694 pack_tmp = ishft(pack_tmp, -6)
3695 idata = idata + 1
3696 data_tmp = full_data(idata)
3697 data_tmp = ishft(data_tmp, 58)
3698 pack_tmp = ior(pack_tmp, data_tmp)
3699 pack_tmp = ishft(pack_tmp, -6)
3700 idata = idata + 1
3701 data_tmp = full_data(idata)
3702 data_tmp = ishft(data_tmp, 58)
3703 pack_tmp = ior(pack_tmp, data_tmp)
3704 pack_tmp = ishft(pack_tmp, -6)
3705 idata = idata + 1
3706 data_tmp = full_data(idata)
3707 data_tmp = ishft(data_tmp, 58)
3708 pack_tmp = ior(pack_tmp, data_tmp)
3709 pack_tmp = ishft(pack_tmp, -6)
3710 idata = idata + 1
3711 data_tmp = full_data(idata)
3712 data_tmp = ishft(data_tmp, 58)
3713 pack_tmp = ior(pack_tmp, data_tmp)
3714 pack_tmp = ishft(pack_tmp, -6)
3715 idata = idata + 1
3716 data_tmp = full_data(idata)
3717 data_tmp = ishft(data_tmp, 58)
3718 pack_tmp = ior(pack_tmp, data_tmp)
3719 pack_tmp = ishft(pack_tmp, -6)
3720 idata = idata + 1
3721 data_tmp = full_data(idata)
3722 data_tmp = ishft(data_tmp, 58)
3723 pack_tmp = ior(pack_tmp, data_tmp)
3724 pack_tmp = ishft(pack_tmp, -6)
3725 idata = idata + 1
3726 data_tmp = full_data(idata)
3727 data_tmp = ishft(data_tmp, 58)
3728 pack_tmp = ior(pack_tmp, data_tmp)
3729 pack_tmp = ishft(pack_tmp, -6)
3730 idata = idata + 1
3731 data_tmp = full_data(idata)
3732 data_tmp = ishft(data_tmp, 58)
3733 pack_tmp = ior(pack_tmp, data_tmp)
3734 pack_tmp = ishft(pack_tmp, -6)
3735 idata = idata + 1
3736 data_tmp = full_data(idata)
3737 data_tmp = ishft(data_tmp, 58)
3738 pack_tmp = ior(pack_tmp, data_tmp)
3739 pack_tmp = ishft(pack_tmp, -2)
3740 idata = idata + 1
3741 data_tmp = full_data(idata)
3742 data_tmp = ishft(data_tmp, 58)
3743 data_tmp = iand(data_tmp, mask_left(2))
3744 pack_tmp = ior(pack_tmp, data_tmp)
3745 ipack = ipack + 1
3746 packed_data(ipack) = pack_tmp
3747 data_tmp = full_data(idata)
3748 pack_tmp = ishft(data_tmp, 60)
3749 pack_tmp = ishft(pack_tmp, -6)
3750 idata = idata + 1
3751 data_tmp = full_data(idata)
3752 data_tmp = ishft(data_tmp, 58)
3753 pack_tmp = ior(pack_tmp, data_tmp)
3754 pack_tmp = ishft(pack_tmp, -6)
3755 idata = idata + 1
3756 data_tmp = full_data(idata)
3757 data_tmp = ishft(data_tmp, 58)
3758 pack_tmp = ior(pack_tmp, data_tmp)
3759 pack_tmp = ishft(pack_tmp, -6)
3760 idata = idata + 1
3761 data_tmp = full_data(idata)
3762 data_tmp = ishft(data_tmp, 58)
3763 pack_tmp = ior(pack_tmp, data_tmp)
3764 pack_tmp = ishft(pack_tmp, -6)
3765 idata = idata + 1
3766 data_tmp = full_data(idata)
3767 data_tmp = ishft(data_tmp, 58)
3768 pack_tmp = ior(pack_tmp, data_tmp)
3769 pack_tmp = ishft(pack_tmp, -6)
3770 idata = idata + 1
3771 data_tmp = full_data(idata)
3772 data_tmp = ishft(data_tmp, 58)
3773 pack_tmp = ior(pack_tmp, data_tmp)
3774 pack_tmp = ishft(pack_tmp, -6)
3775 idata = idata + 1
3776 data_tmp = full_data(idata)
3777 data_tmp = ishft(data_tmp, 58)
3778 pack_tmp = ior(pack_tmp, data_tmp)
3779 pack_tmp = ishft(pack_tmp, -6)
3780 idata = idata + 1
3781 data_tmp = full_data(idata)
3782 data_tmp = ishft(data_tmp, 58)
3783 pack_tmp = ior(pack_tmp, data_tmp)
3784 pack_tmp = ishft(pack_tmp, -6)
3785 idata = idata + 1
3786 data_tmp = full_data(idata)
3787 data_tmp = ishft(data_tmp, 58)
3788 pack_tmp = ior(pack_tmp, data_tmp)
3789 pack_tmp = ishft(pack_tmp, -6)
3790 idata = idata + 1
3791 data_tmp = full_data(idata)
3792 data_tmp = ishft(data_tmp, 58)
3793 pack_tmp = ior(pack_tmp, data_tmp)
3794 pack_tmp = ishft(pack_tmp, -6)
3795 idata = idata + 1
3796 data_tmp = full_data(idata)
3797 data_tmp = ishft(data_tmp, 58)
3798 pack_tmp = ior(pack_tmp, data_tmp)
3799 pack_tmp = ishft(pack_tmp, 0)
3800 pack_tmp = ishft(pack_tmp, 0)
3801 ipack = ipack + 1
3802 packed_data(ipack) = pack_tmp
3803 END DO
3804 IF (ndata_rep < ndata) THEN
3805 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
3806 END IF
3807 END SUBROUTINE ints2bits_6
3808
3809! **************************************************************************************************
3810!> \brief ...
3811!> \param Ndata ...
3812!> \param packed_data ...
3813!> \param full_data ...
3814! **************************************************************************************************
3815 SUBROUTINE bits2ints_6(Ndata, packed_data, full_data)
3816 INTEGER, INTENT(IN) :: Ndata
3817 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
3818 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
3819
3820 INTEGER, PARAMETER :: Nbits = 6
3821
3822 INTEGER :: idata, ipack, kdata, Ndata_rep
3823 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
3824
3825 ipack = 0
3826 idata = 0
3827 pack_tmp = 0
3828 ndata_rep = (ndata/64)*64
3829 DO kdata = 1, ndata_rep, 64
3830 idata = idata + 1
3831 data_tmp = ishft(pack_tmp, 6)
3832 ipack = ipack + 1
3833 pack_tmp = packed_data(ipack)
3834 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
3835 pack_tmp = ishft(pack_tmp, -6)
3836 idata = idata + 1
3837 data_tmp = iand(pack_tmp, mask_right(nbits))
3838 full_data(idata) = data_tmp
3839 pack_tmp = ishft(pack_tmp, -nbits)
3840 idata = idata + 1
3841 data_tmp = iand(pack_tmp, mask_right(nbits))
3842 full_data(idata) = data_tmp
3843 pack_tmp = ishft(pack_tmp, -nbits)
3844 idata = idata + 1
3845 data_tmp = iand(pack_tmp, mask_right(nbits))
3846 full_data(idata) = data_tmp
3847 pack_tmp = ishft(pack_tmp, -nbits)
3848 idata = idata + 1
3849 data_tmp = iand(pack_tmp, mask_right(nbits))
3850 full_data(idata) = data_tmp
3851 pack_tmp = ishft(pack_tmp, -nbits)
3852 idata = idata + 1
3853 data_tmp = iand(pack_tmp, mask_right(nbits))
3854 full_data(idata) = data_tmp
3855 pack_tmp = ishft(pack_tmp, -nbits)
3856 idata = idata + 1
3857 data_tmp = iand(pack_tmp, mask_right(nbits))
3858 full_data(idata) = data_tmp
3859 pack_tmp = ishft(pack_tmp, -nbits)
3860 idata = idata + 1
3861 data_tmp = iand(pack_tmp, mask_right(nbits))
3862 full_data(idata) = data_tmp
3863 pack_tmp = ishft(pack_tmp, -nbits)
3864 idata = idata + 1
3865 data_tmp = iand(pack_tmp, mask_right(nbits))
3866 full_data(idata) = data_tmp
3867 pack_tmp = ishft(pack_tmp, -nbits)
3868 idata = idata + 1
3869 data_tmp = iand(pack_tmp, mask_right(nbits))
3870 full_data(idata) = data_tmp
3871 pack_tmp = ishft(pack_tmp, -nbits)
3872 idata = idata + 1
3873 data_tmp = ishft(pack_tmp, 2)
3874 ipack = ipack + 1
3875 pack_tmp = packed_data(ipack)
3876 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
3877 pack_tmp = ishft(pack_tmp, -2)
3878 idata = idata + 1
3879 data_tmp = iand(pack_tmp, mask_right(nbits))
3880 full_data(idata) = data_tmp
3881 pack_tmp = ishft(pack_tmp, -nbits)
3882 idata = idata + 1
3883 data_tmp = iand(pack_tmp, mask_right(nbits))
3884 full_data(idata) = data_tmp
3885 pack_tmp = ishft(pack_tmp, -nbits)
3886 idata = idata + 1
3887 data_tmp = iand(pack_tmp, mask_right(nbits))
3888 full_data(idata) = data_tmp
3889 pack_tmp = ishft(pack_tmp, -nbits)
3890 idata = idata + 1
3891 data_tmp = iand(pack_tmp, mask_right(nbits))
3892 full_data(idata) = data_tmp
3893 pack_tmp = ishft(pack_tmp, -nbits)
3894 idata = idata + 1
3895 data_tmp = iand(pack_tmp, mask_right(nbits))
3896 full_data(idata) = data_tmp
3897 pack_tmp = ishft(pack_tmp, -nbits)
3898 idata = idata + 1
3899 data_tmp = iand(pack_tmp, mask_right(nbits))
3900 full_data(idata) = data_tmp
3901 pack_tmp = ishft(pack_tmp, -nbits)
3902 idata = idata + 1
3903 data_tmp = iand(pack_tmp, mask_right(nbits))
3904 full_data(idata) = data_tmp
3905 pack_tmp = ishft(pack_tmp, -nbits)
3906 idata = idata + 1
3907 data_tmp = iand(pack_tmp, mask_right(nbits))
3908 full_data(idata) = data_tmp
3909 pack_tmp = ishft(pack_tmp, -nbits)
3910 idata = idata + 1
3911 data_tmp = iand(pack_tmp, mask_right(nbits))
3912 full_data(idata) = data_tmp
3913 pack_tmp = ishft(pack_tmp, -nbits)
3914 idata = idata + 1
3915 data_tmp = iand(pack_tmp, mask_right(nbits))
3916 full_data(idata) = data_tmp
3917 pack_tmp = ishft(pack_tmp, -nbits)
3918 idata = idata + 1
3919 data_tmp = ishft(pack_tmp, 4)
3920 ipack = ipack + 1
3921 pack_tmp = packed_data(ipack)
3922 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
3923 pack_tmp = ishft(pack_tmp, -4)
3924 idata = idata + 1
3925 data_tmp = iand(pack_tmp, mask_right(nbits))
3926 full_data(idata) = data_tmp
3927 pack_tmp = ishft(pack_tmp, -nbits)
3928 idata = idata + 1
3929 data_tmp = iand(pack_tmp, mask_right(nbits))
3930 full_data(idata) = data_tmp
3931 pack_tmp = ishft(pack_tmp, -nbits)
3932 idata = idata + 1
3933 data_tmp = iand(pack_tmp, mask_right(nbits))
3934 full_data(idata) = data_tmp
3935 pack_tmp = ishft(pack_tmp, -nbits)
3936 idata = idata + 1
3937 data_tmp = iand(pack_tmp, mask_right(nbits))
3938 full_data(idata) = data_tmp
3939 pack_tmp = ishft(pack_tmp, -nbits)
3940 idata = idata + 1
3941 data_tmp = iand(pack_tmp, mask_right(nbits))
3942 full_data(idata) = data_tmp
3943 pack_tmp = ishft(pack_tmp, -nbits)
3944 idata = idata + 1
3945 data_tmp = iand(pack_tmp, mask_right(nbits))
3946 full_data(idata) = data_tmp
3947 pack_tmp = ishft(pack_tmp, -nbits)
3948 idata = idata + 1
3949 data_tmp = iand(pack_tmp, mask_right(nbits))
3950 full_data(idata) = data_tmp
3951 pack_tmp = ishft(pack_tmp, -nbits)
3952 idata = idata + 1
3953 data_tmp = iand(pack_tmp, mask_right(nbits))
3954 full_data(idata) = data_tmp
3955 pack_tmp = ishft(pack_tmp, -nbits)
3956 idata = idata + 1
3957 data_tmp = iand(pack_tmp, mask_right(nbits))
3958 full_data(idata) = data_tmp
3959 pack_tmp = ishft(pack_tmp, -nbits)
3960 idata = idata + 1
3961 data_tmp = iand(pack_tmp, mask_right(nbits))
3962 full_data(idata) = data_tmp
3963 pack_tmp = ishft(pack_tmp, -nbits)
3964 idata = idata + 1
3965 data_tmp = ishft(pack_tmp, 6)
3966 ipack = ipack + 1
3967 pack_tmp = packed_data(ipack)
3968 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
3969 pack_tmp = ishft(pack_tmp, -6)
3970 idata = idata + 1
3971 data_tmp = iand(pack_tmp, mask_right(nbits))
3972 full_data(idata) = data_tmp
3973 pack_tmp = ishft(pack_tmp, -nbits)
3974 idata = idata + 1
3975 data_tmp = iand(pack_tmp, mask_right(nbits))
3976 full_data(idata) = data_tmp
3977 pack_tmp = ishft(pack_tmp, -nbits)
3978 idata = idata + 1
3979 data_tmp = iand(pack_tmp, mask_right(nbits))
3980 full_data(idata) = data_tmp
3981 pack_tmp = ishft(pack_tmp, -nbits)
3982 idata = idata + 1
3983 data_tmp = iand(pack_tmp, mask_right(nbits))
3984 full_data(idata) = data_tmp
3985 pack_tmp = ishft(pack_tmp, -nbits)
3986 idata = idata + 1
3987 data_tmp = iand(pack_tmp, mask_right(nbits))
3988 full_data(idata) = data_tmp
3989 pack_tmp = ishft(pack_tmp, -nbits)
3990 idata = idata + 1
3991 data_tmp = iand(pack_tmp, mask_right(nbits))
3992 full_data(idata) = data_tmp
3993 pack_tmp = ishft(pack_tmp, -nbits)
3994 idata = idata + 1
3995 data_tmp = iand(pack_tmp, mask_right(nbits))
3996 full_data(idata) = data_tmp
3997 pack_tmp = ishft(pack_tmp, -nbits)
3998 idata = idata + 1
3999 data_tmp = iand(pack_tmp, mask_right(nbits))
4000 full_data(idata) = data_tmp
4001 pack_tmp = ishft(pack_tmp, -nbits)
4002 idata = idata + 1
4003 data_tmp = iand(pack_tmp, mask_right(nbits))
4004 full_data(idata) = data_tmp
4005 pack_tmp = ishft(pack_tmp, -nbits)
4006 idata = idata + 1
4007 data_tmp = ishft(pack_tmp, 2)
4008 ipack = ipack + 1
4009 pack_tmp = packed_data(ipack)
4010 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
4011 pack_tmp = ishft(pack_tmp, -2)
4012 idata = idata + 1
4013 data_tmp = iand(pack_tmp, mask_right(nbits))
4014 full_data(idata) = data_tmp
4015 pack_tmp = ishft(pack_tmp, -nbits)
4016 idata = idata + 1
4017 data_tmp = iand(pack_tmp, mask_right(nbits))
4018 full_data(idata) = data_tmp
4019 pack_tmp = ishft(pack_tmp, -nbits)
4020 idata = idata + 1
4021 data_tmp = iand(pack_tmp, mask_right(nbits))
4022 full_data(idata) = data_tmp
4023 pack_tmp = ishft(pack_tmp, -nbits)
4024 idata = idata + 1
4025 data_tmp = iand(pack_tmp, mask_right(nbits))
4026 full_data(idata) = data_tmp
4027 pack_tmp = ishft(pack_tmp, -nbits)
4028 idata = idata + 1
4029 data_tmp = iand(pack_tmp, mask_right(nbits))
4030 full_data(idata) = data_tmp
4031 pack_tmp = ishft(pack_tmp, -nbits)
4032 idata = idata + 1
4033 data_tmp = iand(pack_tmp, mask_right(nbits))
4034 full_data(idata) = data_tmp
4035 pack_tmp = ishft(pack_tmp, -nbits)
4036 idata = idata + 1
4037 data_tmp = iand(pack_tmp, mask_right(nbits))
4038 full_data(idata) = data_tmp
4039 pack_tmp = ishft(pack_tmp, -nbits)
4040 idata = idata + 1
4041 data_tmp = iand(pack_tmp, mask_right(nbits))
4042 full_data(idata) = data_tmp
4043 pack_tmp = ishft(pack_tmp, -nbits)
4044 idata = idata + 1
4045 data_tmp = iand(pack_tmp, mask_right(nbits))
4046 full_data(idata) = data_tmp
4047 pack_tmp = ishft(pack_tmp, -nbits)
4048 idata = idata + 1
4049 data_tmp = iand(pack_tmp, mask_right(nbits))
4050 full_data(idata) = data_tmp
4051 pack_tmp = ishft(pack_tmp, -nbits)
4052 idata = idata + 1
4053 data_tmp = ishft(pack_tmp, 4)
4054 ipack = ipack + 1
4055 pack_tmp = packed_data(ipack)
4056 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
4057 pack_tmp = ishft(pack_tmp, -4)
4058 idata = idata + 1
4059 data_tmp = iand(pack_tmp, mask_right(nbits))
4060 full_data(idata) = data_tmp
4061 pack_tmp = ishft(pack_tmp, -nbits)
4062 idata = idata + 1
4063 data_tmp = iand(pack_tmp, mask_right(nbits))
4064 full_data(idata) = data_tmp
4065 pack_tmp = ishft(pack_tmp, -nbits)
4066 idata = idata + 1
4067 data_tmp = iand(pack_tmp, mask_right(nbits))
4068 full_data(idata) = data_tmp
4069 pack_tmp = ishft(pack_tmp, -nbits)
4070 idata = idata + 1
4071 data_tmp = iand(pack_tmp, mask_right(nbits))
4072 full_data(idata) = data_tmp
4073 pack_tmp = ishft(pack_tmp, -nbits)
4074 idata = idata + 1
4075 data_tmp = iand(pack_tmp, mask_right(nbits))
4076 full_data(idata) = data_tmp
4077 pack_tmp = ishft(pack_tmp, -nbits)
4078 idata = idata + 1
4079 data_tmp = iand(pack_tmp, mask_right(nbits))
4080 full_data(idata) = data_tmp
4081 pack_tmp = ishft(pack_tmp, -nbits)
4082 idata = idata + 1
4083 data_tmp = iand(pack_tmp, mask_right(nbits))
4084 full_data(idata) = data_tmp
4085 pack_tmp = ishft(pack_tmp, -nbits)
4086 idata = idata + 1
4087 data_tmp = iand(pack_tmp, mask_right(nbits))
4088 full_data(idata) = data_tmp
4089 pack_tmp = ishft(pack_tmp, -nbits)
4090 idata = idata + 1
4091 data_tmp = iand(pack_tmp, mask_right(nbits))
4092 full_data(idata) = data_tmp
4093 pack_tmp = ishft(pack_tmp, -nbits)
4094 idata = idata + 1
4095 data_tmp = iand(pack_tmp, mask_right(nbits))
4096 full_data(idata) = data_tmp
4097 pack_tmp = ishft(pack_tmp, -nbits)
4098 END DO
4099 IF (ndata_rep < ndata) THEN
4100 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
4101 END IF
4102 END SUBROUTINE bits2ints_6
4103
4104! **************************************************************************************************
4105!> \brief ...
4106!> \param Ndata ...
4107!> \param packed_data ...
4108!> \param full_data ...
4109! **************************************************************************************************
4110 SUBROUTINE ints2bits_7(Ndata, packed_data, full_data)
4111 INTEGER, INTENT(IN) :: Ndata
4112 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
4113 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
4114
4115 INTEGER, PARAMETER :: Nbits = 7
4116
4117 INTEGER :: idata, ipack, kdata, Ndata_rep
4118 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
4119
4120 idata = 0
4121 ipack = 0
4122 ndata_rep = (ndata/64)*64
4123 DO kdata = 1, ndata_rep, 64
4124 pack_tmp = 0
4125 idata = idata + 1
4126 data_tmp = full_data(idata)
4127 data_tmp = ishft(data_tmp, 57)
4128 pack_tmp = ior(pack_tmp, data_tmp)
4129 pack_tmp = ishft(pack_tmp, -7)
4130 idata = idata + 1
4131 data_tmp = full_data(idata)
4132 data_tmp = ishft(data_tmp, 57)
4133 pack_tmp = ior(pack_tmp, data_tmp)
4134 pack_tmp = ishft(pack_tmp, -7)
4135 idata = idata + 1
4136 data_tmp = full_data(idata)
4137 data_tmp = ishft(data_tmp, 57)
4138 pack_tmp = ior(pack_tmp, data_tmp)
4139 pack_tmp = ishft(pack_tmp, -7)
4140 idata = idata + 1
4141 data_tmp = full_data(idata)
4142 data_tmp = ishft(data_tmp, 57)
4143 pack_tmp = ior(pack_tmp, data_tmp)
4144 pack_tmp = ishft(pack_tmp, -7)
4145 idata = idata + 1
4146 data_tmp = full_data(idata)
4147 data_tmp = ishft(data_tmp, 57)
4148 pack_tmp = ior(pack_tmp, data_tmp)
4149 pack_tmp = ishft(pack_tmp, -7)
4150 idata = idata + 1
4151 data_tmp = full_data(idata)
4152 data_tmp = ishft(data_tmp, 57)
4153 pack_tmp = ior(pack_tmp, data_tmp)
4154 pack_tmp = ishft(pack_tmp, -7)
4155 idata = idata + 1
4156 data_tmp = full_data(idata)
4157 data_tmp = ishft(data_tmp, 57)
4158 pack_tmp = ior(pack_tmp, data_tmp)
4159 pack_tmp = ishft(pack_tmp, -7)
4160 idata = idata + 1
4161 data_tmp = full_data(idata)
4162 data_tmp = ishft(data_tmp, 57)
4163 pack_tmp = ior(pack_tmp, data_tmp)
4164 pack_tmp = ishft(pack_tmp, -7)
4165 idata = idata + 1
4166 data_tmp = full_data(idata)
4167 data_tmp = ishft(data_tmp, 57)
4168 pack_tmp = ior(pack_tmp, data_tmp)
4169 pack_tmp = ishft(pack_tmp, -1)
4170 idata = idata + 1
4171 data_tmp = full_data(idata)
4172 data_tmp = ishft(data_tmp, 57)
4173 data_tmp = iand(data_tmp, mask_left(1))
4174 pack_tmp = ior(pack_tmp, data_tmp)
4175 ipack = ipack + 1
4176 packed_data(ipack) = pack_tmp
4177 data_tmp = full_data(idata)
4178 pack_tmp = ishft(data_tmp, 58)
4179 pack_tmp = ishft(pack_tmp, -7)
4180 idata = idata + 1
4181 data_tmp = full_data(idata)
4182 data_tmp = ishft(data_tmp, 57)
4183 pack_tmp = ior(pack_tmp, data_tmp)
4184 pack_tmp = ishft(pack_tmp, -7)
4185 idata = idata + 1
4186 data_tmp = full_data(idata)
4187 data_tmp = ishft(data_tmp, 57)
4188 pack_tmp = ior(pack_tmp, data_tmp)
4189 pack_tmp = ishft(pack_tmp, -7)
4190 idata = idata + 1
4191 data_tmp = full_data(idata)
4192 data_tmp = ishft(data_tmp, 57)
4193 pack_tmp = ior(pack_tmp, data_tmp)
4194 pack_tmp = ishft(pack_tmp, -7)
4195 idata = idata + 1
4196 data_tmp = full_data(idata)
4197 data_tmp = ishft(data_tmp, 57)
4198 pack_tmp = ior(pack_tmp, data_tmp)
4199 pack_tmp = ishft(pack_tmp, -7)
4200 idata = idata + 1
4201 data_tmp = full_data(idata)
4202 data_tmp = ishft(data_tmp, 57)
4203 pack_tmp = ior(pack_tmp, data_tmp)
4204 pack_tmp = ishft(pack_tmp, -7)
4205 idata = idata + 1
4206 data_tmp = full_data(idata)
4207 data_tmp = ishft(data_tmp, 57)
4208 pack_tmp = ior(pack_tmp, data_tmp)
4209 pack_tmp = ishft(pack_tmp, -7)
4210 idata = idata + 1
4211 data_tmp = full_data(idata)
4212 data_tmp = ishft(data_tmp, 57)
4213 pack_tmp = ior(pack_tmp, data_tmp)
4214 pack_tmp = ishft(pack_tmp, -7)
4215 idata = idata + 1
4216 data_tmp = full_data(idata)
4217 data_tmp = ishft(data_tmp, 57)
4218 pack_tmp = ior(pack_tmp, data_tmp)
4219 pack_tmp = ishft(pack_tmp, -2)
4220 idata = idata + 1
4221 data_tmp = full_data(idata)
4222 data_tmp = ishft(data_tmp, 57)
4223 data_tmp = iand(data_tmp, mask_left(2))
4224 pack_tmp = ior(pack_tmp, data_tmp)
4225 ipack = ipack + 1
4226 packed_data(ipack) = pack_tmp
4227 data_tmp = full_data(idata)
4228 pack_tmp = ishft(data_tmp, 59)
4229 pack_tmp = ishft(pack_tmp, -7)
4230 idata = idata + 1
4231 data_tmp = full_data(idata)
4232 data_tmp = ishft(data_tmp, 57)
4233 pack_tmp = ior(pack_tmp, data_tmp)
4234 pack_tmp = ishft(pack_tmp, -7)
4235 idata = idata + 1
4236 data_tmp = full_data(idata)
4237 data_tmp = ishft(data_tmp, 57)
4238 pack_tmp = ior(pack_tmp, data_tmp)
4239 pack_tmp = ishft(pack_tmp, -7)
4240 idata = idata + 1
4241 data_tmp = full_data(idata)
4242 data_tmp = ishft(data_tmp, 57)
4243 pack_tmp = ior(pack_tmp, data_tmp)
4244 pack_tmp = ishft(pack_tmp, -7)
4245 idata = idata + 1
4246 data_tmp = full_data(idata)
4247 data_tmp = ishft(data_tmp, 57)
4248 pack_tmp = ior(pack_tmp, data_tmp)
4249 pack_tmp = ishft(pack_tmp, -7)
4250 idata = idata + 1
4251 data_tmp = full_data(idata)
4252 data_tmp = ishft(data_tmp, 57)
4253 pack_tmp = ior(pack_tmp, data_tmp)
4254 pack_tmp = ishft(pack_tmp, -7)
4255 idata = idata + 1
4256 data_tmp = full_data(idata)
4257 data_tmp = ishft(data_tmp, 57)
4258 pack_tmp = ior(pack_tmp, data_tmp)
4259 pack_tmp = ishft(pack_tmp, -7)
4260 idata = idata + 1
4261 data_tmp = full_data(idata)
4262 data_tmp = ishft(data_tmp, 57)
4263 pack_tmp = ior(pack_tmp, data_tmp)
4264 pack_tmp = ishft(pack_tmp, -7)
4265 idata = idata + 1
4266 data_tmp = full_data(idata)
4267 data_tmp = ishft(data_tmp, 57)
4268 pack_tmp = ior(pack_tmp, data_tmp)
4269 pack_tmp = ishft(pack_tmp, -3)
4270 idata = idata + 1
4271 data_tmp = full_data(idata)
4272 data_tmp = ishft(data_tmp, 57)
4273 data_tmp = iand(data_tmp, mask_left(3))
4274 pack_tmp = ior(pack_tmp, data_tmp)
4275 ipack = ipack + 1
4276 packed_data(ipack) = pack_tmp
4277 data_tmp = full_data(idata)
4278 pack_tmp = ishft(data_tmp, 60)
4279 pack_tmp = ishft(pack_tmp, -7)
4280 idata = idata + 1
4281 data_tmp = full_data(idata)
4282 data_tmp = ishft(data_tmp, 57)
4283 pack_tmp = ior(pack_tmp, data_tmp)
4284 pack_tmp = ishft(pack_tmp, -7)
4285 idata = idata + 1
4286 data_tmp = full_data(idata)
4287 data_tmp = ishft(data_tmp, 57)
4288 pack_tmp = ior(pack_tmp, data_tmp)
4289 pack_tmp = ishft(pack_tmp, -7)
4290 idata = idata + 1
4291 data_tmp = full_data(idata)
4292 data_tmp = ishft(data_tmp, 57)
4293 pack_tmp = ior(pack_tmp, data_tmp)
4294 pack_tmp = ishft(pack_tmp, -7)
4295 idata = idata + 1
4296 data_tmp = full_data(idata)
4297 data_tmp = ishft(data_tmp, 57)
4298 pack_tmp = ior(pack_tmp, data_tmp)
4299 pack_tmp = ishft(pack_tmp, -7)
4300 idata = idata + 1
4301 data_tmp = full_data(idata)
4302 data_tmp = ishft(data_tmp, 57)
4303 pack_tmp = ior(pack_tmp, data_tmp)
4304 pack_tmp = ishft(pack_tmp, -7)
4305 idata = idata + 1
4306 data_tmp = full_data(idata)
4307 data_tmp = ishft(data_tmp, 57)
4308 pack_tmp = ior(pack_tmp, data_tmp)
4309 pack_tmp = ishft(pack_tmp, -7)
4310 idata = idata + 1
4311 data_tmp = full_data(idata)
4312 data_tmp = ishft(data_tmp, 57)
4313 pack_tmp = ior(pack_tmp, data_tmp)
4314 pack_tmp = ishft(pack_tmp, -7)
4315 idata = idata + 1
4316 data_tmp = full_data(idata)
4317 data_tmp = ishft(data_tmp, 57)
4318 pack_tmp = ior(pack_tmp, data_tmp)
4319 pack_tmp = ishft(pack_tmp, -4)
4320 idata = idata + 1
4321 data_tmp = full_data(idata)
4322 data_tmp = ishft(data_tmp, 57)
4323 data_tmp = iand(data_tmp, mask_left(4))
4324 pack_tmp = ior(pack_tmp, data_tmp)
4325 ipack = ipack + 1
4326 packed_data(ipack) = pack_tmp
4327 data_tmp = full_data(idata)
4328 pack_tmp = ishft(data_tmp, 61)
4329 pack_tmp = ishft(pack_tmp, -7)
4330 idata = idata + 1
4331 data_tmp = full_data(idata)
4332 data_tmp = ishft(data_tmp, 57)
4333 pack_tmp = ior(pack_tmp, data_tmp)
4334 pack_tmp = ishft(pack_tmp, -7)
4335 idata = idata + 1
4336 data_tmp = full_data(idata)
4337 data_tmp = ishft(data_tmp, 57)
4338 pack_tmp = ior(pack_tmp, data_tmp)
4339 pack_tmp = ishft(pack_tmp, -7)
4340 idata = idata + 1
4341 data_tmp = full_data(idata)
4342 data_tmp = ishft(data_tmp, 57)
4343 pack_tmp = ior(pack_tmp, data_tmp)
4344 pack_tmp = ishft(pack_tmp, -7)
4345 idata = idata + 1
4346 data_tmp = full_data(idata)
4347 data_tmp = ishft(data_tmp, 57)
4348 pack_tmp = ior(pack_tmp, data_tmp)
4349 pack_tmp = ishft(pack_tmp, -7)
4350 idata = idata + 1
4351 data_tmp = full_data(idata)
4352 data_tmp = ishft(data_tmp, 57)
4353 pack_tmp = ior(pack_tmp, data_tmp)
4354 pack_tmp = ishft(pack_tmp, -7)
4355 idata = idata + 1
4356 data_tmp = full_data(idata)
4357 data_tmp = ishft(data_tmp, 57)
4358 pack_tmp = ior(pack_tmp, data_tmp)
4359 pack_tmp = ishft(pack_tmp, -7)
4360 idata = idata + 1
4361 data_tmp = full_data(idata)
4362 data_tmp = ishft(data_tmp, 57)
4363 pack_tmp = ior(pack_tmp, data_tmp)
4364 pack_tmp = ishft(pack_tmp, -7)
4365 idata = idata + 1
4366 data_tmp = full_data(idata)
4367 data_tmp = ishft(data_tmp, 57)
4368 pack_tmp = ior(pack_tmp, data_tmp)
4369 pack_tmp = ishft(pack_tmp, -5)
4370 idata = idata + 1
4371 data_tmp = full_data(idata)
4372 data_tmp = ishft(data_tmp, 57)
4373 data_tmp = iand(data_tmp, mask_left(5))
4374 pack_tmp = ior(pack_tmp, data_tmp)
4375 ipack = ipack + 1
4376 packed_data(ipack) = pack_tmp
4377 data_tmp = full_data(idata)
4378 pack_tmp = ishft(data_tmp, 62)
4379 pack_tmp = ishft(pack_tmp, -7)
4380 idata = idata + 1
4381 data_tmp = full_data(idata)
4382 data_tmp = ishft(data_tmp, 57)
4383 pack_tmp = ior(pack_tmp, data_tmp)
4384 pack_tmp = ishft(pack_tmp, -7)
4385 idata = idata + 1
4386 data_tmp = full_data(idata)
4387 data_tmp = ishft(data_tmp, 57)
4388 pack_tmp = ior(pack_tmp, data_tmp)
4389 pack_tmp = ishft(pack_tmp, -7)
4390 idata = idata + 1
4391 data_tmp = full_data(idata)
4392 data_tmp = ishft(data_tmp, 57)
4393 pack_tmp = ior(pack_tmp, data_tmp)
4394 pack_tmp = ishft(pack_tmp, -7)
4395 idata = idata + 1
4396 data_tmp = full_data(idata)
4397 data_tmp = ishft(data_tmp, 57)
4398 pack_tmp = ior(pack_tmp, data_tmp)
4399 pack_tmp = ishft(pack_tmp, -7)
4400 idata = idata + 1
4401 data_tmp = full_data(idata)
4402 data_tmp = ishft(data_tmp, 57)
4403 pack_tmp = ior(pack_tmp, data_tmp)
4404 pack_tmp = ishft(pack_tmp, -7)
4405 idata = idata + 1
4406 data_tmp = full_data(idata)
4407 data_tmp = ishft(data_tmp, 57)
4408 pack_tmp = ior(pack_tmp, data_tmp)
4409 pack_tmp = ishft(pack_tmp, -7)
4410 idata = idata + 1
4411 data_tmp = full_data(idata)
4412 data_tmp = ishft(data_tmp, 57)
4413 pack_tmp = ior(pack_tmp, data_tmp)
4414 pack_tmp = ishft(pack_tmp, -7)
4415 idata = idata + 1
4416 data_tmp = full_data(idata)
4417 data_tmp = ishft(data_tmp, 57)
4418 pack_tmp = ior(pack_tmp, data_tmp)
4419 pack_tmp = ishft(pack_tmp, -6)
4420 idata = idata + 1
4421 data_tmp = full_data(idata)
4422 data_tmp = ishft(data_tmp, 57)
4423 data_tmp = iand(data_tmp, mask_left(6))
4424 pack_tmp = ior(pack_tmp, data_tmp)
4425 ipack = ipack + 1
4426 packed_data(ipack) = pack_tmp
4427 data_tmp = full_data(idata)
4428 pack_tmp = ishft(data_tmp, 63)
4429 pack_tmp = ishft(pack_tmp, -7)
4430 idata = idata + 1
4431 data_tmp = full_data(idata)
4432 data_tmp = ishft(data_tmp, 57)
4433 pack_tmp = ior(pack_tmp, data_tmp)
4434 pack_tmp = ishft(pack_tmp, -7)
4435 idata = idata + 1
4436 data_tmp = full_data(idata)
4437 data_tmp = ishft(data_tmp, 57)
4438 pack_tmp = ior(pack_tmp, data_tmp)
4439 pack_tmp = ishft(pack_tmp, -7)
4440 idata = idata + 1
4441 data_tmp = full_data(idata)
4442 data_tmp = ishft(data_tmp, 57)
4443 pack_tmp = ior(pack_tmp, data_tmp)
4444 pack_tmp = ishft(pack_tmp, -7)
4445 idata = idata + 1
4446 data_tmp = full_data(idata)
4447 data_tmp = ishft(data_tmp, 57)
4448 pack_tmp = ior(pack_tmp, data_tmp)
4449 pack_tmp = ishft(pack_tmp, -7)
4450 idata = idata + 1
4451 data_tmp = full_data(idata)
4452 data_tmp = ishft(data_tmp, 57)
4453 pack_tmp = ior(pack_tmp, data_tmp)
4454 pack_tmp = ishft(pack_tmp, -7)
4455 idata = idata + 1
4456 data_tmp = full_data(idata)
4457 data_tmp = ishft(data_tmp, 57)
4458 pack_tmp = ior(pack_tmp, data_tmp)
4459 pack_tmp = ishft(pack_tmp, -7)
4460 idata = idata + 1
4461 data_tmp = full_data(idata)
4462 data_tmp = ishft(data_tmp, 57)
4463 pack_tmp = ior(pack_tmp, data_tmp)
4464 pack_tmp = ishft(pack_tmp, -7)
4465 idata = idata + 1
4466 data_tmp = full_data(idata)
4467 data_tmp = ishft(data_tmp, 57)
4468 pack_tmp = ior(pack_tmp, data_tmp)
4469 pack_tmp = ishft(pack_tmp, -7)
4470 idata = idata + 1
4471 data_tmp = full_data(idata)
4472 data_tmp = ishft(data_tmp, 57)
4473 pack_tmp = ior(pack_tmp, data_tmp)
4474 pack_tmp = ishft(pack_tmp, 0)
4475 pack_tmp = ishft(pack_tmp, 0)
4476 ipack = ipack + 1
4477 packed_data(ipack) = pack_tmp
4478 END DO
4479 IF (ndata_rep < ndata) THEN
4480 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
4481 END IF
4482 END SUBROUTINE ints2bits_7
4483
4484! **************************************************************************************************
4485!> \brief ...
4486!> \param Ndata ...
4487!> \param packed_data ...
4488!> \param full_data ...
4489! **************************************************************************************************
4490 SUBROUTINE bits2ints_7(Ndata, packed_data, full_data)
4491 INTEGER, INTENT(IN) :: Ndata
4492 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
4493 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
4494
4495 INTEGER, PARAMETER :: Nbits = 7
4496
4497 INTEGER :: idata, ipack, kdata, Ndata_rep
4498 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
4499
4500 ipack = 0
4501 idata = 0
4502 pack_tmp = 0
4503 ndata_rep = (ndata/64)*64
4504 DO kdata = 1, ndata_rep, 64
4505 idata = idata + 1
4506 data_tmp = ishft(pack_tmp, 7)
4507 ipack = ipack + 1
4508 pack_tmp = packed_data(ipack)
4509 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
4510 pack_tmp = ishft(pack_tmp, -7)
4511 idata = idata + 1
4512 data_tmp = iand(pack_tmp, mask_right(nbits))
4513 full_data(idata) = data_tmp
4514 pack_tmp = ishft(pack_tmp, -nbits)
4515 idata = idata + 1
4516 data_tmp = iand(pack_tmp, mask_right(nbits))
4517 full_data(idata) = data_tmp
4518 pack_tmp = ishft(pack_tmp, -nbits)
4519 idata = idata + 1
4520 data_tmp = iand(pack_tmp, mask_right(nbits))
4521 full_data(idata) = data_tmp
4522 pack_tmp = ishft(pack_tmp, -nbits)
4523 idata = idata + 1
4524 data_tmp = iand(pack_tmp, mask_right(nbits))
4525 full_data(idata) = data_tmp
4526 pack_tmp = ishft(pack_tmp, -nbits)
4527 idata = idata + 1
4528 data_tmp = iand(pack_tmp, mask_right(nbits))
4529 full_data(idata) = data_tmp
4530 pack_tmp = ishft(pack_tmp, -nbits)
4531 idata = idata + 1
4532 data_tmp = iand(pack_tmp, mask_right(nbits))
4533 full_data(idata) = data_tmp
4534 pack_tmp = ishft(pack_tmp, -nbits)
4535 idata = idata + 1
4536 data_tmp = iand(pack_tmp, mask_right(nbits))
4537 full_data(idata) = data_tmp
4538 pack_tmp = ishft(pack_tmp, -nbits)
4539 idata = idata + 1
4540 data_tmp = iand(pack_tmp, mask_right(nbits))
4541 full_data(idata) = data_tmp
4542 pack_tmp = ishft(pack_tmp, -nbits)
4543 idata = idata + 1
4544 data_tmp = ishft(pack_tmp, 6)
4545 ipack = ipack + 1
4546 pack_tmp = packed_data(ipack)
4547 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
4548 pack_tmp = ishft(pack_tmp, -6)
4549 idata = idata + 1
4550 data_tmp = iand(pack_tmp, mask_right(nbits))
4551 full_data(idata) = data_tmp
4552 pack_tmp = ishft(pack_tmp, -nbits)
4553 idata = idata + 1
4554 data_tmp = iand(pack_tmp, mask_right(nbits))
4555 full_data(idata) = data_tmp
4556 pack_tmp = ishft(pack_tmp, -nbits)
4557 idata = idata + 1
4558 data_tmp = iand(pack_tmp, mask_right(nbits))
4559 full_data(idata) = data_tmp
4560 pack_tmp = ishft(pack_tmp, -nbits)
4561 idata = idata + 1
4562 data_tmp = iand(pack_tmp, mask_right(nbits))
4563 full_data(idata) = data_tmp
4564 pack_tmp = ishft(pack_tmp, -nbits)
4565 idata = idata + 1
4566 data_tmp = iand(pack_tmp, mask_right(nbits))
4567 full_data(idata) = data_tmp
4568 pack_tmp = ishft(pack_tmp, -nbits)
4569 idata = idata + 1
4570 data_tmp = iand(pack_tmp, mask_right(nbits))
4571 full_data(idata) = data_tmp
4572 pack_tmp = ishft(pack_tmp, -nbits)
4573 idata = idata + 1
4574 data_tmp = iand(pack_tmp, mask_right(nbits))
4575 full_data(idata) = data_tmp
4576 pack_tmp = ishft(pack_tmp, -nbits)
4577 idata = idata + 1
4578 data_tmp = iand(pack_tmp, mask_right(nbits))
4579 full_data(idata) = data_tmp
4580 pack_tmp = ishft(pack_tmp, -nbits)
4581 idata = idata + 1
4582 data_tmp = ishft(pack_tmp, 5)
4583 ipack = ipack + 1
4584 pack_tmp = packed_data(ipack)
4585 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
4586 pack_tmp = ishft(pack_tmp, -5)
4587 idata = idata + 1
4588 data_tmp = iand(pack_tmp, mask_right(nbits))
4589 full_data(idata) = data_tmp
4590 pack_tmp = ishft(pack_tmp, -nbits)
4591 idata = idata + 1
4592 data_tmp = iand(pack_tmp, mask_right(nbits))
4593 full_data(idata) = data_tmp
4594 pack_tmp = ishft(pack_tmp, -nbits)
4595 idata = idata + 1
4596 data_tmp = iand(pack_tmp, mask_right(nbits))
4597 full_data(idata) = data_tmp
4598 pack_tmp = ishft(pack_tmp, -nbits)
4599 idata = idata + 1
4600 data_tmp = iand(pack_tmp, mask_right(nbits))
4601 full_data(idata) = data_tmp
4602 pack_tmp = ishft(pack_tmp, -nbits)
4603 idata = idata + 1
4604 data_tmp = iand(pack_tmp, mask_right(nbits))
4605 full_data(idata) = data_tmp
4606 pack_tmp = ishft(pack_tmp, -nbits)
4607 idata = idata + 1
4608 data_tmp = iand(pack_tmp, mask_right(nbits))
4609 full_data(idata) = data_tmp
4610 pack_tmp = ishft(pack_tmp, -nbits)
4611 idata = idata + 1
4612 data_tmp = iand(pack_tmp, mask_right(nbits))
4613 full_data(idata) = data_tmp
4614 pack_tmp = ishft(pack_tmp, -nbits)
4615 idata = idata + 1
4616 data_tmp = iand(pack_tmp, mask_right(nbits))
4617 full_data(idata) = data_tmp
4618 pack_tmp = ishft(pack_tmp, -nbits)
4619 idata = idata + 1
4620 data_tmp = ishft(pack_tmp, 4)
4621 ipack = ipack + 1
4622 pack_tmp = packed_data(ipack)
4623 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
4624 pack_tmp = ishft(pack_tmp, -4)
4625 idata = idata + 1
4626 data_tmp = iand(pack_tmp, mask_right(nbits))
4627 full_data(idata) = data_tmp
4628 pack_tmp = ishft(pack_tmp, -nbits)
4629 idata = idata + 1
4630 data_tmp = iand(pack_tmp, mask_right(nbits))
4631 full_data(idata) = data_tmp
4632 pack_tmp = ishft(pack_tmp, -nbits)
4633 idata = idata + 1
4634 data_tmp = iand(pack_tmp, mask_right(nbits))
4635 full_data(idata) = data_tmp
4636 pack_tmp = ishft(pack_tmp, -nbits)
4637 idata = idata + 1
4638 data_tmp = iand(pack_tmp, mask_right(nbits))
4639 full_data(idata) = data_tmp
4640 pack_tmp = ishft(pack_tmp, -nbits)
4641 idata = idata + 1
4642 data_tmp = iand(pack_tmp, mask_right(nbits))
4643 full_data(idata) = data_tmp
4644 pack_tmp = ishft(pack_tmp, -nbits)
4645 idata = idata + 1
4646 data_tmp = iand(pack_tmp, mask_right(nbits))
4647 full_data(idata) = data_tmp
4648 pack_tmp = ishft(pack_tmp, -nbits)
4649 idata = idata + 1
4650 data_tmp = iand(pack_tmp, mask_right(nbits))
4651 full_data(idata) = data_tmp
4652 pack_tmp = ishft(pack_tmp, -nbits)
4653 idata = idata + 1
4654 data_tmp = iand(pack_tmp, mask_right(nbits))
4655 full_data(idata) = data_tmp
4656 pack_tmp = ishft(pack_tmp, -nbits)
4657 idata = idata + 1
4658 data_tmp = ishft(pack_tmp, 3)
4659 ipack = ipack + 1
4660 pack_tmp = packed_data(ipack)
4661 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
4662 pack_tmp = ishft(pack_tmp, -3)
4663 idata = idata + 1
4664 data_tmp = iand(pack_tmp, mask_right(nbits))
4665 full_data(idata) = data_tmp
4666 pack_tmp = ishft(pack_tmp, -nbits)
4667 idata = idata + 1
4668 data_tmp = iand(pack_tmp, mask_right(nbits))
4669 full_data(idata) = data_tmp
4670 pack_tmp = ishft(pack_tmp, -nbits)
4671 idata = idata + 1
4672 data_tmp = iand(pack_tmp, mask_right(nbits))
4673 full_data(idata) = data_tmp
4674 pack_tmp = ishft(pack_tmp, -nbits)
4675 idata = idata + 1
4676 data_tmp = iand(pack_tmp, mask_right(nbits))
4677 full_data(idata) = data_tmp
4678 pack_tmp = ishft(pack_tmp, -nbits)
4679 idata = idata + 1
4680 data_tmp = iand(pack_tmp, mask_right(nbits))
4681 full_data(idata) = data_tmp
4682 pack_tmp = ishft(pack_tmp, -nbits)
4683 idata = idata + 1
4684 data_tmp = iand(pack_tmp, mask_right(nbits))
4685 full_data(idata) = data_tmp
4686 pack_tmp = ishft(pack_tmp, -nbits)
4687 idata = idata + 1
4688 data_tmp = iand(pack_tmp, mask_right(nbits))
4689 full_data(idata) = data_tmp
4690 pack_tmp = ishft(pack_tmp, -nbits)
4691 idata = idata + 1
4692 data_tmp = iand(pack_tmp, mask_right(nbits))
4693 full_data(idata) = data_tmp
4694 pack_tmp = ishft(pack_tmp, -nbits)
4695 idata = idata + 1
4696 data_tmp = ishft(pack_tmp, 2)
4697 ipack = ipack + 1
4698 pack_tmp = packed_data(ipack)
4699 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
4700 pack_tmp = ishft(pack_tmp, -2)
4701 idata = idata + 1
4702 data_tmp = iand(pack_tmp, mask_right(nbits))
4703 full_data(idata) = data_tmp
4704 pack_tmp = ishft(pack_tmp, -nbits)
4705 idata = idata + 1
4706 data_tmp = iand(pack_tmp, mask_right(nbits))
4707 full_data(idata) = data_tmp
4708 pack_tmp = ishft(pack_tmp, -nbits)
4709 idata = idata + 1
4710 data_tmp = iand(pack_tmp, mask_right(nbits))
4711 full_data(idata) = data_tmp
4712 pack_tmp = ishft(pack_tmp, -nbits)
4713 idata = idata + 1
4714 data_tmp = iand(pack_tmp, mask_right(nbits))
4715 full_data(idata) = data_tmp
4716 pack_tmp = ishft(pack_tmp, -nbits)
4717 idata = idata + 1
4718 data_tmp = iand(pack_tmp, mask_right(nbits))
4719 full_data(idata) = data_tmp
4720 pack_tmp = ishft(pack_tmp, -nbits)
4721 idata = idata + 1
4722 data_tmp = iand(pack_tmp, mask_right(nbits))
4723 full_data(idata) = data_tmp
4724 pack_tmp = ishft(pack_tmp, -nbits)
4725 idata = idata + 1
4726 data_tmp = iand(pack_tmp, mask_right(nbits))
4727 full_data(idata) = data_tmp
4728 pack_tmp = ishft(pack_tmp, -nbits)
4729 idata = idata + 1
4730 data_tmp = iand(pack_tmp, mask_right(nbits))
4731 full_data(idata) = data_tmp
4732 pack_tmp = ishft(pack_tmp, -nbits)
4733 idata = idata + 1
4734 data_tmp = ishft(pack_tmp, 1)
4735 ipack = ipack + 1
4736 pack_tmp = packed_data(ipack)
4737 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
4738 pack_tmp = ishft(pack_tmp, -1)
4739 idata = idata + 1
4740 data_tmp = iand(pack_tmp, mask_right(nbits))
4741 full_data(idata) = data_tmp
4742 pack_tmp = ishft(pack_tmp, -nbits)
4743 idata = idata + 1
4744 data_tmp = iand(pack_tmp, mask_right(nbits))
4745 full_data(idata) = data_tmp
4746 pack_tmp = ishft(pack_tmp, -nbits)
4747 idata = idata + 1
4748 data_tmp = iand(pack_tmp, mask_right(nbits))
4749 full_data(idata) = data_tmp
4750 pack_tmp = ishft(pack_tmp, -nbits)
4751 idata = idata + 1
4752 data_tmp = iand(pack_tmp, mask_right(nbits))
4753 full_data(idata) = data_tmp
4754 pack_tmp = ishft(pack_tmp, -nbits)
4755 idata = idata + 1
4756 data_tmp = iand(pack_tmp, mask_right(nbits))
4757 full_data(idata) = data_tmp
4758 pack_tmp = ishft(pack_tmp, -nbits)
4759 idata = idata + 1
4760 data_tmp = iand(pack_tmp, mask_right(nbits))
4761 full_data(idata) = data_tmp
4762 pack_tmp = ishft(pack_tmp, -nbits)
4763 idata = idata + 1
4764 data_tmp = iand(pack_tmp, mask_right(nbits))
4765 full_data(idata) = data_tmp
4766 pack_tmp = ishft(pack_tmp, -nbits)
4767 idata = idata + 1
4768 data_tmp = iand(pack_tmp, mask_right(nbits))
4769 full_data(idata) = data_tmp
4770 pack_tmp = ishft(pack_tmp, -nbits)
4771 idata = idata + 1
4772 data_tmp = iand(pack_tmp, mask_right(nbits))
4773 full_data(idata) = data_tmp
4774 pack_tmp = ishft(pack_tmp, -nbits)
4775 END DO
4776 IF (ndata_rep < ndata) THEN
4777 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
4778 END IF
4779 END SUBROUTINE bits2ints_7
4780
4781! **************************************************************************************************
4782!> \brief ...
4783!> \param Ndata ...
4784!> \param packed_data ...
4785!> \param full_data ...
4786! **************************************************************************************************
4787 SUBROUTINE ints2bits_8(Ndata, packed_data, full_data)
4788 INTEGER, INTENT(IN) :: Ndata
4789 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
4790 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
4791
4792 INTEGER, PARAMETER :: Nbits = 8
4793
4794 INTEGER :: idata, ipack, kdata, Ndata_rep
4795 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
4796
4797 idata = 0
4798 ipack = 0
4799 ndata_rep = (ndata/64)*64
4800 DO kdata = 1, ndata_rep, 64
4801 pack_tmp = 0
4802 idata = idata + 1
4803 data_tmp = full_data(idata)
4804 data_tmp = ishft(data_tmp, 56)
4805 pack_tmp = ior(pack_tmp, data_tmp)
4806 pack_tmp = ishft(pack_tmp, -8)
4807 idata = idata + 1
4808 data_tmp = full_data(idata)
4809 data_tmp = ishft(data_tmp, 56)
4810 pack_tmp = ior(pack_tmp, data_tmp)
4811 pack_tmp = ishft(pack_tmp, -8)
4812 idata = idata + 1
4813 data_tmp = full_data(idata)
4814 data_tmp = ishft(data_tmp, 56)
4815 pack_tmp = ior(pack_tmp, data_tmp)
4816 pack_tmp = ishft(pack_tmp, -8)
4817 idata = idata + 1
4818 data_tmp = full_data(idata)
4819 data_tmp = ishft(data_tmp, 56)
4820 pack_tmp = ior(pack_tmp, data_tmp)
4821 pack_tmp = ishft(pack_tmp, -8)
4822 idata = idata + 1
4823 data_tmp = full_data(idata)
4824 data_tmp = ishft(data_tmp, 56)
4825 pack_tmp = ior(pack_tmp, data_tmp)
4826 pack_tmp = ishft(pack_tmp, -8)
4827 idata = idata + 1
4828 data_tmp = full_data(idata)
4829 data_tmp = ishft(data_tmp, 56)
4830 pack_tmp = ior(pack_tmp, data_tmp)
4831 pack_tmp = ishft(pack_tmp, -8)
4832 idata = idata + 1
4833 data_tmp = full_data(idata)
4834 data_tmp = ishft(data_tmp, 56)
4835 pack_tmp = ior(pack_tmp, data_tmp)
4836 pack_tmp = ishft(pack_tmp, -8)
4837 idata = idata + 1
4838 data_tmp = full_data(idata)
4839 data_tmp = ishft(data_tmp, 56)
4840 pack_tmp = ior(pack_tmp, data_tmp)
4841 pack_tmp = ishft(pack_tmp, 0)
4842 idata = idata + 1
4843 data_tmp = full_data(idata)
4844 data_tmp = ishft(data_tmp, 56)
4845 data_tmp = iand(data_tmp, mask_left(0))
4846 pack_tmp = ior(pack_tmp, data_tmp)
4847 ipack = ipack + 1
4848 packed_data(ipack) = pack_tmp
4849 data_tmp = full_data(idata)
4850 pack_tmp = ishft(data_tmp, 56)
4851 pack_tmp = ishft(pack_tmp, -8)
4852 idata = idata + 1
4853 data_tmp = full_data(idata)
4854 data_tmp = ishft(data_tmp, 56)
4855 pack_tmp = ior(pack_tmp, data_tmp)
4856 pack_tmp = ishft(pack_tmp, -8)
4857 idata = idata + 1
4858 data_tmp = full_data(idata)
4859 data_tmp = ishft(data_tmp, 56)
4860 pack_tmp = ior(pack_tmp, data_tmp)
4861 pack_tmp = ishft(pack_tmp, -8)
4862 idata = idata + 1
4863 data_tmp = full_data(idata)
4864 data_tmp = ishft(data_tmp, 56)
4865 pack_tmp = ior(pack_tmp, data_tmp)
4866 pack_tmp = ishft(pack_tmp, -8)
4867 idata = idata + 1
4868 data_tmp = full_data(idata)
4869 data_tmp = ishft(data_tmp, 56)
4870 pack_tmp = ior(pack_tmp, data_tmp)
4871 pack_tmp = ishft(pack_tmp, -8)
4872 idata = idata + 1
4873 data_tmp = full_data(idata)
4874 data_tmp = ishft(data_tmp, 56)
4875 pack_tmp = ior(pack_tmp, data_tmp)
4876 pack_tmp = ishft(pack_tmp, -8)
4877 idata = idata + 1
4878 data_tmp = full_data(idata)
4879 data_tmp = ishft(data_tmp, 56)
4880 pack_tmp = ior(pack_tmp, data_tmp)
4881 pack_tmp = ishft(pack_tmp, -8)
4882 idata = idata + 1
4883 data_tmp = full_data(idata)
4884 data_tmp = ishft(data_tmp, 56)
4885 pack_tmp = ior(pack_tmp, data_tmp)
4886 pack_tmp = ishft(pack_tmp, 0)
4887 idata = idata + 1
4888 data_tmp = full_data(idata)
4889 data_tmp = ishft(data_tmp, 56)
4890 data_tmp = iand(data_tmp, mask_left(0))
4891 pack_tmp = ior(pack_tmp, data_tmp)
4892 ipack = ipack + 1
4893 packed_data(ipack) = pack_tmp
4894 data_tmp = full_data(idata)
4895 pack_tmp = ishft(data_tmp, 56)
4896 pack_tmp = ishft(pack_tmp, -8)
4897 idata = idata + 1
4898 data_tmp = full_data(idata)
4899 data_tmp = ishft(data_tmp, 56)
4900 pack_tmp = ior(pack_tmp, data_tmp)
4901 pack_tmp = ishft(pack_tmp, -8)
4902 idata = idata + 1
4903 data_tmp = full_data(idata)
4904 data_tmp = ishft(data_tmp, 56)
4905 pack_tmp = ior(pack_tmp, data_tmp)
4906 pack_tmp = ishft(pack_tmp, -8)
4907 idata = idata + 1
4908 data_tmp = full_data(idata)
4909 data_tmp = ishft(data_tmp, 56)
4910 pack_tmp = ior(pack_tmp, data_tmp)
4911 pack_tmp = ishft(pack_tmp, -8)
4912 idata = idata + 1
4913 data_tmp = full_data(idata)
4914 data_tmp = ishft(data_tmp, 56)
4915 pack_tmp = ior(pack_tmp, data_tmp)
4916 pack_tmp = ishft(pack_tmp, -8)
4917 idata = idata + 1
4918 data_tmp = full_data(idata)
4919 data_tmp = ishft(data_tmp, 56)
4920 pack_tmp = ior(pack_tmp, data_tmp)
4921 pack_tmp = ishft(pack_tmp, -8)
4922 idata = idata + 1
4923 data_tmp = full_data(idata)
4924 data_tmp = ishft(data_tmp, 56)
4925 pack_tmp = ior(pack_tmp, data_tmp)
4926 pack_tmp = ishft(pack_tmp, -8)
4927 idata = idata + 1
4928 data_tmp = full_data(idata)
4929 data_tmp = ishft(data_tmp, 56)
4930 pack_tmp = ior(pack_tmp, data_tmp)
4931 pack_tmp = ishft(pack_tmp, 0)
4932 idata = idata + 1
4933 data_tmp = full_data(idata)
4934 data_tmp = ishft(data_tmp, 56)
4935 data_tmp = iand(data_tmp, mask_left(0))
4936 pack_tmp = ior(pack_tmp, data_tmp)
4937 ipack = ipack + 1
4938 packed_data(ipack) = pack_tmp
4939 data_tmp = full_data(idata)
4940 pack_tmp = ishft(data_tmp, 56)
4941 pack_tmp = ishft(pack_tmp, -8)
4942 idata = idata + 1
4943 data_tmp = full_data(idata)
4944 data_tmp = ishft(data_tmp, 56)
4945 pack_tmp = ior(pack_tmp, data_tmp)
4946 pack_tmp = ishft(pack_tmp, -8)
4947 idata = idata + 1
4948 data_tmp = full_data(idata)
4949 data_tmp = ishft(data_tmp, 56)
4950 pack_tmp = ior(pack_tmp, data_tmp)
4951 pack_tmp = ishft(pack_tmp, -8)
4952 idata = idata + 1
4953 data_tmp = full_data(idata)
4954 data_tmp = ishft(data_tmp, 56)
4955 pack_tmp = ior(pack_tmp, data_tmp)
4956 pack_tmp = ishft(pack_tmp, -8)
4957 idata = idata + 1
4958 data_tmp = full_data(idata)
4959 data_tmp = ishft(data_tmp, 56)
4960 pack_tmp = ior(pack_tmp, data_tmp)
4961 pack_tmp = ishft(pack_tmp, -8)
4962 idata = idata + 1
4963 data_tmp = full_data(idata)
4964 data_tmp = ishft(data_tmp, 56)
4965 pack_tmp = ior(pack_tmp, data_tmp)
4966 pack_tmp = ishft(pack_tmp, -8)
4967 idata = idata + 1
4968 data_tmp = full_data(idata)
4969 data_tmp = ishft(data_tmp, 56)
4970 pack_tmp = ior(pack_tmp, data_tmp)
4971 pack_tmp = ishft(pack_tmp, -8)
4972 idata = idata + 1
4973 data_tmp = full_data(idata)
4974 data_tmp = ishft(data_tmp, 56)
4975 pack_tmp = ior(pack_tmp, data_tmp)
4976 pack_tmp = ishft(pack_tmp, 0)
4977 idata = idata + 1
4978 data_tmp = full_data(idata)
4979 data_tmp = ishft(data_tmp, 56)
4980 data_tmp = iand(data_tmp, mask_left(0))
4981 pack_tmp = ior(pack_tmp, data_tmp)
4982 ipack = ipack + 1
4983 packed_data(ipack) = pack_tmp
4984 data_tmp = full_data(idata)
4985 pack_tmp = ishft(data_tmp, 56)
4986 pack_tmp = ishft(pack_tmp, -8)
4987 idata = idata + 1
4988 data_tmp = full_data(idata)
4989 data_tmp = ishft(data_tmp, 56)
4990 pack_tmp = ior(pack_tmp, data_tmp)
4991 pack_tmp = ishft(pack_tmp, -8)
4992 idata = idata + 1
4993 data_tmp = full_data(idata)
4994 data_tmp = ishft(data_tmp, 56)
4995 pack_tmp = ior(pack_tmp, data_tmp)
4996 pack_tmp = ishft(pack_tmp, -8)
4997 idata = idata + 1
4998 data_tmp = full_data(idata)
4999 data_tmp = ishft(data_tmp, 56)
5000 pack_tmp = ior(pack_tmp, data_tmp)
5001 pack_tmp = ishft(pack_tmp, -8)
5002 idata = idata + 1
5003 data_tmp = full_data(idata)
5004 data_tmp = ishft(data_tmp, 56)
5005 pack_tmp = ior(pack_tmp, data_tmp)
5006 pack_tmp = ishft(pack_tmp, -8)
5007 idata = idata + 1
5008 data_tmp = full_data(idata)
5009 data_tmp = ishft(data_tmp, 56)
5010 pack_tmp = ior(pack_tmp, data_tmp)
5011 pack_tmp = ishft(pack_tmp, -8)
5012 idata = idata + 1
5013 data_tmp = full_data(idata)
5014 data_tmp = ishft(data_tmp, 56)
5015 pack_tmp = ior(pack_tmp, data_tmp)
5016 pack_tmp = ishft(pack_tmp, -8)
5017 idata = idata + 1
5018 data_tmp = full_data(idata)
5019 data_tmp = ishft(data_tmp, 56)
5020 pack_tmp = ior(pack_tmp, data_tmp)
5021 pack_tmp = ishft(pack_tmp, 0)
5022 idata = idata + 1
5023 data_tmp = full_data(idata)
5024 data_tmp = ishft(data_tmp, 56)
5025 data_tmp = iand(data_tmp, mask_left(0))
5026 pack_tmp = ior(pack_tmp, data_tmp)
5027 ipack = ipack + 1
5028 packed_data(ipack) = pack_tmp
5029 data_tmp = full_data(idata)
5030 pack_tmp = ishft(data_tmp, 56)
5031 pack_tmp = ishft(pack_tmp, -8)
5032 idata = idata + 1
5033 data_tmp = full_data(idata)
5034 data_tmp = ishft(data_tmp, 56)
5035 pack_tmp = ior(pack_tmp, data_tmp)
5036 pack_tmp = ishft(pack_tmp, -8)
5037 idata = idata + 1
5038 data_tmp = full_data(idata)
5039 data_tmp = ishft(data_tmp, 56)
5040 pack_tmp = ior(pack_tmp, data_tmp)
5041 pack_tmp = ishft(pack_tmp, -8)
5042 idata = idata + 1
5043 data_tmp = full_data(idata)
5044 data_tmp = ishft(data_tmp, 56)
5045 pack_tmp = ior(pack_tmp, data_tmp)
5046 pack_tmp = ishft(pack_tmp, -8)
5047 idata = idata + 1
5048 data_tmp = full_data(idata)
5049 data_tmp = ishft(data_tmp, 56)
5050 pack_tmp = ior(pack_tmp, data_tmp)
5051 pack_tmp = ishft(pack_tmp, -8)
5052 idata = idata + 1
5053 data_tmp = full_data(idata)
5054 data_tmp = ishft(data_tmp, 56)
5055 pack_tmp = ior(pack_tmp, data_tmp)
5056 pack_tmp = ishft(pack_tmp, -8)
5057 idata = idata + 1
5058 data_tmp = full_data(idata)
5059 data_tmp = ishft(data_tmp, 56)
5060 pack_tmp = ior(pack_tmp, data_tmp)
5061 pack_tmp = ishft(pack_tmp, -8)
5062 idata = idata + 1
5063 data_tmp = full_data(idata)
5064 data_tmp = ishft(data_tmp, 56)
5065 pack_tmp = ior(pack_tmp, data_tmp)
5066 pack_tmp = ishft(pack_tmp, 0)
5067 idata = idata + 1
5068 data_tmp = full_data(idata)
5069 data_tmp = ishft(data_tmp, 56)
5070 data_tmp = iand(data_tmp, mask_left(0))
5071 pack_tmp = ior(pack_tmp, data_tmp)
5072 ipack = ipack + 1
5073 packed_data(ipack) = pack_tmp
5074 data_tmp = full_data(idata)
5075 pack_tmp = ishft(data_tmp, 56)
5076 pack_tmp = ishft(pack_tmp, -8)
5077 idata = idata + 1
5078 data_tmp = full_data(idata)
5079 data_tmp = ishft(data_tmp, 56)
5080 pack_tmp = ior(pack_tmp, data_tmp)
5081 pack_tmp = ishft(pack_tmp, -8)
5082 idata = idata + 1
5083 data_tmp = full_data(idata)
5084 data_tmp = ishft(data_tmp, 56)
5085 pack_tmp = ior(pack_tmp, data_tmp)
5086 pack_tmp = ishft(pack_tmp, -8)
5087 idata = idata + 1
5088 data_tmp = full_data(idata)
5089 data_tmp = ishft(data_tmp, 56)
5090 pack_tmp = ior(pack_tmp, data_tmp)
5091 pack_tmp = ishft(pack_tmp, -8)
5092 idata = idata + 1
5093 data_tmp = full_data(idata)
5094 data_tmp = ishft(data_tmp, 56)
5095 pack_tmp = ior(pack_tmp, data_tmp)
5096 pack_tmp = ishft(pack_tmp, -8)
5097 idata = idata + 1
5098 data_tmp = full_data(idata)
5099 data_tmp = ishft(data_tmp, 56)
5100 pack_tmp = ior(pack_tmp, data_tmp)
5101 pack_tmp = ishft(pack_tmp, -8)
5102 idata = idata + 1
5103 data_tmp = full_data(idata)
5104 data_tmp = ishft(data_tmp, 56)
5105 pack_tmp = ior(pack_tmp, data_tmp)
5106 pack_tmp = ishft(pack_tmp, -8)
5107 idata = idata + 1
5108 data_tmp = full_data(idata)
5109 data_tmp = ishft(data_tmp, 56)
5110 pack_tmp = ior(pack_tmp, data_tmp)
5111 pack_tmp = ishft(pack_tmp, 0)
5112 idata = idata + 1
5113 data_tmp = full_data(idata)
5114 data_tmp = ishft(data_tmp, 56)
5115 data_tmp = iand(data_tmp, mask_left(0))
5116 pack_tmp = ior(pack_tmp, data_tmp)
5117 ipack = ipack + 1
5118 packed_data(ipack) = pack_tmp
5119 data_tmp = full_data(idata)
5120 pack_tmp = ishft(data_tmp, 56)
5121 pack_tmp = ishft(pack_tmp, -8)
5122 idata = idata + 1
5123 data_tmp = full_data(idata)
5124 data_tmp = ishft(data_tmp, 56)
5125 pack_tmp = ior(pack_tmp, data_tmp)
5126 pack_tmp = ishft(pack_tmp, -8)
5127 idata = idata + 1
5128 data_tmp = full_data(idata)
5129 data_tmp = ishft(data_tmp, 56)
5130 pack_tmp = ior(pack_tmp, data_tmp)
5131 pack_tmp = ishft(pack_tmp, -8)
5132 idata = idata + 1
5133 data_tmp = full_data(idata)
5134 data_tmp = ishft(data_tmp, 56)
5135 pack_tmp = ior(pack_tmp, data_tmp)
5136 pack_tmp = ishft(pack_tmp, -8)
5137 idata = idata + 1
5138 data_tmp = full_data(idata)
5139 data_tmp = ishft(data_tmp, 56)
5140 pack_tmp = ior(pack_tmp, data_tmp)
5141 pack_tmp = ishft(pack_tmp, -8)
5142 idata = idata + 1
5143 data_tmp = full_data(idata)
5144 data_tmp = ishft(data_tmp, 56)
5145 pack_tmp = ior(pack_tmp, data_tmp)
5146 pack_tmp = ishft(pack_tmp, -8)
5147 idata = idata + 1
5148 data_tmp = full_data(idata)
5149 data_tmp = ishft(data_tmp, 56)
5150 pack_tmp = ior(pack_tmp, data_tmp)
5151 pack_tmp = ishft(pack_tmp, -8)
5152 idata = idata + 1
5153 data_tmp = full_data(idata)
5154 data_tmp = ishft(data_tmp, 56)
5155 pack_tmp = ior(pack_tmp, data_tmp)
5156 pack_tmp = ishft(pack_tmp, 0)
5157 pack_tmp = ishft(pack_tmp, 0)
5158 ipack = ipack + 1
5159 packed_data(ipack) = pack_tmp
5160 END DO
5161 IF (ndata_rep < ndata) THEN
5162 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
5163 END IF
5164 END SUBROUTINE ints2bits_8
5165
5166! **************************************************************************************************
5167!> \brief ...
5168!> \param Ndata ...
5169!> \param packed_data ...
5170!> \param full_data ...
5171! **************************************************************************************************
5172 SUBROUTINE bits2ints_8(Ndata, packed_data, full_data)
5173 INTEGER, INTENT(IN) :: Ndata
5174 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
5175 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
5176
5177 INTEGER, PARAMETER :: Nbits = 8
5178
5179 INTEGER :: idata, ipack, kdata, Ndata_rep
5180 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
5181
5182 ipack = 0
5183 idata = 0
5184 pack_tmp = 0
5185 ndata_rep = (ndata/64)*64
5186 DO kdata = 1, ndata_rep, 64
5187 idata = idata + 1
5188 data_tmp = ishft(pack_tmp, 8)
5189 ipack = ipack + 1
5190 pack_tmp = packed_data(ipack)
5191 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
5192 pack_tmp = ishft(pack_tmp, -8)
5193 idata = idata + 1
5194 data_tmp = iand(pack_tmp, mask_right(nbits))
5195 full_data(idata) = data_tmp
5196 pack_tmp = ishft(pack_tmp, -nbits)
5197 idata = idata + 1
5198 data_tmp = iand(pack_tmp, mask_right(nbits))
5199 full_data(idata) = data_tmp
5200 pack_tmp = ishft(pack_tmp, -nbits)
5201 idata = idata + 1
5202 data_tmp = iand(pack_tmp, mask_right(nbits))
5203 full_data(idata) = data_tmp
5204 pack_tmp = ishft(pack_tmp, -nbits)
5205 idata = idata + 1
5206 data_tmp = iand(pack_tmp, mask_right(nbits))
5207 full_data(idata) = data_tmp
5208 pack_tmp = ishft(pack_tmp, -nbits)
5209 idata = idata + 1
5210 data_tmp = iand(pack_tmp, mask_right(nbits))
5211 full_data(idata) = data_tmp
5212 pack_tmp = ishft(pack_tmp, -nbits)
5213 idata = idata + 1
5214 data_tmp = iand(pack_tmp, mask_right(nbits))
5215 full_data(idata) = data_tmp
5216 pack_tmp = ishft(pack_tmp, -nbits)
5217 idata = idata + 1
5218 data_tmp = iand(pack_tmp, mask_right(nbits))
5219 full_data(idata) = data_tmp
5220 pack_tmp = ishft(pack_tmp, -nbits)
5221 idata = idata + 1
5222 data_tmp = ishft(pack_tmp, 8)
5223 ipack = ipack + 1
5224 pack_tmp = packed_data(ipack)
5225 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
5226 pack_tmp = ishft(pack_tmp, -8)
5227 idata = idata + 1
5228 data_tmp = iand(pack_tmp, mask_right(nbits))
5229 full_data(idata) = data_tmp
5230 pack_tmp = ishft(pack_tmp, -nbits)
5231 idata = idata + 1
5232 data_tmp = iand(pack_tmp, mask_right(nbits))
5233 full_data(idata) = data_tmp
5234 pack_tmp = ishft(pack_tmp, -nbits)
5235 idata = idata + 1
5236 data_tmp = iand(pack_tmp, mask_right(nbits))
5237 full_data(idata) = data_tmp
5238 pack_tmp = ishft(pack_tmp, -nbits)
5239 idata = idata + 1
5240 data_tmp = iand(pack_tmp, mask_right(nbits))
5241 full_data(idata) = data_tmp
5242 pack_tmp = ishft(pack_tmp, -nbits)
5243 idata = idata + 1
5244 data_tmp = iand(pack_tmp, mask_right(nbits))
5245 full_data(idata) = data_tmp
5246 pack_tmp = ishft(pack_tmp, -nbits)
5247 idata = idata + 1
5248 data_tmp = iand(pack_tmp, mask_right(nbits))
5249 full_data(idata) = data_tmp
5250 pack_tmp = ishft(pack_tmp, -nbits)
5251 idata = idata + 1
5252 data_tmp = iand(pack_tmp, mask_right(nbits))
5253 full_data(idata) = data_tmp
5254 pack_tmp = ishft(pack_tmp, -nbits)
5255 idata = idata + 1
5256 data_tmp = ishft(pack_tmp, 8)
5257 ipack = ipack + 1
5258 pack_tmp = packed_data(ipack)
5259 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
5260 pack_tmp = ishft(pack_tmp, -8)
5261 idata = idata + 1
5262 data_tmp = iand(pack_tmp, mask_right(nbits))
5263 full_data(idata) = data_tmp
5264 pack_tmp = ishft(pack_tmp, -nbits)
5265 idata = idata + 1
5266 data_tmp = iand(pack_tmp, mask_right(nbits))
5267 full_data(idata) = data_tmp
5268 pack_tmp = ishft(pack_tmp, -nbits)
5269 idata = idata + 1
5270 data_tmp = iand(pack_tmp, mask_right(nbits))
5271 full_data(idata) = data_tmp
5272 pack_tmp = ishft(pack_tmp, -nbits)
5273 idata = idata + 1
5274 data_tmp = iand(pack_tmp, mask_right(nbits))
5275 full_data(idata) = data_tmp
5276 pack_tmp = ishft(pack_tmp, -nbits)
5277 idata = idata + 1
5278 data_tmp = iand(pack_tmp, mask_right(nbits))
5279 full_data(idata) = data_tmp
5280 pack_tmp = ishft(pack_tmp, -nbits)
5281 idata = idata + 1
5282 data_tmp = iand(pack_tmp, mask_right(nbits))
5283 full_data(idata) = data_tmp
5284 pack_tmp = ishft(pack_tmp, -nbits)
5285 idata = idata + 1
5286 data_tmp = iand(pack_tmp, mask_right(nbits))
5287 full_data(idata) = data_tmp
5288 pack_tmp = ishft(pack_tmp, -nbits)
5289 idata = idata + 1
5290 data_tmp = ishft(pack_tmp, 8)
5291 ipack = ipack + 1
5292 pack_tmp = packed_data(ipack)
5293 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
5294 pack_tmp = ishft(pack_tmp, -8)
5295 idata = idata + 1
5296 data_tmp = iand(pack_tmp, mask_right(nbits))
5297 full_data(idata) = data_tmp
5298 pack_tmp = ishft(pack_tmp, -nbits)
5299 idata = idata + 1
5300 data_tmp = iand(pack_tmp, mask_right(nbits))
5301 full_data(idata) = data_tmp
5302 pack_tmp = ishft(pack_tmp, -nbits)
5303 idata = idata + 1
5304 data_tmp = iand(pack_tmp, mask_right(nbits))
5305 full_data(idata) = data_tmp
5306 pack_tmp = ishft(pack_tmp, -nbits)
5307 idata = idata + 1
5308 data_tmp = iand(pack_tmp, mask_right(nbits))
5309 full_data(idata) = data_tmp
5310 pack_tmp = ishft(pack_tmp, -nbits)
5311 idata = idata + 1
5312 data_tmp = iand(pack_tmp, mask_right(nbits))
5313 full_data(idata) = data_tmp
5314 pack_tmp = ishft(pack_tmp, -nbits)
5315 idata = idata + 1
5316 data_tmp = iand(pack_tmp, mask_right(nbits))
5317 full_data(idata) = data_tmp
5318 pack_tmp = ishft(pack_tmp, -nbits)
5319 idata = idata + 1
5320 data_tmp = iand(pack_tmp, mask_right(nbits))
5321 full_data(idata) = data_tmp
5322 pack_tmp = ishft(pack_tmp, -nbits)
5323 idata = idata + 1
5324 data_tmp = ishft(pack_tmp, 8)
5325 ipack = ipack + 1
5326 pack_tmp = packed_data(ipack)
5327 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
5328 pack_tmp = ishft(pack_tmp, -8)
5329 idata = idata + 1
5330 data_tmp = iand(pack_tmp, mask_right(nbits))
5331 full_data(idata) = data_tmp
5332 pack_tmp = ishft(pack_tmp, -nbits)
5333 idata = idata + 1
5334 data_tmp = iand(pack_tmp, mask_right(nbits))
5335 full_data(idata) = data_tmp
5336 pack_tmp = ishft(pack_tmp, -nbits)
5337 idata = idata + 1
5338 data_tmp = iand(pack_tmp, mask_right(nbits))
5339 full_data(idata) = data_tmp
5340 pack_tmp = ishft(pack_tmp, -nbits)
5341 idata = idata + 1
5342 data_tmp = iand(pack_tmp, mask_right(nbits))
5343 full_data(idata) = data_tmp
5344 pack_tmp = ishft(pack_tmp, -nbits)
5345 idata = idata + 1
5346 data_tmp = iand(pack_tmp, mask_right(nbits))
5347 full_data(idata) = data_tmp
5348 pack_tmp = ishft(pack_tmp, -nbits)
5349 idata = idata + 1
5350 data_tmp = iand(pack_tmp, mask_right(nbits))
5351 full_data(idata) = data_tmp
5352 pack_tmp = ishft(pack_tmp, -nbits)
5353 idata = idata + 1
5354 data_tmp = iand(pack_tmp, mask_right(nbits))
5355 full_data(idata) = data_tmp
5356 pack_tmp = ishft(pack_tmp, -nbits)
5357 idata = idata + 1
5358 data_tmp = ishft(pack_tmp, 8)
5359 ipack = ipack + 1
5360 pack_tmp = packed_data(ipack)
5361 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
5362 pack_tmp = ishft(pack_tmp, -8)
5363 idata = idata + 1
5364 data_tmp = iand(pack_tmp, mask_right(nbits))
5365 full_data(idata) = data_tmp
5366 pack_tmp = ishft(pack_tmp, -nbits)
5367 idata = idata + 1
5368 data_tmp = iand(pack_tmp, mask_right(nbits))
5369 full_data(idata) = data_tmp
5370 pack_tmp = ishft(pack_tmp, -nbits)
5371 idata = idata + 1
5372 data_tmp = iand(pack_tmp, mask_right(nbits))
5373 full_data(idata) = data_tmp
5374 pack_tmp = ishft(pack_tmp, -nbits)
5375 idata = idata + 1
5376 data_tmp = iand(pack_tmp, mask_right(nbits))
5377 full_data(idata) = data_tmp
5378 pack_tmp = ishft(pack_tmp, -nbits)
5379 idata = idata + 1
5380 data_tmp = iand(pack_tmp, mask_right(nbits))
5381 full_data(idata) = data_tmp
5382 pack_tmp = ishft(pack_tmp, -nbits)
5383 idata = idata + 1
5384 data_tmp = iand(pack_tmp, mask_right(nbits))
5385 full_data(idata) = data_tmp
5386 pack_tmp = ishft(pack_tmp, -nbits)
5387 idata = idata + 1
5388 data_tmp = iand(pack_tmp, mask_right(nbits))
5389 full_data(idata) = data_tmp
5390 pack_tmp = ishft(pack_tmp, -nbits)
5391 idata = idata + 1
5392 data_tmp = ishft(pack_tmp, 8)
5393 ipack = ipack + 1
5394 pack_tmp = packed_data(ipack)
5395 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
5396 pack_tmp = ishft(pack_tmp, -8)
5397 idata = idata + 1
5398 data_tmp = iand(pack_tmp, mask_right(nbits))
5399 full_data(idata) = data_tmp
5400 pack_tmp = ishft(pack_tmp, -nbits)
5401 idata = idata + 1
5402 data_tmp = iand(pack_tmp, mask_right(nbits))
5403 full_data(idata) = data_tmp
5404 pack_tmp = ishft(pack_tmp, -nbits)
5405 idata = idata + 1
5406 data_tmp = iand(pack_tmp, mask_right(nbits))
5407 full_data(idata) = data_tmp
5408 pack_tmp = ishft(pack_tmp, -nbits)
5409 idata = idata + 1
5410 data_tmp = iand(pack_tmp, mask_right(nbits))
5411 full_data(idata) = data_tmp
5412 pack_tmp = ishft(pack_tmp, -nbits)
5413 idata = idata + 1
5414 data_tmp = iand(pack_tmp, mask_right(nbits))
5415 full_data(idata) = data_tmp
5416 pack_tmp = ishft(pack_tmp, -nbits)
5417 idata = idata + 1
5418 data_tmp = iand(pack_tmp, mask_right(nbits))
5419 full_data(idata) = data_tmp
5420 pack_tmp = ishft(pack_tmp, -nbits)
5421 idata = idata + 1
5422 data_tmp = iand(pack_tmp, mask_right(nbits))
5423 full_data(idata) = data_tmp
5424 pack_tmp = ishft(pack_tmp, -nbits)
5425 idata = idata + 1
5426 data_tmp = ishft(pack_tmp, 8)
5427 ipack = ipack + 1
5428 pack_tmp = packed_data(ipack)
5429 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
5430 pack_tmp = ishft(pack_tmp, -8)
5431 idata = idata + 1
5432 data_tmp = iand(pack_tmp, mask_right(nbits))
5433 full_data(idata) = data_tmp
5434 pack_tmp = ishft(pack_tmp, -nbits)
5435 idata = idata + 1
5436 data_tmp = iand(pack_tmp, mask_right(nbits))
5437 full_data(idata) = data_tmp
5438 pack_tmp = ishft(pack_tmp, -nbits)
5439 idata = idata + 1
5440 data_tmp = iand(pack_tmp, mask_right(nbits))
5441 full_data(idata) = data_tmp
5442 pack_tmp = ishft(pack_tmp, -nbits)
5443 idata = idata + 1
5444 data_tmp = iand(pack_tmp, mask_right(nbits))
5445 full_data(idata) = data_tmp
5446 pack_tmp = ishft(pack_tmp, -nbits)
5447 idata = idata + 1
5448 data_tmp = iand(pack_tmp, mask_right(nbits))
5449 full_data(idata) = data_tmp
5450 pack_tmp = ishft(pack_tmp, -nbits)
5451 idata = idata + 1
5452 data_tmp = iand(pack_tmp, mask_right(nbits))
5453 full_data(idata) = data_tmp
5454 pack_tmp = ishft(pack_tmp, -nbits)
5455 idata = idata + 1
5456 data_tmp = iand(pack_tmp, mask_right(nbits))
5457 full_data(idata) = data_tmp
5458 pack_tmp = ishft(pack_tmp, -nbits)
5459 END DO
5460 IF (ndata_rep < ndata) THEN
5461 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
5462 END IF
5463 END SUBROUTINE bits2ints_8
5464
5465! **************************************************************************************************
5466!> \brief ...
5467!> \param Ndata ...
5468!> \param packed_data ...
5469!> \param full_data ...
5470! **************************************************************************************************
5471 SUBROUTINE ints2bits_9(Ndata, packed_data, full_data)
5472 INTEGER, INTENT(IN) :: Ndata
5473 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
5474 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
5475
5476 INTEGER, PARAMETER :: Nbits = 9
5477
5478 INTEGER :: idata, ipack, kdata, Ndata_rep
5479 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
5480
5481 idata = 0
5482 ipack = 0
5483 ndata_rep = (ndata/64)*64
5484 DO kdata = 1, ndata_rep, 64
5485 pack_tmp = 0
5486 idata = idata + 1
5487 data_tmp = full_data(idata)
5488 data_tmp = ishft(data_tmp, 55)
5489 pack_tmp = ior(pack_tmp, data_tmp)
5490 pack_tmp = ishft(pack_tmp, -9)
5491 idata = idata + 1
5492 data_tmp = full_data(idata)
5493 data_tmp = ishft(data_tmp, 55)
5494 pack_tmp = ior(pack_tmp, data_tmp)
5495 pack_tmp = ishft(pack_tmp, -9)
5496 idata = idata + 1
5497 data_tmp = full_data(idata)
5498 data_tmp = ishft(data_tmp, 55)
5499 pack_tmp = ior(pack_tmp, data_tmp)
5500 pack_tmp = ishft(pack_tmp, -9)
5501 idata = idata + 1
5502 data_tmp = full_data(idata)
5503 data_tmp = ishft(data_tmp, 55)
5504 pack_tmp = ior(pack_tmp, data_tmp)
5505 pack_tmp = ishft(pack_tmp, -9)
5506 idata = idata + 1
5507 data_tmp = full_data(idata)
5508 data_tmp = ishft(data_tmp, 55)
5509 pack_tmp = ior(pack_tmp, data_tmp)
5510 pack_tmp = ishft(pack_tmp, -9)
5511 idata = idata + 1
5512 data_tmp = full_data(idata)
5513 data_tmp = ishft(data_tmp, 55)
5514 pack_tmp = ior(pack_tmp, data_tmp)
5515 pack_tmp = ishft(pack_tmp, -9)
5516 idata = idata + 1
5517 data_tmp = full_data(idata)
5518 data_tmp = ishft(data_tmp, 55)
5519 pack_tmp = ior(pack_tmp, data_tmp)
5520 pack_tmp = ishft(pack_tmp, -1)
5521 idata = idata + 1
5522 data_tmp = full_data(idata)
5523 data_tmp = ishft(data_tmp, 55)
5524 data_tmp = iand(data_tmp, mask_left(1))
5525 pack_tmp = ior(pack_tmp, data_tmp)
5526 ipack = ipack + 1
5527 packed_data(ipack) = pack_tmp
5528 data_tmp = full_data(idata)
5529 pack_tmp = ishft(data_tmp, 56)
5530 pack_tmp = ishft(pack_tmp, -9)
5531 idata = idata + 1
5532 data_tmp = full_data(idata)
5533 data_tmp = ishft(data_tmp, 55)
5534 pack_tmp = ior(pack_tmp, data_tmp)
5535 pack_tmp = ishft(pack_tmp, -9)
5536 idata = idata + 1
5537 data_tmp = full_data(idata)
5538 data_tmp = ishft(data_tmp, 55)
5539 pack_tmp = ior(pack_tmp, data_tmp)
5540 pack_tmp = ishft(pack_tmp, -9)
5541 idata = idata + 1
5542 data_tmp = full_data(idata)
5543 data_tmp = ishft(data_tmp, 55)
5544 pack_tmp = ior(pack_tmp, data_tmp)
5545 pack_tmp = ishft(pack_tmp, -9)
5546 idata = idata + 1
5547 data_tmp = full_data(idata)
5548 data_tmp = ishft(data_tmp, 55)
5549 pack_tmp = ior(pack_tmp, data_tmp)
5550 pack_tmp = ishft(pack_tmp, -9)
5551 idata = idata + 1
5552 data_tmp = full_data(idata)
5553 data_tmp = ishft(data_tmp, 55)
5554 pack_tmp = ior(pack_tmp, data_tmp)
5555 pack_tmp = ishft(pack_tmp, -9)
5556 idata = idata + 1
5557 data_tmp = full_data(idata)
5558 data_tmp = ishft(data_tmp, 55)
5559 pack_tmp = ior(pack_tmp, data_tmp)
5560 pack_tmp = ishft(pack_tmp, -2)
5561 idata = idata + 1
5562 data_tmp = full_data(idata)
5563 data_tmp = ishft(data_tmp, 55)
5564 data_tmp = iand(data_tmp, mask_left(2))
5565 pack_tmp = ior(pack_tmp, data_tmp)
5566 ipack = ipack + 1
5567 packed_data(ipack) = pack_tmp
5568 data_tmp = full_data(idata)
5569 pack_tmp = ishft(data_tmp, 57)
5570 pack_tmp = ishft(pack_tmp, -9)
5571 idata = idata + 1
5572 data_tmp = full_data(idata)
5573 data_tmp = ishft(data_tmp, 55)
5574 pack_tmp = ior(pack_tmp, data_tmp)
5575 pack_tmp = ishft(pack_tmp, -9)
5576 idata = idata + 1
5577 data_tmp = full_data(idata)
5578 data_tmp = ishft(data_tmp, 55)
5579 pack_tmp = ior(pack_tmp, data_tmp)
5580 pack_tmp = ishft(pack_tmp, -9)
5581 idata = idata + 1
5582 data_tmp = full_data(idata)
5583 data_tmp = ishft(data_tmp, 55)
5584 pack_tmp = ior(pack_tmp, data_tmp)
5585 pack_tmp = ishft(pack_tmp, -9)
5586 idata = idata + 1
5587 data_tmp = full_data(idata)
5588 data_tmp = ishft(data_tmp, 55)
5589 pack_tmp = ior(pack_tmp, data_tmp)
5590 pack_tmp = ishft(pack_tmp, -9)
5591 idata = idata + 1
5592 data_tmp = full_data(idata)
5593 data_tmp = ishft(data_tmp, 55)
5594 pack_tmp = ior(pack_tmp, data_tmp)
5595 pack_tmp = ishft(pack_tmp, -9)
5596 idata = idata + 1
5597 data_tmp = full_data(idata)
5598 data_tmp = ishft(data_tmp, 55)
5599 pack_tmp = ior(pack_tmp, data_tmp)
5600 pack_tmp = ishft(pack_tmp, -3)
5601 idata = idata + 1
5602 data_tmp = full_data(idata)
5603 data_tmp = ishft(data_tmp, 55)
5604 data_tmp = iand(data_tmp, mask_left(3))
5605 pack_tmp = ior(pack_tmp, data_tmp)
5606 ipack = ipack + 1
5607 packed_data(ipack) = pack_tmp
5608 data_tmp = full_data(idata)
5609 pack_tmp = ishft(data_tmp, 58)
5610 pack_tmp = ishft(pack_tmp, -9)
5611 idata = idata + 1
5612 data_tmp = full_data(idata)
5613 data_tmp = ishft(data_tmp, 55)
5614 pack_tmp = ior(pack_tmp, data_tmp)
5615 pack_tmp = ishft(pack_tmp, -9)
5616 idata = idata + 1
5617 data_tmp = full_data(idata)
5618 data_tmp = ishft(data_tmp, 55)
5619 pack_tmp = ior(pack_tmp, data_tmp)
5620 pack_tmp = ishft(pack_tmp, -9)
5621 idata = idata + 1
5622 data_tmp = full_data(idata)
5623 data_tmp = ishft(data_tmp, 55)
5624 pack_tmp = ior(pack_tmp, data_tmp)
5625 pack_tmp = ishft(pack_tmp, -9)
5626 idata = idata + 1
5627 data_tmp = full_data(idata)
5628 data_tmp = ishft(data_tmp, 55)
5629 pack_tmp = ior(pack_tmp, data_tmp)
5630 pack_tmp = ishft(pack_tmp, -9)
5631 idata = idata + 1
5632 data_tmp = full_data(idata)
5633 data_tmp = ishft(data_tmp, 55)
5634 pack_tmp = ior(pack_tmp, data_tmp)
5635 pack_tmp = ishft(pack_tmp, -9)
5636 idata = idata + 1
5637 data_tmp = full_data(idata)
5638 data_tmp = ishft(data_tmp, 55)
5639 pack_tmp = ior(pack_tmp, data_tmp)
5640 pack_tmp = ishft(pack_tmp, -4)
5641 idata = idata + 1
5642 data_tmp = full_data(idata)
5643 data_tmp = ishft(data_tmp, 55)
5644 data_tmp = iand(data_tmp, mask_left(4))
5645 pack_tmp = ior(pack_tmp, data_tmp)
5646 ipack = ipack + 1
5647 packed_data(ipack) = pack_tmp
5648 data_tmp = full_data(idata)
5649 pack_tmp = ishft(data_tmp, 59)
5650 pack_tmp = ishft(pack_tmp, -9)
5651 idata = idata + 1
5652 data_tmp = full_data(idata)
5653 data_tmp = ishft(data_tmp, 55)
5654 pack_tmp = ior(pack_tmp, data_tmp)
5655 pack_tmp = ishft(pack_tmp, -9)
5656 idata = idata + 1
5657 data_tmp = full_data(idata)
5658 data_tmp = ishft(data_tmp, 55)
5659 pack_tmp = ior(pack_tmp, data_tmp)
5660 pack_tmp = ishft(pack_tmp, -9)
5661 idata = idata + 1
5662 data_tmp = full_data(idata)
5663 data_tmp = ishft(data_tmp, 55)
5664 pack_tmp = ior(pack_tmp, data_tmp)
5665 pack_tmp = ishft(pack_tmp, -9)
5666 idata = idata + 1
5667 data_tmp = full_data(idata)
5668 data_tmp = ishft(data_tmp, 55)
5669 pack_tmp = ior(pack_tmp, data_tmp)
5670 pack_tmp = ishft(pack_tmp, -9)
5671 idata = idata + 1
5672 data_tmp = full_data(idata)
5673 data_tmp = ishft(data_tmp, 55)
5674 pack_tmp = ior(pack_tmp, data_tmp)
5675 pack_tmp = ishft(pack_tmp, -9)
5676 idata = idata + 1
5677 data_tmp = full_data(idata)
5678 data_tmp = ishft(data_tmp, 55)
5679 pack_tmp = ior(pack_tmp, data_tmp)
5680 pack_tmp = ishft(pack_tmp, -5)
5681 idata = idata + 1
5682 data_tmp = full_data(idata)
5683 data_tmp = ishft(data_tmp, 55)
5684 data_tmp = iand(data_tmp, mask_left(5))
5685 pack_tmp = ior(pack_tmp, data_tmp)
5686 ipack = ipack + 1
5687 packed_data(ipack) = pack_tmp
5688 data_tmp = full_data(idata)
5689 pack_tmp = ishft(data_tmp, 60)
5690 pack_tmp = ishft(pack_tmp, -9)
5691 idata = idata + 1
5692 data_tmp = full_data(idata)
5693 data_tmp = ishft(data_tmp, 55)
5694 pack_tmp = ior(pack_tmp, data_tmp)
5695 pack_tmp = ishft(pack_tmp, -9)
5696 idata = idata + 1
5697 data_tmp = full_data(idata)
5698 data_tmp = ishft(data_tmp, 55)
5699 pack_tmp = ior(pack_tmp, data_tmp)
5700 pack_tmp = ishft(pack_tmp, -9)
5701 idata = idata + 1
5702 data_tmp = full_data(idata)
5703 data_tmp = ishft(data_tmp, 55)
5704 pack_tmp = ior(pack_tmp, data_tmp)
5705 pack_tmp = ishft(pack_tmp, -9)
5706 idata = idata + 1
5707 data_tmp = full_data(idata)
5708 data_tmp = ishft(data_tmp, 55)
5709 pack_tmp = ior(pack_tmp, data_tmp)
5710 pack_tmp = ishft(pack_tmp, -9)
5711 idata = idata + 1
5712 data_tmp = full_data(idata)
5713 data_tmp = ishft(data_tmp, 55)
5714 pack_tmp = ior(pack_tmp, data_tmp)
5715 pack_tmp = ishft(pack_tmp, -9)
5716 idata = idata + 1
5717 data_tmp = full_data(idata)
5718 data_tmp = ishft(data_tmp, 55)
5719 pack_tmp = ior(pack_tmp, data_tmp)
5720 pack_tmp = ishft(pack_tmp, -6)
5721 idata = idata + 1
5722 data_tmp = full_data(idata)
5723 data_tmp = ishft(data_tmp, 55)
5724 data_tmp = iand(data_tmp, mask_left(6))
5725 pack_tmp = ior(pack_tmp, data_tmp)
5726 ipack = ipack + 1
5727 packed_data(ipack) = pack_tmp
5728 data_tmp = full_data(idata)
5729 pack_tmp = ishft(data_tmp, 61)
5730 pack_tmp = ishft(pack_tmp, -9)
5731 idata = idata + 1
5732 data_tmp = full_data(idata)
5733 data_tmp = ishft(data_tmp, 55)
5734 pack_tmp = ior(pack_tmp, data_tmp)
5735 pack_tmp = ishft(pack_tmp, -9)
5736 idata = idata + 1
5737 data_tmp = full_data(idata)
5738 data_tmp = ishft(data_tmp, 55)
5739 pack_tmp = ior(pack_tmp, data_tmp)
5740 pack_tmp = ishft(pack_tmp, -9)
5741 idata = idata + 1
5742 data_tmp = full_data(idata)
5743 data_tmp = ishft(data_tmp, 55)
5744 pack_tmp = ior(pack_tmp, data_tmp)
5745 pack_tmp = ishft(pack_tmp, -9)
5746 idata = idata + 1
5747 data_tmp = full_data(idata)
5748 data_tmp = ishft(data_tmp, 55)
5749 pack_tmp = ior(pack_tmp, data_tmp)
5750 pack_tmp = ishft(pack_tmp, -9)
5751 idata = idata + 1
5752 data_tmp = full_data(idata)
5753 data_tmp = ishft(data_tmp, 55)
5754 pack_tmp = ior(pack_tmp, data_tmp)
5755 pack_tmp = ishft(pack_tmp, -9)
5756 idata = idata + 1
5757 data_tmp = full_data(idata)
5758 data_tmp = ishft(data_tmp, 55)
5759 pack_tmp = ior(pack_tmp, data_tmp)
5760 pack_tmp = ishft(pack_tmp, -7)
5761 idata = idata + 1
5762 data_tmp = full_data(idata)
5763 data_tmp = ishft(data_tmp, 55)
5764 data_tmp = iand(data_tmp, mask_left(7))
5765 pack_tmp = ior(pack_tmp, data_tmp)
5766 ipack = ipack + 1
5767 packed_data(ipack) = pack_tmp
5768 data_tmp = full_data(idata)
5769 pack_tmp = ishft(data_tmp, 62)
5770 pack_tmp = ishft(pack_tmp, -9)
5771 idata = idata + 1
5772 data_tmp = full_data(idata)
5773 data_tmp = ishft(data_tmp, 55)
5774 pack_tmp = ior(pack_tmp, data_tmp)
5775 pack_tmp = ishft(pack_tmp, -9)
5776 idata = idata + 1
5777 data_tmp = full_data(idata)
5778 data_tmp = ishft(data_tmp, 55)
5779 pack_tmp = ior(pack_tmp, data_tmp)
5780 pack_tmp = ishft(pack_tmp, -9)
5781 idata = idata + 1
5782 data_tmp = full_data(idata)
5783 data_tmp = ishft(data_tmp, 55)
5784 pack_tmp = ior(pack_tmp, data_tmp)
5785 pack_tmp = ishft(pack_tmp, -9)
5786 idata = idata + 1
5787 data_tmp = full_data(idata)
5788 data_tmp = ishft(data_tmp, 55)
5789 pack_tmp = ior(pack_tmp, data_tmp)
5790 pack_tmp = ishft(pack_tmp, -9)
5791 idata = idata + 1
5792 data_tmp = full_data(idata)
5793 data_tmp = ishft(data_tmp, 55)
5794 pack_tmp = ior(pack_tmp, data_tmp)
5795 pack_tmp = ishft(pack_tmp, -9)
5796 idata = idata + 1
5797 data_tmp = full_data(idata)
5798 data_tmp = ishft(data_tmp, 55)
5799 pack_tmp = ior(pack_tmp, data_tmp)
5800 pack_tmp = ishft(pack_tmp, -8)
5801 idata = idata + 1
5802 data_tmp = full_data(idata)
5803 data_tmp = ishft(data_tmp, 55)
5804 data_tmp = iand(data_tmp, mask_left(8))
5805 pack_tmp = ior(pack_tmp, data_tmp)
5806 ipack = ipack + 1
5807 packed_data(ipack) = pack_tmp
5808 data_tmp = full_data(idata)
5809 pack_tmp = ishft(data_tmp, 63)
5810 pack_tmp = ishft(pack_tmp, -9)
5811 idata = idata + 1
5812 data_tmp = full_data(idata)
5813 data_tmp = ishft(data_tmp, 55)
5814 pack_tmp = ior(pack_tmp, data_tmp)
5815 pack_tmp = ishft(pack_tmp, -9)
5816 idata = idata + 1
5817 data_tmp = full_data(idata)
5818 data_tmp = ishft(data_tmp, 55)
5819 pack_tmp = ior(pack_tmp, data_tmp)
5820 pack_tmp = ishft(pack_tmp, -9)
5821 idata = idata + 1
5822 data_tmp = full_data(idata)
5823 data_tmp = ishft(data_tmp, 55)
5824 pack_tmp = ior(pack_tmp, data_tmp)
5825 pack_tmp = ishft(pack_tmp, -9)
5826 idata = idata + 1
5827 data_tmp = full_data(idata)
5828 data_tmp = ishft(data_tmp, 55)
5829 pack_tmp = ior(pack_tmp, data_tmp)
5830 pack_tmp = ishft(pack_tmp, -9)
5831 idata = idata + 1
5832 data_tmp = full_data(idata)
5833 data_tmp = ishft(data_tmp, 55)
5834 pack_tmp = ior(pack_tmp, data_tmp)
5835 pack_tmp = ishft(pack_tmp, -9)
5836 idata = idata + 1
5837 data_tmp = full_data(idata)
5838 data_tmp = ishft(data_tmp, 55)
5839 pack_tmp = ior(pack_tmp, data_tmp)
5840 pack_tmp = ishft(pack_tmp, -9)
5841 idata = idata + 1
5842 data_tmp = full_data(idata)
5843 data_tmp = ishft(data_tmp, 55)
5844 pack_tmp = ior(pack_tmp, data_tmp)
5845 pack_tmp = ishft(pack_tmp, 0)
5846 pack_tmp = ishft(pack_tmp, 0)
5847 ipack = ipack + 1
5848 packed_data(ipack) = pack_tmp
5849 END DO
5850 IF (ndata_rep < ndata) THEN
5851 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
5852 END IF
5853 END SUBROUTINE ints2bits_9
5854
5855! **************************************************************************************************
5856!> \brief ...
5857!> \param Ndata ...
5858!> \param packed_data ...
5859!> \param full_data ...
5860! **************************************************************************************************
5861 SUBROUTINE bits2ints_9(Ndata, packed_data, full_data)
5862 INTEGER, INTENT(IN) :: Ndata
5863 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
5864 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
5865
5866 INTEGER, PARAMETER :: Nbits = 9
5867
5868 INTEGER :: idata, ipack, kdata, Ndata_rep
5869 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
5870
5871 ipack = 0
5872 idata = 0
5873 pack_tmp = 0
5874 ndata_rep = (ndata/64)*64
5875 DO kdata = 1, ndata_rep, 64
5876 idata = idata + 1
5877 data_tmp = ishft(pack_tmp, 9)
5878 ipack = ipack + 1
5879 pack_tmp = packed_data(ipack)
5880 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
5881 pack_tmp = ishft(pack_tmp, -9)
5882 idata = idata + 1
5883 data_tmp = iand(pack_tmp, mask_right(nbits))
5884 full_data(idata) = data_tmp
5885 pack_tmp = ishft(pack_tmp, -nbits)
5886 idata = idata + 1
5887 data_tmp = iand(pack_tmp, mask_right(nbits))
5888 full_data(idata) = data_tmp
5889 pack_tmp = ishft(pack_tmp, -nbits)
5890 idata = idata + 1
5891 data_tmp = iand(pack_tmp, mask_right(nbits))
5892 full_data(idata) = data_tmp
5893 pack_tmp = ishft(pack_tmp, -nbits)
5894 idata = idata + 1
5895 data_tmp = iand(pack_tmp, mask_right(nbits))
5896 full_data(idata) = data_tmp
5897 pack_tmp = ishft(pack_tmp, -nbits)
5898 idata = idata + 1
5899 data_tmp = iand(pack_tmp, mask_right(nbits))
5900 full_data(idata) = data_tmp
5901 pack_tmp = ishft(pack_tmp, -nbits)
5902 idata = idata + 1
5903 data_tmp = iand(pack_tmp, mask_right(nbits))
5904 full_data(idata) = data_tmp
5905 pack_tmp = ishft(pack_tmp, -nbits)
5906 idata = idata + 1
5907 data_tmp = ishft(pack_tmp, 8)
5908 ipack = ipack + 1
5909 pack_tmp = packed_data(ipack)
5910 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
5911 pack_tmp = ishft(pack_tmp, -8)
5912 idata = idata + 1
5913 data_tmp = iand(pack_tmp, mask_right(nbits))
5914 full_data(idata) = data_tmp
5915 pack_tmp = ishft(pack_tmp, -nbits)
5916 idata = idata + 1
5917 data_tmp = iand(pack_tmp, mask_right(nbits))
5918 full_data(idata) = data_tmp
5919 pack_tmp = ishft(pack_tmp, -nbits)
5920 idata = idata + 1
5921 data_tmp = iand(pack_tmp, mask_right(nbits))
5922 full_data(idata) = data_tmp
5923 pack_tmp = ishft(pack_tmp, -nbits)
5924 idata = idata + 1
5925 data_tmp = iand(pack_tmp, mask_right(nbits))
5926 full_data(idata) = data_tmp
5927 pack_tmp = ishft(pack_tmp, -nbits)
5928 idata = idata + 1
5929 data_tmp = iand(pack_tmp, mask_right(nbits))
5930 full_data(idata) = data_tmp
5931 pack_tmp = ishft(pack_tmp, -nbits)
5932 idata = idata + 1
5933 data_tmp = iand(pack_tmp, mask_right(nbits))
5934 full_data(idata) = data_tmp
5935 pack_tmp = ishft(pack_tmp, -nbits)
5936 idata = idata + 1
5937 data_tmp = ishft(pack_tmp, 7)
5938 ipack = ipack + 1
5939 pack_tmp = packed_data(ipack)
5940 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
5941 pack_tmp = ishft(pack_tmp, -7)
5942 idata = idata + 1
5943 data_tmp = iand(pack_tmp, mask_right(nbits))
5944 full_data(idata) = data_tmp
5945 pack_tmp = ishft(pack_tmp, -nbits)
5946 idata = idata + 1
5947 data_tmp = iand(pack_tmp, mask_right(nbits))
5948 full_data(idata) = data_tmp
5949 pack_tmp = ishft(pack_tmp, -nbits)
5950 idata = idata + 1
5951 data_tmp = iand(pack_tmp, mask_right(nbits))
5952 full_data(idata) = data_tmp
5953 pack_tmp = ishft(pack_tmp, -nbits)
5954 idata = idata + 1
5955 data_tmp = iand(pack_tmp, mask_right(nbits))
5956 full_data(idata) = data_tmp
5957 pack_tmp = ishft(pack_tmp, -nbits)
5958 idata = idata + 1
5959 data_tmp = iand(pack_tmp, mask_right(nbits))
5960 full_data(idata) = data_tmp
5961 pack_tmp = ishft(pack_tmp, -nbits)
5962 idata = idata + 1
5963 data_tmp = iand(pack_tmp, mask_right(nbits))
5964 full_data(idata) = data_tmp
5965 pack_tmp = ishft(pack_tmp, -nbits)
5966 idata = idata + 1
5967 data_tmp = ishft(pack_tmp, 6)
5968 ipack = ipack + 1
5969 pack_tmp = packed_data(ipack)
5970 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
5971 pack_tmp = ishft(pack_tmp, -6)
5972 idata = idata + 1
5973 data_tmp = iand(pack_tmp, mask_right(nbits))
5974 full_data(idata) = data_tmp
5975 pack_tmp = ishft(pack_tmp, -nbits)
5976 idata = idata + 1
5977 data_tmp = iand(pack_tmp, mask_right(nbits))
5978 full_data(idata) = data_tmp
5979 pack_tmp = ishft(pack_tmp, -nbits)
5980 idata = idata + 1
5981 data_tmp = iand(pack_tmp, mask_right(nbits))
5982 full_data(idata) = data_tmp
5983 pack_tmp = ishft(pack_tmp, -nbits)
5984 idata = idata + 1
5985 data_tmp = iand(pack_tmp, mask_right(nbits))
5986 full_data(idata) = data_tmp
5987 pack_tmp = ishft(pack_tmp, -nbits)
5988 idata = idata + 1
5989 data_tmp = iand(pack_tmp, mask_right(nbits))
5990 full_data(idata) = data_tmp
5991 pack_tmp = ishft(pack_tmp, -nbits)
5992 idata = idata + 1
5993 data_tmp = iand(pack_tmp, mask_right(nbits))
5994 full_data(idata) = data_tmp
5995 pack_tmp = ishft(pack_tmp, -nbits)
5996 idata = idata + 1
5997 data_tmp = ishft(pack_tmp, 5)
5998 ipack = ipack + 1
5999 pack_tmp = packed_data(ipack)
6000 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
6001 pack_tmp = ishft(pack_tmp, -5)
6002 idata = idata + 1
6003 data_tmp = iand(pack_tmp, mask_right(nbits))
6004 full_data(idata) = data_tmp
6005 pack_tmp = ishft(pack_tmp, -nbits)
6006 idata = idata + 1
6007 data_tmp = iand(pack_tmp, mask_right(nbits))
6008 full_data(idata) = data_tmp
6009 pack_tmp = ishft(pack_tmp, -nbits)
6010 idata = idata + 1
6011 data_tmp = iand(pack_tmp, mask_right(nbits))
6012 full_data(idata) = data_tmp
6013 pack_tmp = ishft(pack_tmp, -nbits)
6014 idata = idata + 1
6015 data_tmp = iand(pack_tmp, mask_right(nbits))
6016 full_data(idata) = data_tmp
6017 pack_tmp = ishft(pack_tmp, -nbits)
6018 idata = idata + 1
6019 data_tmp = iand(pack_tmp, mask_right(nbits))
6020 full_data(idata) = data_tmp
6021 pack_tmp = ishft(pack_tmp, -nbits)
6022 idata = idata + 1
6023 data_tmp = iand(pack_tmp, mask_right(nbits))
6024 full_data(idata) = data_tmp
6025 pack_tmp = ishft(pack_tmp, -nbits)
6026 idata = idata + 1
6027 data_tmp = ishft(pack_tmp, 4)
6028 ipack = ipack + 1
6029 pack_tmp = packed_data(ipack)
6030 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
6031 pack_tmp = ishft(pack_tmp, -4)
6032 idata = idata + 1
6033 data_tmp = iand(pack_tmp, mask_right(nbits))
6034 full_data(idata) = data_tmp
6035 pack_tmp = ishft(pack_tmp, -nbits)
6036 idata = idata + 1
6037 data_tmp = iand(pack_tmp, mask_right(nbits))
6038 full_data(idata) = data_tmp
6039 pack_tmp = ishft(pack_tmp, -nbits)
6040 idata = idata + 1
6041 data_tmp = iand(pack_tmp, mask_right(nbits))
6042 full_data(idata) = data_tmp
6043 pack_tmp = ishft(pack_tmp, -nbits)
6044 idata = idata + 1
6045 data_tmp = iand(pack_tmp, mask_right(nbits))
6046 full_data(idata) = data_tmp
6047 pack_tmp = ishft(pack_tmp, -nbits)
6048 idata = idata + 1
6049 data_tmp = iand(pack_tmp, mask_right(nbits))
6050 full_data(idata) = data_tmp
6051 pack_tmp = ishft(pack_tmp, -nbits)
6052 idata = idata + 1
6053 data_tmp = iand(pack_tmp, mask_right(nbits))
6054 full_data(idata) = data_tmp
6055 pack_tmp = ishft(pack_tmp, -nbits)
6056 idata = idata + 1
6057 data_tmp = ishft(pack_tmp, 3)
6058 ipack = ipack + 1
6059 pack_tmp = packed_data(ipack)
6060 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
6061 pack_tmp = ishft(pack_tmp, -3)
6062 idata = idata + 1
6063 data_tmp = iand(pack_tmp, mask_right(nbits))
6064 full_data(idata) = data_tmp
6065 pack_tmp = ishft(pack_tmp, -nbits)
6066 idata = idata + 1
6067 data_tmp = iand(pack_tmp, mask_right(nbits))
6068 full_data(idata) = data_tmp
6069 pack_tmp = ishft(pack_tmp, -nbits)
6070 idata = idata + 1
6071 data_tmp = iand(pack_tmp, mask_right(nbits))
6072 full_data(idata) = data_tmp
6073 pack_tmp = ishft(pack_tmp, -nbits)
6074 idata = idata + 1
6075 data_tmp = iand(pack_tmp, mask_right(nbits))
6076 full_data(idata) = data_tmp
6077 pack_tmp = ishft(pack_tmp, -nbits)
6078 idata = idata + 1
6079 data_tmp = iand(pack_tmp, mask_right(nbits))
6080 full_data(idata) = data_tmp
6081 pack_tmp = ishft(pack_tmp, -nbits)
6082 idata = idata + 1
6083 data_tmp = iand(pack_tmp, mask_right(nbits))
6084 full_data(idata) = data_tmp
6085 pack_tmp = ishft(pack_tmp, -nbits)
6086 idata = idata + 1
6087 data_tmp = ishft(pack_tmp, 2)
6088 ipack = ipack + 1
6089 pack_tmp = packed_data(ipack)
6090 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
6091 pack_tmp = ishft(pack_tmp, -2)
6092 idata = idata + 1
6093 data_tmp = iand(pack_tmp, mask_right(nbits))
6094 full_data(idata) = data_tmp
6095 pack_tmp = ishft(pack_tmp, -nbits)
6096 idata = idata + 1
6097 data_tmp = iand(pack_tmp, mask_right(nbits))
6098 full_data(idata) = data_tmp
6099 pack_tmp = ishft(pack_tmp, -nbits)
6100 idata = idata + 1
6101 data_tmp = iand(pack_tmp, mask_right(nbits))
6102 full_data(idata) = data_tmp
6103 pack_tmp = ishft(pack_tmp, -nbits)
6104 idata = idata + 1
6105 data_tmp = iand(pack_tmp, mask_right(nbits))
6106 full_data(idata) = data_tmp
6107 pack_tmp = ishft(pack_tmp, -nbits)
6108 idata = idata + 1
6109 data_tmp = iand(pack_tmp, mask_right(nbits))
6110 full_data(idata) = data_tmp
6111 pack_tmp = ishft(pack_tmp, -nbits)
6112 idata = idata + 1
6113 data_tmp = iand(pack_tmp, mask_right(nbits))
6114 full_data(idata) = data_tmp
6115 pack_tmp = ishft(pack_tmp, -nbits)
6116 idata = idata + 1
6117 data_tmp = ishft(pack_tmp, 1)
6118 ipack = ipack + 1
6119 pack_tmp = packed_data(ipack)
6120 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
6121 pack_tmp = ishft(pack_tmp, -1)
6122 idata = idata + 1
6123 data_tmp = iand(pack_tmp, mask_right(nbits))
6124 full_data(idata) = data_tmp
6125 pack_tmp = ishft(pack_tmp, -nbits)
6126 idata = idata + 1
6127 data_tmp = iand(pack_tmp, mask_right(nbits))
6128 full_data(idata) = data_tmp
6129 pack_tmp = ishft(pack_tmp, -nbits)
6130 idata = idata + 1
6131 data_tmp = iand(pack_tmp, mask_right(nbits))
6132 full_data(idata) = data_tmp
6133 pack_tmp = ishft(pack_tmp, -nbits)
6134 idata = idata + 1
6135 data_tmp = iand(pack_tmp, mask_right(nbits))
6136 full_data(idata) = data_tmp
6137 pack_tmp = ishft(pack_tmp, -nbits)
6138 idata = idata + 1
6139 data_tmp = iand(pack_tmp, mask_right(nbits))
6140 full_data(idata) = data_tmp
6141 pack_tmp = ishft(pack_tmp, -nbits)
6142 idata = idata + 1
6143 data_tmp = iand(pack_tmp, mask_right(nbits))
6144 full_data(idata) = data_tmp
6145 pack_tmp = ishft(pack_tmp, -nbits)
6146 idata = idata + 1
6147 data_tmp = iand(pack_tmp, mask_right(nbits))
6148 full_data(idata) = data_tmp
6149 pack_tmp = ishft(pack_tmp, -nbits)
6150 END DO
6151 IF (ndata_rep < ndata) THEN
6152 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
6153 END IF
6154 END SUBROUTINE bits2ints_9
6155
6156! **************************************************************************************************
6157!> \brief ...
6158!> \param Ndata ...
6159!> \param packed_data ...
6160!> \param full_data ...
6161! **************************************************************************************************
6162 SUBROUTINE ints2bits_10(Ndata, packed_data, full_data)
6163 INTEGER, INTENT(IN) :: Ndata
6164 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
6165 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
6166
6167 INTEGER, PARAMETER :: Nbits = 10
6168
6169 INTEGER :: idata, ipack, kdata, Ndata_rep
6170 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
6171
6172 idata = 0
6173 ipack = 0
6174 ndata_rep = (ndata/64)*64
6175 DO kdata = 1, ndata_rep, 64
6176 pack_tmp = 0
6177 idata = idata + 1
6178 data_tmp = full_data(idata)
6179 data_tmp = ishft(data_tmp, 54)
6180 pack_tmp = ior(pack_tmp, data_tmp)
6181 pack_tmp = ishft(pack_tmp, -10)
6182 idata = idata + 1
6183 data_tmp = full_data(idata)
6184 data_tmp = ishft(data_tmp, 54)
6185 pack_tmp = ior(pack_tmp, data_tmp)
6186 pack_tmp = ishft(pack_tmp, -10)
6187 idata = idata + 1
6188 data_tmp = full_data(idata)
6189 data_tmp = ishft(data_tmp, 54)
6190 pack_tmp = ior(pack_tmp, data_tmp)
6191 pack_tmp = ishft(pack_tmp, -10)
6192 idata = idata + 1
6193 data_tmp = full_data(idata)
6194 data_tmp = ishft(data_tmp, 54)
6195 pack_tmp = ior(pack_tmp, data_tmp)
6196 pack_tmp = ishft(pack_tmp, -10)
6197 idata = idata + 1
6198 data_tmp = full_data(idata)
6199 data_tmp = ishft(data_tmp, 54)
6200 pack_tmp = ior(pack_tmp, data_tmp)
6201 pack_tmp = ishft(pack_tmp, -10)
6202 idata = idata + 1
6203 data_tmp = full_data(idata)
6204 data_tmp = ishft(data_tmp, 54)
6205 pack_tmp = ior(pack_tmp, data_tmp)
6206 pack_tmp = ishft(pack_tmp, -4)
6207 idata = idata + 1
6208 data_tmp = full_data(idata)
6209 data_tmp = ishft(data_tmp, 54)
6210 data_tmp = iand(data_tmp, mask_left(4))
6211 pack_tmp = ior(pack_tmp, data_tmp)
6212 ipack = ipack + 1
6213 packed_data(ipack) = pack_tmp
6214 data_tmp = full_data(idata)
6215 pack_tmp = ishft(data_tmp, 58)
6216 pack_tmp = ishft(pack_tmp, -10)
6217 idata = idata + 1
6218 data_tmp = full_data(idata)
6219 data_tmp = ishft(data_tmp, 54)
6220 pack_tmp = ior(pack_tmp, data_tmp)
6221 pack_tmp = ishft(pack_tmp, -10)
6222 idata = idata + 1
6223 data_tmp = full_data(idata)
6224 data_tmp = ishft(data_tmp, 54)
6225 pack_tmp = ior(pack_tmp, data_tmp)
6226 pack_tmp = ishft(pack_tmp, -10)
6227 idata = idata + 1
6228 data_tmp = full_data(idata)
6229 data_tmp = ishft(data_tmp, 54)
6230 pack_tmp = ior(pack_tmp, data_tmp)
6231 pack_tmp = ishft(pack_tmp, -10)
6232 idata = idata + 1
6233 data_tmp = full_data(idata)
6234 data_tmp = ishft(data_tmp, 54)
6235 pack_tmp = ior(pack_tmp, data_tmp)
6236 pack_tmp = ishft(pack_tmp, -10)
6237 idata = idata + 1
6238 data_tmp = full_data(idata)
6239 data_tmp = ishft(data_tmp, 54)
6240 pack_tmp = ior(pack_tmp, data_tmp)
6241 pack_tmp = ishft(pack_tmp, -8)
6242 idata = idata + 1
6243 data_tmp = full_data(idata)
6244 data_tmp = ishft(data_tmp, 54)
6245 data_tmp = iand(data_tmp, mask_left(8))
6246 pack_tmp = ior(pack_tmp, data_tmp)
6247 ipack = ipack + 1
6248 packed_data(ipack) = pack_tmp
6249 data_tmp = full_data(idata)
6250 pack_tmp = ishft(data_tmp, 62)
6251 pack_tmp = ishft(pack_tmp, -10)
6252 idata = idata + 1
6253 data_tmp = full_data(idata)
6254 data_tmp = ishft(data_tmp, 54)
6255 pack_tmp = ior(pack_tmp, data_tmp)
6256 pack_tmp = ishft(pack_tmp, -10)
6257 idata = idata + 1
6258 data_tmp = full_data(idata)
6259 data_tmp = ishft(data_tmp, 54)
6260 pack_tmp = ior(pack_tmp, data_tmp)
6261 pack_tmp = ishft(pack_tmp, -10)
6262 idata = idata + 1
6263 data_tmp = full_data(idata)
6264 data_tmp = ishft(data_tmp, 54)
6265 pack_tmp = ior(pack_tmp, data_tmp)
6266 pack_tmp = ishft(pack_tmp, -10)
6267 idata = idata + 1
6268 data_tmp = full_data(idata)
6269 data_tmp = ishft(data_tmp, 54)
6270 pack_tmp = ior(pack_tmp, data_tmp)
6271 pack_tmp = ishft(pack_tmp, -10)
6272 idata = idata + 1
6273 data_tmp = full_data(idata)
6274 data_tmp = ishft(data_tmp, 54)
6275 pack_tmp = ior(pack_tmp, data_tmp)
6276 pack_tmp = ishft(pack_tmp, -10)
6277 idata = idata + 1
6278 data_tmp = full_data(idata)
6279 data_tmp = ishft(data_tmp, 54)
6280 pack_tmp = ior(pack_tmp, data_tmp)
6281 pack_tmp = ishft(pack_tmp, -2)
6282 idata = idata + 1
6283 data_tmp = full_data(idata)
6284 data_tmp = ishft(data_tmp, 54)
6285 data_tmp = iand(data_tmp, mask_left(2))
6286 pack_tmp = ior(pack_tmp, data_tmp)
6287 ipack = ipack + 1
6288 packed_data(ipack) = pack_tmp
6289 data_tmp = full_data(idata)
6290 pack_tmp = ishft(data_tmp, 56)
6291 pack_tmp = ishft(pack_tmp, -10)
6292 idata = idata + 1
6293 data_tmp = full_data(idata)
6294 data_tmp = ishft(data_tmp, 54)
6295 pack_tmp = ior(pack_tmp, data_tmp)
6296 pack_tmp = ishft(pack_tmp, -10)
6297 idata = idata + 1
6298 data_tmp = full_data(idata)
6299 data_tmp = ishft(data_tmp, 54)
6300 pack_tmp = ior(pack_tmp, data_tmp)
6301 pack_tmp = ishft(pack_tmp, -10)
6302 idata = idata + 1
6303 data_tmp = full_data(idata)
6304 data_tmp = ishft(data_tmp, 54)
6305 pack_tmp = ior(pack_tmp, data_tmp)
6306 pack_tmp = ishft(pack_tmp, -10)
6307 idata = idata + 1
6308 data_tmp = full_data(idata)
6309 data_tmp = ishft(data_tmp, 54)
6310 pack_tmp = ior(pack_tmp, data_tmp)
6311 pack_tmp = ishft(pack_tmp, -10)
6312 idata = idata + 1
6313 data_tmp = full_data(idata)
6314 data_tmp = ishft(data_tmp, 54)
6315 pack_tmp = ior(pack_tmp, data_tmp)
6316 pack_tmp = ishft(pack_tmp, -6)
6317 idata = idata + 1
6318 data_tmp = full_data(idata)
6319 data_tmp = ishft(data_tmp, 54)
6320 data_tmp = iand(data_tmp, mask_left(6))
6321 pack_tmp = ior(pack_tmp, data_tmp)
6322 ipack = ipack + 1
6323 packed_data(ipack) = pack_tmp
6324 data_tmp = full_data(idata)
6325 pack_tmp = ishft(data_tmp, 60)
6326 pack_tmp = ishft(pack_tmp, -10)
6327 idata = idata + 1
6328 data_tmp = full_data(idata)
6329 data_tmp = ishft(data_tmp, 54)
6330 pack_tmp = ior(pack_tmp, data_tmp)
6331 pack_tmp = ishft(pack_tmp, -10)
6332 idata = idata + 1
6333 data_tmp = full_data(idata)
6334 data_tmp = ishft(data_tmp, 54)
6335 pack_tmp = ior(pack_tmp, data_tmp)
6336 pack_tmp = ishft(pack_tmp, -10)
6337 idata = idata + 1
6338 data_tmp = full_data(idata)
6339 data_tmp = ishft(data_tmp, 54)
6340 pack_tmp = ior(pack_tmp, data_tmp)
6341 pack_tmp = ishft(pack_tmp, -10)
6342 idata = idata + 1
6343 data_tmp = full_data(idata)
6344 data_tmp = ishft(data_tmp, 54)
6345 pack_tmp = ior(pack_tmp, data_tmp)
6346 pack_tmp = ishft(pack_tmp, -10)
6347 idata = idata + 1
6348 data_tmp = full_data(idata)
6349 data_tmp = ishft(data_tmp, 54)
6350 pack_tmp = ior(pack_tmp, data_tmp)
6351 pack_tmp = ishft(pack_tmp, -10)
6352 idata = idata + 1
6353 data_tmp = full_data(idata)
6354 data_tmp = ishft(data_tmp, 54)
6355 pack_tmp = ior(pack_tmp, data_tmp)
6356 pack_tmp = ishft(pack_tmp, 0)
6357 idata = idata + 1
6358 data_tmp = full_data(idata)
6359 data_tmp = ishft(data_tmp, 54)
6360 data_tmp = iand(data_tmp, mask_left(0))
6361 pack_tmp = ior(pack_tmp, data_tmp)
6362 ipack = ipack + 1
6363 packed_data(ipack) = pack_tmp
6364 data_tmp = full_data(idata)
6365 pack_tmp = ishft(data_tmp, 54)
6366 pack_tmp = ishft(pack_tmp, -10)
6367 idata = idata + 1
6368 data_tmp = full_data(idata)
6369 data_tmp = ishft(data_tmp, 54)
6370 pack_tmp = ior(pack_tmp, data_tmp)
6371 pack_tmp = ishft(pack_tmp, -10)
6372 idata = idata + 1
6373 data_tmp = full_data(idata)
6374 data_tmp = ishft(data_tmp, 54)
6375 pack_tmp = ior(pack_tmp, data_tmp)
6376 pack_tmp = ishft(pack_tmp, -10)
6377 idata = idata + 1
6378 data_tmp = full_data(idata)
6379 data_tmp = ishft(data_tmp, 54)
6380 pack_tmp = ior(pack_tmp, data_tmp)
6381 pack_tmp = ishft(pack_tmp, -10)
6382 idata = idata + 1
6383 data_tmp = full_data(idata)
6384 data_tmp = ishft(data_tmp, 54)
6385 pack_tmp = ior(pack_tmp, data_tmp)
6386 pack_tmp = ishft(pack_tmp, -10)
6387 idata = idata + 1
6388 data_tmp = full_data(idata)
6389 data_tmp = ishft(data_tmp, 54)
6390 pack_tmp = ior(pack_tmp, data_tmp)
6391 pack_tmp = ishft(pack_tmp, -4)
6392 idata = idata + 1
6393 data_tmp = full_data(idata)
6394 data_tmp = ishft(data_tmp, 54)
6395 data_tmp = iand(data_tmp, mask_left(4))
6396 pack_tmp = ior(pack_tmp, data_tmp)
6397 ipack = ipack + 1
6398 packed_data(ipack) = pack_tmp
6399 data_tmp = full_data(idata)
6400 pack_tmp = ishft(data_tmp, 58)
6401 pack_tmp = ishft(pack_tmp, -10)
6402 idata = idata + 1
6403 data_tmp = full_data(idata)
6404 data_tmp = ishft(data_tmp, 54)
6405 pack_tmp = ior(pack_tmp, data_tmp)
6406 pack_tmp = ishft(pack_tmp, -10)
6407 idata = idata + 1
6408 data_tmp = full_data(idata)
6409 data_tmp = ishft(data_tmp, 54)
6410 pack_tmp = ior(pack_tmp, data_tmp)
6411 pack_tmp = ishft(pack_tmp, -10)
6412 idata = idata + 1
6413 data_tmp = full_data(idata)
6414 data_tmp = ishft(data_tmp, 54)
6415 pack_tmp = ior(pack_tmp, data_tmp)
6416 pack_tmp = ishft(pack_tmp, -10)
6417 idata = idata + 1
6418 data_tmp = full_data(idata)
6419 data_tmp = ishft(data_tmp, 54)
6420 pack_tmp = ior(pack_tmp, data_tmp)
6421 pack_tmp = ishft(pack_tmp, -10)
6422 idata = idata + 1
6423 data_tmp = full_data(idata)
6424 data_tmp = ishft(data_tmp, 54)
6425 pack_tmp = ior(pack_tmp, data_tmp)
6426 pack_tmp = ishft(pack_tmp, -8)
6427 idata = idata + 1
6428 data_tmp = full_data(idata)
6429 data_tmp = ishft(data_tmp, 54)
6430 data_tmp = iand(data_tmp, mask_left(8))
6431 pack_tmp = ior(pack_tmp, data_tmp)
6432 ipack = ipack + 1
6433 packed_data(ipack) = pack_tmp
6434 data_tmp = full_data(idata)
6435 pack_tmp = ishft(data_tmp, 62)
6436 pack_tmp = ishft(pack_tmp, -10)
6437 idata = idata + 1
6438 data_tmp = full_data(idata)
6439 data_tmp = ishft(data_tmp, 54)
6440 pack_tmp = ior(pack_tmp, data_tmp)
6441 pack_tmp = ishft(pack_tmp, -10)
6442 idata = idata + 1
6443 data_tmp = full_data(idata)
6444 data_tmp = ishft(data_tmp, 54)
6445 pack_tmp = ior(pack_tmp, data_tmp)
6446 pack_tmp = ishft(pack_tmp, -10)
6447 idata = idata + 1
6448 data_tmp = full_data(idata)
6449 data_tmp = ishft(data_tmp, 54)
6450 pack_tmp = ior(pack_tmp, data_tmp)
6451 pack_tmp = ishft(pack_tmp, -10)
6452 idata = idata + 1
6453 data_tmp = full_data(idata)
6454 data_tmp = ishft(data_tmp, 54)
6455 pack_tmp = ior(pack_tmp, data_tmp)
6456 pack_tmp = ishft(pack_tmp, -10)
6457 idata = idata + 1
6458 data_tmp = full_data(idata)
6459 data_tmp = ishft(data_tmp, 54)
6460 pack_tmp = ior(pack_tmp, data_tmp)
6461 pack_tmp = ishft(pack_tmp, -10)
6462 idata = idata + 1
6463 data_tmp = full_data(idata)
6464 data_tmp = ishft(data_tmp, 54)
6465 pack_tmp = ior(pack_tmp, data_tmp)
6466 pack_tmp = ishft(pack_tmp, -2)
6467 idata = idata + 1
6468 data_tmp = full_data(idata)
6469 data_tmp = ishft(data_tmp, 54)
6470 data_tmp = iand(data_tmp, mask_left(2))
6471 pack_tmp = ior(pack_tmp, data_tmp)
6472 ipack = ipack + 1
6473 packed_data(ipack) = pack_tmp
6474 data_tmp = full_data(idata)
6475 pack_tmp = ishft(data_tmp, 56)
6476 pack_tmp = ishft(pack_tmp, -10)
6477 idata = idata + 1
6478 data_tmp = full_data(idata)
6479 data_tmp = ishft(data_tmp, 54)
6480 pack_tmp = ior(pack_tmp, data_tmp)
6481 pack_tmp = ishft(pack_tmp, -10)
6482 idata = idata + 1
6483 data_tmp = full_data(idata)
6484 data_tmp = ishft(data_tmp, 54)
6485 pack_tmp = ior(pack_tmp, data_tmp)
6486 pack_tmp = ishft(pack_tmp, -10)
6487 idata = idata + 1
6488 data_tmp = full_data(idata)
6489 data_tmp = ishft(data_tmp, 54)
6490 pack_tmp = ior(pack_tmp, data_tmp)
6491 pack_tmp = ishft(pack_tmp, -10)
6492 idata = idata + 1
6493 data_tmp = full_data(idata)
6494 data_tmp = ishft(data_tmp, 54)
6495 pack_tmp = ior(pack_tmp, data_tmp)
6496 pack_tmp = ishft(pack_tmp, -10)
6497 idata = idata + 1
6498 data_tmp = full_data(idata)
6499 data_tmp = ishft(data_tmp, 54)
6500 pack_tmp = ior(pack_tmp, data_tmp)
6501 pack_tmp = ishft(pack_tmp, -6)
6502 idata = idata + 1
6503 data_tmp = full_data(idata)
6504 data_tmp = ishft(data_tmp, 54)
6505 data_tmp = iand(data_tmp, mask_left(6))
6506 pack_tmp = ior(pack_tmp, data_tmp)
6507 ipack = ipack + 1
6508 packed_data(ipack) = pack_tmp
6509 data_tmp = full_data(idata)
6510 pack_tmp = ishft(data_tmp, 60)
6511 pack_tmp = ishft(pack_tmp, -10)
6512 idata = idata + 1
6513 data_tmp = full_data(idata)
6514 data_tmp = ishft(data_tmp, 54)
6515 pack_tmp = ior(pack_tmp, data_tmp)
6516 pack_tmp = ishft(pack_tmp, -10)
6517 idata = idata + 1
6518 data_tmp = full_data(idata)
6519 data_tmp = ishft(data_tmp, 54)
6520 pack_tmp = ior(pack_tmp, data_tmp)
6521 pack_tmp = ishft(pack_tmp, -10)
6522 idata = idata + 1
6523 data_tmp = full_data(idata)
6524 data_tmp = ishft(data_tmp, 54)
6525 pack_tmp = ior(pack_tmp, data_tmp)
6526 pack_tmp = ishft(pack_tmp, -10)
6527 idata = idata + 1
6528 data_tmp = full_data(idata)
6529 data_tmp = ishft(data_tmp, 54)
6530 pack_tmp = ior(pack_tmp, data_tmp)
6531 pack_tmp = ishft(pack_tmp, -10)
6532 idata = idata + 1
6533 data_tmp = full_data(idata)
6534 data_tmp = ishft(data_tmp, 54)
6535 pack_tmp = ior(pack_tmp, data_tmp)
6536 pack_tmp = ishft(pack_tmp, -10)
6537 idata = idata + 1
6538 data_tmp = full_data(idata)
6539 data_tmp = ishft(data_tmp, 54)
6540 pack_tmp = ior(pack_tmp, data_tmp)
6541 pack_tmp = ishft(pack_tmp, 0)
6542 pack_tmp = ishft(pack_tmp, 0)
6543 ipack = ipack + 1
6544 packed_data(ipack) = pack_tmp
6545 END DO
6546 IF (ndata_rep < ndata) THEN
6547 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
6548 END IF
6549 END SUBROUTINE ints2bits_10
6550
6551! **************************************************************************************************
6552!> \brief ...
6553!> \param Ndata ...
6554!> \param packed_data ...
6555!> \param full_data ...
6556! **************************************************************************************************
6557 SUBROUTINE bits2ints_10(Ndata, packed_data, full_data)
6558 INTEGER, INTENT(IN) :: Ndata
6559 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
6560 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
6561
6562 INTEGER, PARAMETER :: Nbits = 10
6563
6564 INTEGER :: idata, ipack, kdata, Ndata_rep
6565 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
6566
6567 ipack = 0
6568 idata = 0
6569 pack_tmp = 0
6570 ndata_rep = (ndata/64)*64
6571 DO kdata = 1, ndata_rep, 64
6572 idata = idata + 1
6573 data_tmp = ishft(pack_tmp, 10)
6574 ipack = ipack + 1
6575 pack_tmp = packed_data(ipack)
6576 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
6577 pack_tmp = ishft(pack_tmp, -10)
6578 idata = idata + 1
6579 data_tmp = iand(pack_tmp, mask_right(nbits))
6580 full_data(idata) = data_tmp
6581 pack_tmp = ishft(pack_tmp, -nbits)
6582 idata = idata + 1
6583 data_tmp = iand(pack_tmp, mask_right(nbits))
6584 full_data(idata) = data_tmp
6585 pack_tmp = ishft(pack_tmp, -nbits)
6586 idata = idata + 1
6587 data_tmp = iand(pack_tmp, mask_right(nbits))
6588 full_data(idata) = data_tmp
6589 pack_tmp = ishft(pack_tmp, -nbits)
6590 idata = idata + 1
6591 data_tmp = iand(pack_tmp, mask_right(nbits))
6592 full_data(idata) = data_tmp
6593 pack_tmp = ishft(pack_tmp, -nbits)
6594 idata = idata + 1
6595 data_tmp = iand(pack_tmp, mask_right(nbits))
6596 full_data(idata) = data_tmp
6597 pack_tmp = ishft(pack_tmp, -nbits)
6598 idata = idata + 1
6599 data_tmp = ishft(pack_tmp, 6)
6600 ipack = ipack + 1
6601 pack_tmp = packed_data(ipack)
6602 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
6603 pack_tmp = ishft(pack_tmp, -6)
6604 idata = idata + 1
6605 data_tmp = iand(pack_tmp, mask_right(nbits))
6606 full_data(idata) = data_tmp
6607 pack_tmp = ishft(pack_tmp, -nbits)
6608 idata = idata + 1
6609 data_tmp = iand(pack_tmp, mask_right(nbits))
6610 full_data(idata) = data_tmp
6611 pack_tmp = ishft(pack_tmp, -nbits)
6612 idata = idata + 1
6613 data_tmp = iand(pack_tmp, mask_right(nbits))
6614 full_data(idata) = data_tmp
6615 pack_tmp = ishft(pack_tmp, -nbits)
6616 idata = idata + 1
6617 data_tmp = iand(pack_tmp, mask_right(nbits))
6618 full_data(idata) = data_tmp
6619 pack_tmp = ishft(pack_tmp, -nbits)
6620 idata = idata + 1
6621 data_tmp = iand(pack_tmp, mask_right(nbits))
6622 full_data(idata) = data_tmp
6623 pack_tmp = ishft(pack_tmp, -nbits)
6624 idata = idata + 1
6625 data_tmp = ishft(pack_tmp, 2)
6626 ipack = ipack + 1
6627 pack_tmp = packed_data(ipack)
6628 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
6629 pack_tmp = ishft(pack_tmp, -2)
6630 idata = idata + 1
6631 data_tmp = iand(pack_tmp, mask_right(nbits))
6632 full_data(idata) = data_tmp
6633 pack_tmp = ishft(pack_tmp, -nbits)
6634 idata = idata + 1
6635 data_tmp = iand(pack_tmp, mask_right(nbits))
6636 full_data(idata) = data_tmp
6637 pack_tmp = ishft(pack_tmp, -nbits)
6638 idata = idata + 1
6639 data_tmp = iand(pack_tmp, mask_right(nbits))
6640 full_data(idata) = data_tmp
6641 pack_tmp = ishft(pack_tmp, -nbits)
6642 idata = idata + 1
6643 data_tmp = iand(pack_tmp, mask_right(nbits))
6644 full_data(idata) = data_tmp
6645 pack_tmp = ishft(pack_tmp, -nbits)
6646 idata = idata + 1
6647 data_tmp = iand(pack_tmp, mask_right(nbits))
6648 full_data(idata) = data_tmp
6649 pack_tmp = ishft(pack_tmp, -nbits)
6650 idata = idata + 1
6651 data_tmp = iand(pack_tmp, mask_right(nbits))
6652 full_data(idata) = data_tmp
6653 pack_tmp = ishft(pack_tmp, -nbits)
6654 idata = idata + 1
6655 data_tmp = ishft(pack_tmp, 8)
6656 ipack = ipack + 1
6657 pack_tmp = packed_data(ipack)
6658 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
6659 pack_tmp = ishft(pack_tmp, -8)
6660 idata = idata + 1
6661 data_tmp = iand(pack_tmp, mask_right(nbits))
6662 full_data(idata) = data_tmp
6663 pack_tmp = ishft(pack_tmp, -nbits)
6664 idata = idata + 1
6665 data_tmp = iand(pack_tmp, mask_right(nbits))
6666 full_data(idata) = data_tmp
6667 pack_tmp = ishft(pack_tmp, -nbits)
6668 idata = idata + 1
6669 data_tmp = iand(pack_tmp, mask_right(nbits))
6670 full_data(idata) = data_tmp
6671 pack_tmp = ishft(pack_tmp, -nbits)
6672 idata = idata + 1
6673 data_tmp = iand(pack_tmp, mask_right(nbits))
6674 full_data(idata) = data_tmp
6675 pack_tmp = ishft(pack_tmp, -nbits)
6676 idata = idata + 1
6677 data_tmp = iand(pack_tmp, mask_right(nbits))
6678 full_data(idata) = data_tmp
6679 pack_tmp = ishft(pack_tmp, -nbits)
6680 idata = idata + 1
6681 data_tmp = ishft(pack_tmp, 4)
6682 ipack = ipack + 1
6683 pack_tmp = packed_data(ipack)
6684 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
6685 pack_tmp = ishft(pack_tmp, -4)
6686 idata = idata + 1
6687 data_tmp = iand(pack_tmp, mask_right(nbits))
6688 full_data(idata) = data_tmp
6689 pack_tmp = ishft(pack_tmp, -nbits)
6690 idata = idata + 1
6691 data_tmp = iand(pack_tmp, mask_right(nbits))
6692 full_data(idata) = data_tmp
6693 pack_tmp = ishft(pack_tmp, -nbits)
6694 idata = idata + 1
6695 data_tmp = iand(pack_tmp, mask_right(nbits))
6696 full_data(idata) = data_tmp
6697 pack_tmp = ishft(pack_tmp, -nbits)
6698 idata = idata + 1
6699 data_tmp = iand(pack_tmp, mask_right(nbits))
6700 full_data(idata) = data_tmp
6701 pack_tmp = ishft(pack_tmp, -nbits)
6702 idata = idata + 1
6703 data_tmp = iand(pack_tmp, mask_right(nbits))
6704 full_data(idata) = data_tmp
6705 pack_tmp = ishft(pack_tmp, -nbits)
6706 idata = idata + 1
6707 data_tmp = iand(pack_tmp, mask_right(nbits))
6708 full_data(idata) = data_tmp
6709 pack_tmp = ishft(pack_tmp, -nbits)
6710 idata = idata + 1
6711 data_tmp = ishft(pack_tmp, 10)
6712 ipack = ipack + 1
6713 pack_tmp = packed_data(ipack)
6714 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
6715 pack_tmp = ishft(pack_tmp, -10)
6716 idata = idata + 1
6717 data_tmp = iand(pack_tmp, mask_right(nbits))
6718 full_data(idata) = data_tmp
6719 pack_tmp = ishft(pack_tmp, -nbits)
6720 idata = idata + 1
6721 data_tmp = iand(pack_tmp, mask_right(nbits))
6722 full_data(idata) = data_tmp
6723 pack_tmp = ishft(pack_tmp, -nbits)
6724 idata = idata + 1
6725 data_tmp = iand(pack_tmp, mask_right(nbits))
6726 full_data(idata) = data_tmp
6727 pack_tmp = ishft(pack_tmp, -nbits)
6728 idata = idata + 1
6729 data_tmp = iand(pack_tmp, mask_right(nbits))
6730 full_data(idata) = data_tmp
6731 pack_tmp = ishft(pack_tmp, -nbits)
6732 idata = idata + 1
6733 data_tmp = iand(pack_tmp, mask_right(nbits))
6734 full_data(idata) = data_tmp
6735 pack_tmp = ishft(pack_tmp, -nbits)
6736 idata = idata + 1
6737 data_tmp = ishft(pack_tmp, 6)
6738 ipack = ipack + 1
6739 pack_tmp = packed_data(ipack)
6740 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
6741 pack_tmp = ishft(pack_tmp, -6)
6742 idata = idata + 1
6743 data_tmp = iand(pack_tmp, mask_right(nbits))
6744 full_data(idata) = data_tmp
6745 pack_tmp = ishft(pack_tmp, -nbits)
6746 idata = idata + 1
6747 data_tmp = iand(pack_tmp, mask_right(nbits))
6748 full_data(idata) = data_tmp
6749 pack_tmp = ishft(pack_tmp, -nbits)
6750 idata = idata + 1
6751 data_tmp = iand(pack_tmp, mask_right(nbits))
6752 full_data(idata) = data_tmp
6753 pack_tmp = ishft(pack_tmp, -nbits)
6754 idata = idata + 1
6755 data_tmp = iand(pack_tmp, mask_right(nbits))
6756 full_data(idata) = data_tmp
6757 pack_tmp = ishft(pack_tmp, -nbits)
6758 idata = idata + 1
6759 data_tmp = iand(pack_tmp, mask_right(nbits))
6760 full_data(idata) = data_tmp
6761 pack_tmp = ishft(pack_tmp, -nbits)
6762 idata = idata + 1
6763 data_tmp = ishft(pack_tmp, 2)
6764 ipack = ipack + 1
6765 pack_tmp = packed_data(ipack)
6766 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
6767 pack_tmp = ishft(pack_tmp, -2)
6768 idata = idata + 1
6769 data_tmp = iand(pack_tmp, mask_right(nbits))
6770 full_data(idata) = data_tmp
6771 pack_tmp = ishft(pack_tmp, -nbits)
6772 idata = idata + 1
6773 data_tmp = iand(pack_tmp, mask_right(nbits))
6774 full_data(idata) = data_tmp
6775 pack_tmp = ishft(pack_tmp, -nbits)
6776 idata = idata + 1
6777 data_tmp = iand(pack_tmp, mask_right(nbits))
6778 full_data(idata) = data_tmp
6779 pack_tmp = ishft(pack_tmp, -nbits)
6780 idata = idata + 1
6781 data_tmp = iand(pack_tmp, mask_right(nbits))
6782 full_data(idata) = data_tmp
6783 pack_tmp = ishft(pack_tmp, -nbits)
6784 idata = idata + 1
6785 data_tmp = iand(pack_tmp, mask_right(nbits))
6786 full_data(idata) = data_tmp
6787 pack_tmp = ishft(pack_tmp, -nbits)
6788 idata = idata + 1
6789 data_tmp = iand(pack_tmp, mask_right(nbits))
6790 full_data(idata) = data_tmp
6791 pack_tmp = ishft(pack_tmp, -nbits)
6792 idata = idata + 1
6793 data_tmp = ishft(pack_tmp, 8)
6794 ipack = ipack + 1
6795 pack_tmp = packed_data(ipack)
6796 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
6797 pack_tmp = ishft(pack_tmp, -8)
6798 idata = idata + 1
6799 data_tmp = iand(pack_tmp, mask_right(nbits))
6800 full_data(idata) = data_tmp
6801 pack_tmp = ishft(pack_tmp, -nbits)
6802 idata = idata + 1
6803 data_tmp = iand(pack_tmp, mask_right(nbits))
6804 full_data(idata) = data_tmp
6805 pack_tmp = ishft(pack_tmp, -nbits)
6806 idata = idata + 1
6807 data_tmp = iand(pack_tmp, mask_right(nbits))
6808 full_data(idata) = data_tmp
6809 pack_tmp = ishft(pack_tmp, -nbits)
6810 idata = idata + 1
6811 data_tmp = iand(pack_tmp, mask_right(nbits))
6812 full_data(idata) = data_tmp
6813 pack_tmp = ishft(pack_tmp, -nbits)
6814 idata = idata + 1
6815 data_tmp = iand(pack_tmp, mask_right(nbits))
6816 full_data(idata) = data_tmp
6817 pack_tmp = ishft(pack_tmp, -nbits)
6818 idata = idata + 1
6819 data_tmp = ishft(pack_tmp, 4)
6820 ipack = ipack + 1
6821 pack_tmp = packed_data(ipack)
6822 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
6823 pack_tmp = ishft(pack_tmp, -4)
6824 idata = idata + 1
6825 data_tmp = iand(pack_tmp, mask_right(nbits))
6826 full_data(idata) = data_tmp
6827 pack_tmp = ishft(pack_tmp, -nbits)
6828 idata = idata + 1
6829 data_tmp = iand(pack_tmp, mask_right(nbits))
6830 full_data(idata) = data_tmp
6831 pack_tmp = ishft(pack_tmp, -nbits)
6832 idata = idata + 1
6833 data_tmp = iand(pack_tmp, mask_right(nbits))
6834 full_data(idata) = data_tmp
6835 pack_tmp = ishft(pack_tmp, -nbits)
6836 idata = idata + 1
6837 data_tmp = iand(pack_tmp, mask_right(nbits))
6838 full_data(idata) = data_tmp
6839 pack_tmp = ishft(pack_tmp, -nbits)
6840 idata = idata + 1
6841 data_tmp = iand(pack_tmp, mask_right(nbits))
6842 full_data(idata) = data_tmp
6843 pack_tmp = ishft(pack_tmp, -nbits)
6844 idata = idata + 1
6845 data_tmp = iand(pack_tmp, mask_right(nbits))
6846 full_data(idata) = data_tmp
6847 pack_tmp = ishft(pack_tmp, -nbits)
6848 END DO
6849 IF (ndata_rep < ndata) THEN
6850 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
6851 END IF
6852 END SUBROUTINE bits2ints_10
6853
6854! **************************************************************************************************
6855!> \brief ...
6856!> \param Ndata ...
6857!> \param packed_data ...
6858!> \param full_data ...
6859! **************************************************************************************************
6860 SUBROUTINE ints2bits_11(Ndata, packed_data, full_data)
6861 INTEGER, INTENT(IN) :: Ndata
6862 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
6863 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
6864
6865 INTEGER, PARAMETER :: Nbits = 11
6866
6867 INTEGER :: idata, ipack, kdata, Ndata_rep
6868 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
6869
6870 idata = 0
6871 ipack = 0
6872 ndata_rep = (ndata/64)*64
6873 DO kdata = 1, ndata_rep, 64
6874 pack_tmp = 0
6875 idata = idata + 1
6876 data_tmp = full_data(idata)
6877 data_tmp = ishft(data_tmp, 53)
6878 pack_tmp = ior(pack_tmp, data_tmp)
6879 pack_tmp = ishft(pack_tmp, -11)
6880 idata = idata + 1
6881 data_tmp = full_data(idata)
6882 data_tmp = ishft(data_tmp, 53)
6883 pack_tmp = ior(pack_tmp, data_tmp)
6884 pack_tmp = ishft(pack_tmp, -11)
6885 idata = idata + 1
6886 data_tmp = full_data(idata)
6887 data_tmp = ishft(data_tmp, 53)
6888 pack_tmp = ior(pack_tmp, data_tmp)
6889 pack_tmp = ishft(pack_tmp, -11)
6890 idata = idata + 1
6891 data_tmp = full_data(idata)
6892 data_tmp = ishft(data_tmp, 53)
6893 pack_tmp = ior(pack_tmp, data_tmp)
6894 pack_tmp = ishft(pack_tmp, -11)
6895 idata = idata + 1
6896 data_tmp = full_data(idata)
6897 data_tmp = ishft(data_tmp, 53)
6898 pack_tmp = ior(pack_tmp, data_tmp)
6899 pack_tmp = ishft(pack_tmp, -9)
6900 idata = idata + 1
6901 data_tmp = full_data(idata)
6902 data_tmp = ishft(data_tmp, 53)
6903 data_tmp = iand(data_tmp, mask_left(9))
6904 pack_tmp = ior(pack_tmp, data_tmp)
6905 ipack = ipack + 1
6906 packed_data(ipack) = pack_tmp
6907 data_tmp = full_data(idata)
6908 pack_tmp = ishft(data_tmp, 62)
6909 pack_tmp = ishft(pack_tmp, -11)
6910 idata = idata + 1
6911 data_tmp = full_data(idata)
6912 data_tmp = ishft(data_tmp, 53)
6913 pack_tmp = ior(pack_tmp, data_tmp)
6914 pack_tmp = ishft(pack_tmp, -11)
6915 idata = idata + 1
6916 data_tmp = full_data(idata)
6917 data_tmp = ishft(data_tmp, 53)
6918 pack_tmp = ior(pack_tmp, data_tmp)
6919 pack_tmp = ishft(pack_tmp, -11)
6920 idata = idata + 1
6921 data_tmp = full_data(idata)
6922 data_tmp = ishft(data_tmp, 53)
6923 pack_tmp = ior(pack_tmp, data_tmp)
6924 pack_tmp = ishft(pack_tmp, -11)
6925 idata = idata + 1
6926 data_tmp = full_data(idata)
6927 data_tmp = ishft(data_tmp, 53)
6928 pack_tmp = ior(pack_tmp, data_tmp)
6929 pack_tmp = ishft(pack_tmp, -11)
6930 idata = idata + 1
6931 data_tmp = full_data(idata)
6932 data_tmp = ishft(data_tmp, 53)
6933 pack_tmp = ior(pack_tmp, data_tmp)
6934 pack_tmp = ishft(pack_tmp, -7)
6935 idata = idata + 1
6936 data_tmp = full_data(idata)
6937 data_tmp = ishft(data_tmp, 53)
6938 data_tmp = iand(data_tmp, mask_left(7))
6939 pack_tmp = ior(pack_tmp, data_tmp)
6940 ipack = ipack + 1
6941 packed_data(ipack) = pack_tmp
6942 data_tmp = full_data(idata)
6943 pack_tmp = ishft(data_tmp, 60)
6944 pack_tmp = ishft(pack_tmp, -11)
6945 idata = idata + 1
6946 data_tmp = full_data(idata)
6947 data_tmp = ishft(data_tmp, 53)
6948 pack_tmp = ior(pack_tmp, data_tmp)
6949 pack_tmp = ishft(pack_tmp, -11)
6950 idata = idata + 1
6951 data_tmp = full_data(idata)
6952 data_tmp = ishft(data_tmp, 53)
6953 pack_tmp = ior(pack_tmp, data_tmp)
6954 pack_tmp = ishft(pack_tmp, -11)
6955 idata = idata + 1
6956 data_tmp = full_data(idata)
6957 data_tmp = ishft(data_tmp, 53)
6958 pack_tmp = ior(pack_tmp, data_tmp)
6959 pack_tmp = ishft(pack_tmp, -11)
6960 idata = idata + 1
6961 data_tmp = full_data(idata)
6962 data_tmp = ishft(data_tmp, 53)
6963 pack_tmp = ior(pack_tmp, data_tmp)
6964 pack_tmp = ishft(pack_tmp, -11)
6965 idata = idata + 1
6966 data_tmp = full_data(idata)
6967 data_tmp = ishft(data_tmp, 53)
6968 pack_tmp = ior(pack_tmp, data_tmp)
6969 pack_tmp = ishft(pack_tmp, -5)
6970 idata = idata + 1
6971 data_tmp = full_data(idata)
6972 data_tmp = ishft(data_tmp, 53)
6973 data_tmp = iand(data_tmp, mask_left(5))
6974 pack_tmp = ior(pack_tmp, data_tmp)
6975 ipack = ipack + 1
6976 packed_data(ipack) = pack_tmp
6977 data_tmp = full_data(idata)
6978 pack_tmp = ishft(data_tmp, 58)
6979 pack_tmp = ishft(pack_tmp, -11)
6980 idata = idata + 1
6981 data_tmp = full_data(idata)
6982 data_tmp = ishft(data_tmp, 53)
6983 pack_tmp = ior(pack_tmp, data_tmp)
6984 pack_tmp = ishft(pack_tmp, -11)
6985 idata = idata + 1
6986 data_tmp = full_data(idata)
6987 data_tmp = ishft(data_tmp, 53)
6988 pack_tmp = ior(pack_tmp, data_tmp)
6989 pack_tmp = ishft(pack_tmp, -11)
6990 idata = idata + 1
6991 data_tmp = full_data(idata)
6992 data_tmp = ishft(data_tmp, 53)
6993 pack_tmp = ior(pack_tmp, data_tmp)
6994 pack_tmp = ishft(pack_tmp, -11)
6995 idata = idata + 1
6996 data_tmp = full_data(idata)
6997 data_tmp = ishft(data_tmp, 53)
6998 pack_tmp = ior(pack_tmp, data_tmp)
6999 pack_tmp = ishft(pack_tmp, -11)
7000 idata = idata + 1
7001 data_tmp = full_data(idata)
7002 data_tmp = ishft(data_tmp, 53)
7003 pack_tmp = ior(pack_tmp, data_tmp)
7004 pack_tmp = ishft(pack_tmp, -3)
7005 idata = idata + 1
7006 data_tmp = full_data(idata)
7007 data_tmp = ishft(data_tmp, 53)
7008 data_tmp = iand(data_tmp, mask_left(3))
7009 pack_tmp = ior(pack_tmp, data_tmp)
7010 ipack = ipack + 1
7011 packed_data(ipack) = pack_tmp
7012 data_tmp = full_data(idata)
7013 pack_tmp = ishft(data_tmp, 56)
7014 pack_tmp = ishft(pack_tmp, -11)
7015 idata = idata + 1
7016 data_tmp = full_data(idata)
7017 data_tmp = ishft(data_tmp, 53)
7018 pack_tmp = ior(pack_tmp, data_tmp)
7019 pack_tmp = ishft(pack_tmp, -11)
7020 idata = idata + 1
7021 data_tmp = full_data(idata)
7022 data_tmp = ishft(data_tmp, 53)
7023 pack_tmp = ior(pack_tmp, data_tmp)
7024 pack_tmp = ishft(pack_tmp, -11)
7025 idata = idata + 1
7026 data_tmp = full_data(idata)
7027 data_tmp = ishft(data_tmp, 53)
7028 pack_tmp = ior(pack_tmp, data_tmp)
7029 pack_tmp = ishft(pack_tmp, -11)
7030 idata = idata + 1
7031 data_tmp = full_data(idata)
7032 data_tmp = ishft(data_tmp, 53)
7033 pack_tmp = ior(pack_tmp, data_tmp)
7034 pack_tmp = ishft(pack_tmp, -11)
7035 idata = idata + 1
7036 data_tmp = full_data(idata)
7037 data_tmp = ishft(data_tmp, 53)
7038 pack_tmp = ior(pack_tmp, data_tmp)
7039 pack_tmp = ishft(pack_tmp, -1)
7040 idata = idata + 1
7041 data_tmp = full_data(idata)
7042 data_tmp = ishft(data_tmp, 53)
7043 data_tmp = iand(data_tmp, mask_left(1))
7044 pack_tmp = ior(pack_tmp, data_tmp)
7045 ipack = ipack + 1
7046 packed_data(ipack) = pack_tmp
7047 data_tmp = full_data(idata)
7048 pack_tmp = ishft(data_tmp, 54)
7049 pack_tmp = ishft(pack_tmp, -11)
7050 idata = idata + 1
7051 data_tmp = full_data(idata)
7052 data_tmp = ishft(data_tmp, 53)
7053 pack_tmp = ior(pack_tmp, data_tmp)
7054 pack_tmp = ishft(pack_tmp, -11)
7055 idata = idata + 1
7056 data_tmp = full_data(idata)
7057 data_tmp = ishft(data_tmp, 53)
7058 pack_tmp = ior(pack_tmp, data_tmp)
7059 pack_tmp = ishft(pack_tmp, -11)
7060 idata = idata + 1
7061 data_tmp = full_data(idata)
7062 data_tmp = ishft(data_tmp, 53)
7063 pack_tmp = ior(pack_tmp, data_tmp)
7064 pack_tmp = ishft(pack_tmp, -11)
7065 idata = idata + 1
7066 data_tmp = full_data(idata)
7067 data_tmp = ishft(data_tmp, 53)
7068 pack_tmp = ior(pack_tmp, data_tmp)
7069 pack_tmp = ishft(pack_tmp, -10)
7070 idata = idata + 1
7071 data_tmp = full_data(idata)
7072 data_tmp = ishft(data_tmp, 53)
7073 data_tmp = iand(data_tmp, mask_left(10))
7074 pack_tmp = ior(pack_tmp, data_tmp)
7075 ipack = ipack + 1
7076 packed_data(ipack) = pack_tmp
7077 data_tmp = full_data(idata)
7078 pack_tmp = ishft(data_tmp, 63)
7079 pack_tmp = ishft(pack_tmp, -11)
7080 idata = idata + 1
7081 data_tmp = full_data(idata)
7082 data_tmp = ishft(data_tmp, 53)
7083 pack_tmp = ior(pack_tmp, data_tmp)
7084 pack_tmp = ishft(pack_tmp, -11)
7085 idata = idata + 1
7086 data_tmp = full_data(idata)
7087 data_tmp = ishft(data_tmp, 53)
7088 pack_tmp = ior(pack_tmp, data_tmp)
7089 pack_tmp = ishft(pack_tmp, -11)
7090 idata = idata + 1
7091 data_tmp = full_data(idata)
7092 data_tmp = ishft(data_tmp, 53)
7093 pack_tmp = ior(pack_tmp, data_tmp)
7094 pack_tmp = ishft(pack_tmp, -11)
7095 idata = idata + 1
7096 data_tmp = full_data(idata)
7097 data_tmp = ishft(data_tmp, 53)
7098 pack_tmp = ior(pack_tmp, data_tmp)
7099 pack_tmp = ishft(pack_tmp, -11)
7100 idata = idata + 1
7101 data_tmp = full_data(idata)
7102 data_tmp = ishft(data_tmp, 53)
7103 pack_tmp = ior(pack_tmp, data_tmp)
7104 pack_tmp = ishft(pack_tmp, -8)
7105 idata = idata + 1
7106 data_tmp = full_data(idata)
7107 data_tmp = ishft(data_tmp, 53)
7108 data_tmp = iand(data_tmp, mask_left(8))
7109 pack_tmp = ior(pack_tmp, data_tmp)
7110 ipack = ipack + 1
7111 packed_data(ipack) = pack_tmp
7112 data_tmp = full_data(idata)
7113 pack_tmp = ishft(data_tmp, 61)
7114 pack_tmp = ishft(pack_tmp, -11)
7115 idata = idata + 1
7116 data_tmp = full_data(idata)
7117 data_tmp = ishft(data_tmp, 53)
7118 pack_tmp = ior(pack_tmp, data_tmp)
7119 pack_tmp = ishft(pack_tmp, -11)
7120 idata = idata + 1
7121 data_tmp = full_data(idata)
7122 data_tmp = ishft(data_tmp, 53)
7123 pack_tmp = ior(pack_tmp, data_tmp)
7124 pack_tmp = ishft(pack_tmp, -11)
7125 idata = idata + 1
7126 data_tmp = full_data(idata)
7127 data_tmp = ishft(data_tmp, 53)
7128 pack_tmp = ior(pack_tmp, data_tmp)
7129 pack_tmp = ishft(pack_tmp, -11)
7130 idata = idata + 1
7131 data_tmp = full_data(idata)
7132 data_tmp = ishft(data_tmp, 53)
7133 pack_tmp = ior(pack_tmp, data_tmp)
7134 pack_tmp = ishft(pack_tmp, -11)
7135 idata = idata + 1
7136 data_tmp = full_data(idata)
7137 data_tmp = ishft(data_tmp, 53)
7138 pack_tmp = ior(pack_tmp, data_tmp)
7139 pack_tmp = ishft(pack_tmp, -6)
7140 idata = idata + 1
7141 data_tmp = full_data(idata)
7142 data_tmp = ishft(data_tmp, 53)
7143 data_tmp = iand(data_tmp, mask_left(6))
7144 pack_tmp = ior(pack_tmp, data_tmp)
7145 ipack = ipack + 1
7146 packed_data(ipack) = pack_tmp
7147 data_tmp = full_data(idata)
7148 pack_tmp = ishft(data_tmp, 59)
7149 pack_tmp = ishft(pack_tmp, -11)
7150 idata = idata + 1
7151 data_tmp = full_data(idata)
7152 data_tmp = ishft(data_tmp, 53)
7153 pack_tmp = ior(pack_tmp, data_tmp)
7154 pack_tmp = ishft(pack_tmp, -11)
7155 idata = idata + 1
7156 data_tmp = full_data(idata)
7157 data_tmp = ishft(data_tmp, 53)
7158 pack_tmp = ior(pack_tmp, data_tmp)
7159 pack_tmp = ishft(pack_tmp, -11)
7160 idata = idata + 1
7161 data_tmp = full_data(idata)
7162 data_tmp = ishft(data_tmp, 53)
7163 pack_tmp = ior(pack_tmp, data_tmp)
7164 pack_tmp = ishft(pack_tmp, -11)
7165 idata = idata + 1
7166 data_tmp = full_data(idata)
7167 data_tmp = ishft(data_tmp, 53)
7168 pack_tmp = ior(pack_tmp, data_tmp)
7169 pack_tmp = ishft(pack_tmp, -11)
7170 idata = idata + 1
7171 data_tmp = full_data(idata)
7172 data_tmp = ishft(data_tmp, 53)
7173 pack_tmp = ior(pack_tmp, data_tmp)
7174 pack_tmp = ishft(pack_tmp, -4)
7175 idata = idata + 1
7176 data_tmp = full_data(idata)
7177 data_tmp = ishft(data_tmp, 53)
7178 data_tmp = iand(data_tmp, mask_left(4))
7179 pack_tmp = ior(pack_tmp, data_tmp)
7180 ipack = ipack + 1
7181 packed_data(ipack) = pack_tmp
7182 data_tmp = full_data(idata)
7183 pack_tmp = ishft(data_tmp, 57)
7184 pack_tmp = ishft(pack_tmp, -11)
7185 idata = idata + 1
7186 data_tmp = full_data(idata)
7187 data_tmp = ishft(data_tmp, 53)
7188 pack_tmp = ior(pack_tmp, data_tmp)
7189 pack_tmp = ishft(pack_tmp, -11)
7190 idata = idata + 1
7191 data_tmp = full_data(idata)
7192 data_tmp = ishft(data_tmp, 53)
7193 pack_tmp = ior(pack_tmp, data_tmp)
7194 pack_tmp = ishft(pack_tmp, -11)
7195 idata = idata + 1
7196 data_tmp = full_data(idata)
7197 data_tmp = ishft(data_tmp, 53)
7198 pack_tmp = ior(pack_tmp, data_tmp)
7199 pack_tmp = ishft(pack_tmp, -11)
7200 idata = idata + 1
7201 data_tmp = full_data(idata)
7202 data_tmp = ishft(data_tmp, 53)
7203 pack_tmp = ior(pack_tmp, data_tmp)
7204 pack_tmp = ishft(pack_tmp, -11)
7205 idata = idata + 1
7206 data_tmp = full_data(idata)
7207 data_tmp = ishft(data_tmp, 53)
7208 pack_tmp = ior(pack_tmp, data_tmp)
7209 pack_tmp = ishft(pack_tmp, -2)
7210 idata = idata + 1
7211 data_tmp = full_data(idata)
7212 data_tmp = ishft(data_tmp, 53)
7213 data_tmp = iand(data_tmp, mask_left(2))
7214 pack_tmp = ior(pack_tmp, data_tmp)
7215 ipack = ipack + 1
7216 packed_data(ipack) = pack_tmp
7217 data_tmp = full_data(idata)
7218 pack_tmp = ishft(data_tmp, 55)
7219 pack_tmp = ishft(pack_tmp, -11)
7220 idata = idata + 1
7221 data_tmp = full_data(idata)
7222 data_tmp = ishft(data_tmp, 53)
7223 pack_tmp = ior(pack_tmp, data_tmp)
7224 pack_tmp = ishft(pack_tmp, -11)
7225 idata = idata + 1
7226 data_tmp = full_data(idata)
7227 data_tmp = ishft(data_tmp, 53)
7228 pack_tmp = ior(pack_tmp, data_tmp)
7229 pack_tmp = ishft(pack_tmp, -11)
7230 idata = idata + 1
7231 data_tmp = full_data(idata)
7232 data_tmp = ishft(data_tmp, 53)
7233 pack_tmp = ior(pack_tmp, data_tmp)
7234 pack_tmp = ishft(pack_tmp, -11)
7235 idata = idata + 1
7236 data_tmp = full_data(idata)
7237 data_tmp = ishft(data_tmp, 53)
7238 pack_tmp = ior(pack_tmp, data_tmp)
7239 pack_tmp = ishft(pack_tmp, -11)
7240 idata = idata + 1
7241 data_tmp = full_data(idata)
7242 data_tmp = ishft(data_tmp, 53)
7243 pack_tmp = ior(pack_tmp, data_tmp)
7244 pack_tmp = ishft(pack_tmp, 0)
7245 pack_tmp = ishft(pack_tmp, 0)
7246 ipack = ipack + 1
7247 packed_data(ipack) = pack_tmp
7248 END DO
7249 IF (ndata_rep < ndata) THEN
7250 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
7251 END IF
7252 END SUBROUTINE ints2bits_11
7253
7254! **************************************************************************************************
7255!> \brief ...
7256!> \param Ndata ...
7257!> \param packed_data ...
7258!> \param full_data ...
7259! **************************************************************************************************
7260 SUBROUTINE bits2ints_11(Ndata, packed_data, full_data)
7261 INTEGER, INTENT(IN) :: Ndata
7262 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
7263 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
7264
7265 INTEGER, PARAMETER :: Nbits = 11
7266
7267 INTEGER :: idata, ipack, kdata, Ndata_rep
7268 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
7269
7270 ipack = 0
7271 idata = 0
7272 pack_tmp = 0
7273 ndata_rep = (ndata/64)*64
7274 DO kdata = 1, ndata_rep, 64
7275 idata = idata + 1
7276 data_tmp = ishft(pack_tmp, 11)
7277 ipack = ipack + 1
7278 pack_tmp = packed_data(ipack)
7279 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
7280 pack_tmp = ishft(pack_tmp, -11)
7281 idata = idata + 1
7282 data_tmp = iand(pack_tmp, mask_right(nbits))
7283 full_data(idata) = data_tmp
7284 pack_tmp = ishft(pack_tmp, -nbits)
7285 idata = idata + 1
7286 data_tmp = iand(pack_tmp, mask_right(nbits))
7287 full_data(idata) = data_tmp
7288 pack_tmp = ishft(pack_tmp, -nbits)
7289 idata = idata + 1
7290 data_tmp = iand(pack_tmp, mask_right(nbits))
7291 full_data(idata) = data_tmp
7292 pack_tmp = ishft(pack_tmp, -nbits)
7293 idata = idata + 1
7294 data_tmp = iand(pack_tmp, mask_right(nbits))
7295 full_data(idata) = data_tmp
7296 pack_tmp = ishft(pack_tmp, -nbits)
7297 idata = idata + 1
7298 data_tmp = ishft(pack_tmp, 2)
7299 ipack = ipack + 1
7300 pack_tmp = packed_data(ipack)
7301 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
7302 pack_tmp = ishft(pack_tmp, -2)
7303 idata = idata + 1
7304 data_tmp = iand(pack_tmp, mask_right(nbits))
7305 full_data(idata) = data_tmp
7306 pack_tmp = ishft(pack_tmp, -nbits)
7307 idata = idata + 1
7308 data_tmp = iand(pack_tmp, mask_right(nbits))
7309 full_data(idata) = data_tmp
7310 pack_tmp = ishft(pack_tmp, -nbits)
7311 idata = idata + 1
7312 data_tmp = iand(pack_tmp, mask_right(nbits))
7313 full_data(idata) = data_tmp
7314 pack_tmp = ishft(pack_tmp, -nbits)
7315 idata = idata + 1
7316 data_tmp = iand(pack_tmp, mask_right(nbits))
7317 full_data(idata) = data_tmp
7318 pack_tmp = ishft(pack_tmp, -nbits)
7319 idata = idata + 1
7320 data_tmp = iand(pack_tmp, mask_right(nbits))
7321 full_data(idata) = data_tmp
7322 pack_tmp = ishft(pack_tmp, -nbits)
7323 idata = idata + 1
7324 data_tmp = ishft(pack_tmp, 4)
7325 ipack = ipack + 1
7326 pack_tmp = packed_data(ipack)
7327 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
7328 pack_tmp = ishft(pack_tmp, -4)
7329 idata = idata + 1
7330 data_tmp = iand(pack_tmp, mask_right(nbits))
7331 full_data(idata) = data_tmp
7332 pack_tmp = ishft(pack_tmp, -nbits)
7333 idata = idata + 1
7334 data_tmp = iand(pack_tmp, mask_right(nbits))
7335 full_data(idata) = data_tmp
7336 pack_tmp = ishft(pack_tmp, -nbits)
7337 idata = idata + 1
7338 data_tmp = iand(pack_tmp, mask_right(nbits))
7339 full_data(idata) = data_tmp
7340 pack_tmp = ishft(pack_tmp, -nbits)
7341 idata = idata + 1
7342 data_tmp = iand(pack_tmp, mask_right(nbits))
7343 full_data(idata) = data_tmp
7344 pack_tmp = ishft(pack_tmp, -nbits)
7345 idata = idata + 1
7346 data_tmp = iand(pack_tmp, mask_right(nbits))
7347 full_data(idata) = data_tmp
7348 pack_tmp = ishft(pack_tmp, -nbits)
7349 idata = idata + 1
7350 data_tmp = ishft(pack_tmp, 6)
7351 ipack = ipack + 1
7352 pack_tmp = packed_data(ipack)
7353 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
7354 pack_tmp = ishft(pack_tmp, -6)
7355 idata = idata + 1
7356 data_tmp = iand(pack_tmp, mask_right(nbits))
7357 full_data(idata) = data_tmp
7358 pack_tmp = ishft(pack_tmp, -nbits)
7359 idata = idata + 1
7360 data_tmp = iand(pack_tmp, mask_right(nbits))
7361 full_data(idata) = data_tmp
7362 pack_tmp = ishft(pack_tmp, -nbits)
7363 idata = idata + 1
7364 data_tmp = iand(pack_tmp, mask_right(nbits))
7365 full_data(idata) = data_tmp
7366 pack_tmp = ishft(pack_tmp, -nbits)
7367 idata = idata + 1
7368 data_tmp = iand(pack_tmp, mask_right(nbits))
7369 full_data(idata) = data_tmp
7370 pack_tmp = ishft(pack_tmp, -nbits)
7371 idata = idata + 1
7372 data_tmp = iand(pack_tmp, mask_right(nbits))
7373 full_data(idata) = data_tmp
7374 pack_tmp = ishft(pack_tmp, -nbits)
7375 idata = idata + 1
7376 data_tmp = ishft(pack_tmp, 8)
7377 ipack = ipack + 1
7378 pack_tmp = packed_data(ipack)
7379 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
7380 pack_tmp = ishft(pack_tmp, -8)
7381 idata = idata + 1
7382 data_tmp = iand(pack_tmp, mask_right(nbits))
7383 full_data(idata) = data_tmp
7384 pack_tmp = ishft(pack_tmp, -nbits)
7385 idata = idata + 1
7386 data_tmp = iand(pack_tmp, mask_right(nbits))
7387 full_data(idata) = data_tmp
7388 pack_tmp = ishft(pack_tmp, -nbits)
7389 idata = idata + 1
7390 data_tmp = iand(pack_tmp, mask_right(nbits))
7391 full_data(idata) = data_tmp
7392 pack_tmp = ishft(pack_tmp, -nbits)
7393 idata = idata + 1
7394 data_tmp = iand(pack_tmp, mask_right(nbits))
7395 full_data(idata) = data_tmp
7396 pack_tmp = ishft(pack_tmp, -nbits)
7397 idata = idata + 1
7398 data_tmp = iand(pack_tmp, mask_right(nbits))
7399 full_data(idata) = data_tmp
7400 pack_tmp = ishft(pack_tmp, -nbits)
7401 idata = idata + 1
7402 data_tmp = ishft(pack_tmp, 10)
7403 ipack = ipack + 1
7404 pack_tmp = packed_data(ipack)
7405 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
7406 pack_tmp = ishft(pack_tmp, -10)
7407 idata = idata + 1
7408 data_tmp = iand(pack_tmp, mask_right(nbits))
7409 full_data(idata) = data_tmp
7410 pack_tmp = ishft(pack_tmp, -nbits)
7411 idata = idata + 1
7412 data_tmp = iand(pack_tmp, mask_right(nbits))
7413 full_data(idata) = data_tmp
7414 pack_tmp = ishft(pack_tmp, -nbits)
7415 idata = idata + 1
7416 data_tmp = iand(pack_tmp, mask_right(nbits))
7417 full_data(idata) = data_tmp
7418 pack_tmp = ishft(pack_tmp, -nbits)
7419 idata = idata + 1
7420 data_tmp = iand(pack_tmp, mask_right(nbits))
7421 full_data(idata) = data_tmp
7422 pack_tmp = ishft(pack_tmp, -nbits)
7423 idata = idata + 1
7424 data_tmp = ishft(pack_tmp, 1)
7425 ipack = ipack + 1
7426 pack_tmp = packed_data(ipack)
7427 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
7428 pack_tmp = ishft(pack_tmp, -1)
7429 idata = idata + 1
7430 data_tmp = iand(pack_tmp, mask_right(nbits))
7431 full_data(idata) = data_tmp
7432 pack_tmp = ishft(pack_tmp, -nbits)
7433 idata = idata + 1
7434 data_tmp = iand(pack_tmp, mask_right(nbits))
7435 full_data(idata) = data_tmp
7436 pack_tmp = ishft(pack_tmp, -nbits)
7437 idata = idata + 1
7438 data_tmp = iand(pack_tmp, mask_right(nbits))
7439 full_data(idata) = data_tmp
7440 pack_tmp = ishft(pack_tmp, -nbits)
7441 idata = idata + 1
7442 data_tmp = iand(pack_tmp, mask_right(nbits))
7443 full_data(idata) = data_tmp
7444 pack_tmp = ishft(pack_tmp, -nbits)
7445 idata = idata + 1
7446 data_tmp = iand(pack_tmp, mask_right(nbits))
7447 full_data(idata) = data_tmp
7448 pack_tmp = ishft(pack_tmp, -nbits)
7449 idata = idata + 1
7450 data_tmp = ishft(pack_tmp, 3)
7451 ipack = ipack + 1
7452 pack_tmp = packed_data(ipack)
7453 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
7454 pack_tmp = ishft(pack_tmp, -3)
7455 idata = idata + 1
7456 data_tmp = iand(pack_tmp, mask_right(nbits))
7457 full_data(idata) = data_tmp
7458 pack_tmp = ishft(pack_tmp, -nbits)
7459 idata = idata + 1
7460 data_tmp = iand(pack_tmp, mask_right(nbits))
7461 full_data(idata) = data_tmp
7462 pack_tmp = ishft(pack_tmp, -nbits)
7463 idata = idata + 1
7464 data_tmp = iand(pack_tmp, mask_right(nbits))
7465 full_data(idata) = data_tmp
7466 pack_tmp = ishft(pack_tmp, -nbits)
7467 idata = idata + 1
7468 data_tmp = iand(pack_tmp, mask_right(nbits))
7469 full_data(idata) = data_tmp
7470 pack_tmp = ishft(pack_tmp, -nbits)
7471 idata = idata + 1
7472 data_tmp = iand(pack_tmp, mask_right(nbits))
7473 full_data(idata) = data_tmp
7474 pack_tmp = ishft(pack_tmp, -nbits)
7475 idata = idata + 1
7476 data_tmp = ishft(pack_tmp, 5)
7477 ipack = ipack + 1
7478 pack_tmp = packed_data(ipack)
7479 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
7480 pack_tmp = ishft(pack_tmp, -5)
7481 idata = idata + 1
7482 data_tmp = iand(pack_tmp, mask_right(nbits))
7483 full_data(idata) = data_tmp
7484 pack_tmp = ishft(pack_tmp, -nbits)
7485 idata = idata + 1
7486 data_tmp = iand(pack_tmp, mask_right(nbits))
7487 full_data(idata) = data_tmp
7488 pack_tmp = ishft(pack_tmp, -nbits)
7489 idata = idata + 1
7490 data_tmp = iand(pack_tmp, mask_right(nbits))
7491 full_data(idata) = data_tmp
7492 pack_tmp = ishft(pack_tmp, -nbits)
7493 idata = idata + 1
7494 data_tmp = iand(pack_tmp, mask_right(nbits))
7495 full_data(idata) = data_tmp
7496 pack_tmp = ishft(pack_tmp, -nbits)
7497 idata = idata + 1
7498 data_tmp = iand(pack_tmp, mask_right(nbits))
7499 full_data(idata) = data_tmp
7500 pack_tmp = ishft(pack_tmp, -nbits)
7501 idata = idata + 1
7502 data_tmp = ishft(pack_tmp, 7)
7503 ipack = ipack + 1
7504 pack_tmp = packed_data(ipack)
7505 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
7506 pack_tmp = ishft(pack_tmp, -7)
7507 idata = idata + 1
7508 data_tmp = iand(pack_tmp, mask_right(nbits))
7509 full_data(idata) = data_tmp
7510 pack_tmp = ishft(pack_tmp, -nbits)
7511 idata = idata + 1
7512 data_tmp = iand(pack_tmp, mask_right(nbits))
7513 full_data(idata) = data_tmp
7514 pack_tmp = ishft(pack_tmp, -nbits)
7515 idata = idata + 1
7516 data_tmp = iand(pack_tmp, mask_right(nbits))
7517 full_data(idata) = data_tmp
7518 pack_tmp = ishft(pack_tmp, -nbits)
7519 idata = idata + 1
7520 data_tmp = iand(pack_tmp, mask_right(nbits))
7521 full_data(idata) = data_tmp
7522 pack_tmp = ishft(pack_tmp, -nbits)
7523 idata = idata + 1
7524 data_tmp = iand(pack_tmp, mask_right(nbits))
7525 full_data(idata) = data_tmp
7526 pack_tmp = ishft(pack_tmp, -nbits)
7527 idata = idata + 1
7528 data_tmp = ishft(pack_tmp, 9)
7529 ipack = ipack + 1
7530 pack_tmp = packed_data(ipack)
7531 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
7532 pack_tmp = ishft(pack_tmp, -9)
7533 idata = idata + 1
7534 data_tmp = iand(pack_tmp, mask_right(nbits))
7535 full_data(idata) = data_tmp
7536 pack_tmp = ishft(pack_tmp, -nbits)
7537 idata = idata + 1
7538 data_tmp = iand(pack_tmp, mask_right(nbits))
7539 full_data(idata) = data_tmp
7540 pack_tmp = ishft(pack_tmp, -nbits)
7541 idata = idata + 1
7542 data_tmp = iand(pack_tmp, mask_right(nbits))
7543 full_data(idata) = data_tmp
7544 pack_tmp = ishft(pack_tmp, -nbits)
7545 idata = idata + 1
7546 data_tmp = iand(pack_tmp, mask_right(nbits))
7547 full_data(idata) = data_tmp
7548 pack_tmp = ishft(pack_tmp, -nbits)
7549 idata = idata + 1
7550 data_tmp = iand(pack_tmp, mask_right(nbits))
7551 full_data(idata) = data_tmp
7552 pack_tmp = ishft(pack_tmp, -nbits)
7553 END DO
7554 IF (ndata_rep < ndata) THEN
7555 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
7556 END IF
7557 END SUBROUTINE bits2ints_11
7558
7559! **************************************************************************************************
7560!> \brief ...
7561!> \param Ndata ...
7562!> \param packed_data ...
7563!> \param full_data ...
7564! **************************************************************************************************
7565 SUBROUTINE ints2bits_12(Ndata, packed_data, full_data)
7566 INTEGER, INTENT(IN) :: Ndata
7567 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
7568 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
7569
7570 INTEGER, PARAMETER :: Nbits = 12
7571
7572 INTEGER :: idata, ipack, kdata, Ndata_rep
7573 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
7574
7575 idata = 0
7576 ipack = 0
7577 ndata_rep = (ndata/64)*64
7578 DO kdata = 1, ndata_rep, 64
7579 pack_tmp = 0
7580 idata = idata + 1
7581 data_tmp = full_data(idata)
7582 data_tmp = ishft(data_tmp, 52)
7583 pack_tmp = ior(pack_tmp, data_tmp)
7584 pack_tmp = ishft(pack_tmp, -12)
7585 idata = idata + 1
7586 data_tmp = full_data(idata)
7587 data_tmp = ishft(data_tmp, 52)
7588 pack_tmp = ior(pack_tmp, data_tmp)
7589 pack_tmp = ishft(pack_tmp, -12)
7590 idata = idata + 1
7591 data_tmp = full_data(idata)
7592 data_tmp = ishft(data_tmp, 52)
7593 pack_tmp = ior(pack_tmp, data_tmp)
7594 pack_tmp = ishft(pack_tmp, -12)
7595 idata = idata + 1
7596 data_tmp = full_data(idata)
7597 data_tmp = ishft(data_tmp, 52)
7598 pack_tmp = ior(pack_tmp, data_tmp)
7599 pack_tmp = ishft(pack_tmp, -12)
7600 idata = idata + 1
7601 data_tmp = full_data(idata)
7602 data_tmp = ishft(data_tmp, 52)
7603 pack_tmp = ior(pack_tmp, data_tmp)
7604 pack_tmp = ishft(pack_tmp, -4)
7605 idata = idata + 1
7606 data_tmp = full_data(idata)
7607 data_tmp = ishft(data_tmp, 52)
7608 data_tmp = iand(data_tmp, mask_left(4))
7609 pack_tmp = ior(pack_tmp, data_tmp)
7610 ipack = ipack + 1
7611 packed_data(ipack) = pack_tmp
7612 data_tmp = full_data(idata)
7613 pack_tmp = ishft(data_tmp, 56)
7614 pack_tmp = ishft(pack_tmp, -12)
7615 idata = idata + 1
7616 data_tmp = full_data(idata)
7617 data_tmp = ishft(data_tmp, 52)
7618 pack_tmp = ior(pack_tmp, data_tmp)
7619 pack_tmp = ishft(pack_tmp, -12)
7620 idata = idata + 1
7621 data_tmp = full_data(idata)
7622 data_tmp = ishft(data_tmp, 52)
7623 pack_tmp = ior(pack_tmp, data_tmp)
7624 pack_tmp = ishft(pack_tmp, -12)
7625 idata = idata + 1
7626 data_tmp = full_data(idata)
7627 data_tmp = ishft(data_tmp, 52)
7628 pack_tmp = ior(pack_tmp, data_tmp)
7629 pack_tmp = ishft(pack_tmp, -12)
7630 idata = idata + 1
7631 data_tmp = full_data(idata)
7632 data_tmp = ishft(data_tmp, 52)
7633 pack_tmp = ior(pack_tmp, data_tmp)
7634 pack_tmp = ishft(pack_tmp, -8)
7635 idata = idata + 1
7636 data_tmp = full_data(idata)
7637 data_tmp = ishft(data_tmp, 52)
7638 data_tmp = iand(data_tmp, mask_left(8))
7639 pack_tmp = ior(pack_tmp, data_tmp)
7640 ipack = ipack + 1
7641 packed_data(ipack) = pack_tmp
7642 data_tmp = full_data(idata)
7643 pack_tmp = ishft(data_tmp, 60)
7644 pack_tmp = ishft(pack_tmp, -12)
7645 idata = idata + 1
7646 data_tmp = full_data(idata)
7647 data_tmp = ishft(data_tmp, 52)
7648 pack_tmp = ior(pack_tmp, data_tmp)
7649 pack_tmp = ishft(pack_tmp, -12)
7650 idata = idata + 1
7651 data_tmp = full_data(idata)
7652 data_tmp = ishft(data_tmp, 52)
7653 pack_tmp = ior(pack_tmp, data_tmp)
7654 pack_tmp = ishft(pack_tmp, -12)
7655 idata = idata + 1
7656 data_tmp = full_data(idata)
7657 data_tmp = ishft(data_tmp, 52)
7658 pack_tmp = ior(pack_tmp, data_tmp)
7659 pack_tmp = ishft(pack_tmp, -12)
7660 idata = idata + 1
7661 data_tmp = full_data(idata)
7662 data_tmp = ishft(data_tmp, 52)
7663 pack_tmp = ior(pack_tmp, data_tmp)
7664 pack_tmp = ishft(pack_tmp, -12)
7665 idata = idata + 1
7666 data_tmp = full_data(idata)
7667 data_tmp = ishft(data_tmp, 52)
7668 pack_tmp = ior(pack_tmp, data_tmp)
7669 pack_tmp = ishft(pack_tmp, 0)
7670 idata = idata + 1
7671 data_tmp = full_data(idata)
7672 data_tmp = ishft(data_tmp, 52)
7673 data_tmp = iand(data_tmp, mask_left(0))
7674 pack_tmp = ior(pack_tmp, data_tmp)
7675 ipack = ipack + 1
7676 packed_data(ipack) = pack_tmp
7677 data_tmp = full_data(idata)
7678 pack_tmp = ishft(data_tmp, 52)
7679 pack_tmp = ishft(pack_tmp, -12)
7680 idata = idata + 1
7681 data_tmp = full_data(idata)
7682 data_tmp = ishft(data_tmp, 52)
7683 pack_tmp = ior(pack_tmp, data_tmp)
7684 pack_tmp = ishft(pack_tmp, -12)
7685 idata = idata + 1
7686 data_tmp = full_data(idata)
7687 data_tmp = ishft(data_tmp, 52)
7688 pack_tmp = ior(pack_tmp, data_tmp)
7689 pack_tmp = ishft(pack_tmp, -12)
7690 idata = idata + 1
7691 data_tmp = full_data(idata)
7692 data_tmp = ishft(data_tmp, 52)
7693 pack_tmp = ior(pack_tmp, data_tmp)
7694 pack_tmp = ishft(pack_tmp, -12)
7695 idata = idata + 1
7696 data_tmp = full_data(idata)
7697 data_tmp = ishft(data_tmp, 52)
7698 pack_tmp = ior(pack_tmp, data_tmp)
7699 pack_tmp = ishft(pack_tmp, -4)
7700 idata = idata + 1
7701 data_tmp = full_data(idata)
7702 data_tmp = ishft(data_tmp, 52)
7703 data_tmp = iand(data_tmp, mask_left(4))
7704 pack_tmp = ior(pack_tmp, data_tmp)
7705 ipack = ipack + 1
7706 packed_data(ipack) = pack_tmp
7707 data_tmp = full_data(idata)
7708 pack_tmp = ishft(data_tmp, 56)
7709 pack_tmp = ishft(pack_tmp, -12)
7710 idata = idata + 1
7711 data_tmp = full_data(idata)
7712 data_tmp = ishft(data_tmp, 52)
7713 pack_tmp = ior(pack_tmp, data_tmp)
7714 pack_tmp = ishft(pack_tmp, -12)
7715 idata = idata + 1
7716 data_tmp = full_data(idata)
7717 data_tmp = ishft(data_tmp, 52)
7718 pack_tmp = ior(pack_tmp, data_tmp)
7719 pack_tmp = ishft(pack_tmp, -12)
7720 idata = idata + 1
7721 data_tmp = full_data(idata)
7722 data_tmp = ishft(data_tmp, 52)
7723 pack_tmp = ior(pack_tmp, data_tmp)
7724 pack_tmp = ishft(pack_tmp, -12)
7725 idata = idata + 1
7726 data_tmp = full_data(idata)
7727 data_tmp = ishft(data_tmp, 52)
7728 pack_tmp = ior(pack_tmp, data_tmp)
7729 pack_tmp = ishft(pack_tmp, -8)
7730 idata = idata + 1
7731 data_tmp = full_data(idata)
7732 data_tmp = ishft(data_tmp, 52)
7733 data_tmp = iand(data_tmp, mask_left(8))
7734 pack_tmp = ior(pack_tmp, data_tmp)
7735 ipack = ipack + 1
7736 packed_data(ipack) = pack_tmp
7737 data_tmp = full_data(idata)
7738 pack_tmp = ishft(data_tmp, 60)
7739 pack_tmp = ishft(pack_tmp, -12)
7740 idata = idata + 1
7741 data_tmp = full_data(idata)
7742 data_tmp = ishft(data_tmp, 52)
7743 pack_tmp = ior(pack_tmp, data_tmp)
7744 pack_tmp = ishft(pack_tmp, -12)
7745 idata = idata + 1
7746 data_tmp = full_data(idata)
7747 data_tmp = ishft(data_tmp, 52)
7748 pack_tmp = ior(pack_tmp, data_tmp)
7749 pack_tmp = ishft(pack_tmp, -12)
7750 idata = idata + 1
7751 data_tmp = full_data(idata)
7752 data_tmp = ishft(data_tmp, 52)
7753 pack_tmp = ior(pack_tmp, data_tmp)
7754 pack_tmp = ishft(pack_tmp, -12)
7755 idata = idata + 1
7756 data_tmp = full_data(idata)
7757 data_tmp = ishft(data_tmp, 52)
7758 pack_tmp = ior(pack_tmp, data_tmp)
7759 pack_tmp = ishft(pack_tmp, -12)
7760 idata = idata + 1
7761 data_tmp = full_data(idata)
7762 data_tmp = ishft(data_tmp, 52)
7763 pack_tmp = ior(pack_tmp, data_tmp)
7764 pack_tmp = ishft(pack_tmp, 0)
7765 idata = idata + 1
7766 data_tmp = full_data(idata)
7767 data_tmp = ishft(data_tmp, 52)
7768 data_tmp = iand(data_tmp, mask_left(0))
7769 pack_tmp = ior(pack_tmp, data_tmp)
7770 ipack = ipack + 1
7771 packed_data(ipack) = pack_tmp
7772 data_tmp = full_data(idata)
7773 pack_tmp = ishft(data_tmp, 52)
7774 pack_tmp = ishft(pack_tmp, -12)
7775 idata = idata + 1
7776 data_tmp = full_data(idata)
7777 data_tmp = ishft(data_tmp, 52)
7778 pack_tmp = ior(pack_tmp, data_tmp)
7779 pack_tmp = ishft(pack_tmp, -12)
7780 idata = idata + 1
7781 data_tmp = full_data(idata)
7782 data_tmp = ishft(data_tmp, 52)
7783 pack_tmp = ior(pack_tmp, data_tmp)
7784 pack_tmp = ishft(pack_tmp, -12)
7785 idata = idata + 1
7786 data_tmp = full_data(idata)
7787 data_tmp = ishft(data_tmp, 52)
7788 pack_tmp = ior(pack_tmp, data_tmp)
7789 pack_tmp = ishft(pack_tmp, -12)
7790 idata = idata + 1
7791 data_tmp = full_data(idata)
7792 data_tmp = ishft(data_tmp, 52)
7793 pack_tmp = ior(pack_tmp, data_tmp)
7794 pack_tmp = ishft(pack_tmp, -4)
7795 idata = idata + 1
7796 data_tmp = full_data(idata)
7797 data_tmp = ishft(data_tmp, 52)
7798 data_tmp = iand(data_tmp, mask_left(4))
7799 pack_tmp = ior(pack_tmp, data_tmp)
7800 ipack = ipack + 1
7801 packed_data(ipack) = pack_tmp
7802 data_tmp = full_data(idata)
7803 pack_tmp = ishft(data_tmp, 56)
7804 pack_tmp = ishft(pack_tmp, -12)
7805 idata = idata + 1
7806 data_tmp = full_data(idata)
7807 data_tmp = ishft(data_tmp, 52)
7808 pack_tmp = ior(pack_tmp, data_tmp)
7809 pack_tmp = ishft(pack_tmp, -12)
7810 idata = idata + 1
7811 data_tmp = full_data(idata)
7812 data_tmp = ishft(data_tmp, 52)
7813 pack_tmp = ior(pack_tmp, data_tmp)
7814 pack_tmp = ishft(pack_tmp, -12)
7815 idata = idata + 1
7816 data_tmp = full_data(idata)
7817 data_tmp = ishft(data_tmp, 52)
7818 pack_tmp = ior(pack_tmp, data_tmp)
7819 pack_tmp = ishft(pack_tmp, -12)
7820 idata = idata + 1
7821 data_tmp = full_data(idata)
7822 data_tmp = ishft(data_tmp, 52)
7823 pack_tmp = ior(pack_tmp, data_tmp)
7824 pack_tmp = ishft(pack_tmp, -8)
7825 idata = idata + 1
7826 data_tmp = full_data(idata)
7827 data_tmp = ishft(data_tmp, 52)
7828 data_tmp = iand(data_tmp, mask_left(8))
7829 pack_tmp = ior(pack_tmp, data_tmp)
7830 ipack = ipack + 1
7831 packed_data(ipack) = pack_tmp
7832 data_tmp = full_data(idata)
7833 pack_tmp = ishft(data_tmp, 60)
7834 pack_tmp = ishft(pack_tmp, -12)
7835 idata = idata + 1
7836 data_tmp = full_data(idata)
7837 data_tmp = ishft(data_tmp, 52)
7838 pack_tmp = ior(pack_tmp, data_tmp)
7839 pack_tmp = ishft(pack_tmp, -12)
7840 idata = idata + 1
7841 data_tmp = full_data(idata)
7842 data_tmp = ishft(data_tmp, 52)
7843 pack_tmp = ior(pack_tmp, data_tmp)
7844 pack_tmp = ishft(pack_tmp, -12)
7845 idata = idata + 1
7846 data_tmp = full_data(idata)
7847 data_tmp = ishft(data_tmp, 52)
7848 pack_tmp = ior(pack_tmp, data_tmp)
7849 pack_tmp = ishft(pack_tmp, -12)
7850 idata = idata + 1
7851 data_tmp = full_data(idata)
7852 data_tmp = ishft(data_tmp, 52)
7853 pack_tmp = ior(pack_tmp, data_tmp)
7854 pack_tmp = ishft(pack_tmp, -12)
7855 idata = idata + 1
7856 data_tmp = full_data(idata)
7857 data_tmp = ishft(data_tmp, 52)
7858 pack_tmp = ior(pack_tmp, data_tmp)
7859 pack_tmp = ishft(pack_tmp, 0)
7860 idata = idata + 1
7861 data_tmp = full_data(idata)
7862 data_tmp = ishft(data_tmp, 52)
7863 data_tmp = iand(data_tmp, mask_left(0))
7864 pack_tmp = ior(pack_tmp, data_tmp)
7865 ipack = ipack + 1
7866 packed_data(ipack) = pack_tmp
7867 data_tmp = full_data(idata)
7868 pack_tmp = ishft(data_tmp, 52)
7869 pack_tmp = ishft(pack_tmp, -12)
7870 idata = idata + 1
7871 data_tmp = full_data(idata)
7872 data_tmp = ishft(data_tmp, 52)
7873 pack_tmp = ior(pack_tmp, data_tmp)
7874 pack_tmp = ishft(pack_tmp, -12)
7875 idata = idata + 1
7876 data_tmp = full_data(idata)
7877 data_tmp = ishft(data_tmp, 52)
7878 pack_tmp = ior(pack_tmp, data_tmp)
7879 pack_tmp = ishft(pack_tmp, -12)
7880 idata = idata + 1
7881 data_tmp = full_data(idata)
7882 data_tmp = ishft(data_tmp, 52)
7883 pack_tmp = ior(pack_tmp, data_tmp)
7884 pack_tmp = ishft(pack_tmp, -12)
7885 idata = idata + 1
7886 data_tmp = full_data(idata)
7887 data_tmp = ishft(data_tmp, 52)
7888 pack_tmp = ior(pack_tmp, data_tmp)
7889 pack_tmp = ishft(pack_tmp, -4)
7890 idata = idata + 1
7891 data_tmp = full_data(idata)
7892 data_tmp = ishft(data_tmp, 52)
7893 data_tmp = iand(data_tmp, mask_left(4))
7894 pack_tmp = ior(pack_tmp, data_tmp)
7895 ipack = ipack + 1
7896 packed_data(ipack) = pack_tmp
7897 data_tmp = full_data(idata)
7898 pack_tmp = ishft(data_tmp, 56)
7899 pack_tmp = ishft(pack_tmp, -12)
7900 idata = idata + 1
7901 data_tmp = full_data(idata)
7902 data_tmp = ishft(data_tmp, 52)
7903 pack_tmp = ior(pack_tmp, data_tmp)
7904 pack_tmp = ishft(pack_tmp, -12)
7905 idata = idata + 1
7906 data_tmp = full_data(idata)
7907 data_tmp = ishft(data_tmp, 52)
7908 pack_tmp = ior(pack_tmp, data_tmp)
7909 pack_tmp = ishft(pack_tmp, -12)
7910 idata = idata + 1
7911 data_tmp = full_data(idata)
7912 data_tmp = ishft(data_tmp, 52)
7913 pack_tmp = ior(pack_tmp, data_tmp)
7914 pack_tmp = ishft(pack_tmp, -12)
7915 idata = idata + 1
7916 data_tmp = full_data(idata)
7917 data_tmp = ishft(data_tmp, 52)
7918 pack_tmp = ior(pack_tmp, data_tmp)
7919 pack_tmp = ishft(pack_tmp, -8)
7920 idata = idata + 1
7921 data_tmp = full_data(idata)
7922 data_tmp = ishft(data_tmp, 52)
7923 data_tmp = iand(data_tmp, mask_left(8))
7924 pack_tmp = ior(pack_tmp, data_tmp)
7925 ipack = ipack + 1
7926 packed_data(ipack) = pack_tmp
7927 data_tmp = full_data(idata)
7928 pack_tmp = ishft(data_tmp, 60)
7929 pack_tmp = ishft(pack_tmp, -12)
7930 idata = idata + 1
7931 data_tmp = full_data(idata)
7932 data_tmp = ishft(data_tmp, 52)
7933 pack_tmp = ior(pack_tmp, data_tmp)
7934 pack_tmp = ishft(pack_tmp, -12)
7935 idata = idata + 1
7936 data_tmp = full_data(idata)
7937 data_tmp = ishft(data_tmp, 52)
7938 pack_tmp = ior(pack_tmp, data_tmp)
7939 pack_tmp = ishft(pack_tmp, -12)
7940 idata = idata + 1
7941 data_tmp = full_data(idata)
7942 data_tmp = ishft(data_tmp, 52)
7943 pack_tmp = ior(pack_tmp, data_tmp)
7944 pack_tmp = ishft(pack_tmp, -12)
7945 idata = idata + 1
7946 data_tmp = full_data(idata)
7947 data_tmp = ishft(data_tmp, 52)
7948 pack_tmp = ior(pack_tmp, data_tmp)
7949 pack_tmp = ishft(pack_tmp, -12)
7950 idata = idata + 1
7951 data_tmp = full_data(idata)
7952 data_tmp = ishft(data_tmp, 52)
7953 pack_tmp = ior(pack_tmp, data_tmp)
7954 pack_tmp = ishft(pack_tmp, 0)
7955 pack_tmp = ishft(pack_tmp, 0)
7956 ipack = ipack + 1
7957 packed_data(ipack) = pack_tmp
7958 END DO
7959 IF (ndata_rep < ndata) THEN
7960 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
7961 END IF
7962 END SUBROUTINE ints2bits_12
7963
7964! **************************************************************************************************
7965!> \brief ...
7966!> \param Ndata ...
7967!> \param packed_data ...
7968!> \param full_data ...
7969! **************************************************************************************************
7970 SUBROUTINE bits2ints_12(Ndata, packed_data, full_data)
7971 INTEGER, INTENT(IN) :: Ndata
7972 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
7973 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
7974
7975 INTEGER, PARAMETER :: Nbits = 12
7976
7977 INTEGER :: idata, ipack, kdata, Ndata_rep
7978 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
7979
7980 ipack = 0
7981 idata = 0
7982 pack_tmp = 0
7983 ndata_rep = (ndata/64)*64
7984 DO kdata = 1, ndata_rep, 64
7985 idata = idata + 1
7986 data_tmp = ishft(pack_tmp, 12)
7987 ipack = ipack + 1
7988 pack_tmp = packed_data(ipack)
7989 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
7990 pack_tmp = ishft(pack_tmp, -12)
7991 idata = idata + 1
7992 data_tmp = iand(pack_tmp, mask_right(nbits))
7993 full_data(idata) = data_tmp
7994 pack_tmp = ishft(pack_tmp, -nbits)
7995 idata = idata + 1
7996 data_tmp = iand(pack_tmp, mask_right(nbits))
7997 full_data(idata) = data_tmp
7998 pack_tmp = ishft(pack_tmp, -nbits)
7999 idata = idata + 1
8000 data_tmp = iand(pack_tmp, mask_right(nbits))
8001 full_data(idata) = data_tmp
8002 pack_tmp = ishft(pack_tmp, -nbits)
8003 idata = idata + 1
8004 data_tmp = iand(pack_tmp, mask_right(nbits))
8005 full_data(idata) = data_tmp
8006 pack_tmp = ishft(pack_tmp, -nbits)
8007 idata = idata + 1
8008 data_tmp = ishft(pack_tmp, 8)
8009 ipack = ipack + 1
8010 pack_tmp = packed_data(ipack)
8011 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
8012 pack_tmp = ishft(pack_tmp, -8)
8013 idata = idata + 1
8014 data_tmp = iand(pack_tmp, mask_right(nbits))
8015 full_data(idata) = data_tmp
8016 pack_tmp = ishft(pack_tmp, -nbits)
8017 idata = idata + 1
8018 data_tmp = iand(pack_tmp, mask_right(nbits))
8019 full_data(idata) = data_tmp
8020 pack_tmp = ishft(pack_tmp, -nbits)
8021 idata = idata + 1
8022 data_tmp = iand(pack_tmp, mask_right(nbits))
8023 full_data(idata) = data_tmp
8024 pack_tmp = ishft(pack_tmp, -nbits)
8025 idata = idata + 1
8026 data_tmp = iand(pack_tmp, mask_right(nbits))
8027 full_data(idata) = data_tmp
8028 pack_tmp = ishft(pack_tmp, -nbits)
8029 idata = idata + 1
8030 data_tmp = ishft(pack_tmp, 4)
8031 ipack = ipack + 1
8032 pack_tmp = packed_data(ipack)
8033 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
8034 pack_tmp = ishft(pack_tmp, -4)
8035 idata = idata + 1
8036 data_tmp = iand(pack_tmp, mask_right(nbits))
8037 full_data(idata) = data_tmp
8038 pack_tmp = ishft(pack_tmp, -nbits)
8039 idata = idata + 1
8040 data_tmp = iand(pack_tmp, mask_right(nbits))
8041 full_data(idata) = data_tmp
8042 pack_tmp = ishft(pack_tmp, -nbits)
8043 idata = idata + 1
8044 data_tmp = iand(pack_tmp, mask_right(nbits))
8045 full_data(idata) = data_tmp
8046 pack_tmp = ishft(pack_tmp, -nbits)
8047 idata = idata + 1
8048 data_tmp = iand(pack_tmp, mask_right(nbits))
8049 full_data(idata) = data_tmp
8050 pack_tmp = ishft(pack_tmp, -nbits)
8051 idata = idata + 1
8052 data_tmp = iand(pack_tmp, mask_right(nbits))
8053 full_data(idata) = data_tmp
8054 pack_tmp = ishft(pack_tmp, -nbits)
8055 idata = idata + 1
8056 data_tmp = ishft(pack_tmp, 12)
8057 ipack = ipack + 1
8058 pack_tmp = packed_data(ipack)
8059 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
8060 pack_tmp = ishft(pack_tmp, -12)
8061 idata = idata + 1
8062 data_tmp = iand(pack_tmp, mask_right(nbits))
8063 full_data(idata) = data_tmp
8064 pack_tmp = ishft(pack_tmp, -nbits)
8065 idata = idata + 1
8066 data_tmp = iand(pack_tmp, mask_right(nbits))
8067 full_data(idata) = data_tmp
8068 pack_tmp = ishft(pack_tmp, -nbits)
8069 idata = idata + 1
8070 data_tmp = iand(pack_tmp, mask_right(nbits))
8071 full_data(idata) = data_tmp
8072 pack_tmp = ishft(pack_tmp, -nbits)
8073 idata = idata + 1
8074 data_tmp = iand(pack_tmp, mask_right(nbits))
8075 full_data(idata) = data_tmp
8076 pack_tmp = ishft(pack_tmp, -nbits)
8077 idata = idata + 1
8078 data_tmp = ishft(pack_tmp, 8)
8079 ipack = ipack + 1
8080 pack_tmp = packed_data(ipack)
8081 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
8082 pack_tmp = ishft(pack_tmp, -8)
8083 idata = idata + 1
8084 data_tmp = iand(pack_tmp, mask_right(nbits))
8085 full_data(idata) = data_tmp
8086 pack_tmp = ishft(pack_tmp, -nbits)
8087 idata = idata + 1
8088 data_tmp = iand(pack_tmp, mask_right(nbits))
8089 full_data(idata) = data_tmp
8090 pack_tmp = ishft(pack_tmp, -nbits)
8091 idata = idata + 1
8092 data_tmp = iand(pack_tmp, mask_right(nbits))
8093 full_data(idata) = data_tmp
8094 pack_tmp = ishft(pack_tmp, -nbits)
8095 idata = idata + 1
8096 data_tmp = iand(pack_tmp, mask_right(nbits))
8097 full_data(idata) = data_tmp
8098 pack_tmp = ishft(pack_tmp, -nbits)
8099 idata = idata + 1
8100 data_tmp = ishft(pack_tmp, 4)
8101 ipack = ipack + 1
8102 pack_tmp = packed_data(ipack)
8103 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
8104 pack_tmp = ishft(pack_tmp, -4)
8105 idata = idata + 1
8106 data_tmp = iand(pack_tmp, mask_right(nbits))
8107 full_data(idata) = data_tmp
8108 pack_tmp = ishft(pack_tmp, -nbits)
8109 idata = idata + 1
8110 data_tmp = iand(pack_tmp, mask_right(nbits))
8111 full_data(idata) = data_tmp
8112 pack_tmp = ishft(pack_tmp, -nbits)
8113 idata = idata + 1
8114 data_tmp = iand(pack_tmp, mask_right(nbits))
8115 full_data(idata) = data_tmp
8116 pack_tmp = ishft(pack_tmp, -nbits)
8117 idata = idata + 1
8118 data_tmp = iand(pack_tmp, mask_right(nbits))
8119 full_data(idata) = data_tmp
8120 pack_tmp = ishft(pack_tmp, -nbits)
8121 idata = idata + 1
8122 data_tmp = iand(pack_tmp, mask_right(nbits))
8123 full_data(idata) = data_tmp
8124 pack_tmp = ishft(pack_tmp, -nbits)
8125 idata = idata + 1
8126 data_tmp = ishft(pack_tmp, 12)
8127 ipack = ipack + 1
8128 pack_tmp = packed_data(ipack)
8129 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
8130 pack_tmp = ishft(pack_tmp, -12)
8131 idata = idata + 1
8132 data_tmp = iand(pack_tmp, mask_right(nbits))
8133 full_data(idata) = data_tmp
8134 pack_tmp = ishft(pack_tmp, -nbits)
8135 idata = idata + 1
8136 data_tmp = iand(pack_tmp, mask_right(nbits))
8137 full_data(idata) = data_tmp
8138 pack_tmp = ishft(pack_tmp, -nbits)
8139 idata = idata + 1
8140 data_tmp = iand(pack_tmp, mask_right(nbits))
8141 full_data(idata) = data_tmp
8142 pack_tmp = ishft(pack_tmp, -nbits)
8143 idata = idata + 1
8144 data_tmp = iand(pack_tmp, mask_right(nbits))
8145 full_data(idata) = data_tmp
8146 pack_tmp = ishft(pack_tmp, -nbits)
8147 idata = idata + 1
8148 data_tmp = ishft(pack_tmp, 8)
8149 ipack = ipack + 1
8150 pack_tmp = packed_data(ipack)
8151 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
8152 pack_tmp = ishft(pack_tmp, -8)
8153 idata = idata + 1
8154 data_tmp = iand(pack_tmp, mask_right(nbits))
8155 full_data(idata) = data_tmp
8156 pack_tmp = ishft(pack_tmp, -nbits)
8157 idata = idata + 1
8158 data_tmp = iand(pack_tmp, mask_right(nbits))
8159 full_data(idata) = data_tmp
8160 pack_tmp = ishft(pack_tmp, -nbits)
8161 idata = idata + 1
8162 data_tmp = iand(pack_tmp, mask_right(nbits))
8163 full_data(idata) = data_tmp
8164 pack_tmp = ishft(pack_tmp, -nbits)
8165 idata = idata + 1
8166 data_tmp = iand(pack_tmp, mask_right(nbits))
8167 full_data(idata) = data_tmp
8168 pack_tmp = ishft(pack_tmp, -nbits)
8169 idata = idata + 1
8170 data_tmp = ishft(pack_tmp, 4)
8171 ipack = ipack + 1
8172 pack_tmp = packed_data(ipack)
8173 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
8174 pack_tmp = ishft(pack_tmp, -4)
8175 idata = idata + 1
8176 data_tmp = iand(pack_tmp, mask_right(nbits))
8177 full_data(idata) = data_tmp
8178 pack_tmp = ishft(pack_tmp, -nbits)
8179 idata = idata + 1
8180 data_tmp = iand(pack_tmp, mask_right(nbits))
8181 full_data(idata) = data_tmp
8182 pack_tmp = ishft(pack_tmp, -nbits)
8183 idata = idata + 1
8184 data_tmp = iand(pack_tmp, mask_right(nbits))
8185 full_data(idata) = data_tmp
8186 pack_tmp = ishft(pack_tmp, -nbits)
8187 idata = idata + 1
8188 data_tmp = iand(pack_tmp, mask_right(nbits))
8189 full_data(idata) = data_tmp
8190 pack_tmp = ishft(pack_tmp, -nbits)
8191 idata = idata + 1
8192 data_tmp = iand(pack_tmp, mask_right(nbits))
8193 full_data(idata) = data_tmp
8194 pack_tmp = ishft(pack_tmp, -nbits)
8195 idata = idata + 1
8196 data_tmp = ishft(pack_tmp, 12)
8197 ipack = ipack + 1
8198 pack_tmp = packed_data(ipack)
8199 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
8200 pack_tmp = ishft(pack_tmp, -12)
8201 idata = idata + 1
8202 data_tmp = iand(pack_tmp, mask_right(nbits))
8203 full_data(idata) = data_tmp
8204 pack_tmp = ishft(pack_tmp, -nbits)
8205 idata = idata + 1
8206 data_tmp = iand(pack_tmp, mask_right(nbits))
8207 full_data(idata) = data_tmp
8208 pack_tmp = ishft(pack_tmp, -nbits)
8209 idata = idata + 1
8210 data_tmp = iand(pack_tmp, mask_right(nbits))
8211 full_data(idata) = data_tmp
8212 pack_tmp = ishft(pack_tmp, -nbits)
8213 idata = idata + 1
8214 data_tmp = iand(pack_tmp, mask_right(nbits))
8215 full_data(idata) = data_tmp
8216 pack_tmp = ishft(pack_tmp, -nbits)
8217 idata = idata + 1
8218 data_tmp = ishft(pack_tmp, 8)
8219 ipack = ipack + 1
8220 pack_tmp = packed_data(ipack)
8221 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
8222 pack_tmp = ishft(pack_tmp, -8)
8223 idata = idata + 1
8224 data_tmp = iand(pack_tmp, mask_right(nbits))
8225 full_data(idata) = data_tmp
8226 pack_tmp = ishft(pack_tmp, -nbits)
8227 idata = idata + 1
8228 data_tmp = iand(pack_tmp, mask_right(nbits))
8229 full_data(idata) = data_tmp
8230 pack_tmp = ishft(pack_tmp, -nbits)
8231 idata = idata + 1
8232 data_tmp = iand(pack_tmp, mask_right(nbits))
8233 full_data(idata) = data_tmp
8234 pack_tmp = ishft(pack_tmp, -nbits)
8235 idata = idata + 1
8236 data_tmp = iand(pack_tmp, mask_right(nbits))
8237 full_data(idata) = data_tmp
8238 pack_tmp = ishft(pack_tmp, -nbits)
8239 idata = idata + 1
8240 data_tmp = ishft(pack_tmp, 4)
8241 ipack = ipack + 1
8242 pack_tmp = packed_data(ipack)
8243 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
8244 pack_tmp = ishft(pack_tmp, -4)
8245 idata = idata + 1
8246 data_tmp = iand(pack_tmp, mask_right(nbits))
8247 full_data(idata) = data_tmp
8248 pack_tmp = ishft(pack_tmp, -nbits)
8249 idata = idata + 1
8250 data_tmp = iand(pack_tmp, mask_right(nbits))
8251 full_data(idata) = data_tmp
8252 pack_tmp = ishft(pack_tmp, -nbits)
8253 idata = idata + 1
8254 data_tmp = iand(pack_tmp, mask_right(nbits))
8255 full_data(idata) = data_tmp
8256 pack_tmp = ishft(pack_tmp, -nbits)
8257 idata = idata + 1
8258 data_tmp = iand(pack_tmp, mask_right(nbits))
8259 full_data(idata) = data_tmp
8260 pack_tmp = ishft(pack_tmp, -nbits)
8261 idata = idata + 1
8262 data_tmp = iand(pack_tmp, mask_right(nbits))
8263 full_data(idata) = data_tmp
8264 pack_tmp = ishft(pack_tmp, -nbits)
8265 END DO
8266 IF (ndata_rep < ndata) THEN
8267 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
8268 END IF
8269 END SUBROUTINE bits2ints_12
8270
8271! **************************************************************************************************
8272!> \brief ...
8273!> \param Ndata ...
8274!> \param packed_data ...
8275!> \param full_data ...
8276! **************************************************************************************************
8277 SUBROUTINE ints2bits_13(Ndata, packed_data, full_data)
8278 INTEGER, INTENT(IN) :: Ndata
8279 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
8280 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
8281
8282 INTEGER, PARAMETER :: Nbits = 13
8283
8284 INTEGER :: idata, ipack, kdata, Ndata_rep
8285 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
8286
8287 idata = 0
8288 ipack = 0
8289 ndata_rep = (ndata/64)*64
8290 DO kdata = 1, ndata_rep, 64
8291 pack_tmp = 0
8292 idata = idata + 1
8293 data_tmp = full_data(idata)
8294 data_tmp = ishft(data_tmp, 51)
8295 pack_tmp = ior(pack_tmp, data_tmp)
8296 pack_tmp = ishft(pack_tmp, -13)
8297 idata = idata + 1
8298 data_tmp = full_data(idata)
8299 data_tmp = ishft(data_tmp, 51)
8300 pack_tmp = ior(pack_tmp, data_tmp)
8301 pack_tmp = ishft(pack_tmp, -13)
8302 idata = idata + 1
8303 data_tmp = full_data(idata)
8304 data_tmp = ishft(data_tmp, 51)
8305 pack_tmp = ior(pack_tmp, data_tmp)
8306 pack_tmp = ishft(pack_tmp, -13)
8307 idata = idata + 1
8308 data_tmp = full_data(idata)
8309 data_tmp = ishft(data_tmp, 51)
8310 pack_tmp = ior(pack_tmp, data_tmp)
8311 pack_tmp = ishft(pack_tmp, -12)
8312 idata = idata + 1
8313 data_tmp = full_data(idata)
8314 data_tmp = ishft(data_tmp, 51)
8315 data_tmp = iand(data_tmp, mask_left(12))
8316 pack_tmp = ior(pack_tmp, data_tmp)
8317 ipack = ipack + 1
8318 packed_data(ipack) = pack_tmp
8319 data_tmp = full_data(idata)
8320 pack_tmp = ishft(data_tmp, 63)
8321 pack_tmp = ishft(pack_tmp, -13)
8322 idata = idata + 1
8323 data_tmp = full_data(idata)
8324 data_tmp = ishft(data_tmp, 51)
8325 pack_tmp = ior(pack_tmp, data_tmp)
8326 pack_tmp = ishft(pack_tmp, -13)
8327 idata = idata + 1
8328 data_tmp = full_data(idata)
8329 data_tmp = ishft(data_tmp, 51)
8330 pack_tmp = ior(pack_tmp, data_tmp)
8331 pack_tmp = ishft(pack_tmp, -13)
8332 idata = idata + 1
8333 data_tmp = full_data(idata)
8334 data_tmp = ishft(data_tmp, 51)
8335 pack_tmp = ior(pack_tmp, data_tmp)
8336 pack_tmp = ishft(pack_tmp, -13)
8337 idata = idata + 1
8338 data_tmp = full_data(idata)
8339 data_tmp = ishft(data_tmp, 51)
8340 pack_tmp = ior(pack_tmp, data_tmp)
8341 pack_tmp = ishft(pack_tmp, -11)
8342 idata = idata + 1
8343 data_tmp = full_data(idata)
8344 data_tmp = ishft(data_tmp, 51)
8345 data_tmp = iand(data_tmp, mask_left(11))
8346 pack_tmp = ior(pack_tmp, data_tmp)
8347 ipack = ipack + 1
8348 packed_data(ipack) = pack_tmp
8349 data_tmp = full_data(idata)
8350 pack_tmp = ishft(data_tmp, 62)
8351 pack_tmp = ishft(pack_tmp, -13)
8352 idata = idata + 1
8353 data_tmp = full_data(idata)
8354 data_tmp = ishft(data_tmp, 51)
8355 pack_tmp = ior(pack_tmp, data_tmp)
8356 pack_tmp = ishft(pack_tmp, -13)
8357 idata = idata + 1
8358 data_tmp = full_data(idata)
8359 data_tmp = ishft(data_tmp, 51)
8360 pack_tmp = ior(pack_tmp, data_tmp)
8361 pack_tmp = ishft(pack_tmp, -13)
8362 idata = idata + 1
8363 data_tmp = full_data(idata)
8364 data_tmp = ishft(data_tmp, 51)
8365 pack_tmp = ior(pack_tmp, data_tmp)
8366 pack_tmp = ishft(pack_tmp, -13)
8367 idata = idata + 1
8368 data_tmp = full_data(idata)
8369 data_tmp = ishft(data_tmp, 51)
8370 pack_tmp = ior(pack_tmp, data_tmp)
8371 pack_tmp = ishft(pack_tmp, -10)
8372 idata = idata + 1
8373 data_tmp = full_data(idata)
8374 data_tmp = ishft(data_tmp, 51)
8375 data_tmp = iand(data_tmp, mask_left(10))
8376 pack_tmp = ior(pack_tmp, data_tmp)
8377 ipack = ipack + 1
8378 packed_data(ipack) = pack_tmp
8379 data_tmp = full_data(idata)
8380 pack_tmp = ishft(data_tmp, 61)
8381 pack_tmp = ishft(pack_tmp, -13)
8382 idata = idata + 1
8383 data_tmp = full_data(idata)
8384 data_tmp = ishft(data_tmp, 51)
8385 pack_tmp = ior(pack_tmp, data_tmp)
8386 pack_tmp = ishft(pack_tmp, -13)
8387 idata = idata + 1
8388 data_tmp = full_data(idata)
8389 data_tmp = ishft(data_tmp, 51)
8390 pack_tmp = ior(pack_tmp, data_tmp)
8391 pack_tmp = ishft(pack_tmp, -13)
8392 idata = idata + 1
8393 data_tmp = full_data(idata)
8394 data_tmp = ishft(data_tmp, 51)
8395 pack_tmp = ior(pack_tmp, data_tmp)
8396 pack_tmp = ishft(pack_tmp, -13)
8397 idata = idata + 1
8398 data_tmp = full_data(idata)
8399 data_tmp = ishft(data_tmp, 51)
8400 pack_tmp = ior(pack_tmp, data_tmp)
8401 pack_tmp = ishft(pack_tmp, -9)
8402 idata = idata + 1
8403 data_tmp = full_data(idata)
8404 data_tmp = ishft(data_tmp, 51)
8405 data_tmp = iand(data_tmp, mask_left(9))
8406 pack_tmp = ior(pack_tmp, data_tmp)
8407 ipack = ipack + 1
8408 packed_data(ipack) = pack_tmp
8409 data_tmp = full_data(idata)
8410 pack_tmp = ishft(data_tmp, 60)
8411 pack_tmp = ishft(pack_tmp, -13)
8412 idata = idata + 1
8413 data_tmp = full_data(idata)
8414 data_tmp = ishft(data_tmp, 51)
8415 pack_tmp = ior(pack_tmp, data_tmp)
8416 pack_tmp = ishft(pack_tmp, -13)
8417 idata = idata + 1
8418 data_tmp = full_data(idata)
8419 data_tmp = ishft(data_tmp, 51)
8420 pack_tmp = ior(pack_tmp, data_tmp)
8421 pack_tmp = ishft(pack_tmp, -13)
8422 idata = idata + 1
8423 data_tmp = full_data(idata)
8424 data_tmp = ishft(data_tmp, 51)
8425 pack_tmp = ior(pack_tmp, data_tmp)
8426 pack_tmp = ishft(pack_tmp, -13)
8427 idata = idata + 1
8428 data_tmp = full_data(idata)
8429 data_tmp = ishft(data_tmp, 51)
8430 pack_tmp = ior(pack_tmp, data_tmp)
8431 pack_tmp = ishft(pack_tmp, -8)
8432 idata = idata + 1
8433 data_tmp = full_data(idata)
8434 data_tmp = ishft(data_tmp, 51)
8435 data_tmp = iand(data_tmp, mask_left(8))
8436 pack_tmp = ior(pack_tmp, data_tmp)
8437 ipack = ipack + 1
8438 packed_data(ipack) = pack_tmp
8439 data_tmp = full_data(idata)
8440 pack_tmp = ishft(data_tmp, 59)
8441 pack_tmp = ishft(pack_tmp, -13)
8442 idata = idata + 1
8443 data_tmp = full_data(idata)
8444 data_tmp = ishft(data_tmp, 51)
8445 pack_tmp = ior(pack_tmp, data_tmp)
8446 pack_tmp = ishft(pack_tmp, -13)
8447 idata = idata + 1
8448 data_tmp = full_data(idata)
8449 data_tmp = ishft(data_tmp, 51)
8450 pack_tmp = ior(pack_tmp, data_tmp)
8451 pack_tmp = ishft(pack_tmp, -13)
8452 idata = idata + 1
8453 data_tmp = full_data(idata)
8454 data_tmp = ishft(data_tmp, 51)
8455 pack_tmp = ior(pack_tmp, data_tmp)
8456 pack_tmp = ishft(pack_tmp, -13)
8457 idata = idata + 1
8458 data_tmp = full_data(idata)
8459 data_tmp = ishft(data_tmp, 51)
8460 pack_tmp = ior(pack_tmp, data_tmp)
8461 pack_tmp = ishft(pack_tmp, -7)
8462 idata = idata + 1
8463 data_tmp = full_data(idata)
8464 data_tmp = ishft(data_tmp, 51)
8465 data_tmp = iand(data_tmp, mask_left(7))
8466 pack_tmp = ior(pack_tmp, data_tmp)
8467 ipack = ipack + 1
8468 packed_data(ipack) = pack_tmp
8469 data_tmp = full_data(idata)
8470 pack_tmp = ishft(data_tmp, 58)
8471 pack_tmp = ishft(pack_tmp, -13)
8472 idata = idata + 1
8473 data_tmp = full_data(idata)
8474 data_tmp = ishft(data_tmp, 51)
8475 pack_tmp = ior(pack_tmp, data_tmp)
8476 pack_tmp = ishft(pack_tmp, -13)
8477 idata = idata + 1
8478 data_tmp = full_data(idata)
8479 data_tmp = ishft(data_tmp, 51)
8480 pack_tmp = ior(pack_tmp, data_tmp)
8481 pack_tmp = ishft(pack_tmp, -13)
8482 idata = idata + 1
8483 data_tmp = full_data(idata)
8484 data_tmp = ishft(data_tmp, 51)
8485 pack_tmp = ior(pack_tmp, data_tmp)
8486 pack_tmp = ishft(pack_tmp, -13)
8487 idata = idata + 1
8488 data_tmp = full_data(idata)
8489 data_tmp = ishft(data_tmp, 51)
8490 pack_tmp = ior(pack_tmp, data_tmp)
8491 pack_tmp = ishft(pack_tmp, -6)
8492 idata = idata + 1
8493 data_tmp = full_data(idata)
8494 data_tmp = ishft(data_tmp, 51)
8495 data_tmp = iand(data_tmp, mask_left(6))
8496 pack_tmp = ior(pack_tmp, data_tmp)
8497 ipack = ipack + 1
8498 packed_data(ipack) = pack_tmp
8499 data_tmp = full_data(idata)
8500 pack_tmp = ishft(data_tmp, 57)
8501 pack_tmp = ishft(pack_tmp, -13)
8502 idata = idata + 1
8503 data_tmp = full_data(idata)
8504 data_tmp = ishft(data_tmp, 51)
8505 pack_tmp = ior(pack_tmp, data_tmp)
8506 pack_tmp = ishft(pack_tmp, -13)
8507 idata = idata + 1
8508 data_tmp = full_data(idata)
8509 data_tmp = ishft(data_tmp, 51)
8510 pack_tmp = ior(pack_tmp, data_tmp)
8511 pack_tmp = ishft(pack_tmp, -13)
8512 idata = idata + 1
8513 data_tmp = full_data(idata)
8514 data_tmp = ishft(data_tmp, 51)
8515 pack_tmp = ior(pack_tmp, data_tmp)
8516 pack_tmp = ishft(pack_tmp, -13)
8517 idata = idata + 1
8518 data_tmp = full_data(idata)
8519 data_tmp = ishft(data_tmp, 51)
8520 pack_tmp = ior(pack_tmp, data_tmp)
8521 pack_tmp = ishft(pack_tmp, -5)
8522 idata = idata + 1
8523 data_tmp = full_data(idata)
8524 data_tmp = ishft(data_tmp, 51)
8525 data_tmp = iand(data_tmp, mask_left(5))
8526 pack_tmp = ior(pack_tmp, data_tmp)
8527 ipack = ipack + 1
8528 packed_data(ipack) = pack_tmp
8529 data_tmp = full_data(idata)
8530 pack_tmp = ishft(data_tmp, 56)
8531 pack_tmp = ishft(pack_tmp, -13)
8532 idata = idata + 1
8533 data_tmp = full_data(idata)
8534 data_tmp = ishft(data_tmp, 51)
8535 pack_tmp = ior(pack_tmp, data_tmp)
8536 pack_tmp = ishft(pack_tmp, -13)
8537 idata = idata + 1
8538 data_tmp = full_data(idata)
8539 data_tmp = ishft(data_tmp, 51)
8540 pack_tmp = ior(pack_tmp, data_tmp)
8541 pack_tmp = ishft(pack_tmp, -13)
8542 idata = idata + 1
8543 data_tmp = full_data(idata)
8544 data_tmp = ishft(data_tmp, 51)
8545 pack_tmp = ior(pack_tmp, data_tmp)
8546 pack_tmp = ishft(pack_tmp, -13)
8547 idata = idata + 1
8548 data_tmp = full_data(idata)
8549 data_tmp = ishft(data_tmp, 51)
8550 pack_tmp = ior(pack_tmp, data_tmp)
8551 pack_tmp = ishft(pack_tmp, -4)
8552 idata = idata + 1
8553 data_tmp = full_data(idata)
8554 data_tmp = ishft(data_tmp, 51)
8555 data_tmp = iand(data_tmp, mask_left(4))
8556 pack_tmp = ior(pack_tmp, data_tmp)
8557 ipack = ipack + 1
8558 packed_data(ipack) = pack_tmp
8559 data_tmp = full_data(idata)
8560 pack_tmp = ishft(data_tmp, 55)
8561 pack_tmp = ishft(pack_tmp, -13)
8562 idata = idata + 1
8563 data_tmp = full_data(idata)
8564 data_tmp = ishft(data_tmp, 51)
8565 pack_tmp = ior(pack_tmp, data_tmp)
8566 pack_tmp = ishft(pack_tmp, -13)
8567 idata = idata + 1
8568 data_tmp = full_data(idata)
8569 data_tmp = ishft(data_tmp, 51)
8570 pack_tmp = ior(pack_tmp, data_tmp)
8571 pack_tmp = ishft(pack_tmp, -13)
8572 idata = idata + 1
8573 data_tmp = full_data(idata)
8574 data_tmp = ishft(data_tmp, 51)
8575 pack_tmp = ior(pack_tmp, data_tmp)
8576 pack_tmp = ishft(pack_tmp, -13)
8577 idata = idata + 1
8578 data_tmp = full_data(idata)
8579 data_tmp = ishft(data_tmp, 51)
8580 pack_tmp = ior(pack_tmp, data_tmp)
8581 pack_tmp = ishft(pack_tmp, -3)
8582 idata = idata + 1
8583 data_tmp = full_data(idata)
8584 data_tmp = ishft(data_tmp, 51)
8585 data_tmp = iand(data_tmp, mask_left(3))
8586 pack_tmp = ior(pack_tmp, data_tmp)
8587 ipack = ipack + 1
8588 packed_data(ipack) = pack_tmp
8589 data_tmp = full_data(idata)
8590 pack_tmp = ishft(data_tmp, 54)
8591 pack_tmp = ishft(pack_tmp, -13)
8592 idata = idata + 1
8593 data_tmp = full_data(idata)
8594 data_tmp = ishft(data_tmp, 51)
8595 pack_tmp = ior(pack_tmp, data_tmp)
8596 pack_tmp = ishft(pack_tmp, -13)
8597 idata = idata + 1
8598 data_tmp = full_data(idata)
8599 data_tmp = ishft(data_tmp, 51)
8600 pack_tmp = ior(pack_tmp, data_tmp)
8601 pack_tmp = ishft(pack_tmp, -13)
8602 idata = idata + 1
8603 data_tmp = full_data(idata)
8604 data_tmp = ishft(data_tmp, 51)
8605 pack_tmp = ior(pack_tmp, data_tmp)
8606 pack_tmp = ishft(pack_tmp, -13)
8607 idata = idata + 1
8608 data_tmp = full_data(idata)
8609 data_tmp = ishft(data_tmp, 51)
8610 pack_tmp = ior(pack_tmp, data_tmp)
8611 pack_tmp = ishft(pack_tmp, -2)
8612 idata = idata + 1
8613 data_tmp = full_data(idata)
8614 data_tmp = ishft(data_tmp, 51)
8615 data_tmp = iand(data_tmp, mask_left(2))
8616 pack_tmp = ior(pack_tmp, data_tmp)
8617 ipack = ipack + 1
8618 packed_data(ipack) = pack_tmp
8619 data_tmp = full_data(idata)
8620 pack_tmp = ishft(data_tmp, 53)
8621 pack_tmp = ishft(pack_tmp, -13)
8622 idata = idata + 1
8623 data_tmp = full_data(idata)
8624 data_tmp = ishft(data_tmp, 51)
8625 pack_tmp = ior(pack_tmp, data_tmp)
8626 pack_tmp = ishft(pack_tmp, -13)
8627 idata = idata + 1
8628 data_tmp = full_data(idata)
8629 data_tmp = ishft(data_tmp, 51)
8630 pack_tmp = ior(pack_tmp, data_tmp)
8631 pack_tmp = ishft(pack_tmp, -13)
8632 idata = idata + 1
8633 data_tmp = full_data(idata)
8634 data_tmp = ishft(data_tmp, 51)
8635 pack_tmp = ior(pack_tmp, data_tmp)
8636 pack_tmp = ishft(pack_tmp, -13)
8637 idata = idata + 1
8638 data_tmp = full_data(idata)
8639 data_tmp = ishft(data_tmp, 51)
8640 pack_tmp = ior(pack_tmp, data_tmp)
8641 pack_tmp = ishft(pack_tmp, -1)
8642 idata = idata + 1
8643 data_tmp = full_data(idata)
8644 data_tmp = ishft(data_tmp, 51)
8645 data_tmp = iand(data_tmp, mask_left(1))
8646 pack_tmp = ior(pack_tmp, data_tmp)
8647 ipack = ipack + 1
8648 packed_data(ipack) = pack_tmp
8649 data_tmp = full_data(idata)
8650 pack_tmp = ishft(data_tmp, 52)
8651 pack_tmp = ishft(pack_tmp, -13)
8652 idata = idata + 1
8653 data_tmp = full_data(idata)
8654 data_tmp = ishft(data_tmp, 51)
8655 pack_tmp = ior(pack_tmp, data_tmp)
8656 pack_tmp = ishft(pack_tmp, -13)
8657 idata = idata + 1
8658 data_tmp = full_data(idata)
8659 data_tmp = ishft(data_tmp, 51)
8660 pack_tmp = ior(pack_tmp, data_tmp)
8661 pack_tmp = ishft(pack_tmp, -13)
8662 idata = idata + 1
8663 data_tmp = full_data(idata)
8664 data_tmp = ishft(data_tmp, 51)
8665 pack_tmp = ior(pack_tmp, data_tmp)
8666 pack_tmp = ishft(pack_tmp, -13)
8667 idata = idata + 1
8668 data_tmp = full_data(idata)
8669 data_tmp = ishft(data_tmp, 51)
8670 pack_tmp = ior(pack_tmp, data_tmp)
8671 pack_tmp = ishft(pack_tmp, 0)
8672 pack_tmp = ishft(pack_tmp, 0)
8673 ipack = ipack + 1
8674 packed_data(ipack) = pack_tmp
8675 END DO
8676 IF (ndata_rep < ndata) THEN
8677 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
8678 END IF
8679 END SUBROUTINE ints2bits_13
8680
8681! **************************************************************************************************
8682!> \brief ...
8683!> \param Ndata ...
8684!> \param packed_data ...
8685!> \param full_data ...
8686! **************************************************************************************************
8687 SUBROUTINE bits2ints_13(Ndata, packed_data, full_data)
8688 INTEGER, INTENT(IN) :: Ndata
8689 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
8690 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
8691
8692 INTEGER, PARAMETER :: Nbits = 13
8693
8694 INTEGER :: idata, ipack, kdata, Ndata_rep
8695 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
8696
8697 ipack = 0
8698 idata = 0
8699 pack_tmp = 0
8700 ndata_rep = (ndata/64)*64
8701 DO kdata = 1, ndata_rep, 64
8702 idata = idata + 1
8703 data_tmp = ishft(pack_tmp, 13)
8704 ipack = ipack + 1
8705 pack_tmp = packed_data(ipack)
8706 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
8707 pack_tmp = ishft(pack_tmp, -13)
8708 idata = idata + 1
8709 data_tmp = iand(pack_tmp, mask_right(nbits))
8710 full_data(idata) = data_tmp
8711 pack_tmp = ishft(pack_tmp, -nbits)
8712 idata = idata + 1
8713 data_tmp = iand(pack_tmp, mask_right(nbits))
8714 full_data(idata) = data_tmp
8715 pack_tmp = ishft(pack_tmp, -nbits)
8716 idata = idata + 1
8717 data_tmp = iand(pack_tmp, mask_right(nbits))
8718 full_data(idata) = data_tmp
8719 pack_tmp = ishft(pack_tmp, -nbits)
8720 idata = idata + 1
8721 data_tmp = ishft(pack_tmp, 1)
8722 ipack = ipack + 1
8723 pack_tmp = packed_data(ipack)
8724 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
8725 pack_tmp = ishft(pack_tmp, -1)
8726 idata = idata + 1
8727 data_tmp = iand(pack_tmp, mask_right(nbits))
8728 full_data(idata) = data_tmp
8729 pack_tmp = ishft(pack_tmp, -nbits)
8730 idata = idata + 1
8731 data_tmp = iand(pack_tmp, mask_right(nbits))
8732 full_data(idata) = data_tmp
8733 pack_tmp = ishft(pack_tmp, -nbits)
8734 idata = idata + 1
8735 data_tmp = iand(pack_tmp, mask_right(nbits))
8736 full_data(idata) = data_tmp
8737 pack_tmp = ishft(pack_tmp, -nbits)
8738 idata = idata + 1
8739 data_tmp = iand(pack_tmp, mask_right(nbits))
8740 full_data(idata) = data_tmp
8741 pack_tmp = ishft(pack_tmp, -nbits)
8742 idata = idata + 1
8743 data_tmp = ishft(pack_tmp, 2)
8744 ipack = ipack + 1
8745 pack_tmp = packed_data(ipack)
8746 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
8747 pack_tmp = ishft(pack_tmp, -2)
8748 idata = idata + 1
8749 data_tmp = iand(pack_tmp, mask_right(nbits))
8750 full_data(idata) = data_tmp
8751 pack_tmp = ishft(pack_tmp, -nbits)
8752 idata = idata + 1
8753 data_tmp = iand(pack_tmp, mask_right(nbits))
8754 full_data(idata) = data_tmp
8755 pack_tmp = ishft(pack_tmp, -nbits)
8756 idata = idata + 1
8757 data_tmp = iand(pack_tmp, mask_right(nbits))
8758 full_data(idata) = data_tmp
8759 pack_tmp = ishft(pack_tmp, -nbits)
8760 idata = idata + 1
8761 data_tmp = iand(pack_tmp, mask_right(nbits))
8762 full_data(idata) = data_tmp
8763 pack_tmp = ishft(pack_tmp, -nbits)
8764 idata = idata + 1
8765 data_tmp = ishft(pack_tmp, 3)
8766 ipack = ipack + 1
8767 pack_tmp = packed_data(ipack)
8768 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
8769 pack_tmp = ishft(pack_tmp, -3)
8770 idata = idata + 1
8771 data_tmp = iand(pack_tmp, mask_right(nbits))
8772 full_data(idata) = data_tmp
8773 pack_tmp = ishft(pack_tmp, -nbits)
8774 idata = idata + 1
8775 data_tmp = iand(pack_tmp, mask_right(nbits))
8776 full_data(idata) = data_tmp
8777 pack_tmp = ishft(pack_tmp, -nbits)
8778 idata = idata + 1
8779 data_tmp = iand(pack_tmp, mask_right(nbits))
8780 full_data(idata) = data_tmp
8781 pack_tmp = ishft(pack_tmp, -nbits)
8782 idata = idata + 1
8783 data_tmp = iand(pack_tmp, mask_right(nbits))
8784 full_data(idata) = data_tmp
8785 pack_tmp = ishft(pack_tmp, -nbits)
8786 idata = idata + 1
8787 data_tmp = ishft(pack_tmp, 4)
8788 ipack = ipack + 1
8789 pack_tmp = packed_data(ipack)
8790 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
8791 pack_tmp = ishft(pack_tmp, -4)
8792 idata = idata + 1
8793 data_tmp = iand(pack_tmp, mask_right(nbits))
8794 full_data(idata) = data_tmp
8795 pack_tmp = ishft(pack_tmp, -nbits)
8796 idata = idata + 1
8797 data_tmp = iand(pack_tmp, mask_right(nbits))
8798 full_data(idata) = data_tmp
8799 pack_tmp = ishft(pack_tmp, -nbits)
8800 idata = idata + 1
8801 data_tmp = iand(pack_tmp, mask_right(nbits))
8802 full_data(idata) = data_tmp
8803 pack_tmp = ishft(pack_tmp, -nbits)
8804 idata = idata + 1
8805 data_tmp = iand(pack_tmp, mask_right(nbits))
8806 full_data(idata) = data_tmp
8807 pack_tmp = ishft(pack_tmp, -nbits)
8808 idata = idata + 1
8809 data_tmp = ishft(pack_tmp, 5)
8810 ipack = ipack + 1
8811 pack_tmp = packed_data(ipack)
8812 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
8813 pack_tmp = ishft(pack_tmp, -5)
8814 idata = idata + 1
8815 data_tmp = iand(pack_tmp, mask_right(nbits))
8816 full_data(idata) = data_tmp
8817 pack_tmp = ishft(pack_tmp, -nbits)
8818 idata = idata + 1
8819 data_tmp = iand(pack_tmp, mask_right(nbits))
8820 full_data(idata) = data_tmp
8821 pack_tmp = ishft(pack_tmp, -nbits)
8822 idata = idata + 1
8823 data_tmp = iand(pack_tmp, mask_right(nbits))
8824 full_data(idata) = data_tmp
8825 pack_tmp = ishft(pack_tmp, -nbits)
8826 idata = idata + 1
8827 data_tmp = iand(pack_tmp, mask_right(nbits))
8828 full_data(idata) = data_tmp
8829 pack_tmp = ishft(pack_tmp, -nbits)
8830 idata = idata + 1
8831 data_tmp = ishft(pack_tmp, 6)
8832 ipack = ipack + 1
8833 pack_tmp = packed_data(ipack)
8834 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
8835 pack_tmp = ishft(pack_tmp, -6)
8836 idata = idata + 1
8837 data_tmp = iand(pack_tmp, mask_right(nbits))
8838 full_data(idata) = data_tmp
8839 pack_tmp = ishft(pack_tmp, -nbits)
8840 idata = idata + 1
8841 data_tmp = iand(pack_tmp, mask_right(nbits))
8842 full_data(idata) = data_tmp
8843 pack_tmp = ishft(pack_tmp, -nbits)
8844 idata = idata + 1
8845 data_tmp = iand(pack_tmp, mask_right(nbits))
8846 full_data(idata) = data_tmp
8847 pack_tmp = ishft(pack_tmp, -nbits)
8848 idata = idata + 1
8849 data_tmp = iand(pack_tmp, mask_right(nbits))
8850 full_data(idata) = data_tmp
8851 pack_tmp = ishft(pack_tmp, -nbits)
8852 idata = idata + 1
8853 data_tmp = ishft(pack_tmp, 7)
8854 ipack = ipack + 1
8855 pack_tmp = packed_data(ipack)
8856 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
8857 pack_tmp = ishft(pack_tmp, -7)
8858 idata = idata + 1
8859 data_tmp = iand(pack_tmp, mask_right(nbits))
8860 full_data(idata) = data_tmp
8861 pack_tmp = ishft(pack_tmp, -nbits)
8862 idata = idata + 1
8863 data_tmp = iand(pack_tmp, mask_right(nbits))
8864 full_data(idata) = data_tmp
8865 pack_tmp = ishft(pack_tmp, -nbits)
8866 idata = idata + 1
8867 data_tmp = iand(pack_tmp, mask_right(nbits))
8868 full_data(idata) = data_tmp
8869 pack_tmp = ishft(pack_tmp, -nbits)
8870 idata = idata + 1
8871 data_tmp = iand(pack_tmp, mask_right(nbits))
8872 full_data(idata) = data_tmp
8873 pack_tmp = ishft(pack_tmp, -nbits)
8874 idata = idata + 1
8875 data_tmp = ishft(pack_tmp, 8)
8876 ipack = ipack + 1
8877 pack_tmp = packed_data(ipack)
8878 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
8879 pack_tmp = ishft(pack_tmp, -8)
8880 idata = idata + 1
8881 data_tmp = iand(pack_tmp, mask_right(nbits))
8882 full_data(idata) = data_tmp
8883 pack_tmp = ishft(pack_tmp, -nbits)
8884 idata = idata + 1
8885 data_tmp = iand(pack_tmp, mask_right(nbits))
8886 full_data(idata) = data_tmp
8887 pack_tmp = ishft(pack_tmp, -nbits)
8888 idata = idata + 1
8889 data_tmp = iand(pack_tmp, mask_right(nbits))
8890 full_data(idata) = data_tmp
8891 pack_tmp = ishft(pack_tmp, -nbits)
8892 idata = idata + 1
8893 data_tmp = iand(pack_tmp, mask_right(nbits))
8894 full_data(idata) = data_tmp
8895 pack_tmp = ishft(pack_tmp, -nbits)
8896 idata = idata + 1
8897 data_tmp = ishft(pack_tmp, 9)
8898 ipack = ipack + 1
8899 pack_tmp = packed_data(ipack)
8900 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
8901 pack_tmp = ishft(pack_tmp, -9)
8902 idata = idata + 1
8903 data_tmp = iand(pack_tmp, mask_right(nbits))
8904 full_data(idata) = data_tmp
8905 pack_tmp = ishft(pack_tmp, -nbits)
8906 idata = idata + 1
8907 data_tmp = iand(pack_tmp, mask_right(nbits))
8908 full_data(idata) = data_tmp
8909 pack_tmp = ishft(pack_tmp, -nbits)
8910 idata = idata + 1
8911 data_tmp = iand(pack_tmp, mask_right(nbits))
8912 full_data(idata) = data_tmp
8913 pack_tmp = ishft(pack_tmp, -nbits)
8914 idata = idata + 1
8915 data_tmp = iand(pack_tmp, mask_right(nbits))
8916 full_data(idata) = data_tmp
8917 pack_tmp = ishft(pack_tmp, -nbits)
8918 idata = idata + 1
8919 data_tmp = ishft(pack_tmp, 10)
8920 ipack = ipack + 1
8921 pack_tmp = packed_data(ipack)
8922 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
8923 pack_tmp = ishft(pack_tmp, -10)
8924 idata = idata + 1
8925 data_tmp = iand(pack_tmp, mask_right(nbits))
8926 full_data(idata) = data_tmp
8927 pack_tmp = ishft(pack_tmp, -nbits)
8928 idata = idata + 1
8929 data_tmp = iand(pack_tmp, mask_right(nbits))
8930 full_data(idata) = data_tmp
8931 pack_tmp = ishft(pack_tmp, -nbits)
8932 idata = idata + 1
8933 data_tmp = iand(pack_tmp, mask_right(nbits))
8934 full_data(idata) = data_tmp
8935 pack_tmp = ishft(pack_tmp, -nbits)
8936 idata = idata + 1
8937 data_tmp = iand(pack_tmp, mask_right(nbits))
8938 full_data(idata) = data_tmp
8939 pack_tmp = ishft(pack_tmp, -nbits)
8940 idata = idata + 1
8941 data_tmp = ishft(pack_tmp, 11)
8942 ipack = ipack + 1
8943 pack_tmp = packed_data(ipack)
8944 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
8945 pack_tmp = ishft(pack_tmp, -11)
8946 idata = idata + 1
8947 data_tmp = iand(pack_tmp, mask_right(nbits))
8948 full_data(idata) = data_tmp
8949 pack_tmp = ishft(pack_tmp, -nbits)
8950 idata = idata + 1
8951 data_tmp = iand(pack_tmp, mask_right(nbits))
8952 full_data(idata) = data_tmp
8953 pack_tmp = ishft(pack_tmp, -nbits)
8954 idata = idata + 1
8955 data_tmp = iand(pack_tmp, mask_right(nbits))
8956 full_data(idata) = data_tmp
8957 pack_tmp = ishft(pack_tmp, -nbits)
8958 idata = idata + 1
8959 data_tmp = iand(pack_tmp, mask_right(nbits))
8960 full_data(idata) = data_tmp
8961 pack_tmp = ishft(pack_tmp, -nbits)
8962 idata = idata + 1
8963 data_tmp = ishft(pack_tmp, 12)
8964 ipack = ipack + 1
8965 pack_tmp = packed_data(ipack)
8966 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
8967 pack_tmp = ishft(pack_tmp, -12)
8968 idata = idata + 1
8969 data_tmp = iand(pack_tmp, mask_right(nbits))
8970 full_data(idata) = data_tmp
8971 pack_tmp = ishft(pack_tmp, -nbits)
8972 idata = idata + 1
8973 data_tmp = iand(pack_tmp, mask_right(nbits))
8974 full_data(idata) = data_tmp
8975 pack_tmp = ishft(pack_tmp, -nbits)
8976 idata = idata + 1
8977 data_tmp = iand(pack_tmp, mask_right(nbits))
8978 full_data(idata) = data_tmp
8979 pack_tmp = ishft(pack_tmp, -nbits)
8980 idata = idata + 1
8981 data_tmp = iand(pack_tmp, mask_right(nbits))
8982 full_data(idata) = data_tmp
8983 pack_tmp = ishft(pack_tmp, -nbits)
8984 END DO
8985 IF (ndata_rep < ndata) THEN
8986 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
8987 END IF
8988 END SUBROUTINE bits2ints_13
8989
8990! **************************************************************************************************
8991!> \brief ...
8992!> \param Ndata ...
8993!> \param packed_data ...
8994!> \param full_data ...
8995! **************************************************************************************************
8996 SUBROUTINE ints2bits_14(Ndata, packed_data, full_data)
8997 INTEGER, INTENT(IN) :: Ndata
8998 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
8999 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
9000
9001 INTEGER, PARAMETER :: Nbits = 14
9002
9003 INTEGER :: idata, ipack, kdata, Ndata_rep
9004 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
9005
9006 idata = 0
9007 ipack = 0
9008 ndata_rep = (ndata/64)*64
9009 DO kdata = 1, ndata_rep, 64
9010 pack_tmp = 0
9011 idata = idata + 1
9012 data_tmp = full_data(idata)
9013 data_tmp = ishft(data_tmp, 50)
9014 pack_tmp = ior(pack_tmp, data_tmp)
9015 pack_tmp = ishft(pack_tmp, -14)
9016 idata = idata + 1
9017 data_tmp = full_data(idata)
9018 data_tmp = ishft(data_tmp, 50)
9019 pack_tmp = ior(pack_tmp, data_tmp)
9020 pack_tmp = ishft(pack_tmp, -14)
9021 idata = idata + 1
9022 data_tmp = full_data(idata)
9023 data_tmp = ishft(data_tmp, 50)
9024 pack_tmp = ior(pack_tmp, data_tmp)
9025 pack_tmp = ishft(pack_tmp, -14)
9026 idata = idata + 1
9027 data_tmp = full_data(idata)
9028 data_tmp = ishft(data_tmp, 50)
9029 pack_tmp = ior(pack_tmp, data_tmp)
9030 pack_tmp = ishft(pack_tmp, -8)
9031 idata = idata + 1
9032 data_tmp = full_data(idata)
9033 data_tmp = ishft(data_tmp, 50)
9034 data_tmp = iand(data_tmp, mask_left(8))
9035 pack_tmp = ior(pack_tmp, data_tmp)
9036 ipack = ipack + 1
9037 packed_data(ipack) = pack_tmp
9038 data_tmp = full_data(idata)
9039 pack_tmp = ishft(data_tmp, 58)
9040 pack_tmp = ishft(pack_tmp, -14)
9041 idata = idata + 1
9042 data_tmp = full_data(idata)
9043 data_tmp = ishft(data_tmp, 50)
9044 pack_tmp = ior(pack_tmp, data_tmp)
9045 pack_tmp = ishft(pack_tmp, -14)
9046 idata = idata + 1
9047 data_tmp = full_data(idata)
9048 data_tmp = ishft(data_tmp, 50)
9049 pack_tmp = ior(pack_tmp, data_tmp)
9050 pack_tmp = ishft(pack_tmp, -14)
9051 idata = idata + 1
9052 data_tmp = full_data(idata)
9053 data_tmp = ishft(data_tmp, 50)
9054 pack_tmp = ior(pack_tmp, data_tmp)
9055 pack_tmp = ishft(pack_tmp, -14)
9056 idata = idata + 1
9057 data_tmp = full_data(idata)
9058 data_tmp = ishft(data_tmp, 50)
9059 pack_tmp = ior(pack_tmp, data_tmp)
9060 pack_tmp = ishft(pack_tmp, -2)
9061 idata = idata + 1
9062 data_tmp = full_data(idata)
9063 data_tmp = ishft(data_tmp, 50)
9064 data_tmp = iand(data_tmp, mask_left(2))
9065 pack_tmp = ior(pack_tmp, data_tmp)
9066 ipack = ipack + 1
9067 packed_data(ipack) = pack_tmp
9068 data_tmp = full_data(idata)
9069 pack_tmp = ishft(data_tmp, 52)
9070 pack_tmp = ishft(pack_tmp, -14)
9071 idata = idata + 1
9072 data_tmp = full_data(idata)
9073 data_tmp = ishft(data_tmp, 50)
9074 pack_tmp = ior(pack_tmp, data_tmp)
9075 pack_tmp = ishft(pack_tmp, -14)
9076 idata = idata + 1
9077 data_tmp = full_data(idata)
9078 data_tmp = ishft(data_tmp, 50)
9079 pack_tmp = ior(pack_tmp, data_tmp)
9080 pack_tmp = ishft(pack_tmp, -14)
9081 idata = idata + 1
9082 data_tmp = full_data(idata)
9083 data_tmp = ishft(data_tmp, 50)
9084 pack_tmp = ior(pack_tmp, data_tmp)
9085 pack_tmp = ishft(pack_tmp, -10)
9086 idata = idata + 1
9087 data_tmp = full_data(idata)
9088 data_tmp = ishft(data_tmp, 50)
9089 data_tmp = iand(data_tmp, mask_left(10))
9090 pack_tmp = ior(pack_tmp, data_tmp)
9091 ipack = ipack + 1
9092 packed_data(ipack) = pack_tmp
9093 data_tmp = full_data(idata)
9094 pack_tmp = ishft(data_tmp, 60)
9095 pack_tmp = ishft(pack_tmp, -14)
9096 idata = idata + 1
9097 data_tmp = full_data(idata)
9098 data_tmp = ishft(data_tmp, 50)
9099 pack_tmp = ior(pack_tmp, data_tmp)
9100 pack_tmp = ishft(pack_tmp, -14)
9101 idata = idata + 1
9102 data_tmp = full_data(idata)
9103 data_tmp = ishft(data_tmp, 50)
9104 pack_tmp = ior(pack_tmp, data_tmp)
9105 pack_tmp = ishft(pack_tmp, -14)
9106 idata = idata + 1
9107 data_tmp = full_data(idata)
9108 data_tmp = ishft(data_tmp, 50)
9109 pack_tmp = ior(pack_tmp, data_tmp)
9110 pack_tmp = ishft(pack_tmp, -14)
9111 idata = idata + 1
9112 data_tmp = full_data(idata)
9113 data_tmp = ishft(data_tmp, 50)
9114 pack_tmp = ior(pack_tmp, data_tmp)
9115 pack_tmp = ishft(pack_tmp, -4)
9116 idata = idata + 1
9117 data_tmp = full_data(idata)
9118 data_tmp = ishft(data_tmp, 50)
9119 data_tmp = iand(data_tmp, mask_left(4))
9120 pack_tmp = ior(pack_tmp, data_tmp)
9121 ipack = ipack + 1
9122 packed_data(ipack) = pack_tmp
9123 data_tmp = full_data(idata)
9124 pack_tmp = ishft(data_tmp, 54)
9125 pack_tmp = ishft(pack_tmp, -14)
9126 idata = idata + 1
9127 data_tmp = full_data(idata)
9128 data_tmp = ishft(data_tmp, 50)
9129 pack_tmp = ior(pack_tmp, data_tmp)
9130 pack_tmp = ishft(pack_tmp, -14)
9131 idata = idata + 1
9132 data_tmp = full_data(idata)
9133 data_tmp = ishft(data_tmp, 50)
9134 pack_tmp = ior(pack_tmp, data_tmp)
9135 pack_tmp = ishft(pack_tmp, -14)
9136 idata = idata + 1
9137 data_tmp = full_data(idata)
9138 data_tmp = ishft(data_tmp, 50)
9139 pack_tmp = ior(pack_tmp, data_tmp)
9140 pack_tmp = ishft(pack_tmp, -12)
9141 idata = idata + 1
9142 data_tmp = full_data(idata)
9143 data_tmp = ishft(data_tmp, 50)
9144 data_tmp = iand(data_tmp, mask_left(12))
9145 pack_tmp = ior(pack_tmp, data_tmp)
9146 ipack = ipack + 1
9147 packed_data(ipack) = pack_tmp
9148 data_tmp = full_data(idata)
9149 pack_tmp = ishft(data_tmp, 62)
9150 pack_tmp = ishft(pack_tmp, -14)
9151 idata = idata + 1
9152 data_tmp = full_data(idata)
9153 data_tmp = ishft(data_tmp, 50)
9154 pack_tmp = ior(pack_tmp, data_tmp)
9155 pack_tmp = ishft(pack_tmp, -14)
9156 idata = idata + 1
9157 data_tmp = full_data(idata)
9158 data_tmp = ishft(data_tmp, 50)
9159 pack_tmp = ior(pack_tmp, data_tmp)
9160 pack_tmp = ishft(pack_tmp, -14)
9161 idata = idata + 1
9162 data_tmp = full_data(idata)
9163 data_tmp = ishft(data_tmp, 50)
9164 pack_tmp = ior(pack_tmp, data_tmp)
9165 pack_tmp = ishft(pack_tmp, -14)
9166 idata = idata + 1
9167 data_tmp = full_data(idata)
9168 data_tmp = ishft(data_tmp, 50)
9169 pack_tmp = ior(pack_tmp, data_tmp)
9170 pack_tmp = ishft(pack_tmp, -6)
9171 idata = idata + 1
9172 data_tmp = full_data(idata)
9173 data_tmp = ishft(data_tmp, 50)
9174 data_tmp = iand(data_tmp, mask_left(6))
9175 pack_tmp = ior(pack_tmp, data_tmp)
9176 ipack = ipack + 1
9177 packed_data(ipack) = pack_tmp
9178 data_tmp = full_data(idata)
9179 pack_tmp = ishft(data_tmp, 56)
9180 pack_tmp = ishft(pack_tmp, -14)
9181 idata = idata + 1
9182 data_tmp = full_data(idata)
9183 data_tmp = ishft(data_tmp, 50)
9184 pack_tmp = ior(pack_tmp, data_tmp)
9185 pack_tmp = ishft(pack_tmp, -14)
9186 idata = idata + 1
9187 data_tmp = full_data(idata)
9188 data_tmp = ishft(data_tmp, 50)
9189 pack_tmp = ior(pack_tmp, data_tmp)
9190 pack_tmp = ishft(pack_tmp, -14)
9191 idata = idata + 1
9192 data_tmp = full_data(idata)
9193 data_tmp = ishft(data_tmp, 50)
9194 pack_tmp = ior(pack_tmp, data_tmp)
9195 pack_tmp = ishft(pack_tmp, -14)
9196 idata = idata + 1
9197 data_tmp = full_data(idata)
9198 data_tmp = ishft(data_tmp, 50)
9199 pack_tmp = ior(pack_tmp, data_tmp)
9200 pack_tmp = ishft(pack_tmp, 0)
9201 idata = idata + 1
9202 data_tmp = full_data(idata)
9203 data_tmp = ishft(data_tmp, 50)
9204 data_tmp = iand(data_tmp, mask_left(0))
9205 pack_tmp = ior(pack_tmp, data_tmp)
9206 ipack = ipack + 1
9207 packed_data(ipack) = pack_tmp
9208 data_tmp = full_data(idata)
9209 pack_tmp = ishft(data_tmp, 50)
9210 pack_tmp = ishft(pack_tmp, -14)
9211 idata = idata + 1
9212 data_tmp = full_data(idata)
9213 data_tmp = ishft(data_tmp, 50)
9214 pack_tmp = ior(pack_tmp, data_tmp)
9215 pack_tmp = ishft(pack_tmp, -14)
9216 idata = idata + 1
9217 data_tmp = full_data(idata)
9218 data_tmp = ishft(data_tmp, 50)
9219 pack_tmp = ior(pack_tmp, data_tmp)
9220 pack_tmp = ishft(pack_tmp, -14)
9221 idata = idata + 1
9222 data_tmp = full_data(idata)
9223 data_tmp = ishft(data_tmp, 50)
9224 pack_tmp = ior(pack_tmp, data_tmp)
9225 pack_tmp = ishft(pack_tmp, -8)
9226 idata = idata + 1
9227 data_tmp = full_data(idata)
9228 data_tmp = ishft(data_tmp, 50)
9229 data_tmp = iand(data_tmp, mask_left(8))
9230 pack_tmp = ior(pack_tmp, data_tmp)
9231 ipack = ipack + 1
9232 packed_data(ipack) = pack_tmp
9233 data_tmp = full_data(idata)
9234 pack_tmp = ishft(data_tmp, 58)
9235 pack_tmp = ishft(pack_tmp, -14)
9236 idata = idata + 1
9237 data_tmp = full_data(idata)
9238 data_tmp = ishft(data_tmp, 50)
9239 pack_tmp = ior(pack_tmp, data_tmp)
9240 pack_tmp = ishft(pack_tmp, -14)
9241 idata = idata + 1
9242 data_tmp = full_data(idata)
9243 data_tmp = ishft(data_tmp, 50)
9244 pack_tmp = ior(pack_tmp, data_tmp)
9245 pack_tmp = ishft(pack_tmp, -14)
9246 idata = idata + 1
9247 data_tmp = full_data(idata)
9248 data_tmp = ishft(data_tmp, 50)
9249 pack_tmp = ior(pack_tmp, data_tmp)
9250 pack_tmp = ishft(pack_tmp, -14)
9251 idata = idata + 1
9252 data_tmp = full_data(idata)
9253 data_tmp = ishft(data_tmp, 50)
9254 pack_tmp = ior(pack_tmp, data_tmp)
9255 pack_tmp = ishft(pack_tmp, -2)
9256 idata = idata + 1
9257 data_tmp = full_data(idata)
9258 data_tmp = ishft(data_tmp, 50)
9259 data_tmp = iand(data_tmp, mask_left(2))
9260 pack_tmp = ior(pack_tmp, data_tmp)
9261 ipack = ipack + 1
9262 packed_data(ipack) = pack_tmp
9263 data_tmp = full_data(idata)
9264 pack_tmp = ishft(data_tmp, 52)
9265 pack_tmp = ishft(pack_tmp, -14)
9266 idata = idata + 1
9267 data_tmp = full_data(idata)
9268 data_tmp = ishft(data_tmp, 50)
9269 pack_tmp = ior(pack_tmp, data_tmp)
9270 pack_tmp = ishft(pack_tmp, -14)
9271 idata = idata + 1
9272 data_tmp = full_data(idata)
9273 data_tmp = ishft(data_tmp, 50)
9274 pack_tmp = ior(pack_tmp, data_tmp)
9275 pack_tmp = ishft(pack_tmp, -14)
9276 idata = idata + 1
9277 data_tmp = full_data(idata)
9278 data_tmp = ishft(data_tmp, 50)
9279 pack_tmp = ior(pack_tmp, data_tmp)
9280 pack_tmp = ishft(pack_tmp, -10)
9281 idata = idata + 1
9282 data_tmp = full_data(idata)
9283 data_tmp = ishft(data_tmp, 50)
9284 data_tmp = iand(data_tmp, mask_left(10))
9285 pack_tmp = ior(pack_tmp, data_tmp)
9286 ipack = ipack + 1
9287 packed_data(ipack) = pack_tmp
9288 data_tmp = full_data(idata)
9289 pack_tmp = ishft(data_tmp, 60)
9290 pack_tmp = ishft(pack_tmp, -14)
9291 idata = idata + 1
9292 data_tmp = full_data(idata)
9293 data_tmp = ishft(data_tmp, 50)
9294 pack_tmp = ior(pack_tmp, data_tmp)
9295 pack_tmp = ishft(pack_tmp, -14)
9296 idata = idata + 1
9297 data_tmp = full_data(idata)
9298 data_tmp = ishft(data_tmp, 50)
9299 pack_tmp = ior(pack_tmp, data_tmp)
9300 pack_tmp = ishft(pack_tmp, -14)
9301 idata = idata + 1
9302 data_tmp = full_data(idata)
9303 data_tmp = ishft(data_tmp, 50)
9304 pack_tmp = ior(pack_tmp, data_tmp)
9305 pack_tmp = ishft(pack_tmp, -14)
9306 idata = idata + 1
9307 data_tmp = full_data(idata)
9308 data_tmp = ishft(data_tmp, 50)
9309 pack_tmp = ior(pack_tmp, data_tmp)
9310 pack_tmp = ishft(pack_tmp, -4)
9311 idata = idata + 1
9312 data_tmp = full_data(idata)
9313 data_tmp = ishft(data_tmp, 50)
9314 data_tmp = iand(data_tmp, mask_left(4))
9315 pack_tmp = ior(pack_tmp, data_tmp)
9316 ipack = ipack + 1
9317 packed_data(ipack) = pack_tmp
9318 data_tmp = full_data(idata)
9319 pack_tmp = ishft(data_tmp, 54)
9320 pack_tmp = ishft(pack_tmp, -14)
9321 idata = idata + 1
9322 data_tmp = full_data(idata)
9323 data_tmp = ishft(data_tmp, 50)
9324 pack_tmp = ior(pack_tmp, data_tmp)
9325 pack_tmp = ishft(pack_tmp, -14)
9326 idata = idata + 1
9327 data_tmp = full_data(idata)
9328 data_tmp = ishft(data_tmp, 50)
9329 pack_tmp = ior(pack_tmp, data_tmp)
9330 pack_tmp = ishft(pack_tmp, -14)
9331 idata = idata + 1
9332 data_tmp = full_data(idata)
9333 data_tmp = ishft(data_tmp, 50)
9334 pack_tmp = ior(pack_tmp, data_tmp)
9335 pack_tmp = ishft(pack_tmp, -12)
9336 idata = idata + 1
9337 data_tmp = full_data(idata)
9338 data_tmp = ishft(data_tmp, 50)
9339 data_tmp = iand(data_tmp, mask_left(12))
9340 pack_tmp = ior(pack_tmp, data_tmp)
9341 ipack = ipack + 1
9342 packed_data(ipack) = pack_tmp
9343 data_tmp = full_data(idata)
9344 pack_tmp = ishft(data_tmp, 62)
9345 pack_tmp = ishft(pack_tmp, -14)
9346 idata = idata + 1
9347 data_tmp = full_data(idata)
9348 data_tmp = ishft(data_tmp, 50)
9349 pack_tmp = ior(pack_tmp, data_tmp)
9350 pack_tmp = ishft(pack_tmp, -14)
9351 idata = idata + 1
9352 data_tmp = full_data(idata)
9353 data_tmp = ishft(data_tmp, 50)
9354 pack_tmp = ior(pack_tmp, data_tmp)
9355 pack_tmp = ishft(pack_tmp, -14)
9356 idata = idata + 1
9357 data_tmp = full_data(idata)
9358 data_tmp = ishft(data_tmp, 50)
9359 pack_tmp = ior(pack_tmp, data_tmp)
9360 pack_tmp = ishft(pack_tmp, -14)
9361 idata = idata + 1
9362 data_tmp = full_data(idata)
9363 data_tmp = ishft(data_tmp, 50)
9364 pack_tmp = ior(pack_tmp, data_tmp)
9365 pack_tmp = ishft(pack_tmp, -6)
9366 idata = idata + 1
9367 data_tmp = full_data(idata)
9368 data_tmp = ishft(data_tmp, 50)
9369 data_tmp = iand(data_tmp, mask_left(6))
9370 pack_tmp = ior(pack_tmp, data_tmp)
9371 ipack = ipack + 1
9372 packed_data(ipack) = pack_tmp
9373 data_tmp = full_data(idata)
9374 pack_tmp = ishft(data_tmp, 56)
9375 pack_tmp = ishft(pack_tmp, -14)
9376 idata = idata + 1
9377 data_tmp = full_data(idata)
9378 data_tmp = ishft(data_tmp, 50)
9379 pack_tmp = ior(pack_tmp, data_tmp)
9380 pack_tmp = ishft(pack_tmp, -14)
9381 idata = idata + 1
9382 data_tmp = full_data(idata)
9383 data_tmp = ishft(data_tmp, 50)
9384 pack_tmp = ior(pack_tmp, data_tmp)
9385 pack_tmp = ishft(pack_tmp, -14)
9386 idata = idata + 1
9387 data_tmp = full_data(idata)
9388 data_tmp = ishft(data_tmp, 50)
9389 pack_tmp = ior(pack_tmp, data_tmp)
9390 pack_tmp = ishft(pack_tmp, -14)
9391 idata = idata + 1
9392 data_tmp = full_data(idata)
9393 data_tmp = ishft(data_tmp, 50)
9394 pack_tmp = ior(pack_tmp, data_tmp)
9395 pack_tmp = ishft(pack_tmp, 0)
9396 pack_tmp = ishft(pack_tmp, 0)
9397 ipack = ipack + 1
9398 packed_data(ipack) = pack_tmp
9399 END DO
9400 IF (ndata_rep < ndata) THEN
9401 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
9402 END IF
9403 END SUBROUTINE ints2bits_14
9404
9405! **************************************************************************************************
9406!> \brief ...
9407!> \param Ndata ...
9408!> \param packed_data ...
9409!> \param full_data ...
9410! **************************************************************************************************
9411 SUBROUTINE bits2ints_14(Ndata, packed_data, full_data)
9412 INTEGER, INTENT(IN) :: Ndata
9413 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
9414 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
9415
9416 INTEGER, PARAMETER :: Nbits = 14
9417
9418 INTEGER :: idata, ipack, kdata, Ndata_rep
9419 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
9420
9421 ipack = 0
9422 idata = 0
9423 pack_tmp = 0
9424 ndata_rep = (ndata/64)*64
9425 DO kdata = 1, ndata_rep, 64
9426 idata = idata + 1
9427 data_tmp = ishft(pack_tmp, 14)
9428 ipack = ipack + 1
9429 pack_tmp = packed_data(ipack)
9430 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
9431 pack_tmp = ishft(pack_tmp, -14)
9432 idata = idata + 1
9433 data_tmp = iand(pack_tmp, mask_right(nbits))
9434 full_data(idata) = data_tmp
9435 pack_tmp = ishft(pack_tmp, -nbits)
9436 idata = idata + 1
9437 data_tmp = iand(pack_tmp, mask_right(nbits))
9438 full_data(idata) = data_tmp
9439 pack_tmp = ishft(pack_tmp, -nbits)
9440 idata = idata + 1
9441 data_tmp = iand(pack_tmp, mask_right(nbits))
9442 full_data(idata) = data_tmp
9443 pack_tmp = ishft(pack_tmp, -nbits)
9444 idata = idata + 1
9445 data_tmp = ishft(pack_tmp, 6)
9446 ipack = ipack + 1
9447 pack_tmp = packed_data(ipack)
9448 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
9449 pack_tmp = ishft(pack_tmp, -6)
9450 idata = idata + 1
9451 data_tmp = iand(pack_tmp, mask_right(nbits))
9452 full_data(idata) = data_tmp
9453 pack_tmp = ishft(pack_tmp, -nbits)
9454 idata = idata + 1
9455 data_tmp = iand(pack_tmp, mask_right(nbits))
9456 full_data(idata) = data_tmp
9457 pack_tmp = ishft(pack_tmp, -nbits)
9458 idata = idata + 1
9459 data_tmp = iand(pack_tmp, mask_right(nbits))
9460 full_data(idata) = data_tmp
9461 pack_tmp = ishft(pack_tmp, -nbits)
9462 idata = idata + 1
9463 data_tmp = iand(pack_tmp, mask_right(nbits))
9464 full_data(idata) = data_tmp
9465 pack_tmp = ishft(pack_tmp, -nbits)
9466 idata = idata + 1
9467 data_tmp = ishft(pack_tmp, 12)
9468 ipack = ipack + 1
9469 pack_tmp = packed_data(ipack)
9470 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
9471 pack_tmp = ishft(pack_tmp, -12)
9472 idata = idata + 1
9473 data_tmp = iand(pack_tmp, mask_right(nbits))
9474 full_data(idata) = data_tmp
9475 pack_tmp = ishft(pack_tmp, -nbits)
9476 idata = idata + 1
9477 data_tmp = iand(pack_tmp, mask_right(nbits))
9478 full_data(idata) = data_tmp
9479 pack_tmp = ishft(pack_tmp, -nbits)
9480 idata = idata + 1
9481 data_tmp = iand(pack_tmp, mask_right(nbits))
9482 full_data(idata) = data_tmp
9483 pack_tmp = ishft(pack_tmp, -nbits)
9484 idata = idata + 1
9485 data_tmp = ishft(pack_tmp, 4)
9486 ipack = ipack + 1
9487 pack_tmp = packed_data(ipack)
9488 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
9489 pack_tmp = ishft(pack_tmp, -4)
9490 idata = idata + 1
9491 data_tmp = iand(pack_tmp, mask_right(nbits))
9492 full_data(idata) = data_tmp
9493 pack_tmp = ishft(pack_tmp, -nbits)
9494 idata = idata + 1
9495 data_tmp = iand(pack_tmp, mask_right(nbits))
9496 full_data(idata) = data_tmp
9497 pack_tmp = ishft(pack_tmp, -nbits)
9498 idata = idata + 1
9499 data_tmp = iand(pack_tmp, mask_right(nbits))
9500 full_data(idata) = data_tmp
9501 pack_tmp = ishft(pack_tmp, -nbits)
9502 idata = idata + 1
9503 data_tmp = iand(pack_tmp, mask_right(nbits))
9504 full_data(idata) = data_tmp
9505 pack_tmp = ishft(pack_tmp, -nbits)
9506 idata = idata + 1
9507 data_tmp = ishft(pack_tmp, 10)
9508 ipack = ipack + 1
9509 pack_tmp = packed_data(ipack)
9510 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
9511 pack_tmp = ishft(pack_tmp, -10)
9512 idata = idata + 1
9513 data_tmp = iand(pack_tmp, mask_right(nbits))
9514 full_data(idata) = data_tmp
9515 pack_tmp = ishft(pack_tmp, -nbits)
9516 idata = idata + 1
9517 data_tmp = iand(pack_tmp, mask_right(nbits))
9518 full_data(idata) = data_tmp
9519 pack_tmp = ishft(pack_tmp, -nbits)
9520 idata = idata + 1
9521 data_tmp = iand(pack_tmp, mask_right(nbits))
9522 full_data(idata) = data_tmp
9523 pack_tmp = ishft(pack_tmp, -nbits)
9524 idata = idata + 1
9525 data_tmp = ishft(pack_tmp, 2)
9526 ipack = ipack + 1
9527 pack_tmp = packed_data(ipack)
9528 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
9529 pack_tmp = ishft(pack_tmp, -2)
9530 idata = idata + 1
9531 data_tmp = iand(pack_tmp, mask_right(nbits))
9532 full_data(idata) = data_tmp
9533 pack_tmp = ishft(pack_tmp, -nbits)
9534 idata = idata + 1
9535 data_tmp = iand(pack_tmp, mask_right(nbits))
9536 full_data(idata) = data_tmp
9537 pack_tmp = ishft(pack_tmp, -nbits)
9538 idata = idata + 1
9539 data_tmp = iand(pack_tmp, mask_right(nbits))
9540 full_data(idata) = data_tmp
9541 pack_tmp = ishft(pack_tmp, -nbits)
9542 idata = idata + 1
9543 data_tmp = iand(pack_tmp, mask_right(nbits))
9544 full_data(idata) = data_tmp
9545 pack_tmp = ishft(pack_tmp, -nbits)
9546 idata = idata + 1
9547 data_tmp = ishft(pack_tmp, 8)
9548 ipack = ipack + 1
9549 pack_tmp = packed_data(ipack)
9550 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
9551 pack_tmp = ishft(pack_tmp, -8)
9552 idata = idata + 1
9553 data_tmp = iand(pack_tmp, mask_right(nbits))
9554 full_data(idata) = data_tmp
9555 pack_tmp = ishft(pack_tmp, -nbits)
9556 idata = idata + 1
9557 data_tmp = iand(pack_tmp, mask_right(nbits))
9558 full_data(idata) = data_tmp
9559 pack_tmp = ishft(pack_tmp, -nbits)
9560 idata = idata + 1
9561 data_tmp = iand(pack_tmp, mask_right(nbits))
9562 full_data(idata) = data_tmp
9563 pack_tmp = ishft(pack_tmp, -nbits)
9564 idata = idata + 1
9565 data_tmp = iand(pack_tmp, mask_right(nbits))
9566 full_data(idata) = data_tmp
9567 pack_tmp = ishft(pack_tmp, -nbits)
9568 idata = idata + 1
9569 data_tmp = ishft(pack_tmp, 14)
9570 ipack = ipack + 1
9571 pack_tmp = packed_data(ipack)
9572 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
9573 pack_tmp = ishft(pack_tmp, -14)
9574 idata = idata + 1
9575 data_tmp = iand(pack_tmp, mask_right(nbits))
9576 full_data(idata) = data_tmp
9577 pack_tmp = ishft(pack_tmp, -nbits)
9578 idata = idata + 1
9579 data_tmp = iand(pack_tmp, mask_right(nbits))
9580 full_data(idata) = data_tmp
9581 pack_tmp = ishft(pack_tmp, -nbits)
9582 idata = idata + 1
9583 data_tmp = iand(pack_tmp, mask_right(nbits))
9584 full_data(idata) = data_tmp
9585 pack_tmp = ishft(pack_tmp, -nbits)
9586 idata = idata + 1
9587 data_tmp = ishft(pack_tmp, 6)
9588 ipack = ipack + 1
9589 pack_tmp = packed_data(ipack)
9590 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
9591 pack_tmp = ishft(pack_tmp, -6)
9592 idata = idata + 1
9593 data_tmp = iand(pack_tmp, mask_right(nbits))
9594 full_data(idata) = data_tmp
9595 pack_tmp = ishft(pack_tmp, -nbits)
9596 idata = idata + 1
9597 data_tmp = iand(pack_tmp, mask_right(nbits))
9598 full_data(idata) = data_tmp
9599 pack_tmp = ishft(pack_tmp, -nbits)
9600 idata = idata + 1
9601 data_tmp = iand(pack_tmp, mask_right(nbits))
9602 full_data(idata) = data_tmp
9603 pack_tmp = ishft(pack_tmp, -nbits)
9604 idata = idata + 1
9605 data_tmp = iand(pack_tmp, mask_right(nbits))
9606 full_data(idata) = data_tmp
9607 pack_tmp = ishft(pack_tmp, -nbits)
9608 idata = idata + 1
9609 data_tmp = ishft(pack_tmp, 12)
9610 ipack = ipack + 1
9611 pack_tmp = packed_data(ipack)
9612 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
9613 pack_tmp = ishft(pack_tmp, -12)
9614 idata = idata + 1
9615 data_tmp = iand(pack_tmp, mask_right(nbits))
9616 full_data(idata) = data_tmp
9617 pack_tmp = ishft(pack_tmp, -nbits)
9618 idata = idata + 1
9619 data_tmp = iand(pack_tmp, mask_right(nbits))
9620 full_data(idata) = data_tmp
9621 pack_tmp = ishft(pack_tmp, -nbits)
9622 idata = idata + 1
9623 data_tmp = iand(pack_tmp, mask_right(nbits))
9624 full_data(idata) = data_tmp
9625 pack_tmp = ishft(pack_tmp, -nbits)
9626 idata = idata + 1
9627 data_tmp = ishft(pack_tmp, 4)
9628 ipack = ipack + 1
9629 pack_tmp = packed_data(ipack)
9630 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
9631 pack_tmp = ishft(pack_tmp, -4)
9632 idata = idata + 1
9633 data_tmp = iand(pack_tmp, mask_right(nbits))
9634 full_data(idata) = data_tmp
9635 pack_tmp = ishft(pack_tmp, -nbits)
9636 idata = idata + 1
9637 data_tmp = iand(pack_tmp, mask_right(nbits))
9638 full_data(idata) = data_tmp
9639 pack_tmp = ishft(pack_tmp, -nbits)
9640 idata = idata + 1
9641 data_tmp = iand(pack_tmp, mask_right(nbits))
9642 full_data(idata) = data_tmp
9643 pack_tmp = ishft(pack_tmp, -nbits)
9644 idata = idata + 1
9645 data_tmp = iand(pack_tmp, mask_right(nbits))
9646 full_data(idata) = data_tmp
9647 pack_tmp = ishft(pack_tmp, -nbits)
9648 idata = idata + 1
9649 data_tmp = ishft(pack_tmp, 10)
9650 ipack = ipack + 1
9651 pack_tmp = packed_data(ipack)
9652 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
9653 pack_tmp = ishft(pack_tmp, -10)
9654 idata = idata + 1
9655 data_tmp = iand(pack_tmp, mask_right(nbits))
9656 full_data(idata) = data_tmp
9657 pack_tmp = ishft(pack_tmp, -nbits)
9658 idata = idata + 1
9659 data_tmp = iand(pack_tmp, mask_right(nbits))
9660 full_data(idata) = data_tmp
9661 pack_tmp = ishft(pack_tmp, -nbits)
9662 idata = idata + 1
9663 data_tmp = iand(pack_tmp, mask_right(nbits))
9664 full_data(idata) = data_tmp
9665 pack_tmp = ishft(pack_tmp, -nbits)
9666 idata = idata + 1
9667 data_tmp = ishft(pack_tmp, 2)
9668 ipack = ipack + 1
9669 pack_tmp = packed_data(ipack)
9670 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
9671 pack_tmp = ishft(pack_tmp, -2)
9672 idata = idata + 1
9673 data_tmp = iand(pack_tmp, mask_right(nbits))
9674 full_data(idata) = data_tmp
9675 pack_tmp = ishft(pack_tmp, -nbits)
9676 idata = idata + 1
9677 data_tmp = iand(pack_tmp, mask_right(nbits))
9678 full_data(idata) = data_tmp
9679 pack_tmp = ishft(pack_tmp, -nbits)
9680 idata = idata + 1
9681 data_tmp = iand(pack_tmp, mask_right(nbits))
9682 full_data(idata) = data_tmp
9683 pack_tmp = ishft(pack_tmp, -nbits)
9684 idata = idata + 1
9685 data_tmp = iand(pack_tmp, mask_right(nbits))
9686 full_data(idata) = data_tmp
9687 pack_tmp = ishft(pack_tmp, -nbits)
9688 idata = idata + 1
9689 data_tmp = ishft(pack_tmp, 8)
9690 ipack = ipack + 1
9691 pack_tmp = packed_data(ipack)
9692 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
9693 pack_tmp = ishft(pack_tmp, -8)
9694 idata = idata + 1
9695 data_tmp = iand(pack_tmp, mask_right(nbits))
9696 full_data(idata) = data_tmp
9697 pack_tmp = ishft(pack_tmp, -nbits)
9698 idata = idata + 1
9699 data_tmp = iand(pack_tmp, mask_right(nbits))
9700 full_data(idata) = data_tmp
9701 pack_tmp = ishft(pack_tmp, -nbits)
9702 idata = idata + 1
9703 data_tmp = iand(pack_tmp, mask_right(nbits))
9704 full_data(idata) = data_tmp
9705 pack_tmp = ishft(pack_tmp, -nbits)
9706 idata = idata + 1
9707 data_tmp = iand(pack_tmp, mask_right(nbits))
9708 full_data(idata) = data_tmp
9709 pack_tmp = ishft(pack_tmp, -nbits)
9710 END DO
9711 IF (ndata_rep < ndata) THEN
9712 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
9713 END IF
9714 END SUBROUTINE bits2ints_14
9715
9716! **************************************************************************************************
9717!> \brief ...
9718!> \param Ndata ...
9719!> \param packed_data ...
9720!> \param full_data ...
9721! **************************************************************************************************
9722 SUBROUTINE ints2bits_15(Ndata, packed_data, full_data)
9723 INTEGER, INTENT(IN) :: Ndata
9724 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
9725 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
9726
9727 INTEGER, PARAMETER :: Nbits = 15
9728
9729 INTEGER :: idata, ipack, kdata, Ndata_rep
9730 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
9731
9732 idata = 0
9733 ipack = 0
9734 ndata_rep = (ndata/64)*64
9735 DO kdata = 1, ndata_rep, 64
9736 pack_tmp = 0
9737 idata = idata + 1
9738 data_tmp = full_data(idata)
9739 data_tmp = ishft(data_tmp, 49)
9740 pack_tmp = ior(pack_tmp, data_tmp)
9741 pack_tmp = ishft(pack_tmp, -15)
9742 idata = idata + 1
9743 data_tmp = full_data(idata)
9744 data_tmp = ishft(data_tmp, 49)
9745 pack_tmp = ior(pack_tmp, data_tmp)
9746 pack_tmp = ishft(pack_tmp, -15)
9747 idata = idata + 1
9748 data_tmp = full_data(idata)
9749 data_tmp = ishft(data_tmp, 49)
9750 pack_tmp = ior(pack_tmp, data_tmp)
9751 pack_tmp = ishft(pack_tmp, -15)
9752 idata = idata + 1
9753 data_tmp = full_data(idata)
9754 data_tmp = ishft(data_tmp, 49)
9755 pack_tmp = ior(pack_tmp, data_tmp)
9756 pack_tmp = ishft(pack_tmp, -4)
9757 idata = idata + 1
9758 data_tmp = full_data(idata)
9759 data_tmp = ishft(data_tmp, 49)
9760 data_tmp = iand(data_tmp, mask_left(4))
9761 pack_tmp = ior(pack_tmp, data_tmp)
9762 ipack = ipack + 1
9763 packed_data(ipack) = pack_tmp
9764 data_tmp = full_data(idata)
9765 pack_tmp = ishft(data_tmp, 53)
9766 pack_tmp = ishft(pack_tmp, -15)
9767 idata = idata + 1
9768 data_tmp = full_data(idata)
9769 data_tmp = ishft(data_tmp, 49)
9770 pack_tmp = ior(pack_tmp, data_tmp)
9771 pack_tmp = ishft(pack_tmp, -15)
9772 idata = idata + 1
9773 data_tmp = full_data(idata)
9774 data_tmp = ishft(data_tmp, 49)
9775 pack_tmp = ior(pack_tmp, data_tmp)
9776 pack_tmp = ishft(pack_tmp, -15)
9777 idata = idata + 1
9778 data_tmp = full_data(idata)
9779 data_tmp = ishft(data_tmp, 49)
9780 pack_tmp = ior(pack_tmp, data_tmp)
9781 pack_tmp = ishft(pack_tmp, -8)
9782 idata = idata + 1
9783 data_tmp = full_data(idata)
9784 data_tmp = ishft(data_tmp, 49)
9785 data_tmp = iand(data_tmp, mask_left(8))
9786 pack_tmp = ior(pack_tmp, data_tmp)
9787 ipack = ipack + 1
9788 packed_data(ipack) = pack_tmp
9789 data_tmp = full_data(idata)
9790 pack_tmp = ishft(data_tmp, 57)
9791 pack_tmp = ishft(pack_tmp, -15)
9792 idata = idata + 1
9793 data_tmp = full_data(idata)
9794 data_tmp = ishft(data_tmp, 49)
9795 pack_tmp = ior(pack_tmp, data_tmp)
9796 pack_tmp = ishft(pack_tmp, -15)
9797 idata = idata + 1
9798 data_tmp = full_data(idata)
9799 data_tmp = ishft(data_tmp, 49)
9800 pack_tmp = ior(pack_tmp, data_tmp)
9801 pack_tmp = ishft(pack_tmp, -15)
9802 idata = idata + 1
9803 data_tmp = full_data(idata)
9804 data_tmp = ishft(data_tmp, 49)
9805 pack_tmp = ior(pack_tmp, data_tmp)
9806 pack_tmp = ishft(pack_tmp, -12)
9807 idata = idata + 1
9808 data_tmp = full_data(idata)
9809 data_tmp = ishft(data_tmp, 49)
9810 data_tmp = iand(data_tmp, mask_left(12))
9811 pack_tmp = ior(pack_tmp, data_tmp)
9812 ipack = ipack + 1
9813 packed_data(ipack) = pack_tmp
9814 data_tmp = full_data(idata)
9815 pack_tmp = ishft(data_tmp, 61)
9816 pack_tmp = ishft(pack_tmp, -15)
9817 idata = idata + 1
9818 data_tmp = full_data(idata)
9819 data_tmp = ishft(data_tmp, 49)
9820 pack_tmp = ior(pack_tmp, data_tmp)
9821 pack_tmp = ishft(pack_tmp, -15)
9822 idata = idata + 1
9823 data_tmp = full_data(idata)
9824 data_tmp = ishft(data_tmp, 49)
9825 pack_tmp = ior(pack_tmp, data_tmp)
9826 pack_tmp = ishft(pack_tmp, -15)
9827 idata = idata + 1
9828 data_tmp = full_data(idata)
9829 data_tmp = ishft(data_tmp, 49)
9830 pack_tmp = ior(pack_tmp, data_tmp)
9831 pack_tmp = ishft(pack_tmp, -15)
9832 idata = idata + 1
9833 data_tmp = full_data(idata)
9834 data_tmp = ishft(data_tmp, 49)
9835 pack_tmp = ior(pack_tmp, data_tmp)
9836 pack_tmp = ishft(pack_tmp, -1)
9837 idata = idata + 1
9838 data_tmp = full_data(idata)
9839 data_tmp = ishft(data_tmp, 49)
9840 data_tmp = iand(data_tmp, mask_left(1))
9841 pack_tmp = ior(pack_tmp, data_tmp)
9842 ipack = ipack + 1
9843 packed_data(ipack) = pack_tmp
9844 data_tmp = full_data(idata)
9845 pack_tmp = ishft(data_tmp, 50)
9846 pack_tmp = ishft(pack_tmp, -15)
9847 idata = idata + 1
9848 data_tmp = full_data(idata)
9849 data_tmp = ishft(data_tmp, 49)
9850 pack_tmp = ior(pack_tmp, data_tmp)
9851 pack_tmp = ishft(pack_tmp, -15)
9852 idata = idata + 1
9853 data_tmp = full_data(idata)
9854 data_tmp = ishft(data_tmp, 49)
9855 pack_tmp = ior(pack_tmp, data_tmp)
9856 pack_tmp = ishft(pack_tmp, -15)
9857 idata = idata + 1
9858 data_tmp = full_data(idata)
9859 data_tmp = ishft(data_tmp, 49)
9860 pack_tmp = ior(pack_tmp, data_tmp)
9861 pack_tmp = ishft(pack_tmp, -5)
9862 idata = idata + 1
9863 data_tmp = full_data(idata)
9864 data_tmp = ishft(data_tmp, 49)
9865 data_tmp = iand(data_tmp, mask_left(5))
9866 pack_tmp = ior(pack_tmp, data_tmp)
9867 ipack = ipack + 1
9868 packed_data(ipack) = pack_tmp
9869 data_tmp = full_data(idata)
9870 pack_tmp = ishft(data_tmp, 54)
9871 pack_tmp = ishft(pack_tmp, -15)
9872 idata = idata + 1
9873 data_tmp = full_data(idata)
9874 data_tmp = ishft(data_tmp, 49)
9875 pack_tmp = ior(pack_tmp, data_tmp)
9876 pack_tmp = ishft(pack_tmp, -15)
9877 idata = idata + 1
9878 data_tmp = full_data(idata)
9879 data_tmp = ishft(data_tmp, 49)
9880 pack_tmp = ior(pack_tmp, data_tmp)
9881 pack_tmp = ishft(pack_tmp, -15)
9882 idata = idata + 1
9883 data_tmp = full_data(idata)
9884 data_tmp = ishft(data_tmp, 49)
9885 pack_tmp = ior(pack_tmp, data_tmp)
9886 pack_tmp = ishft(pack_tmp, -9)
9887 idata = idata + 1
9888 data_tmp = full_data(idata)
9889 data_tmp = ishft(data_tmp, 49)
9890 data_tmp = iand(data_tmp, mask_left(9))
9891 pack_tmp = ior(pack_tmp, data_tmp)
9892 ipack = ipack + 1
9893 packed_data(ipack) = pack_tmp
9894 data_tmp = full_data(idata)
9895 pack_tmp = ishft(data_tmp, 58)
9896 pack_tmp = ishft(pack_tmp, -15)
9897 idata = idata + 1
9898 data_tmp = full_data(idata)
9899 data_tmp = ishft(data_tmp, 49)
9900 pack_tmp = ior(pack_tmp, data_tmp)
9901 pack_tmp = ishft(pack_tmp, -15)
9902 idata = idata + 1
9903 data_tmp = full_data(idata)
9904 data_tmp = ishft(data_tmp, 49)
9905 pack_tmp = ior(pack_tmp, data_tmp)
9906 pack_tmp = ishft(pack_tmp, -15)
9907 idata = idata + 1
9908 data_tmp = full_data(idata)
9909 data_tmp = ishft(data_tmp, 49)
9910 pack_tmp = ior(pack_tmp, data_tmp)
9911 pack_tmp = ishft(pack_tmp, -13)
9912 idata = idata + 1
9913 data_tmp = full_data(idata)
9914 data_tmp = ishft(data_tmp, 49)
9915 data_tmp = iand(data_tmp, mask_left(13))
9916 pack_tmp = ior(pack_tmp, data_tmp)
9917 ipack = ipack + 1
9918 packed_data(ipack) = pack_tmp
9919 data_tmp = full_data(idata)
9920 pack_tmp = ishft(data_tmp, 62)
9921 pack_tmp = ishft(pack_tmp, -15)
9922 idata = idata + 1
9923 data_tmp = full_data(idata)
9924 data_tmp = ishft(data_tmp, 49)
9925 pack_tmp = ior(pack_tmp, data_tmp)
9926 pack_tmp = ishft(pack_tmp, -15)
9927 idata = idata + 1
9928 data_tmp = full_data(idata)
9929 data_tmp = ishft(data_tmp, 49)
9930 pack_tmp = ior(pack_tmp, data_tmp)
9931 pack_tmp = ishft(pack_tmp, -15)
9932 idata = idata + 1
9933 data_tmp = full_data(idata)
9934 data_tmp = ishft(data_tmp, 49)
9935 pack_tmp = ior(pack_tmp, data_tmp)
9936 pack_tmp = ishft(pack_tmp, -15)
9937 idata = idata + 1
9938 data_tmp = full_data(idata)
9939 data_tmp = ishft(data_tmp, 49)
9940 pack_tmp = ior(pack_tmp, data_tmp)
9941 pack_tmp = ishft(pack_tmp, -2)
9942 idata = idata + 1
9943 data_tmp = full_data(idata)
9944 data_tmp = ishft(data_tmp, 49)
9945 data_tmp = iand(data_tmp, mask_left(2))
9946 pack_tmp = ior(pack_tmp, data_tmp)
9947 ipack = ipack + 1
9948 packed_data(ipack) = pack_tmp
9949 data_tmp = full_data(idata)
9950 pack_tmp = ishft(data_tmp, 51)
9951 pack_tmp = ishft(pack_tmp, -15)
9952 idata = idata + 1
9953 data_tmp = full_data(idata)
9954 data_tmp = ishft(data_tmp, 49)
9955 pack_tmp = ior(pack_tmp, data_tmp)
9956 pack_tmp = ishft(pack_tmp, -15)
9957 idata = idata + 1
9958 data_tmp = full_data(idata)
9959 data_tmp = ishft(data_tmp, 49)
9960 pack_tmp = ior(pack_tmp, data_tmp)
9961 pack_tmp = ishft(pack_tmp, -15)
9962 idata = idata + 1
9963 data_tmp = full_data(idata)
9964 data_tmp = ishft(data_tmp, 49)
9965 pack_tmp = ior(pack_tmp, data_tmp)
9966 pack_tmp = ishft(pack_tmp, -6)
9967 idata = idata + 1
9968 data_tmp = full_data(idata)
9969 data_tmp = ishft(data_tmp, 49)
9970 data_tmp = iand(data_tmp, mask_left(6))
9971 pack_tmp = ior(pack_tmp, data_tmp)
9972 ipack = ipack + 1
9973 packed_data(ipack) = pack_tmp
9974 data_tmp = full_data(idata)
9975 pack_tmp = ishft(data_tmp, 55)
9976 pack_tmp = ishft(pack_tmp, -15)
9977 idata = idata + 1
9978 data_tmp = full_data(idata)
9979 data_tmp = ishft(data_tmp, 49)
9980 pack_tmp = ior(pack_tmp, data_tmp)
9981 pack_tmp = ishft(pack_tmp, -15)
9982 idata = idata + 1
9983 data_tmp = full_data(idata)
9984 data_tmp = ishft(data_tmp, 49)
9985 pack_tmp = ior(pack_tmp, data_tmp)
9986 pack_tmp = ishft(pack_tmp, -15)
9987 idata = idata + 1
9988 data_tmp = full_data(idata)
9989 data_tmp = ishft(data_tmp, 49)
9990 pack_tmp = ior(pack_tmp, data_tmp)
9991 pack_tmp = ishft(pack_tmp, -10)
9992 idata = idata + 1
9993 data_tmp = full_data(idata)
9994 data_tmp = ishft(data_tmp, 49)
9995 data_tmp = iand(data_tmp, mask_left(10))
9996 pack_tmp = ior(pack_tmp, data_tmp)
9997 ipack = ipack + 1
9998 packed_data(ipack) = pack_tmp
9999 data_tmp = full_data(idata)
10000 pack_tmp = ishft(data_tmp, 59)
10001 pack_tmp = ishft(pack_tmp, -15)
10002 idata = idata + 1
10003 data_tmp = full_data(idata)
10004 data_tmp = ishft(data_tmp, 49)
10005 pack_tmp = ior(pack_tmp, data_tmp)
10006 pack_tmp = ishft(pack_tmp, -15)
10007 idata = idata + 1
10008 data_tmp = full_data(idata)
10009 data_tmp = ishft(data_tmp, 49)
10010 pack_tmp = ior(pack_tmp, data_tmp)
10011 pack_tmp = ishft(pack_tmp, -15)
10012 idata = idata + 1
10013 data_tmp = full_data(idata)
10014 data_tmp = ishft(data_tmp, 49)
10015 pack_tmp = ior(pack_tmp, data_tmp)
10016 pack_tmp = ishft(pack_tmp, -14)
10017 idata = idata + 1
10018 data_tmp = full_data(idata)
10019 data_tmp = ishft(data_tmp, 49)
10020 data_tmp = iand(data_tmp, mask_left(14))
10021 pack_tmp = ior(pack_tmp, data_tmp)
10022 ipack = ipack + 1
10023 packed_data(ipack) = pack_tmp
10024 data_tmp = full_data(idata)
10025 pack_tmp = ishft(data_tmp, 63)
10026 pack_tmp = ishft(pack_tmp, -15)
10027 idata = idata + 1
10028 data_tmp = full_data(idata)
10029 data_tmp = ishft(data_tmp, 49)
10030 pack_tmp = ior(pack_tmp, data_tmp)
10031 pack_tmp = ishft(pack_tmp, -15)
10032 idata = idata + 1
10033 data_tmp = full_data(idata)
10034 data_tmp = ishft(data_tmp, 49)
10035 pack_tmp = ior(pack_tmp, data_tmp)
10036 pack_tmp = ishft(pack_tmp, -15)
10037 idata = idata + 1
10038 data_tmp = full_data(idata)
10039 data_tmp = ishft(data_tmp, 49)
10040 pack_tmp = ior(pack_tmp, data_tmp)
10041 pack_tmp = ishft(pack_tmp, -15)
10042 idata = idata + 1
10043 data_tmp = full_data(idata)
10044 data_tmp = ishft(data_tmp, 49)
10045 pack_tmp = ior(pack_tmp, data_tmp)
10046 pack_tmp = ishft(pack_tmp, -3)
10047 idata = idata + 1
10048 data_tmp = full_data(idata)
10049 data_tmp = ishft(data_tmp, 49)
10050 data_tmp = iand(data_tmp, mask_left(3))
10051 pack_tmp = ior(pack_tmp, data_tmp)
10052 ipack = ipack + 1
10053 packed_data(ipack) = pack_tmp
10054 data_tmp = full_data(idata)
10055 pack_tmp = ishft(data_tmp, 52)
10056 pack_tmp = ishft(pack_tmp, -15)
10057 idata = idata + 1
10058 data_tmp = full_data(idata)
10059 data_tmp = ishft(data_tmp, 49)
10060 pack_tmp = ior(pack_tmp, data_tmp)
10061 pack_tmp = ishft(pack_tmp, -15)
10062 idata = idata + 1
10063 data_tmp = full_data(idata)
10064 data_tmp = ishft(data_tmp, 49)
10065 pack_tmp = ior(pack_tmp, data_tmp)
10066 pack_tmp = ishft(pack_tmp, -15)
10067 idata = idata + 1
10068 data_tmp = full_data(idata)
10069 data_tmp = ishft(data_tmp, 49)
10070 pack_tmp = ior(pack_tmp, data_tmp)
10071 pack_tmp = ishft(pack_tmp, -7)
10072 idata = idata + 1
10073 data_tmp = full_data(idata)
10074 data_tmp = ishft(data_tmp, 49)
10075 data_tmp = iand(data_tmp, mask_left(7))
10076 pack_tmp = ior(pack_tmp, data_tmp)
10077 ipack = ipack + 1
10078 packed_data(ipack) = pack_tmp
10079 data_tmp = full_data(idata)
10080 pack_tmp = ishft(data_tmp, 56)
10081 pack_tmp = ishft(pack_tmp, -15)
10082 idata = idata + 1
10083 data_tmp = full_data(idata)
10084 data_tmp = ishft(data_tmp, 49)
10085 pack_tmp = ior(pack_tmp, data_tmp)
10086 pack_tmp = ishft(pack_tmp, -15)
10087 idata = idata + 1
10088 data_tmp = full_data(idata)
10089 data_tmp = ishft(data_tmp, 49)
10090 pack_tmp = ior(pack_tmp, data_tmp)
10091 pack_tmp = ishft(pack_tmp, -15)
10092 idata = idata + 1
10093 data_tmp = full_data(idata)
10094 data_tmp = ishft(data_tmp, 49)
10095 pack_tmp = ior(pack_tmp, data_tmp)
10096 pack_tmp = ishft(pack_tmp, -11)
10097 idata = idata + 1
10098 data_tmp = full_data(idata)
10099 data_tmp = ishft(data_tmp, 49)
10100 data_tmp = iand(data_tmp, mask_left(11))
10101 pack_tmp = ior(pack_tmp, data_tmp)
10102 ipack = ipack + 1
10103 packed_data(ipack) = pack_tmp
10104 data_tmp = full_data(idata)
10105 pack_tmp = ishft(data_tmp, 60)
10106 pack_tmp = ishft(pack_tmp, -15)
10107 idata = idata + 1
10108 data_tmp = full_data(idata)
10109 data_tmp = ishft(data_tmp, 49)
10110 pack_tmp = ior(pack_tmp, data_tmp)
10111 pack_tmp = ishft(pack_tmp, -15)
10112 idata = idata + 1
10113 data_tmp = full_data(idata)
10114 data_tmp = ishft(data_tmp, 49)
10115 pack_tmp = ior(pack_tmp, data_tmp)
10116 pack_tmp = ishft(pack_tmp, -15)
10117 idata = idata + 1
10118 data_tmp = full_data(idata)
10119 data_tmp = ishft(data_tmp, 49)
10120 pack_tmp = ior(pack_tmp, data_tmp)
10121 pack_tmp = ishft(pack_tmp, -15)
10122 idata = idata + 1
10123 data_tmp = full_data(idata)
10124 data_tmp = ishft(data_tmp, 49)
10125 pack_tmp = ior(pack_tmp, data_tmp)
10126 pack_tmp = ishft(pack_tmp, 0)
10127 pack_tmp = ishft(pack_tmp, 0)
10128 ipack = ipack + 1
10129 packed_data(ipack) = pack_tmp
10130 END DO
10131 IF (ndata_rep < ndata) THEN
10132 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
10133 END IF
10134 END SUBROUTINE ints2bits_15
10135
10136! **************************************************************************************************
10137!> \brief ...
10138!> \param Ndata ...
10139!> \param packed_data ...
10140!> \param full_data ...
10141! **************************************************************************************************
10142 SUBROUTINE bits2ints_15(Ndata, packed_data, full_data)
10143 INTEGER, INTENT(IN) :: Ndata
10144 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
10145 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
10146
10147 INTEGER, PARAMETER :: Nbits = 15
10148
10149 INTEGER :: idata, ipack, kdata, Ndata_rep
10150 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
10151
10152 ipack = 0
10153 idata = 0
10154 pack_tmp = 0
10155 ndata_rep = (ndata/64)*64
10156 DO kdata = 1, ndata_rep, 64
10157 idata = idata + 1
10158 data_tmp = ishft(pack_tmp, 15)
10159 ipack = ipack + 1
10160 pack_tmp = packed_data(ipack)
10161 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
10162 pack_tmp = ishft(pack_tmp, -15)
10163 idata = idata + 1
10164 data_tmp = iand(pack_tmp, mask_right(nbits))
10165 full_data(idata) = data_tmp
10166 pack_tmp = ishft(pack_tmp, -nbits)
10167 idata = idata + 1
10168 data_tmp = iand(pack_tmp, mask_right(nbits))
10169 full_data(idata) = data_tmp
10170 pack_tmp = ishft(pack_tmp, -nbits)
10171 idata = idata + 1
10172 data_tmp = iand(pack_tmp, mask_right(nbits))
10173 full_data(idata) = data_tmp
10174 pack_tmp = ishft(pack_tmp, -nbits)
10175 idata = idata + 1
10176 data_tmp = ishft(pack_tmp, 11)
10177 ipack = ipack + 1
10178 pack_tmp = packed_data(ipack)
10179 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
10180 pack_tmp = ishft(pack_tmp, -11)
10181 idata = idata + 1
10182 data_tmp = iand(pack_tmp, mask_right(nbits))
10183 full_data(idata) = data_tmp
10184 pack_tmp = ishft(pack_tmp, -nbits)
10185 idata = idata + 1
10186 data_tmp = iand(pack_tmp, mask_right(nbits))
10187 full_data(idata) = data_tmp
10188 pack_tmp = ishft(pack_tmp, -nbits)
10189 idata = idata + 1
10190 data_tmp = iand(pack_tmp, mask_right(nbits))
10191 full_data(idata) = data_tmp
10192 pack_tmp = ishft(pack_tmp, -nbits)
10193 idata = idata + 1
10194 data_tmp = ishft(pack_tmp, 7)
10195 ipack = ipack + 1
10196 pack_tmp = packed_data(ipack)
10197 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
10198 pack_tmp = ishft(pack_tmp, -7)
10199 idata = idata + 1
10200 data_tmp = iand(pack_tmp, mask_right(nbits))
10201 full_data(idata) = data_tmp
10202 pack_tmp = ishft(pack_tmp, -nbits)
10203 idata = idata + 1
10204 data_tmp = iand(pack_tmp, mask_right(nbits))
10205 full_data(idata) = data_tmp
10206 pack_tmp = ishft(pack_tmp, -nbits)
10207 idata = idata + 1
10208 data_tmp = iand(pack_tmp, mask_right(nbits))
10209 full_data(idata) = data_tmp
10210 pack_tmp = ishft(pack_tmp, -nbits)
10211 idata = idata + 1
10212 data_tmp = ishft(pack_tmp, 3)
10213 ipack = ipack + 1
10214 pack_tmp = packed_data(ipack)
10215 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
10216 pack_tmp = ishft(pack_tmp, -3)
10217 idata = idata + 1
10218 data_tmp = iand(pack_tmp, mask_right(nbits))
10219 full_data(idata) = data_tmp
10220 pack_tmp = ishft(pack_tmp, -nbits)
10221 idata = idata + 1
10222 data_tmp = iand(pack_tmp, mask_right(nbits))
10223 full_data(idata) = data_tmp
10224 pack_tmp = ishft(pack_tmp, -nbits)
10225 idata = idata + 1
10226 data_tmp = iand(pack_tmp, mask_right(nbits))
10227 full_data(idata) = data_tmp
10228 pack_tmp = ishft(pack_tmp, -nbits)
10229 idata = idata + 1
10230 data_tmp = iand(pack_tmp, mask_right(nbits))
10231 full_data(idata) = data_tmp
10232 pack_tmp = ishft(pack_tmp, -nbits)
10233 idata = idata + 1
10234 data_tmp = ishft(pack_tmp, 14)
10235 ipack = ipack + 1
10236 pack_tmp = packed_data(ipack)
10237 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
10238 pack_tmp = ishft(pack_tmp, -14)
10239 idata = idata + 1
10240 data_tmp = iand(pack_tmp, mask_right(nbits))
10241 full_data(idata) = data_tmp
10242 pack_tmp = ishft(pack_tmp, -nbits)
10243 idata = idata + 1
10244 data_tmp = iand(pack_tmp, mask_right(nbits))
10245 full_data(idata) = data_tmp
10246 pack_tmp = ishft(pack_tmp, -nbits)
10247 idata = idata + 1
10248 data_tmp = iand(pack_tmp, mask_right(nbits))
10249 full_data(idata) = data_tmp
10250 pack_tmp = ishft(pack_tmp, -nbits)
10251 idata = idata + 1
10252 data_tmp = ishft(pack_tmp, 10)
10253 ipack = ipack + 1
10254 pack_tmp = packed_data(ipack)
10255 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
10256 pack_tmp = ishft(pack_tmp, -10)
10257 idata = idata + 1
10258 data_tmp = iand(pack_tmp, mask_right(nbits))
10259 full_data(idata) = data_tmp
10260 pack_tmp = ishft(pack_tmp, -nbits)
10261 idata = idata + 1
10262 data_tmp = iand(pack_tmp, mask_right(nbits))
10263 full_data(idata) = data_tmp
10264 pack_tmp = ishft(pack_tmp, -nbits)
10265 idata = idata + 1
10266 data_tmp = iand(pack_tmp, mask_right(nbits))
10267 full_data(idata) = data_tmp
10268 pack_tmp = ishft(pack_tmp, -nbits)
10269 idata = idata + 1
10270 data_tmp = ishft(pack_tmp, 6)
10271 ipack = ipack + 1
10272 pack_tmp = packed_data(ipack)
10273 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
10274 pack_tmp = ishft(pack_tmp, -6)
10275 idata = idata + 1
10276 data_tmp = iand(pack_tmp, mask_right(nbits))
10277 full_data(idata) = data_tmp
10278 pack_tmp = ishft(pack_tmp, -nbits)
10279 idata = idata + 1
10280 data_tmp = iand(pack_tmp, mask_right(nbits))
10281 full_data(idata) = data_tmp
10282 pack_tmp = ishft(pack_tmp, -nbits)
10283 idata = idata + 1
10284 data_tmp = iand(pack_tmp, mask_right(nbits))
10285 full_data(idata) = data_tmp
10286 pack_tmp = ishft(pack_tmp, -nbits)
10287 idata = idata + 1
10288 data_tmp = ishft(pack_tmp, 2)
10289 ipack = ipack + 1
10290 pack_tmp = packed_data(ipack)
10291 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
10292 pack_tmp = ishft(pack_tmp, -2)
10293 idata = idata + 1
10294 data_tmp = iand(pack_tmp, mask_right(nbits))
10295 full_data(idata) = data_tmp
10296 pack_tmp = ishft(pack_tmp, -nbits)
10297 idata = idata + 1
10298 data_tmp = iand(pack_tmp, mask_right(nbits))
10299 full_data(idata) = data_tmp
10300 pack_tmp = ishft(pack_tmp, -nbits)
10301 idata = idata + 1
10302 data_tmp = iand(pack_tmp, mask_right(nbits))
10303 full_data(idata) = data_tmp
10304 pack_tmp = ishft(pack_tmp, -nbits)
10305 idata = idata + 1
10306 data_tmp = iand(pack_tmp, mask_right(nbits))
10307 full_data(idata) = data_tmp
10308 pack_tmp = ishft(pack_tmp, -nbits)
10309 idata = idata + 1
10310 data_tmp = ishft(pack_tmp, 13)
10311 ipack = ipack + 1
10312 pack_tmp = packed_data(ipack)
10313 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
10314 pack_tmp = ishft(pack_tmp, -13)
10315 idata = idata + 1
10316 data_tmp = iand(pack_tmp, mask_right(nbits))
10317 full_data(idata) = data_tmp
10318 pack_tmp = ishft(pack_tmp, -nbits)
10319 idata = idata + 1
10320 data_tmp = iand(pack_tmp, mask_right(nbits))
10321 full_data(idata) = data_tmp
10322 pack_tmp = ishft(pack_tmp, -nbits)
10323 idata = idata + 1
10324 data_tmp = iand(pack_tmp, mask_right(nbits))
10325 full_data(idata) = data_tmp
10326 pack_tmp = ishft(pack_tmp, -nbits)
10327 idata = idata + 1
10328 data_tmp = ishft(pack_tmp, 9)
10329 ipack = ipack + 1
10330 pack_tmp = packed_data(ipack)
10331 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
10332 pack_tmp = ishft(pack_tmp, -9)
10333 idata = idata + 1
10334 data_tmp = iand(pack_tmp, mask_right(nbits))
10335 full_data(idata) = data_tmp
10336 pack_tmp = ishft(pack_tmp, -nbits)
10337 idata = idata + 1
10338 data_tmp = iand(pack_tmp, mask_right(nbits))
10339 full_data(idata) = data_tmp
10340 pack_tmp = ishft(pack_tmp, -nbits)
10341 idata = idata + 1
10342 data_tmp = iand(pack_tmp, mask_right(nbits))
10343 full_data(idata) = data_tmp
10344 pack_tmp = ishft(pack_tmp, -nbits)
10345 idata = idata + 1
10346 data_tmp = ishft(pack_tmp, 5)
10347 ipack = ipack + 1
10348 pack_tmp = packed_data(ipack)
10349 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
10350 pack_tmp = ishft(pack_tmp, -5)
10351 idata = idata + 1
10352 data_tmp = iand(pack_tmp, mask_right(nbits))
10353 full_data(idata) = data_tmp
10354 pack_tmp = ishft(pack_tmp, -nbits)
10355 idata = idata + 1
10356 data_tmp = iand(pack_tmp, mask_right(nbits))
10357 full_data(idata) = data_tmp
10358 pack_tmp = ishft(pack_tmp, -nbits)
10359 idata = idata + 1
10360 data_tmp = iand(pack_tmp, mask_right(nbits))
10361 full_data(idata) = data_tmp
10362 pack_tmp = ishft(pack_tmp, -nbits)
10363 idata = idata + 1
10364 data_tmp = ishft(pack_tmp, 1)
10365 ipack = ipack + 1
10366 pack_tmp = packed_data(ipack)
10367 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
10368 pack_tmp = ishft(pack_tmp, -1)
10369 idata = idata + 1
10370 data_tmp = iand(pack_tmp, mask_right(nbits))
10371 full_data(idata) = data_tmp
10372 pack_tmp = ishft(pack_tmp, -nbits)
10373 idata = idata + 1
10374 data_tmp = iand(pack_tmp, mask_right(nbits))
10375 full_data(idata) = data_tmp
10376 pack_tmp = ishft(pack_tmp, -nbits)
10377 idata = idata + 1
10378 data_tmp = iand(pack_tmp, mask_right(nbits))
10379 full_data(idata) = data_tmp
10380 pack_tmp = ishft(pack_tmp, -nbits)
10381 idata = idata + 1
10382 data_tmp = iand(pack_tmp, mask_right(nbits))
10383 full_data(idata) = data_tmp
10384 pack_tmp = ishft(pack_tmp, -nbits)
10385 idata = idata + 1
10386 data_tmp = ishft(pack_tmp, 12)
10387 ipack = ipack + 1
10388 pack_tmp = packed_data(ipack)
10389 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
10390 pack_tmp = ishft(pack_tmp, -12)
10391 idata = idata + 1
10392 data_tmp = iand(pack_tmp, mask_right(nbits))
10393 full_data(idata) = data_tmp
10394 pack_tmp = ishft(pack_tmp, -nbits)
10395 idata = idata + 1
10396 data_tmp = iand(pack_tmp, mask_right(nbits))
10397 full_data(idata) = data_tmp
10398 pack_tmp = ishft(pack_tmp, -nbits)
10399 idata = idata + 1
10400 data_tmp = iand(pack_tmp, mask_right(nbits))
10401 full_data(idata) = data_tmp
10402 pack_tmp = ishft(pack_tmp, -nbits)
10403 idata = idata + 1
10404 data_tmp = ishft(pack_tmp, 8)
10405 ipack = ipack + 1
10406 pack_tmp = packed_data(ipack)
10407 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
10408 pack_tmp = ishft(pack_tmp, -8)
10409 idata = idata + 1
10410 data_tmp = iand(pack_tmp, mask_right(nbits))
10411 full_data(idata) = data_tmp
10412 pack_tmp = ishft(pack_tmp, -nbits)
10413 idata = idata + 1
10414 data_tmp = iand(pack_tmp, mask_right(nbits))
10415 full_data(idata) = data_tmp
10416 pack_tmp = ishft(pack_tmp, -nbits)
10417 idata = idata + 1
10418 data_tmp = iand(pack_tmp, mask_right(nbits))
10419 full_data(idata) = data_tmp
10420 pack_tmp = ishft(pack_tmp, -nbits)
10421 idata = idata + 1
10422 data_tmp = ishft(pack_tmp, 4)
10423 ipack = ipack + 1
10424 pack_tmp = packed_data(ipack)
10425 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
10426 pack_tmp = ishft(pack_tmp, -4)
10427 idata = idata + 1
10428 data_tmp = iand(pack_tmp, mask_right(nbits))
10429 full_data(idata) = data_tmp
10430 pack_tmp = ishft(pack_tmp, -nbits)
10431 idata = idata + 1
10432 data_tmp = iand(pack_tmp, mask_right(nbits))
10433 full_data(idata) = data_tmp
10434 pack_tmp = ishft(pack_tmp, -nbits)
10435 idata = idata + 1
10436 data_tmp = iand(pack_tmp, mask_right(nbits))
10437 full_data(idata) = data_tmp
10438 pack_tmp = ishft(pack_tmp, -nbits)
10439 idata = idata + 1
10440 data_tmp = iand(pack_tmp, mask_right(nbits))
10441 full_data(idata) = data_tmp
10442 pack_tmp = ishft(pack_tmp, -nbits)
10443 END DO
10444 IF (ndata_rep < ndata) THEN
10445 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
10446 END IF
10447 END SUBROUTINE bits2ints_15
10448
10449! **************************************************************************************************
10450!> \brief ...
10451!> \param Ndata ...
10452!> \param packed_data ...
10453!> \param full_data ...
10454! **************************************************************************************************
10455 SUBROUTINE ints2bits_16(Ndata, packed_data, full_data)
10456 INTEGER, INTENT(IN) :: Ndata
10457 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
10458 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
10459
10460 INTEGER, PARAMETER :: Nbits = 16
10461
10462 INTEGER :: idata, ipack, kdata, Ndata_rep
10463 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
10464
10465 idata = 0
10466 ipack = 0
10467 ndata_rep = (ndata/64)*64
10468 DO kdata = 1, ndata_rep, 64
10469 pack_tmp = 0
10470 idata = idata + 1
10471 data_tmp = full_data(idata)
10472 data_tmp = ishft(data_tmp, 48)
10473 pack_tmp = ior(pack_tmp, data_tmp)
10474 pack_tmp = ishft(pack_tmp, -16)
10475 idata = idata + 1
10476 data_tmp = full_data(idata)
10477 data_tmp = ishft(data_tmp, 48)
10478 pack_tmp = ior(pack_tmp, data_tmp)
10479 pack_tmp = ishft(pack_tmp, -16)
10480 idata = idata + 1
10481 data_tmp = full_data(idata)
10482 data_tmp = ishft(data_tmp, 48)
10483 pack_tmp = ior(pack_tmp, data_tmp)
10484 pack_tmp = ishft(pack_tmp, -16)
10485 idata = idata + 1
10486 data_tmp = full_data(idata)
10487 data_tmp = ishft(data_tmp, 48)
10488 pack_tmp = ior(pack_tmp, data_tmp)
10489 pack_tmp = ishft(pack_tmp, 0)
10490 idata = idata + 1
10491 data_tmp = full_data(idata)
10492 data_tmp = ishft(data_tmp, 48)
10493 data_tmp = iand(data_tmp, mask_left(0))
10494 pack_tmp = ior(pack_tmp, data_tmp)
10495 ipack = ipack + 1
10496 packed_data(ipack) = pack_tmp
10497 data_tmp = full_data(idata)
10498 pack_tmp = ishft(data_tmp, 48)
10499 pack_tmp = ishft(pack_tmp, -16)
10500 idata = idata + 1
10501 data_tmp = full_data(idata)
10502 data_tmp = ishft(data_tmp, 48)
10503 pack_tmp = ior(pack_tmp, data_tmp)
10504 pack_tmp = ishft(pack_tmp, -16)
10505 idata = idata + 1
10506 data_tmp = full_data(idata)
10507 data_tmp = ishft(data_tmp, 48)
10508 pack_tmp = ior(pack_tmp, data_tmp)
10509 pack_tmp = ishft(pack_tmp, -16)
10510 idata = idata + 1
10511 data_tmp = full_data(idata)
10512 data_tmp = ishft(data_tmp, 48)
10513 pack_tmp = ior(pack_tmp, data_tmp)
10514 pack_tmp = ishft(pack_tmp, 0)
10515 idata = idata + 1
10516 data_tmp = full_data(idata)
10517 data_tmp = ishft(data_tmp, 48)
10518 data_tmp = iand(data_tmp, mask_left(0))
10519 pack_tmp = ior(pack_tmp, data_tmp)
10520 ipack = ipack + 1
10521 packed_data(ipack) = pack_tmp
10522 data_tmp = full_data(idata)
10523 pack_tmp = ishft(data_tmp, 48)
10524 pack_tmp = ishft(pack_tmp, -16)
10525 idata = idata + 1
10526 data_tmp = full_data(idata)
10527 data_tmp = ishft(data_tmp, 48)
10528 pack_tmp = ior(pack_tmp, data_tmp)
10529 pack_tmp = ishft(pack_tmp, -16)
10530 idata = idata + 1
10531 data_tmp = full_data(idata)
10532 data_tmp = ishft(data_tmp, 48)
10533 pack_tmp = ior(pack_tmp, data_tmp)
10534 pack_tmp = ishft(pack_tmp, -16)
10535 idata = idata + 1
10536 data_tmp = full_data(idata)
10537 data_tmp = ishft(data_tmp, 48)
10538 pack_tmp = ior(pack_tmp, data_tmp)
10539 pack_tmp = ishft(pack_tmp, 0)
10540 idata = idata + 1
10541 data_tmp = full_data(idata)
10542 data_tmp = ishft(data_tmp, 48)
10543 data_tmp = iand(data_tmp, mask_left(0))
10544 pack_tmp = ior(pack_tmp, data_tmp)
10545 ipack = ipack + 1
10546 packed_data(ipack) = pack_tmp
10547 data_tmp = full_data(idata)
10548 pack_tmp = ishft(data_tmp, 48)
10549 pack_tmp = ishft(pack_tmp, -16)
10550 idata = idata + 1
10551 data_tmp = full_data(idata)
10552 data_tmp = ishft(data_tmp, 48)
10553 pack_tmp = ior(pack_tmp, data_tmp)
10554 pack_tmp = ishft(pack_tmp, -16)
10555 idata = idata + 1
10556 data_tmp = full_data(idata)
10557 data_tmp = ishft(data_tmp, 48)
10558 pack_tmp = ior(pack_tmp, data_tmp)
10559 pack_tmp = ishft(pack_tmp, -16)
10560 idata = idata + 1
10561 data_tmp = full_data(idata)
10562 data_tmp = ishft(data_tmp, 48)
10563 pack_tmp = ior(pack_tmp, data_tmp)
10564 pack_tmp = ishft(pack_tmp, 0)
10565 idata = idata + 1
10566 data_tmp = full_data(idata)
10567 data_tmp = ishft(data_tmp, 48)
10568 data_tmp = iand(data_tmp, mask_left(0))
10569 pack_tmp = ior(pack_tmp, data_tmp)
10570 ipack = ipack + 1
10571 packed_data(ipack) = pack_tmp
10572 data_tmp = full_data(idata)
10573 pack_tmp = ishft(data_tmp, 48)
10574 pack_tmp = ishft(pack_tmp, -16)
10575 idata = idata + 1
10576 data_tmp = full_data(idata)
10577 data_tmp = ishft(data_tmp, 48)
10578 pack_tmp = ior(pack_tmp, data_tmp)
10579 pack_tmp = ishft(pack_tmp, -16)
10580 idata = idata + 1
10581 data_tmp = full_data(idata)
10582 data_tmp = ishft(data_tmp, 48)
10583 pack_tmp = ior(pack_tmp, data_tmp)
10584 pack_tmp = ishft(pack_tmp, -16)
10585 idata = idata + 1
10586 data_tmp = full_data(idata)
10587 data_tmp = ishft(data_tmp, 48)
10588 pack_tmp = ior(pack_tmp, data_tmp)
10589 pack_tmp = ishft(pack_tmp, 0)
10590 idata = idata + 1
10591 data_tmp = full_data(idata)
10592 data_tmp = ishft(data_tmp, 48)
10593 data_tmp = iand(data_tmp, mask_left(0))
10594 pack_tmp = ior(pack_tmp, data_tmp)
10595 ipack = ipack + 1
10596 packed_data(ipack) = pack_tmp
10597 data_tmp = full_data(idata)
10598 pack_tmp = ishft(data_tmp, 48)
10599 pack_tmp = ishft(pack_tmp, -16)
10600 idata = idata + 1
10601 data_tmp = full_data(idata)
10602 data_tmp = ishft(data_tmp, 48)
10603 pack_tmp = ior(pack_tmp, data_tmp)
10604 pack_tmp = ishft(pack_tmp, -16)
10605 idata = idata + 1
10606 data_tmp = full_data(idata)
10607 data_tmp = ishft(data_tmp, 48)
10608 pack_tmp = ior(pack_tmp, data_tmp)
10609 pack_tmp = ishft(pack_tmp, -16)
10610 idata = idata + 1
10611 data_tmp = full_data(idata)
10612 data_tmp = ishft(data_tmp, 48)
10613 pack_tmp = ior(pack_tmp, data_tmp)
10614 pack_tmp = ishft(pack_tmp, 0)
10615 idata = idata + 1
10616 data_tmp = full_data(idata)
10617 data_tmp = ishft(data_tmp, 48)
10618 data_tmp = iand(data_tmp, mask_left(0))
10619 pack_tmp = ior(pack_tmp, data_tmp)
10620 ipack = ipack + 1
10621 packed_data(ipack) = pack_tmp
10622 data_tmp = full_data(idata)
10623 pack_tmp = ishft(data_tmp, 48)
10624 pack_tmp = ishft(pack_tmp, -16)
10625 idata = idata + 1
10626 data_tmp = full_data(idata)
10627 data_tmp = ishft(data_tmp, 48)
10628 pack_tmp = ior(pack_tmp, data_tmp)
10629 pack_tmp = ishft(pack_tmp, -16)
10630 idata = idata + 1
10631 data_tmp = full_data(idata)
10632 data_tmp = ishft(data_tmp, 48)
10633 pack_tmp = ior(pack_tmp, data_tmp)
10634 pack_tmp = ishft(pack_tmp, -16)
10635 idata = idata + 1
10636 data_tmp = full_data(idata)
10637 data_tmp = ishft(data_tmp, 48)
10638 pack_tmp = ior(pack_tmp, data_tmp)
10639 pack_tmp = ishft(pack_tmp, 0)
10640 idata = idata + 1
10641 data_tmp = full_data(idata)
10642 data_tmp = ishft(data_tmp, 48)
10643 data_tmp = iand(data_tmp, mask_left(0))
10644 pack_tmp = ior(pack_tmp, data_tmp)
10645 ipack = ipack + 1
10646 packed_data(ipack) = pack_tmp
10647 data_tmp = full_data(idata)
10648 pack_tmp = ishft(data_tmp, 48)
10649 pack_tmp = ishft(pack_tmp, -16)
10650 idata = idata + 1
10651 data_tmp = full_data(idata)
10652 data_tmp = ishft(data_tmp, 48)
10653 pack_tmp = ior(pack_tmp, data_tmp)
10654 pack_tmp = ishft(pack_tmp, -16)
10655 idata = idata + 1
10656 data_tmp = full_data(idata)
10657 data_tmp = ishft(data_tmp, 48)
10658 pack_tmp = ior(pack_tmp, data_tmp)
10659 pack_tmp = ishft(pack_tmp, -16)
10660 idata = idata + 1
10661 data_tmp = full_data(idata)
10662 data_tmp = ishft(data_tmp, 48)
10663 pack_tmp = ior(pack_tmp, data_tmp)
10664 pack_tmp = ishft(pack_tmp, 0)
10665 idata = idata + 1
10666 data_tmp = full_data(idata)
10667 data_tmp = ishft(data_tmp, 48)
10668 data_tmp = iand(data_tmp, mask_left(0))
10669 pack_tmp = ior(pack_tmp, data_tmp)
10670 ipack = ipack + 1
10671 packed_data(ipack) = pack_tmp
10672 data_tmp = full_data(idata)
10673 pack_tmp = ishft(data_tmp, 48)
10674 pack_tmp = ishft(pack_tmp, -16)
10675 idata = idata + 1
10676 data_tmp = full_data(idata)
10677 data_tmp = ishft(data_tmp, 48)
10678 pack_tmp = ior(pack_tmp, data_tmp)
10679 pack_tmp = ishft(pack_tmp, -16)
10680 idata = idata + 1
10681 data_tmp = full_data(idata)
10682 data_tmp = ishft(data_tmp, 48)
10683 pack_tmp = ior(pack_tmp, data_tmp)
10684 pack_tmp = ishft(pack_tmp, -16)
10685 idata = idata + 1
10686 data_tmp = full_data(idata)
10687 data_tmp = ishft(data_tmp, 48)
10688 pack_tmp = ior(pack_tmp, data_tmp)
10689 pack_tmp = ishft(pack_tmp, 0)
10690 idata = idata + 1
10691 data_tmp = full_data(idata)
10692 data_tmp = ishft(data_tmp, 48)
10693 data_tmp = iand(data_tmp, mask_left(0))
10694 pack_tmp = ior(pack_tmp, data_tmp)
10695 ipack = ipack + 1
10696 packed_data(ipack) = pack_tmp
10697 data_tmp = full_data(idata)
10698 pack_tmp = ishft(data_tmp, 48)
10699 pack_tmp = ishft(pack_tmp, -16)
10700 idata = idata + 1
10701 data_tmp = full_data(idata)
10702 data_tmp = ishft(data_tmp, 48)
10703 pack_tmp = ior(pack_tmp, data_tmp)
10704 pack_tmp = ishft(pack_tmp, -16)
10705 idata = idata + 1
10706 data_tmp = full_data(idata)
10707 data_tmp = ishft(data_tmp, 48)
10708 pack_tmp = ior(pack_tmp, data_tmp)
10709 pack_tmp = ishft(pack_tmp, -16)
10710 idata = idata + 1
10711 data_tmp = full_data(idata)
10712 data_tmp = ishft(data_tmp, 48)
10713 pack_tmp = ior(pack_tmp, data_tmp)
10714 pack_tmp = ishft(pack_tmp, 0)
10715 idata = idata + 1
10716 data_tmp = full_data(idata)
10717 data_tmp = ishft(data_tmp, 48)
10718 data_tmp = iand(data_tmp, mask_left(0))
10719 pack_tmp = ior(pack_tmp, data_tmp)
10720 ipack = ipack + 1
10721 packed_data(ipack) = pack_tmp
10722 data_tmp = full_data(idata)
10723 pack_tmp = ishft(data_tmp, 48)
10724 pack_tmp = ishft(pack_tmp, -16)
10725 idata = idata + 1
10726 data_tmp = full_data(idata)
10727 data_tmp = ishft(data_tmp, 48)
10728 pack_tmp = ior(pack_tmp, data_tmp)
10729 pack_tmp = ishft(pack_tmp, -16)
10730 idata = idata + 1
10731 data_tmp = full_data(idata)
10732 data_tmp = ishft(data_tmp, 48)
10733 pack_tmp = ior(pack_tmp, data_tmp)
10734 pack_tmp = ishft(pack_tmp, -16)
10735 idata = idata + 1
10736 data_tmp = full_data(idata)
10737 data_tmp = ishft(data_tmp, 48)
10738 pack_tmp = ior(pack_tmp, data_tmp)
10739 pack_tmp = ishft(pack_tmp, 0)
10740 idata = idata + 1
10741 data_tmp = full_data(idata)
10742 data_tmp = ishft(data_tmp, 48)
10743 data_tmp = iand(data_tmp, mask_left(0))
10744 pack_tmp = ior(pack_tmp, data_tmp)
10745 ipack = ipack + 1
10746 packed_data(ipack) = pack_tmp
10747 data_tmp = full_data(idata)
10748 pack_tmp = ishft(data_tmp, 48)
10749 pack_tmp = ishft(pack_tmp, -16)
10750 idata = idata + 1
10751 data_tmp = full_data(idata)
10752 data_tmp = ishft(data_tmp, 48)
10753 pack_tmp = ior(pack_tmp, data_tmp)
10754 pack_tmp = ishft(pack_tmp, -16)
10755 idata = idata + 1
10756 data_tmp = full_data(idata)
10757 data_tmp = ishft(data_tmp, 48)
10758 pack_tmp = ior(pack_tmp, data_tmp)
10759 pack_tmp = ishft(pack_tmp, -16)
10760 idata = idata + 1
10761 data_tmp = full_data(idata)
10762 data_tmp = ishft(data_tmp, 48)
10763 pack_tmp = ior(pack_tmp, data_tmp)
10764 pack_tmp = ishft(pack_tmp, 0)
10765 idata = idata + 1
10766 data_tmp = full_data(idata)
10767 data_tmp = ishft(data_tmp, 48)
10768 data_tmp = iand(data_tmp, mask_left(0))
10769 pack_tmp = ior(pack_tmp, data_tmp)
10770 ipack = ipack + 1
10771 packed_data(ipack) = pack_tmp
10772 data_tmp = full_data(idata)
10773 pack_tmp = ishft(data_tmp, 48)
10774 pack_tmp = ishft(pack_tmp, -16)
10775 idata = idata + 1
10776 data_tmp = full_data(idata)
10777 data_tmp = ishft(data_tmp, 48)
10778 pack_tmp = ior(pack_tmp, data_tmp)
10779 pack_tmp = ishft(pack_tmp, -16)
10780 idata = idata + 1
10781 data_tmp = full_data(idata)
10782 data_tmp = ishft(data_tmp, 48)
10783 pack_tmp = ior(pack_tmp, data_tmp)
10784 pack_tmp = ishft(pack_tmp, -16)
10785 idata = idata + 1
10786 data_tmp = full_data(idata)
10787 data_tmp = ishft(data_tmp, 48)
10788 pack_tmp = ior(pack_tmp, data_tmp)
10789 pack_tmp = ishft(pack_tmp, 0)
10790 idata = idata + 1
10791 data_tmp = full_data(idata)
10792 data_tmp = ishft(data_tmp, 48)
10793 data_tmp = iand(data_tmp, mask_left(0))
10794 pack_tmp = ior(pack_tmp, data_tmp)
10795 ipack = ipack + 1
10796 packed_data(ipack) = pack_tmp
10797 data_tmp = full_data(idata)
10798 pack_tmp = ishft(data_tmp, 48)
10799 pack_tmp = ishft(pack_tmp, -16)
10800 idata = idata + 1
10801 data_tmp = full_data(idata)
10802 data_tmp = ishft(data_tmp, 48)
10803 pack_tmp = ior(pack_tmp, data_tmp)
10804 pack_tmp = ishft(pack_tmp, -16)
10805 idata = idata + 1
10806 data_tmp = full_data(idata)
10807 data_tmp = ishft(data_tmp, 48)
10808 pack_tmp = ior(pack_tmp, data_tmp)
10809 pack_tmp = ishft(pack_tmp, -16)
10810 idata = idata + 1
10811 data_tmp = full_data(idata)
10812 data_tmp = ishft(data_tmp, 48)
10813 pack_tmp = ior(pack_tmp, data_tmp)
10814 pack_tmp = ishft(pack_tmp, 0)
10815 idata = idata + 1
10816 data_tmp = full_data(idata)
10817 data_tmp = ishft(data_tmp, 48)
10818 data_tmp = iand(data_tmp, mask_left(0))
10819 pack_tmp = ior(pack_tmp, data_tmp)
10820 ipack = ipack + 1
10821 packed_data(ipack) = pack_tmp
10822 data_tmp = full_data(idata)
10823 pack_tmp = ishft(data_tmp, 48)
10824 pack_tmp = ishft(pack_tmp, -16)
10825 idata = idata + 1
10826 data_tmp = full_data(idata)
10827 data_tmp = ishft(data_tmp, 48)
10828 pack_tmp = ior(pack_tmp, data_tmp)
10829 pack_tmp = ishft(pack_tmp, -16)
10830 idata = idata + 1
10831 data_tmp = full_data(idata)
10832 data_tmp = ishft(data_tmp, 48)
10833 pack_tmp = ior(pack_tmp, data_tmp)
10834 pack_tmp = ishft(pack_tmp, -16)
10835 idata = idata + 1
10836 data_tmp = full_data(idata)
10837 data_tmp = ishft(data_tmp, 48)
10838 pack_tmp = ior(pack_tmp, data_tmp)
10839 pack_tmp = ishft(pack_tmp, 0)
10840 idata = idata + 1
10841 data_tmp = full_data(idata)
10842 data_tmp = ishft(data_tmp, 48)
10843 data_tmp = iand(data_tmp, mask_left(0))
10844 pack_tmp = ior(pack_tmp, data_tmp)
10845 ipack = ipack + 1
10846 packed_data(ipack) = pack_tmp
10847 data_tmp = full_data(idata)
10848 pack_tmp = ishft(data_tmp, 48)
10849 pack_tmp = ishft(pack_tmp, -16)
10850 idata = idata + 1
10851 data_tmp = full_data(idata)
10852 data_tmp = ishft(data_tmp, 48)
10853 pack_tmp = ior(pack_tmp, data_tmp)
10854 pack_tmp = ishft(pack_tmp, -16)
10855 idata = idata + 1
10856 data_tmp = full_data(idata)
10857 data_tmp = ishft(data_tmp, 48)
10858 pack_tmp = ior(pack_tmp, data_tmp)
10859 pack_tmp = ishft(pack_tmp, -16)
10860 idata = idata + 1
10861 data_tmp = full_data(idata)
10862 data_tmp = ishft(data_tmp, 48)
10863 pack_tmp = ior(pack_tmp, data_tmp)
10864 pack_tmp = ishft(pack_tmp, 0)
10865 pack_tmp = ishft(pack_tmp, 0)
10866 ipack = ipack + 1
10867 packed_data(ipack) = pack_tmp
10868 END DO
10869 IF (ndata_rep < ndata) THEN
10870 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
10871 END IF
10872 END SUBROUTINE ints2bits_16
10873
10874! **************************************************************************************************
10875!> \brief ...
10876!> \param Ndata ...
10877!> \param packed_data ...
10878!> \param full_data ...
10879! **************************************************************************************************
10880 SUBROUTINE bits2ints_16(Ndata, packed_data, full_data)
10881 INTEGER, INTENT(IN) :: Ndata
10882 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
10883 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
10884
10885 INTEGER, PARAMETER :: Nbits = 16
10886
10887 INTEGER :: idata, ipack, kdata, Ndata_rep
10888 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
10889
10890 ipack = 0
10891 idata = 0
10892 pack_tmp = 0
10893 ndata_rep = (ndata/64)*64
10894 DO kdata = 1, ndata_rep, 64
10895 idata = idata + 1
10896 data_tmp = ishft(pack_tmp, 16)
10897 ipack = ipack + 1
10898 pack_tmp = packed_data(ipack)
10899 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
10900 pack_tmp = ishft(pack_tmp, -16)
10901 idata = idata + 1
10902 data_tmp = iand(pack_tmp, mask_right(nbits))
10903 full_data(idata) = data_tmp
10904 pack_tmp = ishft(pack_tmp, -nbits)
10905 idata = idata + 1
10906 data_tmp = iand(pack_tmp, mask_right(nbits))
10907 full_data(idata) = data_tmp
10908 pack_tmp = ishft(pack_tmp, -nbits)
10909 idata = idata + 1
10910 data_tmp = iand(pack_tmp, mask_right(nbits))
10911 full_data(idata) = data_tmp
10912 pack_tmp = ishft(pack_tmp, -nbits)
10913 idata = idata + 1
10914 data_tmp = ishft(pack_tmp, 16)
10915 ipack = ipack + 1
10916 pack_tmp = packed_data(ipack)
10917 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
10918 pack_tmp = ishft(pack_tmp, -16)
10919 idata = idata + 1
10920 data_tmp = iand(pack_tmp, mask_right(nbits))
10921 full_data(idata) = data_tmp
10922 pack_tmp = ishft(pack_tmp, -nbits)
10923 idata = idata + 1
10924 data_tmp = iand(pack_tmp, mask_right(nbits))
10925 full_data(idata) = data_tmp
10926 pack_tmp = ishft(pack_tmp, -nbits)
10927 idata = idata + 1
10928 data_tmp = iand(pack_tmp, mask_right(nbits))
10929 full_data(idata) = data_tmp
10930 pack_tmp = ishft(pack_tmp, -nbits)
10931 idata = idata + 1
10932 data_tmp = ishft(pack_tmp, 16)
10933 ipack = ipack + 1
10934 pack_tmp = packed_data(ipack)
10935 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
10936 pack_tmp = ishft(pack_tmp, -16)
10937 idata = idata + 1
10938 data_tmp = iand(pack_tmp, mask_right(nbits))
10939 full_data(idata) = data_tmp
10940 pack_tmp = ishft(pack_tmp, -nbits)
10941 idata = idata + 1
10942 data_tmp = iand(pack_tmp, mask_right(nbits))
10943 full_data(idata) = data_tmp
10944 pack_tmp = ishft(pack_tmp, -nbits)
10945 idata = idata + 1
10946 data_tmp = iand(pack_tmp, mask_right(nbits))
10947 full_data(idata) = data_tmp
10948 pack_tmp = ishft(pack_tmp, -nbits)
10949 idata = idata + 1
10950 data_tmp = ishft(pack_tmp, 16)
10951 ipack = ipack + 1
10952 pack_tmp = packed_data(ipack)
10953 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
10954 pack_tmp = ishft(pack_tmp, -16)
10955 idata = idata + 1
10956 data_tmp = iand(pack_tmp, mask_right(nbits))
10957 full_data(idata) = data_tmp
10958 pack_tmp = ishft(pack_tmp, -nbits)
10959 idata = idata + 1
10960 data_tmp = iand(pack_tmp, mask_right(nbits))
10961 full_data(idata) = data_tmp
10962 pack_tmp = ishft(pack_tmp, -nbits)
10963 idata = idata + 1
10964 data_tmp = iand(pack_tmp, mask_right(nbits))
10965 full_data(idata) = data_tmp
10966 pack_tmp = ishft(pack_tmp, -nbits)
10967 idata = idata + 1
10968 data_tmp = ishft(pack_tmp, 16)
10969 ipack = ipack + 1
10970 pack_tmp = packed_data(ipack)
10971 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
10972 pack_tmp = ishft(pack_tmp, -16)
10973 idata = idata + 1
10974 data_tmp = iand(pack_tmp, mask_right(nbits))
10975 full_data(idata) = data_tmp
10976 pack_tmp = ishft(pack_tmp, -nbits)
10977 idata = idata + 1
10978 data_tmp = iand(pack_tmp, mask_right(nbits))
10979 full_data(idata) = data_tmp
10980 pack_tmp = ishft(pack_tmp, -nbits)
10981 idata = idata + 1
10982 data_tmp = iand(pack_tmp, mask_right(nbits))
10983 full_data(idata) = data_tmp
10984 pack_tmp = ishft(pack_tmp, -nbits)
10985 idata = idata + 1
10986 data_tmp = ishft(pack_tmp, 16)
10987 ipack = ipack + 1
10988 pack_tmp = packed_data(ipack)
10989 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
10990 pack_tmp = ishft(pack_tmp, -16)
10991 idata = idata + 1
10992 data_tmp = iand(pack_tmp, mask_right(nbits))
10993 full_data(idata) = data_tmp
10994 pack_tmp = ishft(pack_tmp, -nbits)
10995 idata = idata + 1
10996 data_tmp = iand(pack_tmp, mask_right(nbits))
10997 full_data(idata) = data_tmp
10998 pack_tmp = ishft(pack_tmp, -nbits)
10999 idata = idata + 1
11000 data_tmp = iand(pack_tmp, mask_right(nbits))
11001 full_data(idata) = data_tmp
11002 pack_tmp = ishft(pack_tmp, -nbits)
11003 idata = idata + 1
11004 data_tmp = ishft(pack_tmp, 16)
11005 ipack = ipack + 1
11006 pack_tmp = packed_data(ipack)
11007 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
11008 pack_tmp = ishft(pack_tmp, -16)
11009 idata = idata + 1
11010 data_tmp = iand(pack_tmp, mask_right(nbits))
11011 full_data(idata) = data_tmp
11012 pack_tmp = ishft(pack_tmp, -nbits)
11013 idata = idata + 1
11014 data_tmp = iand(pack_tmp, mask_right(nbits))
11015 full_data(idata) = data_tmp
11016 pack_tmp = ishft(pack_tmp, -nbits)
11017 idata = idata + 1
11018 data_tmp = iand(pack_tmp, mask_right(nbits))
11019 full_data(idata) = data_tmp
11020 pack_tmp = ishft(pack_tmp, -nbits)
11021 idata = idata + 1
11022 data_tmp = ishft(pack_tmp, 16)
11023 ipack = ipack + 1
11024 pack_tmp = packed_data(ipack)
11025 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
11026 pack_tmp = ishft(pack_tmp, -16)
11027 idata = idata + 1
11028 data_tmp = iand(pack_tmp, mask_right(nbits))
11029 full_data(idata) = data_tmp
11030 pack_tmp = ishft(pack_tmp, -nbits)
11031 idata = idata + 1
11032 data_tmp = iand(pack_tmp, mask_right(nbits))
11033 full_data(idata) = data_tmp
11034 pack_tmp = ishft(pack_tmp, -nbits)
11035 idata = idata + 1
11036 data_tmp = iand(pack_tmp, mask_right(nbits))
11037 full_data(idata) = data_tmp
11038 pack_tmp = ishft(pack_tmp, -nbits)
11039 idata = idata + 1
11040 data_tmp = ishft(pack_tmp, 16)
11041 ipack = ipack + 1
11042 pack_tmp = packed_data(ipack)
11043 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
11044 pack_tmp = ishft(pack_tmp, -16)
11045 idata = idata + 1
11046 data_tmp = iand(pack_tmp, mask_right(nbits))
11047 full_data(idata) = data_tmp
11048 pack_tmp = ishft(pack_tmp, -nbits)
11049 idata = idata + 1
11050 data_tmp = iand(pack_tmp, mask_right(nbits))
11051 full_data(idata) = data_tmp
11052 pack_tmp = ishft(pack_tmp, -nbits)
11053 idata = idata + 1
11054 data_tmp = iand(pack_tmp, mask_right(nbits))
11055 full_data(idata) = data_tmp
11056 pack_tmp = ishft(pack_tmp, -nbits)
11057 idata = idata + 1
11058 data_tmp = ishft(pack_tmp, 16)
11059 ipack = ipack + 1
11060 pack_tmp = packed_data(ipack)
11061 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
11062 pack_tmp = ishft(pack_tmp, -16)
11063 idata = idata + 1
11064 data_tmp = iand(pack_tmp, mask_right(nbits))
11065 full_data(idata) = data_tmp
11066 pack_tmp = ishft(pack_tmp, -nbits)
11067 idata = idata + 1
11068 data_tmp = iand(pack_tmp, mask_right(nbits))
11069 full_data(idata) = data_tmp
11070 pack_tmp = ishft(pack_tmp, -nbits)
11071 idata = idata + 1
11072 data_tmp = iand(pack_tmp, mask_right(nbits))
11073 full_data(idata) = data_tmp
11074 pack_tmp = ishft(pack_tmp, -nbits)
11075 idata = idata + 1
11076 data_tmp = ishft(pack_tmp, 16)
11077 ipack = ipack + 1
11078 pack_tmp = packed_data(ipack)
11079 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
11080 pack_tmp = ishft(pack_tmp, -16)
11081 idata = idata + 1
11082 data_tmp = iand(pack_tmp, mask_right(nbits))
11083 full_data(idata) = data_tmp
11084 pack_tmp = ishft(pack_tmp, -nbits)
11085 idata = idata + 1
11086 data_tmp = iand(pack_tmp, mask_right(nbits))
11087 full_data(idata) = data_tmp
11088 pack_tmp = ishft(pack_tmp, -nbits)
11089 idata = idata + 1
11090 data_tmp = iand(pack_tmp, mask_right(nbits))
11091 full_data(idata) = data_tmp
11092 pack_tmp = ishft(pack_tmp, -nbits)
11093 idata = idata + 1
11094 data_tmp = ishft(pack_tmp, 16)
11095 ipack = ipack + 1
11096 pack_tmp = packed_data(ipack)
11097 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
11098 pack_tmp = ishft(pack_tmp, -16)
11099 idata = idata + 1
11100 data_tmp = iand(pack_tmp, mask_right(nbits))
11101 full_data(idata) = data_tmp
11102 pack_tmp = ishft(pack_tmp, -nbits)
11103 idata = idata + 1
11104 data_tmp = iand(pack_tmp, mask_right(nbits))
11105 full_data(idata) = data_tmp
11106 pack_tmp = ishft(pack_tmp, -nbits)
11107 idata = idata + 1
11108 data_tmp = iand(pack_tmp, mask_right(nbits))
11109 full_data(idata) = data_tmp
11110 pack_tmp = ishft(pack_tmp, -nbits)
11111 idata = idata + 1
11112 data_tmp = ishft(pack_tmp, 16)
11113 ipack = ipack + 1
11114 pack_tmp = packed_data(ipack)
11115 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
11116 pack_tmp = ishft(pack_tmp, -16)
11117 idata = idata + 1
11118 data_tmp = iand(pack_tmp, mask_right(nbits))
11119 full_data(idata) = data_tmp
11120 pack_tmp = ishft(pack_tmp, -nbits)
11121 idata = idata + 1
11122 data_tmp = iand(pack_tmp, mask_right(nbits))
11123 full_data(idata) = data_tmp
11124 pack_tmp = ishft(pack_tmp, -nbits)
11125 idata = idata + 1
11126 data_tmp = iand(pack_tmp, mask_right(nbits))
11127 full_data(idata) = data_tmp
11128 pack_tmp = ishft(pack_tmp, -nbits)
11129 idata = idata + 1
11130 data_tmp = ishft(pack_tmp, 16)
11131 ipack = ipack + 1
11132 pack_tmp = packed_data(ipack)
11133 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
11134 pack_tmp = ishft(pack_tmp, -16)
11135 idata = idata + 1
11136 data_tmp = iand(pack_tmp, mask_right(nbits))
11137 full_data(idata) = data_tmp
11138 pack_tmp = ishft(pack_tmp, -nbits)
11139 idata = idata + 1
11140 data_tmp = iand(pack_tmp, mask_right(nbits))
11141 full_data(idata) = data_tmp
11142 pack_tmp = ishft(pack_tmp, -nbits)
11143 idata = idata + 1
11144 data_tmp = iand(pack_tmp, mask_right(nbits))
11145 full_data(idata) = data_tmp
11146 pack_tmp = ishft(pack_tmp, -nbits)
11147 idata = idata + 1
11148 data_tmp = ishft(pack_tmp, 16)
11149 ipack = ipack + 1
11150 pack_tmp = packed_data(ipack)
11151 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
11152 pack_tmp = ishft(pack_tmp, -16)
11153 idata = idata + 1
11154 data_tmp = iand(pack_tmp, mask_right(nbits))
11155 full_data(idata) = data_tmp
11156 pack_tmp = ishft(pack_tmp, -nbits)
11157 idata = idata + 1
11158 data_tmp = iand(pack_tmp, mask_right(nbits))
11159 full_data(idata) = data_tmp
11160 pack_tmp = ishft(pack_tmp, -nbits)
11161 idata = idata + 1
11162 data_tmp = iand(pack_tmp, mask_right(nbits))
11163 full_data(idata) = data_tmp
11164 pack_tmp = ishft(pack_tmp, -nbits)
11165 idata = idata + 1
11166 data_tmp = ishft(pack_tmp, 16)
11167 ipack = ipack + 1
11168 pack_tmp = packed_data(ipack)
11169 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
11170 pack_tmp = ishft(pack_tmp, -16)
11171 idata = idata + 1
11172 data_tmp = iand(pack_tmp, mask_right(nbits))
11173 full_data(idata) = data_tmp
11174 pack_tmp = ishft(pack_tmp, -nbits)
11175 idata = idata + 1
11176 data_tmp = iand(pack_tmp, mask_right(nbits))
11177 full_data(idata) = data_tmp
11178 pack_tmp = ishft(pack_tmp, -nbits)
11179 idata = idata + 1
11180 data_tmp = iand(pack_tmp, mask_right(nbits))
11181 full_data(idata) = data_tmp
11182 pack_tmp = ishft(pack_tmp, -nbits)
11183 END DO
11184 IF (ndata_rep < ndata) THEN
11185 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
11186 END IF
11187 END SUBROUTINE bits2ints_16
11188
11189! **************************************************************************************************
11190!> \brief ...
11191!> \param Ndata ...
11192!> \param packed_data ...
11193!> \param full_data ...
11194! **************************************************************************************************
11195 SUBROUTINE ints2bits_17(Ndata, packed_data, full_data)
11196 INTEGER, INTENT(IN) :: Ndata
11197 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
11198 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
11199
11200 INTEGER, PARAMETER :: Nbits = 17
11201
11202 INTEGER :: idata, ipack, kdata, Ndata_rep
11203 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
11204
11205 idata = 0
11206 ipack = 0
11207 ndata_rep = (ndata/64)*64
11208 DO kdata = 1, ndata_rep, 64
11209 pack_tmp = 0
11210 idata = idata + 1
11211 data_tmp = full_data(idata)
11212 data_tmp = ishft(data_tmp, 47)
11213 pack_tmp = ior(pack_tmp, data_tmp)
11214 pack_tmp = ishft(pack_tmp, -17)
11215 idata = idata + 1
11216 data_tmp = full_data(idata)
11217 data_tmp = ishft(data_tmp, 47)
11218 pack_tmp = ior(pack_tmp, data_tmp)
11219 pack_tmp = ishft(pack_tmp, -17)
11220 idata = idata + 1
11221 data_tmp = full_data(idata)
11222 data_tmp = ishft(data_tmp, 47)
11223 pack_tmp = ior(pack_tmp, data_tmp)
11224 pack_tmp = ishft(pack_tmp, -13)
11225 idata = idata + 1
11226 data_tmp = full_data(idata)
11227 data_tmp = ishft(data_tmp, 47)
11228 data_tmp = iand(data_tmp, mask_left(13))
11229 pack_tmp = ior(pack_tmp, data_tmp)
11230 ipack = ipack + 1
11231 packed_data(ipack) = pack_tmp
11232 data_tmp = full_data(idata)
11233 pack_tmp = ishft(data_tmp, 60)
11234 pack_tmp = ishft(pack_tmp, -17)
11235 idata = idata + 1
11236 data_tmp = full_data(idata)
11237 data_tmp = ishft(data_tmp, 47)
11238 pack_tmp = ior(pack_tmp, data_tmp)
11239 pack_tmp = ishft(pack_tmp, -17)
11240 idata = idata + 1
11241 data_tmp = full_data(idata)
11242 data_tmp = ishft(data_tmp, 47)
11243 pack_tmp = ior(pack_tmp, data_tmp)
11244 pack_tmp = ishft(pack_tmp, -17)
11245 idata = idata + 1
11246 data_tmp = full_data(idata)
11247 data_tmp = ishft(data_tmp, 47)
11248 pack_tmp = ior(pack_tmp, data_tmp)
11249 pack_tmp = ishft(pack_tmp, -9)
11250 idata = idata + 1
11251 data_tmp = full_data(idata)
11252 data_tmp = ishft(data_tmp, 47)
11253 data_tmp = iand(data_tmp, mask_left(9))
11254 pack_tmp = ior(pack_tmp, data_tmp)
11255 ipack = ipack + 1
11256 packed_data(ipack) = pack_tmp
11257 data_tmp = full_data(idata)
11258 pack_tmp = ishft(data_tmp, 56)
11259 pack_tmp = ishft(pack_tmp, -17)
11260 idata = idata + 1
11261 data_tmp = full_data(idata)
11262 data_tmp = ishft(data_tmp, 47)
11263 pack_tmp = ior(pack_tmp, data_tmp)
11264 pack_tmp = ishft(pack_tmp, -17)
11265 idata = idata + 1
11266 data_tmp = full_data(idata)
11267 data_tmp = ishft(data_tmp, 47)
11268 pack_tmp = ior(pack_tmp, data_tmp)
11269 pack_tmp = ishft(pack_tmp, -17)
11270 idata = idata + 1
11271 data_tmp = full_data(idata)
11272 data_tmp = ishft(data_tmp, 47)
11273 pack_tmp = ior(pack_tmp, data_tmp)
11274 pack_tmp = ishft(pack_tmp, -5)
11275 idata = idata + 1
11276 data_tmp = full_data(idata)
11277 data_tmp = ishft(data_tmp, 47)
11278 data_tmp = iand(data_tmp, mask_left(5))
11279 pack_tmp = ior(pack_tmp, data_tmp)
11280 ipack = ipack + 1
11281 packed_data(ipack) = pack_tmp
11282 data_tmp = full_data(idata)
11283 pack_tmp = ishft(data_tmp, 52)
11284 pack_tmp = ishft(pack_tmp, -17)
11285 idata = idata + 1
11286 data_tmp = full_data(idata)
11287 data_tmp = ishft(data_tmp, 47)
11288 pack_tmp = ior(pack_tmp, data_tmp)
11289 pack_tmp = ishft(pack_tmp, -17)
11290 idata = idata + 1
11291 data_tmp = full_data(idata)
11292 data_tmp = ishft(data_tmp, 47)
11293 pack_tmp = ior(pack_tmp, data_tmp)
11294 pack_tmp = ishft(pack_tmp, -17)
11295 idata = idata + 1
11296 data_tmp = full_data(idata)
11297 data_tmp = ishft(data_tmp, 47)
11298 pack_tmp = ior(pack_tmp, data_tmp)
11299 pack_tmp = ishft(pack_tmp, -1)
11300 idata = idata + 1
11301 data_tmp = full_data(idata)
11302 data_tmp = ishft(data_tmp, 47)
11303 data_tmp = iand(data_tmp, mask_left(1))
11304 pack_tmp = ior(pack_tmp, data_tmp)
11305 ipack = ipack + 1
11306 packed_data(ipack) = pack_tmp
11307 data_tmp = full_data(idata)
11308 pack_tmp = ishft(data_tmp, 48)
11309 pack_tmp = ishft(pack_tmp, -17)
11310 idata = idata + 1
11311 data_tmp = full_data(idata)
11312 data_tmp = ishft(data_tmp, 47)
11313 pack_tmp = ior(pack_tmp, data_tmp)
11314 pack_tmp = ishft(pack_tmp, -17)
11315 idata = idata + 1
11316 data_tmp = full_data(idata)
11317 data_tmp = ishft(data_tmp, 47)
11318 pack_tmp = ior(pack_tmp, data_tmp)
11319 pack_tmp = ishft(pack_tmp, -14)
11320 idata = idata + 1
11321 data_tmp = full_data(idata)
11322 data_tmp = ishft(data_tmp, 47)
11323 data_tmp = iand(data_tmp, mask_left(14))
11324 pack_tmp = ior(pack_tmp, data_tmp)
11325 ipack = ipack + 1
11326 packed_data(ipack) = pack_tmp
11327 data_tmp = full_data(idata)
11328 pack_tmp = ishft(data_tmp, 61)
11329 pack_tmp = ishft(pack_tmp, -17)
11330 idata = idata + 1
11331 data_tmp = full_data(idata)
11332 data_tmp = ishft(data_tmp, 47)
11333 pack_tmp = ior(pack_tmp, data_tmp)
11334 pack_tmp = ishft(pack_tmp, -17)
11335 idata = idata + 1
11336 data_tmp = full_data(idata)
11337 data_tmp = ishft(data_tmp, 47)
11338 pack_tmp = ior(pack_tmp, data_tmp)
11339 pack_tmp = ishft(pack_tmp, -17)
11340 idata = idata + 1
11341 data_tmp = full_data(idata)
11342 data_tmp = ishft(data_tmp, 47)
11343 pack_tmp = ior(pack_tmp, data_tmp)
11344 pack_tmp = ishft(pack_tmp, -10)
11345 idata = idata + 1
11346 data_tmp = full_data(idata)
11347 data_tmp = ishft(data_tmp, 47)
11348 data_tmp = iand(data_tmp, mask_left(10))
11349 pack_tmp = ior(pack_tmp, data_tmp)
11350 ipack = ipack + 1
11351 packed_data(ipack) = pack_tmp
11352 data_tmp = full_data(idata)
11353 pack_tmp = ishft(data_tmp, 57)
11354 pack_tmp = ishft(pack_tmp, -17)
11355 idata = idata + 1
11356 data_tmp = full_data(idata)
11357 data_tmp = ishft(data_tmp, 47)
11358 pack_tmp = ior(pack_tmp, data_tmp)
11359 pack_tmp = ishft(pack_tmp, -17)
11360 idata = idata + 1
11361 data_tmp = full_data(idata)
11362 data_tmp = ishft(data_tmp, 47)
11363 pack_tmp = ior(pack_tmp, data_tmp)
11364 pack_tmp = ishft(pack_tmp, -17)
11365 idata = idata + 1
11366 data_tmp = full_data(idata)
11367 data_tmp = ishft(data_tmp, 47)
11368 pack_tmp = ior(pack_tmp, data_tmp)
11369 pack_tmp = ishft(pack_tmp, -6)
11370 idata = idata + 1
11371 data_tmp = full_data(idata)
11372 data_tmp = ishft(data_tmp, 47)
11373 data_tmp = iand(data_tmp, mask_left(6))
11374 pack_tmp = ior(pack_tmp, data_tmp)
11375 ipack = ipack + 1
11376 packed_data(ipack) = pack_tmp
11377 data_tmp = full_data(idata)
11378 pack_tmp = ishft(data_tmp, 53)
11379 pack_tmp = ishft(pack_tmp, -17)
11380 idata = idata + 1
11381 data_tmp = full_data(idata)
11382 data_tmp = ishft(data_tmp, 47)
11383 pack_tmp = ior(pack_tmp, data_tmp)
11384 pack_tmp = ishft(pack_tmp, -17)
11385 idata = idata + 1
11386 data_tmp = full_data(idata)
11387 data_tmp = ishft(data_tmp, 47)
11388 pack_tmp = ior(pack_tmp, data_tmp)
11389 pack_tmp = ishft(pack_tmp, -17)
11390 idata = idata + 1
11391 data_tmp = full_data(idata)
11392 data_tmp = ishft(data_tmp, 47)
11393 pack_tmp = ior(pack_tmp, data_tmp)
11394 pack_tmp = ishft(pack_tmp, -2)
11395 idata = idata + 1
11396 data_tmp = full_data(idata)
11397 data_tmp = ishft(data_tmp, 47)
11398 data_tmp = iand(data_tmp, mask_left(2))
11399 pack_tmp = ior(pack_tmp, data_tmp)
11400 ipack = ipack + 1
11401 packed_data(ipack) = pack_tmp
11402 data_tmp = full_data(idata)
11403 pack_tmp = ishft(data_tmp, 49)
11404 pack_tmp = ishft(pack_tmp, -17)
11405 idata = idata + 1
11406 data_tmp = full_data(idata)
11407 data_tmp = ishft(data_tmp, 47)
11408 pack_tmp = ior(pack_tmp, data_tmp)
11409 pack_tmp = ishft(pack_tmp, -17)
11410 idata = idata + 1
11411 data_tmp = full_data(idata)
11412 data_tmp = ishft(data_tmp, 47)
11413 pack_tmp = ior(pack_tmp, data_tmp)
11414 pack_tmp = ishft(pack_tmp, -15)
11415 idata = idata + 1
11416 data_tmp = full_data(idata)
11417 data_tmp = ishft(data_tmp, 47)
11418 data_tmp = iand(data_tmp, mask_left(15))
11419 pack_tmp = ior(pack_tmp, data_tmp)
11420 ipack = ipack + 1
11421 packed_data(ipack) = pack_tmp
11422 data_tmp = full_data(idata)
11423 pack_tmp = ishft(data_tmp, 62)
11424 pack_tmp = ishft(pack_tmp, -17)
11425 idata = idata + 1
11426 data_tmp = full_data(idata)
11427 data_tmp = ishft(data_tmp, 47)
11428 pack_tmp = ior(pack_tmp, data_tmp)
11429 pack_tmp = ishft(pack_tmp, -17)
11430 idata = idata + 1
11431 data_tmp = full_data(idata)
11432 data_tmp = ishft(data_tmp, 47)
11433 pack_tmp = ior(pack_tmp, data_tmp)
11434 pack_tmp = ishft(pack_tmp, -17)
11435 idata = idata + 1
11436 data_tmp = full_data(idata)
11437 data_tmp = ishft(data_tmp, 47)
11438 pack_tmp = ior(pack_tmp, data_tmp)
11439 pack_tmp = ishft(pack_tmp, -11)
11440 idata = idata + 1
11441 data_tmp = full_data(idata)
11442 data_tmp = ishft(data_tmp, 47)
11443 data_tmp = iand(data_tmp, mask_left(11))
11444 pack_tmp = ior(pack_tmp, data_tmp)
11445 ipack = ipack + 1
11446 packed_data(ipack) = pack_tmp
11447 data_tmp = full_data(idata)
11448 pack_tmp = ishft(data_tmp, 58)
11449 pack_tmp = ishft(pack_tmp, -17)
11450 idata = idata + 1
11451 data_tmp = full_data(idata)
11452 data_tmp = ishft(data_tmp, 47)
11453 pack_tmp = ior(pack_tmp, data_tmp)
11454 pack_tmp = ishft(pack_tmp, -17)
11455 idata = idata + 1
11456 data_tmp = full_data(idata)
11457 data_tmp = ishft(data_tmp, 47)
11458 pack_tmp = ior(pack_tmp, data_tmp)
11459 pack_tmp = ishft(pack_tmp, -17)
11460 idata = idata + 1
11461 data_tmp = full_data(idata)
11462 data_tmp = ishft(data_tmp, 47)
11463 pack_tmp = ior(pack_tmp, data_tmp)
11464 pack_tmp = ishft(pack_tmp, -7)
11465 idata = idata + 1
11466 data_tmp = full_data(idata)
11467 data_tmp = ishft(data_tmp, 47)
11468 data_tmp = iand(data_tmp, mask_left(7))
11469 pack_tmp = ior(pack_tmp, data_tmp)
11470 ipack = ipack + 1
11471 packed_data(ipack) = pack_tmp
11472 data_tmp = full_data(idata)
11473 pack_tmp = ishft(data_tmp, 54)
11474 pack_tmp = ishft(pack_tmp, -17)
11475 idata = idata + 1
11476 data_tmp = full_data(idata)
11477 data_tmp = ishft(data_tmp, 47)
11478 pack_tmp = ior(pack_tmp, data_tmp)
11479 pack_tmp = ishft(pack_tmp, -17)
11480 idata = idata + 1
11481 data_tmp = full_data(idata)
11482 data_tmp = ishft(data_tmp, 47)
11483 pack_tmp = ior(pack_tmp, data_tmp)
11484 pack_tmp = ishft(pack_tmp, -17)
11485 idata = idata + 1
11486 data_tmp = full_data(idata)
11487 data_tmp = ishft(data_tmp, 47)
11488 pack_tmp = ior(pack_tmp, data_tmp)
11489 pack_tmp = ishft(pack_tmp, -3)
11490 idata = idata + 1
11491 data_tmp = full_data(idata)
11492 data_tmp = ishft(data_tmp, 47)
11493 data_tmp = iand(data_tmp, mask_left(3))
11494 pack_tmp = ior(pack_tmp, data_tmp)
11495 ipack = ipack + 1
11496 packed_data(ipack) = pack_tmp
11497 data_tmp = full_data(idata)
11498 pack_tmp = ishft(data_tmp, 50)
11499 pack_tmp = ishft(pack_tmp, -17)
11500 idata = idata + 1
11501 data_tmp = full_data(idata)
11502 data_tmp = ishft(data_tmp, 47)
11503 pack_tmp = ior(pack_tmp, data_tmp)
11504 pack_tmp = ishft(pack_tmp, -17)
11505 idata = idata + 1
11506 data_tmp = full_data(idata)
11507 data_tmp = ishft(data_tmp, 47)
11508 pack_tmp = ior(pack_tmp, data_tmp)
11509 pack_tmp = ishft(pack_tmp, -16)
11510 idata = idata + 1
11511 data_tmp = full_data(idata)
11512 data_tmp = ishft(data_tmp, 47)
11513 data_tmp = iand(data_tmp, mask_left(16))
11514 pack_tmp = ior(pack_tmp, data_tmp)
11515 ipack = ipack + 1
11516 packed_data(ipack) = pack_tmp
11517 data_tmp = full_data(idata)
11518 pack_tmp = ishft(data_tmp, 63)
11519 pack_tmp = ishft(pack_tmp, -17)
11520 idata = idata + 1
11521 data_tmp = full_data(idata)
11522 data_tmp = ishft(data_tmp, 47)
11523 pack_tmp = ior(pack_tmp, data_tmp)
11524 pack_tmp = ishft(pack_tmp, -17)
11525 idata = idata + 1
11526 data_tmp = full_data(idata)
11527 data_tmp = ishft(data_tmp, 47)
11528 pack_tmp = ior(pack_tmp, data_tmp)
11529 pack_tmp = ishft(pack_tmp, -17)
11530 idata = idata + 1
11531 data_tmp = full_data(idata)
11532 data_tmp = ishft(data_tmp, 47)
11533 pack_tmp = ior(pack_tmp, data_tmp)
11534 pack_tmp = ishft(pack_tmp, -12)
11535 idata = idata + 1
11536 data_tmp = full_data(idata)
11537 data_tmp = ishft(data_tmp, 47)
11538 data_tmp = iand(data_tmp, mask_left(12))
11539 pack_tmp = ior(pack_tmp, data_tmp)
11540 ipack = ipack + 1
11541 packed_data(ipack) = pack_tmp
11542 data_tmp = full_data(idata)
11543 pack_tmp = ishft(data_tmp, 59)
11544 pack_tmp = ishft(pack_tmp, -17)
11545 idata = idata + 1
11546 data_tmp = full_data(idata)
11547 data_tmp = ishft(data_tmp, 47)
11548 pack_tmp = ior(pack_tmp, data_tmp)
11549 pack_tmp = ishft(pack_tmp, -17)
11550 idata = idata + 1
11551 data_tmp = full_data(idata)
11552 data_tmp = ishft(data_tmp, 47)
11553 pack_tmp = ior(pack_tmp, data_tmp)
11554 pack_tmp = ishft(pack_tmp, -17)
11555 idata = idata + 1
11556 data_tmp = full_data(idata)
11557 data_tmp = ishft(data_tmp, 47)
11558 pack_tmp = ior(pack_tmp, data_tmp)
11559 pack_tmp = ishft(pack_tmp, -8)
11560 idata = idata + 1
11561 data_tmp = full_data(idata)
11562 data_tmp = ishft(data_tmp, 47)
11563 data_tmp = iand(data_tmp, mask_left(8))
11564 pack_tmp = ior(pack_tmp, data_tmp)
11565 ipack = ipack + 1
11566 packed_data(ipack) = pack_tmp
11567 data_tmp = full_data(idata)
11568 pack_tmp = ishft(data_tmp, 55)
11569 pack_tmp = ishft(pack_tmp, -17)
11570 idata = idata + 1
11571 data_tmp = full_data(idata)
11572 data_tmp = ishft(data_tmp, 47)
11573 pack_tmp = ior(pack_tmp, data_tmp)
11574 pack_tmp = ishft(pack_tmp, -17)
11575 idata = idata + 1
11576 data_tmp = full_data(idata)
11577 data_tmp = ishft(data_tmp, 47)
11578 pack_tmp = ior(pack_tmp, data_tmp)
11579 pack_tmp = ishft(pack_tmp, -17)
11580 idata = idata + 1
11581 data_tmp = full_data(idata)
11582 data_tmp = ishft(data_tmp, 47)
11583 pack_tmp = ior(pack_tmp, data_tmp)
11584 pack_tmp = ishft(pack_tmp, -4)
11585 idata = idata + 1
11586 data_tmp = full_data(idata)
11587 data_tmp = ishft(data_tmp, 47)
11588 data_tmp = iand(data_tmp, mask_left(4))
11589 pack_tmp = ior(pack_tmp, data_tmp)
11590 ipack = ipack + 1
11591 packed_data(ipack) = pack_tmp
11592 data_tmp = full_data(idata)
11593 pack_tmp = ishft(data_tmp, 51)
11594 pack_tmp = ishft(pack_tmp, -17)
11595 idata = idata + 1
11596 data_tmp = full_data(idata)
11597 data_tmp = ishft(data_tmp, 47)
11598 pack_tmp = ior(pack_tmp, data_tmp)
11599 pack_tmp = ishft(pack_tmp, -17)
11600 idata = idata + 1
11601 data_tmp = full_data(idata)
11602 data_tmp = ishft(data_tmp, 47)
11603 pack_tmp = ior(pack_tmp, data_tmp)
11604 pack_tmp = ishft(pack_tmp, -17)
11605 idata = idata + 1
11606 data_tmp = full_data(idata)
11607 data_tmp = ishft(data_tmp, 47)
11608 pack_tmp = ior(pack_tmp, data_tmp)
11609 pack_tmp = ishft(pack_tmp, 0)
11610 pack_tmp = ishft(pack_tmp, 0)
11611 ipack = ipack + 1
11612 packed_data(ipack) = pack_tmp
11613 END DO
11614 IF (ndata_rep < ndata) THEN
11615 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
11616 END IF
11617 END SUBROUTINE ints2bits_17
11618
11619! **************************************************************************************************
11620!> \brief ...
11621!> \param Ndata ...
11622!> \param packed_data ...
11623!> \param full_data ...
11624! **************************************************************************************************
11625 SUBROUTINE bits2ints_17(Ndata, packed_data, full_data)
11626 INTEGER, INTENT(IN) :: Ndata
11627 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
11628 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
11629
11630 INTEGER, PARAMETER :: Nbits = 17
11631
11632 INTEGER :: idata, ipack, kdata, Ndata_rep
11633 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
11634
11635 ipack = 0
11636 idata = 0
11637 pack_tmp = 0
11638 ndata_rep = (ndata/64)*64
11639 DO kdata = 1, ndata_rep, 64
11640 idata = idata + 1
11641 data_tmp = ishft(pack_tmp, 17)
11642 ipack = ipack + 1
11643 pack_tmp = packed_data(ipack)
11644 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
11645 pack_tmp = ishft(pack_tmp, -17)
11646 idata = idata + 1
11647 data_tmp = iand(pack_tmp, mask_right(nbits))
11648 full_data(idata) = data_tmp
11649 pack_tmp = ishft(pack_tmp, -nbits)
11650 idata = idata + 1
11651 data_tmp = iand(pack_tmp, mask_right(nbits))
11652 full_data(idata) = data_tmp
11653 pack_tmp = ishft(pack_tmp, -nbits)
11654 idata = idata + 1
11655 data_tmp = ishft(pack_tmp, 4)
11656 ipack = ipack + 1
11657 pack_tmp = packed_data(ipack)
11658 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
11659 pack_tmp = ishft(pack_tmp, -4)
11660 idata = idata + 1
11661 data_tmp = iand(pack_tmp, mask_right(nbits))
11662 full_data(idata) = data_tmp
11663 pack_tmp = ishft(pack_tmp, -nbits)
11664 idata = idata + 1
11665 data_tmp = iand(pack_tmp, mask_right(nbits))
11666 full_data(idata) = data_tmp
11667 pack_tmp = ishft(pack_tmp, -nbits)
11668 idata = idata + 1
11669 data_tmp = iand(pack_tmp, mask_right(nbits))
11670 full_data(idata) = data_tmp
11671 pack_tmp = ishft(pack_tmp, -nbits)
11672 idata = idata + 1
11673 data_tmp = ishft(pack_tmp, 8)
11674 ipack = ipack + 1
11675 pack_tmp = packed_data(ipack)
11676 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
11677 pack_tmp = ishft(pack_tmp, -8)
11678 idata = idata + 1
11679 data_tmp = iand(pack_tmp, mask_right(nbits))
11680 full_data(idata) = data_tmp
11681 pack_tmp = ishft(pack_tmp, -nbits)
11682 idata = idata + 1
11683 data_tmp = iand(pack_tmp, mask_right(nbits))
11684 full_data(idata) = data_tmp
11685 pack_tmp = ishft(pack_tmp, -nbits)
11686 idata = idata + 1
11687 data_tmp = iand(pack_tmp, mask_right(nbits))
11688 full_data(idata) = data_tmp
11689 pack_tmp = ishft(pack_tmp, -nbits)
11690 idata = idata + 1
11691 data_tmp = ishft(pack_tmp, 12)
11692 ipack = ipack + 1
11693 pack_tmp = packed_data(ipack)
11694 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
11695 pack_tmp = ishft(pack_tmp, -12)
11696 idata = idata + 1
11697 data_tmp = iand(pack_tmp, mask_right(nbits))
11698 full_data(idata) = data_tmp
11699 pack_tmp = ishft(pack_tmp, -nbits)
11700 idata = idata + 1
11701 data_tmp = iand(pack_tmp, mask_right(nbits))
11702 full_data(idata) = data_tmp
11703 pack_tmp = ishft(pack_tmp, -nbits)
11704 idata = idata + 1
11705 data_tmp = iand(pack_tmp, mask_right(nbits))
11706 full_data(idata) = data_tmp
11707 pack_tmp = ishft(pack_tmp, -nbits)
11708 idata = idata + 1
11709 data_tmp = ishft(pack_tmp, 16)
11710 ipack = ipack + 1
11711 pack_tmp = packed_data(ipack)
11712 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
11713 pack_tmp = ishft(pack_tmp, -16)
11714 idata = idata + 1
11715 data_tmp = iand(pack_tmp, mask_right(nbits))
11716 full_data(idata) = data_tmp
11717 pack_tmp = ishft(pack_tmp, -nbits)
11718 idata = idata + 1
11719 data_tmp = iand(pack_tmp, mask_right(nbits))
11720 full_data(idata) = data_tmp
11721 pack_tmp = ishft(pack_tmp, -nbits)
11722 idata = idata + 1
11723 data_tmp = ishft(pack_tmp, 3)
11724 ipack = ipack + 1
11725 pack_tmp = packed_data(ipack)
11726 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
11727 pack_tmp = ishft(pack_tmp, -3)
11728 idata = idata + 1
11729 data_tmp = iand(pack_tmp, mask_right(nbits))
11730 full_data(idata) = data_tmp
11731 pack_tmp = ishft(pack_tmp, -nbits)
11732 idata = idata + 1
11733 data_tmp = iand(pack_tmp, mask_right(nbits))
11734 full_data(idata) = data_tmp
11735 pack_tmp = ishft(pack_tmp, -nbits)
11736 idata = idata + 1
11737 data_tmp = iand(pack_tmp, mask_right(nbits))
11738 full_data(idata) = data_tmp
11739 pack_tmp = ishft(pack_tmp, -nbits)
11740 idata = idata + 1
11741 data_tmp = ishft(pack_tmp, 7)
11742 ipack = ipack + 1
11743 pack_tmp = packed_data(ipack)
11744 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
11745 pack_tmp = ishft(pack_tmp, -7)
11746 idata = idata + 1
11747 data_tmp = iand(pack_tmp, mask_right(nbits))
11748 full_data(idata) = data_tmp
11749 pack_tmp = ishft(pack_tmp, -nbits)
11750 idata = idata + 1
11751 data_tmp = iand(pack_tmp, mask_right(nbits))
11752 full_data(idata) = data_tmp
11753 pack_tmp = ishft(pack_tmp, -nbits)
11754 idata = idata + 1
11755 data_tmp = iand(pack_tmp, mask_right(nbits))
11756 full_data(idata) = data_tmp
11757 pack_tmp = ishft(pack_tmp, -nbits)
11758 idata = idata + 1
11759 data_tmp = ishft(pack_tmp, 11)
11760 ipack = ipack + 1
11761 pack_tmp = packed_data(ipack)
11762 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
11763 pack_tmp = ishft(pack_tmp, -11)
11764 idata = idata + 1
11765 data_tmp = iand(pack_tmp, mask_right(nbits))
11766 full_data(idata) = data_tmp
11767 pack_tmp = ishft(pack_tmp, -nbits)
11768 idata = idata + 1
11769 data_tmp = iand(pack_tmp, mask_right(nbits))
11770 full_data(idata) = data_tmp
11771 pack_tmp = ishft(pack_tmp, -nbits)
11772 idata = idata + 1
11773 data_tmp = iand(pack_tmp, mask_right(nbits))
11774 full_data(idata) = data_tmp
11775 pack_tmp = ishft(pack_tmp, -nbits)
11776 idata = idata + 1
11777 data_tmp = ishft(pack_tmp, 15)
11778 ipack = ipack + 1
11779 pack_tmp = packed_data(ipack)
11780 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
11781 pack_tmp = ishft(pack_tmp, -15)
11782 idata = idata + 1
11783 data_tmp = iand(pack_tmp, mask_right(nbits))
11784 full_data(idata) = data_tmp
11785 pack_tmp = ishft(pack_tmp, -nbits)
11786 idata = idata + 1
11787 data_tmp = iand(pack_tmp, mask_right(nbits))
11788 full_data(idata) = data_tmp
11789 pack_tmp = ishft(pack_tmp, -nbits)
11790 idata = idata + 1
11791 data_tmp = ishft(pack_tmp, 2)
11792 ipack = ipack + 1
11793 pack_tmp = packed_data(ipack)
11794 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
11795 pack_tmp = ishft(pack_tmp, -2)
11796 idata = idata + 1
11797 data_tmp = iand(pack_tmp, mask_right(nbits))
11798 full_data(idata) = data_tmp
11799 pack_tmp = ishft(pack_tmp, -nbits)
11800 idata = idata + 1
11801 data_tmp = iand(pack_tmp, mask_right(nbits))
11802 full_data(idata) = data_tmp
11803 pack_tmp = ishft(pack_tmp, -nbits)
11804 idata = idata + 1
11805 data_tmp = iand(pack_tmp, mask_right(nbits))
11806 full_data(idata) = data_tmp
11807 pack_tmp = ishft(pack_tmp, -nbits)
11808 idata = idata + 1
11809 data_tmp = ishft(pack_tmp, 6)
11810 ipack = ipack + 1
11811 pack_tmp = packed_data(ipack)
11812 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
11813 pack_tmp = ishft(pack_tmp, -6)
11814 idata = idata + 1
11815 data_tmp = iand(pack_tmp, mask_right(nbits))
11816 full_data(idata) = data_tmp
11817 pack_tmp = ishft(pack_tmp, -nbits)
11818 idata = idata + 1
11819 data_tmp = iand(pack_tmp, mask_right(nbits))
11820 full_data(idata) = data_tmp
11821 pack_tmp = ishft(pack_tmp, -nbits)
11822 idata = idata + 1
11823 data_tmp = iand(pack_tmp, mask_right(nbits))
11824 full_data(idata) = data_tmp
11825 pack_tmp = ishft(pack_tmp, -nbits)
11826 idata = idata + 1
11827 data_tmp = ishft(pack_tmp, 10)
11828 ipack = ipack + 1
11829 pack_tmp = packed_data(ipack)
11830 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
11831 pack_tmp = ishft(pack_tmp, -10)
11832 idata = idata + 1
11833 data_tmp = iand(pack_tmp, mask_right(nbits))
11834 full_data(idata) = data_tmp
11835 pack_tmp = ishft(pack_tmp, -nbits)
11836 idata = idata + 1
11837 data_tmp = iand(pack_tmp, mask_right(nbits))
11838 full_data(idata) = data_tmp
11839 pack_tmp = ishft(pack_tmp, -nbits)
11840 idata = idata + 1
11841 data_tmp = iand(pack_tmp, mask_right(nbits))
11842 full_data(idata) = data_tmp
11843 pack_tmp = ishft(pack_tmp, -nbits)
11844 idata = idata + 1
11845 data_tmp = ishft(pack_tmp, 14)
11846 ipack = ipack + 1
11847 pack_tmp = packed_data(ipack)
11848 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
11849 pack_tmp = ishft(pack_tmp, -14)
11850 idata = idata + 1
11851 data_tmp = iand(pack_tmp, mask_right(nbits))
11852 full_data(idata) = data_tmp
11853 pack_tmp = ishft(pack_tmp, -nbits)
11854 idata = idata + 1
11855 data_tmp = iand(pack_tmp, mask_right(nbits))
11856 full_data(idata) = data_tmp
11857 pack_tmp = ishft(pack_tmp, -nbits)
11858 idata = idata + 1
11859 data_tmp = ishft(pack_tmp, 1)
11860 ipack = ipack + 1
11861 pack_tmp = packed_data(ipack)
11862 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
11863 pack_tmp = ishft(pack_tmp, -1)
11864 idata = idata + 1
11865 data_tmp = iand(pack_tmp, mask_right(nbits))
11866 full_data(idata) = data_tmp
11867 pack_tmp = ishft(pack_tmp, -nbits)
11868 idata = idata + 1
11869 data_tmp = iand(pack_tmp, mask_right(nbits))
11870 full_data(idata) = data_tmp
11871 pack_tmp = ishft(pack_tmp, -nbits)
11872 idata = idata + 1
11873 data_tmp = iand(pack_tmp, mask_right(nbits))
11874 full_data(idata) = data_tmp
11875 pack_tmp = ishft(pack_tmp, -nbits)
11876 idata = idata + 1
11877 data_tmp = ishft(pack_tmp, 5)
11878 ipack = ipack + 1
11879 pack_tmp = packed_data(ipack)
11880 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
11881 pack_tmp = ishft(pack_tmp, -5)
11882 idata = idata + 1
11883 data_tmp = iand(pack_tmp, mask_right(nbits))
11884 full_data(idata) = data_tmp
11885 pack_tmp = ishft(pack_tmp, -nbits)
11886 idata = idata + 1
11887 data_tmp = iand(pack_tmp, mask_right(nbits))
11888 full_data(idata) = data_tmp
11889 pack_tmp = ishft(pack_tmp, -nbits)
11890 idata = idata + 1
11891 data_tmp = iand(pack_tmp, mask_right(nbits))
11892 full_data(idata) = data_tmp
11893 pack_tmp = ishft(pack_tmp, -nbits)
11894 idata = idata + 1
11895 data_tmp = ishft(pack_tmp, 9)
11896 ipack = ipack + 1
11897 pack_tmp = packed_data(ipack)
11898 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
11899 pack_tmp = ishft(pack_tmp, -9)
11900 idata = idata + 1
11901 data_tmp = iand(pack_tmp, mask_right(nbits))
11902 full_data(idata) = data_tmp
11903 pack_tmp = ishft(pack_tmp, -nbits)
11904 idata = idata + 1
11905 data_tmp = iand(pack_tmp, mask_right(nbits))
11906 full_data(idata) = data_tmp
11907 pack_tmp = ishft(pack_tmp, -nbits)
11908 idata = idata + 1
11909 data_tmp = iand(pack_tmp, mask_right(nbits))
11910 full_data(idata) = data_tmp
11911 pack_tmp = ishft(pack_tmp, -nbits)
11912 idata = idata + 1
11913 data_tmp = ishft(pack_tmp, 13)
11914 ipack = ipack + 1
11915 pack_tmp = packed_data(ipack)
11916 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
11917 pack_tmp = ishft(pack_tmp, -13)
11918 idata = idata + 1
11919 data_tmp = iand(pack_tmp, mask_right(nbits))
11920 full_data(idata) = data_tmp
11921 pack_tmp = ishft(pack_tmp, -nbits)
11922 idata = idata + 1
11923 data_tmp = iand(pack_tmp, mask_right(nbits))
11924 full_data(idata) = data_tmp
11925 pack_tmp = ishft(pack_tmp, -nbits)
11926 idata = idata + 1
11927 data_tmp = iand(pack_tmp, mask_right(nbits))
11928 full_data(idata) = data_tmp
11929 pack_tmp = ishft(pack_tmp, -nbits)
11930 END DO
11931 IF (ndata_rep < ndata) THEN
11932 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
11933 END IF
11934 END SUBROUTINE bits2ints_17
11935
11936! **************************************************************************************************
11937!> \brief ...
11938!> \param Ndata ...
11939!> \param packed_data ...
11940!> \param full_data ...
11941! **************************************************************************************************
11942 SUBROUTINE ints2bits_18(Ndata, packed_data, full_data)
11943 INTEGER, INTENT(IN) :: Ndata
11944 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
11945 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
11946
11947 INTEGER, PARAMETER :: Nbits = 18
11948
11949 INTEGER :: idata, ipack, kdata, Ndata_rep
11950 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
11951
11952 idata = 0
11953 ipack = 0
11954 ndata_rep = (ndata/64)*64
11955 DO kdata = 1, ndata_rep, 64
11956 pack_tmp = 0
11957 idata = idata + 1
11958 data_tmp = full_data(idata)
11959 data_tmp = ishft(data_tmp, 46)
11960 pack_tmp = ior(pack_tmp, data_tmp)
11961 pack_tmp = ishft(pack_tmp, -18)
11962 idata = idata + 1
11963 data_tmp = full_data(idata)
11964 data_tmp = ishft(data_tmp, 46)
11965 pack_tmp = ior(pack_tmp, data_tmp)
11966 pack_tmp = ishft(pack_tmp, -18)
11967 idata = idata + 1
11968 data_tmp = full_data(idata)
11969 data_tmp = ishft(data_tmp, 46)
11970 pack_tmp = ior(pack_tmp, data_tmp)
11971 pack_tmp = ishft(pack_tmp, -10)
11972 idata = idata + 1
11973 data_tmp = full_data(idata)
11974 data_tmp = ishft(data_tmp, 46)
11975 data_tmp = iand(data_tmp, mask_left(10))
11976 pack_tmp = ior(pack_tmp, data_tmp)
11977 ipack = ipack + 1
11978 packed_data(ipack) = pack_tmp
11979 data_tmp = full_data(idata)
11980 pack_tmp = ishft(data_tmp, 56)
11981 pack_tmp = ishft(pack_tmp, -18)
11982 idata = idata + 1
11983 data_tmp = full_data(idata)
11984 data_tmp = ishft(data_tmp, 46)
11985 pack_tmp = ior(pack_tmp, data_tmp)
11986 pack_tmp = ishft(pack_tmp, -18)
11987 idata = idata + 1
11988 data_tmp = full_data(idata)
11989 data_tmp = ishft(data_tmp, 46)
11990 pack_tmp = ior(pack_tmp, data_tmp)
11991 pack_tmp = ishft(pack_tmp, -18)
11992 idata = idata + 1
11993 data_tmp = full_data(idata)
11994 data_tmp = ishft(data_tmp, 46)
11995 pack_tmp = ior(pack_tmp, data_tmp)
11996 pack_tmp = ishft(pack_tmp, -2)
11997 idata = idata + 1
11998 data_tmp = full_data(idata)
11999 data_tmp = ishft(data_tmp, 46)
12000 data_tmp = iand(data_tmp, mask_left(2))
12001 pack_tmp = ior(pack_tmp, data_tmp)
12002 ipack = ipack + 1
12003 packed_data(ipack) = pack_tmp
12004 data_tmp = full_data(idata)
12005 pack_tmp = ishft(data_tmp, 48)
12006 pack_tmp = ishft(pack_tmp, -18)
12007 idata = idata + 1
12008 data_tmp = full_data(idata)
12009 data_tmp = ishft(data_tmp, 46)
12010 pack_tmp = ior(pack_tmp, data_tmp)
12011 pack_tmp = ishft(pack_tmp, -18)
12012 idata = idata + 1
12013 data_tmp = full_data(idata)
12014 data_tmp = ishft(data_tmp, 46)
12015 pack_tmp = ior(pack_tmp, data_tmp)
12016 pack_tmp = ishft(pack_tmp, -12)
12017 idata = idata + 1
12018 data_tmp = full_data(idata)
12019 data_tmp = ishft(data_tmp, 46)
12020 data_tmp = iand(data_tmp, mask_left(12))
12021 pack_tmp = ior(pack_tmp, data_tmp)
12022 ipack = ipack + 1
12023 packed_data(ipack) = pack_tmp
12024 data_tmp = full_data(idata)
12025 pack_tmp = ishft(data_tmp, 58)
12026 pack_tmp = ishft(pack_tmp, -18)
12027 idata = idata + 1
12028 data_tmp = full_data(idata)
12029 data_tmp = ishft(data_tmp, 46)
12030 pack_tmp = ior(pack_tmp, data_tmp)
12031 pack_tmp = ishft(pack_tmp, -18)
12032 idata = idata + 1
12033 data_tmp = full_data(idata)
12034 data_tmp = ishft(data_tmp, 46)
12035 pack_tmp = ior(pack_tmp, data_tmp)
12036 pack_tmp = ishft(pack_tmp, -18)
12037 idata = idata + 1
12038 data_tmp = full_data(idata)
12039 data_tmp = ishft(data_tmp, 46)
12040 pack_tmp = ior(pack_tmp, data_tmp)
12041 pack_tmp = ishft(pack_tmp, -4)
12042 idata = idata + 1
12043 data_tmp = full_data(idata)
12044 data_tmp = ishft(data_tmp, 46)
12045 data_tmp = iand(data_tmp, mask_left(4))
12046 pack_tmp = ior(pack_tmp, data_tmp)
12047 ipack = ipack + 1
12048 packed_data(ipack) = pack_tmp
12049 data_tmp = full_data(idata)
12050 pack_tmp = ishft(data_tmp, 50)
12051 pack_tmp = ishft(pack_tmp, -18)
12052 idata = idata + 1
12053 data_tmp = full_data(idata)
12054 data_tmp = ishft(data_tmp, 46)
12055 pack_tmp = ior(pack_tmp, data_tmp)
12056 pack_tmp = ishft(pack_tmp, -18)
12057 idata = idata + 1
12058 data_tmp = full_data(idata)
12059 data_tmp = ishft(data_tmp, 46)
12060 pack_tmp = ior(pack_tmp, data_tmp)
12061 pack_tmp = ishft(pack_tmp, -14)
12062 idata = idata + 1
12063 data_tmp = full_data(idata)
12064 data_tmp = ishft(data_tmp, 46)
12065 data_tmp = iand(data_tmp, mask_left(14))
12066 pack_tmp = ior(pack_tmp, data_tmp)
12067 ipack = ipack + 1
12068 packed_data(ipack) = pack_tmp
12069 data_tmp = full_data(idata)
12070 pack_tmp = ishft(data_tmp, 60)
12071 pack_tmp = ishft(pack_tmp, -18)
12072 idata = idata + 1
12073 data_tmp = full_data(idata)
12074 data_tmp = ishft(data_tmp, 46)
12075 pack_tmp = ior(pack_tmp, data_tmp)
12076 pack_tmp = ishft(pack_tmp, -18)
12077 idata = idata + 1
12078 data_tmp = full_data(idata)
12079 data_tmp = ishft(data_tmp, 46)
12080 pack_tmp = ior(pack_tmp, data_tmp)
12081 pack_tmp = ishft(pack_tmp, -18)
12082 idata = idata + 1
12083 data_tmp = full_data(idata)
12084 data_tmp = ishft(data_tmp, 46)
12085 pack_tmp = ior(pack_tmp, data_tmp)
12086 pack_tmp = ishft(pack_tmp, -6)
12087 idata = idata + 1
12088 data_tmp = full_data(idata)
12089 data_tmp = ishft(data_tmp, 46)
12090 data_tmp = iand(data_tmp, mask_left(6))
12091 pack_tmp = ior(pack_tmp, data_tmp)
12092 ipack = ipack + 1
12093 packed_data(ipack) = pack_tmp
12094 data_tmp = full_data(idata)
12095 pack_tmp = ishft(data_tmp, 52)
12096 pack_tmp = ishft(pack_tmp, -18)
12097 idata = idata + 1
12098 data_tmp = full_data(idata)
12099 data_tmp = ishft(data_tmp, 46)
12100 pack_tmp = ior(pack_tmp, data_tmp)
12101 pack_tmp = ishft(pack_tmp, -18)
12102 idata = idata + 1
12103 data_tmp = full_data(idata)
12104 data_tmp = ishft(data_tmp, 46)
12105 pack_tmp = ior(pack_tmp, data_tmp)
12106 pack_tmp = ishft(pack_tmp, -16)
12107 idata = idata + 1
12108 data_tmp = full_data(idata)
12109 data_tmp = ishft(data_tmp, 46)
12110 data_tmp = iand(data_tmp, mask_left(16))
12111 pack_tmp = ior(pack_tmp, data_tmp)
12112 ipack = ipack + 1
12113 packed_data(ipack) = pack_tmp
12114 data_tmp = full_data(idata)
12115 pack_tmp = ishft(data_tmp, 62)
12116 pack_tmp = ishft(pack_tmp, -18)
12117 idata = idata + 1
12118 data_tmp = full_data(idata)
12119 data_tmp = ishft(data_tmp, 46)
12120 pack_tmp = ior(pack_tmp, data_tmp)
12121 pack_tmp = ishft(pack_tmp, -18)
12122 idata = idata + 1
12123 data_tmp = full_data(idata)
12124 data_tmp = ishft(data_tmp, 46)
12125 pack_tmp = ior(pack_tmp, data_tmp)
12126 pack_tmp = ishft(pack_tmp, -18)
12127 idata = idata + 1
12128 data_tmp = full_data(idata)
12129 data_tmp = ishft(data_tmp, 46)
12130 pack_tmp = ior(pack_tmp, data_tmp)
12131 pack_tmp = ishft(pack_tmp, -8)
12132 idata = idata + 1
12133 data_tmp = full_data(idata)
12134 data_tmp = ishft(data_tmp, 46)
12135 data_tmp = iand(data_tmp, mask_left(8))
12136 pack_tmp = ior(pack_tmp, data_tmp)
12137 ipack = ipack + 1
12138 packed_data(ipack) = pack_tmp
12139 data_tmp = full_data(idata)
12140 pack_tmp = ishft(data_tmp, 54)
12141 pack_tmp = ishft(pack_tmp, -18)
12142 idata = idata + 1
12143 data_tmp = full_data(idata)
12144 data_tmp = ishft(data_tmp, 46)
12145 pack_tmp = ior(pack_tmp, data_tmp)
12146 pack_tmp = ishft(pack_tmp, -18)
12147 idata = idata + 1
12148 data_tmp = full_data(idata)
12149 data_tmp = ishft(data_tmp, 46)
12150 pack_tmp = ior(pack_tmp, data_tmp)
12151 pack_tmp = ishft(pack_tmp, -18)
12152 idata = idata + 1
12153 data_tmp = full_data(idata)
12154 data_tmp = ishft(data_tmp, 46)
12155 pack_tmp = ior(pack_tmp, data_tmp)
12156 pack_tmp = ishft(pack_tmp, 0)
12157 idata = idata + 1
12158 data_tmp = full_data(idata)
12159 data_tmp = ishft(data_tmp, 46)
12160 data_tmp = iand(data_tmp, mask_left(0))
12161 pack_tmp = ior(pack_tmp, data_tmp)
12162 ipack = ipack + 1
12163 packed_data(ipack) = pack_tmp
12164 data_tmp = full_data(idata)
12165 pack_tmp = ishft(data_tmp, 46)
12166 pack_tmp = ishft(pack_tmp, -18)
12167 idata = idata + 1
12168 data_tmp = full_data(idata)
12169 data_tmp = ishft(data_tmp, 46)
12170 pack_tmp = ior(pack_tmp, data_tmp)
12171 pack_tmp = ishft(pack_tmp, -18)
12172 idata = idata + 1
12173 data_tmp = full_data(idata)
12174 data_tmp = ishft(data_tmp, 46)
12175 pack_tmp = ior(pack_tmp, data_tmp)
12176 pack_tmp = ishft(pack_tmp, -10)
12177 idata = idata + 1
12178 data_tmp = full_data(idata)
12179 data_tmp = ishft(data_tmp, 46)
12180 data_tmp = iand(data_tmp, mask_left(10))
12181 pack_tmp = ior(pack_tmp, data_tmp)
12182 ipack = ipack + 1
12183 packed_data(ipack) = pack_tmp
12184 data_tmp = full_data(idata)
12185 pack_tmp = ishft(data_tmp, 56)
12186 pack_tmp = ishft(pack_tmp, -18)
12187 idata = idata + 1
12188 data_tmp = full_data(idata)
12189 data_tmp = ishft(data_tmp, 46)
12190 pack_tmp = ior(pack_tmp, data_tmp)
12191 pack_tmp = ishft(pack_tmp, -18)
12192 idata = idata + 1
12193 data_tmp = full_data(idata)
12194 data_tmp = ishft(data_tmp, 46)
12195 pack_tmp = ior(pack_tmp, data_tmp)
12196 pack_tmp = ishft(pack_tmp, -18)
12197 idata = idata + 1
12198 data_tmp = full_data(idata)
12199 data_tmp = ishft(data_tmp, 46)
12200 pack_tmp = ior(pack_tmp, data_tmp)
12201 pack_tmp = ishft(pack_tmp, -2)
12202 idata = idata + 1
12203 data_tmp = full_data(idata)
12204 data_tmp = ishft(data_tmp, 46)
12205 data_tmp = iand(data_tmp, mask_left(2))
12206 pack_tmp = ior(pack_tmp, data_tmp)
12207 ipack = ipack + 1
12208 packed_data(ipack) = pack_tmp
12209 data_tmp = full_data(idata)
12210 pack_tmp = ishft(data_tmp, 48)
12211 pack_tmp = ishft(pack_tmp, -18)
12212 idata = idata + 1
12213 data_tmp = full_data(idata)
12214 data_tmp = ishft(data_tmp, 46)
12215 pack_tmp = ior(pack_tmp, data_tmp)
12216 pack_tmp = ishft(pack_tmp, -18)
12217 idata = idata + 1
12218 data_tmp = full_data(idata)
12219 data_tmp = ishft(data_tmp, 46)
12220 pack_tmp = ior(pack_tmp, data_tmp)
12221 pack_tmp = ishft(pack_tmp, -12)
12222 idata = idata + 1
12223 data_tmp = full_data(idata)
12224 data_tmp = ishft(data_tmp, 46)
12225 data_tmp = iand(data_tmp, mask_left(12))
12226 pack_tmp = ior(pack_tmp, data_tmp)
12227 ipack = ipack + 1
12228 packed_data(ipack) = pack_tmp
12229 data_tmp = full_data(idata)
12230 pack_tmp = ishft(data_tmp, 58)
12231 pack_tmp = ishft(pack_tmp, -18)
12232 idata = idata + 1
12233 data_tmp = full_data(idata)
12234 data_tmp = ishft(data_tmp, 46)
12235 pack_tmp = ior(pack_tmp, data_tmp)
12236 pack_tmp = ishft(pack_tmp, -18)
12237 idata = idata + 1
12238 data_tmp = full_data(idata)
12239 data_tmp = ishft(data_tmp, 46)
12240 pack_tmp = ior(pack_tmp, data_tmp)
12241 pack_tmp = ishft(pack_tmp, -18)
12242 idata = idata + 1
12243 data_tmp = full_data(idata)
12244 data_tmp = ishft(data_tmp, 46)
12245 pack_tmp = ior(pack_tmp, data_tmp)
12246 pack_tmp = ishft(pack_tmp, -4)
12247 idata = idata + 1
12248 data_tmp = full_data(idata)
12249 data_tmp = ishft(data_tmp, 46)
12250 data_tmp = iand(data_tmp, mask_left(4))
12251 pack_tmp = ior(pack_tmp, data_tmp)
12252 ipack = ipack + 1
12253 packed_data(ipack) = pack_tmp
12254 data_tmp = full_data(idata)
12255 pack_tmp = ishft(data_tmp, 50)
12256 pack_tmp = ishft(pack_tmp, -18)
12257 idata = idata + 1
12258 data_tmp = full_data(idata)
12259 data_tmp = ishft(data_tmp, 46)
12260 pack_tmp = ior(pack_tmp, data_tmp)
12261 pack_tmp = ishft(pack_tmp, -18)
12262 idata = idata + 1
12263 data_tmp = full_data(idata)
12264 data_tmp = ishft(data_tmp, 46)
12265 pack_tmp = ior(pack_tmp, data_tmp)
12266 pack_tmp = ishft(pack_tmp, -14)
12267 idata = idata + 1
12268 data_tmp = full_data(idata)
12269 data_tmp = ishft(data_tmp, 46)
12270 data_tmp = iand(data_tmp, mask_left(14))
12271 pack_tmp = ior(pack_tmp, data_tmp)
12272 ipack = ipack + 1
12273 packed_data(ipack) = pack_tmp
12274 data_tmp = full_data(idata)
12275 pack_tmp = ishft(data_tmp, 60)
12276 pack_tmp = ishft(pack_tmp, -18)
12277 idata = idata + 1
12278 data_tmp = full_data(idata)
12279 data_tmp = ishft(data_tmp, 46)
12280 pack_tmp = ior(pack_tmp, data_tmp)
12281 pack_tmp = ishft(pack_tmp, -18)
12282 idata = idata + 1
12283 data_tmp = full_data(idata)
12284 data_tmp = ishft(data_tmp, 46)
12285 pack_tmp = ior(pack_tmp, data_tmp)
12286 pack_tmp = ishft(pack_tmp, -18)
12287 idata = idata + 1
12288 data_tmp = full_data(idata)
12289 data_tmp = ishft(data_tmp, 46)
12290 pack_tmp = ior(pack_tmp, data_tmp)
12291 pack_tmp = ishft(pack_tmp, -6)
12292 idata = idata + 1
12293 data_tmp = full_data(idata)
12294 data_tmp = ishft(data_tmp, 46)
12295 data_tmp = iand(data_tmp, mask_left(6))
12296 pack_tmp = ior(pack_tmp, data_tmp)
12297 ipack = ipack + 1
12298 packed_data(ipack) = pack_tmp
12299 data_tmp = full_data(idata)
12300 pack_tmp = ishft(data_tmp, 52)
12301 pack_tmp = ishft(pack_tmp, -18)
12302 idata = idata + 1
12303 data_tmp = full_data(idata)
12304 data_tmp = ishft(data_tmp, 46)
12305 pack_tmp = ior(pack_tmp, data_tmp)
12306 pack_tmp = ishft(pack_tmp, -18)
12307 idata = idata + 1
12308 data_tmp = full_data(idata)
12309 data_tmp = ishft(data_tmp, 46)
12310 pack_tmp = ior(pack_tmp, data_tmp)
12311 pack_tmp = ishft(pack_tmp, -16)
12312 idata = idata + 1
12313 data_tmp = full_data(idata)
12314 data_tmp = ishft(data_tmp, 46)
12315 data_tmp = iand(data_tmp, mask_left(16))
12316 pack_tmp = ior(pack_tmp, data_tmp)
12317 ipack = ipack + 1
12318 packed_data(ipack) = pack_tmp
12319 data_tmp = full_data(idata)
12320 pack_tmp = ishft(data_tmp, 62)
12321 pack_tmp = ishft(pack_tmp, -18)
12322 idata = idata + 1
12323 data_tmp = full_data(idata)
12324 data_tmp = ishft(data_tmp, 46)
12325 pack_tmp = ior(pack_tmp, data_tmp)
12326 pack_tmp = ishft(pack_tmp, -18)
12327 idata = idata + 1
12328 data_tmp = full_data(idata)
12329 data_tmp = ishft(data_tmp, 46)
12330 pack_tmp = ior(pack_tmp, data_tmp)
12331 pack_tmp = ishft(pack_tmp, -18)
12332 idata = idata + 1
12333 data_tmp = full_data(idata)
12334 data_tmp = ishft(data_tmp, 46)
12335 pack_tmp = ior(pack_tmp, data_tmp)
12336 pack_tmp = ishft(pack_tmp, -8)
12337 idata = idata + 1
12338 data_tmp = full_data(idata)
12339 data_tmp = ishft(data_tmp, 46)
12340 data_tmp = iand(data_tmp, mask_left(8))
12341 pack_tmp = ior(pack_tmp, data_tmp)
12342 ipack = ipack + 1
12343 packed_data(ipack) = pack_tmp
12344 data_tmp = full_data(idata)
12345 pack_tmp = ishft(data_tmp, 54)
12346 pack_tmp = ishft(pack_tmp, -18)
12347 idata = idata + 1
12348 data_tmp = full_data(idata)
12349 data_tmp = ishft(data_tmp, 46)
12350 pack_tmp = ior(pack_tmp, data_tmp)
12351 pack_tmp = ishft(pack_tmp, -18)
12352 idata = idata + 1
12353 data_tmp = full_data(idata)
12354 data_tmp = ishft(data_tmp, 46)
12355 pack_tmp = ior(pack_tmp, data_tmp)
12356 pack_tmp = ishft(pack_tmp, -18)
12357 idata = idata + 1
12358 data_tmp = full_data(idata)
12359 data_tmp = ishft(data_tmp, 46)
12360 pack_tmp = ior(pack_tmp, data_tmp)
12361 pack_tmp = ishft(pack_tmp, 0)
12362 pack_tmp = ishft(pack_tmp, 0)
12363 ipack = ipack + 1
12364 packed_data(ipack) = pack_tmp
12365 END DO
12366 IF (ndata_rep < ndata) THEN
12367 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
12368 END IF
12369 END SUBROUTINE ints2bits_18
12370
12371! **************************************************************************************************
12372!> \brief ...
12373!> \param Ndata ...
12374!> \param packed_data ...
12375!> \param full_data ...
12376! **************************************************************************************************
12377 SUBROUTINE bits2ints_18(Ndata, packed_data, full_data)
12378 INTEGER, INTENT(IN) :: Ndata
12379 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
12380 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
12381
12382 INTEGER, PARAMETER :: Nbits = 18
12383
12384 INTEGER :: idata, ipack, kdata, Ndata_rep
12385 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
12386
12387 ipack = 0
12388 idata = 0
12389 pack_tmp = 0
12390 ndata_rep = (ndata/64)*64
12391 DO kdata = 1, ndata_rep, 64
12392 idata = idata + 1
12393 data_tmp = ishft(pack_tmp, 18)
12394 ipack = ipack + 1
12395 pack_tmp = packed_data(ipack)
12396 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
12397 pack_tmp = ishft(pack_tmp, -18)
12398 idata = idata + 1
12399 data_tmp = iand(pack_tmp, mask_right(nbits))
12400 full_data(idata) = data_tmp
12401 pack_tmp = ishft(pack_tmp, -nbits)
12402 idata = idata + 1
12403 data_tmp = iand(pack_tmp, mask_right(nbits))
12404 full_data(idata) = data_tmp
12405 pack_tmp = ishft(pack_tmp, -nbits)
12406 idata = idata + 1
12407 data_tmp = ishft(pack_tmp, 8)
12408 ipack = ipack + 1
12409 pack_tmp = packed_data(ipack)
12410 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
12411 pack_tmp = ishft(pack_tmp, -8)
12412 idata = idata + 1
12413 data_tmp = iand(pack_tmp, mask_right(nbits))
12414 full_data(idata) = data_tmp
12415 pack_tmp = ishft(pack_tmp, -nbits)
12416 idata = idata + 1
12417 data_tmp = iand(pack_tmp, mask_right(nbits))
12418 full_data(idata) = data_tmp
12419 pack_tmp = ishft(pack_tmp, -nbits)
12420 idata = idata + 1
12421 data_tmp = iand(pack_tmp, mask_right(nbits))
12422 full_data(idata) = data_tmp
12423 pack_tmp = ishft(pack_tmp, -nbits)
12424 idata = idata + 1
12425 data_tmp = ishft(pack_tmp, 16)
12426 ipack = ipack + 1
12427 pack_tmp = packed_data(ipack)
12428 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
12429 pack_tmp = ishft(pack_tmp, -16)
12430 idata = idata + 1
12431 data_tmp = iand(pack_tmp, mask_right(nbits))
12432 full_data(idata) = data_tmp
12433 pack_tmp = ishft(pack_tmp, -nbits)
12434 idata = idata + 1
12435 data_tmp = iand(pack_tmp, mask_right(nbits))
12436 full_data(idata) = data_tmp
12437 pack_tmp = ishft(pack_tmp, -nbits)
12438 idata = idata + 1
12439 data_tmp = ishft(pack_tmp, 6)
12440 ipack = ipack + 1
12441 pack_tmp = packed_data(ipack)
12442 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
12443 pack_tmp = ishft(pack_tmp, -6)
12444 idata = idata + 1
12445 data_tmp = iand(pack_tmp, mask_right(nbits))
12446 full_data(idata) = data_tmp
12447 pack_tmp = ishft(pack_tmp, -nbits)
12448 idata = idata + 1
12449 data_tmp = iand(pack_tmp, mask_right(nbits))
12450 full_data(idata) = data_tmp
12451 pack_tmp = ishft(pack_tmp, -nbits)
12452 idata = idata + 1
12453 data_tmp = iand(pack_tmp, mask_right(nbits))
12454 full_data(idata) = data_tmp
12455 pack_tmp = ishft(pack_tmp, -nbits)
12456 idata = idata + 1
12457 data_tmp = ishft(pack_tmp, 14)
12458 ipack = ipack + 1
12459 pack_tmp = packed_data(ipack)
12460 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
12461 pack_tmp = ishft(pack_tmp, -14)
12462 idata = idata + 1
12463 data_tmp = iand(pack_tmp, mask_right(nbits))
12464 full_data(idata) = data_tmp
12465 pack_tmp = ishft(pack_tmp, -nbits)
12466 idata = idata + 1
12467 data_tmp = iand(pack_tmp, mask_right(nbits))
12468 full_data(idata) = data_tmp
12469 pack_tmp = ishft(pack_tmp, -nbits)
12470 idata = idata + 1
12471 data_tmp = ishft(pack_tmp, 4)
12472 ipack = ipack + 1
12473 pack_tmp = packed_data(ipack)
12474 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
12475 pack_tmp = ishft(pack_tmp, -4)
12476 idata = idata + 1
12477 data_tmp = iand(pack_tmp, mask_right(nbits))
12478 full_data(idata) = data_tmp
12479 pack_tmp = ishft(pack_tmp, -nbits)
12480 idata = idata + 1
12481 data_tmp = iand(pack_tmp, mask_right(nbits))
12482 full_data(idata) = data_tmp
12483 pack_tmp = ishft(pack_tmp, -nbits)
12484 idata = idata + 1
12485 data_tmp = iand(pack_tmp, mask_right(nbits))
12486 full_data(idata) = data_tmp
12487 pack_tmp = ishft(pack_tmp, -nbits)
12488 idata = idata + 1
12489 data_tmp = ishft(pack_tmp, 12)
12490 ipack = ipack + 1
12491 pack_tmp = packed_data(ipack)
12492 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
12493 pack_tmp = ishft(pack_tmp, -12)
12494 idata = idata + 1
12495 data_tmp = iand(pack_tmp, mask_right(nbits))
12496 full_data(idata) = data_tmp
12497 pack_tmp = ishft(pack_tmp, -nbits)
12498 idata = idata + 1
12499 data_tmp = iand(pack_tmp, mask_right(nbits))
12500 full_data(idata) = data_tmp
12501 pack_tmp = ishft(pack_tmp, -nbits)
12502 idata = idata + 1
12503 data_tmp = ishft(pack_tmp, 2)
12504 ipack = ipack + 1
12505 pack_tmp = packed_data(ipack)
12506 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
12507 pack_tmp = ishft(pack_tmp, -2)
12508 idata = idata + 1
12509 data_tmp = iand(pack_tmp, mask_right(nbits))
12510 full_data(idata) = data_tmp
12511 pack_tmp = ishft(pack_tmp, -nbits)
12512 idata = idata + 1
12513 data_tmp = iand(pack_tmp, mask_right(nbits))
12514 full_data(idata) = data_tmp
12515 pack_tmp = ishft(pack_tmp, -nbits)
12516 idata = idata + 1
12517 data_tmp = iand(pack_tmp, mask_right(nbits))
12518 full_data(idata) = data_tmp
12519 pack_tmp = ishft(pack_tmp, -nbits)
12520 idata = idata + 1
12521 data_tmp = ishft(pack_tmp, 10)
12522 ipack = ipack + 1
12523 pack_tmp = packed_data(ipack)
12524 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
12525 pack_tmp = ishft(pack_tmp, -10)
12526 idata = idata + 1
12527 data_tmp = iand(pack_tmp, mask_right(nbits))
12528 full_data(idata) = data_tmp
12529 pack_tmp = ishft(pack_tmp, -nbits)
12530 idata = idata + 1
12531 data_tmp = iand(pack_tmp, mask_right(nbits))
12532 full_data(idata) = data_tmp
12533 pack_tmp = ishft(pack_tmp, -nbits)
12534 idata = idata + 1
12535 data_tmp = iand(pack_tmp, mask_right(nbits))
12536 full_data(idata) = data_tmp
12537 pack_tmp = ishft(pack_tmp, -nbits)
12538 idata = idata + 1
12539 data_tmp = ishft(pack_tmp, 18)
12540 ipack = ipack + 1
12541 pack_tmp = packed_data(ipack)
12542 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
12543 pack_tmp = ishft(pack_tmp, -18)
12544 idata = idata + 1
12545 data_tmp = iand(pack_tmp, mask_right(nbits))
12546 full_data(idata) = data_tmp
12547 pack_tmp = ishft(pack_tmp, -nbits)
12548 idata = idata + 1
12549 data_tmp = iand(pack_tmp, mask_right(nbits))
12550 full_data(idata) = data_tmp
12551 pack_tmp = ishft(pack_tmp, -nbits)
12552 idata = idata + 1
12553 data_tmp = ishft(pack_tmp, 8)
12554 ipack = ipack + 1
12555 pack_tmp = packed_data(ipack)
12556 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
12557 pack_tmp = ishft(pack_tmp, -8)
12558 idata = idata + 1
12559 data_tmp = iand(pack_tmp, mask_right(nbits))
12560 full_data(idata) = data_tmp
12561 pack_tmp = ishft(pack_tmp, -nbits)
12562 idata = idata + 1
12563 data_tmp = iand(pack_tmp, mask_right(nbits))
12564 full_data(idata) = data_tmp
12565 pack_tmp = ishft(pack_tmp, -nbits)
12566 idata = idata + 1
12567 data_tmp = iand(pack_tmp, mask_right(nbits))
12568 full_data(idata) = data_tmp
12569 pack_tmp = ishft(pack_tmp, -nbits)
12570 idata = idata + 1
12571 data_tmp = ishft(pack_tmp, 16)
12572 ipack = ipack + 1
12573 pack_tmp = packed_data(ipack)
12574 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
12575 pack_tmp = ishft(pack_tmp, -16)
12576 idata = idata + 1
12577 data_tmp = iand(pack_tmp, mask_right(nbits))
12578 full_data(idata) = data_tmp
12579 pack_tmp = ishft(pack_tmp, -nbits)
12580 idata = idata + 1
12581 data_tmp = iand(pack_tmp, mask_right(nbits))
12582 full_data(idata) = data_tmp
12583 pack_tmp = ishft(pack_tmp, -nbits)
12584 idata = idata + 1
12585 data_tmp = ishft(pack_tmp, 6)
12586 ipack = ipack + 1
12587 pack_tmp = packed_data(ipack)
12588 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
12589 pack_tmp = ishft(pack_tmp, -6)
12590 idata = idata + 1
12591 data_tmp = iand(pack_tmp, mask_right(nbits))
12592 full_data(idata) = data_tmp
12593 pack_tmp = ishft(pack_tmp, -nbits)
12594 idata = idata + 1
12595 data_tmp = iand(pack_tmp, mask_right(nbits))
12596 full_data(idata) = data_tmp
12597 pack_tmp = ishft(pack_tmp, -nbits)
12598 idata = idata + 1
12599 data_tmp = iand(pack_tmp, mask_right(nbits))
12600 full_data(idata) = data_tmp
12601 pack_tmp = ishft(pack_tmp, -nbits)
12602 idata = idata + 1
12603 data_tmp = ishft(pack_tmp, 14)
12604 ipack = ipack + 1
12605 pack_tmp = packed_data(ipack)
12606 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
12607 pack_tmp = ishft(pack_tmp, -14)
12608 idata = idata + 1
12609 data_tmp = iand(pack_tmp, mask_right(nbits))
12610 full_data(idata) = data_tmp
12611 pack_tmp = ishft(pack_tmp, -nbits)
12612 idata = idata + 1
12613 data_tmp = iand(pack_tmp, mask_right(nbits))
12614 full_data(idata) = data_tmp
12615 pack_tmp = ishft(pack_tmp, -nbits)
12616 idata = idata + 1
12617 data_tmp = ishft(pack_tmp, 4)
12618 ipack = ipack + 1
12619 pack_tmp = packed_data(ipack)
12620 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
12621 pack_tmp = ishft(pack_tmp, -4)
12622 idata = idata + 1
12623 data_tmp = iand(pack_tmp, mask_right(nbits))
12624 full_data(idata) = data_tmp
12625 pack_tmp = ishft(pack_tmp, -nbits)
12626 idata = idata + 1
12627 data_tmp = iand(pack_tmp, mask_right(nbits))
12628 full_data(idata) = data_tmp
12629 pack_tmp = ishft(pack_tmp, -nbits)
12630 idata = idata + 1
12631 data_tmp = iand(pack_tmp, mask_right(nbits))
12632 full_data(idata) = data_tmp
12633 pack_tmp = ishft(pack_tmp, -nbits)
12634 idata = idata + 1
12635 data_tmp = ishft(pack_tmp, 12)
12636 ipack = ipack + 1
12637 pack_tmp = packed_data(ipack)
12638 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
12639 pack_tmp = ishft(pack_tmp, -12)
12640 idata = idata + 1
12641 data_tmp = iand(pack_tmp, mask_right(nbits))
12642 full_data(idata) = data_tmp
12643 pack_tmp = ishft(pack_tmp, -nbits)
12644 idata = idata + 1
12645 data_tmp = iand(pack_tmp, mask_right(nbits))
12646 full_data(idata) = data_tmp
12647 pack_tmp = ishft(pack_tmp, -nbits)
12648 idata = idata + 1
12649 data_tmp = ishft(pack_tmp, 2)
12650 ipack = ipack + 1
12651 pack_tmp = packed_data(ipack)
12652 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
12653 pack_tmp = ishft(pack_tmp, -2)
12654 idata = idata + 1
12655 data_tmp = iand(pack_tmp, mask_right(nbits))
12656 full_data(idata) = data_tmp
12657 pack_tmp = ishft(pack_tmp, -nbits)
12658 idata = idata + 1
12659 data_tmp = iand(pack_tmp, mask_right(nbits))
12660 full_data(idata) = data_tmp
12661 pack_tmp = ishft(pack_tmp, -nbits)
12662 idata = idata + 1
12663 data_tmp = iand(pack_tmp, mask_right(nbits))
12664 full_data(idata) = data_tmp
12665 pack_tmp = ishft(pack_tmp, -nbits)
12666 idata = idata + 1
12667 data_tmp = ishft(pack_tmp, 10)
12668 ipack = ipack + 1
12669 pack_tmp = packed_data(ipack)
12670 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
12671 pack_tmp = ishft(pack_tmp, -10)
12672 idata = idata + 1
12673 data_tmp = iand(pack_tmp, mask_right(nbits))
12674 full_data(idata) = data_tmp
12675 pack_tmp = ishft(pack_tmp, -nbits)
12676 idata = idata + 1
12677 data_tmp = iand(pack_tmp, mask_right(nbits))
12678 full_data(idata) = data_tmp
12679 pack_tmp = ishft(pack_tmp, -nbits)
12680 idata = idata + 1
12681 data_tmp = iand(pack_tmp, mask_right(nbits))
12682 full_data(idata) = data_tmp
12683 pack_tmp = ishft(pack_tmp, -nbits)
12684 END DO
12685 IF (ndata_rep < ndata) THEN
12686 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
12687 END IF
12688 END SUBROUTINE bits2ints_18
12689
12690! **************************************************************************************************
12691!> \brief ...
12692!> \param Ndata ...
12693!> \param packed_data ...
12694!> \param full_data ...
12695! **************************************************************************************************
12696 SUBROUTINE ints2bits_19(Ndata, packed_data, full_data)
12697 INTEGER, INTENT(IN) :: Ndata
12698 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
12699 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
12700
12701 INTEGER, PARAMETER :: Nbits = 19
12702
12703 INTEGER :: idata, ipack, kdata, Ndata_rep
12704 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
12705
12706 idata = 0
12707 ipack = 0
12708 ndata_rep = (ndata/64)*64
12709 DO kdata = 1, ndata_rep, 64
12710 pack_tmp = 0
12711 idata = idata + 1
12712 data_tmp = full_data(idata)
12713 data_tmp = ishft(data_tmp, 45)
12714 pack_tmp = ior(pack_tmp, data_tmp)
12715 pack_tmp = ishft(pack_tmp, -19)
12716 idata = idata + 1
12717 data_tmp = full_data(idata)
12718 data_tmp = ishft(data_tmp, 45)
12719 pack_tmp = ior(pack_tmp, data_tmp)
12720 pack_tmp = ishft(pack_tmp, -19)
12721 idata = idata + 1
12722 data_tmp = full_data(idata)
12723 data_tmp = ishft(data_tmp, 45)
12724 pack_tmp = ior(pack_tmp, data_tmp)
12725 pack_tmp = ishft(pack_tmp, -7)
12726 idata = idata + 1
12727 data_tmp = full_data(idata)
12728 data_tmp = ishft(data_tmp, 45)
12729 data_tmp = iand(data_tmp, mask_left(7))
12730 pack_tmp = ior(pack_tmp, data_tmp)
12731 ipack = ipack + 1
12732 packed_data(ipack) = pack_tmp
12733 data_tmp = full_data(idata)
12734 pack_tmp = ishft(data_tmp, 52)
12735 pack_tmp = ishft(pack_tmp, -19)
12736 idata = idata + 1
12737 data_tmp = full_data(idata)
12738 data_tmp = ishft(data_tmp, 45)
12739 pack_tmp = ior(pack_tmp, data_tmp)
12740 pack_tmp = ishft(pack_tmp, -19)
12741 idata = idata + 1
12742 data_tmp = full_data(idata)
12743 data_tmp = ishft(data_tmp, 45)
12744 pack_tmp = ior(pack_tmp, data_tmp)
12745 pack_tmp = ishft(pack_tmp, -14)
12746 idata = idata + 1
12747 data_tmp = full_data(idata)
12748 data_tmp = ishft(data_tmp, 45)
12749 data_tmp = iand(data_tmp, mask_left(14))
12750 pack_tmp = ior(pack_tmp, data_tmp)
12751 ipack = ipack + 1
12752 packed_data(ipack) = pack_tmp
12753 data_tmp = full_data(idata)
12754 pack_tmp = ishft(data_tmp, 59)
12755 pack_tmp = ishft(pack_tmp, -19)
12756 idata = idata + 1
12757 data_tmp = full_data(idata)
12758 data_tmp = ishft(data_tmp, 45)
12759 pack_tmp = ior(pack_tmp, data_tmp)
12760 pack_tmp = ishft(pack_tmp, -19)
12761 idata = idata + 1
12762 data_tmp = full_data(idata)
12763 data_tmp = ishft(data_tmp, 45)
12764 pack_tmp = ior(pack_tmp, data_tmp)
12765 pack_tmp = ishft(pack_tmp, -19)
12766 idata = idata + 1
12767 data_tmp = full_data(idata)
12768 data_tmp = ishft(data_tmp, 45)
12769 pack_tmp = ior(pack_tmp, data_tmp)
12770 pack_tmp = ishft(pack_tmp, -2)
12771 idata = idata + 1
12772 data_tmp = full_data(idata)
12773 data_tmp = ishft(data_tmp, 45)
12774 data_tmp = iand(data_tmp, mask_left(2))
12775 pack_tmp = ior(pack_tmp, data_tmp)
12776 ipack = ipack + 1
12777 packed_data(ipack) = pack_tmp
12778 data_tmp = full_data(idata)
12779 pack_tmp = ishft(data_tmp, 47)
12780 pack_tmp = ishft(pack_tmp, -19)
12781 idata = idata + 1
12782 data_tmp = full_data(idata)
12783 data_tmp = ishft(data_tmp, 45)
12784 pack_tmp = ior(pack_tmp, data_tmp)
12785 pack_tmp = ishft(pack_tmp, -19)
12786 idata = idata + 1
12787 data_tmp = full_data(idata)
12788 data_tmp = ishft(data_tmp, 45)
12789 pack_tmp = ior(pack_tmp, data_tmp)
12790 pack_tmp = ishft(pack_tmp, -9)
12791 idata = idata + 1
12792 data_tmp = full_data(idata)
12793 data_tmp = ishft(data_tmp, 45)
12794 data_tmp = iand(data_tmp, mask_left(9))
12795 pack_tmp = ior(pack_tmp, data_tmp)
12796 ipack = ipack + 1
12797 packed_data(ipack) = pack_tmp
12798 data_tmp = full_data(idata)
12799 pack_tmp = ishft(data_tmp, 54)
12800 pack_tmp = ishft(pack_tmp, -19)
12801 idata = idata + 1
12802 data_tmp = full_data(idata)
12803 data_tmp = ishft(data_tmp, 45)
12804 pack_tmp = ior(pack_tmp, data_tmp)
12805 pack_tmp = ishft(pack_tmp, -19)
12806 idata = idata + 1
12807 data_tmp = full_data(idata)
12808 data_tmp = ishft(data_tmp, 45)
12809 pack_tmp = ior(pack_tmp, data_tmp)
12810 pack_tmp = ishft(pack_tmp, -16)
12811 idata = idata + 1
12812 data_tmp = full_data(idata)
12813 data_tmp = ishft(data_tmp, 45)
12814 data_tmp = iand(data_tmp, mask_left(16))
12815 pack_tmp = ior(pack_tmp, data_tmp)
12816 ipack = ipack + 1
12817 packed_data(ipack) = pack_tmp
12818 data_tmp = full_data(idata)
12819 pack_tmp = ishft(data_tmp, 61)
12820 pack_tmp = ishft(pack_tmp, -19)
12821 idata = idata + 1
12822 data_tmp = full_data(idata)
12823 data_tmp = ishft(data_tmp, 45)
12824 pack_tmp = ior(pack_tmp, data_tmp)
12825 pack_tmp = ishft(pack_tmp, -19)
12826 idata = idata + 1
12827 data_tmp = full_data(idata)
12828 data_tmp = ishft(data_tmp, 45)
12829 pack_tmp = ior(pack_tmp, data_tmp)
12830 pack_tmp = ishft(pack_tmp, -19)
12831 idata = idata + 1
12832 data_tmp = full_data(idata)
12833 data_tmp = ishft(data_tmp, 45)
12834 pack_tmp = ior(pack_tmp, data_tmp)
12835 pack_tmp = ishft(pack_tmp, -4)
12836 idata = idata + 1
12837 data_tmp = full_data(idata)
12838 data_tmp = ishft(data_tmp, 45)
12839 data_tmp = iand(data_tmp, mask_left(4))
12840 pack_tmp = ior(pack_tmp, data_tmp)
12841 ipack = ipack + 1
12842 packed_data(ipack) = pack_tmp
12843 data_tmp = full_data(idata)
12844 pack_tmp = ishft(data_tmp, 49)
12845 pack_tmp = ishft(pack_tmp, -19)
12846 idata = idata + 1
12847 data_tmp = full_data(idata)
12848 data_tmp = ishft(data_tmp, 45)
12849 pack_tmp = ior(pack_tmp, data_tmp)
12850 pack_tmp = ishft(pack_tmp, -19)
12851 idata = idata + 1
12852 data_tmp = full_data(idata)
12853 data_tmp = ishft(data_tmp, 45)
12854 pack_tmp = ior(pack_tmp, data_tmp)
12855 pack_tmp = ishft(pack_tmp, -11)
12856 idata = idata + 1
12857 data_tmp = full_data(idata)
12858 data_tmp = ishft(data_tmp, 45)
12859 data_tmp = iand(data_tmp, mask_left(11))
12860 pack_tmp = ior(pack_tmp, data_tmp)
12861 ipack = ipack + 1
12862 packed_data(ipack) = pack_tmp
12863 data_tmp = full_data(idata)
12864 pack_tmp = ishft(data_tmp, 56)
12865 pack_tmp = ishft(pack_tmp, -19)
12866 idata = idata + 1
12867 data_tmp = full_data(idata)
12868 data_tmp = ishft(data_tmp, 45)
12869 pack_tmp = ior(pack_tmp, data_tmp)
12870 pack_tmp = ishft(pack_tmp, -19)
12871 idata = idata + 1
12872 data_tmp = full_data(idata)
12873 data_tmp = ishft(data_tmp, 45)
12874 pack_tmp = ior(pack_tmp, data_tmp)
12875 pack_tmp = ishft(pack_tmp, -18)
12876 idata = idata + 1
12877 data_tmp = full_data(idata)
12878 data_tmp = ishft(data_tmp, 45)
12879 data_tmp = iand(data_tmp, mask_left(18))
12880 pack_tmp = ior(pack_tmp, data_tmp)
12881 ipack = ipack + 1
12882 packed_data(ipack) = pack_tmp
12883 data_tmp = full_data(idata)
12884 pack_tmp = ishft(data_tmp, 63)
12885 pack_tmp = ishft(pack_tmp, -19)
12886 idata = idata + 1
12887 data_tmp = full_data(idata)
12888 data_tmp = ishft(data_tmp, 45)
12889 pack_tmp = ior(pack_tmp, data_tmp)
12890 pack_tmp = ishft(pack_tmp, -19)
12891 idata = idata + 1
12892 data_tmp = full_data(idata)
12893 data_tmp = ishft(data_tmp, 45)
12894 pack_tmp = ior(pack_tmp, data_tmp)
12895 pack_tmp = ishft(pack_tmp, -19)
12896 idata = idata + 1
12897 data_tmp = full_data(idata)
12898 data_tmp = ishft(data_tmp, 45)
12899 pack_tmp = ior(pack_tmp, data_tmp)
12900 pack_tmp = ishft(pack_tmp, -6)
12901 idata = idata + 1
12902 data_tmp = full_data(idata)
12903 data_tmp = ishft(data_tmp, 45)
12904 data_tmp = iand(data_tmp, mask_left(6))
12905 pack_tmp = ior(pack_tmp, data_tmp)
12906 ipack = ipack + 1
12907 packed_data(ipack) = pack_tmp
12908 data_tmp = full_data(idata)
12909 pack_tmp = ishft(data_tmp, 51)
12910 pack_tmp = ishft(pack_tmp, -19)
12911 idata = idata + 1
12912 data_tmp = full_data(idata)
12913 data_tmp = ishft(data_tmp, 45)
12914 pack_tmp = ior(pack_tmp, data_tmp)
12915 pack_tmp = ishft(pack_tmp, -19)
12916 idata = idata + 1
12917 data_tmp = full_data(idata)
12918 data_tmp = ishft(data_tmp, 45)
12919 pack_tmp = ior(pack_tmp, data_tmp)
12920 pack_tmp = ishft(pack_tmp, -13)
12921 idata = idata + 1
12922 data_tmp = full_data(idata)
12923 data_tmp = ishft(data_tmp, 45)
12924 data_tmp = iand(data_tmp, mask_left(13))
12925 pack_tmp = ior(pack_tmp, data_tmp)
12926 ipack = ipack + 1
12927 packed_data(ipack) = pack_tmp
12928 data_tmp = full_data(idata)
12929 pack_tmp = ishft(data_tmp, 58)
12930 pack_tmp = ishft(pack_tmp, -19)
12931 idata = idata + 1
12932 data_tmp = full_data(idata)
12933 data_tmp = ishft(data_tmp, 45)
12934 pack_tmp = ior(pack_tmp, data_tmp)
12935 pack_tmp = ishft(pack_tmp, -19)
12936 idata = idata + 1
12937 data_tmp = full_data(idata)
12938 data_tmp = ishft(data_tmp, 45)
12939 pack_tmp = ior(pack_tmp, data_tmp)
12940 pack_tmp = ishft(pack_tmp, -19)
12941 idata = idata + 1
12942 data_tmp = full_data(idata)
12943 data_tmp = ishft(data_tmp, 45)
12944 pack_tmp = ior(pack_tmp, data_tmp)
12945 pack_tmp = ishft(pack_tmp, -1)
12946 idata = idata + 1
12947 data_tmp = full_data(idata)
12948 data_tmp = ishft(data_tmp, 45)
12949 data_tmp = iand(data_tmp, mask_left(1))
12950 pack_tmp = ior(pack_tmp, data_tmp)
12951 ipack = ipack + 1
12952 packed_data(ipack) = pack_tmp
12953 data_tmp = full_data(idata)
12954 pack_tmp = ishft(data_tmp, 46)
12955 pack_tmp = ishft(pack_tmp, -19)
12956 idata = idata + 1
12957 data_tmp = full_data(idata)
12958 data_tmp = ishft(data_tmp, 45)
12959 pack_tmp = ior(pack_tmp, data_tmp)
12960 pack_tmp = ishft(pack_tmp, -19)
12961 idata = idata + 1
12962 data_tmp = full_data(idata)
12963 data_tmp = ishft(data_tmp, 45)
12964 pack_tmp = ior(pack_tmp, data_tmp)
12965 pack_tmp = ishft(pack_tmp, -8)
12966 idata = idata + 1
12967 data_tmp = full_data(idata)
12968 data_tmp = ishft(data_tmp, 45)
12969 data_tmp = iand(data_tmp, mask_left(8))
12970 pack_tmp = ior(pack_tmp, data_tmp)
12971 ipack = ipack + 1
12972 packed_data(ipack) = pack_tmp
12973 data_tmp = full_data(idata)
12974 pack_tmp = ishft(data_tmp, 53)
12975 pack_tmp = ishft(pack_tmp, -19)
12976 idata = idata + 1
12977 data_tmp = full_data(idata)
12978 data_tmp = ishft(data_tmp, 45)
12979 pack_tmp = ior(pack_tmp, data_tmp)
12980 pack_tmp = ishft(pack_tmp, -19)
12981 idata = idata + 1
12982 data_tmp = full_data(idata)
12983 data_tmp = ishft(data_tmp, 45)
12984 pack_tmp = ior(pack_tmp, data_tmp)
12985 pack_tmp = ishft(pack_tmp, -15)
12986 idata = idata + 1
12987 data_tmp = full_data(idata)
12988 data_tmp = ishft(data_tmp, 45)
12989 data_tmp = iand(data_tmp, mask_left(15))
12990 pack_tmp = ior(pack_tmp, data_tmp)
12991 ipack = ipack + 1
12992 packed_data(ipack) = pack_tmp
12993 data_tmp = full_data(idata)
12994 pack_tmp = ishft(data_tmp, 60)
12995 pack_tmp = ishft(pack_tmp, -19)
12996 idata = idata + 1
12997 data_tmp = full_data(idata)
12998 data_tmp = ishft(data_tmp, 45)
12999 pack_tmp = ior(pack_tmp, data_tmp)
13000 pack_tmp = ishft(pack_tmp, -19)
13001 idata = idata + 1
13002 data_tmp = full_data(idata)
13003 data_tmp = ishft(data_tmp, 45)
13004 pack_tmp = ior(pack_tmp, data_tmp)
13005 pack_tmp = ishft(pack_tmp, -19)
13006 idata = idata + 1
13007 data_tmp = full_data(idata)
13008 data_tmp = ishft(data_tmp, 45)
13009 pack_tmp = ior(pack_tmp, data_tmp)
13010 pack_tmp = ishft(pack_tmp, -3)
13011 idata = idata + 1
13012 data_tmp = full_data(idata)
13013 data_tmp = ishft(data_tmp, 45)
13014 data_tmp = iand(data_tmp, mask_left(3))
13015 pack_tmp = ior(pack_tmp, data_tmp)
13016 ipack = ipack + 1
13017 packed_data(ipack) = pack_tmp
13018 data_tmp = full_data(idata)
13019 pack_tmp = ishft(data_tmp, 48)
13020 pack_tmp = ishft(pack_tmp, -19)
13021 idata = idata + 1
13022 data_tmp = full_data(idata)
13023 data_tmp = ishft(data_tmp, 45)
13024 pack_tmp = ior(pack_tmp, data_tmp)
13025 pack_tmp = ishft(pack_tmp, -19)
13026 idata = idata + 1
13027 data_tmp = full_data(idata)
13028 data_tmp = ishft(data_tmp, 45)
13029 pack_tmp = ior(pack_tmp, data_tmp)
13030 pack_tmp = ishft(pack_tmp, -10)
13031 idata = idata + 1
13032 data_tmp = full_data(idata)
13033 data_tmp = ishft(data_tmp, 45)
13034 data_tmp = iand(data_tmp, mask_left(10))
13035 pack_tmp = ior(pack_tmp, data_tmp)
13036 ipack = ipack + 1
13037 packed_data(ipack) = pack_tmp
13038 data_tmp = full_data(idata)
13039 pack_tmp = ishft(data_tmp, 55)
13040 pack_tmp = ishft(pack_tmp, -19)
13041 idata = idata + 1
13042 data_tmp = full_data(idata)
13043 data_tmp = ishft(data_tmp, 45)
13044 pack_tmp = ior(pack_tmp, data_tmp)
13045 pack_tmp = ishft(pack_tmp, -19)
13046 idata = idata + 1
13047 data_tmp = full_data(idata)
13048 data_tmp = ishft(data_tmp, 45)
13049 pack_tmp = ior(pack_tmp, data_tmp)
13050 pack_tmp = ishft(pack_tmp, -17)
13051 idata = idata + 1
13052 data_tmp = full_data(idata)
13053 data_tmp = ishft(data_tmp, 45)
13054 data_tmp = iand(data_tmp, mask_left(17))
13055 pack_tmp = ior(pack_tmp, data_tmp)
13056 ipack = ipack + 1
13057 packed_data(ipack) = pack_tmp
13058 data_tmp = full_data(idata)
13059 pack_tmp = ishft(data_tmp, 62)
13060 pack_tmp = ishft(pack_tmp, -19)
13061 idata = idata + 1
13062 data_tmp = full_data(idata)
13063 data_tmp = ishft(data_tmp, 45)
13064 pack_tmp = ior(pack_tmp, data_tmp)
13065 pack_tmp = ishft(pack_tmp, -19)
13066 idata = idata + 1
13067 data_tmp = full_data(idata)
13068 data_tmp = ishft(data_tmp, 45)
13069 pack_tmp = ior(pack_tmp, data_tmp)
13070 pack_tmp = ishft(pack_tmp, -19)
13071 idata = idata + 1
13072 data_tmp = full_data(idata)
13073 data_tmp = ishft(data_tmp, 45)
13074 pack_tmp = ior(pack_tmp, data_tmp)
13075 pack_tmp = ishft(pack_tmp, -5)
13076 idata = idata + 1
13077 data_tmp = full_data(idata)
13078 data_tmp = ishft(data_tmp, 45)
13079 data_tmp = iand(data_tmp, mask_left(5))
13080 pack_tmp = ior(pack_tmp, data_tmp)
13081 ipack = ipack + 1
13082 packed_data(ipack) = pack_tmp
13083 data_tmp = full_data(idata)
13084 pack_tmp = ishft(data_tmp, 50)
13085 pack_tmp = ishft(pack_tmp, -19)
13086 idata = idata + 1
13087 data_tmp = full_data(idata)
13088 data_tmp = ishft(data_tmp, 45)
13089 pack_tmp = ior(pack_tmp, data_tmp)
13090 pack_tmp = ishft(pack_tmp, -19)
13091 idata = idata + 1
13092 data_tmp = full_data(idata)
13093 data_tmp = ishft(data_tmp, 45)
13094 pack_tmp = ior(pack_tmp, data_tmp)
13095 pack_tmp = ishft(pack_tmp, -12)
13096 idata = idata + 1
13097 data_tmp = full_data(idata)
13098 data_tmp = ishft(data_tmp, 45)
13099 data_tmp = iand(data_tmp, mask_left(12))
13100 pack_tmp = ior(pack_tmp, data_tmp)
13101 ipack = ipack + 1
13102 packed_data(ipack) = pack_tmp
13103 data_tmp = full_data(idata)
13104 pack_tmp = ishft(data_tmp, 57)
13105 pack_tmp = ishft(pack_tmp, -19)
13106 idata = idata + 1
13107 data_tmp = full_data(idata)
13108 data_tmp = ishft(data_tmp, 45)
13109 pack_tmp = ior(pack_tmp, data_tmp)
13110 pack_tmp = ishft(pack_tmp, -19)
13111 idata = idata + 1
13112 data_tmp = full_data(idata)
13113 data_tmp = ishft(data_tmp, 45)
13114 pack_tmp = ior(pack_tmp, data_tmp)
13115 pack_tmp = ishft(pack_tmp, -19)
13116 idata = idata + 1
13117 data_tmp = full_data(idata)
13118 data_tmp = ishft(data_tmp, 45)
13119 pack_tmp = ior(pack_tmp, data_tmp)
13120 pack_tmp = ishft(pack_tmp, 0)
13121 pack_tmp = ishft(pack_tmp, 0)
13122 ipack = ipack + 1
13123 packed_data(ipack) = pack_tmp
13124 END DO
13125 IF (ndata_rep < ndata) THEN
13126 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
13127 END IF
13128 END SUBROUTINE ints2bits_19
13129
13130! **************************************************************************************************
13131!> \brief ...
13132!> \param Ndata ...
13133!> \param packed_data ...
13134!> \param full_data ...
13135! **************************************************************************************************
13136 SUBROUTINE bits2ints_19(Ndata, packed_data, full_data)
13137 INTEGER, INTENT(IN) :: Ndata
13138 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
13139 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
13140
13141 INTEGER, PARAMETER :: Nbits = 19
13142
13143 INTEGER :: idata, ipack, kdata, Ndata_rep
13144 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
13145
13146 ipack = 0
13147 idata = 0
13148 pack_tmp = 0
13149 ndata_rep = (ndata/64)*64
13150 DO kdata = 1, ndata_rep, 64
13151 idata = idata + 1
13152 data_tmp = ishft(pack_tmp, 19)
13153 ipack = ipack + 1
13154 pack_tmp = packed_data(ipack)
13155 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
13156 pack_tmp = ishft(pack_tmp, -19)
13157 idata = idata + 1
13158 data_tmp = iand(pack_tmp, mask_right(nbits))
13159 full_data(idata) = data_tmp
13160 pack_tmp = ishft(pack_tmp, -nbits)
13161 idata = idata + 1
13162 data_tmp = iand(pack_tmp, mask_right(nbits))
13163 full_data(idata) = data_tmp
13164 pack_tmp = ishft(pack_tmp, -nbits)
13165 idata = idata + 1
13166 data_tmp = ishft(pack_tmp, 12)
13167 ipack = ipack + 1
13168 pack_tmp = packed_data(ipack)
13169 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
13170 pack_tmp = ishft(pack_tmp, -12)
13171 idata = idata + 1
13172 data_tmp = iand(pack_tmp, mask_right(nbits))
13173 full_data(idata) = data_tmp
13174 pack_tmp = ishft(pack_tmp, -nbits)
13175 idata = idata + 1
13176 data_tmp = iand(pack_tmp, mask_right(nbits))
13177 full_data(idata) = data_tmp
13178 pack_tmp = ishft(pack_tmp, -nbits)
13179 idata = idata + 1
13180 data_tmp = ishft(pack_tmp, 5)
13181 ipack = ipack + 1
13182 pack_tmp = packed_data(ipack)
13183 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
13184 pack_tmp = ishft(pack_tmp, -5)
13185 idata = idata + 1
13186 data_tmp = iand(pack_tmp, mask_right(nbits))
13187 full_data(idata) = data_tmp
13188 pack_tmp = ishft(pack_tmp, -nbits)
13189 idata = idata + 1
13190 data_tmp = iand(pack_tmp, mask_right(nbits))
13191 full_data(idata) = data_tmp
13192 pack_tmp = ishft(pack_tmp, -nbits)
13193 idata = idata + 1
13194 data_tmp = iand(pack_tmp, mask_right(nbits))
13195 full_data(idata) = data_tmp
13196 pack_tmp = ishft(pack_tmp, -nbits)
13197 idata = idata + 1
13198 data_tmp = ishft(pack_tmp, 17)
13199 ipack = ipack + 1
13200 pack_tmp = packed_data(ipack)
13201 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
13202 pack_tmp = ishft(pack_tmp, -17)
13203 idata = idata + 1
13204 data_tmp = iand(pack_tmp, mask_right(nbits))
13205 full_data(idata) = data_tmp
13206 pack_tmp = ishft(pack_tmp, -nbits)
13207 idata = idata + 1
13208 data_tmp = iand(pack_tmp, mask_right(nbits))
13209 full_data(idata) = data_tmp
13210 pack_tmp = ishft(pack_tmp, -nbits)
13211 idata = idata + 1
13212 data_tmp = ishft(pack_tmp, 10)
13213 ipack = ipack + 1
13214 pack_tmp = packed_data(ipack)
13215 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
13216 pack_tmp = ishft(pack_tmp, -10)
13217 idata = idata + 1
13218 data_tmp = iand(pack_tmp, mask_right(nbits))
13219 full_data(idata) = data_tmp
13220 pack_tmp = ishft(pack_tmp, -nbits)
13221 idata = idata + 1
13222 data_tmp = iand(pack_tmp, mask_right(nbits))
13223 full_data(idata) = data_tmp
13224 pack_tmp = ishft(pack_tmp, -nbits)
13225 idata = idata + 1
13226 data_tmp = ishft(pack_tmp, 3)
13227 ipack = ipack + 1
13228 pack_tmp = packed_data(ipack)
13229 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
13230 pack_tmp = ishft(pack_tmp, -3)
13231 idata = idata + 1
13232 data_tmp = iand(pack_tmp, mask_right(nbits))
13233 full_data(idata) = data_tmp
13234 pack_tmp = ishft(pack_tmp, -nbits)
13235 idata = idata + 1
13236 data_tmp = iand(pack_tmp, mask_right(nbits))
13237 full_data(idata) = data_tmp
13238 pack_tmp = ishft(pack_tmp, -nbits)
13239 idata = idata + 1
13240 data_tmp = iand(pack_tmp, mask_right(nbits))
13241 full_data(idata) = data_tmp
13242 pack_tmp = ishft(pack_tmp, -nbits)
13243 idata = idata + 1
13244 data_tmp = ishft(pack_tmp, 15)
13245 ipack = ipack + 1
13246 pack_tmp = packed_data(ipack)
13247 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
13248 pack_tmp = ishft(pack_tmp, -15)
13249 idata = idata + 1
13250 data_tmp = iand(pack_tmp, mask_right(nbits))
13251 full_data(idata) = data_tmp
13252 pack_tmp = ishft(pack_tmp, -nbits)
13253 idata = idata + 1
13254 data_tmp = iand(pack_tmp, mask_right(nbits))
13255 full_data(idata) = data_tmp
13256 pack_tmp = ishft(pack_tmp, -nbits)
13257 idata = idata + 1
13258 data_tmp = ishft(pack_tmp, 8)
13259 ipack = ipack + 1
13260 pack_tmp = packed_data(ipack)
13261 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
13262 pack_tmp = ishft(pack_tmp, -8)
13263 idata = idata + 1
13264 data_tmp = iand(pack_tmp, mask_right(nbits))
13265 full_data(idata) = data_tmp
13266 pack_tmp = ishft(pack_tmp, -nbits)
13267 idata = idata + 1
13268 data_tmp = iand(pack_tmp, mask_right(nbits))
13269 full_data(idata) = data_tmp
13270 pack_tmp = ishft(pack_tmp, -nbits)
13271 idata = idata + 1
13272 data_tmp = ishft(pack_tmp, 1)
13273 ipack = ipack + 1
13274 pack_tmp = packed_data(ipack)
13275 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
13276 pack_tmp = ishft(pack_tmp, -1)
13277 idata = idata + 1
13278 data_tmp = iand(pack_tmp, mask_right(nbits))
13279 full_data(idata) = data_tmp
13280 pack_tmp = ishft(pack_tmp, -nbits)
13281 idata = idata + 1
13282 data_tmp = iand(pack_tmp, mask_right(nbits))
13283 full_data(idata) = data_tmp
13284 pack_tmp = ishft(pack_tmp, -nbits)
13285 idata = idata + 1
13286 data_tmp = iand(pack_tmp, mask_right(nbits))
13287 full_data(idata) = data_tmp
13288 pack_tmp = ishft(pack_tmp, -nbits)
13289 idata = idata + 1
13290 data_tmp = ishft(pack_tmp, 13)
13291 ipack = ipack + 1
13292 pack_tmp = packed_data(ipack)
13293 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
13294 pack_tmp = ishft(pack_tmp, -13)
13295 idata = idata + 1
13296 data_tmp = iand(pack_tmp, mask_right(nbits))
13297 full_data(idata) = data_tmp
13298 pack_tmp = ishft(pack_tmp, -nbits)
13299 idata = idata + 1
13300 data_tmp = iand(pack_tmp, mask_right(nbits))
13301 full_data(idata) = data_tmp
13302 pack_tmp = ishft(pack_tmp, -nbits)
13303 idata = idata + 1
13304 data_tmp = ishft(pack_tmp, 6)
13305 ipack = ipack + 1
13306 pack_tmp = packed_data(ipack)
13307 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
13308 pack_tmp = ishft(pack_tmp, -6)
13309 idata = idata + 1
13310 data_tmp = iand(pack_tmp, mask_right(nbits))
13311 full_data(idata) = data_tmp
13312 pack_tmp = ishft(pack_tmp, -nbits)
13313 idata = idata + 1
13314 data_tmp = iand(pack_tmp, mask_right(nbits))
13315 full_data(idata) = data_tmp
13316 pack_tmp = ishft(pack_tmp, -nbits)
13317 idata = idata + 1
13318 data_tmp = iand(pack_tmp, mask_right(nbits))
13319 full_data(idata) = data_tmp
13320 pack_tmp = ishft(pack_tmp, -nbits)
13321 idata = idata + 1
13322 data_tmp = ishft(pack_tmp, 18)
13323 ipack = ipack + 1
13324 pack_tmp = packed_data(ipack)
13325 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
13326 pack_tmp = ishft(pack_tmp, -18)
13327 idata = idata + 1
13328 data_tmp = iand(pack_tmp, mask_right(nbits))
13329 full_data(idata) = data_tmp
13330 pack_tmp = ishft(pack_tmp, -nbits)
13331 idata = idata + 1
13332 data_tmp = iand(pack_tmp, mask_right(nbits))
13333 full_data(idata) = data_tmp
13334 pack_tmp = ishft(pack_tmp, -nbits)
13335 idata = idata + 1
13336 data_tmp = ishft(pack_tmp, 11)
13337 ipack = ipack + 1
13338 pack_tmp = packed_data(ipack)
13339 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
13340 pack_tmp = ishft(pack_tmp, -11)
13341 idata = idata + 1
13342 data_tmp = iand(pack_tmp, mask_right(nbits))
13343 full_data(idata) = data_tmp
13344 pack_tmp = ishft(pack_tmp, -nbits)
13345 idata = idata + 1
13346 data_tmp = iand(pack_tmp, mask_right(nbits))
13347 full_data(idata) = data_tmp
13348 pack_tmp = ishft(pack_tmp, -nbits)
13349 idata = idata + 1
13350 data_tmp = ishft(pack_tmp, 4)
13351 ipack = ipack + 1
13352 pack_tmp = packed_data(ipack)
13353 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
13354 pack_tmp = ishft(pack_tmp, -4)
13355 idata = idata + 1
13356 data_tmp = iand(pack_tmp, mask_right(nbits))
13357 full_data(idata) = data_tmp
13358 pack_tmp = ishft(pack_tmp, -nbits)
13359 idata = idata + 1
13360 data_tmp = iand(pack_tmp, mask_right(nbits))
13361 full_data(idata) = data_tmp
13362 pack_tmp = ishft(pack_tmp, -nbits)
13363 idata = idata + 1
13364 data_tmp = iand(pack_tmp, mask_right(nbits))
13365 full_data(idata) = data_tmp
13366 pack_tmp = ishft(pack_tmp, -nbits)
13367 idata = idata + 1
13368 data_tmp = ishft(pack_tmp, 16)
13369 ipack = ipack + 1
13370 pack_tmp = packed_data(ipack)
13371 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
13372 pack_tmp = ishft(pack_tmp, -16)
13373 idata = idata + 1
13374 data_tmp = iand(pack_tmp, mask_right(nbits))
13375 full_data(idata) = data_tmp
13376 pack_tmp = ishft(pack_tmp, -nbits)
13377 idata = idata + 1
13378 data_tmp = iand(pack_tmp, mask_right(nbits))
13379 full_data(idata) = data_tmp
13380 pack_tmp = ishft(pack_tmp, -nbits)
13381 idata = idata + 1
13382 data_tmp = ishft(pack_tmp, 9)
13383 ipack = ipack + 1
13384 pack_tmp = packed_data(ipack)
13385 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
13386 pack_tmp = ishft(pack_tmp, -9)
13387 idata = idata + 1
13388 data_tmp = iand(pack_tmp, mask_right(nbits))
13389 full_data(idata) = data_tmp
13390 pack_tmp = ishft(pack_tmp, -nbits)
13391 idata = idata + 1
13392 data_tmp = iand(pack_tmp, mask_right(nbits))
13393 full_data(idata) = data_tmp
13394 pack_tmp = ishft(pack_tmp, -nbits)
13395 idata = idata + 1
13396 data_tmp = ishft(pack_tmp, 2)
13397 ipack = ipack + 1
13398 pack_tmp = packed_data(ipack)
13399 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
13400 pack_tmp = ishft(pack_tmp, -2)
13401 idata = idata + 1
13402 data_tmp = iand(pack_tmp, mask_right(nbits))
13403 full_data(idata) = data_tmp
13404 pack_tmp = ishft(pack_tmp, -nbits)
13405 idata = idata + 1
13406 data_tmp = iand(pack_tmp, mask_right(nbits))
13407 full_data(idata) = data_tmp
13408 pack_tmp = ishft(pack_tmp, -nbits)
13409 idata = idata + 1
13410 data_tmp = iand(pack_tmp, mask_right(nbits))
13411 full_data(idata) = data_tmp
13412 pack_tmp = ishft(pack_tmp, -nbits)
13413 idata = idata + 1
13414 data_tmp = ishft(pack_tmp, 14)
13415 ipack = ipack + 1
13416 pack_tmp = packed_data(ipack)
13417 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
13418 pack_tmp = ishft(pack_tmp, -14)
13419 idata = idata + 1
13420 data_tmp = iand(pack_tmp, mask_right(nbits))
13421 full_data(idata) = data_tmp
13422 pack_tmp = ishft(pack_tmp, -nbits)
13423 idata = idata + 1
13424 data_tmp = iand(pack_tmp, mask_right(nbits))
13425 full_data(idata) = data_tmp
13426 pack_tmp = ishft(pack_tmp, -nbits)
13427 idata = idata + 1
13428 data_tmp = ishft(pack_tmp, 7)
13429 ipack = ipack + 1
13430 pack_tmp = packed_data(ipack)
13431 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
13432 pack_tmp = ishft(pack_tmp, -7)
13433 idata = idata + 1
13434 data_tmp = iand(pack_tmp, mask_right(nbits))
13435 full_data(idata) = data_tmp
13436 pack_tmp = ishft(pack_tmp, -nbits)
13437 idata = idata + 1
13438 data_tmp = iand(pack_tmp, mask_right(nbits))
13439 full_data(idata) = data_tmp
13440 pack_tmp = ishft(pack_tmp, -nbits)
13441 idata = idata + 1
13442 data_tmp = iand(pack_tmp, mask_right(nbits))
13443 full_data(idata) = data_tmp
13444 pack_tmp = ishft(pack_tmp, -nbits)
13445 END DO
13446 IF (ndata_rep < ndata) THEN
13447 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
13448 END IF
13449 END SUBROUTINE bits2ints_19
13450
13451! **************************************************************************************************
13452!> \brief ...
13453!> \param Ndata ...
13454!> \param packed_data ...
13455!> \param full_data ...
13456! **************************************************************************************************
13457 SUBROUTINE ints2bits_20(Ndata, packed_data, full_data)
13458 INTEGER, INTENT(IN) :: Ndata
13459 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
13460 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
13461
13462 INTEGER, PARAMETER :: Nbits = 20
13463
13464 INTEGER :: idata, ipack, kdata, Ndata_rep
13465 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
13466
13467 idata = 0
13468 ipack = 0
13469 ndata_rep = (ndata/64)*64
13470 DO kdata = 1, ndata_rep, 64
13471 pack_tmp = 0
13472 idata = idata + 1
13473 data_tmp = full_data(idata)
13474 data_tmp = ishft(data_tmp, 44)
13475 pack_tmp = ior(pack_tmp, data_tmp)
13476 pack_tmp = ishft(pack_tmp, -20)
13477 idata = idata + 1
13478 data_tmp = full_data(idata)
13479 data_tmp = ishft(data_tmp, 44)
13480 pack_tmp = ior(pack_tmp, data_tmp)
13481 pack_tmp = ishft(pack_tmp, -20)
13482 idata = idata + 1
13483 data_tmp = full_data(idata)
13484 data_tmp = ishft(data_tmp, 44)
13485 pack_tmp = ior(pack_tmp, data_tmp)
13486 pack_tmp = ishft(pack_tmp, -4)
13487 idata = idata + 1
13488 data_tmp = full_data(idata)
13489 data_tmp = ishft(data_tmp, 44)
13490 data_tmp = iand(data_tmp, mask_left(4))
13491 pack_tmp = ior(pack_tmp, data_tmp)
13492 ipack = ipack + 1
13493 packed_data(ipack) = pack_tmp
13494 data_tmp = full_data(idata)
13495 pack_tmp = ishft(data_tmp, 48)
13496 pack_tmp = ishft(pack_tmp, -20)
13497 idata = idata + 1
13498 data_tmp = full_data(idata)
13499 data_tmp = ishft(data_tmp, 44)
13500 pack_tmp = ior(pack_tmp, data_tmp)
13501 pack_tmp = ishft(pack_tmp, -20)
13502 idata = idata + 1
13503 data_tmp = full_data(idata)
13504 data_tmp = ishft(data_tmp, 44)
13505 pack_tmp = ior(pack_tmp, data_tmp)
13506 pack_tmp = ishft(pack_tmp, -8)
13507 idata = idata + 1
13508 data_tmp = full_data(idata)
13509 data_tmp = ishft(data_tmp, 44)
13510 data_tmp = iand(data_tmp, mask_left(8))
13511 pack_tmp = ior(pack_tmp, data_tmp)
13512 ipack = ipack + 1
13513 packed_data(ipack) = pack_tmp
13514 data_tmp = full_data(idata)
13515 pack_tmp = ishft(data_tmp, 52)
13516 pack_tmp = ishft(pack_tmp, -20)
13517 idata = idata + 1
13518 data_tmp = full_data(idata)
13519 data_tmp = ishft(data_tmp, 44)
13520 pack_tmp = ior(pack_tmp, data_tmp)
13521 pack_tmp = ishft(pack_tmp, -20)
13522 idata = idata + 1
13523 data_tmp = full_data(idata)
13524 data_tmp = ishft(data_tmp, 44)
13525 pack_tmp = ior(pack_tmp, data_tmp)
13526 pack_tmp = ishft(pack_tmp, -12)
13527 idata = idata + 1
13528 data_tmp = full_data(idata)
13529 data_tmp = ishft(data_tmp, 44)
13530 data_tmp = iand(data_tmp, mask_left(12))
13531 pack_tmp = ior(pack_tmp, data_tmp)
13532 ipack = ipack + 1
13533 packed_data(ipack) = pack_tmp
13534 data_tmp = full_data(idata)
13535 pack_tmp = ishft(data_tmp, 56)
13536 pack_tmp = ishft(pack_tmp, -20)
13537 idata = idata + 1
13538 data_tmp = full_data(idata)
13539 data_tmp = ishft(data_tmp, 44)
13540 pack_tmp = ior(pack_tmp, data_tmp)
13541 pack_tmp = ishft(pack_tmp, -20)
13542 idata = idata + 1
13543 data_tmp = full_data(idata)
13544 data_tmp = ishft(data_tmp, 44)
13545 pack_tmp = ior(pack_tmp, data_tmp)
13546 pack_tmp = ishft(pack_tmp, -16)
13547 idata = idata + 1
13548 data_tmp = full_data(idata)
13549 data_tmp = ishft(data_tmp, 44)
13550 data_tmp = iand(data_tmp, mask_left(16))
13551 pack_tmp = ior(pack_tmp, data_tmp)
13552 ipack = ipack + 1
13553 packed_data(ipack) = pack_tmp
13554 data_tmp = full_data(idata)
13555 pack_tmp = ishft(data_tmp, 60)
13556 pack_tmp = ishft(pack_tmp, -20)
13557 idata = idata + 1
13558 data_tmp = full_data(idata)
13559 data_tmp = ishft(data_tmp, 44)
13560 pack_tmp = ior(pack_tmp, data_tmp)
13561 pack_tmp = ishft(pack_tmp, -20)
13562 idata = idata + 1
13563 data_tmp = full_data(idata)
13564 data_tmp = ishft(data_tmp, 44)
13565 pack_tmp = ior(pack_tmp, data_tmp)
13566 pack_tmp = ishft(pack_tmp, -20)
13567 idata = idata + 1
13568 data_tmp = full_data(idata)
13569 data_tmp = ishft(data_tmp, 44)
13570 pack_tmp = ior(pack_tmp, data_tmp)
13571 pack_tmp = ishft(pack_tmp, 0)
13572 idata = idata + 1
13573 data_tmp = full_data(idata)
13574 data_tmp = ishft(data_tmp, 44)
13575 data_tmp = iand(data_tmp, mask_left(0))
13576 pack_tmp = ior(pack_tmp, data_tmp)
13577 ipack = ipack + 1
13578 packed_data(ipack) = pack_tmp
13579 data_tmp = full_data(idata)
13580 pack_tmp = ishft(data_tmp, 44)
13581 pack_tmp = ishft(pack_tmp, -20)
13582 idata = idata + 1
13583 data_tmp = full_data(idata)
13584 data_tmp = ishft(data_tmp, 44)
13585 pack_tmp = ior(pack_tmp, data_tmp)
13586 pack_tmp = ishft(pack_tmp, -20)
13587 idata = idata + 1
13588 data_tmp = full_data(idata)
13589 data_tmp = ishft(data_tmp, 44)
13590 pack_tmp = ior(pack_tmp, data_tmp)
13591 pack_tmp = ishft(pack_tmp, -4)
13592 idata = idata + 1
13593 data_tmp = full_data(idata)
13594 data_tmp = ishft(data_tmp, 44)
13595 data_tmp = iand(data_tmp, mask_left(4))
13596 pack_tmp = ior(pack_tmp, data_tmp)
13597 ipack = ipack + 1
13598 packed_data(ipack) = pack_tmp
13599 data_tmp = full_data(idata)
13600 pack_tmp = ishft(data_tmp, 48)
13601 pack_tmp = ishft(pack_tmp, -20)
13602 idata = idata + 1
13603 data_tmp = full_data(idata)
13604 data_tmp = ishft(data_tmp, 44)
13605 pack_tmp = ior(pack_tmp, data_tmp)
13606 pack_tmp = ishft(pack_tmp, -20)
13607 idata = idata + 1
13608 data_tmp = full_data(idata)
13609 data_tmp = ishft(data_tmp, 44)
13610 pack_tmp = ior(pack_tmp, data_tmp)
13611 pack_tmp = ishft(pack_tmp, -8)
13612 idata = idata + 1
13613 data_tmp = full_data(idata)
13614 data_tmp = ishft(data_tmp, 44)
13615 data_tmp = iand(data_tmp, mask_left(8))
13616 pack_tmp = ior(pack_tmp, data_tmp)
13617 ipack = ipack + 1
13618 packed_data(ipack) = pack_tmp
13619 data_tmp = full_data(idata)
13620 pack_tmp = ishft(data_tmp, 52)
13621 pack_tmp = ishft(pack_tmp, -20)
13622 idata = idata + 1
13623 data_tmp = full_data(idata)
13624 data_tmp = ishft(data_tmp, 44)
13625 pack_tmp = ior(pack_tmp, data_tmp)
13626 pack_tmp = ishft(pack_tmp, -20)
13627 idata = idata + 1
13628 data_tmp = full_data(idata)
13629 data_tmp = ishft(data_tmp, 44)
13630 pack_tmp = ior(pack_tmp, data_tmp)
13631 pack_tmp = ishft(pack_tmp, -12)
13632 idata = idata + 1
13633 data_tmp = full_data(idata)
13634 data_tmp = ishft(data_tmp, 44)
13635 data_tmp = iand(data_tmp, mask_left(12))
13636 pack_tmp = ior(pack_tmp, data_tmp)
13637 ipack = ipack + 1
13638 packed_data(ipack) = pack_tmp
13639 data_tmp = full_data(idata)
13640 pack_tmp = ishft(data_tmp, 56)
13641 pack_tmp = ishft(pack_tmp, -20)
13642 idata = idata + 1
13643 data_tmp = full_data(idata)
13644 data_tmp = ishft(data_tmp, 44)
13645 pack_tmp = ior(pack_tmp, data_tmp)
13646 pack_tmp = ishft(pack_tmp, -20)
13647 idata = idata + 1
13648 data_tmp = full_data(idata)
13649 data_tmp = ishft(data_tmp, 44)
13650 pack_tmp = ior(pack_tmp, data_tmp)
13651 pack_tmp = ishft(pack_tmp, -16)
13652 idata = idata + 1
13653 data_tmp = full_data(idata)
13654 data_tmp = ishft(data_tmp, 44)
13655 data_tmp = iand(data_tmp, mask_left(16))
13656 pack_tmp = ior(pack_tmp, data_tmp)
13657 ipack = ipack + 1
13658 packed_data(ipack) = pack_tmp
13659 data_tmp = full_data(idata)
13660 pack_tmp = ishft(data_tmp, 60)
13661 pack_tmp = ishft(pack_tmp, -20)
13662 idata = idata + 1
13663 data_tmp = full_data(idata)
13664 data_tmp = ishft(data_tmp, 44)
13665 pack_tmp = ior(pack_tmp, data_tmp)
13666 pack_tmp = ishft(pack_tmp, -20)
13667 idata = idata + 1
13668 data_tmp = full_data(idata)
13669 data_tmp = ishft(data_tmp, 44)
13670 pack_tmp = ior(pack_tmp, data_tmp)
13671 pack_tmp = ishft(pack_tmp, -20)
13672 idata = idata + 1
13673 data_tmp = full_data(idata)
13674 data_tmp = ishft(data_tmp, 44)
13675 pack_tmp = ior(pack_tmp, data_tmp)
13676 pack_tmp = ishft(pack_tmp, 0)
13677 idata = idata + 1
13678 data_tmp = full_data(idata)
13679 data_tmp = ishft(data_tmp, 44)
13680 data_tmp = iand(data_tmp, mask_left(0))
13681 pack_tmp = ior(pack_tmp, data_tmp)
13682 ipack = ipack + 1
13683 packed_data(ipack) = pack_tmp
13684 data_tmp = full_data(idata)
13685 pack_tmp = ishft(data_tmp, 44)
13686 pack_tmp = ishft(pack_tmp, -20)
13687 idata = idata + 1
13688 data_tmp = full_data(idata)
13689 data_tmp = ishft(data_tmp, 44)
13690 pack_tmp = ior(pack_tmp, data_tmp)
13691 pack_tmp = ishft(pack_tmp, -20)
13692 idata = idata + 1
13693 data_tmp = full_data(idata)
13694 data_tmp = ishft(data_tmp, 44)
13695 pack_tmp = ior(pack_tmp, data_tmp)
13696 pack_tmp = ishft(pack_tmp, -4)
13697 idata = idata + 1
13698 data_tmp = full_data(idata)
13699 data_tmp = ishft(data_tmp, 44)
13700 data_tmp = iand(data_tmp, mask_left(4))
13701 pack_tmp = ior(pack_tmp, data_tmp)
13702 ipack = ipack + 1
13703 packed_data(ipack) = pack_tmp
13704 data_tmp = full_data(idata)
13705 pack_tmp = ishft(data_tmp, 48)
13706 pack_tmp = ishft(pack_tmp, -20)
13707 idata = idata + 1
13708 data_tmp = full_data(idata)
13709 data_tmp = ishft(data_tmp, 44)
13710 pack_tmp = ior(pack_tmp, data_tmp)
13711 pack_tmp = ishft(pack_tmp, -20)
13712 idata = idata + 1
13713 data_tmp = full_data(idata)
13714 data_tmp = ishft(data_tmp, 44)
13715 pack_tmp = ior(pack_tmp, data_tmp)
13716 pack_tmp = ishft(pack_tmp, -8)
13717 idata = idata + 1
13718 data_tmp = full_data(idata)
13719 data_tmp = ishft(data_tmp, 44)
13720 data_tmp = iand(data_tmp, mask_left(8))
13721 pack_tmp = ior(pack_tmp, data_tmp)
13722 ipack = ipack + 1
13723 packed_data(ipack) = pack_tmp
13724 data_tmp = full_data(idata)
13725 pack_tmp = ishft(data_tmp, 52)
13726 pack_tmp = ishft(pack_tmp, -20)
13727 idata = idata + 1
13728 data_tmp = full_data(idata)
13729 data_tmp = ishft(data_tmp, 44)
13730 pack_tmp = ior(pack_tmp, data_tmp)
13731 pack_tmp = ishft(pack_tmp, -20)
13732 idata = idata + 1
13733 data_tmp = full_data(idata)
13734 data_tmp = ishft(data_tmp, 44)
13735 pack_tmp = ior(pack_tmp, data_tmp)
13736 pack_tmp = ishft(pack_tmp, -12)
13737 idata = idata + 1
13738 data_tmp = full_data(idata)
13739 data_tmp = ishft(data_tmp, 44)
13740 data_tmp = iand(data_tmp, mask_left(12))
13741 pack_tmp = ior(pack_tmp, data_tmp)
13742 ipack = ipack + 1
13743 packed_data(ipack) = pack_tmp
13744 data_tmp = full_data(idata)
13745 pack_tmp = ishft(data_tmp, 56)
13746 pack_tmp = ishft(pack_tmp, -20)
13747 idata = idata + 1
13748 data_tmp = full_data(idata)
13749 data_tmp = ishft(data_tmp, 44)
13750 pack_tmp = ior(pack_tmp, data_tmp)
13751 pack_tmp = ishft(pack_tmp, -20)
13752 idata = idata + 1
13753 data_tmp = full_data(idata)
13754 data_tmp = ishft(data_tmp, 44)
13755 pack_tmp = ior(pack_tmp, data_tmp)
13756 pack_tmp = ishft(pack_tmp, -16)
13757 idata = idata + 1
13758 data_tmp = full_data(idata)
13759 data_tmp = ishft(data_tmp, 44)
13760 data_tmp = iand(data_tmp, mask_left(16))
13761 pack_tmp = ior(pack_tmp, data_tmp)
13762 ipack = ipack + 1
13763 packed_data(ipack) = pack_tmp
13764 data_tmp = full_data(idata)
13765 pack_tmp = ishft(data_tmp, 60)
13766 pack_tmp = ishft(pack_tmp, -20)
13767 idata = idata + 1
13768 data_tmp = full_data(idata)
13769 data_tmp = ishft(data_tmp, 44)
13770 pack_tmp = ior(pack_tmp, data_tmp)
13771 pack_tmp = ishft(pack_tmp, -20)
13772 idata = idata + 1
13773 data_tmp = full_data(idata)
13774 data_tmp = ishft(data_tmp, 44)
13775 pack_tmp = ior(pack_tmp, data_tmp)
13776 pack_tmp = ishft(pack_tmp, -20)
13777 idata = idata + 1
13778 data_tmp = full_data(idata)
13779 data_tmp = ishft(data_tmp, 44)
13780 pack_tmp = ior(pack_tmp, data_tmp)
13781 pack_tmp = ishft(pack_tmp, 0)
13782 idata = idata + 1
13783 data_tmp = full_data(idata)
13784 data_tmp = ishft(data_tmp, 44)
13785 data_tmp = iand(data_tmp, mask_left(0))
13786 pack_tmp = ior(pack_tmp, data_tmp)
13787 ipack = ipack + 1
13788 packed_data(ipack) = pack_tmp
13789 data_tmp = full_data(idata)
13790 pack_tmp = ishft(data_tmp, 44)
13791 pack_tmp = ishft(pack_tmp, -20)
13792 idata = idata + 1
13793 data_tmp = full_data(idata)
13794 data_tmp = ishft(data_tmp, 44)
13795 pack_tmp = ior(pack_tmp, data_tmp)
13796 pack_tmp = ishft(pack_tmp, -20)
13797 idata = idata + 1
13798 data_tmp = full_data(idata)
13799 data_tmp = ishft(data_tmp, 44)
13800 pack_tmp = ior(pack_tmp, data_tmp)
13801 pack_tmp = ishft(pack_tmp, -4)
13802 idata = idata + 1
13803 data_tmp = full_data(idata)
13804 data_tmp = ishft(data_tmp, 44)
13805 data_tmp = iand(data_tmp, mask_left(4))
13806 pack_tmp = ior(pack_tmp, data_tmp)
13807 ipack = ipack + 1
13808 packed_data(ipack) = pack_tmp
13809 data_tmp = full_data(idata)
13810 pack_tmp = ishft(data_tmp, 48)
13811 pack_tmp = ishft(pack_tmp, -20)
13812 idata = idata + 1
13813 data_tmp = full_data(idata)
13814 data_tmp = ishft(data_tmp, 44)
13815 pack_tmp = ior(pack_tmp, data_tmp)
13816 pack_tmp = ishft(pack_tmp, -20)
13817 idata = idata + 1
13818 data_tmp = full_data(idata)
13819 data_tmp = ishft(data_tmp, 44)
13820 pack_tmp = ior(pack_tmp, data_tmp)
13821 pack_tmp = ishft(pack_tmp, -8)
13822 idata = idata + 1
13823 data_tmp = full_data(idata)
13824 data_tmp = ishft(data_tmp, 44)
13825 data_tmp = iand(data_tmp, mask_left(8))
13826 pack_tmp = ior(pack_tmp, data_tmp)
13827 ipack = ipack + 1
13828 packed_data(ipack) = pack_tmp
13829 data_tmp = full_data(idata)
13830 pack_tmp = ishft(data_tmp, 52)
13831 pack_tmp = ishft(pack_tmp, -20)
13832 idata = idata + 1
13833 data_tmp = full_data(idata)
13834 data_tmp = ishft(data_tmp, 44)
13835 pack_tmp = ior(pack_tmp, data_tmp)
13836 pack_tmp = ishft(pack_tmp, -20)
13837 idata = idata + 1
13838 data_tmp = full_data(idata)
13839 data_tmp = ishft(data_tmp, 44)
13840 pack_tmp = ior(pack_tmp, data_tmp)
13841 pack_tmp = ishft(pack_tmp, -12)
13842 idata = idata + 1
13843 data_tmp = full_data(idata)
13844 data_tmp = ishft(data_tmp, 44)
13845 data_tmp = iand(data_tmp, mask_left(12))
13846 pack_tmp = ior(pack_tmp, data_tmp)
13847 ipack = ipack + 1
13848 packed_data(ipack) = pack_tmp
13849 data_tmp = full_data(idata)
13850 pack_tmp = ishft(data_tmp, 56)
13851 pack_tmp = ishft(pack_tmp, -20)
13852 idata = idata + 1
13853 data_tmp = full_data(idata)
13854 data_tmp = ishft(data_tmp, 44)
13855 pack_tmp = ior(pack_tmp, data_tmp)
13856 pack_tmp = ishft(pack_tmp, -20)
13857 idata = idata + 1
13858 data_tmp = full_data(idata)
13859 data_tmp = ishft(data_tmp, 44)
13860 pack_tmp = ior(pack_tmp, data_tmp)
13861 pack_tmp = ishft(pack_tmp, -16)
13862 idata = idata + 1
13863 data_tmp = full_data(idata)
13864 data_tmp = ishft(data_tmp, 44)
13865 data_tmp = iand(data_tmp, mask_left(16))
13866 pack_tmp = ior(pack_tmp, data_tmp)
13867 ipack = ipack + 1
13868 packed_data(ipack) = pack_tmp
13869 data_tmp = full_data(idata)
13870 pack_tmp = ishft(data_tmp, 60)
13871 pack_tmp = ishft(pack_tmp, -20)
13872 idata = idata + 1
13873 data_tmp = full_data(idata)
13874 data_tmp = ishft(data_tmp, 44)
13875 pack_tmp = ior(pack_tmp, data_tmp)
13876 pack_tmp = ishft(pack_tmp, -20)
13877 idata = idata + 1
13878 data_tmp = full_data(idata)
13879 data_tmp = ishft(data_tmp, 44)
13880 pack_tmp = ior(pack_tmp, data_tmp)
13881 pack_tmp = ishft(pack_tmp, -20)
13882 idata = idata + 1
13883 data_tmp = full_data(idata)
13884 data_tmp = ishft(data_tmp, 44)
13885 pack_tmp = ior(pack_tmp, data_tmp)
13886 pack_tmp = ishft(pack_tmp, 0)
13887 pack_tmp = ishft(pack_tmp, 0)
13888 ipack = ipack + 1
13889 packed_data(ipack) = pack_tmp
13890 END DO
13891 IF (ndata_rep < ndata) THEN
13892 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
13893 END IF
13894 END SUBROUTINE ints2bits_20
13895
13896! **************************************************************************************************
13897!> \brief ...
13898!> \param Ndata ...
13899!> \param packed_data ...
13900!> \param full_data ...
13901! **************************************************************************************************
13902 SUBROUTINE bits2ints_20(Ndata, packed_data, full_data)
13903 INTEGER, INTENT(IN) :: Ndata
13904 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
13905 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
13906
13907 INTEGER, PARAMETER :: Nbits = 20
13908
13909 INTEGER :: idata, ipack, kdata, Ndata_rep
13910 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
13911
13912 ipack = 0
13913 idata = 0
13914 pack_tmp = 0
13915 ndata_rep = (ndata/64)*64
13916 DO kdata = 1, ndata_rep, 64
13917 idata = idata + 1
13918 data_tmp = ishft(pack_tmp, 20)
13919 ipack = ipack + 1
13920 pack_tmp = packed_data(ipack)
13921 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
13922 pack_tmp = ishft(pack_tmp, -20)
13923 idata = idata + 1
13924 data_tmp = iand(pack_tmp, mask_right(nbits))
13925 full_data(idata) = data_tmp
13926 pack_tmp = ishft(pack_tmp, -nbits)
13927 idata = idata + 1
13928 data_tmp = iand(pack_tmp, mask_right(nbits))
13929 full_data(idata) = data_tmp
13930 pack_tmp = ishft(pack_tmp, -nbits)
13931 idata = idata + 1
13932 data_tmp = ishft(pack_tmp, 16)
13933 ipack = ipack + 1
13934 pack_tmp = packed_data(ipack)
13935 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
13936 pack_tmp = ishft(pack_tmp, -16)
13937 idata = idata + 1
13938 data_tmp = iand(pack_tmp, mask_right(nbits))
13939 full_data(idata) = data_tmp
13940 pack_tmp = ishft(pack_tmp, -nbits)
13941 idata = idata + 1
13942 data_tmp = iand(pack_tmp, mask_right(nbits))
13943 full_data(idata) = data_tmp
13944 pack_tmp = ishft(pack_tmp, -nbits)
13945 idata = idata + 1
13946 data_tmp = ishft(pack_tmp, 12)
13947 ipack = ipack + 1
13948 pack_tmp = packed_data(ipack)
13949 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
13950 pack_tmp = ishft(pack_tmp, -12)
13951 idata = idata + 1
13952 data_tmp = iand(pack_tmp, mask_right(nbits))
13953 full_data(idata) = data_tmp
13954 pack_tmp = ishft(pack_tmp, -nbits)
13955 idata = idata + 1
13956 data_tmp = iand(pack_tmp, mask_right(nbits))
13957 full_data(idata) = data_tmp
13958 pack_tmp = ishft(pack_tmp, -nbits)
13959 idata = idata + 1
13960 data_tmp = ishft(pack_tmp, 8)
13961 ipack = ipack + 1
13962 pack_tmp = packed_data(ipack)
13963 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
13964 pack_tmp = ishft(pack_tmp, -8)
13965 idata = idata + 1
13966 data_tmp = iand(pack_tmp, mask_right(nbits))
13967 full_data(idata) = data_tmp
13968 pack_tmp = ishft(pack_tmp, -nbits)
13969 idata = idata + 1
13970 data_tmp = iand(pack_tmp, mask_right(nbits))
13971 full_data(idata) = data_tmp
13972 pack_tmp = ishft(pack_tmp, -nbits)
13973 idata = idata + 1
13974 data_tmp = ishft(pack_tmp, 4)
13975 ipack = ipack + 1
13976 pack_tmp = packed_data(ipack)
13977 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
13978 pack_tmp = ishft(pack_tmp, -4)
13979 idata = idata + 1
13980 data_tmp = iand(pack_tmp, mask_right(nbits))
13981 full_data(idata) = data_tmp
13982 pack_tmp = ishft(pack_tmp, -nbits)
13983 idata = idata + 1
13984 data_tmp = iand(pack_tmp, mask_right(nbits))
13985 full_data(idata) = data_tmp
13986 pack_tmp = ishft(pack_tmp, -nbits)
13987 idata = idata + 1
13988 data_tmp = iand(pack_tmp, mask_right(nbits))
13989 full_data(idata) = data_tmp
13990 pack_tmp = ishft(pack_tmp, -nbits)
13991 idata = idata + 1
13992 data_tmp = ishft(pack_tmp, 20)
13993 ipack = ipack + 1
13994 pack_tmp = packed_data(ipack)
13995 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
13996 pack_tmp = ishft(pack_tmp, -20)
13997 idata = idata + 1
13998 data_tmp = iand(pack_tmp, mask_right(nbits))
13999 full_data(idata) = data_tmp
14000 pack_tmp = ishft(pack_tmp, -nbits)
14001 idata = idata + 1
14002 data_tmp = iand(pack_tmp, mask_right(nbits))
14003 full_data(idata) = data_tmp
14004 pack_tmp = ishft(pack_tmp, -nbits)
14005 idata = idata + 1
14006 data_tmp = ishft(pack_tmp, 16)
14007 ipack = ipack + 1
14008 pack_tmp = packed_data(ipack)
14009 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
14010 pack_tmp = ishft(pack_tmp, -16)
14011 idata = idata + 1
14012 data_tmp = iand(pack_tmp, mask_right(nbits))
14013 full_data(idata) = data_tmp
14014 pack_tmp = ishft(pack_tmp, -nbits)
14015 idata = idata + 1
14016 data_tmp = iand(pack_tmp, mask_right(nbits))
14017 full_data(idata) = data_tmp
14018 pack_tmp = ishft(pack_tmp, -nbits)
14019 idata = idata + 1
14020 data_tmp = ishft(pack_tmp, 12)
14021 ipack = ipack + 1
14022 pack_tmp = packed_data(ipack)
14023 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
14024 pack_tmp = ishft(pack_tmp, -12)
14025 idata = idata + 1
14026 data_tmp = iand(pack_tmp, mask_right(nbits))
14027 full_data(idata) = data_tmp
14028 pack_tmp = ishft(pack_tmp, -nbits)
14029 idata = idata + 1
14030 data_tmp = iand(pack_tmp, mask_right(nbits))
14031 full_data(idata) = data_tmp
14032 pack_tmp = ishft(pack_tmp, -nbits)
14033 idata = idata + 1
14034 data_tmp = ishft(pack_tmp, 8)
14035 ipack = ipack + 1
14036 pack_tmp = packed_data(ipack)
14037 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
14038 pack_tmp = ishft(pack_tmp, -8)
14039 idata = idata + 1
14040 data_tmp = iand(pack_tmp, mask_right(nbits))
14041 full_data(idata) = data_tmp
14042 pack_tmp = ishft(pack_tmp, -nbits)
14043 idata = idata + 1
14044 data_tmp = iand(pack_tmp, mask_right(nbits))
14045 full_data(idata) = data_tmp
14046 pack_tmp = ishft(pack_tmp, -nbits)
14047 idata = idata + 1
14048 data_tmp = ishft(pack_tmp, 4)
14049 ipack = ipack + 1
14050 pack_tmp = packed_data(ipack)
14051 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
14052 pack_tmp = ishft(pack_tmp, -4)
14053 idata = idata + 1
14054 data_tmp = iand(pack_tmp, mask_right(nbits))
14055 full_data(idata) = data_tmp
14056 pack_tmp = ishft(pack_tmp, -nbits)
14057 idata = idata + 1
14058 data_tmp = iand(pack_tmp, mask_right(nbits))
14059 full_data(idata) = data_tmp
14060 pack_tmp = ishft(pack_tmp, -nbits)
14061 idata = idata + 1
14062 data_tmp = iand(pack_tmp, mask_right(nbits))
14063 full_data(idata) = data_tmp
14064 pack_tmp = ishft(pack_tmp, -nbits)
14065 idata = idata + 1
14066 data_tmp = ishft(pack_tmp, 20)
14067 ipack = ipack + 1
14068 pack_tmp = packed_data(ipack)
14069 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
14070 pack_tmp = ishft(pack_tmp, -20)
14071 idata = idata + 1
14072 data_tmp = iand(pack_tmp, mask_right(nbits))
14073 full_data(idata) = data_tmp
14074 pack_tmp = ishft(pack_tmp, -nbits)
14075 idata = idata + 1
14076 data_tmp = iand(pack_tmp, mask_right(nbits))
14077 full_data(idata) = data_tmp
14078 pack_tmp = ishft(pack_tmp, -nbits)
14079 idata = idata + 1
14080 data_tmp = ishft(pack_tmp, 16)
14081 ipack = ipack + 1
14082 pack_tmp = packed_data(ipack)
14083 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
14084 pack_tmp = ishft(pack_tmp, -16)
14085 idata = idata + 1
14086 data_tmp = iand(pack_tmp, mask_right(nbits))
14087 full_data(idata) = data_tmp
14088 pack_tmp = ishft(pack_tmp, -nbits)
14089 idata = idata + 1
14090 data_tmp = iand(pack_tmp, mask_right(nbits))
14091 full_data(idata) = data_tmp
14092 pack_tmp = ishft(pack_tmp, -nbits)
14093 idata = idata + 1
14094 data_tmp = ishft(pack_tmp, 12)
14095 ipack = ipack + 1
14096 pack_tmp = packed_data(ipack)
14097 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
14098 pack_tmp = ishft(pack_tmp, -12)
14099 idata = idata + 1
14100 data_tmp = iand(pack_tmp, mask_right(nbits))
14101 full_data(idata) = data_tmp
14102 pack_tmp = ishft(pack_tmp, -nbits)
14103 idata = idata + 1
14104 data_tmp = iand(pack_tmp, mask_right(nbits))
14105 full_data(idata) = data_tmp
14106 pack_tmp = ishft(pack_tmp, -nbits)
14107 idata = idata + 1
14108 data_tmp = ishft(pack_tmp, 8)
14109 ipack = ipack + 1
14110 pack_tmp = packed_data(ipack)
14111 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
14112 pack_tmp = ishft(pack_tmp, -8)
14113 idata = idata + 1
14114 data_tmp = iand(pack_tmp, mask_right(nbits))
14115 full_data(idata) = data_tmp
14116 pack_tmp = ishft(pack_tmp, -nbits)
14117 idata = idata + 1
14118 data_tmp = iand(pack_tmp, mask_right(nbits))
14119 full_data(idata) = data_tmp
14120 pack_tmp = ishft(pack_tmp, -nbits)
14121 idata = idata + 1
14122 data_tmp = ishft(pack_tmp, 4)
14123 ipack = ipack + 1
14124 pack_tmp = packed_data(ipack)
14125 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
14126 pack_tmp = ishft(pack_tmp, -4)
14127 idata = idata + 1
14128 data_tmp = iand(pack_tmp, mask_right(nbits))
14129 full_data(idata) = data_tmp
14130 pack_tmp = ishft(pack_tmp, -nbits)
14131 idata = idata + 1
14132 data_tmp = iand(pack_tmp, mask_right(nbits))
14133 full_data(idata) = data_tmp
14134 pack_tmp = ishft(pack_tmp, -nbits)
14135 idata = idata + 1
14136 data_tmp = iand(pack_tmp, mask_right(nbits))
14137 full_data(idata) = data_tmp
14138 pack_tmp = ishft(pack_tmp, -nbits)
14139 idata = idata + 1
14140 data_tmp = ishft(pack_tmp, 20)
14141 ipack = ipack + 1
14142 pack_tmp = packed_data(ipack)
14143 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
14144 pack_tmp = ishft(pack_tmp, -20)
14145 idata = idata + 1
14146 data_tmp = iand(pack_tmp, mask_right(nbits))
14147 full_data(idata) = data_tmp
14148 pack_tmp = ishft(pack_tmp, -nbits)
14149 idata = idata + 1
14150 data_tmp = iand(pack_tmp, mask_right(nbits))
14151 full_data(idata) = data_tmp
14152 pack_tmp = ishft(pack_tmp, -nbits)
14153 idata = idata + 1
14154 data_tmp = ishft(pack_tmp, 16)
14155 ipack = ipack + 1
14156 pack_tmp = packed_data(ipack)
14157 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
14158 pack_tmp = ishft(pack_tmp, -16)
14159 idata = idata + 1
14160 data_tmp = iand(pack_tmp, mask_right(nbits))
14161 full_data(idata) = data_tmp
14162 pack_tmp = ishft(pack_tmp, -nbits)
14163 idata = idata + 1
14164 data_tmp = iand(pack_tmp, mask_right(nbits))
14165 full_data(idata) = data_tmp
14166 pack_tmp = ishft(pack_tmp, -nbits)
14167 idata = idata + 1
14168 data_tmp = ishft(pack_tmp, 12)
14169 ipack = ipack + 1
14170 pack_tmp = packed_data(ipack)
14171 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
14172 pack_tmp = ishft(pack_tmp, -12)
14173 idata = idata + 1
14174 data_tmp = iand(pack_tmp, mask_right(nbits))
14175 full_data(idata) = data_tmp
14176 pack_tmp = ishft(pack_tmp, -nbits)
14177 idata = idata + 1
14178 data_tmp = iand(pack_tmp, mask_right(nbits))
14179 full_data(idata) = data_tmp
14180 pack_tmp = ishft(pack_tmp, -nbits)
14181 idata = idata + 1
14182 data_tmp = ishft(pack_tmp, 8)
14183 ipack = ipack + 1
14184 pack_tmp = packed_data(ipack)
14185 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
14186 pack_tmp = ishft(pack_tmp, -8)
14187 idata = idata + 1
14188 data_tmp = iand(pack_tmp, mask_right(nbits))
14189 full_data(idata) = data_tmp
14190 pack_tmp = ishft(pack_tmp, -nbits)
14191 idata = idata + 1
14192 data_tmp = iand(pack_tmp, mask_right(nbits))
14193 full_data(idata) = data_tmp
14194 pack_tmp = ishft(pack_tmp, -nbits)
14195 idata = idata + 1
14196 data_tmp = ishft(pack_tmp, 4)
14197 ipack = ipack + 1
14198 pack_tmp = packed_data(ipack)
14199 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
14200 pack_tmp = ishft(pack_tmp, -4)
14201 idata = idata + 1
14202 data_tmp = iand(pack_tmp, mask_right(nbits))
14203 full_data(idata) = data_tmp
14204 pack_tmp = ishft(pack_tmp, -nbits)
14205 idata = idata + 1
14206 data_tmp = iand(pack_tmp, mask_right(nbits))
14207 full_data(idata) = data_tmp
14208 pack_tmp = ishft(pack_tmp, -nbits)
14209 idata = idata + 1
14210 data_tmp = iand(pack_tmp, mask_right(nbits))
14211 full_data(idata) = data_tmp
14212 pack_tmp = ishft(pack_tmp, -nbits)
14213 END DO
14214 IF (ndata_rep < ndata) THEN
14215 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
14216 END IF
14217 END SUBROUTINE bits2ints_20
14218
14219! **************************************************************************************************
14220!> \brief ...
14221!> \param Ndata ...
14222!> \param packed_data ...
14223!> \param full_data ...
14224! **************************************************************************************************
14225 SUBROUTINE ints2bits_21(Ndata, packed_data, full_data)
14226 INTEGER, INTENT(IN) :: Ndata
14227 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
14228 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
14229
14230 INTEGER, PARAMETER :: Nbits = 21
14231
14232 INTEGER :: idata, ipack, kdata, Ndata_rep
14233 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
14234
14235 idata = 0
14236 ipack = 0
14237 ndata_rep = (ndata/64)*64
14238 DO kdata = 1, ndata_rep, 64
14239 pack_tmp = 0
14240 idata = idata + 1
14241 data_tmp = full_data(idata)
14242 data_tmp = ishft(data_tmp, 43)
14243 pack_tmp = ior(pack_tmp, data_tmp)
14244 pack_tmp = ishft(pack_tmp, -21)
14245 idata = idata + 1
14246 data_tmp = full_data(idata)
14247 data_tmp = ishft(data_tmp, 43)
14248 pack_tmp = ior(pack_tmp, data_tmp)
14249 pack_tmp = ishft(pack_tmp, -21)
14250 idata = idata + 1
14251 data_tmp = full_data(idata)
14252 data_tmp = ishft(data_tmp, 43)
14253 pack_tmp = ior(pack_tmp, data_tmp)
14254 pack_tmp = ishft(pack_tmp, -1)
14255 idata = idata + 1
14256 data_tmp = full_data(idata)
14257 data_tmp = ishft(data_tmp, 43)
14258 data_tmp = iand(data_tmp, mask_left(1))
14259 pack_tmp = ior(pack_tmp, data_tmp)
14260 ipack = ipack + 1
14261 packed_data(ipack) = pack_tmp
14262 data_tmp = full_data(idata)
14263 pack_tmp = ishft(data_tmp, 44)
14264 pack_tmp = ishft(pack_tmp, -21)
14265 idata = idata + 1
14266 data_tmp = full_data(idata)
14267 data_tmp = ishft(data_tmp, 43)
14268 pack_tmp = ior(pack_tmp, data_tmp)
14269 pack_tmp = ishft(pack_tmp, -21)
14270 idata = idata + 1
14271 data_tmp = full_data(idata)
14272 data_tmp = ishft(data_tmp, 43)
14273 pack_tmp = ior(pack_tmp, data_tmp)
14274 pack_tmp = ishft(pack_tmp, -2)
14275 idata = idata + 1
14276 data_tmp = full_data(idata)
14277 data_tmp = ishft(data_tmp, 43)
14278 data_tmp = iand(data_tmp, mask_left(2))
14279 pack_tmp = ior(pack_tmp, data_tmp)
14280 ipack = ipack + 1
14281 packed_data(ipack) = pack_tmp
14282 data_tmp = full_data(idata)
14283 pack_tmp = ishft(data_tmp, 45)
14284 pack_tmp = ishft(pack_tmp, -21)
14285 idata = idata + 1
14286 data_tmp = full_data(idata)
14287 data_tmp = ishft(data_tmp, 43)
14288 pack_tmp = ior(pack_tmp, data_tmp)
14289 pack_tmp = ishft(pack_tmp, -21)
14290 idata = idata + 1
14291 data_tmp = full_data(idata)
14292 data_tmp = ishft(data_tmp, 43)
14293 pack_tmp = ior(pack_tmp, data_tmp)
14294 pack_tmp = ishft(pack_tmp, -3)
14295 idata = idata + 1
14296 data_tmp = full_data(idata)
14297 data_tmp = ishft(data_tmp, 43)
14298 data_tmp = iand(data_tmp, mask_left(3))
14299 pack_tmp = ior(pack_tmp, data_tmp)
14300 ipack = ipack + 1
14301 packed_data(ipack) = pack_tmp
14302 data_tmp = full_data(idata)
14303 pack_tmp = ishft(data_tmp, 46)
14304 pack_tmp = ishft(pack_tmp, -21)
14305 idata = idata + 1
14306 data_tmp = full_data(idata)
14307 data_tmp = ishft(data_tmp, 43)
14308 pack_tmp = ior(pack_tmp, data_tmp)
14309 pack_tmp = ishft(pack_tmp, -21)
14310 idata = idata + 1
14311 data_tmp = full_data(idata)
14312 data_tmp = ishft(data_tmp, 43)
14313 pack_tmp = ior(pack_tmp, data_tmp)
14314 pack_tmp = ishft(pack_tmp, -4)
14315 idata = idata + 1
14316 data_tmp = full_data(idata)
14317 data_tmp = ishft(data_tmp, 43)
14318 data_tmp = iand(data_tmp, mask_left(4))
14319 pack_tmp = ior(pack_tmp, data_tmp)
14320 ipack = ipack + 1
14321 packed_data(ipack) = pack_tmp
14322 data_tmp = full_data(idata)
14323 pack_tmp = ishft(data_tmp, 47)
14324 pack_tmp = ishft(pack_tmp, -21)
14325 idata = idata + 1
14326 data_tmp = full_data(idata)
14327 data_tmp = ishft(data_tmp, 43)
14328 pack_tmp = ior(pack_tmp, data_tmp)
14329 pack_tmp = ishft(pack_tmp, -21)
14330 idata = idata + 1
14331 data_tmp = full_data(idata)
14332 data_tmp = ishft(data_tmp, 43)
14333 pack_tmp = ior(pack_tmp, data_tmp)
14334 pack_tmp = ishft(pack_tmp, -5)
14335 idata = idata + 1
14336 data_tmp = full_data(idata)
14337 data_tmp = ishft(data_tmp, 43)
14338 data_tmp = iand(data_tmp, mask_left(5))
14339 pack_tmp = ior(pack_tmp, data_tmp)
14340 ipack = ipack + 1
14341 packed_data(ipack) = pack_tmp
14342 data_tmp = full_data(idata)
14343 pack_tmp = ishft(data_tmp, 48)
14344 pack_tmp = ishft(pack_tmp, -21)
14345 idata = idata + 1
14346 data_tmp = full_data(idata)
14347 data_tmp = ishft(data_tmp, 43)
14348 pack_tmp = ior(pack_tmp, data_tmp)
14349 pack_tmp = ishft(pack_tmp, -21)
14350 idata = idata + 1
14351 data_tmp = full_data(idata)
14352 data_tmp = ishft(data_tmp, 43)
14353 pack_tmp = ior(pack_tmp, data_tmp)
14354 pack_tmp = ishft(pack_tmp, -6)
14355 idata = idata + 1
14356 data_tmp = full_data(idata)
14357 data_tmp = ishft(data_tmp, 43)
14358 data_tmp = iand(data_tmp, mask_left(6))
14359 pack_tmp = ior(pack_tmp, data_tmp)
14360 ipack = ipack + 1
14361 packed_data(ipack) = pack_tmp
14362 data_tmp = full_data(idata)
14363 pack_tmp = ishft(data_tmp, 49)
14364 pack_tmp = ishft(pack_tmp, -21)
14365 idata = idata + 1
14366 data_tmp = full_data(idata)
14367 data_tmp = ishft(data_tmp, 43)
14368 pack_tmp = ior(pack_tmp, data_tmp)
14369 pack_tmp = ishft(pack_tmp, -21)
14370 idata = idata + 1
14371 data_tmp = full_data(idata)
14372 data_tmp = ishft(data_tmp, 43)
14373 pack_tmp = ior(pack_tmp, data_tmp)
14374 pack_tmp = ishft(pack_tmp, -7)
14375 idata = idata + 1
14376 data_tmp = full_data(idata)
14377 data_tmp = ishft(data_tmp, 43)
14378 data_tmp = iand(data_tmp, mask_left(7))
14379 pack_tmp = ior(pack_tmp, data_tmp)
14380 ipack = ipack + 1
14381 packed_data(ipack) = pack_tmp
14382 data_tmp = full_data(idata)
14383 pack_tmp = ishft(data_tmp, 50)
14384 pack_tmp = ishft(pack_tmp, -21)
14385 idata = idata + 1
14386 data_tmp = full_data(idata)
14387 data_tmp = ishft(data_tmp, 43)
14388 pack_tmp = ior(pack_tmp, data_tmp)
14389 pack_tmp = ishft(pack_tmp, -21)
14390 idata = idata + 1
14391 data_tmp = full_data(idata)
14392 data_tmp = ishft(data_tmp, 43)
14393 pack_tmp = ior(pack_tmp, data_tmp)
14394 pack_tmp = ishft(pack_tmp, -8)
14395 idata = idata + 1
14396 data_tmp = full_data(idata)
14397 data_tmp = ishft(data_tmp, 43)
14398 data_tmp = iand(data_tmp, mask_left(8))
14399 pack_tmp = ior(pack_tmp, data_tmp)
14400 ipack = ipack + 1
14401 packed_data(ipack) = pack_tmp
14402 data_tmp = full_data(idata)
14403 pack_tmp = ishft(data_tmp, 51)
14404 pack_tmp = ishft(pack_tmp, -21)
14405 idata = idata + 1
14406 data_tmp = full_data(idata)
14407 data_tmp = ishft(data_tmp, 43)
14408 pack_tmp = ior(pack_tmp, data_tmp)
14409 pack_tmp = ishft(pack_tmp, -21)
14410 idata = idata + 1
14411 data_tmp = full_data(idata)
14412 data_tmp = ishft(data_tmp, 43)
14413 pack_tmp = ior(pack_tmp, data_tmp)
14414 pack_tmp = ishft(pack_tmp, -9)
14415 idata = idata + 1
14416 data_tmp = full_data(idata)
14417 data_tmp = ishft(data_tmp, 43)
14418 data_tmp = iand(data_tmp, mask_left(9))
14419 pack_tmp = ior(pack_tmp, data_tmp)
14420 ipack = ipack + 1
14421 packed_data(ipack) = pack_tmp
14422 data_tmp = full_data(idata)
14423 pack_tmp = ishft(data_tmp, 52)
14424 pack_tmp = ishft(pack_tmp, -21)
14425 idata = idata + 1
14426 data_tmp = full_data(idata)
14427 data_tmp = ishft(data_tmp, 43)
14428 pack_tmp = ior(pack_tmp, data_tmp)
14429 pack_tmp = ishft(pack_tmp, -21)
14430 idata = idata + 1
14431 data_tmp = full_data(idata)
14432 data_tmp = ishft(data_tmp, 43)
14433 pack_tmp = ior(pack_tmp, data_tmp)
14434 pack_tmp = ishft(pack_tmp, -10)
14435 idata = idata + 1
14436 data_tmp = full_data(idata)
14437 data_tmp = ishft(data_tmp, 43)
14438 data_tmp = iand(data_tmp, mask_left(10))
14439 pack_tmp = ior(pack_tmp, data_tmp)
14440 ipack = ipack + 1
14441 packed_data(ipack) = pack_tmp
14442 data_tmp = full_data(idata)
14443 pack_tmp = ishft(data_tmp, 53)
14444 pack_tmp = ishft(pack_tmp, -21)
14445 idata = idata + 1
14446 data_tmp = full_data(idata)
14447 data_tmp = ishft(data_tmp, 43)
14448 pack_tmp = ior(pack_tmp, data_tmp)
14449 pack_tmp = ishft(pack_tmp, -21)
14450 idata = idata + 1
14451 data_tmp = full_data(idata)
14452 data_tmp = ishft(data_tmp, 43)
14453 pack_tmp = ior(pack_tmp, data_tmp)
14454 pack_tmp = ishft(pack_tmp, -11)
14455 idata = idata + 1
14456 data_tmp = full_data(idata)
14457 data_tmp = ishft(data_tmp, 43)
14458 data_tmp = iand(data_tmp, mask_left(11))
14459 pack_tmp = ior(pack_tmp, data_tmp)
14460 ipack = ipack + 1
14461 packed_data(ipack) = pack_tmp
14462 data_tmp = full_data(idata)
14463 pack_tmp = ishft(data_tmp, 54)
14464 pack_tmp = ishft(pack_tmp, -21)
14465 idata = idata + 1
14466 data_tmp = full_data(idata)
14467 data_tmp = ishft(data_tmp, 43)
14468 pack_tmp = ior(pack_tmp, data_tmp)
14469 pack_tmp = ishft(pack_tmp, -21)
14470 idata = idata + 1
14471 data_tmp = full_data(idata)
14472 data_tmp = ishft(data_tmp, 43)
14473 pack_tmp = ior(pack_tmp, data_tmp)
14474 pack_tmp = ishft(pack_tmp, -12)
14475 idata = idata + 1
14476 data_tmp = full_data(idata)
14477 data_tmp = ishft(data_tmp, 43)
14478 data_tmp = iand(data_tmp, mask_left(12))
14479 pack_tmp = ior(pack_tmp, data_tmp)
14480 ipack = ipack + 1
14481 packed_data(ipack) = pack_tmp
14482 data_tmp = full_data(idata)
14483 pack_tmp = ishft(data_tmp, 55)
14484 pack_tmp = ishft(pack_tmp, -21)
14485 idata = idata + 1
14486 data_tmp = full_data(idata)
14487 data_tmp = ishft(data_tmp, 43)
14488 pack_tmp = ior(pack_tmp, data_tmp)
14489 pack_tmp = ishft(pack_tmp, -21)
14490 idata = idata + 1
14491 data_tmp = full_data(idata)
14492 data_tmp = ishft(data_tmp, 43)
14493 pack_tmp = ior(pack_tmp, data_tmp)
14494 pack_tmp = ishft(pack_tmp, -13)
14495 idata = idata + 1
14496 data_tmp = full_data(idata)
14497 data_tmp = ishft(data_tmp, 43)
14498 data_tmp = iand(data_tmp, mask_left(13))
14499 pack_tmp = ior(pack_tmp, data_tmp)
14500 ipack = ipack + 1
14501 packed_data(ipack) = pack_tmp
14502 data_tmp = full_data(idata)
14503 pack_tmp = ishft(data_tmp, 56)
14504 pack_tmp = ishft(pack_tmp, -21)
14505 idata = idata + 1
14506 data_tmp = full_data(idata)
14507 data_tmp = ishft(data_tmp, 43)
14508 pack_tmp = ior(pack_tmp, data_tmp)
14509 pack_tmp = ishft(pack_tmp, -21)
14510 idata = idata + 1
14511 data_tmp = full_data(idata)
14512 data_tmp = ishft(data_tmp, 43)
14513 pack_tmp = ior(pack_tmp, data_tmp)
14514 pack_tmp = ishft(pack_tmp, -14)
14515 idata = idata + 1
14516 data_tmp = full_data(idata)
14517 data_tmp = ishft(data_tmp, 43)
14518 data_tmp = iand(data_tmp, mask_left(14))
14519 pack_tmp = ior(pack_tmp, data_tmp)
14520 ipack = ipack + 1
14521 packed_data(ipack) = pack_tmp
14522 data_tmp = full_data(idata)
14523 pack_tmp = ishft(data_tmp, 57)
14524 pack_tmp = ishft(pack_tmp, -21)
14525 idata = idata + 1
14526 data_tmp = full_data(idata)
14527 data_tmp = ishft(data_tmp, 43)
14528 pack_tmp = ior(pack_tmp, data_tmp)
14529 pack_tmp = ishft(pack_tmp, -21)
14530 idata = idata + 1
14531 data_tmp = full_data(idata)
14532 data_tmp = ishft(data_tmp, 43)
14533 pack_tmp = ior(pack_tmp, data_tmp)
14534 pack_tmp = ishft(pack_tmp, -15)
14535 idata = idata + 1
14536 data_tmp = full_data(idata)
14537 data_tmp = ishft(data_tmp, 43)
14538 data_tmp = iand(data_tmp, mask_left(15))
14539 pack_tmp = ior(pack_tmp, data_tmp)
14540 ipack = ipack + 1
14541 packed_data(ipack) = pack_tmp
14542 data_tmp = full_data(idata)
14543 pack_tmp = ishft(data_tmp, 58)
14544 pack_tmp = ishft(pack_tmp, -21)
14545 idata = idata + 1
14546 data_tmp = full_data(idata)
14547 data_tmp = ishft(data_tmp, 43)
14548 pack_tmp = ior(pack_tmp, data_tmp)
14549 pack_tmp = ishft(pack_tmp, -21)
14550 idata = idata + 1
14551 data_tmp = full_data(idata)
14552 data_tmp = ishft(data_tmp, 43)
14553 pack_tmp = ior(pack_tmp, data_tmp)
14554 pack_tmp = ishft(pack_tmp, -16)
14555 idata = idata + 1
14556 data_tmp = full_data(idata)
14557 data_tmp = ishft(data_tmp, 43)
14558 data_tmp = iand(data_tmp, mask_left(16))
14559 pack_tmp = ior(pack_tmp, data_tmp)
14560 ipack = ipack + 1
14561 packed_data(ipack) = pack_tmp
14562 data_tmp = full_data(idata)
14563 pack_tmp = ishft(data_tmp, 59)
14564 pack_tmp = ishft(pack_tmp, -21)
14565 idata = idata + 1
14566 data_tmp = full_data(idata)
14567 data_tmp = ishft(data_tmp, 43)
14568 pack_tmp = ior(pack_tmp, data_tmp)
14569 pack_tmp = ishft(pack_tmp, -21)
14570 idata = idata + 1
14571 data_tmp = full_data(idata)
14572 data_tmp = ishft(data_tmp, 43)
14573 pack_tmp = ior(pack_tmp, data_tmp)
14574 pack_tmp = ishft(pack_tmp, -17)
14575 idata = idata + 1
14576 data_tmp = full_data(idata)
14577 data_tmp = ishft(data_tmp, 43)
14578 data_tmp = iand(data_tmp, mask_left(17))
14579 pack_tmp = ior(pack_tmp, data_tmp)
14580 ipack = ipack + 1
14581 packed_data(ipack) = pack_tmp
14582 data_tmp = full_data(idata)
14583 pack_tmp = ishft(data_tmp, 60)
14584 pack_tmp = ishft(pack_tmp, -21)
14585 idata = idata + 1
14586 data_tmp = full_data(idata)
14587 data_tmp = ishft(data_tmp, 43)
14588 pack_tmp = ior(pack_tmp, data_tmp)
14589 pack_tmp = ishft(pack_tmp, -21)
14590 idata = idata + 1
14591 data_tmp = full_data(idata)
14592 data_tmp = ishft(data_tmp, 43)
14593 pack_tmp = ior(pack_tmp, data_tmp)
14594 pack_tmp = ishft(pack_tmp, -18)
14595 idata = idata + 1
14596 data_tmp = full_data(idata)
14597 data_tmp = ishft(data_tmp, 43)
14598 data_tmp = iand(data_tmp, mask_left(18))
14599 pack_tmp = ior(pack_tmp, data_tmp)
14600 ipack = ipack + 1
14601 packed_data(ipack) = pack_tmp
14602 data_tmp = full_data(idata)
14603 pack_tmp = ishft(data_tmp, 61)
14604 pack_tmp = ishft(pack_tmp, -21)
14605 idata = idata + 1
14606 data_tmp = full_data(idata)
14607 data_tmp = ishft(data_tmp, 43)
14608 pack_tmp = ior(pack_tmp, data_tmp)
14609 pack_tmp = ishft(pack_tmp, -21)
14610 idata = idata + 1
14611 data_tmp = full_data(idata)
14612 data_tmp = ishft(data_tmp, 43)
14613 pack_tmp = ior(pack_tmp, data_tmp)
14614 pack_tmp = ishft(pack_tmp, -19)
14615 idata = idata + 1
14616 data_tmp = full_data(idata)
14617 data_tmp = ishft(data_tmp, 43)
14618 data_tmp = iand(data_tmp, mask_left(19))
14619 pack_tmp = ior(pack_tmp, data_tmp)
14620 ipack = ipack + 1
14621 packed_data(ipack) = pack_tmp
14622 data_tmp = full_data(idata)
14623 pack_tmp = ishft(data_tmp, 62)
14624 pack_tmp = ishft(pack_tmp, -21)
14625 idata = idata + 1
14626 data_tmp = full_data(idata)
14627 data_tmp = ishft(data_tmp, 43)
14628 pack_tmp = ior(pack_tmp, data_tmp)
14629 pack_tmp = ishft(pack_tmp, -21)
14630 idata = idata + 1
14631 data_tmp = full_data(idata)
14632 data_tmp = ishft(data_tmp, 43)
14633 pack_tmp = ior(pack_tmp, data_tmp)
14634 pack_tmp = ishft(pack_tmp, -20)
14635 idata = idata + 1
14636 data_tmp = full_data(idata)
14637 data_tmp = ishft(data_tmp, 43)
14638 data_tmp = iand(data_tmp, mask_left(20))
14639 pack_tmp = ior(pack_tmp, data_tmp)
14640 ipack = ipack + 1
14641 packed_data(ipack) = pack_tmp
14642 data_tmp = full_data(idata)
14643 pack_tmp = ishft(data_tmp, 63)
14644 pack_tmp = ishft(pack_tmp, -21)
14645 idata = idata + 1
14646 data_tmp = full_data(idata)
14647 data_tmp = ishft(data_tmp, 43)
14648 pack_tmp = ior(pack_tmp, data_tmp)
14649 pack_tmp = ishft(pack_tmp, -21)
14650 idata = idata + 1
14651 data_tmp = full_data(idata)
14652 data_tmp = ishft(data_tmp, 43)
14653 pack_tmp = ior(pack_tmp, data_tmp)
14654 pack_tmp = ishft(pack_tmp, -21)
14655 idata = idata + 1
14656 data_tmp = full_data(idata)
14657 data_tmp = ishft(data_tmp, 43)
14658 pack_tmp = ior(pack_tmp, data_tmp)
14659 pack_tmp = ishft(pack_tmp, 0)
14660 pack_tmp = ishft(pack_tmp, 0)
14661 ipack = ipack + 1
14662 packed_data(ipack) = pack_tmp
14663 END DO
14664 IF (ndata_rep < ndata) THEN
14665 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
14666 END IF
14667 END SUBROUTINE ints2bits_21
14668
14669! **************************************************************************************************
14670!> \brief ...
14671!> \param Ndata ...
14672!> \param packed_data ...
14673!> \param full_data ...
14674! **************************************************************************************************
14675 SUBROUTINE bits2ints_21(Ndata, packed_data, full_data)
14676 INTEGER, INTENT(IN) :: Ndata
14677 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
14678 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
14679
14680 INTEGER, PARAMETER :: Nbits = 21
14681
14682 INTEGER :: idata, ipack, kdata, Ndata_rep
14683 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
14684
14685 ipack = 0
14686 idata = 0
14687 pack_tmp = 0
14688 ndata_rep = (ndata/64)*64
14689 DO kdata = 1, ndata_rep, 64
14690 idata = idata + 1
14691 data_tmp = ishft(pack_tmp, 21)
14692 ipack = ipack + 1
14693 pack_tmp = packed_data(ipack)
14694 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
14695 pack_tmp = ishft(pack_tmp, -21)
14696 idata = idata + 1
14697 data_tmp = iand(pack_tmp, mask_right(nbits))
14698 full_data(idata) = data_tmp
14699 pack_tmp = ishft(pack_tmp, -nbits)
14700 idata = idata + 1
14701 data_tmp = iand(pack_tmp, mask_right(nbits))
14702 full_data(idata) = data_tmp
14703 pack_tmp = ishft(pack_tmp, -nbits)
14704 idata = idata + 1
14705 data_tmp = ishft(pack_tmp, 20)
14706 ipack = ipack + 1
14707 pack_tmp = packed_data(ipack)
14708 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
14709 pack_tmp = ishft(pack_tmp, -20)
14710 idata = idata + 1
14711 data_tmp = iand(pack_tmp, mask_right(nbits))
14712 full_data(idata) = data_tmp
14713 pack_tmp = ishft(pack_tmp, -nbits)
14714 idata = idata + 1
14715 data_tmp = iand(pack_tmp, mask_right(nbits))
14716 full_data(idata) = data_tmp
14717 pack_tmp = ishft(pack_tmp, -nbits)
14718 idata = idata + 1
14719 data_tmp = ishft(pack_tmp, 19)
14720 ipack = ipack + 1
14721 pack_tmp = packed_data(ipack)
14722 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
14723 pack_tmp = ishft(pack_tmp, -19)
14724 idata = idata + 1
14725 data_tmp = iand(pack_tmp, mask_right(nbits))
14726 full_data(idata) = data_tmp
14727 pack_tmp = ishft(pack_tmp, -nbits)
14728 idata = idata + 1
14729 data_tmp = iand(pack_tmp, mask_right(nbits))
14730 full_data(idata) = data_tmp
14731 pack_tmp = ishft(pack_tmp, -nbits)
14732 idata = idata + 1
14733 data_tmp = ishft(pack_tmp, 18)
14734 ipack = ipack + 1
14735 pack_tmp = packed_data(ipack)
14736 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
14737 pack_tmp = ishft(pack_tmp, -18)
14738 idata = idata + 1
14739 data_tmp = iand(pack_tmp, mask_right(nbits))
14740 full_data(idata) = data_tmp
14741 pack_tmp = ishft(pack_tmp, -nbits)
14742 idata = idata + 1
14743 data_tmp = iand(pack_tmp, mask_right(nbits))
14744 full_data(idata) = data_tmp
14745 pack_tmp = ishft(pack_tmp, -nbits)
14746 idata = idata + 1
14747 data_tmp = ishft(pack_tmp, 17)
14748 ipack = ipack + 1
14749 pack_tmp = packed_data(ipack)
14750 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
14751 pack_tmp = ishft(pack_tmp, -17)
14752 idata = idata + 1
14753 data_tmp = iand(pack_tmp, mask_right(nbits))
14754 full_data(idata) = data_tmp
14755 pack_tmp = ishft(pack_tmp, -nbits)
14756 idata = idata + 1
14757 data_tmp = iand(pack_tmp, mask_right(nbits))
14758 full_data(idata) = data_tmp
14759 pack_tmp = ishft(pack_tmp, -nbits)
14760 idata = idata + 1
14761 data_tmp = ishft(pack_tmp, 16)
14762 ipack = ipack + 1
14763 pack_tmp = packed_data(ipack)
14764 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
14765 pack_tmp = ishft(pack_tmp, -16)
14766 idata = idata + 1
14767 data_tmp = iand(pack_tmp, mask_right(nbits))
14768 full_data(idata) = data_tmp
14769 pack_tmp = ishft(pack_tmp, -nbits)
14770 idata = idata + 1
14771 data_tmp = iand(pack_tmp, mask_right(nbits))
14772 full_data(idata) = data_tmp
14773 pack_tmp = ishft(pack_tmp, -nbits)
14774 idata = idata + 1
14775 data_tmp = ishft(pack_tmp, 15)
14776 ipack = ipack + 1
14777 pack_tmp = packed_data(ipack)
14778 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
14779 pack_tmp = ishft(pack_tmp, -15)
14780 idata = idata + 1
14781 data_tmp = iand(pack_tmp, mask_right(nbits))
14782 full_data(idata) = data_tmp
14783 pack_tmp = ishft(pack_tmp, -nbits)
14784 idata = idata + 1
14785 data_tmp = iand(pack_tmp, mask_right(nbits))
14786 full_data(idata) = data_tmp
14787 pack_tmp = ishft(pack_tmp, -nbits)
14788 idata = idata + 1
14789 data_tmp = ishft(pack_tmp, 14)
14790 ipack = ipack + 1
14791 pack_tmp = packed_data(ipack)
14792 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
14793 pack_tmp = ishft(pack_tmp, -14)
14794 idata = idata + 1
14795 data_tmp = iand(pack_tmp, mask_right(nbits))
14796 full_data(idata) = data_tmp
14797 pack_tmp = ishft(pack_tmp, -nbits)
14798 idata = idata + 1
14799 data_tmp = iand(pack_tmp, mask_right(nbits))
14800 full_data(idata) = data_tmp
14801 pack_tmp = ishft(pack_tmp, -nbits)
14802 idata = idata + 1
14803 data_tmp = ishft(pack_tmp, 13)
14804 ipack = ipack + 1
14805 pack_tmp = packed_data(ipack)
14806 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
14807 pack_tmp = ishft(pack_tmp, -13)
14808 idata = idata + 1
14809 data_tmp = iand(pack_tmp, mask_right(nbits))
14810 full_data(idata) = data_tmp
14811 pack_tmp = ishft(pack_tmp, -nbits)
14812 idata = idata + 1
14813 data_tmp = iand(pack_tmp, mask_right(nbits))
14814 full_data(idata) = data_tmp
14815 pack_tmp = ishft(pack_tmp, -nbits)
14816 idata = idata + 1
14817 data_tmp = ishft(pack_tmp, 12)
14818 ipack = ipack + 1
14819 pack_tmp = packed_data(ipack)
14820 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
14821 pack_tmp = ishft(pack_tmp, -12)
14822 idata = idata + 1
14823 data_tmp = iand(pack_tmp, mask_right(nbits))
14824 full_data(idata) = data_tmp
14825 pack_tmp = ishft(pack_tmp, -nbits)
14826 idata = idata + 1
14827 data_tmp = iand(pack_tmp, mask_right(nbits))
14828 full_data(idata) = data_tmp
14829 pack_tmp = ishft(pack_tmp, -nbits)
14830 idata = idata + 1
14831 data_tmp = ishft(pack_tmp, 11)
14832 ipack = ipack + 1
14833 pack_tmp = packed_data(ipack)
14834 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
14835 pack_tmp = ishft(pack_tmp, -11)
14836 idata = idata + 1
14837 data_tmp = iand(pack_tmp, mask_right(nbits))
14838 full_data(idata) = data_tmp
14839 pack_tmp = ishft(pack_tmp, -nbits)
14840 idata = idata + 1
14841 data_tmp = iand(pack_tmp, mask_right(nbits))
14842 full_data(idata) = data_tmp
14843 pack_tmp = ishft(pack_tmp, -nbits)
14844 idata = idata + 1
14845 data_tmp = ishft(pack_tmp, 10)
14846 ipack = ipack + 1
14847 pack_tmp = packed_data(ipack)
14848 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
14849 pack_tmp = ishft(pack_tmp, -10)
14850 idata = idata + 1
14851 data_tmp = iand(pack_tmp, mask_right(nbits))
14852 full_data(idata) = data_tmp
14853 pack_tmp = ishft(pack_tmp, -nbits)
14854 idata = idata + 1
14855 data_tmp = iand(pack_tmp, mask_right(nbits))
14856 full_data(idata) = data_tmp
14857 pack_tmp = ishft(pack_tmp, -nbits)
14858 idata = idata + 1
14859 data_tmp = ishft(pack_tmp, 9)
14860 ipack = ipack + 1
14861 pack_tmp = packed_data(ipack)
14862 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
14863 pack_tmp = ishft(pack_tmp, -9)
14864 idata = idata + 1
14865 data_tmp = iand(pack_tmp, mask_right(nbits))
14866 full_data(idata) = data_tmp
14867 pack_tmp = ishft(pack_tmp, -nbits)
14868 idata = idata + 1
14869 data_tmp = iand(pack_tmp, mask_right(nbits))
14870 full_data(idata) = data_tmp
14871 pack_tmp = ishft(pack_tmp, -nbits)
14872 idata = idata + 1
14873 data_tmp = ishft(pack_tmp, 8)
14874 ipack = ipack + 1
14875 pack_tmp = packed_data(ipack)
14876 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
14877 pack_tmp = ishft(pack_tmp, -8)
14878 idata = idata + 1
14879 data_tmp = iand(pack_tmp, mask_right(nbits))
14880 full_data(idata) = data_tmp
14881 pack_tmp = ishft(pack_tmp, -nbits)
14882 idata = idata + 1
14883 data_tmp = iand(pack_tmp, mask_right(nbits))
14884 full_data(idata) = data_tmp
14885 pack_tmp = ishft(pack_tmp, -nbits)
14886 idata = idata + 1
14887 data_tmp = ishft(pack_tmp, 7)
14888 ipack = ipack + 1
14889 pack_tmp = packed_data(ipack)
14890 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
14891 pack_tmp = ishft(pack_tmp, -7)
14892 idata = idata + 1
14893 data_tmp = iand(pack_tmp, mask_right(nbits))
14894 full_data(idata) = data_tmp
14895 pack_tmp = ishft(pack_tmp, -nbits)
14896 idata = idata + 1
14897 data_tmp = iand(pack_tmp, mask_right(nbits))
14898 full_data(idata) = data_tmp
14899 pack_tmp = ishft(pack_tmp, -nbits)
14900 idata = idata + 1
14901 data_tmp = ishft(pack_tmp, 6)
14902 ipack = ipack + 1
14903 pack_tmp = packed_data(ipack)
14904 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
14905 pack_tmp = ishft(pack_tmp, -6)
14906 idata = idata + 1
14907 data_tmp = iand(pack_tmp, mask_right(nbits))
14908 full_data(idata) = data_tmp
14909 pack_tmp = ishft(pack_tmp, -nbits)
14910 idata = idata + 1
14911 data_tmp = iand(pack_tmp, mask_right(nbits))
14912 full_data(idata) = data_tmp
14913 pack_tmp = ishft(pack_tmp, -nbits)
14914 idata = idata + 1
14915 data_tmp = ishft(pack_tmp, 5)
14916 ipack = ipack + 1
14917 pack_tmp = packed_data(ipack)
14918 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
14919 pack_tmp = ishft(pack_tmp, -5)
14920 idata = idata + 1
14921 data_tmp = iand(pack_tmp, mask_right(nbits))
14922 full_data(idata) = data_tmp
14923 pack_tmp = ishft(pack_tmp, -nbits)
14924 idata = idata + 1
14925 data_tmp = iand(pack_tmp, mask_right(nbits))
14926 full_data(idata) = data_tmp
14927 pack_tmp = ishft(pack_tmp, -nbits)
14928 idata = idata + 1
14929 data_tmp = ishft(pack_tmp, 4)
14930 ipack = ipack + 1
14931 pack_tmp = packed_data(ipack)
14932 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
14933 pack_tmp = ishft(pack_tmp, -4)
14934 idata = idata + 1
14935 data_tmp = iand(pack_tmp, mask_right(nbits))
14936 full_data(idata) = data_tmp
14937 pack_tmp = ishft(pack_tmp, -nbits)
14938 idata = idata + 1
14939 data_tmp = iand(pack_tmp, mask_right(nbits))
14940 full_data(idata) = data_tmp
14941 pack_tmp = ishft(pack_tmp, -nbits)
14942 idata = idata + 1
14943 data_tmp = ishft(pack_tmp, 3)
14944 ipack = ipack + 1
14945 pack_tmp = packed_data(ipack)
14946 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
14947 pack_tmp = ishft(pack_tmp, -3)
14948 idata = idata + 1
14949 data_tmp = iand(pack_tmp, mask_right(nbits))
14950 full_data(idata) = data_tmp
14951 pack_tmp = ishft(pack_tmp, -nbits)
14952 idata = idata + 1
14953 data_tmp = iand(pack_tmp, mask_right(nbits))
14954 full_data(idata) = data_tmp
14955 pack_tmp = ishft(pack_tmp, -nbits)
14956 idata = idata + 1
14957 data_tmp = ishft(pack_tmp, 2)
14958 ipack = ipack + 1
14959 pack_tmp = packed_data(ipack)
14960 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
14961 pack_tmp = ishft(pack_tmp, -2)
14962 idata = idata + 1
14963 data_tmp = iand(pack_tmp, mask_right(nbits))
14964 full_data(idata) = data_tmp
14965 pack_tmp = ishft(pack_tmp, -nbits)
14966 idata = idata + 1
14967 data_tmp = iand(pack_tmp, mask_right(nbits))
14968 full_data(idata) = data_tmp
14969 pack_tmp = ishft(pack_tmp, -nbits)
14970 idata = idata + 1
14971 data_tmp = ishft(pack_tmp, 1)
14972 ipack = ipack + 1
14973 pack_tmp = packed_data(ipack)
14974 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
14975 pack_tmp = ishft(pack_tmp, -1)
14976 idata = idata + 1
14977 data_tmp = iand(pack_tmp, mask_right(nbits))
14978 full_data(idata) = data_tmp
14979 pack_tmp = ishft(pack_tmp, -nbits)
14980 idata = idata + 1
14981 data_tmp = iand(pack_tmp, mask_right(nbits))
14982 full_data(idata) = data_tmp
14983 pack_tmp = ishft(pack_tmp, -nbits)
14984 idata = idata + 1
14985 data_tmp = iand(pack_tmp, mask_right(nbits))
14986 full_data(idata) = data_tmp
14987 pack_tmp = ishft(pack_tmp, -nbits)
14988 END DO
14989 IF (ndata_rep < ndata) THEN
14990 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
14991 END IF
14992 END SUBROUTINE bits2ints_21
14993
14994! **************************************************************************************************
14995!> \brief ...
14996!> \param Ndata ...
14997!> \param packed_data ...
14998!> \param full_data ...
14999! **************************************************************************************************
15000 SUBROUTINE ints2bits_22(Ndata, packed_data, full_data)
15001 INTEGER, INTENT(IN) :: Ndata
15002 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
15003 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
15004
15005 INTEGER, PARAMETER :: Nbits = 22
15006
15007 INTEGER :: idata, ipack, kdata, Ndata_rep
15008 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
15009
15010 idata = 0
15011 ipack = 0
15012 ndata_rep = (ndata/64)*64
15013 DO kdata = 1, ndata_rep, 64
15014 pack_tmp = 0
15015 idata = idata + 1
15016 data_tmp = full_data(idata)
15017 data_tmp = ishft(data_tmp, 42)
15018 pack_tmp = ior(pack_tmp, data_tmp)
15019 pack_tmp = ishft(pack_tmp, -22)
15020 idata = idata + 1
15021 data_tmp = full_data(idata)
15022 data_tmp = ishft(data_tmp, 42)
15023 pack_tmp = ior(pack_tmp, data_tmp)
15024 pack_tmp = ishft(pack_tmp, -20)
15025 idata = idata + 1
15026 data_tmp = full_data(idata)
15027 data_tmp = ishft(data_tmp, 42)
15028 data_tmp = iand(data_tmp, mask_left(20))
15029 pack_tmp = ior(pack_tmp, data_tmp)
15030 ipack = ipack + 1
15031 packed_data(ipack) = pack_tmp
15032 data_tmp = full_data(idata)
15033 pack_tmp = ishft(data_tmp, 62)
15034 pack_tmp = ishft(pack_tmp, -22)
15035 idata = idata + 1
15036 data_tmp = full_data(idata)
15037 data_tmp = ishft(data_tmp, 42)
15038 pack_tmp = ior(pack_tmp, data_tmp)
15039 pack_tmp = ishft(pack_tmp, -22)
15040 idata = idata + 1
15041 data_tmp = full_data(idata)
15042 data_tmp = ishft(data_tmp, 42)
15043 pack_tmp = ior(pack_tmp, data_tmp)
15044 pack_tmp = ishft(pack_tmp, -18)
15045 idata = idata + 1
15046 data_tmp = full_data(idata)
15047 data_tmp = ishft(data_tmp, 42)
15048 data_tmp = iand(data_tmp, mask_left(18))
15049 pack_tmp = ior(pack_tmp, data_tmp)
15050 ipack = ipack + 1
15051 packed_data(ipack) = pack_tmp
15052 data_tmp = full_data(idata)
15053 pack_tmp = ishft(data_tmp, 60)
15054 pack_tmp = ishft(pack_tmp, -22)
15055 idata = idata + 1
15056 data_tmp = full_data(idata)
15057 data_tmp = ishft(data_tmp, 42)
15058 pack_tmp = ior(pack_tmp, data_tmp)
15059 pack_tmp = ishft(pack_tmp, -22)
15060 idata = idata + 1
15061 data_tmp = full_data(idata)
15062 data_tmp = ishft(data_tmp, 42)
15063 pack_tmp = ior(pack_tmp, data_tmp)
15064 pack_tmp = ishft(pack_tmp, -16)
15065 idata = idata + 1
15066 data_tmp = full_data(idata)
15067 data_tmp = ishft(data_tmp, 42)
15068 data_tmp = iand(data_tmp, mask_left(16))
15069 pack_tmp = ior(pack_tmp, data_tmp)
15070 ipack = ipack + 1
15071 packed_data(ipack) = pack_tmp
15072 data_tmp = full_data(idata)
15073 pack_tmp = ishft(data_tmp, 58)
15074 pack_tmp = ishft(pack_tmp, -22)
15075 idata = idata + 1
15076 data_tmp = full_data(idata)
15077 data_tmp = ishft(data_tmp, 42)
15078 pack_tmp = ior(pack_tmp, data_tmp)
15079 pack_tmp = ishft(pack_tmp, -22)
15080 idata = idata + 1
15081 data_tmp = full_data(idata)
15082 data_tmp = ishft(data_tmp, 42)
15083 pack_tmp = ior(pack_tmp, data_tmp)
15084 pack_tmp = ishft(pack_tmp, -14)
15085 idata = idata + 1
15086 data_tmp = full_data(idata)
15087 data_tmp = ishft(data_tmp, 42)
15088 data_tmp = iand(data_tmp, mask_left(14))
15089 pack_tmp = ior(pack_tmp, data_tmp)
15090 ipack = ipack + 1
15091 packed_data(ipack) = pack_tmp
15092 data_tmp = full_data(idata)
15093 pack_tmp = ishft(data_tmp, 56)
15094 pack_tmp = ishft(pack_tmp, -22)
15095 idata = idata + 1
15096 data_tmp = full_data(idata)
15097 data_tmp = ishft(data_tmp, 42)
15098 pack_tmp = ior(pack_tmp, data_tmp)
15099 pack_tmp = ishft(pack_tmp, -22)
15100 idata = idata + 1
15101 data_tmp = full_data(idata)
15102 data_tmp = ishft(data_tmp, 42)
15103 pack_tmp = ior(pack_tmp, data_tmp)
15104 pack_tmp = ishft(pack_tmp, -12)
15105 idata = idata + 1
15106 data_tmp = full_data(idata)
15107 data_tmp = ishft(data_tmp, 42)
15108 data_tmp = iand(data_tmp, mask_left(12))
15109 pack_tmp = ior(pack_tmp, data_tmp)
15110 ipack = ipack + 1
15111 packed_data(ipack) = pack_tmp
15112 data_tmp = full_data(idata)
15113 pack_tmp = ishft(data_tmp, 54)
15114 pack_tmp = ishft(pack_tmp, -22)
15115 idata = idata + 1
15116 data_tmp = full_data(idata)
15117 data_tmp = ishft(data_tmp, 42)
15118 pack_tmp = ior(pack_tmp, data_tmp)
15119 pack_tmp = ishft(pack_tmp, -22)
15120 idata = idata + 1
15121 data_tmp = full_data(idata)
15122 data_tmp = ishft(data_tmp, 42)
15123 pack_tmp = ior(pack_tmp, data_tmp)
15124 pack_tmp = ishft(pack_tmp, -10)
15125 idata = idata + 1
15126 data_tmp = full_data(idata)
15127 data_tmp = ishft(data_tmp, 42)
15128 data_tmp = iand(data_tmp, mask_left(10))
15129 pack_tmp = ior(pack_tmp, data_tmp)
15130 ipack = ipack + 1
15131 packed_data(ipack) = pack_tmp
15132 data_tmp = full_data(idata)
15133 pack_tmp = ishft(data_tmp, 52)
15134 pack_tmp = ishft(pack_tmp, -22)
15135 idata = idata + 1
15136 data_tmp = full_data(idata)
15137 data_tmp = ishft(data_tmp, 42)
15138 pack_tmp = ior(pack_tmp, data_tmp)
15139 pack_tmp = ishft(pack_tmp, -22)
15140 idata = idata + 1
15141 data_tmp = full_data(idata)
15142 data_tmp = ishft(data_tmp, 42)
15143 pack_tmp = ior(pack_tmp, data_tmp)
15144 pack_tmp = ishft(pack_tmp, -8)
15145 idata = idata + 1
15146 data_tmp = full_data(idata)
15147 data_tmp = ishft(data_tmp, 42)
15148 data_tmp = iand(data_tmp, mask_left(8))
15149 pack_tmp = ior(pack_tmp, data_tmp)
15150 ipack = ipack + 1
15151 packed_data(ipack) = pack_tmp
15152 data_tmp = full_data(idata)
15153 pack_tmp = ishft(data_tmp, 50)
15154 pack_tmp = ishft(pack_tmp, -22)
15155 idata = idata + 1
15156 data_tmp = full_data(idata)
15157 data_tmp = ishft(data_tmp, 42)
15158 pack_tmp = ior(pack_tmp, data_tmp)
15159 pack_tmp = ishft(pack_tmp, -22)
15160 idata = idata + 1
15161 data_tmp = full_data(idata)
15162 data_tmp = ishft(data_tmp, 42)
15163 pack_tmp = ior(pack_tmp, data_tmp)
15164 pack_tmp = ishft(pack_tmp, -6)
15165 idata = idata + 1
15166 data_tmp = full_data(idata)
15167 data_tmp = ishft(data_tmp, 42)
15168 data_tmp = iand(data_tmp, mask_left(6))
15169 pack_tmp = ior(pack_tmp, data_tmp)
15170 ipack = ipack + 1
15171 packed_data(ipack) = pack_tmp
15172 data_tmp = full_data(idata)
15173 pack_tmp = ishft(data_tmp, 48)
15174 pack_tmp = ishft(pack_tmp, -22)
15175 idata = idata + 1
15176 data_tmp = full_data(idata)
15177 data_tmp = ishft(data_tmp, 42)
15178 pack_tmp = ior(pack_tmp, data_tmp)
15179 pack_tmp = ishft(pack_tmp, -22)
15180 idata = idata + 1
15181 data_tmp = full_data(idata)
15182 data_tmp = ishft(data_tmp, 42)
15183 pack_tmp = ior(pack_tmp, data_tmp)
15184 pack_tmp = ishft(pack_tmp, -4)
15185 idata = idata + 1
15186 data_tmp = full_data(idata)
15187 data_tmp = ishft(data_tmp, 42)
15188 data_tmp = iand(data_tmp, mask_left(4))
15189 pack_tmp = ior(pack_tmp, data_tmp)
15190 ipack = ipack + 1
15191 packed_data(ipack) = pack_tmp
15192 data_tmp = full_data(idata)
15193 pack_tmp = ishft(data_tmp, 46)
15194 pack_tmp = ishft(pack_tmp, -22)
15195 idata = idata + 1
15196 data_tmp = full_data(idata)
15197 data_tmp = ishft(data_tmp, 42)
15198 pack_tmp = ior(pack_tmp, data_tmp)
15199 pack_tmp = ishft(pack_tmp, -22)
15200 idata = idata + 1
15201 data_tmp = full_data(idata)
15202 data_tmp = ishft(data_tmp, 42)
15203 pack_tmp = ior(pack_tmp, data_tmp)
15204 pack_tmp = ishft(pack_tmp, -2)
15205 idata = idata + 1
15206 data_tmp = full_data(idata)
15207 data_tmp = ishft(data_tmp, 42)
15208 data_tmp = iand(data_tmp, mask_left(2))
15209 pack_tmp = ior(pack_tmp, data_tmp)
15210 ipack = ipack + 1
15211 packed_data(ipack) = pack_tmp
15212 data_tmp = full_data(idata)
15213 pack_tmp = ishft(data_tmp, 44)
15214 pack_tmp = ishft(pack_tmp, -22)
15215 idata = idata + 1
15216 data_tmp = full_data(idata)
15217 data_tmp = ishft(data_tmp, 42)
15218 pack_tmp = ior(pack_tmp, data_tmp)
15219 pack_tmp = ishft(pack_tmp, -22)
15220 idata = idata + 1
15221 data_tmp = full_data(idata)
15222 data_tmp = ishft(data_tmp, 42)
15223 pack_tmp = ior(pack_tmp, data_tmp)
15224 pack_tmp = ishft(pack_tmp, 0)
15225 idata = idata + 1
15226 data_tmp = full_data(idata)
15227 data_tmp = ishft(data_tmp, 42)
15228 data_tmp = iand(data_tmp, mask_left(0))
15229 pack_tmp = ior(pack_tmp, data_tmp)
15230 ipack = ipack + 1
15231 packed_data(ipack) = pack_tmp
15232 data_tmp = full_data(idata)
15233 pack_tmp = ishft(data_tmp, 42)
15234 pack_tmp = ishft(pack_tmp, -22)
15235 idata = idata + 1
15236 data_tmp = full_data(idata)
15237 data_tmp = ishft(data_tmp, 42)
15238 pack_tmp = ior(pack_tmp, data_tmp)
15239 pack_tmp = ishft(pack_tmp, -20)
15240 idata = idata + 1
15241 data_tmp = full_data(idata)
15242 data_tmp = ishft(data_tmp, 42)
15243 data_tmp = iand(data_tmp, mask_left(20))
15244 pack_tmp = ior(pack_tmp, data_tmp)
15245 ipack = ipack + 1
15246 packed_data(ipack) = pack_tmp
15247 data_tmp = full_data(idata)
15248 pack_tmp = ishft(data_tmp, 62)
15249 pack_tmp = ishft(pack_tmp, -22)
15250 idata = idata + 1
15251 data_tmp = full_data(idata)
15252 data_tmp = ishft(data_tmp, 42)
15253 pack_tmp = ior(pack_tmp, data_tmp)
15254 pack_tmp = ishft(pack_tmp, -22)
15255 idata = idata + 1
15256 data_tmp = full_data(idata)
15257 data_tmp = ishft(data_tmp, 42)
15258 pack_tmp = ior(pack_tmp, data_tmp)
15259 pack_tmp = ishft(pack_tmp, -18)
15260 idata = idata + 1
15261 data_tmp = full_data(idata)
15262 data_tmp = ishft(data_tmp, 42)
15263 data_tmp = iand(data_tmp, mask_left(18))
15264 pack_tmp = ior(pack_tmp, data_tmp)
15265 ipack = ipack + 1
15266 packed_data(ipack) = pack_tmp
15267 data_tmp = full_data(idata)
15268 pack_tmp = ishft(data_tmp, 60)
15269 pack_tmp = ishft(pack_tmp, -22)
15270 idata = idata + 1
15271 data_tmp = full_data(idata)
15272 data_tmp = ishft(data_tmp, 42)
15273 pack_tmp = ior(pack_tmp, data_tmp)
15274 pack_tmp = ishft(pack_tmp, -22)
15275 idata = idata + 1
15276 data_tmp = full_data(idata)
15277 data_tmp = ishft(data_tmp, 42)
15278 pack_tmp = ior(pack_tmp, data_tmp)
15279 pack_tmp = ishft(pack_tmp, -16)
15280 idata = idata + 1
15281 data_tmp = full_data(idata)
15282 data_tmp = ishft(data_tmp, 42)
15283 data_tmp = iand(data_tmp, mask_left(16))
15284 pack_tmp = ior(pack_tmp, data_tmp)
15285 ipack = ipack + 1
15286 packed_data(ipack) = pack_tmp
15287 data_tmp = full_data(idata)
15288 pack_tmp = ishft(data_tmp, 58)
15289 pack_tmp = ishft(pack_tmp, -22)
15290 idata = idata + 1
15291 data_tmp = full_data(idata)
15292 data_tmp = ishft(data_tmp, 42)
15293 pack_tmp = ior(pack_tmp, data_tmp)
15294 pack_tmp = ishft(pack_tmp, -22)
15295 idata = idata + 1
15296 data_tmp = full_data(idata)
15297 data_tmp = ishft(data_tmp, 42)
15298 pack_tmp = ior(pack_tmp, data_tmp)
15299 pack_tmp = ishft(pack_tmp, -14)
15300 idata = idata + 1
15301 data_tmp = full_data(idata)
15302 data_tmp = ishft(data_tmp, 42)
15303 data_tmp = iand(data_tmp, mask_left(14))
15304 pack_tmp = ior(pack_tmp, data_tmp)
15305 ipack = ipack + 1
15306 packed_data(ipack) = pack_tmp
15307 data_tmp = full_data(idata)
15308 pack_tmp = ishft(data_tmp, 56)
15309 pack_tmp = ishft(pack_tmp, -22)
15310 idata = idata + 1
15311 data_tmp = full_data(idata)
15312 data_tmp = ishft(data_tmp, 42)
15313 pack_tmp = ior(pack_tmp, data_tmp)
15314 pack_tmp = ishft(pack_tmp, -22)
15315 idata = idata + 1
15316 data_tmp = full_data(idata)
15317 data_tmp = ishft(data_tmp, 42)
15318 pack_tmp = ior(pack_tmp, data_tmp)
15319 pack_tmp = ishft(pack_tmp, -12)
15320 idata = idata + 1
15321 data_tmp = full_data(idata)
15322 data_tmp = ishft(data_tmp, 42)
15323 data_tmp = iand(data_tmp, mask_left(12))
15324 pack_tmp = ior(pack_tmp, data_tmp)
15325 ipack = ipack + 1
15326 packed_data(ipack) = pack_tmp
15327 data_tmp = full_data(idata)
15328 pack_tmp = ishft(data_tmp, 54)
15329 pack_tmp = ishft(pack_tmp, -22)
15330 idata = idata + 1
15331 data_tmp = full_data(idata)
15332 data_tmp = ishft(data_tmp, 42)
15333 pack_tmp = ior(pack_tmp, data_tmp)
15334 pack_tmp = ishft(pack_tmp, -22)
15335 idata = idata + 1
15336 data_tmp = full_data(idata)
15337 data_tmp = ishft(data_tmp, 42)
15338 pack_tmp = ior(pack_tmp, data_tmp)
15339 pack_tmp = ishft(pack_tmp, -10)
15340 idata = idata + 1
15341 data_tmp = full_data(idata)
15342 data_tmp = ishft(data_tmp, 42)
15343 data_tmp = iand(data_tmp, mask_left(10))
15344 pack_tmp = ior(pack_tmp, data_tmp)
15345 ipack = ipack + 1
15346 packed_data(ipack) = pack_tmp
15347 data_tmp = full_data(idata)
15348 pack_tmp = ishft(data_tmp, 52)
15349 pack_tmp = ishft(pack_tmp, -22)
15350 idata = idata + 1
15351 data_tmp = full_data(idata)
15352 data_tmp = ishft(data_tmp, 42)
15353 pack_tmp = ior(pack_tmp, data_tmp)
15354 pack_tmp = ishft(pack_tmp, -22)
15355 idata = idata + 1
15356 data_tmp = full_data(idata)
15357 data_tmp = ishft(data_tmp, 42)
15358 pack_tmp = ior(pack_tmp, data_tmp)
15359 pack_tmp = ishft(pack_tmp, -8)
15360 idata = idata + 1
15361 data_tmp = full_data(idata)
15362 data_tmp = ishft(data_tmp, 42)
15363 data_tmp = iand(data_tmp, mask_left(8))
15364 pack_tmp = ior(pack_tmp, data_tmp)
15365 ipack = ipack + 1
15366 packed_data(ipack) = pack_tmp
15367 data_tmp = full_data(idata)
15368 pack_tmp = ishft(data_tmp, 50)
15369 pack_tmp = ishft(pack_tmp, -22)
15370 idata = idata + 1
15371 data_tmp = full_data(idata)
15372 data_tmp = ishft(data_tmp, 42)
15373 pack_tmp = ior(pack_tmp, data_tmp)
15374 pack_tmp = ishft(pack_tmp, -22)
15375 idata = idata + 1
15376 data_tmp = full_data(idata)
15377 data_tmp = ishft(data_tmp, 42)
15378 pack_tmp = ior(pack_tmp, data_tmp)
15379 pack_tmp = ishft(pack_tmp, -6)
15380 idata = idata + 1
15381 data_tmp = full_data(idata)
15382 data_tmp = ishft(data_tmp, 42)
15383 data_tmp = iand(data_tmp, mask_left(6))
15384 pack_tmp = ior(pack_tmp, data_tmp)
15385 ipack = ipack + 1
15386 packed_data(ipack) = pack_tmp
15387 data_tmp = full_data(idata)
15388 pack_tmp = ishft(data_tmp, 48)
15389 pack_tmp = ishft(pack_tmp, -22)
15390 idata = idata + 1
15391 data_tmp = full_data(idata)
15392 data_tmp = ishft(data_tmp, 42)
15393 pack_tmp = ior(pack_tmp, data_tmp)
15394 pack_tmp = ishft(pack_tmp, -22)
15395 idata = idata + 1
15396 data_tmp = full_data(idata)
15397 data_tmp = ishft(data_tmp, 42)
15398 pack_tmp = ior(pack_tmp, data_tmp)
15399 pack_tmp = ishft(pack_tmp, -4)
15400 idata = idata + 1
15401 data_tmp = full_data(idata)
15402 data_tmp = ishft(data_tmp, 42)
15403 data_tmp = iand(data_tmp, mask_left(4))
15404 pack_tmp = ior(pack_tmp, data_tmp)
15405 ipack = ipack + 1
15406 packed_data(ipack) = pack_tmp
15407 data_tmp = full_data(idata)
15408 pack_tmp = ishft(data_tmp, 46)
15409 pack_tmp = ishft(pack_tmp, -22)
15410 idata = idata + 1
15411 data_tmp = full_data(idata)
15412 data_tmp = ishft(data_tmp, 42)
15413 pack_tmp = ior(pack_tmp, data_tmp)
15414 pack_tmp = ishft(pack_tmp, -22)
15415 idata = idata + 1
15416 data_tmp = full_data(idata)
15417 data_tmp = ishft(data_tmp, 42)
15418 pack_tmp = ior(pack_tmp, data_tmp)
15419 pack_tmp = ishft(pack_tmp, -2)
15420 idata = idata + 1
15421 data_tmp = full_data(idata)
15422 data_tmp = ishft(data_tmp, 42)
15423 data_tmp = iand(data_tmp, mask_left(2))
15424 pack_tmp = ior(pack_tmp, data_tmp)
15425 ipack = ipack + 1
15426 packed_data(ipack) = pack_tmp
15427 data_tmp = full_data(idata)
15428 pack_tmp = ishft(data_tmp, 44)
15429 pack_tmp = ishft(pack_tmp, -22)
15430 idata = idata + 1
15431 data_tmp = full_data(idata)
15432 data_tmp = ishft(data_tmp, 42)
15433 pack_tmp = ior(pack_tmp, data_tmp)
15434 pack_tmp = ishft(pack_tmp, -22)
15435 idata = idata + 1
15436 data_tmp = full_data(idata)
15437 data_tmp = ishft(data_tmp, 42)
15438 pack_tmp = ior(pack_tmp, data_tmp)
15439 pack_tmp = ishft(pack_tmp, 0)
15440 pack_tmp = ishft(pack_tmp, 0)
15441 ipack = ipack + 1
15442 packed_data(ipack) = pack_tmp
15443 END DO
15444 IF (ndata_rep < ndata) THEN
15445 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
15446 END IF
15447 END SUBROUTINE ints2bits_22
15448
15449! **************************************************************************************************
15450!> \brief ...
15451!> \param Ndata ...
15452!> \param packed_data ...
15453!> \param full_data ...
15454! **************************************************************************************************
15455 SUBROUTINE bits2ints_22(Ndata, packed_data, full_data)
15456 INTEGER, INTENT(IN) :: Ndata
15457 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
15458 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
15459
15460 INTEGER, PARAMETER :: Nbits = 22
15461
15462 INTEGER :: idata, ipack, kdata, Ndata_rep
15463 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
15464
15465 ipack = 0
15466 idata = 0
15467 pack_tmp = 0
15468 ndata_rep = (ndata/64)*64
15469 DO kdata = 1, ndata_rep, 64
15470 idata = idata + 1
15471 data_tmp = ishft(pack_tmp, 22)
15472 ipack = ipack + 1
15473 pack_tmp = packed_data(ipack)
15474 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
15475 pack_tmp = ishft(pack_tmp, -22)
15476 idata = idata + 1
15477 data_tmp = iand(pack_tmp, mask_right(nbits))
15478 full_data(idata) = data_tmp
15479 pack_tmp = ishft(pack_tmp, -nbits)
15480 idata = idata + 1
15481 data_tmp = ishft(pack_tmp, 2)
15482 ipack = ipack + 1
15483 pack_tmp = packed_data(ipack)
15484 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
15485 pack_tmp = ishft(pack_tmp, -2)
15486 idata = idata + 1
15487 data_tmp = iand(pack_tmp, mask_right(nbits))
15488 full_data(idata) = data_tmp
15489 pack_tmp = ishft(pack_tmp, -nbits)
15490 idata = idata + 1
15491 data_tmp = iand(pack_tmp, mask_right(nbits))
15492 full_data(idata) = data_tmp
15493 pack_tmp = ishft(pack_tmp, -nbits)
15494 idata = idata + 1
15495 data_tmp = ishft(pack_tmp, 4)
15496 ipack = ipack + 1
15497 pack_tmp = packed_data(ipack)
15498 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
15499 pack_tmp = ishft(pack_tmp, -4)
15500 idata = idata + 1
15501 data_tmp = iand(pack_tmp, mask_right(nbits))
15502 full_data(idata) = data_tmp
15503 pack_tmp = ishft(pack_tmp, -nbits)
15504 idata = idata + 1
15505 data_tmp = iand(pack_tmp, mask_right(nbits))
15506 full_data(idata) = data_tmp
15507 pack_tmp = ishft(pack_tmp, -nbits)
15508 idata = idata + 1
15509 data_tmp = ishft(pack_tmp, 6)
15510 ipack = ipack + 1
15511 pack_tmp = packed_data(ipack)
15512 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
15513 pack_tmp = ishft(pack_tmp, -6)
15514 idata = idata + 1
15515 data_tmp = iand(pack_tmp, mask_right(nbits))
15516 full_data(idata) = data_tmp
15517 pack_tmp = ishft(pack_tmp, -nbits)
15518 idata = idata + 1
15519 data_tmp = iand(pack_tmp, mask_right(nbits))
15520 full_data(idata) = data_tmp
15521 pack_tmp = ishft(pack_tmp, -nbits)
15522 idata = idata + 1
15523 data_tmp = ishft(pack_tmp, 8)
15524 ipack = ipack + 1
15525 pack_tmp = packed_data(ipack)
15526 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
15527 pack_tmp = ishft(pack_tmp, -8)
15528 idata = idata + 1
15529 data_tmp = iand(pack_tmp, mask_right(nbits))
15530 full_data(idata) = data_tmp
15531 pack_tmp = ishft(pack_tmp, -nbits)
15532 idata = idata + 1
15533 data_tmp = iand(pack_tmp, mask_right(nbits))
15534 full_data(idata) = data_tmp
15535 pack_tmp = ishft(pack_tmp, -nbits)
15536 idata = idata + 1
15537 data_tmp = ishft(pack_tmp, 10)
15538 ipack = ipack + 1
15539 pack_tmp = packed_data(ipack)
15540 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
15541 pack_tmp = ishft(pack_tmp, -10)
15542 idata = idata + 1
15543 data_tmp = iand(pack_tmp, mask_right(nbits))
15544 full_data(idata) = data_tmp
15545 pack_tmp = ishft(pack_tmp, -nbits)
15546 idata = idata + 1
15547 data_tmp = iand(pack_tmp, mask_right(nbits))
15548 full_data(idata) = data_tmp
15549 pack_tmp = ishft(pack_tmp, -nbits)
15550 idata = idata + 1
15551 data_tmp = ishft(pack_tmp, 12)
15552 ipack = ipack + 1
15553 pack_tmp = packed_data(ipack)
15554 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
15555 pack_tmp = ishft(pack_tmp, -12)
15556 idata = idata + 1
15557 data_tmp = iand(pack_tmp, mask_right(nbits))
15558 full_data(idata) = data_tmp
15559 pack_tmp = ishft(pack_tmp, -nbits)
15560 idata = idata + 1
15561 data_tmp = iand(pack_tmp, mask_right(nbits))
15562 full_data(idata) = data_tmp
15563 pack_tmp = ishft(pack_tmp, -nbits)
15564 idata = idata + 1
15565 data_tmp = ishft(pack_tmp, 14)
15566 ipack = ipack + 1
15567 pack_tmp = packed_data(ipack)
15568 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
15569 pack_tmp = ishft(pack_tmp, -14)
15570 idata = idata + 1
15571 data_tmp = iand(pack_tmp, mask_right(nbits))
15572 full_data(idata) = data_tmp
15573 pack_tmp = ishft(pack_tmp, -nbits)
15574 idata = idata + 1
15575 data_tmp = iand(pack_tmp, mask_right(nbits))
15576 full_data(idata) = data_tmp
15577 pack_tmp = ishft(pack_tmp, -nbits)
15578 idata = idata + 1
15579 data_tmp = ishft(pack_tmp, 16)
15580 ipack = ipack + 1
15581 pack_tmp = packed_data(ipack)
15582 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
15583 pack_tmp = ishft(pack_tmp, -16)
15584 idata = idata + 1
15585 data_tmp = iand(pack_tmp, mask_right(nbits))
15586 full_data(idata) = data_tmp
15587 pack_tmp = ishft(pack_tmp, -nbits)
15588 idata = idata + 1
15589 data_tmp = iand(pack_tmp, mask_right(nbits))
15590 full_data(idata) = data_tmp
15591 pack_tmp = ishft(pack_tmp, -nbits)
15592 idata = idata + 1
15593 data_tmp = ishft(pack_tmp, 18)
15594 ipack = ipack + 1
15595 pack_tmp = packed_data(ipack)
15596 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
15597 pack_tmp = ishft(pack_tmp, -18)
15598 idata = idata + 1
15599 data_tmp = iand(pack_tmp, mask_right(nbits))
15600 full_data(idata) = data_tmp
15601 pack_tmp = ishft(pack_tmp, -nbits)
15602 idata = idata + 1
15603 data_tmp = iand(pack_tmp, mask_right(nbits))
15604 full_data(idata) = data_tmp
15605 pack_tmp = ishft(pack_tmp, -nbits)
15606 idata = idata + 1
15607 data_tmp = ishft(pack_tmp, 20)
15608 ipack = ipack + 1
15609 pack_tmp = packed_data(ipack)
15610 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
15611 pack_tmp = ishft(pack_tmp, -20)
15612 idata = idata + 1
15613 data_tmp = iand(pack_tmp, mask_right(nbits))
15614 full_data(idata) = data_tmp
15615 pack_tmp = ishft(pack_tmp, -nbits)
15616 idata = idata + 1
15617 data_tmp = iand(pack_tmp, mask_right(nbits))
15618 full_data(idata) = data_tmp
15619 pack_tmp = ishft(pack_tmp, -nbits)
15620 idata = idata + 1
15621 data_tmp = ishft(pack_tmp, 22)
15622 ipack = ipack + 1
15623 pack_tmp = packed_data(ipack)
15624 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
15625 pack_tmp = ishft(pack_tmp, -22)
15626 idata = idata + 1
15627 data_tmp = iand(pack_tmp, mask_right(nbits))
15628 full_data(idata) = data_tmp
15629 pack_tmp = ishft(pack_tmp, -nbits)
15630 idata = idata + 1
15631 data_tmp = ishft(pack_tmp, 2)
15632 ipack = ipack + 1
15633 pack_tmp = packed_data(ipack)
15634 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
15635 pack_tmp = ishft(pack_tmp, -2)
15636 idata = idata + 1
15637 data_tmp = iand(pack_tmp, mask_right(nbits))
15638 full_data(idata) = data_tmp
15639 pack_tmp = ishft(pack_tmp, -nbits)
15640 idata = idata + 1
15641 data_tmp = iand(pack_tmp, mask_right(nbits))
15642 full_data(idata) = data_tmp
15643 pack_tmp = ishft(pack_tmp, -nbits)
15644 idata = idata + 1
15645 data_tmp = ishft(pack_tmp, 4)
15646 ipack = ipack + 1
15647 pack_tmp = packed_data(ipack)
15648 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
15649 pack_tmp = ishft(pack_tmp, -4)
15650 idata = idata + 1
15651 data_tmp = iand(pack_tmp, mask_right(nbits))
15652 full_data(idata) = data_tmp
15653 pack_tmp = ishft(pack_tmp, -nbits)
15654 idata = idata + 1
15655 data_tmp = iand(pack_tmp, mask_right(nbits))
15656 full_data(idata) = data_tmp
15657 pack_tmp = ishft(pack_tmp, -nbits)
15658 idata = idata + 1
15659 data_tmp = ishft(pack_tmp, 6)
15660 ipack = ipack + 1
15661 pack_tmp = packed_data(ipack)
15662 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
15663 pack_tmp = ishft(pack_tmp, -6)
15664 idata = idata + 1
15665 data_tmp = iand(pack_tmp, mask_right(nbits))
15666 full_data(idata) = data_tmp
15667 pack_tmp = ishft(pack_tmp, -nbits)
15668 idata = idata + 1
15669 data_tmp = iand(pack_tmp, mask_right(nbits))
15670 full_data(idata) = data_tmp
15671 pack_tmp = ishft(pack_tmp, -nbits)
15672 idata = idata + 1
15673 data_tmp = ishft(pack_tmp, 8)
15674 ipack = ipack + 1
15675 pack_tmp = packed_data(ipack)
15676 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
15677 pack_tmp = ishft(pack_tmp, -8)
15678 idata = idata + 1
15679 data_tmp = iand(pack_tmp, mask_right(nbits))
15680 full_data(idata) = data_tmp
15681 pack_tmp = ishft(pack_tmp, -nbits)
15682 idata = idata + 1
15683 data_tmp = iand(pack_tmp, mask_right(nbits))
15684 full_data(idata) = data_tmp
15685 pack_tmp = ishft(pack_tmp, -nbits)
15686 idata = idata + 1
15687 data_tmp = ishft(pack_tmp, 10)
15688 ipack = ipack + 1
15689 pack_tmp = packed_data(ipack)
15690 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
15691 pack_tmp = ishft(pack_tmp, -10)
15692 idata = idata + 1
15693 data_tmp = iand(pack_tmp, mask_right(nbits))
15694 full_data(idata) = data_tmp
15695 pack_tmp = ishft(pack_tmp, -nbits)
15696 idata = idata + 1
15697 data_tmp = iand(pack_tmp, mask_right(nbits))
15698 full_data(idata) = data_tmp
15699 pack_tmp = ishft(pack_tmp, -nbits)
15700 idata = idata + 1
15701 data_tmp = ishft(pack_tmp, 12)
15702 ipack = ipack + 1
15703 pack_tmp = packed_data(ipack)
15704 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
15705 pack_tmp = ishft(pack_tmp, -12)
15706 idata = idata + 1
15707 data_tmp = iand(pack_tmp, mask_right(nbits))
15708 full_data(idata) = data_tmp
15709 pack_tmp = ishft(pack_tmp, -nbits)
15710 idata = idata + 1
15711 data_tmp = iand(pack_tmp, mask_right(nbits))
15712 full_data(idata) = data_tmp
15713 pack_tmp = ishft(pack_tmp, -nbits)
15714 idata = idata + 1
15715 data_tmp = ishft(pack_tmp, 14)
15716 ipack = ipack + 1
15717 pack_tmp = packed_data(ipack)
15718 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
15719 pack_tmp = ishft(pack_tmp, -14)
15720 idata = idata + 1
15721 data_tmp = iand(pack_tmp, mask_right(nbits))
15722 full_data(idata) = data_tmp
15723 pack_tmp = ishft(pack_tmp, -nbits)
15724 idata = idata + 1
15725 data_tmp = iand(pack_tmp, mask_right(nbits))
15726 full_data(idata) = data_tmp
15727 pack_tmp = ishft(pack_tmp, -nbits)
15728 idata = idata + 1
15729 data_tmp = ishft(pack_tmp, 16)
15730 ipack = ipack + 1
15731 pack_tmp = packed_data(ipack)
15732 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
15733 pack_tmp = ishft(pack_tmp, -16)
15734 idata = idata + 1
15735 data_tmp = iand(pack_tmp, mask_right(nbits))
15736 full_data(idata) = data_tmp
15737 pack_tmp = ishft(pack_tmp, -nbits)
15738 idata = idata + 1
15739 data_tmp = iand(pack_tmp, mask_right(nbits))
15740 full_data(idata) = data_tmp
15741 pack_tmp = ishft(pack_tmp, -nbits)
15742 idata = idata + 1
15743 data_tmp = ishft(pack_tmp, 18)
15744 ipack = ipack + 1
15745 pack_tmp = packed_data(ipack)
15746 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
15747 pack_tmp = ishft(pack_tmp, -18)
15748 idata = idata + 1
15749 data_tmp = iand(pack_tmp, mask_right(nbits))
15750 full_data(idata) = data_tmp
15751 pack_tmp = ishft(pack_tmp, -nbits)
15752 idata = idata + 1
15753 data_tmp = iand(pack_tmp, mask_right(nbits))
15754 full_data(idata) = data_tmp
15755 pack_tmp = ishft(pack_tmp, -nbits)
15756 idata = idata + 1
15757 data_tmp = ishft(pack_tmp, 20)
15758 ipack = ipack + 1
15759 pack_tmp = packed_data(ipack)
15760 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
15761 pack_tmp = ishft(pack_tmp, -20)
15762 idata = idata + 1
15763 data_tmp = iand(pack_tmp, mask_right(nbits))
15764 full_data(idata) = data_tmp
15765 pack_tmp = ishft(pack_tmp, -nbits)
15766 idata = idata + 1
15767 data_tmp = iand(pack_tmp, mask_right(nbits))
15768 full_data(idata) = data_tmp
15769 pack_tmp = ishft(pack_tmp, -nbits)
15770 END DO
15771 IF (ndata_rep < ndata) THEN
15772 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
15773 END IF
15774 END SUBROUTINE bits2ints_22
15775
15776! **************************************************************************************************
15777!> \brief ...
15778!> \param Ndata ...
15779!> \param packed_data ...
15780!> \param full_data ...
15781! **************************************************************************************************
15782 SUBROUTINE ints2bits_23(Ndata, packed_data, full_data)
15783 INTEGER, INTENT(IN) :: Ndata
15784 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
15785 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
15786
15787 INTEGER, PARAMETER :: Nbits = 23
15788
15789 INTEGER :: idata, ipack, kdata, Ndata_rep
15790 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
15791
15792 idata = 0
15793 ipack = 0
15794 ndata_rep = (ndata/64)*64
15795 DO kdata = 1, ndata_rep, 64
15796 pack_tmp = 0
15797 idata = idata + 1
15798 data_tmp = full_data(idata)
15799 data_tmp = ishft(data_tmp, 41)
15800 pack_tmp = ior(pack_tmp, data_tmp)
15801 pack_tmp = ishft(pack_tmp, -23)
15802 idata = idata + 1
15803 data_tmp = full_data(idata)
15804 data_tmp = ishft(data_tmp, 41)
15805 pack_tmp = ior(pack_tmp, data_tmp)
15806 pack_tmp = ishft(pack_tmp, -18)
15807 idata = idata + 1
15808 data_tmp = full_data(idata)
15809 data_tmp = ishft(data_tmp, 41)
15810 data_tmp = iand(data_tmp, mask_left(18))
15811 pack_tmp = ior(pack_tmp, data_tmp)
15812 ipack = ipack + 1
15813 packed_data(ipack) = pack_tmp
15814 data_tmp = full_data(idata)
15815 pack_tmp = ishft(data_tmp, 59)
15816 pack_tmp = ishft(pack_tmp, -23)
15817 idata = idata + 1
15818 data_tmp = full_data(idata)
15819 data_tmp = ishft(data_tmp, 41)
15820 pack_tmp = ior(pack_tmp, data_tmp)
15821 pack_tmp = ishft(pack_tmp, -23)
15822 idata = idata + 1
15823 data_tmp = full_data(idata)
15824 data_tmp = ishft(data_tmp, 41)
15825 pack_tmp = ior(pack_tmp, data_tmp)
15826 pack_tmp = ishft(pack_tmp, -13)
15827 idata = idata + 1
15828 data_tmp = full_data(idata)
15829 data_tmp = ishft(data_tmp, 41)
15830 data_tmp = iand(data_tmp, mask_left(13))
15831 pack_tmp = ior(pack_tmp, data_tmp)
15832 ipack = ipack + 1
15833 packed_data(ipack) = pack_tmp
15834 data_tmp = full_data(idata)
15835 pack_tmp = ishft(data_tmp, 54)
15836 pack_tmp = ishft(pack_tmp, -23)
15837 idata = idata + 1
15838 data_tmp = full_data(idata)
15839 data_tmp = ishft(data_tmp, 41)
15840 pack_tmp = ior(pack_tmp, data_tmp)
15841 pack_tmp = ishft(pack_tmp, -23)
15842 idata = idata + 1
15843 data_tmp = full_data(idata)
15844 data_tmp = ishft(data_tmp, 41)
15845 pack_tmp = ior(pack_tmp, data_tmp)
15846 pack_tmp = ishft(pack_tmp, -8)
15847 idata = idata + 1
15848 data_tmp = full_data(idata)
15849 data_tmp = ishft(data_tmp, 41)
15850 data_tmp = iand(data_tmp, mask_left(8))
15851 pack_tmp = ior(pack_tmp, data_tmp)
15852 ipack = ipack + 1
15853 packed_data(ipack) = pack_tmp
15854 data_tmp = full_data(idata)
15855 pack_tmp = ishft(data_tmp, 49)
15856 pack_tmp = ishft(pack_tmp, -23)
15857 idata = idata + 1
15858 data_tmp = full_data(idata)
15859 data_tmp = ishft(data_tmp, 41)
15860 pack_tmp = ior(pack_tmp, data_tmp)
15861 pack_tmp = ishft(pack_tmp, -23)
15862 idata = idata + 1
15863 data_tmp = full_data(idata)
15864 data_tmp = ishft(data_tmp, 41)
15865 pack_tmp = ior(pack_tmp, data_tmp)
15866 pack_tmp = ishft(pack_tmp, -3)
15867 idata = idata + 1
15868 data_tmp = full_data(idata)
15869 data_tmp = ishft(data_tmp, 41)
15870 data_tmp = iand(data_tmp, mask_left(3))
15871 pack_tmp = ior(pack_tmp, data_tmp)
15872 ipack = ipack + 1
15873 packed_data(ipack) = pack_tmp
15874 data_tmp = full_data(idata)
15875 pack_tmp = ishft(data_tmp, 44)
15876 pack_tmp = ishft(pack_tmp, -23)
15877 idata = idata + 1
15878 data_tmp = full_data(idata)
15879 data_tmp = ishft(data_tmp, 41)
15880 pack_tmp = ior(pack_tmp, data_tmp)
15881 pack_tmp = ishft(pack_tmp, -21)
15882 idata = idata + 1
15883 data_tmp = full_data(idata)
15884 data_tmp = ishft(data_tmp, 41)
15885 data_tmp = iand(data_tmp, mask_left(21))
15886 pack_tmp = ior(pack_tmp, data_tmp)
15887 ipack = ipack + 1
15888 packed_data(ipack) = pack_tmp
15889 data_tmp = full_data(idata)
15890 pack_tmp = ishft(data_tmp, 62)
15891 pack_tmp = ishft(pack_tmp, -23)
15892 idata = idata + 1
15893 data_tmp = full_data(idata)
15894 data_tmp = ishft(data_tmp, 41)
15895 pack_tmp = ior(pack_tmp, data_tmp)
15896 pack_tmp = ishft(pack_tmp, -23)
15897 idata = idata + 1
15898 data_tmp = full_data(idata)
15899 data_tmp = ishft(data_tmp, 41)
15900 pack_tmp = ior(pack_tmp, data_tmp)
15901 pack_tmp = ishft(pack_tmp, -16)
15902 idata = idata + 1
15903 data_tmp = full_data(idata)
15904 data_tmp = ishft(data_tmp, 41)
15905 data_tmp = iand(data_tmp, mask_left(16))
15906 pack_tmp = ior(pack_tmp, data_tmp)
15907 ipack = ipack + 1
15908 packed_data(ipack) = pack_tmp
15909 data_tmp = full_data(idata)
15910 pack_tmp = ishft(data_tmp, 57)
15911 pack_tmp = ishft(pack_tmp, -23)
15912 idata = idata + 1
15913 data_tmp = full_data(idata)
15914 data_tmp = ishft(data_tmp, 41)
15915 pack_tmp = ior(pack_tmp, data_tmp)
15916 pack_tmp = ishft(pack_tmp, -23)
15917 idata = idata + 1
15918 data_tmp = full_data(idata)
15919 data_tmp = ishft(data_tmp, 41)
15920 pack_tmp = ior(pack_tmp, data_tmp)
15921 pack_tmp = ishft(pack_tmp, -11)
15922 idata = idata + 1
15923 data_tmp = full_data(idata)
15924 data_tmp = ishft(data_tmp, 41)
15925 data_tmp = iand(data_tmp, mask_left(11))
15926 pack_tmp = ior(pack_tmp, data_tmp)
15927 ipack = ipack + 1
15928 packed_data(ipack) = pack_tmp
15929 data_tmp = full_data(idata)
15930 pack_tmp = ishft(data_tmp, 52)
15931 pack_tmp = ishft(pack_tmp, -23)
15932 idata = idata + 1
15933 data_tmp = full_data(idata)
15934 data_tmp = ishft(data_tmp, 41)
15935 pack_tmp = ior(pack_tmp, data_tmp)
15936 pack_tmp = ishft(pack_tmp, -23)
15937 idata = idata + 1
15938 data_tmp = full_data(idata)
15939 data_tmp = ishft(data_tmp, 41)
15940 pack_tmp = ior(pack_tmp, data_tmp)
15941 pack_tmp = ishft(pack_tmp, -6)
15942 idata = idata + 1
15943 data_tmp = full_data(idata)
15944 data_tmp = ishft(data_tmp, 41)
15945 data_tmp = iand(data_tmp, mask_left(6))
15946 pack_tmp = ior(pack_tmp, data_tmp)
15947 ipack = ipack + 1
15948 packed_data(ipack) = pack_tmp
15949 data_tmp = full_data(idata)
15950 pack_tmp = ishft(data_tmp, 47)
15951 pack_tmp = ishft(pack_tmp, -23)
15952 idata = idata + 1
15953 data_tmp = full_data(idata)
15954 data_tmp = ishft(data_tmp, 41)
15955 pack_tmp = ior(pack_tmp, data_tmp)
15956 pack_tmp = ishft(pack_tmp, -23)
15957 idata = idata + 1
15958 data_tmp = full_data(idata)
15959 data_tmp = ishft(data_tmp, 41)
15960 pack_tmp = ior(pack_tmp, data_tmp)
15961 pack_tmp = ishft(pack_tmp, -1)
15962 idata = idata + 1
15963 data_tmp = full_data(idata)
15964 data_tmp = ishft(data_tmp, 41)
15965 data_tmp = iand(data_tmp, mask_left(1))
15966 pack_tmp = ior(pack_tmp, data_tmp)
15967 ipack = ipack + 1
15968 packed_data(ipack) = pack_tmp
15969 data_tmp = full_data(idata)
15970 pack_tmp = ishft(data_tmp, 42)
15971 pack_tmp = ishft(pack_tmp, -23)
15972 idata = idata + 1
15973 data_tmp = full_data(idata)
15974 data_tmp = ishft(data_tmp, 41)
15975 pack_tmp = ior(pack_tmp, data_tmp)
15976 pack_tmp = ishft(pack_tmp, -19)
15977 idata = idata + 1
15978 data_tmp = full_data(idata)
15979 data_tmp = ishft(data_tmp, 41)
15980 data_tmp = iand(data_tmp, mask_left(19))
15981 pack_tmp = ior(pack_tmp, data_tmp)
15982 ipack = ipack + 1
15983 packed_data(ipack) = pack_tmp
15984 data_tmp = full_data(idata)
15985 pack_tmp = ishft(data_tmp, 60)
15986 pack_tmp = ishft(pack_tmp, -23)
15987 idata = idata + 1
15988 data_tmp = full_data(idata)
15989 data_tmp = ishft(data_tmp, 41)
15990 pack_tmp = ior(pack_tmp, data_tmp)
15991 pack_tmp = ishft(pack_tmp, -23)
15992 idata = idata + 1
15993 data_tmp = full_data(idata)
15994 data_tmp = ishft(data_tmp, 41)
15995 pack_tmp = ior(pack_tmp, data_tmp)
15996 pack_tmp = ishft(pack_tmp, -14)
15997 idata = idata + 1
15998 data_tmp = full_data(idata)
15999 data_tmp = ishft(data_tmp, 41)
16000 data_tmp = iand(data_tmp, mask_left(14))
16001 pack_tmp = ior(pack_tmp, data_tmp)
16002 ipack = ipack + 1
16003 packed_data(ipack) = pack_tmp
16004 data_tmp = full_data(idata)
16005 pack_tmp = ishft(data_tmp, 55)
16006 pack_tmp = ishft(pack_tmp, -23)
16007 idata = idata + 1
16008 data_tmp = full_data(idata)
16009 data_tmp = ishft(data_tmp, 41)
16010 pack_tmp = ior(pack_tmp, data_tmp)
16011 pack_tmp = ishft(pack_tmp, -23)
16012 idata = idata + 1
16013 data_tmp = full_data(idata)
16014 data_tmp = ishft(data_tmp, 41)
16015 pack_tmp = ior(pack_tmp, data_tmp)
16016 pack_tmp = ishft(pack_tmp, -9)
16017 idata = idata + 1
16018 data_tmp = full_data(idata)
16019 data_tmp = ishft(data_tmp, 41)
16020 data_tmp = iand(data_tmp, mask_left(9))
16021 pack_tmp = ior(pack_tmp, data_tmp)
16022 ipack = ipack + 1
16023 packed_data(ipack) = pack_tmp
16024 data_tmp = full_data(idata)
16025 pack_tmp = ishft(data_tmp, 50)
16026 pack_tmp = ishft(pack_tmp, -23)
16027 idata = idata + 1
16028 data_tmp = full_data(idata)
16029 data_tmp = ishft(data_tmp, 41)
16030 pack_tmp = ior(pack_tmp, data_tmp)
16031 pack_tmp = ishft(pack_tmp, -23)
16032 idata = idata + 1
16033 data_tmp = full_data(idata)
16034 data_tmp = ishft(data_tmp, 41)
16035 pack_tmp = ior(pack_tmp, data_tmp)
16036 pack_tmp = ishft(pack_tmp, -4)
16037 idata = idata + 1
16038 data_tmp = full_data(idata)
16039 data_tmp = ishft(data_tmp, 41)
16040 data_tmp = iand(data_tmp, mask_left(4))
16041 pack_tmp = ior(pack_tmp, data_tmp)
16042 ipack = ipack + 1
16043 packed_data(ipack) = pack_tmp
16044 data_tmp = full_data(idata)
16045 pack_tmp = ishft(data_tmp, 45)
16046 pack_tmp = ishft(pack_tmp, -23)
16047 idata = idata + 1
16048 data_tmp = full_data(idata)
16049 data_tmp = ishft(data_tmp, 41)
16050 pack_tmp = ior(pack_tmp, data_tmp)
16051 pack_tmp = ishft(pack_tmp, -22)
16052 idata = idata + 1
16053 data_tmp = full_data(idata)
16054 data_tmp = ishft(data_tmp, 41)
16055 data_tmp = iand(data_tmp, mask_left(22))
16056 pack_tmp = ior(pack_tmp, data_tmp)
16057 ipack = ipack + 1
16058 packed_data(ipack) = pack_tmp
16059 data_tmp = full_data(idata)
16060 pack_tmp = ishft(data_tmp, 63)
16061 pack_tmp = ishft(pack_tmp, -23)
16062 idata = idata + 1
16063 data_tmp = full_data(idata)
16064 data_tmp = ishft(data_tmp, 41)
16065 pack_tmp = ior(pack_tmp, data_tmp)
16066 pack_tmp = ishft(pack_tmp, -23)
16067 idata = idata + 1
16068 data_tmp = full_data(idata)
16069 data_tmp = ishft(data_tmp, 41)
16070 pack_tmp = ior(pack_tmp, data_tmp)
16071 pack_tmp = ishft(pack_tmp, -17)
16072 idata = idata + 1
16073 data_tmp = full_data(idata)
16074 data_tmp = ishft(data_tmp, 41)
16075 data_tmp = iand(data_tmp, mask_left(17))
16076 pack_tmp = ior(pack_tmp, data_tmp)
16077 ipack = ipack + 1
16078 packed_data(ipack) = pack_tmp
16079 data_tmp = full_data(idata)
16080 pack_tmp = ishft(data_tmp, 58)
16081 pack_tmp = ishft(pack_tmp, -23)
16082 idata = idata + 1
16083 data_tmp = full_data(idata)
16084 data_tmp = ishft(data_tmp, 41)
16085 pack_tmp = ior(pack_tmp, data_tmp)
16086 pack_tmp = ishft(pack_tmp, -23)
16087 idata = idata + 1
16088 data_tmp = full_data(idata)
16089 data_tmp = ishft(data_tmp, 41)
16090 pack_tmp = ior(pack_tmp, data_tmp)
16091 pack_tmp = ishft(pack_tmp, -12)
16092 idata = idata + 1
16093 data_tmp = full_data(idata)
16094 data_tmp = ishft(data_tmp, 41)
16095 data_tmp = iand(data_tmp, mask_left(12))
16096 pack_tmp = ior(pack_tmp, data_tmp)
16097 ipack = ipack + 1
16098 packed_data(ipack) = pack_tmp
16099 data_tmp = full_data(idata)
16100 pack_tmp = ishft(data_tmp, 53)
16101 pack_tmp = ishft(pack_tmp, -23)
16102 idata = idata + 1
16103 data_tmp = full_data(idata)
16104 data_tmp = ishft(data_tmp, 41)
16105 pack_tmp = ior(pack_tmp, data_tmp)
16106 pack_tmp = ishft(pack_tmp, -23)
16107 idata = idata + 1
16108 data_tmp = full_data(idata)
16109 data_tmp = ishft(data_tmp, 41)
16110 pack_tmp = ior(pack_tmp, data_tmp)
16111 pack_tmp = ishft(pack_tmp, -7)
16112 idata = idata + 1
16113 data_tmp = full_data(idata)
16114 data_tmp = ishft(data_tmp, 41)
16115 data_tmp = iand(data_tmp, mask_left(7))
16116 pack_tmp = ior(pack_tmp, data_tmp)
16117 ipack = ipack + 1
16118 packed_data(ipack) = pack_tmp
16119 data_tmp = full_data(idata)
16120 pack_tmp = ishft(data_tmp, 48)
16121 pack_tmp = ishft(pack_tmp, -23)
16122 idata = idata + 1
16123 data_tmp = full_data(idata)
16124 data_tmp = ishft(data_tmp, 41)
16125 pack_tmp = ior(pack_tmp, data_tmp)
16126 pack_tmp = ishft(pack_tmp, -23)
16127 idata = idata + 1
16128 data_tmp = full_data(idata)
16129 data_tmp = ishft(data_tmp, 41)
16130 pack_tmp = ior(pack_tmp, data_tmp)
16131 pack_tmp = ishft(pack_tmp, -2)
16132 idata = idata + 1
16133 data_tmp = full_data(idata)
16134 data_tmp = ishft(data_tmp, 41)
16135 data_tmp = iand(data_tmp, mask_left(2))
16136 pack_tmp = ior(pack_tmp, data_tmp)
16137 ipack = ipack + 1
16138 packed_data(ipack) = pack_tmp
16139 data_tmp = full_data(idata)
16140 pack_tmp = ishft(data_tmp, 43)
16141 pack_tmp = ishft(pack_tmp, -23)
16142 idata = idata + 1
16143 data_tmp = full_data(idata)
16144 data_tmp = ishft(data_tmp, 41)
16145 pack_tmp = ior(pack_tmp, data_tmp)
16146 pack_tmp = ishft(pack_tmp, -20)
16147 idata = idata + 1
16148 data_tmp = full_data(idata)
16149 data_tmp = ishft(data_tmp, 41)
16150 data_tmp = iand(data_tmp, mask_left(20))
16151 pack_tmp = ior(pack_tmp, data_tmp)
16152 ipack = ipack + 1
16153 packed_data(ipack) = pack_tmp
16154 data_tmp = full_data(idata)
16155 pack_tmp = ishft(data_tmp, 61)
16156 pack_tmp = ishft(pack_tmp, -23)
16157 idata = idata + 1
16158 data_tmp = full_data(idata)
16159 data_tmp = ishft(data_tmp, 41)
16160 pack_tmp = ior(pack_tmp, data_tmp)
16161 pack_tmp = ishft(pack_tmp, -23)
16162 idata = idata + 1
16163 data_tmp = full_data(idata)
16164 data_tmp = ishft(data_tmp, 41)
16165 pack_tmp = ior(pack_tmp, data_tmp)
16166 pack_tmp = ishft(pack_tmp, -15)
16167 idata = idata + 1
16168 data_tmp = full_data(idata)
16169 data_tmp = ishft(data_tmp, 41)
16170 data_tmp = iand(data_tmp, mask_left(15))
16171 pack_tmp = ior(pack_tmp, data_tmp)
16172 ipack = ipack + 1
16173 packed_data(ipack) = pack_tmp
16174 data_tmp = full_data(idata)
16175 pack_tmp = ishft(data_tmp, 56)
16176 pack_tmp = ishft(pack_tmp, -23)
16177 idata = idata + 1
16178 data_tmp = full_data(idata)
16179 data_tmp = ishft(data_tmp, 41)
16180 pack_tmp = ior(pack_tmp, data_tmp)
16181 pack_tmp = ishft(pack_tmp, -23)
16182 idata = idata + 1
16183 data_tmp = full_data(idata)
16184 data_tmp = ishft(data_tmp, 41)
16185 pack_tmp = ior(pack_tmp, data_tmp)
16186 pack_tmp = ishft(pack_tmp, -10)
16187 idata = idata + 1
16188 data_tmp = full_data(idata)
16189 data_tmp = ishft(data_tmp, 41)
16190 data_tmp = iand(data_tmp, mask_left(10))
16191 pack_tmp = ior(pack_tmp, data_tmp)
16192 ipack = ipack + 1
16193 packed_data(ipack) = pack_tmp
16194 data_tmp = full_data(idata)
16195 pack_tmp = ishft(data_tmp, 51)
16196 pack_tmp = ishft(pack_tmp, -23)
16197 idata = idata + 1
16198 data_tmp = full_data(idata)
16199 data_tmp = ishft(data_tmp, 41)
16200 pack_tmp = ior(pack_tmp, data_tmp)
16201 pack_tmp = ishft(pack_tmp, -23)
16202 idata = idata + 1
16203 data_tmp = full_data(idata)
16204 data_tmp = ishft(data_tmp, 41)
16205 pack_tmp = ior(pack_tmp, data_tmp)
16206 pack_tmp = ishft(pack_tmp, -5)
16207 idata = idata + 1
16208 data_tmp = full_data(idata)
16209 data_tmp = ishft(data_tmp, 41)
16210 data_tmp = iand(data_tmp, mask_left(5))
16211 pack_tmp = ior(pack_tmp, data_tmp)
16212 ipack = ipack + 1
16213 packed_data(ipack) = pack_tmp
16214 data_tmp = full_data(idata)
16215 pack_tmp = ishft(data_tmp, 46)
16216 pack_tmp = ishft(pack_tmp, -23)
16217 idata = idata + 1
16218 data_tmp = full_data(idata)
16219 data_tmp = ishft(data_tmp, 41)
16220 pack_tmp = ior(pack_tmp, data_tmp)
16221 pack_tmp = ishft(pack_tmp, -23)
16222 idata = idata + 1
16223 data_tmp = full_data(idata)
16224 data_tmp = ishft(data_tmp, 41)
16225 pack_tmp = ior(pack_tmp, data_tmp)
16226 pack_tmp = ishft(pack_tmp, 0)
16227 pack_tmp = ishft(pack_tmp, 0)
16228 ipack = ipack + 1
16229 packed_data(ipack) = pack_tmp
16230 END DO
16231 IF (ndata_rep < ndata) THEN
16232 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
16233 END IF
16234 END SUBROUTINE ints2bits_23
16235
16236! **************************************************************************************************
16237!> \brief ...
16238!> \param Ndata ...
16239!> \param packed_data ...
16240!> \param full_data ...
16241! **************************************************************************************************
16242 SUBROUTINE bits2ints_23(Ndata, packed_data, full_data)
16243 INTEGER, INTENT(IN) :: Ndata
16244 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
16245 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
16246
16247 INTEGER, PARAMETER :: Nbits = 23
16248
16249 INTEGER :: idata, ipack, kdata, Ndata_rep
16250 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
16251
16252 ipack = 0
16253 idata = 0
16254 pack_tmp = 0
16255 ndata_rep = (ndata/64)*64
16256 DO kdata = 1, ndata_rep, 64
16257 idata = idata + 1
16258 data_tmp = ishft(pack_tmp, 23)
16259 ipack = ipack + 1
16260 pack_tmp = packed_data(ipack)
16261 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
16262 pack_tmp = ishft(pack_tmp, -23)
16263 idata = idata + 1
16264 data_tmp = iand(pack_tmp, mask_right(nbits))
16265 full_data(idata) = data_tmp
16266 pack_tmp = ishft(pack_tmp, -nbits)
16267 idata = idata + 1
16268 data_tmp = ishft(pack_tmp, 5)
16269 ipack = ipack + 1
16270 pack_tmp = packed_data(ipack)
16271 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
16272 pack_tmp = ishft(pack_tmp, -5)
16273 idata = idata + 1
16274 data_tmp = iand(pack_tmp, mask_right(nbits))
16275 full_data(idata) = data_tmp
16276 pack_tmp = ishft(pack_tmp, -nbits)
16277 idata = idata + 1
16278 data_tmp = iand(pack_tmp, mask_right(nbits))
16279 full_data(idata) = data_tmp
16280 pack_tmp = ishft(pack_tmp, -nbits)
16281 idata = idata + 1
16282 data_tmp = ishft(pack_tmp, 10)
16283 ipack = ipack + 1
16284 pack_tmp = packed_data(ipack)
16285 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
16286 pack_tmp = ishft(pack_tmp, -10)
16287 idata = idata + 1
16288 data_tmp = iand(pack_tmp, mask_right(nbits))
16289 full_data(idata) = data_tmp
16290 pack_tmp = ishft(pack_tmp, -nbits)
16291 idata = idata + 1
16292 data_tmp = iand(pack_tmp, mask_right(nbits))
16293 full_data(idata) = data_tmp
16294 pack_tmp = ishft(pack_tmp, -nbits)
16295 idata = idata + 1
16296 data_tmp = ishft(pack_tmp, 15)
16297 ipack = ipack + 1
16298 pack_tmp = packed_data(ipack)
16299 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
16300 pack_tmp = ishft(pack_tmp, -15)
16301 idata = idata + 1
16302 data_tmp = iand(pack_tmp, mask_right(nbits))
16303 full_data(idata) = data_tmp
16304 pack_tmp = ishft(pack_tmp, -nbits)
16305 idata = idata + 1
16306 data_tmp = iand(pack_tmp, mask_right(nbits))
16307 full_data(idata) = data_tmp
16308 pack_tmp = ishft(pack_tmp, -nbits)
16309 idata = idata + 1
16310 data_tmp = ishft(pack_tmp, 20)
16311 ipack = ipack + 1
16312 pack_tmp = packed_data(ipack)
16313 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
16314 pack_tmp = ishft(pack_tmp, -20)
16315 idata = idata + 1
16316 data_tmp = iand(pack_tmp, mask_right(nbits))
16317 full_data(idata) = data_tmp
16318 pack_tmp = ishft(pack_tmp, -nbits)
16319 idata = idata + 1
16320 data_tmp = ishft(pack_tmp, 2)
16321 ipack = ipack + 1
16322 pack_tmp = packed_data(ipack)
16323 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
16324 pack_tmp = ishft(pack_tmp, -2)
16325 idata = idata + 1
16326 data_tmp = iand(pack_tmp, mask_right(nbits))
16327 full_data(idata) = data_tmp
16328 pack_tmp = ishft(pack_tmp, -nbits)
16329 idata = idata + 1
16330 data_tmp = iand(pack_tmp, mask_right(nbits))
16331 full_data(idata) = data_tmp
16332 pack_tmp = ishft(pack_tmp, -nbits)
16333 idata = idata + 1
16334 data_tmp = ishft(pack_tmp, 7)
16335 ipack = ipack + 1
16336 pack_tmp = packed_data(ipack)
16337 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
16338 pack_tmp = ishft(pack_tmp, -7)
16339 idata = idata + 1
16340 data_tmp = iand(pack_tmp, mask_right(nbits))
16341 full_data(idata) = data_tmp
16342 pack_tmp = ishft(pack_tmp, -nbits)
16343 idata = idata + 1
16344 data_tmp = iand(pack_tmp, mask_right(nbits))
16345 full_data(idata) = data_tmp
16346 pack_tmp = ishft(pack_tmp, -nbits)
16347 idata = idata + 1
16348 data_tmp = ishft(pack_tmp, 12)
16349 ipack = ipack + 1
16350 pack_tmp = packed_data(ipack)
16351 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
16352 pack_tmp = ishft(pack_tmp, -12)
16353 idata = idata + 1
16354 data_tmp = iand(pack_tmp, mask_right(nbits))
16355 full_data(idata) = data_tmp
16356 pack_tmp = ishft(pack_tmp, -nbits)
16357 idata = idata + 1
16358 data_tmp = iand(pack_tmp, mask_right(nbits))
16359 full_data(idata) = data_tmp
16360 pack_tmp = ishft(pack_tmp, -nbits)
16361 idata = idata + 1
16362 data_tmp = ishft(pack_tmp, 17)
16363 ipack = ipack + 1
16364 pack_tmp = packed_data(ipack)
16365 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
16366 pack_tmp = ishft(pack_tmp, -17)
16367 idata = idata + 1
16368 data_tmp = iand(pack_tmp, mask_right(nbits))
16369 full_data(idata) = data_tmp
16370 pack_tmp = ishft(pack_tmp, -nbits)
16371 idata = idata + 1
16372 data_tmp = iand(pack_tmp, mask_right(nbits))
16373 full_data(idata) = data_tmp
16374 pack_tmp = ishft(pack_tmp, -nbits)
16375 idata = idata + 1
16376 data_tmp = ishft(pack_tmp, 22)
16377 ipack = ipack + 1
16378 pack_tmp = packed_data(ipack)
16379 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
16380 pack_tmp = ishft(pack_tmp, -22)
16381 idata = idata + 1
16382 data_tmp = iand(pack_tmp, mask_right(nbits))
16383 full_data(idata) = data_tmp
16384 pack_tmp = ishft(pack_tmp, -nbits)
16385 idata = idata + 1
16386 data_tmp = ishft(pack_tmp, 4)
16387 ipack = ipack + 1
16388 pack_tmp = packed_data(ipack)
16389 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
16390 pack_tmp = ishft(pack_tmp, -4)
16391 idata = idata + 1
16392 data_tmp = iand(pack_tmp, mask_right(nbits))
16393 full_data(idata) = data_tmp
16394 pack_tmp = ishft(pack_tmp, -nbits)
16395 idata = idata + 1
16396 data_tmp = iand(pack_tmp, mask_right(nbits))
16397 full_data(idata) = data_tmp
16398 pack_tmp = ishft(pack_tmp, -nbits)
16399 idata = idata + 1
16400 data_tmp = ishft(pack_tmp, 9)
16401 ipack = ipack + 1
16402 pack_tmp = packed_data(ipack)
16403 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
16404 pack_tmp = ishft(pack_tmp, -9)
16405 idata = idata + 1
16406 data_tmp = iand(pack_tmp, mask_right(nbits))
16407 full_data(idata) = data_tmp
16408 pack_tmp = ishft(pack_tmp, -nbits)
16409 idata = idata + 1
16410 data_tmp = iand(pack_tmp, mask_right(nbits))
16411 full_data(idata) = data_tmp
16412 pack_tmp = ishft(pack_tmp, -nbits)
16413 idata = idata + 1
16414 data_tmp = ishft(pack_tmp, 14)
16415 ipack = ipack + 1
16416 pack_tmp = packed_data(ipack)
16417 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
16418 pack_tmp = ishft(pack_tmp, -14)
16419 idata = idata + 1
16420 data_tmp = iand(pack_tmp, mask_right(nbits))
16421 full_data(idata) = data_tmp
16422 pack_tmp = ishft(pack_tmp, -nbits)
16423 idata = idata + 1
16424 data_tmp = iand(pack_tmp, mask_right(nbits))
16425 full_data(idata) = data_tmp
16426 pack_tmp = ishft(pack_tmp, -nbits)
16427 idata = idata + 1
16428 data_tmp = ishft(pack_tmp, 19)
16429 ipack = ipack + 1
16430 pack_tmp = packed_data(ipack)
16431 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
16432 pack_tmp = ishft(pack_tmp, -19)
16433 idata = idata + 1
16434 data_tmp = iand(pack_tmp, mask_right(nbits))
16435 full_data(idata) = data_tmp
16436 pack_tmp = ishft(pack_tmp, -nbits)
16437 idata = idata + 1
16438 data_tmp = ishft(pack_tmp, 1)
16439 ipack = ipack + 1
16440 pack_tmp = packed_data(ipack)
16441 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
16442 pack_tmp = ishft(pack_tmp, -1)
16443 idata = idata + 1
16444 data_tmp = iand(pack_tmp, mask_right(nbits))
16445 full_data(idata) = data_tmp
16446 pack_tmp = ishft(pack_tmp, -nbits)
16447 idata = idata + 1
16448 data_tmp = iand(pack_tmp, mask_right(nbits))
16449 full_data(idata) = data_tmp
16450 pack_tmp = ishft(pack_tmp, -nbits)
16451 idata = idata + 1
16452 data_tmp = ishft(pack_tmp, 6)
16453 ipack = ipack + 1
16454 pack_tmp = packed_data(ipack)
16455 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
16456 pack_tmp = ishft(pack_tmp, -6)
16457 idata = idata + 1
16458 data_tmp = iand(pack_tmp, mask_right(nbits))
16459 full_data(idata) = data_tmp
16460 pack_tmp = ishft(pack_tmp, -nbits)
16461 idata = idata + 1
16462 data_tmp = iand(pack_tmp, mask_right(nbits))
16463 full_data(idata) = data_tmp
16464 pack_tmp = ishft(pack_tmp, -nbits)
16465 idata = idata + 1
16466 data_tmp = ishft(pack_tmp, 11)
16467 ipack = ipack + 1
16468 pack_tmp = packed_data(ipack)
16469 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
16470 pack_tmp = ishft(pack_tmp, -11)
16471 idata = idata + 1
16472 data_tmp = iand(pack_tmp, mask_right(nbits))
16473 full_data(idata) = data_tmp
16474 pack_tmp = ishft(pack_tmp, -nbits)
16475 idata = idata + 1
16476 data_tmp = iand(pack_tmp, mask_right(nbits))
16477 full_data(idata) = data_tmp
16478 pack_tmp = ishft(pack_tmp, -nbits)
16479 idata = idata + 1
16480 data_tmp = ishft(pack_tmp, 16)
16481 ipack = ipack + 1
16482 pack_tmp = packed_data(ipack)
16483 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
16484 pack_tmp = ishft(pack_tmp, -16)
16485 idata = idata + 1
16486 data_tmp = iand(pack_tmp, mask_right(nbits))
16487 full_data(idata) = data_tmp
16488 pack_tmp = ishft(pack_tmp, -nbits)
16489 idata = idata + 1
16490 data_tmp = iand(pack_tmp, mask_right(nbits))
16491 full_data(idata) = data_tmp
16492 pack_tmp = ishft(pack_tmp, -nbits)
16493 idata = idata + 1
16494 data_tmp = ishft(pack_tmp, 21)
16495 ipack = ipack + 1
16496 pack_tmp = packed_data(ipack)
16497 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
16498 pack_tmp = ishft(pack_tmp, -21)
16499 idata = idata + 1
16500 data_tmp = iand(pack_tmp, mask_right(nbits))
16501 full_data(idata) = data_tmp
16502 pack_tmp = ishft(pack_tmp, -nbits)
16503 idata = idata + 1
16504 data_tmp = ishft(pack_tmp, 3)
16505 ipack = ipack + 1
16506 pack_tmp = packed_data(ipack)
16507 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
16508 pack_tmp = ishft(pack_tmp, -3)
16509 idata = idata + 1
16510 data_tmp = iand(pack_tmp, mask_right(nbits))
16511 full_data(idata) = data_tmp
16512 pack_tmp = ishft(pack_tmp, -nbits)
16513 idata = idata + 1
16514 data_tmp = iand(pack_tmp, mask_right(nbits))
16515 full_data(idata) = data_tmp
16516 pack_tmp = ishft(pack_tmp, -nbits)
16517 idata = idata + 1
16518 data_tmp = ishft(pack_tmp, 8)
16519 ipack = ipack + 1
16520 pack_tmp = packed_data(ipack)
16521 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
16522 pack_tmp = ishft(pack_tmp, -8)
16523 idata = idata + 1
16524 data_tmp = iand(pack_tmp, mask_right(nbits))
16525 full_data(idata) = data_tmp
16526 pack_tmp = ishft(pack_tmp, -nbits)
16527 idata = idata + 1
16528 data_tmp = iand(pack_tmp, mask_right(nbits))
16529 full_data(idata) = data_tmp
16530 pack_tmp = ishft(pack_tmp, -nbits)
16531 idata = idata + 1
16532 data_tmp = ishft(pack_tmp, 13)
16533 ipack = ipack + 1
16534 pack_tmp = packed_data(ipack)
16535 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
16536 pack_tmp = ishft(pack_tmp, -13)
16537 idata = idata + 1
16538 data_tmp = iand(pack_tmp, mask_right(nbits))
16539 full_data(idata) = data_tmp
16540 pack_tmp = ishft(pack_tmp, -nbits)
16541 idata = idata + 1
16542 data_tmp = iand(pack_tmp, mask_right(nbits))
16543 full_data(idata) = data_tmp
16544 pack_tmp = ishft(pack_tmp, -nbits)
16545 idata = idata + 1
16546 data_tmp = ishft(pack_tmp, 18)
16547 ipack = ipack + 1
16548 pack_tmp = packed_data(ipack)
16549 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
16550 pack_tmp = ishft(pack_tmp, -18)
16551 idata = idata + 1
16552 data_tmp = iand(pack_tmp, mask_right(nbits))
16553 full_data(idata) = data_tmp
16554 pack_tmp = ishft(pack_tmp, -nbits)
16555 idata = idata + 1
16556 data_tmp = iand(pack_tmp, mask_right(nbits))
16557 full_data(idata) = data_tmp
16558 pack_tmp = ishft(pack_tmp, -nbits)
16559 END DO
16560 IF (ndata_rep < ndata) THEN
16561 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
16562 END IF
16563 END SUBROUTINE bits2ints_23
16564
16565! **************************************************************************************************
16566!> \brief ...
16567!> \param Ndata ...
16568!> \param packed_data ...
16569!> \param full_data ...
16570! **************************************************************************************************
16571 SUBROUTINE ints2bits_24(Ndata, packed_data, full_data)
16572 INTEGER, INTENT(IN) :: Ndata
16573 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
16574 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
16575
16576 INTEGER, PARAMETER :: Nbits = 24
16577
16578 INTEGER :: idata, ipack, kdata, Ndata_rep
16579 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
16580
16581 idata = 0
16582 ipack = 0
16583 ndata_rep = (ndata/64)*64
16584 DO kdata = 1, ndata_rep, 64
16585 pack_tmp = 0
16586 idata = idata + 1
16587 data_tmp = full_data(idata)
16588 data_tmp = ishft(data_tmp, 40)
16589 pack_tmp = ior(pack_tmp, data_tmp)
16590 pack_tmp = ishft(pack_tmp, -24)
16591 idata = idata + 1
16592 data_tmp = full_data(idata)
16593 data_tmp = ishft(data_tmp, 40)
16594 pack_tmp = ior(pack_tmp, data_tmp)
16595 pack_tmp = ishft(pack_tmp, -16)
16596 idata = idata + 1
16597 data_tmp = full_data(idata)
16598 data_tmp = ishft(data_tmp, 40)
16599 data_tmp = iand(data_tmp, mask_left(16))
16600 pack_tmp = ior(pack_tmp, data_tmp)
16601 ipack = ipack + 1
16602 packed_data(ipack) = pack_tmp
16603 data_tmp = full_data(idata)
16604 pack_tmp = ishft(data_tmp, 56)
16605 pack_tmp = ishft(pack_tmp, -24)
16606 idata = idata + 1
16607 data_tmp = full_data(idata)
16608 data_tmp = ishft(data_tmp, 40)
16609 pack_tmp = ior(pack_tmp, data_tmp)
16610 pack_tmp = ishft(pack_tmp, -24)
16611 idata = idata + 1
16612 data_tmp = full_data(idata)
16613 data_tmp = ishft(data_tmp, 40)
16614 pack_tmp = ior(pack_tmp, data_tmp)
16615 pack_tmp = ishft(pack_tmp, -8)
16616 idata = idata + 1
16617 data_tmp = full_data(idata)
16618 data_tmp = ishft(data_tmp, 40)
16619 data_tmp = iand(data_tmp, mask_left(8))
16620 pack_tmp = ior(pack_tmp, data_tmp)
16621 ipack = ipack + 1
16622 packed_data(ipack) = pack_tmp
16623 data_tmp = full_data(idata)
16624 pack_tmp = ishft(data_tmp, 48)
16625 pack_tmp = ishft(pack_tmp, -24)
16626 idata = idata + 1
16627 data_tmp = full_data(idata)
16628 data_tmp = ishft(data_tmp, 40)
16629 pack_tmp = ior(pack_tmp, data_tmp)
16630 pack_tmp = ishft(pack_tmp, -24)
16631 idata = idata + 1
16632 data_tmp = full_data(idata)
16633 data_tmp = ishft(data_tmp, 40)
16634 pack_tmp = ior(pack_tmp, data_tmp)
16635 pack_tmp = ishft(pack_tmp, 0)
16636 idata = idata + 1
16637 data_tmp = full_data(idata)
16638 data_tmp = ishft(data_tmp, 40)
16639 data_tmp = iand(data_tmp, mask_left(0))
16640 pack_tmp = ior(pack_tmp, data_tmp)
16641 ipack = ipack + 1
16642 packed_data(ipack) = pack_tmp
16643 data_tmp = full_data(idata)
16644 pack_tmp = ishft(data_tmp, 40)
16645 pack_tmp = ishft(pack_tmp, -24)
16646 idata = idata + 1
16647 data_tmp = full_data(idata)
16648 data_tmp = ishft(data_tmp, 40)
16649 pack_tmp = ior(pack_tmp, data_tmp)
16650 pack_tmp = ishft(pack_tmp, -16)
16651 idata = idata + 1
16652 data_tmp = full_data(idata)
16653 data_tmp = ishft(data_tmp, 40)
16654 data_tmp = iand(data_tmp, mask_left(16))
16655 pack_tmp = ior(pack_tmp, data_tmp)
16656 ipack = ipack + 1
16657 packed_data(ipack) = pack_tmp
16658 data_tmp = full_data(idata)
16659 pack_tmp = ishft(data_tmp, 56)
16660 pack_tmp = ishft(pack_tmp, -24)
16661 idata = idata + 1
16662 data_tmp = full_data(idata)
16663 data_tmp = ishft(data_tmp, 40)
16664 pack_tmp = ior(pack_tmp, data_tmp)
16665 pack_tmp = ishft(pack_tmp, -24)
16666 idata = idata + 1
16667 data_tmp = full_data(idata)
16668 data_tmp = ishft(data_tmp, 40)
16669 pack_tmp = ior(pack_tmp, data_tmp)
16670 pack_tmp = ishft(pack_tmp, -8)
16671 idata = idata + 1
16672 data_tmp = full_data(idata)
16673 data_tmp = ishft(data_tmp, 40)
16674 data_tmp = iand(data_tmp, mask_left(8))
16675 pack_tmp = ior(pack_tmp, data_tmp)
16676 ipack = ipack + 1
16677 packed_data(ipack) = pack_tmp
16678 data_tmp = full_data(idata)
16679 pack_tmp = ishft(data_tmp, 48)
16680 pack_tmp = ishft(pack_tmp, -24)
16681 idata = idata + 1
16682 data_tmp = full_data(idata)
16683 data_tmp = ishft(data_tmp, 40)
16684 pack_tmp = ior(pack_tmp, data_tmp)
16685 pack_tmp = ishft(pack_tmp, -24)
16686 idata = idata + 1
16687 data_tmp = full_data(idata)
16688 data_tmp = ishft(data_tmp, 40)
16689 pack_tmp = ior(pack_tmp, data_tmp)
16690 pack_tmp = ishft(pack_tmp, 0)
16691 idata = idata + 1
16692 data_tmp = full_data(idata)
16693 data_tmp = ishft(data_tmp, 40)
16694 data_tmp = iand(data_tmp, mask_left(0))
16695 pack_tmp = ior(pack_tmp, data_tmp)
16696 ipack = ipack + 1
16697 packed_data(ipack) = pack_tmp
16698 data_tmp = full_data(idata)
16699 pack_tmp = ishft(data_tmp, 40)
16700 pack_tmp = ishft(pack_tmp, -24)
16701 idata = idata + 1
16702 data_tmp = full_data(idata)
16703 data_tmp = ishft(data_tmp, 40)
16704 pack_tmp = ior(pack_tmp, data_tmp)
16705 pack_tmp = ishft(pack_tmp, -16)
16706 idata = idata + 1
16707 data_tmp = full_data(idata)
16708 data_tmp = ishft(data_tmp, 40)
16709 data_tmp = iand(data_tmp, mask_left(16))
16710 pack_tmp = ior(pack_tmp, data_tmp)
16711 ipack = ipack + 1
16712 packed_data(ipack) = pack_tmp
16713 data_tmp = full_data(idata)
16714 pack_tmp = ishft(data_tmp, 56)
16715 pack_tmp = ishft(pack_tmp, -24)
16716 idata = idata + 1
16717 data_tmp = full_data(idata)
16718 data_tmp = ishft(data_tmp, 40)
16719 pack_tmp = ior(pack_tmp, data_tmp)
16720 pack_tmp = ishft(pack_tmp, -24)
16721 idata = idata + 1
16722 data_tmp = full_data(idata)
16723 data_tmp = ishft(data_tmp, 40)
16724 pack_tmp = ior(pack_tmp, data_tmp)
16725 pack_tmp = ishft(pack_tmp, -8)
16726 idata = idata + 1
16727 data_tmp = full_data(idata)
16728 data_tmp = ishft(data_tmp, 40)
16729 data_tmp = iand(data_tmp, mask_left(8))
16730 pack_tmp = ior(pack_tmp, data_tmp)
16731 ipack = ipack + 1
16732 packed_data(ipack) = pack_tmp
16733 data_tmp = full_data(idata)
16734 pack_tmp = ishft(data_tmp, 48)
16735 pack_tmp = ishft(pack_tmp, -24)
16736 idata = idata + 1
16737 data_tmp = full_data(idata)
16738 data_tmp = ishft(data_tmp, 40)
16739 pack_tmp = ior(pack_tmp, data_tmp)
16740 pack_tmp = ishft(pack_tmp, -24)
16741 idata = idata + 1
16742 data_tmp = full_data(idata)
16743 data_tmp = ishft(data_tmp, 40)
16744 pack_tmp = ior(pack_tmp, data_tmp)
16745 pack_tmp = ishft(pack_tmp, 0)
16746 idata = idata + 1
16747 data_tmp = full_data(idata)
16748 data_tmp = ishft(data_tmp, 40)
16749 data_tmp = iand(data_tmp, mask_left(0))
16750 pack_tmp = ior(pack_tmp, data_tmp)
16751 ipack = ipack + 1
16752 packed_data(ipack) = pack_tmp
16753 data_tmp = full_data(idata)
16754 pack_tmp = ishft(data_tmp, 40)
16755 pack_tmp = ishft(pack_tmp, -24)
16756 idata = idata + 1
16757 data_tmp = full_data(idata)
16758 data_tmp = ishft(data_tmp, 40)
16759 pack_tmp = ior(pack_tmp, data_tmp)
16760 pack_tmp = ishft(pack_tmp, -16)
16761 idata = idata + 1
16762 data_tmp = full_data(idata)
16763 data_tmp = ishft(data_tmp, 40)
16764 data_tmp = iand(data_tmp, mask_left(16))
16765 pack_tmp = ior(pack_tmp, data_tmp)
16766 ipack = ipack + 1
16767 packed_data(ipack) = pack_tmp
16768 data_tmp = full_data(idata)
16769 pack_tmp = ishft(data_tmp, 56)
16770 pack_tmp = ishft(pack_tmp, -24)
16771 idata = idata + 1
16772 data_tmp = full_data(idata)
16773 data_tmp = ishft(data_tmp, 40)
16774 pack_tmp = ior(pack_tmp, data_tmp)
16775 pack_tmp = ishft(pack_tmp, -24)
16776 idata = idata + 1
16777 data_tmp = full_data(idata)
16778 data_tmp = ishft(data_tmp, 40)
16779 pack_tmp = ior(pack_tmp, data_tmp)
16780 pack_tmp = ishft(pack_tmp, -8)
16781 idata = idata + 1
16782 data_tmp = full_data(idata)
16783 data_tmp = ishft(data_tmp, 40)
16784 data_tmp = iand(data_tmp, mask_left(8))
16785 pack_tmp = ior(pack_tmp, data_tmp)
16786 ipack = ipack + 1
16787 packed_data(ipack) = pack_tmp
16788 data_tmp = full_data(idata)
16789 pack_tmp = ishft(data_tmp, 48)
16790 pack_tmp = ishft(pack_tmp, -24)
16791 idata = idata + 1
16792 data_tmp = full_data(idata)
16793 data_tmp = ishft(data_tmp, 40)
16794 pack_tmp = ior(pack_tmp, data_tmp)
16795 pack_tmp = ishft(pack_tmp, -24)
16796 idata = idata + 1
16797 data_tmp = full_data(idata)
16798 data_tmp = ishft(data_tmp, 40)
16799 pack_tmp = ior(pack_tmp, data_tmp)
16800 pack_tmp = ishft(pack_tmp, 0)
16801 idata = idata + 1
16802 data_tmp = full_data(idata)
16803 data_tmp = ishft(data_tmp, 40)
16804 data_tmp = iand(data_tmp, mask_left(0))
16805 pack_tmp = ior(pack_tmp, data_tmp)
16806 ipack = ipack + 1
16807 packed_data(ipack) = pack_tmp
16808 data_tmp = full_data(idata)
16809 pack_tmp = ishft(data_tmp, 40)
16810 pack_tmp = ishft(pack_tmp, -24)
16811 idata = idata + 1
16812 data_tmp = full_data(idata)
16813 data_tmp = ishft(data_tmp, 40)
16814 pack_tmp = ior(pack_tmp, data_tmp)
16815 pack_tmp = ishft(pack_tmp, -16)
16816 idata = idata + 1
16817 data_tmp = full_data(idata)
16818 data_tmp = ishft(data_tmp, 40)
16819 data_tmp = iand(data_tmp, mask_left(16))
16820 pack_tmp = ior(pack_tmp, data_tmp)
16821 ipack = ipack + 1
16822 packed_data(ipack) = pack_tmp
16823 data_tmp = full_data(idata)
16824 pack_tmp = ishft(data_tmp, 56)
16825 pack_tmp = ishft(pack_tmp, -24)
16826 idata = idata + 1
16827 data_tmp = full_data(idata)
16828 data_tmp = ishft(data_tmp, 40)
16829 pack_tmp = ior(pack_tmp, data_tmp)
16830 pack_tmp = ishft(pack_tmp, -24)
16831 idata = idata + 1
16832 data_tmp = full_data(idata)
16833 data_tmp = ishft(data_tmp, 40)
16834 pack_tmp = ior(pack_tmp, data_tmp)
16835 pack_tmp = ishft(pack_tmp, -8)
16836 idata = idata + 1
16837 data_tmp = full_data(idata)
16838 data_tmp = ishft(data_tmp, 40)
16839 data_tmp = iand(data_tmp, mask_left(8))
16840 pack_tmp = ior(pack_tmp, data_tmp)
16841 ipack = ipack + 1
16842 packed_data(ipack) = pack_tmp
16843 data_tmp = full_data(idata)
16844 pack_tmp = ishft(data_tmp, 48)
16845 pack_tmp = ishft(pack_tmp, -24)
16846 idata = idata + 1
16847 data_tmp = full_data(idata)
16848 data_tmp = ishft(data_tmp, 40)
16849 pack_tmp = ior(pack_tmp, data_tmp)
16850 pack_tmp = ishft(pack_tmp, -24)
16851 idata = idata + 1
16852 data_tmp = full_data(idata)
16853 data_tmp = ishft(data_tmp, 40)
16854 pack_tmp = ior(pack_tmp, data_tmp)
16855 pack_tmp = ishft(pack_tmp, 0)
16856 idata = idata + 1
16857 data_tmp = full_data(idata)
16858 data_tmp = ishft(data_tmp, 40)
16859 data_tmp = iand(data_tmp, mask_left(0))
16860 pack_tmp = ior(pack_tmp, data_tmp)
16861 ipack = ipack + 1
16862 packed_data(ipack) = pack_tmp
16863 data_tmp = full_data(idata)
16864 pack_tmp = ishft(data_tmp, 40)
16865 pack_tmp = ishft(pack_tmp, -24)
16866 idata = idata + 1
16867 data_tmp = full_data(idata)
16868 data_tmp = ishft(data_tmp, 40)
16869 pack_tmp = ior(pack_tmp, data_tmp)
16870 pack_tmp = ishft(pack_tmp, -16)
16871 idata = idata + 1
16872 data_tmp = full_data(idata)
16873 data_tmp = ishft(data_tmp, 40)
16874 data_tmp = iand(data_tmp, mask_left(16))
16875 pack_tmp = ior(pack_tmp, data_tmp)
16876 ipack = ipack + 1
16877 packed_data(ipack) = pack_tmp
16878 data_tmp = full_data(idata)
16879 pack_tmp = ishft(data_tmp, 56)
16880 pack_tmp = ishft(pack_tmp, -24)
16881 idata = idata + 1
16882 data_tmp = full_data(idata)
16883 data_tmp = ishft(data_tmp, 40)
16884 pack_tmp = ior(pack_tmp, data_tmp)
16885 pack_tmp = ishft(pack_tmp, -24)
16886 idata = idata + 1
16887 data_tmp = full_data(idata)
16888 data_tmp = ishft(data_tmp, 40)
16889 pack_tmp = ior(pack_tmp, data_tmp)
16890 pack_tmp = ishft(pack_tmp, -8)
16891 idata = idata + 1
16892 data_tmp = full_data(idata)
16893 data_tmp = ishft(data_tmp, 40)
16894 data_tmp = iand(data_tmp, mask_left(8))
16895 pack_tmp = ior(pack_tmp, data_tmp)
16896 ipack = ipack + 1
16897 packed_data(ipack) = pack_tmp
16898 data_tmp = full_data(idata)
16899 pack_tmp = ishft(data_tmp, 48)
16900 pack_tmp = ishft(pack_tmp, -24)
16901 idata = idata + 1
16902 data_tmp = full_data(idata)
16903 data_tmp = ishft(data_tmp, 40)
16904 pack_tmp = ior(pack_tmp, data_tmp)
16905 pack_tmp = ishft(pack_tmp, -24)
16906 idata = idata + 1
16907 data_tmp = full_data(idata)
16908 data_tmp = ishft(data_tmp, 40)
16909 pack_tmp = ior(pack_tmp, data_tmp)
16910 pack_tmp = ishft(pack_tmp, 0)
16911 idata = idata + 1
16912 data_tmp = full_data(idata)
16913 data_tmp = ishft(data_tmp, 40)
16914 data_tmp = iand(data_tmp, mask_left(0))
16915 pack_tmp = ior(pack_tmp, data_tmp)
16916 ipack = ipack + 1
16917 packed_data(ipack) = pack_tmp
16918 data_tmp = full_data(idata)
16919 pack_tmp = ishft(data_tmp, 40)
16920 pack_tmp = ishft(pack_tmp, -24)
16921 idata = idata + 1
16922 data_tmp = full_data(idata)
16923 data_tmp = ishft(data_tmp, 40)
16924 pack_tmp = ior(pack_tmp, data_tmp)
16925 pack_tmp = ishft(pack_tmp, -16)
16926 idata = idata + 1
16927 data_tmp = full_data(idata)
16928 data_tmp = ishft(data_tmp, 40)
16929 data_tmp = iand(data_tmp, mask_left(16))
16930 pack_tmp = ior(pack_tmp, data_tmp)
16931 ipack = ipack + 1
16932 packed_data(ipack) = pack_tmp
16933 data_tmp = full_data(idata)
16934 pack_tmp = ishft(data_tmp, 56)
16935 pack_tmp = ishft(pack_tmp, -24)
16936 idata = idata + 1
16937 data_tmp = full_data(idata)
16938 data_tmp = ishft(data_tmp, 40)
16939 pack_tmp = ior(pack_tmp, data_tmp)
16940 pack_tmp = ishft(pack_tmp, -24)
16941 idata = idata + 1
16942 data_tmp = full_data(idata)
16943 data_tmp = ishft(data_tmp, 40)
16944 pack_tmp = ior(pack_tmp, data_tmp)
16945 pack_tmp = ishft(pack_tmp, -8)
16946 idata = idata + 1
16947 data_tmp = full_data(idata)
16948 data_tmp = ishft(data_tmp, 40)
16949 data_tmp = iand(data_tmp, mask_left(8))
16950 pack_tmp = ior(pack_tmp, data_tmp)
16951 ipack = ipack + 1
16952 packed_data(ipack) = pack_tmp
16953 data_tmp = full_data(idata)
16954 pack_tmp = ishft(data_tmp, 48)
16955 pack_tmp = ishft(pack_tmp, -24)
16956 idata = idata + 1
16957 data_tmp = full_data(idata)
16958 data_tmp = ishft(data_tmp, 40)
16959 pack_tmp = ior(pack_tmp, data_tmp)
16960 pack_tmp = ishft(pack_tmp, -24)
16961 idata = idata + 1
16962 data_tmp = full_data(idata)
16963 data_tmp = ishft(data_tmp, 40)
16964 pack_tmp = ior(pack_tmp, data_tmp)
16965 pack_tmp = ishft(pack_tmp, 0)
16966 idata = idata + 1
16967 data_tmp = full_data(idata)
16968 data_tmp = ishft(data_tmp, 40)
16969 data_tmp = iand(data_tmp, mask_left(0))
16970 pack_tmp = ior(pack_tmp, data_tmp)
16971 ipack = ipack + 1
16972 packed_data(ipack) = pack_tmp
16973 data_tmp = full_data(idata)
16974 pack_tmp = ishft(data_tmp, 40)
16975 pack_tmp = ishft(pack_tmp, -24)
16976 idata = idata + 1
16977 data_tmp = full_data(idata)
16978 data_tmp = ishft(data_tmp, 40)
16979 pack_tmp = ior(pack_tmp, data_tmp)
16980 pack_tmp = ishft(pack_tmp, -16)
16981 idata = idata + 1
16982 data_tmp = full_data(idata)
16983 data_tmp = ishft(data_tmp, 40)
16984 data_tmp = iand(data_tmp, mask_left(16))
16985 pack_tmp = ior(pack_tmp, data_tmp)
16986 ipack = ipack + 1
16987 packed_data(ipack) = pack_tmp
16988 data_tmp = full_data(idata)
16989 pack_tmp = ishft(data_tmp, 56)
16990 pack_tmp = ishft(pack_tmp, -24)
16991 idata = idata + 1
16992 data_tmp = full_data(idata)
16993 data_tmp = ishft(data_tmp, 40)
16994 pack_tmp = ior(pack_tmp, data_tmp)
16995 pack_tmp = ishft(pack_tmp, -24)
16996 idata = idata + 1
16997 data_tmp = full_data(idata)
16998 data_tmp = ishft(data_tmp, 40)
16999 pack_tmp = ior(pack_tmp, data_tmp)
17000 pack_tmp = ishft(pack_tmp, -8)
17001 idata = idata + 1
17002 data_tmp = full_data(idata)
17003 data_tmp = ishft(data_tmp, 40)
17004 data_tmp = iand(data_tmp, mask_left(8))
17005 pack_tmp = ior(pack_tmp, data_tmp)
17006 ipack = ipack + 1
17007 packed_data(ipack) = pack_tmp
17008 data_tmp = full_data(idata)
17009 pack_tmp = ishft(data_tmp, 48)
17010 pack_tmp = ishft(pack_tmp, -24)
17011 idata = idata + 1
17012 data_tmp = full_data(idata)
17013 data_tmp = ishft(data_tmp, 40)
17014 pack_tmp = ior(pack_tmp, data_tmp)
17015 pack_tmp = ishft(pack_tmp, -24)
17016 idata = idata + 1
17017 data_tmp = full_data(idata)
17018 data_tmp = ishft(data_tmp, 40)
17019 pack_tmp = ior(pack_tmp, data_tmp)
17020 pack_tmp = ishft(pack_tmp, 0)
17021 pack_tmp = ishft(pack_tmp, 0)
17022 ipack = ipack + 1
17023 packed_data(ipack) = pack_tmp
17024 END DO
17025 IF (ndata_rep < ndata) THEN
17026 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
17027 END IF
17028 END SUBROUTINE ints2bits_24
17029
17030! **************************************************************************************************
17031!> \brief ...
17032!> \param Ndata ...
17033!> \param packed_data ...
17034!> \param full_data ...
17035! **************************************************************************************************
17036 SUBROUTINE bits2ints_24(Ndata, packed_data, full_data)
17037 INTEGER, INTENT(IN) :: Ndata
17038 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
17039 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
17040
17041 INTEGER, PARAMETER :: Nbits = 24
17042
17043 INTEGER :: idata, ipack, kdata, Ndata_rep
17044 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
17045
17046 ipack = 0
17047 idata = 0
17048 pack_tmp = 0
17049 ndata_rep = (ndata/64)*64
17050 DO kdata = 1, ndata_rep, 64
17051 idata = idata + 1
17052 data_tmp = ishft(pack_tmp, 24)
17053 ipack = ipack + 1
17054 pack_tmp = packed_data(ipack)
17055 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
17056 pack_tmp = ishft(pack_tmp, -24)
17057 idata = idata + 1
17058 data_tmp = iand(pack_tmp, mask_right(nbits))
17059 full_data(idata) = data_tmp
17060 pack_tmp = ishft(pack_tmp, -nbits)
17061 idata = idata + 1
17062 data_tmp = ishft(pack_tmp, 8)
17063 ipack = ipack + 1
17064 pack_tmp = packed_data(ipack)
17065 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
17066 pack_tmp = ishft(pack_tmp, -8)
17067 idata = idata + 1
17068 data_tmp = iand(pack_tmp, mask_right(nbits))
17069 full_data(idata) = data_tmp
17070 pack_tmp = ishft(pack_tmp, -nbits)
17071 idata = idata + 1
17072 data_tmp = iand(pack_tmp, mask_right(nbits))
17073 full_data(idata) = data_tmp
17074 pack_tmp = ishft(pack_tmp, -nbits)
17075 idata = idata + 1
17076 data_tmp = ishft(pack_tmp, 16)
17077 ipack = ipack + 1
17078 pack_tmp = packed_data(ipack)
17079 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
17080 pack_tmp = ishft(pack_tmp, -16)
17081 idata = idata + 1
17082 data_tmp = iand(pack_tmp, mask_right(nbits))
17083 full_data(idata) = data_tmp
17084 pack_tmp = ishft(pack_tmp, -nbits)
17085 idata = idata + 1
17086 data_tmp = iand(pack_tmp, mask_right(nbits))
17087 full_data(idata) = data_tmp
17088 pack_tmp = ishft(pack_tmp, -nbits)
17089 idata = idata + 1
17090 data_tmp = ishft(pack_tmp, 24)
17091 ipack = ipack + 1
17092 pack_tmp = packed_data(ipack)
17093 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
17094 pack_tmp = ishft(pack_tmp, -24)
17095 idata = idata + 1
17096 data_tmp = iand(pack_tmp, mask_right(nbits))
17097 full_data(idata) = data_tmp
17098 pack_tmp = ishft(pack_tmp, -nbits)
17099 idata = idata + 1
17100 data_tmp = ishft(pack_tmp, 8)
17101 ipack = ipack + 1
17102 pack_tmp = packed_data(ipack)
17103 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
17104 pack_tmp = ishft(pack_tmp, -8)
17105 idata = idata + 1
17106 data_tmp = iand(pack_tmp, mask_right(nbits))
17107 full_data(idata) = data_tmp
17108 pack_tmp = ishft(pack_tmp, -nbits)
17109 idata = idata + 1
17110 data_tmp = iand(pack_tmp, mask_right(nbits))
17111 full_data(idata) = data_tmp
17112 pack_tmp = ishft(pack_tmp, -nbits)
17113 idata = idata + 1
17114 data_tmp = ishft(pack_tmp, 16)
17115 ipack = ipack + 1
17116 pack_tmp = packed_data(ipack)
17117 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
17118 pack_tmp = ishft(pack_tmp, -16)
17119 idata = idata + 1
17120 data_tmp = iand(pack_tmp, mask_right(nbits))
17121 full_data(idata) = data_tmp
17122 pack_tmp = ishft(pack_tmp, -nbits)
17123 idata = idata + 1
17124 data_tmp = iand(pack_tmp, mask_right(nbits))
17125 full_data(idata) = data_tmp
17126 pack_tmp = ishft(pack_tmp, -nbits)
17127 idata = idata + 1
17128 data_tmp = ishft(pack_tmp, 24)
17129 ipack = ipack + 1
17130 pack_tmp = packed_data(ipack)
17131 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
17132 pack_tmp = ishft(pack_tmp, -24)
17133 idata = idata + 1
17134 data_tmp = iand(pack_tmp, mask_right(nbits))
17135 full_data(idata) = data_tmp
17136 pack_tmp = ishft(pack_tmp, -nbits)
17137 idata = idata + 1
17138 data_tmp = ishft(pack_tmp, 8)
17139 ipack = ipack + 1
17140 pack_tmp = packed_data(ipack)
17141 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
17142 pack_tmp = ishft(pack_tmp, -8)
17143 idata = idata + 1
17144 data_tmp = iand(pack_tmp, mask_right(nbits))
17145 full_data(idata) = data_tmp
17146 pack_tmp = ishft(pack_tmp, -nbits)
17147 idata = idata + 1
17148 data_tmp = iand(pack_tmp, mask_right(nbits))
17149 full_data(idata) = data_tmp
17150 pack_tmp = ishft(pack_tmp, -nbits)
17151 idata = idata + 1
17152 data_tmp = ishft(pack_tmp, 16)
17153 ipack = ipack + 1
17154 pack_tmp = packed_data(ipack)
17155 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
17156 pack_tmp = ishft(pack_tmp, -16)
17157 idata = idata + 1
17158 data_tmp = iand(pack_tmp, mask_right(nbits))
17159 full_data(idata) = data_tmp
17160 pack_tmp = ishft(pack_tmp, -nbits)
17161 idata = idata + 1
17162 data_tmp = iand(pack_tmp, mask_right(nbits))
17163 full_data(idata) = data_tmp
17164 pack_tmp = ishft(pack_tmp, -nbits)
17165 idata = idata + 1
17166 data_tmp = ishft(pack_tmp, 24)
17167 ipack = ipack + 1
17168 pack_tmp = packed_data(ipack)
17169 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
17170 pack_tmp = ishft(pack_tmp, -24)
17171 idata = idata + 1
17172 data_tmp = iand(pack_tmp, mask_right(nbits))
17173 full_data(idata) = data_tmp
17174 pack_tmp = ishft(pack_tmp, -nbits)
17175 idata = idata + 1
17176 data_tmp = ishft(pack_tmp, 8)
17177 ipack = ipack + 1
17178 pack_tmp = packed_data(ipack)
17179 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
17180 pack_tmp = ishft(pack_tmp, -8)
17181 idata = idata + 1
17182 data_tmp = iand(pack_tmp, mask_right(nbits))
17183 full_data(idata) = data_tmp
17184 pack_tmp = ishft(pack_tmp, -nbits)
17185 idata = idata + 1
17186 data_tmp = iand(pack_tmp, mask_right(nbits))
17187 full_data(idata) = data_tmp
17188 pack_tmp = ishft(pack_tmp, -nbits)
17189 idata = idata + 1
17190 data_tmp = ishft(pack_tmp, 16)
17191 ipack = ipack + 1
17192 pack_tmp = packed_data(ipack)
17193 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
17194 pack_tmp = ishft(pack_tmp, -16)
17195 idata = idata + 1
17196 data_tmp = iand(pack_tmp, mask_right(nbits))
17197 full_data(idata) = data_tmp
17198 pack_tmp = ishft(pack_tmp, -nbits)
17199 idata = idata + 1
17200 data_tmp = iand(pack_tmp, mask_right(nbits))
17201 full_data(idata) = data_tmp
17202 pack_tmp = ishft(pack_tmp, -nbits)
17203 idata = idata + 1
17204 data_tmp = ishft(pack_tmp, 24)
17205 ipack = ipack + 1
17206 pack_tmp = packed_data(ipack)
17207 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
17208 pack_tmp = ishft(pack_tmp, -24)
17209 idata = idata + 1
17210 data_tmp = iand(pack_tmp, mask_right(nbits))
17211 full_data(idata) = data_tmp
17212 pack_tmp = ishft(pack_tmp, -nbits)
17213 idata = idata + 1
17214 data_tmp = ishft(pack_tmp, 8)
17215 ipack = ipack + 1
17216 pack_tmp = packed_data(ipack)
17217 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
17218 pack_tmp = ishft(pack_tmp, -8)
17219 idata = idata + 1
17220 data_tmp = iand(pack_tmp, mask_right(nbits))
17221 full_data(idata) = data_tmp
17222 pack_tmp = ishft(pack_tmp, -nbits)
17223 idata = idata + 1
17224 data_tmp = iand(pack_tmp, mask_right(nbits))
17225 full_data(idata) = data_tmp
17226 pack_tmp = ishft(pack_tmp, -nbits)
17227 idata = idata + 1
17228 data_tmp = ishft(pack_tmp, 16)
17229 ipack = ipack + 1
17230 pack_tmp = packed_data(ipack)
17231 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
17232 pack_tmp = ishft(pack_tmp, -16)
17233 idata = idata + 1
17234 data_tmp = iand(pack_tmp, mask_right(nbits))
17235 full_data(idata) = data_tmp
17236 pack_tmp = ishft(pack_tmp, -nbits)
17237 idata = idata + 1
17238 data_tmp = iand(pack_tmp, mask_right(nbits))
17239 full_data(idata) = data_tmp
17240 pack_tmp = ishft(pack_tmp, -nbits)
17241 idata = idata + 1
17242 data_tmp = ishft(pack_tmp, 24)
17243 ipack = ipack + 1
17244 pack_tmp = packed_data(ipack)
17245 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
17246 pack_tmp = ishft(pack_tmp, -24)
17247 idata = idata + 1
17248 data_tmp = iand(pack_tmp, mask_right(nbits))
17249 full_data(idata) = data_tmp
17250 pack_tmp = ishft(pack_tmp, -nbits)
17251 idata = idata + 1
17252 data_tmp = ishft(pack_tmp, 8)
17253 ipack = ipack + 1
17254 pack_tmp = packed_data(ipack)
17255 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
17256 pack_tmp = ishft(pack_tmp, -8)
17257 idata = idata + 1
17258 data_tmp = iand(pack_tmp, mask_right(nbits))
17259 full_data(idata) = data_tmp
17260 pack_tmp = ishft(pack_tmp, -nbits)
17261 idata = idata + 1
17262 data_tmp = iand(pack_tmp, mask_right(nbits))
17263 full_data(idata) = data_tmp
17264 pack_tmp = ishft(pack_tmp, -nbits)
17265 idata = idata + 1
17266 data_tmp = ishft(pack_tmp, 16)
17267 ipack = ipack + 1
17268 pack_tmp = packed_data(ipack)
17269 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
17270 pack_tmp = ishft(pack_tmp, -16)
17271 idata = idata + 1
17272 data_tmp = iand(pack_tmp, mask_right(nbits))
17273 full_data(idata) = data_tmp
17274 pack_tmp = ishft(pack_tmp, -nbits)
17275 idata = idata + 1
17276 data_tmp = iand(pack_tmp, mask_right(nbits))
17277 full_data(idata) = data_tmp
17278 pack_tmp = ishft(pack_tmp, -nbits)
17279 idata = idata + 1
17280 data_tmp = ishft(pack_tmp, 24)
17281 ipack = ipack + 1
17282 pack_tmp = packed_data(ipack)
17283 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
17284 pack_tmp = ishft(pack_tmp, -24)
17285 idata = idata + 1
17286 data_tmp = iand(pack_tmp, mask_right(nbits))
17287 full_data(idata) = data_tmp
17288 pack_tmp = ishft(pack_tmp, -nbits)
17289 idata = idata + 1
17290 data_tmp = ishft(pack_tmp, 8)
17291 ipack = ipack + 1
17292 pack_tmp = packed_data(ipack)
17293 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
17294 pack_tmp = ishft(pack_tmp, -8)
17295 idata = idata + 1
17296 data_tmp = iand(pack_tmp, mask_right(nbits))
17297 full_data(idata) = data_tmp
17298 pack_tmp = ishft(pack_tmp, -nbits)
17299 idata = idata + 1
17300 data_tmp = iand(pack_tmp, mask_right(nbits))
17301 full_data(idata) = data_tmp
17302 pack_tmp = ishft(pack_tmp, -nbits)
17303 idata = idata + 1
17304 data_tmp = ishft(pack_tmp, 16)
17305 ipack = ipack + 1
17306 pack_tmp = packed_data(ipack)
17307 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
17308 pack_tmp = ishft(pack_tmp, -16)
17309 idata = idata + 1
17310 data_tmp = iand(pack_tmp, mask_right(nbits))
17311 full_data(idata) = data_tmp
17312 pack_tmp = ishft(pack_tmp, -nbits)
17313 idata = idata + 1
17314 data_tmp = iand(pack_tmp, mask_right(nbits))
17315 full_data(idata) = data_tmp
17316 pack_tmp = ishft(pack_tmp, -nbits)
17317 idata = idata + 1
17318 data_tmp = ishft(pack_tmp, 24)
17319 ipack = ipack + 1
17320 pack_tmp = packed_data(ipack)
17321 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
17322 pack_tmp = ishft(pack_tmp, -24)
17323 idata = idata + 1
17324 data_tmp = iand(pack_tmp, mask_right(nbits))
17325 full_data(idata) = data_tmp
17326 pack_tmp = ishft(pack_tmp, -nbits)
17327 idata = idata + 1
17328 data_tmp = ishft(pack_tmp, 8)
17329 ipack = ipack + 1
17330 pack_tmp = packed_data(ipack)
17331 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
17332 pack_tmp = ishft(pack_tmp, -8)
17333 idata = idata + 1
17334 data_tmp = iand(pack_tmp, mask_right(nbits))
17335 full_data(idata) = data_tmp
17336 pack_tmp = ishft(pack_tmp, -nbits)
17337 idata = idata + 1
17338 data_tmp = iand(pack_tmp, mask_right(nbits))
17339 full_data(idata) = data_tmp
17340 pack_tmp = ishft(pack_tmp, -nbits)
17341 idata = idata + 1
17342 data_tmp = ishft(pack_tmp, 16)
17343 ipack = ipack + 1
17344 pack_tmp = packed_data(ipack)
17345 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
17346 pack_tmp = ishft(pack_tmp, -16)
17347 idata = idata + 1
17348 data_tmp = iand(pack_tmp, mask_right(nbits))
17349 full_data(idata) = data_tmp
17350 pack_tmp = ishft(pack_tmp, -nbits)
17351 idata = idata + 1
17352 data_tmp = iand(pack_tmp, mask_right(nbits))
17353 full_data(idata) = data_tmp
17354 pack_tmp = ishft(pack_tmp, -nbits)
17355 END DO
17356 IF (ndata_rep < ndata) THEN
17357 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
17358 END IF
17359 END SUBROUTINE bits2ints_24
17360
17361! **************************************************************************************************
17362!> \brief ...
17363!> \param Ndata ...
17364!> \param packed_data ...
17365!> \param full_data ...
17366! **************************************************************************************************
17367 SUBROUTINE ints2bits_25(Ndata, packed_data, full_data)
17368 INTEGER, INTENT(IN) :: Ndata
17369 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
17370 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
17371
17372 INTEGER, PARAMETER :: Nbits = 25
17373
17374 INTEGER :: idata, ipack, kdata, Ndata_rep
17375 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
17376
17377 idata = 0
17378 ipack = 0
17379 ndata_rep = (ndata/64)*64
17380 DO kdata = 1, ndata_rep, 64
17381 pack_tmp = 0
17382 idata = idata + 1
17383 data_tmp = full_data(idata)
17384 data_tmp = ishft(data_tmp, 39)
17385 pack_tmp = ior(pack_tmp, data_tmp)
17386 pack_tmp = ishft(pack_tmp, -25)
17387 idata = idata + 1
17388 data_tmp = full_data(idata)
17389 data_tmp = ishft(data_tmp, 39)
17390 pack_tmp = ior(pack_tmp, data_tmp)
17391 pack_tmp = ishft(pack_tmp, -14)
17392 idata = idata + 1
17393 data_tmp = full_data(idata)
17394 data_tmp = ishft(data_tmp, 39)
17395 data_tmp = iand(data_tmp, mask_left(14))
17396 pack_tmp = ior(pack_tmp, data_tmp)
17397 ipack = ipack + 1
17398 packed_data(ipack) = pack_tmp
17399 data_tmp = full_data(idata)
17400 pack_tmp = ishft(data_tmp, 53)
17401 pack_tmp = ishft(pack_tmp, -25)
17402 idata = idata + 1
17403 data_tmp = full_data(idata)
17404 data_tmp = ishft(data_tmp, 39)
17405 pack_tmp = ior(pack_tmp, data_tmp)
17406 pack_tmp = ishft(pack_tmp, -25)
17407 idata = idata + 1
17408 data_tmp = full_data(idata)
17409 data_tmp = ishft(data_tmp, 39)
17410 pack_tmp = ior(pack_tmp, data_tmp)
17411 pack_tmp = ishft(pack_tmp, -3)
17412 idata = idata + 1
17413 data_tmp = full_data(idata)
17414 data_tmp = ishft(data_tmp, 39)
17415 data_tmp = iand(data_tmp, mask_left(3))
17416 pack_tmp = ior(pack_tmp, data_tmp)
17417 ipack = ipack + 1
17418 packed_data(ipack) = pack_tmp
17419 data_tmp = full_data(idata)
17420 pack_tmp = ishft(data_tmp, 42)
17421 pack_tmp = ishft(pack_tmp, -25)
17422 idata = idata + 1
17423 data_tmp = full_data(idata)
17424 data_tmp = ishft(data_tmp, 39)
17425 pack_tmp = ior(pack_tmp, data_tmp)
17426 pack_tmp = ishft(pack_tmp, -17)
17427 idata = idata + 1
17428 data_tmp = full_data(idata)
17429 data_tmp = ishft(data_tmp, 39)
17430 data_tmp = iand(data_tmp, mask_left(17))
17431 pack_tmp = ior(pack_tmp, data_tmp)
17432 ipack = ipack + 1
17433 packed_data(ipack) = pack_tmp
17434 data_tmp = full_data(idata)
17435 pack_tmp = ishft(data_tmp, 56)
17436 pack_tmp = ishft(pack_tmp, -25)
17437 idata = idata + 1
17438 data_tmp = full_data(idata)
17439 data_tmp = ishft(data_tmp, 39)
17440 pack_tmp = ior(pack_tmp, data_tmp)
17441 pack_tmp = ishft(pack_tmp, -25)
17442 idata = idata + 1
17443 data_tmp = full_data(idata)
17444 data_tmp = ishft(data_tmp, 39)
17445 pack_tmp = ior(pack_tmp, data_tmp)
17446 pack_tmp = ishft(pack_tmp, -6)
17447 idata = idata + 1
17448 data_tmp = full_data(idata)
17449 data_tmp = ishft(data_tmp, 39)
17450 data_tmp = iand(data_tmp, mask_left(6))
17451 pack_tmp = ior(pack_tmp, data_tmp)
17452 ipack = ipack + 1
17453 packed_data(ipack) = pack_tmp
17454 data_tmp = full_data(idata)
17455 pack_tmp = ishft(data_tmp, 45)
17456 pack_tmp = ishft(pack_tmp, -25)
17457 idata = idata + 1
17458 data_tmp = full_data(idata)
17459 data_tmp = ishft(data_tmp, 39)
17460 pack_tmp = ior(pack_tmp, data_tmp)
17461 pack_tmp = ishft(pack_tmp, -20)
17462 idata = idata + 1
17463 data_tmp = full_data(idata)
17464 data_tmp = ishft(data_tmp, 39)
17465 data_tmp = iand(data_tmp, mask_left(20))
17466 pack_tmp = ior(pack_tmp, data_tmp)
17467 ipack = ipack + 1
17468 packed_data(ipack) = pack_tmp
17469 data_tmp = full_data(idata)
17470 pack_tmp = ishft(data_tmp, 59)
17471 pack_tmp = ishft(pack_tmp, -25)
17472 idata = idata + 1
17473 data_tmp = full_data(idata)
17474 data_tmp = ishft(data_tmp, 39)
17475 pack_tmp = ior(pack_tmp, data_tmp)
17476 pack_tmp = ishft(pack_tmp, -25)
17477 idata = idata + 1
17478 data_tmp = full_data(idata)
17479 data_tmp = ishft(data_tmp, 39)
17480 pack_tmp = ior(pack_tmp, data_tmp)
17481 pack_tmp = ishft(pack_tmp, -9)
17482 idata = idata + 1
17483 data_tmp = full_data(idata)
17484 data_tmp = ishft(data_tmp, 39)
17485 data_tmp = iand(data_tmp, mask_left(9))
17486 pack_tmp = ior(pack_tmp, data_tmp)
17487 ipack = ipack + 1
17488 packed_data(ipack) = pack_tmp
17489 data_tmp = full_data(idata)
17490 pack_tmp = ishft(data_tmp, 48)
17491 pack_tmp = ishft(pack_tmp, -25)
17492 idata = idata + 1
17493 data_tmp = full_data(idata)
17494 data_tmp = ishft(data_tmp, 39)
17495 pack_tmp = ior(pack_tmp, data_tmp)
17496 pack_tmp = ishft(pack_tmp, -23)
17497 idata = idata + 1
17498 data_tmp = full_data(idata)
17499 data_tmp = ishft(data_tmp, 39)
17500 data_tmp = iand(data_tmp, mask_left(23))
17501 pack_tmp = ior(pack_tmp, data_tmp)
17502 ipack = ipack + 1
17503 packed_data(ipack) = pack_tmp
17504 data_tmp = full_data(idata)
17505 pack_tmp = ishft(data_tmp, 62)
17506 pack_tmp = ishft(pack_tmp, -25)
17507 idata = idata + 1
17508 data_tmp = full_data(idata)
17509 data_tmp = ishft(data_tmp, 39)
17510 pack_tmp = ior(pack_tmp, data_tmp)
17511 pack_tmp = ishft(pack_tmp, -25)
17512 idata = idata + 1
17513 data_tmp = full_data(idata)
17514 data_tmp = ishft(data_tmp, 39)
17515 pack_tmp = ior(pack_tmp, data_tmp)
17516 pack_tmp = ishft(pack_tmp, -12)
17517 idata = idata + 1
17518 data_tmp = full_data(idata)
17519 data_tmp = ishft(data_tmp, 39)
17520 data_tmp = iand(data_tmp, mask_left(12))
17521 pack_tmp = ior(pack_tmp, data_tmp)
17522 ipack = ipack + 1
17523 packed_data(ipack) = pack_tmp
17524 data_tmp = full_data(idata)
17525 pack_tmp = ishft(data_tmp, 51)
17526 pack_tmp = ishft(pack_tmp, -25)
17527 idata = idata + 1
17528 data_tmp = full_data(idata)
17529 data_tmp = ishft(data_tmp, 39)
17530 pack_tmp = ior(pack_tmp, data_tmp)
17531 pack_tmp = ishft(pack_tmp, -25)
17532 idata = idata + 1
17533 data_tmp = full_data(idata)
17534 data_tmp = ishft(data_tmp, 39)
17535 pack_tmp = ior(pack_tmp, data_tmp)
17536 pack_tmp = ishft(pack_tmp, -1)
17537 idata = idata + 1
17538 data_tmp = full_data(idata)
17539 data_tmp = ishft(data_tmp, 39)
17540 data_tmp = iand(data_tmp, mask_left(1))
17541 pack_tmp = ior(pack_tmp, data_tmp)
17542 ipack = ipack + 1
17543 packed_data(ipack) = pack_tmp
17544 data_tmp = full_data(idata)
17545 pack_tmp = ishft(data_tmp, 40)
17546 pack_tmp = ishft(pack_tmp, -25)
17547 idata = idata + 1
17548 data_tmp = full_data(idata)
17549 data_tmp = ishft(data_tmp, 39)
17550 pack_tmp = ior(pack_tmp, data_tmp)
17551 pack_tmp = ishft(pack_tmp, -15)
17552 idata = idata + 1
17553 data_tmp = full_data(idata)
17554 data_tmp = ishft(data_tmp, 39)
17555 data_tmp = iand(data_tmp, mask_left(15))
17556 pack_tmp = ior(pack_tmp, data_tmp)
17557 ipack = ipack + 1
17558 packed_data(ipack) = pack_tmp
17559 data_tmp = full_data(idata)
17560 pack_tmp = ishft(data_tmp, 54)
17561 pack_tmp = ishft(pack_tmp, -25)
17562 idata = idata + 1
17563 data_tmp = full_data(idata)
17564 data_tmp = ishft(data_tmp, 39)
17565 pack_tmp = ior(pack_tmp, data_tmp)
17566 pack_tmp = ishft(pack_tmp, -25)
17567 idata = idata + 1
17568 data_tmp = full_data(idata)
17569 data_tmp = ishft(data_tmp, 39)
17570 pack_tmp = ior(pack_tmp, data_tmp)
17571 pack_tmp = ishft(pack_tmp, -4)
17572 idata = idata + 1
17573 data_tmp = full_data(idata)
17574 data_tmp = ishft(data_tmp, 39)
17575 data_tmp = iand(data_tmp, mask_left(4))
17576 pack_tmp = ior(pack_tmp, data_tmp)
17577 ipack = ipack + 1
17578 packed_data(ipack) = pack_tmp
17579 data_tmp = full_data(idata)
17580 pack_tmp = ishft(data_tmp, 43)
17581 pack_tmp = ishft(pack_tmp, -25)
17582 idata = idata + 1
17583 data_tmp = full_data(idata)
17584 data_tmp = ishft(data_tmp, 39)
17585 pack_tmp = ior(pack_tmp, data_tmp)
17586 pack_tmp = ishft(pack_tmp, -18)
17587 idata = idata + 1
17588 data_tmp = full_data(idata)
17589 data_tmp = ishft(data_tmp, 39)
17590 data_tmp = iand(data_tmp, mask_left(18))
17591 pack_tmp = ior(pack_tmp, data_tmp)
17592 ipack = ipack + 1
17593 packed_data(ipack) = pack_tmp
17594 data_tmp = full_data(idata)
17595 pack_tmp = ishft(data_tmp, 57)
17596 pack_tmp = ishft(pack_tmp, -25)
17597 idata = idata + 1
17598 data_tmp = full_data(idata)
17599 data_tmp = ishft(data_tmp, 39)
17600 pack_tmp = ior(pack_tmp, data_tmp)
17601 pack_tmp = ishft(pack_tmp, -25)
17602 idata = idata + 1
17603 data_tmp = full_data(idata)
17604 data_tmp = ishft(data_tmp, 39)
17605 pack_tmp = ior(pack_tmp, data_tmp)
17606 pack_tmp = ishft(pack_tmp, -7)
17607 idata = idata + 1
17608 data_tmp = full_data(idata)
17609 data_tmp = ishft(data_tmp, 39)
17610 data_tmp = iand(data_tmp, mask_left(7))
17611 pack_tmp = ior(pack_tmp, data_tmp)
17612 ipack = ipack + 1
17613 packed_data(ipack) = pack_tmp
17614 data_tmp = full_data(idata)
17615 pack_tmp = ishft(data_tmp, 46)
17616 pack_tmp = ishft(pack_tmp, -25)
17617 idata = idata + 1
17618 data_tmp = full_data(idata)
17619 data_tmp = ishft(data_tmp, 39)
17620 pack_tmp = ior(pack_tmp, data_tmp)
17621 pack_tmp = ishft(pack_tmp, -21)
17622 idata = idata + 1
17623 data_tmp = full_data(idata)
17624 data_tmp = ishft(data_tmp, 39)
17625 data_tmp = iand(data_tmp, mask_left(21))
17626 pack_tmp = ior(pack_tmp, data_tmp)
17627 ipack = ipack + 1
17628 packed_data(ipack) = pack_tmp
17629 data_tmp = full_data(idata)
17630 pack_tmp = ishft(data_tmp, 60)
17631 pack_tmp = ishft(pack_tmp, -25)
17632 idata = idata + 1
17633 data_tmp = full_data(idata)
17634 data_tmp = ishft(data_tmp, 39)
17635 pack_tmp = ior(pack_tmp, data_tmp)
17636 pack_tmp = ishft(pack_tmp, -25)
17637 idata = idata + 1
17638 data_tmp = full_data(idata)
17639 data_tmp = ishft(data_tmp, 39)
17640 pack_tmp = ior(pack_tmp, data_tmp)
17641 pack_tmp = ishft(pack_tmp, -10)
17642 idata = idata + 1
17643 data_tmp = full_data(idata)
17644 data_tmp = ishft(data_tmp, 39)
17645 data_tmp = iand(data_tmp, mask_left(10))
17646 pack_tmp = ior(pack_tmp, data_tmp)
17647 ipack = ipack + 1
17648 packed_data(ipack) = pack_tmp
17649 data_tmp = full_data(idata)
17650 pack_tmp = ishft(data_tmp, 49)
17651 pack_tmp = ishft(pack_tmp, -25)
17652 idata = idata + 1
17653 data_tmp = full_data(idata)
17654 data_tmp = ishft(data_tmp, 39)
17655 pack_tmp = ior(pack_tmp, data_tmp)
17656 pack_tmp = ishft(pack_tmp, -24)
17657 idata = idata + 1
17658 data_tmp = full_data(idata)
17659 data_tmp = ishft(data_tmp, 39)
17660 data_tmp = iand(data_tmp, mask_left(24))
17661 pack_tmp = ior(pack_tmp, data_tmp)
17662 ipack = ipack + 1
17663 packed_data(ipack) = pack_tmp
17664 data_tmp = full_data(idata)
17665 pack_tmp = ishft(data_tmp, 63)
17666 pack_tmp = ishft(pack_tmp, -25)
17667 idata = idata + 1
17668 data_tmp = full_data(idata)
17669 data_tmp = ishft(data_tmp, 39)
17670 pack_tmp = ior(pack_tmp, data_tmp)
17671 pack_tmp = ishft(pack_tmp, -25)
17672 idata = idata + 1
17673 data_tmp = full_data(idata)
17674 data_tmp = ishft(data_tmp, 39)
17675 pack_tmp = ior(pack_tmp, data_tmp)
17676 pack_tmp = ishft(pack_tmp, -13)
17677 idata = idata + 1
17678 data_tmp = full_data(idata)
17679 data_tmp = ishft(data_tmp, 39)
17680 data_tmp = iand(data_tmp, mask_left(13))
17681 pack_tmp = ior(pack_tmp, data_tmp)
17682 ipack = ipack + 1
17683 packed_data(ipack) = pack_tmp
17684 data_tmp = full_data(idata)
17685 pack_tmp = ishft(data_tmp, 52)
17686 pack_tmp = ishft(pack_tmp, -25)
17687 idata = idata + 1
17688 data_tmp = full_data(idata)
17689 data_tmp = ishft(data_tmp, 39)
17690 pack_tmp = ior(pack_tmp, data_tmp)
17691 pack_tmp = ishft(pack_tmp, -25)
17692 idata = idata + 1
17693 data_tmp = full_data(idata)
17694 data_tmp = ishft(data_tmp, 39)
17695 pack_tmp = ior(pack_tmp, data_tmp)
17696 pack_tmp = ishft(pack_tmp, -2)
17697 idata = idata + 1
17698 data_tmp = full_data(idata)
17699 data_tmp = ishft(data_tmp, 39)
17700 data_tmp = iand(data_tmp, mask_left(2))
17701 pack_tmp = ior(pack_tmp, data_tmp)
17702 ipack = ipack + 1
17703 packed_data(ipack) = pack_tmp
17704 data_tmp = full_data(idata)
17705 pack_tmp = ishft(data_tmp, 41)
17706 pack_tmp = ishft(pack_tmp, -25)
17707 idata = idata + 1
17708 data_tmp = full_data(idata)
17709 data_tmp = ishft(data_tmp, 39)
17710 pack_tmp = ior(pack_tmp, data_tmp)
17711 pack_tmp = ishft(pack_tmp, -16)
17712 idata = idata + 1
17713 data_tmp = full_data(idata)
17714 data_tmp = ishft(data_tmp, 39)
17715 data_tmp = iand(data_tmp, mask_left(16))
17716 pack_tmp = ior(pack_tmp, data_tmp)
17717 ipack = ipack + 1
17718 packed_data(ipack) = pack_tmp
17719 data_tmp = full_data(idata)
17720 pack_tmp = ishft(data_tmp, 55)
17721 pack_tmp = ishft(pack_tmp, -25)
17722 idata = idata + 1
17723 data_tmp = full_data(idata)
17724 data_tmp = ishft(data_tmp, 39)
17725 pack_tmp = ior(pack_tmp, data_tmp)
17726 pack_tmp = ishft(pack_tmp, -25)
17727 idata = idata + 1
17728 data_tmp = full_data(idata)
17729 data_tmp = ishft(data_tmp, 39)
17730 pack_tmp = ior(pack_tmp, data_tmp)
17731 pack_tmp = ishft(pack_tmp, -5)
17732 idata = idata + 1
17733 data_tmp = full_data(idata)
17734 data_tmp = ishft(data_tmp, 39)
17735 data_tmp = iand(data_tmp, mask_left(5))
17736 pack_tmp = ior(pack_tmp, data_tmp)
17737 ipack = ipack + 1
17738 packed_data(ipack) = pack_tmp
17739 data_tmp = full_data(idata)
17740 pack_tmp = ishft(data_tmp, 44)
17741 pack_tmp = ishft(pack_tmp, -25)
17742 idata = idata + 1
17743 data_tmp = full_data(idata)
17744 data_tmp = ishft(data_tmp, 39)
17745 pack_tmp = ior(pack_tmp, data_tmp)
17746 pack_tmp = ishft(pack_tmp, -19)
17747 idata = idata + 1
17748 data_tmp = full_data(idata)
17749 data_tmp = ishft(data_tmp, 39)
17750 data_tmp = iand(data_tmp, mask_left(19))
17751 pack_tmp = ior(pack_tmp, data_tmp)
17752 ipack = ipack + 1
17753 packed_data(ipack) = pack_tmp
17754 data_tmp = full_data(idata)
17755 pack_tmp = ishft(data_tmp, 58)
17756 pack_tmp = ishft(pack_tmp, -25)
17757 idata = idata + 1
17758 data_tmp = full_data(idata)
17759 data_tmp = ishft(data_tmp, 39)
17760 pack_tmp = ior(pack_tmp, data_tmp)
17761 pack_tmp = ishft(pack_tmp, -25)
17762 idata = idata + 1
17763 data_tmp = full_data(idata)
17764 data_tmp = ishft(data_tmp, 39)
17765 pack_tmp = ior(pack_tmp, data_tmp)
17766 pack_tmp = ishft(pack_tmp, -8)
17767 idata = idata + 1
17768 data_tmp = full_data(idata)
17769 data_tmp = ishft(data_tmp, 39)
17770 data_tmp = iand(data_tmp, mask_left(8))
17771 pack_tmp = ior(pack_tmp, data_tmp)
17772 ipack = ipack + 1
17773 packed_data(ipack) = pack_tmp
17774 data_tmp = full_data(idata)
17775 pack_tmp = ishft(data_tmp, 47)
17776 pack_tmp = ishft(pack_tmp, -25)
17777 idata = idata + 1
17778 data_tmp = full_data(idata)
17779 data_tmp = ishft(data_tmp, 39)
17780 pack_tmp = ior(pack_tmp, data_tmp)
17781 pack_tmp = ishft(pack_tmp, -22)
17782 idata = idata + 1
17783 data_tmp = full_data(idata)
17784 data_tmp = ishft(data_tmp, 39)
17785 data_tmp = iand(data_tmp, mask_left(22))
17786 pack_tmp = ior(pack_tmp, data_tmp)
17787 ipack = ipack + 1
17788 packed_data(ipack) = pack_tmp
17789 data_tmp = full_data(idata)
17790 pack_tmp = ishft(data_tmp, 61)
17791 pack_tmp = ishft(pack_tmp, -25)
17792 idata = idata + 1
17793 data_tmp = full_data(idata)
17794 data_tmp = ishft(data_tmp, 39)
17795 pack_tmp = ior(pack_tmp, data_tmp)
17796 pack_tmp = ishft(pack_tmp, -25)
17797 idata = idata + 1
17798 data_tmp = full_data(idata)
17799 data_tmp = ishft(data_tmp, 39)
17800 pack_tmp = ior(pack_tmp, data_tmp)
17801 pack_tmp = ishft(pack_tmp, -11)
17802 idata = idata + 1
17803 data_tmp = full_data(idata)
17804 data_tmp = ishft(data_tmp, 39)
17805 data_tmp = iand(data_tmp, mask_left(11))
17806 pack_tmp = ior(pack_tmp, data_tmp)
17807 ipack = ipack + 1
17808 packed_data(ipack) = pack_tmp
17809 data_tmp = full_data(idata)
17810 pack_tmp = ishft(data_tmp, 50)
17811 pack_tmp = ishft(pack_tmp, -25)
17812 idata = idata + 1
17813 data_tmp = full_data(idata)
17814 data_tmp = ishft(data_tmp, 39)
17815 pack_tmp = ior(pack_tmp, data_tmp)
17816 pack_tmp = ishft(pack_tmp, -25)
17817 idata = idata + 1
17818 data_tmp = full_data(idata)
17819 data_tmp = ishft(data_tmp, 39)
17820 pack_tmp = ior(pack_tmp, data_tmp)
17821 pack_tmp = ishft(pack_tmp, 0)
17822 pack_tmp = ishft(pack_tmp, 0)
17823 ipack = ipack + 1
17824 packed_data(ipack) = pack_tmp
17825 END DO
17826 IF (ndata_rep < ndata) THEN
17827 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
17828 END IF
17829 END SUBROUTINE ints2bits_25
17830
17831! **************************************************************************************************
17832!> \brief ...
17833!> \param Ndata ...
17834!> \param packed_data ...
17835!> \param full_data ...
17836! **************************************************************************************************
17837 SUBROUTINE bits2ints_25(Ndata, packed_data, full_data)
17838 INTEGER, INTENT(IN) :: Ndata
17839 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
17840 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
17841
17842 INTEGER, PARAMETER :: Nbits = 25
17843
17844 INTEGER :: idata, ipack, kdata, Ndata_rep
17845 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
17846
17847 ipack = 0
17848 idata = 0
17849 pack_tmp = 0
17850 ndata_rep = (ndata/64)*64
17851 DO kdata = 1, ndata_rep, 64
17852 idata = idata + 1
17853 data_tmp = ishft(pack_tmp, 25)
17854 ipack = ipack + 1
17855 pack_tmp = packed_data(ipack)
17856 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
17857 pack_tmp = ishft(pack_tmp, -25)
17858 idata = idata + 1
17859 data_tmp = iand(pack_tmp, mask_right(nbits))
17860 full_data(idata) = data_tmp
17861 pack_tmp = ishft(pack_tmp, -nbits)
17862 idata = idata + 1
17863 data_tmp = ishft(pack_tmp, 11)
17864 ipack = ipack + 1
17865 pack_tmp = packed_data(ipack)
17866 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
17867 pack_tmp = ishft(pack_tmp, -11)
17868 idata = idata + 1
17869 data_tmp = iand(pack_tmp, mask_right(nbits))
17870 full_data(idata) = data_tmp
17871 pack_tmp = ishft(pack_tmp, -nbits)
17872 idata = idata + 1
17873 data_tmp = iand(pack_tmp, mask_right(nbits))
17874 full_data(idata) = data_tmp
17875 pack_tmp = ishft(pack_tmp, -nbits)
17876 idata = idata + 1
17877 data_tmp = ishft(pack_tmp, 22)
17878 ipack = ipack + 1
17879 pack_tmp = packed_data(ipack)
17880 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
17881 pack_tmp = ishft(pack_tmp, -22)
17882 idata = idata + 1
17883 data_tmp = iand(pack_tmp, mask_right(nbits))
17884 full_data(idata) = data_tmp
17885 pack_tmp = ishft(pack_tmp, -nbits)
17886 idata = idata + 1
17887 data_tmp = ishft(pack_tmp, 8)
17888 ipack = ipack + 1
17889 pack_tmp = packed_data(ipack)
17890 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
17891 pack_tmp = ishft(pack_tmp, -8)
17892 idata = idata + 1
17893 data_tmp = iand(pack_tmp, mask_right(nbits))
17894 full_data(idata) = data_tmp
17895 pack_tmp = ishft(pack_tmp, -nbits)
17896 idata = idata + 1
17897 data_tmp = iand(pack_tmp, mask_right(nbits))
17898 full_data(idata) = data_tmp
17899 pack_tmp = ishft(pack_tmp, -nbits)
17900 idata = idata + 1
17901 data_tmp = ishft(pack_tmp, 19)
17902 ipack = ipack + 1
17903 pack_tmp = packed_data(ipack)
17904 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
17905 pack_tmp = ishft(pack_tmp, -19)
17906 idata = idata + 1
17907 data_tmp = iand(pack_tmp, mask_right(nbits))
17908 full_data(idata) = data_tmp
17909 pack_tmp = ishft(pack_tmp, -nbits)
17910 idata = idata + 1
17911 data_tmp = ishft(pack_tmp, 5)
17912 ipack = ipack + 1
17913 pack_tmp = packed_data(ipack)
17914 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
17915 pack_tmp = ishft(pack_tmp, -5)
17916 idata = idata + 1
17917 data_tmp = iand(pack_tmp, mask_right(nbits))
17918 full_data(idata) = data_tmp
17919 pack_tmp = ishft(pack_tmp, -nbits)
17920 idata = idata + 1
17921 data_tmp = iand(pack_tmp, mask_right(nbits))
17922 full_data(idata) = data_tmp
17923 pack_tmp = ishft(pack_tmp, -nbits)
17924 idata = idata + 1
17925 data_tmp = ishft(pack_tmp, 16)
17926 ipack = ipack + 1
17927 pack_tmp = packed_data(ipack)
17928 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
17929 pack_tmp = ishft(pack_tmp, -16)
17930 idata = idata + 1
17931 data_tmp = iand(pack_tmp, mask_right(nbits))
17932 full_data(idata) = data_tmp
17933 pack_tmp = ishft(pack_tmp, -nbits)
17934 idata = idata + 1
17935 data_tmp = ishft(pack_tmp, 2)
17936 ipack = ipack + 1
17937 pack_tmp = packed_data(ipack)
17938 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
17939 pack_tmp = ishft(pack_tmp, -2)
17940 idata = idata + 1
17941 data_tmp = iand(pack_tmp, mask_right(nbits))
17942 full_data(idata) = data_tmp
17943 pack_tmp = ishft(pack_tmp, -nbits)
17944 idata = idata + 1
17945 data_tmp = iand(pack_tmp, mask_right(nbits))
17946 full_data(idata) = data_tmp
17947 pack_tmp = ishft(pack_tmp, -nbits)
17948 idata = idata + 1
17949 data_tmp = ishft(pack_tmp, 13)
17950 ipack = ipack + 1
17951 pack_tmp = packed_data(ipack)
17952 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
17953 pack_tmp = ishft(pack_tmp, -13)
17954 idata = idata + 1
17955 data_tmp = iand(pack_tmp, mask_right(nbits))
17956 full_data(idata) = data_tmp
17957 pack_tmp = ishft(pack_tmp, -nbits)
17958 idata = idata + 1
17959 data_tmp = iand(pack_tmp, mask_right(nbits))
17960 full_data(idata) = data_tmp
17961 pack_tmp = ishft(pack_tmp, -nbits)
17962 idata = idata + 1
17963 data_tmp = ishft(pack_tmp, 24)
17964 ipack = ipack + 1
17965 pack_tmp = packed_data(ipack)
17966 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
17967 pack_tmp = ishft(pack_tmp, -24)
17968 idata = idata + 1
17969 data_tmp = iand(pack_tmp, mask_right(nbits))
17970 full_data(idata) = data_tmp
17971 pack_tmp = ishft(pack_tmp, -nbits)
17972 idata = idata + 1
17973 data_tmp = ishft(pack_tmp, 10)
17974 ipack = ipack + 1
17975 pack_tmp = packed_data(ipack)
17976 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
17977 pack_tmp = ishft(pack_tmp, -10)
17978 idata = idata + 1
17979 data_tmp = iand(pack_tmp, mask_right(nbits))
17980 full_data(idata) = data_tmp
17981 pack_tmp = ishft(pack_tmp, -nbits)
17982 idata = idata + 1
17983 data_tmp = iand(pack_tmp, mask_right(nbits))
17984 full_data(idata) = data_tmp
17985 pack_tmp = ishft(pack_tmp, -nbits)
17986 idata = idata + 1
17987 data_tmp = ishft(pack_tmp, 21)
17988 ipack = ipack + 1
17989 pack_tmp = packed_data(ipack)
17990 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
17991 pack_tmp = ishft(pack_tmp, -21)
17992 idata = idata + 1
17993 data_tmp = iand(pack_tmp, mask_right(nbits))
17994 full_data(idata) = data_tmp
17995 pack_tmp = ishft(pack_tmp, -nbits)
17996 idata = idata + 1
17997 data_tmp = ishft(pack_tmp, 7)
17998 ipack = ipack + 1
17999 pack_tmp = packed_data(ipack)
18000 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
18001 pack_tmp = ishft(pack_tmp, -7)
18002 idata = idata + 1
18003 data_tmp = iand(pack_tmp, mask_right(nbits))
18004 full_data(idata) = data_tmp
18005 pack_tmp = ishft(pack_tmp, -nbits)
18006 idata = idata + 1
18007 data_tmp = iand(pack_tmp, mask_right(nbits))
18008 full_data(idata) = data_tmp
18009 pack_tmp = ishft(pack_tmp, -nbits)
18010 idata = idata + 1
18011 data_tmp = ishft(pack_tmp, 18)
18012 ipack = ipack + 1
18013 pack_tmp = packed_data(ipack)
18014 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
18015 pack_tmp = ishft(pack_tmp, -18)
18016 idata = idata + 1
18017 data_tmp = iand(pack_tmp, mask_right(nbits))
18018 full_data(idata) = data_tmp
18019 pack_tmp = ishft(pack_tmp, -nbits)
18020 idata = idata + 1
18021 data_tmp = ishft(pack_tmp, 4)
18022 ipack = ipack + 1
18023 pack_tmp = packed_data(ipack)
18024 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
18025 pack_tmp = ishft(pack_tmp, -4)
18026 idata = idata + 1
18027 data_tmp = iand(pack_tmp, mask_right(nbits))
18028 full_data(idata) = data_tmp
18029 pack_tmp = ishft(pack_tmp, -nbits)
18030 idata = idata + 1
18031 data_tmp = iand(pack_tmp, mask_right(nbits))
18032 full_data(idata) = data_tmp
18033 pack_tmp = ishft(pack_tmp, -nbits)
18034 idata = idata + 1
18035 data_tmp = ishft(pack_tmp, 15)
18036 ipack = ipack + 1
18037 pack_tmp = packed_data(ipack)
18038 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
18039 pack_tmp = ishft(pack_tmp, -15)
18040 idata = idata + 1
18041 data_tmp = iand(pack_tmp, mask_right(nbits))
18042 full_data(idata) = data_tmp
18043 pack_tmp = ishft(pack_tmp, -nbits)
18044 idata = idata + 1
18045 data_tmp = ishft(pack_tmp, 1)
18046 ipack = ipack + 1
18047 pack_tmp = packed_data(ipack)
18048 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
18049 pack_tmp = ishft(pack_tmp, -1)
18050 idata = idata + 1
18051 data_tmp = iand(pack_tmp, mask_right(nbits))
18052 full_data(idata) = data_tmp
18053 pack_tmp = ishft(pack_tmp, -nbits)
18054 idata = idata + 1
18055 data_tmp = iand(pack_tmp, mask_right(nbits))
18056 full_data(idata) = data_tmp
18057 pack_tmp = ishft(pack_tmp, -nbits)
18058 idata = idata + 1
18059 data_tmp = ishft(pack_tmp, 12)
18060 ipack = ipack + 1
18061 pack_tmp = packed_data(ipack)
18062 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
18063 pack_tmp = ishft(pack_tmp, -12)
18064 idata = idata + 1
18065 data_tmp = iand(pack_tmp, mask_right(nbits))
18066 full_data(idata) = data_tmp
18067 pack_tmp = ishft(pack_tmp, -nbits)
18068 idata = idata + 1
18069 data_tmp = iand(pack_tmp, mask_right(nbits))
18070 full_data(idata) = data_tmp
18071 pack_tmp = ishft(pack_tmp, -nbits)
18072 idata = idata + 1
18073 data_tmp = ishft(pack_tmp, 23)
18074 ipack = ipack + 1
18075 pack_tmp = packed_data(ipack)
18076 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
18077 pack_tmp = ishft(pack_tmp, -23)
18078 idata = idata + 1
18079 data_tmp = iand(pack_tmp, mask_right(nbits))
18080 full_data(idata) = data_tmp
18081 pack_tmp = ishft(pack_tmp, -nbits)
18082 idata = idata + 1
18083 data_tmp = ishft(pack_tmp, 9)
18084 ipack = ipack + 1
18085 pack_tmp = packed_data(ipack)
18086 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
18087 pack_tmp = ishft(pack_tmp, -9)
18088 idata = idata + 1
18089 data_tmp = iand(pack_tmp, mask_right(nbits))
18090 full_data(idata) = data_tmp
18091 pack_tmp = ishft(pack_tmp, -nbits)
18092 idata = idata + 1
18093 data_tmp = iand(pack_tmp, mask_right(nbits))
18094 full_data(idata) = data_tmp
18095 pack_tmp = ishft(pack_tmp, -nbits)
18096 idata = idata + 1
18097 data_tmp = ishft(pack_tmp, 20)
18098 ipack = ipack + 1
18099 pack_tmp = packed_data(ipack)
18100 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
18101 pack_tmp = ishft(pack_tmp, -20)
18102 idata = idata + 1
18103 data_tmp = iand(pack_tmp, mask_right(nbits))
18104 full_data(idata) = data_tmp
18105 pack_tmp = ishft(pack_tmp, -nbits)
18106 idata = idata + 1
18107 data_tmp = ishft(pack_tmp, 6)
18108 ipack = ipack + 1
18109 pack_tmp = packed_data(ipack)
18110 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
18111 pack_tmp = ishft(pack_tmp, -6)
18112 idata = idata + 1
18113 data_tmp = iand(pack_tmp, mask_right(nbits))
18114 full_data(idata) = data_tmp
18115 pack_tmp = ishft(pack_tmp, -nbits)
18116 idata = idata + 1
18117 data_tmp = iand(pack_tmp, mask_right(nbits))
18118 full_data(idata) = data_tmp
18119 pack_tmp = ishft(pack_tmp, -nbits)
18120 idata = idata + 1
18121 data_tmp = ishft(pack_tmp, 17)
18122 ipack = ipack + 1
18123 pack_tmp = packed_data(ipack)
18124 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
18125 pack_tmp = ishft(pack_tmp, -17)
18126 idata = idata + 1
18127 data_tmp = iand(pack_tmp, mask_right(nbits))
18128 full_data(idata) = data_tmp
18129 pack_tmp = ishft(pack_tmp, -nbits)
18130 idata = idata + 1
18131 data_tmp = ishft(pack_tmp, 3)
18132 ipack = ipack + 1
18133 pack_tmp = packed_data(ipack)
18134 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
18135 pack_tmp = ishft(pack_tmp, -3)
18136 idata = idata + 1
18137 data_tmp = iand(pack_tmp, mask_right(nbits))
18138 full_data(idata) = data_tmp
18139 pack_tmp = ishft(pack_tmp, -nbits)
18140 idata = idata + 1
18141 data_tmp = iand(pack_tmp, mask_right(nbits))
18142 full_data(idata) = data_tmp
18143 pack_tmp = ishft(pack_tmp, -nbits)
18144 idata = idata + 1
18145 data_tmp = ishft(pack_tmp, 14)
18146 ipack = ipack + 1
18147 pack_tmp = packed_data(ipack)
18148 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
18149 pack_tmp = ishft(pack_tmp, -14)
18150 idata = idata + 1
18151 data_tmp = iand(pack_tmp, mask_right(nbits))
18152 full_data(idata) = data_tmp
18153 pack_tmp = ishft(pack_tmp, -nbits)
18154 idata = idata + 1
18155 data_tmp = iand(pack_tmp, mask_right(nbits))
18156 full_data(idata) = data_tmp
18157 pack_tmp = ishft(pack_tmp, -nbits)
18158 END DO
18159 IF (ndata_rep < ndata) THEN
18160 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
18161 END IF
18162 END SUBROUTINE bits2ints_25
18163
18164! **************************************************************************************************
18165!> \brief ...
18166!> \param Ndata ...
18167!> \param packed_data ...
18168!> \param full_data ...
18169! **************************************************************************************************
18170 SUBROUTINE ints2bits_26(Ndata, packed_data, full_data)
18171 INTEGER, INTENT(IN) :: Ndata
18172 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
18173 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
18174
18175 INTEGER, PARAMETER :: Nbits = 26
18176
18177 INTEGER :: idata, ipack, kdata, Ndata_rep
18178 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
18179
18180 idata = 0
18181 ipack = 0
18182 ndata_rep = (ndata/64)*64
18183 DO kdata = 1, ndata_rep, 64
18184 pack_tmp = 0
18185 idata = idata + 1
18186 data_tmp = full_data(idata)
18187 data_tmp = ishft(data_tmp, 38)
18188 pack_tmp = ior(pack_tmp, data_tmp)
18189 pack_tmp = ishft(pack_tmp, -26)
18190 idata = idata + 1
18191 data_tmp = full_data(idata)
18192 data_tmp = ishft(data_tmp, 38)
18193 pack_tmp = ior(pack_tmp, data_tmp)
18194 pack_tmp = ishft(pack_tmp, -12)
18195 idata = idata + 1
18196 data_tmp = full_data(idata)
18197 data_tmp = ishft(data_tmp, 38)
18198 data_tmp = iand(data_tmp, mask_left(12))
18199 pack_tmp = ior(pack_tmp, data_tmp)
18200 ipack = ipack + 1
18201 packed_data(ipack) = pack_tmp
18202 data_tmp = full_data(idata)
18203 pack_tmp = ishft(data_tmp, 50)
18204 pack_tmp = ishft(pack_tmp, -26)
18205 idata = idata + 1
18206 data_tmp = full_data(idata)
18207 data_tmp = ishft(data_tmp, 38)
18208 pack_tmp = ior(pack_tmp, data_tmp)
18209 pack_tmp = ishft(pack_tmp, -24)
18210 idata = idata + 1
18211 data_tmp = full_data(idata)
18212 data_tmp = ishft(data_tmp, 38)
18213 data_tmp = iand(data_tmp, mask_left(24))
18214 pack_tmp = ior(pack_tmp, data_tmp)
18215 ipack = ipack + 1
18216 packed_data(ipack) = pack_tmp
18217 data_tmp = full_data(idata)
18218 pack_tmp = ishft(data_tmp, 62)
18219 pack_tmp = ishft(pack_tmp, -26)
18220 idata = idata + 1
18221 data_tmp = full_data(idata)
18222 data_tmp = ishft(data_tmp, 38)
18223 pack_tmp = ior(pack_tmp, data_tmp)
18224 pack_tmp = ishft(pack_tmp, -26)
18225 idata = idata + 1
18226 data_tmp = full_data(idata)
18227 data_tmp = ishft(data_tmp, 38)
18228 pack_tmp = ior(pack_tmp, data_tmp)
18229 pack_tmp = ishft(pack_tmp, -10)
18230 idata = idata + 1
18231 data_tmp = full_data(idata)
18232 data_tmp = ishft(data_tmp, 38)
18233 data_tmp = iand(data_tmp, mask_left(10))
18234 pack_tmp = ior(pack_tmp, data_tmp)
18235 ipack = ipack + 1
18236 packed_data(ipack) = pack_tmp
18237 data_tmp = full_data(idata)
18238 pack_tmp = ishft(data_tmp, 48)
18239 pack_tmp = ishft(pack_tmp, -26)
18240 idata = idata + 1
18241 data_tmp = full_data(idata)
18242 data_tmp = ishft(data_tmp, 38)
18243 pack_tmp = ior(pack_tmp, data_tmp)
18244 pack_tmp = ishft(pack_tmp, -22)
18245 idata = idata + 1
18246 data_tmp = full_data(idata)
18247 data_tmp = ishft(data_tmp, 38)
18248 data_tmp = iand(data_tmp, mask_left(22))
18249 pack_tmp = ior(pack_tmp, data_tmp)
18250 ipack = ipack + 1
18251 packed_data(ipack) = pack_tmp
18252 data_tmp = full_data(idata)
18253 pack_tmp = ishft(data_tmp, 60)
18254 pack_tmp = ishft(pack_tmp, -26)
18255 idata = idata + 1
18256 data_tmp = full_data(idata)
18257 data_tmp = ishft(data_tmp, 38)
18258 pack_tmp = ior(pack_tmp, data_tmp)
18259 pack_tmp = ishft(pack_tmp, -26)
18260 idata = idata + 1
18261 data_tmp = full_data(idata)
18262 data_tmp = ishft(data_tmp, 38)
18263 pack_tmp = ior(pack_tmp, data_tmp)
18264 pack_tmp = ishft(pack_tmp, -8)
18265 idata = idata + 1
18266 data_tmp = full_data(idata)
18267 data_tmp = ishft(data_tmp, 38)
18268 data_tmp = iand(data_tmp, mask_left(8))
18269 pack_tmp = ior(pack_tmp, data_tmp)
18270 ipack = ipack + 1
18271 packed_data(ipack) = pack_tmp
18272 data_tmp = full_data(idata)
18273 pack_tmp = ishft(data_tmp, 46)
18274 pack_tmp = ishft(pack_tmp, -26)
18275 idata = idata + 1
18276 data_tmp = full_data(idata)
18277 data_tmp = ishft(data_tmp, 38)
18278 pack_tmp = ior(pack_tmp, data_tmp)
18279 pack_tmp = ishft(pack_tmp, -20)
18280 idata = idata + 1
18281 data_tmp = full_data(idata)
18282 data_tmp = ishft(data_tmp, 38)
18283 data_tmp = iand(data_tmp, mask_left(20))
18284 pack_tmp = ior(pack_tmp, data_tmp)
18285 ipack = ipack + 1
18286 packed_data(ipack) = pack_tmp
18287 data_tmp = full_data(idata)
18288 pack_tmp = ishft(data_tmp, 58)
18289 pack_tmp = ishft(pack_tmp, -26)
18290 idata = idata + 1
18291 data_tmp = full_data(idata)
18292 data_tmp = ishft(data_tmp, 38)
18293 pack_tmp = ior(pack_tmp, data_tmp)
18294 pack_tmp = ishft(pack_tmp, -26)
18295 idata = idata + 1
18296 data_tmp = full_data(idata)
18297 data_tmp = ishft(data_tmp, 38)
18298 pack_tmp = ior(pack_tmp, data_tmp)
18299 pack_tmp = ishft(pack_tmp, -6)
18300 idata = idata + 1
18301 data_tmp = full_data(idata)
18302 data_tmp = ishft(data_tmp, 38)
18303 data_tmp = iand(data_tmp, mask_left(6))
18304 pack_tmp = ior(pack_tmp, data_tmp)
18305 ipack = ipack + 1
18306 packed_data(ipack) = pack_tmp
18307 data_tmp = full_data(idata)
18308 pack_tmp = ishft(data_tmp, 44)
18309 pack_tmp = ishft(pack_tmp, -26)
18310 idata = idata + 1
18311 data_tmp = full_data(idata)
18312 data_tmp = ishft(data_tmp, 38)
18313 pack_tmp = ior(pack_tmp, data_tmp)
18314 pack_tmp = ishft(pack_tmp, -18)
18315 idata = idata + 1
18316 data_tmp = full_data(idata)
18317 data_tmp = ishft(data_tmp, 38)
18318 data_tmp = iand(data_tmp, mask_left(18))
18319 pack_tmp = ior(pack_tmp, data_tmp)
18320 ipack = ipack + 1
18321 packed_data(ipack) = pack_tmp
18322 data_tmp = full_data(idata)
18323 pack_tmp = ishft(data_tmp, 56)
18324 pack_tmp = ishft(pack_tmp, -26)
18325 idata = idata + 1
18326 data_tmp = full_data(idata)
18327 data_tmp = ishft(data_tmp, 38)
18328 pack_tmp = ior(pack_tmp, data_tmp)
18329 pack_tmp = ishft(pack_tmp, -26)
18330 idata = idata + 1
18331 data_tmp = full_data(idata)
18332 data_tmp = ishft(data_tmp, 38)
18333 pack_tmp = ior(pack_tmp, data_tmp)
18334 pack_tmp = ishft(pack_tmp, -4)
18335 idata = idata + 1
18336 data_tmp = full_data(idata)
18337 data_tmp = ishft(data_tmp, 38)
18338 data_tmp = iand(data_tmp, mask_left(4))
18339 pack_tmp = ior(pack_tmp, data_tmp)
18340 ipack = ipack + 1
18341 packed_data(ipack) = pack_tmp
18342 data_tmp = full_data(idata)
18343 pack_tmp = ishft(data_tmp, 42)
18344 pack_tmp = ishft(pack_tmp, -26)
18345 idata = idata + 1
18346 data_tmp = full_data(idata)
18347 data_tmp = ishft(data_tmp, 38)
18348 pack_tmp = ior(pack_tmp, data_tmp)
18349 pack_tmp = ishft(pack_tmp, -16)
18350 idata = idata + 1
18351 data_tmp = full_data(idata)
18352 data_tmp = ishft(data_tmp, 38)
18353 data_tmp = iand(data_tmp, mask_left(16))
18354 pack_tmp = ior(pack_tmp, data_tmp)
18355 ipack = ipack + 1
18356 packed_data(ipack) = pack_tmp
18357 data_tmp = full_data(idata)
18358 pack_tmp = ishft(data_tmp, 54)
18359 pack_tmp = ishft(pack_tmp, -26)
18360 idata = idata + 1
18361 data_tmp = full_data(idata)
18362 data_tmp = ishft(data_tmp, 38)
18363 pack_tmp = ior(pack_tmp, data_tmp)
18364 pack_tmp = ishft(pack_tmp, -26)
18365 idata = idata + 1
18366 data_tmp = full_data(idata)
18367 data_tmp = ishft(data_tmp, 38)
18368 pack_tmp = ior(pack_tmp, data_tmp)
18369 pack_tmp = ishft(pack_tmp, -2)
18370 idata = idata + 1
18371 data_tmp = full_data(idata)
18372 data_tmp = ishft(data_tmp, 38)
18373 data_tmp = iand(data_tmp, mask_left(2))
18374 pack_tmp = ior(pack_tmp, data_tmp)
18375 ipack = ipack + 1
18376 packed_data(ipack) = pack_tmp
18377 data_tmp = full_data(idata)
18378 pack_tmp = ishft(data_tmp, 40)
18379 pack_tmp = ishft(pack_tmp, -26)
18380 idata = idata + 1
18381 data_tmp = full_data(idata)
18382 data_tmp = ishft(data_tmp, 38)
18383 pack_tmp = ior(pack_tmp, data_tmp)
18384 pack_tmp = ishft(pack_tmp, -14)
18385 idata = idata + 1
18386 data_tmp = full_data(idata)
18387 data_tmp = ishft(data_tmp, 38)
18388 data_tmp = iand(data_tmp, mask_left(14))
18389 pack_tmp = ior(pack_tmp, data_tmp)
18390 ipack = ipack + 1
18391 packed_data(ipack) = pack_tmp
18392 data_tmp = full_data(idata)
18393 pack_tmp = ishft(data_tmp, 52)
18394 pack_tmp = ishft(pack_tmp, -26)
18395 idata = idata + 1
18396 data_tmp = full_data(idata)
18397 data_tmp = ishft(data_tmp, 38)
18398 pack_tmp = ior(pack_tmp, data_tmp)
18399 pack_tmp = ishft(pack_tmp, -26)
18400 idata = idata + 1
18401 data_tmp = full_data(idata)
18402 data_tmp = ishft(data_tmp, 38)
18403 pack_tmp = ior(pack_tmp, data_tmp)
18404 pack_tmp = ishft(pack_tmp, 0)
18405 idata = idata + 1
18406 data_tmp = full_data(idata)
18407 data_tmp = ishft(data_tmp, 38)
18408 data_tmp = iand(data_tmp, mask_left(0))
18409 pack_tmp = ior(pack_tmp, data_tmp)
18410 ipack = ipack + 1
18411 packed_data(ipack) = pack_tmp
18412 data_tmp = full_data(idata)
18413 pack_tmp = ishft(data_tmp, 38)
18414 pack_tmp = ishft(pack_tmp, -26)
18415 idata = idata + 1
18416 data_tmp = full_data(idata)
18417 data_tmp = ishft(data_tmp, 38)
18418 pack_tmp = ior(pack_tmp, data_tmp)
18419 pack_tmp = ishft(pack_tmp, -12)
18420 idata = idata + 1
18421 data_tmp = full_data(idata)
18422 data_tmp = ishft(data_tmp, 38)
18423 data_tmp = iand(data_tmp, mask_left(12))
18424 pack_tmp = ior(pack_tmp, data_tmp)
18425 ipack = ipack + 1
18426 packed_data(ipack) = pack_tmp
18427 data_tmp = full_data(idata)
18428 pack_tmp = ishft(data_tmp, 50)
18429 pack_tmp = ishft(pack_tmp, -26)
18430 idata = idata + 1
18431 data_tmp = full_data(idata)
18432 data_tmp = ishft(data_tmp, 38)
18433 pack_tmp = ior(pack_tmp, data_tmp)
18434 pack_tmp = ishft(pack_tmp, -24)
18435 idata = idata + 1
18436 data_tmp = full_data(idata)
18437 data_tmp = ishft(data_tmp, 38)
18438 data_tmp = iand(data_tmp, mask_left(24))
18439 pack_tmp = ior(pack_tmp, data_tmp)
18440 ipack = ipack + 1
18441 packed_data(ipack) = pack_tmp
18442 data_tmp = full_data(idata)
18443 pack_tmp = ishft(data_tmp, 62)
18444 pack_tmp = ishft(pack_tmp, -26)
18445 idata = idata + 1
18446 data_tmp = full_data(idata)
18447 data_tmp = ishft(data_tmp, 38)
18448 pack_tmp = ior(pack_tmp, data_tmp)
18449 pack_tmp = ishft(pack_tmp, -26)
18450 idata = idata + 1
18451 data_tmp = full_data(idata)
18452 data_tmp = ishft(data_tmp, 38)
18453 pack_tmp = ior(pack_tmp, data_tmp)
18454 pack_tmp = ishft(pack_tmp, -10)
18455 idata = idata + 1
18456 data_tmp = full_data(idata)
18457 data_tmp = ishft(data_tmp, 38)
18458 data_tmp = iand(data_tmp, mask_left(10))
18459 pack_tmp = ior(pack_tmp, data_tmp)
18460 ipack = ipack + 1
18461 packed_data(ipack) = pack_tmp
18462 data_tmp = full_data(idata)
18463 pack_tmp = ishft(data_tmp, 48)
18464 pack_tmp = ishft(pack_tmp, -26)
18465 idata = idata + 1
18466 data_tmp = full_data(idata)
18467 data_tmp = ishft(data_tmp, 38)
18468 pack_tmp = ior(pack_tmp, data_tmp)
18469 pack_tmp = ishft(pack_tmp, -22)
18470 idata = idata + 1
18471 data_tmp = full_data(idata)
18472 data_tmp = ishft(data_tmp, 38)
18473 data_tmp = iand(data_tmp, mask_left(22))
18474 pack_tmp = ior(pack_tmp, data_tmp)
18475 ipack = ipack + 1
18476 packed_data(ipack) = pack_tmp
18477 data_tmp = full_data(idata)
18478 pack_tmp = ishft(data_tmp, 60)
18479 pack_tmp = ishft(pack_tmp, -26)
18480 idata = idata + 1
18481 data_tmp = full_data(idata)
18482 data_tmp = ishft(data_tmp, 38)
18483 pack_tmp = ior(pack_tmp, data_tmp)
18484 pack_tmp = ishft(pack_tmp, -26)
18485 idata = idata + 1
18486 data_tmp = full_data(idata)
18487 data_tmp = ishft(data_tmp, 38)
18488 pack_tmp = ior(pack_tmp, data_tmp)
18489 pack_tmp = ishft(pack_tmp, -8)
18490 idata = idata + 1
18491 data_tmp = full_data(idata)
18492 data_tmp = ishft(data_tmp, 38)
18493 data_tmp = iand(data_tmp, mask_left(8))
18494 pack_tmp = ior(pack_tmp, data_tmp)
18495 ipack = ipack + 1
18496 packed_data(ipack) = pack_tmp
18497 data_tmp = full_data(idata)
18498 pack_tmp = ishft(data_tmp, 46)
18499 pack_tmp = ishft(pack_tmp, -26)
18500 idata = idata + 1
18501 data_tmp = full_data(idata)
18502 data_tmp = ishft(data_tmp, 38)
18503 pack_tmp = ior(pack_tmp, data_tmp)
18504 pack_tmp = ishft(pack_tmp, -20)
18505 idata = idata + 1
18506 data_tmp = full_data(idata)
18507 data_tmp = ishft(data_tmp, 38)
18508 data_tmp = iand(data_tmp, mask_left(20))
18509 pack_tmp = ior(pack_tmp, data_tmp)
18510 ipack = ipack + 1
18511 packed_data(ipack) = pack_tmp
18512 data_tmp = full_data(idata)
18513 pack_tmp = ishft(data_tmp, 58)
18514 pack_tmp = ishft(pack_tmp, -26)
18515 idata = idata + 1
18516 data_tmp = full_data(idata)
18517 data_tmp = ishft(data_tmp, 38)
18518 pack_tmp = ior(pack_tmp, data_tmp)
18519 pack_tmp = ishft(pack_tmp, -26)
18520 idata = idata + 1
18521 data_tmp = full_data(idata)
18522 data_tmp = ishft(data_tmp, 38)
18523 pack_tmp = ior(pack_tmp, data_tmp)
18524 pack_tmp = ishft(pack_tmp, -6)
18525 idata = idata + 1
18526 data_tmp = full_data(idata)
18527 data_tmp = ishft(data_tmp, 38)
18528 data_tmp = iand(data_tmp, mask_left(6))
18529 pack_tmp = ior(pack_tmp, data_tmp)
18530 ipack = ipack + 1
18531 packed_data(ipack) = pack_tmp
18532 data_tmp = full_data(idata)
18533 pack_tmp = ishft(data_tmp, 44)
18534 pack_tmp = ishft(pack_tmp, -26)
18535 idata = idata + 1
18536 data_tmp = full_data(idata)
18537 data_tmp = ishft(data_tmp, 38)
18538 pack_tmp = ior(pack_tmp, data_tmp)
18539 pack_tmp = ishft(pack_tmp, -18)
18540 idata = idata + 1
18541 data_tmp = full_data(idata)
18542 data_tmp = ishft(data_tmp, 38)
18543 data_tmp = iand(data_tmp, mask_left(18))
18544 pack_tmp = ior(pack_tmp, data_tmp)
18545 ipack = ipack + 1
18546 packed_data(ipack) = pack_tmp
18547 data_tmp = full_data(idata)
18548 pack_tmp = ishft(data_tmp, 56)
18549 pack_tmp = ishft(pack_tmp, -26)
18550 idata = idata + 1
18551 data_tmp = full_data(idata)
18552 data_tmp = ishft(data_tmp, 38)
18553 pack_tmp = ior(pack_tmp, data_tmp)
18554 pack_tmp = ishft(pack_tmp, -26)
18555 idata = idata + 1
18556 data_tmp = full_data(idata)
18557 data_tmp = ishft(data_tmp, 38)
18558 pack_tmp = ior(pack_tmp, data_tmp)
18559 pack_tmp = ishft(pack_tmp, -4)
18560 idata = idata + 1
18561 data_tmp = full_data(idata)
18562 data_tmp = ishft(data_tmp, 38)
18563 data_tmp = iand(data_tmp, mask_left(4))
18564 pack_tmp = ior(pack_tmp, data_tmp)
18565 ipack = ipack + 1
18566 packed_data(ipack) = pack_tmp
18567 data_tmp = full_data(idata)
18568 pack_tmp = ishft(data_tmp, 42)
18569 pack_tmp = ishft(pack_tmp, -26)
18570 idata = idata + 1
18571 data_tmp = full_data(idata)
18572 data_tmp = ishft(data_tmp, 38)
18573 pack_tmp = ior(pack_tmp, data_tmp)
18574 pack_tmp = ishft(pack_tmp, -16)
18575 idata = idata + 1
18576 data_tmp = full_data(idata)
18577 data_tmp = ishft(data_tmp, 38)
18578 data_tmp = iand(data_tmp, mask_left(16))
18579 pack_tmp = ior(pack_tmp, data_tmp)
18580 ipack = ipack + 1
18581 packed_data(ipack) = pack_tmp
18582 data_tmp = full_data(idata)
18583 pack_tmp = ishft(data_tmp, 54)
18584 pack_tmp = ishft(pack_tmp, -26)
18585 idata = idata + 1
18586 data_tmp = full_data(idata)
18587 data_tmp = ishft(data_tmp, 38)
18588 pack_tmp = ior(pack_tmp, data_tmp)
18589 pack_tmp = ishft(pack_tmp, -26)
18590 idata = idata + 1
18591 data_tmp = full_data(idata)
18592 data_tmp = ishft(data_tmp, 38)
18593 pack_tmp = ior(pack_tmp, data_tmp)
18594 pack_tmp = ishft(pack_tmp, -2)
18595 idata = idata + 1
18596 data_tmp = full_data(idata)
18597 data_tmp = ishft(data_tmp, 38)
18598 data_tmp = iand(data_tmp, mask_left(2))
18599 pack_tmp = ior(pack_tmp, data_tmp)
18600 ipack = ipack + 1
18601 packed_data(ipack) = pack_tmp
18602 data_tmp = full_data(idata)
18603 pack_tmp = ishft(data_tmp, 40)
18604 pack_tmp = ishft(pack_tmp, -26)
18605 idata = idata + 1
18606 data_tmp = full_data(idata)
18607 data_tmp = ishft(data_tmp, 38)
18608 pack_tmp = ior(pack_tmp, data_tmp)
18609 pack_tmp = ishft(pack_tmp, -14)
18610 idata = idata + 1
18611 data_tmp = full_data(idata)
18612 data_tmp = ishft(data_tmp, 38)
18613 data_tmp = iand(data_tmp, mask_left(14))
18614 pack_tmp = ior(pack_tmp, data_tmp)
18615 ipack = ipack + 1
18616 packed_data(ipack) = pack_tmp
18617 data_tmp = full_data(idata)
18618 pack_tmp = ishft(data_tmp, 52)
18619 pack_tmp = ishft(pack_tmp, -26)
18620 idata = idata + 1
18621 data_tmp = full_data(idata)
18622 data_tmp = ishft(data_tmp, 38)
18623 pack_tmp = ior(pack_tmp, data_tmp)
18624 pack_tmp = ishft(pack_tmp, -26)
18625 idata = idata + 1
18626 data_tmp = full_data(idata)
18627 data_tmp = ishft(data_tmp, 38)
18628 pack_tmp = ior(pack_tmp, data_tmp)
18629 pack_tmp = ishft(pack_tmp, 0)
18630 pack_tmp = ishft(pack_tmp, 0)
18631 ipack = ipack + 1
18632 packed_data(ipack) = pack_tmp
18633 END DO
18634 IF (ndata_rep < ndata) THEN
18635 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
18636 END IF
18637 END SUBROUTINE ints2bits_26
18638
18639! **************************************************************************************************
18640!> \brief ...
18641!> \param Ndata ...
18642!> \param packed_data ...
18643!> \param full_data ...
18644! **************************************************************************************************
18645 SUBROUTINE bits2ints_26(Ndata, packed_data, full_data)
18646 INTEGER, INTENT(IN) :: Ndata
18647 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
18648 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
18649
18650 INTEGER, PARAMETER :: Nbits = 26
18651
18652 INTEGER :: idata, ipack, kdata, Ndata_rep
18653 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
18654
18655 ipack = 0
18656 idata = 0
18657 pack_tmp = 0
18658 ndata_rep = (ndata/64)*64
18659 DO kdata = 1, ndata_rep, 64
18660 idata = idata + 1
18661 data_tmp = ishft(pack_tmp, 26)
18662 ipack = ipack + 1
18663 pack_tmp = packed_data(ipack)
18664 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
18665 pack_tmp = ishft(pack_tmp, -26)
18666 idata = idata + 1
18667 data_tmp = iand(pack_tmp, mask_right(nbits))
18668 full_data(idata) = data_tmp
18669 pack_tmp = ishft(pack_tmp, -nbits)
18670 idata = idata + 1
18671 data_tmp = ishft(pack_tmp, 14)
18672 ipack = ipack + 1
18673 pack_tmp = packed_data(ipack)
18674 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
18675 pack_tmp = ishft(pack_tmp, -14)
18676 idata = idata + 1
18677 data_tmp = iand(pack_tmp, mask_right(nbits))
18678 full_data(idata) = data_tmp
18679 pack_tmp = ishft(pack_tmp, -nbits)
18680 idata = idata + 1
18681 data_tmp = ishft(pack_tmp, 2)
18682 ipack = ipack + 1
18683 pack_tmp = packed_data(ipack)
18684 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
18685 pack_tmp = ishft(pack_tmp, -2)
18686 idata = idata + 1
18687 data_tmp = iand(pack_tmp, mask_right(nbits))
18688 full_data(idata) = data_tmp
18689 pack_tmp = ishft(pack_tmp, -nbits)
18690 idata = idata + 1
18691 data_tmp = iand(pack_tmp, mask_right(nbits))
18692 full_data(idata) = data_tmp
18693 pack_tmp = ishft(pack_tmp, -nbits)
18694 idata = idata + 1
18695 data_tmp = ishft(pack_tmp, 16)
18696 ipack = ipack + 1
18697 pack_tmp = packed_data(ipack)
18698 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
18699 pack_tmp = ishft(pack_tmp, -16)
18700 idata = idata + 1
18701 data_tmp = iand(pack_tmp, mask_right(nbits))
18702 full_data(idata) = data_tmp
18703 pack_tmp = ishft(pack_tmp, -nbits)
18704 idata = idata + 1
18705 data_tmp = ishft(pack_tmp, 4)
18706 ipack = ipack + 1
18707 pack_tmp = packed_data(ipack)
18708 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
18709 pack_tmp = ishft(pack_tmp, -4)
18710 idata = idata + 1
18711 data_tmp = iand(pack_tmp, mask_right(nbits))
18712 full_data(idata) = data_tmp
18713 pack_tmp = ishft(pack_tmp, -nbits)
18714 idata = idata + 1
18715 data_tmp = iand(pack_tmp, mask_right(nbits))
18716 full_data(idata) = data_tmp
18717 pack_tmp = ishft(pack_tmp, -nbits)
18718 idata = idata + 1
18719 data_tmp = ishft(pack_tmp, 18)
18720 ipack = ipack + 1
18721 pack_tmp = packed_data(ipack)
18722 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
18723 pack_tmp = ishft(pack_tmp, -18)
18724 idata = idata + 1
18725 data_tmp = iand(pack_tmp, mask_right(nbits))
18726 full_data(idata) = data_tmp
18727 pack_tmp = ishft(pack_tmp, -nbits)
18728 idata = idata + 1
18729 data_tmp = ishft(pack_tmp, 6)
18730 ipack = ipack + 1
18731 pack_tmp = packed_data(ipack)
18732 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
18733 pack_tmp = ishft(pack_tmp, -6)
18734 idata = idata + 1
18735 data_tmp = iand(pack_tmp, mask_right(nbits))
18736 full_data(idata) = data_tmp
18737 pack_tmp = ishft(pack_tmp, -nbits)
18738 idata = idata + 1
18739 data_tmp = iand(pack_tmp, mask_right(nbits))
18740 full_data(idata) = data_tmp
18741 pack_tmp = ishft(pack_tmp, -nbits)
18742 idata = idata + 1
18743 data_tmp = ishft(pack_tmp, 20)
18744 ipack = ipack + 1
18745 pack_tmp = packed_data(ipack)
18746 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
18747 pack_tmp = ishft(pack_tmp, -20)
18748 idata = idata + 1
18749 data_tmp = iand(pack_tmp, mask_right(nbits))
18750 full_data(idata) = data_tmp
18751 pack_tmp = ishft(pack_tmp, -nbits)
18752 idata = idata + 1
18753 data_tmp = ishft(pack_tmp, 8)
18754 ipack = ipack + 1
18755 pack_tmp = packed_data(ipack)
18756 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
18757 pack_tmp = ishft(pack_tmp, -8)
18758 idata = idata + 1
18759 data_tmp = iand(pack_tmp, mask_right(nbits))
18760 full_data(idata) = data_tmp
18761 pack_tmp = ishft(pack_tmp, -nbits)
18762 idata = idata + 1
18763 data_tmp = iand(pack_tmp, mask_right(nbits))
18764 full_data(idata) = data_tmp
18765 pack_tmp = ishft(pack_tmp, -nbits)
18766 idata = idata + 1
18767 data_tmp = ishft(pack_tmp, 22)
18768 ipack = ipack + 1
18769 pack_tmp = packed_data(ipack)
18770 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
18771 pack_tmp = ishft(pack_tmp, -22)
18772 idata = idata + 1
18773 data_tmp = iand(pack_tmp, mask_right(nbits))
18774 full_data(idata) = data_tmp
18775 pack_tmp = ishft(pack_tmp, -nbits)
18776 idata = idata + 1
18777 data_tmp = ishft(pack_tmp, 10)
18778 ipack = ipack + 1
18779 pack_tmp = packed_data(ipack)
18780 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
18781 pack_tmp = ishft(pack_tmp, -10)
18782 idata = idata + 1
18783 data_tmp = iand(pack_tmp, mask_right(nbits))
18784 full_data(idata) = data_tmp
18785 pack_tmp = ishft(pack_tmp, -nbits)
18786 idata = idata + 1
18787 data_tmp = iand(pack_tmp, mask_right(nbits))
18788 full_data(idata) = data_tmp
18789 pack_tmp = ishft(pack_tmp, -nbits)
18790 idata = idata + 1
18791 data_tmp = ishft(pack_tmp, 24)
18792 ipack = ipack + 1
18793 pack_tmp = packed_data(ipack)
18794 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
18795 pack_tmp = ishft(pack_tmp, -24)
18796 idata = idata + 1
18797 data_tmp = iand(pack_tmp, mask_right(nbits))
18798 full_data(idata) = data_tmp
18799 pack_tmp = ishft(pack_tmp, -nbits)
18800 idata = idata + 1
18801 data_tmp = ishft(pack_tmp, 12)
18802 ipack = ipack + 1
18803 pack_tmp = packed_data(ipack)
18804 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
18805 pack_tmp = ishft(pack_tmp, -12)
18806 idata = idata + 1
18807 data_tmp = iand(pack_tmp, mask_right(nbits))
18808 full_data(idata) = data_tmp
18809 pack_tmp = ishft(pack_tmp, -nbits)
18810 idata = idata + 1
18811 data_tmp = iand(pack_tmp, mask_right(nbits))
18812 full_data(idata) = data_tmp
18813 pack_tmp = ishft(pack_tmp, -nbits)
18814 idata = idata + 1
18815 data_tmp = ishft(pack_tmp, 26)
18816 ipack = ipack + 1
18817 pack_tmp = packed_data(ipack)
18818 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
18819 pack_tmp = ishft(pack_tmp, -26)
18820 idata = idata + 1
18821 data_tmp = iand(pack_tmp, mask_right(nbits))
18822 full_data(idata) = data_tmp
18823 pack_tmp = ishft(pack_tmp, -nbits)
18824 idata = idata + 1
18825 data_tmp = ishft(pack_tmp, 14)
18826 ipack = ipack + 1
18827 pack_tmp = packed_data(ipack)
18828 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
18829 pack_tmp = ishft(pack_tmp, -14)
18830 idata = idata + 1
18831 data_tmp = iand(pack_tmp, mask_right(nbits))
18832 full_data(idata) = data_tmp
18833 pack_tmp = ishft(pack_tmp, -nbits)
18834 idata = idata + 1
18835 data_tmp = ishft(pack_tmp, 2)
18836 ipack = ipack + 1
18837 pack_tmp = packed_data(ipack)
18838 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
18839 pack_tmp = ishft(pack_tmp, -2)
18840 idata = idata + 1
18841 data_tmp = iand(pack_tmp, mask_right(nbits))
18842 full_data(idata) = data_tmp
18843 pack_tmp = ishft(pack_tmp, -nbits)
18844 idata = idata + 1
18845 data_tmp = iand(pack_tmp, mask_right(nbits))
18846 full_data(idata) = data_tmp
18847 pack_tmp = ishft(pack_tmp, -nbits)
18848 idata = idata + 1
18849 data_tmp = ishft(pack_tmp, 16)
18850 ipack = ipack + 1
18851 pack_tmp = packed_data(ipack)
18852 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
18853 pack_tmp = ishft(pack_tmp, -16)
18854 idata = idata + 1
18855 data_tmp = iand(pack_tmp, mask_right(nbits))
18856 full_data(idata) = data_tmp
18857 pack_tmp = ishft(pack_tmp, -nbits)
18858 idata = idata + 1
18859 data_tmp = ishft(pack_tmp, 4)
18860 ipack = ipack + 1
18861 pack_tmp = packed_data(ipack)
18862 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
18863 pack_tmp = ishft(pack_tmp, -4)
18864 idata = idata + 1
18865 data_tmp = iand(pack_tmp, mask_right(nbits))
18866 full_data(idata) = data_tmp
18867 pack_tmp = ishft(pack_tmp, -nbits)
18868 idata = idata + 1
18869 data_tmp = iand(pack_tmp, mask_right(nbits))
18870 full_data(idata) = data_tmp
18871 pack_tmp = ishft(pack_tmp, -nbits)
18872 idata = idata + 1
18873 data_tmp = ishft(pack_tmp, 18)
18874 ipack = ipack + 1
18875 pack_tmp = packed_data(ipack)
18876 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
18877 pack_tmp = ishft(pack_tmp, -18)
18878 idata = idata + 1
18879 data_tmp = iand(pack_tmp, mask_right(nbits))
18880 full_data(idata) = data_tmp
18881 pack_tmp = ishft(pack_tmp, -nbits)
18882 idata = idata + 1
18883 data_tmp = ishft(pack_tmp, 6)
18884 ipack = ipack + 1
18885 pack_tmp = packed_data(ipack)
18886 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
18887 pack_tmp = ishft(pack_tmp, -6)
18888 idata = idata + 1
18889 data_tmp = iand(pack_tmp, mask_right(nbits))
18890 full_data(idata) = data_tmp
18891 pack_tmp = ishft(pack_tmp, -nbits)
18892 idata = idata + 1
18893 data_tmp = iand(pack_tmp, mask_right(nbits))
18894 full_data(idata) = data_tmp
18895 pack_tmp = ishft(pack_tmp, -nbits)
18896 idata = idata + 1
18897 data_tmp = ishft(pack_tmp, 20)
18898 ipack = ipack + 1
18899 pack_tmp = packed_data(ipack)
18900 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
18901 pack_tmp = ishft(pack_tmp, -20)
18902 idata = idata + 1
18903 data_tmp = iand(pack_tmp, mask_right(nbits))
18904 full_data(idata) = data_tmp
18905 pack_tmp = ishft(pack_tmp, -nbits)
18906 idata = idata + 1
18907 data_tmp = ishft(pack_tmp, 8)
18908 ipack = ipack + 1
18909 pack_tmp = packed_data(ipack)
18910 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
18911 pack_tmp = ishft(pack_tmp, -8)
18912 idata = idata + 1
18913 data_tmp = iand(pack_tmp, mask_right(nbits))
18914 full_data(idata) = data_tmp
18915 pack_tmp = ishft(pack_tmp, -nbits)
18916 idata = idata + 1
18917 data_tmp = iand(pack_tmp, mask_right(nbits))
18918 full_data(idata) = data_tmp
18919 pack_tmp = ishft(pack_tmp, -nbits)
18920 idata = idata + 1
18921 data_tmp = ishft(pack_tmp, 22)
18922 ipack = ipack + 1
18923 pack_tmp = packed_data(ipack)
18924 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
18925 pack_tmp = ishft(pack_tmp, -22)
18926 idata = idata + 1
18927 data_tmp = iand(pack_tmp, mask_right(nbits))
18928 full_data(idata) = data_tmp
18929 pack_tmp = ishft(pack_tmp, -nbits)
18930 idata = idata + 1
18931 data_tmp = ishft(pack_tmp, 10)
18932 ipack = ipack + 1
18933 pack_tmp = packed_data(ipack)
18934 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
18935 pack_tmp = ishft(pack_tmp, -10)
18936 idata = idata + 1
18937 data_tmp = iand(pack_tmp, mask_right(nbits))
18938 full_data(idata) = data_tmp
18939 pack_tmp = ishft(pack_tmp, -nbits)
18940 idata = idata + 1
18941 data_tmp = iand(pack_tmp, mask_right(nbits))
18942 full_data(idata) = data_tmp
18943 pack_tmp = ishft(pack_tmp, -nbits)
18944 idata = idata + 1
18945 data_tmp = ishft(pack_tmp, 24)
18946 ipack = ipack + 1
18947 pack_tmp = packed_data(ipack)
18948 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
18949 pack_tmp = ishft(pack_tmp, -24)
18950 idata = idata + 1
18951 data_tmp = iand(pack_tmp, mask_right(nbits))
18952 full_data(idata) = data_tmp
18953 pack_tmp = ishft(pack_tmp, -nbits)
18954 idata = idata + 1
18955 data_tmp = ishft(pack_tmp, 12)
18956 ipack = ipack + 1
18957 pack_tmp = packed_data(ipack)
18958 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
18959 pack_tmp = ishft(pack_tmp, -12)
18960 idata = idata + 1
18961 data_tmp = iand(pack_tmp, mask_right(nbits))
18962 full_data(idata) = data_tmp
18963 pack_tmp = ishft(pack_tmp, -nbits)
18964 idata = idata + 1
18965 data_tmp = iand(pack_tmp, mask_right(nbits))
18966 full_data(idata) = data_tmp
18967 pack_tmp = ishft(pack_tmp, -nbits)
18968 END DO
18969 IF (ndata_rep < ndata) THEN
18970 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
18971 END IF
18972 END SUBROUTINE bits2ints_26
18973
18974! **************************************************************************************************
18975!> \brief ...
18976!> \param Ndata ...
18977!> \param packed_data ...
18978!> \param full_data ...
18979! **************************************************************************************************
18980 SUBROUTINE ints2bits_27(Ndata, packed_data, full_data)
18981 INTEGER, INTENT(IN) :: Ndata
18982 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
18983 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
18984
18985 INTEGER, PARAMETER :: Nbits = 27
18986
18987 INTEGER :: idata, ipack, kdata, Ndata_rep
18988 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
18989
18990 idata = 0
18991 ipack = 0
18992 ndata_rep = (ndata/64)*64
18993 DO kdata = 1, ndata_rep, 64
18994 pack_tmp = 0
18995 idata = idata + 1
18996 data_tmp = full_data(idata)
18997 data_tmp = ishft(data_tmp, 37)
18998 pack_tmp = ior(pack_tmp, data_tmp)
18999 pack_tmp = ishft(pack_tmp, -27)
19000 idata = idata + 1
19001 data_tmp = full_data(idata)
19002 data_tmp = ishft(data_tmp, 37)
19003 pack_tmp = ior(pack_tmp, data_tmp)
19004 pack_tmp = ishft(pack_tmp, -10)
19005 idata = idata + 1
19006 data_tmp = full_data(idata)
19007 data_tmp = ishft(data_tmp, 37)
19008 data_tmp = iand(data_tmp, mask_left(10))
19009 pack_tmp = ior(pack_tmp, data_tmp)
19010 ipack = ipack + 1
19011 packed_data(ipack) = pack_tmp
19012 data_tmp = full_data(idata)
19013 pack_tmp = ishft(data_tmp, 47)
19014 pack_tmp = ishft(pack_tmp, -27)
19015 idata = idata + 1
19016 data_tmp = full_data(idata)
19017 data_tmp = ishft(data_tmp, 37)
19018 pack_tmp = ior(pack_tmp, data_tmp)
19019 pack_tmp = ishft(pack_tmp, -20)
19020 idata = idata + 1
19021 data_tmp = full_data(idata)
19022 data_tmp = ishft(data_tmp, 37)
19023 data_tmp = iand(data_tmp, mask_left(20))
19024 pack_tmp = ior(pack_tmp, data_tmp)
19025 ipack = ipack + 1
19026 packed_data(ipack) = pack_tmp
19027 data_tmp = full_data(idata)
19028 pack_tmp = ishft(data_tmp, 57)
19029 pack_tmp = ishft(pack_tmp, -27)
19030 idata = idata + 1
19031 data_tmp = full_data(idata)
19032 data_tmp = ishft(data_tmp, 37)
19033 pack_tmp = ior(pack_tmp, data_tmp)
19034 pack_tmp = ishft(pack_tmp, -27)
19035 idata = idata + 1
19036 data_tmp = full_data(idata)
19037 data_tmp = ishft(data_tmp, 37)
19038 pack_tmp = ior(pack_tmp, data_tmp)
19039 pack_tmp = ishft(pack_tmp, -3)
19040 idata = idata + 1
19041 data_tmp = full_data(idata)
19042 data_tmp = ishft(data_tmp, 37)
19043 data_tmp = iand(data_tmp, mask_left(3))
19044 pack_tmp = ior(pack_tmp, data_tmp)
19045 ipack = ipack + 1
19046 packed_data(ipack) = pack_tmp
19047 data_tmp = full_data(idata)
19048 pack_tmp = ishft(data_tmp, 40)
19049 pack_tmp = ishft(pack_tmp, -27)
19050 idata = idata + 1
19051 data_tmp = full_data(idata)
19052 data_tmp = ishft(data_tmp, 37)
19053 pack_tmp = ior(pack_tmp, data_tmp)
19054 pack_tmp = ishft(pack_tmp, -13)
19055 idata = idata + 1
19056 data_tmp = full_data(idata)
19057 data_tmp = ishft(data_tmp, 37)
19058 data_tmp = iand(data_tmp, mask_left(13))
19059 pack_tmp = ior(pack_tmp, data_tmp)
19060 ipack = ipack + 1
19061 packed_data(ipack) = pack_tmp
19062 data_tmp = full_data(idata)
19063 pack_tmp = ishft(data_tmp, 50)
19064 pack_tmp = ishft(pack_tmp, -27)
19065 idata = idata + 1
19066 data_tmp = full_data(idata)
19067 data_tmp = ishft(data_tmp, 37)
19068 pack_tmp = ior(pack_tmp, data_tmp)
19069 pack_tmp = ishft(pack_tmp, -23)
19070 idata = idata + 1
19071 data_tmp = full_data(idata)
19072 data_tmp = ishft(data_tmp, 37)
19073 data_tmp = iand(data_tmp, mask_left(23))
19074 pack_tmp = ior(pack_tmp, data_tmp)
19075 ipack = ipack + 1
19076 packed_data(ipack) = pack_tmp
19077 data_tmp = full_data(idata)
19078 pack_tmp = ishft(data_tmp, 60)
19079 pack_tmp = ishft(pack_tmp, -27)
19080 idata = idata + 1
19081 data_tmp = full_data(idata)
19082 data_tmp = ishft(data_tmp, 37)
19083 pack_tmp = ior(pack_tmp, data_tmp)
19084 pack_tmp = ishft(pack_tmp, -27)
19085 idata = idata + 1
19086 data_tmp = full_data(idata)
19087 data_tmp = ishft(data_tmp, 37)
19088 pack_tmp = ior(pack_tmp, data_tmp)
19089 pack_tmp = ishft(pack_tmp, -6)
19090 idata = idata + 1
19091 data_tmp = full_data(idata)
19092 data_tmp = ishft(data_tmp, 37)
19093 data_tmp = iand(data_tmp, mask_left(6))
19094 pack_tmp = ior(pack_tmp, data_tmp)
19095 ipack = ipack + 1
19096 packed_data(ipack) = pack_tmp
19097 data_tmp = full_data(idata)
19098 pack_tmp = ishft(data_tmp, 43)
19099 pack_tmp = ishft(pack_tmp, -27)
19100 idata = idata + 1
19101 data_tmp = full_data(idata)
19102 data_tmp = ishft(data_tmp, 37)
19103 pack_tmp = ior(pack_tmp, data_tmp)
19104 pack_tmp = ishft(pack_tmp, -16)
19105 idata = idata + 1
19106 data_tmp = full_data(idata)
19107 data_tmp = ishft(data_tmp, 37)
19108 data_tmp = iand(data_tmp, mask_left(16))
19109 pack_tmp = ior(pack_tmp, data_tmp)
19110 ipack = ipack + 1
19111 packed_data(ipack) = pack_tmp
19112 data_tmp = full_data(idata)
19113 pack_tmp = ishft(data_tmp, 53)
19114 pack_tmp = ishft(pack_tmp, -27)
19115 idata = idata + 1
19116 data_tmp = full_data(idata)
19117 data_tmp = ishft(data_tmp, 37)
19118 pack_tmp = ior(pack_tmp, data_tmp)
19119 pack_tmp = ishft(pack_tmp, -26)
19120 idata = idata + 1
19121 data_tmp = full_data(idata)
19122 data_tmp = ishft(data_tmp, 37)
19123 data_tmp = iand(data_tmp, mask_left(26))
19124 pack_tmp = ior(pack_tmp, data_tmp)
19125 ipack = ipack + 1
19126 packed_data(ipack) = pack_tmp
19127 data_tmp = full_data(idata)
19128 pack_tmp = ishft(data_tmp, 63)
19129 pack_tmp = ishft(pack_tmp, -27)
19130 idata = idata + 1
19131 data_tmp = full_data(idata)
19132 data_tmp = ishft(data_tmp, 37)
19133 pack_tmp = ior(pack_tmp, data_tmp)
19134 pack_tmp = ishft(pack_tmp, -27)
19135 idata = idata + 1
19136 data_tmp = full_data(idata)
19137 data_tmp = ishft(data_tmp, 37)
19138 pack_tmp = ior(pack_tmp, data_tmp)
19139 pack_tmp = ishft(pack_tmp, -9)
19140 idata = idata + 1
19141 data_tmp = full_data(idata)
19142 data_tmp = ishft(data_tmp, 37)
19143 data_tmp = iand(data_tmp, mask_left(9))
19144 pack_tmp = ior(pack_tmp, data_tmp)
19145 ipack = ipack + 1
19146 packed_data(ipack) = pack_tmp
19147 data_tmp = full_data(idata)
19148 pack_tmp = ishft(data_tmp, 46)
19149 pack_tmp = ishft(pack_tmp, -27)
19150 idata = idata + 1
19151 data_tmp = full_data(idata)
19152 data_tmp = ishft(data_tmp, 37)
19153 pack_tmp = ior(pack_tmp, data_tmp)
19154 pack_tmp = ishft(pack_tmp, -19)
19155 idata = idata + 1
19156 data_tmp = full_data(idata)
19157 data_tmp = ishft(data_tmp, 37)
19158 data_tmp = iand(data_tmp, mask_left(19))
19159 pack_tmp = ior(pack_tmp, data_tmp)
19160 ipack = ipack + 1
19161 packed_data(ipack) = pack_tmp
19162 data_tmp = full_data(idata)
19163 pack_tmp = ishft(data_tmp, 56)
19164 pack_tmp = ishft(pack_tmp, -27)
19165 idata = idata + 1
19166 data_tmp = full_data(idata)
19167 data_tmp = ishft(data_tmp, 37)
19168 pack_tmp = ior(pack_tmp, data_tmp)
19169 pack_tmp = ishft(pack_tmp, -27)
19170 idata = idata + 1
19171 data_tmp = full_data(idata)
19172 data_tmp = ishft(data_tmp, 37)
19173 pack_tmp = ior(pack_tmp, data_tmp)
19174 pack_tmp = ishft(pack_tmp, -2)
19175 idata = idata + 1
19176 data_tmp = full_data(idata)
19177 data_tmp = ishft(data_tmp, 37)
19178 data_tmp = iand(data_tmp, mask_left(2))
19179 pack_tmp = ior(pack_tmp, data_tmp)
19180 ipack = ipack + 1
19181 packed_data(ipack) = pack_tmp
19182 data_tmp = full_data(idata)
19183 pack_tmp = ishft(data_tmp, 39)
19184 pack_tmp = ishft(pack_tmp, -27)
19185 idata = idata + 1
19186 data_tmp = full_data(idata)
19187 data_tmp = ishft(data_tmp, 37)
19188 pack_tmp = ior(pack_tmp, data_tmp)
19189 pack_tmp = ishft(pack_tmp, -12)
19190 idata = idata + 1
19191 data_tmp = full_data(idata)
19192 data_tmp = ishft(data_tmp, 37)
19193 data_tmp = iand(data_tmp, mask_left(12))
19194 pack_tmp = ior(pack_tmp, data_tmp)
19195 ipack = ipack + 1
19196 packed_data(ipack) = pack_tmp
19197 data_tmp = full_data(idata)
19198 pack_tmp = ishft(data_tmp, 49)
19199 pack_tmp = ishft(pack_tmp, -27)
19200 idata = idata + 1
19201 data_tmp = full_data(idata)
19202 data_tmp = ishft(data_tmp, 37)
19203 pack_tmp = ior(pack_tmp, data_tmp)
19204 pack_tmp = ishft(pack_tmp, -22)
19205 idata = idata + 1
19206 data_tmp = full_data(idata)
19207 data_tmp = ishft(data_tmp, 37)
19208 data_tmp = iand(data_tmp, mask_left(22))
19209 pack_tmp = ior(pack_tmp, data_tmp)
19210 ipack = ipack + 1
19211 packed_data(ipack) = pack_tmp
19212 data_tmp = full_data(idata)
19213 pack_tmp = ishft(data_tmp, 59)
19214 pack_tmp = ishft(pack_tmp, -27)
19215 idata = idata + 1
19216 data_tmp = full_data(idata)
19217 data_tmp = ishft(data_tmp, 37)
19218 pack_tmp = ior(pack_tmp, data_tmp)
19219 pack_tmp = ishft(pack_tmp, -27)
19220 idata = idata + 1
19221 data_tmp = full_data(idata)
19222 data_tmp = ishft(data_tmp, 37)
19223 pack_tmp = ior(pack_tmp, data_tmp)
19224 pack_tmp = ishft(pack_tmp, -5)
19225 idata = idata + 1
19226 data_tmp = full_data(idata)
19227 data_tmp = ishft(data_tmp, 37)
19228 data_tmp = iand(data_tmp, mask_left(5))
19229 pack_tmp = ior(pack_tmp, data_tmp)
19230 ipack = ipack + 1
19231 packed_data(ipack) = pack_tmp
19232 data_tmp = full_data(idata)
19233 pack_tmp = ishft(data_tmp, 42)
19234 pack_tmp = ishft(pack_tmp, -27)
19235 idata = idata + 1
19236 data_tmp = full_data(idata)
19237 data_tmp = ishft(data_tmp, 37)
19238 pack_tmp = ior(pack_tmp, data_tmp)
19239 pack_tmp = ishft(pack_tmp, -15)
19240 idata = idata + 1
19241 data_tmp = full_data(idata)
19242 data_tmp = ishft(data_tmp, 37)
19243 data_tmp = iand(data_tmp, mask_left(15))
19244 pack_tmp = ior(pack_tmp, data_tmp)
19245 ipack = ipack + 1
19246 packed_data(ipack) = pack_tmp
19247 data_tmp = full_data(idata)
19248 pack_tmp = ishft(data_tmp, 52)
19249 pack_tmp = ishft(pack_tmp, -27)
19250 idata = idata + 1
19251 data_tmp = full_data(idata)
19252 data_tmp = ishft(data_tmp, 37)
19253 pack_tmp = ior(pack_tmp, data_tmp)
19254 pack_tmp = ishft(pack_tmp, -25)
19255 idata = idata + 1
19256 data_tmp = full_data(idata)
19257 data_tmp = ishft(data_tmp, 37)
19258 data_tmp = iand(data_tmp, mask_left(25))
19259 pack_tmp = ior(pack_tmp, data_tmp)
19260 ipack = ipack + 1
19261 packed_data(ipack) = pack_tmp
19262 data_tmp = full_data(idata)
19263 pack_tmp = ishft(data_tmp, 62)
19264 pack_tmp = ishft(pack_tmp, -27)
19265 idata = idata + 1
19266 data_tmp = full_data(idata)
19267 data_tmp = ishft(data_tmp, 37)
19268 pack_tmp = ior(pack_tmp, data_tmp)
19269 pack_tmp = ishft(pack_tmp, -27)
19270 idata = idata + 1
19271 data_tmp = full_data(idata)
19272 data_tmp = ishft(data_tmp, 37)
19273 pack_tmp = ior(pack_tmp, data_tmp)
19274 pack_tmp = ishft(pack_tmp, -8)
19275 idata = idata + 1
19276 data_tmp = full_data(idata)
19277 data_tmp = ishft(data_tmp, 37)
19278 data_tmp = iand(data_tmp, mask_left(8))
19279 pack_tmp = ior(pack_tmp, data_tmp)
19280 ipack = ipack + 1
19281 packed_data(ipack) = pack_tmp
19282 data_tmp = full_data(idata)
19283 pack_tmp = ishft(data_tmp, 45)
19284 pack_tmp = ishft(pack_tmp, -27)
19285 idata = idata + 1
19286 data_tmp = full_data(idata)
19287 data_tmp = ishft(data_tmp, 37)
19288 pack_tmp = ior(pack_tmp, data_tmp)
19289 pack_tmp = ishft(pack_tmp, -18)
19290 idata = idata + 1
19291 data_tmp = full_data(idata)
19292 data_tmp = ishft(data_tmp, 37)
19293 data_tmp = iand(data_tmp, mask_left(18))
19294 pack_tmp = ior(pack_tmp, data_tmp)
19295 ipack = ipack + 1
19296 packed_data(ipack) = pack_tmp
19297 data_tmp = full_data(idata)
19298 pack_tmp = ishft(data_tmp, 55)
19299 pack_tmp = ishft(pack_tmp, -27)
19300 idata = idata + 1
19301 data_tmp = full_data(idata)
19302 data_tmp = ishft(data_tmp, 37)
19303 pack_tmp = ior(pack_tmp, data_tmp)
19304 pack_tmp = ishft(pack_tmp, -27)
19305 idata = idata + 1
19306 data_tmp = full_data(idata)
19307 data_tmp = ishft(data_tmp, 37)
19308 pack_tmp = ior(pack_tmp, data_tmp)
19309 pack_tmp = ishft(pack_tmp, -1)
19310 idata = idata + 1
19311 data_tmp = full_data(idata)
19312 data_tmp = ishft(data_tmp, 37)
19313 data_tmp = iand(data_tmp, mask_left(1))
19314 pack_tmp = ior(pack_tmp, data_tmp)
19315 ipack = ipack + 1
19316 packed_data(ipack) = pack_tmp
19317 data_tmp = full_data(idata)
19318 pack_tmp = ishft(data_tmp, 38)
19319 pack_tmp = ishft(pack_tmp, -27)
19320 idata = idata + 1
19321 data_tmp = full_data(idata)
19322 data_tmp = ishft(data_tmp, 37)
19323 pack_tmp = ior(pack_tmp, data_tmp)
19324 pack_tmp = ishft(pack_tmp, -11)
19325 idata = idata + 1
19326 data_tmp = full_data(idata)
19327 data_tmp = ishft(data_tmp, 37)
19328 data_tmp = iand(data_tmp, mask_left(11))
19329 pack_tmp = ior(pack_tmp, data_tmp)
19330 ipack = ipack + 1
19331 packed_data(ipack) = pack_tmp
19332 data_tmp = full_data(idata)
19333 pack_tmp = ishft(data_tmp, 48)
19334 pack_tmp = ishft(pack_tmp, -27)
19335 idata = idata + 1
19336 data_tmp = full_data(idata)
19337 data_tmp = ishft(data_tmp, 37)
19338 pack_tmp = ior(pack_tmp, data_tmp)
19339 pack_tmp = ishft(pack_tmp, -21)
19340 idata = idata + 1
19341 data_tmp = full_data(idata)
19342 data_tmp = ishft(data_tmp, 37)
19343 data_tmp = iand(data_tmp, mask_left(21))
19344 pack_tmp = ior(pack_tmp, data_tmp)
19345 ipack = ipack + 1
19346 packed_data(ipack) = pack_tmp
19347 data_tmp = full_data(idata)
19348 pack_tmp = ishft(data_tmp, 58)
19349 pack_tmp = ishft(pack_tmp, -27)
19350 idata = idata + 1
19351 data_tmp = full_data(idata)
19352 data_tmp = ishft(data_tmp, 37)
19353 pack_tmp = ior(pack_tmp, data_tmp)
19354 pack_tmp = ishft(pack_tmp, -27)
19355 idata = idata + 1
19356 data_tmp = full_data(idata)
19357 data_tmp = ishft(data_tmp, 37)
19358 pack_tmp = ior(pack_tmp, data_tmp)
19359 pack_tmp = ishft(pack_tmp, -4)
19360 idata = idata + 1
19361 data_tmp = full_data(idata)
19362 data_tmp = ishft(data_tmp, 37)
19363 data_tmp = iand(data_tmp, mask_left(4))
19364 pack_tmp = ior(pack_tmp, data_tmp)
19365 ipack = ipack + 1
19366 packed_data(ipack) = pack_tmp
19367 data_tmp = full_data(idata)
19368 pack_tmp = ishft(data_tmp, 41)
19369 pack_tmp = ishft(pack_tmp, -27)
19370 idata = idata + 1
19371 data_tmp = full_data(idata)
19372 data_tmp = ishft(data_tmp, 37)
19373 pack_tmp = ior(pack_tmp, data_tmp)
19374 pack_tmp = ishft(pack_tmp, -14)
19375 idata = idata + 1
19376 data_tmp = full_data(idata)
19377 data_tmp = ishft(data_tmp, 37)
19378 data_tmp = iand(data_tmp, mask_left(14))
19379 pack_tmp = ior(pack_tmp, data_tmp)
19380 ipack = ipack + 1
19381 packed_data(ipack) = pack_tmp
19382 data_tmp = full_data(idata)
19383 pack_tmp = ishft(data_tmp, 51)
19384 pack_tmp = ishft(pack_tmp, -27)
19385 idata = idata + 1
19386 data_tmp = full_data(idata)
19387 data_tmp = ishft(data_tmp, 37)
19388 pack_tmp = ior(pack_tmp, data_tmp)
19389 pack_tmp = ishft(pack_tmp, -24)
19390 idata = idata + 1
19391 data_tmp = full_data(idata)
19392 data_tmp = ishft(data_tmp, 37)
19393 data_tmp = iand(data_tmp, mask_left(24))
19394 pack_tmp = ior(pack_tmp, data_tmp)
19395 ipack = ipack + 1
19396 packed_data(ipack) = pack_tmp
19397 data_tmp = full_data(idata)
19398 pack_tmp = ishft(data_tmp, 61)
19399 pack_tmp = ishft(pack_tmp, -27)
19400 idata = idata + 1
19401 data_tmp = full_data(idata)
19402 data_tmp = ishft(data_tmp, 37)
19403 pack_tmp = ior(pack_tmp, data_tmp)
19404 pack_tmp = ishft(pack_tmp, -27)
19405 idata = idata + 1
19406 data_tmp = full_data(idata)
19407 data_tmp = ishft(data_tmp, 37)
19408 pack_tmp = ior(pack_tmp, data_tmp)
19409 pack_tmp = ishft(pack_tmp, -7)
19410 idata = idata + 1
19411 data_tmp = full_data(idata)
19412 data_tmp = ishft(data_tmp, 37)
19413 data_tmp = iand(data_tmp, mask_left(7))
19414 pack_tmp = ior(pack_tmp, data_tmp)
19415 ipack = ipack + 1
19416 packed_data(ipack) = pack_tmp
19417 data_tmp = full_data(idata)
19418 pack_tmp = ishft(data_tmp, 44)
19419 pack_tmp = ishft(pack_tmp, -27)
19420 idata = idata + 1
19421 data_tmp = full_data(idata)
19422 data_tmp = ishft(data_tmp, 37)
19423 pack_tmp = ior(pack_tmp, data_tmp)
19424 pack_tmp = ishft(pack_tmp, -17)
19425 idata = idata + 1
19426 data_tmp = full_data(idata)
19427 data_tmp = ishft(data_tmp, 37)
19428 data_tmp = iand(data_tmp, mask_left(17))
19429 pack_tmp = ior(pack_tmp, data_tmp)
19430 ipack = ipack + 1
19431 packed_data(ipack) = pack_tmp
19432 data_tmp = full_data(idata)
19433 pack_tmp = ishft(data_tmp, 54)
19434 pack_tmp = ishft(pack_tmp, -27)
19435 idata = idata + 1
19436 data_tmp = full_data(idata)
19437 data_tmp = ishft(data_tmp, 37)
19438 pack_tmp = ior(pack_tmp, data_tmp)
19439 pack_tmp = ishft(pack_tmp, -27)
19440 idata = idata + 1
19441 data_tmp = full_data(idata)
19442 data_tmp = ishft(data_tmp, 37)
19443 pack_tmp = ior(pack_tmp, data_tmp)
19444 pack_tmp = ishft(pack_tmp, 0)
19445 pack_tmp = ishft(pack_tmp, 0)
19446 ipack = ipack + 1
19447 packed_data(ipack) = pack_tmp
19448 END DO
19449 IF (ndata_rep < ndata) THEN
19450 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
19451 END IF
19452 END SUBROUTINE ints2bits_27
19453
19454! **************************************************************************************************
19455!> \brief ...
19456!> \param Ndata ...
19457!> \param packed_data ...
19458!> \param full_data ...
19459! **************************************************************************************************
19460 SUBROUTINE bits2ints_27(Ndata, packed_data, full_data)
19461 INTEGER, INTENT(IN) :: Ndata
19462 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
19463 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
19464
19465 INTEGER, PARAMETER :: Nbits = 27
19466
19467 INTEGER :: idata, ipack, kdata, Ndata_rep
19468 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
19469
19470 ipack = 0
19471 idata = 0
19472 pack_tmp = 0
19473 ndata_rep = (ndata/64)*64
19474 DO kdata = 1, ndata_rep, 64
19475 idata = idata + 1
19476 data_tmp = ishft(pack_tmp, 27)
19477 ipack = ipack + 1
19478 pack_tmp = packed_data(ipack)
19479 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
19480 pack_tmp = ishft(pack_tmp, -27)
19481 idata = idata + 1
19482 data_tmp = iand(pack_tmp, mask_right(nbits))
19483 full_data(idata) = data_tmp
19484 pack_tmp = ishft(pack_tmp, -nbits)
19485 idata = idata + 1
19486 data_tmp = ishft(pack_tmp, 17)
19487 ipack = ipack + 1
19488 pack_tmp = packed_data(ipack)
19489 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
19490 pack_tmp = ishft(pack_tmp, -17)
19491 idata = idata + 1
19492 data_tmp = iand(pack_tmp, mask_right(nbits))
19493 full_data(idata) = data_tmp
19494 pack_tmp = ishft(pack_tmp, -nbits)
19495 idata = idata + 1
19496 data_tmp = ishft(pack_tmp, 7)
19497 ipack = ipack + 1
19498 pack_tmp = packed_data(ipack)
19499 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
19500 pack_tmp = ishft(pack_tmp, -7)
19501 idata = idata + 1
19502 data_tmp = iand(pack_tmp, mask_right(nbits))
19503 full_data(idata) = data_tmp
19504 pack_tmp = ishft(pack_tmp, -nbits)
19505 idata = idata + 1
19506 data_tmp = iand(pack_tmp, mask_right(nbits))
19507 full_data(idata) = data_tmp
19508 pack_tmp = ishft(pack_tmp, -nbits)
19509 idata = idata + 1
19510 data_tmp = ishft(pack_tmp, 24)
19511 ipack = ipack + 1
19512 pack_tmp = packed_data(ipack)
19513 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
19514 pack_tmp = ishft(pack_tmp, -24)
19515 idata = idata + 1
19516 data_tmp = iand(pack_tmp, mask_right(nbits))
19517 full_data(idata) = data_tmp
19518 pack_tmp = ishft(pack_tmp, -nbits)
19519 idata = idata + 1
19520 data_tmp = ishft(pack_tmp, 14)
19521 ipack = ipack + 1
19522 pack_tmp = packed_data(ipack)
19523 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
19524 pack_tmp = ishft(pack_tmp, -14)
19525 idata = idata + 1
19526 data_tmp = iand(pack_tmp, mask_right(nbits))
19527 full_data(idata) = data_tmp
19528 pack_tmp = ishft(pack_tmp, -nbits)
19529 idata = idata + 1
19530 data_tmp = ishft(pack_tmp, 4)
19531 ipack = ipack + 1
19532 pack_tmp = packed_data(ipack)
19533 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
19534 pack_tmp = ishft(pack_tmp, -4)
19535 idata = idata + 1
19536 data_tmp = iand(pack_tmp, mask_right(nbits))
19537 full_data(idata) = data_tmp
19538 pack_tmp = ishft(pack_tmp, -nbits)
19539 idata = idata + 1
19540 data_tmp = iand(pack_tmp, mask_right(nbits))
19541 full_data(idata) = data_tmp
19542 pack_tmp = ishft(pack_tmp, -nbits)
19543 idata = idata + 1
19544 data_tmp = ishft(pack_tmp, 21)
19545 ipack = ipack + 1
19546 pack_tmp = packed_data(ipack)
19547 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
19548 pack_tmp = ishft(pack_tmp, -21)
19549 idata = idata + 1
19550 data_tmp = iand(pack_tmp, mask_right(nbits))
19551 full_data(idata) = data_tmp
19552 pack_tmp = ishft(pack_tmp, -nbits)
19553 idata = idata + 1
19554 data_tmp = ishft(pack_tmp, 11)
19555 ipack = ipack + 1
19556 pack_tmp = packed_data(ipack)
19557 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
19558 pack_tmp = ishft(pack_tmp, -11)
19559 idata = idata + 1
19560 data_tmp = iand(pack_tmp, mask_right(nbits))
19561 full_data(idata) = data_tmp
19562 pack_tmp = ishft(pack_tmp, -nbits)
19563 idata = idata + 1
19564 data_tmp = ishft(pack_tmp, 1)
19565 ipack = ipack + 1
19566 pack_tmp = packed_data(ipack)
19567 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
19568 pack_tmp = ishft(pack_tmp, -1)
19569 idata = idata + 1
19570 data_tmp = iand(pack_tmp, mask_right(nbits))
19571 full_data(idata) = data_tmp
19572 pack_tmp = ishft(pack_tmp, -nbits)
19573 idata = idata + 1
19574 data_tmp = iand(pack_tmp, mask_right(nbits))
19575 full_data(idata) = data_tmp
19576 pack_tmp = ishft(pack_tmp, -nbits)
19577 idata = idata + 1
19578 data_tmp = ishft(pack_tmp, 18)
19579 ipack = ipack + 1
19580 pack_tmp = packed_data(ipack)
19581 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
19582 pack_tmp = ishft(pack_tmp, -18)
19583 idata = idata + 1
19584 data_tmp = iand(pack_tmp, mask_right(nbits))
19585 full_data(idata) = data_tmp
19586 pack_tmp = ishft(pack_tmp, -nbits)
19587 idata = idata + 1
19588 data_tmp = ishft(pack_tmp, 8)
19589 ipack = ipack + 1
19590 pack_tmp = packed_data(ipack)
19591 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
19592 pack_tmp = ishft(pack_tmp, -8)
19593 idata = idata + 1
19594 data_tmp = iand(pack_tmp, mask_right(nbits))
19595 full_data(idata) = data_tmp
19596 pack_tmp = ishft(pack_tmp, -nbits)
19597 idata = idata + 1
19598 data_tmp = iand(pack_tmp, mask_right(nbits))
19599 full_data(idata) = data_tmp
19600 pack_tmp = ishft(pack_tmp, -nbits)
19601 idata = idata + 1
19602 data_tmp = ishft(pack_tmp, 25)
19603 ipack = ipack + 1
19604 pack_tmp = packed_data(ipack)
19605 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
19606 pack_tmp = ishft(pack_tmp, -25)
19607 idata = idata + 1
19608 data_tmp = iand(pack_tmp, mask_right(nbits))
19609 full_data(idata) = data_tmp
19610 pack_tmp = ishft(pack_tmp, -nbits)
19611 idata = idata + 1
19612 data_tmp = ishft(pack_tmp, 15)
19613 ipack = ipack + 1
19614 pack_tmp = packed_data(ipack)
19615 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
19616 pack_tmp = ishft(pack_tmp, -15)
19617 idata = idata + 1
19618 data_tmp = iand(pack_tmp, mask_right(nbits))
19619 full_data(idata) = data_tmp
19620 pack_tmp = ishft(pack_tmp, -nbits)
19621 idata = idata + 1
19622 data_tmp = ishft(pack_tmp, 5)
19623 ipack = ipack + 1
19624 pack_tmp = packed_data(ipack)
19625 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
19626 pack_tmp = ishft(pack_tmp, -5)
19627 idata = idata + 1
19628 data_tmp = iand(pack_tmp, mask_right(nbits))
19629 full_data(idata) = data_tmp
19630 pack_tmp = ishft(pack_tmp, -nbits)
19631 idata = idata + 1
19632 data_tmp = iand(pack_tmp, mask_right(nbits))
19633 full_data(idata) = data_tmp
19634 pack_tmp = ishft(pack_tmp, -nbits)
19635 idata = idata + 1
19636 data_tmp = ishft(pack_tmp, 22)
19637 ipack = ipack + 1
19638 pack_tmp = packed_data(ipack)
19639 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
19640 pack_tmp = ishft(pack_tmp, -22)
19641 idata = idata + 1
19642 data_tmp = iand(pack_tmp, mask_right(nbits))
19643 full_data(idata) = data_tmp
19644 pack_tmp = ishft(pack_tmp, -nbits)
19645 idata = idata + 1
19646 data_tmp = ishft(pack_tmp, 12)
19647 ipack = ipack + 1
19648 pack_tmp = packed_data(ipack)
19649 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
19650 pack_tmp = ishft(pack_tmp, -12)
19651 idata = idata + 1
19652 data_tmp = iand(pack_tmp, mask_right(nbits))
19653 full_data(idata) = data_tmp
19654 pack_tmp = ishft(pack_tmp, -nbits)
19655 idata = idata + 1
19656 data_tmp = ishft(pack_tmp, 2)
19657 ipack = ipack + 1
19658 pack_tmp = packed_data(ipack)
19659 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
19660 pack_tmp = ishft(pack_tmp, -2)
19661 idata = idata + 1
19662 data_tmp = iand(pack_tmp, mask_right(nbits))
19663 full_data(idata) = data_tmp
19664 pack_tmp = ishft(pack_tmp, -nbits)
19665 idata = idata + 1
19666 data_tmp = iand(pack_tmp, mask_right(nbits))
19667 full_data(idata) = data_tmp
19668 pack_tmp = ishft(pack_tmp, -nbits)
19669 idata = idata + 1
19670 data_tmp = ishft(pack_tmp, 19)
19671 ipack = ipack + 1
19672 pack_tmp = packed_data(ipack)
19673 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
19674 pack_tmp = ishft(pack_tmp, -19)
19675 idata = idata + 1
19676 data_tmp = iand(pack_tmp, mask_right(nbits))
19677 full_data(idata) = data_tmp
19678 pack_tmp = ishft(pack_tmp, -nbits)
19679 idata = idata + 1
19680 data_tmp = ishft(pack_tmp, 9)
19681 ipack = ipack + 1
19682 pack_tmp = packed_data(ipack)
19683 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
19684 pack_tmp = ishft(pack_tmp, -9)
19685 idata = idata + 1
19686 data_tmp = iand(pack_tmp, mask_right(nbits))
19687 full_data(idata) = data_tmp
19688 pack_tmp = ishft(pack_tmp, -nbits)
19689 idata = idata + 1
19690 data_tmp = iand(pack_tmp, mask_right(nbits))
19691 full_data(idata) = data_tmp
19692 pack_tmp = ishft(pack_tmp, -nbits)
19693 idata = idata + 1
19694 data_tmp = ishft(pack_tmp, 26)
19695 ipack = ipack + 1
19696 pack_tmp = packed_data(ipack)
19697 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
19698 pack_tmp = ishft(pack_tmp, -26)
19699 idata = idata + 1
19700 data_tmp = iand(pack_tmp, mask_right(nbits))
19701 full_data(idata) = data_tmp
19702 pack_tmp = ishft(pack_tmp, -nbits)
19703 idata = idata + 1
19704 data_tmp = ishft(pack_tmp, 16)
19705 ipack = ipack + 1
19706 pack_tmp = packed_data(ipack)
19707 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
19708 pack_tmp = ishft(pack_tmp, -16)
19709 idata = idata + 1
19710 data_tmp = iand(pack_tmp, mask_right(nbits))
19711 full_data(idata) = data_tmp
19712 pack_tmp = ishft(pack_tmp, -nbits)
19713 idata = idata + 1
19714 data_tmp = ishft(pack_tmp, 6)
19715 ipack = ipack + 1
19716 pack_tmp = packed_data(ipack)
19717 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
19718 pack_tmp = ishft(pack_tmp, -6)
19719 idata = idata + 1
19720 data_tmp = iand(pack_tmp, mask_right(nbits))
19721 full_data(idata) = data_tmp
19722 pack_tmp = ishft(pack_tmp, -nbits)
19723 idata = idata + 1
19724 data_tmp = iand(pack_tmp, mask_right(nbits))
19725 full_data(idata) = data_tmp
19726 pack_tmp = ishft(pack_tmp, -nbits)
19727 idata = idata + 1
19728 data_tmp = ishft(pack_tmp, 23)
19729 ipack = ipack + 1
19730 pack_tmp = packed_data(ipack)
19731 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
19732 pack_tmp = ishft(pack_tmp, -23)
19733 idata = idata + 1
19734 data_tmp = iand(pack_tmp, mask_right(nbits))
19735 full_data(idata) = data_tmp
19736 pack_tmp = ishft(pack_tmp, -nbits)
19737 idata = idata + 1
19738 data_tmp = ishft(pack_tmp, 13)
19739 ipack = ipack + 1
19740 pack_tmp = packed_data(ipack)
19741 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
19742 pack_tmp = ishft(pack_tmp, -13)
19743 idata = idata + 1
19744 data_tmp = iand(pack_tmp, mask_right(nbits))
19745 full_data(idata) = data_tmp
19746 pack_tmp = ishft(pack_tmp, -nbits)
19747 idata = idata + 1
19748 data_tmp = ishft(pack_tmp, 3)
19749 ipack = ipack + 1
19750 pack_tmp = packed_data(ipack)
19751 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
19752 pack_tmp = ishft(pack_tmp, -3)
19753 idata = idata + 1
19754 data_tmp = iand(pack_tmp, mask_right(nbits))
19755 full_data(idata) = data_tmp
19756 pack_tmp = ishft(pack_tmp, -nbits)
19757 idata = idata + 1
19758 data_tmp = iand(pack_tmp, mask_right(nbits))
19759 full_data(idata) = data_tmp
19760 pack_tmp = ishft(pack_tmp, -nbits)
19761 idata = idata + 1
19762 data_tmp = ishft(pack_tmp, 20)
19763 ipack = ipack + 1
19764 pack_tmp = packed_data(ipack)
19765 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
19766 pack_tmp = ishft(pack_tmp, -20)
19767 idata = idata + 1
19768 data_tmp = iand(pack_tmp, mask_right(nbits))
19769 full_data(idata) = data_tmp
19770 pack_tmp = ishft(pack_tmp, -nbits)
19771 idata = idata + 1
19772 data_tmp = ishft(pack_tmp, 10)
19773 ipack = ipack + 1
19774 pack_tmp = packed_data(ipack)
19775 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
19776 pack_tmp = ishft(pack_tmp, -10)
19777 idata = idata + 1
19778 data_tmp = iand(pack_tmp, mask_right(nbits))
19779 full_data(idata) = data_tmp
19780 pack_tmp = ishft(pack_tmp, -nbits)
19781 idata = idata + 1
19782 data_tmp = iand(pack_tmp, mask_right(nbits))
19783 full_data(idata) = data_tmp
19784 pack_tmp = ishft(pack_tmp, -nbits)
19785 END DO
19786 IF (ndata_rep < ndata) THEN
19787 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
19788 END IF
19789 END SUBROUTINE bits2ints_27
19790
19791! **************************************************************************************************
19792!> \brief ...
19793!> \param Ndata ...
19794!> \param packed_data ...
19795!> \param full_data ...
19796! **************************************************************************************************
19797 SUBROUTINE ints2bits_28(Ndata, packed_data, full_data)
19798 INTEGER, INTENT(IN) :: Ndata
19799 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
19800 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
19801
19802 INTEGER, PARAMETER :: Nbits = 28
19803
19804 INTEGER :: idata, ipack, kdata, Ndata_rep
19805 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
19806
19807 idata = 0
19808 ipack = 0
19809 ndata_rep = (ndata/64)*64
19810 DO kdata = 1, ndata_rep, 64
19811 pack_tmp = 0
19812 idata = idata + 1
19813 data_tmp = full_data(idata)
19814 data_tmp = ishft(data_tmp, 36)
19815 pack_tmp = ior(pack_tmp, data_tmp)
19816 pack_tmp = ishft(pack_tmp, -28)
19817 idata = idata + 1
19818 data_tmp = full_data(idata)
19819 data_tmp = ishft(data_tmp, 36)
19820 pack_tmp = ior(pack_tmp, data_tmp)
19821 pack_tmp = ishft(pack_tmp, -8)
19822 idata = idata + 1
19823 data_tmp = full_data(idata)
19824 data_tmp = ishft(data_tmp, 36)
19825 data_tmp = iand(data_tmp, mask_left(8))
19826 pack_tmp = ior(pack_tmp, data_tmp)
19827 ipack = ipack + 1
19828 packed_data(ipack) = pack_tmp
19829 data_tmp = full_data(idata)
19830 pack_tmp = ishft(data_tmp, 44)
19831 pack_tmp = ishft(pack_tmp, -28)
19832 idata = idata + 1
19833 data_tmp = full_data(idata)
19834 data_tmp = ishft(data_tmp, 36)
19835 pack_tmp = ior(pack_tmp, data_tmp)
19836 pack_tmp = ishft(pack_tmp, -16)
19837 idata = idata + 1
19838 data_tmp = full_data(idata)
19839 data_tmp = ishft(data_tmp, 36)
19840 data_tmp = iand(data_tmp, mask_left(16))
19841 pack_tmp = ior(pack_tmp, data_tmp)
19842 ipack = ipack + 1
19843 packed_data(ipack) = pack_tmp
19844 data_tmp = full_data(idata)
19845 pack_tmp = ishft(data_tmp, 52)
19846 pack_tmp = ishft(pack_tmp, -28)
19847 idata = idata + 1
19848 data_tmp = full_data(idata)
19849 data_tmp = ishft(data_tmp, 36)
19850 pack_tmp = ior(pack_tmp, data_tmp)
19851 pack_tmp = ishft(pack_tmp, -24)
19852 idata = idata + 1
19853 data_tmp = full_data(idata)
19854 data_tmp = ishft(data_tmp, 36)
19855 data_tmp = iand(data_tmp, mask_left(24))
19856 pack_tmp = ior(pack_tmp, data_tmp)
19857 ipack = ipack + 1
19858 packed_data(ipack) = pack_tmp
19859 data_tmp = full_data(idata)
19860 pack_tmp = ishft(data_tmp, 60)
19861 pack_tmp = ishft(pack_tmp, -28)
19862 idata = idata + 1
19863 data_tmp = full_data(idata)
19864 data_tmp = ishft(data_tmp, 36)
19865 pack_tmp = ior(pack_tmp, data_tmp)
19866 pack_tmp = ishft(pack_tmp, -28)
19867 idata = idata + 1
19868 data_tmp = full_data(idata)
19869 data_tmp = ishft(data_tmp, 36)
19870 pack_tmp = ior(pack_tmp, data_tmp)
19871 pack_tmp = ishft(pack_tmp, -4)
19872 idata = idata + 1
19873 data_tmp = full_data(idata)
19874 data_tmp = ishft(data_tmp, 36)
19875 data_tmp = iand(data_tmp, mask_left(4))
19876 pack_tmp = ior(pack_tmp, data_tmp)
19877 ipack = ipack + 1
19878 packed_data(ipack) = pack_tmp
19879 data_tmp = full_data(idata)
19880 pack_tmp = ishft(data_tmp, 40)
19881 pack_tmp = ishft(pack_tmp, -28)
19882 idata = idata + 1
19883 data_tmp = full_data(idata)
19884 data_tmp = ishft(data_tmp, 36)
19885 pack_tmp = ior(pack_tmp, data_tmp)
19886 pack_tmp = ishft(pack_tmp, -12)
19887 idata = idata + 1
19888 data_tmp = full_data(idata)
19889 data_tmp = ishft(data_tmp, 36)
19890 data_tmp = iand(data_tmp, mask_left(12))
19891 pack_tmp = ior(pack_tmp, data_tmp)
19892 ipack = ipack + 1
19893 packed_data(ipack) = pack_tmp
19894 data_tmp = full_data(idata)
19895 pack_tmp = ishft(data_tmp, 48)
19896 pack_tmp = ishft(pack_tmp, -28)
19897 idata = idata + 1
19898 data_tmp = full_data(idata)
19899 data_tmp = ishft(data_tmp, 36)
19900 pack_tmp = ior(pack_tmp, data_tmp)
19901 pack_tmp = ishft(pack_tmp, -20)
19902 idata = idata + 1
19903 data_tmp = full_data(idata)
19904 data_tmp = ishft(data_tmp, 36)
19905 data_tmp = iand(data_tmp, mask_left(20))
19906 pack_tmp = ior(pack_tmp, data_tmp)
19907 ipack = ipack + 1
19908 packed_data(ipack) = pack_tmp
19909 data_tmp = full_data(idata)
19910 pack_tmp = ishft(data_tmp, 56)
19911 pack_tmp = ishft(pack_tmp, -28)
19912 idata = idata + 1
19913 data_tmp = full_data(idata)
19914 data_tmp = ishft(data_tmp, 36)
19915 pack_tmp = ior(pack_tmp, data_tmp)
19916 pack_tmp = ishft(pack_tmp, -28)
19917 idata = idata + 1
19918 data_tmp = full_data(idata)
19919 data_tmp = ishft(data_tmp, 36)
19920 pack_tmp = ior(pack_tmp, data_tmp)
19921 pack_tmp = ishft(pack_tmp, 0)
19922 idata = idata + 1
19923 data_tmp = full_data(idata)
19924 data_tmp = ishft(data_tmp, 36)
19925 data_tmp = iand(data_tmp, mask_left(0))
19926 pack_tmp = ior(pack_tmp, data_tmp)
19927 ipack = ipack + 1
19928 packed_data(ipack) = pack_tmp
19929 data_tmp = full_data(idata)
19930 pack_tmp = ishft(data_tmp, 36)
19931 pack_tmp = ishft(pack_tmp, -28)
19932 idata = idata + 1
19933 data_tmp = full_data(idata)
19934 data_tmp = ishft(data_tmp, 36)
19935 pack_tmp = ior(pack_tmp, data_tmp)
19936 pack_tmp = ishft(pack_tmp, -8)
19937 idata = idata + 1
19938 data_tmp = full_data(idata)
19939 data_tmp = ishft(data_tmp, 36)
19940 data_tmp = iand(data_tmp, mask_left(8))
19941 pack_tmp = ior(pack_tmp, data_tmp)
19942 ipack = ipack + 1
19943 packed_data(ipack) = pack_tmp
19944 data_tmp = full_data(idata)
19945 pack_tmp = ishft(data_tmp, 44)
19946 pack_tmp = ishft(pack_tmp, -28)
19947 idata = idata + 1
19948 data_tmp = full_data(idata)
19949 data_tmp = ishft(data_tmp, 36)
19950 pack_tmp = ior(pack_tmp, data_tmp)
19951 pack_tmp = ishft(pack_tmp, -16)
19952 idata = idata + 1
19953 data_tmp = full_data(idata)
19954 data_tmp = ishft(data_tmp, 36)
19955 data_tmp = iand(data_tmp, mask_left(16))
19956 pack_tmp = ior(pack_tmp, data_tmp)
19957 ipack = ipack + 1
19958 packed_data(ipack) = pack_tmp
19959 data_tmp = full_data(idata)
19960 pack_tmp = ishft(data_tmp, 52)
19961 pack_tmp = ishft(pack_tmp, -28)
19962 idata = idata + 1
19963 data_tmp = full_data(idata)
19964 data_tmp = ishft(data_tmp, 36)
19965 pack_tmp = ior(pack_tmp, data_tmp)
19966 pack_tmp = ishft(pack_tmp, -24)
19967 idata = idata + 1
19968 data_tmp = full_data(idata)
19969 data_tmp = ishft(data_tmp, 36)
19970 data_tmp = iand(data_tmp, mask_left(24))
19971 pack_tmp = ior(pack_tmp, data_tmp)
19972 ipack = ipack + 1
19973 packed_data(ipack) = pack_tmp
19974 data_tmp = full_data(idata)
19975 pack_tmp = ishft(data_tmp, 60)
19976 pack_tmp = ishft(pack_tmp, -28)
19977 idata = idata + 1
19978 data_tmp = full_data(idata)
19979 data_tmp = ishft(data_tmp, 36)
19980 pack_tmp = ior(pack_tmp, data_tmp)
19981 pack_tmp = ishft(pack_tmp, -28)
19982 idata = idata + 1
19983 data_tmp = full_data(idata)
19984 data_tmp = ishft(data_tmp, 36)
19985 pack_tmp = ior(pack_tmp, data_tmp)
19986 pack_tmp = ishft(pack_tmp, -4)
19987 idata = idata + 1
19988 data_tmp = full_data(idata)
19989 data_tmp = ishft(data_tmp, 36)
19990 data_tmp = iand(data_tmp, mask_left(4))
19991 pack_tmp = ior(pack_tmp, data_tmp)
19992 ipack = ipack + 1
19993 packed_data(ipack) = pack_tmp
19994 data_tmp = full_data(idata)
19995 pack_tmp = ishft(data_tmp, 40)
19996 pack_tmp = ishft(pack_tmp, -28)
19997 idata = idata + 1
19998 data_tmp = full_data(idata)
19999 data_tmp = ishft(data_tmp, 36)
20000 pack_tmp = ior(pack_tmp, data_tmp)
20001 pack_tmp = ishft(pack_tmp, -12)
20002 idata = idata + 1
20003 data_tmp = full_data(idata)
20004 data_tmp = ishft(data_tmp, 36)
20005 data_tmp = iand(data_tmp, mask_left(12))
20006 pack_tmp = ior(pack_tmp, data_tmp)
20007 ipack = ipack + 1
20008 packed_data(ipack) = pack_tmp
20009 data_tmp = full_data(idata)
20010 pack_tmp = ishft(data_tmp, 48)
20011 pack_tmp = ishft(pack_tmp, -28)
20012 idata = idata + 1
20013 data_tmp = full_data(idata)
20014 data_tmp = ishft(data_tmp, 36)
20015 pack_tmp = ior(pack_tmp, data_tmp)
20016 pack_tmp = ishft(pack_tmp, -20)
20017 idata = idata + 1
20018 data_tmp = full_data(idata)
20019 data_tmp = ishft(data_tmp, 36)
20020 data_tmp = iand(data_tmp, mask_left(20))
20021 pack_tmp = ior(pack_tmp, data_tmp)
20022 ipack = ipack + 1
20023 packed_data(ipack) = pack_tmp
20024 data_tmp = full_data(idata)
20025 pack_tmp = ishft(data_tmp, 56)
20026 pack_tmp = ishft(pack_tmp, -28)
20027 idata = idata + 1
20028 data_tmp = full_data(idata)
20029 data_tmp = ishft(data_tmp, 36)
20030 pack_tmp = ior(pack_tmp, data_tmp)
20031 pack_tmp = ishft(pack_tmp, -28)
20032 idata = idata + 1
20033 data_tmp = full_data(idata)
20034 data_tmp = ishft(data_tmp, 36)
20035 pack_tmp = ior(pack_tmp, data_tmp)
20036 pack_tmp = ishft(pack_tmp, 0)
20037 idata = idata + 1
20038 data_tmp = full_data(idata)
20039 data_tmp = ishft(data_tmp, 36)
20040 data_tmp = iand(data_tmp, mask_left(0))
20041 pack_tmp = ior(pack_tmp, data_tmp)
20042 ipack = ipack + 1
20043 packed_data(ipack) = pack_tmp
20044 data_tmp = full_data(idata)
20045 pack_tmp = ishft(data_tmp, 36)
20046 pack_tmp = ishft(pack_tmp, -28)
20047 idata = idata + 1
20048 data_tmp = full_data(idata)
20049 data_tmp = ishft(data_tmp, 36)
20050 pack_tmp = ior(pack_tmp, data_tmp)
20051 pack_tmp = ishft(pack_tmp, -8)
20052 idata = idata + 1
20053 data_tmp = full_data(idata)
20054 data_tmp = ishft(data_tmp, 36)
20055 data_tmp = iand(data_tmp, mask_left(8))
20056 pack_tmp = ior(pack_tmp, data_tmp)
20057 ipack = ipack + 1
20058 packed_data(ipack) = pack_tmp
20059 data_tmp = full_data(idata)
20060 pack_tmp = ishft(data_tmp, 44)
20061 pack_tmp = ishft(pack_tmp, -28)
20062 idata = idata + 1
20063 data_tmp = full_data(idata)
20064 data_tmp = ishft(data_tmp, 36)
20065 pack_tmp = ior(pack_tmp, data_tmp)
20066 pack_tmp = ishft(pack_tmp, -16)
20067 idata = idata + 1
20068 data_tmp = full_data(idata)
20069 data_tmp = ishft(data_tmp, 36)
20070 data_tmp = iand(data_tmp, mask_left(16))
20071 pack_tmp = ior(pack_tmp, data_tmp)
20072 ipack = ipack + 1
20073 packed_data(ipack) = pack_tmp
20074 data_tmp = full_data(idata)
20075 pack_tmp = ishft(data_tmp, 52)
20076 pack_tmp = ishft(pack_tmp, -28)
20077 idata = idata + 1
20078 data_tmp = full_data(idata)
20079 data_tmp = ishft(data_tmp, 36)
20080 pack_tmp = ior(pack_tmp, data_tmp)
20081 pack_tmp = ishft(pack_tmp, -24)
20082 idata = idata + 1
20083 data_tmp = full_data(idata)
20084 data_tmp = ishft(data_tmp, 36)
20085 data_tmp = iand(data_tmp, mask_left(24))
20086 pack_tmp = ior(pack_tmp, data_tmp)
20087 ipack = ipack + 1
20088 packed_data(ipack) = pack_tmp
20089 data_tmp = full_data(idata)
20090 pack_tmp = ishft(data_tmp, 60)
20091 pack_tmp = ishft(pack_tmp, -28)
20092 idata = idata + 1
20093 data_tmp = full_data(idata)
20094 data_tmp = ishft(data_tmp, 36)
20095 pack_tmp = ior(pack_tmp, data_tmp)
20096 pack_tmp = ishft(pack_tmp, -28)
20097 idata = idata + 1
20098 data_tmp = full_data(idata)
20099 data_tmp = ishft(data_tmp, 36)
20100 pack_tmp = ior(pack_tmp, data_tmp)
20101 pack_tmp = ishft(pack_tmp, -4)
20102 idata = idata + 1
20103 data_tmp = full_data(idata)
20104 data_tmp = ishft(data_tmp, 36)
20105 data_tmp = iand(data_tmp, mask_left(4))
20106 pack_tmp = ior(pack_tmp, data_tmp)
20107 ipack = ipack + 1
20108 packed_data(ipack) = pack_tmp
20109 data_tmp = full_data(idata)
20110 pack_tmp = ishft(data_tmp, 40)
20111 pack_tmp = ishft(pack_tmp, -28)
20112 idata = idata + 1
20113 data_tmp = full_data(idata)
20114 data_tmp = ishft(data_tmp, 36)
20115 pack_tmp = ior(pack_tmp, data_tmp)
20116 pack_tmp = ishft(pack_tmp, -12)
20117 idata = idata + 1
20118 data_tmp = full_data(idata)
20119 data_tmp = ishft(data_tmp, 36)
20120 data_tmp = iand(data_tmp, mask_left(12))
20121 pack_tmp = ior(pack_tmp, data_tmp)
20122 ipack = ipack + 1
20123 packed_data(ipack) = pack_tmp
20124 data_tmp = full_data(idata)
20125 pack_tmp = ishft(data_tmp, 48)
20126 pack_tmp = ishft(pack_tmp, -28)
20127 idata = idata + 1
20128 data_tmp = full_data(idata)
20129 data_tmp = ishft(data_tmp, 36)
20130 pack_tmp = ior(pack_tmp, data_tmp)
20131 pack_tmp = ishft(pack_tmp, -20)
20132 idata = idata + 1
20133 data_tmp = full_data(idata)
20134 data_tmp = ishft(data_tmp, 36)
20135 data_tmp = iand(data_tmp, mask_left(20))
20136 pack_tmp = ior(pack_tmp, data_tmp)
20137 ipack = ipack + 1
20138 packed_data(ipack) = pack_tmp
20139 data_tmp = full_data(idata)
20140 pack_tmp = ishft(data_tmp, 56)
20141 pack_tmp = ishft(pack_tmp, -28)
20142 idata = idata + 1
20143 data_tmp = full_data(idata)
20144 data_tmp = ishft(data_tmp, 36)
20145 pack_tmp = ior(pack_tmp, data_tmp)
20146 pack_tmp = ishft(pack_tmp, -28)
20147 idata = idata + 1
20148 data_tmp = full_data(idata)
20149 data_tmp = ishft(data_tmp, 36)
20150 pack_tmp = ior(pack_tmp, data_tmp)
20151 pack_tmp = ishft(pack_tmp, 0)
20152 idata = idata + 1
20153 data_tmp = full_data(idata)
20154 data_tmp = ishft(data_tmp, 36)
20155 data_tmp = iand(data_tmp, mask_left(0))
20156 pack_tmp = ior(pack_tmp, data_tmp)
20157 ipack = ipack + 1
20158 packed_data(ipack) = pack_tmp
20159 data_tmp = full_data(idata)
20160 pack_tmp = ishft(data_tmp, 36)
20161 pack_tmp = ishft(pack_tmp, -28)
20162 idata = idata + 1
20163 data_tmp = full_data(idata)
20164 data_tmp = ishft(data_tmp, 36)
20165 pack_tmp = ior(pack_tmp, data_tmp)
20166 pack_tmp = ishft(pack_tmp, -8)
20167 idata = idata + 1
20168 data_tmp = full_data(idata)
20169 data_tmp = ishft(data_tmp, 36)
20170 data_tmp = iand(data_tmp, mask_left(8))
20171 pack_tmp = ior(pack_tmp, data_tmp)
20172 ipack = ipack + 1
20173 packed_data(ipack) = pack_tmp
20174 data_tmp = full_data(idata)
20175 pack_tmp = ishft(data_tmp, 44)
20176 pack_tmp = ishft(pack_tmp, -28)
20177 idata = idata + 1
20178 data_tmp = full_data(idata)
20179 data_tmp = ishft(data_tmp, 36)
20180 pack_tmp = ior(pack_tmp, data_tmp)
20181 pack_tmp = ishft(pack_tmp, -16)
20182 idata = idata + 1
20183 data_tmp = full_data(idata)
20184 data_tmp = ishft(data_tmp, 36)
20185 data_tmp = iand(data_tmp, mask_left(16))
20186 pack_tmp = ior(pack_tmp, data_tmp)
20187 ipack = ipack + 1
20188 packed_data(ipack) = pack_tmp
20189 data_tmp = full_data(idata)
20190 pack_tmp = ishft(data_tmp, 52)
20191 pack_tmp = ishft(pack_tmp, -28)
20192 idata = idata + 1
20193 data_tmp = full_data(idata)
20194 data_tmp = ishft(data_tmp, 36)
20195 pack_tmp = ior(pack_tmp, data_tmp)
20196 pack_tmp = ishft(pack_tmp, -24)
20197 idata = idata + 1
20198 data_tmp = full_data(idata)
20199 data_tmp = ishft(data_tmp, 36)
20200 data_tmp = iand(data_tmp, mask_left(24))
20201 pack_tmp = ior(pack_tmp, data_tmp)
20202 ipack = ipack + 1
20203 packed_data(ipack) = pack_tmp
20204 data_tmp = full_data(idata)
20205 pack_tmp = ishft(data_tmp, 60)
20206 pack_tmp = ishft(pack_tmp, -28)
20207 idata = idata + 1
20208 data_tmp = full_data(idata)
20209 data_tmp = ishft(data_tmp, 36)
20210 pack_tmp = ior(pack_tmp, data_tmp)
20211 pack_tmp = ishft(pack_tmp, -28)
20212 idata = idata + 1
20213 data_tmp = full_data(idata)
20214 data_tmp = ishft(data_tmp, 36)
20215 pack_tmp = ior(pack_tmp, data_tmp)
20216 pack_tmp = ishft(pack_tmp, -4)
20217 idata = idata + 1
20218 data_tmp = full_data(idata)
20219 data_tmp = ishft(data_tmp, 36)
20220 data_tmp = iand(data_tmp, mask_left(4))
20221 pack_tmp = ior(pack_tmp, data_tmp)
20222 ipack = ipack + 1
20223 packed_data(ipack) = pack_tmp
20224 data_tmp = full_data(idata)
20225 pack_tmp = ishft(data_tmp, 40)
20226 pack_tmp = ishft(pack_tmp, -28)
20227 idata = idata + 1
20228 data_tmp = full_data(idata)
20229 data_tmp = ishft(data_tmp, 36)
20230 pack_tmp = ior(pack_tmp, data_tmp)
20231 pack_tmp = ishft(pack_tmp, -12)
20232 idata = idata + 1
20233 data_tmp = full_data(idata)
20234 data_tmp = ishft(data_tmp, 36)
20235 data_tmp = iand(data_tmp, mask_left(12))
20236 pack_tmp = ior(pack_tmp, data_tmp)
20237 ipack = ipack + 1
20238 packed_data(ipack) = pack_tmp
20239 data_tmp = full_data(idata)
20240 pack_tmp = ishft(data_tmp, 48)
20241 pack_tmp = ishft(pack_tmp, -28)
20242 idata = idata + 1
20243 data_tmp = full_data(idata)
20244 data_tmp = ishft(data_tmp, 36)
20245 pack_tmp = ior(pack_tmp, data_tmp)
20246 pack_tmp = ishft(pack_tmp, -20)
20247 idata = idata + 1
20248 data_tmp = full_data(idata)
20249 data_tmp = ishft(data_tmp, 36)
20250 data_tmp = iand(data_tmp, mask_left(20))
20251 pack_tmp = ior(pack_tmp, data_tmp)
20252 ipack = ipack + 1
20253 packed_data(ipack) = pack_tmp
20254 data_tmp = full_data(idata)
20255 pack_tmp = ishft(data_tmp, 56)
20256 pack_tmp = ishft(pack_tmp, -28)
20257 idata = idata + 1
20258 data_tmp = full_data(idata)
20259 data_tmp = ishft(data_tmp, 36)
20260 pack_tmp = ior(pack_tmp, data_tmp)
20261 pack_tmp = ishft(pack_tmp, -28)
20262 idata = idata + 1
20263 data_tmp = full_data(idata)
20264 data_tmp = ishft(data_tmp, 36)
20265 pack_tmp = ior(pack_tmp, data_tmp)
20266 pack_tmp = ishft(pack_tmp, 0)
20267 pack_tmp = ishft(pack_tmp, 0)
20268 ipack = ipack + 1
20269 packed_data(ipack) = pack_tmp
20270 END DO
20271 IF (ndata_rep < ndata) THEN
20272 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
20273 END IF
20274 END SUBROUTINE ints2bits_28
20275
20276! **************************************************************************************************
20277!> \brief ...
20278!> \param Ndata ...
20279!> \param packed_data ...
20280!> \param full_data ...
20281! **************************************************************************************************
20282 SUBROUTINE bits2ints_28(Ndata, packed_data, full_data)
20283 INTEGER, INTENT(IN) :: Ndata
20284 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
20285 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
20286
20287 INTEGER, PARAMETER :: Nbits = 28
20288
20289 INTEGER :: idata, ipack, kdata, Ndata_rep
20290 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
20291
20292 ipack = 0
20293 idata = 0
20294 pack_tmp = 0
20295 ndata_rep = (ndata/64)*64
20296 DO kdata = 1, ndata_rep, 64
20297 idata = idata + 1
20298 data_tmp = ishft(pack_tmp, 28)
20299 ipack = ipack + 1
20300 pack_tmp = packed_data(ipack)
20301 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
20302 pack_tmp = ishft(pack_tmp, -28)
20303 idata = idata + 1
20304 data_tmp = iand(pack_tmp, mask_right(nbits))
20305 full_data(idata) = data_tmp
20306 pack_tmp = ishft(pack_tmp, -nbits)
20307 idata = idata + 1
20308 data_tmp = ishft(pack_tmp, 20)
20309 ipack = ipack + 1
20310 pack_tmp = packed_data(ipack)
20311 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
20312 pack_tmp = ishft(pack_tmp, -20)
20313 idata = idata + 1
20314 data_tmp = iand(pack_tmp, mask_right(nbits))
20315 full_data(idata) = data_tmp
20316 pack_tmp = ishft(pack_tmp, -nbits)
20317 idata = idata + 1
20318 data_tmp = ishft(pack_tmp, 12)
20319 ipack = ipack + 1
20320 pack_tmp = packed_data(ipack)
20321 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
20322 pack_tmp = ishft(pack_tmp, -12)
20323 idata = idata + 1
20324 data_tmp = iand(pack_tmp, mask_right(nbits))
20325 full_data(idata) = data_tmp
20326 pack_tmp = ishft(pack_tmp, -nbits)
20327 idata = idata + 1
20328 data_tmp = ishft(pack_tmp, 4)
20329 ipack = ipack + 1
20330 pack_tmp = packed_data(ipack)
20331 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
20332 pack_tmp = ishft(pack_tmp, -4)
20333 idata = idata + 1
20334 data_tmp = iand(pack_tmp, mask_right(nbits))
20335 full_data(idata) = data_tmp
20336 pack_tmp = ishft(pack_tmp, -nbits)
20337 idata = idata + 1
20338 data_tmp = iand(pack_tmp, mask_right(nbits))
20339 full_data(idata) = data_tmp
20340 pack_tmp = ishft(pack_tmp, -nbits)
20341 idata = idata + 1
20342 data_tmp = ishft(pack_tmp, 24)
20343 ipack = ipack + 1
20344 pack_tmp = packed_data(ipack)
20345 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
20346 pack_tmp = ishft(pack_tmp, -24)
20347 idata = idata + 1
20348 data_tmp = iand(pack_tmp, mask_right(nbits))
20349 full_data(idata) = data_tmp
20350 pack_tmp = ishft(pack_tmp, -nbits)
20351 idata = idata + 1
20352 data_tmp = ishft(pack_tmp, 16)
20353 ipack = ipack + 1
20354 pack_tmp = packed_data(ipack)
20355 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
20356 pack_tmp = ishft(pack_tmp, -16)
20357 idata = idata + 1
20358 data_tmp = iand(pack_tmp, mask_right(nbits))
20359 full_data(idata) = data_tmp
20360 pack_tmp = ishft(pack_tmp, -nbits)
20361 idata = idata + 1
20362 data_tmp = ishft(pack_tmp, 8)
20363 ipack = ipack + 1
20364 pack_tmp = packed_data(ipack)
20365 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
20366 pack_tmp = ishft(pack_tmp, -8)
20367 idata = idata + 1
20368 data_tmp = iand(pack_tmp, mask_right(nbits))
20369 full_data(idata) = data_tmp
20370 pack_tmp = ishft(pack_tmp, -nbits)
20371 idata = idata + 1
20372 data_tmp = iand(pack_tmp, mask_right(nbits))
20373 full_data(idata) = data_tmp
20374 pack_tmp = ishft(pack_tmp, -nbits)
20375 idata = idata + 1
20376 data_tmp = ishft(pack_tmp, 28)
20377 ipack = ipack + 1
20378 pack_tmp = packed_data(ipack)
20379 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
20380 pack_tmp = ishft(pack_tmp, -28)
20381 idata = idata + 1
20382 data_tmp = iand(pack_tmp, mask_right(nbits))
20383 full_data(idata) = data_tmp
20384 pack_tmp = ishft(pack_tmp, -nbits)
20385 idata = idata + 1
20386 data_tmp = ishft(pack_tmp, 20)
20387 ipack = ipack + 1
20388 pack_tmp = packed_data(ipack)
20389 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
20390 pack_tmp = ishft(pack_tmp, -20)
20391 idata = idata + 1
20392 data_tmp = iand(pack_tmp, mask_right(nbits))
20393 full_data(idata) = data_tmp
20394 pack_tmp = ishft(pack_tmp, -nbits)
20395 idata = idata + 1
20396 data_tmp = ishft(pack_tmp, 12)
20397 ipack = ipack + 1
20398 pack_tmp = packed_data(ipack)
20399 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
20400 pack_tmp = ishft(pack_tmp, -12)
20401 idata = idata + 1
20402 data_tmp = iand(pack_tmp, mask_right(nbits))
20403 full_data(idata) = data_tmp
20404 pack_tmp = ishft(pack_tmp, -nbits)
20405 idata = idata + 1
20406 data_tmp = ishft(pack_tmp, 4)
20407 ipack = ipack + 1
20408 pack_tmp = packed_data(ipack)
20409 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
20410 pack_tmp = ishft(pack_tmp, -4)
20411 idata = idata + 1
20412 data_tmp = iand(pack_tmp, mask_right(nbits))
20413 full_data(idata) = data_tmp
20414 pack_tmp = ishft(pack_tmp, -nbits)
20415 idata = idata + 1
20416 data_tmp = iand(pack_tmp, mask_right(nbits))
20417 full_data(idata) = data_tmp
20418 pack_tmp = ishft(pack_tmp, -nbits)
20419 idata = idata + 1
20420 data_tmp = ishft(pack_tmp, 24)
20421 ipack = ipack + 1
20422 pack_tmp = packed_data(ipack)
20423 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
20424 pack_tmp = ishft(pack_tmp, -24)
20425 idata = idata + 1
20426 data_tmp = iand(pack_tmp, mask_right(nbits))
20427 full_data(idata) = data_tmp
20428 pack_tmp = ishft(pack_tmp, -nbits)
20429 idata = idata + 1
20430 data_tmp = ishft(pack_tmp, 16)
20431 ipack = ipack + 1
20432 pack_tmp = packed_data(ipack)
20433 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
20434 pack_tmp = ishft(pack_tmp, -16)
20435 idata = idata + 1
20436 data_tmp = iand(pack_tmp, mask_right(nbits))
20437 full_data(idata) = data_tmp
20438 pack_tmp = ishft(pack_tmp, -nbits)
20439 idata = idata + 1
20440 data_tmp = ishft(pack_tmp, 8)
20441 ipack = ipack + 1
20442 pack_tmp = packed_data(ipack)
20443 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
20444 pack_tmp = ishft(pack_tmp, -8)
20445 idata = idata + 1
20446 data_tmp = iand(pack_tmp, mask_right(nbits))
20447 full_data(idata) = data_tmp
20448 pack_tmp = ishft(pack_tmp, -nbits)
20449 idata = idata + 1
20450 data_tmp = iand(pack_tmp, mask_right(nbits))
20451 full_data(idata) = data_tmp
20452 pack_tmp = ishft(pack_tmp, -nbits)
20453 idata = idata + 1
20454 data_tmp = ishft(pack_tmp, 28)
20455 ipack = ipack + 1
20456 pack_tmp = packed_data(ipack)
20457 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
20458 pack_tmp = ishft(pack_tmp, -28)
20459 idata = idata + 1
20460 data_tmp = iand(pack_tmp, mask_right(nbits))
20461 full_data(idata) = data_tmp
20462 pack_tmp = ishft(pack_tmp, -nbits)
20463 idata = idata + 1
20464 data_tmp = ishft(pack_tmp, 20)
20465 ipack = ipack + 1
20466 pack_tmp = packed_data(ipack)
20467 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
20468 pack_tmp = ishft(pack_tmp, -20)
20469 idata = idata + 1
20470 data_tmp = iand(pack_tmp, mask_right(nbits))
20471 full_data(idata) = data_tmp
20472 pack_tmp = ishft(pack_tmp, -nbits)
20473 idata = idata + 1
20474 data_tmp = ishft(pack_tmp, 12)
20475 ipack = ipack + 1
20476 pack_tmp = packed_data(ipack)
20477 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
20478 pack_tmp = ishft(pack_tmp, -12)
20479 idata = idata + 1
20480 data_tmp = iand(pack_tmp, mask_right(nbits))
20481 full_data(idata) = data_tmp
20482 pack_tmp = ishft(pack_tmp, -nbits)
20483 idata = idata + 1
20484 data_tmp = ishft(pack_tmp, 4)
20485 ipack = ipack + 1
20486 pack_tmp = packed_data(ipack)
20487 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
20488 pack_tmp = ishft(pack_tmp, -4)
20489 idata = idata + 1
20490 data_tmp = iand(pack_tmp, mask_right(nbits))
20491 full_data(idata) = data_tmp
20492 pack_tmp = ishft(pack_tmp, -nbits)
20493 idata = idata + 1
20494 data_tmp = iand(pack_tmp, mask_right(nbits))
20495 full_data(idata) = data_tmp
20496 pack_tmp = ishft(pack_tmp, -nbits)
20497 idata = idata + 1
20498 data_tmp = ishft(pack_tmp, 24)
20499 ipack = ipack + 1
20500 pack_tmp = packed_data(ipack)
20501 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
20502 pack_tmp = ishft(pack_tmp, -24)
20503 idata = idata + 1
20504 data_tmp = iand(pack_tmp, mask_right(nbits))
20505 full_data(idata) = data_tmp
20506 pack_tmp = ishft(pack_tmp, -nbits)
20507 idata = idata + 1
20508 data_tmp = ishft(pack_tmp, 16)
20509 ipack = ipack + 1
20510 pack_tmp = packed_data(ipack)
20511 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
20512 pack_tmp = ishft(pack_tmp, -16)
20513 idata = idata + 1
20514 data_tmp = iand(pack_tmp, mask_right(nbits))
20515 full_data(idata) = data_tmp
20516 pack_tmp = ishft(pack_tmp, -nbits)
20517 idata = idata + 1
20518 data_tmp = ishft(pack_tmp, 8)
20519 ipack = ipack + 1
20520 pack_tmp = packed_data(ipack)
20521 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
20522 pack_tmp = ishft(pack_tmp, -8)
20523 idata = idata + 1
20524 data_tmp = iand(pack_tmp, mask_right(nbits))
20525 full_data(idata) = data_tmp
20526 pack_tmp = ishft(pack_tmp, -nbits)
20527 idata = idata + 1
20528 data_tmp = iand(pack_tmp, mask_right(nbits))
20529 full_data(idata) = data_tmp
20530 pack_tmp = ishft(pack_tmp, -nbits)
20531 idata = idata + 1
20532 data_tmp = ishft(pack_tmp, 28)
20533 ipack = ipack + 1
20534 pack_tmp = packed_data(ipack)
20535 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
20536 pack_tmp = ishft(pack_tmp, -28)
20537 idata = idata + 1
20538 data_tmp = iand(pack_tmp, mask_right(nbits))
20539 full_data(idata) = data_tmp
20540 pack_tmp = ishft(pack_tmp, -nbits)
20541 idata = idata + 1
20542 data_tmp = ishft(pack_tmp, 20)
20543 ipack = ipack + 1
20544 pack_tmp = packed_data(ipack)
20545 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
20546 pack_tmp = ishft(pack_tmp, -20)
20547 idata = idata + 1
20548 data_tmp = iand(pack_tmp, mask_right(nbits))
20549 full_data(idata) = data_tmp
20550 pack_tmp = ishft(pack_tmp, -nbits)
20551 idata = idata + 1
20552 data_tmp = ishft(pack_tmp, 12)
20553 ipack = ipack + 1
20554 pack_tmp = packed_data(ipack)
20555 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
20556 pack_tmp = ishft(pack_tmp, -12)
20557 idata = idata + 1
20558 data_tmp = iand(pack_tmp, mask_right(nbits))
20559 full_data(idata) = data_tmp
20560 pack_tmp = ishft(pack_tmp, -nbits)
20561 idata = idata + 1
20562 data_tmp = ishft(pack_tmp, 4)
20563 ipack = ipack + 1
20564 pack_tmp = packed_data(ipack)
20565 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
20566 pack_tmp = ishft(pack_tmp, -4)
20567 idata = idata + 1
20568 data_tmp = iand(pack_tmp, mask_right(nbits))
20569 full_data(idata) = data_tmp
20570 pack_tmp = ishft(pack_tmp, -nbits)
20571 idata = idata + 1
20572 data_tmp = iand(pack_tmp, mask_right(nbits))
20573 full_data(idata) = data_tmp
20574 pack_tmp = ishft(pack_tmp, -nbits)
20575 idata = idata + 1
20576 data_tmp = ishft(pack_tmp, 24)
20577 ipack = ipack + 1
20578 pack_tmp = packed_data(ipack)
20579 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
20580 pack_tmp = ishft(pack_tmp, -24)
20581 idata = idata + 1
20582 data_tmp = iand(pack_tmp, mask_right(nbits))
20583 full_data(idata) = data_tmp
20584 pack_tmp = ishft(pack_tmp, -nbits)
20585 idata = idata + 1
20586 data_tmp = ishft(pack_tmp, 16)
20587 ipack = ipack + 1
20588 pack_tmp = packed_data(ipack)
20589 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
20590 pack_tmp = ishft(pack_tmp, -16)
20591 idata = idata + 1
20592 data_tmp = iand(pack_tmp, mask_right(nbits))
20593 full_data(idata) = data_tmp
20594 pack_tmp = ishft(pack_tmp, -nbits)
20595 idata = idata + 1
20596 data_tmp = ishft(pack_tmp, 8)
20597 ipack = ipack + 1
20598 pack_tmp = packed_data(ipack)
20599 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
20600 pack_tmp = ishft(pack_tmp, -8)
20601 idata = idata + 1
20602 data_tmp = iand(pack_tmp, mask_right(nbits))
20603 full_data(idata) = data_tmp
20604 pack_tmp = ishft(pack_tmp, -nbits)
20605 idata = idata + 1
20606 data_tmp = iand(pack_tmp, mask_right(nbits))
20607 full_data(idata) = data_tmp
20608 pack_tmp = ishft(pack_tmp, -nbits)
20609 END DO
20610 IF (ndata_rep < ndata) THEN
20611 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
20612 END IF
20613 END SUBROUTINE bits2ints_28
20614
20615! **************************************************************************************************
20616!> \brief ...
20617!> \param Ndata ...
20618!> \param packed_data ...
20619!> \param full_data ...
20620! **************************************************************************************************
20621 SUBROUTINE ints2bits_29(Ndata, packed_data, full_data)
20622 INTEGER, INTENT(IN) :: Ndata
20623 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
20624 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
20625
20626 INTEGER, PARAMETER :: Nbits = 29
20627
20628 INTEGER :: idata, ipack, kdata, Ndata_rep
20629 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
20630
20631 idata = 0
20632 ipack = 0
20633 ndata_rep = (ndata/64)*64
20634 DO kdata = 1, ndata_rep, 64
20635 pack_tmp = 0
20636 idata = idata + 1
20637 data_tmp = full_data(idata)
20638 data_tmp = ishft(data_tmp, 35)
20639 pack_tmp = ior(pack_tmp, data_tmp)
20640 pack_tmp = ishft(pack_tmp, -29)
20641 idata = idata + 1
20642 data_tmp = full_data(idata)
20643 data_tmp = ishft(data_tmp, 35)
20644 pack_tmp = ior(pack_tmp, data_tmp)
20645 pack_tmp = ishft(pack_tmp, -6)
20646 idata = idata + 1
20647 data_tmp = full_data(idata)
20648 data_tmp = ishft(data_tmp, 35)
20649 data_tmp = iand(data_tmp, mask_left(6))
20650 pack_tmp = ior(pack_tmp, data_tmp)
20651 ipack = ipack + 1
20652 packed_data(ipack) = pack_tmp
20653 data_tmp = full_data(idata)
20654 pack_tmp = ishft(data_tmp, 41)
20655 pack_tmp = ishft(pack_tmp, -29)
20656 idata = idata + 1
20657 data_tmp = full_data(idata)
20658 data_tmp = ishft(data_tmp, 35)
20659 pack_tmp = ior(pack_tmp, data_tmp)
20660 pack_tmp = ishft(pack_tmp, -12)
20661 idata = idata + 1
20662 data_tmp = full_data(idata)
20663 data_tmp = ishft(data_tmp, 35)
20664 data_tmp = iand(data_tmp, mask_left(12))
20665 pack_tmp = ior(pack_tmp, data_tmp)
20666 ipack = ipack + 1
20667 packed_data(ipack) = pack_tmp
20668 data_tmp = full_data(idata)
20669 pack_tmp = ishft(data_tmp, 47)
20670 pack_tmp = ishft(pack_tmp, -29)
20671 idata = idata + 1
20672 data_tmp = full_data(idata)
20673 data_tmp = ishft(data_tmp, 35)
20674 pack_tmp = ior(pack_tmp, data_tmp)
20675 pack_tmp = ishft(pack_tmp, -18)
20676 idata = idata + 1
20677 data_tmp = full_data(idata)
20678 data_tmp = ishft(data_tmp, 35)
20679 data_tmp = iand(data_tmp, mask_left(18))
20680 pack_tmp = ior(pack_tmp, data_tmp)
20681 ipack = ipack + 1
20682 packed_data(ipack) = pack_tmp
20683 data_tmp = full_data(idata)
20684 pack_tmp = ishft(data_tmp, 53)
20685 pack_tmp = ishft(pack_tmp, -29)
20686 idata = idata + 1
20687 data_tmp = full_data(idata)
20688 data_tmp = ishft(data_tmp, 35)
20689 pack_tmp = ior(pack_tmp, data_tmp)
20690 pack_tmp = ishft(pack_tmp, -24)
20691 idata = idata + 1
20692 data_tmp = full_data(idata)
20693 data_tmp = ishft(data_tmp, 35)
20694 data_tmp = iand(data_tmp, mask_left(24))
20695 pack_tmp = ior(pack_tmp, data_tmp)
20696 ipack = ipack + 1
20697 packed_data(ipack) = pack_tmp
20698 data_tmp = full_data(idata)
20699 pack_tmp = ishft(data_tmp, 59)
20700 pack_tmp = ishft(pack_tmp, -29)
20701 idata = idata + 1
20702 data_tmp = full_data(idata)
20703 data_tmp = ishft(data_tmp, 35)
20704 pack_tmp = ior(pack_tmp, data_tmp)
20705 pack_tmp = ishft(pack_tmp, -29)
20706 idata = idata + 1
20707 data_tmp = full_data(idata)
20708 data_tmp = ishft(data_tmp, 35)
20709 pack_tmp = ior(pack_tmp, data_tmp)
20710 pack_tmp = ishft(pack_tmp, -1)
20711 idata = idata + 1
20712 data_tmp = full_data(idata)
20713 data_tmp = ishft(data_tmp, 35)
20714 data_tmp = iand(data_tmp, mask_left(1))
20715 pack_tmp = ior(pack_tmp, data_tmp)
20716 ipack = ipack + 1
20717 packed_data(ipack) = pack_tmp
20718 data_tmp = full_data(idata)
20719 pack_tmp = ishft(data_tmp, 36)
20720 pack_tmp = ishft(pack_tmp, -29)
20721 idata = idata + 1
20722 data_tmp = full_data(idata)
20723 data_tmp = ishft(data_tmp, 35)
20724 pack_tmp = ior(pack_tmp, data_tmp)
20725 pack_tmp = ishft(pack_tmp, -7)
20726 idata = idata + 1
20727 data_tmp = full_data(idata)
20728 data_tmp = ishft(data_tmp, 35)
20729 data_tmp = iand(data_tmp, mask_left(7))
20730 pack_tmp = ior(pack_tmp, data_tmp)
20731 ipack = ipack + 1
20732 packed_data(ipack) = pack_tmp
20733 data_tmp = full_data(idata)
20734 pack_tmp = ishft(data_tmp, 42)
20735 pack_tmp = ishft(pack_tmp, -29)
20736 idata = idata + 1
20737 data_tmp = full_data(idata)
20738 data_tmp = ishft(data_tmp, 35)
20739 pack_tmp = ior(pack_tmp, data_tmp)
20740 pack_tmp = ishft(pack_tmp, -13)
20741 idata = idata + 1
20742 data_tmp = full_data(idata)
20743 data_tmp = ishft(data_tmp, 35)
20744 data_tmp = iand(data_tmp, mask_left(13))
20745 pack_tmp = ior(pack_tmp, data_tmp)
20746 ipack = ipack + 1
20747 packed_data(ipack) = pack_tmp
20748 data_tmp = full_data(idata)
20749 pack_tmp = ishft(data_tmp, 48)
20750 pack_tmp = ishft(pack_tmp, -29)
20751 idata = idata + 1
20752 data_tmp = full_data(idata)
20753 data_tmp = ishft(data_tmp, 35)
20754 pack_tmp = ior(pack_tmp, data_tmp)
20755 pack_tmp = ishft(pack_tmp, -19)
20756 idata = idata + 1
20757 data_tmp = full_data(idata)
20758 data_tmp = ishft(data_tmp, 35)
20759 data_tmp = iand(data_tmp, mask_left(19))
20760 pack_tmp = ior(pack_tmp, data_tmp)
20761 ipack = ipack + 1
20762 packed_data(ipack) = pack_tmp
20763 data_tmp = full_data(idata)
20764 pack_tmp = ishft(data_tmp, 54)
20765 pack_tmp = ishft(pack_tmp, -29)
20766 idata = idata + 1
20767 data_tmp = full_data(idata)
20768 data_tmp = ishft(data_tmp, 35)
20769 pack_tmp = ior(pack_tmp, data_tmp)
20770 pack_tmp = ishft(pack_tmp, -25)
20771 idata = idata + 1
20772 data_tmp = full_data(idata)
20773 data_tmp = ishft(data_tmp, 35)
20774 data_tmp = iand(data_tmp, mask_left(25))
20775 pack_tmp = ior(pack_tmp, data_tmp)
20776 ipack = ipack + 1
20777 packed_data(ipack) = pack_tmp
20778 data_tmp = full_data(idata)
20779 pack_tmp = ishft(data_tmp, 60)
20780 pack_tmp = ishft(pack_tmp, -29)
20781 idata = idata + 1
20782 data_tmp = full_data(idata)
20783 data_tmp = ishft(data_tmp, 35)
20784 pack_tmp = ior(pack_tmp, data_tmp)
20785 pack_tmp = ishft(pack_tmp, -29)
20786 idata = idata + 1
20787 data_tmp = full_data(idata)
20788 data_tmp = ishft(data_tmp, 35)
20789 pack_tmp = ior(pack_tmp, data_tmp)
20790 pack_tmp = ishft(pack_tmp, -2)
20791 idata = idata + 1
20792 data_tmp = full_data(idata)
20793 data_tmp = ishft(data_tmp, 35)
20794 data_tmp = iand(data_tmp, mask_left(2))
20795 pack_tmp = ior(pack_tmp, data_tmp)
20796 ipack = ipack + 1
20797 packed_data(ipack) = pack_tmp
20798 data_tmp = full_data(idata)
20799 pack_tmp = ishft(data_tmp, 37)
20800 pack_tmp = ishft(pack_tmp, -29)
20801 idata = idata + 1
20802 data_tmp = full_data(idata)
20803 data_tmp = ishft(data_tmp, 35)
20804 pack_tmp = ior(pack_tmp, data_tmp)
20805 pack_tmp = ishft(pack_tmp, -8)
20806 idata = idata + 1
20807 data_tmp = full_data(idata)
20808 data_tmp = ishft(data_tmp, 35)
20809 data_tmp = iand(data_tmp, mask_left(8))
20810 pack_tmp = ior(pack_tmp, data_tmp)
20811 ipack = ipack + 1
20812 packed_data(ipack) = pack_tmp
20813 data_tmp = full_data(idata)
20814 pack_tmp = ishft(data_tmp, 43)
20815 pack_tmp = ishft(pack_tmp, -29)
20816 idata = idata + 1
20817 data_tmp = full_data(idata)
20818 data_tmp = ishft(data_tmp, 35)
20819 pack_tmp = ior(pack_tmp, data_tmp)
20820 pack_tmp = ishft(pack_tmp, -14)
20821 idata = idata + 1
20822 data_tmp = full_data(idata)
20823 data_tmp = ishft(data_tmp, 35)
20824 data_tmp = iand(data_tmp, mask_left(14))
20825 pack_tmp = ior(pack_tmp, data_tmp)
20826 ipack = ipack + 1
20827 packed_data(ipack) = pack_tmp
20828 data_tmp = full_data(idata)
20829 pack_tmp = ishft(data_tmp, 49)
20830 pack_tmp = ishft(pack_tmp, -29)
20831 idata = idata + 1
20832 data_tmp = full_data(idata)
20833 data_tmp = ishft(data_tmp, 35)
20834 pack_tmp = ior(pack_tmp, data_tmp)
20835 pack_tmp = ishft(pack_tmp, -20)
20836 idata = idata + 1
20837 data_tmp = full_data(idata)
20838 data_tmp = ishft(data_tmp, 35)
20839 data_tmp = iand(data_tmp, mask_left(20))
20840 pack_tmp = ior(pack_tmp, data_tmp)
20841 ipack = ipack + 1
20842 packed_data(ipack) = pack_tmp
20843 data_tmp = full_data(idata)
20844 pack_tmp = ishft(data_tmp, 55)
20845 pack_tmp = ishft(pack_tmp, -29)
20846 idata = idata + 1
20847 data_tmp = full_data(idata)
20848 data_tmp = ishft(data_tmp, 35)
20849 pack_tmp = ior(pack_tmp, data_tmp)
20850 pack_tmp = ishft(pack_tmp, -26)
20851 idata = idata + 1
20852 data_tmp = full_data(idata)
20853 data_tmp = ishft(data_tmp, 35)
20854 data_tmp = iand(data_tmp, mask_left(26))
20855 pack_tmp = ior(pack_tmp, data_tmp)
20856 ipack = ipack + 1
20857 packed_data(ipack) = pack_tmp
20858 data_tmp = full_data(idata)
20859 pack_tmp = ishft(data_tmp, 61)
20860 pack_tmp = ishft(pack_tmp, -29)
20861 idata = idata + 1
20862 data_tmp = full_data(idata)
20863 data_tmp = ishft(data_tmp, 35)
20864 pack_tmp = ior(pack_tmp, data_tmp)
20865 pack_tmp = ishft(pack_tmp, -29)
20866 idata = idata + 1
20867 data_tmp = full_data(idata)
20868 data_tmp = ishft(data_tmp, 35)
20869 pack_tmp = ior(pack_tmp, data_tmp)
20870 pack_tmp = ishft(pack_tmp, -3)
20871 idata = idata + 1
20872 data_tmp = full_data(idata)
20873 data_tmp = ishft(data_tmp, 35)
20874 data_tmp = iand(data_tmp, mask_left(3))
20875 pack_tmp = ior(pack_tmp, data_tmp)
20876 ipack = ipack + 1
20877 packed_data(ipack) = pack_tmp
20878 data_tmp = full_data(idata)
20879 pack_tmp = ishft(data_tmp, 38)
20880 pack_tmp = ishft(pack_tmp, -29)
20881 idata = idata + 1
20882 data_tmp = full_data(idata)
20883 data_tmp = ishft(data_tmp, 35)
20884 pack_tmp = ior(pack_tmp, data_tmp)
20885 pack_tmp = ishft(pack_tmp, -9)
20886 idata = idata + 1
20887 data_tmp = full_data(idata)
20888 data_tmp = ishft(data_tmp, 35)
20889 data_tmp = iand(data_tmp, mask_left(9))
20890 pack_tmp = ior(pack_tmp, data_tmp)
20891 ipack = ipack + 1
20892 packed_data(ipack) = pack_tmp
20893 data_tmp = full_data(idata)
20894 pack_tmp = ishft(data_tmp, 44)
20895 pack_tmp = ishft(pack_tmp, -29)
20896 idata = idata + 1
20897 data_tmp = full_data(idata)
20898 data_tmp = ishft(data_tmp, 35)
20899 pack_tmp = ior(pack_tmp, data_tmp)
20900 pack_tmp = ishft(pack_tmp, -15)
20901 idata = idata + 1
20902 data_tmp = full_data(idata)
20903 data_tmp = ishft(data_tmp, 35)
20904 data_tmp = iand(data_tmp, mask_left(15))
20905 pack_tmp = ior(pack_tmp, data_tmp)
20906 ipack = ipack + 1
20907 packed_data(ipack) = pack_tmp
20908 data_tmp = full_data(idata)
20909 pack_tmp = ishft(data_tmp, 50)
20910 pack_tmp = ishft(pack_tmp, -29)
20911 idata = idata + 1
20912 data_tmp = full_data(idata)
20913 data_tmp = ishft(data_tmp, 35)
20914 pack_tmp = ior(pack_tmp, data_tmp)
20915 pack_tmp = ishft(pack_tmp, -21)
20916 idata = idata + 1
20917 data_tmp = full_data(idata)
20918 data_tmp = ishft(data_tmp, 35)
20919 data_tmp = iand(data_tmp, mask_left(21))
20920 pack_tmp = ior(pack_tmp, data_tmp)
20921 ipack = ipack + 1
20922 packed_data(ipack) = pack_tmp
20923 data_tmp = full_data(idata)
20924 pack_tmp = ishft(data_tmp, 56)
20925 pack_tmp = ishft(pack_tmp, -29)
20926 idata = idata + 1
20927 data_tmp = full_data(idata)
20928 data_tmp = ishft(data_tmp, 35)
20929 pack_tmp = ior(pack_tmp, data_tmp)
20930 pack_tmp = ishft(pack_tmp, -27)
20931 idata = idata + 1
20932 data_tmp = full_data(idata)
20933 data_tmp = ishft(data_tmp, 35)
20934 data_tmp = iand(data_tmp, mask_left(27))
20935 pack_tmp = ior(pack_tmp, data_tmp)
20936 ipack = ipack + 1
20937 packed_data(ipack) = pack_tmp
20938 data_tmp = full_data(idata)
20939 pack_tmp = ishft(data_tmp, 62)
20940 pack_tmp = ishft(pack_tmp, -29)
20941 idata = idata + 1
20942 data_tmp = full_data(idata)
20943 data_tmp = ishft(data_tmp, 35)
20944 pack_tmp = ior(pack_tmp, data_tmp)
20945 pack_tmp = ishft(pack_tmp, -29)
20946 idata = idata + 1
20947 data_tmp = full_data(idata)
20948 data_tmp = ishft(data_tmp, 35)
20949 pack_tmp = ior(pack_tmp, data_tmp)
20950 pack_tmp = ishft(pack_tmp, -4)
20951 idata = idata + 1
20952 data_tmp = full_data(idata)
20953 data_tmp = ishft(data_tmp, 35)
20954 data_tmp = iand(data_tmp, mask_left(4))
20955 pack_tmp = ior(pack_tmp, data_tmp)
20956 ipack = ipack + 1
20957 packed_data(ipack) = pack_tmp
20958 data_tmp = full_data(idata)
20959 pack_tmp = ishft(data_tmp, 39)
20960 pack_tmp = ishft(pack_tmp, -29)
20961 idata = idata + 1
20962 data_tmp = full_data(idata)
20963 data_tmp = ishft(data_tmp, 35)
20964 pack_tmp = ior(pack_tmp, data_tmp)
20965 pack_tmp = ishft(pack_tmp, -10)
20966 idata = idata + 1
20967 data_tmp = full_data(idata)
20968 data_tmp = ishft(data_tmp, 35)
20969 data_tmp = iand(data_tmp, mask_left(10))
20970 pack_tmp = ior(pack_tmp, data_tmp)
20971 ipack = ipack + 1
20972 packed_data(ipack) = pack_tmp
20973 data_tmp = full_data(idata)
20974 pack_tmp = ishft(data_tmp, 45)
20975 pack_tmp = ishft(pack_tmp, -29)
20976 idata = idata + 1
20977 data_tmp = full_data(idata)
20978 data_tmp = ishft(data_tmp, 35)
20979 pack_tmp = ior(pack_tmp, data_tmp)
20980 pack_tmp = ishft(pack_tmp, -16)
20981 idata = idata + 1
20982 data_tmp = full_data(idata)
20983 data_tmp = ishft(data_tmp, 35)
20984 data_tmp = iand(data_tmp, mask_left(16))
20985 pack_tmp = ior(pack_tmp, data_tmp)
20986 ipack = ipack + 1
20987 packed_data(ipack) = pack_tmp
20988 data_tmp = full_data(idata)
20989 pack_tmp = ishft(data_tmp, 51)
20990 pack_tmp = ishft(pack_tmp, -29)
20991 idata = idata + 1
20992 data_tmp = full_data(idata)
20993 data_tmp = ishft(data_tmp, 35)
20994 pack_tmp = ior(pack_tmp, data_tmp)
20995 pack_tmp = ishft(pack_tmp, -22)
20996 idata = idata + 1
20997 data_tmp = full_data(idata)
20998 data_tmp = ishft(data_tmp, 35)
20999 data_tmp = iand(data_tmp, mask_left(22))
21000 pack_tmp = ior(pack_tmp, data_tmp)
21001 ipack = ipack + 1
21002 packed_data(ipack) = pack_tmp
21003 data_tmp = full_data(idata)
21004 pack_tmp = ishft(data_tmp, 57)
21005 pack_tmp = ishft(pack_tmp, -29)
21006 idata = idata + 1
21007 data_tmp = full_data(idata)
21008 data_tmp = ishft(data_tmp, 35)
21009 pack_tmp = ior(pack_tmp, data_tmp)
21010 pack_tmp = ishft(pack_tmp, -28)
21011 idata = idata + 1
21012 data_tmp = full_data(idata)
21013 data_tmp = ishft(data_tmp, 35)
21014 data_tmp = iand(data_tmp, mask_left(28))
21015 pack_tmp = ior(pack_tmp, data_tmp)
21016 ipack = ipack + 1
21017 packed_data(ipack) = pack_tmp
21018 data_tmp = full_data(idata)
21019 pack_tmp = ishft(data_tmp, 63)
21020 pack_tmp = ishft(pack_tmp, -29)
21021 idata = idata + 1
21022 data_tmp = full_data(idata)
21023 data_tmp = ishft(data_tmp, 35)
21024 pack_tmp = ior(pack_tmp, data_tmp)
21025 pack_tmp = ishft(pack_tmp, -29)
21026 idata = idata + 1
21027 data_tmp = full_data(idata)
21028 data_tmp = ishft(data_tmp, 35)
21029 pack_tmp = ior(pack_tmp, data_tmp)
21030 pack_tmp = ishft(pack_tmp, -5)
21031 idata = idata + 1
21032 data_tmp = full_data(idata)
21033 data_tmp = ishft(data_tmp, 35)
21034 data_tmp = iand(data_tmp, mask_left(5))
21035 pack_tmp = ior(pack_tmp, data_tmp)
21036 ipack = ipack + 1
21037 packed_data(ipack) = pack_tmp
21038 data_tmp = full_data(idata)
21039 pack_tmp = ishft(data_tmp, 40)
21040 pack_tmp = ishft(pack_tmp, -29)
21041 idata = idata + 1
21042 data_tmp = full_data(idata)
21043 data_tmp = ishft(data_tmp, 35)
21044 pack_tmp = ior(pack_tmp, data_tmp)
21045 pack_tmp = ishft(pack_tmp, -11)
21046 idata = idata + 1
21047 data_tmp = full_data(idata)
21048 data_tmp = ishft(data_tmp, 35)
21049 data_tmp = iand(data_tmp, mask_left(11))
21050 pack_tmp = ior(pack_tmp, data_tmp)
21051 ipack = ipack + 1
21052 packed_data(ipack) = pack_tmp
21053 data_tmp = full_data(idata)
21054 pack_tmp = ishft(data_tmp, 46)
21055 pack_tmp = ishft(pack_tmp, -29)
21056 idata = idata + 1
21057 data_tmp = full_data(idata)
21058 data_tmp = ishft(data_tmp, 35)
21059 pack_tmp = ior(pack_tmp, data_tmp)
21060 pack_tmp = ishft(pack_tmp, -17)
21061 idata = idata + 1
21062 data_tmp = full_data(idata)
21063 data_tmp = ishft(data_tmp, 35)
21064 data_tmp = iand(data_tmp, mask_left(17))
21065 pack_tmp = ior(pack_tmp, data_tmp)
21066 ipack = ipack + 1
21067 packed_data(ipack) = pack_tmp
21068 data_tmp = full_data(idata)
21069 pack_tmp = ishft(data_tmp, 52)
21070 pack_tmp = ishft(pack_tmp, -29)
21071 idata = idata + 1
21072 data_tmp = full_data(idata)
21073 data_tmp = ishft(data_tmp, 35)
21074 pack_tmp = ior(pack_tmp, data_tmp)
21075 pack_tmp = ishft(pack_tmp, -23)
21076 idata = idata + 1
21077 data_tmp = full_data(idata)
21078 data_tmp = ishft(data_tmp, 35)
21079 data_tmp = iand(data_tmp, mask_left(23))
21080 pack_tmp = ior(pack_tmp, data_tmp)
21081 ipack = ipack + 1
21082 packed_data(ipack) = pack_tmp
21083 data_tmp = full_data(idata)
21084 pack_tmp = ishft(data_tmp, 58)
21085 pack_tmp = ishft(pack_tmp, -29)
21086 idata = idata + 1
21087 data_tmp = full_data(idata)
21088 data_tmp = ishft(data_tmp, 35)
21089 pack_tmp = ior(pack_tmp, data_tmp)
21090 pack_tmp = ishft(pack_tmp, -29)
21091 idata = idata + 1
21092 data_tmp = full_data(idata)
21093 data_tmp = ishft(data_tmp, 35)
21094 pack_tmp = ior(pack_tmp, data_tmp)
21095 pack_tmp = ishft(pack_tmp, 0)
21096 pack_tmp = ishft(pack_tmp, 0)
21097 ipack = ipack + 1
21098 packed_data(ipack) = pack_tmp
21099 END DO
21100 IF (ndata_rep < ndata) THEN
21101 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
21102 END IF
21103 END SUBROUTINE ints2bits_29
21104
21105! **************************************************************************************************
21106!> \brief ...
21107!> \param Ndata ...
21108!> \param packed_data ...
21109!> \param full_data ...
21110! **************************************************************************************************
21111 SUBROUTINE bits2ints_29(Ndata, packed_data, full_data)
21112 INTEGER, INTENT(IN) :: Ndata
21113 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
21114 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
21115
21116 INTEGER, PARAMETER :: Nbits = 29
21117
21118 INTEGER :: idata, ipack, kdata, Ndata_rep
21119 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
21120
21121 ipack = 0
21122 idata = 0
21123 pack_tmp = 0
21124 ndata_rep = (ndata/64)*64
21125 DO kdata = 1, ndata_rep, 64
21126 idata = idata + 1
21127 data_tmp = ishft(pack_tmp, 29)
21128 ipack = ipack + 1
21129 pack_tmp = packed_data(ipack)
21130 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
21131 pack_tmp = ishft(pack_tmp, -29)
21132 idata = idata + 1
21133 data_tmp = iand(pack_tmp, mask_right(nbits))
21134 full_data(idata) = data_tmp
21135 pack_tmp = ishft(pack_tmp, -nbits)
21136 idata = idata + 1
21137 data_tmp = ishft(pack_tmp, 23)
21138 ipack = ipack + 1
21139 pack_tmp = packed_data(ipack)
21140 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
21141 pack_tmp = ishft(pack_tmp, -23)
21142 idata = idata + 1
21143 data_tmp = iand(pack_tmp, mask_right(nbits))
21144 full_data(idata) = data_tmp
21145 pack_tmp = ishft(pack_tmp, -nbits)
21146 idata = idata + 1
21147 data_tmp = ishft(pack_tmp, 17)
21148 ipack = ipack + 1
21149 pack_tmp = packed_data(ipack)
21150 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
21151 pack_tmp = ishft(pack_tmp, -17)
21152 idata = idata + 1
21153 data_tmp = iand(pack_tmp, mask_right(nbits))
21154 full_data(idata) = data_tmp
21155 pack_tmp = ishft(pack_tmp, -nbits)
21156 idata = idata + 1
21157 data_tmp = ishft(pack_tmp, 11)
21158 ipack = ipack + 1
21159 pack_tmp = packed_data(ipack)
21160 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
21161 pack_tmp = ishft(pack_tmp, -11)
21162 idata = idata + 1
21163 data_tmp = iand(pack_tmp, mask_right(nbits))
21164 full_data(idata) = data_tmp
21165 pack_tmp = ishft(pack_tmp, -nbits)
21166 idata = idata + 1
21167 data_tmp = ishft(pack_tmp, 5)
21168 ipack = ipack + 1
21169 pack_tmp = packed_data(ipack)
21170 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
21171 pack_tmp = ishft(pack_tmp, -5)
21172 idata = idata + 1
21173 data_tmp = iand(pack_tmp, mask_right(nbits))
21174 full_data(idata) = data_tmp
21175 pack_tmp = ishft(pack_tmp, -nbits)
21176 idata = idata + 1
21177 data_tmp = iand(pack_tmp, mask_right(nbits))
21178 full_data(idata) = data_tmp
21179 pack_tmp = ishft(pack_tmp, -nbits)
21180 idata = idata + 1
21181 data_tmp = ishft(pack_tmp, 28)
21182 ipack = ipack + 1
21183 pack_tmp = packed_data(ipack)
21184 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
21185 pack_tmp = ishft(pack_tmp, -28)
21186 idata = idata + 1
21187 data_tmp = iand(pack_tmp, mask_right(nbits))
21188 full_data(idata) = data_tmp
21189 pack_tmp = ishft(pack_tmp, -nbits)
21190 idata = idata + 1
21191 data_tmp = ishft(pack_tmp, 22)
21192 ipack = ipack + 1
21193 pack_tmp = packed_data(ipack)
21194 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
21195 pack_tmp = ishft(pack_tmp, -22)
21196 idata = idata + 1
21197 data_tmp = iand(pack_tmp, mask_right(nbits))
21198 full_data(idata) = data_tmp
21199 pack_tmp = ishft(pack_tmp, -nbits)
21200 idata = idata + 1
21201 data_tmp = ishft(pack_tmp, 16)
21202 ipack = ipack + 1
21203 pack_tmp = packed_data(ipack)
21204 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
21205 pack_tmp = ishft(pack_tmp, -16)
21206 idata = idata + 1
21207 data_tmp = iand(pack_tmp, mask_right(nbits))
21208 full_data(idata) = data_tmp
21209 pack_tmp = ishft(pack_tmp, -nbits)
21210 idata = idata + 1
21211 data_tmp = ishft(pack_tmp, 10)
21212 ipack = ipack + 1
21213 pack_tmp = packed_data(ipack)
21214 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
21215 pack_tmp = ishft(pack_tmp, -10)
21216 idata = idata + 1
21217 data_tmp = iand(pack_tmp, mask_right(nbits))
21218 full_data(idata) = data_tmp
21219 pack_tmp = ishft(pack_tmp, -nbits)
21220 idata = idata + 1
21221 data_tmp = ishft(pack_tmp, 4)
21222 ipack = ipack + 1
21223 pack_tmp = packed_data(ipack)
21224 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
21225 pack_tmp = ishft(pack_tmp, -4)
21226 idata = idata + 1
21227 data_tmp = iand(pack_tmp, mask_right(nbits))
21228 full_data(idata) = data_tmp
21229 pack_tmp = ishft(pack_tmp, -nbits)
21230 idata = idata + 1
21231 data_tmp = iand(pack_tmp, mask_right(nbits))
21232 full_data(idata) = data_tmp
21233 pack_tmp = ishft(pack_tmp, -nbits)
21234 idata = idata + 1
21235 data_tmp = ishft(pack_tmp, 27)
21236 ipack = ipack + 1
21237 pack_tmp = packed_data(ipack)
21238 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
21239 pack_tmp = ishft(pack_tmp, -27)
21240 idata = idata + 1
21241 data_tmp = iand(pack_tmp, mask_right(nbits))
21242 full_data(idata) = data_tmp
21243 pack_tmp = ishft(pack_tmp, -nbits)
21244 idata = idata + 1
21245 data_tmp = ishft(pack_tmp, 21)
21246 ipack = ipack + 1
21247 pack_tmp = packed_data(ipack)
21248 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
21249 pack_tmp = ishft(pack_tmp, -21)
21250 idata = idata + 1
21251 data_tmp = iand(pack_tmp, mask_right(nbits))
21252 full_data(idata) = data_tmp
21253 pack_tmp = ishft(pack_tmp, -nbits)
21254 idata = idata + 1
21255 data_tmp = ishft(pack_tmp, 15)
21256 ipack = ipack + 1
21257 pack_tmp = packed_data(ipack)
21258 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
21259 pack_tmp = ishft(pack_tmp, -15)
21260 idata = idata + 1
21261 data_tmp = iand(pack_tmp, mask_right(nbits))
21262 full_data(idata) = data_tmp
21263 pack_tmp = ishft(pack_tmp, -nbits)
21264 idata = idata + 1
21265 data_tmp = ishft(pack_tmp, 9)
21266 ipack = ipack + 1
21267 pack_tmp = packed_data(ipack)
21268 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
21269 pack_tmp = ishft(pack_tmp, -9)
21270 idata = idata + 1
21271 data_tmp = iand(pack_tmp, mask_right(nbits))
21272 full_data(idata) = data_tmp
21273 pack_tmp = ishft(pack_tmp, -nbits)
21274 idata = idata + 1
21275 data_tmp = ishft(pack_tmp, 3)
21276 ipack = ipack + 1
21277 pack_tmp = packed_data(ipack)
21278 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
21279 pack_tmp = ishft(pack_tmp, -3)
21280 idata = idata + 1
21281 data_tmp = iand(pack_tmp, mask_right(nbits))
21282 full_data(idata) = data_tmp
21283 pack_tmp = ishft(pack_tmp, -nbits)
21284 idata = idata + 1
21285 data_tmp = iand(pack_tmp, mask_right(nbits))
21286 full_data(idata) = data_tmp
21287 pack_tmp = ishft(pack_tmp, -nbits)
21288 idata = idata + 1
21289 data_tmp = ishft(pack_tmp, 26)
21290 ipack = ipack + 1
21291 pack_tmp = packed_data(ipack)
21292 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
21293 pack_tmp = ishft(pack_tmp, -26)
21294 idata = idata + 1
21295 data_tmp = iand(pack_tmp, mask_right(nbits))
21296 full_data(idata) = data_tmp
21297 pack_tmp = ishft(pack_tmp, -nbits)
21298 idata = idata + 1
21299 data_tmp = ishft(pack_tmp, 20)
21300 ipack = ipack + 1
21301 pack_tmp = packed_data(ipack)
21302 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
21303 pack_tmp = ishft(pack_tmp, -20)
21304 idata = idata + 1
21305 data_tmp = iand(pack_tmp, mask_right(nbits))
21306 full_data(idata) = data_tmp
21307 pack_tmp = ishft(pack_tmp, -nbits)
21308 idata = idata + 1
21309 data_tmp = ishft(pack_tmp, 14)
21310 ipack = ipack + 1
21311 pack_tmp = packed_data(ipack)
21312 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
21313 pack_tmp = ishft(pack_tmp, -14)
21314 idata = idata + 1
21315 data_tmp = iand(pack_tmp, mask_right(nbits))
21316 full_data(idata) = data_tmp
21317 pack_tmp = ishft(pack_tmp, -nbits)
21318 idata = idata + 1
21319 data_tmp = ishft(pack_tmp, 8)
21320 ipack = ipack + 1
21321 pack_tmp = packed_data(ipack)
21322 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
21323 pack_tmp = ishft(pack_tmp, -8)
21324 idata = idata + 1
21325 data_tmp = iand(pack_tmp, mask_right(nbits))
21326 full_data(idata) = data_tmp
21327 pack_tmp = ishft(pack_tmp, -nbits)
21328 idata = idata + 1
21329 data_tmp = ishft(pack_tmp, 2)
21330 ipack = ipack + 1
21331 pack_tmp = packed_data(ipack)
21332 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
21333 pack_tmp = ishft(pack_tmp, -2)
21334 idata = idata + 1
21335 data_tmp = iand(pack_tmp, mask_right(nbits))
21336 full_data(idata) = data_tmp
21337 pack_tmp = ishft(pack_tmp, -nbits)
21338 idata = idata + 1
21339 data_tmp = iand(pack_tmp, mask_right(nbits))
21340 full_data(idata) = data_tmp
21341 pack_tmp = ishft(pack_tmp, -nbits)
21342 idata = idata + 1
21343 data_tmp = ishft(pack_tmp, 25)
21344 ipack = ipack + 1
21345 pack_tmp = packed_data(ipack)
21346 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
21347 pack_tmp = ishft(pack_tmp, -25)
21348 idata = idata + 1
21349 data_tmp = iand(pack_tmp, mask_right(nbits))
21350 full_data(idata) = data_tmp
21351 pack_tmp = ishft(pack_tmp, -nbits)
21352 idata = idata + 1
21353 data_tmp = ishft(pack_tmp, 19)
21354 ipack = ipack + 1
21355 pack_tmp = packed_data(ipack)
21356 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
21357 pack_tmp = ishft(pack_tmp, -19)
21358 idata = idata + 1
21359 data_tmp = iand(pack_tmp, mask_right(nbits))
21360 full_data(idata) = data_tmp
21361 pack_tmp = ishft(pack_tmp, -nbits)
21362 idata = idata + 1
21363 data_tmp = ishft(pack_tmp, 13)
21364 ipack = ipack + 1
21365 pack_tmp = packed_data(ipack)
21366 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
21367 pack_tmp = ishft(pack_tmp, -13)
21368 idata = idata + 1
21369 data_tmp = iand(pack_tmp, mask_right(nbits))
21370 full_data(idata) = data_tmp
21371 pack_tmp = ishft(pack_tmp, -nbits)
21372 idata = idata + 1
21373 data_tmp = ishft(pack_tmp, 7)
21374 ipack = ipack + 1
21375 pack_tmp = packed_data(ipack)
21376 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
21377 pack_tmp = ishft(pack_tmp, -7)
21378 idata = idata + 1
21379 data_tmp = iand(pack_tmp, mask_right(nbits))
21380 full_data(idata) = data_tmp
21381 pack_tmp = ishft(pack_tmp, -nbits)
21382 idata = idata + 1
21383 data_tmp = ishft(pack_tmp, 1)
21384 ipack = ipack + 1
21385 pack_tmp = packed_data(ipack)
21386 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
21387 pack_tmp = ishft(pack_tmp, -1)
21388 idata = idata + 1
21389 data_tmp = iand(pack_tmp, mask_right(nbits))
21390 full_data(idata) = data_tmp
21391 pack_tmp = ishft(pack_tmp, -nbits)
21392 idata = idata + 1
21393 data_tmp = iand(pack_tmp, mask_right(nbits))
21394 full_data(idata) = data_tmp
21395 pack_tmp = ishft(pack_tmp, -nbits)
21396 idata = idata + 1
21397 data_tmp = ishft(pack_tmp, 24)
21398 ipack = ipack + 1
21399 pack_tmp = packed_data(ipack)
21400 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
21401 pack_tmp = ishft(pack_tmp, -24)
21402 idata = idata + 1
21403 data_tmp = iand(pack_tmp, mask_right(nbits))
21404 full_data(idata) = data_tmp
21405 pack_tmp = ishft(pack_tmp, -nbits)
21406 idata = idata + 1
21407 data_tmp = ishft(pack_tmp, 18)
21408 ipack = ipack + 1
21409 pack_tmp = packed_data(ipack)
21410 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
21411 pack_tmp = ishft(pack_tmp, -18)
21412 idata = idata + 1
21413 data_tmp = iand(pack_tmp, mask_right(nbits))
21414 full_data(idata) = data_tmp
21415 pack_tmp = ishft(pack_tmp, -nbits)
21416 idata = idata + 1
21417 data_tmp = ishft(pack_tmp, 12)
21418 ipack = ipack + 1
21419 pack_tmp = packed_data(ipack)
21420 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
21421 pack_tmp = ishft(pack_tmp, -12)
21422 idata = idata + 1
21423 data_tmp = iand(pack_tmp, mask_right(nbits))
21424 full_data(idata) = data_tmp
21425 pack_tmp = ishft(pack_tmp, -nbits)
21426 idata = idata + 1
21427 data_tmp = ishft(pack_tmp, 6)
21428 ipack = ipack + 1
21429 pack_tmp = packed_data(ipack)
21430 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
21431 pack_tmp = ishft(pack_tmp, -6)
21432 idata = idata + 1
21433 data_tmp = iand(pack_tmp, mask_right(nbits))
21434 full_data(idata) = data_tmp
21435 pack_tmp = ishft(pack_tmp, -nbits)
21436 idata = idata + 1
21437 data_tmp = iand(pack_tmp, mask_right(nbits))
21438 full_data(idata) = data_tmp
21439 pack_tmp = ishft(pack_tmp, -nbits)
21440 END DO
21441 IF (ndata_rep < ndata) THEN
21442 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
21443 END IF
21444 END SUBROUTINE bits2ints_29
21445
21446! **************************************************************************************************
21447!> \brief ...
21448!> \param Ndata ...
21449!> \param packed_data ...
21450!> \param full_data ...
21451! **************************************************************************************************
21452 SUBROUTINE ints2bits_30(Ndata, packed_data, full_data)
21453 INTEGER, INTENT(IN) :: Ndata
21454 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
21455 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
21456
21457 INTEGER, PARAMETER :: Nbits = 30
21458
21459 INTEGER :: idata, ipack, kdata, Ndata_rep
21460 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
21461
21462 idata = 0
21463 ipack = 0
21464 ndata_rep = (ndata/64)*64
21465 DO kdata = 1, ndata_rep, 64
21466 pack_tmp = 0
21467 idata = idata + 1
21468 data_tmp = full_data(idata)
21469 data_tmp = ishft(data_tmp, 34)
21470 pack_tmp = ior(pack_tmp, data_tmp)
21471 pack_tmp = ishft(pack_tmp, -30)
21472 idata = idata + 1
21473 data_tmp = full_data(idata)
21474 data_tmp = ishft(data_tmp, 34)
21475 pack_tmp = ior(pack_tmp, data_tmp)
21476 pack_tmp = ishft(pack_tmp, -4)
21477 idata = idata + 1
21478 data_tmp = full_data(idata)
21479 data_tmp = ishft(data_tmp, 34)
21480 data_tmp = iand(data_tmp, mask_left(4))
21481 pack_tmp = ior(pack_tmp, data_tmp)
21482 ipack = ipack + 1
21483 packed_data(ipack) = pack_tmp
21484 data_tmp = full_data(idata)
21485 pack_tmp = ishft(data_tmp, 38)
21486 pack_tmp = ishft(pack_tmp, -30)
21487 idata = idata + 1
21488 data_tmp = full_data(idata)
21489 data_tmp = ishft(data_tmp, 34)
21490 pack_tmp = ior(pack_tmp, data_tmp)
21491 pack_tmp = ishft(pack_tmp, -8)
21492 idata = idata + 1
21493 data_tmp = full_data(idata)
21494 data_tmp = ishft(data_tmp, 34)
21495 data_tmp = iand(data_tmp, mask_left(8))
21496 pack_tmp = ior(pack_tmp, data_tmp)
21497 ipack = ipack + 1
21498 packed_data(ipack) = pack_tmp
21499 data_tmp = full_data(idata)
21500 pack_tmp = ishft(data_tmp, 42)
21501 pack_tmp = ishft(pack_tmp, -30)
21502 idata = idata + 1
21503 data_tmp = full_data(idata)
21504 data_tmp = ishft(data_tmp, 34)
21505 pack_tmp = ior(pack_tmp, data_tmp)
21506 pack_tmp = ishft(pack_tmp, -12)
21507 idata = idata + 1
21508 data_tmp = full_data(idata)
21509 data_tmp = ishft(data_tmp, 34)
21510 data_tmp = iand(data_tmp, mask_left(12))
21511 pack_tmp = ior(pack_tmp, data_tmp)
21512 ipack = ipack + 1
21513 packed_data(ipack) = pack_tmp
21514 data_tmp = full_data(idata)
21515 pack_tmp = ishft(data_tmp, 46)
21516 pack_tmp = ishft(pack_tmp, -30)
21517 idata = idata + 1
21518 data_tmp = full_data(idata)
21519 data_tmp = ishft(data_tmp, 34)
21520 pack_tmp = ior(pack_tmp, data_tmp)
21521 pack_tmp = ishft(pack_tmp, -16)
21522 idata = idata + 1
21523 data_tmp = full_data(idata)
21524 data_tmp = ishft(data_tmp, 34)
21525 data_tmp = iand(data_tmp, mask_left(16))
21526 pack_tmp = ior(pack_tmp, data_tmp)
21527 ipack = ipack + 1
21528 packed_data(ipack) = pack_tmp
21529 data_tmp = full_data(idata)
21530 pack_tmp = ishft(data_tmp, 50)
21531 pack_tmp = ishft(pack_tmp, -30)
21532 idata = idata + 1
21533 data_tmp = full_data(idata)
21534 data_tmp = ishft(data_tmp, 34)
21535 pack_tmp = ior(pack_tmp, data_tmp)
21536 pack_tmp = ishft(pack_tmp, -20)
21537 idata = idata + 1
21538 data_tmp = full_data(idata)
21539 data_tmp = ishft(data_tmp, 34)
21540 data_tmp = iand(data_tmp, mask_left(20))
21541 pack_tmp = ior(pack_tmp, data_tmp)
21542 ipack = ipack + 1
21543 packed_data(ipack) = pack_tmp
21544 data_tmp = full_data(idata)
21545 pack_tmp = ishft(data_tmp, 54)
21546 pack_tmp = ishft(pack_tmp, -30)
21547 idata = idata + 1
21548 data_tmp = full_data(idata)
21549 data_tmp = ishft(data_tmp, 34)
21550 pack_tmp = ior(pack_tmp, data_tmp)
21551 pack_tmp = ishft(pack_tmp, -24)
21552 idata = idata + 1
21553 data_tmp = full_data(idata)
21554 data_tmp = ishft(data_tmp, 34)
21555 data_tmp = iand(data_tmp, mask_left(24))
21556 pack_tmp = ior(pack_tmp, data_tmp)
21557 ipack = ipack + 1
21558 packed_data(ipack) = pack_tmp
21559 data_tmp = full_data(idata)
21560 pack_tmp = ishft(data_tmp, 58)
21561 pack_tmp = ishft(pack_tmp, -30)
21562 idata = idata + 1
21563 data_tmp = full_data(idata)
21564 data_tmp = ishft(data_tmp, 34)
21565 pack_tmp = ior(pack_tmp, data_tmp)
21566 pack_tmp = ishft(pack_tmp, -28)
21567 idata = idata + 1
21568 data_tmp = full_data(idata)
21569 data_tmp = ishft(data_tmp, 34)
21570 data_tmp = iand(data_tmp, mask_left(28))
21571 pack_tmp = ior(pack_tmp, data_tmp)
21572 ipack = ipack + 1
21573 packed_data(ipack) = pack_tmp
21574 data_tmp = full_data(idata)
21575 pack_tmp = ishft(data_tmp, 62)
21576 pack_tmp = ishft(pack_tmp, -30)
21577 idata = idata + 1
21578 data_tmp = full_data(idata)
21579 data_tmp = ishft(data_tmp, 34)
21580 pack_tmp = ior(pack_tmp, data_tmp)
21581 pack_tmp = ishft(pack_tmp, -30)
21582 idata = idata + 1
21583 data_tmp = full_data(idata)
21584 data_tmp = ishft(data_tmp, 34)
21585 pack_tmp = ior(pack_tmp, data_tmp)
21586 pack_tmp = ishft(pack_tmp, -2)
21587 idata = idata + 1
21588 data_tmp = full_data(idata)
21589 data_tmp = ishft(data_tmp, 34)
21590 data_tmp = iand(data_tmp, mask_left(2))
21591 pack_tmp = ior(pack_tmp, data_tmp)
21592 ipack = ipack + 1
21593 packed_data(ipack) = pack_tmp
21594 data_tmp = full_data(idata)
21595 pack_tmp = ishft(data_tmp, 36)
21596 pack_tmp = ishft(pack_tmp, -30)
21597 idata = idata + 1
21598 data_tmp = full_data(idata)
21599 data_tmp = ishft(data_tmp, 34)
21600 pack_tmp = ior(pack_tmp, data_tmp)
21601 pack_tmp = ishft(pack_tmp, -6)
21602 idata = idata + 1
21603 data_tmp = full_data(idata)
21604 data_tmp = ishft(data_tmp, 34)
21605 data_tmp = iand(data_tmp, mask_left(6))
21606 pack_tmp = ior(pack_tmp, data_tmp)
21607 ipack = ipack + 1
21608 packed_data(ipack) = pack_tmp
21609 data_tmp = full_data(idata)
21610 pack_tmp = ishft(data_tmp, 40)
21611 pack_tmp = ishft(pack_tmp, -30)
21612 idata = idata + 1
21613 data_tmp = full_data(idata)
21614 data_tmp = ishft(data_tmp, 34)
21615 pack_tmp = ior(pack_tmp, data_tmp)
21616 pack_tmp = ishft(pack_tmp, -10)
21617 idata = idata + 1
21618 data_tmp = full_data(idata)
21619 data_tmp = ishft(data_tmp, 34)
21620 data_tmp = iand(data_tmp, mask_left(10))
21621 pack_tmp = ior(pack_tmp, data_tmp)
21622 ipack = ipack + 1
21623 packed_data(ipack) = pack_tmp
21624 data_tmp = full_data(idata)
21625 pack_tmp = ishft(data_tmp, 44)
21626 pack_tmp = ishft(pack_tmp, -30)
21627 idata = idata + 1
21628 data_tmp = full_data(idata)
21629 data_tmp = ishft(data_tmp, 34)
21630 pack_tmp = ior(pack_tmp, data_tmp)
21631 pack_tmp = ishft(pack_tmp, -14)
21632 idata = idata + 1
21633 data_tmp = full_data(idata)
21634 data_tmp = ishft(data_tmp, 34)
21635 data_tmp = iand(data_tmp, mask_left(14))
21636 pack_tmp = ior(pack_tmp, data_tmp)
21637 ipack = ipack + 1
21638 packed_data(ipack) = pack_tmp
21639 data_tmp = full_data(idata)
21640 pack_tmp = ishft(data_tmp, 48)
21641 pack_tmp = ishft(pack_tmp, -30)
21642 idata = idata + 1
21643 data_tmp = full_data(idata)
21644 data_tmp = ishft(data_tmp, 34)
21645 pack_tmp = ior(pack_tmp, data_tmp)
21646 pack_tmp = ishft(pack_tmp, -18)
21647 idata = idata + 1
21648 data_tmp = full_data(idata)
21649 data_tmp = ishft(data_tmp, 34)
21650 data_tmp = iand(data_tmp, mask_left(18))
21651 pack_tmp = ior(pack_tmp, data_tmp)
21652 ipack = ipack + 1
21653 packed_data(ipack) = pack_tmp
21654 data_tmp = full_data(idata)
21655 pack_tmp = ishft(data_tmp, 52)
21656 pack_tmp = ishft(pack_tmp, -30)
21657 idata = idata + 1
21658 data_tmp = full_data(idata)
21659 data_tmp = ishft(data_tmp, 34)
21660 pack_tmp = ior(pack_tmp, data_tmp)
21661 pack_tmp = ishft(pack_tmp, -22)
21662 idata = idata + 1
21663 data_tmp = full_data(idata)
21664 data_tmp = ishft(data_tmp, 34)
21665 data_tmp = iand(data_tmp, mask_left(22))
21666 pack_tmp = ior(pack_tmp, data_tmp)
21667 ipack = ipack + 1
21668 packed_data(ipack) = pack_tmp
21669 data_tmp = full_data(idata)
21670 pack_tmp = ishft(data_tmp, 56)
21671 pack_tmp = ishft(pack_tmp, -30)
21672 idata = idata + 1
21673 data_tmp = full_data(idata)
21674 data_tmp = ishft(data_tmp, 34)
21675 pack_tmp = ior(pack_tmp, data_tmp)
21676 pack_tmp = ishft(pack_tmp, -26)
21677 idata = idata + 1
21678 data_tmp = full_data(idata)
21679 data_tmp = ishft(data_tmp, 34)
21680 data_tmp = iand(data_tmp, mask_left(26))
21681 pack_tmp = ior(pack_tmp, data_tmp)
21682 ipack = ipack + 1
21683 packed_data(ipack) = pack_tmp
21684 data_tmp = full_data(idata)
21685 pack_tmp = ishft(data_tmp, 60)
21686 pack_tmp = ishft(pack_tmp, -30)
21687 idata = idata + 1
21688 data_tmp = full_data(idata)
21689 data_tmp = ishft(data_tmp, 34)
21690 pack_tmp = ior(pack_tmp, data_tmp)
21691 pack_tmp = ishft(pack_tmp, -30)
21692 idata = idata + 1
21693 data_tmp = full_data(idata)
21694 data_tmp = ishft(data_tmp, 34)
21695 pack_tmp = ior(pack_tmp, data_tmp)
21696 pack_tmp = ishft(pack_tmp, 0)
21697 idata = idata + 1
21698 data_tmp = full_data(idata)
21699 data_tmp = ishft(data_tmp, 34)
21700 data_tmp = iand(data_tmp, mask_left(0))
21701 pack_tmp = ior(pack_tmp, data_tmp)
21702 ipack = ipack + 1
21703 packed_data(ipack) = pack_tmp
21704 data_tmp = full_data(idata)
21705 pack_tmp = ishft(data_tmp, 34)
21706 pack_tmp = ishft(pack_tmp, -30)
21707 idata = idata + 1
21708 data_tmp = full_data(idata)
21709 data_tmp = ishft(data_tmp, 34)
21710 pack_tmp = ior(pack_tmp, data_tmp)
21711 pack_tmp = ishft(pack_tmp, -4)
21712 idata = idata + 1
21713 data_tmp = full_data(idata)
21714 data_tmp = ishft(data_tmp, 34)
21715 data_tmp = iand(data_tmp, mask_left(4))
21716 pack_tmp = ior(pack_tmp, data_tmp)
21717 ipack = ipack + 1
21718 packed_data(ipack) = pack_tmp
21719 data_tmp = full_data(idata)
21720 pack_tmp = ishft(data_tmp, 38)
21721 pack_tmp = ishft(pack_tmp, -30)
21722 idata = idata + 1
21723 data_tmp = full_data(idata)
21724 data_tmp = ishft(data_tmp, 34)
21725 pack_tmp = ior(pack_tmp, data_tmp)
21726 pack_tmp = ishft(pack_tmp, -8)
21727 idata = idata + 1
21728 data_tmp = full_data(idata)
21729 data_tmp = ishft(data_tmp, 34)
21730 data_tmp = iand(data_tmp, mask_left(8))
21731 pack_tmp = ior(pack_tmp, data_tmp)
21732 ipack = ipack + 1
21733 packed_data(ipack) = pack_tmp
21734 data_tmp = full_data(idata)
21735 pack_tmp = ishft(data_tmp, 42)
21736 pack_tmp = ishft(pack_tmp, -30)
21737 idata = idata + 1
21738 data_tmp = full_data(idata)
21739 data_tmp = ishft(data_tmp, 34)
21740 pack_tmp = ior(pack_tmp, data_tmp)
21741 pack_tmp = ishft(pack_tmp, -12)
21742 idata = idata + 1
21743 data_tmp = full_data(idata)
21744 data_tmp = ishft(data_tmp, 34)
21745 data_tmp = iand(data_tmp, mask_left(12))
21746 pack_tmp = ior(pack_tmp, data_tmp)
21747 ipack = ipack + 1
21748 packed_data(ipack) = pack_tmp
21749 data_tmp = full_data(idata)
21750 pack_tmp = ishft(data_tmp, 46)
21751 pack_tmp = ishft(pack_tmp, -30)
21752 idata = idata + 1
21753 data_tmp = full_data(idata)
21754 data_tmp = ishft(data_tmp, 34)
21755 pack_tmp = ior(pack_tmp, data_tmp)
21756 pack_tmp = ishft(pack_tmp, -16)
21757 idata = idata + 1
21758 data_tmp = full_data(idata)
21759 data_tmp = ishft(data_tmp, 34)
21760 data_tmp = iand(data_tmp, mask_left(16))
21761 pack_tmp = ior(pack_tmp, data_tmp)
21762 ipack = ipack + 1
21763 packed_data(ipack) = pack_tmp
21764 data_tmp = full_data(idata)
21765 pack_tmp = ishft(data_tmp, 50)
21766 pack_tmp = ishft(pack_tmp, -30)
21767 idata = idata + 1
21768 data_tmp = full_data(idata)
21769 data_tmp = ishft(data_tmp, 34)
21770 pack_tmp = ior(pack_tmp, data_tmp)
21771 pack_tmp = ishft(pack_tmp, -20)
21772 idata = idata + 1
21773 data_tmp = full_data(idata)
21774 data_tmp = ishft(data_tmp, 34)
21775 data_tmp = iand(data_tmp, mask_left(20))
21776 pack_tmp = ior(pack_tmp, data_tmp)
21777 ipack = ipack + 1
21778 packed_data(ipack) = pack_tmp
21779 data_tmp = full_data(idata)
21780 pack_tmp = ishft(data_tmp, 54)
21781 pack_tmp = ishft(pack_tmp, -30)
21782 idata = idata + 1
21783 data_tmp = full_data(idata)
21784 data_tmp = ishft(data_tmp, 34)
21785 pack_tmp = ior(pack_tmp, data_tmp)
21786 pack_tmp = ishft(pack_tmp, -24)
21787 idata = idata + 1
21788 data_tmp = full_data(idata)
21789 data_tmp = ishft(data_tmp, 34)
21790 data_tmp = iand(data_tmp, mask_left(24))
21791 pack_tmp = ior(pack_tmp, data_tmp)
21792 ipack = ipack + 1
21793 packed_data(ipack) = pack_tmp
21794 data_tmp = full_data(idata)
21795 pack_tmp = ishft(data_tmp, 58)
21796 pack_tmp = ishft(pack_tmp, -30)
21797 idata = idata + 1
21798 data_tmp = full_data(idata)
21799 data_tmp = ishft(data_tmp, 34)
21800 pack_tmp = ior(pack_tmp, data_tmp)
21801 pack_tmp = ishft(pack_tmp, -28)
21802 idata = idata + 1
21803 data_tmp = full_data(idata)
21804 data_tmp = ishft(data_tmp, 34)
21805 data_tmp = iand(data_tmp, mask_left(28))
21806 pack_tmp = ior(pack_tmp, data_tmp)
21807 ipack = ipack + 1
21808 packed_data(ipack) = pack_tmp
21809 data_tmp = full_data(idata)
21810 pack_tmp = ishft(data_tmp, 62)
21811 pack_tmp = ishft(pack_tmp, -30)
21812 idata = idata + 1
21813 data_tmp = full_data(idata)
21814 data_tmp = ishft(data_tmp, 34)
21815 pack_tmp = ior(pack_tmp, data_tmp)
21816 pack_tmp = ishft(pack_tmp, -30)
21817 idata = idata + 1
21818 data_tmp = full_data(idata)
21819 data_tmp = ishft(data_tmp, 34)
21820 pack_tmp = ior(pack_tmp, data_tmp)
21821 pack_tmp = ishft(pack_tmp, -2)
21822 idata = idata + 1
21823 data_tmp = full_data(idata)
21824 data_tmp = ishft(data_tmp, 34)
21825 data_tmp = iand(data_tmp, mask_left(2))
21826 pack_tmp = ior(pack_tmp, data_tmp)
21827 ipack = ipack + 1
21828 packed_data(ipack) = pack_tmp
21829 data_tmp = full_data(idata)
21830 pack_tmp = ishft(data_tmp, 36)
21831 pack_tmp = ishft(pack_tmp, -30)
21832 idata = idata + 1
21833 data_tmp = full_data(idata)
21834 data_tmp = ishft(data_tmp, 34)
21835 pack_tmp = ior(pack_tmp, data_tmp)
21836 pack_tmp = ishft(pack_tmp, -6)
21837 idata = idata + 1
21838 data_tmp = full_data(idata)
21839 data_tmp = ishft(data_tmp, 34)
21840 data_tmp = iand(data_tmp, mask_left(6))
21841 pack_tmp = ior(pack_tmp, data_tmp)
21842 ipack = ipack + 1
21843 packed_data(ipack) = pack_tmp
21844 data_tmp = full_data(idata)
21845 pack_tmp = ishft(data_tmp, 40)
21846 pack_tmp = ishft(pack_tmp, -30)
21847 idata = idata + 1
21848 data_tmp = full_data(idata)
21849 data_tmp = ishft(data_tmp, 34)
21850 pack_tmp = ior(pack_tmp, data_tmp)
21851 pack_tmp = ishft(pack_tmp, -10)
21852 idata = idata + 1
21853 data_tmp = full_data(idata)
21854 data_tmp = ishft(data_tmp, 34)
21855 data_tmp = iand(data_tmp, mask_left(10))
21856 pack_tmp = ior(pack_tmp, data_tmp)
21857 ipack = ipack + 1
21858 packed_data(ipack) = pack_tmp
21859 data_tmp = full_data(idata)
21860 pack_tmp = ishft(data_tmp, 44)
21861 pack_tmp = ishft(pack_tmp, -30)
21862 idata = idata + 1
21863 data_tmp = full_data(idata)
21864 data_tmp = ishft(data_tmp, 34)
21865 pack_tmp = ior(pack_tmp, data_tmp)
21866 pack_tmp = ishft(pack_tmp, -14)
21867 idata = idata + 1
21868 data_tmp = full_data(idata)
21869 data_tmp = ishft(data_tmp, 34)
21870 data_tmp = iand(data_tmp, mask_left(14))
21871 pack_tmp = ior(pack_tmp, data_tmp)
21872 ipack = ipack + 1
21873 packed_data(ipack) = pack_tmp
21874 data_tmp = full_data(idata)
21875 pack_tmp = ishft(data_tmp, 48)
21876 pack_tmp = ishft(pack_tmp, -30)
21877 idata = idata + 1
21878 data_tmp = full_data(idata)
21879 data_tmp = ishft(data_tmp, 34)
21880 pack_tmp = ior(pack_tmp, data_tmp)
21881 pack_tmp = ishft(pack_tmp, -18)
21882 idata = idata + 1
21883 data_tmp = full_data(idata)
21884 data_tmp = ishft(data_tmp, 34)
21885 data_tmp = iand(data_tmp, mask_left(18))
21886 pack_tmp = ior(pack_tmp, data_tmp)
21887 ipack = ipack + 1
21888 packed_data(ipack) = pack_tmp
21889 data_tmp = full_data(idata)
21890 pack_tmp = ishft(data_tmp, 52)
21891 pack_tmp = ishft(pack_tmp, -30)
21892 idata = idata + 1
21893 data_tmp = full_data(idata)
21894 data_tmp = ishft(data_tmp, 34)
21895 pack_tmp = ior(pack_tmp, data_tmp)
21896 pack_tmp = ishft(pack_tmp, -22)
21897 idata = idata + 1
21898 data_tmp = full_data(idata)
21899 data_tmp = ishft(data_tmp, 34)
21900 data_tmp = iand(data_tmp, mask_left(22))
21901 pack_tmp = ior(pack_tmp, data_tmp)
21902 ipack = ipack + 1
21903 packed_data(ipack) = pack_tmp
21904 data_tmp = full_data(idata)
21905 pack_tmp = ishft(data_tmp, 56)
21906 pack_tmp = ishft(pack_tmp, -30)
21907 idata = idata + 1
21908 data_tmp = full_data(idata)
21909 data_tmp = ishft(data_tmp, 34)
21910 pack_tmp = ior(pack_tmp, data_tmp)
21911 pack_tmp = ishft(pack_tmp, -26)
21912 idata = idata + 1
21913 data_tmp = full_data(idata)
21914 data_tmp = ishft(data_tmp, 34)
21915 data_tmp = iand(data_tmp, mask_left(26))
21916 pack_tmp = ior(pack_tmp, data_tmp)
21917 ipack = ipack + 1
21918 packed_data(ipack) = pack_tmp
21919 data_tmp = full_data(idata)
21920 pack_tmp = ishft(data_tmp, 60)
21921 pack_tmp = ishft(pack_tmp, -30)
21922 idata = idata + 1
21923 data_tmp = full_data(idata)
21924 data_tmp = ishft(data_tmp, 34)
21925 pack_tmp = ior(pack_tmp, data_tmp)
21926 pack_tmp = ishft(pack_tmp, -30)
21927 idata = idata + 1
21928 data_tmp = full_data(idata)
21929 data_tmp = ishft(data_tmp, 34)
21930 pack_tmp = ior(pack_tmp, data_tmp)
21931 pack_tmp = ishft(pack_tmp, 0)
21932 pack_tmp = ishft(pack_tmp, 0)
21933 ipack = ipack + 1
21934 packed_data(ipack) = pack_tmp
21935 END DO
21936 IF (ndata_rep < ndata) THEN
21937 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
21938 END IF
21939 END SUBROUTINE ints2bits_30
21940
21941! **************************************************************************************************
21942!> \brief ...
21943!> \param Ndata ...
21944!> \param packed_data ...
21945!> \param full_data ...
21946! **************************************************************************************************
21947 SUBROUTINE bits2ints_30(Ndata, packed_data, full_data)
21948 INTEGER, INTENT(IN) :: Ndata
21949 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
21950 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
21951
21952 INTEGER, PARAMETER :: Nbits = 30
21953
21954 INTEGER :: idata, ipack, kdata, Ndata_rep
21955 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
21956
21957 ipack = 0
21958 idata = 0
21959 pack_tmp = 0
21960 ndata_rep = (ndata/64)*64
21961 DO kdata = 1, ndata_rep, 64
21962 idata = idata + 1
21963 data_tmp = ishft(pack_tmp, 30)
21964 ipack = ipack + 1
21965 pack_tmp = packed_data(ipack)
21966 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
21967 pack_tmp = ishft(pack_tmp, -30)
21968 idata = idata + 1
21969 data_tmp = iand(pack_tmp, mask_right(nbits))
21970 full_data(idata) = data_tmp
21971 pack_tmp = ishft(pack_tmp, -nbits)
21972 idata = idata + 1
21973 data_tmp = ishft(pack_tmp, 26)
21974 ipack = ipack + 1
21975 pack_tmp = packed_data(ipack)
21976 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
21977 pack_tmp = ishft(pack_tmp, -26)
21978 idata = idata + 1
21979 data_tmp = iand(pack_tmp, mask_right(nbits))
21980 full_data(idata) = data_tmp
21981 pack_tmp = ishft(pack_tmp, -nbits)
21982 idata = idata + 1
21983 data_tmp = ishft(pack_tmp, 22)
21984 ipack = ipack + 1
21985 pack_tmp = packed_data(ipack)
21986 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
21987 pack_tmp = ishft(pack_tmp, -22)
21988 idata = idata + 1
21989 data_tmp = iand(pack_tmp, mask_right(nbits))
21990 full_data(idata) = data_tmp
21991 pack_tmp = ishft(pack_tmp, -nbits)
21992 idata = idata + 1
21993 data_tmp = ishft(pack_tmp, 18)
21994 ipack = ipack + 1
21995 pack_tmp = packed_data(ipack)
21996 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
21997 pack_tmp = ishft(pack_tmp, -18)
21998 idata = idata + 1
21999 data_tmp = iand(pack_tmp, mask_right(nbits))
22000 full_data(idata) = data_tmp
22001 pack_tmp = ishft(pack_tmp, -nbits)
22002 idata = idata + 1
22003 data_tmp = ishft(pack_tmp, 14)
22004 ipack = ipack + 1
22005 pack_tmp = packed_data(ipack)
22006 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
22007 pack_tmp = ishft(pack_tmp, -14)
22008 idata = idata + 1
22009 data_tmp = iand(pack_tmp, mask_right(nbits))
22010 full_data(idata) = data_tmp
22011 pack_tmp = ishft(pack_tmp, -nbits)
22012 idata = idata + 1
22013 data_tmp = ishft(pack_tmp, 10)
22014 ipack = ipack + 1
22015 pack_tmp = packed_data(ipack)
22016 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
22017 pack_tmp = ishft(pack_tmp, -10)
22018 idata = idata + 1
22019 data_tmp = iand(pack_tmp, mask_right(nbits))
22020 full_data(idata) = data_tmp
22021 pack_tmp = ishft(pack_tmp, -nbits)
22022 idata = idata + 1
22023 data_tmp = ishft(pack_tmp, 6)
22024 ipack = ipack + 1
22025 pack_tmp = packed_data(ipack)
22026 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
22027 pack_tmp = ishft(pack_tmp, -6)
22028 idata = idata + 1
22029 data_tmp = iand(pack_tmp, mask_right(nbits))
22030 full_data(idata) = data_tmp
22031 pack_tmp = ishft(pack_tmp, -nbits)
22032 idata = idata + 1
22033 data_tmp = ishft(pack_tmp, 2)
22034 ipack = ipack + 1
22035 pack_tmp = packed_data(ipack)
22036 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
22037 pack_tmp = ishft(pack_tmp, -2)
22038 idata = idata + 1
22039 data_tmp = iand(pack_tmp, mask_right(nbits))
22040 full_data(idata) = data_tmp
22041 pack_tmp = ishft(pack_tmp, -nbits)
22042 idata = idata + 1
22043 data_tmp = iand(pack_tmp, mask_right(nbits))
22044 full_data(idata) = data_tmp
22045 pack_tmp = ishft(pack_tmp, -nbits)
22046 idata = idata + 1
22047 data_tmp = ishft(pack_tmp, 28)
22048 ipack = ipack + 1
22049 pack_tmp = packed_data(ipack)
22050 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
22051 pack_tmp = ishft(pack_tmp, -28)
22052 idata = idata + 1
22053 data_tmp = iand(pack_tmp, mask_right(nbits))
22054 full_data(idata) = data_tmp
22055 pack_tmp = ishft(pack_tmp, -nbits)
22056 idata = idata + 1
22057 data_tmp = ishft(pack_tmp, 24)
22058 ipack = ipack + 1
22059 pack_tmp = packed_data(ipack)
22060 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
22061 pack_tmp = ishft(pack_tmp, -24)
22062 idata = idata + 1
22063 data_tmp = iand(pack_tmp, mask_right(nbits))
22064 full_data(idata) = data_tmp
22065 pack_tmp = ishft(pack_tmp, -nbits)
22066 idata = idata + 1
22067 data_tmp = ishft(pack_tmp, 20)
22068 ipack = ipack + 1
22069 pack_tmp = packed_data(ipack)
22070 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
22071 pack_tmp = ishft(pack_tmp, -20)
22072 idata = idata + 1
22073 data_tmp = iand(pack_tmp, mask_right(nbits))
22074 full_data(idata) = data_tmp
22075 pack_tmp = ishft(pack_tmp, -nbits)
22076 idata = idata + 1
22077 data_tmp = ishft(pack_tmp, 16)
22078 ipack = ipack + 1
22079 pack_tmp = packed_data(ipack)
22080 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
22081 pack_tmp = ishft(pack_tmp, -16)
22082 idata = idata + 1
22083 data_tmp = iand(pack_tmp, mask_right(nbits))
22084 full_data(idata) = data_tmp
22085 pack_tmp = ishft(pack_tmp, -nbits)
22086 idata = idata + 1
22087 data_tmp = ishft(pack_tmp, 12)
22088 ipack = ipack + 1
22089 pack_tmp = packed_data(ipack)
22090 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
22091 pack_tmp = ishft(pack_tmp, -12)
22092 idata = idata + 1
22093 data_tmp = iand(pack_tmp, mask_right(nbits))
22094 full_data(idata) = data_tmp
22095 pack_tmp = ishft(pack_tmp, -nbits)
22096 idata = idata + 1
22097 data_tmp = ishft(pack_tmp, 8)
22098 ipack = ipack + 1
22099 pack_tmp = packed_data(ipack)
22100 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
22101 pack_tmp = ishft(pack_tmp, -8)
22102 idata = idata + 1
22103 data_tmp = iand(pack_tmp, mask_right(nbits))
22104 full_data(idata) = data_tmp
22105 pack_tmp = ishft(pack_tmp, -nbits)
22106 idata = idata + 1
22107 data_tmp = ishft(pack_tmp, 4)
22108 ipack = ipack + 1
22109 pack_tmp = packed_data(ipack)
22110 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
22111 pack_tmp = ishft(pack_tmp, -4)
22112 idata = idata + 1
22113 data_tmp = iand(pack_tmp, mask_right(nbits))
22114 full_data(idata) = data_tmp
22115 pack_tmp = ishft(pack_tmp, -nbits)
22116 idata = idata + 1
22117 data_tmp = iand(pack_tmp, mask_right(nbits))
22118 full_data(idata) = data_tmp
22119 pack_tmp = ishft(pack_tmp, -nbits)
22120 idata = idata + 1
22121 data_tmp = ishft(pack_tmp, 30)
22122 ipack = ipack + 1
22123 pack_tmp = packed_data(ipack)
22124 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
22125 pack_tmp = ishft(pack_tmp, -30)
22126 idata = idata + 1
22127 data_tmp = iand(pack_tmp, mask_right(nbits))
22128 full_data(idata) = data_tmp
22129 pack_tmp = ishft(pack_tmp, -nbits)
22130 idata = idata + 1
22131 data_tmp = ishft(pack_tmp, 26)
22132 ipack = ipack + 1
22133 pack_tmp = packed_data(ipack)
22134 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
22135 pack_tmp = ishft(pack_tmp, -26)
22136 idata = idata + 1
22137 data_tmp = iand(pack_tmp, mask_right(nbits))
22138 full_data(idata) = data_tmp
22139 pack_tmp = ishft(pack_tmp, -nbits)
22140 idata = idata + 1
22141 data_tmp = ishft(pack_tmp, 22)
22142 ipack = ipack + 1
22143 pack_tmp = packed_data(ipack)
22144 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
22145 pack_tmp = ishft(pack_tmp, -22)
22146 idata = idata + 1
22147 data_tmp = iand(pack_tmp, mask_right(nbits))
22148 full_data(idata) = data_tmp
22149 pack_tmp = ishft(pack_tmp, -nbits)
22150 idata = idata + 1
22151 data_tmp = ishft(pack_tmp, 18)
22152 ipack = ipack + 1
22153 pack_tmp = packed_data(ipack)
22154 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
22155 pack_tmp = ishft(pack_tmp, -18)
22156 idata = idata + 1
22157 data_tmp = iand(pack_tmp, mask_right(nbits))
22158 full_data(idata) = data_tmp
22159 pack_tmp = ishft(pack_tmp, -nbits)
22160 idata = idata + 1
22161 data_tmp = ishft(pack_tmp, 14)
22162 ipack = ipack + 1
22163 pack_tmp = packed_data(ipack)
22164 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
22165 pack_tmp = ishft(pack_tmp, -14)
22166 idata = idata + 1
22167 data_tmp = iand(pack_tmp, mask_right(nbits))
22168 full_data(idata) = data_tmp
22169 pack_tmp = ishft(pack_tmp, -nbits)
22170 idata = idata + 1
22171 data_tmp = ishft(pack_tmp, 10)
22172 ipack = ipack + 1
22173 pack_tmp = packed_data(ipack)
22174 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
22175 pack_tmp = ishft(pack_tmp, -10)
22176 idata = idata + 1
22177 data_tmp = iand(pack_tmp, mask_right(nbits))
22178 full_data(idata) = data_tmp
22179 pack_tmp = ishft(pack_tmp, -nbits)
22180 idata = idata + 1
22181 data_tmp = ishft(pack_tmp, 6)
22182 ipack = ipack + 1
22183 pack_tmp = packed_data(ipack)
22184 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
22185 pack_tmp = ishft(pack_tmp, -6)
22186 idata = idata + 1
22187 data_tmp = iand(pack_tmp, mask_right(nbits))
22188 full_data(idata) = data_tmp
22189 pack_tmp = ishft(pack_tmp, -nbits)
22190 idata = idata + 1
22191 data_tmp = ishft(pack_tmp, 2)
22192 ipack = ipack + 1
22193 pack_tmp = packed_data(ipack)
22194 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
22195 pack_tmp = ishft(pack_tmp, -2)
22196 idata = idata + 1
22197 data_tmp = iand(pack_tmp, mask_right(nbits))
22198 full_data(idata) = data_tmp
22199 pack_tmp = ishft(pack_tmp, -nbits)
22200 idata = idata + 1
22201 data_tmp = iand(pack_tmp, mask_right(nbits))
22202 full_data(idata) = data_tmp
22203 pack_tmp = ishft(pack_tmp, -nbits)
22204 idata = idata + 1
22205 data_tmp = ishft(pack_tmp, 28)
22206 ipack = ipack + 1
22207 pack_tmp = packed_data(ipack)
22208 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
22209 pack_tmp = ishft(pack_tmp, -28)
22210 idata = idata + 1
22211 data_tmp = iand(pack_tmp, mask_right(nbits))
22212 full_data(idata) = data_tmp
22213 pack_tmp = ishft(pack_tmp, -nbits)
22214 idata = idata + 1
22215 data_tmp = ishft(pack_tmp, 24)
22216 ipack = ipack + 1
22217 pack_tmp = packed_data(ipack)
22218 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
22219 pack_tmp = ishft(pack_tmp, -24)
22220 idata = idata + 1
22221 data_tmp = iand(pack_tmp, mask_right(nbits))
22222 full_data(idata) = data_tmp
22223 pack_tmp = ishft(pack_tmp, -nbits)
22224 idata = idata + 1
22225 data_tmp = ishft(pack_tmp, 20)
22226 ipack = ipack + 1
22227 pack_tmp = packed_data(ipack)
22228 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
22229 pack_tmp = ishft(pack_tmp, -20)
22230 idata = idata + 1
22231 data_tmp = iand(pack_tmp, mask_right(nbits))
22232 full_data(idata) = data_tmp
22233 pack_tmp = ishft(pack_tmp, -nbits)
22234 idata = idata + 1
22235 data_tmp = ishft(pack_tmp, 16)
22236 ipack = ipack + 1
22237 pack_tmp = packed_data(ipack)
22238 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
22239 pack_tmp = ishft(pack_tmp, -16)
22240 idata = idata + 1
22241 data_tmp = iand(pack_tmp, mask_right(nbits))
22242 full_data(idata) = data_tmp
22243 pack_tmp = ishft(pack_tmp, -nbits)
22244 idata = idata + 1
22245 data_tmp = ishft(pack_tmp, 12)
22246 ipack = ipack + 1
22247 pack_tmp = packed_data(ipack)
22248 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
22249 pack_tmp = ishft(pack_tmp, -12)
22250 idata = idata + 1
22251 data_tmp = iand(pack_tmp, mask_right(nbits))
22252 full_data(idata) = data_tmp
22253 pack_tmp = ishft(pack_tmp, -nbits)
22254 idata = idata + 1
22255 data_tmp = ishft(pack_tmp, 8)
22256 ipack = ipack + 1
22257 pack_tmp = packed_data(ipack)
22258 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
22259 pack_tmp = ishft(pack_tmp, -8)
22260 idata = idata + 1
22261 data_tmp = iand(pack_tmp, mask_right(nbits))
22262 full_data(idata) = data_tmp
22263 pack_tmp = ishft(pack_tmp, -nbits)
22264 idata = idata + 1
22265 data_tmp = ishft(pack_tmp, 4)
22266 ipack = ipack + 1
22267 pack_tmp = packed_data(ipack)
22268 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
22269 pack_tmp = ishft(pack_tmp, -4)
22270 idata = idata + 1
22271 data_tmp = iand(pack_tmp, mask_right(nbits))
22272 full_data(idata) = data_tmp
22273 pack_tmp = ishft(pack_tmp, -nbits)
22274 idata = idata + 1
22275 data_tmp = iand(pack_tmp, mask_right(nbits))
22276 full_data(idata) = data_tmp
22277 pack_tmp = ishft(pack_tmp, -nbits)
22278 END DO
22279 IF (ndata_rep < ndata) THEN
22280 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
22281 END IF
22282 END SUBROUTINE bits2ints_30
22283
22284! **************************************************************************************************
22285!> \brief ...
22286!> \param Ndata ...
22287!> \param packed_data ...
22288!> \param full_data ...
22289! **************************************************************************************************
22290 SUBROUTINE ints2bits_31(Ndata, packed_data, full_data)
22291 INTEGER, INTENT(IN) :: Ndata
22292 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
22293 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
22294
22295 INTEGER, PARAMETER :: Nbits = 31
22296
22297 INTEGER :: idata, ipack, kdata, Ndata_rep
22298 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
22299
22300 idata = 0
22301 ipack = 0
22302 ndata_rep = (ndata/64)*64
22303 DO kdata = 1, ndata_rep, 64
22304 pack_tmp = 0
22305 idata = idata + 1
22306 data_tmp = full_data(idata)
22307 data_tmp = ishft(data_tmp, 33)
22308 pack_tmp = ior(pack_tmp, data_tmp)
22309 pack_tmp = ishft(pack_tmp, -31)
22310 idata = idata + 1
22311 data_tmp = full_data(idata)
22312 data_tmp = ishft(data_tmp, 33)
22313 pack_tmp = ior(pack_tmp, data_tmp)
22314 pack_tmp = ishft(pack_tmp, -2)
22315 idata = idata + 1
22316 data_tmp = full_data(idata)
22317 data_tmp = ishft(data_tmp, 33)
22318 data_tmp = iand(data_tmp, mask_left(2))
22319 pack_tmp = ior(pack_tmp, data_tmp)
22320 ipack = ipack + 1
22321 packed_data(ipack) = pack_tmp
22322 data_tmp = full_data(idata)
22323 pack_tmp = ishft(data_tmp, 35)
22324 pack_tmp = ishft(pack_tmp, -31)
22325 idata = idata + 1
22326 data_tmp = full_data(idata)
22327 data_tmp = ishft(data_tmp, 33)
22328 pack_tmp = ior(pack_tmp, data_tmp)
22329 pack_tmp = ishft(pack_tmp, -4)
22330 idata = idata + 1
22331 data_tmp = full_data(idata)
22332 data_tmp = ishft(data_tmp, 33)
22333 data_tmp = iand(data_tmp, mask_left(4))
22334 pack_tmp = ior(pack_tmp, data_tmp)
22335 ipack = ipack + 1
22336 packed_data(ipack) = pack_tmp
22337 data_tmp = full_data(idata)
22338 pack_tmp = ishft(data_tmp, 37)
22339 pack_tmp = ishft(pack_tmp, -31)
22340 idata = idata + 1
22341 data_tmp = full_data(idata)
22342 data_tmp = ishft(data_tmp, 33)
22343 pack_tmp = ior(pack_tmp, data_tmp)
22344 pack_tmp = ishft(pack_tmp, -6)
22345 idata = idata + 1
22346 data_tmp = full_data(idata)
22347 data_tmp = ishft(data_tmp, 33)
22348 data_tmp = iand(data_tmp, mask_left(6))
22349 pack_tmp = ior(pack_tmp, data_tmp)
22350 ipack = ipack + 1
22351 packed_data(ipack) = pack_tmp
22352 data_tmp = full_data(idata)
22353 pack_tmp = ishft(data_tmp, 39)
22354 pack_tmp = ishft(pack_tmp, -31)
22355 idata = idata + 1
22356 data_tmp = full_data(idata)
22357 data_tmp = ishft(data_tmp, 33)
22358 pack_tmp = ior(pack_tmp, data_tmp)
22359 pack_tmp = ishft(pack_tmp, -8)
22360 idata = idata + 1
22361 data_tmp = full_data(idata)
22362 data_tmp = ishft(data_tmp, 33)
22363 data_tmp = iand(data_tmp, mask_left(8))
22364 pack_tmp = ior(pack_tmp, data_tmp)
22365 ipack = ipack + 1
22366 packed_data(ipack) = pack_tmp
22367 data_tmp = full_data(idata)
22368 pack_tmp = ishft(data_tmp, 41)
22369 pack_tmp = ishft(pack_tmp, -31)
22370 idata = idata + 1
22371 data_tmp = full_data(idata)
22372 data_tmp = ishft(data_tmp, 33)
22373 pack_tmp = ior(pack_tmp, data_tmp)
22374 pack_tmp = ishft(pack_tmp, -10)
22375 idata = idata + 1
22376 data_tmp = full_data(idata)
22377 data_tmp = ishft(data_tmp, 33)
22378 data_tmp = iand(data_tmp, mask_left(10))
22379 pack_tmp = ior(pack_tmp, data_tmp)
22380 ipack = ipack + 1
22381 packed_data(ipack) = pack_tmp
22382 data_tmp = full_data(idata)
22383 pack_tmp = ishft(data_tmp, 43)
22384 pack_tmp = ishft(pack_tmp, -31)
22385 idata = idata + 1
22386 data_tmp = full_data(idata)
22387 data_tmp = ishft(data_tmp, 33)
22388 pack_tmp = ior(pack_tmp, data_tmp)
22389 pack_tmp = ishft(pack_tmp, -12)
22390 idata = idata + 1
22391 data_tmp = full_data(idata)
22392 data_tmp = ishft(data_tmp, 33)
22393 data_tmp = iand(data_tmp, mask_left(12))
22394 pack_tmp = ior(pack_tmp, data_tmp)
22395 ipack = ipack + 1
22396 packed_data(ipack) = pack_tmp
22397 data_tmp = full_data(idata)
22398 pack_tmp = ishft(data_tmp, 45)
22399 pack_tmp = ishft(pack_tmp, -31)
22400 idata = idata + 1
22401 data_tmp = full_data(idata)
22402 data_tmp = ishft(data_tmp, 33)
22403 pack_tmp = ior(pack_tmp, data_tmp)
22404 pack_tmp = ishft(pack_tmp, -14)
22405 idata = idata + 1
22406 data_tmp = full_data(idata)
22407 data_tmp = ishft(data_tmp, 33)
22408 data_tmp = iand(data_tmp, mask_left(14))
22409 pack_tmp = ior(pack_tmp, data_tmp)
22410 ipack = ipack + 1
22411 packed_data(ipack) = pack_tmp
22412 data_tmp = full_data(idata)
22413 pack_tmp = ishft(data_tmp, 47)
22414 pack_tmp = ishft(pack_tmp, -31)
22415 idata = idata + 1
22416 data_tmp = full_data(idata)
22417 data_tmp = ishft(data_tmp, 33)
22418 pack_tmp = ior(pack_tmp, data_tmp)
22419 pack_tmp = ishft(pack_tmp, -16)
22420 idata = idata + 1
22421 data_tmp = full_data(idata)
22422 data_tmp = ishft(data_tmp, 33)
22423 data_tmp = iand(data_tmp, mask_left(16))
22424 pack_tmp = ior(pack_tmp, data_tmp)
22425 ipack = ipack + 1
22426 packed_data(ipack) = pack_tmp
22427 data_tmp = full_data(idata)
22428 pack_tmp = ishft(data_tmp, 49)
22429 pack_tmp = ishft(pack_tmp, -31)
22430 idata = idata + 1
22431 data_tmp = full_data(idata)
22432 data_tmp = ishft(data_tmp, 33)
22433 pack_tmp = ior(pack_tmp, data_tmp)
22434 pack_tmp = ishft(pack_tmp, -18)
22435 idata = idata + 1
22436 data_tmp = full_data(idata)
22437 data_tmp = ishft(data_tmp, 33)
22438 data_tmp = iand(data_tmp, mask_left(18))
22439 pack_tmp = ior(pack_tmp, data_tmp)
22440 ipack = ipack + 1
22441 packed_data(ipack) = pack_tmp
22442 data_tmp = full_data(idata)
22443 pack_tmp = ishft(data_tmp, 51)
22444 pack_tmp = ishft(pack_tmp, -31)
22445 idata = idata + 1
22446 data_tmp = full_data(idata)
22447 data_tmp = ishft(data_tmp, 33)
22448 pack_tmp = ior(pack_tmp, data_tmp)
22449 pack_tmp = ishft(pack_tmp, -20)
22450 idata = idata + 1
22451 data_tmp = full_data(idata)
22452 data_tmp = ishft(data_tmp, 33)
22453 data_tmp = iand(data_tmp, mask_left(20))
22454 pack_tmp = ior(pack_tmp, data_tmp)
22455 ipack = ipack + 1
22456 packed_data(ipack) = pack_tmp
22457 data_tmp = full_data(idata)
22458 pack_tmp = ishft(data_tmp, 53)
22459 pack_tmp = ishft(pack_tmp, -31)
22460 idata = idata + 1
22461 data_tmp = full_data(idata)
22462 data_tmp = ishft(data_tmp, 33)
22463 pack_tmp = ior(pack_tmp, data_tmp)
22464 pack_tmp = ishft(pack_tmp, -22)
22465 idata = idata + 1
22466 data_tmp = full_data(idata)
22467 data_tmp = ishft(data_tmp, 33)
22468 data_tmp = iand(data_tmp, mask_left(22))
22469 pack_tmp = ior(pack_tmp, data_tmp)
22470 ipack = ipack + 1
22471 packed_data(ipack) = pack_tmp
22472 data_tmp = full_data(idata)
22473 pack_tmp = ishft(data_tmp, 55)
22474 pack_tmp = ishft(pack_tmp, -31)
22475 idata = idata + 1
22476 data_tmp = full_data(idata)
22477 data_tmp = ishft(data_tmp, 33)
22478 pack_tmp = ior(pack_tmp, data_tmp)
22479 pack_tmp = ishft(pack_tmp, -24)
22480 idata = idata + 1
22481 data_tmp = full_data(idata)
22482 data_tmp = ishft(data_tmp, 33)
22483 data_tmp = iand(data_tmp, mask_left(24))
22484 pack_tmp = ior(pack_tmp, data_tmp)
22485 ipack = ipack + 1
22486 packed_data(ipack) = pack_tmp
22487 data_tmp = full_data(idata)
22488 pack_tmp = ishft(data_tmp, 57)
22489 pack_tmp = ishft(pack_tmp, -31)
22490 idata = idata + 1
22491 data_tmp = full_data(idata)
22492 data_tmp = ishft(data_tmp, 33)
22493 pack_tmp = ior(pack_tmp, data_tmp)
22494 pack_tmp = ishft(pack_tmp, -26)
22495 idata = idata + 1
22496 data_tmp = full_data(idata)
22497 data_tmp = ishft(data_tmp, 33)
22498 data_tmp = iand(data_tmp, mask_left(26))
22499 pack_tmp = ior(pack_tmp, data_tmp)
22500 ipack = ipack + 1
22501 packed_data(ipack) = pack_tmp
22502 data_tmp = full_data(idata)
22503 pack_tmp = ishft(data_tmp, 59)
22504 pack_tmp = ishft(pack_tmp, -31)
22505 idata = idata + 1
22506 data_tmp = full_data(idata)
22507 data_tmp = ishft(data_tmp, 33)
22508 pack_tmp = ior(pack_tmp, data_tmp)
22509 pack_tmp = ishft(pack_tmp, -28)
22510 idata = idata + 1
22511 data_tmp = full_data(idata)
22512 data_tmp = ishft(data_tmp, 33)
22513 data_tmp = iand(data_tmp, mask_left(28))
22514 pack_tmp = ior(pack_tmp, data_tmp)
22515 ipack = ipack + 1
22516 packed_data(ipack) = pack_tmp
22517 data_tmp = full_data(idata)
22518 pack_tmp = ishft(data_tmp, 61)
22519 pack_tmp = ishft(pack_tmp, -31)
22520 idata = idata + 1
22521 data_tmp = full_data(idata)
22522 data_tmp = ishft(data_tmp, 33)
22523 pack_tmp = ior(pack_tmp, data_tmp)
22524 pack_tmp = ishft(pack_tmp, -30)
22525 idata = idata + 1
22526 data_tmp = full_data(idata)
22527 data_tmp = ishft(data_tmp, 33)
22528 data_tmp = iand(data_tmp, mask_left(30))
22529 pack_tmp = ior(pack_tmp, data_tmp)
22530 ipack = ipack + 1
22531 packed_data(ipack) = pack_tmp
22532 data_tmp = full_data(idata)
22533 pack_tmp = ishft(data_tmp, 63)
22534 pack_tmp = ishft(pack_tmp, -31)
22535 idata = idata + 1
22536 data_tmp = full_data(idata)
22537 data_tmp = ishft(data_tmp, 33)
22538 pack_tmp = ior(pack_tmp, data_tmp)
22539 pack_tmp = ishft(pack_tmp, -31)
22540 idata = idata + 1
22541 data_tmp = full_data(idata)
22542 data_tmp = ishft(data_tmp, 33)
22543 pack_tmp = ior(pack_tmp, data_tmp)
22544 pack_tmp = ishft(pack_tmp, -1)
22545 idata = idata + 1
22546 data_tmp = full_data(idata)
22547 data_tmp = ishft(data_tmp, 33)
22548 data_tmp = iand(data_tmp, mask_left(1))
22549 pack_tmp = ior(pack_tmp, data_tmp)
22550 ipack = ipack + 1
22551 packed_data(ipack) = pack_tmp
22552 data_tmp = full_data(idata)
22553 pack_tmp = ishft(data_tmp, 34)
22554 pack_tmp = ishft(pack_tmp, -31)
22555 idata = idata + 1
22556 data_tmp = full_data(idata)
22557 data_tmp = ishft(data_tmp, 33)
22558 pack_tmp = ior(pack_tmp, data_tmp)
22559 pack_tmp = ishft(pack_tmp, -3)
22560 idata = idata + 1
22561 data_tmp = full_data(idata)
22562 data_tmp = ishft(data_tmp, 33)
22563 data_tmp = iand(data_tmp, mask_left(3))
22564 pack_tmp = ior(pack_tmp, data_tmp)
22565 ipack = ipack + 1
22566 packed_data(ipack) = pack_tmp
22567 data_tmp = full_data(idata)
22568 pack_tmp = ishft(data_tmp, 36)
22569 pack_tmp = ishft(pack_tmp, -31)
22570 idata = idata + 1
22571 data_tmp = full_data(idata)
22572 data_tmp = ishft(data_tmp, 33)
22573 pack_tmp = ior(pack_tmp, data_tmp)
22574 pack_tmp = ishft(pack_tmp, -5)
22575 idata = idata + 1
22576 data_tmp = full_data(idata)
22577 data_tmp = ishft(data_tmp, 33)
22578 data_tmp = iand(data_tmp, mask_left(5))
22579 pack_tmp = ior(pack_tmp, data_tmp)
22580 ipack = ipack + 1
22581 packed_data(ipack) = pack_tmp
22582 data_tmp = full_data(idata)
22583 pack_tmp = ishft(data_tmp, 38)
22584 pack_tmp = ishft(pack_tmp, -31)
22585 idata = idata + 1
22586 data_tmp = full_data(idata)
22587 data_tmp = ishft(data_tmp, 33)
22588 pack_tmp = ior(pack_tmp, data_tmp)
22589 pack_tmp = ishft(pack_tmp, -7)
22590 idata = idata + 1
22591 data_tmp = full_data(idata)
22592 data_tmp = ishft(data_tmp, 33)
22593 data_tmp = iand(data_tmp, mask_left(7))
22594 pack_tmp = ior(pack_tmp, data_tmp)
22595 ipack = ipack + 1
22596 packed_data(ipack) = pack_tmp
22597 data_tmp = full_data(idata)
22598 pack_tmp = ishft(data_tmp, 40)
22599 pack_tmp = ishft(pack_tmp, -31)
22600 idata = idata + 1
22601 data_tmp = full_data(idata)
22602 data_tmp = ishft(data_tmp, 33)
22603 pack_tmp = ior(pack_tmp, data_tmp)
22604 pack_tmp = ishft(pack_tmp, -9)
22605 idata = idata + 1
22606 data_tmp = full_data(idata)
22607 data_tmp = ishft(data_tmp, 33)
22608 data_tmp = iand(data_tmp, mask_left(9))
22609 pack_tmp = ior(pack_tmp, data_tmp)
22610 ipack = ipack + 1
22611 packed_data(ipack) = pack_tmp
22612 data_tmp = full_data(idata)
22613 pack_tmp = ishft(data_tmp, 42)
22614 pack_tmp = ishft(pack_tmp, -31)
22615 idata = idata + 1
22616 data_tmp = full_data(idata)
22617 data_tmp = ishft(data_tmp, 33)
22618 pack_tmp = ior(pack_tmp, data_tmp)
22619 pack_tmp = ishft(pack_tmp, -11)
22620 idata = idata + 1
22621 data_tmp = full_data(idata)
22622 data_tmp = ishft(data_tmp, 33)
22623 data_tmp = iand(data_tmp, mask_left(11))
22624 pack_tmp = ior(pack_tmp, data_tmp)
22625 ipack = ipack + 1
22626 packed_data(ipack) = pack_tmp
22627 data_tmp = full_data(idata)
22628 pack_tmp = ishft(data_tmp, 44)
22629 pack_tmp = ishft(pack_tmp, -31)
22630 idata = idata + 1
22631 data_tmp = full_data(idata)
22632 data_tmp = ishft(data_tmp, 33)
22633 pack_tmp = ior(pack_tmp, data_tmp)
22634 pack_tmp = ishft(pack_tmp, -13)
22635 idata = idata + 1
22636 data_tmp = full_data(idata)
22637 data_tmp = ishft(data_tmp, 33)
22638 data_tmp = iand(data_tmp, mask_left(13))
22639 pack_tmp = ior(pack_tmp, data_tmp)
22640 ipack = ipack + 1
22641 packed_data(ipack) = pack_tmp
22642 data_tmp = full_data(idata)
22643 pack_tmp = ishft(data_tmp, 46)
22644 pack_tmp = ishft(pack_tmp, -31)
22645 idata = idata + 1
22646 data_tmp = full_data(idata)
22647 data_tmp = ishft(data_tmp, 33)
22648 pack_tmp = ior(pack_tmp, data_tmp)
22649 pack_tmp = ishft(pack_tmp, -15)
22650 idata = idata + 1
22651 data_tmp = full_data(idata)
22652 data_tmp = ishft(data_tmp, 33)
22653 data_tmp = iand(data_tmp, mask_left(15))
22654 pack_tmp = ior(pack_tmp, data_tmp)
22655 ipack = ipack + 1
22656 packed_data(ipack) = pack_tmp
22657 data_tmp = full_data(idata)
22658 pack_tmp = ishft(data_tmp, 48)
22659 pack_tmp = ishft(pack_tmp, -31)
22660 idata = idata + 1
22661 data_tmp = full_data(idata)
22662 data_tmp = ishft(data_tmp, 33)
22663 pack_tmp = ior(pack_tmp, data_tmp)
22664 pack_tmp = ishft(pack_tmp, -17)
22665 idata = idata + 1
22666 data_tmp = full_data(idata)
22667 data_tmp = ishft(data_tmp, 33)
22668 data_tmp = iand(data_tmp, mask_left(17))
22669 pack_tmp = ior(pack_tmp, data_tmp)
22670 ipack = ipack + 1
22671 packed_data(ipack) = pack_tmp
22672 data_tmp = full_data(idata)
22673 pack_tmp = ishft(data_tmp, 50)
22674 pack_tmp = ishft(pack_tmp, -31)
22675 idata = idata + 1
22676 data_tmp = full_data(idata)
22677 data_tmp = ishft(data_tmp, 33)
22678 pack_tmp = ior(pack_tmp, data_tmp)
22679 pack_tmp = ishft(pack_tmp, -19)
22680 idata = idata + 1
22681 data_tmp = full_data(idata)
22682 data_tmp = ishft(data_tmp, 33)
22683 data_tmp = iand(data_tmp, mask_left(19))
22684 pack_tmp = ior(pack_tmp, data_tmp)
22685 ipack = ipack + 1
22686 packed_data(ipack) = pack_tmp
22687 data_tmp = full_data(idata)
22688 pack_tmp = ishft(data_tmp, 52)
22689 pack_tmp = ishft(pack_tmp, -31)
22690 idata = idata + 1
22691 data_tmp = full_data(idata)
22692 data_tmp = ishft(data_tmp, 33)
22693 pack_tmp = ior(pack_tmp, data_tmp)
22694 pack_tmp = ishft(pack_tmp, -21)
22695 idata = idata + 1
22696 data_tmp = full_data(idata)
22697 data_tmp = ishft(data_tmp, 33)
22698 data_tmp = iand(data_tmp, mask_left(21))
22699 pack_tmp = ior(pack_tmp, data_tmp)
22700 ipack = ipack + 1
22701 packed_data(ipack) = pack_tmp
22702 data_tmp = full_data(idata)
22703 pack_tmp = ishft(data_tmp, 54)
22704 pack_tmp = ishft(pack_tmp, -31)
22705 idata = idata + 1
22706 data_tmp = full_data(idata)
22707 data_tmp = ishft(data_tmp, 33)
22708 pack_tmp = ior(pack_tmp, data_tmp)
22709 pack_tmp = ishft(pack_tmp, -23)
22710 idata = idata + 1
22711 data_tmp = full_data(idata)
22712 data_tmp = ishft(data_tmp, 33)
22713 data_tmp = iand(data_tmp, mask_left(23))
22714 pack_tmp = ior(pack_tmp, data_tmp)
22715 ipack = ipack + 1
22716 packed_data(ipack) = pack_tmp
22717 data_tmp = full_data(idata)
22718 pack_tmp = ishft(data_tmp, 56)
22719 pack_tmp = ishft(pack_tmp, -31)
22720 idata = idata + 1
22721 data_tmp = full_data(idata)
22722 data_tmp = ishft(data_tmp, 33)
22723 pack_tmp = ior(pack_tmp, data_tmp)
22724 pack_tmp = ishft(pack_tmp, -25)
22725 idata = idata + 1
22726 data_tmp = full_data(idata)
22727 data_tmp = ishft(data_tmp, 33)
22728 data_tmp = iand(data_tmp, mask_left(25))
22729 pack_tmp = ior(pack_tmp, data_tmp)
22730 ipack = ipack + 1
22731 packed_data(ipack) = pack_tmp
22732 data_tmp = full_data(idata)
22733 pack_tmp = ishft(data_tmp, 58)
22734 pack_tmp = ishft(pack_tmp, -31)
22735 idata = idata + 1
22736 data_tmp = full_data(idata)
22737 data_tmp = ishft(data_tmp, 33)
22738 pack_tmp = ior(pack_tmp, data_tmp)
22739 pack_tmp = ishft(pack_tmp, -27)
22740 idata = idata + 1
22741 data_tmp = full_data(idata)
22742 data_tmp = ishft(data_tmp, 33)
22743 data_tmp = iand(data_tmp, mask_left(27))
22744 pack_tmp = ior(pack_tmp, data_tmp)
22745 ipack = ipack + 1
22746 packed_data(ipack) = pack_tmp
22747 data_tmp = full_data(idata)
22748 pack_tmp = ishft(data_tmp, 60)
22749 pack_tmp = ishft(pack_tmp, -31)
22750 idata = idata + 1
22751 data_tmp = full_data(idata)
22752 data_tmp = ishft(data_tmp, 33)
22753 pack_tmp = ior(pack_tmp, data_tmp)
22754 pack_tmp = ishft(pack_tmp, -29)
22755 idata = idata + 1
22756 data_tmp = full_data(idata)
22757 data_tmp = ishft(data_tmp, 33)
22758 data_tmp = iand(data_tmp, mask_left(29))
22759 pack_tmp = ior(pack_tmp, data_tmp)
22760 ipack = ipack + 1
22761 packed_data(ipack) = pack_tmp
22762 data_tmp = full_data(idata)
22763 pack_tmp = ishft(data_tmp, 62)
22764 pack_tmp = ishft(pack_tmp, -31)
22765 idata = idata + 1
22766 data_tmp = full_data(idata)
22767 data_tmp = ishft(data_tmp, 33)
22768 pack_tmp = ior(pack_tmp, data_tmp)
22769 pack_tmp = ishft(pack_tmp, -31)
22770 idata = idata + 1
22771 data_tmp = full_data(idata)
22772 data_tmp = ishft(data_tmp, 33)
22773 pack_tmp = ior(pack_tmp, data_tmp)
22774 pack_tmp = ishft(pack_tmp, 0)
22775 pack_tmp = ishft(pack_tmp, 0)
22776 ipack = ipack + 1
22777 packed_data(ipack) = pack_tmp
22778 END DO
22779 IF (ndata_rep < ndata) THEN
22780 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
22781 END IF
22782 END SUBROUTINE ints2bits_31
22783
22784! **************************************************************************************************
22785!> \brief ...
22786!> \param Ndata ...
22787!> \param packed_data ...
22788!> \param full_data ...
22789! **************************************************************************************************
22790 SUBROUTINE bits2ints_31(Ndata, packed_data, full_data)
22791 INTEGER, INTENT(IN) :: Ndata
22792 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
22793 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
22794
22795 INTEGER, PARAMETER :: Nbits = 31
22796
22797 INTEGER :: idata, ipack, kdata, Ndata_rep
22798 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
22799
22800 ipack = 0
22801 idata = 0
22802 pack_tmp = 0
22803 ndata_rep = (ndata/64)*64
22804 DO kdata = 1, ndata_rep, 64
22805 idata = idata + 1
22806 data_tmp = ishft(pack_tmp, 31)
22807 ipack = ipack + 1
22808 pack_tmp = packed_data(ipack)
22809 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
22810 pack_tmp = ishft(pack_tmp, -31)
22811 idata = idata + 1
22812 data_tmp = iand(pack_tmp, mask_right(nbits))
22813 full_data(idata) = data_tmp
22814 pack_tmp = ishft(pack_tmp, -nbits)
22815 idata = idata + 1
22816 data_tmp = ishft(pack_tmp, 29)
22817 ipack = ipack + 1
22818 pack_tmp = packed_data(ipack)
22819 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
22820 pack_tmp = ishft(pack_tmp, -29)
22821 idata = idata + 1
22822 data_tmp = iand(pack_tmp, mask_right(nbits))
22823 full_data(idata) = data_tmp
22824 pack_tmp = ishft(pack_tmp, -nbits)
22825 idata = idata + 1
22826 data_tmp = ishft(pack_tmp, 27)
22827 ipack = ipack + 1
22828 pack_tmp = packed_data(ipack)
22829 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
22830 pack_tmp = ishft(pack_tmp, -27)
22831 idata = idata + 1
22832 data_tmp = iand(pack_tmp, mask_right(nbits))
22833 full_data(idata) = data_tmp
22834 pack_tmp = ishft(pack_tmp, -nbits)
22835 idata = idata + 1
22836 data_tmp = ishft(pack_tmp, 25)
22837 ipack = ipack + 1
22838 pack_tmp = packed_data(ipack)
22839 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
22840 pack_tmp = ishft(pack_tmp, -25)
22841 idata = idata + 1
22842 data_tmp = iand(pack_tmp, mask_right(nbits))
22843 full_data(idata) = data_tmp
22844 pack_tmp = ishft(pack_tmp, -nbits)
22845 idata = idata + 1
22846 data_tmp = ishft(pack_tmp, 23)
22847 ipack = ipack + 1
22848 pack_tmp = packed_data(ipack)
22849 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
22850 pack_tmp = ishft(pack_tmp, -23)
22851 idata = idata + 1
22852 data_tmp = iand(pack_tmp, mask_right(nbits))
22853 full_data(idata) = data_tmp
22854 pack_tmp = ishft(pack_tmp, -nbits)
22855 idata = idata + 1
22856 data_tmp = ishft(pack_tmp, 21)
22857 ipack = ipack + 1
22858 pack_tmp = packed_data(ipack)
22859 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
22860 pack_tmp = ishft(pack_tmp, -21)
22861 idata = idata + 1
22862 data_tmp = iand(pack_tmp, mask_right(nbits))
22863 full_data(idata) = data_tmp
22864 pack_tmp = ishft(pack_tmp, -nbits)
22865 idata = idata + 1
22866 data_tmp = ishft(pack_tmp, 19)
22867 ipack = ipack + 1
22868 pack_tmp = packed_data(ipack)
22869 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
22870 pack_tmp = ishft(pack_tmp, -19)
22871 idata = idata + 1
22872 data_tmp = iand(pack_tmp, mask_right(nbits))
22873 full_data(idata) = data_tmp
22874 pack_tmp = ishft(pack_tmp, -nbits)
22875 idata = idata + 1
22876 data_tmp = ishft(pack_tmp, 17)
22877 ipack = ipack + 1
22878 pack_tmp = packed_data(ipack)
22879 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
22880 pack_tmp = ishft(pack_tmp, -17)
22881 idata = idata + 1
22882 data_tmp = iand(pack_tmp, mask_right(nbits))
22883 full_data(idata) = data_tmp
22884 pack_tmp = ishft(pack_tmp, -nbits)
22885 idata = idata + 1
22886 data_tmp = ishft(pack_tmp, 15)
22887 ipack = ipack + 1
22888 pack_tmp = packed_data(ipack)
22889 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
22890 pack_tmp = ishft(pack_tmp, -15)
22891 idata = idata + 1
22892 data_tmp = iand(pack_tmp, mask_right(nbits))
22893 full_data(idata) = data_tmp
22894 pack_tmp = ishft(pack_tmp, -nbits)
22895 idata = idata + 1
22896 data_tmp = ishft(pack_tmp, 13)
22897 ipack = ipack + 1
22898 pack_tmp = packed_data(ipack)
22899 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
22900 pack_tmp = ishft(pack_tmp, -13)
22901 idata = idata + 1
22902 data_tmp = iand(pack_tmp, mask_right(nbits))
22903 full_data(idata) = data_tmp
22904 pack_tmp = ishft(pack_tmp, -nbits)
22905 idata = idata + 1
22906 data_tmp = ishft(pack_tmp, 11)
22907 ipack = ipack + 1
22908 pack_tmp = packed_data(ipack)
22909 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
22910 pack_tmp = ishft(pack_tmp, -11)
22911 idata = idata + 1
22912 data_tmp = iand(pack_tmp, mask_right(nbits))
22913 full_data(idata) = data_tmp
22914 pack_tmp = ishft(pack_tmp, -nbits)
22915 idata = idata + 1
22916 data_tmp = ishft(pack_tmp, 9)
22917 ipack = ipack + 1
22918 pack_tmp = packed_data(ipack)
22919 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
22920 pack_tmp = ishft(pack_tmp, -9)
22921 idata = idata + 1
22922 data_tmp = iand(pack_tmp, mask_right(nbits))
22923 full_data(idata) = data_tmp
22924 pack_tmp = ishft(pack_tmp, -nbits)
22925 idata = idata + 1
22926 data_tmp = ishft(pack_tmp, 7)
22927 ipack = ipack + 1
22928 pack_tmp = packed_data(ipack)
22929 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
22930 pack_tmp = ishft(pack_tmp, -7)
22931 idata = idata + 1
22932 data_tmp = iand(pack_tmp, mask_right(nbits))
22933 full_data(idata) = data_tmp
22934 pack_tmp = ishft(pack_tmp, -nbits)
22935 idata = idata + 1
22936 data_tmp = ishft(pack_tmp, 5)
22937 ipack = ipack + 1
22938 pack_tmp = packed_data(ipack)
22939 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
22940 pack_tmp = ishft(pack_tmp, -5)
22941 idata = idata + 1
22942 data_tmp = iand(pack_tmp, mask_right(nbits))
22943 full_data(idata) = data_tmp
22944 pack_tmp = ishft(pack_tmp, -nbits)
22945 idata = idata + 1
22946 data_tmp = ishft(pack_tmp, 3)
22947 ipack = ipack + 1
22948 pack_tmp = packed_data(ipack)
22949 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
22950 pack_tmp = ishft(pack_tmp, -3)
22951 idata = idata + 1
22952 data_tmp = iand(pack_tmp, mask_right(nbits))
22953 full_data(idata) = data_tmp
22954 pack_tmp = ishft(pack_tmp, -nbits)
22955 idata = idata + 1
22956 data_tmp = ishft(pack_tmp, 1)
22957 ipack = ipack + 1
22958 pack_tmp = packed_data(ipack)
22959 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
22960 pack_tmp = ishft(pack_tmp, -1)
22961 idata = idata + 1
22962 data_tmp = iand(pack_tmp, mask_right(nbits))
22963 full_data(idata) = data_tmp
22964 pack_tmp = ishft(pack_tmp, -nbits)
22965 idata = idata + 1
22966 data_tmp = iand(pack_tmp, mask_right(nbits))
22967 full_data(idata) = data_tmp
22968 pack_tmp = ishft(pack_tmp, -nbits)
22969 idata = idata + 1
22970 data_tmp = ishft(pack_tmp, 30)
22971 ipack = ipack + 1
22972 pack_tmp = packed_data(ipack)
22973 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
22974 pack_tmp = ishft(pack_tmp, -30)
22975 idata = idata + 1
22976 data_tmp = iand(pack_tmp, mask_right(nbits))
22977 full_data(idata) = data_tmp
22978 pack_tmp = ishft(pack_tmp, -nbits)
22979 idata = idata + 1
22980 data_tmp = ishft(pack_tmp, 28)
22981 ipack = ipack + 1
22982 pack_tmp = packed_data(ipack)
22983 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
22984 pack_tmp = ishft(pack_tmp, -28)
22985 idata = idata + 1
22986 data_tmp = iand(pack_tmp, mask_right(nbits))
22987 full_data(idata) = data_tmp
22988 pack_tmp = ishft(pack_tmp, -nbits)
22989 idata = idata + 1
22990 data_tmp = ishft(pack_tmp, 26)
22991 ipack = ipack + 1
22992 pack_tmp = packed_data(ipack)
22993 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
22994 pack_tmp = ishft(pack_tmp, -26)
22995 idata = idata + 1
22996 data_tmp = iand(pack_tmp, mask_right(nbits))
22997 full_data(idata) = data_tmp
22998 pack_tmp = ishft(pack_tmp, -nbits)
22999 idata = idata + 1
23000 data_tmp = ishft(pack_tmp, 24)
23001 ipack = ipack + 1
23002 pack_tmp = packed_data(ipack)
23003 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
23004 pack_tmp = ishft(pack_tmp, -24)
23005 idata = idata + 1
23006 data_tmp = iand(pack_tmp, mask_right(nbits))
23007 full_data(idata) = data_tmp
23008 pack_tmp = ishft(pack_tmp, -nbits)
23009 idata = idata + 1
23010 data_tmp = ishft(pack_tmp, 22)
23011 ipack = ipack + 1
23012 pack_tmp = packed_data(ipack)
23013 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
23014 pack_tmp = ishft(pack_tmp, -22)
23015 idata = idata + 1
23016 data_tmp = iand(pack_tmp, mask_right(nbits))
23017 full_data(idata) = data_tmp
23018 pack_tmp = ishft(pack_tmp, -nbits)
23019 idata = idata + 1
23020 data_tmp = ishft(pack_tmp, 20)
23021 ipack = ipack + 1
23022 pack_tmp = packed_data(ipack)
23023 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
23024 pack_tmp = ishft(pack_tmp, -20)
23025 idata = idata + 1
23026 data_tmp = iand(pack_tmp, mask_right(nbits))
23027 full_data(idata) = data_tmp
23028 pack_tmp = ishft(pack_tmp, -nbits)
23029 idata = idata + 1
23030 data_tmp = ishft(pack_tmp, 18)
23031 ipack = ipack + 1
23032 pack_tmp = packed_data(ipack)
23033 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
23034 pack_tmp = ishft(pack_tmp, -18)
23035 idata = idata + 1
23036 data_tmp = iand(pack_tmp, mask_right(nbits))
23037 full_data(idata) = data_tmp
23038 pack_tmp = ishft(pack_tmp, -nbits)
23039 idata = idata + 1
23040 data_tmp = ishft(pack_tmp, 16)
23041 ipack = ipack + 1
23042 pack_tmp = packed_data(ipack)
23043 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
23044 pack_tmp = ishft(pack_tmp, -16)
23045 idata = idata + 1
23046 data_tmp = iand(pack_tmp, mask_right(nbits))
23047 full_data(idata) = data_tmp
23048 pack_tmp = ishft(pack_tmp, -nbits)
23049 idata = idata + 1
23050 data_tmp = ishft(pack_tmp, 14)
23051 ipack = ipack + 1
23052 pack_tmp = packed_data(ipack)
23053 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
23054 pack_tmp = ishft(pack_tmp, -14)
23055 idata = idata + 1
23056 data_tmp = iand(pack_tmp, mask_right(nbits))
23057 full_data(idata) = data_tmp
23058 pack_tmp = ishft(pack_tmp, -nbits)
23059 idata = idata + 1
23060 data_tmp = ishft(pack_tmp, 12)
23061 ipack = ipack + 1
23062 pack_tmp = packed_data(ipack)
23063 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
23064 pack_tmp = ishft(pack_tmp, -12)
23065 idata = idata + 1
23066 data_tmp = iand(pack_tmp, mask_right(nbits))
23067 full_data(idata) = data_tmp
23068 pack_tmp = ishft(pack_tmp, -nbits)
23069 idata = idata + 1
23070 data_tmp = ishft(pack_tmp, 10)
23071 ipack = ipack + 1
23072 pack_tmp = packed_data(ipack)
23073 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
23074 pack_tmp = ishft(pack_tmp, -10)
23075 idata = idata + 1
23076 data_tmp = iand(pack_tmp, mask_right(nbits))
23077 full_data(idata) = data_tmp
23078 pack_tmp = ishft(pack_tmp, -nbits)
23079 idata = idata + 1
23080 data_tmp = ishft(pack_tmp, 8)
23081 ipack = ipack + 1
23082 pack_tmp = packed_data(ipack)
23083 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
23084 pack_tmp = ishft(pack_tmp, -8)
23085 idata = idata + 1
23086 data_tmp = iand(pack_tmp, mask_right(nbits))
23087 full_data(idata) = data_tmp
23088 pack_tmp = ishft(pack_tmp, -nbits)
23089 idata = idata + 1
23090 data_tmp = ishft(pack_tmp, 6)
23091 ipack = ipack + 1
23092 pack_tmp = packed_data(ipack)
23093 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
23094 pack_tmp = ishft(pack_tmp, -6)
23095 idata = idata + 1
23096 data_tmp = iand(pack_tmp, mask_right(nbits))
23097 full_data(idata) = data_tmp
23098 pack_tmp = ishft(pack_tmp, -nbits)
23099 idata = idata + 1
23100 data_tmp = ishft(pack_tmp, 4)
23101 ipack = ipack + 1
23102 pack_tmp = packed_data(ipack)
23103 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
23104 pack_tmp = ishft(pack_tmp, -4)
23105 idata = idata + 1
23106 data_tmp = iand(pack_tmp, mask_right(nbits))
23107 full_data(idata) = data_tmp
23108 pack_tmp = ishft(pack_tmp, -nbits)
23109 idata = idata + 1
23110 data_tmp = ishft(pack_tmp, 2)
23111 ipack = ipack + 1
23112 pack_tmp = packed_data(ipack)
23113 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
23114 pack_tmp = ishft(pack_tmp, -2)
23115 idata = idata + 1
23116 data_tmp = iand(pack_tmp, mask_right(nbits))
23117 full_data(idata) = data_tmp
23118 pack_tmp = ishft(pack_tmp, -nbits)
23119 idata = idata + 1
23120 data_tmp = iand(pack_tmp, mask_right(nbits))
23121 full_data(idata) = data_tmp
23122 pack_tmp = ishft(pack_tmp, -nbits)
23123 END DO
23124 IF (ndata_rep < ndata) THEN
23125 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
23126 END IF
23127 END SUBROUTINE bits2ints_31
23128
23129! **************************************************************************************************
23130!> \brief ...
23131!> \param Ndata ...
23132!> \param packed_data ...
23133!> \param full_data ...
23134! **************************************************************************************************
23135 SUBROUTINE ints2bits_32(Ndata, packed_data, full_data)
23136 INTEGER, INTENT(IN) :: Ndata
23137 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
23138 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
23139
23140 INTEGER, PARAMETER :: Nbits = 32
23141
23142 INTEGER :: idata, ipack, kdata, Ndata_rep
23143 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
23144
23145 idata = 0
23146 ipack = 0
23147 ndata_rep = (ndata/64)*64
23148 DO kdata = 1, ndata_rep, 64
23149 pack_tmp = 0
23150 idata = idata + 1
23151 data_tmp = full_data(idata)
23152 data_tmp = ishft(data_tmp, 32)
23153 pack_tmp = ior(pack_tmp, data_tmp)
23154 pack_tmp = ishft(pack_tmp, -32)
23155 idata = idata + 1
23156 data_tmp = full_data(idata)
23157 data_tmp = ishft(data_tmp, 32)
23158 pack_tmp = ior(pack_tmp, data_tmp)
23159 pack_tmp = ishft(pack_tmp, 0)
23160 idata = idata + 1
23161 data_tmp = full_data(idata)
23162 data_tmp = ishft(data_tmp, 32)
23163 data_tmp = iand(data_tmp, mask_left(0))
23164 pack_tmp = ior(pack_tmp, data_tmp)
23165 ipack = ipack + 1
23166 packed_data(ipack) = pack_tmp
23167 data_tmp = full_data(idata)
23168 pack_tmp = ishft(data_tmp, 32)
23169 pack_tmp = ishft(pack_tmp, -32)
23170 idata = idata + 1
23171 data_tmp = full_data(idata)
23172 data_tmp = ishft(data_tmp, 32)
23173 pack_tmp = ior(pack_tmp, data_tmp)
23174 pack_tmp = ishft(pack_tmp, 0)
23175 idata = idata + 1
23176 data_tmp = full_data(idata)
23177 data_tmp = ishft(data_tmp, 32)
23178 data_tmp = iand(data_tmp, mask_left(0))
23179 pack_tmp = ior(pack_tmp, data_tmp)
23180 ipack = ipack + 1
23181 packed_data(ipack) = pack_tmp
23182 data_tmp = full_data(idata)
23183 pack_tmp = ishft(data_tmp, 32)
23184 pack_tmp = ishft(pack_tmp, -32)
23185 idata = idata + 1
23186 data_tmp = full_data(idata)
23187 data_tmp = ishft(data_tmp, 32)
23188 pack_tmp = ior(pack_tmp, data_tmp)
23189 pack_tmp = ishft(pack_tmp, 0)
23190 idata = idata + 1
23191 data_tmp = full_data(idata)
23192 data_tmp = ishft(data_tmp, 32)
23193 data_tmp = iand(data_tmp, mask_left(0))
23194 pack_tmp = ior(pack_tmp, data_tmp)
23195 ipack = ipack + 1
23196 packed_data(ipack) = pack_tmp
23197 data_tmp = full_data(idata)
23198 pack_tmp = ishft(data_tmp, 32)
23199 pack_tmp = ishft(pack_tmp, -32)
23200 idata = idata + 1
23201 data_tmp = full_data(idata)
23202 data_tmp = ishft(data_tmp, 32)
23203 pack_tmp = ior(pack_tmp, data_tmp)
23204 pack_tmp = ishft(pack_tmp, 0)
23205 idata = idata + 1
23206 data_tmp = full_data(idata)
23207 data_tmp = ishft(data_tmp, 32)
23208 data_tmp = iand(data_tmp, mask_left(0))
23209 pack_tmp = ior(pack_tmp, data_tmp)
23210 ipack = ipack + 1
23211 packed_data(ipack) = pack_tmp
23212 data_tmp = full_data(idata)
23213 pack_tmp = ishft(data_tmp, 32)
23214 pack_tmp = ishft(pack_tmp, -32)
23215 idata = idata + 1
23216 data_tmp = full_data(idata)
23217 data_tmp = ishft(data_tmp, 32)
23218 pack_tmp = ior(pack_tmp, data_tmp)
23219 pack_tmp = ishft(pack_tmp, 0)
23220 idata = idata + 1
23221 data_tmp = full_data(idata)
23222 data_tmp = ishft(data_tmp, 32)
23223 data_tmp = iand(data_tmp, mask_left(0))
23224 pack_tmp = ior(pack_tmp, data_tmp)
23225 ipack = ipack + 1
23226 packed_data(ipack) = pack_tmp
23227 data_tmp = full_data(idata)
23228 pack_tmp = ishft(data_tmp, 32)
23229 pack_tmp = ishft(pack_tmp, -32)
23230 idata = idata + 1
23231 data_tmp = full_data(idata)
23232 data_tmp = ishft(data_tmp, 32)
23233 pack_tmp = ior(pack_tmp, data_tmp)
23234 pack_tmp = ishft(pack_tmp, 0)
23235 idata = idata + 1
23236 data_tmp = full_data(idata)
23237 data_tmp = ishft(data_tmp, 32)
23238 data_tmp = iand(data_tmp, mask_left(0))
23239 pack_tmp = ior(pack_tmp, data_tmp)
23240 ipack = ipack + 1
23241 packed_data(ipack) = pack_tmp
23242 data_tmp = full_data(idata)
23243 pack_tmp = ishft(data_tmp, 32)
23244 pack_tmp = ishft(pack_tmp, -32)
23245 idata = idata + 1
23246 data_tmp = full_data(idata)
23247 data_tmp = ishft(data_tmp, 32)
23248 pack_tmp = ior(pack_tmp, data_tmp)
23249 pack_tmp = ishft(pack_tmp, 0)
23250 idata = idata + 1
23251 data_tmp = full_data(idata)
23252 data_tmp = ishft(data_tmp, 32)
23253 data_tmp = iand(data_tmp, mask_left(0))
23254 pack_tmp = ior(pack_tmp, data_tmp)
23255 ipack = ipack + 1
23256 packed_data(ipack) = pack_tmp
23257 data_tmp = full_data(idata)
23258 pack_tmp = ishft(data_tmp, 32)
23259 pack_tmp = ishft(pack_tmp, -32)
23260 idata = idata + 1
23261 data_tmp = full_data(idata)
23262 data_tmp = ishft(data_tmp, 32)
23263 pack_tmp = ior(pack_tmp, data_tmp)
23264 pack_tmp = ishft(pack_tmp, 0)
23265 idata = idata + 1
23266 data_tmp = full_data(idata)
23267 data_tmp = ishft(data_tmp, 32)
23268 data_tmp = iand(data_tmp, mask_left(0))
23269 pack_tmp = ior(pack_tmp, data_tmp)
23270 ipack = ipack + 1
23271 packed_data(ipack) = pack_tmp
23272 data_tmp = full_data(idata)
23273 pack_tmp = ishft(data_tmp, 32)
23274 pack_tmp = ishft(pack_tmp, -32)
23275 idata = idata + 1
23276 data_tmp = full_data(idata)
23277 data_tmp = ishft(data_tmp, 32)
23278 pack_tmp = ior(pack_tmp, data_tmp)
23279 pack_tmp = ishft(pack_tmp, 0)
23280 idata = idata + 1
23281 data_tmp = full_data(idata)
23282 data_tmp = ishft(data_tmp, 32)
23283 data_tmp = iand(data_tmp, mask_left(0))
23284 pack_tmp = ior(pack_tmp, data_tmp)
23285 ipack = ipack + 1
23286 packed_data(ipack) = pack_tmp
23287 data_tmp = full_data(idata)
23288 pack_tmp = ishft(data_tmp, 32)
23289 pack_tmp = ishft(pack_tmp, -32)
23290 idata = idata + 1
23291 data_tmp = full_data(idata)
23292 data_tmp = ishft(data_tmp, 32)
23293 pack_tmp = ior(pack_tmp, data_tmp)
23294 pack_tmp = ishft(pack_tmp, 0)
23295 idata = idata + 1
23296 data_tmp = full_data(idata)
23297 data_tmp = ishft(data_tmp, 32)
23298 data_tmp = iand(data_tmp, mask_left(0))
23299 pack_tmp = ior(pack_tmp, data_tmp)
23300 ipack = ipack + 1
23301 packed_data(ipack) = pack_tmp
23302 data_tmp = full_data(idata)
23303 pack_tmp = ishft(data_tmp, 32)
23304 pack_tmp = ishft(pack_tmp, -32)
23305 idata = idata + 1
23306 data_tmp = full_data(idata)
23307 data_tmp = ishft(data_tmp, 32)
23308 pack_tmp = ior(pack_tmp, data_tmp)
23309 pack_tmp = ishft(pack_tmp, 0)
23310 idata = idata + 1
23311 data_tmp = full_data(idata)
23312 data_tmp = ishft(data_tmp, 32)
23313 data_tmp = iand(data_tmp, mask_left(0))
23314 pack_tmp = ior(pack_tmp, data_tmp)
23315 ipack = ipack + 1
23316 packed_data(ipack) = pack_tmp
23317 data_tmp = full_data(idata)
23318 pack_tmp = ishft(data_tmp, 32)
23319 pack_tmp = ishft(pack_tmp, -32)
23320 idata = idata + 1
23321 data_tmp = full_data(idata)
23322 data_tmp = ishft(data_tmp, 32)
23323 pack_tmp = ior(pack_tmp, data_tmp)
23324 pack_tmp = ishft(pack_tmp, 0)
23325 idata = idata + 1
23326 data_tmp = full_data(idata)
23327 data_tmp = ishft(data_tmp, 32)
23328 data_tmp = iand(data_tmp, mask_left(0))
23329 pack_tmp = ior(pack_tmp, data_tmp)
23330 ipack = ipack + 1
23331 packed_data(ipack) = pack_tmp
23332 data_tmp = full_data(idata)
23333 pack_tmp = ishft(data_tmp, 32)
23334 pack_tmp = ishft(pack_tmp, -32)
23335 idata = idata + 1
23336 data_tmp = full_data(idata)
23337 data_tmp = ishft(data_tmp, 32)
23338 pack_tmp = ior(pack_tmp, data_tmp)
23339 pack_tmp = ishft(pack_tmp, 0)
23340 idata = idata + 1
23341 data_tmp = full_data(idata)
23342 data_tmp = ishft(data_tmp, 32)
23343 data_tmp = iand(data_tmp, mask_left(0))
23344 pack_tmp = ior(pack_tmp, data_tmp)
23345 ipack = ipack + 1
23346 packed_data(ipack) = pack_tmp
23347 data_tmp = full_data(idata)
23348 pack_tmp = ishft(data_tmp, 32)
23349 pack_tmp = ishft(pack_tmp, -32)
23350 idata = idata + 1
23351 data_tmp = full_data(idata)
23352 data_tmp = ishft(data_tmp, 32)
23353 pack_tmp = ior(pack_tmp, data_tmp)
23354 pack_tmp = ishft(pack_tmp, 0)
23355 idata = idata + 1
23356 data_tmp = full_data(idata)
23357 data_tmp = ishft(data_tmp, 32)
23358 data_tmp = iand(data_tmp, mask_left(0))
23359 pack_tmp = ior(pack_tmp, data_tmp)
23360 ipack = ipack + 1
23361 packed_data(ipack) = pack_tmp
23362 data_tmp = full_data(idata)
23363 pack_tmp = ishft(data_tmp, 32)
23364 pack_tmp = ishft(pack_tmp, -32)
23365 idata = idata + 1
23366 data_tmp = full_data(idata)
23367 data_tmp = ishft(data_tmp, 32)
23368 pack_tmp = ior(pack_tmp, data_tmp)
23369 pack_tmp = ishft(pack_tmp, 0)
23370 idata = idata + 1
23371 data_tmp = full_data(idata)
23372 data_tmp = ishft(data_tmp, 32)
23373 data_tmp = iand(data_tmp, mask_left(0))
23374 pack_tmp = ior(pack_tmp, data_tmp)
23375 ipack = ipack + 1
23376 packed_data(ipack) = pack_tmp
23377 data_tmp = full_data(idata)
23378 pack_tmp = ishft(data_tmp, 32)
23379 pack_tmp = ishft(pack_tmp, -32)
23380 idata = idata + 1
23381 data_tmp = full_data(idata)
23382 data_tmp = ishft(data_tmp, 32)
23383 pack_tmp = ior(pack_tmp, data_tmp)
23384 pack_tmp = ishft(pack_tmp, 0)
23385 idata = idata + 1
23386 data_tmp = full_data(idata)
23387 data_tmp = ishft(data_tmp, 32)
23388 data_tmp = iand(data_tmp, mask_left(0))
23389 pack_tmp = ior(pack_tmp, data_tmp)
23390 ipack = ipack + 1
23391 packed_data(ipack) = pack_tmp
23392 data_tmp = full_data(idata)
23393 pack_tmp = ishft(data_tmp, 32)
23394 pack_tmp = ishft(pack_tmp, -32)
23395 idata = idata + 1
23396 data_tmp = full_data(idata)
23397 data_tmp = ishft(data_tmp, 32)
23398 pack_tmp = ior(pack_tmp, data_tmp)
23399 pack_tmp = ishft(pack_tmp, 0)
23400 idata = idata + 1
23401 data_tmp = full_data(idata)
23402 data_tmp = ishft(data_tmp, 32)
23403 data_tmp = iand(data_tmp, mask_left(0))
23404 pack_tmp = ior(pack_tmp, data_tmp)
23405 ipack = ipack + 1
23406 packed_data(ipack) = pack_tmp
23407 data_tmp = full_data(idata)
23408 pack_tmp = ishft(data_tmp, 32)
23409 pack_tmp = ishft(pack_tmp, -32)
23410 idata = idata + 1
23411 data_tmp = full_data(idata)
23412 data_tmp = ishft(data_tmp, 32)
23413 pack_tmp = ior(pack_tmp, data_tmp)
23414 pack_tmp = ishft(pack_tmp, 0)
23415 idata = idata + 1
23416 data_tmp = full_data(idata)
23417 data_tmp = ishft(data_tmp, 32)
23418 data_tmp = iand(data_tmp, mask_left(0))
23419 pack_tmp = ior(pack_tmp, data_tmp)
23420 ipack = ipack + 1
23421 packed_data(ipack) = pack_tmp
23422 data_tmp = full_data(idata)
23423 pack_tmp = ishft(data_tmp, 32)
23424 pack_tmp = ishft(pack_tmp, -32)
23425 idata = idata + 1
23426 data_tmp = full_data(idata)
23427 data_tmp = ishft(data_tmp, 32)
23428 pack_tmp = ior(pack_tmp, data_tmp)
23429 pack_tmp = ishft(pack_tmp, 0)
23430 idata = idata + 1
23431 data_tmp = full_data(idata)
23432 data_tmp = ishft(data_tmp, 32)
23433 data_tmp = iand(data_tmp, mask_left(0))
23434 pack_tmp = ior(pack_tmp, data_tmp)
23435 ipack = ipack + 1
23436 packed_data(ipack) = pack_tmp
23437 data_tmp = full_data(idata)
23438 pack_tmp = ishft(data_tmp, 32)
23439 pack_tmp = ishft(pack_tmp, -32)
23440 idata = idata + 1
23441 data_tmp = full_data(idata)
23442 data_tmp = ishft(data_tmp, 32)
23443 pack_tmp = ior(pack_tmp, data_tmp)
23444 pack_tmp = ishft(pack_tmp, 0)
23445 idata = idata + 1
23446 data_tmp = full_data(idata)
23447 data_tmp = ishft(data_tmp, 32)
23448 data_tmp = iand(data_tmp, mask_left(0))
23449 pack_tmp = ior(pack_tmp, data_tmp)
23450 ipack = ipack + 1
23451 packed_data(ipack) = pack_tmp
23452 data_tmp = full_data(idata)
23453 pack_tmp = ishft(data_tmp, 32)
23454 pack_tmp = ishft(pack_tmp, -32)
23455 idata = idata + 1
23456 data_tmp = full_data(idata)
23457 data_tmp = ishft(data_tmp, 32)
23458 pack_tmp = ior(pack_tmp, data_tmp)
23459 pack_tmp = ishft(pack_tmp, 0)
23460 idata = idata + 1
23461 data_tmp = full_data(idata)
23462 data_tmp = ishft(data_tmp, 32)
23463 data_tmp = iand(data_tmp, mask_left(0))
23464 pack_tmp = ior(pack_tmp, data_tmp)
23465 ipack = ipack + 1
23466 packed_data(ipack) = pack_tmp
23467 data_tmp = full_data(idata)
23468 pack_tmp = ishft(data_tmp, 32)
23469 pack_tmp = ishft(pack_tmp, -32)
23470 idata = idata + 1
23471 data_tmp = full_data(idata)
23472 data_tmp = ishft(data_tmp, 32)
23473 pack_tmp = ior(pack_tmp, data_tmp)
23474 pack_tmp = ishft(pack_tmp, 0)
23475 idata = idata + 1
23476 data_tmp = full_data(idata)
23477 data_tmp = ishft(data_tmp, 32)
23478 data_tmp = iand(data_tmp, mask_left(0))
23479 pack_tmp = ior(pack_tmp, data_tmp)
23480 ipack = ipack + 1
23481 packed_data(ipack) = pack_tmp
23482 data_tmp = full_data(idata)
23483 pack_tmp = ishft(data_tmp, 32)
23484 pack_tmp = ishft(pack_tmp, -32)
23485 idata = idata + 1
23486 data_tmp = full_data(idata)
23487 data_tmp = ishft(data_tmp, 32)
23488 pack_tmp = ior(pack_tmp, data_tmp)
23489 pack_tmp = ishft(pack_tmp, 0)
23490 idata = idata + 1
23491 data_tmp = full_data(idata)
23492 data_tmp = ishft(data_tmp, 32)
23493 data_tmp = iand(data_tmp, mask_left(0))
23494 pack_tmp = ior(pack_tmp, data_tmp)
23495 ipack = ipack + 1
23496 packed_data(ipack) = pack_tmp
23497 data_tmp = full_data(idata)
23498 pack_tmp = ishft(data_tmp, 32)
23499 pack_tmp = ishft(pack_tmp, -32)
23500 idata = idata + 1
23501 data_tmp = full_data(idata)
23502 data_tmp = ishft(data_tmp, 32)
23503 pack_tmp = ior(pack_tmp, data_tmp)
23504 pack_tmp = ishft(pack_tmp, 0)
23505 idata = idata + 1
23506 data_tmp = full_data(idata)
23507 data_tmp = ishft(data_tmp, 32)
23508 data_tmp = iand(data_tmp, mask_left(0))
23509 pack_tmp = ior(pack_tmp, data_tmp)
23510 ipack = ipack + 1
23511 packed_data(ipack) = pack_tmp
23512 data_tmp = full_data(idata)
23513 pack_tmp = ishft(data_tmp, 32)
23514 pack_tmp = ishft(pack_tmp, -32)
23515 idata = idata + 1
23516 data_tmp = full_data(idata)
23517 data_tmp = ishft(data_tmp, 32)
23518 pack_tmp = ior(pack_tmp, data_tmp)
23519 pack_tmp = ishft(pack_tmp, 0)
23520 idata = idata + 1
23521 data_tmp = full_data(idata)
23522 data_tmp = ishft(data_tmp, 32)
23523 data_tmp = iand(data_tmp, mask_left(0))
23524 pack_tmp = ior(pack_tmp, data_tmp)
23525 ipack = ipack + 1
23526 packed_data(ipack) = pack_tmp
23527 data_tmp = full_data(idata)
23528 pack_tmp = ishft(data_tmp, 32)
23529 pack_tmp = ishft(pack_tmp, -32)
23530 idata = idata + 1
23531 data_tmp = full_data(idata)
23532 data_tmp = ishft(data_tmp, 32)
23533 pack_tmp = ior(pack_tmp, data_tmp)
23534 pack_tmp = ishft(pack_tmp, 0)
23535 idata = idata + 1
23536 data_tmp = full_data(idata)
23537 data_tmp = ishft(data_tmp, 32)
23538 data_tmp = iand(data_tmp, mask_left(0))
23539 pack_tmp = ior(pack_tmp, data_tmp)
23540 ipack = ipack + 1
23541 packed_data(ipack) = pack_tmp
23542 data_tmp = full_data(idata)
23543 pack_tmp = ishft(data_tmp, 32)
23544 pack_tmp = ishft(pack_tmp, -32)
23545 idata = idata + 1
23546 data_tmp = full_data(idata)
23547 data_tmp = ishft(data_tmp, 32)
23548 pack_tmp = ior(pack_tmp, data_tmp)
23549 pack_tmp = ishft(pack_tmp, 0)
23550 idata = idata + 1
23551 data_tmp = full_data(idata)
23552 data_tmp = ishft(data_tmp, 32)
23553 data_tmp = iand(data_tmp, mask_left(0))
23554 pack_tmp = ior(pack_tmp, data_tmp)
23555 ipack = ipack + 1
23556 packed_data(ipack) = pack_tmp
23557 data_tmp = full_data(idata)
23558 pack_tmp = ishft(data_tmp, 32)
23559 pack_tmp = ishft(pack_tmp, -32)
23560 idata = idata + 1
23561 data_tmp = full_data(idata)
23562 data_tmp = ishft(data_tmp, 32)
23563 pack_tmp = ior(pack_tmp, data_tmp)
23564 pack_tmp = ishft(pack_tmp, 0)
23565 idata = idata + 1
23566 data_tmp = full_data(idata)
23567 data_tmp = ishft(data_tmp, 32)
23568 data_tmp = iand(data_tmp, mask_left(0))
23569 pack_tmp = ior(pack_tmp, data_tmp)
23570 ipack = ipack + 1
23571 packed_data(ipack) = pack_tmp
23572 data_tmp = full_data(idata)
23573 pack_tmp = ishft(data_tmp, 32)
23574 pack_tmp = ishft(pack_tmp, -32)
23575 idata = idata + 1
23576 data_tmp = full_data(idata)
23577 data_tmp = ishft(data_tmp, 32)
23578 pack_tmp = ior(pack_tmp, data_tmp)
23579 pack_tmp = ishft(pack_tmp, 0)
23580 idata = idata + 1
23581 data_tmp = full_data(idata)
23582 data_tmp = ishft(data_tmp, 32)
23583 data_tmp = iand(data_tmp, mask_left(0))
23584 pack_tmp = ior(pack_tmp, data_tmp)
23585 ipack = ipack + 1
23586 packed_data(ipack) = pack_tmp
23587 data_tmp = full_data(idata)
23588 pack_tmp = ishft(data_tmp, 32)
23589 pack_tmp = ishft(pack_tmp, -32)
23590 idata = idata + 1
23591 data_tmp = full_data(idata)
23592 data_tmp = ishft(data_tmp, 32)
23593 pack_tmp = ior(pack_tmp, data_tmp)
23594 pack_tmp = ishft(pack_tmp, 0)
23595 idata = idata + 1
23596 data_tmp = full_data(idata)
23597 data_tmp = ishft(data_tmp, 32)
23598 data_tmp = iand(data_tmp, mask_left(0))
23599 pack_tmp = ior(pack_tmp, data_tmp)
23600 ipack = ipack + 1
23601 packed_data(ipack) = pack_tmp
23602 data_tmp = full_data(idata)
23603 pack_tmp = ishft(data_tmp, 32)
23604 pack_tmp = ishft(pack_tmp, -32)
23605 idata = idata + 1
23606 data_tmp = full_data(idata)
23607 data_tmp = ishft(data_tmp, 32)
23608 pack_tmp = ior(pack_tmp, data_tmp)
23609 pack_tmp = ishft(pack_tmp, 0)
23610 idata = idata + 1
23611 data_tmp = full_data(idata)
23612 data_tmp = ishft(data_tmp, 32)
23613 data_tmp = iand(data_tmp, mask_left(0))
23614 pack_tmp = ior(pack_tmp, data_tmp)
23615 ipack = ipack + 1
23616 packed_data(ipack) = pack_tmp
23617 data_tmp = full_data(idata)
23618 pack_tmp = ishft(data_tmp, 32)
23619 pack_tmp = ishft(pack_tmp, -32)
23620 idata = idata + 1
23621 data_tmp = full_data(idata)
23622 data_tmp = ishft(data_tmp, 32)
23623 pack_tmp = ior(pack_tmp, data_tmp)
23624 pack_tmp = ishft(pack_tmp, 0)
23625 pack_tmp = ishft(pack_tmp, 0)
23626 ipack = ipack + 1
23627 packed_data(ipack) = pack_tmp
23628 END DO
23629 IF (ndata_rep < ndata) THEN
23630 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
23631 END IF
23632 END SUBROUTINE ints2bits_32
23633
23634! **************************************************************************************************
23635!> \brief ...
23636!> \param Ndata ...
23637!> \param packed_data ...
23638!> \param full_data ...
23639! **************************************************************************************************
23640 SUBROUTINE bits2ints_32(Ndata, packed_data, full_data)
23641 INTEGER, INTENT(IN) :: Ndata
23642 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
23643 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
23644
23645 INTEGER, PARAMETER :: Nbits = 32
23646
23647 INTEGER :: idata, ipack, kdata, Ndata_rep
23648 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
23649
23650 ipack = 0
23651 idata = 0
23652 pack_tmp = 0
23653 ndata_rep = (ndata/64)*64
23654 DO kdata = 1, ndata_rep, 64
23655 idata = idata + 1
23656 data_tmp = ishft(pack_tmp, 32)
23657 ipack = ipack + 1
23658 pack_tmp = packed_data(ipack)
23659 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23660 pack_tmp = ishft(pack_tmp, -32)
23661 idata = idata + 1
23662 data_tmp = iand(pack_tmp, mask_right(nbits))
23663 full_data(idata) = data_tmp
23664 pack_tmp = ishft(pack_tmp, -nbits)
23665 idata = idata + 1
23666 data_tmp = ishft(pack_tmp, 32)
23667 ipack = ipack + 1
23668 pack_tmp = packed_data(ipack)
23669 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23670 pack_tmp = ishft(pack_tmp, -32)
23671 idata = idata + 1
23672 data_tmp = iand(pack_tmp, mask_right(nbits))
23673 full_data(idata) = data_tmp
23674 pack_tmp = ishft(pack_tmp, -nbits)
23675 idata = idata + 1
23676 data_tmp = ishft(pack_tmp, 32)
23677 ipack = ipack + 1
23678 pack_tmp = packed_data(ipack)
23679 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23680 pack_tmp = ishft(pack_tmp, -32)
23681 idata = idata + 1
23682 data_tmp = iand(pack_tmp, mask_right(nbits))
23683 full_data(idata) = data_tmp
23684 pack_tmp = ishft(pack_tmp, -nbits)
23685 idata = idata + 1
23686 data_tmp = ishft(pack_tmp, 32)
23687 ipack = ipack + 1
23688 pack_tmp = packed_data(ipack)
23689 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23690 pack_tmp = ishft(pack_tmp, -32)
23691 idata = idata + 1
23692 data_tmp = iand(pack_tmp, mask_right(nbits))
23693 full_data(idata) = data_tmp
23694 pack_tmp = ishft(pack_tmp, -nbits)
23695 idata = idata + 1
23696 data_tmp = ishft(pack_tmp, 32)
23697 ipack = ipack + 1
23698 pack_tmp = packed_data(ipack)
23699 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23700 pack_tmp = ishft(pack_tmp, -32)
23701 idata = idata + 1
23702 data_tmp = iand(pack_tmp, mask_right(nbits))
23703 full_data(idata) = data_tmp
23704 pack_tmp = ishft(pack_tmp, -nbits)
23705 idata = idata + 1
23706 data_tmp = ishft(pack_tmp, 32)
23707 ipack = ipack + 1
23708 pack_tmp = packed_data(ipack)
23709 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23710 pack_tmp = ishft(pack_tmp, -32)
23711 idata = idata + 1
23712 data_tmp = iand(pack_tmp, mask_right(nbits))
23713 full_data(idata) = data_tmp
23714 pack_tmp = ishft(pack_tmp, -nbits)
23715 idata = idata + 1
23716 data_tmp = ishft(pack_tmp, 32)
23717 ipack = ipack + 1
23718 pack_tmp = packed_data(ipack)
23719 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23720 pack_tmp = ishft(pack_tmp, -32)
23721 idata = idata + 1
23722 data_tmp = iand(pack_tmp, mask_right(nbits))
23723 full_data(idata) = data_tmp
23724 pack_tmp = ishft(pack_tmp, -nbits)
23725 idata = idata + 1
23726 data_tmp = ishft(pack_tmp, 32)
23727 ipack = ipack + 1
23728 pack_tmp = packed_data(ipack)
23729 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23730 pack_tmp = ishft(pack_tmp, -32)
23731 idata = idata + 1
23732 data_tmp = iand(pack_tmp, mask_right(nbits))
23733 full_data(idata) = data_tmp
23734 pack_tmp = ishft(pack_tmp, -nbits)
23735 idata = idata + 1
23736 data_tmp = ishft(pack_tmp, 32)
23737 ipack = ipack + 1
23738 pack_tmp = packed_data(ipack)
23739 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23740 pack_tmp = ishft(pack_tmp, -32)
23741 idata = idata + 1
23742 data_tmp = iand(pack_tmp, mask_right(nbits))
23743 full_data(idata) = data_tmp
23744 pack_tmp = ishft(pack_tmp, -nbits)
23745 idata = idata + 1
23746 data_tmp = ishft(pack_tmp, 32)
23747 ipack = ipack + 1
23748 pack_tmp = packed_data(ipack)
23749 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23750 pack_tmp = ishft(pack_tmp, -32)
23751 idata = idata + 1
23752 data_tmp = iand(pack_tmp, mask_right(nbits))
23753 full_data(idata) = data_tmp
23754 pack_tmp = ishft(pack_tmp, -nbits)
23755 idata = idata + 1
23756 data_tmp = ishft(pack_tmp, 32)
23757 ipack = ipack + 1
23758 pack_tmp = packed_data(ipack)
23759 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23760 pack_tmp = ishft(pack_tmp, -32)
23761 idata = idata + 1
23762 data_tmp = iand(pack_tmp, mask_right(nbits))
23763 full_data(idata) = data_tmp
23764 pack_tmp = ishft(pack_tmp, -nbits)
23765 idata = idata + 1
23766 data_tmp = ishft(pack_tmp, 32)
23767 ipack = ipack + 1
23768 pack_tmp = packed_data(ipack)
23769 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23770 pack_tmp = ishft(pack_tmp, -32)
23771 idata = idata + 1
23772 data_tmp = iand(pack_tmp, mask_right(nbits))
23773 full_data(idata) = data_tmp
23774 pack_tmp = ishft(pack_tmp, -nbits)
23775 idata = idata + 1
23776 data_tmp = ishft(pack_tmp, 32)
23777 ipack = ipack + 1
23778 pack_tmp = packed_data(ipack)
23779 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23780 pack_tmp = ishft(pack_tmp, -32)
23781 idata = idata + 1
23782 data_tmp = iand(pack_tmp, mask_right(nbits))
23783 full_data(idata) = data_tmp
23784 pack_tmp = ishft(pack_tmp, -nbits)
23785 idata = idata + 1
23786 data_tmp = ishft(pack_tmp, 32)
23787 ipack = ipack + 1
23788 pack_tmp = packed_data(ipack)
23789 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23790 pack_tmp = ishft(pack_tmp, -32)
23791 idata = idata + 1
23792 data_tmp = iand(pack_tmp, mask_right(nbits))
23793 full_data(idata) = data_tmp
23794 pack_tmp = ishft(pack_tmp, -nbits)
23795 idata = idata + 1
23796 data_tmp = ishft(pack_tmp, 32)
23797 ipack = ipack + 1
23798 pack_tmp = packed_data(ipack)
23799 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23800 pack_tmp = ishft(pack_tmp, -32)
23801 idata = idata + 1
23802 data_tmp = iand(pack_tmp, mask_right(nbits))
23803 full_data(idata) = data_tmp
23804 pack_tmp = ishft(pack_tmp, -nbits)
23805 idata = idata + 1
23806 data_tmp = ishft(pack_tmp, 32)
23807 ipack = ipack + 1
23808 pack_tmp = packed_data(ipack)
23809 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23810 pack_tmp = ishft(pack_tmp, -32)
23811 idata = idata + 1
23812 data_tmp = iand(pack_tmp, mask_right(nbits))
23813 full_data(idata) = data_tmp
23814 pack_tmp = ishft(pack_tmp, -nbits)
23815 idata = idata + 1
23816 data_tmp = ishft(pack_tmp, 32)
23817 ipack = ipack + 1
23818 pack_tmp = packed_data(ipack)
23819 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23820 pack_tmp = ishft(pack_tmp, -32)
23821 idata = idata + 1
23822 data_tmp = iand(pack_tmp, mask_right(nbits))
23823 full_data(idata) = data_tmp
23824 pack_tmp = ishft(pack_tmp, -nbits)
23825 idata = idata + 1
23826 data_tmp = ishft(pack_tmp, 32)
23827 ipack = ipack + 1
23828 pack_tmp = packed_data(ipack)
23829 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23830 pack_tmp = ishft(pack_tmp, -32)
23831 idata = idata + 1
23832 data_tmp = iand(pack_tmp, mask_right(nbits))
23833 full_data(idata) = data_tmp
23834 pack_tmp = ishft(pack_tmp, -nbits)
23835 idata = idata + 1
23836 data_tmp = ishft(pack_tmp, 32)
23837 ipack = ipack + 1
23838 pack_tmp = packed_data(ipack)
23839 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23840 pack_tmp = ishft(pack_tmp, -32)
23841 idata = idata + 1
23842 data_tmp = iand(pack_tmp, mask_right(nbits))
23843 full_data(idata) = data_tmp
23844 pack_tmp = ishft(pack_tmp, -nbits)
23845 idata = idata + 1
23846 data_tmp = ishft(pack_tmp, 32)
23847 ipack = ipack + 1
23848 pack_tmp = packed_data(ipack)
23849 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23850 pack_tmp = ishft(pack_tmp, -32)
23851 idata = idata + 1
23852 data_tmp = iand(pack_tmp, mask_right(nbits))
23853 full_data(idata) = data_tmp
23854 pack_tmp = ishft(pack_tmp, -nbits)
23855 idata = idata + 1
23856 data_tmp = ishft(pack_tmp, 32)
23857 ipack = ipack + 1
23858 pack_tmp = packed_data(ipack)
23859 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23860 pack_tmp = ishft(pack_tmp, -32)
23861 idata = idata + 1
23862 data_tmp = iand(pack_tmp, mask_right(nbits))
23863 full_data(idata) = data_tmp
23864 pack_tmp = ishft(pack_tmp, -nbits)
23865 idata = idata + 1
23866 data_tmp = ishft(pack_tmp, 32)
23867 ipack = ipack + 1
23868 pack_tmp = packed_data(ipack)
23869 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23870 pack_tmp = ishft(pack_tmp, -32)
23871 idata = idata + 1
23872 data_tmp = iand(pack_tmp, mask_right(nbits))
23873 full_data(idata) = data_tmp
23874 pack_tmp = ishft(pack_tmp, -nbits)
23875 idata = idata + 1
23876 data_tmp = ishft(pack_tmp, 32)
23877 ipack = ipack + 1
23878 pack_tmp = packed_data(ipack)
23879 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23880 pack_tmp = ishft(pack_tmp, -32)
23881 idata = idata + 1
23882 data_tmp = iand(pack_tmp, mask_right(nbits))
23883 full_data(idata) = data_tmp
23884 pack_tmp = ishft(pack_tmp, -nbits)
23885 idata = idata + 1
23886 data_tmp = ishft(pack_tmp, 32)
23887 ipack = ipack + 1
23888 pack_tmp = packed_data(ipack)
23889 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23890 pack_tmp = ishft(pack_tmp, -32)
23891 idata = idata + 1
23892 data_tmp = iand(pack_tmp, mask_right(nbits))
23893 full_data(idata) = data_tmp
23894 pack_tmp = ishft(pack_tmp, -nbits)
23895 idata = idata + 1
23896 data_tmp = ishft(pack_tmp, 32)
23897 ipack = ipack + 1
23898 pack_tmp = packed_data(ipack)
23899 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23900 pack_tmp = ishft(pack_tmp, -32)
23901 idata = idata + 1
23902 data_tmp = iand(pack_tmp, mask_right(nbits))
23903 full_data(idata) = data_tmp
23904 pack_tmp = ishft(pack_tmp, -nbits)
23905 idata = idata + 1
23906 data_tmp = ishft(pack_tmp, 32)
23907 ipack = ipack + 1
23908 pack_tmp = packed_data(ipack)
23909 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23910 pack_tmp = ishft(pack_tmp, -32)
23911 idata = idata + 1
23912 data_tmp = iand(pack_tmp, mask_right(nbits))
23913 full_data(idata) = data_tmp
23914 pack_tmp = ishft(pack_tmp, -nbits)
23915 idata = idata + 1
23916 data_tmp = ishft(pack_tmp, 32)
23917 ipack = ipack + 1
23918 pack_tmp = packed_data(ipack)
23919 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23920 pack_tmp = ishft(pack_tmp, -32)
23921 idata = idata + 1
23922 data_tmp = iand(pack_tmp, mask_right(nbits))
23923 full_data(idata) = data_tmp
23924 pack_tmp = ishft(pack_tmp, -nbits)
23925 idata = idata + 1
23926 data_tmp = ishft(pack_tmp, 32)
23927 ipack = ipack + 1
23928 pack_tmp = packed_data(ipack)
23929 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23930 pack_tmp = ishft(pack_tmp, -32)
23931 idata = idata + 1
23932 data_tmp = iand(pack_tmp, mask_right(nbits))
23933 full_data(idata) = data_tmp
23934 pack_tmp = ishft(pack_tmp, -nbits)
23935 idata = idata + 1
23936 data_tmp = ishft(pack_tmp, 32)
23937 ipack = ipack + 1
23938 pack_tmp = packed_data(ipack)
23939 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23940 pack_tmp = ishft(pack_tmp, -32)
23941 idata = idata + 1
23942 data_tmp = iand(pack_tmp, mask_right(nbits))
23943 full_data(idata) = data_tmp
23944 pack_tmp = ishft(pack_tmp, -nbits)
23945 idata = idata + 1
23946 data_tmp = ishft(pack_tmp, 32)
23947 ipack = ipack + 1
23948 pack_tmp = packed_data(ipack)
23949 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23950 pack_tmp = ishft(pack_tmp, -32)
23951 idata = idata + 1
23952 data_tmp = iand(pack_tmp, mask_right(nbits))
23953 full_data(idata) = data_tmp
23954 pack_tmp = ishft(pack_tmp, -nbits)
23955 idata = idata + 1
23956 data_tmp = ishft(pack_tmp, 32)
23957 ipack = ipack + 1
23958 pack_tmp = packed_data(ipack)
23959 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23960 pack_tmp = ishft(pack_tmp, -32)
23961 idata = idata + 1
23962 data_tmp = iand(pack_tmp, mask_right(nbits))
23963 full_data(idata) = data_tmp
23964 pack_tmp = ishft(pack_tmp, -nbits)
23965 idata = idata + 1
23966 data_tmp = ishft(pack_tmp, 32)
23967 ipack = ipack + 1
23968 pack_tmp = packed_data(ipack)
23969 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
23970 pack_tmp = ishft(pack_tmp, -32)
23971 idata = idata + 1
23972 data_tmp = iand(pack_tmp, mask_right(nbits))
23973 full_data(idata) = data_tmp
23974 pack_tmp = ishft(pack_tmp, -nbits)
23975 END DO
23976 IF (ndata_rep < ndata) THEN
23977 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
23978 END IF
23979 END SUBROUTINE bits2ints_32
23980
23981! **************************************************************************************************
23982!> \brief ...
23983!> \param Ndata ...
23984!> \param packed_data ...
23985!> \param full_data ...
23986! **************************************************************************************************
23987 SUBROUTINE ints2bits_33(Ndata, packed_data, full_data)
23988 INTEGER, INTENT(IN) :: Ndata
23989 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
23990 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
23991
23992 INTEGER, PARAMETER :: Nbits = 33
23993
23994 INTEGER :: idata, ipack, kdata, Ndata_rep
23995 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
23996
23997 idata = 0
23998 ipack = 0
23999 ndata_rep = (ndata/64)*64
24000 DO kdata = 1, ndata_rep, 64
24001 pack_tmp = 0
24002 idata = idata + 1
24003 data_tmp = full_data(idata)
24004 data_tmp = ishft(data_tmp, 31)
24005 pack_tmp = ior(pack_tmp, data_tmp)
24006 pack_tmp = ishft(pack_tmp, -31)
24007 idata = idata + 1
24008 data_tmp = full_data(idata)
24009 data_tmp = ishft(data_tmp, 31)
24010 data_tmp = iand(data_tmp, mask_left(31))
24011 pack_tmp = ior(pack_tmp, data_tmp)
24012 ipack = ipack + 1
24013 packed_data(ipack) = pack_tmp
24014 data_tmp = full_data(idata)
24015 pack_tmp = ishft(data_tmp, 62)
24016 pack_tmp = ishft(pack_tmp, -33)
24017 idata = idata + 1
24018 data_tmp = full_data(idata)
24019 data_tmp = ishft(data_tmp, 31)
24020 pack_tmp = ior(pack_tmp, data_tmp)
24021 pack_tmp = ishft(pack_tmp, -29)
24022 idata = idata + 1
24023 data_tmp = full_data(idata)
24024 data_tmp = ishft(data_tmp, 31)
24025 data_tmp = iand(data_tmp, mask_left(29))
24026 pack_tmp = ior(pack_tmp, data_tmp)
24027 ipack = ipack + 1
24028 packed_data(ipack) = pack_tmp
24029 data_tmp = full_data(idata)
24030 pack_tmp = ishft(data_tmp, 60)
24031 pack_tmp = ishft(pack_tmp, -33)
24032 idata = idata + 1
24033 data_tmp = full_data(idata)
24034 data_tmp = ishft(data_tmp, 31)
24035 pack_tmp = ior(pack_tmp, data_tmp)
24036 pack_tmp = ishft(pack_tmp, -27)
24037 idata = idata + 1
24038 data_tmp = full_data(idata)
24039 data_tmp = ishft(data_tmp, 31)
24040 data_tmp = iand(data_tmp, mask_left(27))
24041 pack_tmp = ior(pack_tmp, data_tmp)
24042 ipack = ipack + 1
24043 packed_data(ipack) = pack_tmp
24044 data_tmp = full_data(idata)
24045 pack_tmp = ishft(data_tmp, 58)
24046 pack_tmp = ishft(pack_tmp, -33)
24047 idata = idata + 1
24048 data_tmp = full_data(idata)
24049 data_tmp = ishft(data_tmp, 31)
24050 pack_tmp = ior(pack_tmp, data_tmp)
24051 pack_tmp = ishft(pack_tmp, -25)
24052 idata = idata + 1
24053 data_tmp = full_data(idata)
24054 data_tmp = ishft(data_tmp, 31)
24055 data_tmp = iand(data_tmp, mask_left(25))
24056 pack_tmp = ior(pack_tmp, data_tmp)
24057 ipack = ipack + 1
24058 packed_data(ipack) = pack_tmp
24059 data_tmp = full_data(idata)
24060 pack_tmp = ishft(data_tmp, 56)
24061 pack_tmp = ishft(pack_tmp, -33)
24062 idata = idata + 1
24063 data_tmp = full_data(idata)
24064 data_tmp = ishft(data_tmp, 31)
24065 pack_tmp = ior(pack_tmp, data_tmp)
24066 pack_tmp = ishft(pack_tmp, -23)
24067 idata = idata + 1
24068 data_tmp = full_data(idata)
24069 data_tmp = ishft(data_tmp, 31)
24070 data_tmp = iand(data_tmp, mask_left(23))
24071 pack_tmp = ior(pack_tmp, data_tmp)
24072 ipack = ipack + 1
24073 packed_data(ipack) = pack_tmp
24074 data_tmp = full_data(idata)
24075 pack_tmp = ishft(data_tmp, 54)
24076 pack_tmp = ishft(pack_tmp, -33)
24077 idata = idata + 1
24078 data_tmp = full_data(idata)
24079 data_tmp = ishft(data_tmp, 31)
24080 pack_tmp = ior(pack_tmp, data_tmp)
24081 pack_tmp = ishft(pack_tmp, -21)
24082 idata = idata + 1
24083 data_tmp = full_data(idata)
24084 data_tmp = ishft(data_tmp, 31)
24085 data_tmp = iand(data_tmp, mask_left(21))
24086 pack_tmp = ior(pack_tmp, data_tmp)
24087 ipack = ipack + 1
24088 packed_data(ipack) = pack_tmp
24089 data_tmp = full_data(idata)
24090 pack_tmp = ishft(data_tmp, 52)
24091 pack_tmp = ishft(pack_tmp, -33)
24092 idata = idata + 1
24093 data_tmp = full_data(idata)
24094 data_tmp = ishft(data_tmp, 31)
24095 pack_tmp = ior(pack_tmp, data_tmp)
24096 pack_tmp = ishft(pack_tmp, -19)
24097 idata = idata + 1
24098 data_tmp = full_data(idata)
24099 data_tmp = ishft(data_tmp, 31)
24100 data_tmp = iand(data_tmp, mask_left(19))
24101 pack_tmp = ior(pack_tmp, data_tmp)
24102 ipack = ipack + 1
24103 packed_data(ipack) = pack_tmp
24104 data_tmp = full_data(idata)
24105 pack_tmp = ishft(data_tmp, 50)
24106 pack_tmp = ishft(pack_tmp, -33)
24107 idata = idata + 1
24108 data_tmp = full_data(idata)
24109 data_tmp = ishft(data_tmp, 31)
24110 pack_tmp = ior(pack_tmp, data_tmp)
24111 pack_tmp = ishft(pack_tmp, -17)
24112 idata = idata + 1
24113 data_tmp = full_data(idata)
24114 data_tmp = ishft(data_tmp, 31)
24115 data_tmp = iand(data_tmp, mask_left(17))
24116 pack_tmp = ior(pack_tmp, data_tmp)
24117 ipack = ipack + 1
24118 packed_data(ipack) = pack_tmp
24119 data_tmp = full_data(idata)
24120 pack_tmp = ishft(data_tmp, 48)
24121 pack_tmp = ishft(pack_tmp, -33)
24122 idata = idata + 1
24123 data_tmp = full_data(idata)
24124 data_tmp = ishft(data_tmp, 31)
24125 pack_tmp = ior(pack_tmp, data_tmp)
24126 pack_tmp = ishft(pack_tmp, -15)
24127 idata = idata + 1
24128 data_tmp = full_data(idata)
24129 data_tmp = ishft(data_tmp, 31)
24130 data_tmp = iand(data_tmp, mask_left(15))
24131 pack_tmp = ior(pack_tmp, data_tmp)
24132 ipack = ipack + 1
24133 packed_data(ipack) = pack_tmp
24134 data_tmp = full_data(idata)
24135 pack_tmp = ishft(data_tmp, 46)
24136 pack_tmp = ishft(pack_tmp, -33)
24137 idata = idata + 1
24138 data_tmp = full_data(idata)
24139 data_tmp = ishft(data_tmp, 31)
24140 pack_tmp = ior(pack_tmp, data_tmp)
24141 pack_tmp = ishft(pack_tmp, -13)
24142 idata = idata + 1
24143 data_tmp = full_data(idata)
24144 data_tmp = ishft(data_tmp, 31)
24145 data_tmp = iand(data_tmp, mask_left(13))
24146 pack_tmp = ior(pack_tmp, data_tmp)
24147 ipack = ipack + 1
24148 packed_data(ipack) = pack_tmp
24149 data_tmp = full_data(idata)
24150 pack_tmp = ishft(data_tmp, 44)
24151 pack_tmp = ishft(pack_tmp, -33)
24152 idata = idata + 1
24153 data_tmp = full_data(idata)
24154 data_tmp = ishft(data_tmp, 31)
24155 pack_tmp = ior(pack_tmp, data_tmp)
24156 pack_tmp = ishft(pack_tmp, -11)
24157 idata = idata + 1
24158 data_tmp = full_data(idata)
24159 data_tmp = ishft(data_tmp, 31)
24160 data_tmp = iand(data_tmp, mask_left(11))
24161 pack_tmp = ior(pack_tmp, data_tmp)
24162 ipack = ipack + 1
24163 packed_data(ipack) = pack_tmp
24164 data_tmp = full_data(idata)
24165 pack_tmp = ishft(data_tmp, 42)
24166 pack_tmp = ishft(pack_tmp, -33)
24167 idata = idata + 1
24168 data_tmp = full_data(idata)
24169 data_tmp = ishft(data_tmp, 31)
24170 pack_tmp = ior(pack_tmp, data_tmp)
24171 pack_tmp = ishft(pack_tmp, -9)
24172 idata = idata + 1
24173 data_tmp = full_data(idata)
24174 data_tmp = ishft(data_tmp, 31)
24175 data_tmp = iand(data_tmp, mask_left(9))
24176 pack_tmp = ior(pack_tmp, data_tmp)
24177 ipack = ipack + 1
24178 packed_data(ipack) = pack_tmp
24179 data_tmp = full_data(idata)
24180 pack_tmp = ishft(data_tmp, 40)
24181 pack_tmp = ishft(pack_tmp, -33)
24182 idata = idata + 1
24183 data_tmp = full_data(idata)
24184 data_tmp = ishft(data_tmp, 31)
24185 pack_tmp = ior(pack_tmp, data_tmp)
24186 pack_tmp = ishft(pack_tmp, -7)
24187 idata = idata + 1
24188 data_tmp = full_data(idata)
24189 data_tmp = ishft(data_tmp, 31)
24190 data_tmp = iand(data_tmp, mask_left(7))
24191 pack_tmp = ior(pack_tmp, data_tmp)
24192 ipack = ipack + 1
24193 packed_data(ipack) = pack_tmp
24194 data_tmp = full_data(idata)
24195 pack_tmp = ishft(data_tmp, 38)
24196 pack_tmp = ishft(pack_tmp, -33)
24197 idata = idata + 1
24198 data_tmp = full_data(idata)
24199 data_tmp = ishft(data_tmp, 31)
24200 pack_tmp = ior(pack_tmp, data_tmp)
24201 pack_tmp = ishft(pack_tmp, -5)
24202 idata = idata + 1
24203 data_tmp = full_data(idata)
24204 data_tmp = ishft(data_tmp, 31)
24205 data_tmp = iand(data_tmp, mask_left(5))
24206 pack_tmp = ior(pack_tmp, data_tmp)
24207 ipack = ipack + 1
24208 packed_data(ipack) = pack_tmp
24209 data_tmp = full_data(idata)
24210 pack_tmp = ishft(data_tmp, 36)
24211 pack_tmp = ishft(pack_tmp, -33)
24212 idata = idata + 1
24213 data_tmp = full_data(idata)
24214 data_tmp = ishft(data_tmp, 31)
24215 pack_tmp = ior(pack_tmp, data_tmp)
24216 pack_tmp = ishft(pack_tmp, -3)
24217 idata = idata + 1
24218 data_tmp = full_data(idata)
24219 data_tmp = ishft(data_tmp, 31)
24220 data_tmp = iand(data_tmp, mask_left(3))
24221 pack_tmp = ior(pack_tmp, data_tmp)
24222 ipack = ipack + 1
24223 packed_data(ipack) = pack_tmp
24224 data_tmp = full_data(idata)
24225 pack_tmp = ishft(data_tmp, 34)
24226 pack_tmp = ishft(pack_tmp, -33)
24227 idata = idata + 1
24228 data_tmp = full_data(idata)
24229 data_tmp = ishft(data_tmp, 31)
24230 pack_tmp = ior(pack_tmp, data_tmp)
24231 pack_tmp = ishft(pack_tmp, -1)
24232 idata = idata + 1
24233 data_tmp = full_data(idata)
24234 data_tmp = ishft(data_tmp, 31)
24235 data_tmp = iand(data_tmp, mask_left(1))
24236 pack_tmp = ior(pack_tmp, data_tmp)
24237 ipack = ipack + 1
24238 packed_data(ipack) = pack_tmp
24239 data_tmp = full_data(idata)
24240 pack_tmp = ishft(data_tmp, 32)
24241 pack_tmp = ishft(pack_tmp, -32)
24242 idata = idata + 1
24243 data_tmp = full_data(idata)
24244 data_tmp = ishft(data_tmp, 31)
24245 data_tmp = iand(data_tmp, mask_left(32))
24246 pack_tmp = ior(pack_tmp, data_tmp)
24247 ipack = ipack + 1
24248 packed_data(ipack) = pack_tmp
24249 data_tmp = full_data(idata)
24250 pack_tmp = ishft(data_tmp, 63)
24251 pack_tmp = ishft(pack_tmp, -33)
24252 idata = idata + 1
24253 data_tmp = full_data(idata)
24254 data_tmp = ishft(data_tmp, 31)
24255 pack_tmp = ior(pack_tmp, data_tmp)
24256 pack_tmp = ishft(pack_tmp, -30)
24257 idata = idata + 1
24258 data_tmp = full_data(idata)
24259 data_tmp = ishft(data_tmp, 31)
24260 data_tmp = iand(data_tmp, mask_left(30))
24261 pack_tmp = ior(pack_tmp, data_tmp)
24262 ipack = ipack + 1
24263 packed_data(ipack) = pack_tmp
24264 data_tmp = full_data(idata)
24265 pack_tmp = ishft(data_tmp, 61)
24266 pack_tmp = ishft(pack_tmp, -33)
24267 idata = idata + 1
24268 data_tmp = full_data(idata)
24269 data_tmp = ishft(data_tmp, 31)
24270 pack_tmp = ior(pack_tmp, data_tmp)
24271 pack_tmp = ishft(pack_tmp, -28)
24272 idata = idata + 1
24273 data_tmp = full_data(idata)
24274 data_tmp = ishft(data_tmp, 31)
24275 data_tmp = iand(data_tmp, mask_left(28))
24276 pack_tmp = ior(pack_tmp, data_tmp)
24277 ipack = ipack + 1
24278 packed_data(ipack) = pack_tmp
24279 data_tmp = full_data(idata)
24280 pack_tmp = ishft(data_tmp, 59)
24281 pack_tmp = ishft(pack_tmp, -33)
24282 idata = idata + 1
24283 data_tmp = full_data(idata)
24284 data_tmp = ishft(data_tmp, 31)
24285 pack_tmp = ior(pack_tmp, data_tmp)
24286 pack_tmp = ishft(pack_tmp, -26)
24287 idata = idata + 1
24288 data_tmp = full_data(idata)
24289 data_tmp = ishft(data_tmp, 31)
24290 data_tmp = iand(data_tmp, mask_left(26))
24291 pack_tmp = ior(pack_tmp, data_tmp)
24292 ipack = ipack + 1
24293 packed_data(ipack) = pack_tmp
24294 data_tmp = full_data(idata)
24295 pack_tmp = ishft(data_tmp, 57)
24296 pack_tmp = ishft(pack_tmp, -33)
24297 idata = idata + 1
24298 data_tmp = full_data(idata)
24299 data_tmp = ishft(data_tmp, 31)
24300 pack_tmp = ior(pack_tmp, data_tmp)
24301 pack_tmp = ishft(pack_tmp, -24)
24302 idata = idata + 1
24303 data_tmp = full_data(idata)
24304 data_tmp = ishft(data_tmp, 31)
24305 data_tmp = iand(data_tmp, mask_left(24))
24306 pack_tmp = ior(pack_tmp, data_tmp)
24307 ipack = ipack + 1
24308 packed_data(ipack) = pack_tmp
24309 data_tmp = full_data(idata)
24310 pack_tmp = ishft(data_tmp, 55)
24311 pack_tmp = ishft(pack_tmp, -33)
24312 idata = idata + 1
24313 data_tmp = full_data(idata)
24314 data_tmp = ishft(data_tmp, 31)
24315 pack_tmp = ior(pack_tmp, data_tmp)
24316 pack_tmp = ishft(pack_tmp, -22)
24317 idata = idata + 1
24318 data_tmp = full_data(idata)
24319 data_tmp = ishft(data_tmp, 31)
24320 data_tmp = iand(data_tmp, mask_left(22))
24321 pack_tmp = ior(pack_tmp, data_tmp)
24322 ipack = ipack + 1
24323 packed_data(ipack) = pack_tmp
24324 data_tmp = full_data(idata)
24325 pack_tmp = ishft(data_tmp, 53)
24326 pack_tmp = ishft(pack_tmp, -33)
24327 idata = idata + 1
24328 data_tmp = full_data(idata)
24329 data_tmp = ishft(data_tmp, 31)
24330 pack_tmp = ior(pack_tmp, data_tmp)
24331 pack_tmp = ishft(pack_tmp, -20)
24332 idata = idata + 1
24333 data_tmp = full_data(idata)
24334 data_tmp = ishft(data_tmp, 31)
24335 data_tmp = iand(data_tmp, mask_left(20))
24336 pack_tmp = ior(pack_tmp, data_tmp)
24337 ipack = ipack + 1
24338 packed_data(ipack) = pack_tmp
24339 data_tmp = full_data(idata)
24340 pack_tmp = ishft(data_tmp, 51)
24341 pack_tmp = ishft(pack_tmp, -33)
24342 idata = idata + 1
24343 data_tmp = full_data(idata)
24344 data_tmp = ishft(data_tmp, 31)
24345 pack_tmp = ior(pack_tmp, data_tmp)
24346 pack_tmp = ishft(pack_tmp, -18)
24347 idata = idata + 1
24348 data_tmp = full_data(idata)
24349 data_tmp = ishft(data_tmp, 31)
24350 data_tmp = iand(data_tmp, mask_left(18))
24351 pack_tmp = ior(pack_tmp, data_tmp)
24352 ipack = ipack + 1
24353 packed_data(ipack) = pack_tmp
24354 data_tmp = full_data(idata)
24355 pack_tmp = ishft(data_tmp, 49)
24356 pack_tmp = ishft(pack_tmp, -33)
24357 idata = idata + 1
24358 data_tmp = full_data(idata)
24359 data_tmp = ishft(data_tmp, 31)
24360 pack_tmp = ior(pack_tmp, data_tmp)
24361 pack_tmp = ishft(pack_tmp, -16)
24362 idata = idata + 1
24363 data_tmp = full_data(idata)
24364 data_tmp = ishft(data_tmp, 31)
24365 data_tmp = iand(data_tmp, mask_left(16))
24366 pack_tmp = ior(pack_tmp, data_tmp)
24367 ipack = ipack + 1
24368 packed_data(ipack) = pack_tmp
24369 data_tmp = full_data(idata)
24370 pack_tmp = ishft(data_tmp, 47)
24371 pack_tmp = ishft(pack_tmp, -33)
24372 idata = idata + 1
24373 data_tmp = full_data(idata)
24374 data_tmp = ishft(data_tmp, 31)
24375 pack_tmp = ior(pack_tmp, data_tmp)
24376 pack_tmp = ishft(pack_tmp, -14)
24377 idata = idata + 1
24378 data_tmp = full_data(idata)
24379 data_tmp = ishft(data_tmp, 31)
24380 data_tmp = iand(data_tmp, mask_left(14))
24381 pack_tmp = ior(pack_tmp, data_tmp)
24382 ipack = ipack + 1
24383 packed_data(ipack) = pack_tmp
24384 data_tmp = full_data(idata)
24385 pack_tmp = ishft(data_tmp, 45)
24386 pack_tmp = ishft(pack_tmp, -33)
24387 idata = idata + 1
24388 data_tmp = full_data(idata)
24389 data_tmp = ishft(data_tmp, 31)
24390 pack_tmp = ior(pack_tmp, data_tmp)
24391 pack_tmp = ishft(pack_tmp, -12)
24392 idata = idata + 1
24393 data_tmp = full_data(idata)
24394 data_tmp = ishft(data_tmp, 31)
24395 data_tmp = iand(data_tmp, mask_left(12))
24396 pack_tmp = ior(pack_tmp, data_tmp)
24397 ipack = ipack + 1
24398 packed_data(ipack) = pack_tmp
24399 data_tmp = full_data(idata)
24400 pack_tmp = ishft(data_tmp, 43)
24401 pack_tmp = ishft(pack_tmp, -33)
24402 idata = idata + 1
24403 data_tmp = full_data(idata)
24404 data_tmp = ishft(data_tmp, 31)
24405 pack_tmp = ior(pack_tmp, data_tmp)
24406 pack_tmp = ishft(pack_tmp, -10)
24407 idata = idata + 1
24408 data_tmp = full_data(idata)
24409 data_tmp = ishft(data_tmp, 31)
24410 data_tmp = iand(data_tmp, mask_left(10))
24411 pack_tmp = ior(pack_tmp, data_tmp)
24412 ipack = ipack + 1
24413 packed_data(ipack) = pack_tmp
24414 data_tmp = full_data(idata)
24415 pack_tmp = ishft(data_tmp, 41)
24416 pack_tmp = ishft(pack_tmp, -33)
24417 idata = idata + 1
24418 data_tmp = full_data(idata)
24419 data_tmp = ishft(data_tmp, 31)
24420 pack_tmp = ior(pack_tmp, data_tmp)
24421 pack_tmp = ishft(pack_tmp, -8)
24422 idata = idata + 1
24423 data_tmp = full_data(idata)
24424 data_tmp = ishft(data_tmp, 31)
24425 data_tmp = iand(data_tmp, mask_left(8))
24426 pack_tmp = ior(pack_tmp, data_tmp)
24427 ipack = ipack + 1
24428 packed_data(ipack) = pack_tmp
24429 data_tmp = full_data(idata)
24430 pack_tmp = ishft(data_tmp, 39)
24431 pack_tmp = ishft(pack_tmp, -33)
24432 idata = idata + 1
24433 data_tmp = full_data(idata)
24434 data_tmp = ishft(data_tmp, 31)
24435 pack_tmp = ior(pack_tmp, data_tmp)
24436 pack_tmp = ishft(pack_tmp, -6)
24437 idata = idata + 1
24438 data_tmp = full_data(idata)
24439 data_tmp = ishft(data_tmp, 31)
24440 data_tmp = iand(data_tmp, mask_left(6))
24441 pack_tmp = ior(pack_tmp, data_tmp)
24442 ipack = ipack + 1
24443 packed_data(ipack) = pack_tmp
24444 data_tmp = full_data(idata)
24445 pack_tmp = ishft(data_tmp, 37)
24446 pack_tmp = ishft(pack_tmp, -33)
24447 idata = idata + 1
24448 data_tmp = full_data(idata)
24449 data_tmp = ishft(data_tmp, 31)
24450 pack_tmp = ior(pack_tmp, data_tmp)
24451 pack_tmp = ishft(pack_tmp, -4)
24452 idata = idata + 1
24453 data_tmp = full_data(idata)
24454 data_tmp = ishft(data_tmp, 31)
24455 data_tmp = iand(data_tmp, mask_left(4))
24456 pack_tmp = ior(pack_tmp, data_tmp)
24457 ipack = ipack + 1
24458 packed_data(ipack) = pack_tmp
24459 data_tmp = full_data(idata)
24460 pack_tmp = ishft(data_tmp, 35)
24461 pack_tmp = ishft(pack_tmp, -33)
24462 idata = idata + 1
24463 data_tmp = full_data(idata)
24464 data_tmp = ishft(data_tmp, 31)
24465 pack_tmp = ior(pack_tmp, data_tmp)
24466 pack_tmp = ishft(pack_tmp, -2)
24467 idata = idata + 1
24468 data_tmp = full_data(idata)
24469 data_tmp = ishft(data_tmp, 31)
24470 data_tmp = iand(data_tmp, mask_left(2))
24471 pack_tmp = ior(pack_tmp, data_tmp)
24472 ipack = ipack + 1
24473 packed_data(ipack) = pack_tmp
24474 data_tmp = full_data(idata)
24475 pack_tmp = ishft(data_tmp, 33)
24476 pack_tmp = ishft(pack_tmp, -33)
24477 idata = idata + 1
24478 data_tmp = full_data(idata)
24479 data_tmp = ishft(data_tmp, 31)
24480 pack_tmp = ior(pack_tmp, data_tmp)
24481 pack_tmp = ishft(pack_tmp, 0)
24482 pack_tmp = ishft(pack_tmp, 0)
24483 ipack = ipack + 1
24484 packed_data(ipack) = pack_tmp
24485 END DO
24486 IF (ndata_rep < ndata) THEN
24487 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
24488 END IF
24489 END SUBROUTINE ints2bits_33
24490
24491! **************************************************************************************************
24492!> \brief ...
24493!> \param Ndata ...
24494!> \param packed_data ...
24495!> \param full_data ...
24496! **************************************************************************************************
24497 SUBROUTINE bits2ints_33(Ndata, packed_data, full_data)
24498 INTEGER, INTENT(IN) :: Ndata
24499 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
24500 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
24501
24502 INTEGER, PARAMETER :: Nbits = 33
24503
24504 INTEGER :: idata, ipack, kdata, Ndata_rep
24505 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
24506
24507 ipack = 0
24508 idata = 0
24509 pack_tmp = 0
24510 ndata_rep = (ndata/64)*64
24511 DO kdata = 1, ndata_rep, 64
24512 idata = idata + 1
24513 data_tmp = ishft(pack_tmp, 33)
24514 ipack = ipack + 1
24515 pack_tmp = packed_data(ipack)
24516 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
24517 pack_tmp = ishft(pack_tmp, -33)
24518 idata = idata + 1
24519 data_tmp = ishft(pack_tmp, 2)
24520 ipack = ipack + 1
24521 pack_tmp = packed_data(ipack)
24522 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
24523 pack_tmp = ishft(pack_tmp, -2)
24524 idata = idata + 1
24525 data_tmp = iand(pack_tmp, mask_right(nbits))
24526 full_data(idata) = data_tmp
24527 pack_tmp = ishft(pack_tmp, -nbits)
24528 idata = idata + 1
24529 data_tmp = ishft(pack_tmp, 4)
24530 ipack = ipack + 1
24531 pack_tmp = packed_data(ipack)
24532 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
24533 pack_tmp = ishft(pack_tmp, -4)
24534 idata = idata + 1
24535 data_tmp = iand(pack_tmp, mask_right(nbits))
24536 full_data(idata) = data_tmp
24537 pack_tmp = ishft(pack_tmp, -nbits)
24538 idata = idata + 1
24539 data_tmp = ishft(pack_tmp, 6)
24540 ipack = ipack + 1
24541 pack_tmp = packed_data(ipack)
24542 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
24543 pack_tmp = ishft(pack_tmp, -6)
24544 idata = idata + 1
24545 data_tmp = iand(pack_tmp, mask_right(nbits))
24546 full_data(idata) = data_tmp
24547 pack_tmp = ishft(pack_tmp, -nbits)
24548 idata = idata + 1
24549 data_tmp = ishft(pack_tmp, 8)
24550 ipack = ipack + 1
24551 pack_tmp = packed_data(ipack)
24552 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
24553 pack_tmp = ishft(pack_tmp, -8)
24554 idata = idata + 1
24555 data_tmp = iand(pack_tmp, mask_right(nbits))
24556 full_data(idata) = data_tmp
24557 pack_tmp = ishft(pack_tmp, -nbits)
24558 idata = idata + 1
24559 data_tmp = ishft(pack_tmp, 10)
24560 ipack = ipack + 1
24561 pack_tmp = packed_data(ipack)
24562 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
24563 pack_tmp = ishft(pack_tmp, -10)
24564 idata = idata + 1
24565 data_tmp = iand(pack_tmp, mask_right(nbits))
24566 full_data(idata) = data_tmp
24567 pack_tmp = ishft(pack_tmp, -nbits)
24568 idata = idata + 1
24569 data_tmp = ishft(pack_tmp, 12)
24570 ipack = ipack + 1
24571 pack_tmp = packed_data(ipack)
24572 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
24573 pack_tmp = ishft(pack_tmp, -12)
24574 idata = idata + 1
24575 data_tmp = iand(pack_tmp, mask_right(nbits))
24576 full_data(idata) = data_tmp
24577 pack_tmp = ishft(pack_tmp, -nbits)
24578 idata = idata + 1
24579 data_tmp = ishft(pack_tmp, 14)
24580 ipack = ipack + 1
24581 pack_tmp = packed_data(ipack)
24582 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
24583 pack_tmp = ishft(pack_tmp, -14)
24584 idata = idata + 1
24585 data_tmp = iand(pack_tmp, mask_right(nbits))
24586 full_data(idata) = data_tmp
24587 pack_tmp = ishft(pack_tmp, -nbits)
24588 idata = idata + 1
24589 data_tmp = ishft(pack_tmp, 16)
24590 ipack = ipack + 1
24591 pack_tmp = packed_data(ipack)
24592 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
24593 pack_tmp = ishft(pack_tmp, -16)
24594 idata = idata + 1
24595 data_tmp = iand(pack_tmp, mask_right(nbits))
24596 full_data(idata) = data_tmp
24597 pack_tmp = ishft(pack_tmp, -nbits)
24598 idata = idata + 1
24599 data_tmp = ishft(pack_tmp, 18)
24600 ipack = ipack + 1
24601 pack_tmp = packed_data(ipack)
24602 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
24603 pack_tmp = ishft(pack_tmp, -18)
24604 idata = idata + 1
24605 data_tmp = iand(pack_tmp, mask_right(nbits))
24606 full_data(idata) = data_tmp
24607 pack_tmp = ishft(pack_tmp, -nbits)
24608 idata = idata + 1
24609 data_tmp = ishft(pack_tmp, 20)
24610 ipack = ipack + 1
24611 pack_tmp = packed_data(ipack)
24612 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
24613 pack_tmp = ishft(pack_tmp, -20)
24614 idata = idata + 1
24615 data_tmp = iand(pack_tmp, mask_right(nbits))
24616 full_data(idata) = data_tmp
24617 pack_tmp = ishft(pack_tmp, -nbits)
24618 idata = idata + 1
24619 data_tmp = ishft(pack_tmp, 22)
24620 ipack = ipack + 1
24621 pack_tmp = packed_data(ipack)
24622 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
24623 pack_tmp = ishft(pack_tmp, -22)
24624 idata = idata + 1
24625 data_tmp = iand(pack_tmp, mask_right(nbits))
24626 full_data(idata) = data_tmp
24627 pack_tmp = ishft(pack_tmp, -nbits)
24628 idata = idata + 1
24629 data_tmp = ishft(pack_tmp, 24)
24630 ipack = ipack + 1
24631 pack_tmp = packed_data(ipack)
24632 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
24633 pack_tmp = ishft(pack_tmp, -24)
24634 idata = idata + 1
24635 data_tmp = iand(pack_tmp, mask_right(nbits))
24636 full_data(idata) = data_tmp
24637 pack_tmp = ishft(pack_tmp, -nbits)
24638 idata = idata + 1
24639 data_tmp = ishft(pack_tmp, 26)
24640 ipack = ipack + 1
24641 pack_tmp = packed_data(ipack)
24642 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
24643 pack_tmp = ishft(pack_tmp, -26)
24644 idata = idata + 1
24645 data_tmp = iand(pack_tmp, mask_right(nbits))
24646 full_data(idata) = data_tmp
24647 pack_tmp = ishft(pack_tmp, -nbits)
24648 idata = idata + 1
24649 data_tmp = ishft(pack_tmp, 28)
24650 ipack = ipack + 1
24651 pack_tmp = packed_data(ipack)
24652 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
24653 pack_tmp = ishft(pack_tmp, -28)
24654 idata = idata + 1
24655 data_tmp = iand(pack_tmp, mask_right(nbits))
24656 full_data(idata) = data_tmp
24657 pack_tmp = ishft(pack_tmp, -nbits)
24658 idata = idata + 1
24659 data_tmp = ishft(pack_tmp, 30)
24660 ipack = ipack + 1
24661 pack_tmp = packed_data(ipack)
24662 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
24663 pack_tmp = ishft(pack_tmp, -30)
24664 idata = idata + 1
24665 data_tmp = iand(pack_tmp, mask_right(nbits))
24666 full_data(idata) = data_tmp
24667 pack_tmp = ishft(pack_tmp, -nbits)
24668 idata = idata + 1
24669 data_tmp = ishft(pack_tmp, 32)
24670 ipack = ipack + 1
24671 pack_tmp = packed_data(ipack)
24672 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
24673 pack_tmp = ishft(pack_tmp, -32)
24674 idata = idata + 1
24675 data_tmp = ishft(pack_tmp, 1)
24676 ipack = ipack + 1
24677 pack_tmp = packed_data(ipack)
24678 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
24679 pack_tmp = ishft(pack_tmp, -1)
24680 idata = idata + 1
24681 data_tmp = iand(pack_tmp, mask_right(nbits))
24682 full_data(idata) = data_tmp
24683 pack_tmp = ishft(pack_tmp, -nbits)
24684 idata = idata + 1
24685 data_tmp = ishft(pack_tmp, 3)
24686 ipack = ipack + 1
24687 pack_tmp = packed_data(ipack)
24688 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
24689 pack_tmp = ishft(pack_tmp, -3)
24690 idata = idata + 1
24691 data_tmp = iand(pack_tmp, mask_right(nbits))
24692 full_data(idata) = data_tmp
24693 pack_tmp = ishft(pack_tmp, -nbits)
24694 idata = idata + 1
24695 data_tmp = ishft(pack_tmp, 5)
24696 ipack = ipack + 1
24697 pack_tmp = packed_data(ipack)
24698 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
24699 pack_tmp = ishft(pack_tmp, -5)
24700 idata = idata + 1
24701 data_tmp = iand(pack_tmp, mask_right(nbits))
24702 full_data(idata) = data_tmp
24703 pack_tmp = ishft(pack_tmp, -nbits)
24704 idata = idata + 1
24705 data_tmp = ishft(pack_tmp, 7)
24706 ipack = ipack + 1
24707 pack_tmp = packed_data(ipack)
24708 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
24709 pack_tmp = ishft(pack_tmp, -7)
24710 idata = idata + 1
24711 data_tmp = iand(pack_tmp, mask_right(nbits))
24712 full_data(idata) = data_tmp
24713 pack_tmp = ishft(pack_tmp, -nbits)
24714 idata = idata + 1
24715 data_tmp = ishft(pack_tmp, 9)
24716 ipack = ipack + 1
24717 pack_tmp = packed_data(ipack)
24718 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
24719 pack_tmp = ishft(pack_tmp, -9)
24720 idata = idata + 1
24721 data_tmp = iand(pack_tmp, mask_right(nbits))
24722 full_data(idata) = data_tmp
24723 pack_tmp = ishft(pack_tmp, -nbits)
24724 idata = idata + 1
24725 data_tmp = ishft(pack_tmp, 11)
24726 ipack = ipack + 1
24727 pack_tmp = packed_data(ipack)
24728 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
24729 pack_tmp = ishft(pack_tmp, -11)
24730 idata = idata + 1
24731 data_tmp = iand(pack_tmp, mask_right(nbits))
24732 full_data(idata) = data_tmp
24733 pack_tmp = ishft(pack_tmp, -nbits)
24734 idata = idata + 1
24735 data_tmp = ishft(pack_tmp, 13)
24736 ipack = ipack + 1
24737 pack_tmp = packed_data(ipack)
24738 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
24739 pack_tmp = ishft(pack_tmp, -13)
24740 idata = idata + 1
24741 data_tmp = iand(pack_tmp, mask_right(nbits))
24742 full_data(idata) = data_tmp
24743 pack_tmp = ishft(pack_tmp, -nbits)
24744 idata = idata + 1
24745 data_tmp = ishft(pack_tmp, 15)
24746 ipack = ipack + 1
24747 pack_tmp = packed_data(ipack)
24748 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
24749 pack_tmp = ishft(pack_tmp, -15)
24750 idata = idata + 1
24751 data_tmp = iand(pack_tmp, mask_right(nbits))
24752 full_data(idata) = data_tmp
24753 pack_tmp = ishft(pack_tmp, -nbits)
24754 idata = idata + 1
24755 data_tmp = ishft(pack_tmp, 17)
24756 ipack = ipack + 1
24757 pack_tmp = packed_data(ipack)
24758 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
24759 pack_tmp = ishft(pack_tmp, -17)
24760 idata = idata + 1
24761 data_tmp = iand(pack_tmp, mask_right(nbits))
24762 full_data(idata) = data_tmp
24763 pack_tmp = ishft(pack_tmp, -nbits)
24764 idata = idata + 1
24765 data_tmp = ishft(pack_tmp, 19)
24766 ipack = ipack + 1
24767 pack_tmp = packed_data(ipack)
24768 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
24769 pack_tmp = ishft(pack_tmp, -19)
24770 idata = idata + 1
24771 data_tmp = iand(pack_tmp, mask_right(nbits))
24772 full_data(idata) = data_tmp
24773 pack_tmp = ishft(pack_tmp, -nbits)
24774 idata = idata + 1
24775 data_tmp = ishft(pack_tmp, 21)
24776 ipack = ipack + 1
24777 pack_tmp = packed_data(ipack)
24778 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
24779 pack_tmp = ishft(pack_tmp, -21)
24780 idata = idata + 1
24781 data_tmp = iand(pack_tmp, mask_right(nbits))
24782 full_data(idata) = data_tmp
24783 pack_tmp = ishft(pack_tmp, -nbits)
24784 idata = idata + 1
24785 data_tmp = ishft(pack_tmp, 23)
24786 ipack = ipack + 1
24787 pack_tmp = packed_data(ipack)
24788 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
24789 pack_tmp = ishft(pack_tmp, -23)
24790 idata = idata + 1
24791 data_tmp = iand(pack_tmp, mask_right(nbits))
24792 full_data(idata) = data_tmp
24793 pack_tmp = ishft(pack_tmp, -nbits)
24794 idata = idata + 1
24795 data_tmp = ishft(pack_tmp, 25)
24796 ipack = ipack + 1
24797 pack_tmp = packed_data(ipack)
24798 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
24799 pack_tmp = ishft(pack_tmp, -25)
24800 idata = idata + 1
24801 data_tmp = iand(pack_tmp, mask_right(nbits))
24802 full_data(idata) = data_tmp
24803 pack_tmp = ishft(pack_tmp, -nbits)
24804 idata = idata + 1
24805 data_tmp = ishft(pack_tmp, 27)
24806 ipack = ipack + 1
24807 pack_tmp = packed_data(ipack)
24808 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
24809 pack_tmp = ishft(pack_tmp, -27)
24810 idata = idata + 1
24811 data_tmp = iand(pack_tmp, mask_right(nbits))
24812 full_data(idata) = data_tmp
24813 pack_tmp = ishft(pack_tmp, -nbits)
24814 idata = idata + 1
24815 data_tmp = ishft(pack_tmp, 29)
24816 ipack = ipack + 1
24817 pack_tmp = packed_data(ipack)
24818 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
24819 pack_tmp = ishft(pack_tmp, -29)
24820 idata = idata + 1
24821 data_tmp = iand(pack_tmp, mask_right(nbits))
24822 full_data(idata) = data_tmp
24823 pack_tmp = ishft(pack_tmp, -nbits)
24824 idata = idata + 1
24825 data_tmp = ishft(pack_tmp, 31)
24826 ipack = ipack + 1
24827 pack_tmp = packed_data(ipack)
24828 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
24829 pack_tmp = ishft(pack_tmp, -31)
24830 idata = idata + 1
24831 data_tmp = iand(pack_tmp, mask_right(nbits))
24832 full_data(idata) = data_tmp
24833 pack_tmp = ishft(pack_tmp, -nbits)
24834 END DO
24835 IF (ndata_rep < ndata) THEN
24836 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
24837 END IF
24838 END SUBROUTINE bits2ints_33
24839
24840! **************************************************************************************************
24841!> \brief ...
24842!> \param Ndata ...
24843!> \param packed_data ...
24844!> \param full_data ...
24845! **************************************************************************************************
24846 SUBROUTINE ints2bits_34(Ndata, packed_data, full_data)
24847 INTEGER, INTENT(IN) :: Ndata
24848 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
24849 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
24850
24851 INTEGER, PARAMETER :: Nbits = 34
24852
24853 INTEGER :: idata, ipack, kdata, Ndata_rep
24854 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
24855
24856 idata = 0
24857 ipack = 0
24858 ndata_rep = (ndata/64)*64
24859 DO kdata = 1, ndata_rep, 64
24860 pack_tmp = 0
24861 idata = idata + 1
24862 data_tmp = full_data(idata)
24863 data_tmp = ishft(data_tmp, 30)
24864 pack_tmp = ior(pack_tmp, data_tmp)
24865 pack_tmp = ishft(pack_tmp, -30)
24866 idata = idata + 1
24867 data_tmp = full_data(idata)
24868 data_tmp = ishft(data_tmp, 30)
24869 data_tmp = iand(data_tmp, mask_left(30))
24870 pack_tmp = ior(pack_tmp, data_tmp)
24871 ipack = ipack + 1
24872 packed_data(ipack) = pack_tmp
24873 data_tmp = full_data(idata)
24874 pack_tmp = ishft(data_tmp, 60)
24875 pack_tmp = ishft(pack_tmp, -34)
24876 idata = idata + 1
24877 data_tmp = full_data(idata)
24878 data_tmp = ishft(data_tmp, 30)
24879 pack_tmp = ior(pack_tmp, data_tmp)
24880 pack_tmp = ishft(pack_tmp, -26)
24881 idata = idata + 1
24882 data_tmp = full_data(idata)
24883 data_tmp = ishft(data_tmp, 30)
24884 data_tmp = iand(data_tmp, mask_left(26))
24885 pack_tmp = ior(pack_tmp, data_tmp)
24886 ipack = ipack + 1
24887 packed_data(ipack) = pack_tmp
24888 data_tmp = full_data(idata)
24889 pack_tmp = ishft(data_tmp, 56)
24890 pack_tmp = ishft(pack_tmp, -34)
24891 idata = idata + 1
24892 data_tmp = full_data(idata)
24893 data_tmp = ishft(data_tmp, 30)
24894 pack_tmp = ior(pack_tmp, data_tmp)
24895 pack_tmp = ishft(pack_tmp, -22)
24896 idata = idata + 1
24897 data_tmp = full_data(idata)
24898 data_tmp = ishft(data_tmp, 30)
24899 data_tmp = iand(data_tmp, mask_left(22))
24900 pack_tmp = ior(pack_tmp, data_tmp)
24901 ipack = ipack + 1
24902 packed_data(ipack) = pack_tmp
24903 data_tmp = full_data(idata)
24904 pack_tmp = ishft(data_tmp, 52)
24905 pack_tmp = ishft(pack_tmp, -34)
24906 idata = idata + 1
24907 data_tmp = full_data(idata)
24908 data_tmp = ishft(data_tmp, 30)
24909 pack_tmp = ior(pack_tmp, data_tmp)
24910 pack_tmp = ishft(pack_tmp, -18)
24911 idata = idata + 1
24912 data_tmp = full_data(idata)
24913 data_tmp = ishft(data_tmp, 30)
24914 data_tmp = iand(data_tmp, mask_left(18))
24915 pack_tmp = ior(pack_tmp, data_tmp)
24916 ipack = ipack + 1
24917 packed_data(ipack) = pack_tmp
24918 data_tmp = full_data(idata)
24919 pack_tmp = ishft(data_tmp, 48)
24920 pack_tmp = ishft(pack_tmp, -34)
24921 idata = idata + 1
24922 data_tmp = full_data(idata)
24923 data_tmp = ishft(data_tmp, 30)
24924 pack_tmp = ior(pack_tmp, data_tmp)
24925 pack_tmp = ishft(pack_tmp, -14)
24926 idata = idata + 1
24927 data_tmp = full_data(idata)
24928 data_tmp = ishft(data_tmp, 30)
24929 data_tmp = iand(data_tmp, mask_left(14))
24930 pack_tmp = ior(pack_tmp, data_tmp)
24931 ipack = ipack + 1
24932 packed_data(ipack) = pack_tmp
24933 data_tmp = full_data(idata)
24934 pack_tmp = ishft(data_tmp, 44)
24935 pack_tmp = ishft(pack_tmp, -34)
24936 idata = idata + 1
24937 data_tmp = full_data(idata)
24938 data_tmp = ishft(data_tmp, 30)
24939 pack_tmp = ior(pack_tmp, data_tmp)
24940 pack_tmp = ishft(pack_tmp, -10)
24941 idata = idata + 1
24942 data_tmp = full_data(idata)
24943 data_tmp = ishft(data_tmp, 30)
24944 data_tmp = iand(data_tmp, mask_left(10))
24945 pack_tmp = ior(pack_tmp, data_tmp)
24946 ipack = ipack + 1
24947 packed_data(ipack) = pack_tmp
24948 data_tmp = full_data(idata)
24949 pack_tmp = ishft(data_tmp, 40)
24950 pack_tmp = ishft(pack_tmp, -34)
24951 idata = idata + 1
24952 data_tmp = full_data(idata)
24953 data_tmp = ishft(data_tmp, 30)
24954 pack_tmp = ior(pack_tmp, data_tmp)
24955 pack_tmp = ishft(pack_tmp, -6)
24956 idata = idata + 1
24957 data_tmp = full_data(idata)
24958 data_tmp = ishft(data_tmp, 30)
24959 data_tmp = iand(data_tmp, mask_left(6))
24960 pack_tmp = ior(pack_tmp, data_tmp)
24961 ipack = ipack + 1
24962 packed_data(ipack) = pack_tmp
24963 data_tmp = full_data(idata)
24964 pack_tmp = ishft(data_tmp, 36)
24965 pack_tmp = ishft(pack_tmp, -34)
24966 idata = idata + 1
24967 data_tmp = full_data(idata)
24968 data_tmp = ishft(data_tmp, 30)
24969 pack_tmp = ior(pack_tmp, data_tmp)
24970 pack_tmp = ishft(pack_tmp, -2)
24971 idata = idata + 1
24972 data_tmp = full_data(idata)
24973 data_tmp = ishft(data_tmp, 30)
24974 data_tmp = iand(data_tmp, mask_left(2))
24975 pack_tmp = ior(pack_tmp, data_tmp)
24976 ipack = ipack + 1
24977 packed_data(ipack) = pack_tmp
24978 data_tmp = full_data(idata)
24979 pack_tmp = ishft(data_tmp, 32)
24980 pack_tmp = ishft(pack_tmp, -32)
24981 idata = idata + 1
24982 data_tmp = full_data(idata)
24983 data_tmp = ishft(data_tmp, 30)
24984 data_tmp = iand(data_tmp, mask_left(32))
24985 pack_tmp = ior(pack_tmp, data_tmp)
24986 ipack = ipack + 1
24987 packed_data(ipack) = pack_tmp
24988 data_tmp = full_data(idata)
24989 pack_tmp = ishft(data_tmp, 62)
24990 pack_tmp = ishft(pack_tmp, -34)
24991 idata = idata + 1
24992 data_tmp = full_data(idata)
24993 data_tmp = ishft(data_tmp, 30)
24994 pack_tmp = ior(pack_tmp, data_tmp)
24995 pack_tmp = ishft(pack_tmp, -28)
24996 idata = idata + 1
24997 data_tmp = full_data(idata)
24998 data_tmp = ishft(data_tmp, 30)
24999 data_tmp = iand(data_tmp, mask_left(28))
25000 pack_tmp = ior(pack_tmp, data_tmp)
25001 ipack = ipack + 1
25002 packed_data(ipack) = pack_tmp
25003 data_tmp = full_data(idata)
25004 pack_tmp = ishft(data_tmp, 58)
25005 pack_tmp = ishft(pack_tmp, -34)
25006 idata = idata + 1
25007 data_tmp = full_data(idata)
25008 data_tmp = ishft(data_tmp, 30)
25009 pack_tmp = ior(pack_tmp, data_tmp)
25010 pack_tmp = ishft(pack_tmp, -24)
25011 idata = idata + 1
25012 data_tmp = full_data(idata)
25013 data_tmp = ishft(data_tmp, 30)
25014 data_tmp = iand(data_tmp, mask_left(24))
25015 pack_tmp = ior(pack_tmp, data_tmp)
25016 ipack = ipack + 1
25017 packed_data(ipack) = pack_tmp
25018 data_tmp = full_data(idata)
25019 pack_tmp = ishft(data_tmp, 54)
25020 pack_tmp = ishft(pack_tmp, -34)
25021 idata = idata + 1
25022 data_tmp = full_data(idata)
25023 data_tmp = ishft(data_tmp, 30)
25024 pack_tmp = ior(pack_tmp, data_tmp)
25025 pack_tmp = ishft(pack_tmp, -20)
25026 idata = idata + 1
25027 data_tmp = full_data(idata)
25028 data_tmp = ishft(data_tmp, 30)
25029 data_tmp = iand(data_tmp, mask_left(20))
25030 pack_tmp = ior(pack_tmp, data_tmp)
25031 ipack = ipack + 1
25032 packed_data(ipack) = pack_tmp
25033 data_tmp = full_data(idata)
25034 pack_tmp = ishft(data_tmp, 50)
25035 pack_tmp = ishft(pack_tmp, -34)
25036 idata = idata + 1
25037 data_tmp = full_data(idata)
25038 data_tmp = ishft(data_tmp, 30)
25039 pack_tmp = ior(pack_tmp, data_tmp)
25040 pack_tmp = ishft(pack_tmp, -16)
25041 idata = idata + 1
25042 data_tmp = full_data(idata)
25043 data_tmp = ishft(data_tmp, 30)
25044 data_tmp = iand(data_tmp, mask_left(16))
25045 pack_tmp = ior(pack_tmp, data_tmp)
25046 ipack = ipack + 1
25047 packed_data(ipack) = pack_tmp
25048 data_tmp = full_data(idata)
25049 pack_tmp = ishft(data_tmp, 46)
25050 pack_tmp = ishft(pack_tmp, -34)
25051 idata = idata + 1
25052 data_tmp = full_data(idata)
25053 data_tmp = ishft(data_tmp, 30)
25054 pack_tmp = ior(pack_tmp, data_tmp)
25055 pack_tmp = ishft(pack_tmp, -12)
25056 idata = idata + 1
25057 data_tmp = full_data(idata)
25058 data_tmp = ishft(data_tmp, 30)
25059 data_tmp = iand(data_tmp, mask_left(12))
25060 pack_tmp = ior(pack_tmp, data_tmp)
25061 ipack = ipack + 1
25062 packed_data(ipack) = pack_tmp
25063 data_tmp = full_data(idata)
25064 pack_tmp = ishft(data_tmp, 42)
25065 pack_tmp = ishft(pack_tmp, -34)
25066 idata = idata + 1
25067 data_tmp = full_data(idata)
25068 data_tmp = ishft(data_tmp, 30)
25069 pack_tmp = ior(pack_tmp, data_tmp)
25070 pack_tmp = ishft(pack_tmp, -8)
25071 idata = idata + 1
25072 data_tmp = full_data(idata)
25073 data_tmp = ishft(data_tmp, 30)
25074 data_tmp = iand(data_tmp, mask_left(8))
25075 pack_tmp = ior(pack_tmp, data_tmp)
25076 ipack = ipack + 1
25077 packed_data(ipack) = pack_tmp
25078 data_tmp = full_data(idata)
25079 pack_tmp = ishft(data_tmp, 38)
25080 pack_tmp = ishft(pack_tmp, -34)
25081 idata = idata + 1
25082 data_tmp = full_data(idata)
25083 data_tmp = ishft(data_tmp, 30)
25084 pack_tmp = ior(pack_tmp, data_tmp)
25085 pack_tmp = ishft(pack_tmp, -4)
25086 idata = idata + 1
25087 data_tmp = full_data(idata)
25088 data_tmp = ishft(data_tmp, 30)
25089 data_tmp = iand(data_tmp, mask_left(4))
25090 pack_tmp = ior(pack_tmp, data_tmp)
25091 ipack = ipack + 1
25092 packed_data(ipack) = pack_tmp
25093 data_tmp = full_data(idata)
25094 pack_tmp = ishft(data_tmp, 34)
25095 pack_tmp = ishft(pack_tmp, -34)
25096 idata = idata + 1
25097 data_tmp = full_data(idata)
25098 data_tmp = ishft(data_tmp, 30)
25099 pack_tmp = ior(pack_tmp, data_tmp)
25100 pack_tmp = ishft(pack_tmp, 0)
25101 idata = idata + 1
25102 data_tmp = full_data(idata)
25103 data_tmp = ishft(data_tmp, 30)
25104 data_tmp = iand(data_tmp, mask_left(0))
25105 pack_tmp = ior(pack_tmp, data_tmp)
25106 ipack = ipack + 1
25107 packed_data(ipack) = pack_tmp
25108 data_tmp = full_data(idata)
25109 pack_tmp = ishft(data_tmp, 30)
25110 pack_tmp = ishft(pack_tmp, -30)
25111 idata = idata + 1
25112 data_tmp = full_data(idata)
25113 data_tmp = ishft(data_tmp, 30)
25114 data_tmp = iand(data_tmp, mask_left(30))
25115 pack_tmp = ior(pack_tmp, data_tmp)
25116 ipack = ipack + 1
25117 packed_data(ipack) = pack_tmp
25118 data_tmp = full_data(idata)
25119 pack_tmp = ishft(data_tmp, 60)
25120 pack_tmp = ishft(pack_tmp, -34)
25121 idata = idata + 1
25122 data_tmp = full_data(idata)
25123 data_tmp = ishft(data_tmp, 30)
25124 pack_tmp = ior(pack_tmp, data_tmp)
25125 pack_tmp = ishft(pack_tmp, -26)
25126 idata = idata + 1
25127 data_tmp = full_data(idata)
25128 data_tmp = ishft(data_tmp, 30)
25129 data_tmp = iand(data_tmp, mask_left(26))
25130 pack_tmp = ior(pack_tmp, data_tmp)
25131 ipack = ipack + 1
25132 packed_data(ipack) = pack_tmp
25133 data_tmp = full_data(idata)
25134 pack_tmp = ishft(data_tmp, 56)
25135 pack_tmp = ishft(pack_tmp, -34)
25136 idata = idata + 1
25137 data_tmp = full_data(idata)
25138 data_tmp = ishft(data_tmp, 30)
25139 pack_tmp = ior(pack_tmp, data_tmp)
25140 pack_tmp = ishft(pack_tmp, -22)
25141 idata = idata + 1
25142 data_tmp = full_data(idata)
25143 data_tmp = ishft(data_tmp, 30)
25144 data_tmp = iand(data_tmp, mask_left(22))
25145 pack_tmp = ior(pack_tmp, data_tmp)
25146 ipack = ipack + 1
25147 packed_data(ipack) = pack_tmp
25148 data_tmp = full_data(idata)
25149 pack_tmp = ishft(data_tmp, 52)
25150 pack_tmp = ishft(pack_tmp, -34)
25151 idata = idata + 1
25152 data_tmp = full_data(idata)
25153 data_tmp = ishft(data_tmp, 30)
25154 pack_tmp = ior(pack_tmp, data_tmp)
25155 pack_tmp = ishft(pack_tmp, -18)
25156 idata = idata + 1
25157 data_tmp = full_data(idata)
25158 data_tmp = ishft(data_tmp, 30)
25159 data_tmp = iand(data_tmp, mask_left(18))
25160 pack_tmp = ior(pack_tmp, data_tmp)
25161 ipack = ipack + 1
25162 packed_data(ipack) = pack_tmp
25163 data_tmp = full_data(idata)
25164 pack_tmp = ishft(data_tmp, 48)
25165 pack_tmp = ishft(pack_tmp, -34)
25166 idata = idata + 1
25167 data_tmp = full_data(idata)
25168 data_tmp = ishft(data_tmp, 30)
25169 pack_tmp = ior(pack_tmp, data_tmp)
25170 pack_tmp = ishft(pack_tmp, -14)
25171 idata = idata + 1
25172 data_tmp = full_data(idata)
25173 data_tmp = ishft(data_tmp, 30)
25174 data_tmp = iand(data_tmp, mask_left(14))
25175 pack_tmp = ior(pack_tmp, data_tmp)
25176 ipack = ipack + 1
25177 packed_data(ipack) = pack_tmp
25178 data_tmp = full_data(idata)
25179 pack_tmp = ishft(data_tmp, 44)
25180 pack_tmp = ishft(pack_tmp, -34)
25181 idata = idata + 1
25182 data_tmp = full_data(idata)
25183 data_tmp = ishft(data_tmp, 30)
25184 pack_tmp = ior(pack_tmp, data_tmp)
25185 pack_tmp = ishft(pack_tmp, -10)
25186 idata = idata + 1
25187 data_tmp = full_data(idata)
25188 data_tmp = ishft(data_tmp, 30)
25189 data_tmp = iand(data_tmp, mask_left(10))
25190 pack_tmp = ior(pack_tmp, data_tmp)
25191 ipack = ipack + 1
25192 packed_data(ipack) = pack_tmp
25193 data_tmp = full_data(idata)
25194 pack_tmp = ishft(data_tmp, 40)
25195 pack_tmp = ishft(pack_tmp, -34)
25196 idata = idata + 1
25197 data_tmp = full_data(idata)
25198 data_tmp = ishft(data_tmp, 30)
25199 pack_tmp = ior(pack_tmp, data_tmp)
25200 pack_tmp = ishft(pack_tmp, -6)
25201 idata = idata + 1
25202 data_tmp = full_data(idata)
25203 data_tmp = ishft(data_tmp, 30)
25204 data_tmp = iand(data_tmp, mask_left(6))
25205 pack_tmp = ior(pack_tmp, data_tmp)
25206 ipack = ipack + 1
25207 packed_data(ipack) = pack_tmp
25208 data_tmp = full_data(idata)
25209 pack_tmp = ishft(data_tmp, 36)
25210 pack_tmp = ishft(pack_tmp, -34)
25211 idata = idata + 1
25212 data_tmp = full_data(idata)
25213 data_tmp = ishft(data_tmp, 30)
25214 pack_tmp = ior(pack_tmp, data_tmp)
25215 pack_tmp = ishft(pack_tmp, -2)
25216 idata = idata + 1
25217 data_tmp = full_data(idata)
25218 data_tmp = ishft(data_tmp, 30)
25219 data_tmp = iand(data_tmp, mask_left(2))
25220 pack_tmp = ior(pack_tmp, data_tmp)
25221 ipack = ipack + 1
25222 packed_data(ipack) = pack_tmp
25223 data_tmp = full_data(idata)
25224 pack_tmp = ishft(data_tmp, 32)
25225 pack_tmp = ishft(pack_tmp, -32)
25226 idata = idata + 1
25227 data_tmp = full_data(idata)
25228 data_tmp = ishft(data_tmp, 30)
25229 data_tmp = iand(data_tmp, mask_left(32))
25230 pack_tmp = ior(pack_tmp, data_tmp)
25231 ipack = ipack + 1
25232 packed_data(ipack) = pack_tmp
25233 data_tmp = full_data(idata)
25234 pack_tmp = ishft(data_tmp, 62)
25235 pack_tmp = ishft(pack_tmp, -34)
25236 idata = idata + 1
25237 data_tmp = full_data(idata)
25238 data_tmp = ishft(data_tmp, 30)
25239 pack_tmp = ior(pack_tmp, data_tmp)
25240 pack_tmp = ishft(pack_tmp, -28)
25241 idata = idata + 1
25242 data_tmp = full_data(idata)
25243 data_tmp = ishft(data_tmp, 30)
25244 data_tmp = iand(data_tmp, mask_left(28))
25245 pack_tmp = ior(pack_tmp, data_tmp)
25246 ipack = ipack + 1
25247 packed_data(ipack) = pack_tmp
25248 data_tmp = full_data(idata)
25249 pack_tmp = ishft(data_tmp, 58)
25250 pack_tmp = ishft(pack_tmp, -34)
25251 idata = idata + 1
25252 data_tmp = full_data(idata)
25253 data_tmp = ishft(data_tmp, 30)
25254 pack_tmp = ior(pack_tmp, data_tmp)
25255 pack_tmp = ishft(pack_tmp, -24)
25256 idata = idata + 1
25257 data_tmp = full_data(idata)
25258 data_tmp = ishft(data_tmp, 30)
25259 data_tmp = iand(data_tmp, mask_left(24))
25260 pack_tmp = ior(pack_tmp, data_tmp)
25261 ipack = ipack + 1
25262 packed_data(ipack) = pack_tmp
25263 data_tmp = full_data(idata)
25264 pack_tmp = ishft(data_tmp, 54)
25265 pack_tmp = ishft(pack_tmp, -34)
25266 idata = idata + 1
25267 data_tmp = full_data(idata)
25268 data_tmp = ishft(data_tmp, 30)
25269 pack_tmp = ior(pack_tmp, data_tmp)
25270 pack_tmp = ishft(pack_tmp, -20)
25271 idata = idata + 1
25272 data_tmp = full_data(idata)
25273 data_tmp = ishft(data_tmp, 30)
25274 data_tmp = iand(data_tmp, mask_left(20))
25275 pack_tmp = ior(pack_tmp, data_tmp)
25276 ipack = ipack + 1
25277 packed_data(ipack) = pack_tmp
25278 data_tmp = full_data(idata)
25279 pack_tmp = ishft(data_tmp, 50)
25280 pack_tmp = ishft(pack_tmp, -34)
25281 idata = idata + 1
25282 data_tmp = full_data(idata)
25283 data_tmp = ishft(data_tmp, 30)
25284 pack_tmp = ior(pack_tmp, data_tmp)
25285 pack_tmp = ishft(pack_tmp, -16)
25286 idata = idata + 1
25287 data_tmp = full_data(idata)
25288 data_tmp = ishft(data_tmp, 30)
25289 data_tmp = iand(data_tmp, mask_left(16))
25290 pack_tmp = ior(pack_tmp, data_tmp)
25291 ipack = ipack + 1
25292 packed_data(ipack) = pack_tmp
25293 data_tmp = full_data(idata)
25294 pack_tmp = ishft(data_tmp, 46)
25295 pack_tmp = ishft(pack_tmp, -34)
25296 idata = idata + 1
25297 data_tmp = full_data(idata)
25298 data_tmp = ishft(data_tmp, 30)
25299 pack_tmp = ior(pack_tmp, data_tmp)
25300 pack_tmp = ishft(pack_tmp, -12)
25301 idata = idata + 1
25302 data_tmp = full_data(idata)
25303 data_tmp = ishft(data_tmp, 30)
25304 data_tmp = iand(data_tmp, mask_left(12))
25305 pack_tmp = ior(pack_tmp, data_tmp)
25306 ipack = ipack + 1
25307 packed_data(ipack) = pack_tmp
25308 data_tmp = full_data(idata)
25309 pack_tmp = ishft(data_tmp, 42)
25310 pack_tmp = ishft(pack_tmp, -34)
25311 idata = idata + 1
25312 data_tmp = full_data(idata)
25313 data_tmp = ishft(data_tmp, 30)
25314 pack_tmp = ior(pack_tmp, data_tmp)
25315 pack_tmp = ishft(pack_tmp, -8)
25316 idata = idata + 1
25317 data_tmp = full_data(idata)
25318 data_tmp = ishft(data_tmp, 30)
25319 data_tmp = iand(data_tmp, mask_left(8))
25320 pack_tmp = ior(pack_tmp, data_tmp)
25321 ipack = ipack + 1
25322 packed_data(ipack) = pack_tmp
25323 data_tmp = full_data(idata)
25324 pack_tmp = ishft(data_tmp, 38)
25325 pack_tmp = ishft(pack_tmp, -34)
25326 idata = idata + 1
25327 data_tmp = full_data(idata)
25328 data_tmp = ishft(data_tmp, 30)
25329 pack_tmp = ior(pack_tmp, data_tmp)
25330 pack_tmp = ishft(pack_tmp, -4)
25331 idata = idata + 1
25332 data_tmp = full_data(idata)
25333 data_tmp = ishft(data_tmp, 30)
25334 data_tmp = iand(data_tmp, mask_left(4))
25335 pack_tmp = ior(pack_tmp, data_tmp)
25336 ipack = ipack + 1
25337 packed_data(ipack) = pack_tmp
25338 data_tmp = full_data(idata)
25339 pack_tmp = ishft(data_tmp, 34)
25340 pack_tmp = ishft(pack_tmp, -34)
25341 idata = idata + 1
25342 data_tmp = full_data(idata)
25343 data_tmp = ishft(data_tmp, 30)
25344 pack_tmp = ior(pack_tmp, data_tmp)
25345 pack_tmp = ishft(pack_tmp, 0)
25346 pack_tmp = ishft(pack_tmp, 0)
25347 ipack = ipack + 1
25348 packed_data(ipack) = pack_tmp
25349 END DO
25350 IF (ndata_rep < ndata) THEN
25351 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
25352 END IF
25353 END SUBROUTINE ints2bits_34
25354
25355! **************************************************************************************************
25356!> \brief ...
25357!> \param Ndata ...
25358!> \param packed_data ...
25359!> \param full_data ...
25360! **************************************************************************************************
25361 SUBROUTINE bits2ints_34(Ndata, packed_data, full_data)
25362 INTEGER, INTENT(IN) :: Ndata
25363 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
25364 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
25365
25366 INTEGER, PARAMETER :: Nbits = 34
25367
25368 INTEGER :: idata, ipack, kdata, Ndata_rep
25369 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
25370
25371 ipack = 0
25372 idata = 0
25373 pack_tmp = 0
25374 ndata_rep = (ndata/64)*64
25375 DO kdata = 1, ndata_rep, 64
25376 idata = idata + 1
25377 data_tmp = ishft(pack_tmp, 34)
25378 ipack = ipack + 1
25379 pack_tmp = packed_data(ipack)
25380 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
25381 pack_tmp = ishft(pack_tmp, -34)
25382 idata = idata + 1
25383 data_tmp = ishft(pack_tmp, 4)
25384 ipack = ipack + 1
25385 pack_tmp = packed_data(ipack)
25386 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
25387 pack_tmp = ishft(pack_tmp, -4)
25388 idata = idata + 1
25389 data_tmp = iand(pack_tmp, mask_right(nbits))
25390 full_data(idata) = data_tmp
25391 pack_tmp = ishft(pack_tmp, -nbits)
25392 idata = idata + 1
25393 data_tmp = ishft(pack_tmp, 8)
25394 ipack = ipack + 1
25395 pack_tmp = packed_data(ipack)
25396 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
25397 pack_tmp = ishft(pack_tmp, -8)
25398 idata = idata + 1
25399 data_tmp = iand(pack_tmp, mask_right(nbits))
25400 full_data(idata) = data_tmp
25401 pack_tmp = ishft(pack_tmp, -nbits)
25402 idata = idata + 1
25403 data_tmp = ishft(pack_tmp, 12)
25404 ipack = ipack + 1
25405 pack_tmp = packed_data(ipack)
25406 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
25407 pack_tmp = ishft(pack_tmp, -12)
25408 idata = idata + 1
25409 data_tmp = iand(pack_tmp, mask_right(nbits))
25410 full_data(idata) = data_tmp
25411 pack_tmp = ishft(pack_tmp, -nbits)
25412 idata = idata + 1
25413 data_tmp = ishft(pack_tmp, 16)
25414 ipack = ipack + 1
25415 pack_tmp = packed_data(ipack)
25416 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
25417 pack_tmp = ishft(pack_tmp, -16)
25418 idata = idata + 1
25419 data_tmp = iand(pack_tmp, mask_right(nbits))
25420 full_data(idata) = data_tmp
25421 pack_tmp = ishft(pack_tmp, -nbits)
25422 idata = idata + 1
25423 data_tmp = ishft(pack_tmp, 20)
25424 ipack = ipack + 1
25425 pack_tmp = packed_data(ipack)
25426 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
25427 pack_tmp = ishft(pack_tmp, -20)
25428 idata = idata + 1
25429 data_tmp = iand(pack_tmp, mask_right(nbits))
25430 full_data(idata) = data_tmp
25431 pack_tmp = ishft(pack_tmp, -nbits)
25432 idata = idata + 1
25433 data_tmp = ishft(pack_tmp, 24)
25434 ipack = ipack + 1
25435 pack_tmp = packed_data(ipack)
25436 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
25437 pack_tmp = ishft(pack_tmp, -24)
25438 idata = idata + 1
25439 data_tmp = iand(pack_tmp, mask_right(nbits))
25440 full_data(idata) = data_tmp
25441 pack_tmp = ishft(pack_tmp, -nbits)
25442 idata = idata + 1
25443 data_tmp = ishft(pack_tmp, 28)
25444 ipack = ipack + 1
25445 pack_tmp = packed_data(ipack)
25446 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
25447 pack_tmp = ishft(pack_tmp, -28)
25448 idata = idata + 1
25449 data_tmp = iand(pack_tmp, mask_right(nbits))
25450 full_data(idata) = data_tmp
25451 pack_tmp = ishft(pack_tmp, -nbits)
25452 idata = idata + 1
25453 data_tmp = ishft(pack_tmp, 32)
25454 ipack = ipack + 1
25455 pack_tmp = packed_data(ipack)
25456 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
25457 pack_tmp = ishft(pack_tmp, -32)
25458 idata = idata + 1
25459 data_tmp = ishft(pack_tmp, 2)
25460 ipack = ipack + 1
25461 pack_tmp = packed_data(ipack)
25462 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
25463 pack_tmp = ishft(pack_tmp, -2)
25464 idata = idata + 1
25465 data_tmp = iand(pack_tmp, mask_right(nbits))
25466 full_data(idata) = data_tmp
25467 pack_tmp = ishft(pack_tmp, -nbits)
25468 idata = idata + 1
25469 data_tmp = ishft(pack_tmp, 6)
25470 ipack = ipack + 1
25471 pack_tmp = packed_data(ipack)
25472 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
25473 pack_tmp = ishft(pack_tmp, -6)
25474 idata = idata + 1
25475 data_tmp = iand(pack_tmp, mask_right(nbits))
25476 full_data(idata) = data_tmp
25477 pack_tmp = ishft(pack_tmp, -nbits)
25478 idata = idata + 1
25479 data_tmp = ishft(pack_tmp, 10)
25480 ipack = ipack + 1
25481 pack_tmp = packed_data(ipack)
25482 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
25483 pack_tmp = ishft(pack_tmp, -10)
25484 idata = idata + 1
25485 data_tmp = iand(pack_tmp, mask_right(nbits))
25486 full_data(idata) = data_tmp
25487 pack_tmp = ishft(pack_tmp, -nbits)
25488 idata = idata + 1
25489 data_tmp = ishft(pack_tmp, 14)
25490 ipack = ipack + 1
25491 pack_tmp = packed_data(ipack)
25492 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
25493 pack_tmp = ishft(pack_tmp, -14)
25494 idata = idata + 1
25495 data_tmp = iand(pack_tmp, mask_right(nbits))
25496 full_data(idata) = data_tmp
25497 pack_tmp = ishft(pack_tmp, -nbits)
25498 idata = idata + 1
25499 data_tmp = ishft(pack_tmp, 18)
25500 ipack = ipack + 1
25501 pack_tmp = packed_data(ipack)
25502 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
25503 pack_tmp = ishft(pack_tmp, -18)
25504 idata = idata + 1
25505 data_tmp = iand(pack_tmp, mask_right(nbits))
25506 full_data(idata) = data_tmp
25507 pack_tmp = ishft(pack_tmp, -nbits)
25508 idata = idata + 1
25509 data_tmp = ishft(pack_tmp, 22)
25510 ipack = ipack + 1
25511 pack_tmp = packed_data(ipack)
25512 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
25513 pack_tmp = ishft(pack_tmp, -22)
25514 idata = idata + 1
25515 data_tmp = iand(pack_tmp, mask_right(nbits))
25516 full_data(idata) = data_tmp
25517 pack_tmp = ishft(pack_tmp, -nbits)
25518 idata = idata + 1
25519 data_tmp = ishft(pack_tmp, 26)
25520 ipack = ipack + 1
25521 pack_tmp = packed_data(ipack)
25522 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
25523 pack_tmp = ishft(pack_tmp, -26)
25524 idata = idata + 1
25525 data_tmp = iand(pack_tmp, mask_right(nbits))
25526 full_data(idata) = data_tmp
25527 pack_tmp = ishft(pack_tmp, -nbits)
25528 idata = idata + 1
25529 data_tmp = ishft(pack_tmp, 30)
25530 ipack = ipack + 1
25531 pack_tmp = packed_data(ipack)
25532 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
25533 pack_tmp = ishft(pack_tmp, -30)
25534 idata = idata + 1
25535 data_tmp = iand(pack_tmp, mask_right(nbits))
25536 full_data(idata) = data_tmp
25537 pack_tmp = ishft(pack_tmp, -nbits)
25538 idata = idata + 1
25539 data_tmp = ishft(pack_tmp, 34)
25540 ipack = ipack + 1
25541 pack_tmp = packed_data(ipack)
25542 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
25543 pack_tmp = ishft(pack_tmp, -34)
25544 idata = idata + 1
25545 data_tmp = ishft(pack_tmp, 4)
25546 ipack = ipack + 1
25547 pack_tmp = packed_data(ipack)
25548 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
25549 pack_tmp = ishft(pack_tmp, -4)
25550 idata = idata + 1
25551 data_tmp = iand(pack_tmp, mask_right(nbits))
25552 full_data(idata) = data_tmp
25553 pack_tmp = ishft(pack_tmp, -nbits)
25554 idata = idata + 1
25555 data_tmp = ishft(pack_tmp, 8)
25556 ipack = ipack + 1
25557 pack_tmp = packed_data(ipack)
25558 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
25559 pack_tmp = ishft(pack_tmp, -8)
25560 idata = idata + 1
25561 data_tmp = iand(pack_tmp, mask_right(nbits))
25562 full_data(idata) = data_tmp
25563 pack_tmp = ishft(pack_tmp, -nbits)
25564 idata = idata + 1
25565 data_tmp = ishft(pack_tmp, 12)
25566 ipack = ipack + 1
25567 pack_tmp = packed_data(ipack)
25568 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
25569 pack_tmp = ishft(pack_tmp, -12)
25570 idata = idata + 1
25571 data_tmp = iand(pack_tmp, mask_right(nbits))
25572 full_data(idata) = data_tmp
25573 pack_tmp = ishft(pack_tmp, -nbits)
25574 idata = idata + 1
25575 data_tmp = ishft(pack_tmp, 16)
25576 ipack = ipack + 1
25577 pack_tmp = packed_data(ipack)
25578 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
25579 pack_tmp = ishft(pack_tmp, -16)
25580 idata = idata + 1
25581 data_tmp = iand(pack_tmp, mask_right(nbits))
25582 full_data(idata) = data_tmp
25583 pack_tmp = ishft(pack_tmp, -nbits)
25584 idata = idata + 1
25585 data_tmp = ishft(pack_tmp, 20)
25586 ipack = ipack + 1
25587 pack_tmp = packed_data(ipack)
25588 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
25589 pack_tmp = ishft(pack_tmp, -20)
25590 idata = idata + 1
25591 data_tmp = iand(pack_tmp, mask_right(nbits))
25592 full_data(idata) = data_tmp
25593 pack_tmp = ishft(pack_tmp, -nbits)
25594 idata = idata + 1
25595 data_tmp = ishft(pack_tmp, 24)
25596 ipack = ipack + 1
25597 pack_tmp = packed_data(ipack)
25598 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
25599 pack_tmp = ishft(pack_tmp, -24)
25600 idata = idata + 1
25601 data_tmp = iand(pack_tmp, mask_right(nbits))
25602 full_data(idata) = data_tmp
25603 pack_tmp = ishft(pack_tmp, -nbits)
25604 idata = idata + 1
25605 data_tmp = ishft(pack_tmp, 28)
25606 ipack = ipack + 1
25607 pack_tmp = packed_data(ipack)
25608 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
25609 pack_tmp = ishft(pack_tmp, -28)
25610 idata = idata + 1
25611 data_tmp = iand(pack_tmp, mask_right(nbits))
25612 full_data(idata) = data_tmp
25613 pack_tmp = ishft(pack_tmp, -nbits)
25614 idata = idata + 1
25615 data_tmp = ishft(pack_tmp, 32)
25616 ipack = ipack + 1
25617 pack_tmp = packed_data(ipack)
25618 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
25619 pack_tmp = ishft(pack_tmp, -32)
25620 idata = idata + 1
25621 data_tmp = ishft(pack_tmp, 2)
25622 ipack = ipack + 1
25623 pack_tmp = packed_data(ipack)
25624 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
25625 pack_tmp = ishft(pack_tmp, -2)
25626 idata = idata + 1
25627 data_tmp = iand(pack_tmp, mask_right(nbits))
25628 full_data(idata) = data_tmp
25629 pack_tmp = ishft(pack_tmp, -nbits)
25630 idata = idata + 1
25631 data_tmp = ishft(pack_tmp, 6)
25632 ipack = ipack + 1
25633 pack_tmp = packed_data(ipack)
25634 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
25635 pack_tmp = ishft(pack_tmp, -6)
25636 idata = idata + 1
25637 data_tmp = iand(pack_tmp, mask_right(nbits))
25638 full_data(idata) = data_tmp
25639 pack_tmp = ishft(pack_tmp, -nbits)
25640 idata = idata + 1
25641 data_tmp = ishft(pack_tmp, 10)
25642 ipack = ipack + 1
25643 pack_tmp = packed_data(ipack)
25644 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
25645 pack_tmp = ishft(pack_tmp, -10)
25646 idata = idata + 1
25647 data_tmp = iand(pack_tmp, mask_right(nbits))
25648 full_data(idata) = data_tmp
25649 pack_tmp = ishft(pack_tmp, -nbits)
25650 idata = idata + 1
25651 data_tmp = ishft(pack_tmp, 14)
25652 ipack = ipack + 1
25653 pack_tmp = packed_data(ipack)
25654 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
25655 pack_tmp = ishft(pack_tmp, -14)
25656 idata = idata + 1
25657 data_tmp = iand(pack_tmp, mask_right(nbits))
25658 full_data(idata) = data_tmp
25659 pack_tmp = ishft(pack_tmp, -nbits)
25660 idata = idata + 1
25661 data_tmp = ishft(pack_tmp, 18)
25662 ipack = ipack + 1
25663 pack_tmp = packed_data(ipack)
25664 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
25665 pack_tmp = ishft(pack_tmp, -18)
25666 idata = idata + 1
25667 data_tmp = iand(pack_tmp, mask_right(nbits))
25668 full_data(idata) = data_tmp
25669 pack_tmp = ishft(pack_tmp, -nbits)
25670 idata = idata + 1
25671 data_tmp = ishft(pack_tmp, 22)
25672 ipack = ipack + 1
25673 pack_tmp = packed_data(ipack)
25674 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
25675 pack_tmp = ishft(pack_tmp, -22)
25676 idata = idata + 1
25677 data_tmp = iand(pack_tmp, mask_right(nbits))
25678 full_data(idata) = data_tmp
25679 pack_tmp = ishft(pack_tmp, -nbits)
25680 idata = idata + 1
25681 data_tmp = ishft(pack_tmp, 26)
25682 ipack = ipack + 1
25683 pack_tmp = packed_data(ipack)
25684 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
25685 pack_tmp = ishft(pack_tmp, -26)
25686 idata = idata + 1
25687 data_tmp = iand(pack_tmp, mask_right(nbits))
25688 full_data(idata) = data_tmp
25689 pack_tmp = ishft(pack_tmp, -nbits)
25690 idata = idata + 1
25691 data_tmp = ishft(pack_tmp, 30)
25692 ipack = ipack + 1
25693 pack_tmp = packed_data(ipack)
25694 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
25695 pack_tmp = ishft(pack_tmp, -30)
25696 idata = idata + 1
25697 data_tmp = iand(pack_tmp, mask_right(nbits))
25698 full_data(idata) = data_tmp
25699 pack_tmp = ishft(pack_tmp, -nbits)
25700 END DO
25701 IF (ndata_rep < ndata) THEN
25702 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
25703 END IF
25704 END SUBROUTINE bits2ints_34
25705
25706! **************************************************************************************************
25707!> \brief ...
25708!> \param Ndata ...
25709!> \param packed_data ...
25710!> \param full_data ...
25711! **************************************************************************************************
25712 SUBROUTINE ints2bits_35(Ndata, packed_data, full_data)
25713 INTEGER, INTENT(IN) :: Ndata
25714 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
25715 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
25716
25717 INTEGER, PARAMETER :: Nbits = 35
25718
25719 INTEGER :: idata, ipack, kdata, Ndata_rep
25720 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
25721
25722 idata = 0
25723 ipack = 0
25724 ndata_rep = (ndata/64)*64
25725 DO kdata = 1, ndata_rep, 64
25726 pack_tmp = 0
25727 idata = idata + 1
25728 data_tmp = full_data(idata)
25729 data_tmp = ishft(data_tmp, 29)
25730 pack_tmp = ior(pack_tmp, data_tmp)
25731 pack_tmp = ishft(pack_tmp, -29)
25732 idata = idata + 1
25733 data_tmp = full_data(idata)
25734 data_tmp = ishft(data_tmp, 29)
25735 data_tmp = iand(data_tmp, mask_left(29))
25736 pack_tmp = ior(pack_tmp, data_tmp)
25737 ipack = ipack + 1
25738 packed_data(ipack) = pack_tmp
25739 data_tmp = full_data(idata)
25740 pack_tmp = ishft(data_tmp, 58)
25741 pack_tmp = ishft(pack_tmp, -35)
25742 idata = idata + 1
25743 data_tmp = full_data(idata)
25744 data_tmp = ishft(data_tmp, 29)
25745 pack_tmp = ior(pack_tmp, data_tmp)
25746 pack_tmp = ishft(pack_tmp, -23)
25747 idata = idata + 1
25748 data_tmp = full_data(idata)
25749 data_tmp = ishft(data_tmp, 29)
25750 data_tmp = iand(data_tmp, mask_left(23))
25751 pack_tmp = ior(pack_tmp, data_tmp)
25752 ipack = ipack + 1
25753 packed_data(ipack) = pack_tmp
25754 data_tmp = full_data(idata)
25755 pack_tmp = ishft(data_tmp, 52)
25756 pack_tmp = ishft(pack_tmp, -35)
25757 idata = idata + 1
25758 data_tmp = full_data(idata)
25759 data_tmp = ishft(data_tmp, 29)
25760 pack_tmp = ior(pack_tmp, data_tmp)
25761 pack_tmp = ishft(pack_tmp, -17)
25762 idata = idata + 1
25763 data_tmp = full_data(idata)
25764 data_tmp = ishft(data_tmp, 29)
25765 data_tmp = iand(data_tmp, mask_left(17))
25766 pack_tmp = ior(pack_tmp, data_tmp)
25767 ipack = ipack + 1
25768 packed_data(ipack) = pack_tmp
25769 data_tmp = full_data(idata)
25770 pack_tmp = ishft(data_tmp, 46)
25771 pack_tmp = ishft(pack_tmp, -35)
25772 idata = idata + 1
25773 data_tmp = full_data(idata)
25774 data_tmp = ishft(data_tmp, 29)
25775 pack_tmp = ior(pack_tmp, data_tmp)
25776 pack_tmp = ishft(pack_tmp, -11)
25777 idata = idata + 1
25778 data_tmp = full_data(idata)
25779 data_tmp = ishft(data_tmp, 29)
25780 data_tmp = iand(data_tmp, mask_left(11))
25781 pack_tmp = ior(pack_tmp, data_tmp)
25782 ipack = ipack + 1
25783 packed_data(ipack) = pack_tmp
25784 data_tmp = full_data(idata)
25785 pack_tmp = ishft(data_tmp, 40)
25786 pack_tmp = ishft(pack_tmp, -35)
25787 idata = idata + 1
25788 data_tmp = full_data(idata)
25789 data_tmp = ishft(data_tmp, 29)
25790 pack_tmp = ior(pack_tmp, data_tmp)
25791 pack_tmp = ishft(pack_tmp, -5)
25792 idata = idata + 1
25793 data_tmp = full_data(idata)
25794 data_tmp = ishft(data_tmp, 29)
25795 data_tmp = iand(data_tmp, mask_left(5))
25796 pack_tmp = ior(pack_tmp, data_tmp)
25797 ipack = ipack + 1
25798 packed_data(ipack) = pack_tmp
25799 data_tmp = full_data(idata)
25800 pack_tmp = ishft(data_tmp, 34)
25801 pack_tmp = ishft(pack_tmp, -34)
25802 idata = idata + 1
25803 data_tmp = full_data(idata)
25804 data_tmp = ishft(data_tmp, 29)
25805 data_tmp = iand(data_tmp, mask_left(34))
25806 pack_tmp = ior(pack_tmp, data_tmp)
25807 ipack = ipack + 1
25808 packed_data(ipack) = pack_tmp
25809 data_tmp = full_data(idata)
25810 pack_tmp = ishft(data_tmp, 63)
25811 pack_tmp = ishft(pack_tmp, -35)
25812 idata = idata + 1
25813 data_tmp = full_data(idata)
25814 data_tmp = ishft(data_tmp, 29)
25815 pack_tmp = ior(pack_tmp, data_tmp)
25816 pack_tmp = ishft(pack_tmp, -28)
25817 idata = idata + 1
25818 data_tmp = full_data(idata)
25819 data_tmp = ishft(data_tmp, 29)
25820 data_tmp = iand(data_tmp, mask_left(28))
25821 pack_tmp = ior(pack_tmp, data_tmp)
25822 ipack = ipack + 1
25823 packed_data(ipack) = pack_tmp
25824 data_tmp = full_data(idata)
25825 pack_tmp = ishft(data_tmp, 57)
25826 pack_tmp = ishft(pack_tmp, -35)
25827 idata = idata + 1
25828 data_tmp = full_data(idata)
25829 data_tmp = ishft(data_tmp, 29)
25830 pack_tmp = ior(pack_tmp, data_tmp)
25831 pack_tmp = ishft(pack_tmp, -22)
25832 idata = idata + 1
25833 data_tmp = full_data(idata)
25834 data_tmp = ishft(data_tmp, 29)
25835 data_tmp = iand(data_tmp, mask_left(22))
25836 pack_tmp = ior(pack_tmp, data_tmp)
25837 ipack = ipack + 1
25838 packed_data(ipack) = pack_tmp
25839 data_tmp = full_data(idata)
25840 pack_tmp = ishft(data_tmp, 51)
25841 pack_tmp = ishft(pack_tmp, -35)
25842 idata = idata + 1
25843 data_tmp = full_data(idata)
25844 data_tmp = ishft(data_tmp, 29)
25845 pack_tmp = ior(pack_tmp, data_tmp)
25846 pack_tmp = ishft(pack_tmp, -16)
25847 idata = idata + 1
25848 data_tmp = full_data(idata)
25849 data_tmp = ishft(data_tmp, 29)
25850 data_tmp = iand(data_tmp, mask_left(16))
25851 pack_tmp = ior(pack_tmp, data_tmp)
25852 ipack = ipack + 1
25853 packed_data(ipack) = pack_tmp
25854 data_tmp = full_data(idata)
25855 pack_tmp = ishft(data_tmp, 45)
25856 pack_tmp = ishft(pack_tmp, -35)
25857 idata = idata + 1
25858 data_tmp = full_data(idata)
25859 data_tmp = ishft(data_tmp, 29)
25860 pack_tmp = ior(pack_tmp, data_tmp)
25861 pack_tmp = ishft(pack_tmp, -10)
25862 idata = idata + 1
25863 data_tmp = full_data(idata)
25864 data_tmp = ishft(data_tmp, 29)
25865 data_tmp = iand(data_tmp, mask_left(10))
25866 pack_tmp = ior(pack_tmp, data_tmp)
25867 ipack = ipack + 1
25868 packed_data(ipack) = pack_tmp
25869 data_tmp = full_data(idata)
25870 pack_tmp = ishft(data_tmp, 39)
25871 pack_tmp = ishft(pack_tmp, -35)
25872 idata = idata + 1
25873 data_tmp = full_data(idata)
25874 data_tmp = ishft(data_tmp, 29)
25875 pack_tmp = ior(pack_tmp, data_tmp)
25876 pack_tmp = ishft(pack_tmp, -4)
25877 idata = idata + 1
25878 data_tmp = full_data(idata)
25879 data_tmp = ishft(data_tmp, 29)
25880 data_tmp = iand(data_tmp, mask_left(4))
25881 pack_tmp = ior(pack_tmp, data_tmp)
25882 ipack = ipack + 1
25883 packed_data(ipack) = pack_tmp
25884 data_tmp = full_data(idata)
25885 pack_tmp = ishft(data_tmp, 33)
25886 pack_tmp = ishft(pack_tmp, -33)
25887 idata = idata + 1
25888 data_tmp = full_data(idata)
25889 data_tmp = ishft(data_tmp, 29)
25890 data_tmp = iand(data_tmp, mask_left(33))
25891 pack_tmp = ior(pack_tmp, data_tmp)
25892 ipack = ipack + 1
25893 packed_data(ipack) = pack_tmp
25894 data_tmp = full_data(idata)
25895 pack_tmp = ishft(data_tmp, 62)
25896 pack_tmp = ishft(pack_tmp, -35)
25897 idata = idata + 1
25898 data_tmp = full_data(idata)
25899 data_tmp = ishft(data_tmp, 29)
25900 pack_tmp = ior(pack_tmp, data_tmp)
25901 pack_tmp = ishft(pack_tmp, -27)
25902 idata = idata + 1
25903 data_tmp = full_data(idata)
25904 data_tmp = ishft(data_tmp, 29)
25905 data_tmp = iand(data_tmp, mask_left(27))
25906 pack_tmp = ior(pack_tmp, data_tmp)
25907 ipack = ipack + 1
25908 packed_data(ipack) = pack_tmp
25909 data_tmp = full_data(idata)
25910 pack_tmp = ishft(data_tmp, 56)
25911 pack_tmp = ishft(pack_tmp, -35)
25912 idata = idata + 1
25913 data_tmp = full_data(idata)
25914 data_tmp = ishft(data_tmp, 29)
25915 pack_tmp = ior(pack_tmp, data_tmp)
25916 pack_tmp = ishft(pack_tmp, -21)
25917 idata = idata + 1
25918 data_tmp = full_data(idata)
25919 data_tmp = ishft(data_tmp, 29)
25920 data_tmp = iand(data_tmp, mask_left(21))
25921 pack_tmp = ior(pack_tmp, data_tmp)
25922 ipack = ipack + 1
25923 packed_data(ipack) = pack_tmp
25924 data_tmp = full_data(idata)
25925 pack_tmp = ishft(data_tmp, 50)
25926 pack_tmp = ishft(pack_tmp, -35)
25927 idata = idata + 1
25928 data_tmp = full_data(idata)
25929 data_tmp = ishft(data_tmp, 29)
25930 pack_tmp = ior(pack_tmp, data_tmp)
25931 pack_tmp = ishft(pack_tmp, -15)
25932 idata = idata + 1
25933 data_tmp = full_data(idata)
25934 data_tmp = ishft(data_tmp, 29)
25935 data_tmp = iand(data_tmp, mask_left(15))
25936 pack_tmp = ior(pack_tmp, data_tmp)
25937 ipack = ipack + 1
25938 packed_data(ipack) = pack_tmp
25939 data_tmp = full_data(idata)
25940 pack_tmp = ishft(data_tmp, 44)
25941 pack_tmp = ishft(pack_tmp, -35)
25942 idata = idata + 1
25943 data_tmp = full_data(idata)
25944 data_tmp = ishft(data_tmp, 29)
25945 pack_tmp = ior(pack_tmp, data_tmp)
25946 pack_tmp = ishft(pack_tmp, -9)
25947 idata = idata + 1
25948 data_tmp = full_data(idata)
25949 data_tmp = ishft(data_tmp, 29)
25950 data_tmp = iand(data_tmp, mask_left(9))
25951 pack_tmp = ior(pack_tmp, data_tmp)
25952 ipack = ipack + 1
25953 packed_data(ipack) = pack_tmp
25954 data_tmp = full_data(idata)
25955 pack_tmp = ishft(data_tmp, 38)
25956 pack_tmp = ishft(pack_tmp, -35)
25957 idata = idata + 1
25958 data_tmp = full_data(idata)
25959 data_tmp = ishft(data_tmp, 29)
25960 pack_tmp = ior(pack_tmp, data_tmp)
25961 pack_tmp = ishft(pack_tmp, -3)
25962 idata = idata + 1
25963 data_tmp = full_data(idata)
25964 data_tmp = ishft(data_tmp, 29)
25965 data_tmp = iand(data_tmp, mask_left(3))
25966 pack_tmp = ior(pack_tmp, data_tmp)
25967 ipack = ipack + 1
25968 packed_data(ipack) = pack_tmp
25969 data_tmp = full_data(idata)
25970 pack_tmp = ishft(data_tmp, 32)
25971 pack_tmp = ishft(pack_tmp, -32)
25972 idata = idata + 1
25973 data_tmp = full_data(idata)
25974 data_tmp = ishft(data_tmp, 29)
25975 data_tmp = iand(data_tmp, mask_left(32))
25976 pack_tmp = ior(pack_tmp, data_tmp)
25977 ipack = ipack + 1
25978 packed_data(ipack) = pack_tmp
25979 data_tmp = full_data(idata)
25980 pack_tmp = ishft(data_tmp, 61)
25981 pack_tmp = ishft(pack_tmp, -35)
25982 idata = idata + 1
25983 data_tmp = full_data(idata)
25984 data_tmp = ishft(data_tmp, 29)
25985 pack_tmp = ior(pack_tmp, data_tmp)
25986 pack_tmp = ishft(pack_tmp, -26)
25987 idata = idata + 1
25988 data_tmp = full_data(idata)
25989 data_tmp = ishft(data_tmp, 29)
25990 data_tmp = iand(data_tmp, mask_left(26))
25991 pack_tmp = ior(pack_tmp, data_tmp)
25992 ipack = ipack + 1
25993 packed_data(ipack) = pack_tmp
25994 data_tmp = full_data(idata)
25995 pack_tmp = ishft(data_tmp, 55)
25996 pack_tmp = ishft(pack_tmp, -35)
25997 idata = idata + 1
25998 data_tmp = full_data(idata)
25999 data_tmp = ishft(data_tmp, 29)
26000 pack_tmp = ior(pack_tmp, data_tmp)
26001 pack_tmp = ishft(pack_tmp, -20)
26002 idata = idata + 1
26003 data_tmp = full_data(idata)
26004 data_tmp = ishft(data_tmp, 29)
26005 data_tmp = iand(data_tmp, mask_left(20))
26006 pack_tmp = ior(pack_tmp, data_tmp)
26007 ipack = ipack + 1
26008 packed_data(ipack) = pack_tmp
26009 data_tmp = full_data(idata)
26010 pack_tmp = ishft(data_tmp, 49)
26011 pack_tmp = ishft(pack_tmp, -35)
26012 idata = idata + 1
26013 data_tmp = full_data(idata)
26014 data_tmp = ishft(data_tmp, 29)
26015 pack_tmp = ior(pack_tmp, data_tmp)
26016 pack_tmp = ishft(pack_tmp, -14)
26017 idata = idata + 1
26018 data_tmp = full_data(idata)
26019 data_tmp = ishft(data_tmp, 29)
26020 data_tmp = iand(data_tmp, mask_left(14))
26021 pack_tmp = ior(pack_tmp, data_tmp)
26022 ipack = ipack + 1
26023 packed_data(ipack) = pack_tmp
26024 data_tmp = full_data(idata)
26025 pack_tmp = ishft(data_tmp, 43)
26026 pack_tmp = ishft(pack_tmp, -35)
26027 idata = idata + 1
26028 data_tmp = full_data(idata)
26029 data_tmp = ishft(data_tmp, 29)
26030 pack_tmp = ior(pack_tmp, data_tmp)
26031 pack_tmp = ishft(pack_tmp, -8)
26032 idata = idata + 1
26033 data_tmp = full_data(idata)
26034 data_tmp = ishft(data_tmp, 29)
26035 data_tmp = iand(data_tmp, mask_left(8))
26036 pack_tmp = ior(pack_tmp, data_tmp)
26037 ipack = ipack + 1
26038 packed_data(ipack) = pack_tmp
26039 data_tmp = full_data(idata)
26040 pack_tmp = ishft(data_tmp, 37)
26041 pack_tmp = ishft(pack_tmp, -35)
26042 idata = idata + 1
26043 data_tmp = full_data(idata)
26044 data_tmp = ishft(data_tmp, 29)
26045 pack_tmp = ior(pack_tmp, data_tmp)
26046 pack_tmp = ishft(pack_tmp, -2)
26047 idata = idata + 1
26048 data_tmp = full_data(idata)
26049 data_tmp = ishft(data_tmp, 29)
26050 data_tmp = iand(data_tmp, mask_left(2))
26051 pack_tmp = ior(pack_tmp, data_tmp)
26052 ipack = ipack + 1
26053 packed_data(ipack) = pack_tmp
26054 data_tmp = full_data(idata)
26055 pack_tmp = ishft(data_tmp, 31)
26056 pack_tmp = ishft(pack_tmp, -31)
26057 idata = idata + 1
26058 data_tmp = full_data(idata)
26059 data_tmp = ishft(data_tmp, 29)
26060 data_tmp = iand(data_tmp, mask_left(31))
26061 pack_tmp = ior(pack_tmp, data_tmp)
26062 ipack = ipack + 1
26063 packed_data(ipack) = pack_tmp
26064 data_tmp = full_data(idata)
26065 pack_tmp = ishft(data_tmp, 60)
26066 pack_tmp = ishft(pack_tmp, -35)
26067 idata = idata + 1
26068 data_tmp = full_data(idata)
26069 data_tmp = ishft(data_tmp, 29)
26070 pack_tmp = ior(pack_tmp, data_tmp)
26071 pack_tmp = ishft(pack_tmp, -25)
26072 idata = idata + 1
26073 data_tmp = full_data(idata)
26074 data_tmp = ishft(data_tmp, 29)
26075 data_tmp = iand(data_tmp, mask_left(25))
26076 pack_tmp = ior(pack_tmp, data_tmp)
26077 ipack = ipack + 1
26078 packed_data(ipack) = pack_tmp
26079 data_tmp = full_data(idata)
26080 pack_tmp = ishft(data_tmp, 54)
26081 pack_tmp = ishft(pack_tmp, -35)
26082 idata = idata + 1
26083 data_tmp = full_data(idata)
26084 data_tmp = ishft(data_tmp, 29)
26085 pack_tmp = ior(pack_tmp, data_tmp)
26086 pack_tmp = ishft(pack_tmp, -19)
26087 idata = idata + 1
26088 data_tmp = full_data(idata)
26089 data_tmp = ishft(data_tmp, 29)
26090 data_tmp = iand(data_tmp, mask_left(19))
26091 pack_tmp = ior(pack_tmp, data_tmp)
26092 ipack = ipack + 1
26093 packed_data(ipack) = pack_tmp
26094 data_tmp = full_data(idata)
26095 pack_tmp = ishft(data_tmp, 48)
26096 pack_tmp = ishft(pack_tmp, -35)
26097 idata = idata + 1
26098 data_tmp = full_data(idata)
26099 data_tmp = ishft(data_tmp, 29)
26100 pack_tmp = ior(pack_tmp, data_tmp)
26101 pack_tmp = ishft(pack_tmp, -13)
26102 idata = idata + 1
26103 data_tmp = full_data(idata)
26104 data_tmp = ishft(data_tmp, 29)
26105 data_tmp = iand(data_tmp, mask_left(13))
26106 pack_tmp = ior(pack_tmp, data_tmp)
26107 ipack = ipack + 1
26108 packed_data(ipack) = pack_tmp
26109 data_tmp = full_data(idata)
26110 pack_tmp = ishft(data_tmp, 42)
26111 pack_tmp = ishft(pack_tmp, -35)
26112 idata = idata + 1
26113 data_tmp = full_data(idata)
26114 data_tmp = ishft(data_tmp, 29)
26115 pack_tmp = ior(pack_tmp, data_tmp)
26116 pack_tmp = ishft(pack_tmp, -7)
26117 idata = idata + 1
26118 data_tmp = full_data(idata)
26119 data_tmp = ishft(data_tmp, 29)
26120 data_tmp = iand(data_tmp, mask_left(7))
26121 pack_tmp = ior(pack_tmp, data_tmp)
26122 ipack = ipack + 1
26123 packed_data(ipack) = pack_tmp
26124 data_tmp = full_data(idata)
26125 pack_tmp = ishft(data_tmp, 36)
26126 pack_tmp = ishft(pack_tmp, -35)
26127 idata = idata + 1
26128 data_tmp = full_data(idata)
26129 data_tmp = ishft(data_tmp, 29)
26130 pack_tmp = ior(pack_tmp, data_tmp)
26131 pack_tmp = ishft(pack_tmp, -1)
26132 idata = idata + 1
26133 data_tmp = full_data(idata)
26134 data_tmp = ishft(data_tmp, 29)
26135 data_tmp = iand(data_tmp, mask_left(1))
26136 pack_tmp = ior(pack_tmp, data_tmp)
26137 ipack = ipack + 1
26138 packed_data(ipack) = pack_tmp
26139 data_tmp = full_data(idata)
26140 pack_tmp = ishft(data_tmp, 30)
26141 pack_tmp = ishft(pack_tmp, -30)
26142 idata = idata + 1
26143 data_tmp = full_data(idata)
26144 data_tmp = ishft(data_tmp, 29)
26145 data_tmp = iand(data_tmp, mask_left(30))
26146 pack_tmp = ior(pack_tmp, data_tmp)
26147 ipack = ipack + 1
26148 packed_data(ipack) = pack_tmp
26149 data_tmp = full_data(idata)
26150 pack_tmp = ishft(data_tmp, 59)
26151 pack_tmp = ishft(pack_tmp, -35)
26152 idata = idata + 1
26153 data_tmp = full_data(idata)
26154 data_tmp = ishft(data_tmp, 29)
26155 pack_tmp = ior(pack_tmp, data_tmp)
26156 pack_tmp = ishft(pack_tmp, -24)
26157 idata = idata + 1
26158 data_tmp = full_data(idata)
26159 data_tmp = ishft(data_tmp, 29)
26160 data_tmp = iand(data_tmp, mask_left(24))
26161 pack_tmp = ior(pack_tmp, data_tmp)
26162 ipack = ipack + 1
26163 packed_data(ipack) = pack_tmp
26164 data_tmp = full_data(idata)
26165 pack_tmp = ishft(data_tmp, 53)
26166 pack_tmp = ishft(pack_tmp, -35)
26167 idata = idata + 1
26168 data_tmp = full_data(idata)
26169 data_tmp = ishft(data_tmp, 29)
26170 pack_tmp = ior(pack_tmp, data_tmp)
26171 pack_tmp = ishft(pack_tmp, -18)
26172 idata = idata + 1
26173 data_tmp = full_data(idata)
26174 data_tmp = ishft(data_tmp, 29)
26175 data_tmp = iand(data_tmp, mask_left(18))
26176 pack_tmp = ior(pack_tmp, data_tmp)
26177 ipack = ipack + 1
26178 packed_data(ipack) = pack_tmp
26179 data_tmp = full_data(idata)
26180 pack_tmp = ishft(data_tmp, 47)
26181 pack_tmp = ishft(pack_tmp, -35)
26182 idata = idata + 1
26183 data_tmp = full_data(idata)
26184 data_tmp = ishft(data_tmp, 29)
26185 pack_tmp = ior(pack_tmp, data_tmp)
26186 pack_tmp = ishft(pack_tmp, -12)
26187 idata = idata + 1
26188 data_tmp = full_data(idata)
26189 data_tmp = ishft(data_tmp, 29)
26190 data_tmp = iand(data_tmp, mask_left(12))
26191 pack_tmp = ior(pack_tmp, data_tmp)
26192 ipack = ipack + 1
26193 packed_data(ipack) = pack_tmp
26194 data_tmp = full_data(idata)
26195 pack_tmp = ishft(data_tmp, 41)
26196 pack_tmp = ishft(pack_tmp, -35)
26197 idata = idata + 1
26198 data_tmp = full_data(idata)
26199 data_tmp = ishft(data_tmp, 29)
26200 pack_tmp = ior(pack_tmp, data_tmp)
26201 pack_tmp = ishft(pack_tmp, -6)
26202 idata = idata + 1
26203 data_tmp = full_data(idata)
26204 data_tmp = ishft(data_tmp, 29)
26205 data_tmp = iand(data_tmp, mask_left(6))
26206 pack_tmp = ior(pack_tmp, data_tmp)
26207 ipack = ipack + 1
26208 packed_data(ipack) = pack_tmp
26209 data_tmp = full_data(idata)
26210 pack_tmp = ishft(data_tmp, 35)
26211 pack_tmp = ishft(pack_tmp, -35)
26212 idata = idata + 1
26213 data_tmp = full_data(idata)
26214 data_tmp = ishft(data_tmp, 29)
26215 pack_tmp = ior(pack_tmp, data_tmp)
26216 pack_tmp = ishft(pack_tmp, 0)
26217 pack_tmp = ishft(pack_tmp, 0)
26218 ipack = ipack + 1
26219 packed_data(ipack) = pack_tmp
26220 END DO
26221 IF (ndata_rep < ndata) THEN
26222 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
26223 END IF
26224 END SUBROUTINE ints2bits_35
26225
26226! **************************************************************************************************
26227!> \brief ...
26228!> \param Ndata ...
26229!> \param packed_data ...
26230!> \param full_data ...
26231! **************************************************************************************************
26232 SUBROUTINE bits2ints_35(Ndata, packed_data, full_data)
26233 INTEGER, INTENT(IN) :: Ndata
26234 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
26235 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
26236
26237 INTEGER, PARAMETER :: Nbits = 35
26238
26239 INTEGER :: idata, ipack, kdata, Ndata_rep
26240 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
26241
26242 ipack = 0
26243 idata = 0
26244 pack_tmp = 0
26245 ndata_rep = (ndata/64)*64
26246 DO kdata = 1, ndata_rep, 64
26247 idata = idata + 1
26248 data_tmp = ishft(pack_tmp, 35)
26249 ipack = ipack + 1
26250 pack_tmp = packed_data(ipack)
26251 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
26252 pack_tmp = ishft(pack_tmp, -35)
26253 idata = idata + 1
26254 data_tmp = ishft(pack_tmp, 6)
26255 ipack = ipack + 1
26256 pack_tmp = packed_data(ipack)
26257 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
26258 pack_tmp = ishft(pack_tmp, -6)
26259 idata = idata + 1
26260 data_tmp = iand(pack_tmp, mask_right(nbits))
26261 full_data(idata) = data_tmp
26262 pack_tmp = ishft(pack_tmp, -nbits)
26263 idata = idata + 1
26264 data_tmp = ishft(pack_tmp, 12)
26265 ipack = ipack + 1
26266 pack_tmp = packed_data(ipack)
26267 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
26268 pack_tmp = ishft(pack_tmp, -12)
26269 idata = idata + 1
26270 data_tmp = iand(pack_tmp, mask_right(nbits))
26271 full_data(idata) = data_tmp
26272 pack_tmp = ishft(pack_tmp, -nbits)
26273 idata = idata + 1
26274 data_tmp = ishft(pack_tmp, 18)
26275 ipack = ipack + 1
26276 pack_tmp = packed_data(ipack)
26277 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
26278 pack_tmp = ishft(pack_tmp, -18)
26279 idata = idata + 1
26280 data_tmp = iand(pack_tmp, mask_right(nbits))
26281 full_data(idata) = data_tmp
26282 pack_tmp = ishft(pack_tmp, -nbits)
26283 idata = idata + 1
26284 data_tmp = ishft(pack_tmp, 24)
26285 ipack = ipack + 1
26286 pack_tmp = packed_data(ipack)
26287 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
26288 pack_tmp = ishft(pack_tmp, -24)
26289 idata = idata + 1
26290 data_tmp = iand(pack_tmp, mask_right(nbits))
26291 full_data(idata) = data_tmp
26292 pack_tmp = ishft(pack_tmp, -nbits)
26293 idata = idata + 1
26294 data_tmp = ishft(pack_tmp, 30)
26295 ipack = ipack + 1
26296 pack_tmp = packed_data(ipack)
26297 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
26298 pack_tmp = ishft(pack_tmp, -30)
26299 idata = idata + 1
26300 data_tmp = ishft(pack_tmp, 1)
26301 ipack = ipack + 1
26302 pack_tmp = packed_data(ipack)
26303 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
26304 pack_tmp = ishft(pack_tmp, -1)
26305 idata = idata + 1
26306 data_tmp = iand(pack_tmp, mask_right(nbits))
26307 full_data(idata) = data_tmp
26308 pack_tmp = ishft(pack_tmp, -nbits)
26309 idata = idata + 1
26310 data_tmp = ishft(pack_tmp, 7)
26311 ipack = ipack + 1
26312 pack_tmp = packed_data(ipack)
26313 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
26314 pack_tmp = ishft(pack_tmp, -7)
26315 idata = idata + 1
26316 data_tmp = iand(pack_tmp, mask_right(nbits))
26317 full_data(idata) = data_tmp
26318 pack_tmp = ishft(pack_tmp, -nbits)
26319 idata = idata + 1
26320 data_tmp = ishft(pack_tmp, 13)
26321 ipack = ipack + 1
26322 pack_tmp = packed_data(ipack)
26323 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
26324 pack_tmp = ishft(pack_tmp, -13)
26325 idata = idata + 1
26326 data_tmp = iand(pack_tmp, mask_right(nbits))
26327 full_data(idata) = data_tmp
26328 pack_tmp = ishft(pack_tmp, -nbits)
26329 idata = idata + 1
26330 data_tmp = ishft(pack_tmp, 19)
26331 ipack = ipack + 1
26332 pack_tmp = packed_data(ipack)
26333 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
26334 pack_tmp = ishft(pack_tmp, -19)
26335 idata = idata + 1
26336 data_tmp = iand(pack_tmp, mask_right(nbits))
26337 full_data(idata) = data_tmp
26338 pack_tmp = ishft(pack_tmp, -nbits)
26339 idata = idata + 1
26340 data_tmp = ishft(pack_tmp, 25)
26341 ipack = ipack + 1
26342 pack_tmp = packed_data(ipack)
26343 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
26344 pack_tmp = ishft(pack_tmp, -25)
26345 idata = idata + 1
26346 data_tmp = iand(pack_tmp, mask_right(nbits))
26347 full_data(idata) = data_tmp
26348 pack_tmp = ishft(pack_tmp, -nbits)
26349 idata = idata + 1
26350 data_tmp = ishft(pack_tmp, 31)
26351 ipack = ipack + 1
26352 pack_tmp = packed_data(ipack)
26353 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
26354 pack_tmp = ishft(pack_tmp, -31)
26355 idata = idata + 1
26356 data_tmp = ishft(pack_tmp, 2)
26357 ipack = ipack + 1
26358 pack_tmp = packed_data(ipack)
26359 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
26360 pack_tmp = ishft(pack_tmp, -2)
26361 idata = idata + 1
26362 data_tmp = iand(pack_tmp, mask_right(nbits))
26363 full_data(idata) = data_tmp
26364 pack_tmp = ishft(pack_tmp, -nbits)
26365 idata = idata + 1
26366 data_tmp = ishft(pack_tmp, 8)
26367 ipack = ipack + 1
26368 pack_tmp = packed_data(ipack)
26369 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
26370 pack_tmp = ishft(pack_tmp, -8)
26371 idata = idata + 1
26372 data_tmp = iand(pack_tmp, mask_right(nbits))
26373 full_data(idata) = data_tmp
26374 pack_tmp = ishft(pack_tmp, -nbits)
26375 idata = idata + 1
26376 data_tmp = ishft(pack_tmp, 14)
26377 ipack = ipack + 1
26378 pack_tmp = packed_data(ipack)
26379 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
26380 pack_tmp = ishft(pack_tmp, -14)
26381 idata = idata + 1
26382 data_tmp = iand(pack_tmp, mask_right(nbits))
26383 full_data(idata) = data_tmp
26384 pack_tmp = ishft(pack_tmp, -nbits)
26385 idata = idata + 1
26386 data_tmp = ishft(pack_tmp, 20)
26387 ipack = ipack + 1
26388 pack_tmp = packed_data(ipack)
26389 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
26390 pack_tmp = ishft(pack_tmp, -20)
26391 idata = idata + 1
26392 data_tmp = iand(pack_tmp, mask_right(nbits))
26393 full_data(idata) = data_tmp
26394 pack_tmp = ishft(pack_tmp, -nbits)
26395 idata = idata + 1
26396 data_tmp = ishft(pack_tmp, 26)
26397 ipack = ipack + 1
26398 pack_tmp = packed_data(ipack)
26399 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
26400 pack_tmp = ishft(pack_tmp, -26)
26401 idata = idata + 1
26402 data_tmp = iand(pack_tmp, mask_right(nbits))
26403 full_data(idata) = data_tmp
26404 pack_tmp = ishft(pack_tmp, -nbits)
26405 idata = idata + 1
26406 data_tmp = ishft(pack_tmp, 32)
26407 ipack = ipack + 1
26408 pack_tmp = packed_data(ipack)
26409 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
26410 pack_tmp = ishft(pack_tmp, -32)
26411 idata = idata + 1
26412 data_tmp = ishft(pack_tmp, 3)
26413 ipack = ipack + 1
26414 pack_tmp = packed_data(ipack)
26415 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
26416 pack_tmp = ishft(pack_tmp, -3)
26417 idata = idata + 1
26418 data_tmp = iand(pack_tmp, mask_right(nbits))
26419 full_data(idata) = data_tmp
26420 pack_tmp = ishft(pack_tmp, -nbits)
26421 idata = idata + 1
26422 data_tmp = ishft(pack_tmp, 9)
26423 ipack = ipack + 1
26424 pack_tmp = packed_data(ipack)
26425 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
26426 pack_tmp = ishft(pack_tmp, -9)
26427 idata = idata + 1
26428 data_tmp = iand(pack_tmp, mask_right(nbits))
26429 full_data(idata) = data_tmp
26430 pack_tmp = ishft(pack_tmp, -nbits)
26431 idata = idata + 1
26432 data_tmp = ishft(pack_tmp, 15)
26433 ipack = ipack + 1
26434 pack_tmp = packed_data(ipack)
26435 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
26436 pack_tmp = ishft(pack_tmp, -15)
26437 idata = idata + 1
26438 data_tmp = iand(pack_tmp, mask_right(nbits))
26439 full_data(idata) = data_tmp
26440 pack_tmp = ishft(pack_tmp, -nbits)
26441 idata = idata + 1
26442 data_tmp = ishft(pack_tmp, 21)
26443 ipack = ipack + 1
26444 pack_tmp = packed_data(ipack)
26445 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
26446 pack_tmp = ishft(pack_tmp, -21)
26447 idata = idata + 1
26448 data_tmp = iand(pack_tmp, mask_right(nbits))
26449 full_data(idata) = data_tmp
26450 pack_tmp = ishft(pack_tmp, -nbits)
26451 idata = idata + 1
26452 data_tmp = ishft(pack_tmp, 27)
26453 ipack = ipack + 1
26454 pack_tmp = packed_data(ipack)
26455 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
26456 pack_tmp = ishft(pack_tmp, -27)
26457 idata = idata + 1
26458 data_tmp = iand(pack_tmp, mask_right(nbits))
26459 full_data(idata) = data_tmp
26460 pack_tmp = ishft(pack_tmp, -nbits)
26461 idata = idata + 1
26462 data_tmp = ishft(pack_tmp, 33)
26463 ipack = ipack + 1
26464 pack_tmp = packed_data(ipack)
26465 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
26466 pack_tmp = ishft(pack_tmp, -33)
26467 idata = idata + 1
26468 data_tmp = ishft(pack_tmp, 4)
26469 ipack = ipack + 1
26470 pack_tmp = packed_data(ipack)
26471 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
26472 pack_tmp = ishft(pack_tmp, -4)
26473 idata = idata + 1
26474 data_tmp = iand(pack_tmp, mask_right(nbits))
26475 full_data(idata) = data_tmp
26476 pack_tmp = ishft(pack_tmp, -nbits)
26477 idata = idata + 1
26478 data_tmp = ishft(pack_tmp, 10)
26479 ipack = ipack + 1
26480 pack_tmp = packed_data(ipack)
26481 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
26482 pack_tmp = ishft(pack_tmp, -10)
26483 idata = idata + 1
26484 data_tmp = iand(pack_tmp, mask_right(nbits))
26485 full_data(idata) = data_tmp
26486 pack_tmp = ishft(pack_tmp, -nbits)
26487 idata = idata + 1
26488 data_tmp = ishft(pack_tmp, 16)
26489 ipack = ipack + 1
26490 pack_tmp = packed_data(ipack)
26491 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
26492 pack_tmp = ishft(pack_tmp, -16)
26493 idata = idata + 1
26494 data_tmp = iand(pack_tmp, mask_right(nbits))
26495 full_data(idata) = data_tmp
26496 pack_tmp = ishft(pack_tmp, -nbits)
26497 idata = idata + 1
26498 data_tmp = ishft(pack_tmp, 22)
26499 ipack = ipack + 1
26500 pack_tmp = packed_data(ipack)
26501 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
26502 pack_tmp = ishft(pack_tmp, -22)
26503 idata = idata + 1
26504 data_tmp = iand(pack_tmp, mask_right(nbits))
26505 full_data(idata) = data_tmp
26506 pack_tmp = ishft(pack_tmp, -nbits)
26507 idata = idata + 1
26508 data_tmp = ishft(pack_tmp, 28)
26509 ipack = ipack + 1
26510 pack_tmp = packed_data(ipack)
26511 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
26512 pack_tmp = ishft(pack_tmp, -28)
26513 idata = idata + 1
26514 data_tmp = iand(pack_tmp, mask_right(nbits))
26515 full_data(idata) = data_tmp
26516 pack_tmp = ishft(pack_tmp, -nbits)
26517 idata = idata + 1
26518 data_tmp = ishft(pack_tmp, 34)
26519 ipack = ipack + 1
26520 pack_tmp = packed_data(ipack)
26521 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
26522 pack_tmp = ishft(pack_tmp, -34)
26523 idata = idata + 1
26524 data_tmp = ishft(pack_tmp, 5)
26525 ipack = ipack + 1
26526 pack_tmp = packed_data(ipack)
26527 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
26528 pack_tmp = ishft(pack_tmp, -5)
26529 idata = idata + 1
26530 data_tmp = iand(pack_tmp, mask_right(nbits))
26531 full_data(idata) = data_tmp
26532 pack_tmp = ishft(pack_tmp, -nbits)
26533 idata = idata + 1
26534 data_tmp = ishft(pack_tmp, 11)
26535 ipack = ipack + 1
26536 pack_tmp = packed_data(ipack)
26537 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
26538 pack_tmp = ishft(pack_tmp, -11)
26539 idata = idata + 1
26540 data_tmp = iand(pack_tmp, mask_right(nbits))
26541 full_data(idata) = data_tmp
26542 pack_tmp = ishft(pack_tmp, -nbits)
26543 idata = idata + 1
26544 data_tmp = ishft(pack_tmp, 17)
26545 ipack = ipack + 1
26546 pack_tmp = packed_data(ipack)
26547 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
26548 pack_tmp = ishft(pack_tmp, -17)
26549 idata = idata + 1
26550 data_tmp = iand(pack_tmp, mask_right(nbits))
26551 full_data(idata) = data_tmp
26552 pack_tmp = ishft(pack_tmp, -nbits)
26553 idata = idata + 1
26554 data_tmp = ishft(pack_tmp, 23)
26555 ipack = ipack + 1
26556 pack_tmp = packed_data(ipack)
26557 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
26558 pack_tmp = ishft(pack_tmp, -23)
26559 idata = idata + 1
26560 data_tmp = iand(pack_tmp, mask_right(nbits))
26561 full_data(idata) = data_tmp
26562 pack_tmp = ishft(pack_tmp, -nbits)
26563 idata = idata + 1
26564 data_tmp = ishft(pack_tmp, 29)
26565 ipack = ipack + 1
26566 pack_tmp = packed_data(ipack)
26567 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
26568 pack_tmp = ishft(pack_tmp, -29)
26569 idata = idata + 1
26570 data_tmp = iand(pack_tmp, mask_right(nbits))
26571 full_data(idata) = data_tmp
26572 pack_tmp = ishft(pack_tmp, -nbits)
26573 END DO
26574 IF (ndata_rep < ndata) THEN
26575 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
26576 END IF
26577 END SUBROUTINE bits2ints_35
26578
26579! **************************************************************************************************
26580!> \brief ...
26581!> \param Ndata ...
26582!> \param packed_data ...
26583!> \param full_data ...
26584! **************************************************************************************************
26585 SUBROUTINE ints2bits_36(Ndata, packed_data, full_data)
26586 INTEGER, INTENT(IN) :: Ndata
26587 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
26588 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
26589
26590 INTEGER, PARAMETER :: Nbits = 36
26591
26592 INTEGER :: idata, ipack, kdata, Ndata_rep
26593 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
26594
26595 idata = 0
26596 ipack = 0
26597 ndata_rep = (ndata/64)*64
26598 DO kdata = 1, ndata_rep, 64
26599 pack_tmp = 0
26600 idata = idata + 1
26601 data_tmp = full_data(idata)
26602 data_tmp = ishft(data_tmp, 28)
26603 pack_tmp = ior(pack_tmp, data_tmp)
26604 pack_tmp = ishft(pack_tmp, -28)
26605 idata = idata + 1
26606 data_tmp = full_data(idata)
26607 data_tmp = ishft(data_tmp, 28)
26608 data_tmp = iand(data_tmp, mask_left(28))
26609 pack_tmp = ior(pack_tmp, data_tmp)
26610 ipack = ipack + 1
26611 packed_data(ipack) = pack_tmp
26612 data_tmp = full_data(idata)
26613 pack_tmp = ishft(data_tmp, 56)
26614 pack_tmp = ishft(pack_tmp, -36)
26615 idata = idata + 1
26616 data_tmp = full_data(idata)
26617 data_tmp = ishft(data_tmp, 28)
26618 pack_tmp = ior(pack_tmp, data_tmp)
26619 pack_tmp = ishft(pack_tmp, -20)
26620 idata = idata + 1
26621 data_tmp = full_data(idata)
26622 data_tmp = ishft(data_tmp, 28)
26623 data_tmp = iand(data_tmp, mask_left(20))
26624 pack_tmp = ior(pack_tmp, data_tmp)
26625 ipack = ipack + 1
26626 packed_data(ipack) = pack_tmp
26627 data_tmp = full_data(idata)
26628 pack_tmp = ishft(data_tmp, 48)
26629 pack_tmp = ishft(pack_tmp, -36)
26630 idata = idata + 1
26631 data_tmp = full_data(idata)
26632 data_tmp = ishft(data_tmp, 28)
26633 pack_tmp = ior(pack_tmp, data_tmp)
26634 pack_tmp = ishft(pack_tmp, -12)
26635 idata = idata + 1
26636 data_tmp = full_data(idata)
26637 data_tmp = ishft(data_tmp, 28)
26638 data_tmp = iand(data_tmp, mask_left(12))
26639 pack_tmp = ior(pack_tmp, data_tmp)
26640 ipack = ipack + 1
26641 packed_data(ipack) = pack_tmp
26642 data_tmp = full_data(idata)
26643 pack_tmp = ishft(data_tmp, 40)
26644 pack_tmp = ishft(pack_tmp, -36)
26645 idata = idata + 1
26646 data_tmp = full_data(idata)
26647 data_tmp = ishft(data_tmp, 28)
26648 pack_tmp = ior(pack_tmp, data_tmp)
26649 pack_tmp = ishft(pack_tmp, -4)
26650 idata = idata + 1
26651 data_tmp = full_data(idata)
26652 data_tmp = ishft(data_tmp, 28)
26653 data_tmp = iand(data_tmp, mask_left(4))
26654 pack_tmp = ior(pack_tmp, data_tmp)
26655 ipack = ipack + 1
26656 packed_data(ipack) = pack_tmp
26657 data_tmp = full_data(idata)
26658 pack_tmp = ishft(data_tmp, 32)
26659 pack_tmp = ishft(pack_tmp, -32)
26660 idata = idata + 1
26661 data_tmp = full_data(idata)
26662 data_tmp = ishft(data_tmp, 28)
26663 data_tmp = iand(data_tmp, mask_left(32))
26664 pack_tmp = ior(pack_tmp, data_tmp)
26665 ipack = ipack + 1
26666 packed_data(ipack) = pack_tmp
26667 data_tmp = full_data(idata)
26668 pack_tmp = ishft(data_tmp, 60)
26669 pack_tmp = ishft(pack_tmp, -36)
26670 idata = idata + 1
26671 data_tmp = full_data(idata)
26672 data_tmp = ishft(data_tmp, 28)
26673 pack_tmp = ior(pack_tmp, data_tmp)
26674 pack_tmp = ishft(pack_tmp, -24)
26675 idata = idata + 1
26676 data_tmp = full_data(idata)
26677 data_tmp = ishft(data_tmp, 28)
26678 data_tmp = iand(data_tmp, mask_left(24))
26679 pack_tmp = ior(pack_tmp, data_tmp)
26680 ipack = ipack + 1
26681 packed_data(ipack) = pack_tmp
26682 data_tmp = full_data(idata)
26683 pack_tmp = ishft(data_tmp, 52)
26684 pack_tmp = ishft(pack_tmp, -36)
26685 idata = idata + 1
26686 data_tmp = full_data(idata)
26687 data_tmp = ishft(data_tmp, 28)
26688 pack_tmp = ior(pack_tmp, data_tmp)
26689 pack_tmp = ishft(pack_tmp, -16)
26690 idata = idata + 1
26691 data_tmp = full_data(idata)
26692 data_tmp = ishft(data_tmp, 28)
26693 data_tmp = iand(data_tmp, mask_left(16))
26694 pack_tmp = ior(pack_tmp, data_tmp)
26695 ipack = ipack + 1
26696 packed_data(ipack) = pack_tmp
26697 data_tmp = full_data(idata)
26698 pack_tmp = ishft(data_tmp, 44)
26699 pack_tmp = ishft(pack_tmp, -36)
26700 idata = idata + 1
26701 data_tmp = full_data(idata)
26702 data_tmp = ishft(data_tmp, 28)
26703 pack_tmp = ior(pack_tmp, data_tmp)
26704 pack_tmp = ishft(pack_tmp, -8)
26705 idata = idata + 1
26706 data_tmp = full_data(idata)
26707 data_tmp = ishft(data_tmp, 28)
26708 data_tmp = iand(data_tmp, mask_left(8))
26709 pack_tmp = ior(pack_tmp, data_tmp)
26710 ipack = ipack + 1
26711 packed_data(ipack) = pack_tmp
26712 data_tmp = full_data(idata)
26713 pack_tmp = ishft(data_tmp, 36)
26714 pack_tmp = ishft(pack_tmp, -36)
26715 idata = idata + 1
26716 data_tmp = full_data(idata)
26717 data_tmp = ishft(data_tmp, 28)
26718 pack_tmp = ior(pack_tmp, data_tmp)
26719 pack_tmp = ishft(pack_tmp, 0)
26720 idata = idata + 1
26721 data_tmp = full_data(idata)
26722 data_tmp = ishft(data_tmp, 28)
26723 data_tmp = iand(data_tmp, mask_left(0))
26724 pack_tmp = ior(pack_tmp, data_tmp)
26725 ipack = ipack + 1
26726 packed_data(ipack) = pack_tmp
26727 data_tmp = full_data(idata)
26728 pack_tmp = ishft(data_tmp, 28)
26729 pack_tmp = ishft(pack_tmp, -28)
26730 idata = idata + 1
26731 data_tmp = full_data(idata)
26732 data_tmp = ishft(data_tmp, 28)
26733 data_tmp = iand(data_tmp, mask_left(28))
26734 pack_tmp = ior(pack_tmp, data_tmp)
26735 ipack = ipack + 1
26736 packed_data(ipack) = pack_tmp
26737 data_tmp = full_data(idata)
26738 pack_tmp = ishft(data_tmp, 56)
26739 pack_tmp = ishft(pack_tmp, -36)
26740 idata = idata + 1
26741 data_tmp = full_data(idata)
26742 data_tmp = ishft(data_tmp, 28)
26743 pack_tmp = ior(pack_tmp, data_tmp)
26744 pack_tmp = ishft(pack_tmp, -20)
26745 idata = idata + 1
26746 data_tmp = full_data(idata)
26747 data_tmp = ishft(data_tmp, 28)
26748 data_tmp = iand(data_tmp, mask_left(20))
26749 pack_tmp = ior(pack_tmp, data_tmp)
26750 ipack = ipack + 1
26751 packed_data(ipack) = pack_tmp
26752 data_tmp = full_data(idata)
26753 pack_tmp = ishft(data_tmp, 48)
26754 pack_tmp = ishft(pack_tmp, -36)
26755 idata = idata + 1
26756 data_tmp = full_data(idata)
26757 data_tmp = ishft(data_tmp, 28)
26758 pack_tmp = ior(pack_tmp, data_tmp)
26759 pack_tmp = ishft(pack_tmp, -12)
26760 idata = idata + 1
26761 data_tmp = full_data(idata)
26762 data_tmp = ishft(data_tmp, 28)
26763 data_tmp = iand(data_tmp, mask_left(12))
26764 pack_tmp = ior(pack_tmp, data_tmp)
26765 ipack = ipack + 1
26766 packed_data(ipack) = pack_tmp
26767 data_tmp = full_data(idata)
26768 pack_tmp = ishft(data_tmp, 40)
26769 pack_tmp = ishft(pack_tmp, -36)
26770 idata = idata + 1
26771 data_tmp = full_data(idata)
26772 data_tmp = ishft(data_tmp, 28)
26773 pack_tmp = ior(pack_tmp, data_tmp)
26774 pack_tmp = ishft(pack_tmp, -4)
26775 idata = idata + 1
26776 data_tmp = full_data(idata)
26777 data_tmp = ishft(data_tmp, 28)
26778 data_tmp = iand(data_tmp, mask_left(4))
26779 pack_tmp = ior(pack_tmp, data_tmp)
26780 ipack = ipack + 1
26781 packed_data(ipack) = pack_tmp
26782 data_tmp = full_data(idata)
26783 pack_tmp = ishft(data_tmp, 32)
26784 pack_tmp = ishft(pack_tmp, -32)
26785 idata = idata + 1
26786 data_tmp = full_data(idata)
26787 data_tmp = ishft(data_tmp, 28)
26788 data_tmp = iand(data_tmp, mask_left(32))
26789 pack_tmp = ior(pack_tmp, data_tmp)
26790 ipack = ipack + 1
26791 packed_data(ipack) = pack_tmp
26792 data_tmp = full_data(idata)
26793 pack_tmp = ishft(data_tmp, 60)
26794 pack_tmp = ishft(pack_tmp, -36)
26795 idata = idata + 1
26796 data_tmp = full_data(idata)
26797 data_tmp = ishft(data_tmp, 28)
26798 pack_tmp = ior(pack_tmp, data_tmp)
26799 pack_tmp = ishft(pack_tmp, -24)
26800 idata = idata + 1
26801 data_tmp = full_data(idata)
26802 data_tmp = ishft(data_tmp, 28)
26803 data_tmp = iand(data_tmp, mask_left(24))
26804 pack_tmp = ior(pack_tmp, data_tmp)
26805 ipack = ipack + 1
26806 packed_data(ipack) = pack_tmp
26807 data_tmp = full_data(idata)
26808 pack_tmp = ishft(data_tmp, 52)
26809 pack_tmp = ishft(pack_tmp, -36)
26810 idata = idata + 1
26811 data_tmp = full_data(idata)
26812 data_tmp = ishft(data_tmp, 28)
26813 pack_tmp = ior(pack_tmp, data_tmp)
26814 pack_tmp = ishft(pack_tmp, -16)
26815 idata = idata + 1
26816 data_tmp = full_data(idata)
26817 data_tmp = ishft(data_tmp, 28)
26818 data_tmp = iand(data_tmp, mask_left(16))
26819 pack_tmp = ior(pack_tmp, data_tmp)
26820 ipack = ipack + 1
26821 packed_data(ipack) = pack_tmp
26822 data_tmp = full_data(idata)
26823 pack_tmp = ishft(data_tmp, 44)
26824 pack_tmp = ishft(pack_tmp, -36)
26825 idata = idata + 1
26826 data_tmp = full_data(idata)
26827 data_tmp = ishft(data_tmp, 28)
26828 pack_tmp = ior(pack_tmp, data_tmp)
26829 pack_tmp = ishft(pack_tmp, -8)
26830 idata = idata + 1
26831 data_tmp = full_data(idata)
26832 data_tmp = ishft(data_tmp, 28)
26833 data_tmp = iand(data_tmp, mask_left(8))
26834 pack_tmp = ior(pack_tmp, data_tmp)
26835 ipack = ipack + 1
26836 packed_data(ipack) = pack_tmp
26837 data_tmp = full_data(idata)
26838 pack_tmp = ishft(data_tmp, 36)
26839 pack_tmp = ishft(pack_tmp, -36)
26840 idata = idata + 1
26841 data_tmp = full_data(idata)
26842 data_tmp = ishft(data_tmp, 28)
26843 pack_tmp = ior(pack_tmp, data_tmp)
26844 pack_tmp = ishft(pack_tmp, 0)
26845 idata = idata + 1
26846 data_tmp = full_data(idata)
26847 data_tmp = ishft(data_tmp, 28)
26848 data_tmp = iand(data_tmp, mask_left(0))
26849 pack_tmp = ior(pack_tmp, data_tmp)
26850 ipack = ipack + 1
26851 packed_data(ipack) = pack_tmp
26852 data_tmp = full_data(idata)
26853 pack_tmp = ishft(data_tmp, 28)
26854 pack_tmp = ishft(pack_tmp, -28)
26855 idata = idata + 1
26856 data_tmp = full_data(idata)
26857 data_tmp = ishft(data_tmp, 28)
26858 data_tmp = iand(data_tmp, mask_left(28))
26859 pack_tmp = ior(pack_tmp, data_tmp)
26860 ipack = ipack + 1
26861 packed_data(ipack) = pack_tmp
26862 data_tmp = full_data(idata)
26863 pack_tmp = ishft(data_tmp, 56)
26864 pack_tmp = ishft(pack_tmp, -36)
26865 idata = idata + 1
26866 data_tmp = full_data(idata)
26867 data_tmp = ishft(data_tmp, 28)
26868 pack_tmp = ior(pack_tmp, data_tmp)
26869 pack_tmp = ishft(pack_tmp, -20)
26870 idata = idata + 1
26871 data_tmp = full_data(idata)
26872 data_tmp = ishft(data_tmp, 28)
26873 data_tmp = iand(data_tmp, mask_left(20))
26874 pack_tmp = ior(pack_tmp, data_tmp)
26875 ipack = ipack + 1
26876 packed_data(ipack) = pack_tmp
26877 data_tmp = full_data(idata)
26878 pack_tmp = ishft(data_tmp, 48)
26879 pack_tmp = ishft(pack_tmp, -36)
26880 idata = idata + 1
26881 data_tmp = full_data(idata)
26882 data_tmp = ishft(data_tmp, 28)
26883 pack_tmp = ior(pack_tmp, data_tmp)
26884 pack_tmp = ishft(pack_tmp, -12)
26885 idata = idata + 1
26886 data_tmp = full_data(idata)
26887 data_tmp = ishft(data_tmp, 28)
26888 data_tmp = iand(data_tmp, mask_left(12))
26889 pack_tmp = ior(pack_tmp, data_tmp)
26890 ipack = ipack + 1
26891 packed_data(ipack) = pack_tmp
26892 data_tmp = full_data(idata)
26893 pack_tmp = ishft(data_tmp, 40)
26894 pack_tmp = ishft(pack_tmp, -36)
26895 idata = idata + 1
26896 data_tmp = full_data(idata)
26897 data_tmp = ishft(data_tmp, 28)
26898 pack_tmp = ior(pack_tmp, data_tmp)
26899 pack_tmp = ishft(pack_tmp, -4)
26900 idata = idata + 1
26901 data_tmp = full_data(idata)
26902 data_tmp = ishft(data_tmp, 28)
26903 data_tmp = iand(data_tmp, mask_left(4))
26904 pack_tmp = ior(pack_tmp, data_tmp)
26905 ipack = ipack + 1
26906 packed_data(ipack) = pack_tmp
26907 data_tmp = full_data(idata)
26908 pack_tmp = ishft(data_tmp, 32)
26909 pack_tmp = ishft(pack_tmp, -32)
26910 idata = idata + 1
26911 data_tmp = full_data(idata)
26912 data_tmp = ishft(data_tmp, 28)
26913 data_tmp = iand(data_tmp, mask_left(32))
26914 pack_tmp = ior(pack_tmp, data_tmp)
26915 ipack = ipack + 1
26916 packed_data(ipack) = pack_tmp
26917 data_tmp = full_data(idata)
26918 pack_tmp = ishft(data_tmp, 60)
26919 pack_tmp = ishft(pack_tmp, -36)
26920 idata = idata + 1
26921 data_tmp = full_data(idata)
26922 data_tmp = ishft(data_tmp, 28)
26923 pack_tmp = ior(pack_tmp, data_tmp)
26924 pack_tmp = ishft(pack_tmp, -24)
26925 idata = idata + 1
26926 data_tmp = full_data(idata)
26927 data_tmp = ishft(data_tmp, 28)
26928 data_tmp = iand(data_tmp, mask_left(24))
26929 pack_tmp = ior(pack_tmp, data_tmp)
26930 ipack = ipack + 1
26931 packed_data(ipack) = pack_tmp
26932 data_tmp = full_data(idata)
26933 pack_tmp = ishft(data_tmp, 52)
26934 pack_tmp = ishft(pack_tmp, -36)
26935 idata = idata + 1
26936 data_tmp = full_data(idata)
26937 data_tmp = ishft(data_tmp, 28)
26938 pack_tmp = ior(pack_tmp, data_tmp)
26939 pack_tmp = ishft(pack_tmp, -16)
26940 idata = idata + 1
26941 data_tmp = full_data(idata)
26942 data_tmp = ishft(data_tmp, 28)
26943 data_tmp = iand(data_tmp, mask_left(16))
26944 pack_tmp = ior(pack_tmp, data_tmp)
26945 ipack = ipack + 1
26946 packed_data(ipack) = pack_tmp
26947 data_tmp = full_data(idata)
26948 pack_tmp = ishft(data_tmp, 44)
26949 pack_tmp = ishft(pack_tmp, -36)
26950 idata = idata + 1
26951 data_tmp = full_data(idata)
26952 data_tmp = ishft(data_tmp, 28)
26953 pack_tmp = ior(pack_tmp, data_tmp)
26954 pack_tmp = ishft(pack_tmp, -8)
26955 idata = idata + 1
26956 data_tmp = full_data(idata)
26957 data_tmp = ishft(data_tmp, 28)
26958 data_tmp = iand(data_tmp, mask_left(8))
26959 pack_tmp = ior(pack_tmp, data_tmp)
26960 ipack = ipack + 1
26961 packed_data(ipack) = pack_tmp
26962 data_tmp = full_data(idata)
26963 pack_tmp = ishft(data_tmp, 36)
26964 pack_tmp = ishft(pack_tmp, -36)
26965 idata = idata + 1
26966 data_tmp = full_data(idata)
26967 data_tmp = ishft(data_tmp, 28)
26968 pack_tmp = ior(pack_tmp, data_tmp)
26969 pack_tmp = ishft(pack_tmp, 0)
26970 idata = idata + 1
26971 data_tmp = full_data(idata)
26972 data_tmp = ishft(data_tmp, 28)
26973 data_tmp = iand(data_tmp, mask_left(0))
26974 pack_tmp = ior(pack_tmp, data_tmp)
26975 ipack = ipack + 1
26976 packed_data(ipack) = pack_tmp
26977 data_tmp = full_data(idata)
26978 pack_tmp = ishft(data_tmp, 28)
26979 pack_tmp = ishft(pack_tmp, -28)
26980 idata = idata + 1
26981 data_tmp = full_data(idata)
26982 data_tmp = ishft(data_tmp, 28)
26983 data_tmp = iand(data_tmp, mask_left(28))
26984 pack_tmp = ior(pack_tmp, data_tmp)
26985 ipack = ipack + 1
26986 packed_data(ipack) = pack_tmp
26987 data_tmp = full_data(idata)
26988 pack_tmp = ishft(data_tmp, 56)
26989 pack_tmp = ishft(pack_tmp, -36)
26990 idata = idata + 1
26991 data_tmp = full_data(idata)
26992 data_tmp = ishft(data_tmp, 28)
26993 pack_tmp = ior(pack_tmp, data_tmp)
26994 pack_tmp = ishft(pack_tmp, -20)
26995 idata = idata + 1
26996 data_tmp = full_data(idata)
26997 data_tmp = ishft(data_tmp, 28)
26998 data_tmp = iand(data_tmp, mask_left(20))
26999 pack_tmp = ior(pack_tmp, data_tmp)
27000 ipack = ipack + 1
27001 packed_data(ipack) = pack_tmp
27002 data_tmp = full_data(idata)
27003 pack_tmp = ishft(data_tmp, 48)
27004 pack_tmp = ishft(pack_tmp, -36)
27005 idata = idata + 1
27006 data_tmp = full_data(idata)
27007 data_tmp = ishft(data_tmp, 28)
27008 pack_tmp = ior(pack_tmp, data_tmp)
27009 pack_tmp = ishft(pack_tmp, -12)
27010 idata = idata + 1
27011 data_tmp = full_data(idata)
27012 data_tmp = ishft(data_tmp, 28)
27013 data_tmp = iand(data_tmp, mask_left(12))
27014 pack_tmp = ior(pack_tmp, data_tmp)
27015 ipack = ipack + 1
27016 packed_data(ipack) = pack_tmp
27017 data_tmp = full_data(idata)
27018 pack_tmp = ishft(data_tmp, 40)
27019 pack_tmp = ishft(pack_tmp, -36)
27020 idata = idata + 1
27021 data_tmp = full_data(idata)
27022 data_tmp = ishft(data_tmp, 28)
27023 pack_tmp = ior(pack_tmp, data_tmp)
27024 pack_tmp = ishft(pack_tmp, -4)
27025 idata = idata + 1
27026 data_tmp = full_data(idata)
27027 data_tmp = ishft(data_tmp, 28)
27028 data_tmp = iand(data_tmp, mask_left(4))
27029 pack_tmp = ior(pack_tmp, data_tmp)
27030 ipack = ipack + 1
27031 packed_data(ipack) = pack_tmp
27032 data_tmp = full_data(idata)
27033 pack_tmp = ishft(data_tmp, 32)
27034 pack_tmp = ishft(pack_tmp, -32)
27035 idata = idata + 1
27036 data_tmp = full_data(idata)
27037 data_tmp = ishft(data_tmp, 28)
27038 data_tmp = iand(data_tmp, mask_left(32))
27039 pack_tmp = ior(pack_tmp, data_tmp)
27040 ipack = ipack + 1
27041 packed_data(ipack) = pack_tmp
27042 data_tmp = full_data(idata)
27043 pack_tmp = ishft(data_tmp, 60)
27044 pack_tmp = ishft(pack_tmp, -36)
27045 idata = idata + 1
27046 data_tmp = full_data(idata)
27047 data_tmp = ishft(data_tmp, 28)
27048 pack_tmp = ior(pack_tmp, data_tmp)
27049 pack_tmp = ishft(pack_tmp, -24)
27050 idata = idata + 1
27051 data_tmp = full_data(idata)
27052 data_tmp = ishft(data_tmp, 28)
27053 data_tmp = iand(data_tmp, mask_left(24))
27054 pack_tmp = ior(pack_tmp, data_tmp)
27055 ipack = ipack + 1
27056 packed_data(ipack) = pack_tmp
27057 data_tmp = full_data(idata)
27058 pack_tmp = ishft(data_tmp, 52)
27059 pack_tmp = ishft(pack_tmp, -36)
27060 idata = idata + 1
27061 data_tmp = full_data(idata)
27062 data_tmp = ishft(data_tmp, 28)
27063 pack_tmp = ior(pack_tmp, data_tmp)
27064 pack_tmp = ishft(pack_tmp, -16)
27065 idata = idata + 1
27066 data_tmp = full_data(idata)
27067 data_tmp = ishft(data_tmp, 28)
27068 data_tmp = iand(data_tmp, mask_left(16))
27069 pack_tmp = ior(pack_tmp, data_tmp)
27070 ipack = ipack + 1
27071 packed_data(ipack) = pack_tmp
27072 data_tmp = full_data(idata)
27073 pack_tmp = ishft(data_tmp, 44)
27074 pack_tmp = ishft(pack_tmp, -36)
27075 idata = idata + 1
27076 data_tmp = full_data(idata)
27077 data_tmp = ishft(data_tmp, 28)
27078 pack_tmp = ior(pack_tmp, data_tmp)
27079 pack_tmp = ishft(pack_tmp, -8)
27080 idata = idata + 1
27081 data_tmp = full_data(idata)
27082 data_tmp = ishft(data_tmp, 28)
27083 data_tmp = iand(data_tmp, mask_left(8))
27084 pack_tmp = ior(pack_tmp, data_tmp)
27085 ipack = ipack + 1
27086 packed_data(ipack) = pack_tmp
27087 data_tmp = full_data(idata)
27088 pack_tmp = ishft(data_tmp, 36)
27089 pack_tmp = ishft(pack_tmp, -36)
27090 idata = idata + 1
27091 data_tmp = full_data(idata)
27092 data_tmp = ishft(data_tmp, 28)
27093 pack_tmp = ior(pack_tmp, data_tmp)
27094 pack_tmp = ishft(pack_tmp, 0)
27095 pack_tmp = ishft(pack_tmp, 0)
27096 ipack = ipack + 1
27097 packed_data(ipack) = pack_tmp
27098 END DO
27099 IF (ndata_rep < ndata) THEN
27100 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
27101 END IF
27102 END SUBROUTINE ints2bits_36
27103
27104! **************************************************************************************************
27105!> \brief ...
27106!> \param Ndata ...
27107!> \param packed_data ...
27108!> \param full_data ...
27109! **************************************************************************************************
27110 SUBROUTINE bits2ints_36(Ndata, packed_data, full_data)
27111 INTEGER, INTENT(IN) :: Ndata
27112 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
27113 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
27114
27115 INTEGER, PARAMETER :: Nbits = 36
27116
27117 INTEGER :: idata, ipack, kdata, Ndata_rep
27118 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
27119
27120 ipack = 0
27121 idata = 0
27122 pack_tmp = 0
27123 ndata_rep = (ndata/64)*64
27124 DO kdata = 1, ndata_rep, 64
27125 idata = idata + 1
27126 data_tmp = ishft(pack_tmp, 36)
27127 ipack = ipack + 1
27128 pack_tmp = packed_data(ipack)
27129 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
27130 pack_tmp = ishft(pack_tmp, -36)
27131 idata = idata + 1
27132 data_tmp = ishft(pack_tmp, 8)
27133 ipack = ipack + 1
27134 pack_tmp = packed_data(ipack)
27135 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
27136 pack_tmp = ishft(pack_tmp, -8)
27137 idata = idata + 1
27138 data_tmp = iand(pack_tmp, mask_right(nbits))
27139 full_data(idata) = data_tmp
27140 pack_tmp = ishft(pack_tmp, -nbits)
27141 idata = idata + 1
27142 data_tmp = ishft(pack_tmp, 16)
27143 ipack = ipack + 1
27144 pack_tmp = packed_data(ipack)
27145 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
27146 pack_tmp = ishft(pack_tmp, -16)
27147 idata = idata + 1
27148 data_tmp = iand(pack_tmp, mask_right(nbits))
27149 full_data(idata) = data_tmp
27150 pack_tmp = ishft(pack_tmp, -nbits)
27151 idata = idata + 1
27152 data_tmp = ishft(pack_tmp, 24)
27153 ipack = ipack + 1
27154 pack_tmp = packed_data(ipack)
27155 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
27156 pack_tmp = ishft(pack_tmp, -24)
27157 idata = idata + 1
27158 data_tmp = iand(pack_tmp, mask_right(nbits))
27159 full_data(idata) = data_tmp
27160 pack_tmp = ishft(pack_tmp, -nbits)
27161 idata = idata + 1
27162 data_tmp = ishft(pack_tmp, 32)
27163 ipack = ipack + 1
27164 pack_tmp = packed_data(ipack)
27165 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
27166 pack_tmp = ishft(pack_tmp, -32)
27167 idata = idata + 1
27168 data_tmp = ishft(pack_tmp, 4)
27169 ipack = ipack + 1
27170 pack_tmp = packed_data(ipack)
27171 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
27172 pack_tmp = ishft(pack_tmp, -4)
27173 idata = idata + 1
27174 data_tmp = iand(pack_tmp, mask_right(nbits))
27175 full_data(idata) = data_tmp
27176 pack_tmp = ishft(pack_tmp, -nbits)
27177 idata = idata + 1
27178 data_tmp = ishft(pack_tmp, 12)
27179 ipack = ipack + 1
27180 pack_tmp = packed_data(ipack)
27181 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
27182 pack_tmp = ishft(pack_tmp, -12)
27183 idata = idata + 1
27184 data_tmp = iand(pack_tmp, mask_right(nbits))
27185 full_data(idata) = data_tmp
27186 pack_tmp = ishft(pack_tmp, -nbits)
27187 idata = idata + 1
27188 data_tmp = ishft(pack_tmp, 20)
27189 ipack = ipack + 1
27190 pack_tmp = packed_data(ipack)
27191 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
27192 pack_tmp = ishft(pack_tmp, -20)
27193 idata = idata + 1
27194 data_tmp = iand(pack_tmp, mask_right(nbits))
27195 full_data(idata) = data_tmp
27196 pack_tmp = ishft(pack_tmp, -nbits)
27197 idata = idata + 1
27198 data_tmp = ishft(pack_tmp, 28)
27199 ipack = ipack + 1
27200 pack_tmp = packed_data(ipack)
27201 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
27202 pack_tmp = ishft(pack_tmp, -28)
27203 idata = idata + 1
27204 data_tmp = iand(pack_tmp, mask_right(nbits))
27205 full_data(idata) = data_tmp
27206 pack_tmp = ishft(pack_tmp, -nbits)
27207 idata = idata + 1
27208 data_tmp = ishft(pack_tmp, 36)
27209 ipack = ipack + 1
27210 pack_tmp = packed_data(ipack)
27211 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
27212 pack_tmp = ishft(pack_tmp, -36)
27213 idata = idata + 1
27214 data_tmp = ishft(pack_tmp, 8)
27215 ipack = ipack + 1
27216 pack_tmp = packed_data(ipack)
27217 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
27218 pack_tmp = ishft(pack_tmp, -8)
27219 idata = idata + 1
27220 data_tmp = iand(pack_tmp, mask_right(nbits))
27221 full_data(idata) = data_tmp
27222 pack_tmp = ishft(pack_tmp, -nbits)
27223 idata = idata + 1
27224 data_tmp = ishft(pack_tmp, 16)
27225 ipack = ipack + 1
27226 pack_tmp = packed_data(ipack)
27227 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
27228 pack_tmp = ishft(pack_tmp, -16)
27229 idata = idata + 1
27230 data_tmp = iand(pack_tmp, mask_right(nbits))
27231 full_data(idata) = data_tmp
27232 pack_tmp = ishft(pack_tmp, -nbits)
27233 idata = idata + 1
27234 data_tmp = ishft(pack_tmp, 24)
27235 ipack = ipack + 1
27236 pack_tmp = packed_data(ipack)
27237 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
27238 pack_tmp = ishft(pack_tmp, -24)
27239 idata = idata + 1
27240 data_tmp = iand(pack_tmp, mask_right(nbits))
27241 full_data(idata) = data_tmp
27242 pack_tmp = ishft(pack_tmp, -nbits)
27243 idata = idata + 1
27244 data_tmp = ishft(pack_tmp, 32)
27245 ipack = ipack + 1
27246 pack_tmp = packed_data(ipack)
27247 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
27248 pack_tmp = ishft(pack_tmp, -32)
27249 idata = idata + 1
27250 data_tmp = ishft(pack_tmp, 4)
27251 ipack = ipack + 1
27252 pack_tmp = packed_data(ipack)
27253 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
27254 pack_tmp = ishft(pack_tmp, -4)
27255 idata = idata + 1
27256 data_tmp = iand(pack_tmp, mask_right(nbits))
27257 full_data(idata) = data_tmp
27258 pack_tmp = ishft(pack_tmp, -nbits)
27259 idata = idata + 1
27260 data_tmp = ishft(pack_tmp, 12)
27261 ipack = ipack + 1
27262 pack_tmp = packed_data(ipack)
27263 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
27264 pack_tmp = ishft(pack_tmp, -12)
27265 idata = idata + 1
27266 data_tmp = iand(pack_tmp, mask_right(nbits))
27267 full_data(idata) = data_tmp
27268 pack_tmp = ishft(pack_tmp, -nbits)
27269 idata = idata + 1
27270 data_tmp = ishft(pack_tmp, 20)
27271 ipack = ipack + 1
27272 pack_tmp = packed_data(ipack)
27273 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
27274 pack_tmp = ishft(pack_tmp, -20)
27275 idata = idata + 1
27276 data_tmp = iand(pack_tmp, mask_right(nbits))
27277 full_data(idata) = data_tmp
27278 pack_tmp = ishft(pack_tmp, -nbits)
27279 idata = idata + 1
27280 data_tmp = ishft(pack_tmp, 28)
27281 ipack = ipack + 1
27282 pack_tmp = packed_data(ipack)
27283 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
27284 pack_tmp = ishft(pack_tmp, -28)
27285 idata = idata + 1
27286 data_tmp = iand(pack_tmp, mask_right(nbits))
27287 full_data(idata) = data_tmp
27288 pack_tmp = ishft(pack_tmp, -nbits)
27289 idata = idata + 1
27290 data_tmp = ishft(pack_tmp, 36)
27291 ipack = ipack + 1
27292 pack_tmp = packed_data(ipack)
27293 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
27294 pack_tmp = ishft(pack_tmp, -36)
27295 idata = idata + 1
27296 data_tmp = ishft(pack_tmp, 8)
27297 ipack = ipack + 1
27298 pack_tmp = packed_data(ipack)
27299 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
27300 pack_tmp = ishft(pack_tmp, -8)
27301 idata = idata + 1
27302 data_tmp = iand(pack_tmp, mask_right(nbits))
27303 full_data(idata) = data_tmp
27304 pack_tmp = ishft(pack_tmp, -nbits)
27305 idata = idata + 1
27306 data_tmp = ishft(pack_tmp, 16)
27307 ipack = ipack + 1
27308 pack_tmp = packed_data(ipack)
27309 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
27310 pack_tmp = ishft(pack_tmp, -16)
27311 idata = idata + 1
27312 data_tmp = iand(pack_tmp, mask_right(nbits))
27313 full_data(idata) = data_tmp
27314 pack_tmp = ishft(pack_tmp, -nbits)
27315 idata = idata + 1
27316 data_tmp = ishft(pack_tmp, 24)
27317 ipack = ipack + 1
27318 pack_tmp = packed_data(ipack)
27319 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
27320 pack_tmp = ishft(pack_tmp, -24)
27321 idata = idata + 1
27322 data_tmp = iand(pack_tmp, mask_right(nbits))
27323 full_data(idata) = data_tmp
27324 pack_tmp = ishft(pack_tmp, -nbits)
27325 idata = idata + 1
27326 data_tmp = ishft(pack_tmp, 32)
27327 ipack = ipack + 1
27328 pack_tmp = packed_data(ipack)
27329 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
27330 pack_tmp = ishft(pack_tmp, -32)
27331 idata = idata + 1
27332 data_tmp = ishft(pack_tmp, 4)
27333 ipack = ipack + 1
27334 pack_tmp = packed_data(ipack)
27335 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
27336 pack_tmp = ishft(pack_tmp, -4)
27337 idata = idata + 1
27338 data_tmp = iand(pack_tmp, mask_right(nbits))
27339 full_data(idata) = data_tmp
27340 pack_tmp = ishft(pack_tmp, -nbits)
27341 idata = idata + 1
27342 data_tmp = ishft(pack_tmp, 12)
27343 ipack = ipack + 1
27344 pack_tmp = packed_data(ipack)
27345 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
27346 pack_tmp = ishft(pack_tmp, -12)
27347 idata = idata + 1
27348 data_tmp = iand(pack_tmp, mask_right(nbits))
27349 full_data(idata) = data_tmp
27350 pack_tmp = ishft(pack_tmp, -nbits)
27351 idata = idata + 1
27352 data_tmp = ishft(pack_tmp, 20)
27353 ipack = ipack + 1
27354 pack_tmp = packed_data(ipack)
27355 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
27356 pack_tmp = ishft(pack_tmp, -20)
27357 idata = idata + 1
27358 data_tmp = iand(pack_tmp, mask_right(nbits))
27359 full_data(idata) = data_tmp
27360 pack_tmp = ishft(pack_tmp, -nbits)
27361 idata = idata + 1
27362 data_tmp = ishft(pack_tmp, 28)
27363 ipack = ipack + 1
27364 pack_tmp = packed_data(ipack)
27365 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
27366 pack_tmp = ishft(pack_tmp, -28)
27367 idata = idata + 1
27368 data_tmp = iand(pack_tmp, mask_right(nbits))
27369 full_data(idata) = data_tmp
27370 pack_tmp = ishft(pack_tmp, -nbits)
27371 idata = idata + 1
27372 data_tmp = ishft(pack_tmp, 36)
27373 ipack = ipack + 1
27374 pack_tmp = packed_data(ipack)
27375 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
27376 pack_tmp = ishft(pack_tmp, -36)
27377 idata = idata + 1
27378 data_tmp = ishft(pack_tmp, 8)
27379 ipack = ipack + 1
27380 pack_tmp = packed_data(ipack)
27381 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
27382 pack_tmp = ishft(pack_tmp, -8)
27383 idata = idata + 1
27384 data_tmp = iand(pack_tmp, mask_right(nbits))
27385 full_data(idata) = data_tmp
27386 pack_tmp = ishft(pack_tmp, -nbits)
27387 idata = idata + 1
27388 data_tmp = ishft(pack_tmp, 16)
27389 ipack = ipack + 1
27390 pack_tmp = packed_data(ipack)
27391 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
27392 pack_tmp = ishft(pack_tmp, -16)
27393 idata = idata + 1
27394 data_tmp = iand(pack_tmp, mask_right(nbits))
27395 full_data(idata) = data_tmp
27396 pack_tmp = ishft(pack_tmp, -nbits)
27397 idata = idata + 1
27398 data_tmp = ishft(pack_tmp, 24)
27399 ipack = ipack + 1
27400 pack_tmp = packed_data(ipack)
27401 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
27402 pack_tmp = ishft(pack_tmp, -24)
27403 idata = idata + 1
27404 data_tmp = iand(pack_tmp, mask_right(nbits))
27405 full_data(idata) = data_tmp
27406 pack_tmp = ishft(pack_tmp, -nbits)
27407 idata = idata + 1
27408 data_tmp = ishft(pack_tmp, 32)
27409 ipack = ipack + 1
27410 pack_tmp = packed_data(ipack)
27411 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
27412 pack_tmp = ishft(pack_tmp, -32)
27413 idata = idata + 1
27414 data_tmp = ishft(pack_tmp, 4)
27415 ipack = ipack + 1
27416 pack_tmp = packed_data(ipack)
27417 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
27418 pack_tmp = ishft(pack_tmp, -4)
27419 idata = idata + 1
27420 data_tmp = iand(pack_tmp, mask_right(nbits))
27421 full_data(idata) = data_tmp
27422 pack_tmp = ishft(pack_tmp, -nbits)
27423 idata = idata + 1
27424 data_tmp = ishft(pack_tmp, 12)
27425 ipack = ipack + 1
27426 pack_tmp = packed_data(ipack)
27427 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
27428 pack_tmp = ishft(pack_tmp, -12)
27429 idata = idata + 1
27430 data_tmp = iand(pack_tmp, mask_right(nbits))
27431 full_data(idata) = data_tmp
27432 pack_tmp = ishft(pack_tmp, -nbits)
27433 idata = idata + 1
27434 data_tmp = ishft(pack_tmp, 20)
27435 ipack = ipack + 1
27436 pack_tmp = packed_data(ipack)
27437 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
27438 pack_tmp = ishft(pack_tmp, -20)
27439 idata = idata + 1
27440 data_tmp = iand(pack_tmp, mask_right(nbits))
27441 full_data(idata) = data_tmp
27442 pack_tmp = ishft(pack_tmp, -nbits)
27443 idata = idata + 1
27444 data_tmp = ishft(pack_tmp, 28)
27445 ipack = ipack + 1
27446 pack_tmp = packed_data(ipack)
27447 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
27448 pack_tmp = ishft(pack_tmp, -28)
27449 idata = idata + 1
27450 data_tmp = iand(pack_tmp, mask_right(nbits))
27451 full_data(idata) = data_tmp
27452 pack_tmp = ishft(pack_tmp, -nbits)
27453 END DO
27454 IF (ndata_rep < ndata) THEN
27455 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
27456 END IF
27457 END SUBROUTINE bits2ints_36
27458
27459! **************************************************************************************************
27460!> \brief ...
27461!> \param Ndata ...
27462!> \param packed_data ...
27463!> \param full_data ...
27464! **************************************************************************************************
27465 SUBROUTINE ints2bits_37(Ndata, packed_data, full_data)
27466 INTEGER, INTENT(IN) :: Ndata
27467 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
27468 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
27469
27470 INTEGER, PARAMETER :: Nbits = 37
27471
27472 INTEGER :: idata, ipack, kdata, Ndata_rep
27473 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
27474
27475 idata = 0
27476 ipack = 0
27477 ndata_rep = (ndata/64)*64
27478 DO kdata = 1, ndata_rep, 64
27479 pack_tmp = 0
27480 idata = idata + 1
27481 data_tmp = full_data(idata)
27482 data_tmp = ishft(data_tmp, 27)
27483 pack_tmp = ior(pack_tmp, data_tmp)
27484 pack_tmp = ishft(pack_tmp, -27)
27485 idata = idata + 1
27486 data_tmp = full_data(idata)
27487 data_tmp = ishft(data_tmp, 27)
27488 data_tmp = iand(data_tmp, mask_left(27))
27489 pack_tmp = ior(pack_tmp, data_tmp)
27490 ipack = ipack + 1
27491 packed_data(ipack) = pack_tmp
27492 data_tmp = full_data(idata)
27493 pack_tmp = ishft(data_tmp, 54)
27494 pack_tmp = ishft(pack_tmp, -37)
27495 idata = idata + 1
27496 data_tmp = full_data(idata)
27497 data_tmp = ishft(data_tmp, 27)
27498 pack_tmp = ior(pack_tmp, data_tmp)
27499 pack_tmp = ishft(pack_tmp, -17)
27500 idata = idata + 1
27501 data_tmp = full_data(idata)
27502 data_tmp = ishft(data_tmp, 27)
27503 data_tmp = iand(data_tmp, mask_left(17))
27504 pack_tmp = ior(pack_tmp, data_tmp)
27505 ipack = ipack + 1
27506 packed_data(ipack) = pack_tmp
27507 data_tmp = full_data(idata)
27508 pack_tmp = ishft(data_tmp, 44)
27509 pack_tmp = ishft(pack_tmp, -37)
27510 idata = idata + 1
27511 data_tmp = full_data(idata)
27512 data_tmp = ishft(data_tmp, 27)
27513 pack_tmp = ior(pack_tmp, data_tmp)
27514 pack_tmp = ishft(pack_tmp, -7)
27515 idata = idata + 1
27516 data_tmp = full_data(idata)
27517 data_tmp = ishft(data_tmp, 27)
27518 data_tmp = iand(data_tmp, mask_left(7))
27519 pack_tmp = ior(pack_tmp, data_tmp)
27520 ipack = ipack + 1
27521 packed_data(ipack) = pack_tmp
27522 data_tmp = full_data(idata)
27523 pack_tmp = ishft(data_tmp, 34)
27524 pack_tmp = ishft(pack_tmp, -34)
27525 idata = idata + 1
27526 data_tmp = full_data(idata)
27527 data_tmp = ishft(data_tmp, 27)
27528 data_tmp = iand(data_tmp, mask_left(34))
27529 pack_tmp = ior(pack_tmp, data_tmp)
27530 ipack = ipack + 1
27531 packed_data(ipack) = pack_tmp
27532 data_tmp = full_data(idata)
27533 pack_tmp = ishft(data_tmp, 61)
27534 pack_tmp = ishft(pack_tmp, -37)
27535 idata = idata + 1
27536 data_tmp = full_data(idata)
27537 data_tmp = ishft(data_tmp, 27)
27538 pack_tmp = ior(pack_tmp, data_tmp)
27539 pack_tmp = ishft(pack_tmp, -24)
27540 idata = idata + 1
27541 data_tmp = full_data(idata)
27542 data_tmp = ishft(data_tmp, 27)
27543 data_tmp = iand(data_tmp, mask_left(24))
27544 pack_tmp = ior(pack_tmp, data_tmp)
27545 ipack = ipack + 1
27546 packed_data(ipack) = pack_tmp
27547 data_tmp = full_data(idata)
27548 pack_tmp = ishft(data_tmp, 51)
27549 pack_tmp = ishft(pack_tmp, -37)
27550 idata = idata + 1
27551 data_tmp = full_data(idata)
27552 data_tmp = ishft(data_tmp, 27)
27553 pack_tmp = ior(pack_tmp, data_tmp)
27554 pack_tmp = ishft(pack_tmp, -14)
27555 idata = idata + 1
27556 data_tmp = full_data(idata)
27557 data_tmp = ishft(data_tmp, 27)
27558 data_tmp = iand(data_tmp, mask_left(14))
27559 pack_tmp = ior(pack_tmp, data_tmp)
27560 ipack = ipack + 1
27561 packed_data(ipack) = pack_tmp
27562 data_tmp = full_data(idata)
27563 pack_tmp = ishft(data_tmp, 41)
27564 pack_tmp = ishft(pack_tmp, -37)
27565 idata = idata + 1
27566 data_tmp = full_data(idata)
27567 data_tmp = ishft(data_tmp, 27)
27568 pack_tmp = ior(pack_tmp, data_tmp)
27569 pack_tmp = ishft(pack_tmp, -4)
27570 idata = idata + 1
27571 data_tmp = full_data(idata)
27572 data_tmp = ishft(data_tmp, 27)
27573 data_tmp = iand(data_tmp, mask_left(4))
27574 pack_tmp = ior(pack_tmp, data_tmp)
27575 ipack = ipack + 1
27576 packed_data(ipack) = pack_tmp
27577 data_tmp = full_data(idata)
27578 pack_tmp = ishft(data_tmp, 31)
27579 pack_tmp = ishft(pack_tmp, -31)
27580 idata = idata + 1
27581 data_tmp = full_data(idata)
27582 data_tmp = ishft(data_tmp, 27)
27583 data_tmp = iand(data_tmp, mask_left(31))
27584 pack_tmp = ior(pack_tmp, data_tmp)
27585 ipack = ipack + 1
27586 packed_data(ipack) = pack_tmp
27587 data_tmp = full_data(idata)
27588 pack_tmp = ishft(data_tmp, 58)
27589 pack_tmp = ishft(pack_tmp, -37)
27590 idata = idata + 1
27591 data_tmp = full_data(idata)
27592 data_tmp = ishft(data_tmp, 27)
27593 pack_tmp = ior(pack_tmp, data_tmp)
27594 pack_tmp = ishft(pack_tmp, -21)
27595 idata = idata + 1
27596 data_tmp = full_data(idata)
27597 data_tmp = ishft(data_tmp, 27)
27598 data_tmp = iand(data_tmp, mask_left(21))
27599 pack_tmp = ior(pack_tmp, data_tmp)
27600 ipack = ipack + 1
27601 packed_data(ipack) = pack_tmp
27602 data_tmp = full_data(idata)
27603 pack_tmp = ishft(data_tmp, 48)
27604 pack_tmp = ishft(pack_tmp, -37)
27605 idata = idata + 1
27606 data_tmp = full_data(idata)
27607 data_tmp = ishft(data_tmp, 27)
27608 pack_tmp = ior(pack_tmp, data_tmp)
27609 pack_tmp = ishft(pack_tmp, -11)
27610 idata = idata + 1
27611 data_tmp = full_data(idata)
27612 data_tmp = ishft(data_tmp, 27)
27613 data_tmp = iand(data_tmp, mask_left(11))
27614 pack_tmp = ior(pack_tmp, data_tmp)
27615 ipack = ipack + 1
27616 packed_data(ipack) = pack_tmp
27617 data_tmp = full_data(idata)
27618 pack_tmp = ishft(data_tmp, 38)
27619 pack_tmp = ishft(pack_tmp, -37)
27620 idata = idata + 1
27621 data_tmp = full_data(idata)
27622 data_tmp = ishft(data_tmp, 27)
27623 pack_tmp = ior(pack_tmp, data_tmp)
27624 pack_tmp = ishft(pack_tmp, -1)
27625 idata = idata + 1
27626 data_tmp = full_data(idata)
27627 data_tmp = ishft(data_tmp, 27)
27628 data_tmp = iand(data_tmp, mask_left(1))
27629 pack_tmp = ior(pack_tmp, data_tmp)
27630 ipack = ipack + 1
27631 packed_data(ipack) = pack_tmp
27632 data_tmp = full_data(idata)
27633 pack_tmp = ishft(data_tmp, 28)
27634 pack_tmp = ishft(pack_tmp, -28)
27635 idata = idata + 1
27636 data_tmp = full_data(idata)
27637 data_tmp = ishft(data_tmp, 27)
27638 data_tmp = iand(data_tmp, mask_left(28))
27639 pack_tmp = ior(pack_tmp, data_tmp)
27640 ipack = ipack + 1
27641 packed_data(ipack) = pack_tmp
27642 data_tmp = full_data(idata)
27643 pack_tmp = ishft(data_tmp, 55)
27644 pack_tmp = ishft(pack_tmp, -37)
27645 idata = idata + 1
27646 data_tmp = full_data(idata)
27647 data_tmp = ishft(data_tmp, 27)
27648 pack_tmp = ior(pack_tmp, data_tmp)
27649 pack_tmp = ishft(pack_tmp, -18)
27650 idata = idata + 1
27651 data_tmp = full_data(idata)
27652 data_tmp = ishft(data_tmp, 27)
27653 data_tmp = iand(data_tmp, mask_left(18))
27654 pack_tmp = ior(pack_tmp, data_tmp)
27655 ipack = ipack + 1
27656 packed_data(ipack) = pack_tmp
27657 data_tmp = full_data(idata)
27658 pack_tmp = ishft(data_tmp, 45)
27659 pack_tmp = ishft(pack_tmp, -37)
27660 idata = idata + 1
27661 data_tmp = full_data(idata)
27662 data_tmp = ishft(data_tmp, 27)
27663 pack_tmp = ior(pack_tmp, data_tmp)
27664 pack_tmp = ishft(pack_tmp, -8)
27665 idata = idata + 1
27666 data_tmp = full_data(idata)
27667 data_tmp = ishft(data_tmp, 27)
27668 data_tmp = iand(data_tmp, mask_left(8))
27669 pack_tmp = ior(pack_tmp, data_tmp)
27670 ipack = ipack + 1
27671 packed_data(ipack) = pack_tmp
27672 data_tmp = full_data(idata)
27673 pack_tmp = ishft(data_tmp, 35)
27674 pack_tmp = ishft(pack_tmp, -35)
27675 idata = idata + 1
27676 data_tmp = full_data(idata)
27677 data_tmp = ishft(data_tmp, 27)
27678 data_tmp = iand(data_tmp, mask_left(35))
27679 pack_tmp = ior(pack_tmp, data_tmp)
27680 ipack = ipack + 1
27681 packed_data(ipack) = pack_tmp
27682 data_tmp = full_data(idata)
27683 pack_tmp = ishft(data_tmp, 62)
27684 pack_tmp = ishft(pack_tmp, -37)
27685 idata = idata + 1
27686 data_tmp = full_data(idata)
27687 data_tmp = ishft(data_tmp, 27)
27688 pack_tmp = ior(pack_tmp, data_tmp)
27689 pack_tmp = ishft(pack_tmp, -25)
27690 idata = idata + 1
27691 data_tmp = full_data(idata)
27692 data_tmp = ishft(data_tmp, 27)
27693 data_tmp = iand(data_tmp, mask_left(25))
27694 pack_tmp = ior(pack_tmp, data_tmp)
27695 ipack = ipack + 1
27696 packed_data(ipack) = pack_tmp
27697 data_tmp = full_data(idata)
27698 pack_tmp = ishft(data_tmp, 52)
27699 pack_tmp = ishft(pack_tmp, -37)
27700 idata = idata + 1
27701 data_tmp = full_data(idata)
27702 data_tmp = ishft(data_tmp, 27)
27703 pack_tmp = ior(pack_tmp, data_tmp)
27704 pack_tmp = ishft(pack_tmp, -15)
27705 idata = idata + 1
27706 data_tmp = full_data(idata)
27707 data_tmp = ishft(data_tmp, 27)
27708 data_tmp = iand(data_tmp, mask_left(15))
27709 pack_tmp = ior(pack_tmp, data_tmp)
27710 ipack = ipack + 1
27711 packed_data(ipack) = pack_tmp
27712 data_tmp = full_data(idata)
27713 pack_tmp = ishft(data_tmp, 42)
27714 pack_tmp = ishft(pack_tmp, -37)
27715 idata = idata + 1
27716 data_tmp = full_data(idata)
27717 data_tmp = ishft(data_tmp, 27)
27718 pack_tmp = ior(pack_tmp, data_tmp)
27719 pack_tmp = ishft(pack_tmp, -5)
27720 idata = idata + 1
27721 data_tmp = full_data(idata)
27722 data_tmp = ishft(data_tmp, 27)
27723 data_tmp = iand(data_tmp, mask_left(5))
27724 pack_tmp = ior(pack_tmp, data_tmp)
27725 ipack = ipack + 1
27726 packed_data(ipack) = pack_tmp
27727 data_tmp = full_data(idata)
27728 pack_tmp = ishft(data_tmp, 32)
27729 pack_tmp = ishft(pack_tmp, -32)
27730 idata = idata + 1
27731 data_tmp = full_data(idata)
27732 data_tmp = ishft(data_tmp, 27)
27733 data_tmp = iand(data_tmp, mask_left(32))
27734 pack_tmp = ior(pack_tmp, data_tmp)
27735 ipack = ipack + 1
27736 packed_data(ipack) = pack_tmp
27737 data_tmp = full_data(idata)
27738 pack_tmp = ishft(data_tmp, 59)
27739 pack_tmp = ishft(pack_tmp, -37)
27740 idata = idata + 1
27741 data_tmp = full_data(idata)
27742 data_tmp = ishft(data_tmp, 27)
27743 pack_tmp = ior(pack_tmp, data_tmp)
27744 pack_tmp = ishft(pack_tmp, -22)
27745 idata = idata + 1
27746 data_tmp = full_data(idata)
27747 data_tmp = ishft(data_tmp, 27)
27748 data_tmp = iand(data_tmp, mask_left(22))
27749 pack_tmp = ior(pack_tmp, data_tmp)
27750 ipack = ipack + 1
27751 packed_data(ipack) = pack_tmp
27752 data_tmp = full_data(idata)
27753 pack_tmp = ishft(data_tmp, 49)
27754 pack_tmp = ishft(pack_tmp, -37)
27755 idata = idata + 1
27756 data_tmp = full_data(idata)
27757 data_tmp = ishft(data_tmp, 27)
27758 pack_tmp = ior(pack_tmp, data_tmp)
27759 pack_tmp = ishft(pack_tmp, -12)
27760 idata = idata + 1
27761 data_tmp = full_data(idata)
27762 data_tmp = ishft(data_tmp, 27)
27763 data_tmp = iand(data_tmp, mask_left(12))
27764 pack_tmp = ior(pack_tmp, data_tmp)
27765 ipack = ipack + 1
27766 packed_data(ipack) = pack_tmp
27767 data_tmp = full_data(idata)
27768 pack_tmp = ishft(data_tmp, 39)
27769 pack_tmp = ishft(pack_tmp, -37)
27770 idata = idata + 1
27771 data_tmp = full_data(idata)
27772 data_tmp = ishft(data_tmp, 27)
27773 pack_tmp = ior(pack_tmp, data_tmp)
27774 pack_tmp = ishft(pack_tmp, -2)
27775 idata = idata + 1
27776 data_tmp = full_data(idata)
27777 data_tmp = ishft(data_tmp, 27)
27778 data_tmp = iand(data_tmp, mask_left(2))
27779 pack_tmp = ior(pack_tmp, data_tmp)
27780 ipack = ipack + 1
27781 packed_data(ipack) = pack_tmp
27782 data_tmp = full_data(idata)
27783 pack_tmp = ishft(data_tmp, 29)
27784 pack_tmp = ishft(pack_tmp, -29)
27785 idata = idata + 1
27786 data_tmp = full_data(idata)
27787 data_tmp = ishft(data_tmp, 27)
27788 data_tmp = iand(data_tmp, mask_left(29))
27789 pack_tmp = ior(pack_tmp, data_tmp)
27790 ipack = ipack + 1
27791 packed_data(ipack) = pack_tmp
27792 data_tmp = full_data(idata)
27793 pack_tmp = ishft(data_tmp, 56)
27794 pack_tmp = ishft(pack_tmp, -37)
27795 idata = idata + 1
27796 data_tmp = full_data(idata)
27797 data_tmp = ishft(data_tmp, 27)
27798 pack_tmp = ior(pack_tmp, data_tmp)
27799 pack_tmp = ishft(pack_tmp, -19)
27800 idata = idata + 1
27801 data_tmp = full_data(idata)
27802 data_tmp = ishft(data_tmp, 27)
27803 data_tmp = iand(data_tmp, mask_left(19))
27804 pack_tmp = ior(pack_tmp, data_tmp)
27805 ipack = ipack + 1
27806 packed_data(ipack) = pack_tmp
27807 data_tmp = full_data(idata)
27808 pack_tmp = ishft(data_tmp, 46)
27809 pack_tmp = ishft(pack_tmp, -37)
27810 idata = idata + 1
27811 data_tmp = full_data(idata)
27812 data_tmp = ishft(data_tmp, 27)
27813 pack_tmp = ior(pack_tmp, data_tmp)
27814 pack_tmp = ishft(pack_tmp, -9)
27815 idata = idata + 1
27816 data_tmp = full_data(idata)
27817 data_tmp = ishft(data_tmp, 27)
27818 data_tmp = iand(data_tmp, mask_left(9))
27819 pack_tmp = ior(pack_tmp, data_tmp)
27820 ipack = ipack + 1
27821 packed_data(ipack) = pack_tmp
27822 data_tmp = full_data(idata)
27823 pack_tmp = ishft(data_tmp, 36)
27824 pack_tmp = ishft(pack_tmp, -36)
27825 idata = idata + 1
27826 data_tmp = full_data(idata)
27827 data_tmp = ishft(data_tmp, 27)
27828 data_tmp = iand(data_tmp, mask_left(36))
27829 pack_tmp = ior(pack_tmp, data_tmp)
27830 ipack = ipack + 1
27831 packed_data(ipack) = pack_tmp
27832 data_tmp = full_data(idata)
27833 pack_tmp = ishft(data_tmp, 63)
27834 pack_tmp = ishft(pack_tmp, -37)
27835 idata = idata + 1
27836 data_tmp = full_data(idata)
27837 data_tmp = ishft(data_tmp, 27)
27838 pack_tmp = ior(pack_tmp, data_tmp)
27839 pack_tmp = ishft(pack_tmp, -26)
27840 idata = idata + 1
27841 data_tmp = full_data(idata)
27842 data_tmp = ishft(data_tmp, 27)
27843 data_tmp = iand(data_tmp, mask_left(26))
27844 pack_tmp = ior(pack_tmp, data_tmp)
27845 ipack = ipack + 1
27846 packed_data(ipack) = pack_tmp
27847 data_tmp = full_data(idata)
27848 pack_tmp = ishft(data_tmp, 53)
27849 pack_tmp = ishft(pack_tmp, -37)
27850 idata = idata + 1
27851 data_tmp = full_data(idata)
27852 data_tmp = ishft(data_tmp, 27)
27853 pack_tmp = ior(pack_tmp, data_tmp)
27854 pack_tmp = ishft(pack_tmp, -16)
27855 idata = idata + 1
27856 data_tmp = full_data(idata)
27857 data_tmp = ishft(data_tmp, 27)
27858 data_tmp = iand(data_tmp, mask_left(16))
27859 pack_tmp = ior(pack_tmp, data_tmp)
27860 ipack = ipack + 1
27861 packed_data(ipack) = pack_tmp
27862 data_tmp = full_data(idata)
27863 pack_tmp = ishft(data_tmp, 43)
27864 pack_tmp = ishft(pack_tmp, -37)
27865 idata = idata + 1
27866 data_tmp = full_data(idata)
27867 data_tmp = ishft(data_tmp, 27)
27868 pack_tmp = ior(pack_tmp, data_tmp)
27869 pack_tmp = ishft(pack_tmp, -6)
27870 idata = idata + 1
27871 data_tmp = full_data(idata)
27872 data_tmp = ishft(data_tmp, 27)
27873 data_tmp = iand(data_tmp, mask_left(6))
27874 pack_tmp = ior(pack_tmp, data_tmp)
27875 ipack = ipack + 1
27876 packed_data(ipack) = pack_tmp
27877 data_tmp = full_data(idata)
27878 pack_tmp = ishft(data_tmp, 33)
27879 pack_tmp = ishft(pack_tmp, -33)
27880 idata = idata + 1
27881 data_tmp = full_data(idata)
27882 data_tmp = ishft(data_tmp, 27)
27883 data_tmp = iand(data_tmp, mask_left(33))
27884 pack_tmp = ior(pack_tmp, data_tmp)
27885 ipack = ipack + 1
27886 packed_data(ipack) = pack_tmp
27887 data_tmp = full_data(idata)
27888 pack_tmp = ishft(data_tmp, 60)
27889 pack_tmp = ishft(pack_tmp, -37)
27890 idata = idata + 1
27891 data_tmp = full_data(idata)
27892 data_tmp = ishft(data_tmp, 27)
27893 pack_tmp = ior(pack_tmp, data_tmp)
27894 pack_tmp = ishft(pack_tmp, -23)
27895 idata = idata + 1
27896 data_tmp = full_data(idata)
27897 data_tmp = ishft(data_tmp, 27)
27898 data_tmp = iand(data_tmp, mask_left(23))
27899 pack_tmp = ior(pack_tmp, data_tmp)
27900 ipack = ipack + 1
27901 packed_data(ipack) = pack_tmp
27902 data_tmp = full_data(idata)
27903 pack_tmp = ishft(data_tmp, 50)
27904 pack_tmp = ishft(pack_tmp, -37)
27905 idata = idata + 1
27906 data_tmp = full_data(idata)
27907 data_tmp = ishft(data_tmp, 27)
27908 pack_tmp = ior(pack_tmp, data_tmp)
27909 pack_tmp = ishft(pack_tmp, -13)
27910 idata = idata + 1
27911 data_tmp = full_data(idata)
27912 data_tmp = ishft(data_tmp, 27)
27913 data_tmp = iand(data_tmp, mask_left(13))
27914 pack_tmp = ior(pack_tmp, data_tmp)
27915 ipack = ipack + 1
27916 packed_data(ipack) = pack_tmp
27917 data_tmp = full_data(idata)
27918 pack_tmp = ishft(data_tmp, 40)
27919 pack_tmp = ishft(pack_tmp, -37)
27920 idata = idata + 1
27921 data_tmp = full_data(idata)
27922 data_tmp = ishft(data_tmp, 27)
27923 pack_tmp = ior(pack_tmp, data_tmp)
27924 pack_tmp = ishft(pack_tmp, -3)
27925 idata = idata + 1
27926 data_tmp = full_data(idata)
27927 data_tmp = ishft(data_tmp, 27)
27928 data_tmp = iand(data_tmp, mask_left(3))
27929 pack_tmp = ior(pack_tmp, data_tmp)
27930 ipack = ipack + 1
27931 packed_data(ipack) = pack_tmp
27932 data_tmp = full_data(idata)
27933 pack_tmp = ishft(data_tmp, 30)
27934 pack_tmp = ishft(pack_tmp, -30)
27935 idata = idata + 1
27936 data_tmp = full_data(idata)
27937 data_tmp = ishft(data_tmp, 27)
27938 data_tmp = iand(data_tmp, mask_left(30))
27939 pack_tmp = ior(pack_tmp, data_tmp)
27940 ipack = ipack + 1
27941 packed_data(ipack) = pack_tmp
27942 data_tmp = full_data(idata)
27943 pack_tmp = ishft(data_tmp, 57)
27944 pack_tmp = ishft(pack_tmp, -37)
27945 idata = idata + 1
27946 data_tmp = full_data(idata)
27947 data_tmp = ishft(data_tmp, 27)
27948 pack_tmp = ior(pack_tmp, data_tmp)
27949 pack_tmp = ishft(pack_tmp, -20)
27950 idata = idata + 1
27951 data_tmp = full_data(idata)
27952 data_tmp = ishft(data_tmp, 27)
27953 data_tmp = iand(data_tmp, mask_left(20))
27954 pack_tmp = ior(pack_tmp, data_tmp)
27955 ipack = ipack + 1
27956 packed_data(ipack) = pack_tmp
27957 data_tmp = full_data(idata)
27958 pack_tmp = ishft(data_tmp, 47)
27959 pack_tmp = ishft(pack_tmp, -37)
27960 idata = idata + 1
27961 data_tmp = full_data(idata)
27962 data_tmp = ishft(data_tmp, 27)
27963 pack_tmp = ior(pack_tmp, data_tmp)
27964 pack_tmp = ishft(pack_tmp, -10)
27965 idata = idata + 1
27966 data_tmp = full_data(idata)
27967 data_tmp = ishft(data_tmp, 27)
27968 data_tmp = iand(data_tmp, mask_left(10))
27969 pack_tmp = ior(pack_tmp, data_tmp)
27970 ipack = ipack + 1
27971 packed_data(ipack) = pack_tmp
27972 data_tmp = full_data(idata)
27973 pack_tmp = ishft(data_tmp, 37)
27974 pack_tmp = ishft(pack_tmp, -37)
27975 idata = idata + 1
27976 data_tmp = full_data(idata)
27977 data_tmp = ishft(data_tmp, 27)
27978 pack_tmp = ior(pack_tmp, data_tmp)
27979 pack_tmp = ishft(pack_tmp, 0)
27980 pack_tmp = ishft(pack_tmp, 0)
27981 ipack = ipack + 1
27982 packed_data(ipack) = pack_tmp
27983 END DO
27984 IF (ndata_rep < ndata) THEN
27985 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
27986 END IF
27987 END SUBROUTINE ints2bits_37
27988
27989! **************************************************************************************************
27990!> \brief ...
27991!> \param Ndata ...
27992!> \param packed_data ...
27993!> \param full_data ...
27994! **************************************************************************************************
27995 SUBROUTINE bits2ints_37(Ndata, packed_data, full_data)
27996 INTEGER, INTENT(IN) :: Ndata
27997 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
27998 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
27999
28000 INTEGER, PARAMETER :: Nbits = 37
28001
28002 INTEGER :: idata, ipack, kdata, Ndata_rep
28003 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
28004
28005 ipack = 0
28006 idata = 0
28007 pack_tmp = 0
28008 ndata_rep = (ndata/64)*64
28009 DO kdata = 1, ndata_rep, 64
28010 idata = idata + 1
28011 data_tmp = ishft(pack_tmp, 37)
28012 ipack = ipack + 1
28013 pack_tmp = packed_data(ipack)
28014 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
28015 pack_tmp = ishft(pack_tmp, -37)
28016 idata = idata + 1
28017 data_tmp = ishft(pack_tmp, 10)
28018 ipack = ipack + 1
28019 pack_tmp = packed_data(ipack)
28020 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
28021 pack_tmp = ishft(pack_tmp, -10)
28022 idata = idata + 1
28023 data_tmp = iand(pack_tmp, mask_right(nbits))
28024 full_data(idata) = data_tmp
28025 pack_tmp = ishft(pack_tmp, -nbits)
28026 idata = idata + 1
28027 data_tmp = ishft(pack_tmp, 20)
28028 ipack = ipack + 1
28029 pack_tmp = packed_data(ipack)
28030 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
28031 pack_tmp = ishft(pack_tmp, -20)
28032 idata = idata + 1
28033 data_tmp = iand(pack_tmp, mask_right(nbits))
28034 full_data(idata) = data_tmp
28035 pack_tmp = ishft(pack_tmp, -nbits)
28036 idata = idata + 1
28037 data_tmp = ishft(pack_tmp, 30)
28038 ipack = ipack + 1
28039 pack_tmp = packed_data(ipack)
28040 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
28041 pack_tmp = ishft(pack_tmp, -30)
28042 idata = idata + 1
28043 data_tmp = ishft(pack_tmp, 3)
28044 ipack = ipack + 1
28045 pack_tmp = packed_data(ipack)
28046 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
28047 pack_tmp = ishft(pack_tmp, -3)
28048 idata = idata + 1
28049 data_tmp = iand(pack_tmp, mask_right(nbits))
28050 full_data(idata) = data_tmp
28051 pack_tmp = ishft(pack_tmp, -nbits)
28052 idata = idata + 1
28053 data_tmp = ishft(pack_tmp, 13)
28054 ipack = ipack + 1
28055 pack_tmp = packed_data(ipack)
28056 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
28057 pack_tmp = ishft(pack_tmp, -13)
28058 idata = idata + 1
28059 data_tmp = iand(pack_tmp, mask_right(nbits))
28060 full_data(idata) = data_tmp
28061 pack_tmp = ishft(pack_tmp, -nbits)
28062 idata = idata + 1
28063 data_tmp = ishft(pack_tmp, 23)
28064 ipack = ipack + 1
28065 pack_tmp = packed_data(ipack)
28066 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
28067 pack_tmp = ishft(pack_tmp, -23)
28068 idata = idata + 1
28069 data_tmp = iand(pack_tmp, mask_right(nbits))
28070 full_data(idata) = data_tmp
28071 pack_tmp = ishft(pack_tmp, -nbits)
28072 idata = idata + 1
28073 data_tmp = ishft(pack_tmp, 33)
28074 ipack = ipack + 1
28075 pack_tmp = packed_data(ipack)
28076 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
28077 pack_tmp = ishft(pack_tmp, -33)
28078 idata = idata + 1
28079 data_tmp = ishft(pack_tmp, 6)
28080 ipack = ipack + 1
28081 pack_tmp = packed_data(ipack)
28082 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
28083 pack_tmp = ishft(pack_tmp, -6)
28084 idata = idata + 1
28085 data_tmp = iand(pack_tmp, mask_right(nbits))
28086 full_data(idata) = data_tmp
28087 pack_tmp = ishft(pack_tmp, -nbits)
28088 idata = idata + 1
28089 data_tmp = ishft(pack_tmp, 16)
28090 ipack = ipack + 1
28091 pack_tmp = packed_data(ipack)
28092 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
28093 pack_tmp = ishft(pack_tmp, -16)
28094 idata = idata + 1
28095 data_tmp = iand(pack_tmp, mask_right(nbits))
28096 full_data(idata) = data_tmp
28097 pack_tmp = ishft(pack_tmp, -nbits)
28098 idata = idata + 1
28099 data_tmp = ishft(pack_tmp, 26)
28100 ipack = ipack + 1
28101 pack_tmp = packed_data(ipack)
28102 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
28103 pack_tmp = ishft(pack_tmp, -26)
28104 idata = idata + 1
28105 data_tmp = iand(pack_tmp, mask_right(nbits))
28106 full_data(idata) = data_tmp
28107 pack_tmp = ishft(pack_tmp, -nbits)
28108 idata = idata + 1
28109 data_tmp = ishft(pack_tmp, 36)
28110 ipack = ipack + 1
28111 pack_tmp = packed_data(ipack)
28112 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
28113 pack_tmp = ishft(pack_tmp, -36)
28114 idata = idata + 1
28115 data_tmp = ishft(pack_tmp, 9)
28116 ipack = ipack + 1
28117 pack_tmp = packed_data(ipack)
28118 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
28119 pack_tmp = ishft(pack_tmp, -9)
28120 idata = idata + 1
28121 data_tmp = iand(pack_tmp, mask_right(nbits))
28122 full_data(idata) = data_tmp
28123 pack_tmp = ishft(pack_tmp, -nbits)
28124 idata = idata + 1
28125 data_tmp = ishft(pack_tmp, 19)
28126 ipack = ipack + 1
28127 pack_tmp = packed_data(ipack)
28128 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
28129 pack_tmp = ishft(pack_tmp, -19)
28130 idata = idata + 1
28131 data_tmp = iand(pack_tmp, mask_right(nbits))
28132 full_data(idata) = data_tmp
28133 pack_tmp = ishft(pack_tmp, -nbits)
28134 idata = idata + 1
28135 data_tmp = ishft(pack_tmp, 29)
28136 ipack = ipack + 1
28137 pack_tmp = packed_data(ipack)
28138 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
28139 pack_tmp = ishft(pack_tmp, -29)
28140 idata = idata + 1
28141 data_tmp = ishft(pack_tmp, 2)
28142 ipack = ipack + 1
28143 pack_tmp = packed_data(ipack)
28144 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
28145 pack_tmp = ishft(pack_tmp, -2)
28146 idata = idata + 1
28147 data_tmp = iand(pack_tmp, mask_right(nbits))
28148 full_data(idata) = data_tmp
28149 pack_tmp = ishft(pack_tmp, -nbits)
28150 idata = idata + 1
28151 data_tmp = ishft(pack_tmp, 12)
28152 ipack = ipack + 1
28153 pack_tmp = packed_data(ipack)
28154 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
28155 pack_tmp = ishft(pack_tmp, -12)
28156 idata = idata + 1
28157 data_tmp = iand(pack_tmp, mask_right(nbits))
28158 full_data(idata) = data_tmp
28159 pack_tmp = ishft(pack_tmp, -nbits)
28160 idata = idata + 1
28161 data_tmp = ishft(pack_tmp, 22)
28162 ipack = ipack + 1
28163 pack_tmp = packed_data(ipack)
28164 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
28165 pack_tmp = ishft(pack_tmp, -22)
28166 idata = idata + 1
28167 data_tmp = iand(pack_tmp, mask_right(nbits))
28168 full_data(idata) = data_tmp
28169 pack_tmp = ishft(pack_tmp, -nbits)
28170 idata = idata + 1
28171 data_tmp = ishft(pack_tmp, 32)
28172 ipack = ipack + 1
28173 pack_tmp = packed_data(ipack)
28174 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
28175 pack_tmp = ishft(pack_tmp, -32)
28176 idata = idata + 1
28177 data_tmp = ishft(pack_tmp, 5)
28178 ipack = ipack + 1
28179 pack_tmp = packed_data(ipack)
28180 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
28181 pack_tmp = ishft(pack_tmp, -5)
28182 idata = idata + 1
28183 data_tmp = iand(pack_tmp, mask_right(nbits))
28184 full_data(idata) = data_tmp
28185 pack_tmp = ishft(pack_tmp, -nbits)
28186 idata = idata + 1
28187 data_tmp = ishft(pack_tmp, 15)
28188 ipack = ipack + 1
28189 pack_tmp = packed_data(ipack)
28190 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
28191 pack_tmp = ishft(pack_tmp, -15)
28192 idata = idata + 1
28193 data_tmp = iand(pack_tmp, mask_right(nbits))
28194 full_data(idata) = data_tmp
28195 pack_tmp = ishft(pack_tmp, -nbits)
28196 idata = idata + 1
28197 data_tmp = ishft(pack_tmp, 25)
28198 ipack = ipack + 1
28199 pack_tmp = packed_data(ipack)
28200 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
28201 pack_tmp = ishft(pack_tmp, -25)
28202 idata = idata + 1
28203 data_tmp = iand(pack_tmp, mask_right(nbits))
28204 full_data(idata) = data_tmp
28205 pack_tmp = ishft(pack_tmp, -nbits)
28206 idata = idata + 1
28207 data_tmp = ishft(pack_tmp, 35)
28208 ipack = ipack + 1
28209 pack_tmp = packed_data(ipack)
28210 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
28211 pack_tmp = ishft(pack_tmp, -35)
28212 idata = idata + 1
28213 data_tmp = ishft(pack_tmp, 8)
28214 ipack = ipack + 1
28215 pack_tmp = packed_data(ipack)
28216 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
28217 pack_tmp = ishft(pack_tmp, -8)
28218 idata = idata + 1
28219 data_tmp = iand(pack_tmp, mask_right(nbits))
28220 full_data(idata) = data_tmp
28221 pack_tmp = ishft(pack_tmp, -nbits)
28222 idata = idata + 1
28223 data_tmp = ishft(pack_tmp, 18)
28224 ipack = ipack + 1
28225 pack_tmp = packed_data(ipack)
28226 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
28227 pack_tmp = ishft(pack_tmp, -18)
28228 idata = idata + 1
28229 data_tmp = iand(pack_tmp, mask_right(nbits))
28230 full_data(idata) = data_tmp
28231 pack_tmp = ishft(pack_tmp, -nbits)
28232 idata = idata + 1
28233 data_tmp = ishft(pack_tmp, 28)
28234 ipack = ipack + 1
28235 pack_tmp = packed_data(ipack)
28236 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
28237 pack_tmp = ishft(pack_tmp, -28)
28238 idata = idata + 1
28239 data_tmp = ishft(pack_tmp, 1)
28240 ipack = ipack + 1
28241 pack_tmp = packed_data(ipack)
28242 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
28243 pack_tmp = ishft(pack_tmp, -1)
28244 idata = idata + 1
28245 data_tmp = iand(pack_tmp, mask_right(nbits))
28246 full_data(idata) = data_tmp
28247 pack_tmp = ishft(pack_tmp, -nbits)
28248 idata = idata + 1
28249 data_tmp = ishft(pack_tmp, 11)
28250 ipack = ipack + 1
28251 pack_tmp = packed_data(ipack)
28252 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
28253 pack_tmp = ishft(pack_tmp, -11)
28254 idata = idata + 1
28255 data_tmp = iand(pack_tmp, mask_right(nbits))
28256 full_data(idata) = data_tmp
28257 pack_tmp = ishft(pack_tmp, -nbits)
28258 idata = idata + 1
28259 data_tmp = ishft(pack_tmp, 21)
28260 ipack = ipack + 1
28261 pack_tmp = packed_data(ipack)
28262 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
28263 pack_tmp = ishft(pack_tmp, -21)
28264 idata = idata + 1
28265 data_tmp = iand(pack_tmp, mask_right(nbits))
28266 full_data(idata) = data_tmp
28267 pack_tmp = ishft(pack_tmp, -nbits)
28268 idata = idata + 1
28269 data_tmp = ishft(pack_tmp, 31)
28270 ipack = ipack + 1
28271 pack_tmp = packed_data(ipack)
28272 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
28273 pack_tmp = ishft(pack_tmp, -31)
28274 idata = idata + 1
28275 data_tmp = ishft(pack_tmp, 4)
28276 ipack = ipack + 1
28277 pack_tmp = packed_data(ipack)
28278 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
28279 pack_tmp = ishft(pack_tmp, -4)
28280 idata = idata + 1
28281 data_tmp = iand(pack_tmp, mask_right(nbits))
28282 full_data(idata) = data_tmp
28283 pack_tmp = ishft(pack_tmp, -nbits)
28284 idata = idata + 1
28285 data_tmp = ishft(pack_tmp, 14)
28286 ipack = ipack + 1
28287 pack_tmp = packed_data(ipack)
28288 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
28289 pack_tmp = ishft(pack_tmp, -14)
28290 idata = idata + 1
28291 data_tmp = iand(pack_tmp, mask_right(nbits))
28292 full_data(idata) = data_tmp
28293 pack_tmp = ishft(pack_tmp, -nbits)
28294 idata = idata + 1
28295 data_tmp = ishft(pack_tmp, 24)
28296 ipack = ipack + 1
28297 pack_tmp = packed_data(ipack)
28298 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
28299 pack_tmp = ishft(pack_tmp, -24)
28300 idata = idata + 1
28301 data_tmp = iand(pack_tmp, mask_right(nbits))
28302 full_data(idata) = data_tmp
28303 pack_tmp = ishft(pack_tmp, -nbits)
28304 idata = idata + 1
28305 data_tmp = ishft(pack_tmp, 34)
28306 ipack = ipack + 1
28307 pack_tmp = packed_data(ipack)
28308 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
28309 pack_tmp = ishft(pack_tmp, -34)
28310 idata = idata + 1
28311 data_tmp = ishft(pack_tmp, 7)
28312 ipack = ipack + 1
28313 pack_tmp = packed_data(ipack)
28314 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
28315 pack_tmp = ishft(pack_tmp, -7)
28316 idata = idata + 1
28317 data_tmp = iand(pack_tmp, mask_right(nbits))
28318 full_data(idata) = data_tmp
28319 pack_tmp = ishft(pack_tmp, -nbits)
28320 idata = idata + 1
28321 data_tmp = ishft(pack_tmp, 17)
28322 ipack = ipack + 1
28323 pack_tmp = packed_data(ipack)
28324 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
28325 pack_tmp = ishft(pack_tmp, -17)
28326 idata = idata + 1
28327 data_tmp = iand(pack_tmp, mask_right(nbits))
28328 full_data(idata) = data_tmp
28329 pack_tmp = ishft(pack_tmp, -nbits)
28330 idata = idata + 1
28331 data_tmp = ishft(pack_tmp, 27)
28332 ipack = ipack + 1
28333 pack_tmp = packed_data(ipack)
28334 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
28335 pack_tmp = ishft(pack_tmp, -27)
28336 idata = idata + 1
28337 data_tmp = iand(pack_tmp, mask_right(nbits))
28338 full_data(idata) = data_tmp
28339 pack_tmp = ishft(pack_tmp, -nbits)
28340 END DO
28341 IF (ndata_rep < ndata) THEN
28342 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
28343 END IF
28344 END SUBROUTINE bits2ints_37
28345
28346! **************************************************************************************************
28347!> \brief ...
28348!> \param Ndata ...
28349!> \param packed_data ...
28350!> \param full_data ...
28351! **************************************************************************************************
28352 SUBROUTINE ints2bits_38(Ndata, packed_data, full_data)
28353 INTEGER, INTENT(IN) :: Ndata
28354 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
28355 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
28356
28357 INTEGER, PARAMETER :: Nbits = 38
28358
28359 INTEGER :: idata, ipack, kdata, Ndata_rep
28360 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
28361
28362 idata = 0
28363 ipack = 0
28364 ndata_rep = (ndata/64)*64
28365 DO kdata = 1, ndata_rep, 64
28366 pack_tmp = 0
28367 idata = idata + 1
28368 data_tmp = full_data(idata)
28369 data_tmp = ishft(data_tmp, 26)
28370 pack_tmp = ior(pack_tmp, data_tmp)
28371 pack_tmp = ishft(pack_tmp, -26)
28372 idata = idata + 1
28373 data_tmp = full_data(idata)
28374 data_tmp = ishft(data_tmp, 26)
28375 data_tmp = iand(data_tmp, mask_left(26))
28376 pack_tmp = ior(pack_tmp, data_tmp)
28377 ipack = ipack + 1
28378 packed_data(ipack) = pack_tmp
28379 data_tmp = full_data(idata)
28380 pack_tmp = ishft(data_tmp, 52)
28381 pack_tmp = ishft(pack_tmp, -38)
28382 idata = idata + 1
28383 data_tmp = full_data(idata)
28384 data_tmp = ishft(data_tmp, 26)
28385 pack_tmp = ior(pack_tmp, data_tmp)
28386 pack_tmp = ishft(pack_tmp, -14)
28387 idata = idata + 1
28388 data_tmp = full_data(idata)
28389 data_tmp = ishft(data_tmp, 26)
28390 data_tmp = iand(data_tmp, mask_left(14))
28391 pack_tmp = ior(pack_tmp, data_tmp)
28392 ipack = ipack + 1
28393 packed_data(ipack) = pack_tmp
28394 data_tmp = full_data(idata)
28395 pack_tmp = ishft(data_tmp, 40)
28396 pack_tmp = ishft(pack_tmp, -38)
28397 idata = idata + 1
28398 data_tmp = full_data(idata)
28399 data_tmp = ishft(data_tmp, 26)
28400 pack_tmp = ior(pack_tmp, data_tmp)
28401 pack_tmp = ishft(pack_tmp, -2)
28402 idata = idata + 1
28403 data_tmp = full_data(idata)
28404 data_tmp = ishft(data_tmp, 26)
28405 data_tmp = iand(data_tmp, mask_left(2))
28406 pack_tmp = ior(pack_tmp, data_tmp)
28407 ipack = ipack + 1
28408 packed_data(ipack) = pack_tmp
28409 data_tmp = full_data(idata)
28410 pack_tmp = ishft(data_tmp, 28)
28411 pack_tmp = ishft(pack_tmp, -28)
28412 idata = idata + 1
28413 data_tmp = full_data(idata)
28414 data_tmp = ishft(data_tmp, 26)
28415 data_tmp = iand(data_tmp, mask_left(28))
28416 pack_tmp = ior(pack_tmp, data_tmp)
28417 ipack = ipack + 1
28418 packed_data(ipack) = pack_tmp
28419 data_tmp = full_data(idata)
28420 pack_tmp = ishft(data_tmp, 54)
28421 pack_tmp = ishft(pack_tmp, -38)
28422 idata = idata + 1
28423 data_tmp = full_data(idata)
28424 data_tmp = ishft(data_tmp, 26)
28425 pack_tmp = ior(pack_tmp, data_tmp)
28426 pack_tmp = ishft(pack_tmp, -16)
28427 idata = idata + 1
28428 data_tmp = full_data(idata)
28429 data_tmp = ishft(data_tmp, 26)
28430 data_tmp = iand(data_tmp, mask_left(16))
28431 pack_tmp = ior(pack_tmp, data_tmp)
28432 ipack = ipack + 1
28433 packed_data(ipack) = pack_tmp
28434 data_tmp = full_data(idata)
28435 pack_tmp = ishft(data_tmp, 42)
28436 pack_tmp = ishft(pack_tmp, -38)
28437 idata = idata + 1
28438 data_tmp = full_data(idata)
28439 data_tmp = ishft(data_tmp, 26)
28440 pack_tmp = ior(pack_tmp, data_tmp)
28441 pack_tmp = ishft(pack_tmp, -4)
28442 idata = idata + 1
28443 data_tmp = full_data(idata)
28444 data_tmp = ishft(data_tmp, 26)
28445 data_tmp = iand(data_tmp, mask_left(4))
28446 pack_tmp = ior(pack_tmp, data_tmp)
28447 ipack = ipack + 1
28448 packed_data(ipack) = pack_tmp
28449 data_tmp = full_data(idata)
28450 pack_tmp = ishft(data_tmp, 30)
28451 pack_tmp = ishft(pack_tmp, -30)
28452 idata = idata + 1
28453 data_tmp = full_data(idata)
28454 data_tmp = ishft(data_tmp, 26)
28455 data_tmp = iand(data_tmp, mask_left(30))
28456 pack_tmp = ior(pack_tmp, data_tmp)
28457 ipack = ipack + 1
28458 packed_data(ipack) = pack_tmp
28459 data_tmp = full_data(idata)
28460 pack_tmp = ishft(data_tmp, 56)
28461 pack_tmp = ishft(pack_tmp, -38)
28462 idata = idata + 1
28463 data_tmp = full_data(idata)
28464 data_tmp = ishft(data_tmp, 26)
28465 pack_tmp = ior(pack_tmp, data_tmp)
28466 pack_tmp = ishft(pack_tmp, -18)
28467 idata = idata + 1
28468 data_tmp = full_data(idata)
28469 data_tmp = ishft(data_tmp, 26)
28470 data_tmp = iand(data_tmp, mask_left(18))
28471 pack_tmp = ior(pack_tmp, data_tmp)
28472 ipack = ipack + 1
28473 packed_data(ipack) = pack_tmp
28474 data_tmp = full_data(idata)
28475 pack_tmp = ishft(data_tmp, 44)
28476 pack_tmp = ishft(pack_tmp, -38)
28477 idata = idata + 1
28478 data_tmp = full_data(idata)
28479 data_tmp = ishft(data_tmp, 26)
28480 pack_tmp = ior(pack_tmp, data_tmp)
28481 pack_tmp = ishft(pack_tmp, -6)
28482 idata = idata + 1
28483 data_tmp = full_data(idata)
28484 data_tmp = ishft(data_tmp, 26)
28485 data_tmp = iand(data_tmp, mask_left(6))
28486 pack_tmp = ior(pack_tmp, data_tmp)
28487 ipack = ipack + 1
28488 packed_data(ipack) = pack_tmp
28489 data_tmp = full_data(idata)
28490 pack_tmp = ishft(data_tmp, 32)
28491 pack_tmp = ishft(pack_tmp, -32)
28492 idata = idata + 1
28493 data_tmp = full_data(idata)
28494 data_tmp = ishft(data_tmp, 26)
28495 data_tmp = iand(data_tmp, mask_left(32))
28496 pack_tmp = ior(pack_tmp, data_tmp)
28497 ipack = ipack + 1
28498 packed_data(ipack) = pack_tmp
28499 data_tmp = full_data(idata)
28500 pack_tmp = ishft(data_tmp, 58)
28501 pack_tmp = ishft(pack_tmp, -38)
28502 idata = idata + 1
28503 data_tmp = full_data(idata)
28504 data_tmp = ishft(data_tmp, 26)
28505 pack_tmp = ior(pack_tmp, data_tmp)
28506 pack_tmp = ishft(pack_tmp, -20)
28507 idata = idata + 1
28508 data_tmp = full_data(idata)
28509 data_tmp = ishft(data_tmp, 26)
28510 data_tmp = iand(data_tmp, mask_left(20))
28511 pack_tmp = ior(pack_tmp, data_tmp)
28512 ipack = ipack + 1
28513 packed_data(ipack) = pack_tmp
28514 data_tmp = full_data(idata)
28515 pack_tmp = ishft(data_tmp, 46)
28516 pack_tmp = ishft(pack_tmp, -38)
28517 idata = idata + 1
28518 data_tmp = full_data(idata)
28519 data_tmp = ishft(data_tmp, 26)
28520 pack_tmp = ior(pack_tmp, data_tmp)
28521 pack_tmp = ishft(pack_tmp, -8)
28522 idata = idata + 1
28523 data_tmp = full_data(idata)
28524 data_tmp = ishft(data_tmp, 26)
28525 data_tmp = iand(data_tmp, mask_left(8))
28526 pack_tmp = ior(pack_tmp, data_tmp)
28527 ipack = ipack + 1
28528 packed_data(ipack) = pack_tmp
28529 data_tmp = full_data(idata)
28530 pack_tmp = ishft(data_tmp, 34)
28531 pack_tmp = ishft(pack_tmp, -34)
28532 idata = idata + 1
28533 data_tmp = full_data(idata)
28534 data_tmp = ishft(data_tmp, 26)
28535 data_tmp = iand(data_tmp, mask_left(34))
28536 pack_tmp = ior(pack_tmp, data_tmp)
28537 ipack = ipack + 1
28538 packed_data(ipack) = pack_tmp
28539 data_tmp = full_data(idata)
28540 pack_tmp = ishft(data_tmp, 60)
28541 pack_tmp = ishft(pack_tmp, -38)
28542 idata = idata + 1
28543 data_tmp = full_data(idata)
28544 data_tmp = ishft(data_tmp, 26)
28545 pack_tmp = ior(pack_tmp, data_tmp)
28546 pack_tmp = ishft(pack_tmp, -22)
28547 idata = idata + 1
28548 data_tmp = full_data(idata)
28549 data_tmp = ishft(data_tmp, 26)
28550 data_tmp = iand(data_tmp, mask_left(22))
28551 pack_tmp = ior(pack_tmp, data_tmp)
28552 ipack = ipack + 1
28553 packed_data(ipack) = pack_tmp
28554 data_tmp = full_data(idata)
28555 pack_tmp = ishft(data_tmp, 48)
28556 pack_tmp = ishft(pack_tmp, -38)
28557 idata = idata + 1
28558 data_tmp = full_data(idata)
28559 data_tmp = ishft(data_tmp, 26)
28560 pack_tmp = ior(pack_tmp, data_tmp)
28561 pack_tmp = ishft(pack_tmp, -10)
28562 idata = idata + 1
28563 data_tmp = full_data(idata)
28564 data_tmp = ishft(data_tmp, 26)
28565 data_tmp = iand(data_tmp, mask_left(10))
28566 pack_tmp = ior(pack_tmp, data_tmp)
28567 ipack = ipack + 1
28568 packed_data(ipack) = pack_tmp
28569 data_tmp = full_data(idata)
28570 pack_tmp = ishft(data_tmp, 36)
28571 pack_tmp = ishft(pack_tmp, -36)
28572 idata = idata + 1
28573 data_tmp = full_data(idata)
28574 data_tmp = ishft(data_tmp, 26)
28575 data_tmp = iand(data_tmp, mask_left(36))
28576 pack_tmp = ior(pack_tmp, data_tmp)
28577 ipack = ipack + 1
28578 packed_data(ipack) = pack_tmp
28579 data_tmp = full_data(idata)
28580 pack_tmp = ishft(data_tmp, 62)
28581 pack_tmp = ishft(pack_tmp, -38)
28582 idata = idata + 1
28583 data_tmp = full_data(idata)
28584 data_tmp = ishft(data_tmp, 26)
28585 pack_tmp = ior(pack_tmp, data_tmp)
28586 pack_tmp = ishft(pack_tmp, -24)
28587 idata = idata + 1
28588 data_tmp = full_data(idata)
28589 data_tmp = ishft(data_tmp, 26)
28590 data_tmp = iand(data_tmp, mask_left(24))
28591 pack_tmp = ior(pack_tmp, data_tmp)
28592 ipack = ipack + 1
28593 packed_data(ipack) = pack_tmp
28594 data_tmp = full_data(idata)
28595 pack_tmp = ishft(data_tmp, 50)
28596 pack_tmp = ishft(pack_tmp, -38)
28597 idata = idata + 1
28598 data_tmp = full_data(idata)
28599 data_tmp = ishft(data_tmp, 26)
28600 pack_tmp = ior(pack_tmp, data_tmp)
28601 pack_tmp = ishft(pack_tmp, -12)
28602 idata = idata + 1
28603 data_tmp = full_data(idata)
28604 data_tmp = ishft(data_tmp, 26)
28605 data_tmp = iand(data_tmp, mask_left(12))
28606 pack_tmp = ior(pack_tmp, data_tmp)
28607 ipack = ipack + 1
28608 packed_data(ipack) = pack_tmp
28609 data_tmp = full_data(idata)
28610 pack_tmp = ishft(data_tmp, 38)
28611 pack_tmp = ishft(pack_tmp, -38)
28612 idata = idata + 1
28613 data_tmp = full_data(idata)
28614 data_tmp = ishft(data_tmp, 26)
28615 pack_tmp = ior(pack_tmp, data_tmp)
28616 pack_tmp = ishft(pack_tmp, 0)
28617 idata = idata + 1
28618 data_tmp = full_data(idata)
28619 data_tmp = ishft(data_tmp, 26)
28620 data_tmp = iand(data_tmp, mask_left(0))
28621 pack_tmp = ior(pack_tmp, data_tmp)
28622 ipack = ipack + 1
28623 packed_data(ipack) = pack_tmp
28624 data_tmp = full_data(idata)
28625 pack_tmp = ishft(data_tmp, 26)
28626 pack_tmp = ishft(pack_tmp, -26)
28627 idata = idata + 1
28628 data_tmp = full_data(idata)
28629 data_tmp = ishft(data_tmp, 26)
28630 data_tmp = iand(data_tmp, mask_left(26))
28631 pack_tmp = ior(pack_tmp, data_tmp)
28632 ipack = ipack + 1
28633 packed_data(ipack) = pack_tmp
28634 data_tmp = full_data(idata)
28635 pack_tmp = ishft(data_tmp, 52)
28636 pack_tmp = ishft(pack_tmp, -38)
28637 idata = idata + 1
28638 data_tmp = full_data(idata)
28639 data_tmp = ishft(data_tmp, 26)
28640 pack_tmp = ior(pack_tmp, data_tmp)
28641 pack_tmp = ishft(pack_tmp, -14)
28642 idata = idata + 1
28643 data_tmp = full_data(idata)
28644 data_tmp = ishft(data_tmp, 26)
28645 data_tmp = iand(data_tmp, mask_left(14))
28646 pack_tmp = ior(pack_tmp, data_tmp)
28647 ipack = ipack + 1
28648 packed_data(ipack) = pack_tmp
28649 data_tmp = full_data(idata)
28650 pack_tmp = ishft(data_tmp, 40)
28651 pack_tmp = ishft(pack_tmp, -38)
28652 idata = idata + 1
28653 data_tmp = full_data(idata)
28654 data_tmp = ishft(data_tmp, 26)
28655 pack_tmp = ior(pack_tmp, data_tmp)
28656 pack_tmp = ishft(pack_tmp, -2)
28657 idata = idata + 1
28658 data_tmp = full_data(idata)
28659 data_tmp = ishft(data_tmp, 26)
28660 data_tmp = iand(data_tmp, mask_left(2))
28661 pack_tmp = ior(pack_tmp, data_tmp)
28662 ipack = ipack + 1
28663 packed_data(ipack) = pack_tmp
28664 data_tmp = full_data(idata)
28665 pack_tmp = ishft(data_tmp, 28)
28666 pack_tmp = ishft(pack_tmp, -28)
28667 idata = idata + 1
28668 data_tmp = full_data(idata)
28669 data_tmp = ishft(data_tmp, 26)
28670 data_tmp = iand(data_tmp, mask_left(28))
28671 pack_tmp = ior(pack_tmp, data_tmp)
28672 ipack = ipack + 1
28673 packed_data(ipack) = pack_tmp
28674 data_tmp = full_data(idata)
28675 pack_tmp = ishft(data_tmp, 54)
28676 pack_tmp = ishft(pack_tmp, -38)
28677 idata = idata + 1
28678 data_tmp = full_data(idata)
28679 data_tmp = ishft(data_tmp, 26)
28680 pack_tmp = ior(pack_tmp, data_tmp)
28681 pack_tmp = ishft(pack_tmp, -16)
28682 idata = idata + 1
28683 data_tmp = full_data(idata)
28684 data_tmp = ishft(data_tmp, 26)
28685 data_tmp = iand(data_tmp, mask_left(16))
28686 pack_tmp = ior(pack_tmp, data_tmp)
28687 ipack = ipack + 1
28688 packed_data(ipack) = pack_tmp
28689 data_tmp = full_data(idata)
28690 pack_tmp = ishft(data_tmp, 42)
28691 pack_tmp = ishft(pack_tmp, -38)
28692 idata = idata + 1
28693 data_tmp = full_data(idata)
28694 data_tmp = ishft(data_tmp, 26)
28695 pack_tmp = ior(pack_tmp, data_tmp)
28696 pack_tmp = ishft(pack_tmp, -4)
28697 idata = idata + 1
28698 data_tmp = full_data(idata)
28699 data_tmp = ishft(data_tmp, 26)
28700 data_tmp = iand(data_tmp, mask_left(4))
28701 pack_tmp = ior(pack_tmp, data_tmp)
28702 ipack = ipack + 1
28703 packed_data(ipack) = pack_tmp
28704 data_tmp = full_data(idata)
28705 pack_tmp = ishft(data_tmp, 30)
28706 pack_tmp = ishft(pack_tmp, -30)
28707 idata = idata + 1
28708 data_tmp = full_data(idata)
28709 data_tmp = ishft(data_tmp, 26)
28710 data_tmp = iand(data_tmp, mask_left(30))
28711 pack_tmp = ior(pack_tmp, data_tmp)
28712 ipack = ipack + 1
28713 packed_data(ipack) = pack_tmp
28714 data_tmp = full_data(idata)
28715 pack_tmp = ishft(data_tmp, 56)
28716 pack_tmp = ishft(pack_tmp, -38)
28717 idata = idata + 1
28718 data_tmp = full_data(idata)
28719 data_tmp = ishft(data_tmp, 26)
28720 pack_tmp = ior(pack_tmp, data_tmp)
28721 pack_tmp = ishft(pack_tmp, -18)
28722 idata = idata + 1
28723 data_tmp = full_data(idata)
28724 data_tmp = ishft(data_tmp, 26)
28725 data_tmp = iand(data_tmp, mask_left(18))
28726 pack_tmp = ior(pack_tmp, data_tmp)
28727 ipack = ipack + 1
28728 packed_data(ipack) = pack_tmp
28729 data_tmp = full_data(idata)
28730 pack_tmp = ishft(data_tmp, 44)
28731 pack_tmp = ishft(pack_tmp, -38)
28732 idata = idata + 1
28733 data_tmp = full_data(idata)
28734 data_tmp = ishft(data_tmp, 26)
28735 pack_tmp = ior(pack_tmp, data_tmp)
28736 pack_tmp = ishft(pack_tmp, -6)
28737 idata = idata + 1
28738 data_tmp = full_data(idata)
28739 data_tmp = ishft(data_tmp, 26)
28740 data_tmp = iand(data_tmp, mask_left(6))
28741 pack_tmp = ior(pack_tmp, data_tmp)
28742 ipack = ipack + 1
28743 packed_data(ipack) = pack_tmp
28744 data_tmp = full_data(idata)
28745 pack_tmp = ishft(data_tmp, 32)
28746 pack_tmp = ishft(pack_tmp, -32)
28747 idata = idata + 1
28748 data_tmp = full_data(idata)
28749 data_tmp = ishft(data_tmp, 26)
28750 data_tmp = iand(data_tmp, mask_left(32))
28751 pack_tmp = ior(pack_tmp, data_tmp)
28752 ipack = ipack + 1
28753 packed_data(ipack) = pack_tmp
28754 data_tmp = full_data(idata)
28755 pack_tmp = ishft(data_tmp, 58)
28756 pack_tmp = ishft(pack_tmp, -38)
28757 idata = idata + 1
28758 data_tmp = full_data(idata)
28759 data_tmp = ishft(data_tmp, 26)
28760 pack_tmp = ior(pack_tmp, data_tmp)
28761 pack_tmp = ishft(pack_tmp, -20)
28762 idata = idata + 1
28763 data_tmp = full_data(idata)
28764 data_tmp = ishft(data_tmp, 26)
28765 data_tmp = iand(data_tmp, mask_left(20))
28766 pack_tmp = ior(pack_tmp, data_tmp)
28767 ipack = ipack + 1
28768 packed_data(ipack) = pack_tmp
28769 data_tmp = full_data(idata)
28770 pack_tmp = ishft(data_tmp, 46)
28771 pack_tmp = ishft(pack_tmp, -38)
28772 idata = idata + 1
28773 data_tmp = full_data(idata)
28774 data_tmp = ishft(data_tmp, 26)
28775 pack_tmp = ior(pack_tmp, data_tmp)
28776 pack_tmp = ishft(pack_tmp, -8)
28777 idata = idata + 1
28778 data_tmp = full_data(idata)
28779 data_tmp = ishft(data_tmp, 26)
28780 data_tmp = iand(data_tmp, mask_left(8))
28781 pack_tmp = ior(pack_tmp, data_tmp)
28782 ipack = ipack + 1
28783 packed_data(ipack) = pack_tmp
28784 data_tmp = full_data(idata)
28785 pack_tmp = ishft(data_tmp, 34)
28786 pack_tmp = ishft(pack_tmp, -34)
28787 idata = idata + 1
28788 data_tmp = full_data(idata)
28789 data_tmp = ishft(data_tmp, 26)
28790 data_tmp = iand(data_tmp, mask_left(34))
28791 pack_tmp = ior(pack_tmp, data_tmp)
28792 ipack = ipack + 1
28793 packed_data(ipack) = pack_tmp
28794 data_tmp = full_data(idata)
28795 pack_tmp = ishft(data_tmp, 60)
28796 pack_tmp = ishft(pack_tmp, -38)
28797 idata = idata + 1
28798 data_tmp = full_data(idata)
28799 data_tmp = ishft(data_tmp, 26)
28800 pack_tmp = ior(pack_tmp, data_tmp)
28801 pack_tmp = ishft(pack_tmp, -22)
28802 idata = idata + 1
28803 data_tmp = full_data(idata)
28804 data_tmp = ishft(data_tmp, 26)
28805 data_tmp = iand(data_tmp, mask_left(22))
28806 pack_tmp = ior(pack_tmp, data_tmp)
28807 ipack = ipack + 1
28808 packed_data(ipack) = pack_tmp
28809 data_tmp = full_data(idata)
28810 pack_tmp = ishft(data_tmp, 48)
28811 pack_tmp = ishft(pack_tmp, -38)
28812 idata = idata + 1
28813 data_tmp = full_data(idata)
28814 data_tmp = ishft(data_tmp, 26)
28815 pack_tmp = ior(pack_tmp, data_tmp)
28816 pack_tmp = ishft(pack_tmp, -10)
28817 idata = idata + 1
28818 data_tmp = full_data(idata)
28819 data_tmp = ishft(data_tmp, 26)
28820 data_tmp = iand(data_tmp, mask_left(10))
28821 pack_tmp = ior(pack_tmp, data_tmp)
28822 ipack = ipack + 1
28823 packed_data(ipack) = pack_tmp
28824 data_tmp = full_data(idata)
28825 pack_tmp = ishft(data_tmp, 36)
28826 pack_tmp = ishft(pack_tmp, -36)
28827 idata = idata + 1
28828 data_tmp = full_data(idata)
28829 data_tmp = ishft(data_tmp, 26)
28830 data_tmp = iand(data_tmp, mask_left(36))
28831 pack_tmp = ior(pack_tmp, data_tmp)
28832 ipack = ipack + 1
28833 packed_data(ipack) = pack_tmp
28834 data_tmp = full_data(idata)
28835 pack_tmp = ishft(data_tmp, 62)
28836 pack_tmp = ishft(pack_tmp, -38)
28837 idata = idata + 1
28838 data_tmp = full_data(idata)
28839 data_tmp = ishft(data_tmp, 26)
28840 pack_tmp = ior(pack_tmp, data_tmp)
28841 pack_tmp = ishft(pack_tmp, -24)
28842 idata = idata + 1
28843 data_tmp = full_data(idata)
28844 data_tmp = ishft(data_tmp, 26)
28845 data_tmp = iand(data_tmp, mask_left(24))
28846 pack_tmp = ior(pack_tmp, data_tmp)
28847 ipack = ipack + 1
28848 packed_data(ipack) = pack_tmp
28849 data_tmp = full_data(idata)
28850 pack_tmp = ishft(data_tmp, 50)
28851 pack_tmp = ishft(pack_tmp, -38)
28852 idata = idata + 1
28853 data_tmp = full_data(idata)
28854 data_tmp = ishft(data_tmp, 26)
28855 pack_tmp = ior(pack_tmp, data_tmp)
28856 pack_tmp = ishft(pack_tmp, -12)
28857 idata = idata + 1
28858 data_tmp = full_data(idata)
28859 data_tmp = ishft(data_tmp, 26)
28860 data_tmp = iand(data_tmp, mask_left(12))
28861 pack_tmp = ior(pack_tmp, data_tmp)
28862 ipack = ipack + 1
28863 packed_data(ipack) = pack_tmp
28864 data_tmp = full_data(idata)
28865 pack_tmp = ishft(data_tmp, 38)
28866 pack_tmp = ishft(pack_tmp, -38)
28867 idata = idata + 1
28868 data_tmp = full_data(idata)
28869 data_tmp = ishft(data_tmp, 26)
28870 pack_tmp = ior(pack_tmp, data_tmp)
28871 pack_tmp = ishft(pack_tmp, 0)
28872 pack_tmp = ishft(pack_tmp, 0)
28873 ipack = ipack + 1
28874 packed_data(ipack) = pack_tmp
28875 END DO
28876 IF (ndata_rep < ndata) THEN
28877 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
28878 END IF
28879 END SUBROUTINE ints2bits_38
28880
28881! **************************************************************************************************
28882!> \brief ...
28883!> \param Ndata ...
28884!> \param packed_data ...
28885!> \param full_data ...
28886! **************************************************************************************************
28887 SUBROUTINE bits2ints_38(Ndata, packed_data, full_data)
28888 INTEGER, INTENT(IN) :: Ndata
28889 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
28890 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
28891
28892 INTEGER, PARAMETER :: Nbits = 38
28893
28894 INTEGER :: idata, ipack, kdata, Ndata_rep
28895 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
28896
28897 ipack = 0
28898 idata = 0
28899 pack_tmp = 0
28900 ndata_rep = (ndata/64)*64
28901 DO kdata = 1, ndata_rep, 64
28902 idata = idata + 1
28903 data_tmp = ishft(pack_tmp, 38)
28904 ipack = ipack + 1
28905 pack_tmp = packed_data(ipack)
28906 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
28907 pack_tmp = ishft(pack_tmp, -38)
28908 idata = idata + 1
28909 data_tmp = ishft(pack_tmp, 12)
28910 ipack = ipack + 1
28911 pack_tmp = packed_data(ipack)
28912 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
28913 pack_tmp = ishft(pack_tmp, -12)
28914 idata = idata + 1
28915 data_tmp = iand(pack_tmp, mask_right(nbits))
28916 full_data(idata) = data_tmp
28917 pack_tmp = ishft(pack_tmp, -nbits)
28918 idata = idata + 1
28919 data_tmp = ishft(pack_tmp, 24)
28920 ipack = ipack + 1
28921 pack_tmp = packed_data(ipack)
28922 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
28923 pack_tmp = ishft(pack_tmp, -24)
28924 idata = idata + 1
28925 data_tmp = iand(pack_tmp, mask_right(nbits))
28926 full_data(idata) = data_tmp
28927 pack_tmp = ishft(pack_tmp, -nbits)
28928 idata = idata + 1
28929 data_tmp = ishft(pack_tmp, 36)
28930 ipack = ipack + 1
28931 pack_tmp = packed_data(ipack)
28932 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
28933 pack_tmp = ishft(pack_tmp, -36)
28934 idata = idata + 1
28935 data_tmp = ishft(pack_tmp, 10)
28936 ipack = ipack + 1
28937 pack_tmp = packed_data(ipack)
28938 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
28939 pack_tmp = ishft(pack_tmp, -10)
28940 idata = idata + 1
28941 data_tmp = iand(pack_tmp, mask_right(nbits))
28942 full_data(idata) = data_tmp
28943 pack_tmp = ishft(pack_tmp, -nbits)
28944 idata = idata + 1
28945 data_tmp = ishft(pack_tmp, 22)
28946 ipack = ipack + 1
28947 pack_tmp = packed_data(ipack)
28948 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
28949 pack_tmp = ishft(pack_tmp, -22)
28950 idata = idata + 1
28951 data_tmp = iand(pack_tmp, mask_right(nbits))
28952 full_data(idata) = data_tmp
28953 pack_tmp = ishft(pack_tmp, -nbits)
28954 idata = idata + 1
28955 data_tmp = ishft(pack_tmp, 34)
28956 ipack = ipack + 1
28957 pack_tmp = packed_data(ipack)
28958 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
28959 pack_tmp = ishft(pack_tmp, -34)
28960 idata = idata + 1
28961 data_tmp = ishft(pack_tmp, 8)
28962 ipack = ipack + 1
28963 pack_tmp = packed_data(ipack)
28964 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
28965 pack_tmp = ishft(pack_tmp, -8)
28966 idata = idata + 1
28967 data_tmp = iand(pack_tmp, mask_right(nbits))
28968 full_data(idata) = data_tmp
28969 pack_tmp = ishft(pack_tmp, -nbits)
28970 idata = idata + 1
28971 data_tmp = ishft(pack_tmp, 20)
28972 ipack = ipack + 1
28973 pack_tmp = packed_data(ipack)
28974 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
28975 pack_tmp = ishft(pack_tmp, -20)
28976 idata = idata + 1
28977 data_tmp = iand(pack_tmp, mask_right(nbits))
28978 full_data(idata) = data_tmp
28979 pack_tmp = ishft(pack_tmp, -nbits)
28980 idata = idata + 1
28981 data_tmp = ishft(pack_tmp, 32)
28982 ipack = ipack + 1
28983 pack_tmp = packed_data(ipack)
28984 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
28985 pack_tmp = ishft(pack_tmp, -32)
28986 idata = idata + 1
28987 data_tmp = ishft(pack_tmp, 6)
28988 ipack = ipack + 1
28989 pack_tmp = packed_data(ipack)
28990 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
28991 pack_tmp = ishft(pack_tmp, -6)
28992 idata = idata + 1
28993 data_tmp = iand(pack_tmp, mask_right(nbits))
28994 full_data(idata) = data_tmp
28995 pack_tmp = ishft(pack_tmp, -nbits)
28996 idata = idata + 1
28997 data_tmp = ishft(pack_tmp, 18)
28998 ipack = ipack + 1
28999 pack_tmp = packed_data(ipack)
29000 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
29001 pack_tmp = ishft(pack_tmp, -18)
29002 idata = idata + 1
29003 data_tmp = iand(pack_tmp, mask_right(nbits))
29004 full_data(idata) = data_tmp
29005 pack_tmp = ishft(pack_tmp, -nbits)
29006 idata = idata + 1
29007 data_tmp = ishft(pack_tmp, 30)
29008 ipack = ipack + 1
29009 pack_tmp = packed_data(ipack)
29010 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
29011 pack_tmp = ishft(pack_tmp, -30)
29012 idata = idata + 1
29013 data_tmp = ishft(pack_tmp, 4)
29014 ipack = ipack + 1
29015 pack_tmp = packed_data(ipack)
29016 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
29017 pack_tmp = ishft(pack_tmp, -4)
29018 idata = idata + 1
29019 data_tmp = iand(pack_tmp, mask_right(nbits))
29020 full_data(idata) = data_tmp
29021 pack_tmp = ishft(pack_tmp, -nbits)
29022 idata = idata + 1
29023 data_tmp = ishft(pack_tmp, 16)
29024 ipack = ipack + 1
29025 pack_tmp = packed_data(ipack)
29026 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
29027 pack_tmp = ishft(pack_tmp, -16)
29028 idata = idata + 1
29029 data_tmp = iand(pack_tmp, mask_right(nbits))
29030 full_data(idata) = data_tmp
29031 pack_tmp = ishft(pack_tmp, -nbits)
29032 idata = idata + 1
29033 data_tmp = ishft(pack_tmp, 28)
29034 ipack = ipack + 1
29035 pack_tmp = packed_data(ipack)
29036 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
29037 pack_tmp = ishft(pack_tmp, -28)
29038 idata = idata + 1
29039 data_tmp = ishft(pack_tmp, 2)
29040 ipack = ipack + 1
29041 pack_tmp = packed_data(ipack)
29042 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
29043 pack_tmp = ishft(pack_tmp, -2)
29044 idata = idata + 1
29045 data_tmp = iand(pack_tmp, mask_right(nbits))
29046 full_data(idata) = data_tmp
29047 pack_tmp = ishft(pack_tmp, -nbits)
29048 idata = idata + 1
29049 data_tmp = ishft(pack_tmp, 14)
29050 ipack = ipack + 1
29051 pack_tmp = packed_data(ipack)
29052 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
29053 pack_tmp = ishft(pack_tmp, -14)
29054 idata = idata + 1
29055 data_tmp = iand(pack_tmp, mask_right(nbits))
29056 full_data(idata) = data_tmp
29057 pack_tmp = ishft(pack_tmp, -nbits)
29058 idata = idata + 1
29059 data_tmp = ishft(pack_tmp, 26)
29060 ipack = ipack + 1
29061 pack_tmp = packed_data(ipack)
29062 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
29063 pack_tmp = ishft(pack_tmp, -26)
29064 idata = idata + 1
29065 data_tmp = iand(pack_tmp, mask_right(nbits))
29066 full_data(idata) = data_tmp
29067 pack_tmp = ishft(pack_tmp, -nbits)
29068 idata = idata + 1
29069 data_tmp = ishft(pack_tmp, 38)
29070 ipack = ipack + 1
29071 pack_tmp = packed_data(ipack)
29072 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
29073 pack_tmp = ishft(pack_tmp, -38)
29074 idata = idata + 1
29075 data_tmp = ishft(pack_tmp, 12)
29076 ipack = ipack + 1
29077 pack_tmp = packed_data(ipack)
29078 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
29079 pack_tmp = ishft(pack_tmp, -12)
29080 idata = idata + 1
29081 data_tmp = iand(pack_tmp, mask_right(nbits))
29082 full_data(idata) = data_tmp
29083 pack_tmp = ishft(pack_tmp, -nbits)
29084 idata = idata + 1
29085 data_tmp = ishft(pack_tmp, 24)
29086 ipack = ipack + 1
29087 pack_tmp = packed_data(ipack)
29088 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
29089 pack_tmp = ishft(pack_tmp, -24)
29090 idata = idata + 1
29091 data_tmp = iand(pack_tmp, mask_right(nbits))
29092 full_data(idata) = data_tmp
29093 pack_tmp = ishft(pack_tmp, -nbits)
29094 idata = idata + 1
29095 data_tmp = ishft(pack_tmp, 36)
29096 ipack = ipack + 1
29097 pack_tmp = packed_data(ipack)
29098 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
29099 pack_tmp = ishft(pack_tmp, -36)
29100 idata = idata + 1
29101 data_tmp = ishft(pack_tmp, 10)
29102 ipack = ipack + 1
29103 pack_tmp = packed_data(ipack)
29104 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
29105 pack_tmp = ishft(pack_tmp, -10)
29106 idata = idata + 1
29107 data_tmp = iand(pack_tmp, mask_right(nbits))
29108 full_data(idata) = data_tmp
29109 pack_tmp = ishft(pack_tmp, -nbits)
29110 idata = idata + 1
29111 data_tmp = ishft(pack_tmp, 22)
29112 ipack = ipack + 1
29113 pack_tmp = packed_data(ipack)
29114 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
29115 pack_tmp = ishft(pack_tmp, -22)
29116 idata = idata + 1
29117 data_tmp = iand(pack_tmp, mask_right(nbits))
29118 full_data(idata) = data_tmp
29119 pack_tmp = ishft(pack_tmp, -nbits)
29120 idata = idata + 1
29121 data_tmp = ishft(pack_tmp, 34)
29122 ipack = ipack + 1
29123 pack_tmp = packed_data(ipack)
29124 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
29125 pack_tmp = ishft(pack_tmp, -34)
29126 idata = idata + 1
29127 data_tmp = ishft(pack_tmp, 8)
29128 ipack = ipack + 1
29129 pack_tmp = packed_data(ipack)
29130 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
29131 pack_tmp = ishft(pack_tmp, -8)
29132 idata = idata + 1
29133 data_tmp = iand(pack_tmp, mask_right(nbits))
29134 full_data(idata) = data_tmp
29135 pack_tmp = ishft(pack_tmp, -nbits)
29136 idata = idata + 1
29137 data_tmp = ishft(pack_tmp, 20)
29138 ipack = ipack + 1
29139 pack_tmp = packed_data(ipack)
29140 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
29141 pack_tmp = ishft(pack_tmp, -20)
29142 idata = idata + 1
29143 data_tmp = iand(pack_tmp, mask_right(nbits))
29144 full_data(idata) = data_tmp
29145 pack_tmp = ishft(pack_tmp, -nbits)
29146 idata = idata + 1
29147 data_tmp = ishft(pack_tmp, 32)
29148 ipack = ipack + 1
29149 pack_tmp = packed_data(ipack)
29150 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
29151 pack_tmp = ishft(pack_tmp, -32)
29152 idata = idata + 1
29153 data_tmp = ishft(pack_tmp, 6)
29154 ipack = ipack + 1
29155 pack_tmp = packed_data(ipack)
29156 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
29157 pack_tmp = ishft(pack_tmp, -6)
29158 idata = idata + 1
29159 data_tmp = iand(pack_tmp, mask_right(nbits))
29160 full_data(idata) = data_tmp
29161 pack_tmp = ishft(pack_tmp, -nbits)
29162 idata = idata + 1
29163 data_tmp = ishft(pack_tmp, 18)
29164 ipack = ipack + 1
29165 pack_tmp = packed_data(ipack)
29166 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
29167 pack_tmp = ishft(pack_tmp, -18)
29168 idata = idata + 1
29169 data_tmp = iand(pack_tmp, mask_right(nbits))
29170 full_data(idata) = data_tmp
29171 pack_tmp = ishft(pack_tmp, -nbits)
29172 idata = idata + 1
29173 data_tmp = ishft(pack_tmp, 30)
29174 ipack = ipack + 1
29175 pack_tmp = packed_data(ipack)
29176 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
29177 pack_tmp = ishft(pack_tmp, -30)
29178 idata = idata + 1
29179 data_tmp = ishft(pack_tmp, 4)
29180 ipack = ipack + 1
29181 pack_tmp = packed_data(ipack)
29182 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
29183 pack_tmp = ishft(pack_tmp, -4)
29184 idata = idata + 1
29185 data_tmp = iand(pack_tmp, mask_right(nbits))
29186 full_data(idata) = data_tmp
29187 pack_tmp = ishft(pack_tmp, -nbits)
29188 idata = idata + 1
29189 data_tmp = ishft(pack_tmp, 16)
29190 ipack = ipack + 1
29191 pack_tmp = packed_data(ipack)
29192 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
29193 pack_tmp = ishft(pack_tmp, -16)
29194 idata = idata + 1
29195 data_tmp = iand(pack_tmp, mask_right(nbits))
29196 full_data(idata) = data_tmp
29197 pack_tmp = ishft(pack_tmp, -nbits)
29198 idata = idata + 1
29199 data_tmp = ishft(pack_tmp, 28)
29200 ipack = ipack + 1
29201 pack_tmp = packed_data(ipack)
29202 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
29203 pack_tmp = ishft(pack_tmp, -28)
29204 idata = idata + 1
29205 data_tmp = ishft(pack_tmp, 2)
29206 ipack = ipack + 1
29207 pack_tmp = packed_data(ipack)
29208 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
29209 pack_tmp = ishft(pack_tmp, -2)
29210 idata = idata + 1
29211 data_tmp = iand(pack_tmp, mask_right(nbits))
29212 full_data(idata) = data_tmp
29213 pack_tmp = ishft(pack_tmp, -nbits)
29214 idata = idata + 1
29215 data_tmp = ishft(pack_tmp, 14)
29216 ipack = ipack + 1
29217 pack_tmp = packed_data(ipack)
29218 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
29219 pack_tmp = ishft(pack_tmp, -14)
29220 idata = idata + 1
29221 data_tmp = iand(pack_tmp, mask_right(nbits))
29222 full_data(idata) = data_tmp
29223 pack_tmp = ishft(pack_tmp, -nbits)
29224 idata = idata + 1
29225 data_tmp = ishft(pack_tmp, 26)
29226 ipack = ipack + 1
29227 pack_tmp = packed_data(ipack)
29228 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
29229 pack_tmp = ishft(pack_tmp, -26)
29230 idata = idata + 1
29231 data_tmp = iand(pack_tmp, mask_right(nbits))
29232 full_data(idata) = data_tmp
29233 pack_tmp = ishft(pack_tmp, -nbits)
29234 END DO
29235 IF (ndata_rep < ndata) THEN
29236 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
29237 END IF
29238 END SUBROUTINE bits2ints_38
29239
29240! **************************************************************************************************
29241!> \brief ...
29242!> \param Ndata ...
29243!> \param packed_data ...
29244!> \param full_data ...
29245! **************************************************************************************************
29246 SUBROUTINE ints2bits_39(Ndata, packed_data, full_data)
29247 INTEGER, INTENT(IN) :: Ndata
29248 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
29249 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
29250
29251 INTEGER, PARAMETER :: Nbits = 39
29252
29253 INTEGER :: idata, ipack, kdata, Ndata_rep
29254 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
29255
29256 idata = 0
29257 ipack = 0
29258 ndata_rep = (ndata/64)*64
29259 DO kdata = 1, ndata_rep, 64
29260 pack_tmp = 0
29261 idata = idata + 1
29262 data_tmp = full_data(idata)
29263 data_tmp = ishft(data_tmp, 25)
29264 pack_tmp = ior(pack_tmp, data_tmp)
29265 pack_tmp = ishft(pack_tmp, -25)
29266 idata = idata + 1
29267 data_tmp = full_data(idata)
29268 data_tmp = ishft(data_tmp, 25)
29269 data_tmp = iand(data_tmp, mask_left(25))
29270 pack_tmp = ior(pack_tmp, data_tmp)
29271 ipack = ipack + 1
29272 packed_data(ipack) = pack_tmp
29273 data_tmp = full_data(idata)
29274 pack_tmp = ishft(data_tmp, 50)
29275 pack_tmp = ishft(pack_tmp, -39)
29276 idata = idata + 1
29277 data_tmp = full_data(idata)
29278 data_tmp = ishft(data_tmp, 25)
29279 pack_tmp = ior(pack_tmp, data_tmp)
29280 pack_tmp = ishft(pack_tmp, -11)
29281 idata = idata + 1
29282 data_tmp = full_data(idata)
29283 data_tmp = ishft(data_tmp, 25)
29284 data_tmp = iand(data_tmp, mask_left(11))
29285 pack_tmp = ior(pack_tmp, data_tmp)
29286 ipack = ipack + 1
29287 packed_data(ipack) = pack_tmp
29288 data_tmp = full_data(idata)
29289 pack_tmp = ishft(data_tmp, 36)
29290 pack_tmp = ishft(pack_tmp, -36)
29291 idata = idata + 1
29292 data_tmp = full_data(idata)
29293 data_tmp = ishft(data_tmp, 25)
29294 data_tmp = iand(data_tmp, mask_left(36))
29295 pack_tmp = ior(pack_tmp, data_tmp)
29296 ipack = ipack + 1
29297 packed_data(ipack) = pack_tmp
29298 data_tmp = full_data(idata)
29299 pack_tmp = ishft(data_tmp, 61)
29300 pack_tmp = ishft(pack_tmp, -39)
29301 idata = idata + 1
29302 data_tmp = full_data(idata)
29303 data_tmp = ishft(data_tmp, 25)
29304 pack_tmp = ior(pack_tmp, data_tmp)
29305 pack_tmp = ishft(pack_tmp, -22)
29306 idata = idata + 1
29307 data_tmp = full_data(idata)
29308 data_tmp = ishft(data_tmp, 25)
29309 data_tmp = iand(data_tmp, mask_left(22))
29310 pack_tmp = ior(pack_tmp, data_tmp)
29311 ipack = ipack + 1
29312 packed_data(ipack) = pack_tmp
29313 data_tmp = full_data(idata)
29314 pack_tmp = ishft(data_tmp, 47)
29315 pack_tmp = ishft(pack_tmp, -39)
29316 idata = idata + 1
29317 data_tmp = full_data(idata)
29318 data_tmp = ishft(data_tmp, 25)
29319 pack_tmp = ior(pack_tmp, data_tmp)
29320 pack_tmp = ishft(pack_tmp, -8)
29321 idata = idata + 1
29322 data_tmp = full_data(idata)
29323 data_tmp = ishft(data_tmp, 25)
29324 data_tmp = iand(data_tmp, mask_left(8))
29325 pack_tmp = ior(pack_tmp, data_tmp)
29326 ipack = ipack + 1
29327 packed_data(ipack) = pack_tmp
29328 data_tmp = full_data(idata)
29329 pack_tmp = ishft(data_tmp, 33)
29330 pack_tmp = ishft(pack_tmp, -33)
29331 idata = idata + 1
29332 data_tmp = full_data(idata)
29333 data_tmp = ishft(data_tmp, 25)
29334 data_tmp = iand(data_tmp, mask_left(33))
29335 pack_tmp = ior(pack_tmp, data_tmp)
29336 ipack = ipack + 1
29337 packed_data(ipack) = pack_tmp
29338 data_tmp = full_data(idata)
29339 pack_tmp = ishft(data_tmp, 58)
29340 pack_tmp = ishft(pack_tmp, -39)
29341 idata = idata + 1
29342 data_tmp = full_data(idata)
29343 data_tmp = ishft(data_tmp, 25)
29344 pack_tmp = ior(pack_tmp, data_tmp)
29345 pack_tmp = ishft(pack_tmp, -19)
29346 idata = idata + 1
29347 data_tmp = full_data(idata)
29348 data_tmp = ishft(data_tmp, 25)
29349 data_tmp = iand(data_tmp, mask_left(19))
29350 pack_tmp = ior(pack_tmp, data_tmp)
29351 ipack = ipack + 1
29352 packed_data(ipack) = pack_tmp
29353 data_tmp = full_data(idata)
29354 pack_tmp = ishft(data_tmp, 44)
29355 pack_tmp = ishft(pack_tmp, -39)
29356 idata = idata + 1
29357 data_tmp = full_data(idata)
29358 data_tmp = ishft(data_tmp, 25)
29359 pack_tmp = ior(pack_tmp, data_tmp)
29360 pack_tmp = ishft(pack_tmp, -5)
29361 idata = idata + 1
29362 data_tmp = full_data(idata)
29363 data_tmp = ishft(data_tmp, 25)
29364 data_tmp = iand(data_tmp, mask_left(5))
29365 pack_tmp = ior(pack_tmp, data_tmp)
29366 ipack = ipack + 1
29367 packed_data(ipack) = pack_tmp
29368 data_tmp = full_data(idata)
29369 pack_tmp = ishft(data_tmp, 30)
29370 pack_tmp = ishft(pack_tmp, -30)
29371 idata = idata + 1
29372 data_tmp = full_data(idata)
29373 data_tmp = ishft(data_tmp, 25)
29374 data_tmp = iand(data_tmp, mask_left(30))
29375 pack_tmp = ior(pack_tmp, data_tmp)
29376 ipack = ipack + 1
29377 packed_data(ipack) = pack_tmp
29378 data_tmp = full_data(idata)
29379 pack_tmp = ishft(data_tmp, 55)
29380 pack_tmp = ishft(pack_tmp, -39)
29381 idata = idata + 1
29382 data_tmp = full_data(idata)
29383 data_tmp = ishft(data_tmp, 25)
29384 pack_tmp = ior(pack_tmp, data_tmp)
29385 pack_tmp = ishft(pack_tmp, -16)
29386 idata = idata + 1
29387 data_tmp = full_data(idata)
29388 data_tmp = ishft(data_tmp, 25)
29389 data_tmp = iand(data_tmp, mask_left(16))
29390 pack_tmp = ior(pack_tmp, data_tmp)
29391 ipack = ipack + 1
29392 packed_data(ipack) = pack_tmp
29393 data_tmp = full_data(idata)
29394 pack_tmp = ishft(data_tmp, 41)
29395 pack_tmp = ishft(pack_tmp, -39)
29396 idata = idata + 1
29397 data_tmp = full_data(idata)
29398 data_tmp = ishft(data_tmp, 25)
29399 pack_tmp = ior(pack_tmp, data_tmp)
29400 pack_tmp = ishft(pack_tmp, -2)
29401 idata = idata + 1
29402 data_tmp = full_data(idata)
29403 data_tmp = ishft(data_tmp, 25)
29404 data_tmp = iand(data_tmp, mask_left(2))
29405 pack_tmp = ior(pack_tmp, data_tmp)
29406 ipack = ipack + 1
29407 packed_data(ipack) = pack_tmp
29408 data_tmp = full_data(idata)
29409 pack_tmp = ishft(data_tmp, 27)
29410 pack_tmp = ishft(pack_tmp, -27)
29411 idata = idata + 1
29412 data_tmp = full_data(idata)
29413 data_tmp = ishft(data_tmp, 25)
29414 data_tmp = iand(data_tmp, mask_left(27))
29415 pack_tmp = ior(pack_tmp, data_tmp)
29416 ipack = ipack + 1
29417 packed_data(ipack) = pack_tmp
29418 data_tmp = full_data(idata)
29419 pack_tmp = ishft(data_tmp, 52)
29420 pack_tmp = ishft(pack_tmp, -39)
29421 idata = idata + 1
29422 data_tmp = full_data(idata)
29423 data_tmp = ishft(data_tmp, 25)
29424 pack_tmp = ior(pack_tmp, data_tmp)
29425 pack_tmp = ishft(pack_tmp, -13)
29426 idata = idata + 1
29427 data_tmp = full_data(idata)
29428 data_tmp = ishft(data_tmp, 25)
29429 data_tmp = iand(data_tmp, mask_left(13))
29430 pack_tmp = ior(pack_tmp, data_tmp)
29431 ipack = ipack + 1
29432 packed_data(ipack) = pack_tmp
29433 data_tmp = full_data(idata)
29434 pack_tmp = ishft(data_tmp, 38)
29435 pack_tmp = ishft(pack_tmp, -38)
29436 idata = idata + 1
29437 data_tmp = full_data(idata)
29438 data_tmp = ishft(data_tmp, 25)
29439 data_tmp = iand(data_tmp, mask_left(38))
29440 pack_tmp = ior(pack_tmp, data_tmp)
29441 ipack = ipack + 1
29442 packed_data(ipack) = pack_tmp
29443 data_tmp = full_data(idata)
29444 pack_tmp = ishft(data_tmp, 63)
29445 pack_tmp = ishft(pack_tmp, -39)
29446 idata = idata + 1
29447 data_tmp = full_data(idata)
29448 data_tmp = ishft(data_tmp, 25)
29449 pack_tmp = ior(pack_tmp, data_tmp)
29450 pack_tmp = ishft(pack_tmp, -24)
29451 idata = idata + 1
29452 data_tmp = full_data(idata)
29453 data_tmp = ishft(data_tmp, 25)
29454 data_tmp = iand(data_tmp, mask_left(24))
29455 pack_tmp = ior(pack_tmp, data_tmp)
29456 ipack = ipack + 1
29457 packed_data(ipack) = pack_tmp
29458 data_tmp = full_data(idata)
29459 pack_tmp = ishft(data_tmp, 49)
29460 pack_tmp = ishft(pack_tmp, -39)
29461 idata = idata + 1
29462 data_tmp = full_data(idata)
29463 data_tmp = ishft(data_tmp, 25)
29464 pack_tmp = ior(pack_tmp, data_tmp)
29465 pack_tmp = ishft(pack_tmp, -10)
29466 idata = idata + 1
29467 data_tmp = full_data(idata)
29468 data_tmp = ishft(data_tmp, 25)
29469 data_tmp = iand(data_tmp, mask_left(10))
29470 pack_tmp = ior(pack_tmp, data_tmp)
29471 ipack = ipack + 1
29472 packed_data(ipack) = pack_tmp
29473 data_tmp = full_data(idata)
29474 pack_tmp = ishft(data_tmp, 35)
29475 pack_tmp = ishft(pack_tmp, -35)
29476 idata = idata + 1
29477 data_tmp = full_data(idata)
29478 data_tmp = ishft(data_tmp, 25)
29479 data_tmp = iand(data_tmp, mask_left(35))
29480 pack_tmp = ior(pack_tmp, data_tmp)
29481 ipack = ipack + 1
29482 packed_data(ipack) = pack_tmp
29483 data_tmp = full_data(idata)
29484 pack_tmp = ishft(data_tmp, 60)
29485 pack_tmp = ishft(pack_tmp, -39)
29486 idata = idata + 1
29487 data_tmp = full_data(idata)
29488 data_tmp = ishft(data_tmp, 25)
29489 pack_tmp = ior(pack_tmp, data_tmp)
29490 pack_tmp = ishft(pack_tmp, -21)
29491 idata = idata + 1
29492 data_tmp = full_data(idata)
29493 data_tmp = ishft(data_tmp, 25)
29494 data_tmp = iand(data_tmp, mask_left(21))
29495 pack_tmp = ior(pack_tmp, data_tmp)
29496 ipack = ipack + 1
29497 packed_data(ipack) = pack_tmp
29498 data_tmp = full_data(idata)
29499 pack_tmp = ishft(data_tmp, 46)
29500 pack_tmp = ishft(pack_tmp, -39)
29501 idata = idata + 1
29502 data_tmp = full_data(idata)
29503 data_tmp = ishft(data_tmp, 25)
29504 pack_tmp = ior(pack_tmp, data_tmp)
29505 pack_tmp = ishft(pack_tmp, -7)
29506 idata = idata + 1
29507 data_tmp = full_data(idata)
29508 data_tmp = ishft(data_tmp, 25)
29509 data_tmp = iand(data_tmp, mask_left(7))
29510 pack_tmp = ior(pack_tmp, data_tmp)
29511 ipack = ipack + 1
29512 packed_data(ipack) = pack_tmp
29513 data_tmp = full_data(idata)
29514 pack_tmp = ishft(data_tmp, 32)
29515 pack_tmp = ishft(pack_tmp, -32)
29516 idata = idata + 1
29517 data_tmp = full_data(idata)
29518 data_tmp = ishft(data_tmp, 25)
29519 data_tmp = iand(data_tmp, mask_left(32))
29520 pack_tmp = ior(pack_tmp, data_tmp)
29521 ipack = ipack + 1
29522 packed_data(ipack) = pack_tmp
29523 data_tmp = full_data(idata)
29524 pack_tmp = ishft(data_tmp, 57)
29525 pack_tmp = ishft(pack_tmp, -39)
29526 idata = idata + 1
29527 data_tmp = full_data(idata)
29528 data_tmp = ishft(data_tmp, 25)
29529 pack_tmp = ior(pack_tmp, data_tmp)
29530 pack_tmp = ishft(pack_tmp, -18)
29531 idata = idata + 1
29532 data_tmp = full_data(idata)
29533 data_tmp = ishft(data_tmp, 25)
29534 data_tmp = iand(data_tmp, mask_left(18))
29535 pack_tmp = ior(pack_tmp, data_tmp)
29536 ipack = ipack + 1
29537 packed_data(ipack) = pack_tmp
29538 data_tmp = full_data(idata)
29539 pack_tmp = ishft(data_tmp, 43)
29540 pack_tmp = ishft(pack_tmp, -39)
29541 idata = idata + 1
29542 data_tmp = full_data(idata)
29543 data_tmp = ishft(data_tmp, 25)
29544 pack_tmp = ior(pack_tmp, data_tmp)
29545 pack_tmp = ishft(pack_tmp, -4)
29546 idata = idata + 1
29547 data_tmp = full_data(idata)
29548 data_tmp = ishft(data_tmp, 25)
29549 data_tmp = iand(data_tmp, mask_left(4))
29550 pack_tmp = ior(pack_tmp, data_tmp)
29551 ipack = ipack + 1
29552 packed_data(ipack) = pack_tmp
29553 data_tmp = full_data(idata)
29554 pack_tmp = ishft(data_tmp, 29)
29555 pack_tmp = ishft(pack_tmp, -29)
29556 idata = idata + 1
29557 data_tmp = full_data(idata)
29558 data_tmp = ishft(data_tmp, 25)
29559 data_tmp = iand(data_tmp, mask_left(29))
29560 pack_tmp = ior(pack_tmp, data_tmp)
29561 ipack = ipack + 1
29562 packed_data(ipack) = pack_tmp
29563 data_tmp = full_data(idata)
29564 pack_tmp = ishft(data_tmp, 54)
29565 pack_tmp = ishft(pack_tmp, -39)
29566 idata = idata + 1
29567 data_tmp = full_data(idata)
29568 data_tmp = ishft(data_tmp, 25)
29569 pack_tmp = ior(pack_tmp, data_tmp)
29570 pack_tmp = ishft(pack_tmp, -15)
29571 idata = idata + 1
29572 data_tmp = full_data(idata)
29573 data_tmp = ishft(data_tmp, 25)
29574 data_tmp = iand(data_tmp, mask_left(15))
29575 pack_tmp = ior(pack_tmp, data_tmp)
29576 ipack = ipack + 1
29577 packed_data(ipack) = pack_tmp
29578 data_tmp = full_data(idata)
29579 pack_tmp = ishft(data_tmp, 40)
29580 pack_tmp = ishft(pack_tmp, -39)
29581 idata = idata + 1
29582 data_tmp = full_data(idata)
29583 data_tmp = ishft(data_tmp, 25)
29584 pack_tmp = ior(pack_tmp, data_tmp)
29585 pack_tmp = ishft(pack_tmp, -1)
29586 idata = idata + 1
29587 data_tmp = full_data(idata)
29588 data_tmp = ishft(data_tmp, 25)
29589 data_tmp = iand(data_tmp, mask_left(1))
29590 pack_tmp = ior(pack_tmp, data_tmp)
29591 ipack = ipack + 1
29592 packed_data(ipack) = pack_tmp
29593 data_tmp = full_data(idata)
29594 pack_tmp = ishft(data_tmp, 26)
29595 pack_tmp = ishft(pack_tmp, -26)
29596 idata = idata + 1
29597 data_tmp = full_data(idata)
29598 data_tmp = ishft(data_tmp, 25)
29599 data_tmp = iand(data_tmp, mask_left(26))
29600 pack_tmp = ior(pack_tmp, data_tmp)
29601 ipack = ipack + 1
29602 packed_data(ipack) = pack_tmp
29603 data_tmp = full_data(idata)
29604 pack_tmp = ishft(data_tmp, 51)
29605 pack_tmp = ishft(pack_tmp, -39)
29606 idata = idata + 1
29607 data_tmp = full_data(idata)
29608 data_tmp = ishft(data_tmp, 25)
29609 pack_tmp = ior(pack_tmp, data_tmp)
29610 pack_tmp = ishft(pack_tmp, -12)
29611 idata = idata + 1
29612 data_tmp = full_data(idata)
29613 data_tmp = ishft(data_tmp, 25)
29614 data_tmp = iand(data_tmp, mask_left(12))
29615 pack_tmp = ior(pack_tmp, data_tmp)
29616 ipack = ipack + 1
29617 packed_data(ipack) = pack_tmp
29618 data_tmp = full_data(idata)
29619 pack_tmp = ishft(data_tmp, 37)
29620 pack_tmp = ishft(pack_tmp, -37)
29621 idata = idata + 1
29622 data_tmp = full_data(idata)
29623 data_tmp = ishft(data_tmp, 25)
29624 data_tmp = iand(data_tmp, mask_left(37))
29625 pack_tmp = ior(pack_tmp, data_tmp)
29626 ipack = ipack + 1
29627 packed_data(ipack) = pack_tmp
29628 data_tmp = full_data(idata)
29629 pack_tmp = ishft(data_tmp, 62)
29630 pack_tmp = ishft(pack_tmp, -39)
29631 idata = idata + 1
29632 data_tmp = full_data(idata)
29633 data_tmp = ishft(data_tmp, 25)
29634 pack_tmp = ior(pack_tmp, data_tmp)
29635 pack_tmp = ishft(pack_tmp, -23)
29636 idata = idata + 1
29637 data_tmp = full_data(idata)
29638 data_tmp = ishft(data_tmp, 25)
29639 data_tmp = iand(data_tmp, mask_left(23))
29640 pack_tmp = ior(pack_tmp, data_tmp)
29641 ipack = ipack + 1
29642 packed_data(ipack) = pack_tmp
29643 data_tmp = full_data(idata)
29644 pack_tmp = ishft(data_tmp, 48)
29645 pack_tmp = ishft(pack_tmp, -39)
29646 idata = idata + 1
29647 data_tmp = full_data(idata)
29648 data_tmp = ishft(data_tmp, 25)
29649 pack_tmp = ior(pack_tmp, data_tmp)
29650 pack_tmp = ishft(pack_tmp, -9)
29651 idata = idata + 1
29652 data_tmp = full_data(idata)
29653 data_tmp = ishft(data_tmp, 25)
29654 data_tmp = iand(data_tmp, mask_left(9))
29655 pack_tmp = ior(pack_tmp, data_tmp)
29656 ipack = ipack + 1
29657 packed_data(ipack) = pack_tmp
29658 data_tmp = full_data(idata)
29659 pack_tmp = ishft(data_tmp, 34)
29660 pack_tmp = ishft(pack_tmp, -34)
29661 idata = idata + 1
29662 data_tmp = full_data(idata)
29663 data_tmp = ishft(data_tmp, 25)
29664 data_tmp = iand(data_tmp, mask_left(34))
29665 pack_tmp = ior(pack_tmp, data_tmp)
29666 ipack = ipack + 1
29667 packed_data(ipack) = pack_tmp
29668 data_tmp = full_data(idata)
29669 pack_tmp = ishft(data_tmp, 59)
29670 pack_tmp = ishft(pack_tmp, -39)
29671 idata = idata + 1
29672 data_tmp = full_data(idata)
29673 data_tmp = ishft(data_tmp, 25)
29674 pack_tmp = ior(pack_tmp, data_tmp)
29675 pack_tmp = ishft(pack_tmp, -20)
29676 idata = idata + 1
29677 data_tmp = full_data(idata)
29678 data_tmp = ishft(data_tmp, 25)
29679 data_tmp = iand(data_tmp, mask_left(20))
29680 pack_tmp = ior(pack_tmp, data_tmp)
29681 ipack = ipack + 1
29682 packed_data(ipack) = pack_tmp
29683 data_tmp = full_data(idata)
29684 pack_tmp = ishft(data_tmp, 45)
29685 pack_tmp = ishft(pack_tmp, -39)
29686 idata = idata + 1
29687 data_tmp = full_data(idata)
29688 data_tmp = ishft(data_tmp, 25)
29689 pack_tmp = ior(pack_tmp, data_tmp)
29690 pack_tmp = ishft(pack_tmp, -6)
29691 idata = idata + 1
29692 data_tmp = full_data(idata)
29693 data_tmp = ishft(data_tmp, 25)
29694 data_tmp = iand(data_tmp, mask_left(6))
29695 pack_tmp = ior(pack_tmp, data_tmp)
29696 ipack = ipack + 1
29697 packed_data(ipack) = pack_tmp
29698 data_tmp = full_data(idata)
29699 pack_tmp = ishft(data_tmp, 31)
29700 pack_tmp = ishft(pack_tmp, -31)
29701 idata = idata + 1
29702 data_tmp = full_data(idata)
29703 data_tmp = ishft(data_tmp, 25)
29704 data_tmp = iand(data_tmp, mask_left(31))
29705 pack_tmp = ior(pack_tmp, data_tmp)
29706 ipack = ipack + 1
29707 packed_data(ipack) = pack_tmp
29708 data_tmp = full_data(idata)
29709 pack_tmp = ishft(data_tmp, 56)
29710 pack_tmp = ishft(pack_tmp, -39)
29711 idata = idata + 1
29712 data_tmp = full_data(idata)
29713 data_tmp = ishft(data_tmp, 25)
29714 pack_tmp = ior(pack_tmp, data_tmp)
29715 pack_tmp = ishft(pack_tmp, -17)
29716 idata = idata + 1
29717 data_tmp = full_data(idata)
29718 data_tmp = ishft(data_tmp, 25)
29719 data_tmp = iand(data_tmp, mask_left(17))
29720 pack_tmp = ior(pack_tmp, data_tmp)
29721 ipack = ipack + 1
29722 packed_data(ipack) = pack_tmp
29723 data_tmp = full_data(idata)
29724 pack_tmp = ishft(data_tmp, 42)
29725 pack_tmp = ishft(pack_tmp, -39)
29726 idata = idata + 1
29727 data_tmp = full_data(idata)
29728 data_tmp = ishft(data_tmp, 25)
29729 pack_tmp = ior(pack_tmp, data_tmp)
29730 pack_tmp = ishft(pack_tmp, -3)
29731 idata = idata + 1
29732 data_tmp = full_data(idata)
29733 data_tmp = ishft(data_tmp, 25)
29734 data_tmp = iand(data_tmp, mask_left(3))
29735 pack_tmp = ior(pack_tmp, data_tmp)
29736 ipack = ipack + 1
29737 packed_data(ipack) = pack_tmp
29738 data_tmp = full_data(idata)
29739 pack_tmp = ishft(data_tmp, 28)
29740 pack_tmp = ishft(pack_tmp, -28)
29741 idata = idata + 1
29742 data_tmp = full_data(idata)
29743 data_tmp = ishft(data_tmp, 25)
29744 data_tmp = iand(data_tmp, mask_left(28))
29745 pack_tmp = ior(pack_tmp, data_tmp)
29746 ipack = ipack + 1
29747 packed_data(ipack) = pack_tmp
29748 data_tmp = full_data(idata)
29749 pack_tmp = ishft(data_tmp, 53)
29750 pack_tmp = ishft(pack_tmp, -39)
29751 idata = idata + 1
29752 data_tmp = full_data(idata)
29753 data_tmp = ishft(data_tmp, 25)
29754 pack_tmp = ior(pack_tmp, data_tmp)
29755 pack_tmp = ishft(pack_tmp, -14)
29756 idata = idata + 1
29757 data_tmp = full_data(idata)
29758 data_tmp = ishft(data_tmp, 25)
29759 data_tmp = iand(data_tmp, mask_left(14))
29760 pack_tmp = ior(pack_tmp, data_tmp)
29761 ipack = ipack + 1
29762 packed_data(ipack) = pack_tmp
29763 data_tmp = full_data(idata)
29764 pack_tmp = ishft(data_tmp, 39)
29765 pack_tmp = ishft(pack_tmp, -39)
29766 idata = idata + 1
29767 data_tmp = full_data(idata)
29768 data_tmp = ishft(data_tmp, 25)
29769 pack_tmp = ior(pack_tmp, data_tmp)
29770 pack_tmp = ishft(pack_tmp, 0)
29771 pack_tmp = ishft(pack_tmp, 0)
29772 ipack = ipack + 1
29773 packed_data(ipack) = pack_tmp
29774 END DO
29775 IF (ndata_rep < ndata) THEN
29776 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
29777 END IF
29778 END SUBROUTINE ints2bits_39
29779
29780! **************************************************************************************************
29781!> \brief ...
29782!> \param Ndata ...
29783!> \param packed_data ...
29784!> \param full_data ...
29785! **************************************************************************************************
29786 SUBROUTINE bits2ints_39(Ndata, packed_data, full_data)
29787 INTEGER, INTENT(IN) :: Ndata
29788 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
29789 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
29790
29791 INTEGER, PARAMETER :: Nbits = 39
29792
29793 INTEGER :: idata, ipack, kdata, Ndata_rep
29794 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
29795
29796 ipack = 0
29797 idata = 0
29798 pack_tmp = 0
29799 ndata_rep = (ndata/64)*64
29800 DO kdata = 1, ndata_rep, 64
29801 idata = idata + 1
29802 data_tmp = ishft(pack_tmp, 39)
29803 ipack = ipack + 1
29804 pack_tmp = packed_data(ipack)
29805 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
29806 pack_tmp = ishft(pack_tmp, -39)
29807 idata = idata + 1
29808 data_tmp = ishft(pack_tmp, 14)
29809 ipack = ipack + 1
29810 pack_tmp = packed_data(ipack)
29811 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
29812 pack_tmp = ishft(pack_tmp, -14)
29813 idata = idata + 1
29814 data_tmp = iand(pack_tmp, mask_right(nbits))
29815 full_data(idata) = data_tmp
29816 pack_tmp = ishft(pack_tmp, -nbits)
29817 idata = idata + 1
29818 data_tmp = ishft(pack_tmp, 28)
29819 ipack = ipack + 1
29820 pack_tmp = packed_data(ipack)
29821 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
29822 pack_tmp = ishft(pack_tmp, -28)
29823 idata = idata + 1
29824 data_tmp = ishft(pack_tmp, 3)
29825 ipack = ipack + 1
29826 pack_tmp = packed_data(ipack)
29827 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
29828 pack_tmp = ishft(pack_tmp, -3)
29829 idata = idata + 1
29830 data_tmp = iand(pack_tmp, mask_right(nbits))
29831 full_data(idata) = data_tmp
29832 pack_tmp = ishft(pack_tmp, -nbits)
29833 idata = idata + 1
29834 data_tmp = ishft(pack_tmp, 17)
29835 ipack = ipack + 1
29836 pack_tmp = packed_data(ipack)
29837 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
29838 pack_tmp = ishft(pack_tmp, -17)
29839 idata = idata + 1
29840 data_tmp = iand(pack_tmp, mask_right(nbits))
29841 full_data(idata) = data_tmp
29842 pack_tmp = ishft(pack_tmp, -nbits)
29843 idata = idata + 1
29844 data_tmp = ishft(pack_tmp, 31)
29845 ipack = ipack + 1
29846 pack_tmp = packed_data(ipack)
29847 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
29848 pack_tmp = ishft(pack_tmp, -31)
29849 idata = idata + 1
29850 data_tmp = ishft(pack_tmp, 6)
29851 ipack = ipack + 1
29852 pack_tmp = packed_data(ipack)
29853 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
29854 pack_tmp = ishft(pack_tmp, -6)
29855 idata = idata + 1
29856 data_tmp = iand(pack_tmp, mask_right(nbits))
29857 full_data(idata) = data_tmp
29858 pack_tmp = ishft(pack_tmp, -nbits)
29859 idata = idata + 1
29860 data_tmp = ishft(pack_tmp, 20)
29861 ipack = ipack + 1
29862 pack_tmp = packed_data(ipack)
29863 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
29864 pack_tmp = ishft(pack_tmp, -20)
29865 idata = idata + 1
29866 data_tmp = iand(pack_tmp, mask_right(nbits))
29867 full_data(idata) = data_tmp
29868 pack_tmp = ishft(pack_tmp, -nbits)
29869 idata = idata + 1
29870 data_tmp = ishft(pack_tmp, 34)
29871 ipack = ipack + 1
29872 pack_tmp = packed_data(ipack)
29873 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
29874 pack_tmp = ishft(pack_tmp, -34)
29875 idata = idata + 1
29876 data_tmp = ishft(pack_tmp, 9)
29877 ipack = ipack + 1
29878 pack_tmp = packed_data(ipack)
29879 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
29880 pack_tmp = ishft(pack_tmp, -9)
29881 idata = idata + 1
29882 data_tmp = iand(pack_tmp, mask_right(nbits))
29883 full_data(idata) = data_tmp
29884 pack_tmp = ishft(pack_tmp, -nbits)
29885 idata = idata + 1
29886 data_tmp = ishft(pack_tmp, 23)
29887 ipack = ipack + 1
29888 pack_tmp = packed_data(ipack)
29889 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
29890 pack_tmp = ishft(pack_tmp, -23)
29891 idata = idata + 1
29892 data_tmp = iand(pack_tmp, mask_right(nbits))
29893 full_data(idata) = data_tmp
29894 pack_tmp = ishft(pack_tmp, -nbits)
29895 idata = idata + 1
29896 data_tmp = ishft(pack_tmp, 37)
29897 ipack = ipack + 1
29898 pack_tmp = packed_data(ipack)
29899 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
29900 pack_tmp = ishft(pack_tmp, -37)
29901 idata = idata + 1
29902 data_tmp = ishft(pack_tmp, 12)
29903 ipack = ipack + 1
29904 pack_tmp = packed_data(ipack)
29905 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
29906 pack_tmp = ishft(pack_tmp, -12)
29907 idata = idata + 1
29908 data_tmp = iand(pack_tmp, mask_right(nbits))
29909 full_data(idata) = data_tmp
29910 pack_tmp = ishft(pack_tmp, -nbits)
29911 idata = idata + 1
29912 data_tmp = ishft(pack_tmp, 26)
29913 ipack = ipack + 1
29914 pack_tmp = packed_data(ipack)
29915 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
29916 pack_tmp = ishft(pack_tmp, -26)
29917 idata = idata + 1
29918 data_tmp = ishft(pack_tmp, 1)
29919 ipack = ipack + 1
29920 pack_tmp = packed_data(ipack)
29921 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
29922 pack_tmp = ishft(pack_tmp, -1)
29923 idata = idata + 1
29924 data_tmp = iand(pack_tmp, mask_right(nbits))
29925 full_data(idata) = data_tmp
29926 pack_tmp = ishft(pack_tmp, -nbits)
29927 idata = idata + 1
29928 data_tmp = ishft(pack_tmp, 15)
29929 ipack = ipack + 1
29930 pack_tmp = packed_data(ipack)
29931 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
29932 pack_tmp = ishft(pack_tmp, -15)
29933 idata = idata + 1
29934 data_tmp = iand(pack_tmp, mask_right(nbits))
29935 full_data(idata) = data_tmp
29936 pack_tmp = ishft(pack_tmp, -nbits)
29937 idata = idata + 1
29938 data_tmp = ishft(pack_tmp, 29)
29939 ipack = ipack + 1
29940 pack_tmp = packed_data(ipack)
29941 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
29942 pack_tmp = ishft(pack_tmp, -29)
29943 idata = idata + 1
29944 data_tmp = ishft(pack_tmp, 4)
29945 ipack = ipack + 1
29946 pack_tmp = packed_data(ipack)
29947 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
29948 pack_tmp = ishft(pack_tmp, -4)
29949 idata = idata + 1
29950 data_tmp = iand(pack_tmp, mask_right(nbits))
29951 full_data(idata) = data_tmp
29952 pack_tmp = ishft(pack_tmp, -nbits)
29953 idata = idata + 1
29954 data_tmp = ishft(pack_tmp, 18)
29955 ipack = ipack + 1
29956 pack_tmp = packed_data(ipack)
29957 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
29958 pack_tmp = ishft(pack_tmp, -18)
29959 idata = idata + 1
29960 data_tmp = iand(pack_tmp, mask_right(nbits))
29961 full_data(idata) = data_tmp
29962 pack_tmp = ishft(pack_tmp, -nbits)
29963 idata = idata + 1
29964 data_tmp = ishft(pack_tmp, 32)
29965 ipack = ipack + 1
29966 pack_tmp = packed_data(ipack)
29967 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
29968 pack_tmp = ishft(pack_tmp, -32)
29969 idata = idata + 1
29970 data_tmp = ishft(pack_tmp, 7)
29971 ipack = ipack + 1
29972 pack_tmp = packed_data(ipack)
29973 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
29974 pack_tmp = ishft(pack_tmp, -7)
29975 idata = idata + 1
29976 data_tmp = iand(pack_tmp, mask_right(nbits))
29977 full_data(idata) = data_tmp
29978 pack_tmp = ishft(pack_tmp, -nbits)
29979 idata = idata + 1
29980 data_tmp = ishft(pack_tmp, 21)
29981 ipack = ipack + 1
29982 pack_tmp = packed_data(ipack)
29983 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
29984 pack_tmp = ishft(pack_tmp, -21)
29985 idata = idata + 1
29986 data_tmp = iand(pack_tmp, mask_right(nbits))
29987 full_data(idata) = data_tmp
29988 pack_tmp = ishft(pack_tmp, -nbits)
29989 idata = idata + 1
29990 data_tmp = ishft(pack_tmp, 35)
29991 ipack = ipack + 1
29992 pack_tmp = packed_data(ipack)
29993 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
29994 pack_tmp = ishft(pack_tmp, -35)
29995 idata = idata + 1
29996 data_tmp = ishft(pack_tmp, 10)
29997 ipack = ipack + 1
29998 pack_tmp = packed_data(ipack)
29999 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
30000 pack_tmp = ishft(pack_tmp, -10)
30001 idata = idata + 1
30002 data_tmp = iand(pack_tmp, mask_right(nbits))
30003 full_data(idata) = data_tmp
30004 pack_tmp = ishft(pack_tmp, -nbits)
30005 idata = idata + 1
30006 data_tmp = ishft(pack_tmp, 24)
30007 ipack = ipack + 1
30008 pack_tmp = packed_data(ipack)
30009 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
30010 pack_tmp = ishft(pack_tmp, -24)
30011 idata = idata + 1
30012 data_tmp = iand(pack_tmp, mask_right(nbits))
30013 full_data(idata) = data_tmp
30014 pack_tmp = ishft(pack_tmp, -nbits)
30015 idata = idata + 1
30016 data_tmp = ishft(pack_tmp, 38)
30017 ipack = ipack + 1
30018 pack_tmp = packed_data(ipack)
30019 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
30020 pack_tmp = ishft(pack_tmp, -38)
30021 idata = idata + 1
30022 data_tmp = ishft(pack_tmp, 13)
30023 ipack = ipack + 1
30024 pack_tmp = packed_data(ipack)
30025 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
30026 pack_tmp = ishft(pack_tmp, -13)
30027 idata = idata + 1
30028 data_tmp = iand(pack_tmp, mask_right(nbits))
30029 full_data(idata) = data_tmp
30030 pack_tmp = ishft(pack_tmp, -nbits)
30031 idata = idata + 1
30032 data_tmp = ishft(pack_tmp, 27)
30033 ipack = ipack + 1
30034 pack_tmp = packed_data(ipack)
30035 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
30036 pack_tmp = ishft(pack_tmp, -27)
30037 idata = idata + 1
30038 data_tmp = ishft(pack_tmp, 2)
30039 ipack = ipack + 1
30040 pack_tmp = packed_data(ipack)
30041 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
30042 pack_tmp = ishft(pack_tmp, -2)
30043 idata = idata + 1
30044 data_tmp = iand(pack_tmp, mask_right(nbits))
30045 full_data(idata) = data_tmp
30046 pack_tmp = ishft(pack_tmp, -nbits)
30047 idata = idata + 1
30048 data_tmp = ishft(pack_tmp, 16)
30049 ipack = ipack + 1
30050 pack_tmp = packed_data(ipack)
30051 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
30052 pack_tmp = ishft(pack_tmp, -16)
30053 idata = idata + 1
30054 data_tmp = iand(pack_tmp, mask_right(nbits))
30055 full_data(idata) = data_tmp
30056 pack_tmp = ishft(pack_tmp, -nbits)
30057 idata = idata + 1
30058 data_tmp = ishft(pack_tmp, 30)
30059 ipack = ipack + 1
30060 pack_tmp = packed_data(ipack)
30061 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
30062 pack_tmp = ishft(pack_tmp, -30)
30063 idata = idata + 1
30064 data_tmp = ishft(pack_tmp, 5)
30065 ipack = ipack + 1
30066 pack_tmp = packed_data(ipack)
30067 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
30068 pack_tmp = ishft(pack_tmp, -5)
30069 idata = idata + 1
30070 data_tmp = iand(pack_tmp, mask_right(nbits))
30071 full_data(idata) = data_tmp
30072 pack_tmp = ishft(pack_tmp, -nbits)
30073 idata = idata + 1
30074 data_tmp = ishft(pack_tmp, 19)
30075 ipack = ipack + 1
30076 pack_tmp = packed_data(ipack)
30077 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
30078 pack_tmp = ishft(pack_tmp, -19)
30079 idata = idata + 1
30080 data_tmp = iand(pack_tmp, mask_right(nbits))
30081 full_data(idata) = data_tmp
30082 pack_tmp = ishft(pack_tmp, -nbits)
30083 idata = idata + 1
30084 data_tmp = ishft(pack_tmp, 33)
30085 ipack = ipack + 1
30086 pack_tmp = packed_data(ipack)
30087 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
30088 pack_tmp = ishft(pack_tmp, -33)
30089 idata = idata + 1
30090 data_tmp = ishft(pack_tmp, 8)
30091 ipack = ipack + 1
30092 pack_tmp = packed_data(ipack)
30093 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
30094 pack_tmp = ishft(pack_tmp, -8)
30095 idata = idata + 1
30096 data_tmp = iand(pack_tmp, mask_right(nbits))
30097 full_data(idata) = data_tmp
30098 pack_tmp = ishft(pack_tmp, -nbits)
30099 idata = idata + 1
30100 data_tmp = ishft(pack_tmp, 22)
30101 ipack = ipack + 1
30102 pack_tmp = packed_data(ipack)
30103 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
30104 pack_tmp = ishft(pack_tmp, -22)
30105 idata = idata + 1
30106 data_tmp = iand(pack_tmp, mask_right(nbits))
30107 full_data(idata) = data_tmp
30108 pack_tmp = ishft(pack_tmp, -nbits)
30109 idata = idata + 1
30110 data_tmp = ishft(pack_tmp, 36)
30111 ipack = ipack + 1
30112 pack_tmp = packed_data(ipack)
30113 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
30114 pack_tmp = ishft(pack_tmp, -36)
30115 idata = idata + 1
30116 data_tmp = ishft(pack_tmp, 11)
30117 ipack = ipack + 1
30118 pack_tmp = packed_data(ipack)
30119 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
30120 pack_tmp = ishft(pack_tmp, -11)
30121 idata = idata + 1
30122 data_tmp = iand(pack_tmp, mask_right(nbits))
30123 full_data(idata) = data_tmp
30124 pack_tmp = ishft(pack_tmp, -nbits)
30125 idata = idata + 1
30126 data_tmp = ishft(pack_tmp, 25)
30127 ipack = ipack + 1
30128 pack_tmp = packed_data(ipack)
30129 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
30130 pack_tmp = ishft(pack_tmp, -25)
30131 idata = idata + 1
30132 data_tmp = iand(pack_tmp, mask_right(nbits))
30133 full_data(idata) = data_tmp
30134 pack_tmp = ishft(pack_tmp, -nbits)
30135 END DO
30136 IF (ndata_rep < ndata) THEN
30137 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
30138 END IF
30139 END SUBROUTINE bits2ints_39
30140
30141! **************************************************************************************************
30142!> \brief ...
30143!> \param Ndata ...
30144!> \param packed_data ...
30145!> \param full_data ...
30146! **************************************************************************************************
30147 SUBROUTINE ints2bits_40(Ndata, packed_data, full_data)
30148 INTEGER, INTENT(IN) :: Ndata
30149 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
30150 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
30151
30152 INTEGER, PARAMETER :: Nbits = 40
30153
30154 INTEGER :: idata, ipack, kdata, Ndata_rep
30155 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
30156
30157 idata = 0
30158 ipack = 0
30159 ndata_rep = (ndata/64)*64
30160 DO kdata = 1, ndata_rep, 64
30161 pack_tmp = 0
30162 idata = idata + 1
30163 data_tmp = full_data(idata)
30164 data_tmp = ishft(data_tmp, 24)
30165 pack_tmp = ior(pack_tmp, data_tmp)
30166 pack_tmp = ishft(pack_tmp, -24)
30167 idata = idata + 1
30168 data_tmp = full_data(idata)
30169 data_tmp = ishft(data_tmp, 24)
30170 data_tmp = iand(data_tmp, mask_left(24))
30171 pack_tmp = ior(pack_tmp, data_tmp)
30172 ipack = ipack + 1
30173 packed_data(ipack) = pack_tmp
30174 data_tmp = full_data(idata)
30175 pack_tmp = ishft(data_tmp, 48)
30176 pack_tmp = ishft(pack_tmp, -40)
30177 idata = idata + 1
30178 data_tmp = full_data(idata)
30179 data_tmp = ishft(data_tmp, 24)
30180 pack_tmp = ior(pack_tmp, data_tmp)
30181 pack_tmp = ishft(pack_tmp, -8)
30182 idata = idata + 1
30183 data_tmp = full_data(idata)
30184 data_tmp = ishft(data_tmp, 24)
30185 data_tmp = iand(data_tmp, mask_left(8))
30186 pack_tmp = ior(pack_tmp, data_tmp)
30187 ipack = ipack + 1
30188 packed_data(ipack) = pack_tmp
30189 data_tmp = full_data(idata)
30190 pack_tmp = ishft(data_tmp, 32)
30191 pack_tmp = ishft(pack_tmp, -32)
30192 idata = idata + 1
30193 data_tmp = full_data(idata)
30194 data_tmp = ishft(data_tmp, 24)
30195 data_tmp = iand(data_tmp, mask_left(32))
30196 pack_tmp = ior(pack_tmp, data_tmp)
30197 ipack = ipack + 1
30198 packed_data(ipack) = pack_tmp
30199 data_tmp = full_data(idata)
30200 pack_tmp = ishft(data_tmp, 56)
30201 pack_tmp = ishft(pack_tmp, -40)
30202 idata = idata + 1
30203 data_tmp = full_data(idata)
30204 data_tmp = ishft(data_tmp, 24)
30205 pack_tmp = ior(pack_tmp, data_tmp)
30206 pack_tmp = ishft(pack_tmp, -16)
30207 idata = idata + 1
30208 data_tmp = full_data(idata)
30209 data_tmp = ishft(data_tmp, 24)
30210 data_tmp = iand(data_tmp, mask_left(16))
30211 pack_tmp = ior(pack_tmp, data_tmp)
30212 ipack = ipack + 1
30213 packed_data(ipack) = pack_tmp
30214 data_tmp = full_data(idata)
30215 pack_tmp = ishft(data_tmp, 40)
30216 pack_tmp = ishft(pack_tmp, -40)
30217 idata = idata + 1
30218 data_tmp = full_data(idata)
30219 data_tmp = ishft(data_tmp, 24)
30220 pack_tmp = ior(pack_tmp, data_tmp)
30221 pack_tmp = ishft(pack_tmp, 0)
30222 idata = idata + 1
30223 data_tmp = full_data(idata)
30224 data_tmp = ishft(data_tmp, 24)
30225 data_tmp = iand(data_tmp, mask_left(0))
30226 pack_tmp = ior(pack_tmp, data_tmp)
30227 ipack = ipack + 1
30228 packed_data(ipack) = pack_tmp
30229 data_tmp = full_data(idata)
30230 pack_tmp = ishft(data_tmp, 24)
30231 pack_tmp = ishft(pack_tmp, -24)
30232 idata = idata + 1
30233 data_tmp = full_data(idata)
30234 data_tmp = ishft(data_tmp, 24)
30235 data_tmp = iand(data_tmp, mask_left(24))
30236 pack_tmp = ior(pack_tmp, data_tmp)
30237 ipack = ipack + 1
30238 packed_data(ipack) = pack_tmp
30239 data_tmp = full_data(idata)
30240 pack_tmp = ishft(data_tmp, 48)
30241 pack_tmp = ishft(pack_tmp, -40)
30242 idata = idata + 1
30243 data_tmp = full_data(idata)
30244 data_tmp = ishft(data_tmp, 24)
30245 pack_tmp = ior(pack_tmp, data_tmp)
30246 pack_tmp = ishft(pack_tmp, -8)
30247 idata = idata + 1
30248 data_tmp = full_data(idata)
30249 data_tmp = ishft(data_tmp, 24)
30250 data_tmp = iand(data_tmp, mask_left(8))
30251 pack_tmp = ior(pack_tmp, data_tmp)
30252 ipack = ipack + 1
30253 packed_data(ipack) = pack_tmp
30254 data_tmp = full_data(idata)
30255 pack_tmp = ishft(data_tmp, 32)
30256 pack_tmp = ishft(pack_tmp, -32)
30257 idata = idata + 1
30258 data_tmp = full_data(idata)
30259 data_tmp = ishft(data_tmp, 24)
30260 data_tmp = iand(data_tmp, mask_left(32))
30261 pack_tmp = ior(pack_tmp, data_tmp)
30262 ipack = ipack + 1
30263 packed_data(ipack) = pack_tmp
30264 data_tmp = full_data(idata)
30265 pack_tmp = ishft(data_tmp, 56)
30266 pack_tmp = ishft(pack_tmp, -40)
30267 idata = idata + 1
30268 data_tmp = full_data(idata)
30269 data_tmp = ishft(data_tmp, 24)
30270 pack_tmp = ior(pack_tmp, data_tmp)
30271 pack_tmp = ishft(pack_tmp, -16)
30272 idata = idata + 1
30273 data_tmp = full_data(idata)
30274 data_tmp = ishft(data_tmp, 24)
30275 data_tmp = iand(data_tmp, mask_left(16))
30276 pack_tmp = ior(pack_tmp, data_tmp)
30277 ipack = ipack + 1
30278 packed_data(ipack) = pack_tmp
30279 data_tmp = full_data(idata)
30280 pack_tmp = ishft(data_tmp, 40)
30281 pack_tmp = ishft(pack_tmp, -40)
30282 idata = idata + 1
30283 data_tmp = full_data(idata)
30284 data_tmp = ishft(data_tmp, 24)
30285 pack_tmp = ior(pack_tmp, data_tmp)
30286 pack_tmp = ishft(pack_tmp, 0)
30287 idata = idata + 1
30288 data_tmp = full_data(idata)
30289 data_tmp = ishft(data_tmp, 24)
30290 data_tmp = iand(data_tmp, mask_left(0))
30291 pack_tmp = ior(pack_tmp, data_tmp)
30292 ipack = ipack + 1
30293 packed_data(ipack) = pack_tmp
30294 data_tmp = full_data(idata)
30295 pack_tmp = ishft(data_tmp, 24)
30296 pack_tmp = ishft(pack_tmp, -24)
30297 idata = idata + 1
30298 data_tmp = full_data(idata)
30299 data_tmp = ishft(data_tmp, 24)
30300 data_tmp = iand(data_tmp, mask_left(24))
30301 pack_tmp = ior(pack_tmp, data_tmp)
30302 ipack = ipack + 1
30303 packed_data(ipack) = pack_tmp
30304 data_tmp = full_data(idata)
30305 pack_tmp = ishft(data_tmp, 48)
30306 pack_tmp = ishft(pack_tmp, -40)
30307 idata = idata + 1
30308 data_tmp = full_data(idata)
30309 data_tmp = ishft(data_tmp, 24)
30310 pack_tmp = ior(pack_tmp, data_tmp)
30311 pack_tmp = ishft(pack_tmp, -8)
30312 idata = idata + 1
30313 data_tmp = full_data(idata)
30314 data_tmp = ishft(data_tmp, 24)
30315 data_tmp = iand(data_tmp, mask_left(8))
30316 pack_tmp = ior(pack_tmp, data_tmp)
30317 ipack = ipack + 1
30318 packed_data(ipack) = pack_tmp
30319 data_tmp = full_data(idata)
30320 pack_tmp = ishft(data_tmp, 32)
30321 pack_tmp = ishft(pack_tmp, -32)
30322 idata = idata + 1
30323 data_tmp = full_data(idata)
30324 data_tmp = ishft(data_tmp, 24)
30325 data_tmp = iand(data_tmp, mask_left(32))
30326 pack_tmp = ior(pack_tmp, data_tmp)
30327 ipack = ipack + 1
30328 packed_data(ipack) = pack_tmp
30329 data_tmp = full_data(idata)
30330 pack_tmp = ishft(data_tmp, 56)
30331 pack_tmp = ishft(pack_tmp, -40)
30332 idata = idata + 1
30333 data_tmp = full_data(idata)
30334 data_tmp = ishft(data_tmp, 24)
30335 pack_tmp = ior(pack_tmp, data_tmp)
30336 pack_tmp = ishft(pack_tmp, -16)
30337 idata = idata + 1
30338 data_tmp = full_data(idata)
30339 data_tmp = ishft(data_tmp, 24)
30340 data_tmp = iand(data_tmp, mask_left(16))
30341 pack_tmp = ior(pack_tmp, data_tmp)
30342 ipack = ipack + 1
30343 packed_data(ipack) = pack_tmp
30344 data_tmp = full_data(idata)
30345 pack_tmp = ishft(data_tmp, 40)
30346 pack_tmp = ishft(pack_tmp, -40)
30347 idata = idata + 1
30348 data_tmp = full_data(idata)
30349 data_tmp = ishft(data_tmp, 24)
30350 pack_tmp = ior(pack_tmp, data_tmp)
30351 pack_tmp = ishft(pack_tmp, 0)
30352 idata = idata + 1
30353 data_tmp = full_data(idata)
30354 data_tmp = ishft(data_tmp, 24)
30355 data_tmp = iand(data_tmp, mask_left(0))
30356 pack_tmp = ior(pack_tmp, data_tmp)
30357 ipack = ipack + 1
30358 packed_data(ipack) = pack_tmp
30359 data_tmp = full_data(idata)
30360 pack_tmp = ishft(data_tmp, 24)
30361 pack_tmp = ishft(pack_tmp, -24)
30362 idata = idata + 1
30363 data_tmp = full_data(idata)
30364 data_tmp = ishft(data_tmp, 24)
30365 data_tmp = iand(data_tmp, mask_left(24))
30366 pack_tmp = ior(pack_tmp, data_tmp)
30367 ipack = ipack + 1
30368 packed_data(ipack) = pack_tmp
30369 data_tmp = full_data(idata)
30370 pack_tmp = ishft(data_tmp, 48)
30371 pack_tmp = ishft(pack_tmp, -40)
30372 idata = idata + 1
30373 data_tmp = full_data(idata)
30374 data_tmp = ishft(data_tmp, 24)
30375 pack_tmp = ior(pack_tmp, data_tmp)
30376 pack_tmp = ishft(pack_tmp, -8)
30377 idata = idata + 1
30378 data_tmp = full_data(idata)
30379 data_tmp = ishft(data_tmp, 24)
30380 data_tmp = iand(data_tmp, mask_left(8))
30381 pack_tmp = ior(pack_tmp, data_tmp)
30382 ipack = ipack + 1
30383 packed_data(ipack) = pack_tmp
30384 data_tmp = full_data(idata)
30385 pack_tmp = ishft(data_tmp, 32)
30386 pack_tmp = ishft(pack_tmp, -32)
30387 idata = idata + 1
30388 data_tmp = full_data(idata)
30389 data_tmp = ishft(data_tmp, 24)
30390 data_tmp = iand(data_tmp, mask_left(32))
30391 pack_tmp = ior(pack_tmp, data_tmp)
30392 ipack = ipack + 1
30393 packed_data(ipack) = pack_tmp
30394 data_tmp = full_data(idata)
30395 pack_tmp = ishft(data_tmp, 56)
30396 pack_tmp = ishft(pack_tmp, -40)
30397 idata = idata + 1
30398 data_tmp = full_data(idata)
30399 data_tmp = ishft(data_tmp, 24)
30400 pack_tmp = ior(pack_tmp, data_tmp)
30401 pack_tmp = ishft(pack_tmp, -16)
30402 idata = idata + 1
30403 data_tmp = full_data(idata)
30404 data_tmp = ishft(data_tmp, 24)
30405 data_tmp = iand(data_tmp, mask_left(16))
30406 pack_tmp = ior(pack_tmp, data_tmp)
30407 ipack = ipack + 1
30408 packed_data(ipack) = pack_tmp
30409 data_tmp = full_data(idata)
30410 pack_tmp = ishft(data_tmp, 40)
30411 pack_tmp = ishft(pack_tmp, -40)
30412 idata = idata + 1
30413 data_tmp = full_data(idata)
30414 data_tmp = ishft(data_tmp, 24)
30415 pack_tmp = ior(pack_tmp, data_tmp)
30416 pack_tmp = ishft(pack_tmp, 0)
30417 idata = idata + 1
30418 data_tmp = full_data(idata)
30419 data_tmp = ishft(data_tmp, 24)
30420 data_tmp = iand(data_tmp, mask_left(0))
30421 pack_tmp = ior(pack_tmp, data_tmp)
30422 ipack = ipack + 1
30423 packed_data(ipack) = pack_tmp
30424 data_tmp = full_data(idata)
30425 pack_tmp = ishft(data_tmp, 24)
30426 pack_tmp = ishft(pack_tmp, -24)
30427 idata = idata + 1
30428 data_tmp = full_data(idata)
30429 data_tmp = ishft(data_tmp, 24)
30430 data_tmp = iand(data_tmp, mask_left(24))
30431 pack_tmp = ior(pack_tmp, data_tmp)
30432 ipack = ipack + 1
30433 packed_data(ipack) = pack_tmp
30434 data_tmp = full_data(idata)
30435 pack_tmp = ishft(data_tmp, 48)
30436 pack_tmp = ishft(pack_tmp, -40)
30437 idata = idata + 1
30438 data_tmp = full_data(idata)
30439 data_tmp = ishft(data_tmp, 24)
30440 pack_tmp = ior(pack_tmp, data_tmp)
30441 pack_tmp = ishft(pack_tmp, -8)
30442 idata = idata + 1
30443 data_tmp = full_data(idata)
30444 data_tmp = ishft(data_tmp, 24)
30445 data_tmp = iand(data_tmp, mask_left(8))
30446 pack_tmp = ior(pack_tmp, data_tmp)
30447 ipack = ipack + 1
30448 packed_data(ipack) = pack_tmp
30449 data_tmp = full_data(idata)
30450 pack_tmp = ishft(data_tmp, 32)
30451 pack_tmp = ishft(pack_tmp, -32)
30452 idata = idata + 1
30453 data_tmp = full_data(idata)
30454 data_tmp = ishft(data_tmp, 24)
30455 data_tmp = iand(data_tmp, mask_left(32))
30456 pack_tmp = ior(pack_tmp, data_tmp)
30457 ipack = ipack + 1
30458 packed_data(ipack) = pack_tmp
30459 data_tmp = full_data(idata)
30460 pack_tmp = ishft(data_tmp, 56)
30461 pack_tmp = ishft(pack_tmp, -40)
30462 idata = idata + 1
30463 data_tmp = full_data(idata)
30464 data_tmp = ishft(data_tmp, 24)
30465 pack_tmp = ior(pack_tmp, data_tmp)
30466 pack_tmp = ishft(pack_tmp, -16)
30467 idata = idata + 1
30468 data_tmp = full_data(idata)
30469 data_tmp = ishft(data_tmp, 24)
30470 data_tmp = iand(data_tmp, mask_left(16))
30471 pack_tmp = ior(pack_tmp, data_tmp)
30472 ipack = ipack + 1
30473 packed_data(ipack) = pack_tmp
30474 data_tmp = full_data(idata)
30475 pack_tmp = ishft(data_tmp, 40)
30476 pack_tmp = ishft(pack_tmp, -40)
30477 idata = idata + 1
30478 data_tmp = full_data(idata)
30479 data_tmp = ishft(data_tmp, 24)
30480 pack_tmp = ior(pack_tmp, data_tmp)
30481 pack_tmp = ishft(pack_tmp, 0)
30482 idata = idata + 1
30483 data_tmp = full_data(idata)
30484 data_tmp = ishft(data_tmp, 24)
30485 data_tmp = iand(data_tmp, mask_left(0))
30486 pack_tmp = ior(pack_tmp, data_tmp)
30487 ipack = ipack + 1
30488 packed_data(ipack) = pack_tmp
30489 data_tmp = full_data(idata)
30490 pack_tmp = ishft(data_tmp, 24)
30491 pack_tmp = ishft(pack_tmp, -24)
30492 idata = idata + 1
30493 data_tmp = full_data(idata)
30494 data_tmp = ishft(data_tmp, 24)
30495 data_tmp = iand(data_tmp, mask_left(24))
30496 pack_tmp = ior(pack_tmp, data_tmp)
30497 ipack = ipack + 1
30498 packed_data(ipack) = pack_tmp
30499 data_tmp = full_data(idata)
30500 pack_tmp = ishft(data_tmp, 48)
30501 pack_tmp = ishft(pack_tmp, -40)
30502 idata = idata + 1
30503 data_tmp = full_data(idata)
30504 data_tmp = ishft(data_tmp, 24)
30505 pack_tmp = ior(pack_tmp, data_tmp)
30506 pack_tmp = ishft(pack_tmp, -8)
30507 idata = idata + 1
30508 data_tmp = full_data(idata)
30509 data_tmp = ishft(data_tmp, 24)
30510 data_tmp = iand(data_tmp, mask_left(8))
30511 pack_tmp = ior(pack_tmp, data_tmp)
30512 ipack = ipack + 1
30513 packed_data(ipack) = pack_tmp
30514 data_tmp = full_data(idata)
30515 pack_tmp = ishft(data_tmp, 32)
30516 pack_tmp = ishft(pack_tmp, -32)
30517 idata = idata + 1
30518 data_tmp = full_data(idata)
30519 data_tmp = ishft(data_tmp, 24)
30520 data_tmp = iand(data_tmp, mask_left(32))
30521 pack_tmp = ior(pack_tmp, data_tmp)
30522 ipack = ipack + 1
30523 packed_data(ipack) = pack_tmp
30524 data_tmp = full_data(idata)
30525 pack_tmp = ishft(data_tmp, 56)
30526 pack_tmp = ishft(pack_tmp, -40)
30527 idata = idata + 1
30528 data_tmp = full_data(idata)
30529 data_tmp = ishft(data_tmp, 24)
30530 pack_tmp = ior(pack_tmp, data_tmp)
30531 pack_tmp = ishft(pack_tmp, -16)
30532 idata = idata + 1
30533 data_tmp = full_data(idata)
30534 data_tmp = ishft(data_tmp, 24)
30535 data_tmp = iand(data_tmp, mask_left(16))
30536 pack_tmp = ior(pack_tmp, data_tmp)
30537 ipack = ipack + 1
30538 packed_data(ipack) = pack_tmp
30539 data_tmp = full_data(idata)
30540 pack_tmp = ishft(data_tmp, 40)
30541 pack_tmp = ishft(pack_tmp, -40)
30542 idata = idata + 1
30543 data_tmp = full_data(idata)
30544 data_tmp = ishft(data_tmp, 24)
30545 pack_tmp = ior(pack_tmp, data_tmp)
30546 pack_tmp = ishft(pack_tmp, 0)
30547 idata = idata + 1
30548 data_tmp = full_data(idata)
30549 data_tmp = ishft(data_tmp, 24)
30550 data_tmp = iand(data_tmp, mask_left(0))
30551 pack_tmp = ior(pack_tmp, data_tmp)
30552 ipack = ipack + 1
30553 packed_data(ipack) = pack_tmp
30554 data_tmp = full_data(idata)
30555 pack_tmp = ishft(data_tmp, 24)
30556 pack_tmp = ishft(pack_tmp, -24)
30557 idata = idata + 1
30558 data_tmp = full_data(idata)
30559 data_tmp = ishft(data_tmp, 24)
30560 data_tmp = iand(data_tmp, mask_left(24))
30561 pack_tmp = ior(pack_tmp, data_tmp)
30562 ipack = ipack + 1
30563 packed_data(ipack) = pack_tmp
30564 data_tmp = full_data(idata)
30565 pack_tmp = ishft(data_tmp, 48)
30566 pack_tmp = ishft(pack_tmp, -40)
30567 idata = idata + 1
30568 data_tmp = full_data(idata)
30569 data_tmp = ishft(data_tmp, 24)
30570 pack_tmp = ior(pack_tmp, data_tmp)
30571 pack_tmp = ishft(pack_tmp, -8)
30572 idata = idata + 1
30573 data_tmp = full_data(idata)
30574 data_tmp = ishft(data_tmp, 24)
30575 data_tmp = iand(data_tmp, mask_left(8))
30576 pack_tmp = ior(pack_tmp, data_tmp)
30577 ipack = ipack + 1
30578 packed_data(ipack) = pack_tmp
30579 data_tmp = full_data(idata)
30580 pack_tmp = ishft(data_tmp, 32)
30581 pack_tmp = ishft(pack_tmp, -32)
30582 idata = idata + 1
30583 data_tmp = full_data(idata)
30584 data_tmp = ishft(data_tmp, 24)
30585 data_tmp = iand(data_tmp, mask_left(32))
30586 pack_tmp = ior(pack_tmp, data_tmp)
30587 ipack = ipack + 1
30588 packed_data(ipack) = pack_tmp
30589 data_tmp = full_data(idata)
30590 pack_tmp = ishft(data_tmp, 56)
30591 pack_tmp = ishft(pack_tmp, -40)
30592 idata = idata + 1
30593 data_tmp = full_data(idata)
30594 data_tmp = ishft(data_tmp, 24)
30595 pack_tmp = ior(pack_tmp, data_tmp)
30596 pack_tmp = ishft(pack_tmp, -16)
30597 idata = idata + 1
30598 data_tmp = full_data(idata)
30599 data_tmp = ishft(data_tmp, 24)
30600 data_tmp = iand(data_tmp, mask_left(16))
30601 pack_tmp = ior(pack_tmp, data_tmp)
30602 ipack = ipack + 1
30603 packed_data(ipack) = pack_tmp
30604 data_tmp = full_data(idata)
30605 pack_tmp = ishft(data_tmp, 40)
30606 pack_tmp = ishft(pack_tmp, -40)
30607 idata = idata + 1
30608 data_tmp = full_data(idata)
30609 data_tmp = ishft(data_tmp, 24)
30610 pack_tmp = ior(pack_tmp, data_tmp)
30611 pack_tmp = ishft(pack_tmp, 0)
30612 idata = idata + 1
30613 data_tmp = full_data(idata)
30614 data_tmp = ishft(data_tmp, 24)
30615 data_tmp = iand(data_tmp, mask_left(0))
30616 pack_tmp = ior(pack_tmp, data_tmp)
30617 ipack = ipack + 1
30618 packed_data(ipack) = pack_tmp
30619 data_tmp = full_data(idata)
30620 pack_tmp = ishft(data_tmp, 24)
30621 pack_tmp = ishft(pack_tmp, -24)
30622 idata = idata + 1
30623 data_tmp = full_data(idata)
30624 data_tmp = ishft(data_tmp, 24)
30625 data_tmp = iand(data_tmp, mask_left(24))
30626 pack_tmp = ior(pack_tmp, data_tmp)
30627 ipack = ipack + 1
30628 packed_data(ipack) = pack_tmp
30629 data_tmp = full_data(idata)
30630 pack_tmp = ishft(data_tmp, 48)
30631 pack_tmp = ishft(pack_tmp, -40)
30632 idata = idata + 1
30633 data_tmp = full_data(idata)
30634 data_tmp = ishft(data_tmp, 24)
30635 pack_tmp = ior(pack_tmp, data_tmp)
30636 pack_tmp = ishft(pack_tmp, -8)
30637 idata = idata + 1
30638 data_tmp = full_data(idata)
30639 data_tmp = ishft(data_tmp, 24)
30640 data_tmp = iand(data_tmp, mask_left(8))
30641 pack_tmp = ior(pack_tmp, data_tmp)
30642 ipack = ipack + 1
30643 packed_data(ipack) = pack_tmp
30644 data_tmp = full_data(idata)
30645 pack_tmp = ishft(data_tmp, 32)
30646 pack_tmp = ishft(pack_tmp, -32)
30647 idata = idata + 1
30648 data_tmp = full_data(idata)
30649 data_tmp = ishft(data_tmp, 24)
30650 data_tmp = iand(data_tmp, mask_left(32))
30651 pack_tmp = ior(pack_tmp, data_tmp)
30652 ipack = ipack + 1
30653 packed_data(ipack) = pack_tmp
30654 data_tmp = full_data(idata)
30655 pack_tmp = ishft(data_tmp, 56)
30656 pack_tmp = ishft(pack_tmp, -40)
30657 idata = idata + 1
30658 data_tmp = full_data(idata)
30659 data_tmp = ishft(data_tmp, 24)
30660 pack_tmp = ior(pack_tmp, data_tmp)
30661 pack_tmp = ishft(pack_tmp, -16)
30662 idata = idata + 1
30663 data_tmp = full_data(idata)
30664 data_tmp = ishft(data_tmp, 24)
30665 data_tmp = iand(data_tmp, mask_left(16))
30666 pack_tmp = ior(pack_tmp, data_tmp)
30667 ipack = ipack + 1
30668 packed_data(ipack) = pack_tmp
30669 data_tmp = full_data(idata)
30670 pack_tmp = ishft(data_tmp, 40)
30671 pack_tmp = ishft(pack_tmp, -40)
30672 idata = idata + 1
30673 data_tmp = full_data(idata)
30674 data_tmp = ishft(data_tmp, 24)
30675 pack_tmp = ior(pack_tmp, data_tmp)
30676 pack_tmp = ishft(pack_tmp, 0)
30677 pack_tmp = ishft(pack_tmp, 0)
30678 ipack = ipack + 1
30679 packed_data(ipack) = pack_tmp
30680 END DO
30681 IF (ndata_rep < ndata) THEN
30682 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
30683 END IF
30684 END SUBROUTINE ints2bits_40
30685
30686! **************************************************************************************************
30687!> \brief ...
30688!> \param Ndata ...
30689!> \param packed_data ...
30690!> \param full_data ...
30691! **************************************************************************************************
30692 SUBROUTINE bits2ints_40(Ndata, packed_data, full_data)
30693 INTEGER, INTENT(IN) :: Ndata
30694 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
30695 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
30696
30697 INTEGER, PARAMETER :: Nbits = 40
30698
30699 INTEGER :: idata, ipack, kdata, Ndata_rep
30700 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
30701
30702 ipack = 0
30703 idata = 0
30704 pack_tmp = 0
30705 ndata_rep = (ndata/64)*64
30706 DO kdata = 1, ndata_rep, 64
30707 idata = idata + 1
30708 data_tmp = ishft(pack_tmp, 40)
30709 ipack = ipack + 1
30710 pack_tmp = packed_data(ipack)
30711 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
30712 pack_tmp = ishft(pack_tmp, -40)
30713 idata = idata + 1
30714 data_tmp = ishft(pack_tmp, 16)
30715 ipack = ipack + 1
30716 pack_tmp = packed_data(ipack)
30717 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
30718 pack_tmp = ishft(pack_tmp, -16)
30719 idata = idata + 1
30720 data_tmp = iand(pack_tmp, mask_right(nbits))
30721 full_data(idata) = data_tmp
30722 pack_tmp = ishft(pack_tmp, -nbits)
30723 idata = idata + 1
30724 data_tmp = ishft(pack_tmp, 32)
30725 ipack = ipack + 1
30726 pack_tmp = packed_data(ipack)
30727 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
30728 pack_tmp = ishft(pack_tmp, -32)
30729 idata = idata + 1
30730 data_tmp = ishft(pack_tmp, 8)
30731 ipack = ipack + 1
30732 pack_tmp = packed_data(ipack)
30733 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
30734 pack_tmp = ishft(pack_tmp, -8)
30735 idata = idata + 1
30736 data_tmp = iand(pack_tmp, mask_right(nbits))
30737 full_data(idata) = data_tmp
30738 pack_tmp = ishft(pack_tmp, -nbits)
30739 idata = idata + 1
30740 data_tmp = ishft(pack_tmp, 24)
30741 ipack = ipack + 1
30742 pack_tmp = packed_data(ipack)
30743 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
30744 pack_tmp = ishft(pack_tmp, -24)
30745 idata = idata + 1
30746 data_tmp = iand(pack_tmp, mask_right(nbits))
30747 full_data(idata) = data_tmp
30748 pack_tmp = ishft(pack_tmp, -nbits)
30749 idata = idata + 1
30750 data_tmp = ishft(pack_tmp, 40)
30751 ipack = ipack + 1
30752 pack_tmp = packed_data(ipack)
30753 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
30754 pack_tmp = ishft(pack_tmp, -40)
30755 idata = idata + 1
30756 data_tmp = ishft(pack_tmp, 16)
30757 ipack = ipack + 1
30758 pack_tmp = packed_data(ipack)
30759 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
30760 pack_tmp = ishft(pack_tmp, -16)
30761 idata = idata + 1
30762 data_tmp = iand(pack_tmp, mask_right(nbits))
30763 full_data(idata) = data_tmp
30764 pack_tmp = ishft(pack_tmp, -nbits)
30765 idata = idata + 1
30766 data_tmp = ishft(pack_tmp, 32)
30767 ipack = ipack + 1
30768 pack_tmp = packed_data(ipack)
30769 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
30770 pack_tmp = ishft(pack_tmp, -32)
30771 idata = idata + 1
30772 data_tmp = ishft(pack_tmp, 8)
30773 ipack = ipack + 1
30774 pack_tmp = packed_data(ipack)
30775 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
30776 pack_tmp = ishft(pack_tmp, -8)
30777 idata = idata + 1
30778 data_tmp = iand(pack_tmp, mask_right(nbits))
30779 full_data(idata) = data_tmp
30780 pack_tmp = ishft(pack_tmp, -nbits)
30781 idata = idata + 1
30782 data_tmp = ishft(pack_tmp, 24)
30783 ipack = ipack + 1
30784 pack_tmp = packed_data(ipack)
30785 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
30786 pack_tmp = ishft(pack_tmp, -24)
30787 idata = idata + 1
30788 data_tmp = iand(pack_tmp, mask_right(nbits))
30789 full_data(idata) = data_tmp
30790 pack_tmp = ishft(pack_tmp, -nbits)
30791 idata = idata + 1
30792 data_tmp = ishft(pack_tmp, 40)
30793 ipack = ipack + 1
30794 pack_tmp = packed_data(ipack)
30795 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
30796 pack_tmp = ishft(pack_tmp, -40)
30797 idata = idata + 1
30798 data_tmp = ishft(pack_tmp, 16)
30799 ipack = ipack + 1
30800 pack_tmp = packed_data(ipack)
30801 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
30802 pack_tmp = ishft(pack_tmp, -16)
30803 idata = idata + 1
30804 data_tmp = iand(pack_tmp, mask_right(nbits))
30805 full_data(idata) = data_tmp
30806 pack_tmp = ishft(pack_tmp, -nbits)
30807 idata = idata + 1
30808 data_tmp = ishft(pack_tmp, 32)
30809 ipack = ipack + 1
30810 pack_tmp = packed_data(ipack)
30811 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
30812 pack_tmp = ishft(pack_tmp, -32)
30813 idata = idata + 1
30814 data_tmp = ishft(pack_tmp, 8)
30815 ipack = ipack + 1
30816 pack_tmp = packed_data(ipack)
30817 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
30818 pack_tmp = ishft(pack_tmp, -8)
30819 idata = idata + 1
30820 data_tmp = iand(pack_tmp, mask_right(nbits))
30821 full_data(idata) = data_tmp
30822 pack_tmp = ishft(pack_tmp, -nbits)
30823 idata = idata + 1
30824 data_tmp = ishft(pack_tmp, 24)
30825 ipack = ipack + 1
30826 pack_tmp = packed_data(ipack)
30827 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
30828 pack_tmp = ishft(pack_tmp, -24)
30829 idata = idata + 1
30830 data_tmp = iand(pack_tmp, mask_right(nbits))
30831 full_data(idata) = data_tmp
30832 pack_tmp = ishft(pack_tmp, -nbits)
30833 idata = idata + 1
30834 data_tmp = ishft(pack_tmp, 40)
30835 ipack = ipack + 1
30836 pack_tmp = packed_data(ipack)
30837 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
30838 pack_tmp = ishft(pack_tmp, -40)
30839 idata = idata + 1
30840 data_tmp = ishft(pack_tmp, 16)
30841 ipack = ipack + 1
30842 pack_tmp = packed_data(ipack)
30843 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
30844 pack_tmp = ishft(pack_tmp, -16)
30845 idata = idata + 1
30846 data_tmp = iand(pack_tmp, mask_right(nbits))
30847 full_data(idata) = data_tmp
30848 pack_tmp = ishft(pack_tmp, -nbits)
30849 idata = idata + 1
30850 data_tmp = ishft(pack_tmp, 32)
30851 ipack = ipack + 1
30852 pack_tmp = packed_data(ipack)
30853 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
30854 pack_tmp = ishft(pack_tmp, -32)
30855 idata = idata + 1
30856 data_tmp = ishft(pack_tmp, 8)
30857 ipack = ipack + 1
30858 pack_tmp = packed_data(ipack)
30859 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
30860 pack_tmp = ishft(pack_tmp, -8)
30861 idata = idata + 1
30862 data_tmp = iand(pack_tmp, mask_right(nbits))
30863 full_data(idata) = data_tmp
30864 pack_tmp = ishft(pack_tmp, -nbits)
30865 idata = idata + 1
30866 data_tmp = ishft(pack_tmp, 24)
30867 ipack = ipack + 1
30868 pack_tmp = packed_data(ipack)
30869 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
30870 pack_tmp = ishft(pack_tmp, -24)
30871 idata = idata + 1
30872 data_tmp = iand(pack_tmp, mask_right(nbits))
30873 full_data(idata) = data_tmp
30874 pack_tmp = ishft(pack_tmp, -nbits)
30875 idata = idata + 1
30876 data_tmp = ishft(pack_tmp, 40)
30877 ipack = ipack + 1
30878 pack_tmp = packed_data(ipack)
30879 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
30880 pack_tmp = ishft(pack_tmp, -40)
30881 idata = idata + 1
30882 data_tmp = ishft(pack_tmp, 16)
30883 ipack = ipack + 1
30884 pack_tmp = packed_data(ipack)
30885 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
30886 pack_tmp = ishft(pack_tmp, -16)
30887 idata = idata + 1
30888 data_tmp = iand(pack_tmp, mask_right(nbits))
30889 full_data(idata) = data_tmp
30890 pack_tmp = ishft(pack_tmp, -nbits)
30891 idata = idata + 1
30892 data_tmp = ishft(pack_tmp, 32)
30893 ipack = ipack + 1
30894 pack_tmp = packed_data(ipack)
30895 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
30896 pack_tmp = ishft(pack_tmp, -32)
30897 idata = idata + 1
30898 data_tmp = ishft(pack_tmp, 8)
30899 ipack = ipack + 1
30900 pack_tmp = packed_data(ipack)
30901 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
30902 pack_tmp = ishft(pack_tmp, -8)
30903 idata = idata + 1
30904 data_tmp = iand(pack_tmp, mask_right(nbits))
30905 full_data(idata) = data_tmp
30906 pack_tmp = ishft(pack_tmp, -nbits)
30907 idata = idata + 1
30908 data_tmp = ishft(pack_tmp, 24)
30909 ipack = ipack + 1
30910 pack_tmp = packed_data(ipack)
30911 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
30912 pack_tmp = ishft(pack_tmp, -24)
30913 idata = idata + 1
30914 data_tmp = iand(pack_tmp, mask_right(nbits))
30915 full_data(idata) = data_tmp
30916 pack_tmp = ishft(pack_tmp, -nbits)
30917 idata = idata + 1
30918 data_tmp = ishft(pack_tmp, 40)
30919 ipack = ipack + 1
30920 pack_tmp = packed_data(ipack)
30921 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
30922 pack_tmp = ishft(pack_tmp, -40)
30923 idata = idata + 1
30924 data_tmp = ishft(pack_tmp, 16)
30925 ipack = ipack + 1
30926 pack_tmp = packed_data(ipack)
30927 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
30928 pack_tmp = ishft(pack_tmp, -16)
30929 idata = idata + 1
30930 data_tmp = iand(pack_tmp, mask_right(nbits))
30931 full_data(idata) = data_tmp
30932 pack_tmp = ishft(pack_tmp, -nbits)
30933 idata = idata + 1
30934 data_tmp = ishft(pack_tmp, 32)
30935 ipack = ipack + 1
30936 pack_tmp = packed_data(ipack)
30937 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
30938 pack_tmp = ishft(pack_tmp, -32)
30939 idata = idata + 1
30940 data_tmp = ishft(pack_tmp, 8)
30941 ipack = ipack + 1
30942 pack_tmp = packed_data(ipack)
30943 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
30944 pack_tmp = ishft(pack_tmp, -8)
30945 idata = idata + 1
30946 data_tmp = iand(pack_tmp, mask_right(nbits))
30947 full_data(idata) = data_tmp
30948 pack_tmp = ishft(pack_tmp, -nbits)
30949 idata = idata + 1
30950 data_tmp = ishft(pack_tmp, 24)
30951 ipack = ipack + 1
30952 pack_tmp = packed_data(ipack)
30953 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
30954 pack_tmp = ishft(pack_tmp, -24)
30955 idata = idata + 1
30956 data_tmp = iand(pack_tmp, mask_right(nbits))
30957 full_data(idata) = data_tmp
30958 pack_tmp = ishft(pack_tmp, -nbits)
30959 idata = idata + 1
30960 data_tmp = ishft(pack_tmp, 40)
30961 ipack = ipack + 1
30962 pack_tmp = packed_data(ipack)
30963 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
30964 pack_tmp = ishft(pack_tmp, -40)
30965 idata = idata + 1
30966 data_tmp = ishft(pack_tmp, 16)
30967 ipack = ipack + 1
30968 pack_tmp = packed_data(ipack)
30969 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
30970 pack_tmp = ishft(pack_tmp, -16)
30971 idata = idata + 1
30972 data_tmp = iand(pack_tmp, mask_right(nbits))
30973 full_data(idata) = data_tmp
30974 pack_tmp = ishft(pack_tmp, -nbits)
30975 idata = idata + 1
30976 data_tmp = ishft(pack_tmp, 32)
30977 ipack = ipack + 1
30978 pack_tmp = packed_data(ipack)
30979 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
30980 pack_tmp = ishft(pack_tmp, -32)
30981 idata = idata + 1
30982 data_tmp = ishft(pack_tmp, 8)
30983 ipack = ipack + 1
30984 pack_tmp = packed_data(ipack)
30985 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
30986 pack_tmp = ishft(pack_tmp, -8)
30987 idata = idata + 1
30988 data_tmp = iand(pack_tmp, mask_right(nbits))
30989 full_data(idata) = data_tmp
30990 pack_tmp = ishft(pack_tmp, -nbits)
30991 idata = idata + 1
30992 data_tmp = ishft(pack_tmp, 24)
30993 ipack = ipack + 1
30994 pack_tmp = packed_data(ipack)
30995 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
30996 pack_tmp = ishft(pack_tmp, -24)
30997 idata = idata + 1
30998 data_tmp = iand(pack_tmp, mask_right(nbits))
30999 full_data(idata) = data_tmp
31000 pack_tmp = ishft(pack_tmp, -nbits)
31001 idata = idata + 1
31002 data_tmp = ishft(pack_tmp, 40)
31003 ipack = ipack + 1
31004 pack_tmp = packed_data(ipack)
31005 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
31006 pack_tmp = ishft(pack_tmp, -40)
31007 idata = idata + 1
31008 data_tmp = ishft(pack_tmp, 16)
31009 ipack = ipack + 1
31010 pack_tmp = packed_data(ipack)
31011 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
31012 pack_tmp = ishft(pack_tmp, -16)
31013 idata = idata + 1
31014 data_tmp = iand(pack_tmp, mask_right(nbits))
31015 full_data(idata) = data_tmp
31016 pack_tmp = ishft(pack_tmp, -nbits)
31017 idata = idata + 1
31018 data_tmp = ishft(pack_tmp, 32)
31019 ipack = ipack + 1
31020 pack_tmp = packed_data(ipack)
31021 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
31022 pack_tmp = ishft(pack_tmp, -32)
31023 idata = idata + 1
31024 data_tmp = ishft(pack_tmp, 8)
31025 ipack = ipack + 1
31026 pack_tmp = packed_data(ipack)
31027 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
31028 pack_tmp = ishft(pack_tmp, -8)
31029 idata = idata + 1
31030 data_tmp = iand(pack_tmp, mask_right(nbits))
31031 full_data(idata) = data_tmp
31032 pack_tmp = ishft(pack_tmp, -nbits)
31033 idata = idata + 1
31034 data_tmp = ishft(pack_tmp, 24)
31035 ipack = ipack + 1
31036 pack_tmp = packed_data(ipack)
31037 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
31038 pack_tmp = ishft(pack_tmp, -24)
31039 idata = idata + 1
31040 data_tmp = iand(pack_tmp, mask_right(nbits))
31041 full_data(idata) = data_tmp
31042 pack_tmp = ishft(pack_tmp, -nbits)
31043 END DO
31044 IF (ndata_rep < ndata) THEN
31045 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
31046 END IF
31047 END SUBROUTINE bits2ints_40
31048
31049! **************************************************************************************************
31050!> \brief ...
31051!> \param Ndata ...
31052!> \param packed_data ...
31053!> \param full_data ...
31054! **************************************************************************************************
31055 SUBROUTINE ints2bits_41(Ndata, packed_data, full_data)
31056 INTEGER, INTENT(IN) :: Ndata
31057 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
31058 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
31059
31060 INTEGER, PARAMETER :: Nbits = 41
31061
31062 INTEGER :: idata, ipack, kdata, Ndata_rep
31063 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
31064
31065 idata = 0
31066 ipack = 0
31067 ndata_rep = (ndata/64)*64
31068 DO kdata = 1, ndata_rep, 64
31069 pack_tmp = 0
31070 idata = idata + 1
31071 data_tmp = full_data(idata)
31072 data_tmp = ishft(data_tmp, 23)
31073 pack_tmp = ior(pack_tmp, data_tmp)
31074 pack_tmp = ishft(pack_tmp, -23)
31075 idata = idata + 1
31076 data_tmp = full_data(idata)
31077 data_tmp = ishft(data_tmp, 23)
31078 data_tmp = iand(data_tmp, mask_left(23))
31079 pack_tmp = ior(pack_tmp, data_tmp)
31080 ipack = ipack + 1
31081 packed_data(ipack) = pack_tmp
31082 data_tmp = full_data(idata)
31083 pack_tmp = ishft(data_tmp, 46)
31084 pack_tmp = ishft(pack_tmp, -41)
31085 idata = idata + 1
31086 data_tmp = full_data(idata)
31087 data_tmp = ishft(data_tmp, 23)
31088 pack_tmp = ior(pack_tmp, data_tmp)
31089 pack_tmp = ishft(pack_tmp, -5)
31090 idata = idata + 1
31091 data_tmp = full_data(idata)
31092 data_tmp = ishft(data_tmp, 23)
31093 data_tmp = iand(data_tmp, mask_left(5))
31094 pack_tmp = ior(pack_tmp, data_tmp)
31095 ipack = ipack + 1
31096 packed_data(ipack) = pack_tmp
31097 data_tmp = full_data(idata)
31098 pack_tmp = ishft(data_tmp, 28)
31099 pack_tmp = ishft(pack_tmp, -28)
31100 idata = idata + 1
31101 data_tmp = full_data(idata)
31102 data_tmp = ishft(data_tmp, 23)
31103 data_tmp = iand(data_tmp, mask_left(28))
31104 pack_tmp = ior(pack_tmp, data_tmp)
31105 ipack = ipack + 1
31106 packed_data(ipack) = pack_tmp
31107 data_tmp = full_data(idata)
31108 pack_tmp = ishft(data_tmp, 51)
31109 pack_tmp = ishft(pack_tmp, -41)
31110 idata = idata + 1
31111 data_tmp = full_data(idata)
31112 data_tmp = ishft(data_tmp, 23)
31113 pack_tmp = ior(pack_tmp, data_tmp)
31114 pack_tmp = ishft(pack_tmp, -10)
31115 idata = idata + 1
31116 data_tmp = full_data(idata)
31117 data_tmp = ishft(data_tmp, 23)
31118 data_tmp = iand(data_tmp, mask_left(10))
31119 pack_tmp = ior(pack_tmp, data_tmp)
31120 ipack = ipack + 1
31121 packed_data(ipack) = pack_tmp
31122 data_tmp = full_data(idata)
31123 pack_tmp = ishft(data_tmp, 33)
31124 pack_tmp = ishft(pack_tmp, -33)
31125 idata = idata + 1
31126 data_tmp = full_data(idata)
31127 data_tmp = ishft(data_tmp, 23)
31128 data_tmp = iand(data_tmp, mask_left(33))
31129 pack_tmp = ior(pack_tmp, data_tmp)
31130 ipack = ipack + 1
31131 packed_data(ipack) = pack_tmp
31132 data_tmp = full_data(idata)
31133 pack_tmp = ishft(data_tmp, 56)
31134 pack_tmp = ishft(pack_tmp, -41)
31135 idata = idata + 1
31136 data_tmp = full_data(idata)
31137 data_tmp = ishft(data_tmp, 23)
31138 pack_tmp = ior(pack_tmp, data_tmp)
31139 pack_tmp = ishft(pack_tmp, -15)
31140 idata = idata + 1
31141 data_tmp = full_data(idata)
31142 data_tmp = ishft(data_tmp, 23)
31143 data_tmp = iand(data_tmp, mask_left(15))
31144 pack_tmp = ior(pack_tmp, data_tmp)
31145 ipack = ipack + 1
31146 packed_data(ipack) = pack_tmp
31147 data_tmp = full_data(idata)
31148 pack_tmp = ishft(data_tmp, 38)
31149 pack_tmp = ishft(pack_tmp, -38)
31150 idata = idata + 1
31151 data_tmp = full_data(idata)
31152 data_tmp = ishft(data_tmp, 23)
31153 data_tmp = iand(data_tmp, mask_left(38))
31154 pack_tmp = ior(pack_tmp, data_tmp)
31155 ipack = ipack + 1
31156 packed_data(ipack) = pack_tmp
31157 data_tmp = full_data(idata)
31158 pack_tmp = ishft(data_tmp, 61)
31159 pack_tmp = ishft(pack_tmp, -41)
31160 idata = idata + 1
31161 data_tmp = full_data(idata)
31162 data_tmp = ishft(data_tmp, 23)
31163 pack_tmp = ior(pack_tmp, data_tmp)
31164 pack_tmp = ishft(pack_tmp, -20)
31165 idata = idata + 1
31166 data_tmp = full_data(idata)
31167 data_tmp = ishft(data_tmp, 23)
31168 data_tmp = iand(data_tmp, mask_left(20))
31169 pack_tmp = ior(pack_tmp, data_tmp)
31170 ipack = ipack + 1
31171 packed_data(ipack) = pack_tmp
31172 data_tmp = full_data(idata)
31173 pack_tmp = ishft(data_tmp, 43)
31174 pack_tmp = ishft(pack_tmp, -41)
31175 idata = idata + 1
31176 data_tmp = full_data(idata)
31177 data_tmp = ishft(data_tmp, 23)
31178 pack_tmp = ior(pack_tmp, data_tmp)
31179 pack_tmp = ishft(pack_tmp, -2)
31180 idata = idata + 1
31181 data_tmp = full_data(idata)
31182 data_tmp = ishft(data_tmp, 23)
31183 data_tmp = iand(data_tmp, mask_left(2))
31184 pack_tmp = ior(pack_tmp, data_tmp)
31185 ipack = ipack + 1
31186 packed_data(ipack) = pack_tmp
31187 data_tmp = full_data(idata)
31188 pack_tmp = ishft(data_tmp, 25)
31189 pack_tmp = ishft(pack_tmp, -25)
31190 idata = idata + 1
31191 data_tmp = full_data(idata)
31192 data_tmp = ishft(data_tmp, 23)
31193 data_tmp = iand(data_tmp, mask_left(25))
31194 pack_tmp = ior(pack_tmp, data_tmp)
31195 ipack = ipack + 1
31196 packed_data(ipack) = pack_tmp
31197 data_tmp = full_data(idata)
31198 pack_tmp = ishft(data_tmp, 48)
31199 pack_tmp = ishft(pack_tmp, -41)
31200 idata = idata + 1
31201 data_tmp = full_data(idata)
31202 data_tmp = ishft(data_tmp, 23)
31203 pack_tmp = ior(pack_tmp, data_tmp)
31204 pack_tmp = ishft(pack_tmp, -7)
31205 idata = idata + 1
31206 data_tmp = full_data(idata)
31207 data_tmp = ishft(data_tmp, 23)
31208 data_tmp = iand(data_tmp, mask_left(7))
31209 pack_tmp = ior(pack_tmp, data_tmp)
31210 ipack = ipack + 1
31211 packed_data(ipack) = pack_tmp
31212 data_tmp = full_data(idata)
31213 pack_tmp = ishft(data_tmp, 30)
31214 pack_tmp = ishft(pack_tmp, -30)
31215 idata = idata + 1
31216 data_tmp = full_data(idata)
31217 data_tmp = ishft(data_tmp, 23)
31218 data_tmp = iand(data_tmp, mask_left(30))
31219 pack_tmp = ior(pack_tmp, data_tmp)
31220 ipack = ipack + 1
31221 packed_data(ipack) = pack_tmp
31222 data_tmp = full_data(idata)
31223 pack_tmp = ishft(data_tmp, 53)
31224 pack_tmp = ishft(pack_tmp, -41)
31225 idata = idata + 1
31226 data_tmp = full_data(idata)
31227 data_tmp = ishft(data_tmp, 23)
31228 pack_tmp = ior(pack_tmp, data_tmp)
31229 pack_tmp = ishft(pack_tmp, -12)
31230 idata = idata + 1
31231 data_tmp = full_data(idata)
31232 data_tmp = ishft(data_tmp, 23)
31233 data_tmp = iand(data_tmp, mask_left(12))
31234 pack_tmp = ior(pack_tmp, data_tmp)
31235 ipack = ipack + 1
31236 packed_data(ipack) = pack_tmp
31237 data_tmp = full_data(idata)
31238 pack_tmp = ishft(data_tmp, 35)
31239 pack_tmp = ishft(pack_tmp, -35)
31240 idata = idata + 1
31241 data_tmp = full_data(idata)
31242 data_tmp = ishft(data_tmp, 23)
31243 data_tmp = iand(data_tmp, mask_left(35))
31244 pack_tmp = ior(pack_tmp, data_tmp)
31245 ipack = ipack + 1
31246 packed_data(ipack) = pack_tmp
31247 data_tmp = full_data(idata)
31248 pack_tmp = ishft(data_tmp, 58)
31249 pack_tmp = ishft(pack_tmp, -41)
31250 idata = idata + 1
31251 data_tmp = full_data(idata)
31252 data_tmp = ishft(data_tmp, 23)
31253 pack_tmp = ior(pack_tmp, data_tmp)
31254 pack_tmp = ishft(pack_tmp, -17)
31255 idata = idata + 1
31256 data_tmp = full_data(idata)
31257 data_tmp = ishft(data_tmp, 23)
31258 data_tmp = iand(data_tmp, mask_left(17))
31259 pack_tmp = ior(pack_tmp, data_tmp)
31260 ipack = ipack + 1
31261 packed_data(ipack) = pack_tmp
31262 data_tmp = full_data(idata)
31263 pack_tmp = ishft(data_tmp, 40)
31264 pack_tmp = ishft(pack_tmp, -40)
31265 idata = idata + 1
31266 data_tmp = full_data(idata)
31267 data_tmp = ishft(data_tmp, 23)
31268 data_tmp = iand(data_tmp, mask_left(40))
31269 pack_tmp = ior(pack_tmp, data_tmp)
31270 ipack = ipack + 1
31271 packed_data(ipack) = pack_tmp
31272 data_tmp = full_data(idata)
31273 pack_tmp = ishft(data_tmp, 63)
31274 pack_tmp = ishft(pack_tmp, -41)
31275 idata = idata + 1
31276 data_tmp = full_data(idata)
31277 data_tmp = ishft(data_tmp, 23)
31278 pack_tmp = ior(pack_tmp, data_tmp)
31279 pack_tmp = ishft(pack_tmp, -22)
31280 idata = idata + 1
31281 data_tmp = full_data(idata)
31282 data_tmp = ishft(data_tmp, 23)
31283 data_tmp = iand(data_tmp, mask_left(22))
31284 pack_tmp = ior(pack_tmp, data_tmp)
31285 ipack = ipack + 1
31286 packed_data(ipack) = pack_tmp
31287 data_tmp = full_data(idata)
31288 pack_tmp = ishft(data_tmp, 45)
31289 pack_tmp = ishft(pack_tmp, -41)
31290 idata = idata + 1
31291 data_tmp = full_data(idata)
31292 data_tmp = ishft(data_tmp, 23)
31293 pack_tmp = ior(pack_tmp, data_tmp)
31294 pack_tmp = ishft(pack_tmp, -4)
31295 idata = idata + 1
31296 data_tmp = full_data(idata)
31297 data_tmp = ishft(data_tmp, 23)
31298 data_tmp = iand(data_tmp, mask_left(4))
31299 pack_tmp = ior(pack_tmp, data_tmp)
31300 ipack = ipack + 1
31301 packed_data(ipack) = pack_tmp
31302 data_tmp = full_data(idata)
31303 pack_tmp = ishft(data_tmp, 27)
31304 pack_tmp = ishft(pack_tmp, -27)
31305 idata = idata + 1
31306 data_tmp = full_data(idata)
31307 data_tmp = ishft(data_tmp, 23)
31308 data_tmp = iand(data_tmp, mask_left(27))
31309 pack_tmp = ior(pack_tmp, data_tmp)
31310 ipack = ipack + 1
31311 packed_data(ipack) = pack_tmp
31312 data_tmp = full_data(idata)
31313 pack_tmp = ishft(data_tmp, 50)
31314 pack_tmp = ishft(pack_tmp, -41)
31315 idata = idata + 1
31316 data_tmp = full_data(idata)
31317 data_tmp = ishft(data_tmp, 23)
31318 pack_tmp = ior(pack_tmp, data_tmp)
31319 pack_tmp = ishft(pack_tmp, -9)
31320 idata = idata + 1
31321 data_tmp = full_data(idata)
31322 data_tmp = ishft(data_tmp, 23)
31323 data_tmp = iand(data_tmp, mask_left(9))
31324 pack_tmp = ior(pack_tmp, data_tmp)
31325 ipack = ipack + 1
31326 packed_data(ipack) = pack_tmp
31327 data_tmp = full_data(idata)
31328 pack_tmp = ishft(data_tmp, 32)
31329 pack_tmp = ishft(pack_tmp, -32)
31330 idata = idata + 1
31331 data_tmp = full_data(idata)
31332 data_tmp = ishft(data_tmp, 23)
31333 data_tmp = iand(data_tmp, mask_left(32))
31334 pack_tmp = ior(pack_tmp, data_tmp)
31335 ipack = ipack + 1
31336 packed_data(ipack) = pack_tmp
31337 data_tmp = full_data(idata)
31338 pack_tmp = ishft(data_tmp, 55)
31339 pack_tmp = ishft(pack_tmp, -41)
31340 idata = idata + 1
31341 data_tmp = full_data(idata)
31342 data_tmp = ishft(data_tmp, 23)
31343 pack_tmp = ior(pack_tmp, data_tmp)
31344 pack_tmp = ishft(pack_tmp, -14)
31345 idata = idata + 1
31346 data_tmp = full_data(idata)
31347 data_tmp = ishft(data_tmp, 23)
31348 data_tmp = iand(data_tmp, mask_left(14))
31349 pack_tmp = ior(pack_tmp, data_tmp)
31350 ipack = ipack + 1
31351 packed_data(ipack) = pack_tmp
31352 data_tmp = full_data(idata)
31353 pack_tmp = ishft(data_tmp, 37)
31354 pack_tmp = ishft(pack_tmp, -37)
31355 idata = idata + 1
31356 data_tmp = full_data(idata)
31357 data_tmp = ishft(data_tmp, 23)
31358 data_tmp = iand(data_tmp, mask_left(37))
31359 pack_tmp = ior(pack_tmp, data_tmp)
31360 ipack = ipack + 1
31361 packed_data(ipack) = pack_tmp
31362 data_tmp = full_data(idata)
31363 pack_tmp = ishft(data_tmp, 60)
31364 pack_tmp = ishft(pack_tmp, -41)
31365 idata = idata + 1
31366 data_tmp = full_data(idata)
31367 data_tmp = ishft(data_tmp, 23)
31368 pack_tmp = ior(pack_tmp, data_tmp)
31369 pack_tmp = ishft(pack_tmp, -19)
31370 idata = idata + 1
31371 data_tmp = full_data(idata)
31372 data_tmp = ishft(data_tmp, 23)
31373 data_tmp = iand(data_tmp, mask_left(19))
31374 pack_tmp = ior(pack_tmp, data_tmp)
31375 ipack = ipack + 1
31376 packed_data(ipack) = pack_tmp
31377 data_tmp = full_data(idata)
31378 pack_tmp = ishft(data_tmp, 42)
31379 pack_tmp = ishft(pack_tmp, -41)
31380 idata = idata + 1
31381 data_tmp = full_data(idata)
31382 data_tmp = ishft(data_tmp, 23)
31383 pack_tmp = ior(pack_tmp, data_tmp)
31384 pack_tmp = ishft(pack_tmp, -1)
31385 idata = idata + 1
31386 data_tmp = full_data(idata)
31387 data_tmp = ishft(data_tmp, 23)
31388 data_tmp = iand(data_tmp, mask_left(1))
31389 pack_tmp = ior(pack_tmp, data_tmp)
31390 ipack = ipack + 1
31391 packed_data(ipack) = pack_tmp
31392 data_tmp = full_data(idata)
31393 pack_tmp = ishft(data_tmp, 24)
31394 pack_tmp = ishft(pack_tmp, -24)
31395 idata = idata + 1
31396 data_tmp = full_data(idata)
31397 data_tmp = ishft(data_tmp, 23)
31398 data_tmp = iand(data_tmp, mask_left(24))
31399 pack_tmp = ior(pack_tmp, data_tmp)
31400 ipack = ipack + 1
31401 packed_data(ipack) = pack_tmp
31402 data_tmp = full_data(idata)
31403 pack_tmp = ishft(data_tmp, 47)
31404 pack_tmp = ishft(pack_tmp, -41)
31405 idata = idata + 1
31406 data_tmp = full_data(idata)
31407 data_tmp = ishft(data_tmp, 23)
31408 pack_tmp = ior(pack_tmp, data_tmp)
31409 pack_tmp = ishft(pack_tmp, -6)
31410 idata = idata + 1
31411 data_tmp = full_data(idata)
31412 data_tmp = ishft(data_tmp, 23)
31413 data_tmp = iand(data_tmp, mask_left(6))
31414 pack_tmp = ior(pack_tmp, data_tmp)
31415 ipack = ipack + 1
31416 packed_data(ipack) = pack_tmp
31417 data_tmp = full_data(idata)
31418 pack_tmp = ishft(data_tmp, 29)
31419 pack_tmp = ishft(pack_tmp, -29)
31420 idata = idata + 1
31421 data_tmp = full_data(idata)
31422 data_tmp = ishft(data_tmp, 23)
31423 data_tmp = iand(data_tmp, mask_left(29))
31424 pack_tmp = ior(pack_tmp, data_tmp)
31425 ipack = ipack + 1
31426 packed_data(ipack) = pack_tmp
31427 data_tmp = full_data(idata)
31428 pack_tmp = ishft(data_tmp, 52)
31429 pack_tmp = ishft(pack_tmp, -41)
31430 idata = idata + 1
31431 data_tmp = full_data(idata)
31432 data_tmp = ishft(data_tmp, 23)
31433 pack_tmp = ior(pack_tmp, data_tmp)
31434 pack_tmp = ishft(pack_tmp, -11)
31435 idata = idata + 1
31436 data_tmp = full_data(idata)
31437 data_tmp = ishft(data_tmp, 23)
31438 data_tmp = iand(data_tmp, mask_left(11))
31439 pack_tmp = ior(pack_tmp, data_tmp)
31440 ipack = ipack + 1
31441 packed_data(ipack) = pack_tmp
31442 data_tmp = full_data(idata)
31443 pack_tmp = ishft(data_tmp, 34)
31444 pack_tmp = ishft(pack_tmp, -34)
31445 idata = idata + 1
31446 data_tmp = full_data(idata)
31447 data_tmp = ishft(data_tmp, 23)
31448 data_tmp = iand(data_tmp, mask_left(34))
31449 pack_tmp = ior(pack_tmp, data_tmp)
31450 ipack = ipack + 1
31451 packed_data(ipack) = pack_tmp
31452 data_tmp = full_data(idata)
31453 pack_tmp = ishft(data_tmp, 57)
31454 pack_tmp = ishft(pack_tmp, -41)
31455 idata = idata + 1
31456 data_tmp = full_data(idata)
31457 data_tmp = ishft(data_tmp, 23)
31458 pack_tmp = ior(pack_tmp, data_tmp)
31459 pack_tmp = ishft(pack_tmp, -16)
31460 idata = idata + 1
31461 data_tmp = full_data(idata)
31462 data_tmp = ishft(data_tmp, 23)
31463 data_tmp = iand(data_tmp, mask_left(16))
31464 pack_tmp = ior(pack_tmp, data_tmp)
31465 ipack = ipack + 1
31466 packed_data(ipack) = pack_tmp
31467 data_tmp = full_data(idata)
31468 pack_tmp = ishft(data_tmp, 39)
31469 pack_tmp = ishft(pack_tmp, -39)
31470 idata = idata + 1
31471 data_tmp = full_data(idata)
31472 data_tmp = ishft(data_tmp, 23)
31473 data_tmp = iand(data_tmp, mask_left(39))
31474 pack_tmp = ior(pack_tmp, data_tmp)
31475 ipack = ipack + 1
31476 packed_data(ipack) = pack_tmp
31477 data_tmp = full_data(idata)
31478 pack_tmp = ishft(data_tmp, 62)
31479 pack_tmp = ishft(pack_tmp, -41)
31480 idata = idata + 1
31481 data_tmp = full_data(idata)
31482 data_tmp = ishft(data_tmp, 23)
31483 pack_tmp = ior(pack_tmp, data_tmp)
31484 pack_tmp = ishft(pack_tmp, -21)
31485 idata = idata + 1
31486 data_tmp = full_data(idata)
31487 data_tmp = ishft(data_tmp, 23)
31488 data_tmp = iand(data_tmp, mask_left(21))
31489 pack_tmp = ior(pack_tmp, data_tmp)
31490 ipack = ipack + 1
31491 packed_data(ipack) = pack_tmp
31492 data_tmp = full_data(idata)
31493 pack_tmp = ishft(data_tmp, 44)
31494 pack_tmp = ishft(pack_tmp, -41)
31495 idata = idata + 1
31496 data_tmp = full_data(idata)
31497 data_tmp = ishft(data_tmp, 23)
31498 pack_tmp = ior(pack_tmp, data_tmp)
31499 pack_tmp = ishft(pack_tmp, -3)
31500 idata = idata + 1
31501 data_tmp = full_data(idata)
31502 data_tmp = ishft(data_tmp, 23)
31503 data_tmp = iand(data_tmp, mask_left(3))
31504 pack_tmp = ior(pack_tmp, data_tmp)
31505 ipack = ipack + 1
31506 packed_data(ipack) = pack_tmp
31507 data_tmp = full_data(idata)
31508 pack_tmp = ishft(data_tmp, 26)
31509 pack_tmp = ishft(pack_tmp, -26)
31510 idata = idata + 1
31511 data_tmp = full_data(idata)
31512 data_tmp = ishft(data_tmp, 23)
31513 data_tmp = iand(data_tmp, mask_left(26))
31514 pack_tmp = ior(pack_tmp, data_tmp)
31515 ipack = ipack + 1
31516 packed_data(ipack) = pack_tmp
31517 data_tmp = full_data(idata)
31518 pack_tmp = ishft(data_tmp, 49)
31519 pack_tmp = ishft(pack_tmp, -41)
31520 idata = idata + 1
31521 data_tmp = full_data(idata)
31522 data_tmp = ishft(data_tmp, 23)
31523 pack_tmp = ior(pack_tmp, data_tmp)
31524 pack_tmp = ishft(pack_tmp, -8)
31525 idata = idata + 1
31526 data_tmp = full_data(idata)
31527 data_tmp = ishft(data_tmp, 23)
31528 data_tmp = iand(data_tmp, mask_left(8))
31529 pack_tmp = ior(pack_tmp, data_tmp)
31530 ipack = ipack + 1
31531 packed_data(ipack) = pack_tmp
31532 data_tmp = full_data(idata)
31533 pack_tmp = ishft(data_tmp, 31)
31534 pack_tmp = ishft(pack_tmp, -31)
31535 idata = idata + 1
31536 data_tmp = full_data(idata)
31537 data_tmp = ishft(data_tmp, 23)
31538 data_tmp = iand(data_tmp, mask_left(31))
31539 pack_tmp = ior(pack_tmp, data_tmp)
31540 ipack = ipack + 1
31541 packed_data(ipack) = pack_tmp
31542 data_tmp = full_data(idata)
31543 pack_tmp = ishft(data_tmp, 54)
31544 pack_tmp = ishft(pack_tmp, -41)
31545 idata = idata + 1
31546 data_tmp = full_data(idata)
31547 data_tmp = ishft(data_tmp, 23)
31548 pack_tmp = ior(pack_tmp, data_tmp)
31549 pack_tmp = ishft(pack_tmp, -13)
31550 idata = idata + 1
31551 data_tmp = full_data(idata)
31552 data_tmp = ishft(data_tmp, 23)
31553 data_tmp = iand(data_tmp, mask_left(13))
31554 pack_tmp = ior(pack_tmp, data_tmp)
31555 ipack = ipack + 1
31556 packed_data(ipack) = pack_tmp
31557 data_tmp = full_data(idata)
31558 pack_tmp = ishft(data_tmp, 36)
31559 pack_tmp = ishft(pack_tmp, -36)
31560 idata = idata + 1
31561 data_tmp = full_data(idata)
31562 data_tmp = ishft(data_tmp, 23)
31563 data_tmp = iand(data_tmp, mask_left(36))
31564 pack_tmp = ior(pack_tmp, data_tmp)
31565 ipack = ipack + 1
31566 packed_data(ipack) = pack_tmp
31567 data_tmp = full_data(idata)
31568 pack_tmp = ishft(data_tmp, 59)
31569 pack_tmp = ishft(pack_tmp, -41)
31570 idata = idata + 1
31571 data_tmp = full_data(idata)
31572 data_tmp = ishft(data_tmp, 23)
31573 pack_tmp = ior(pack_tmp, data_tmp)
31574 pack_tmp = ishft(pack_tmp, -18)
31575 idata = idata + 1
31576 data_tmp = full_data(idata)
31577 data_tmp = ishft(data_tmp, 23)
31578 data_tmp = iand(data_tmp, mask_left(18))
31579 pack_tmp = ior(pack_tmp, data_tmp)
31580 ipack = ipack + 1
31581 packed_data(ipack) = pack_tmp
31582 data_tmp = full_data(idata)
31583 pack_tmp = ishft(data_tmp, 41)
31584 pack_tmp = ishft(pack_tmp, -41)
31585 idata = idata + 1
31586 data_tmp = full_data(idata)
31587 data_tmp = ishft(data_tmp, 23)
31588 pack_tmp = ior(pack_tmp, data_tmp)
31589 pack_tmp = ishft(pack_tmp, 0)
31590 pack_tmp = ishft(pack_tmp, 0)
31591 ipack = ipack + 1
31592 packed_data(ipack) = pack_tmp
31593 END DO
31594 IF (ndata_rep < ndata) THEN
31595 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
31596 END IF
31597 END SUBROUTINE ints2bits_41
31598
31599! **************************************************************************************************
31600!> \brief ...
31601!> \param Ndata ...
31602!> \param packed_data ...
31603!> \param full_data ...
31604! **************************************************************************************************
31605 SUBROUTINE bits2ints_41(Ndata, packed_data, full_data)
31606 INTEGER, INTENT(IN) :: Ndata
31607 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
31608 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
31609
31610 INTEGER, PARAMETER :: Nbits = 41
31611
31612 INTEGER :: idata, ipack, kdata, Ndata_rep
31613 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
31614
31615 ipack = 0
31616 idata = 0
31617 pack_tmp = 0
31618 ndata_rep = (ndata/64)*64
31619 DO kdata = 1, ndata_rep, 64
31620 idata = idata + 1
31621 data_tmp = ishft(pack_tmp, 41)
31622 ipack = ipack + 1
31623 pack_tmp = packed_data(ipack)
31624 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(41)))
31625 pack_tmp = ishft(pack_tmp, -41)
31626 idata = idata + 1
31627 data_tmp = ishft(pack_tmp, 18)
31628 ipack = ipack + 1
31629 pack_tmp = packed_data(ipack)
31630 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
31631 pack_tmp = ishft(pack_tmp, -18)
31632 idata = idata + 1
31633 data_tmp = iand(pack_tmp, mask_right(nbits))
31634 full_data(idata) = data_tmp
31635 pack_tmp = ishft(pack_tmp, -nbits)
31636 idata = idata + 1
31637 data_tmp = ishft(pack_tmp, 36)
31638 ipack = ipack + 1
31639 pack_tmp = packed_data(ipack)
31640 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
31641 pack_tmp = ishft(pack_tmp, -36)
31642 idata = idata + 1
31643 data_tmp = ishft(pack_tmp, 13)
31644 ipack = ipack + 1
31645 pack_tmp = packed_data(ipack)
31646 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
31647 pack_tmp = ishft(pack_tmp, -13)
31648 idata = idata + 1
31649 data_tmp = iand(pack_tmp, mask_right(nbits))
31650 full_data(idata) = data_tmp
31651 pack_tmp = ishft(pack_tmp, -nbits)
31652 idata = idata + 1
31653 data_tmp = ishft(pack_tmp, 31)
31654 ipack = ipack + 1
31655 pack_tmp = packed_data(ipack)
31656 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
31657 pack_tmp = ishft(pack_tmp, -31)
31658 idata = idata + 1
31659 data_tmp = ishft(pack_tmp, 8)
31660 ipack = ipack + 1
31661 pack_tmp = packed_data(ipack)
31662 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
31663 pack_tmp = ishft(pack_tmp, -8)
31664 idata = idata + 1
31665 data_tmp = iand(pack_tmp, mask_right(nbits))
31666 full_data(idata) = data_tmp
31667 pack_tmp = ishft(pack_tmp, -nbits)
31668 idata = idata + 1
31669 data_tmp = ishft(pack_tmp, 26)
31670 ipack = ipack + 1
31671 pack_tmp = packed_data(ipack)
31672 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
31673 pack_tmp = ishft(pack_tmp, -26)
31674 idata = idata + 1
31675 data_tmp = ishft(pack_tmp, 3)
31676 ipack = ipack + 1
31677 pack_tmp = packed_data(ipack)
31678 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
31679 pack_tmp = ishft(pack_tmp, -3)
31680 idata = idata + 1
31681 data_tmp = iand(pack_tmp, mask_right(nbits))
31682 full_data(idata) = data_tmp
31683 pack_tmp = ishft(pack_tmp, -nbits)
31684 idata = idata + 1
31685 data_tmp = ishft(pack_tmp, 21)
31686 ipack = ipack + 1
31687 pack_tmp = packed_data(ipack)
31688 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
31689 pack_tmp = ishft(pack_tmp, -21)
31690 idata = idata + 1
31691 data_tmp = iand(pack_tmp, mask_right(nbits))
31692 full_data(idata) = data_tmp
31693 pack_tmp = ishft(pack_tmp, -nbits)
31694 idata = idata + 1
31695 data_tmp = ishft(pack_tmp, 39)
31696 ipack = ipack + 1
31697 pack_tmp = packed_data(ipack)
31698 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
31699 pack_tmp = ishft(pack_tmp, -39)
31700 idata = idata + 1
31701 data_tmp = ishft(pack_tmp, 16)
31702 ipack = ipack + 1
31703 pack_tmp = packed_data(ipack)
31704 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
31705 pack_tmp = ishft(pack_tmp, -16)
31706 idata = idata + 1
31707 data_tmp = iand(pack_tmp, mask_right(nbits))
31708 full_data(idata) = data_tmp
31709 pack_tmp = ishft(pack_tmp, -nbits)
31710 idata = idata + 1
31711 data_tmp = ishft(pack_tmp, 34)
31712 ipack = ipack + 1
31713 pack_tmp = packed_data(ipack)
31714 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
31715 pack_tmp = ishft(pack_tmp, -34)
31716 idata = idata + 1
31717 data_tmp = ishft(pack_tmp, 11)
31718 ipack = ipack + 1
31719 pack_tmp = packed_data(ipack)
31720 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
31721 pack_tmp = ishft(pack_tmp, -11)
31722 idata = idata + 1
31723 data_tmp = iand(pack_tmp, mask_right(nbits))
31724 full_data(idata) = data_tmp
31725 pack_tmp = ishft(pack_tmp, -nbits)
31726 idata = idata + 1
31727 data_tmp = ishft(pack_tmp, 29)
31728 ipack = ipack + 1
31729 pack_tmp = packed_data(ipack)
31730 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
31731 pack_tmp = ishft(pack_tmp, -29)
31732 idata = idata + 1
31733 data_tmp = ishft(pack_tmp, 6)
31734 ipack = ipack + 1
31735 pack_tmp = packed_data(ipack)
31736 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
31737 pack_tmp = ishft(pack_tmp, -6)
31738 idata = idata + 1
31739 data_tmp = iand(pack_tmp, mask_right(nbits))
31740 full_data(idata) = data_tmp
31741 pack_tmp = ishft(pack_tmp, -nbits)
31742 idata = idata + 1
31743 data_tmp = ishft(pack_tmp, 24)
31744 ipack = ipack + 1
31745 pack_tmp = packed_data(ipack)
31746 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
31747 pack_tmp = ishft(pack_tmp, -24)
31748 idata = idata + 1
31749 data_tmp = ishft(pack_tmp, 1)
31750 ipack = ipack + 1
31751 pack_tmp = packed_data(ipack)
31752 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
31753 pack_tmp = ishft(pack_tmp, -1)
31754 idata = idata + 1
31755 data_tmp = iand(pack_tmp, mask_right(nbits))
31756 full_data(idata) = data_tmp
31757 pack_tmp = ishft(pack_tmp, -nbits)
31758 idata = idata + 1
31759 data_tmp = ishft(pack_tmp, 19)
31760 ipack = ipack + 1
31761 pack_tmp = packed_data(ipack)
31762 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
31763 pack_tmp = ishft(pack_tmp, -19)
31764 idata = idata + 1
31765 data_tmp = iand(pack_tmp, mask_right(nbits))
31766 full_data(idata) = data_tmp
31767 pack_tmp = ishft(pack_tmp, -nbits)
31768 idata = idata + 1
31769 data_tmp = ishft(pack_tmp, 37)
31770 ipack = ipack + 1
31771 pack_tmp = packed_data(ipack)
31772 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
31773 pack_tmp = ishft(pack_tmp, -37)
31774 idata = idata + 1
31775 data_tmp = ishft(pack_tmp, 14)
31776 ipack = ipack + 1
31777 pack_tmp = packed_data(ipack)
31778 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
31779 pack_tmp = ishft(pack_tmp, -14)
31780 idata = idata + 1
31781 data_tmp = iand(pack_tmp, mask_right(nbits))
31782 full_data(idata) = data_tmp
31783 pack_tmp = ishft(pack_tmp, -nbits)
31784 idata = idata + 1
31785 data_tmp = ishft(pack_tmp, 32)
31786 ipack = ipack + 1
31787 pack_tmp = packed_data(ipack)
31788 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
31789 pack_tmp = ishft(pack_tmp, -32)
31790 idata = idata + 1
31791 data_tmp = ishft(pack_tmp, 9)
31792 ipack = ipack + 1
31793 pack_tmp = packed_data(ipack)
31794 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
31795 pack_tmp = ishft(pack_tmp, -9)
31796 idata = idata + 1
31797 data_tmp = iand(pack_tmp, mask_right(nbits))
31798 full_data(idata) = data_tmp
31799 pack_tmp = ishft(pack_tmp, -nbits)
31800 idata = idata + 1
31801 data_tmp = ishft(pack_tmp, 27)
31802 ipack = ipack + 1
31803 pack_tmp = packed_data(ipack)
31804 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
31805 pack_tmp = ishft(pack_tmp, -27)
31806 idata = idata + 1
31807 data_tmp = ishft(pack_tmp, 4)
31808 ipack = ipack + 1
31809 pack_tmp = packed_data(ipack)
31810 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
31811 pack_tmp = ishft(pack_tmp, -4)
31812 idata = idata + 1
31813 data_tmp = iand(pack_tmp, mask_right(nbits))
31814 full_data(idata) = data_tmp
31815 pack_tmp = ishft(pack_tmp, -nbits)
31816 idata = idata + 1
31817 data_tmp = ishft(pack_tmp, 22)
31818 ipack = ipack + 1
31819 pack_tmp = packed_data(ipack)
31820 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
31821 pack_tmp = ishft(pack_tmp, -22)
31822 idata = idata + 1
31823 data_tmp = iand(pack_tmp, mask_right(nbits))
31824 full_data(idata) = data_tmp
31825 pack_tmp = ishft(pack_tmp, -nbits)
31826 idata = idata + 1
31827 data_tmp = ishft(pack_tmp, 40)
31828 ipack = ipack + 1
31829 pack_tmp = packed_data(ipack)
31830 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
31831 pack_tmp = ishft(pack_tmp, -40)
31832 idata = idata + 1
31833 data_tmp = ishft(pack_tmp, 17)
31834 ipack = ipack + 1
31835 pack_tmp = packed_data(ipack)
31836 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
31837 pack_tmp = ishft(pack_tmp, -17)
31838 idata = idata + 1
31839 data_tmp = iand(pack_tmp, mask_right(nbits))
31840 full_data(idata) = data_tmp
31841 pack_tmp = ishft(pack_tmp, -nbits)
31842 idata = idata + 1
31843 data_tmp = ishft(pack_tmp, 35)
31844 ipack = ipack + 1
31845 pack_tmp = packed_data(ipack)
31846 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
31847 pack_tmp = ishft(pack_tmp, -35)
31848 idata = idata + 1
31849 data_tmp = ishft(pack_tmp, 12)
31850 ipack = ipack + 1
31851 pack_tmp = packed_data(ipack)
31852 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
31853 pack_tmp = ishft(pack_tmp, -12)
31854 idata = idata + 1
31855 data_tmp = iand(pack_tmp, mask_right(nbits))
31856 full_data(idata) = data_tmp
31857 pack_tmp = ishft(pack_tmp, -nbits)
31858 idata = idata + 1
31859 data_tmp = ishft(pack_tmp, 30)
31860 ipack = ipack + 1
31861 pack_tmp = packed_data(ipack)
31862 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
31863 pack_tmp = ishft(pack_tmp, -30)
31864 idata = idata + 1
31865 data_tmp = ishft(pack_tmp, 7)
31866 ipack = ipack + 1
31867 pack_tmp = packed_data(ipack)
31868 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
31869 pack_tmp = ishft(pack_tmp, -7)
31870 idata = idata + 1
31871 data_tmp = iand(pack_tmp, mask_right(nbits))
31872 full_data(idata) = data_tmp
31873 pack_tmp = ishft(pack_tmp, -nbits)
31874 idata = idata + 1
31875 data_tmp = ishft(pack_tmp, 25)
31876 ipack = ipack + 1
31877 pack_tmp = packed_data(ipack)
31878 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
31879 pack_tmp = ishft(pack_tmp, -25)
31880 idata = idata + 1
31881 data_tmp = ishft(pack_tmp, 2)
31882 ipack = ipack + 1
31883 pack_tmp = packed_data(ipack)
31884 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
31885 pack_tmp = ishft(pack_tmp, -2)
31886 idata = idata + 1
31887 data_tmp = iand(pack_tmp, mask_right(nbits))
31888 full_data(idata) = data_tmp
31889 pack_tmp = ishft(pack_tmp, -nbits)
31890 idata = idata + 1
31891 data_tmp = ishft(pack_tmp, 20)
31892 ipack = ipack + 1
31893 pack_tmp = packed_data(ipack)
31894 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
31895 pack_tmp = ishft(pack_tmp, -20)
31896 idata = idata + 1
31897 data_tmp = iand(pack_tmp, mask_right(nbits))
31898 full_data(idata) = data_tmp
31899 pack_tmp = ishft(pack_tmp, -nbits)
31900 idata = idata + 1
31901 data_tmp = ishft(pack_tmp, 38)
31902 ipack = ipack + 1
31903 pack_tmp = packed_data(ipack)
31904 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
31905 pack_tmp = ishft(pack_tmp, -38)
31906 idata = idata + 1
31907 data_tmp = ishft(pack_tmp, 15)
31908 ipack = ipack + 1
31909 pack_tmp = packed_data(ipack)
31910 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
31911 pack_tmp = ishft(pack_tmp, -15)
31912 idata = idata + 1
31913 data_tmp = iand(pack_tmp, mask_right(nbits))
31914 full_data(idata) = data_tmp
31915 pack_tmp = ishft(pack_tmp, -nbits)
31916 idata = idata + 1
31917 data_tmp = ishft(pack_tmp, 33)
31918 ipack = ipack + 1
31919 pack_tmp = packed_data(ipack)
31920 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
31921 pack_tmp = ishft(pack_tmp, -33)
31922 idata = idata + 1
31923 data_tmp = ishft(pack_tmp, 10)
31924 ipack = ipack + 1
31925 pack_tmp = packed_data(ipack)
31926 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
31927 pack_tmp = ishft(pack_tmp, -10)
31928 idata = idata + 1
31929 data_tmp = iand(pack_tmp, mask_right(nbits))
31930 full_data(idata) = data_tmp
31931 pack_tmp = ishft(pack_tmp, -nbits)
31932 idata = idata + 1
31933 data_tmp = ishft(pack_tmp, 28)
31934 ipack = ipack + 1
31935 pack_tmp = packed_data(ipack)
31936 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
31937 pack_tmp = ishft(pack_tmp, -28)
31938 idata = idata + 1
31939 data_tmp = ishft(pack_tmp, 5)
31940 ipack = ipack + 1
31941 pack_tmp = packed_data(ipack)
31942 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
31943 pack_tmp = ishft(pack_tmp, -5)
31944 idata = idata + 1
31945 data_tmp = iand(pack_tmp, mask_right(nbits))
31946 full_data(idata) = data_tmp
31947 pack_tmp = ishft(pack_tmp, -nbits)
31948 idata = idata + 1
31949 data_tmp = ishft(pack_tmp, 23)
31950 ipack = ipack + 1
31951 pack_tmp = packed_data(ipack)
31952 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
31953 pack_tmp = ishft(pack_tmp, -23)
31954 idata = idata + 1
31955 data_tmp = iand(pack_tmp, mask_right(nbits))
31956 full_data(idata) = data_tmp
31957 pack_tmp = ishft(pack_tmp, -nbits)
31958 END DO
31959 IF (ndata_rep < ndata) THEN
31960 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
31961 END IF
31962 END SUBROUTINE bits2ints_41
31963
31964! **************************************************************************************************
31965!> \brief ...
31966!> \param Ndata ...
31967!> \param packed_data ...
31968!> \param full_data ...
31969! **************************************************************************************************
31970 SUBROUTINE ints2bits_42(Ndata, packed_data, full_data)
31971 INTEGER, INTENT(IN) :: Ndata
31972 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
31973 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
31974
31975 INTEGER, PARAMETER :: Nbits = 42
31976
31977 INTEGER :: idata, ipack, kdata, Ndata_rep
31978 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
31979
31980 idata = 0
31981 ipack = 0
31982 ndata_rep = (ndata/64)*64
31983 DO kdata = 1, ndata_rep, 64
31984 pack_tmp = 0
31985 idata = idata + 1
31986 data_tmp = full_data(idata)
31987 data_tmp = ishft(data_tmp, 22)
31988 pack_tmp = ior(pack_tmp, data_tmp)
31989 pack_tmp = ishft(pack_tmp, -22)
31990 idata = idata + 1
31991 data_tmp = full_data(idata)
31992 data_tmp = ishft(data_tmp, 22)
31993 data_tmp = iand(data_tmp, mask_left(22))
31994 pack_tmp = ior(pack_tmp, data_tmp)
31995 ipack = ipack + 1
31996 packed_data(ipack) = pack_tmp
31997 data_tmp = full_data(idata)
31998 pack_tmp = ishft(data_tmp, 44)
31999 pack_tmp = ishft(pack_tmp, -42)
32000 idata = idata + 1
32001 data_tmp = full_data(idata)
32002 data_tmp = ishft(data_tmp, 22)
32003 pack_tmp = ior(pack_tmp, data_tmp)
32004 pack_tmp = ishft(pack_tmp, -2)
32005 idata = idata + 1
32006 data_tmp = full_data(idata)
32007 data_tmp = ishft(data_tmp, 22)
32008 data_tmp = iand(data_tmp, mask_left(2))
32009 pack_tmp = ior(pack_tmp, data_tmp)
32010 ipack = ipack + 1
32011 packed_data(ipack) = pack_tmp
32012 data_tmp = full_data(idata)
32013 pack_tmp = ishft(data_tmp, 24)
32014 pack_tmp = ishft(pack_tmp, -24)
32015 idata = idata + 1
32016 data_tmp = full_data(idata)
32017 data_tmp = ishft(data_tmp, 22)
32018 data_tmp = iand(data_tmp, mask_left(24))
32019 pack_tmp = ior(pack_tmp, data_tmp)
32020 ipack = ipack + 1
32021 packed_data(ipack) = pack_tmp
32022 data_tmp = full_data(idata)
32023 pack_tmp = ishft(data_tmp, 46)
32024 pack_tmp = ishft(pack_tmp, -42)
32025 idata = idata + 1
32026 data_tmp = full_data(idata)
32027 data_tmp = ishft(data_tmp, 22)
32028 pack_tmp = ior(pack_tmp, data_tmp)
32029 pack_tmp = ishft(pack_tmp, -4)
32030 idata = idata + 1
32031 data_tmp = full_data(idata)
32032 data_tmp = ishft(data_tmp, 22)
32033 data_tmp = iand(data_tmp, mask_left(4))
32034 pack_tmp = ior(pack_tmp, data_tmp)
32035 ipack = ipack + 1
32036 packed_data(ipack) = pack_tmp
32037 data_tmp = full_data(idata)
32038 pack_tmp = ishft(data_tmp, 26)
32039 pack_tmp = ishft(pack_tmp, -26)
32040 idata = idata + 1
32041 data_tmp = full_data(idata)
32042 data_tmp = ishft(data_tmp, 22)
32043 data_tmp = iand(data_tmp, mask_left(26))
32044 pack_tmp = ior(pack_tmp, data_tmp)
32045 ipack = ipack + 1
32046 packed_data(ipack) = pack_tmp
32047 data_tmp = full_data(idata)
32048 pack_tmp = ishft(data_tmp, 48)
32049 pack_tmp = ishft(pack_tmp, -42)
32050 idata = idata + 1
32051 data_tmp = full_data(idata)
32052 data_tmp = ishft(data_tmp, 22)
32053 pack_tmp = ior(pack_tmp, data_tmp)
32054 pack_tmp = ishft(pack_tmp, -6)
32055 idata = idata + 1
32056 data_tmp = full_data(idata)
32057 data_tmp = ishft(data_tmp, 22)
32058 data_tmp = iand(data_tmp, mask_left(6))
32059 pack_tmp = ior(pack_tmp, data_tmp)
32060 ipack = ipack + 1
32061 packed_data(ipack) = pack_tmp
32062 data_tmp = full_data(idata)
32063 pack_tmp = ishft(data_tmp, 28)
32064 pack_tmp = ishft(pack_tmp, -28)
32065 idata = idata + 1
32066 data_tmp = full_data(idata)
32067 data_tmp = ishft(data_tmp, 22)
32068 data_tmp = iand(data_tmp, mask_left(28))
32069 pack_tmp = ior(pack_tmp, data_tmp)
32070 ipack = ipack + 1
32071 packed_data(ipack) = pack_tmp
32072 data_tmp = full_data(idata)
32073 pack_tmp = ishft(data_tmp, 50)
32074 pack_tmp = ishft(pack_tmp, -42)
32075 idata = idata + 1
32076 data_tmp = full_data(idata)
32077 data_tmp = ishft(data_tmp, 22)
32078 pack_tmp = ior(pack_tmp, data_tmp)
32079 pack_tmp = ishft(pack_tmp, -8)
32080 idata = idata + 1
32081 data_tmp = full_data(idata)
32082 data_tmp = ishft(data_tmp, 22)
32083 data_tmp = iand(data_tmp, mask_left(8))
32084 pack_tmp = ior(pack_tmp, data_tmp)
32085 ipack = ipack + 1
32086 packed_data(ipack) = pack_tmp
32087 data_tmp = full_data(idata)
32088 pack_tmp = ishft(data_tmp, 30)
32089 pack_tmp = ishft(pack_tmp, -30)
32090 idata = idata + 1
32091 data_tmp = full_data(idata)
32092 data_tmp = ishft(data_tmp, 22)
32093 data_tmp = iand(data_tmp, mask_left(30))
32094 pack_tmp = ior(pack_tmp, data_tmp)
32095 ipack = ipack + 1
32096 packed_data(ipack) = pack_tmp
32097 data_tmp = full_data(idata)
32098 pack_tmp = ishft(data_tmp, 52)
32099 pack_tmp = ishft(pack_tmp, -42)
32100 idata = idata + 1
32101 data_tmp = full_data(idata)
32102 data_tmp = ishft(data_tmp, 22)
32103 pack_tmp = ior(pack_tmp, data_tmp)
32104 pack_tmp = ishft(pack_tmp, -10)
32105 idata = idata + 1
32106 data_tmp = full_data(idata)
32107 data_tmp = ishft(data_tmp, 22)
32108 data_tmp = iand(data_tmp, mask_left(10))
32109 pack_tmp = ior(pack_tmp, data_tmp)
32110 ipack = ipack + 1
32111 packed_data(ipack) = pack_tmp
32112 data_tmp = full_data(idata)
32113 pack_tmp = ishft(data_tmp, 32)
32114 pack_tmp = ishft(pack_tmp, -32)
32115 idata = idata + 1
32116 data_tmp = full_data(idata)
32117 data_tmp = ishft(data_tmp, 22)
32118 data_tmp = iand(data_tmp, mask_left(32))
32119 pack_tmp = ior(pack_tmp, data_tmp)
32120 ipack = ipack + 1
32121 packed_data(ipack) = pack_tmp
32122 data_tmp = full_data(idata)
32123 pack_tmp = ishft(data_tmp, 54)
32124 pack_tmp = ishft(pack_tmp, -42)
32125 idata = idata + 1
32126 data_tmp = full_data(idata)
32127 data_tmp = ishft(data_tmp, 22)
32128 pack_tmp = ior(pack_tmp, data_tmp)
32129 pack_tmp = ishft(pack_tmp, -12)
32130 idata = idata + 1
32131 data_tmp = full_data(idata)
32132 data_tmp = ishft(data_tmp, 22)
32133 data_tmp = iand(data_tmp, mask_left(12))
32134 pack_tmp = ior(pack_tmp, data_tmp)
32135 ipack = ipack + 1
32136 packed_data(ipack) = pack_tmp
32137 data_tmp = full_data(idata)
32138 pack_tmp = ishft(data_tmp, 34)
32139 pack_tmp = ishft(pack_tmp, -34)
32140 idata = idata + 1
32141 data_tmp = full_data(idata)
32142 data_tmp = ishft(data_tmp, 22)
32143 data_tmp = iand(data_tmp, mask_left(34))
32144 pack_tmp = ior(pack_tmp, data_tmp)
32145 ipack = ipack + 1
32146 packed_data(ipack) = pack_tmp
32147 data_tmp = full_data(idata)
32148 pack_tmp = ishft(data_tmp, 56)
32149 pack_tmp = ishft(pack_tmp, -42)
32150 idata = idata + 1
32151 data_tmp = full_data(idata)
32152 data_tmp = ishft(data_tmp, 22)
32153 pack_tmp = ior(pack_tmp, data_tmp)
32154 pack_tmp = ishft(pack_tmp, -14)
32155 idata = idata + 1
32156 data_tmp = full_data(idata)
32157 data_tmp = ishft(data_tmp, 22)
32158 data_tmp = iand(data_tmp, mask_left(14))
32159 pack_tmp = ior(pack_tmp, data_tmp)
32160 ipack = ipack + 1
32161 packed_data(ipack) = pack_tmp
32162 data_tmp = full_data(idata)
32163 pack_tmp = ishft(data_tmp, 36)
32164 pack_tmp = ishft(pack_tmp, -36)
32165 idata = idata + 1
32166 data_tmp = full_data(idata)
32167 data_tmp = ishft(data_tmp, 22)
32168 data_tmp = iand(data_tmp, mask_left(36))
32169 pack_tmp = ior(pack_tmp, data_tmp)
32170 ipack = ipack + 1
32171 packed_data(ipack) = pack_tmp
32172 data_tmp = full_data(idata)
32173 pack_tmp = ishft(data_tmp, 58)
32174 pack_tmp = ishft(pack_tmp, -42)
32175 idata = idata + 1
32176 data_tmp = full_data(idata)
32177 data_tmp = ishft(data_tmp, 22)
32178 pack_tmp = ior(pack_tmp, data_tmp)
32179 pack_tmp = ishft(pack_tmp, -16)
32180 idata = idata + 1
32181 data_tmp = full_data(idata)
32182 data_tmp = ishft(data_tmp, 22)
32183 data_tmp = iand(data_tmp, mask_left(16))
32184 pack_tmp = ior(pack_tmp, data_tmp)
32185 ipack = ipack + 1
32186 packed_data(ipack) = pack_tmp
32187 data_tmp = full_data(idata)
32188 pack_tmp = ishft(data_tmp, 38)
32189 pack_tmp = ishft(pack_tmp, -38)
32190 idata = idata + 1
32191 data_tmp = full_data(idata)
32192 data_tmp = ishft(data_tmp, 22)
32193 data_tmp = iand(data_tmp, mask_left(38))
32194 pack_tmp = ior(pack_tmp, data_tmp)
32195 ipack = ipack + 1
32196 packed_data(ipack) = pack_tmp
32197 data_tmp = full_data(idata)
32198 pack_tmp = ishft(data_tmp, 60)
32199 pack_tmp = ishft(pack_tmp, -42)
32200 idata = idata + 1
32201 data_tmp = full_data(idata)
32202 data_tmp = ishft(data_tmp, 22)
32203 pack_tmp = ior(pack_tmp, data_tmp)
32204 pack_tmp = ishft(pack_tmp, -18)
32205 idata = idata + 1
32206 data_tmp = full_data(idata)
32207 data_tmp = ishft(data_tmp, 22)
32208 data_tmp = iand(data_tmp, mask_left(18))
32209 pack_tmp = ior(pack_tmp, data_tmp)
32210 ipack = ipack + 1
32211 packed_data(ipack) = pack_tmp
32212 data_tmp = full_data(idata)
32213 pack_tmp = ishft(data_tmp, 40)
32214 pack_tmp = ishft(pack_tmp, -40)
32215 idata = idata + 1
32216 data_tmp = full_data(idata)
32217 data_tmp = ishft(data_tmp, 22)
32218 data_tmp = iand(data_tmp, mask_left(40))
32219 pack_tmp = ior(pack_tmp, data_tmp)
32220 ipack = ipack + 1
32221 packed_data(ipack) = pack_tmp
32222 data_tmp = full_data(idata)
32223 pack_tmp = ishft(data_tmp, 62)
32224 pack_tmp = ishft(pack_tmp, -42)
32225 idata = idata + 1
32226 data_tmp = full_data(idata)
32227 data_tmp = ishft(data_tmp, 22)
32228 pack_tmp = ior(pack_tmp, data_tmp)
32229 pack_tmp = ishft(pack_tmp, -20)
32230 idata = idata + 1
32231 data_tmp = full_data(idata)
32232 data_tmp = ishft(data_tmp, 22)
32233 data_tmp = iand(data_tmp, mask_left(20))
32234 pack_tmp = ior(pack_tmp, data_tmp)
32235 ipack = ipack + 1
32236 packed_data(ipack) = pack_tmp
32237 data_tmp = full_data(idata)
32238 pack_tmp = ishft(data_tmp, 42)
32239 pack_tmp = ishft(pack_tmp, -42)
32240 idata = idata + 1
32241 data_tmp = full_data(idata)
32242 data_tmp = ishft(data_tmp, 22)
32243 pack_tmp = ior(pack_tmp, data_tmp)
32244 pack_tmp = ishft(pack_tmp, 0)
32245 idata = idata + 1
32246 data_tmp = full_data(idata)
32247 data_tmp = ishft(data_tmp, 22)
32248 data_tmp = iand(data_tmp, mask_left(0))
32249 pack_tmp = ior(pack_tmp, data_tmp)
32250 ipack = ipack + 1
32251 packed_data(ipack) = pack_tmp
32252 data_tmp = full_data(idata)
32253 pack_tmp = ishft(data_tmp, 22)
32254 pack_tmp = ishft(pack_tmp, -22)
32255 idata = idata + 1
32256 data_tmp = full_data(idata)
32257 data_tmp = ishft(data_tmp, 22)
32258 data_tmp = iand(data_tmp, mask_left(22))
32259 pack_tmp = ior(pack_tmp, data_tmp)
32260 ipack = ipack + 1
32261 packed_data(ipack) = pack_tmp
32262 data_tmp = full_data(idata)
32263 pack_tmp = ishft(data_tmp, 44)
32264 pack_tmp = ishft(pack_tmp, -42)
32265 idata = idata + 1
32266 data_tmp = full_data(idata)
32267 data_tmp = ishft(data_tmp, 22)
32268 pack_tmp = ior(pack_tmp, data_tmp)
32269 pack_tmp = ishft(pack_tmp, -2)
32270 idata = idata + 1
32271 data_tmp = full_data(idata)
32272 data_tmp = ishft(data_tmp, 22)
32273 data_tmp = iand(data_tmp, mask_left(2))
32274 pack_tmp = ior(pack_tmp, data_tmp)
32275 ipack = ipack + 1
32276 packed_data(ipack) = pack_tmp
32277 data_tmp = full_data(idata)
32278 pack_tmp = ishft(data_tmp, 24)
32279 pack_tmp = ishft(pack_tmp, -24)
32280 idata = idata + 1
32281 data_tmp = full_data(idata)
32282 data_tmp = ishft(data_tmp, 22)
32283 data_tmp = iand(data_tmp, mask_left(24))
32284 pack_tmp = ior(pack_tmp, data_tmp)
32285 ipack = ipack + 1
32286 packed_data(ipack) = pack_tmp
32287 data_tmp = full_data(idata)
32288 pack_tmp = ishft(data_tmp, 46)
32289 pack_tmp = ishft(pack_tmp, -42)
32290 idata = idata + 1
32291 data_tmp = full_data(idata)
32292 data_tmp = ishft(data_tmp, 22)
32293 pack_tmp = ior(pack_tmp, data_tmp)
32294 pack_tmp = ishft(pack_tmp, -4)
32295 idata = idata + 1
32296 data_tmp = full_data(idata)
32297 data_tmp = ishft(data_tmp, 22)
32298 data_tmp = iand(data_tmp, mask_left(4))
32299 pack_tmp = ior(pack_tmp, data_tmp)
32300 ipack = ipack + 1
32301 packed_data(ipack) = pack_tmp
32302 data_tmp = full_data(idata)
32303 pack_tmp = ishft(data_tmp, 26)
32304 pack_tmp = ishft(pack_tmp, -26)
32305 idata = idata + 1
32306 data_tmp = full_data(idata)
32307 data_tmp = ishft(data_tmp, 22)
32308 data_tmp = iand(data_tmp, mask_left(26))
32309 pack_tmp = ior(pack_tmp, data_tmp)
32310 ipack = ipack + 1
32311 packed_data(ipack) = pack_tmp
32312 data_tmp = full_data(idata)
32313 pack_tmp = ishft(data_tmp, 48)
32314 pack_tmp = ishft(pack_tmp, -42)
32315 idata = idata + 1
32316 data_tmp = full_data(idata)
32317 data_tmp = ishft(data_tmp, 22)
32318 pack_tmp = ior(pack_tmp, data_tmp)
32319 pack_tmp = ishft(pack_tmp, -6)
32320 idata = idata + 1
32321 data_tmp = full_data(idata)
32322 data_tmp = ishft(data_tmp, 22)
32323 data_tmp = iand(data_tmp, mask_left(6))
32324 pack_tmp = ior(pack_tmp, data_tmp)
32325 ipack = ipack + 1
32326 packed_data(ipack) = pack_tmp
32327 data_tmp = full_data(idata)
32328 pack_tmp = ishft(data_tmp, 28)
32329 pack_tmp = ishft(pack_tmp, -28)
32330 idata = idata + 1
32331 data_tmp = full_data(idata)
32332 data_tmp = ishft(data_tmp, 22)
32333 data_tmp = iand(data_tmp, mask_left(28))
32334 pack_tmp = ior(pack_tmp, data_tmp)
32335 ipack = ipack + 1
32336 packed_data(ipack) = pack_tmp
32337 data_tmp = full_data(idata)
32338 pack_tmp = ishft(data_tmp, 50)
32339 pack_tmp = ishft(pack_tmp, -42)
32340 idata = idata + 1
32341 data_tmp = full_data(idata)
32342 data_tmp = ishft(data_tmp, 22)
32343 pack_tmp = ior(pack_tmp, data_tmp)
32344 pack_tmp = ishft(pack_tmp, -8)
32345 idata = idata + 1
32346 data_tmp = full_data(idata)
32347 data_tmp = ishft(data_tmp, 22)
32348 data_tmp = iand(data_tmp, mask_left(8))
32349 pack_tmp = ior(pack_tmp, data_tmp)
32350 ipack = ipack + 1
32351 packed_data(ipack) = pack_tmp
32352 data_tmp = full_data(idata)
32353 pack_tmp = ishft(data_tmp, 30)
32354 pack_tmp = ishft(pack_tmp, -30)
32355 idata = idata + 1
32356 data_tmp = full_data(idata)
32357 data_tmp = ishft(data_tmp, 22)
32358 data_tmp = iand(data_tmp, mask_left(30))
32359 pack_tmp = ior(pack_tmp, data_tmp)
32360 ipack = ipack + 1
32361 packed_data(ipack) = pack_tmp
32362 data_tmp = full_data(idata)
32363 pack_tmp = ishft(data_tmp, 52)
32364 pack_tmp = ishft(pack_tmp, -42)
32365 idata = idata + 1
32366 data_tmp = full_data(idata)
32367 data_tmp = ishft(data_tmp, 22)
32368 pack_tmp = ior(pack_tmp, data_tmp)
32369 pack_tmp = ishft(pack_tmp, -10)
32370 idata = idata + 1
32371 data_tmp = full_data(idata)
32372 data_tmp = ishft(data_tmp, 22)
32373 data_tmp = iand(data_tmp, mask_left(10))
32374 pack_tmp = ior(pack_tmp, data_tmp)
32375 ipack = ipack + 1
32376 packed_data(ipack) = pack_tmp
32377 data_tmp = full_data(idata)
32378 pack_tmp = ishft(data_tmp, 32)
32379 pack_tmp = ishft(pack_tmp, -32)
32380 idata = idata + 1
32381 data_tmp = full_data(idata)
32382 data_tmp = ishft(data_tmp, 22)
32383 data_tmp = iand(data_tmp, mask_left(32))
32384 pack_tmp = ior(pack_tmp, data_tmp)
32385 ipack = ipack + 1
32386 packed_data(ipack) = pack_tmp
32387 data_tmp = full_data(idata)
32388 pack_tmp = ishft(data_tmp, 54)
32389 pack_tmp = ishft(pack_tmp, -42)
32390 idata = idata + 1
32391 data_tmp = full_data(idata)
32392 data_tmp = ishft(data_tmp, 22)
32393 pack_tmp = ior(pack_tmp, data_tmp)
32394 pack_tmp = ishft(pack_tmp, -12)
32395 idata = idata + 1
32396 data_tmp = full_data(idata)
32397 data_tmp = ishft(data_tmp, 22)
32398 data_tmp = iand(data_tmp, mask_left(12))
32399 pack_tmp = ior(pack_tmp, data_tmp)
32400 ipack = ipack + 1
32401 packed_data(ipack) = pack_tmp
32402 data_tmp = full_data(idata)
32403 pack_tmp = ishft(data_tmp, 34)
32404 pack_tmp = ishft(pack_tmp, -34)
32405 idata = idata + 1
32406 data_tmp = full_data(idata)
32407 data_tmp = ishft(data_tmp, 22)
32408 data_tmp = iand(data_tmp, mask_left(34))
32409 pack_tmp = ior(pack_tmp, data_tmp)
32410 ipack = ipack + 1
32411 packed_data(ipack) = pack_tmp
32412 data_tmp = full_data(idata)
32413 pack_tmp = ishft(data_tmp, 56)
32414 pack_tmp = ishft(pack_tmp, -42)
32415 idata = idata + 1
32416 data_tmp = full_data(idata)
32417 data_tmp = ishft(data_tmp, 22)
32418 pack_tmp = ior(pack_tmp, data_tmp)
32419 pack_tmp = ishft(pack_tmp, -14)
32420 idata = idata + 1
32421 data_tmp = full_data(idata)
32422 data_tmp = ishft(data_tmp, 22)
32423 data_tmp = iand(data_tmp, mask_left(14))
32424 pack_tmp = ior(pack_tmp, data_tmp)
32425 ipack = ipack + 1
32426 packed_data(ipack) = pack_tmp
32427 data_tmp = full_data(idata)
32428 pack_tmp = ishft(data_tmp, 36)
32429 pack_tmp = ishft(pack_tmp, -36)
32430 idata = idata + 1
32431 data_tmp = full_data(idata)
32432 data_tmp = ishft(data_tmp, 22)
32433 data_tmp = iand(data_tmp, mask_left(36))
32434 pack_tmp = ior(pack_tmp, data_tmp)
32435 ipack = ipack + 1
32436 packed_data(ipack) = pack_tmp
32437 data_tmp = full_data(idata)
32438 pack_tmp = ishft(data_tmp, 58)
32439 pack_tmp = ishft(pack_tmp, -42)
32440 idata = idata + 1
32441 data_tmp = full_data(idata)
32442 data_tmp = ishft(data_tmp, 22)
32443 pack_tmp = ior(pack_tmp, data_tmp)
32444 pack_tmp = ishft(pack_tmp, -16)
32445 idata = idata + 1
32446 data_tmp = full_data(idata)
32447 data_tmp = ishft(data_tmp, 22)
32448 data_tmp = iand(data_tmp, mask_left(16))
32449 pack_tmp = ior(pack_tmp, data_tmp)
32450 ipack = ipack + 1
32451 packed_data(ipack) = pack_tmp
32452 data_tmp = full_data(idata)
32453 pack_tmp = ishft(data_tmp, 38)
32454 pack_tmp = ishft(pack_tmp, -38)
32455 idata = idata + 1
32456 data_tmp = full_data(idata)
32457 data_tmp = ishft(data_tmp, 22)
32458 data_tmp = iand(data_tmp, mask_left(38))
32459 pack_tmp = ior(pack_tmp, data_tmp)
32460 ipack = ipack + 1
32461 packed_data(ipack) = pack_tmp
32462 data_tmp = full_data(idata)
32463 pack_tmp = ishft(data_tmp, 60)
32464 pack_tmp = ishft(pack_tmp, -42)
32465 idata = idata + 1
32466 data_tmp = full_data(idata)
32467 data_tmp = ishft(data_tmp, 22)
32468 pack_tmp = ior(pack_tmp, data_tmp)
32469 pack_tmp = ishft(pack_tmp, -18)
32470 idata = idata + 1
32471 data_tmp = full_data(idata)
32472 data_tmp = ishft(data_tmp, 22)
32473 data_tmp = iand(data_tmp, mask_left(18))
32474 pack_tmp = ior(pack_tmp, data_tmp)
32475 ipack = ipack + 1
32476 packed_data(ipack) = pack_tmp
32477 data_tmp = full_data(idata)
32478 pack_tmp = ishft(data_tmp, 40)
32479 pack_tmp = ishft(pack_tmp, -40)
32480 idata = idata + 1
32481 data_tmp = full_data(idata)
32482 data_tmp = ishft(data_tmp, 22)
32483 data_tmp = iand(data_tmp, mask_left(40))
32484 pack_tmp = ior(pack_tmp, data_tmp)
32485 ipack = ipack + 1
32486 packed_data(ipack) = pack_tmp
32487 data_tmp = full_data(idata)
32488 pack_tmp = ishft(data_tmp, 62)
32489 pack_tmp = ishft(pack_tmp, -42)
32490 idata = idata + 1
32491 data_tmp = full_data(idata)
32492 data_tmp = ishft(data_tmp, 22)
32493 pack_tmp = ior(pack_tmp, data_tmp)
32494 pack_tmp = ishft(pack_tmp, -20)
32495 idata = idata + 1
32496 data_tmp = full_data(idata)
32497 data_tmp = ishft(data_tmp, 22)
32498 data_tmp = iand(data_tmp, mask_left(20))
32499 pack_tmp = ior(pack_tmp, data_tmp)
32500 ipack = ipack + 1
32501 packed_data(ipack) = pack_tmp
32502 data_tmp = full_data(idata)
32503 pack_tmp = ishft(data_tmp, 42)
32504 pack_tmp = ishft(pack_tmp, -42)
32505 idata = idata + 1
32506 data_tmp = full_data(idata)
32507 data_tmp = ishft(data_tmp, 22)
32508 pack_tmp = ior(pack_tmp, data_tmp)
32509 pack_tmp = ishft(pack_tmp, 0)
32510 pack_tmp = ishft(pack_tmp, 0)
32511 ipack = ipack + 1
32512 packed_data(ipack) = pack_tmp
32513 END DO
32514 IF (ndata_rep < ndata) THEN
32515 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
32516 END IF
32517 END SUBROUTINE ints2bits_42
32518
32519! **************************************************************************************************
32520!> \brief ...
32521!> \param Ndata ...
32522!> \param packed_data ...
32523!> \param full_data ...
32524! **************************************************************************************************
32525 SUBROUTINE bits2ints_42(Ndata, packed_data, full_data)
32526 INTEGER, INTENT(IN) :: Ndata
32527 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
32528 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
32529
32530 INTEGER, PARAMETER :: Nbits = 42
32531
32532 INTEGER :: idata, ipack, kdata, Ndata_rep
32533 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
32534
32535 ipack = 0
32536 idata = 0
32537 pack_tmp = 0
32538 ndata_rep = (ndata/64)*64
32539 DO kdata = 1, ndata_rep, 64
32540 idata = idata + 1
32541 data_tmp = ishft(pack_tmp, 42)
32542 ipack = ipack + 1
32543 pack_tmp = packed_data(ipack)
32544 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
32545 pack_tmp = ishft(pack_tmp, -42)
32546 idata = idata + 1
32547 data_tmp = ishft(pack_tmp, 20)
32548 ipack = ipack + 1
32549 pack_tmp = packed_data(ipack)
32550 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
32551 pack_tmp = ishft(pack_tmp, -20)
32552 idata = idata + 1
32553 data_tmp = iand(pack_tmp, mask_right(nbits))
32554 full_data(idata) = data_tmp
32555 pack_tmp = ishft(pack_tmp, -nbits)
32556 idata = idata + 1
32557 data_tmp = ishft(pack_tmp, 40)
32558 ipack = ipack + 1
32559 pack_tmp = packed_data(ipack)
32560 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
32561 pack_tmp = ishft(pack_tmp, -40)
32562 idata = idata + 1
32563 data_tmp = ishft(pack_tmp, 18)
32564 ipack = ipack + 1
32565 pack_tmp = packed_data(ipack)
32566 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
32567 pack_tmp = ishft(pack_tmp, -18)
32568 idata = idata + 1
32569 data_tmp = iand(pack_tmp, mask_right(nbits))
32570 full_data(idata) = data_tmp
32571 pack_tmp = ishft(pack_tmp, -nbits)
32572 idata = idata + 1
32573 data_tmp = ishft(pack_tmp, 38)
32574 ipack = ipack + 1
32575 pack_tmp = packed_data(ipack)
32576 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
32577 pack_tmp = ishft(pack_tmp, -38)
32578 idata = idata + 1
32579 data_tmp = ishft(pack_tmp, 16)
32580 ipack = ipack + 1
32581 pack_tmp = packed_data(ipack)
32582 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
32583 pack_tmp = ishft(pack_tmp, -16)
32584 idata = idata + 1
32585 data_tmp = iand(pack_tmp, mask_right(nbits))
32586 full_data(idata) = data_tmp
32587 pack_tmp = ishft(pack_tmp, -nbits)
32588 idata = idata + 1
32589 data_tmp = ishft(pack_tmp, 36)
32590 ipack = ipack + 1
32591 pack_tmp = packed_data(ipack)
32592 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
32593 pack_tmp = ishft(pack_tmp, -36)
32594 idata = idata + 1
32595 data_tmp = ishft(pack_tmp, 14)
32596 ipack = ipack + 1
32597 pack_tmp = packed_data(ipack)
32598 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
32599 pack_tmp = ishft(pack_tmp, -14)
32600 idata = idata + 1
32601 data_tmp = iand(pack_tmp, mask_right(nbits))
32602 full_data(idata) = data_tmp
32603 pack_tmp = ishft(pack_tmp, -nbits)
32604 idata = idata + 1
32605 data_tmp = ishft(pack_tmp, 34)
32606 ipack = ipack + 1
32607 pack_tmp = packed_data(ipack)
32608 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
32609 pack_tmp = ishft(pack_tmp, -34)
32610 idata = idata + 1
32611 data_tmp = ishft(pack_tmp, 12)
32612 ipack = ipack + 1
32613 pack_tmp = packed_data(ipack)
32614 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
32615 pack_tmp = ishft(pack_tmp, -12)
32616 idata = idata + 1
32617 data_tmp = iand(pack_tmp, mask_right(nbits))
32618 full_data(idata) = data_tmp
32619 pack_tmp = ishft(pack_tmp, -nbits)
32620 idata = idata + 1
32621 data_tmp = ishft(pack_tmp, 32)
32622 ipack = ipack + 1
32623 pack_tmp = packed_data(ipack)
32624 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
32625 pack_tmp = ishft(pack_tmp, -32)
32626 idata = idata + 1
32627 data_tmp = ishft(pack_tmp, 10)
32628 ipack = ipack + 1
32629 pack_tmp = packed_data(ipack)
32630 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
32631 pack_tmp = ishft(pack_tmp, -10)
32632 idata = idata + 1
32633 data_tmp = iand(pack_tmp, mask_right(nbits))
32634 full_data(idata) = data_tmp
32635 pack_tmp = ishft(pack_tmp, -nbits)
32636 idata = idata + 1
32637 data_tmp = ishft(pack_tmp, 30)
32638 ipack = ipack + 1
32639 pack_tmp = packed_data(ipack)
32640 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
32641 pack_tmp = ishft(pack_tmp, -30)
32642 idata = idata + 1
32643 data_tmp = ishft(pack_tmp, 8)
32644 ipack = ipack + 1
32645 pack_tmp = packed_data(ipack)
32646 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
32647 pack_tmp = ishft(pack_tmp, -8)
32648 idata = idata + 1
32649 data_tmp = iand(pack_tmp, mask_right(nbits))
32650 full_data(idata) = data_tmp
32651 pack_tmp = ishft(pack_tmp, -nbits)
32652 idata = idata + 1
32653 data_tmp = ishft(pack_tmp, 28)
32654 ipack = ipack + 1
32655 pack_tmp = packed_data(ipack)
32656 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
32657 pack_tmp = ishft(pack_tmp, -28)
32658 idata = idata + 1
32659 data_tmp = ishft(pack_tmp, 6)
32660 ipack = ipack + 1
32661 pack_tmp = packed_data(ipack)
32662 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
32663 pack_tmp = ishft(pack_tmp, -6)
32664 idata = idata + 1
32665 data_tmp = iand(pack_tmp, mask_right(nbits))
32666 full_data(idata) = data_tmp
32667 pack_tmp = ishft(pack_tmp, -nbits)
32668 idata = idata + 1
32669 data_tmp = ishft(pack_tmp, 26)
32670 ipack = ipack + 1
32671 pack_tmp = packed_data(ipack)
32672 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
32673 pack_tmp = ishft(pack_tmp, -26)
32674 idata = idata + 1
32675 data_tmp = ishft(pack_tmp, 4)
32676 ipack = ipack + 1
32677 pack_tmp = packed_data(ipack)
32678 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
32679 pack_tmp = ishft(pack_tmp, -4)
32680 idata = idata + 1
32681 data_tmp = iand(pack_tmp, mask_right(nbits))
32682 full_data(idata) = data_tmp
32683 pack_tmp = ishft(pack_tmp, -nbits)
32684 idata = idata + 1
32685 data_tmp = ishft(pack_tmp, 24)
32686 ipack = ipack + 1
32687 pack_tmp = packed_data(ipack)
32688 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
32689 pack_tmp = ishft(pack_tmp, -24)
32690 idata = idata + 1
32691 data_tmp = ishft(pack_tmp, 2)
32692 ipack = ipack + 1
32693 pack_tmp = packed_data(ipack)
32694 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
32695 pack_tmp = ishft(pack_tmp, -2)
32696 idata = idata + 1
32697 data_tmp = iand(pack_tmp, mask_right(nbits))
32698 full_data(idata) = data_tmp
32699 pack_tmp = ishft(pack_tmp, -nbits)
32700 idata = idata + 1
32701 data_tmp = ishft(pack_tmp, 22)
32702 ipack = ipack + 1
32703 pack_tmp = packed_data(ipack)
32704 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
32705 pack_tmp = ishft(pack_tmp, -22)
32706 idata = idata + 1
32707 data_tmp = iand(pack_tmp, mask_right(nbits))
32708 full_data(idata) = data_tmp
32709 pack_tmp = ishft(pack_tmp, -nbits)
32710 idata = idata + 1
32711 data_tmp = ishft(pack_tmp, 42)
32712 ipack = ipack + 1
32713 pack_tmp = packed_data(ipack)
32714 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
32715 pack_tmp = ishft(pack_tmp, -42)
32716 idata = idata + 1
32717 data_tmp = ishft(pack_tmp, 20)
32718 ipack = ipack + 1
32719 pack_tmp = packed_data(ipack)
32720 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
32721 pack_tmp = ishft(pack_tmp, -20)
32722 idata = idata + 1
32723 data_tmp = iand(pack_tmp, mask_right(nbits))
32724 full_data(idata) = data_tmp
32725 pack_tmp = ishft(pack_tmp, -nbits)
32726 idata = idata + 1
32727 data_tmp = ishft(pack_tmp, 40)
32728 ipack = ipack + 1
32729 pack_tmp = packed_data(ipack)
32730 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
32731 pack_tmp = ishft(pack_tmp, -40)
32732 idata = idata + 1
32733 data_tmp = ishft(pack_tmp, 18)
32734 ipack = ipack + 1
32735 pack_tmp = packed_data(ipack)
32736 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
32737 pack_tmp = ishft(pack_tmp, -18)
32738 idata = idata + 1
32739 data_tmp = iand(pack_tmp, mask_right(nbits))
32740 full_data(idata) = data_tmp
32741 pack_tmp = ishft(pack_tmp, -nbits)
32742 idata = idata + 1
32743 data_tmp = ishft(pack_tmp, 38)
32744 ipack = ipack + 1
32745 pack_tmp = packed_data(ipack)
32746 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
32747 pack_tmp = ishft(pack_tmp, -38)
32748 idata = idata + 1
32749 data_tmp = ishft(pack_tmp, 16)
32750 ipack = ipack + 1
32751 pack_tmp = packed_data(ipack)
32752 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
32753 pack_tmp = ishft(pack_tmp, -16)
32754 idata = idata + 1
32755 data_tmp = iand(pack_tmp, mask_right(nbits))
32756 full_data(idata) = data_tmp
32757 pack_tmp = ishft(pack_tmp, -nbits)
32758 idata = idata + 1
32759 data_tmp = ishft(pack_tmp, 36)
32760 ipack = ipack + 1
32761 pack_tmp = packed_data(ipack)
32762 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
32763 pack_tmp = ishft(pack_tmp, -36)
32764 idata = idata + 1
32765 data_tmp = ishft(pack_tmp, 14)
32766 ipack = ipack + 1
32767 pack_tmp = packed_data(ipack)
32768 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
32769 pack_tmp = ishft(pack_tmp, -14)
32770 idata = idata + 1
32771 data_tmp = iand(pack_tmp, mask_right(nbits))
32772 full_data(idata) = data_tmp
32773 pack_tmp = ishft(pack_tmp, -nbits)
32774 idata = idata + 1
32775 data_tmp = ishft(pack_tmp, 34)
32776 ipack = ipack + 1
32777 pack_tmp = packed_data(ipack)
32778 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
32779 pack_tmp = ishft(pack_tmp, -34)
32780 idata = idata + 1
32781 data_tmp = ishft(pack_tmp, 12)
32782 ipack = ipack + 1
32783 pack_tmp = packed_data(ipack)
32784 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
32785 pack_tmp = ishft(pack_tmp, -12)
32786 idata = idata + 1
32787 data_tmp = iand(pack_tmp, mask_right(nbits))
32788 full_data(idata) = data_tmp
32789 pack_tmp = ishft(pack_tmp, -nbits)
32790 idata = idata + 1
32791 data_tmp = ishft(pack_tmp, 32)
32792 ipack = ipack + 1
32793 pack_tmp = packed_data(ipack)
32794 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
32795 pack_tmp = ishft(pack_tmp, -32)
32796 idata = idata + 1
32797 data_tmp = ishft(pack_tmp, 10)
32798 ipack = ipack + 1
32799 pack_tmp = packed_data(ipack)
32800 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
32801 pack_tmp = ishft(pack_tmp, -10)
32802 idata = idata + 1
32803 data_tmp = iand(pack_tmp, mask_right(nbits))
32804 full_data(idata) = data_tmp
32805 pack_tmp = ishft(pack_tmp, -nbits)
32806 idata = idata + 1
32807 data_tmp = ishft(pack_tmp, 30)
32808 ipack = ipack + 1
32809 pack_tmp = packed_data(ipack)
32810 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
32811 pack_tmp = ishft(pack_tmp, -30)
32812 idata = idata + 1
32813 data_tmp = ishft(pack_tmp, 8)
32814 ipack = ipack + 1
32815 pack_tmp = packed_data(ipack)
32816 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
32817 pack_tmp = ishft(pack_tmp, -8)
32818 idata = idata + 1
32819 data_tmp = iand(pack_tmp, mask_right(nbits))
32820 full_data(idata) = data_tmp
32821 pack_tmp = ishft(pack_tmp, -nbits)
32822 idata = idata + 1
32823 data_tmp = ishft(pack_tmp, 28)
32824 ipack = ipack + 1
32825 pack_tmp = packed_data(ipack)
32826 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
32827 pack_tmp = ishft(pack_tmp, -28)
32828 idata = idata + 1
32829 data_tmp = ishft(pack_tmp, 6)
32830 ipack = ipack + 1
32831 pack_tmp = packed_data(ipack)
32832 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
32833 pack_tmp = ishft(pack_tmp, -6)
32834 idata = idata + 1
32835 data_tmp = iand(pack_tmp, mask_right(nbits))
32836 full_data(idata) = data_tmp
32837 pack_tmp = ishft(pack_tmp, -nbits)
32838 idata = idata + 1
32839 data_tmp = ishft(pack_tmp, 26)
32840 ipack = ipack + 1
32841 pack_tmp = packed_data(ipack)
32842 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
32843 pack_tmp = ishft(pack_tmp, -26)
32844 idata = idata + 1
32845 data_tmp = ishft(pack_tmp, 4)
32846 ipack = ipack + 1
32847 pack_tmp = packed_data(ipack)
32848 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
32849 pack_tmp = ishft(pack_tmp, -4)
32850 idata = idata + 1
32851 data_tmp = iand(pack_tmp, mask_right(nbits))
32852 full_data(idata) = data_tmp
32853 pack_tmp = ishft(pack_tmp, -nbits)
32854 idata = idata + 1
32855 data_tmp = ishft(pack_tmp, 24)
32856 ipack = ipack + 1
32857 pack_tmp = packed_data(ipack)
32858 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
32859 pack_tmp = ishft(pack_tmp, -24)
32860 idata = idata + 1
32861 data_tmp = ishft(pack_tmp, 2)
32862 ipack = ipack + 1
32863 pack_tmp = packed_data(ipack)
32864 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
32865 pack_tmp = ishft(pack_tmp, -2)
32866 idata = idata + 1
32867 data_tmp = iand(pack_tmp, mask_right(nbits))
32868 full_data(idata) = data_tmp
32869 pack_tmp = ishft(pack_tmp, -nbits)
32870 idata = idata + 1
32871 data_tmp = ishft(pack_tmp, 22)
32872 ipack = ipack + 1
32873 pack_tmp = packed_data(ipack)
32874 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
32875 pack_tmp = ishft(pack_tmp, -22)
32876 idata = idata + 1
32877 data_tmp = iand(pack_tmp, mask_right(nbits))
32878 full_data(idata) = data_tmp
32879 pack_tmp = ishft(pack_tmp, -nbits)
32880 END DO
32881 IF (ndata_rep < ndata) THEN
32882 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
32883 END IF
32884 END SUBROUTINE bits2ints_42
32885
32886! **************************************************************************************************
32887!> \brief ...
32888!> \param Ndata ...
32889!> \param packed_data ...
32890!> \param full_data ...
32891! **************************************************************************************************
32892 SUBROUTINE ints2bits_43(Ndata, packed_data, full_data)
32893 INTEGER, INTENT(IN) :: Ndata
32894 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
32895 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
32896
32897 INTEGER, PARAMETER :: Nbits = 43
32898
32899 INTEGER :: idata, ipack, kdata, Ndata_rep
32900 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
32901
32902 idata = 0
32903 ipack = 0
32904 ndata_rep = (ndata/64)*64
32905 DO kdata = 1, ndata_rep, 64
32906 pack_tmp = 0
32907 idata = idata + 1
32908 data_tmp = full_data(idata)
32909 data_tmp = ishft(data_tmp, 21)
32910 pack_tmp = ior(pack_tmp, data_tmp)
32911 pack_tmp = ishft(pack_tmp, -21)
32912 idata = idata + 1
32913 data_tmp = full_data(idata)
32914 data_tmp = ishft(data_tmp, 21)
32915 data_tmp = iand(data_tmp, mask_left(21))
32916 pack_tmp = ior(pack_tmp, data_tmp)
32917 ipack = ipack + 1
32918 packed_data(ipack) = pack_tmp
32919 data_tmp = full_data(idata)
32920 pack_tmp = ishft(data_tmp, 42)
32921 pack_tmp = ishft(pack_tmp, -42)
32922 idata = idata + 1
32923 data_tmp = full_data(idata)
32924 data_tmp = ishft(data_tmp, 21)
32925 data_tmp = iand(data_tmp, mask_left(42))
32926 pack_tmp = ior(pack_tmp, data_tmp)
32927 ipack = ipack + 1
32928 packed_data(ipack) = pack_tmp
32929 data_tmp = full_data(idata)
32930 pack_tmp = ishft(data_tmp, 63)
32931 pack_tmp = ishft(pack_tmp, -43)
32932 idata = idata + 1
32933 data_tmp = full_data(idata)
32934 data_tmp = ishft(data_tmp, 21)
32935 pack_tmp = ior(pack_tmp, data_tmp)
32936 pack_tmp = ishft(pack_tmp, -20)
32937 idata = idata + 1
32938 data_tmp = full_data(idata)
32939 data_tmp = ishft(data_tmp, 21)
32940 data_tmp = iand(data_tmp, mask_left(20))
32941 pack_tmp = ior(pack_tmp, data_tmp)
32942 ipack = ipack + 1
32943 packed_data(ipack) = pack_tmp
32944 data_tmp = full_data(idata)
32945 pack_tmp = ishft(data_tmp, 41)
32946 pack_tmp = ishft(pack_tmp, -41)
32947 idata = idata + 1
32948 data_tmp = full_data(idata)
32949 data_tmp = ishft(data_tmp, 21)
32950 data_tmp = iand(data_tmp, mask_left(41))
32951 pack_tmp = ior(pack_tmp, data_tmp)
32952 ipack = ipack + 1
32953 packed_data(ipack) = pack_tmp
32954 data_tmp = full_data(idata)
32955 pack_tmp = ishft(data_tmp, 62)
32956 pack_tmp = ishft(pack_tmp, -43)
32957 idata = idata + 1
32958 data_tmp = full_data(idata)
32959 data_tmp = ishft(data_tmp, 21)
32960 pack_tmp = ior(pack_tmp, data_tmp)
32961 pack_tmp = ishft(pack_tmp, -19)
32962 idata = idata + 1
32963 data_tmp = full_data(idata)
32964 data_tmp = ishft(data_tmp, 21)
32965 data_tmp = iand(data_tmp, mask_left(19))
32966 pack_tmp = ior(pack_tmp, data_tmp)
32967 ipack = ipack + 1
32968 packed_data(ipack) = pack_tmp
32969 data_tmp = full_data(idata)
32970 pack_tmp = ishft(data_tmp, 40)
32971 pack_tmp = ishft(pack_tmp, -40)
32972 idata = idata + 1
32973 data_tmp = full_data(idata)
32974 data_tmp = ishft(data_tmp, 21)
32975 data_tmp = iand(data_tmp, mask_left(40))
32976 pack_tmp = ior(pack_tmp, data_tmp)
32977 ipack = ipack + 1
32978 packed_data(ipack) = pack_tmp
32979 data_tmp = full_data(idata)
32980 pack_tmp = ishft(data_tmp, 61)
32981 pack_tmp = ishft(pack_tmp, -43)
32982 idata = idata + 1
32983 data_tmp = full_data(idata)
32984 data_tmp = ishft(data_tmp, 21)
32985 pack_tmp = ior(pack_tmp, data_tmp)
32986 pack_tmp = ishft(pack_tmp, -18)
32987 idata = idata + 1
32988 data_tmp = full_data(idata)
32989 data_tmp = ishft(data_tmp, 21)
32990 data_tmp = iand(data_tmp, mask_left(18))
32991 pack_tmp = ior(pack_tmp, data_tmp)
32992 ipack = ipack + 1
32993 packed_data(ipack) = pack_tmp
32994 data_tmp = full_data(idata)
32995 pack_tmp = ishft(data_tmp, 39)
32996 pack_tmp = ishft(pack_tmp, -39)
32997 idata = idata + 1
32998 data_tmp = full_data(idata)
32999 data_tmp = ishft(data_tmp, 21)
33000 data_tmp = iand(data_tmp, mask_left(39))
33001 pack_tmp = ior(pack_tmp, data_tmp)
33002 ipack = ipack + 1
33003 packed_data(ipack) = pack_tmp
33004 data_tmp = full_data(idata)
33005 pack_tmp = ishft(data_tmp, 60)
33006 pack_tmp = ishft(pack_tmp, -43)
33007 idata = idata + 1
33008 data_tmp = full_data(idata)
33009 data_tmp = ishft(data_tmp, 21)
33010 pack_tmp = ior(pack_tmp, data_tmp)
33011 pack_tmp = ishft(pack_tmp, -17)
33012 idata = idata + 1
33013 data_tmp = full_data(idata)
33014 data_tmp = ishft(data_tmp, 21)
33015 data_tmp = iand(data_tmp, mask_left(17))
33016 pack_tmp = ior(pack_tmp, data_tmp)
33017 ipack = ipack + 1
33018 packed_data(ipack) = pack_tmp
33019 data_tmp = full_data(idata)
33020 pack_tmp = ishft(data_tmp, 38)
33021 pack_tmp = ishft(pack_tmp, -38)
33022 idata = idata + 1
33023 data_tmp = full_data(idata)
33024 data_tmp = ishft(data_tmp, 21)
33025 data_tmp = iand(data_tmp, mask_left(38))
33026 pack_tmp = ior(pack_tmp, data_tmp)
33027 ipack = ipack + 1
33028 packed_data(ipack) = pack_tmp
33029 data_tmp = full_data(idata)
33030 pack_tmp = ishft(data_tmp, 59)
33031 pack_tmp = ishft(pack_tmp, -43)
33032 idata = idata + 1
33033 data_tmp = full_data(idata)
33034 data_tmp = ishft(data_tmp, 21)
33035 pack_tmp = ior(pack_tmp, data_tmp)
33036 pack_tmp = ishft(pack_tmp, -16)
33037 idata = idata + 1
33038 data_tmp = full_data(idata)
33039 data_tmp = ishft(data_tmp, 21)
33040 data_tmp = iand(data_tmp, mask_left(16))
33041 pack_tmp = ior(pack_tmp, data_tmp)
33042 ipack = ipack + 1
33043 packed_data(ipack) = pack_tmp
33044 data_tmp = full_data(idata)
33045 pack_tmp = ishft(data_tmp, 37)
33046 pack_tmp = ishft(pack_tmp, -37)
33047 idata = idata + 1
33048 data_tmp = full_data(idata)
33049 data_tmp = ishft(data_tmp, 21)
33050 data_tmp = iand(data_tmp, mask_left(37))
33051 pack_tmp = ior(pack_tmp, data_tmp)
33052 ipack = ipack + 1
33053 packed_data(ipack) = pack_tmp
33054 data_tmp = full_data(idata)
33055 pack_tmp = ishft(data_tmp, 58)
33056 pack_tmp = ishft(pack_tmp, -43)
33057 idata = idata + 1
33058 data_tmp = full_data(idata)
33059 data_tmp = ishft(data_tmp, 21)
33060 pack_tmp = ior(pack_tmp, data_tmp)
33061 pack_tmp = ishft(pack_tmp, -15)
33062 idata = idata + 1
33063 data_tmp = full_data(idata)
33064 data_tmp = ishft(data_tmp, 21)
33065 data_tmp = iand(data_tmp, mask_left(15))
33066 pack_tmp = ior(pack_tmp, data_tmp)
33067 ipack = ipack + 1
33068 packed_data(ipack) = pack_tmp
33069 data_tmp = full_data(idata)
33070 pack_tmp = ishft(data_tmp, 36)
33071 pack_tmp = ishft(pack_tmp, -36)
33072 idata = idata + 1
33073 data_tmp = full_data(idata)
33074 data_tmp = ishft(data_tmp, 21)
33075 data_tmp = iand(data_tmp, mask_left(36))
33076 pack_tmp = ior(pack_tmp, data_tmp)
33077 ipack = ipack + 1
33078 packed_data(ipack) = pack_tmp
33079 data_tmp = full_data(idata)
33080 pack_tmp = ishft(data_tmp, 57)
33081 pack_tmp = ishft(pack_tmp, -43)
33082 idata = idata + 1
33083 data_tmp = full_data(idata)
33084 data_tmp = ishft(data_tmp, 21)
33085 pack_tmp = ior(pack_tmp, data_tmp)
33086 pack_tmp = ishft(pack_tmp, -14)
33087 idata = idata + 1
33088 data_tmp = full_data(idata)
33089 data_tmp = ishft(data_tmp, 21)
33090 data_tmp = iand(data_tmp, mask_left(14))
33091 pack_tmp = ior(pack_tmp, data_tmp)
33092 ipack = ipack + 1
33093 packed_data(ipack) = pack_tmp
33094 data_tmp = full_data(idata)
33095 pack_tmp = ishft(data_tmp, 35)
33096 pack_tmp = ishft(pack_tmp, -35)
33097 idata = idata + 1
33098 data_tmp = full_data(idata)
33099 data_tmp = ishft(data_tmp, 21)
33100 data_tmp = iand(data_tmp, mask_left(35))
33101 pack_tmp = ior(pack_tmp, data_tmp)
33102 ipack = ipack + 1
33103 packed_data(ipack) = pack_tmp
33104 data_tmp = full_data(idata)
33105 pack_tmp = ishft(data_tmp, 56)
33106 pack_tmp = ishft(pack_tmp, -43)
33107 idata = idata + 1
33108 data_tmp = full_data(idata)
33109 data_tmp = ishft(data_tmp, 21)
33110 pack_tmp = ior(pack_tmp, data_tmp)
33111 pack_tmp = ishft(pack_tmp, -13)
33112 idata = idata + 1
33113 data_tmp = full_data(idata)
33114 data_tmp = ishft(data_tmp, 21)
33115 data_tmp = iand(data_tmp, mask_left(13))
33116 pack_tmp = ior(pack_tmp, data_tmp)
33117 ipack = ipack + 1
33118 packed_data(ipack) = pack_tmp
33119 data_tmp = full_data(idata)
33120 pack_tmp = ishft(data_tmp, 34)
33121 pack_tmp = ishft(pack_tmp, -34)
33122 idata = idata + 1
33123 data_tmp = full_data(idata)
33124 data_tmp = ishft(data_tmp, 21)
33125 data_tmp = iand(data_tmp, mask_left(34))
33126 pack_tmp = ior(pack_tmp, data_tmp)
33127 ipack = ipack + 1
33128 packed_data(ipack) = pack_tmp
33129 data_tmp = full_data(idata)
33130 pack_tmp = ishft(data_tmp, 55)
33131 pack_tmp = ishft(pack_tmp, -43)
33132 idata = idata + 1
33133 data_tmp = full_data(idata)
33134 data_tmp = ishft(data_tmp, 21)
33135 pack_tmp = ior(pack_tmp, data_tmp)
33136 pack_tmp = ishft(pack_tmp, -12)
33137 idata = idata + 1
33138 data_tmp = full_data(idata)
33139 data_tmp = ishft(data_tmp, 21)
33140 data_tmp = iand(data_tmp, mask_left(12))
33141 pack_tmp = ior(pack_tmp, data_tmp)
33142 ipack = ipack + 1
33143 packed_data(ipack) = pack_tmp
33144 data_tmp = full_data(idata)
33145 pack_tmp = ishft(data_tmp, 33)
33146 pack_tmp = ishft(pack_tmp, -33)
33147 idata = idata + 1
33148 data_tmp = full_data(idata)
33149 data_tmp = ishft(data_tmp, 21)
33150 data_tmp = iand(data_tmp, mask_left(33))
33151 pack_tmp = ior(pack_tmp, data_tmp)
33152 ipack = ipack + 1
33153 packed_data(ipack) = pack_tmp
33154 data_tmp = full_data(idata)
33155 pack_tmp = ishft(data_tmp, 54)
33156 pack_tmp = ishft(pack_tmp, -43)
33157 idata = idata + 1
33158 data_tmp = full_data(idata)
33159 data_tmp = ishft(data_tmp, 21)
33160 pack_tmp = ior(pack_tmp, data_tmp)
33161 pack_tmp = ishft(pack_tmp, -11)
33162 idata = idata + 1
33163 data_tmp = full_data(idata)
33164 data_tmp = ishft(data_tmp, 21)
33165 data_tmp = iand(data_tmp, mask_left(11))
33166 pack_tmp = ior(pack_tmp, data_tmp)
33167 ipack = ipack + 1
33168 packed_data(ipack) = pack_tmp
33169 data_tmp = full_data(idata)
33170 pack_tmp = ishft(data_tmp, 32)
33171 pack_tmp = ishft(pack_tmp, -32)
33172 idata = idata + 1
33173 data_tmp = full_data(idata)
33174 data_tmp = ishft(data_tmp, 21)
33175 data_tmp = iand(data_tmp, mask_left(32))
33176 pack_tmp = ior(pack_tmp, data_tmp)
33177 ipack = ipack + 1
33178 packed_data(ipack) = pack_tmp
33179 data_tmp = full_data(idata)
33180 pack_tmp = ishft(data_tmp, 53)
33181 pack_tmp = ishft(pack_tmp, -43)
33182 idata = idata + 1
33183 data_tmp = full_data(idata)
33184 data_tmp = ishft(data_tmp, 21)
33185 pack_tmp = ior(pack_tmp, data_tmp)
33186 pack_tmp = ishft(pack_tmp, -10)
33187 idata = idata + 1
33188 data_tmp = full_data(idata)
33189 data_tmp = ishft(data_tmp, 21)
33190 data_tmp = iand(data_tmp, mask_left(10))
33191 pack_tmp = ior(pack_tmp, data_tmp)
33192 ipack = ipack + 1
33193 packed_data(ipack) = pack_tmp
33194 data_tmp = full_data(idata)
33195 pack_tmp = ishft(data_tmp, 31)
33196 pack_tmp = ishft(pack_tmp, -31)
33197 idata = idata + 1
33198 data_tmp = full_data(idata)
33199 data_tmp = ishft(data_tmp, 21)
33200 data_tmp = iand(data_tmp, mask_left(31))
33201 pack_tmp = ior(pack_tmp, data_tmp)
33202 ipack = ipack + 1
33203 packed_data(ipack) = pack_tmp
33204 data_tmp = full_data(idata)
33205 pack_tmp = ishft(data_tmp, 52)
33206 pack_tmp = ishft(pack_tmp, -43)
33207 idata = idata + 1
33208 data_tmp = full_data(idata)
33209 data_tmp = ishft(data_tmp, 21)
33210 pack_tmp = ior(pack_tmp, data_tmp)
33211 pack_tmp = ishft(pack_tmp, -9)
33212 idata = idata + 1
33213 data_tmp = full_data(idata)
33214 data_tmp = ishft(data_tmp, 21)
33215 data_tmp = iand(data_tmp, mask_left(9))
33216 pack_tmp = ior(pack_tmp, data_tmp)
33217 ipack = ipack + 1
33218 packed_data(ipack) = pack_tmp
33219 data_tmp = full_data(idata)
33220 pack_tmp = ishft(data_tmp, 30)
33221 pack_tmp = ishft(pack_tmp, -30)
33222 idata = idata + 1
33223 data_tmp = full_data(idata)
33224 data_tmp = ishft(data_tmp, 21)
33225 data_tmp = iand(data_tmp, mask_left(30))
33226 pack_tmp = ior(pack_tmp, data_tmp)
33227 ipack = ipack + 1
33228 packed_data(ipack) = pack_tmp
33229 data_tmp = full_data(idata)
33230 pack_tmp = ishft(data_tmp, 51)
33231 pack_tmp = ishft(pack_tmp, -43)
33232 idata = idata + 1
33233 data_tmp = full_data(idata)
33234 data_tmp = ishft(data_tmp, 21)
33235 pack_tmp = ior(pack_tmp, data_tmp)
33236 pack_tmp = ishft(pack_tmp, -8)
33237 idata = idata + 1
33238 data_tmp = full_data(idata)
33239 data_tmp = ishft(data_tmp, 21)
33240 data_tmp = iand(data_tmp, mask_left(8))
33241 pack_tmp = ior(pack_tmp, data_tmp)
33242 ipack = ipack + 1
33243 packed_data(ipack) = pack_tmp
33244 data_tmp = full_data(idata)
33245 pack_tmp = ishft(data_tmp, 29)
33246 pack_tmp = ishft(pack_tmp, -29)
33247 idata = idata + 1
33248 data_tmp = full_data(idata)
33249 data_tmp = ishft(data_tmp, 21)
33250 data_tmp = iand(data_tmp, mask_left(29))
33251 pack_tmp = ior(pack_tmp, data_tmp)
33252 ipack = ipack + 1
33253 packed_data(ipack) = pack_tmp
33254 data_tmp = full_data(idata)
33255 pack_tmp = ishft(data_tmp, 50)
33256 pack_tmp = ishft(pack_tmp, -43)
33257 idata = idata + 1
33258 data_tmp = full_data(idata)
33259 data_tmp = ishft(data_tmp, 21)
33260 pack_tmp = ior(pack_tmp, data_tmp)
33261 pack_tmp = ishft(pack_tmp, -7)
33262 idata = idata + 1
33263 data_tmp = full_data(idata)
33264 data_tmp = ishft(data_tmp, 21)
33265 data_tmp = iand(data_tmp, mask_left(7))
33266 pack_tmp = ior(pack_tmp, data_tmp)
33267 ipack = ipack + 1
33268 packed_data(ipack) = pack_tmp
33269 data_tmp = full_data(idata)
33270 pack_tmp = ishft(data_tmp, 28)
33271 pack_tmp = ishft(pack_tmp, -28)
33272 idata = idata + 1
33273 data_tmp = full_data(idata)
33274 data_tmp = ishft(data_tmp, 21)
33275 data_tmp = iand(data_tmp, mask_left(28))
33276 pack_tmp = ior(pack_tmp, data_tmp)
33277 ipack = ipack + 1
33278 packed_data(ipack) = pack_tmp
33279 data_tmp = full_data(idata)
33280 pack_tmp = ishft(data_tmp, 49)
33281 pack_tmp = ishft(pack_tmp, -43)
33282 idata = idata + 1
33283 data_tmp = full_data(idata)
33284 data_tmp = ishft(data_tmp, 21)
33285 pack_tmp = ior(pack_tmp, data_tmp)
33286 pack_tmp = ishft(pack_tmp, -6)
33287 idata = idata + 1
33288 data_tmp = full_data(idata)
33289 data_tmp = ishft(data_tmp, 21)
33290 data_tmp = iand(data_tmp, mask_left(6))
33291 pack_tmp = ior(pack_tmp, data_tmp)
33292 ipack = ipack + 1
33293 packed_data(ipack) = pack_tmp
33294 data_tmp = full_data(idata)
33295 pack_tmp = ishft(data_tmp, 27)
33296 pack_tmp = ishft(pack_tmp, -27)
33297 idata = idata + 1
33298 data_tmp = full_data(idata)
33299 data_tmp = ishft(data_tmp, 21)
33300 data_tmp = iand(data_tmp, mask_left(27))
33301 pack_tmp = ior(pack_tmp, data_tmp)
33302 ipack = ipack + 1
33303 packed_data(ipack) = pack_tmp
33304 data_tmp = full_data(idata)
33305 pack_tmp = ishft(data_tmp, 48)
33306 pack_tmp = ishft(pack_tmp, -43)
33307 idata = idata + 1
33308 data_tmp = full_data(idata)
33309 data_tmp = ishft(data_tmp, 21)
33310 pack_tmp = ior(pack_tmp, data_tmp)
33311 pack_tmp = ishft(pack_tmp, -5)
33312 idata = idata + 1
33313 data_tmp = full_data(idata)
33314 data_tmp = ishft(data_tmp, 21)
33315 data_tmp = iand(data_tmp, mask_left(5))
33316 pack_tmp = ior(pack_tmp, data_tmp)
33317 ipack = ipack + 1
33318 packed_data(ipack) = pack_tmp
33319 data_tmp = full_data(idata)
33320 pack_tmp = ishft(data_tmp, 26)
33321 pack_tmp = ishft(pack_tmp, -26)
33322 idata = idata + 1
33323 data_tmp = full_data(idata)
33324 data_tmp = ishft(data_tmp, 21)
33325 data_tmp = iand(data_tmp, mask_left(26))
33326 pack_tmp = ior(pack_tmp, data_tmp)
33327 ipack = ipack + 1
33328 packed_data(ipack) = pack_tmp
33329 data_tmp = full_data(idata)
33330 pack_tmp = ishft(data_tmp, 47)
33331 pack_tmp = ishft(pack_tmp, -43)
33332 idata = idata + 1
33333 data_tmp = full_data(idata)
33334 data_tmp = ishft(data_tmp, 21)
33335 pack_tmp = ior(pack_tmp, data_tmp)
33336 pack_tmp = ishft(pack_tmp, -4)
33337 idata = idata + 1
33338 data_tmp = full_data(idata)
33339 data_tmp = ishft(data_tmp, 21)
33340 data_tmp = iand(data_tmp, mask_left(4))
33341 pack_tmp = ior(pack_tmp, data_tmp)
33342 ipack = ipack + 1
33343 packed_data(ipack) = pack_tmp
33344 data_tmp = full_data(idata)
33345 pack_tmp = ishft(data_tmp, 25)
33346 pack_tmp = ishft(pack_tmp, -25)
33347 idata = idata + 1
33348 data_tmp = full_data(idata)
33349 data_tmp = ishft(data_tmp, 21)
33350 data_tmp = iand(data_tmp, mask_left(25))
33351 pack_tmp = ior(pack_tmp, data_tmp)
33352 ipack = ipack + 1
33353 packed_data(ipack) = pack_tmp
33354 data_tmp = full_data(idata)
33355 pack_tmp = ishft(data_tmp, 46)
33356 pack_tmp = ishft(pack_tmp, -43)
33357 idata = idata + 1
33358 data_tmp = full_data(idata)
33359 data_tmp = ishft(data_tmp, 21)
33360 pack_tmp = ior(pack_tmp, data_tmp)
33361 pack_tmp = ishft(pack_tmp, -3)
33362 idata = idata + 1
33363 data_tmp = full_data(idata)
33364 data_tmp = ishft(data_tmp, 21)
33365 data_tmp = iand(data_tmp, mask_left(3))
33366 pack_tmp = ior(pack_tmp, data_tmp)
33367 ipack = ipack + 1
33368 packed_data(ipack) = pack_tmp
33369 data_tmp = full_data(idata)
33370 pack_tmp = ishft(data_tmp, 24)
33371 pack_tmp = ishft(pack_tmp, -24)
33372 idata = idata + 1
33373 data_tmp = full_data(idata)
33374 data_tmp = ishft(data_tmp, 21)
33375 data_tmp = iand(data_tmp, mask_left(24))
33376 pack_tmp = ior(pack_tmp, data_tmp)
33377 ipack = ipack + 1
33378 packed_data(ipack) = pack_tmp
33379 data_tmp = full_data(idata)
33380 pack_tmp = ishft(data_tmp, 45)
33381 pack_tmp = ishft(pack_tmp, -43)
33382 idata = idata + 1
33383 data_tmp = full_data(idata)
33384 data_tmp = ishft(data_tmp, 21)
33385 pack_tmp = ior(pack_tmp, data_tmp)
33386 pack_tmp = ishft(pack_tmp, -2)
33387 idata = idata + 1
33388 data_tmp = full_data(idata)
33389 data_tmp = ishft(data_tmp, 21)
33390 data_tmp = iand(data_tmp, mask_left(2))
33391 pack_tmp = ior(pack_tmp, data_tmp)
33392 ipack = ipack + 1
33393 packed_data(ipack) = pack_tmp
33394 data_tmp = full_data(idata)
33395 pack_tmp = ishft(data_tmp, 23)
33396 pack_tmp = ishft(pack_tmp, -23)
33397 idata = idata + 1
33398 data_tmp = full_data(idata)
33399 data_tmp = ishft(data_tmp, 21)
33400 data_tmp = iand(data_tmp, mask_left(23))
33401 pack_tmp = ior(pack_tmp, data_tmp)
33402 ipack = ipack + 1
33403 packed_data(ipack) = pack_tmp
33404 data_tmp = full_data(idata)
33405 pack_tmp = ishft(data_tmp, 44)
33406 pack_tmp = ishft(pack_tmp, -43)
33407 idata = idata + 1
33408 data_tmp = full_data(idata)
33409 data_tmp = ishft(data_tmp, 21)
33410 pack_tmp = ior(pack_tmp, data_tmp)
33411 pack_tmp = ishft(pack_tmp, -1)
33412 idata = idata + 1
33413 data_tmp = full_data(idata)
33414 data_tmp = ishft(data_tmp, 21)
33415 data_tmp = iand(data_tmp, mask_left(1))
33416 pack_tmp = ior(pack_tmp, data_tmp)
33417 ipack = ipack + 1
33418 packed_data(ipack) = pack_tmp
33419 data_tmp = full_data(idata)
33420 pack_tmp = ishft(data_tmp, 22)
33421 pack_tmp = ishft(pack_tmp, -22)
33422 idata = idata + 1
33423 data_tmp = full_data(idata)
33424 data_tmp = ishft(data_tmp, 21)
33425 data_tmp = iand(data_tmp, mask_left(22))
33426 pack_tmp = ior(pack_tmp, data_tmp)
33427 ipack = ipack + 1
33428 packed_data(ipack) = pack_tmp
33429 data_tmp = full_data(idata)
33430 pack_tmp = ishft(data_tmp, 43)
33431 pack_tmp = ishft(pack_tmp, -43)
33432 idata = idata + 1
33433 data_tmp = full_data(idata)
33434 data_tmp = ishft(data_tmp, 21)
33435 pack_tmp = ior(pack_tmp, data_tmp)
33436 pack_tmp = ishft(pack_tmp, 0)
33437 pack_tmp = ishft(pack_tmp, 0)
33438 ipack = ipack + 1
33439 packed_data(ipack) = pack_tmp
33440 END DO
33441 IF (ndata_rep < ndata) THEN
33442 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
33443 END IF
33444 END SUBROUTINE ints2bits_43
33445
33446! **************************************************************************************************
33447!> \brief ...
33448!> \param Ndata ...
33449!> \param packed_data ...
33450!> \param full_data ...
33451! **************************************************************************************************
33452 SUBROUTINE bits2ints_43(Ndata, packed_data, full_data)
33453 INTEGER, INTENT(IN) :: Ndata
33454 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
33455 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
33456
33457 INTEGER, PARAMETER :: Nbits = 43
33458
33459 INTEGER :: idata, ipack, kdata, Ndata_rep
33460 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
33461
33462 ipack = 0
33463 idata = 0
33464 pack_tmp = 0
33465 ndata_rep = (ndata/64)*64
33466 DO kdata = 1, ndata_rep, 64
33467 idata = idata + 1
33468 data_tmp = ishft(pack_tmp, 43)
33469 ipack = ipack + 1
33470 pack_tmp = packed_data(ipack)
33471 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(43)))
33472 pack_tmp = ishft(pack_tmp, -43)
33473 idata = idata + 1
33474 data_tmp = ishft(pack_tmp, 22)
33475 ipack = ipack + 1
33476 pack_tmp = packed_data(ipack)
33477 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
33478 pack_tmp = ishft(pack_tmp, -22)
33479 idata = idata + 1
33480 data_tmp = ishft(pack_tmp, 1)
33481 ipack = ipack + 1
33482 pack_tmp = packed_data(ipack)
33483 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
33484 pack_tmp = ishft(pack_tmp, -1)
33485 idata = idata + 1
33486 data_tmp = iand(pack_tmp, mask_right(nbits))
33487 full_data(idata) = data_tmp
33488 pack_tmp = ishft(pack_tmp, -nbits)
33489 idata = idata + 1
33490 data_tmp = ishft(pack_tmp, 23)
33491 ipack = ipack + 1
33492 pack_tmp = packed_data(ipack)
33493 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
33494 pack_tmp = ishft(pack_tmp, -23)
33495 idata = idata + 1
33496 data_tmp = ishft(pack_tmp, 2)
33497 ipack = ipack + 1
33498 pack_tmp = packed_data(ipack)
33499 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
33500 pack_tmp = ishft(pack_tmp, -2)
33501 idata = idata + 1
33502 data_tmp = iand(pack_tmp, mask_right(nbits))
33503 full_data(idata) = data_tmp
33504 pack_tmp = ishft(pack_tmp, -nbits)
33505 idata = idata + 1
33506 data_tmp = ishft(pack_tmp, 24)
33507 ipack = ipack + 1
33508 pack_tmp = packed_data(ipack)
33509 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
33510 pack_tmp = ishft(pack_tmp, -24)
33511 idata = idata + 1
33512 data_tmp = ishft(pack_tmp, 3)
33513 ipack = ipack + 1
33514 pack_tmp = packed_data(ipack)
33515 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
33516 pack_tmp = ishft(pack_tmp, -3)
33517 idata = idata + 1
33518 data_tmp = iand(pack_tmp, mask_right(nbits))
33519 full_data(idata) = data_tmp
33520 pack_tmp = ishft(pack_tmp, -nbits)
33521 idata = idata + 1
33522 data_tmp = ishft(pack_tmp, 25)
33523 ipack = ipack + 1
33524 pack_tmp = packed_data(ipack)
33525 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
33526 pack_tmp = ishft(pack_tmp, -25)
33527 idata = idata + 1
33528 data_tmp = ishft(pack_tmp, 4)
33529 ipack = ipack + 1
33530 pack_tmp = packed_data(ipack)
33531 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
33532 pack_tmp = ishft(pack_tmp, -4)
33533 idata = idata + 1
33534 data_tmp = iand(pack_tmp, mask_right(nbits))
33535 full_data(idata) = data_tmp
33536 pack_tmp = ishft(pack_tmp, -nbits)
33537 idata = idata + 1
33538 data_tmp = ishft(pack_tmp, 26)
33539 ipack = ipack + 1
33540 pack_tmp = packed_data(ipack)
33541 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
33542 pack_tmp = ishft(pack_tmp, -26)
33543 idata = idata + 1
33544 data_tmp = ishft(pack_tmp, 5)
33545 ipack = ipack + 1
33546 pack_tmp = packed_data(ipack)
33547 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
33548 pack_tmp = ishft(pack_tmp, -5)
33549 idata = idata + 1
33550 data_tmp = iand(pack_tmp, mask_right(nbits))
33551 full_data(idata) = data_tmp
33552 pack_tmp = ishft(pack_tmp, -nbits)
33553 idata = idata + 1
33554 data_tmp = ishft(pack_tmp, 27)
33555 ipack = ipack + 1
33556 pack_tmp = packed_data(ipack)
33557 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
33558 pack_tmp = ishft(pack_tmp, -27)
33559 idata = idata + 1
33560 data_tmp = ishft(pack_tmp, 6)
33561 ipack = ipack + 1
33562 pack_tmp = packed_data(ipack)
33563 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
33564 pack_tmp = ishft(pack_tmp, -6)
33565 idata = idata + 1
33566 data_tmp = iand(pack_tmp, mask_right(nbits))
33567 full_data(idata) = data_tmp
33568 pack_tmp = ishft(pack_tmp, -nbits)
33569 idata = idata + 1
33570 data_tmp = ishft(pack_tmp, 28)
33571 ipack = ipack + 1
33572 pack_tmp = packed_data(ipack)
33573 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
33574 pack_tmp = ishft(pack_tmp, -28)
33575 idata = idata + 1
33576 data_tmp = ishft(pack_tmp, 7)
33577 ipack = ipack + 1
33578 pack_tmp = packed_data(ipack)
33579 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
33580 pack_tmp = ishft(pack_tmp, -7)
33581 idata = idata + 1
33582 data_tmp = iand(pack_tmp, mask_right(nbits))
33583 full_data(idata) = data_tmp
33584 pack_tmp = ishft(pack_tmp, -nbits)
33585 idata = idata + 1
33586 data_tmp = ishft(pack_tmp, 29)
33587 ipack = ipack + 1
33588 pack_tmp = packed_data(ipack)
33589 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
33590 pack_tmp = ishft(pack_tmp, -29)
33591 idata = idata + 1
33592 data_tmp = ishft(pack_tmp, 8)
33593 ipack = ipack + 1
33594 pack_tmp = packed_data(ipack)
33595 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
33596 pack_tmp = ishft(pack_tmp, -8)
33597 idata = idata + 1
33598 data_tmp = iand(pack_tmp, mask_right(nbits))
33599 full_data(idata) = data_tmp
33600 pack_tmp = ishft(pack_tmp, -nbits)
33601 idata = idata + 1
33602 data_tmp = ishft(pack_tmp, 30)
33603 ipack = ipack + 1
33604 pack_tmp = packed_data(ipack)
33605 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
33606 pack_tmp = ishft(pack_tmp, -30)
33607 idata = idata + 1
33608 data_tmp = ishft(pack_tmp, 9)
33609 ipack = ipack + 1
33610 pack_tmp = packed_data(ipack)
33611 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
33612 pack_tmp = ishft(pack_tmp, -9)
33613 idata = idata + 1
33614 data_tmp = iand(pack_tmp, mask_right(nbits))
33615 full_data(idata) = data_tmp
33616 pack_tmp = ishft(pack_tmp, -nbits)
33617 idata = idata + 1
33618 data_tmp = ishft(pack_tmp, 31)
33619 ipack = ipack + 1
33620 pack_tmp = packed_data(ipack)
33621 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
33622 pack_tmp = ishft(pack_tmp, -31)
33623 idata = idata + 1
33624 data_tmp = ishft(pack_tmp, 10)
33625 ipack = ipack + 1
33626 pack_tmp = packed_data(ipack)
33627 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
33628 pack_tmp = ishft(pack_tmp, -10)
33629 idata = idata + 1
33630 data_tmp = iand(pack_tmp, mask_right(nbits))
33631 full_data(idata) = data_tmp
33632 pack_tmp = ishft(pack_tmp, -nbits)
33633 idata = idata + 1
33634 data_tmp = ishft(pack_tmp, 32)
33635 ipack = ipack + 1
33636 pack_tmp = packed_data(ipack)
33637 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
33638 pack_tmp = ishft(pack_tmp, -32)
33639 idata = idata + 1
33640 data_tmp = ishft(pack_tmp, 11)
33641 ipack = ipack + 1
33642 pack_tmp = packed_data(ipack)
33643 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
33644 pack_tmp = ishft(pack_tmp, -11)
33645 idata = idata + 1
33646 data_tmp = iand(pack_tmp, mask_right(nbits))
33647 full_data(idata) = data_tmp
33648 pack_tmp = ishft(pack_tmp, -nbits)
33649 idata = idata + 1
33650 data_tmp = ishft(pack_tmp, 33)
33651 ipack = ipack + 1
33652 pack_tmp = packed_data(ipack)
33653 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
33654 pack_tmp = ishft(pack_tmp, -33)
33655 idata = idata + 1
33656 data_tmp = ishft(pack_tmp, 12)
33657 ipack = ipack + 1
33658 pack_tmp = packed_data(ipack)
33659 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
33660 pack_tmp = ishft(pack_tmp, -12)
33661 idata = idata + 1
33662 data_tmp = iand(pack_tmp, mask_right(nbits))
33663 full_data(idata) = data_tmp
33664 pack_tmp = ishft(pack_tmp, -nbits)
33665 idata = idata + 1
33666 data_tmp = ishft(pack_tmp, 34)
33667 ipack = ipack + 1
33668 pack_tmp = packed_data(ipack)
33669 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
33670 pack_tmp = ishft(pack_tmp, -34)
33671 idata = idata + 1
33672 data_tmp = ishft(pack_tmp, 13)
33673 ipack = ipack + 1
33674 pack_tmp = packed_data(ipack)
33675 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
33676 pack_tmp = ishft(pack_tmp, -13)
33677 idata = idata + 1
33678 data_tmp = iand(pack_tmp, mask_right(nbits))
33679 full_data(idata) = data_tmp
33680 pack_tmp = ishft(pack_tmp, -nbits)
33681 idata = idata + 1
33682 data_tmp = ishft(pack_tmp, 35)
33683 ipack = ipack + 1
33684 pack_tmp = packed_data(ipack)
33685 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
33686 pack_tmp = ishft(pack_tmp, -35)
33687 idata = idata + 1
33688 data_tmp = ishft(pack_tmp, 14)
33689 ipack = ipack + 1
33690 pack_tmp = packed_data(ipack)
33691 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
33692 pack_tmp = ishft(pack_tmp, -14)
33693 idata = idata + 1
33694 data_tmp = iand(pack_tmp, mask_right(nbits))
33695 full_data(idata) = data_tmp
33696 pack_tmp = ishft(pack_tmp, -nbits)
33697 idata = idata + 1
33698 data_tmp = ishft(pack_tmp, 36)
33699 ipack = ipack + 1
33700 pack_tmp = packed_data(ipack)
33701 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
33702 pack_tmp = ishft(pack_tmp, -36)
33703 idata = idata + 1
33704 data_tmp = ishft(pack_tmp, 15)
33705 ipack = ipack + 1
33706 pack_tmp = packed_data(ipack)
33707 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
33708 pack_tmp = ishft(pack_tmp, -15)
33709 idata = idata + 1
33710 data_tmp = iand(pack_tmp, mask_right(nbits))
33711 full_data(idata) = data_tmp
33712 pack_tmp = ishft(pack_tmp, -nbits)
33713 idata = idata + 1
33714 data_tmp = ishft(pack_tmp, 37)
33715 ipack = ipack + 1
33716 pack_tmp = packed_data(ipack)
33717 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
33718 pack_tmp = ishft(pack_tmp, -37)
33719 idata = idata + 1
33720 data_tmp = ishft(pack_tmp, 16)
33721 ipack = ipack + 1
33722 pack_tmp = packed_data(ipack)
33723 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
33724 pack_tmp = ishft(pack_tmp, -16)
33725 idata = idata + 1
33726 data_tmp = iand(pack_tmp, mask_right(nbits))
33727 full_data(idata) = data_tmp
33728 pack_tmp = ishft(pack_tmp, -nbits)
33729 idata = idata + 1
33730 data_tmp = ishft(pack_tmp, 38)
33731 ipack = ipack + 1
33732 pack_tmp = packed_data(ipack)
33733 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
33734 pack_tmp = ishft(pack_tmp, -38)
33735 idata = idata + 1
33736 data_tmp = ishft(pack_tmp, 17)
33737 ipack = ipack + 1
33738 pack_tmp = packed_data(ipack)
33739 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
33740 pack_tmp = ishft(pack_tmp, -17)
33741 idata = idata + 1
33742 data_tmp = iand(pack_tmp, mask_right(nbits))
33743 full_data(idata) = data_tmp
33744 pack_tmp = ishft(pack_tmp, -nbits)
33745 idata = idata + 1
33746 data_tmp = ishft(pack_tmp, 39)
33747 ipack = ipack + 1
33748 pack_tmp = packed_data(ipack)
33749 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
33750 pack_tmp = ishft(pack_tmp, -39)
33751 idata = idata + 1
33752 data_tmp = ishft(pack_tmp, 18)
33753 ipack = ipack + 1
33754 pack_tmp = packed_data(ipack)
33755 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
33756 pack_tmp = ishft(pack_tmp, -18)
33757 idata = idata + 1
33758 data_tmp = iand(pack_tmp, mask_right(nbits))
33759 full_data(idata) = data_tmp
33760 pack_tmp = ishft(pack_tmp, -nbits)
33761 idata = idata + 1
33762 data_tmp = ishft(pack_tmp, 40)
33763 ipack = ipack + 1
33764 pack_tmp = packed_data(ipack)
33765 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
33766 pack_tmp = ishft(pack_tmp, -40)
33767 idata = idata + 1
33768 data_tmp = ishft(pack_tmp, 19)
33769 ipack = ipack + 1
33770 pack_tmp = packed_data(ipack)
33771 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
33772 pack_tmp = ishft(pack_tmp, -19)
33773 idata = idata + 1
33774 data_tmp = iand(pack_tmp, mask_right(nbits))
33775 full_data(idata) = data_tmp
33776 pack_tmp = ishft(pack_tmp, -nbits)
33777 idata = idata + 1
33778 data_tmp = ishft(pack_tmp, 41)
33779 ipack = ipack + 1
33780 pack_tmp = packed_data(ipack)
33781 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(41)))
33782 pack_tmp = ishft(pack_tmp, -41)
33783 idata = idata + 1
33784 data_tmp = ishft(pack_tmp, 20)
33785 ipack = ipack + 1
33786 pack_tmp = packed_data(ipack)
33787 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
33788 pack_tmp = ishft(pack_tmp, -20)
33789 idata = idata + 1
33790 data_tmp = iand(pack_tmp, mask_right(nbits))
33791 full_data(idata) = data_tmp
33792 pack_tmp = ishft(pack_tmp, -nbits)
33793 idata = idata + 1
33794 data_tmp = ishft(pack_tmp, 42)
33795 ipack = ipack + 1
33796 pack_tmp = packed_data(ipack)
33797 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
33798 pack_tmp = ishft(pack_tmp, -42)
33799 idata = idata + 1
33800 data_tmp = ishft(pack_tmp, 21)
33801 ipack = ipack + 1
33802 pack_tmp = packed_data(ipack)
33803 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
33804 pack_tmp = ishft(pack_tmp, -21)
33805 idata = idata + 1
33806 data_tmp = iand(pack_tmp, mask_right(nbits))
33807 full_data(idata) = data_tmp
33808 pack_tmp = ishft(pack_tmp, -nbits)
33809 END DO
33810 IF (ndata_rep < ndata) THEN
33811 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
33812 END IF
33813 END SUBROUTINE bits2ints_43
33814
33815! **************************************************************************************************
33816!> \brief ...
33817!> \param Ndata ...
33818!> \param packed_data ...
33819!> \param full_data ...
33820! **************************************************************************************************
33821 SUBROUTINE ints2bits_44(Ndata, packed_data, full_data)
33822 INTEGER, INTENT(IN) :: Ndata
33823 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
33824 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
33825
33826 INTEGER, PARAMETER :: Nbits = 44
33827
33828 INTEGER :: idata, ipack, kdata, Ndata_rep
33829 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
33830
33831 idata = 0
33832 ipack = 0
33833 ndata_rep = (ndata/64)*64
33834 DO kdata = 1, ndata_rep, 64
33835 pack_tmp = 0
33836 idata = idata + 1
33837 data_tmp = full_data(idata)
33838 data_tmp = ishft(data_tmp, 20)
33839 pack_tmp = ior(pack_tmp, data_tmp)
33840 pack_tmp = ishft(pack_tmp, -20)
33841 idata = idata + 1
33842 data_tmp = full_data(idata)
33843 data_tmp = ishft(data_tmp, 20)
33844 data_tmp = iand(data_tmp, mask_left(20))
33845 pack_tmp = ior(pack_tmp, data_tmp)
33846 ipack = ipack + 1
33847 packed_data(ipack) = pack_tmp
33848 data_tmp = full_data(idata)
33849 pack_tmp = ishft(data_tmp, 40)
33850 pack_tmp = ishft(pack_tmp, -40)
33851 idata = idata + 1
33852 data_tmp = full_data(idata)
33853 data_tmp = ishft(data_tmp, 20)
33854 data_tmp = iand(data_tmp, mask_left(40))
33855 pack_tmp = ior(pack_tmp, data_tmp)
33856 ipack = ipack + 1
33857 packed_data(ipack) = pack_tmp
33858 data_tmp = full_data(idata)
33859 pack_tmp = ishft(data_tmp, 60)
33860 pack_tmp = ishft(pack_tmp, -44)
33861 idata = idata + 1
33862 data_tmp = full_data(idata)
33863 data_tmp = ishft(data_tmp, 20)
33864 pack_tmp = ior(pack_tmp, data_tmp)
33865 pack_tmp = ishft(pack_tmp, -16)
33866 idata = idata + 1
33867 data_tmp = full_data(idata)
33868 data_tmp = ishft(data_tmp, 20)
33869 data_tmp = iand(data_tmp, mask_left(16))
33870 pack_tmp = ior(pack_tmp, data_tmp)
33871 ipack = ipack + 1
33872 packed_data(ipack) = pack_tmp
33873 data_tmp = full_data(idata)
33874 pack_tmp = ishft(data_tmp, 36)
33875 pack_tmp = ishft(pack_tmp, -36)
33876 idata = idata + 1
33877 data_tmp = full_data(idata)
33878 data_tmp = ishft(data_tmp, 20)
33879 data_tmp = iand(data_tmp, mask_left(36))
33880 pack_tmp = ior(pack_tmp, data_tmp)
33881 ipack = ipack + 1
33882 packed_data(ipack) = pack_tmp
33883 data_tmp = full_data(idata)
33884 pack_tmp = ishft(data_tmp, 56)
33885 pack_tmp = ishft(pack_tmp, -44)
33886 idata = idata + 1
33887 data_tmp = full_data(idata)
33888 data_tmp = ishft(data_tmp, 20)
33889 pack_tmp = ior(pack_tmp, data_tmp)
33890 pack_tmp = ishft(pack_tmp, -12)
33891 idata = idata + 1
33892 data_tmp = full_data(idata)
33893 data_tmp = ishft(data_tmp, 20)
33894 data_tmp = iand(data_tmp, mask_left(12))
33895 pack_tmp = ior(pack_tmp, data_tmp)
33896 ipack = ipack + 1
33897 packed_data(ipack) = pack_tmp
33898 data_tmp = full_data(idata)
33899 pack_tmp = ishft(data_tmp, 32)
33900 pack_tmp = ishft(pack_tmp, -32)
33901 idata = idata + 1
33902 data_tmp = full_data(idata)
33903 data_tmp = ishft(data_tmp, 20)
33904 data_tmp = iand(data_tmp, mask_left(32))
33905 pack_tmp = ior(pack_tmp, data_tmp)
33906 ipack = ipack + 1
33907 packed_data(ipack) = pack_tmp
33908 data_tmp = full_data(idata)
33909 pack_tmp = ishft(data_tmp, 52)
33910 pack_tmp = ishft(pack_tmp, -44)
33911 idata = idata + 1
33912 data_tmp = full_data(idata)
33913 data_tmp = ishft(data_tmp, 20)
33914 pack_tmp = ior(pack_tmp, data_tmp)
33915 pack_tmp = ishft(pack_tmp, -8)
33916 idata = idata + 1
33917 data_tmp = full_data(idata)
33918 data_tmp = ishft(data_tmp, 20)
33919 data_tmp = iand(data_tmp, mask_left(8))
33920 pack_tmp = ior(pack_tmp, data_tmp)
33921 ipack = ipack + 1
33922 packed_data(ipack) = pack_tmp
33923 data_tmp = full_data(idata)
33924 pack_tmp = ishft(data_tmp, 28)
33925 pack_tmp = ishft(pack_tmp, -28)
33926 idata = idata + 1
33927 data_tmp = full_data(idata)
33928 data_tmp = ishft(data_tmp, 20)
33929 data_tmp = iand(data_tmp, mask_left(28))
33930 pack_tmp = ior(pack_tmp, data_tmp)
33931 ipack = ipack + 1
33932 packed_data(ipack) = pack_tmp
33933 data_tmp = full_data(idata)
33934 pack_tmp = ishft(data_tmp, 48)
33935 pack_tmp = ishft(pack_tmp, -44)
33936 idata = idata + 1
33937 data_tmp = full_data(idata)
33938 data_tmp = ishft(data_tmp, 20)
33939 pack_tmp = ior(pack_tmp, data_tmp)
33940 pack_tmp = ishft(pack_tmp, -4)
33941 idata = idata + 1
33942 data_tmp = full_data(idata)
33943 data_tmp = ishft(data_tmp, 20)
33944 data_tmp = iand(data_tmp, mask_left(4))
33945 pack_tmp = ior(pack_tmp, data_tmp)
33946 ipack = ipack + 1
33947 packed_data(ipack) = pack_tmp
33948 data_tmp = full_data(idata)
33949 pack_tmp = ishft(data_tmp, 24)
33950 pack_tmp = ishft(pack_tmp, -24)
33951 idata = idata + 1
33952 data_tmp = full_data(idata)
33953 data_tmp = ishft(data_tmp, 20)
33954 data_tmp = iand(data_tmp, mask_left(24))
33955 pack_tmp = ior(pack_tmp, data_tmp)
33956 ipack = ipack + 1
33957 packed_data(ipack) = pack_tmp
33958 data_tmp = full_data(idata)
33959 pack_tmp = ishft(data_tmp, 44)
33960 pack_tmp = ishft(pack_tmp, -44)
33961 idata = idata + 1
33962 data_tmp = full_data(idata)
33963 data_tmp = ishft(data_tmp, 20)
33964 pack_tmp = ior(pack_tmp, data_tmp)
33965 pack_tmp = ishft(pack_tmp, 0)
33966 idata = idata + 1
33967 data_tmp = full_data(idata)
33968 data_tmp = ishft(data_tmp, 20)
33969 data_tmp = iand(data_tmp, mask_left(0))
33970 pack_tmp = ior(pack_tmp, data_tmp)
33971 ipack = ipack + 1
33972 packed_data(ipack) = pack_tmp
33973 data_tmp = full_data(idata)
33974 pack_tmp = ishft(data_tmp, 20)
33975 pack_tmp = ishft(pack_tmp, -20)
33976 idata = idata + 1
33977 data_tmp = full_data(idata)
33978 data_tmp = ishft(data_tmp, 20)
33979 data_tmp = iand(data_tmp, mask_left(20))
33980 pack_tmp = ior(pack_tmp, data_tmp)
33981 ipack = ipack + 1
33982 packed_data(ipack) = pack_tmp
33983 data_tmp = full_data(idata)
33984 pack_tmp = ishft(data_tmp, 40)
33985 pack_tmp = ishft(pack_tmp, -40)
33986 idata = idata + 1
33987 data_tmp = full_data(idata)
33988 data_tmp = ishft(data_tmp, 20)
33989 data_tmp = iand(data_tmp, mask_left(40))
33990 pack_tmp = ior(pack_tmp, data_tmp)
33991 ipack = ipack + 1
33992 packed_data(ipack) = pack_tmp
33993 data_tmp = full_data(idata)
33994 pack_tmp = ishft(data_tmp, 60)
33995 pack_tmp = ishft(pack_tmp, -44)
33996 idata = idata + 1
33997 data_tmp = full_data(idata)
33998 data_tmp = ishft(data_tmp, 20)
33999 pack_tmp = ior(pack_tmp, data_tmp)
34000 pack_tmp = ishft(pack_tmp, -16)
34001 idata = idata + 1
34002 data_tmp = full_data(idata)
34003 data_tmp = ishft(data_tmp, 20)
34004 data_tmp = iand(data_tmp, mask_left(16))
34005 pack_tmp = ior(pack_tmp, data_tmp)
34006 ipack = ipack + 1
34007 packed_data(ipack) = pack_tmp
34008 data_tmp = full_data(idata)
34009 pack_tmp = ishft(data_tmp, 36)
34010 pack_tmp = ishft(pack_tmp, -36)
34011 idata = idata + 1
34012 data_tmp = full_data(idata)
34013 data_tmp = ishft(data_tmp, 20)
34014 data_tmp = iand(data_tmp, mask_left(36))
34015 pack_tmp = ior(pack_tmp, data_tmp)
34016 ipack = ipack + 1
34017 packed_data(ipack) = pack_tmp
34018 data_tmp = full_data(idata)
34019 pack_tmp = ishft(data_tmp, 56)
34020 pack_tmp = ishft(pack_tmp, -44)
34021 idata = idata + 1
34022 data_tmp = full_data(idata)
34023 data_tmp = ishft(data_tmp, 20)
34024 pack_tmp = ior(pack_tmp, data_tmp)
34025 pack_tmp = ishft(pack_tmp, -12)
34026 idata = idata + 1
34027 data_tmp = full_data(idata)
34028 data_tmp = ishft(data_tmp, 20)
34029 data_tmp = iand(data_tmp, mask_left(12))
34030 pack_tmp = ior(pack_tmp, data_tmp)
34031 ipack = ipack + 1
34032 packed_data(ipack) = pack_tmp
34033 data_tmp = full_data(idata)
34034 pack_tmp = ishft(data_tmp, 32)
34035 pack_tmp = ishft(pack_tmp, -32)
34036 idata = idata + 1
34037 data_tmp = full_data(idata)
34038 data_tmp = ishft(data_tmp, 20)
34039 data_tmp = iand(data_tmp, mask_left(32))
34040 pack_tmp = ior(pack_tmp, data_tmp)
34041 ipack = ipack + 1
34042 packed_data(ipack) = pack_tmp
34043 data_tmp = full_data(idata)
34044 pack_tmp = ishft(data_tmp, 52)
34045 pack_tmp = ishft(pack_tmp, -44)
34046 idata = idata + 1
34047 data_tmp = full_data(idata)
34048 data_tmp = ishft(data_tmp, 20)
34049 pack_tmp = ior(pack_tmp, data_tmp)
34050 pack_tmp = ishft(pack_tmp, -8)
34051 idata = idata + 1
34052 data_tmp = full_data(idata)
34053 data_tmp = ishft(data_tmp, 20)
34054 data_tmp = iand(data_tmp, mask_left(8))
34055 pack_tmp = ior(pack_tmp, data_tmp)
34056 ipack = ipack + 1
34057 packed_data(ipack) = pack_tmp
34058 data_tmp = full_data(idata)
34059 pack_tmp = ishft(data_tmp, 28)
34060 pack_tmp = ishft(pack_tmp, -28)
34061 idata = idata + 1
34062 data_tmp = full_data(idata)
34063 data_tmp = ishft(data_tmp, 20)
34064 data_tmp = iand(data_tmp, mask_left(28))
34065 pack_tmp = ior(pack_tmp, data_tmp)
34066 ipack = ipack + 1
34067 packed_data(ipack) = pack_tmp
34068 data_tmp = full_data(idata)
34069 pack_tmp = ishft(data_tmp, 48)
34070 pack_tmp = ishft(pack_tmp, -44)
34071 idata = idata + 1
34072 data_tmp = full_data(idata)
34073 data_tmp = ishft(data_tmp, 20)
34074 pack_tmp = ior(pack_tmp, data_tmp)
34075 pack_tmp = ishft(pack_tmp, -4)
34076 idata = idata + 1
34077 data_tmp = full_data(idata)
34078 data_tmp = ishft(data_tmp, 20)
34079 data_tmp = iand(data_tmp, mask_left(4))
34080 pack_tmp = ior(pack_tmp, data_tmp)
34081 ipack = ipack + 1
34082 packed_data(ipack) = pack_tmp
34083 data_tmp = full_data(idata)
34084 pack_tmp = ishft(data_tmp, 24)
34085 pack_tmp = ishft(pack_tmp, -24)
34086 idata = idata + 1
34087 data_tmp = full_data(idata)
34088 data_tmp = ishft(data_tmp, 20)
34089 data_tmp = iand(data_tmp, mask_left(24))
34090 pack_tmp = ior(pack_tmp, data_tmp)
34091 ipack = ipack + 1
34092 packed_data(ipack) = pack_tmp
34093 data_tmp = full_data(idata)
34094 pack_tmp = ishft(data_tmp, 44)
34095 pack_tmp = ishft(pack_tmp, -44)
34096 idata = idata + 1
34097 data_tmp = full_data(idata)
34098 data_tmp = ishft(data_tmp, 20)
34099 pack_tmp = ior(pack_tmp, data_tmp)
34100 pack_tmp = ishft(pack_tmp, 0)
34101 idata = idata + 1
34102 data_tmp = full_data(idata)
34103 data_tmp = ishft(data_tmp, 20)
34104 data_tmp = iand(data_tmp, mask_left(0))
34105 pack_tmp = ior(pack_tmp, data_tmp)
34106 ipack = ipack + 1
34107 packed_data(ipack) = pack_tmp
34108 data_tmp = full_data(idata)
34109 pack_tmp = ishft(data_tmp, 20)
34110 pack_tmp = ishft(pack_tmp, -20)
34111 idata = idata + 1
34112 data_tmp = full_data(idata)
34113 data_tmp = ishft(data_tmp, 20)
34114 data_tmp = iand(data_tmp, mask_left(20))
34115 pack_tmp = ior(pack_tmp, data_tmp)
34116 ipack = ipack + 1
34117 packed_data(ipack) = pack_tmp
34118 data_tmp = full_data(idata)
34119 pack_tmp = ishft(data_tmp, 40)
34120 pack_tmp = ishft(pack_tmp, -40)
34121 idata = idata + 1
34122 data_tmp = full_data(idata)
34123 data_tmp = ishft(data_tmp, 20)
34124 data_tmp = iand(data_tmp, mask_left(40))
34125 pack_tmp = ior(pack_tmp, data_tmp)
34126 ipack = ipack + 1
34127 packed_data(ipack) = pack_tmp
34128 data_tmp = full_data(idata)
34129 pack_tmp = ishft(data_tmp, 60)
34130 pack_tmp = ishft(pack_tmp, -44)
34131 idata = idata + 1
34132 data_tmp = full_data(idata)
34133 data_tmp = ishft(data_tmp, 20)
34134 pack_tmp = ior(pack_tmp, data_tmp)
34135 pack_tmp = ishft(pack_tmp, -16)
34136 idata = idata + 1
34137 data_tmp = full_data(idata)
34138 data_tmp = ishft(data_tmp, 20)
34139 data_tmp = iand(data_tmp, mask_left(16))
34140 pack_tmp = ior(pack_tmp, data_tmp)
34141 ipack = ipack + 1
34142 packed_data(ipack) = pack_tmp
34143 data_tmp = full_data(idata)
34144 pack_tmp = ishft(data_tmp, 36)
34145 pack_tmp = ishft(pack_tmp, -36)
34146 idata = idata + 1
34147 data_tmp = full_data(idata)
34148 data_tmp = ishft(data_tmp, 20)
34149 data_tmp = iand(data_tmp, mask_left(36))
34150 pack_tmp = ior(pack_tmp, data_tmp)
34151 ipack = ipack + 1
34152 packed_data(ipack) = pack_tmp
34153 data_tmp = full_data(idata)
34154 pack_tmp = ishft(data_tmp, 56)
34155 pack_tmp = ishft(pack_tmp, -44)
34156 idata = idata + 1
34157 data_tmp = full_data(idata)
34158 data_tmp = ishft(data_tmp, 20)
34159 pack_tmp = ior(pack_tmp, data_tmp)
34160 pack_tmp = ishft(pack_tmp, -12)
34161 idata = idata + 1
34162 data_tmp = full_data(idata)
34163 data_tmp = ishft(data_tmp, 20)
34164 data_tmp = iand(data_tmp, mask_left(12))
34165 pack_tmp = ior(pack_tmp, data_tmp)
34166 ipack = ipack + 1
34167 packed_data(ipack) = pack_tmp
34168 data_tmp = full_data(idata)
34169 pack_tmp = ishft(data_tmp, 32)
34170 pack_tmp = ishft(pack_tmp, -32)
34171 idata = idata + 1
34172 data_tmp = full_data(idata)
34173 data_tmp = ishft(data_tmp, 20)
34174 data_tmp = iand(data_tmp, mask_left(32))
34175 pack_tmp = ior(pack_tmp, data_tmp)
34176 ipack = ipack + 1
34177 packed_data(ipack) = pack_tmp
34178 data_tmp = full_data(idata)
34179 pack_tmp = ishft(data_tmp, 52)
34180 pack_tmp = ishft(pack_tmp, -44)
34181 idata = idata + 1
34182 data_tmp = full_data(idata)
34183 data_tmp = ishft(data_tmp, 20)
34184 pack_tmp = ior(pack_tmp, data_tmp)
34185 pack_tmp = ishft(pack_tmp, -8)
34186 idata = idata + 1
34187 data_tmp = full_data(idata)
34188 data_tmp = ishft(data_tmp, 20)
34189 data_tmp = iand(data_tmp, mask_left(8))
34190 pack_tmp = ior(pack_tmp, data_tmp)
34191 ipack = ipack + 1
34192 packed_data(ipack) = pack_tmp
34193 data_tmp = full_data(idata)
34194 pack_tmp = ishft(data_tmp, 28)
34195 pack_tmp = ishft(pack_tmp, -28)
34196 idata = idata + 1
34197 data_tmp = full_data(idata)
34198 data_tmp = ishft(data_tmp, 20)
34199 data_tmp = iand(data_tmp, mask_left(28))
34200 pack_tmp = ior(pack_tmp, data_tmp)
34201 ipack = ipack + 1
34202 packed_data(ipack) = pack_tmp
34203 data_tmp = full_data(idata)
34204 pack_tmp = ishft(data_tmp, 48)
34205 pack_tmp = ishft(pack_tmp, -44)
34206 idata = idata + 1
34207 data_tmp = full_data(idata)
34208 data_tmp = ishft(data_tmp, 20)
34209 pack_tmp = ior(pack_tmp, data_tmp)
34210 pack_tmp = ishft(pack_tmp, -4)
34211 idata = idata + 1
34212 data_tmp = full_data(idata)
34213 data_tmp = ishft(data_tmp, 20)
34214 data_tmp = iand(data_tmp, mask_left(4))
34215 pack_tmp = ior(pack_tmp, data_tmp)
34216 ipack = ipack + 1
34217 packed_data(ipack) = pack_tmp
34218 data_tmp = full_data(idata)
34219 pack_tmp = ishft(data_tmp, 24)
34220 pack_tmp = ishft(pack_tmp, -24)
34221 idata = idata + 1
34222 data_tmp = full_data(idata)
34223 data_tmp = ishft(data_tmp, 20)
34224 data_tmp = iand(data_tmp, mask_left(24))
34225 pack_tmp = ior(pack_tmp, data_tmp)
34226 ipack = ipack + 1
34227 packed_data(ipack) = pack_tmp
34228 data_tmp = full_data(idata)
34229 pack_tmp = ishft(data_tmp, 44)
34230 pack_tmp = ishft(pack_tmp, -44)
34231 idata = idata + 1
34232 data_tmp = full_data(idata)
34233 data_tmp = ishft(data_tmp, 20)
34234 pack_tmp = ior(pack_tmp, data_tmp)
34235 pack_tmp = ishft(pack_tmp, 0)
34236 idata = idata + 1
34237 data_tmp = full_data(idata)
34238 data_tmp = ishft(data_tmp, 20)
34239 data_tmp = iand(data_tmp, mask_left(0))
34240 pack_tmp = ior(pack_tmp, data_tmp)
34241 ipack = ipack + 1
34242 packed_data(ipack) = pack_tmp
34243 data_tmp = full_data(idata)
34244 pack_tmp = ishft(data_tmp, 20)
34245 pack_tmp = ishft(pack_tmp, -20)
34246 idata = idata + 1
34247 data_tmp = full_data(idata)
34248 data_tmp = ishft(data_tmp, 20)
34249 data_tmp = iand(data_tmp, mask_left(20))
34250 pack_tmp = ior(pack_tmp, data_tmp)
34251 ipack = ipack + 1
34252 packed_data(ipack) = pack_tmp
34253 data_tmp = full_data(idata)
34254 pack_tmp = ishft(data_tmp, 40)
34255 pack_tmp = ishft(pack_tmp, -40)
34256 idata = idata + 1
34257 data_tmp = full_data(idata)
34258 data_tmp = ishft(data_tmp, 20)
34259 data_tmp = iand(data_tmp, mask_left(40))
34260 pack_tmp = ior(pack_tmp, data_tmp)
34261 ipack = ipack + 1
34262 packed_data(ipack) = pack_tmp
34263 data_tmp = full_data(idata)
34264 pack_tmp = ishft(data_tmp, 60)
34265 pack_tmp = ishft(pack_tmp, -44)
34266 idata = idata + 1
34267 data_tmp = full_data(idata)
34268 data_tmp = ishft(data_tmp, 20)
34269 pack_tmp = ior(pack_tmp, data_tmp)
34270 pack_tmp = ishft(pack_tmp, -16)
34271 idata = idata + 1
34272 data_tmp = full_data(idata)
34273 data_tmp = ishft(data_tmp, 20)
34274 data_tmp = iand(data_tmp, mask_left(16))
34275 pack_tmp = ior(pack_tmp, data_tmp)
34276 ipack = ipack + 1
34277 packed_data(ipack) = pack_tmp
34278 data_tmp = full_data(idata)
34279 pack_tmp = ishft(data_tmp, 36)
34280 pack_tmp = ishft(pack_tmp, -36)
34281 idata = idata + 1
34282 data_tmp = full_data(idata)
34283 data_tmp = ishft(data_tmp, 20)
34284 data_tmp = iand(data_tmp, mask_left(36))
34285 pack_tmp = ior(pack_tmp, data_tmp)
34286 ipack = ipack + 1
34287 packed_data(ipack) = pack_tmp
34288 data_tmp = full_data(idata)
34289 pack_tmp = ishft(data_tmp, 56)
34290 pack_tmp = ishft(pack_tmp, -44)
34291 idata = idata + 1
34292 data_tmp = full_data(idata)
34293 data_tmp = ishft(data_tmp, 20)
34294 pack_tmp = ior(pack_tmp, data_tmp)
34295 pack_tmp = ishft(pack_tmp, -12)
34296 idata = idata + 1
34297 data_tmp = full_data(idata)
34298 data_tmp = ishft(data_tmp, 20)
34299 data_tmp = iand(data_tmp, mask_left(12))
34300 pack_tmp = ior(pack_tmp, data_tmp)
34301 ipack = ipack + 1
34302 packed_data(ipack) = pack_tmp
34303 data_tmp = full_data(idata)
34304 pack_tmp = ishft(data_tmp, 32)
34305 pack_tmp = ishft(pack_tmp, -32)
34306 idata = idata + 1
34307 data_tmp = full_data(idata)
34308 data_tmp = ishft(data_tmp, 20)
34309 data_tmp = iand(data_tmp, mask_left(32))
34310 pack_tmp = ior(pack_tmp, data_tmp)
34311 ipack = ipack + 1
34312 packed_data(ipack) = pack_tmp
34313 data_tmp = full_data(idata)
34314 pack_tmp = ishft(data_tmp, 52)
34315 pack_tmp = ishft(pack_tmp, -44)
34316 idata = idata + 1
34317 data_tmp = full_data(idata)
34318 data_tmp = ishft(data_tmp, 20)
34319 pack_tmp = ior(pack_tmp, data_tmp)
34320 pack_tmp = ishft(pack_tmp, -8)
34321 idata = idata + 1
34322 data_tmp = full_data(idata)
34323 data_tmp = ishft(data_tmp, 20)
34324 data_tmp = iand(data_tmp, mask_left(8))
34325 pack_tmp = ior(pack_tmp, data_tmp)
34326 ipack = ipack + 1
34327 packed_data(ipack) = pack_tmp
34328 data_tmp = full_data(idata)
34329 pack_tmp = ishft(data_tmp, 28)
34330 pack_tmp = ishft(pack_tmp, -28)
34331 idata = idata + 1
34332 data_tmp = full_data(idata)
34333 data_tmp = ishft(data_tmp, 20)
34334 data_tmp = iand(data_tmp, mask_left(28))
34335 pack_tmp = ior(pack_tmp, data_tmp)
34336 ipack = ipack + 1
34337 packed_data(ipack) = pack_tmp
34338 data_tmp = full_data(idata)
34339 pack_tmp = ishft(data_tmp, 48)
34340 pack_tmp = ishft(pack_tmp, -44)
34341 idata = idata + 1
34342 data_tmp = full_data(idata)
34343 data_tmp = ishft(data_tmp, 20)
34344 pack_tmp = ior(pack_tmp, data_tmp)
34345 pack_tmp = ishft(pack_tmp, -4)
34346 idata = idata + 1
34347 data_tmp = full_data(idata)
34348 data_tmp = ishft(data_tmp, 20)
34349 data_tmp = iand(data_tmp, mask_left(4))
34350 pack_tmp = ior(pack_tmp, data_tmp)
34351 ipack = ipack + 1
34352 packed_data(ipack) = pack_tmp
34353 data_tmp = full_data(idata)
34354 pack_tmp = ishft(data_tmp, 24)
34355 pack_tmp = ishft(pack_tmp, -24)
34356 idata = idata + 1
34357 data_tmp = full_data(idata)
34358 data_tmp = ishft(data_tmp, 20)
34359 data_tmp = iand(data_tmp, mask_left(24))
34360 pack_tmp = ior(pack_tmp, data_tmp)
34361 ipack = ipack + 1
34362 packed_data(ipack) = pack_tmp
34363 data_tmp = full_data(idata)
34364 pack_tmp = ishft(data_tmp, 44)
34365 pack_tmp = ishft(pack_tmp, -44)
34366 idata = idata + 1
34367 data_tmp = full_data(idata)
34368 data_tmp = ishft(data_tmp, 20)
34369 pack_tmp = ior(pack_tmp, data_tmp)
34370 pack_tmp = ishft(pack_tmp, 0)
34371 pack_tmp = ishft(pack_tmp, 0)
34372 ipack = ipack + 1
34373 packed_data(ipack) = pack_tmp
34374 END DO
34375 IF (ndata_rep < ndata) THEN
34376 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
34377 END IF
34378 END SUBROUTINE ints2bits_44
34379
34380! **************************************************************************************************
34381!> \brief ...
34382!> \param Ndata ...
34383!> \param packed_data ...
34384!> \param full_data ...
34385! **************************************************************************************************
34386 SUBROUTINE bits2ints_44(Ndata, packed_data, full_data)
34387 INTEGER, INTENT(IN) :: Ndata
34388 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
34389 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
34390
34391 INTEGER, PARAMETER :: Nbits = 44
34392
34393 INTEGER :: idata, ipack, kdata, Ndata_rep
34394 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
34395
34396 ipack = 0
34397 idata = 0
34398 pack_tmp = 0
34399 ndata_rep = (ndata/64)*64
34400 DO kdata = 1, ndata_rep, 64
34401 idata = idata + 1
34402 data_tmp = ishft(pack_tmp, 44)
34403 ipack = ipack + 1
34404 pack_tmp = packed_data(ipack)
34405 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
34406 pack_tmp = ishft(pack_tmp, -44)
34407 idata = idata + 1
34408 data_tmp = ishft(pack_tmp, 24)
34409 ipack = ipack + 1
34410 pack_tmp = packed_data(ipack)
34411 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
34412 pack_tmp = ishft(pack_tmp, -24)
34413 idata = idata + 1
34414 data_tmp = ishft(pack_tmp, 4)
34415 ipack = ipack + 1
34416 pack_tmp = packed_data(ipack)
34417 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
34418 pack_tmp = ishft(pack_tmp, -4)
34419 idata = idata + 1
34420 data_tmp = iand(pack_tmp, mask_right(nbits))
34421 full_data(idata) = data_tmp
34422 pack_tmp = ishft(pack_tmp, -nbits)
34423 idata = idata + 1
34424 data_tmp = ishft(pack_tmp, 28)
34425 ipack = ipack + 1
34426 pack_tmp = packed_data(ipack)
34427 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
34428 pack_tmp = ishft(pack_tmp, -28)
34429 idata = idata + 1
34430 data_tmp = ishft(pack_tmp, 8)
34431 ipack = ipack + 1
34432 pack_tmp = packed_data(ipack)
34433 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
34434 pack_tmp = ishft(pack_tmp, -8)
34435 idata = idata + 1
34436 data_tmp = iand(pack_tmp, mask_right(nbits))
34437 full_data(idata) = data_tmp
34438 pack_tmp = ishft(pack_tmp, -nbits)
34439 idata = idata + 1
34440 data_tmp = ishft(pack_tmp, 32)
34441 ipack = ipack + 1
34442 pack_tmp = packed_data(ipack)
34443 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
34444 pack_tmp = ishft(pack_tmp, -32)
34445 idata = idata + 1
34446 data_tmp = ishft(pack_tmp, 12)
34447 ipack = ipack + 1
34448 pack_tmp = packed_data(ipack)
34449 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
34450 pack_tmp = ishft(pack_tmp, -12)
34451 idata = idata + 1
34452 data_tmp = iand(pack_tmp, mask_right(nbits))
34453 full_data(idata) = data_tmp
34454 pack_tmp = ishft(pack_tmp, -nbits)
34455 idata = idata + 1
34456 data_tmp = ishft(pack_tmp, 36)
34457 ipack = ipack + 1
34458 pack_tmp = packed_data(ipack)
34459 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
34460 pack_tmp = ishft(pack_tmp, -36)
34461 idata = idata + 1
34462 data_tmp = ishft(pack_tmp, 16)
34463 ipack = ipack + 1
34464 pack_tmp = packed_data(ipack)
34465 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
34466 pack_tmp = ishft(pack_tmp, -16)
34467 idata = idata + 1
34468 data_tmp = iand(pack_tmp, mask_right(nbits))
34469 full_data(idata) = data_tmp
34470 pack_tmp = ishft(pack_tmp, -nbits)
34471 idata = idata + 1
34472 data_tmp = ishft(pack_tmp, 40)
34473 ipack = ipack + 1
34474 pack_tmp = packed_data(ipack)
34475 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
34476 pack_tmp = ishft(pack_tmp, -40)
34477 idata = idata + 1
34478 data_tmp = ishft(pack_tmp, 20)
34479 ipack = ipack + 1
34480 pack_tmp = packed_data(ipack)
34481 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
34482 pack_tmp = ishft(pack_tmp, -20)
34483 idata = idata + 1
34484 data_tmp = iand(pack_tmp, mask_right(nbits))
34485 full_data(idata) = data_tmp
34486 pack_tmp = ishft(pack_tmp, -nbits)
34487 idata = idata + 1
34488 data_tmp = ishft(pack_tmp, 44)
34489 ipack = ipack + 1
34490 pack_tmp = packed_data(ipack)
34491 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
34492 pack_tmp = ishft(pack_tmp, -44)
34493 idata = idata + 1
34494 data_tmp = ishft(pack_tmp, 24)
34495 ipack = ipack + 1
34496 pack_tmp = packed_data(ipack)
34497 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
34498 pack_tmp = ishft(pack_tmp, -24)
34499 idata = idata + 1
34500 data_tmp = ishft(pack_tmp, 4)
34501 ipack = ipack + 1
34502 pack_tmp = packed_data(ipack)
34503 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
34504 pack_tmp = ishft(pack_tmp, -4)
34505 idata = idata + 1
34506 data_tmp = iand(pack_tmp, mask_right(nbits))
34507 full_data(idata) = data_tmp
34508 pack_tmp = ishft(pack_tmp, -nbits)
34509 idata = idata + 1
34510 data_tmp = ishft(pack_tmp, 28)
34511 ipack = ipack + 1
34512 pack_tmp = packed_data(ipack)
34513 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
34514 pack_tmp = ishft(pack_tmp, -28)
34515 idata = idata + 1
34516 data_tmp = ishft(pack_tmp, 8)
34517 ipack = ipack + 1
34518 pack_tmp = packed_data(ipack)
34519 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
34520 pack_tmp = ishft(pack_tmp, -8)
34521 idata = idata + 1
34522 data_tmp = iand(pack_tmp, mask_right(nbits))
34523 full_data(idata) = data_tmp
34524 pack_tmp = ishft(pack_tmp, -nbits)
34525 idata = idata + 1
34526 data_tmp = ishft(pack_tmp, 32)
34527 ipack = ipack + 1
34528 pack_tmp = packed_data(ipack)
34529 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
34530 pack_tmp = ishft(pack_tmp, -32)
34531 idata = idata + 1
34532 data_tmp = ishft(pack_tmp, 12)
34533 ipack = ipack + 1
34534 pack_tmp = packed_data(ipack)
34535 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
34536 pack_tmp = ishft(pack_tmp, -12)
34537 idata = idata + 1
34538 data_tmp = iand(pack_tmp, mask_right(nbits))
34539 full_data(idata) = data_tmp
34540 pack_tmp = ishft(pack_tmp, -nbits)
34541 idata = idata + 1
34542 data_tmp = ishft(pack_tmp, 36)
34543 ipack = ipack + 1
34544 pack_tmp = packed_data(ipack)
34545 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
34546 pack_tmp = ishft(pack_tmp, -36)
34547 idata = idata + 1
34548 data_tmp = ishft(pack_tmp, 16)
34549 ipack = ipack + 1
34550 pack_tmp = packed_data(ipack)
34551 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
34552 pack_tmp = ishft(pack_tmp, -16)
34553 idata = idata + 1
34554 data_tmp = iand(pack_tmp, mask_right(nbits))
34555 full_data(idata) = data_tmp
34556 pack_tmp = ishft(pack_tmp, -nbits)
34557 idata = idata + 1
34558 data_tmp = ishft(pack_tmp, 40)
34559 ipack = ipack + 1
34560 pack_tmp = packed_data(ipack)
34561 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
34562 pack_tmp = ishft(pack_tmp, -40)
34563 idata = idata + 1
34564 data_tmp = ishft(pack_tmp, 20)
34565 ipack = ipack + 1
34566 pack_tmp = packed_data(ipack)
34567 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
34568 pack_tmp = ishft(pack_tmp, -20)
34569 idata = idata + 1
34570 data_tmp = iand(pack_tmp, mask_right(nbits))
34571 full_data(idata) = data_tmp
34572 pack_tmp = ishft(pack_tmp, -nbits)
34573 idata = idata + 1
34574 data_tmp = ishft(pack_tmp, 44)
34575 ipack = ipack + 1
34576 pack_tmp = packed_data(ipack)
34577 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
34578 pack_tmp = ishft(pack_tmp, -44)
34579 idata = idata + 1
34580 data_tmp = ishft(pack_tmp, 24)
34581 ipack = ipack + 1
34582 pack_tmp = packed_data(ipack)
34583 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
34584 pack_tmp = ishft(pack_tmp, -24)
34585 idata = idata + 1
34586 data_tmp = ishft(pack_tmp, 4)
34587 ipack = ipack + 1
34588 pack_tmp = packed_data(ipack)
34589 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
34590 pack_tmp = ishft(pack_tmp, -4)
34591 idata = idata + 1
34592 data_tmp = iand(pack_tmp, mask_right(nbits))
34593 full_data(idata) = data_tmp
34594 pack_tmp = ishft(pack_tmp, -nbits)
34595 idata = idata + 1
34596 data_tmp = ishft(pack_tmp, 28)
34597 ipack = ipack + 1
34598 pack_tmp = packed_data(ipack)
34599 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
34600 pack_tmp = ishft(pack_tmp, -28)
34601 idata = idata + 1
34602 data_tmp = ishft(pack_tmp, 8)
34603 ipack = ipack + 1
34604 pack_tmp = packed_data(ipack)
34605 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
34606 pack_tmp = ishft(pack_tmp, -8)
34607 idata = idata + 1
34608 data_tmp = iand(pack_tmp, mask_right(nbits))
34609 full_data(idata) = data_tmp
34610 pack_tmp = ishft(pack_tmp, -nbits)
34611 idata = idata + 1
34612 data_tmp = ishft(pack_tmp, 32)
34613 ipack = ipack + 1
34614 pack_tmp = packed_data(ipack)
34615 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
34616 pack_tmp = ishft(pack_tmp, -32)
34617 idata = idata + 1
34618 data_tmp = ishft(pack_tmp, 12)
34619 ipack = ipack + 1
34620 pack_tmp = packed_data(ipack)
34621 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
34622 pack_tmp = ishft(pack_tmp, -12)
34623 idata = idata + 1
34624 data_tmp = iand(pack_tmp, mask_right(nbits))
34625 full_data(idata) = data_tmp
34626 pack_tmp = ishft(pack_tmp, -nbits)
34627 idata = idata + 1
34628 data_tmp = ishft(pack_tmp, 36)
34629 ipack = ipack + 1
34630 pack_tmp = packed_data(ipack)
34631 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
34632 pack_tmp = ishft(pack_tmp, -36)
34633 idata = idata + 1
34634 data_tmp = ishft(pack_tmp, 16)
34635 ipack = ipack + 1
34636 pack_tmp = packed_data(ipack)
34637 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
34638 pack_tmp = ishft(pack_tmp, -16)
34639 idata = idata + 1
34640 data_tmp = iand(pack_tmp, mask_right(nbits))
34641 full_data(idata) = data_tmp
34642 pack_tmp = ishft(pack_tmp, -nbits)
34643 idata = idata + 1
34644 data_tmp = ishft(pack_tmp, 40)
34645 ipack = ipack + 1
34646 pack_tmp = packed_data(ipack)
34647 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
34648 pack_tmp = ishft(pack_tmp, -40)
34649 idata = idata + 1
34650 data_tmp = ishft(pack_tmp, 20)
34651 ipack = ipack + 1
34652 pack_tmp = packed_data(ipack)
34653 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
34654 pack_tmp = ishft(pack_tmp, -20)
34655 idata = idata + 1
34656 data_tmp = iand(pack_tmp, mask_right(nbits))
34657 full_data(idata) = data_tmp
34658 pack_tmp = ishft(pack_tmp, -nbits)
34659 idata = idata + 1
34660 data_tmp = ishft(pack_tmp, 44)
34661 ipack = ipack + 1
34662 pack_tmp = packed_data(ipack)
34663 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
34664 pack_tmp = ishft(pack_tmp, -44)
34665 idata = idata + 1
34666 data_tmp = ishft(pack_tmp, 24)
34667 ipack = ipack + 1
34668 pack_tmp = packed_data(ipack)
34669 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
34670 pack_tmp = ishft(pack_tmp, -24)
34671 idata = idata + 1
34672 data_tmp = ishft(pack_tmp, 4)
34673 ipack = ipack + 1
34674 pack_tmp = packed_data(ipack)
34675 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
34676 pack_tmp = ishft(pack_tmp, -4)
34677 idata = idata + 1
34678 data_tmp = iand(pack_tmp, mask_right(nbits))
34679 full_data(idata) = data_tmp
34680 pack_tmp = ishft(pack_tmp, -nbits)
34681 idata = idata + 1
34682 data_tmp = ishft(pack_tmp, 28)
34683 ipack = ipack + 1
34684 pack_tmp = packed_data(ipack)
34685 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
34686 pack_tmp = ishft(pack_tmp, -28)
34687 idata = idata + 1
34688 data_tmp = ishft(pack_tmp, 8)
34689 ipack = ipack + 1
34690 pack_tmp = packed_data(ipack)
34691 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
34692 pack_tmp = ishft(pack_tmp, -8)
34693 idata = idata + 1
34694 data_tmp = iand(pack_tmp, mask_right(nbits))
34695 full_data(idata) = data_tmp
34696 pack_tmp = ishft(pack_tmp, -nbits)
34697 idata = idata + 1
34698 data_tmp = ishft(pack_tmp, 32)
34699 ipack = ipack + 1
34700 pack_tmp = packed_data(ipack)
34701 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
34702 pack_tmp = ishft(pack_tmp, -32)
34703 idata = idata + 1
34704 data_tmp = ishft(pack_tmp, 12)
34705 ipack = ipack + 1
34706 pack_tmp = packed_data(ipack)
34707 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
34708 pack_tmp = ishft(pack_tmp, -12)
34709 idata = idata + 1
34710 data_tmp = iand(pack_tmp, mask_right(nbits))
34711 full_data(idata) = data_tmp
34712 pack_tmp = ishft(pack_tmp, -nbits)
34713 idata = idata + 1
34714 data_tmp = ishft(pack_tmp, 36)
34715 ipack = ipack + 1
34716 pack_tmp = packed_data(ipack)
34717 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
34718 pack_tmp = ishft(pack_tmp, -36)
34719 idata = idata + 1
34720 data_tmp = ishft(pack_tmp, 16)
34721 ipack = ipack + 1
34722 pack_tmp = packed_data(ipack)
34723 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
34724 pack_tmp = ishft(pack_tmp, -16)
34725 idata = idata + 1
34726 data_tmp = iand(pack_tmp, mask_right(nbits))
34727 full_data(idata) = data_tmp
34728 pack_tmp = ishft(pack_tmp, -nbits)
34729 idata = idata + 1
34730 data_tmp = ishft(pack_tmp, 40)
34731 ipack = ipack + 1
34732 pack_tmp = packed_data(ipack)
34733 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
34734 pack_tmp = ishft(pack_tmp, -40)
34735 idata = idata + 1
34736 data_tmp = ishft(pack_tmp, 20)
34737 ipack = ipack + 1
34738 pack_tmp = packed_data(ipack)
34739 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
34740 pack_tmp = ishft(pack_tmp, -20)
34741 idata = idata + 1
34742 data_tmp = iand(pack_tmp, mask_right(nbits))
34743 full_data(idata) = data_tmp
34744 pack_tmp = ishft(pack_tmp, -nbits)
34745 END DO
34746 IF (ndata_rep < ndata) THEN
34747 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
34748 END IF
34749 END SUBROUTINE bits2ints_44
34750
34751! **************************************************************************************************
34752!> \brief ...
34753!> \param Ndata ...
34754!> \param packed_data ...
34755!> \param full_data ...
34756! **************************************************************************************************
34757 SUBROUTINE ints2bits_45(Ndata, packed_data, full_data)
34758 INTEGER, INTENT(IN) :: Ndata
34759 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
34760 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
34761
34762 INTEGER, PARAMETER :: Nbits = 45
34763
34764 INTEGER :: idata, ipack, kdata, Ndata_rep
34765 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
34766
34767 idata = 0
34768 ipack = 0
34769 ndata_rep = (ndata/64)*64
34770 DO kdata = 1, ndata_rep, 64
34771 pack_tmp = 0
34772 idata = idata + 1
34773 data_tmp = full_data(idata)
34774 data_tmp = ishft(data_tmp, 19)
34775 pack_tmp = ior(pack_tmp, data_tmp)
34776 pack_tmp = ishft(pack_tmp, -19)
34777 idata = idata + 1
34778 data_tmp = full_data(idata)
34779 data_tmp = ishft(data_tmp, 19)
34780 data_tmp = iand(data_tmp, mask_left(19))
34781 pack_tmp = ior(pack_tmp, data_tmp)
34782 ipack = ipack + 1
34783 packed_data(ipack) = pack_tmp
34784 data_tmp = full_data(idata)
34785 pack_tmp = ishft(data_tmp, 38)
34786 pack_tmp = ishft(pack_tmp, -38)
34787 idata = idata + 1
34788 data_tmp = full_data(idata)
34789 data_tmp = ishft(data_tmp, 19)
34790 data_tmp = iand(data_tmp, mask_left(38))
34791 pack_tmp = ior(pack_tmp, data_tmp)
34792 ipack = ipack + 1
34793 packed_data(ipack) = pack_tmp
34794 data_tmp = full_data(idata)
34795 pack_tmp = ishft(data_tmp, 57)
34796 pack_tmp = ishft(pack_tmp, -45)
34797 idata = idata + 1
34798 data_tmp = full_data(idata)
34799 data_tmp = ishft(data_tmp, 19)
34800 pack_tmp = ior(pack_tmp, data_tmp)
34801 pack_tmp = ishft(pack_tmp, -12)
34802 idata = idata + 1
34803 data_tmp = full_data(idata)
34804 data_tmp = ishft(data_tmp, 19)
34805 data_tmp = iand(data_tmp, mask_left(12))
34806 pack_tmp = ior(pack_tmp, data_tmp)
34807 ipack = ipack + 1
34808 packed_data(ipack) = pack_tmp
34809 data_tmp = full_data(idata)
34810 pack_tmp = ishft(data_tmp, 31)
34811 pack_tmp = ishft(pack_tmp, -31)
34812 idata = idata + 1
34813 data_tmp = full_data(idata)
34814 data_tmp = ishft(data_tmp, 19)
34815 data_tmp = iand(data_tmp, mask_left(31))
34816 pack_tmp = ior(pack_tmp, data_tmp)
34817 ipack = ipack + 1
34818 packed_data(ipack) = pack_tmp
34819 data_tmp = full_data(idata)
34820 pack_tmp = ishft(data_tmp, 50)
34821 pack_tmp = ishft(pack_tmp, -45)
34822 idata = idata + 1
34823 data_tmp = full_data(idata)
34824 data_tmp = ishft(data_tmp, 19)
34825 pack_tmp = ior(pack_tmp, data_tmp)
34826 pack_tmp = ishft(pack_tmp, -5)
34827 idata = idata + 1
34828 data_tmp = full_data(idata)
34829 data_tmp = ishft(data_tmp, 19)
34830 data_tmp = iand(data_tmp, mask_left(5))
34831 pack_tmp = ior(pack_tmp, data_tmp)
34832 ipack = ipack + 1
34833 packed_data(ipack) = pack_tmp
34834 data_tmp = full_data(idata)
34835 pack_tmp = ishft(data_tmp, 24)
34836 pack_tmp = ishft(pack_tmp, -24)
34837 idata = idata + 1
34838 data_tmp = full_data(idata)
34839 data_tmp = ishft(data_tmp, 19)
34840 data_tmp = iand(data_tmp, mask_left(24))
34841 pack_tmp = ior(pack_tmp, data_tmp)
34842 ipack = ipack + 1
34843 packed_data(ipack) = pack_tmp
34844 data_tmp = full_data(idata)
34845 pack_tmp = ishft(data_tmp, 43)
34846 pack_tmp = ishft(pack_tmp, -43)
34847 idata = idata + 1
34848 data_tmp = full_data(idata)
34849 data_tmp = ishft(data_tmp, 19)
34850 data_tmp = iand(data_tmp, mask_left(43))
34851 pack_tmp = ior(pack_tmp, data_tmp)
34852 ipack = ipack + 1
34853 packed_data(ipack) = pack_tmp
34854 data_tmp = full_data(idata)
34855 pack_tmp = ishft(data_tmp, 62)
34856 pack_tmp = ishft(pack_tmp, -45)
34857 idata = idata + 1
34858 data_tmp = full_data(idata)
34859 data_tmp = ishft(data_tmp, 19)
34860 pack_tmp = ior(pack_tmp, data_tmp)
34861 pack_tmp = ishft(pack_tmp, -17)
34862 idata = idata + 1
34863 data_tmp = full_data(idata)
34864 data_tmp = ishft(data_tmp, 19)
34865 data_tmp = iand(data_tmp, mask_left(17))
34866 pack_tmp = ior(pack_tmp, data_tmp)
34867 ipack = ipack + 1
34868 packed_data(ipack) = pack_tmp
34869 data_tmp = full_data(idata)
34870 pack_tmp = ishft(data_tmp, 36)
34871 pack_tmp = ishft(pack_tmp, -36)
34872 idata = idata + 1
34873 data_tmp = full_data(idata)
34874 data_tmp = ishft(data_tmp, 19)
34875 data_tmp = iand(data_tmp, mask_left(36))
34876 pack_tmp = ior(pack_tmp, data_tmp)
34877 ipack = ipack + 1
34878 packed_data(ipack) = pack_tmp
34879 data_tmp = full_data(idata)
34880 pack_tmp = ishft(data_tmp, 55)
34881 pack_tmp = ishft(pack_tmp, -45)
34882 idata = idata + 1
34883 data_tmp = full_data(idata)
34884 data_tmp = ishft(data_tmp, 19)
34885 pack_tmp = ior(pack_tmp, data_tmp)
34886 pack_tmp = ishft(pack_tmp, -10)
34887 idata = idata + 1
34888 data_tmp = full_data(idata)
34889 data_tmp = ishft(data_tmp, 19)
34890 data_tmp = iand(data_tmp, mask_left(10))
34891 pack_tmp = ior(pack_tmp, data_tmp)
34892 ipack = ipack + 1
34893 packed_data(ipack) = pack_tmp
34894 data_tmp = full_data(idata)
34895 pack_tmp = ishft(data_tmp, 29)
34896 pack_tmp = ishft(pack_tmp, -29)
34897 idata = idata + 1
34898 data_tmp = full_data(idata)
34899 data_tmp = ishft(data_tmp, 19)
34900 data_tmp = iand(data_tmp, mask_left(29))
34901 pack_tmp = ior(pack_tmp, data_tmp)
34902 ipack = ipack + 1
34903 packed_data(ipack) = pack_tmp
34904 data_tmp = full_data(idata)
34905 pack_tmp = ishft(data_tmp, 48)
34906 pack_tmp = ishft(pack_tmp, -45)
34907 idata = idata + 1
34908 data_tmp = full_data(idata)
34909 data_tmp = ishft(data_tmp, 19)
34910 pack_tmp = ior(pack_tmp, data_tmp)
34911 pack_tmp = ishft(pack_tmp, -3)
34912 idata = idata + 1
34913 data_tmp = full_data(idata)
34914 data_tmp = ishft(data_tmp, 19)
34915 data_tmp = iand(data_tmp, mask_left(3))
34916 pack_tmp = ior(pack_tmp, data_tmp)
34917 ipack = ipack + 1
34918 packed_data(ipack) = pack_tmp
34919 data_tmp = full_data(idata)
34920 pack_tmp = ishft(data_tmp, 22)
34921 pack_tmp = ishft(pack_tmp, -22)
34922 idata = idata + 1
34923 data_tmp = full_data(idata)
34924 data_tmp = ishft(data_tmp, 19)
34925 data_tmp = iand(data_tmp, mask_left(22))
34926 pack_tmp = ior(pack_tmp, data_tmp)
34927 ipack = ipack + 1
34928 packed_data(ipack) = pack_tmp
34929 data_tmp = full_data(idata)
34930 pack_tmp = ishft(data_tmp, 41)
34931 pack_tmp = ishft(pack_tmp, -41)
34932 idata = idata + 1
34933 data_tmp = full_data(idata)
34934 data_tmp = ishft(data_tmp, 19)
34935 data_tmp = iand(data_tmp, mask_left(41))
34936 pack_tmp = ior(pack_tmp, data_tmp)
34937 ipack = ipack + 1
34938 packed_data(ipack) = pack_tmp
34939 data_tmp = full_data(idata)
34940 pack_tmp = ishft(data_tmp, 60)
34941 pack_tmp = ishft(pack_tmp, -45)
34942 idata = idata + 1
34943 data_tmp = full_data(idata)
34944 data_tmp = ishft(data_tmp, 19)
34945 pack_tmp = ior(pack_tmp, data_tmp)
34946 pack_tmp = ishft(pack_tmp, -15)
34947 idata = idata + 1
34948 data_tmp = full_data(idata)
34949 data_tmp = ishft(data_tmp, 19)
34950 data_tmp = iand(data_tmp, mask_left(15))
34951 pack_tmp = ior(pack_tmp, data_tmp)
34952 ipack = ipack + 1
34953 packed_data(ipack) = pack_tmp
34954 data_tmp = full_data(idata)
34955 pack_tmp = ishft(data_tmp, 34)
34956 pack_tmp = ishft(pack_tmp, -34)
34957 idata = idata + 1
34958 data_tmp = full_data(idata)
34959 data_tmp = ishft(data_tmp, 19)
34960 data_tmp = iand(data_tmp, mask_left(34))
34961 pack_tmp = ior(pack_tmp, data_tmp)
34962 ipack = ipack + 1
34963 packed_data(ipack) = pack_tmp
34964 data_tmp = full_data(idata)
34965 pack_tmp = ishft(data_tmp, 53)
34966 pack_tmp = ishft(pack_tmp, -45)
34967 idata = idata + 1
34968 data_tmp = full_data(idata)
34969 data_tmp = ishft(data_tmp, 19)
34970 pack_tmp = ior(pack_tmp, data_tmp)
34971 pack_tmp = ishft(pack_tmp, -8)
34972 idata = idata + 1
34973 data_tmp = full_data(idata)
34974 data_tmp = ishft(data_tmp, 19)
34975 data_tmp = iand(data_tmp, mask_left(8))
34976 pack_tmp = ior(pack_tmp, data_tmp)
34977 ipack = ipack + 1
34978 packed_data(ipack) = pack_tmp
34979 data_tmp = full_data(idata)
34980 pack_tmp = ishft(data_tmp, 27)
34981 pack_tmp = ishft(pack_tmp, -27)
34982 idata = idata + 1
34983 data_tmp = full_data(idata)
34984 data_tmp = ishft(data_tmp, 19)
34985 data_tmp = iand(data_tmp, mask_left(27))
34986 pack_tmp = ior(pack_tmp, data_tmp)
34987 ipack = ipack + 1
34988 packed_data(ipack) = pack_tmp
34989 data_tmp = full_data(idata)
34990 pack_tmp = ishft(data_tmp, 46)
34991 pack_tmp = ishft(pack_tmp, -45)
34992 idata = idata + 1
34993 data_tmp = full_data(idata)
34994 data_tmp = ishft(data_tmp, 19)
34995 pack_tmp = ior(pack_tmp, data_tmp)
34996 pack_tmp = ishft(pack_tmp, -1)
34997 idata = idata + 1
34998 data_tmp = full_data(idata)
34999 data_tmp = ishft(data_tmp, 19)
35000 data_tmp = iand(data_tmp, mask_left(1))
35001 pack_tmp = ior(pack_tmp, data_tmp)
35002 ipack = ipack + 1
35003 packed_data(ipack) = pack_tmp
35004 data_tmp = full_data(idata)
35005 pack_tmp = ishft(data_tmp, 20)
35006 pack_tmp = ishft(pack_tmp, -20)
35007 idata = idata + 1
35008 data_tmp = full_data(idata)
35009 data_tmp = ishft(data_tmp, 19)
35010 data_tmp = iand(data_tmp, mask_left(20))
35011 pack_tmp = ior(pack_tmp, data_tmp)
35012 ipack = ipack + 1
35013 packed_data(ipack) = pack_tmp
35014 data_tmp = full_data(idata)
35015 pack_tmp = ishft(data_tmp, 39)
35016 pack_tmp = ishft(pack_tmp, -39)
35017 idata = idata + 1
35018 data_tmp = full_data(idata)
35019 data_tmp = ishft(data_tmp, 19)
35020 data_tmp = iand(data_tmp, mask_left(39))
35021 pack_tmp = ior(pack_tmp, data_tmp)
35022 ipack = ipack + 1
35023 packed_data(ipack) = pack_tmp
35024 data_tmp = full_data(idata)
35025 pack_tmp = ishft(data_tmp, 58)
35026 pack_tmp = ishft(pack_tmp, -45)
35027 idata = idata + 1
35028 data_tmp = full_data(idata)
35029 data_tmp = ishft(data_tmp, 19)
35030 pack_tmp = ior(pack_tmp, data_tmp)
35031 pack_tmp = ishft(pack_tmp, -13)
35032 idata = idata + 1
35033 data_tmp = full_data(idata)
35034 data_tmp = ishft(data_tmp, 19)
35035 data_tmp = iand(data_tmp, mask_left(13))
35036 pack_tmp = ior(pack_tmp, data_tmp)
35037 ipack = ipack + 1
35038 packed_data(ipack) = pack_tmp
35039 data_tmp = full_data(idata)
35040 pack_tmp = ishft(data_tmp, 32)
35041 pack_tmp = ishft(pack_tmp, -32)
35042 idata = idata + 1
35043 data_tmp = full_data(idata)
35044 data_tmp = ishft(data_tmp, 19)
35045 data_tmp = iand(data_tmp, mask_left(32))
35046 pack_tmp = ior(pack_tmp, data_tmp)
35047 ipack = ipack + 1
35048 packed_data(ipack) = pack_tmp
35049 data_tmp = full_data(idata)
35050 pack_tmp = ishft(data_tmp, 51)
35051 pack_tmp = ishft(pack_tmp, -45)
35052 idata = idata + 1
35053 data_tmp = full_data(idata)
35054 data_tmp = ishft(data_tmp, 19)
35055 pack_tmp = ior(pack_tmp, data_tmp)
35056 pack_tmp = ishft(pack_tmp, -6)
35057 idata = idata + 1
35058 data_tmp = full_data(idata)
35059 data_tmp = ishft(data_tmp, 19)
35060 data_tmp = iand(data_tmp, mask_left(6))
35061 pack_tmp = ior(pack_tmp, data_tmp)
35062 ipack = ipack + 1
35063 packed_data(ipack) = pack_tmp
35064 data_tmp = full_data(idata)
35065 pack_tmp = ishft(data_tmp, 25)
35066 pack_tmp = ishft(pack_tmp, -25)
35067 idata = idata + 1
35068 data_tmp = full_data(idata)
35069 data_tmp = ishft(data_tmp, 19)
35070 data_tmp = iand(data_tmp, mask_left(25))
35071 pack_tmp = ior(pack_tmp, data_tmp)
35072 ipack = ipack + 1
35073 packed_data(ipack) = pack_tmp
35074 data_tmp = full_data(idata)
35075 pack_tmp = ishft(data_tmp, 44)
35076 pack_tmp = ishft(pack_tmp, -44)
35077 idata = idata + 1
35078 data_tmp = full_data(idata)
35079 data_tmp = ishft(data_tmp, 19)
35080 data_tmp = iand(data_tmp, mask_left(44))
35081 pack_tmp = ior(pack_tmp, data_tmp)
35082 ipack = ipack + 1
35083 packed_data(ipack) = pack_tmp
35084 data_tmp = full_data(idata)
35085 pack_tmp = ishft(data_tmp, 63)
35086 pack_tmp = ishft(pack_tmp, -45)
35087 idata = idata + 1
35088 data_tmp = full_data(idata)
35089 data_tmp = ishft(data_tmp, 19)
35090 pack_tmp = ior(pack_tmp, data_tmp)
35091 pack_tmp = ishft(pack_tmp, -18)
35092 idata = idata + 1
35093 data_tmp = full_data(idata)
35094 data_tmp = ishft(data_tmp, 19)
35095 data_tmp = iand(data_tmp, mask_left(18))
35096 pack_tmp = ior(pack_tmp, data_tmp)
35097 ipack = ipack + 1
35098 packed_data(ipack) = pack_tmp
35099 data_tmp = full_data(idata)
35100 pack_tmp = ishft(data_tmp, 37)
35101 pack_tmp = ishft(pack_tmp, -37)
35102 idata = idata + 1
35103 data_tmp = full_data(idata)
35104 data_tmp = ishft(data_tmp, 19)
35105 data_tmp = iand(data_tmp, mask_left(37))
35106 pack_tmp = ior(pack_tmp, data_tmp)
35107 ipack = ipack + 1
35108 packed_data(ipack) = pack_tmp
35109 data_tmp = full_data(idata)
35110 pack_tmp = ishft(data_tmp, 56)
35111 pack_tmp = ishft(pack_tmp, -45)
35112 idata = idata + 1
35113 data_tmp = full_data(idata)
35114 data_tmp = ishft(data_tmp, 19)
35115 pack_tmp = ior(pack_tmp, data_tmp)
35116 pack_tmp = ishft(pack_tmp, -11)
35117 idata = idata + 1
35118 data_tmp = full_data(idata)
35119 data_tmp = ishft(data_tmp, 19)
35120 data_tmp = iand(data_tmp, mask_left(11))
35121 pack_tmp = ior(pack_tmp, data_tmp)
35122 ipack = ipack + 1
35123 packed_data(ipack) = pack_tmp
35124 data_tmp = full_data(idata)
35125 pack_tmp = ishft(data_tmp, 30)
35126 pack_tmp = ishft(pack_tmp, -30)
35127 idata = idata + 1
35128 data_tmp = full_data(idata)
35129 data_tmp = ishft(data_tmp, 19)
35130 data_tmp = iand(data_tmp, mask_left(30))
35131 pack_tmp = ior(pack_tmp, data_tmp)
35132 ipack = ipack + 1
35133 packed_data(ipack) = pack_tmp
35134 data_tmp = full_data(idata)
35135 pack_tmp = ishft(data_tmp, 49)
35136 pack_tmp = ishft(pack_tmp, -45)
35137 idata = idata + 1
35138 data_tmp = full_data(idata)
35139 data_tmp = ishft(data_tmp, 19)
35140 pack_tmp = ior(pack_tmp, data_tmp)
35141 pack_tmp = ishft(pack_tmp, -4)
35142 idata = idata + 1
35143 data_tmp = full_data(idata)
35144 data_tmp = ishft(data_tmp, 19)
35145 data_tmp = iand(data_tmp, mask_left(4))
35146 pack_tmp = ior(pack_tmp, data_tmp)
35147 ipack = ipack + 1
35148 packed_data(ipack) = pack_tmp
35149 data_tmp = full_data(idata)
35150 pack_tmp = ishft(data_tmp, 23)
35151 pack_tmp = ishft(pack_tmp, -23)
35152 idata = idata + 1
35153 data_tmp = full_data(idata)
35154 data_tmp = ishft(data_tmp, 19)
35155 data_tmp = iand(data_tmp, mask_left(23))
35156 pack_tmp = ior(pack_tmp, data_tmp)
35157 ipack = ipack + 1
35158 packed_data(ipack) = pack_tmp
35159 data_tmp = full_data(idata)
35160 pack_tmp = ishft(data_tmp, 42)
35161 pack_tmp = ishft(pack_tmp, -42)
35162 idata = idata + 1
35163 data_tmp = full_data(idata)
35164 data_tmp = ishft(data_tmp, 19)
35165 data_tmp = iand(data_tmp, mask_left(42))
35166 pack_tmp = ior(pack_tmp, data_tmp)
35167 ipack = ipack + 1
35168 packed_data(ipack) = pack_tmp
35169 data_tmp = full_data(idata)
35170 pack_tmp = ishft(data_tmp, 61)
35171 pack_tmp = ishft(pack_tmp, -45)
35172 idata = idata + 1
35173 data_tmp = full_data(idata)
35174 data_tmp = ishft(data_tmp, 19)
35175 pack_tmp = ior(pack_tmp, data_tmp)
35176 pack_tmp = ishft(pack_tmp, -16)
35177 idata = idata + 1
35178 data_tmp = full_data(idata)
35179 data_tmp = ishft(data_tmp, 19)
35180 data_tmp = iand(data_tmp, mask_left(16))
35181 pack_tmp = ior(pack_tmp, data_tmp)
35182 ipack = ipack + 1
35183 packed_data(ipack) = pack_tmp
35184 data_tmp = full_data(idata)
35185 pack_tmp = ishft(data_tmp, 35)
35186 pack_tmp = ishft(pack_tmp, -35)
35187 idata = idata + 1
35188 data_tmp = full_data(idata)
35189 data_tmp = ishft(data_tmp, 19)
35190 data_tmp = iand(data_tmp, mask_left(35))
35191 pack_tmp = ior(pack_tmp, data_tmp)
35192 ipack = ipack + 1
35193 packed_data(ipack) = pack_tmp
35194 data_tmp = full_data(idata)
35195 pack_tmp = ishft(data_tmp, 54)
35196 pack_tmp = ishft(pack_tmp, -45)
35197 idata = idata + 1
35198 data_tmp = full_data(idata)
35199 data_tmp = ishft(data_tmp, 19)
35200 pack_tmp = ior(pack_tmp, data_tmp)
35201 pack_tmp = ishft(pack_tmp, -9)
35202 idata = idata + 1
35203 data_tmp = full_data(idata)
35204 data_tmp = ishft(data_tmp, 19)
35205 data_tmp = iand(data_tmp, mask_left(9))
35206 pack_tmp = ior(pack_tmp, data_tmp)
35207 ipack = ipack + 1
35208 packed_data(ipack) = pack_tmp
35209 data_tmp = full_data(idata)
35210 pack_tmp = ishft(data_tmp, 28)
35211 pack_tmp = ishft(pack_tmp, -28)
35212 idata = idata + 1
35213 data_tmp = full_data(idata)
35214 data_tmp = ishft(data_tmp, 19)
35215 data_tmp = iand(data_tmp, mask_left(28))
35216 pack_tmp = ior(pack_tmp, data_tmp)
35217 ipack = ipack + 1
35218 packed_data(ipack) = pack_tmp
35219 data_tmp = full_data(idata)
35220 pack_tmp = ishft(data_tmp, 47)
35221 pack_tmp = ishft(pack_tmp, -45)
35222 idata = idata + 1
35223 data_tmp = full_data(idata)
35224 data_tmp = ishft(data_tmp, 19)
35225 pack_tmp = ior(pack_tmp, data_tmp)
35226 pack_tmp = ishft(pack_tmp, -2)
35227 idata = idata + 1
35228 data_tmp = full_data(idata)
35229 data_tmp = ishft(data_tmp, 19)
35230 data_tmp = iand(data_tmp, mask_left(2))
35231 pack_tmp = ior(pack_tmp, data_tmp)
35232 ipack = ipack + 1
35233 packed_data(ipack) = pack_tmp
35234 data_tmp = full_data(idata)
35235 pack_tmp = ishft(data_tmp, 21)
35236 pack_tmp = ishft(pack_tmp, -21)
35237 idata = idata + 1
35238 data_tmp = full_data(idata)
35239 data_tmp = ishft(data_tmp, 19)
35240 data_tmp = iand(data_tmp, mask_left(21))
35241 pack_tmp = ior(pack_tmp, data_tmp)
35242 ipack = ipack + 1
35243 packed_data(ipack) = pack_tmp
35244 data_tmp = full_data(idata)
35245 pack_tmp = ishft(data_tmp, 40)
35246 pack_tmp = ishft(pack_tmp, -40)
35247 idata = idata + 1
35248 data_tmp = full_data(idata)
35249 data_tmp = ishft(data_tmp, 19)
35250 data_tmp = iand(data_tmp, mask_left(40))
35251 pack_tmp = ior(pack_tmp, data_tmp)
35252 ipack = ipack + 1
35253 packed_data(ipack) = pack_tmp
35254 data_tmp = full_data(idata)
35255 pack_tmp = ishft(data_tmp, 59)
35256 pack_tmp = ishft(pack_tmp, -45)
35257 idata = idata + 1
35258 data_tmp = full_data(idata)
35259 data_tmp = ishft(data_tmp, 19)
35260 pack_tmp = ior(pack_tmp, data_tmp)
35261 pack_tmp = ishft(pack_tmp, -14)
35262 idata = idata + 1
35263 data_tmp = full_data(idata)
35264 data_tmp = ishft(data_tmp, 19)
35265 data_tmp = iand(data_tmp, mask_left(14))
35266 pack_tmp = ior(pack_tmp, data_tmp)
35267 ipack = ipack + 1
35268 packed_data(ipack) = pack_tmp
35269 data_tmp = full_data(idata)
35270 pack_tmp = ishft(data_tmp, 33)
35271 pack_tmp = ishft(pack_tmp, -33)
35272 idata = idata + 1
35273 data_tmp = full_data(idata)
35274 data_tmp = ishft(data_tmp, 19)
35275 data_tmp = iand(data_tmp, mask_left(33))
35276 pack_tmp = ior(pack_tmp, data_tmp)
35277 ipack = ipack + 1
35278 packed_data(ipack) = pack_tmp
35279 data_tmp = full_data(idata)
35280 pack_tmp = ishft(data_tmp, 52)
35281 pack_tmp = ishft(pack_tmp, -45)
35282 idata = idata + 1
35283 data_tmp = full_data(idata)
35284 data_tmp = ishft(data_tmp, 19)
35285 pack_tmp = ior(pack_tmp, data_tmp)
35286 pack_tmp = ishft(pack_tmp, -7)
35287 idata = idata + 1
35288 data_tmp = full_data(idata)
35289 data_tmp = ishft(data_tmp, 19)
35290 data_tmp = iand(data_tmp, mask_left(7))
35291 pack_tmp = ior(pack_tmp, data_tmp)
35292 ipack = ipack + 1
35293 packed_data(ipack) = pack_tmp
35294 data_tmp = full_data(idata)
35295 pack_tmp = ishft(data_tmp, 26)
35296 pack_tmp = ishft(pack_tmp, -26)
35297 idata = idata + 1
35298 data_tmp = full_data(idata)
35299 data_tmp = ishft(data_tmp, 19)
35300 data_tmp = iand(data_tmp, mask_left(26))
35301 pack_tmp = ior(pack_tmp, data_tmp)
35302 ipack = ipack + 1
35303 packed_data(ipack) = pack_tmp
35304 data_tmp = full_data(idata)
35305 pack_tmp = ishft(data_tmp, 45)
35306 pack_tmp = ishft(pack_tmp, -45)
35307 idata = idata + 1
35308 data_tmp = full_data(idata)
35309 data_tmp = ishft(data_tmp, 19)
35310 pack_tmp = ior(pack_tmp, data_tmp)
35311 pack_tmp = ishft(pack_tmp, 0)
35312 pack_tmp = ishft(pack_tmp, 0)
35313 ipack = ipack + 1
35314 packed_data(ipack) = pack_tmp
35315 END DO
35316 IF (ndata_rep < ndata) THEN
35317 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
35318 END IF
35319 END SUBROUTINE ints2bits_45
35320
35321! **************************************************************************************************
35322!> \brief ...
35323!> \param Ndata ...
35324!> \param packed_data ...
35325!> \param full_data ...
35326! **************************************************************************************************
35327 SUBROUTINE bits2ints_45(Ndata, packed_data, full_data)
35328 INTEGER, INTENT(IN) :: Ndata
35329 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
35330 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
35331
35332 INTEGER, PARAMETER :: Nbits = 45
35333
35334 INTEGER :: idata, ipack, kdata, Ndata_rep
35335 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
35336
35337 ipack = 0
35338 idata = 0
35339 pack_tmp = 0
35340 ndata_rep = (ndata/64)*64
35341 DO kdata = 1, ndata_rep, 64
35342 idata = idata + 1
35343 data_tmp = ishft(pack_tmp, 45)
35344 ipack = ipack + 1
35345 pack_tmp = packed_data(ipack)
35346 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(45)))
35347 pack_tmp = ishft(pack_tmp, -45)
35348 idata = idata + 1
35349 data_tmp = ishft(pack_tmp, 26)
35350 ipack = ipack + 1
35351 pack_tmp = packed_data(ipack)
35352 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
35353 pack_tmp = ishft(pack_tmp, -26)
35354 idata = idata + 1
35355 data_tmp = ishft(pack_tmp, 7)
35356 ipack = ipack + 1
35357 pack_tmp = packed_data(ipack)
35358 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
35359 pack_tmp = ishft(pack_tmp, -7)
35360 idata = idata + 1
35361 data_tmp = iand(pack_tmp, mask_right(nbits))
35362 full_data(idata) = data_tmp
35363 pack_tmp = ishft(pack_tmp, -nbits)
35364 idata = idata + 1
35365 data_tmp = ishft(pack_tmp, 33)
35366 ipack = ipack + 1
35367 pack_tmp = packed_data(ipack)
35368 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
35369 pack_tmp = ishft(pack_tmp, -33)
35370 idata = idata + 1
35371 data_tmp = ishft(pack_tmp, 14)
35372 ipack = ipack + 1
35373 pack_tmp = packed_data(ipack)
35374 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
35375 pack_tmp = ishft(pack_tmp, -14)
35376 idata = idata + 1
35377 data_tmp = iand(pack_tmp, mask_right(nbits))
35378 full_data(idata) = data_tmp
35379 pack_tmp = ishft(pack_tmp, -nbits)
35380 idata = idata + 1
35381 data_tmp = ishft(pack_tmp, 40)
35382 ipack = ipack + 1
35383 pack_tmp = packed_data(ipack)
35384 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
35385 pack_tmp = ishft(pack_tmp, -40)
35386 idata = idata + 1
35387 data_tmp = ishft(pack_tmp, 21)
35388 ipack = ipack + 1
35389 pack_tmp = packed_data(ipack)
35390 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
35391 pack_tmp = ishft(pack_tmp, -21)
35392 idata = idata + 1
35393 data_tmp = ishft(pack_tmp, 2)
35394 ipack = ipack + 1
35395 pack_tmp = packed_data(ipack)
35396 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
35397 pack_tmp = ishft(pack_tmp, -2)
35398 idata = idata + 1
35399 data_tmp = iand(pack_tmp, mask_right(nbits))
35400 full_data(idata) = data_tmp
35401 pack_tmp = ishft(pack_tmp, -nbits)
35402 idata = idata + 1
35403 data_tmp = ishft(pack_tmp, 28)
35404 ipack = ipack + 1
35405 pack_tmp = packed_data(ipack)
35406 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
35407 pack_tmp = ishft(pack_tmp, -28)
35408 idata = idata + 1
35409 data_tmp = ishft(pack_tmp, 9)
35410 ipack = ipack + 1
35411 pack_tmp = packed_data(ipack)
35412 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
35413 pack_tmp = ishft(pack_tmp, -9)
35414 idata = idata + 1
35415 data_tmp = iand(pack_tmp, mask_right(nbits))
35416 full_data(idata) = data_tmp
35417 pack_tmp = ishft(pack_tmp, -nbits)
35418 idata = idata + 1
35419 data_tmp = ishft(pack_tmp, 35)
35420 ipack = ipack + 1
35421 pack_tmp = packed_data(ipack)
35422 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
35423 pack_tmp = ishft(pack_tmp, -35)
35424 idata = idata + 1
35425 data_tmp = ishft(pack_tmp, 16)
35426 ipack = ipack + 1
35427 pack_tmp = packed_data(ipack)
35428 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
35429 pack_tmp = ishft(pack_tmp, -16)
35430 idata = idata + 1
35431 data_tmp = iand(pack_tmp, mask_right(nbits))
35432 full_data(idata) = data_tmp
35433 pack_tmp = ishft(pack_tmp, -nbits)
35434 idata = idata + 1
35435 data_tmp = ishft(pack_tmp, 42)
35436 ipack = ipack + 1
35437 pack_tmp = packed_data(ipack)
35438 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
35439 pack_tmp = ishft(pack_tmp, -42)
35440 idata = idata + 1
35441 data_tmp = ishft(pack_tmp, 23)
35442 ipack = ipack + 1
35443 pack_tmp = packed_data(ipack)
35444 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
35445 pack_tmp = ishft(pack_tmp, -23)
35446 idata = idata + 1
35447 data_tmp = ishft(pack_tmp, 4)
35448 ipack = ipack + 1
35449 pack_tmp = packed_data(ipack)
35450 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
35451 pack_tmp = ishft(pack_tmp, -4)
35452 idata = idata + 1
35453 data_tmp = iand(pack_tmp, mask_right(nbits))
35454 full_data(idata) = data_tmp
35455 pack_tmp = ishft(pack_tmp, -nbits)
35456 idata = idata + 1
35457 data_tmp = ishft(pack_tmp, 30)
35458 ipack = ipack + 1
35459 pack_tmp = packed_data(ipack)
35460 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
35461 pack_tmp = ishft(pack_tmp, -30)
35462 idata = idata + 1
35463 data_tmp = ishft(pack_tmp, 11)
35464 ipack = ipack + 1
35465 pack_tmp = packed_data(ipack)
35466 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
35467 pack_tmp = ishft(pack_tmp, -11)
35468 idata = idata + 1
35469 data_tmp = iand(pack_tmp, mask_right(nbits))
35470 full_data(idata) = data_tmp
35471 pack_tmp = ishft(pack_tmp, -nbits)
35472 idata = idata + 1
35473 data_tmp = ishft(pack_tmp, 37)
35474 ipack = ipack + 1
35475 pack_tmp = packed_data(ipack)
35476 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
35477 pack_tmp = ishft(pack_tmp, -37)
35478 idata = idata + 1
35479 data_tmp = ishft(pack_tmp, 18)
35480 ipack = ipack + 1
35481 pack_tmp = packed_data(ipack)
35482 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
35483 pack_tmp = ishft(pack_tmp, -18)
35484 idata = idata + 1
35485 data_tmp = iand(pack_tmp, mask_right(nbits))
35486 full_data(idata) = data_tmp
35487 pack_tmp = ishft(pack_tmp, -nbits)
35488 idata = idata + 1
35489 data_tmp = ishft(pack_tmp, 44)
35490 ipack = ipack + 1
35491 pack_tmp = packed_data(ipack)
35492 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
35493 pack_tmp = ishft(pack_tmp, -44)
35494 idata = idata + 1
35495 data_tmp = ishft(pack_tmp, 25)
35496 ipack = ipack + 1
35497 pack_tmp = packed_data(ipack)
35498 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
35499 pack_tmp = ishft(pack_tmp, -25)
35500 idata = idata + 1
35501 data_tmp = ishft(pack_tmp, 6)
35502 ipack = ipack + 1
35503 pack_tmp = packed_data(ipack)
35504 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
35505 pack_tmp = ishft(pack_tmp, -6)
35506 idata = idata + 1
35507 data_tmp = iand(pack_tmp, mask_right(nbits))
35508 full_data(idata) = data_tmp
35509 pack_tmp = ishft(pack_tmp, -nbits)
35510 idata = idata + 1
35511 data_tmp = ishft(pack_tmp, 32)
35512 ipack = ipack + 1
35513 pack_tmp = packed_data(ipack)
35514 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
35515 pack_tmp = ishft(pack_tmp, -32)
35516 idata = idata + 1
35517 data_tmp = ishft(pack_tmp, 13)
35518 ipack = ipack + 1
35519 pack_tmp = packed_data(ipack)
35520 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
35521 pack_tmp = ishft(pack_tmp, -13)
35522 idata = idata + 1
35523 data_tmp = iand(pack_tmp, mask_right(nbits))
35524 full_data(idata) = data_tmp
35525 pack_tmp = ishft(pack_tmp, -nbits)
35526 idata = idata + 1
35527 data_tmp = ishft(pack_tmp, 39)
35528 ipack = ipack + 1
35529 pack_tmp = packed_data(ipack)
35530 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
35531 pack_tmp = ishft(pack_tmp, -39)
35532 idata = idata + 1
35533 data_tmp = ishft(pack_tmp, 20)
35534 ipack = ipack + 1
35535 pack_tmp = packed_data(ipack)
35536 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
35537 pack_tmp = ishft(pack_tmp, -20)
35538 idata = idata + 1
35539 data_tmp = ishft(pack_tmp, 1)
35540 ipack = ipack + 1
35541 pack_tmp = packed_data(ipack)
35542 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
35543 pack_tmp = ishft(pack_tmp, -1)
35544 idata = idata + 1
35545 data_tmp = iand(pack_tmp, mask_right(nbits))
35546 full_data(idata) = data_tmp
35547 pack_tmp = ishft(pack_tmp, -nbits)
35548 idata = idata + 1
35549 data_tmp = ishft(pack_tmp, 27)
35550 ipack = ipack + 1
35551 pack_tmp = packed_data(ipack)
35552 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
35553 pack_tmp = ishft(pack_tmp, -27)
35554 idata = idata + 1
35555 data_tmp = ishft(pack_tmp, 8)
35556 ipack = ipack + 1
35557 pack_tmp = packed_data(ipack)
35558 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
35559 pack_tmp = ishft(pack_tmp, -8)
35560 idata = idata + 1
35561 data_tmp = iand(pack_tmp, mask_right(nbits))
35562 full_data(idata) = data_tmp
35563 pack_tmp = ishft(pack_tmp, -nbits)
35564 idata = idata + 1
35565 data_tmp = ishft(pack_tmp, 34)
35566 ipack = ipack + 1
35567 pack_tmp = packed_data(ipack)
35568 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
35569 pack_tmp = ishft(pack_tmp, -34)
35570 idata = idata + 1
35571 data_tmp = ishft(pack_tmp, 15)
35572 ipack = ipack + 1
35573 pack_tmp = packed_data(ipack)
35574 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
35575 pack_tmp = ishft(pack_tmp, -15)
35576 idata = idata + 1
35577 data_tmp = iand(pack_tmp, mask_right(nbits))
35578 full_data(idata) = data_tmp
35579 pack_tmp = ishft(pack_tmp, -nbits)
35580 idata = idata + 1
35581 data_tmp = ishft(pack_tmp, 41)
35582 ipack = ipack + 1
35583 pack_tmp = packed_data(ipack)
35584 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(41)))
35585 pack_tmp = ishft(pack_tmp, -41)
35586 idata = idata + 1
35587 data_tmp = ishft(pack_tmp, 22)
35588 ipack = ipack + 1
35589 pack_tmp = packed_data(ipack)
35590 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
35591 pack_tmp = ishft(pack_tmp, -22)
35592 idata = idata + 1
35593 data_tmp = ishft(pack_tmp, 3)
35594 ipack = ipack + 1
35595 pack_tmp = packed_data(ipack)
35596 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
35597 pack_tmp = ishft(pack_tmp, -3)
35598 idata = idata + 1
35599 data_tmp = iand(pack_tmp, mask_right(nbits))
35600 full_data(idata) = data_tmp
35601 pack_tmp = ishft(pack_tmp, -nbits)
35602 idata = idata + 1
35603 data_tmp = ishft(pack_tmp, 29)
35604 ipack = ipack + 1
35605 pack_tmp = packed_data(ipack)
35606 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
35607 pack_tmp = ishft(pack_tmp, -29)
35608 idata = idata + 1
35609 data_tmp = ishft(pack_tmp, 10)
35610 ipack = ipack + 1
35611 pack_tmp = packed_data(ipack)
35612 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
35613 pack_tmp = ishft(pack_tmp, -10)
35614 idata = idata + 1
35615 data_tmp = iand(pack_tmp, mask_right(nbits))
35616 full_data(idata) = data_tmp
35617 pack_tmp = ishft(pack_tmp, -nbits)
35618 idata = idata + 1
35619 data_tmp = ishft(pack_tmp, 36)
35620 ipack = ipack + 1
35621 pack_tmp = packed_data(ipack)
35622 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
35623 pack_tmp = ishft(pack_tmp, -36)
35624 idata = idata + 1
35625 data_tmp = ishft(pack_tmp, 17)
35626 ipack = ipack + 1
35627 pack_tmp = packed_data(ipack)
35628 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
35629 pack_tmp = ishft(pack_tmp, -17)
35630 idata = idata + 1
35631 data_tmp = iand(pack_tmp, mask_right(nbits))
35632 full_data(idata) = data_tmp
35633 pack_tmp = ishft(pack_tmp, -nbits)
35634 idata = idata + 1
35635 data_tmp = ishft(pack_tmp, 43)
35636 ipack = ipack + 1
35637 pack_tmp = packed_data(ipack)
35638 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(43)))
35639 pack_tmp = ishft(pack_tmp, -43)
35640 idata = idata + 1
35641 data_tmp = ishft(pack_tmp, 24)
35642 ipack = ipack + 1
35643 pack_tmp = packed_data(ipack)
35644 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
35645 pack_tmp = ishft(pack_tmp, -24)
35646 idata = idata + 1
35647 data_tmp = ishft(pack_tmp, 5)
35648 ipack = ipack + 1
35649 pack_tmp = packed_data(ipack)
35650 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
35651 pack_tmp = ishft(pack_tmp, -5)
35652 idata = idata + 1
35653 data_tmp = iand(pack_tmp, mask_right(nbits))
35654 full_data(idata) = data_tmp
35655 pack_tmp = ishft(pack_tmp, -nbits)
35656 idata = idata + 1
35657 data_tmp = ishft(pack_tmp, 31)
35658 ipack = ipack + 1
35659 pack_tmp = packed_data(ipack)
35660 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
35661 pack_tmp = ishft(pack_tmp, -31)
35662 idata = idata + 1
35663 data_tmp = ishft(pack_tmp, 12)
35664 ipack = ipack + 1
35665 pack_tmp = packed_data(ipack)
35666 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
35667 pack_tmp = ishft(pack_tmp, -12)
35668 idata = idata + 1
35669 data_tmp = iand(pack_tmp, mask_right(nbits))
35670 full_data(idata) = data_tmp
35671 pack_tmp = ishft(pack_tmp, -nbits)
35672 idata = idata + 1
35673 data_tmp = ishft(pack_tmp, 38)
35674 ipack = ipack + 1
35675 pack_tmp = packed_data(ipack)
35676 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
35677 pack_tmp = ishft(pack_tmp, -38)
35678 idata = idata + 1
35679 data_tmp = ishft(pack_tmp, 19)
35680 ipack = ipack + 1
35681 pack_tmp = packed_data(ipack)
35682 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
35683 pack_tmp = ishft(pack_tmp, -19)
35684 idata = idata + 1
35685 data_tmp = iand(pack_tmp, mask_right(nbits))
35686 full_data(idata) = data_tmp
35687 pack_tmp = ishft(pack_tmp, -nbits)
35688 END DO
35689 IF (ndata_rep < ndata) THEN
35690 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
35691 END IF
35692 END SUBROUTINE bits2ints_45
35693
35694! **************************************************************************************************
35695!> \brief ...
35696!> \param Ndata ...
35697!> \param packed_data ...
35698!> \param full_data ...
35699! **************************************************************************************************
35700 SUBROUTINE ints2bits_46(Ndata, packed_data, full_data)
35701 INTEGER, INTENT(IN) :: Ndata
35702 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
35703 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
35704
35705 INTEGER, PARAMETER :: Nbits = 46
35706
35707 INTEGER :: idata, ipack, kdata, Ndata_rep
35708 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
35709
35710 idata = 0
35711 ipack = 0
35712 ndata_rep = (ndata/64)*64
35713 DO kdata = 1, ndata_rep, 64
35714 pack_tmp = 0
35715 idata = idata + 1
35716 data_tmp = full_data(idata)
35717 data_tmp = ishft(data_tmp, 18)
35718 pack_tmp = ior(pack_tmp, data_tmp)
35719 pack_tmp = ishft(pack_tmp, -18)
35720 idata = idata + 1
35721 data_tmp = full_data(idata)
35722 data_tmp = ishft(data_tmp, 18)
35723 data_tmp = iand(data_tmp, mask_left(18))
35724 pack_tmp = ior(pack_tmp, data_tmp)
35725 ipack = ipack + 1
35726 packed_data(ipack) = pack_tmp
35727 data_tmp = full_data(idata)
35728 pack_tmp = ishft(data_tmp, 36)
35729 pack_tmp = ishft(pack_tmp, -36)
35730 idata = idata + 1
35731 data_tmp = full_data(idata)
35732 data_tmp = ishft(data_tmp, 18)
35733 data_tmp = iand(data_tmp, mask_left(36))
35734 pack_tmp = ior(pack_tmp, data_tmp)
35735 ipack = ipack + 1
35736 packed_data(ipack) = pack_tmp
35737 data_tmp = full_data(idata)
35738 pack_tmp = ishft(data_tmp, 54)
35739 pack_tmp = ishft(pack_tmp, -46)
35740 idata = idata + 1
35741 data_tmp = full_data(idata)
35742 data_tmp = ishft(data_tmp, 18)
35743 pack_tmp = ior(pack_tmp, data_tmp)
35744 pack_tmp = ishft(pack_tmp, -8)
35745 idata = idata + 1
35746 data_tmp = full_data(idata)
35747 data_tmp = ishft(data_tmp, 18)
35748 data_tmp = iand(data_tmp, mask_left(8))
35749 pack_tmp = ior(pack_tmp, data_tmp)
35750 ipack = ipack + 1
35751 packed_data(ipack) = pack_tmp
35752 data_tmp = full_data(idata)
35753 pack_tmp = ishft(data_tmp, 26)
35754 pack_tmp = ishft(pack_tmp, -26)
35755 idata = idata + 1
35756 data_tmp = full_data(idata)
35757 data_tmp = ishft(data_tmp, 18)
35758 data_tmp = iand(data_tmp, mask_left(26))
35759 pack_tmp = ior(pack_tmp, data_tmp)
35760 ipack = ipack + 1
35761 packed_data(ipack) = pack_tmp
35762 data_tmp = full_data(idata)
35763 pack_tmp = ishft(data_tmp, 44)
35764 pack_tmp = ishft(pack_tmp, -44)
35765 idata = idata + 1
35766 data_tmp = full_data(idata)
35767 data_tmp = ishft(data_tmp, 18)
35768 data_tmp = iand(data_tmp, mask_left(44))
35769 pack_tmp = ior(pack_tmp, data_tmp)
35770 ipack = ipack + 1
35771 packed_data(ipack) = pack_tmp
35772 data_tmp = full_data(idata)
35773 pack_tmp = ishft(data_tmp, 62)
35774 pack_tmp = ishft(pack_tmp, -46)
35775 idata = idata + 1
35776 data_tmp = full_data(idata)
35777 data_tmp = ishft(data_tmp, 18)
35778 pack_tmp = ior(pack_tmp, data_tmp)
35779 pack_tmp = ishft(pack_tmp, -16)
35780 idata = idata + 1
35781 data_tmp = full_data(idata)
35782 data_tmp = ishft(data_tmp, 18)
35783 data_tmp = iand(data_tmp, mask_left(16))
35784 pack_tmp = ior(pack_tmp, data_tmp)
35785 ipack = ipack + 1
35786 packed_data(ipack) = pack_tmp
35787 data_tmp = full_data(idata)
35788 pack_tmp = ishft(data_tmp, 34)
35789 pack_tmp = ishft(pack_tmp, -34)
35790 idata = idata + 1
35791 data_tmp = full_data(idata)
35792 data_tmp = ishft(data_tmp, 18)
35793 data_tmp = iand(data_tmp, mask_left(34))
35794 pack_tmp = ior(pack_tmp, data_tmp)
35795 ipack = ipack + 1
35796 packed_data(ipack) = pack_tmp
35797 data_tmp = full_data(idata)
35798 pack_tmp = ishft(data_tmp, 52)
35799 pack_tmp = ishft(pack_tmp, -46)
35800 idata = idata + 1
35801 data_tmp = full_data(idata)
35802 data_tmp = ishft(data_tmp, 18)
35803 pack_tmp = ior(pack_tmp, data_tmp)
35804 pack_tmp = ishft(pack_tmp, -6)
35805 idata = idata + 1
35806 data_tmp = full_data(idata)
35807 data_tmp = ishft(data_tmp, 18)
35808 data_tmp = iand(data_tmp, mask_left(6))
35809 pack_tmp = ior(pack_tmp, data_tmp)
35810 ipack = ipack + 1
35811 packed_data(ipack) = pack_tmp
35812 data_tmp = full_data(idata)
35813 pack_tmp = ishft(data_tmp, 24)
35814 pack_tmp = ishft(pack_tmp, -24)
35815 idata = idata + 1
35816 data_tmp = full_data(idata)
35817 data_tmp = ishft(data_tmp, 18)
35818 data_tmp = iand(data_tmp, mask_left(24))
35819 pack_tmp = ior(pack_tmp, data_tmp)
35820 ipack = ipack + 1
35821 packed_data(ipack) = pack_tmp
35822 data_tmp = full_data(idata)
35823 pack_tmp = ishft(data_tmp, 42)
35824 pack_tmp = ishft(pack_tmp, -42)
35825 idata = idata + 1
35826 data_tmp = full_data(idata)
35827 data_tmp = ishft(data_tmp, 18)
35828 data_tmp = iand(data_tmp, mask_left(42))
35829 pack_tmp = ior(pack_tmp, data_tmp)
35830 ipack = ipack + 1
35831 packed_data(ipack) = pack_tmp
35832 data_tmp = full_data(idata)
35833 pack_tmp = ishft(data_tmp, 60)
35834 pack_tmp = ishft(pack_tmp, -46)
35835 idata = idata + 1
35836 data_tmp = full_data(idata)
35837 data_tmp = ishft(data_tmp, 18)
35838 pack_tmp = ior(pack_tmp, data_tmp)
35839 pack_tmp = ishft(pack_tmp, -14)
35840 idata = idata + 1
35841 data_tmp = full_data(idata)
35842 data_tmp = ishft(data_tmp, 18)
35843 data_tmp = iand(data_tmp, mask_left(14))
35844 pack_tmp = ior(pack_tmp, data_tmp)
35845 ipack = ipack + 1
35846 packed_data(ipack) = pack_tmp
35847 data_tmp = full_data(idata)
35848 pack_tmp = ishft(data_tmp, 32)
35849 pack_tmp = ishft(pack_tmp, -32)
35850 idata = idata + 1
35851 data_tmp = full_data(idata)
35852 data_tmp = ishft(data_tmp, 18)
35853 data_tmp = iand(data_tmp, mask_left(32))
35854 pack_tmp = ior(pack_tmp, data_tmp)
35855 ipack = ipack + 1
35856 packed_data(ipack) = pack_tmp
35857 data_tmp = full_data(idata)
35858 pack_tmp = ishft(data_tmp, 50)
35859 pack_tmp = ishft(pack_tmp, -46)
35860 idata = idata + 1
35861 data_tmp = full_data(idata)
35862 data_tmp = ishft(data_tmp, 18)
35863 pack_tmp = ior(pack_tmp, data_tmp)
35864 pack_tmp = ishft(pack_tmp, -4)
35865 idata = idata + 1
35866 data_tmp = full_data(idata)
35867 data_tmp = ishft(data_tmp, 18)
35868 data_tmp = iand(data_tmp, mask_left(4))
35869 pack_tmp = ior(pack_tmp, data_tmp)
35870 ipack = ipack + 1
35871 packed_data(ipack) = pack_tmp
35872 data_tmp = full_data(idata)
35873 pack_tmp = ishft(data_tmp, 22)
35874 pack_tmp = ishft(pack_tmp, -22)
35875 idata = idata + 1
35876 data_tmp = full_data(idata)
35877 data_tmp = ishft(data_tmp, 18)
35878 data_tmp = iand(data_tmp, mask_left(22))
35879 pack_tmp = ior(pack_tmp, data_tmp)
35880 ipack = ipack + 1
35881 packed_data(ipack) = pack_tmp
35882 data_tmp = full_data(idata)
35883 pack_tmp = ishft(data_tmp, 40)
35884 pack_tmp = ishft(pack_tmp, -40)
35885 idata = idata + 1
35886 data_tmp = full_data(idata)
35887 data_tmp = ishft(data_tmp, 18)
35888 data_tmp = iand(data_tmp, mask_left(40))
35889 pack_tmp = ior(pack_tmp, data_tmp)
35890 ipack = ipack + 1
35891 packed_data(ipack) = pack_tmp
35892 data_tmp = full_data(idata)
35893 pack_tmp = ishft(data_tmp, 58)
35894 pack_tmp = ishft(pack_tmp, -46)
35895 idata = idata + 1
35896 data_tmp = full_data(idata)
35897 data_tmp = ishft(data_tmp, 18)
35898 pack_tmp = ior(pack_tmp, data_tmp)
35899 pack_tmp = ishft(pack_tmp, -12)
35900 idata = idata + 1
35901 data_tmp = full_data(idata)
35902 data_tmp = ishft(data_tmp, 18)
35903 data_tmp = iand(data_tmp, mask_left(12))
35904 pack_tmp = ior(pack_tmp, data_tmp)
35905 ipack = ipack + 1
35906 packed_data(ipack) = pack_tmp
35907 data_tmp = full_data(idata)
35908 pack_tmp = ishft(data_tmp, 30)
35909 pack_tmp = ishft(pack_tmp, -30)
35910 idata = idata + 1
35911 data_tmp = full_data(idata)
35912 data_tmp = ishft(data_tmp, 18)
35913 data_tmp = iand(data_tmp, mask_left(30))
35914 pack_tmp = ior(pack_tmp, data_tmp)
35915 ipack = ipack + 1
35916 packed_data(ipack) = pack_tmp
35917 data_tmp = full_data(idata)
35918 pack_tmp = ishft(data_tmp, 48)
35919 pack_tmp = ishft(pack_tmp, -46)
35920 idata = idata + 1
35921 data_tmp = full_data(idata)
35922 data_tmp = ishft(data_tmp, 18)
35923 pack_tmp = ior(pack_tmp, data_tmp)
35924 pack_tmp = ishft(pack_tmp, -2)
35925 idata = idata + 1
35926 data_tmp = full_data(idata)
35927 data_tmp = ishft(data_tmp, 18)
35928 data_tmp = iand(data_tmp, mask_left(2))
35929 pack_tmp = ior(pack_tmp, data_tmp)
35930 ipack = ipack + 1
35931 packed_data(ipack) = pack_tmp
35932 data_tmp = full_data(idata)
35933 pack_tmp = ishft(data_tmp, 20)
35934 pack_tmp = ishft(pack_tmp, -20)
35935 idata = idata + 1
35936 data_tmp = full_data(idata)
35937 data_tmp = ishft(data_tmp, 18)
35938 data_tmp = iand(data_tmp, mask_left(20))
35939 pack_tmp = ior(pack_tmp, data_tmp)
35940 ipack = ipack + 1
35941 packed_data(ipack) = pack_tmp
35942 data_tmp = full_data(idata)
35943 pack_tmp = ishft(data_tmp, 38)
35944 pack_tmp = ishft(pack_tmp, -38)
35945 idata = idata + 1
35946 data_tmp = full_data(idata)
35947 data_tmp = ishft(data_tmp, 18)
35948 data_tmp = iand(data_tmp, mask_left(38))
35949 pack_tmp = ior(pack_tmp, data_tmp)
35950 ipack = ipack + 1
35951 packed_data(ipack) = pack_tmp
35952 data_tmp = full_data(idata)
35953 pack_tmp = ishft(data_tmp, 56)
35954 pack_tmp = ishft(pack_tmp, -46)
35955 idata = idata + 1
35956 data_tmp = full_data(idata)
35957 data_tmp = ishft(data_tmp, 18)
35958 pack_tmp = ior(pack_tmp, data_tmp)
35959 pack_tmp = ishft(pack_tmp, -10)
35960 idata = idata + 1
35961 data_tmp = full_data(idata)
35962 data_tmp = ishft(data_tmp, 18)
35963 data_tmp = iand(data_tmp, mask_left(10))
35964 pack_tmp = ior(pack_tmp, data_tmp)
35965 ipack = ipack + 1
35966 packed_data(ipack) = pack_tmp
35967 data_tmp = full_data(idata)
35968 pack_tmp = ishft(data_tmp, 28)
35969 pack_tmp = ishft(pack_tmp, -28)
35970 idata = idata + 1
35971 data_tmp = full_data(idata)
35972 data_tmp = ishft(data_tmp, 18)
35973 data_tmp = iand(data_tmp, mask_left(28))
35974 pack_tmp = ior(pack_tmp, data_tmp)
35975 ipack = ipack + 1
35976 packed_data(ipack) = pack_tmp
35977 data_tmp = full_data(idata)
35978 pack_tmp = ishft(data_tmp, 46)
35979 pack_tmp = ishft(pack_tmp, -46)
35980 idata = idata + 1
35981 data_tmp = full_data(idata)
35982 data_tmp = ishft(data_tmp, 18)
35983 pack_tmp = ior(pack_tmp, data_tmp)
35984 pack_tmp = ishft(pack_tmp, 0)
35985 idata = idata + 1
35986 data_tmp = full_data(idata)
35987 data_tmp = ishft(data_tmp, 18)
35988 data_tmp = iand(data_tmp, mask_left(0))
35989 pack_tmp = ior(pack_tmp, data_tmp)
35990 ipack = ipack + 1
35991 packed_data(ipack) = pack_tmp
35992 data_tmp = full_data(idata)
35993 pack_tmp = ishft(data_tmp, 18)
35994 pack_tmp = ishft(pack_tmp, -18)
35995 idata = idata + 1
35996 data_tmp = full_data(idata)
35997 data_tmp = ishft(data_tmp, 18)
35998 data_tmp = iand(data_tmp, mask_left(18))
35999 pack_tmp = ior(pack_tmp, data_tmp)
36000 ipack = ipack + 1
36001 packed_data(ipack) = pack_tmp
36002 data_tmp = full_data(idata)
36003 pack_tmp = ishft(data_tmp, 36)
36004 pack_tmp = ishft(pack_tmp, -36)
36005 idata = idata + 1
36006 data_tmp = full_data(idata)
36007 data_tmp = ishft(data_tmp, 18)
36008 data_tmp = iand(data_tmp, mask_left(36))
36009 pack_tmp = ior(pack_tmp, data_tmp)
36010 ipack = ipack + 1
36011 packed_data(ipack) = pack_tmp
36012 data_tmp = full_data(idata)
36013 pack_tmp = ishft(data_tmp, 54)
36014 pack_tmp = ishft(pack_tmp, -46)
36015 idata = idata + 1
36016 data_tmp = full_data(idata)
36017 data_tmp = ishft(data_tmp, 18)
36018 pack_tmp = ior(pack_tmp, data_tmp)
36019 pack_tmp = ishft(pack_tmp, -8)
36020 idata = idata + 1
36021 data_tmp = full_data(idata)
36022 data_tmp = ishft(data_tmp, 18)
36023 data_tmp = iand(data_tmp, mask_left(8))
36024 pack_tmp = ior(pack_tmp, data_tmp)
36025 ipack = ipack + 1
36026 packed_data(ipack) = pack_tmp
36027 data_tmp = full_data(idata)
36028 pack_tmp = ishft(data_tmp, 26)
36029 pack_tmp = ishft(pack_tmp, -26)
36030 idata = idata + 1
36031 data_tmp = full_data(idata)
36032 data_tmp = ishft(data_tmp, 18)
36033 data_tmp = iand(data_tmp, mask_left(26))
36034 pack_tmp = ior(pack_tmp, data_tmp)
36035 ipack = ipack + 1
36036 packed_data(ipack) = pack_tmp
36037 data_tmp = full_data(idata)
36038 pack_tmp = ishft(data_tmp, 44)
36039 pack_tmp = ishft(pack_tmp, -44)
36040 idata = idata + 1
36041 data_tmp = full_data(idata)
36042 data_tmp = ishft(data_tmp, 18)
36043 data_tmp = iand(data_tmp, mask_left(44))
36044 pack_tmp = ior(pack_tmp, data_tmp)
36045 ipack = ipack + 1
36046 packed_data(ipack) = pack_tmp
36047 data_tmp = full_data(idata)
36048 pack_tmp = ishft(data_tmp, 62)
36049 pack_tmp = ishft(pack_tmp, -46)
36050 idata = idata + 1
36051 data_tmp = full_data(idata)
36052 data_tmp = ishft(data_tmp, 18)
36053 pack_tmp = ior(pack_tmp, data_tmp)
36054 pack_tmp = ishft(pack_tmp, -16)
36055 idata = idata + 1
36056 data_tmp = full_data(idata)
36057 data_tmp = ishft(data_tmp, 18)
36058 data_tmp = iand(data_tmp, mask_left(16))
36059 pack_tmp = ior(pack_tmp, data_tmp)
36060 ipack = ipack + 1
36061 packed_data(ipack) = pack_tmp
36062 data_tmp = full_data(idata)
36063 pack_tmp = ishft(data_tmp, 34)
36064 pack_tmp = ishft(pack_tmp, -34)
36065 idata = idata + 1
36066 data_tmp = full_data(idata)
36067 data_tmp = ishft(data_tmp, 18)
36068 data_tmp = iand(data_tmp, mask_left(34))
36069 pack_tmp = ior(pack_tmp, data_tmp)
36070 ipack = ipack + 1
36071 packed_data(ipack) = pack_tmp
36072 data_tmp = full_data(idata)
36073 pack_tmp = ishft(data_tmp, 52)
36074 pack_tmp = ishft(pack_tmp, -46)
36075 idata = idata + 1
36076 data_tmp = full_data(idata)
36077 data_tmp = ishft(data_tmp, 18)
36078 pack_tmp = ior(pack_tmp, data_tmp)
36079 pack_tmp = ishft(pack_tmp, -6)
36080 idata = idata + 1
36081 data_tmp = full_data(idata)
36082 data_tmp = ishft(data_tmp, 18)
36083 data_tmp = iand(data_tmp, mask_left(6))
36084 pack_tmp = ior(pack_tmp, data_tmp)
36085 ipack = ipack + 1
36086 packed_data(ipack) = pack_tmp
36087 data_tmp = full_data(idata)
36088 pack_tmp = ishft(data_tmp, 24)
36089 pack_tmp = ishft(pack_tmp, -24)
36090 idata = idata + 1
36091 data_tmp = full_data(idata)
36092 data_tmp = ishft(data_tmp, 18)
36093 data_tmp = iand(data_tmp, mask_left(24))
36094 pack_tmp = ior(pack_tmp, data_tmp)
36095 ipack = ipack + 1
36096 packed_data(ipack) = pack_tmp
36097 data_tmp = full_data(idata)
36098 pack_tmp = ishft(data_tmp, 42)
36099 pack_tmp = ishft(pack_tmp, -42)
36100 idata = idata + 1
36101 data_tmp = full_data(idata)
36102 data_tmp = ishft(data_tmp, 18)
36103 data_tmp = iand(data_tmp, mask_left(42))
36104 pack_tmp = ior(pack_tmp, data_tmp)
36105 ipack = ipack + 1
36106 packed_data(ipack) = pack_tmp
36107 data_tmp = full_data(idata)
36108 pack_tmp = ishft(data_tmp, 60)
36109 pack_tmp = ishft(pack_tmp, -46)
36110 idata = idata + 1
36111 data_tmp = full_data(idata)
36112 data_tmp = ishft(data_tmp, 18)
36113 pack_tmp = ior(pack_tmp, data_tmp)
36114 pack_tmp = ishft(pack_tmp, -14)
36115 idata = idata + 1
36116 data_tmp = full_data(idata)
36117 data_tmp = ishft(data_tmp, 18)
36118 data_tmp = iand(data_tmp, mask_left(14))
36119 pack_tmp = ior(pack_tmp, data_tmp)
36120 ipack = ipack + 1
36121 packed_data(ipack) = pack_tmp
36122 data_tmp = full_data(idata)
36123 pack_tmp = ishft(data_tmp, 32)
36124 pack_tmp = ishft(pack_tmp, -32)
36125 idata = idata + 1
36126 data_tmp = full_data(idata)
36127 data_tmp = ishft(data_tmp, 18)
36128 data_tmp = iand(data_tmp, mask_left(32))
36129 pack_tmp = ior(pack_tmp, data_tmp)
36130 ipack = ipack + 1
36131 packed_data(ipack) = pack_tmp
36132 data_tmp = full_data(idata)
36133 pack_tmp = ishft(data_tmp, 50)
36134 pack_tmp = ishft(pack_tmp, -46)
36135 idata = idata + 1
36136 data_tmp = full_data(idata)
36137 data_tmp = ishft(data_tmp, 18)
36138 pack_tmp = ior(pack_tmp, data_tmp)
36139 pack_tmp = ishft(pack_tmp, -4)
36140 idata = idata + 1
36141 data_tmp = full_data(idata)
36142 data_tmp = ishft(data_tmp, 18)
36143 data_tmp = iand(data_tmp, mask_left(4))
36144 pack_tmp = ior(pack_tmp, data_tmp)
36145 ipack = ipack + 1
36146 packed_data(ipack) = pack_tmp
36147 data_tmp = full_data(idata)
36148 pack_tmp = ishft(data_tmp, 22)
36149 pack_tmp = ishft(pack_tmp, -22)
36150 idata = idata + 1
36151 data_tmp = full_data(idata)
36152 data_tmp = ishft(data_tmp, 18)
36153 data_tmp = iand(data_tmp, mask_left(22))
36154 pack_tmp = ior(pack_tmp, data_tmp)
36155 ipack = ipack + 1
36156 packed_data(ipack) = pack_tmp
36157 data_tmp = full_data(idata)
36158 pack_tmp = ishft(data_tmp, 40)
36159 pack_tmp = ishft(pack_tmp, -40)
36160 idata = idata + 1
36161 data_tmp = full_data(idata)
36162 data_tmp = ishft(data_tmp, 18)
36163 data_tmp = iand(data_tmp, mask_left(40))
36164 pack_tmp = ior(pack_tmp, data_tmp)
36165 ipack = ipack + 1
36166 packed_data(ipack) = pack_tmp
36167 data_tmp = full_data(idata)
36168 pack_tmp = ishft(data_tmp, 58)
36169 pack_tmp = ishft(pack_tmp, -46)
36170 idata = idata + 1
36171 data_tmp = full_data(idata)
36172 data_tmp = ishft(data_tmp, 18)
36173 pack_tmp = ior(pack_tmp, data_tmp)
36174 pack_tmp = ishft(pack_tmp, -12)
36175 idata = idata + 1
36176 data_tmp = full_data(idata)
36177 data_tmp = ishft(data_tmp, 18)
36178 data_tmp = iand(data_tmp, mask_left(12))
36179 pack_tmp = ior(pack_tmp, data_tmp)
36180 ipack = ipack + 1
36181 packed_data(ipack) = pack_tmp
36182 data_tmp = full_data(idata)
36183 pack_tmp = ishft(data_tmp, 30)
36184 pack_tmp = ishft(pack_tmp, -30)
36185 idata = idata + 1
36186 data_tmp = full_data(idata)
36187 data_tmp = ishft(data_tmp, 18)
36188 data_tmp = iand(data_tmp, mask_left(30))
36189 pack_tmp = ior(pack_tmp, data_tmp)
36190 ipack = ipack + 1
36191 packed_data(ipack) = pack_tmp
36192 data_tmp = full_data(idata)
36193 pack_tmp = ishft(data_tmp, 48)
36194 pack_tmp = ishft(pack_tmp, -46)
36195 idata = idata + 1
36196 data_tmp = full_data(idata)
36197 data_tmp = ishft(data_tmp, 18)
36198 pack_tmp = ior(pack_tmp, data_tmp)
36199 pack_tmp = ishft(pack_tmp, -2)
36200 idata = idata + 1
36201 data_tmp = full_data(idata)
36202 data_tmp = ishft(data_tmp, 18)
36203 data_tmp = iand(data_tmp, mask_left(2))
36204 pack_tmp = ior(pack_tmp, data_tmp)
36205 ipack = ipack + 1
36206 packed_data(ipack) = pack_tmp
36207 data_tmp = full_data(idata)
36208 pack_tmp = ishft(data_tmp, 20)
36209 pack_tmp = ishft(pack_tmp, -20)
36210 idata = idata + 1
36211 data_tmp = full_data(idata)
36212 data_tmp = ishft(data_tmp, 18)
36213 data_tmp = iand(data_tmp, mask_left(20))
36214 pack_tmp = ior(pack_tmp, data_tmp)
36215 ipack = ipack + 1
36216 packed_data(ipack) = pack_tmp
36217 data_tmp = full_data(idata)
36218 pack_tmp = ishft(data_tmp, 38)
36219 pack_tmp = ishft(pack_tmp, -38)
36220 idata = idata + 1
36221 data_tmp = full_data(idata)
36222 data_tmp = ishft(data_tmp, 18)
36223 data_tmp = iand(data_tmp, mask_left(38))
36224 pack_tmp = ior(pack_tmp, data_tmp)
36225 ipack = ipack + 1
36226 packed_data(ipack) = pack_tmp
36227 data_tmp = full_data(idata)
36228 pack_tmp = ishft(data_tmp, 56)
36229 pack_tmp = ishft(pack_tmp, -46)
36230 idata = idata + 1
36231 data_tmp = full_data(idata)
36232 data_tmp = ishft(data_tmp, 18)
36233 pack_tmp = ior(pack_tmp, data_tmp)
36234 pack_tmp = ishft(pack_tmp, -10)
36235 idata = idata + 1
36236 data_tmp = full_data(idata)
36237 data_tmp = ishft(data_tmp, 18)
36238 data_tmp = iand(data_tmp, mask_left(10))
36239 pack_tmp = ior(pack_tmp, data_tmp)
36240 ipack = ipack + 1
36241 packed_data(ipack) = pack_tmp
36242 data_tmp = full_data(idata)
36243 pack_tmp = ishft(data_tmp, 28)
36244 pack_tmp = ishft(pack_tmp, -28)
36245 idata = idata + 1
36246 data_tmp = full_data(idata)
36247 data_tmp = ishft(data_tmp, 18)
36248 data_tmp = iand(data_tmp, mask_left(28))
36249 pack_tmp = ior(pack_tmp, data_tmp)
36250 ipack = ipack + 1
36251 packed_data(ipack) = pack_tmp
36252 data_tmp = full_data(idata)
36253 pack_tmp = ishft(data_tmp, 46)
36254 pack_tmp = ishft(pack_tmp, -46)
36255 idata = idata + 1
36256 data_tmp = full_data(idata)
36257 data_tmp = ishft(data_tmp, 18)
36258 pack_tmp = ior(pack_tmp, data_tmp)
36259 pack_tmp = ishft(pack_tmp, 0)
36260 pack_tmp = ishft(pack_tmp, 0)
36261 ipack = ipack + 1
36262 packed_data(ipack) = pack_tmp
36263 END DO
36264 IF (ndata_rep < ndata) THEN
36265 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
36266 END IF
36267 END SUBROUTINE ints2bits_46
36268
36269! **************************************************************************************************
36270!> \brief ...
36271!> \param Ndata ...
36272!> \param packed_data ...
36273!> \param full_data ...
36274! **************************************************************************************************
36275 SUBROUTINE bits2ints_46(Ndata, packed_data, full_data)
36276 INTEGER, INTENT(IN) :: Ndata
36277 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
36278 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
36279
36280 INTEGER, PARAMETER :: Nbits = 46
36281
36282 INTEGER :: idata, ipack, kdata, Ndata_rep
36283 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
36284
36285 ipack = 0
36286 idata = 0
36287 pack_tmp = 0
36288 ndata_rep = (ndata/64)*64
36289 DO kdata = 1, ndata_rep, 64
36290 idata = idata + 1
36291 data_tmp = ishft(pack_tmp, 46)
36292 ipack = ipack + 1
36293 pack_tmp = packed_data(ipack)
36294 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
36295 pack_tmp = ishft(pack_tmp, -46)
36296 idata = idata + 1
36297 data_tmp = ishft(pack_tmp, 28)
36298 ipack = ipack + 1
36299 pack_tmp = packed_data(ipack)
36300 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
36301 pack_tmp = ishft(pack_tmp, -28)
36302 idata = idata + 1
36303 data_tmp = ishft(pack_tmp, 10)
36304 ipack = ipack + 1
36305 pack_tmp = packed_data(ipack)
36306 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
36307 pack_tmp = ishft(pack_tmp, -10)
36308 idata = idata + 1
36309 data_tmp = iand(pack_tmp, mask_right(nbits))
36310 full_data(idata) = data_tmp
36311 pack_tmp = ishft(pack_tmp, -nbits)
36312 idata = idata + 1
36313 data_tmp = ishft(pack_tmp, 38)
36314 ipack = ipack + 1
36315 pack_tmp = packed_data(ipack)
36316 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
36317 pack_tmp = ishft(pack_tmp, -38)
36318 idata = idata + 1
36319 data_tmp = ishft(pack_tmp, 20)
36320 ipack = ipack + 1
36321 pack_tmp = packed_data(ipack)
36322 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
36323 pack_tmp = ishft(pack_tmp, -20)
36324 idata = idata + 1
36325 data_tmp = ishft(pack_tmp, 2)
36326 ipack = ipack + 1
36327 pack_tmp = packed_data(ipack)
36328 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
36329 pack_tmp = ishft(pack_tmp, -2)
36330 idata = idata + 1
36331 data_tmp = iand(pack_tmp, mask_right(nbits))
36332 full_data(idata) = data_tmp
36333 pack_tmp = ishft(pack_tmp, -nbits)
36334 idata = idata + 1
36335 data_tmp = ishft(pack_tmp, 30)
36336 ipack = ipack + 1
36337 pack_tmp = packed_data(ipack)
36338 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
36339 pack_tmp = ishft(pack_tmp, -30)
36340 idata = idata + 1
36341 data_tmp = ishft(pack_tmp, 12)
36342 ipack = ipack + 1
36343 pack_tmp = packed_data(ipack)
36344 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
36345 pack_tmp = ishft(pack_tmp, -12)
36346 idata = idata + 1
36347 data_tmp = iand(pack_tmp, mask_right(nbits))
36348 full_data(idata) = data_tmp
36349 pack_tmp = ishft(pack_tmp, -nbits)
36350 idata = idata + 1
36351 data_tmp = ishft(pack_tmp, 40)
36352 ipack = ipack + 1
36353 pack_tmp = packed_data(ipack)
36354 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
36355 pack_tmp = ishft(pack_tmp, -40)
36356 idata = idata + 1
36357 data_tmp = ishft(pack_tmp, 22)
36358 ipack = ipack + 1
36359 pack_tmp = packed_data(ipack)
36360 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
36361 pack_tmp = ishft(pack_tmp, -22)
36362 idata = idata + 1
36363 data_tmp = ishft(pack_tmp, 4)
36364 ipack = ipack + 1
36365 pack_tmp = packed_data(ipack)
36366 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
36367 pack_tmp = ishft(pack_tmp, -4)
36368 idata = idata + 1
36369 data_tmp = iand(pack_tmp, mask_right(nbits))
36370 full_data(idata) = data_tmp
36371 pack_tmp = ishft(pack_tmp, -nbits)
36372 idata = idata + 1
36373 data_tmp = ishft(pack_tmp, 32)
36374 ipack = ipack + 1
36375 pack_tmp = packed_data(ipack)
36376 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
36377 pack_tmp = ishft(pack_tmp, -32)
36378 idata = idata + 1
36379 data_tmp = ishft(pack_tmp, 14)
36380 ipack = ipack + 1
36381 pack_tmp = packed_data(ipack)
36382 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
36383 pack_tmp = ishft(pack_tmp, -14)
36384 idata = idata + 1
36385 data_tmp = iand(pack_tmp, mask_right(nbits))
36386 full_data(idata) = data_tmp
36387 pack_tmp = ishft(pack_tmp, -nbits)
36388 idata = idata + 1
36389 data_tmp = ishft(pack_tmp, 42)
36390 ipack = ipack + 1
36391 pack_tmp = packed_data(ipack)
36392 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
36393 pack_tmp = ishft(pack_tmp, -42)
36394 idata = idata + 1
36395 data_tmp = ishft(pack_tmp, 24)
36396 ipack = ipack + 1
36397 pack_tmp = packed_data(ipack)
36398 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
36399 pack_tmp = ishft(pack_tmp, -24)
36400 idata = idata + 1
36401 data_tmp = ishft(pack_tmp, 6)
36402 ipack = ipack + 1
36403 pack_tmp = packed_data(ipack)
36404 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
36405 pack_tmp = ishft(pack_tmp, -6)
36406 idata = idata + 1
36407 data_tmp = iand(pack_tmp, mask_right(nbits))
36408 full_data(idata) = data_tmp
36409 pack_tmp = ishft(pack_tmp, -nbits)
36410 idata = idata + 1
36411 data_tmp = ishft(pack_tmp, 34)
36412 ipack = ipack + 1
36413 pack_tmp = packed_data(ipack)
36414 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
36415 pack_tmp = ishft(pack_tmp, -34)
36416 idata = idata + 1
36417 data_tmp = ishft(pack_tmp, 16)
36418 ipack = ipack + 1
36419 pack_tmp = packed_data(ipack)
36420 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
36421 pack_tmp = ishft(pack_tmp, -16)
36422 idata = idata + 1
36423 data_tmp = iand(pack_tmp, mask_right(nbits))
36424 full_data(idata) = data_tmp
36425 pack_tmp = ishft(pack_tmp, -nbits)
36426 idata = idata + 1
36427 data_tmp = ishft(pack_tmp, 44)
36428 ipack = ipack + 1
36429 pack_tmp = packed_data(ipack)
36430 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
36431 pack_tmp = ishft(pack_tmp, -44)
36432 idata = idata + 1
36433 data_tmp = ishft(pack_tmp, 26)
36434 ipack = ipack + 1
36435 pack_tmp = packed_data(ipack)
36436 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
36437 pack_tmp = ishft(pack_tmp, -26)
36438 idata = idata + 1
36439 data_tmp = ishft(pack_tmp, 8)
36440 ipack = ipack + 1
36441 pack_tmp = packed_data(ipack)
36442 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
36443 pack_tmp = ishft(pack_tmp, -8)
36444 idata = idata + 1
36445 data_tmp = iand(pack_tmp, mask_right(nbits))
36446 full_data(idata) = data_tmp
36447 pack_tmp = ishft(pack_tmp, -nbits)
36448 idata = idata + 1
36449 data_tmp = ishft(pack_tmp, 36)
36450 ipack = ipack + 1
36451 pack_tmp = packed_data(ipack)
36452 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
36453 pack_tmp = ishft(pack_tmp, -36)
36454 idata = idata + 1
36455 data_tmp = ishft(pack_tmp, 18)
36456 ipack = ipack + 1
36457 pack_tmp = packed_data(ipack)
36458 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
36459 pack_tmp = ishft(pack_tmp, -18)
36460 idata = idata + 1
36461 data_tmp = iand(pack_tmp, mask_right(nbits))
36462 full_data(idata) = data_tmp
36463 pack_tmp = ishft(pack_tmp, -nbits)
36464 idata = idata + 1
36465 data_tmp = ishft(pack_tmp, 46)
36466 ipack = ipack + 1
36467 pack_tmp = packed_data(ipack)
36468 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
36469 pack_tmp = ishft(pack_tmp, -46)
36470 idata = idata + 1
36471 data_tmp = ishft(pack_tmp, 28)
36472 ipack = ipack + 1
36473 pack_tmp = packed_data(ipack)
36474 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
36475 pack_tmp = ishft(pack_tmp, -28)
36476 idata = idata + 1
36477 data_tmp = ishft(pack_tmp, 10)
36478 ipack = ipack + 1
36479 pack_tmp = packed_data(ipack)
36480 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
36481 pack_tmp = ishft(pack_tmp, -10)
36482 idata = idata + 1
36483 data_tmp = iand(pack_tmp, mask_right(nbits))
36484 full_data(idata) = data_tmp
36485 pack_tmp = ishft(pack_tmp, -nbits)
36486 idata = idata + 1
36487 data_tmp = ishft(pack_tmp, 38)
36488 ipack = ipack + 1
36489 pack_tmp = packed_data(ipack)
36490 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
36491 pack_tmp = ishft(pack_tmp, -38)
36492 idata = idata + 1
36493 data_tmp = ishft(pack_tmp, 20)
36494 ipack = ipack + 1
36495 pack_tmp = packed_data(ipack)
36496 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
36497 pack_tmp = ishft(pack_tmp, -20)
36498 idata = idata + 1
36499 data_tmp = ishft(pack_tmp, 2)
36500 ipack = ipack + 1
36501 pack_tmp = packed_data(ipack)
36502 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
36503 pack_tmp = ishft(pack_tmp, -2)
36504 idata = idata + 1
36505 data_tmp = iand(pack_tmp, mask_right(nbits))
36506 full_data(idata) = data_tmp
36507 pack_tmp = ishft(pack_tmp, -nbits)
36508 idata = idata + 1
36509 data_tmp = ishft(pack_tmp, 30)
36510 ipack = ipack + 1
36511 pack_tmp = packed_data(ipack)
36512 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
36513 pack_tmp = ishft(pack_tmp, -30)
36514 idata = idata + 1
36515 data_tmp = ishft(pack_tmp, 12)
36516 ipack = ipack + 1
36517 pack_tmp = packed_data(ipack)
36518 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
36519 pack_tmp = ishft(pack_tmp, -12)
36520 idata = idata + 1
36521 data_tmp = iand(pack_tmp, mask_right(nbits))
36522 full_data(idata) = data_tmp
36523 pack_tmp = ishft(pack_tmp, -nbits)
36524 idata = idata + 1
36525 data_tmp = ishft(pack_tmp, 40)
36526 ipack = ipack + 1
36527 pack_tmp = packed_data(ipack)
36528 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
36529 pack_tmp = ishft(pack_tmp, -40)
36530 idata = idata + 1
36531 data_tmp = ishft(pack_tmp, 22)
36532 ipack = ipack + 1
36533 pack_tmp = packed_data(ipack)
36534 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
36535 pack_tmp = ishft(pack_tmp, -22)
36536 idata = idata + 1
36537 data_tmp = ishft(pack_tmp, 4)
36538 ipack = ipack + 1
36539 pack_tmp = packed_data(ipack)
36540 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
36541 pack_tmp = ishft(pack_tmp, -4)
36542 idata = idata + 1
36543 data_tmp = iand(pack_tmp, mask_right(nbits))
36544 full_data(idata) = data_tmp
36545 pack_tmp = ishft(pack_tmp, -nbits)
36546 idata = idata + 1
36547 data_tmp = ishft(pack_tmp, 32)
36548 ipack = ipack + 1
36549 pack_tmp = packed_data(ipack)
36550 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
36551 pack_tmp = ishft(pack_tmp, -32)
36552 idata = idata + 1
36553 data_tmp = ishft(pack_tmp, 14)
36554 ipack = ipack + 1
36555 pack_tmp = packed_data(ipack)
36556 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
36557 pack_tmp = ishft(pack_tmp, -14)
36558 idata = idata + 1
36559 data_tmp = iand(pack_tmp, mask_right(nbits))
36560 full_data(idata) = data_tmp
36561 pack_tmp = ishft(pack_tmp, -nbits)
36562 idata = idata + 1
36563 data_tmp = ishft(pack_tmp, 42)
36564 ipack = ipack + 1
36565 pack_tmp = packed_data(ipack)
36566 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
36567 pack_tmp = ishft(pack_tmp, -42)
36568 idata = idata + 1
36569 data_tmp = ishft(pack_tmp, 24)
36570 ipack = ipack + 1
36571 pack_tmp = packed_data(ipack)
36572 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
36573 pack_tmp = ishft(pack_tmp, -24)
36574 idata = idata + 1
36575 data_tmp = ishft(pack_tmp, 6)
36576 ipack = ipack + 1
36577 pack_tmp = packed_data(ipack)
36578 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
36579 pack_tmp = ishft(pack_tmp, -6)
36580 idata = idata + 1
36581 data_tmp = iand(pack_tmp, mask_right(nbits))
36582 full_data(idata) = data_tmp
36583 pack_tmp = ishft(pack_tmp, -nbits)
36584 idata = idata + 1
36585 data_tmp = ishft(pack_tmp, 34)
36586 ipack = ipack + 1
36587 pack_tmp = packed_data(ipack)
36588 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
36589 pack_tmp = ishft(pack_tmp, -34)
36590 idata = idata + 1
36591 data_tmp = ishft(pack_tmp, 16)
36592 ipack = ipack + 1
36593 pack_tmp = packed_data(ipack)
36594 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
36595 pack_tmp = ishft(pack_tmp, -16)
36596 idata = idata + 1
36597 data_tmp = iand(pack_tmp, mask_right(nbits))
36598 full_data(idata) = data_tmp
36599 pack_tmp = ishft(pack_tmp, -nbits)
36600 idata = idata + 1
36601 data_tmp = ishft(pack_tmp, 44)
36602 ipack = ipack + 1
36603 pack_tmp = packed_data(ipack)
36604 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
36605 pack_tmp = ishft(pack_tmp, -44)
36606 idata = idata + 1
36607 data_tmp = ishft(pack_tmp, 26)
36608 ipack = ipack + 1
36609 pack_tmp = packed_data(ipack)
36610 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
36611 pack_tmp = ishft(pack_tmp, -26)
36612 idata = idata + 1
36613 data_tmp = ishft(pack_tmp, 8)
36614 ipack = ipack + 1
36615 pack_tmp = packed_data(ipack)
36616 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
36617 pack_tmp = ishft(pack_tmp, -8)
36618 idata = idata + 1
36619 data_tmp = iand(pack_tmp, mask_right(nbits))
36620 full_data(idata) = data_tmp
36621 pack_tmp = ishft(pack_tmp, -nbits)
36622 idata = idata + 1
36623 data_tmp = ishft(pack_tmp, 36)
36624 ipack = ipack + 1
36625 pack_tmp = packed_data(ipack)
36626 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
36627 pack_tmp = ishft(pack_tmp, -36)
36628 idata = idata + 1
36629 data_tmp = ishft(pack_tmp, 18)
36630 ipack = ipack + 1
36631 pack_tmp = packed_data(ipack)
36632 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
36633 pack_tmp = ishft(pack_tmp, -18)
36634 idata = idata + 1
36635 data_tmp = iand(pack_tmp, mask_right(nbits))
36636 full_data(idata) = data_tmp
36637 pack_tmp = ishft(pack_tmp, -nbits)
36638 END DO
36639 IF (ndata_rep < ndata) THEN
36640 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
36641 END IF
36642 END SUBROUTINE bits2ints_46
36643
36644! **************************************************************************************************
36645!> \brief ...
36646!> \param Ndata ...
36647!> \param packed_data ...
36648!> \param full_data ...
36649! **************************************************************************************************
36650 SUBROUTINE ints2bits_47(Ndata, packed_data, full_data)
36651 INTEGER, INTENT(IN) :: Ndata
36652 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
36653 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
36654
36655 INTEGER, PARAMETER :: Nbits = 47
36656
36657 INTEGER :: idata, ipack, kdata, Ndata_rep
36658 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
36659
36660 idata = 0
36661 ipack = 0
36662 ndata_rep = (ndata/64)*64
36663 DO kdata = 1, ndata_rep, 64
36664 pack_tmp = 0
36665 idata = idata + 1
36666 data_tmp = full_data(idata)
36667 data_tmp = ishft(data_tmp, 17)
36668 pack_tmp = ior(pack_tmp, data_tmp)
36669 pack_tmp = ishft(pack_tmp, -17)
36670 idata = idata + 1
36671 data_tmp = full_data(idata)
36672 data_tmp = ishft(data_tmp, 17)
36673 data_tmp = iand(data_tmp, mask_left(17))
36674 pack_tmp = ior(pack_tmp, data_tmp)
36675 ipack = ipack + 1
36676 packed_data(ipack) = pack_tmp
36677 data_tmp = full_data(idata)
36678 pack_tmp = ishft(data_tmp, 34)
36679 pack_tmp = ishft(pack_tmp, -34)
36680 idata = idata + 1
36681 data_tmp = full_data(idata)
36682 data_tmp = ishft(data_tmp, 17)
36683 data_tmp = iand(data_tmp, mask_left(34))
36684 pack_tmp = ior(pack_tmp, data_tmp)
36685 ipack = ipack + 1
36686 packed_data(ipack) = pack_tmp
36687 data_tmp = full_data(idata)
36688 pack_tmp = ishft(data_tmp, 51)
36689 pack_tmp = ishft(pack_tmp, -47)
36690 idata = idata + 1
36691 data_tmp = full_data(idata)
36692 data_tmp = ishft(data_tmp, 17)
36693 pack_tmp = ior(pack_tmp, data_tmp)
36694 pack_tmp = ishft(pack_tmp, -4)
36695 idata = idata + 1
36696 data_tmp = full_data(idata)
36697 data_tmp = ishft(data_tmp, 17)
36698 data_tmp = iand(data_tmp, mask_left(4))
36699 pack_tmp = ior(pack_tmp, data_tmp)
36700 ipack = ipack + 1
36701 packed_data(ipack) = pack_tmp
36702 data_tmp = full_data(idata)
36703 pack_tmp = ishft(data_tmp, 21)
36704 pack_tmp = ishft(pack_tmp, -21)
36705 idata = idata + 1
36706 data_tmp = full_data(idata)
36707 data_tmp = ishft(data_tmp, 17)
36708 data_tmp = iand(data_tmp, mask_left(21))
36709 pack_tmp = ior(pack_tmp, data_tmp)
36710 ipack = ipack + 1
36711 packed_data(ipack) = pack_tmp
36712 data_tmp = full_data(idata)
36713 pack_tmp = ishft(data_tmp, 38)
36714 pack_tmp = ishft(pack_tmp, -38)
36715 idata = idata + 1
36716 data_tmp = full_data(idata)
36717 data_tmp = ishft(data_tmp, 17)
36718 data_tmp = iand(data_tmp, mask_left(38))
36719 pack_tmp = ior(pack_tmp, data_tmp)
36720 ipack = ipack + 1
36721 packed_data(ipack) = pack_tmp
36722 data_tmp = full_data(idata)
36723 pack_tmp = ishft(data_tmp, 55)
36724 pack_tmp = ishft(pack_tmp, -47)
36725 idata = idata + 1
36726 data_tmp = full_data(idata)
36727 data_tmp = ishft(data_tmp, 17)
36728 pack_tmp = ior(pack_tmp, data_tmp)
36729 pack_tmp = ishft(pack_tmp, -8)
36730 idata = idata + 1
36731 data_tmp = full_data(idata)
36732 data_tmp = ishft(data_tmp, 17)
36733 data_tmp = iand(data_tmp, mask_left(8))
36734 pack_tmp = ior(pack_tmp, data_tmp)
36735 ipack = ipack + 1
36736 packed_data(ipack) = pack_tmp
36737 data_tmp = full_data(idata)
36738 pack_tmp = ishft(data_tmp, 25)
36739 pack_tmp = ishft(pack_tmp, -25)
36740 idata = idata + 1
36741 data_tmp = full_data(idata)
36742 data_tmp = ishft(data_tmp, 17)
36743 data_tmp = iand(data_tmp, mask_left(25))
36744 pack_tmp = ior(pack_tmp, data_tmp)
36745 ipack = ipack + 1
36746 packed_data(ipack) = pack_tmp
36747 data_tmp = full_data(idata)
36748 pack_tmp = ishft(data_tmp, 42)
36749 pack_tmp = ishft(pack_tmp, -42)
36750 idata = idata + 1
36751 data_tmp = full_data(idata)
36752 data_tmp = ishft(data_tmp, 17)
36753 data_tmp = iand(data_tmp, mask_left(42))
36754 pack_tmp = ior(pack_tmp, data_tmp)
36755 ipack = ipack + 1
36756 packed_data(ipack) = pack_tmp
36757 data_tmp = full_data(idata)
36758 pack_tmp = ishft(data_tmp, 59)
36759 pack_tmp = ishft(pack_tmp, -47)
36760 idata = idata + 1
36761 data_tmp = full_data(idata)
36762 data_tmp = ishft(data_tmp, 17)
36763 pack_tmp = ior(pack_tmp, data_tmp)
36764 pack_tmp = ishft(pack_tmp, -12)
36765 idata = idata + 1
36766 data_tmp = full_data(idata)
36767 data_tmp = ishft(data_tmp, 17)
36768 data_tmp = iand(data_tmp, mask_left(12))
36769 pack_tmp = ior(pack_tmp, data_tmp)
36770 ipack = ipack + 1
36771 packed_data(ipack) = pack_tmp
36772 data_tmp = full_data(idata)
36773 pack_tmp = ishft(data_tmp, 29)
36774 pack_tmp = ishft(pack_tmp, -29)
36775 idata = idata + 1
36776 data_tmp = full_data(idata)
36777 data_tmp = ishft(data_tmp, 17)
36778 data_tmp = iand(data_tmp, mask_left(29))
36779 pack_tmp = ior(pack_tmp, data_tmp)
36780 ipack = ipack + 1
36781 packed_data(ipack) = pack_tmp
36782 data_tmp = full_data(idata)
36783 pack_tmp = ishft(data_tmp, 46)
36784 pack_tmp = ishft(pack_tmp, -46)
36785 idata = idata + 1
36786 data_tmp = full_data(idata)
36787 data_tmp = ishft(data_tmp, 17)
36788 data_tmp = iand(data_tmp, mask_left(46))
36789 pack_tmp = ior(pack_tmp, data_tmp)
36790 ipack = ipack + 1
36791 packed_data(ipack) = pack_tmp
36792 data_tmp = full_data(idata)
36793 pack_tmp = ishft(data_tmp, 63)
36794 pack_tmp = ishft(pack_tmp, -47)
36795 idata = idata + 1
36796 data_tmp = full_data(idata)
36797 data_tmp = ishft(data_tmp, 17)
36798 pack_tmp = ior(pack_tmp, data_tmp)
36799 pack_tmp = ishft(pack_tmp, -16)
36800 idata = idata + 1
36801 data_tmp = full_data(idata)
36802 data_tmp = ishft(data_tmp, 17)
36803 data_tmp = iand(data_tmp, mask_left(16))
36804 pack_tmp = ior(pack_tmp, data_tmp)
36805 ipack = ipack + 1
36806 packed_data(ipack) = pack_tmp
36807 data_tmp = full_data(idata)
36808 pack_tmp = ishft(data_tmp, 33)
36809 pack_tmp = ishft(pack_tmp, -33)
36810 idata = idata + 1
36811 data_tmp = full_data(idata)
36812 data_tmp = ishft(data_tmp, 17)
36813 data_tmp = iand(data_tmp, mask_left(33))
36814 pack_tmp = ior(pack_tmp, data_tmp)
36815 ipack = ipack + 1
36816 packed_data(ipack) = pack_tmp
36817 data_tmp = full_data(idata)
36818 pack_tmp = ishft(data_tmp, 50)
36819 pack_tmp = ishft(pack_tmp, -47)
36820 idata = idata + 1
36821 data_tmp = full_data(idata)
36822 data_tmp = ishft(data_tmp, 17)
36823 pack_tmp = ior(pack_tmp, data_tmp)
36824 pack_tmp = ishft(pack_tmp, -3)
36825 idata = idata + 1
36826 data_tmp = full_data(idata)
36827 data_tmp = ishft(data_tmp, 17)
36828 data_tmp = iand(data_tmp, mask_left(3))
36829 pack_tmp = ior(pack_tmp, data_tmp)
36830 ipack = ipack + 1
36831 packed_data(ipack) = pack_tmp
36832 data_tmp = full_data(idata)
36833 pack_tmp = ishft(data_tmp, 20)
36834 pack_tmp = ishft(pack_tmp, -20)
36835 idata = idata + 1
36836 data_tmp = full_data(idata)
36837 data_tmp = ishft(data_tmp, 17)
36838 data_tmp = iand(data_tmp, mask_left(20))
36839 pack_tmp = ior(pack_tmp, data_tmp)
36840 ipack = ipack + 1
36841 packed_data(ipack) = pack_tmp
36842 data_tmp = full_data(idata)
36843 pack_tmp = ishft(data_tmp, 37)
36844 pack_tmp = ishft(pack_tmp, -37)
36845 idata = idata + 1
36846 data_tmp = full_data(idata)
36847 data_tmp = ishft(data_tmp, 17)
36848 data_tmp = iand(data_tmp, mask_left(37))
36849 pack_tmp = ior(pack_tmp, data_tmp)
36850 ipack = ipack + 1
36851 packed_data(ipack) = pack_tmp
36852 data_tmp = full_data(idata)
36853 pack_tmp = ishft(data_tmp, 54)
36854 pack_tmp = ishft(pack_tmp, -47)
36855 idata = idata + 1
36856 data_tmp = full_data(idata)
36857 data_tmp = ishft(data_tmp, 17)
36858 pack_tmp = ior(pack_tmp, data_tmp)
36859 pack_tmp = ishft(pack_tmp, -7)
36860 idata = idata + 1
36861 data_tmp = full_data(idata)
36862 data_tmp = ishft(data_tmp, 17)
36863 data_tmp = iand(data_tmp, mask_left(7))
36864 pack_tmp = ior(pack_tmp, data_tmp)
36865 ipack = ipack + 1
36866 packed_data(ipack) = pack_tmp
36867 data_tmp = full_data(idata)
36868 pack_tmp = ishft(data_tmp, 24)
36869 pack_tmp = ishft(pack_tmp, -24)
36870 idata = idata + 1
36871 data_tmp = full_data(idata)
36872 data_tmp = ishft(data_tmp, 17)
36873 data_tmp = iand(data_tmp, mask_left(24))
36874 pack_tmp = ior(pack_tmp, data_tmp)
36875 ipack = ipack + 1
36876 packed_data(ipack) = pack_tmp
36877 data_tmp = full_data(idata)
36878 pack_tmp = ishft(data_tmp, 41)
36879 pack_tmp = ishft(pack_tmp, -41)
36880 idata = idata + 1
36881 data_tmp = full_data(idata)
36882 data_tmp = ishft(data_tmp, 17)
36883 data_tmp = iand(data_tmp, mask_left(41))
36884 pack_tmp = ior(pack_tmp, data_tmp)
36885 ipack = ipack + 1
36886 packed_data(ipack) = pack_tmp
36887 data_tmp = full_data(idata)
36888 pack_tmp = ishft(data_tmp, 58)
36889 pack_tmp = ishft(pack_tmp, -47)
36890 idata = idata + 1
36891 data_tmp = full_data(idata)
36892 data_tmp = ishft(data_tmp, 17)
36893 pack_tmp = ior(pack_tmp, data_tmp)
36894 pack_tmp = ishft(pack_tmp, -11)
36895 idata = idata + 1
36896 data_tmp = full_data(idata)
36897 data_tmp = ishft(data_tmp, 17)
36898 data_tmp = iand(data_tmp, mask_left(11))
36899 pack_tmp = ior(pack_tmp, data_tmp)
36900 ipack = ipack + 1
36901 packed_data(ipack) = pack_tmp
36902 data_tmp = full_data(idata)
36903 pack_tmp = ishft(data_tmp, 28)
36904 pack_tmp = ishft(pack_tmp, -28)
36905 idata = idata + 1
36906 data_tmp = full_data(idata)
36907 data_tmp = ishft(data_tmp, 17)
36908 data_tmp = iand(data_tmp, mask_left(28))
36909 pack_tmp = ior(pack_tmp, data_tmp)
36910 ipack = ipack + 1
36911 packed_data(ipack) = pack_tmp
36912 data_tmp = full_data(idata)
36913 pack_tmp = ishft(data_tmp, 45)
36914 pack_tmp = ishft(pack_tmp, -45)
36915 idata = idata + 1
36916 data_tmp = full_data(idata)
36917 data_tmp = ishft(data_tmp, 17)
36918 data_tmp = iand(data_tmp, mask_left(45))
36919 pack_tmp = ior(pack_tmp, data_tmp)
36920 ipack = ipack + 1
36921 packed_data(ipack) = pack_tmp
36922 data_tmp = full_data(idata)
36923 pack_tmp = ishft(data_tmp, 62)
36924 pack_tmp = ishft(pack_tmp, -47)
36925 idata = idata + 1
36926 data_tmp = full_data(idata)
36927 data_tmp = ishft(data_tmp, 17)
36928 pack_tmp = ior(pack_tmp, data_tmp)
36929 pack_tmp = ishft(pack_tmp, -15)
36930 idata = idata + 1
36931 data_tmp = full_data(idata)
36932 data_tmp = ishft(data_tmp, 17)
36933 data_tmp = iand(data_tmp, mask_left(15))
36934 pack_tmp = ior(pack_tmp, data_tmp)
36935 ipack = ipack + 1
36936 packed_data(ipack) = pack_tmp
36937 data_tmp = full_data(idata)
36938 pack_tmp = ishft(data_tmp, 32)
36939 pack_tmp = ishft(pack_tmp, -32)
36940 idata = idata + 1
36941 data_tmp = full_data(idata)
36942 data_tmp = ishft(data_tmp, 17)
36943 data_tmp = iand(data_tmp, mask_left(32))
36944 pack_tmp = ior(pack_tmp, data_tmp)
36945 ipack = ipack + 1
36946 packed_data(ipack) = pack_tmp
36947 data_tmp = full_data(idata)
36948 pack_tmp = ishft(data_tmp, 49)
36949 pack_tmp = ishft(pack_tmp, -47)
36950 idata = idata + 1
36951 data_tmp = full_data(idata)
36952 data_tmp = ishft(data_tmp, 17)
36953 pack_tmp = ior(pack_tmp, data_tmp)
36954 pack_tmp = ishft(pack_tmp, -2)
36955 idata = idata + 1
36956 data_tmp = full_data(idata)
36957 data_tmp = ishft(data_tmp, 17)
36958 data_tmp = iand(data_tmp, mask_left(2))
36959 pack_tmp = ior(pack_tmp, data_tmp)
36960 ipack = ipack + 1
36961 packed_data(ipack) = pack_tmp
36962 data_tmp = full_data(idata)
36963 pack_tmp = ishft(data_tmp, 19)
36964 pack_tmp = ishft(pack_tmp, -19)
36965 idata = idata + 1
36966 data_tmp = full_data(idata)
36967 data_tmp = ishft(data_tmp, 17)
36968 data_tmp = iand(data_tmp, mask_left(19))
36969 pack_tmp = ior(pack_tmp, data_tmp)
36970 ipack = ipack + 1
36971 packed_data(ipack) = pack_tmp
36972 data_tmp = full_data(idata)
36973 pack_tmp = ishft(data_tmp, 36)
36974 pack_tmp = ishft(pack_tmp, -36)
36975 idata = idata + 1
36976 data_tmp = full_data(idata)
36977 data_tmp = ishft(data_tmp, 17)
36978 data_tmp = iand(data_tmp, mask_left(36))
36979 pack_tmp = ior(pack_tmp, data_tmp)
36980 ipack = ipack + 1
36981 packed_data(ipack) = pack_tmp
36982 data_tmp = full_data(idata)
36983 pack_tmp = ishft(data_tmp, 53)
36984 pack_tmp = ishft(pack_tmp, -47)
36985 idata = idata + 1
36986 data_tmp = full_data(idata)
36987 data_tmp = ishft(data_tmp, 17)
36988 pack_tmp = ior(pack_tmp, data_tmp)
36989 pack_tmp = ishft(pack_tmp, -6)
36990 idata = idata + 1
36991 data_tmp = full_data(idata)
36992 data_tmp = ishft(data_tmp, 17)
36993 data_tmp = iand(data_tmp, mask_left(6))
36994 pack_tmp = ior(pack_tmp, data_tmp)
36995 ipack = ipack + 1
36996 packed_data(ipack) = pack_tmp
36997 data_tmp = full_data(idata)
36998 pack_tmp = ishft(data_tmp, 23)
36999 pack_tmp = ishft(pack_tmp, -23)
37000 idata = idata + 1
37001 data_tmp = full_data(idata)
37002 data_tmp = ishft(data_tmp, 17)
37003 data_tmp = iand(data_tmp, mask_left(23))
37004 pack_tmp = ior(pack_tmp, data_tmp)
37005 ipack = ipack + 1
37006 packed_data(ipack) = pack_tmp
37007 data_tmp = full_data(idata)
37008 pack_tmp = ishft(data_tmp, 40)
37009 pack_tmp = ishft(pack_tmp, -40)
37010 idata = idata + 1
37011 data_tmp = full_data(idata)
37012 data_tmp = ishft(data_tmp, 17)
37013 data_tmp = iand(data_tmp, mask_left(40))
37014 pack_tmp = ior(pack_tmp, data_tmp)
37015 ipack = ipack + 1
37016 packed_data(ipack) = pack_tmp
37017 data_tmp = full_data(idata)
37018 pack_tmp = ishft(data_tmp, 57)
37019 pack_tmp = ishft(pack_tmp, -47)
37020 idata = idata + 1
37021 data_tmp = full_data(idata)
37022 data_tmp = ishft(data_tmp, 17)
37023 pack_tmp = ior(pack_tmp, data_tmp)
37024 pack_tmp = ishft(pack_tmp, -10)
37025 idata = idata + 1
37026 data_tmp = full_data(idata)
37027 data_tmp = ishft(data_tmp, 17)
37028 data_tmp = iand(data_tmp, mask_left(10))
37029 pack_tmp = ior(pack_tmp, data_tmp)
37030 ipack = ipack + 1
37031 packed_data(ipack) = pack_tmp
37032 data_tmp = full_data(idata)
37033 pack_tmp = ishft(data_tmp, 27)
37034 pack_tmp = ishft(pack_tmp, -27)
37035 idata = idata + 1
37036 data_tmp = full_data(idata)
37037 data_tmp = ishft(data_tmp, 17)
37038 data_tmp = iand(data_tmp, mask_left(27))
37039 pack_tmp = ior(pack_tmp, data_tmp)
37040 ipack = ipack + 1
37041 packed_data(ipack) = pack_tmp
37042 data_tmp = full_data(idata)
37043 pack_tmp = ishft(data_tmp, 44)
37044 pack_tmp = ishft(pack_tmp, -44)
37045 idata = idata + 1
37046 data_tmp = full_data(idata)
37047 data_tmp = ishft(data_tmp, 17)
37048 data_tmp = iand(data_tmp, mask_left(44))
37049 pack_tmp = ior(pack_tmp, data_tmp)
37050 ipack = ipack + 1
37051 packed_data(ipack) = pack_tmp
37052 data_tmp = full_data(idata)
37053 pack_tmp = ishft(data_tmp, 61)
37054 pack_tmp = ishft(pack_tmp, -47)
37055 idata = idata + 1
37056 data_tmp = full_data(idata)
37057 data_tmp = ishft(data_tmp, 17)
37058 pack_tmp = ior(pack_tmp, data_tmp)
37059 pack_tmp = ishft(pack_tmp, -14)
37060 idata = idata + 1
37061 data_tmp = full_data(idata)
37062 data_tmp = ishft(data_tmp, 17)
37063 data_tmp = iand(data_tmp, mask_left(14))
37064 pack_tmp = ior(pack_tmp, data_tmp)
37065 ipack = ipack + 1
37066 packed_data(ipack) = pack_tmp
37067 data_tmp = full_data(idata)
37068 pack_tmp = ishft(data_tmp, 31)
37069 pack_tmp = ishft(pack_tmp, -31)
37070 idata = idata + 1
37071 data_tmp = full_data(idata)
37072 data_tmp = ishft(data_tmp, 17)
37073 data_tmp = iand(data_tmp, mask_left(31))
37074 pack_tmp = ior(pack_tmp, data_tmp)
37075 ipack = ipack + 1
37076 packed_data(ipack) = pack_tmp
37077 data_tmp = full_data(idata)
37078 pack_tmp = ishft(data_tmp, 48)
37079 pack_tmp = ishft(pack_tmp, -47)
37080 idata = idata + 1
37081 data_tmp = full_data(idata)
37082 data_tmp = ishft(data_tmp, 17)
37083 pack_tmp = ior(pack_tmp, data_tmp)
37084 pack_tmp = ishft(pack_tmp, -1)
37085 idata = idata + 1
37086 data_tmp = full_data(idata)
37087 data_tmp = ishft(data_tmp, 17)
37088 data_tmp = iand(data_tmp, mask_left(1))
37089 pack_tmp = ior(pack_tmp, data_tmp)
37090 ipack = ipack + 1
37091 packed_data(ipack) = pack_tmp
37092 data_tmp = full_data(idata)
37093 pack_tmp = ishft(data_tmp, 18)
37094 pack_tmp = ishft(pack_tmp, -18)
37095 idata = idata + 1
37096 data_tmp = full_data(idata)
37097 data_tmp = ishft(data_tmp, 17)
37098 data_tmp = iand(data_tmp, mask_left(18))
37099 pack_tmp = ior(pack_tmp, data_tmp)
37100 ipack = ipack + 1
37101 packed_data(ipack) = pack_tmp
37102 data_tmp = full_data(idata)
37103 pack_tmp = ishft(data_tmp, 35)
37104 pack_tmp = ishft(pack_tmp, -35)
37105 idata = idata + 1
37106 data_tmp = full_data(idata)
37107 data_tmp = ishft(data_tmp, 17)
37108 data_tmp = iand(data_tmp, mask_left(35))
37109 pack_tmp = ior(pack_tmp, data_tmp)
37110 ipack = ipack + 1
37111 packed_data(ipack) = pack_tmp
37112 data_tmp = full_data(idata)
37113 pack_tmp = ishft(data_tmp, 52)
37114 pack_tmp = ishft(pack_tmp, -47)
37115 idata = idata + 1
37116 data_tmp = full_data(idata)
37117 data_tmp = ishft(data_tmp, 17)
37118 pack_tmp = ior(pack_tmp, data_tmp)
37119 pack_tmp = ishft(pack_tmp, -5)
37120 idata = idata + 1
37121 data_tmp = full_data(idata)
37122 data_tmp = ishft(data_tmp, 17)
37123 data_tmp = iand(data_tmp, mask_left(5))
37124 pack_tmp = ior(pack_tmp, data_tmp)
37125 ipack = ipack + 1
37126 packed_data(ipack) = pack_tmp
37127 data_tmp = full_data(idata)
37128 pack_tmp = ishft(data_tmp, 22)
37129 pack_tmp = ishft(pack_tmp, -22)
37130 idata = idata + 1
37131 data_tmp = full_data(idata)
37132 data_tmp = ishft(data_tmp, 17)
37133 data_tmp = iand(data_tmp, mask_left(22))
37134 pack_tmp = ior(pack_tmp, data_tmp)
37135 ipack = ipack + 1
37136 packed_data(ipack) = pack_tmp
37137 data_tmp = full_data(idata)
37138 pack_tmp = ishft(data_tmp, 39)
37139 pack_tmp = ishft(pack_tmp, -39)
37140 idata = idata + 1
37141 data_tmp = full_data(idata)
37142 data_tmp = ishft(data_tmp, 17)
37143 data_tmp = iand(data_tmp, mask_left(39))
37144 pack_tmp = ior(pack_tmp, data_tmp)
37145 ipack = ipack + 1
37146 packed_data(ipack) = pack_tmp
37147 data_tmp = full_data(idata)
37148 pack_tmp = ishft(data_tmp, 56)
37149 pack_tmp = ishft(pack_tmp, -47)
37150 idata = idata + 1
37151 data_tmp = full_data(idata)
37152 data_tmp = ishft(data_tmp, 17)
37153 pack_tmp = ior(pack_tmp, data_tmp)
37154 pack_tmp = ishft(pack_tmp, -9)
37155 idata = idata + 1
37156 data_tmp = full_data(idata)
37157 data_tmp = ishft(data_tmp, 17)
37158 data_tmp = iand(data_tmp, mask_left(9))
37159 pack_tmp = ior(pack_tmp, data_tmp)
37160 ipack = ipack + 1
37161 packed_data(ipack) = pack_tmp
37162 data_tmp = full_data(idata)
37163 pack_tmp = ishft(data_tmp, 26)
37164 pack_tmp = ishft(pack_tmp, -26)
37165 idata = idata + 1
37166 data_tmp = full_data(idata)
37167 data_tmp = ishft(data_tmp, 17)
37168 data_tmp = iand(data_tmp, mask_left(26))
37169 pack_tmp = ior(pack_tmp, data_tmp)
37170 ipack = ipack + 1
37171 packed_data(ipack) = pack_tmp
37172 data_tmp = full_data(idata)
37173 pack_tmp = ishft(data_tmp, 43)
37174 pack_tmp = ishft(pack_tmp, -43)
37175 idata = idata + 1
37176 data_tmp = full_data(idata)
37177 data_tmp = ishft(data_tmp, 17)
37178 data_tmp = iand(data_tmp, mask_left(43))
37179 pack_tmp = ior(pack_tmp, data_tmp)
37180 ipack = ipack + 1
37181 packed_data(ipack) = pack_tmp
37182 data_tmp = full_data(idata)
37183 pack_tmp = ishft(data_tmp, 60)
37184 pack_tmp = ishft(pack_tmp, -47)
37185 idata = idata + 1
37186 data_tmp = full_data(idata)
37187 data_tmp = ishft(data_tmp, 17)
37188 pack_tmp = ior(pack_tmp, data_tmp)
37189 pack_tmp = ishft(pack_tmp, -13)
37190 idata = idata + 1
37191 data_tmp = full_data(idata)
37192 data_tmp = ishft(data_tmp, 17)
37193 data_tmp = iand(data_tmp, mask_left(13))
37194 pack_tmp = ior(pack_tmp, data_tmp)
37195 ipack = ipack + 1
37196 packed_data(ipack) = pack_tmp
37197 data_tmp = full_data(idata)
37198 pack_tmp = ishft(data_tmp, 30)
37199 pack_tmp = ishft(pack_tmp, -30)
37200 idata = idata + 1
37201 data_tmp = full_data(idata)
37202 data_tmp = ishft(data_tmp, 17)
37203 data_tmp = iand(data_tmp, mask_left(30))
37204 pack_tmp = ior(pack_tmp, data_tmp)
37205 ipack = ipack + 1
37206 packed_data(ipack) = pack_tmp
37207 data_tmp = full_data(idata)
37208 pack_tmp = ishft(data_tmp, 47)
37209 pack_tmp = ishft(pack_tmp, -47)
37210 idata = idata + 1
37211 data_tmp = full_data(idata)
37212 data_tmp = ishft(data_tmp, 17)
37213 pack_tmp = ior(pack_tmp, data_tmp)
37214 pack_tmp = ishft(pack_tmp, 0)
37215 pack_tmp = ishft(pack_tmp, 0)
37216 ipack = ipack + 1
37217 packed_data(ipack) = pack_tmp
37218 END DO
37219 IF (ndata_rep < ndata) THEN
37220 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
37221 END IF
37222 END SUBROUTINE ints2bits_47
37223
37224! **************************************************************************************************
37225!> \brief ...
37226!> \param Ndata ...
37227!> \param packed_data ...
37228!> \param full_data ...
37229! **************************************************************************************************
37230 SUBROUTINE bits2ints_47(Ndata, packed_data, full_data)
37231 INTEGER, INTENT(IN) :: Ndata
37232 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
37233 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
37234
37235 INTEGER, PARAMETER :: Nbits = 47
37236
37237 INTEGER :: idata, ipack, kdata, Ndata_rep
37238 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
37239
37240 ipack = 0
37241 idata = 0
37242 pack_tmp = 0
37243 ndata_rep = (ndata/64)*64
37244 DO kdata = 1, ndata_rep, 64
37245 idata = idata + 1
37246 data_tmp = ishft(pack_tmp, 47)
37247 ipack = ipack + 1
37248 pack_tmp = packed_data(ipack)
37249 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(47)))
37250 pack_tmp = ishft(pack_tmp, -47)
37251 idata = idata + 1
37252 data_tmp = ishft(pack_tmp, 30)
37253 ipack = ipack + 1
37254 pack_tmp = packed_data(ipack)
37255 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
37256 pack_tmp = ishft(pack_tmp, -30)
37257 idata = idata + 1
37258 data_tmp = ishft(pack_tmp, 13)
37259 ipack = ipack + 1
37260 pack_tmp = packed_data(ipack)
37261 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
37262 pack_tmp = ishft(pack_tmp, -13)
37263 idata = idata + 1
37264 data_tmp = iand(pack_tmp, mask_right(nbits))
37265 full_data(idata) = data_tmp
37266 pack_tmp = ishft(pack_tmp, -nbits)
37267 idata = idata + 1
37268 data_tmp = ishft(pack_tmp, 43)
37269 ipack = ipack + 1
37270 pack_tmp = packed_data(ipack)
37271 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(43)))
37272 pack_tmp = ishft(pack_tmp, -43)
37273 idata = idata + 1
37274 data_tmp = ishft(pack_tmp, 26)
37275 ipack = ipack + 1
37276 pack_tmp = packed_data(ipack)
37277 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
37278 pack_tmp = ishft(pack_tmp, -26)
37279 idata = idata + 1
37280 data_tmp = ishft(pack_tmp, 9)
37281 ipack = ipack + 1
37282 pack_tmp = packed_data(ipack)
37283 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
37284 pack_tmp = ishft(pack_tmp, -9)
37285 idata = idata + 1
37286 data_tmp = iand(pack_tmp, mask_right(nbits))
37287 full_data(idata) = data_tmp
37288 pack_tmp = ishft(pack_tmp, -nbits)
37289 idata = idata + 1
37290 data_tmp = ishft(pack_tmp, 39)
37291 ipack = ipack + 1
37292 pack_tmp = packed_data(ipack)
37293 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
37294 pack_tmp = ishft(pack_tmp, -39)
37295 idata = idata + 1
37296 data_tmp = ishft(pack_tmp, 22)
37297 ipack = ipack + 1
37298 pack_tmp = packed_data(ipack)
37299 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
37300 pack_tmp = ishft(pack_tmp, -22)
37301 idata = idata + 1
37302 data_tmp = ishft(pack_tmp, 5)
37303 ipack = ipack + 1
37304 pack_tmp = packed_data(ipack)
37305 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
37306 pack_tmp = ishft(pack_tmp, -5)
37307 idata = idata + 1
37308 data_tmp = iand(pack_tmp, mask_right(nbits))
37309 full_data(idata) = data_tmp
37310 pack_tmp = ishft(pack_tmp, -nbits)
37311 idata = idata + 1
37312 data_tmp = ishft(pack_tmp, 35)
37313 ipack = ipack + 1
37314 pack_tmp = packed_data(ipack)
37315 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
37316 pack_tmp = ishft(pack_tmp, -35)
37317 idata = idata + 1
37318 data_tmp = ishft(pack_tmp, 18)
37319 ipack = ipack + 1
37320 pack_tmp = packed_data(ipack)
37321 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
37322 pack_tmp = ishft(pack_tmp, -18)
37323 idata = idata + 1
37324 data_tmp = ishft(pack_tmp, 1)
37325 ipack = ipack + 1
37326 pack_tmp = packed_data(ipack)
37327 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
37328 pack_tmp = ishft(pack_tmp, -1)
37329 idata = idata + 1
37330 data_tmp = iand(pack_tmp, mask_right(nbits))
37331 full_data(idata) = data_tmp
37332 pack_tmp = ishft(pack_tmp, -nbits)
37333 idata = idata + 1
37334 data_tmp = ishft(pack_tmp, 31)
37335 ipack = ipack + 1
37336 pack_tmp = packed_data(ipack)
37337 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
37338 pack_tmp = ishft(pack_tmp, -31)
37339 idata = idata + 1
37340 data_tmp = ishft(pack_tmp, 14)
37341 ipack = ipack + 1
37342 pack_tmp = packed_data(ipack)
37343 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
37344 pack_tmp = ishft(pack_tmp, -14)
37345 idata = idata + 1
37346 data_tmp = iand(pack_tmp, mask_right(nbits))
37347 full_data(idata) = data_tmp
37348 pack_tmp = ishft(pack_tmp, -nbits)
37349 idata = idata + 1
37350 data_tmp = ishft(pack_tmp, 44)
37351 ipack = ipack + 1
37352 pack_tmp = packed_data(ipack)
37353 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
37354 pack_tmp = ishft(pack_tmp, -44)
37355 idata = idata + 1
37356 data_tmp = ishft(pack_tmp, 27)
37357 ipack = ipack + 1
37358 pack_tmp = packed_data(ipack)
37359 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
37360 pack_tmp = ishft(pack_tmp, -27)
37361 idata = idata + 1
37362 data_tmp = ishft(pack_tmp, 10)
37363 ipack = ipack + 1
37364 pack_tmp = packed_data(ipack)
37365 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
37366 pack_tmp = ishft(pack_tmp, -10)
37367 idata = idata + 1
37368 data_tmp = iand(pack_tmp, mask_right(nbits))
37369 full_data(idata) = data_tmp
37370 pack_tmp = ishft(pack_tmp, -nbits)
37371 idata = idata + 1
37372 data_tmp = ishft(pack_tmp, 40)
37373 ipack = ipack + 1
37374 pack_tmp = packed_data(ipack)
37375 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
37376 pack_tmp = ishft(pack_tmp, -40)
37377 idata = idata + 1
37378 data_tmp = ishft(pack_tmp, 23)
37379 ipack = ipack + 1
37380 pack_tmp = packed_data(ipack)
37381 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
37382 pack_tmp = ishft(pack_tmp, -23)
37383 idata = idata + 1
37384 data_tmp = ishft(pack_tmp, 6)
37385 ipack = ipack + 1
37386 pack_tmp = packed_data(ipack)
37387 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
37388 pack_tmp = ishft(pack_tmp, -6)
37389 idata = idata + 1
37390 data_tmp = iand(pack_tmp, mask_right(nbits))
37391 full_data(idata) = data_tmp
37392 pack_tmp = ishft(pack_tmp, -nbits)
37393 idata = idata + 1
37394 data_tmp = ishft(pack_tmp, 36)
37395 ipack = ipack + 1
37396 pack_tmp = packed_data(ipack)
37397 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
37398 pack_tmp = ishft(pack_tmp, -36)
37399 idata = idata + 1
37400 data_tmp = ishft(pack_tmp, 19)
37401 ipack = ipack + 1
37402 pack_tmp = packed_data(ipack)
37403 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
37404 pack_tmp = ishft(pack_tmp, -19)
37405 idata = idata + 1
37406 data_tmp = ishft(pack_tmp, 2)
37407 ipack = ipack + 1
37408 pack_tmp = packed_data(ipack)
37409 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
37410 pack_tmp = ishft(pack_tmp, -2)
37411 idata = idata + 1
37412 data_tmp = iand(pack_tmp, mask_right(nbits))
37413 full_data(idata) = data_tmp
37414 pack_tmp = ishft(pack_tmp, -nbits)
37415 idata = idata + 1
37416 data_tmp = ishft(pack_tmp, 32)
37417 ipack = ipack + 1
37418 pack_tmp = packed_data(ipack)
37419 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
37420 pack_tmp = ishft(pack_tmp, -32)
37421 idata = idata + 1
37422 data_tmp = ishft(pack_tmp, 15)
37423 ipack = ipack + 1
37424 pack_tmp = packed_data(ipack)
37425 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
37426 pack_tmp = ishft(pack_tmp, -15)
37427 idata = idata + 1
37428 data_tmp = iand(pack_tmp, mask_right(nbits))
37429 full_data(idata) = data_tmp
37430 pack_tmp = ishft(pack_tmp, -nbits)
37431 idata = idata + 1
37432 data_tmp = ishft(pack_tmp, 45)
37433 ipack = ipack + 1
37434 pack_tmp = packed_data(ipack)
37435 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(45)))
37436 pack_tmp = ishft(pack_tmp, -45)
37437 idata = idata + 1
37438 data_tmp = ishft(pack_tmp, 28)
37439 ipack = ipack + 1
37440 pack_tmp = packed_data(ipack)
37441 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
37442 pack_tmp = ishft(pack_tmp, -28)
37443 idata = idata + 1
37444 data_tmp = ishft(pack_tmp, 11)
37445 ipack = ipack + 1
37446 pack_tmp = packed_data(ipack)
37447 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
37448 pack_tmp = ishft(pack_tmp, -11)
37449 idata = idata + 1
37450 data_tmp = iand(pack_tmp, mask_right(nbits))
37451 full_data(idata) = data_tmp
37452 pack_tmp = ishft(pack_tmp, -nbits)
37453 idata = idata + 1
37454 data_tmp = ishft(pack_tmp, 41)
37455 ipack = ipack + 1
37456 pack_tmp = packed_data(ipack)
37457 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(41)))
37458 pack_tmp = ishft(pack_tmp, -41)
37459 idata = idata + 1
37460 data_tmp = ishft(pack_tmp, 24)
37461 ipack = ipack + 1
37462 pack_tmp = packed_data(ipack)
37463 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
37464 pack_tmp = ishft(pack_tmp, -24)
37465 idata = idata + 1
37466 data_tmp = ishft(pack_tmp, 7)
37467 ipack = ipack + 1
37468 pack_tmp = packed_data(ipack)
37469 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
37470 pack_tmp = ishft(pack_tmp, -7)
37471 idata = idata + 1
37472 data_tmp = iand(pack_tmp, mask_right(nbits))
37473 full_data(idata) = data_tmp
37474 pack_tmp = ishft(pack_tmp, -nbits)
37475 idata = idata + 1
37476 data_tmp = ishft(pack_tmp, 37)
37477 ipack = ipack + 1
37478 pack_tmp = packed_data(ipack)
37479 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
37480 pack_tmp = ishft(pack_tmp, -37)
37481 idata = idata + 1
37482 data_tmp = ishft(pack_tmp, 20)
37483 ipack = ipack + 1
37484 pack_tmp = packed_data(ipack)
37485 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
37486 pack_tmp = ishft(pack_tmp, -20)
37487 idata = idata + 1
37488 data_tmp = ishft(pack_tmp, 3)
37489 ipack = ipack + 1
37490 pack_tmp = packed_data(ipack)
37491 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
37492 pack_tmp = ishft(pack_tmp, -3)
37493 idata = idata + 1
37494 data_tmp = iand(pack_tmp, mask_right(nbits))
37495 full_data(idata) = data_tmp
37496 pack_tmp = ishft(pack_tmp, -nbits)
37497 idata = idata + 1
37498 data_tmp = ishft(pack_tmp, 33)
37499 ipack = ipack + 1
37500 pack_tmp = packed_data(ipack)
37501 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
37502 pack_tmp = ishft(pack_tmp, -33)
37503 idata = idata + 1
37504 data_tmp = ishft(pack_tmp, 16)
37505 ipack = ipack + 1
37506 pack_tmp = packed_data(ipack)
37507 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
37508 pack_tmp = ishft(pack_tmp, -16)
37509 idata = idata + 1
37510 data_tmp = iand(pack_tmp, mask_right(nbits))
37511 full_data(idata) = data_tmp
37512 pack_tmp = ishft(pack_tmp, -nbits)
37513 idata = idata + 1
37514 data_tmp = ishft(pack_tmp, 46)
37515 ipack = ipack + 1
37516 pack_tmp = packed_data(ipack)
37517 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
37518 pack_tmp = ishft(pack_tmp, -46)
37519 idata = idata + 1
37520 data_tmp = ishft(pack_tmp, 29)
37521 ipack = ipack + 1
37522 pack_tmp = packed_data(ipack)
37523 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
37524 pack_tmp = ishft(pack_tmp, -29)
37525 idata = idata + 1
37526 data_tmp = ishft(pack_tmp, 12)
37527 ipack = ipack + 1
37528 pack_tmp = packed_data(ipack)
37529 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
37530 pack_tmp = ishft(pack_tmp, -12)
37531 idata = idata + 1
37532 data_tmp = iand(pack_tmp, mask_right(nbits))
37533 full_data(idata) = data_tmp
37534 pack_tmp = ishft(pack_tmp, -nbits)
37535 idata = idata + 1
37536 data_tmp = ishft(pack_tmp, 42)
37537 ipack = ipack + 1
37538 pack_tmp = packed_data(ipack)
37539 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
37540 pack_tmp = ishft(pack_tmp, -42)
37541 idata = idata + 1
37542 data_tmp = ishft(pack_tmp, 25)
37543 ipack = ipack + 1
37544 pack_tmp = packed_data(ipack)
37545 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
37546 pack_tmp = ishft(pack_tmp, -25)
37547 idata = idata + 1
37548 data_tmp = ishft(pack_tmp, 8)
37549 ipack = ipack + 1
37550 pack_tmp = packed_data(ipack)
37551 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
37552 pack_tmp = ishft(pack_tmp, -8)
37553 idata = idata + 1
37554 data_tmp = iand(pack_tmp, mask_right(nbits))
37555 full_data(idata) = data_tmp
37556 pack_tmp = ishft(pack_tmp, -nbits)
37557 idata = idata + 1
37558 data_tmp = ishft(pack_tmp, 38)
37559 ipack = ipack + 1
37560 pack_tmp = packed_data(ipack)
37561 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
37562 pack_tmp = ishft(pack_tmp, -38)
37563 idata = idata + 1
37564 data_tmp = ishft(pack_tmp, 21)
37565 ipack = ipack + 1
37566 pack_tmp = packed_data(ipack)
37567 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
37568 pack_tmp = ishft(pack_tmp, -21)
37569 idata = idata + 1
37570 data_tmp = ishft(pack_tmp, 4)
37571 ipack = ipack + 1
37572 pack_tmp = packed_data(ipack)
37573 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
37574 pack_tmp = ishft(pack_tmp, -4)
37575 idata = idata + 1
37576 data_tmp = iand(pack_tmp, mask_right(nbits))
37577 full_data(idata) = data_tmp
37578 pack_tmp = ishft(pack_tmp, -nbits)
37579 idata = idata + 1
37580 data_tmp = ishft(pack_tmp, 34)
37581 ipack = ipack + 1
37582 pack_tmp = packed_data(ipack)
37583 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
37584 pack_tmp = ishft(pack_tmp, -34)
37585 idata = idata + 1
37586 data_tmp = ishft(pack_tmp, 17)
37587 ipack = ipack + 1
37588 pack_tmp = packed_data(ipack)
37589 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
37590 pack_tmp = ishft(pack_tmp, -17)
37591 idata = idata + 1
37592 data_tmp = iand(pack_tmp, mask_right(nbits))
37593 full_data(idata) = data_tmp
37594 pack_tmp = ishft(pack_tmp, -nbits)
37595 END DO
37596 IF (ndata_rep < ndata) THEN
37597 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
37598 END IF
37599 END SUBROUTINE bits2ints_47
37600
37601! **************************************************************************************************
37602!> \brief ...
37603!> \param Ndata ...
37604!> \param packed_data ...
37605!> \param full_data ...
37606! **************************************************************************************************
37607 SUBROUTINE ints2bits_48(Ndata, packed_data, full_data)
37608 INTEGER, INTENT(IN) :: Ndata
37609 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
37610 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
37611
37612 INTEGER, PARAMETER :: Nbits = 48
37613
37614 INTEGER :: idata, ipack, kdata, Ndata_rep
37615 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
37616
37617 idata = 0
37618 ipack = 0
37619 ndata_rep = (ndata/64)*64
37620 DO kdata = 1, ndata_rep, 64
37621 pack_tmp = 0
37622 idata = idata + 1
37623 data_tmp = full_data(idata)
37624 data_tmp = ishft(data_tmp, 16)
37625 pack_tmp = ior(pack_tmp, data_tmp)
37626 pack_tmp = ishft(pack_tmp, -16)
37627 idata = idata + 1
37628 data_tmp = full_data(idata)
37629 data_tmp = ishft(data_tmp, 16)
37630 data_tmp = iand(data_tmp, mask_left(16))
37631 pack_tmp = ior(pack_tmp, data_tmp)
37632 ipack = ipack + 1
37633 packed_data(ipack) = pack_tmp
37634 data_tmp = full_data(idata)
37635 pack_tmp = ishft(data_tmp, 32)
37636 pack_tmp = ishft(pack_tmp, -32)
37637 idata = idata + 1
37638 data_tmp = full_data(idata)
37639 data_tmp = ishft(data_tmp, 16)
37640 data_tmp = iand(data_tmp, mask_left(32))
37641 pack_tmp = ior(pack_tmp, data_tmp)
37642 ipack = ipack + 1
37643 packed_data(ipack) = pack_tmp
37644 data_tmp = full_data(idata)
37645 pack_tmp = ishft(data_tmp, 48)
37646 pack_tmp = ishft(pack_tmp, -48)
37647 idata = idata + 1
37648 data_tmp = full_data(idata)
37649 data_tmp = ishft(data_tmp, 16)
37650 pack_tmp = ior(pack_tmp, data_tmp)
37651 pack_tmp = ishft(pack_tmp, 0)
37652 idata = idata + 1
37653 data_tmp = full_data(idata)
37654 data_tmp = ishft(data_tmp, 16)
37655 data_tmp = iand(data_tmp, mask_left(0))
37656 pack_tmp = ior(pack_tmp, data_tmp)
37657 ipack = ipack + 1
37658 packed_data(ipack) = pack_tmp
37659 data_tmp = full_data(idata)
37660 pack_tmp = ishft(data_tmp, 16)
37661 pack_tmp = ishft(pack_tmp, -16)
37662 idata = idata + 1
37663 data_tmp = full_data(idata)
37664 data_tmp = ishft(data_tmp, 16)
37665 data_tmp = iand(data_tmp, mask_left(16))
37666 pack_tmp = ior(pack_tmp, data_tmp)
37667 ipack = ipack + 1
37668 packed_data(ipack) = pack_tmp
37669 data_tmp = full_data(idata)
37670 pack_tmp = ishft(data_tmp, 32)
37671 pack_tmp = ishft(pack_tmp, -32)
37672 idata = idata + 1
37673 data_tmp = full_data(idata)
37674 data_tmp = ishft(data_tmp, 16)
37675 data_tmp = iand(data_tmp, mask_left(32))
37676 pack_tmp = ior(pack_tmp, data_tmp)
37677 ipack = ipack + 1
37678 packed_data(ipack) = pack_tmp
37679 data_tmp = full_data(idata)
37680 pack_tmp = ishft(data_tmp, 48)
37681 pack_tmp = ishft(pack_tmp, -48)
37682 idata = idata + 1
37683 data_tmp = full_data(idata)
37684 data_tmp = ishft(data_tmp, 16)
37685 pack_tmp = ior(pack_tmp, data_tmp)
37686 pack_tmp = ishft(pack_tmp, 0)
37687 idata = idata + 1
37688 data_tmp = full_data(idata)
37689 data_tmp = ishft(data_tmp, 16)
37690 data_tmp = iand(data_tmp, mask_left(0))
37691 pack_tmp = ior(pack_tmp, data_tmp)
37692 ipack = ipack + 1
37693 packed_data(ipack) = pack_tmp
37694 data_tmp = full_data(idata)
37695 pack_tmp = ishft(data_tmp, 16)
37696 pack_tmp = ishft(pack_tmp, -16)
37697 idata = idata + 1
37698 data_tmp = full_data(idata)
37699 data_tmp = ishft(data_tmp, 16)
37700 data_tmp = iand(data_tmp, mask_left(16))
37701 pack_tmp = ior(pack_tmp, data_tmp)
37702 ipack = ipack + 1
37703 packed_data(ipack) = pack_tmp
37704 data_tmp = full_data(idata)
37705 pack_tmp = ishft(data_tmp, 32)
37706 pack_tmp = ishft(pack_tmp, -32)
37707 idata = idata + 1
37708 data_tmp = full_data(idata)
37709 data_tmp = ishft(data_tmp, 16)
37710 data_tmp = iand(data_tmp, mask_left(32))
37711 pack_tmp = ior(pack_tmp, data_tmp)
37712 ipack = ipack + 1
37713 packed_data(ipack) = pack_tmp
37714 data_tmp = full_data(idata)
37715 pack_tmp = ishft(data_tmp, 48)
37716 pack_tmp = ishft(pack_tmp, -48)
37717 idata = idata + 1
37718 data_tmp = full_data(idata)
37719 data_tmp = ishft(data_tmp, 16)
37720 pack_tmp = ior(pack_tmp, data_tmp)
37721 pack_tmp = ishft(pack_tmp, 0)
37722 idata = idata + 1
37723 data_tmp = full_data(idata)
37724 data_tmp = ishft(data_tmp, 16)
37725 data_tmp = iand(data_tmp, mask_left(0))
37726 pack_tmp = ior(pack_tmp, data_tmp)
37727 ipack = ipack + 1
37728 packed_data(ipack) = pack_tmp
37729 data_tmp = full_data(idata)
37730 pack_tmp = ishft(data_tmp, 16)
37731 pack_tmp = ishft(pack_tmp, -16)
37732 idata = idata + 1
37733 data_tmp = full_data(idata)
37734 data_tmp = ishft(data_tmp, 16)
37735 data_tmp = iand(data_tmp, mask_left(16))
37736 pack_tmp = ior(pack_tmp, data_tmp)
37737 ipack = ipack + 1
37738 packed_data(ipack) = pack_tmp
37739 data_tmp = full_data(idata)
37740 pack_tmp = ishft(data_tmp, 32)
37741 pack_tmp = ishft(pack_tmp, -32)
37742 idata = idata + 1
37743 data_tmp = full_data(idata)
37744 data_tmp = ishft(data_tmp, 16)
37745 data_tmp = iand(data_tmp, mask_left(32))
37746 pack_tmp = ior(pack_tmp, data_tmp)
37747 ipack = ipack + 1
37748 packed_data(ipack) = pack_tmp
37749 data_tmp = full_data(idata)
37750 pack_tmp = ishft(data_tmp, 48)
37751 pack_tmp = ishft(pack_tmp, -48)
37752 idata = idata + 1
37753 data_tmp = full_data(idata)
37754 data_tmp = ishft(data_tmp, 16)
37755 pack_tmp = ior(pack_tmp, data_tmp)
37756 pack_tmp = ishft(pack_tmp, 0)
37757 idata = idata + 1
37758 data_tmp = full_data(idata)
37759 data_tmp = ishft(data_tmp, 16)
37760 data_tmp = iand(data_tmp, mask_left(0))
37761 pack_tmp = ior(pack_tmp, data_tmp)
37762 ipack = ipack + 1
37763 packed_data(ipack) = pack_tmp
37764 data_tmp = full_data(idata)
37765 pack_tmp = ishft(data_tmp, 16)
37766 pack_tmp = ishft(pack_tmp, -16)
37767 idata = idata + 1
37768 data_tmp = full_data(idata)
37769 data_tmp = ishft(data_tmp, 16)
37770 data_tmp = iand(data_tmp, mask_left(16))
37771 pack_tmp = ior(pack_tmp, data_tmp)
37772 ipack = ipack + 1
37773 packed_data(ipack) = pack_tmp
37774 data_tmp = full_data(idata)
37775 pack_tmp = ishft(data_tmp, 32)
37776 pack_tmp = ishft(pack_tmp, -32)
37777 idata = idata + 1
37778 data_tmp = full_data(idata)
37779 data_tmp = ishft(data_tmp, 16)
37780 data_tmp = iand(data_tmp, mask_left(32))
37781 pack_tmp = ior(pack_tmp, data_tmp)
37782 ipack = ipack + 1
37783 packed_data(ipack) = pack_tmp
37784 data_tmp = full_data(idata)
37785 pack_tmp = ishft(data_tmp, 48)
37786 pack_tmp = ishft(pack_tmp, -48)
37787 idata = idata + 1
37788 data_tmp = full_data(idata)
37789 data_tmp = ishft(data_tmp, 16)
37790 pack_tmp = ior(pack_tmp, data_tmp)
37791 pack_tmp = ishft(pack_tmp, 0)
37792 idata = idata + 1
37793 data_tmp = full_data(idata)
37794 data_tmp = ishft(data_tmp, 16)
37795 data_tmp = iand(data_tmp, mask_left(0))
37796 pack_tmp = ior(pack_tmp, data_tmp)
37797 ipack = ipack + 1
37798 packed_data(ipack) = pack_tmp
37799 data_tmp = full_data(idata)
37800 pack_tmp = ishft(data_tmp, 16)
37801 pack_tmp = ishft(pack_tmp, -16)
37802 idata = idata + 1
37803 data_tmp = full_data(idata)
37804 data_tmp = ishft(data_tmp, 16)
37805 data_tmp = iand(data_tmp, mask_left(16))
37806 pack_tmp = ior(pack_tmp, data_tmp)
37807 ipack = ipack + 1
37808 packed_data(ipack) = pack_tmp
37809 data_tmp = full_data(idata)
37810 pack_tmp = ishft(data_tmp, 32)
37811 pack_tmp = ishft(pack_tmp, -32)
37812 idata = idata + 1
37813 data_tmp = full_data(idata)
37814 data_tmp = ishft(data_tmp, 16)
37815 data_tmp = iand(data_tmp, mask_left(32))
37816 pack_tmp = ior(pack_tmp, data_tmp)
37817 ipack = ipack + 1
37818 packed_data(ipack) = pack_tmp
37819 data_tmp = full_data(idata)
37820 pack_tmp = ishft(data_tmp, 48)
37821 pack_tmp = ishft(pack_tmp, -48)
37822 idata = idata + 1
37823 data_tmp = full_data(idata)
37824 data_tmp = ishft(data_tmp, 16)
37825 pack_tmp = ior(pack_tmp, data_tmp)
37826 pack_tmp = ishft(pack_tmp, 0)
37827 idata = idata + 1
37828 data_tmp = full_data(idata)
37829 data_tmp = ishft(data_tmp, 16)
37830 data_tmp = iand(data_tmp, mask_left(0))
37831 pack_tmp = ior(pack_tmp, data_tmp)
37832 ipack = ipack + 1
37833 packed_data(ipack) = pack_tmp
37834 data_tmp = full_data(idata)
37835 pack_tmp = ishft(data_tmp, 16)
37836 pack_tmp = ishft(pack_tmp, -16)
37837 idata = idata + 1
37838 data_tmp = full_data(idata)
37839 data_tmp = ishft(data_tmp, 16)
37840 data_tmp = iand(data_tmp, mask_left(16))
37841 pack_tmp = ior(pack_tmp, data_tmp)
37842 ipack = ipack + 1
37843 packed_data(ipack) = pack_tmp
37844 data_tmp = full_data(idata)
37845 pack_tmp = ishft(data_tmp, 32)
37846 pack_tmp = ishft(pack_tmp, -32)
37847 idata = idata + 1
37848 data_tmp = full_data(idata)
37849 data_tmp = ishft(data_tmp, 16)
37850 data_tmp = iand(data_tmp, mask_left(32))
37851 pack_tmp = ior(pack_tmp, data_tmp)
37852 ipack = ipack + 1
37853 packed_data(ipack) = pack_tmp
37854 data_tmp = full_data(idata)
37855 pack_tmp = ishft(data_tmp, 48)
37856 pack_tmp = ishft(pack_tmp, -48)
37857 idata = idata + 1
37858 data_tmp = full_data(idata)
37859 data_tmp = ishft(data_tmp, 16)
37860 pack_tmp = ior(pack_tmp, data_tmp)
37861 pack_tmp = ishft(pack_tmp, 0)
37862 idata = idata + 1
37863 data_tmp = full_data(idata)
37864 data_tmp = ishft(data_tmp, 16)
37865 data_tmp = iand(data_tmp, mask_left(0))
37866 pack_tmp = ior(pack_tmp, data_tmp)
37867 ipack = ipack + 1
37868 packed_data(ipack) = pack_tmp
37869 data_tmp = full_data(idata)
37870 pack_tmp = ishft(data_tmp, 16)
37871 pack_tmp = ishft(pack_tmp, -16)
37872 idata = idata + 1
37873 data_tmp = full_data(idata)
37874 data_tmp = ishft(data_tmp, 16)
37875 data_tmp = iand(data_tmp, mask_left(16))
37876 pack_tmp = ior(pack_tmp, data_tmp)
37877 ipack = ipack + 1
37878 packed_data(ipack) = pack_tmp
37879 data_tmp = full_data(idata)
37880 pack_tmp = ishft(data_tmp, 32)
37881 pack_tmp = ishft(pack_tmp, -32)
37882 idata = idata + 1
37883 data_tmp = full_data(idata)
37884 data_tmp = ishft(data_tmp, 16)
37885 data_tmp = iand(data_tmp, mask_left(32))
37886 pack_tmp = ior(pack_tmp, data_tmp)
37887 ipack = ipack + 1
37888 packed_data(ipack) = pack_tmp
37889 data_tmp = full_data(idata)
37890 pack_tmp = ishft(data_tmp, 48)
37891 pack_tmp = ishft(pack_tmp, -48)
37892 idata = idata + 1
37893 data_tmp = full_data(idata)
37894 data_tmp = ishft(data_tmp, 16)
37895 pack_tmp = ior(pack_tmp, data_tmp)
37896 pack_tmp = ishft(pack_tmp, 0)
37897 idata = idata + 1
37898 data_tmp = full_data(idata)
37899 data_tmp = ishft(data_tmp, 16)
37900 data_tmp = iand(data_tmp, mask_left(0))
37901 pack_tmp = ior(pack_tmp, data_tmp)
37902 ipack = ipack + 1
37903 packed_data(ipack) = pack_tmp
37904 data_tmp = full_data(idata)
37905 pack_tmp = ishft(data_tmp, 16)
37906 pack_tmp = ishft(pack_tmp, -16)
37907 idata = idata + 1
37908 data_tmp = full_data(idata)
37909 data_tmp = ishft(data_tmp, 16)
37910 data_tmp = iand(data_tmp, mask_left(16))
37911 pack_tmp = ior(pack_tmp, data_tmp)
37912 ipack = ipack + 1
37913 packed_data(ipack) = pack_tmp
37914 data_tmp = full_data(idata)
37915 pack_tmp = ishft(data_tmp, 32)
37916 pack_tmp = ishft(pack_tmp, -32)
37917 idata = idata + 1
37918 data_tmp = full_data(idata)
37919 data_tmp = ishft(data_tmp, 16)
37920 data_tmp = iand(data_tmp, mask_left(32))
37921 pack_tmp = ior(pack_tmp, data_tmp)
37922 ipack = ipack + 1
37923 packed_data(ipack) = pack_tmp
37924 data_tmp = full_data(idata)
37925 pack_tmp = ishft(data_tmp, 48)
37926 pack_tmp = ishft(pack_tmp, -48)
37927 idata = idata + 1
37928 data_tmp = full_data(idata)
37929 data_tmp = ishft(data_tmp, 16)
37930 pack_tmp = ior(pack_tmp, data_tmp)
37931 pack_tmp = ishft(pack_tmp, 0)
37932 idata = idata + 1
37933 data_tmp = full_data(idata)
37934 data_tmp = ishft(data_tmp, 16)
37935 data_tmp = iand(data_tmp, mask_left(0))
37936 pack_tmp = ior(pack_tmp, data_tmp)
37937 ipack = ipack + 1
37938 packed_data(ipack) = pack_tmp
37939 data_tmp = full_data(idata)
37940 pack_tmp = ishft(data_tmp, 16)
37941 pack_tmp = ishft(pack_tmp, -16)
37942 idata = idata + 1
37943 data_tmp = full_data(idata)
37944 data_tmp = ishft(data_tmp, 16)
37945 data_tmp = iand(data_tmp, mask_left(16))
37946 pack_tmp = ior(pack_tmp, data_tmp)
37947 ipack = ipack + 1
37948 packed_data(ipack) = pack_tmp
37949 data_tmp = full_data(idata)
37950 pack_tmp = ishft(data_tmp, 32)
37951 pack_tmp = ishft(pack_tmp, -32)
37952 idata = idata + 1
37953 data_tmp = full_data(idata)
37954 data_tmp = ishft(data_tmp, 16)
37955 data_tmp = iand(data_tmp, mask_left(32))
37956 pack_tmp = ior(pack_tmp, data_tmp)
37957 ipack = ipack + 1
37958 packed_data(ipack) = pack_tmp
37959 data_tmp = full_data(idata)
37960 pack_tmp = ishft(data_tmp, 48)
37961 pack_tmp = ishft(pack_tmp, -48)
37962 idata = idata + 1
37963 data_tmp = full_data(idata)
37964 data_tmp = ishft(data_tmp, 16)
37965 pack_tmp = ior(pack_tmp, data_tmp)
37966 pack_tmp = ishft(pack_tmp, 0)
37967 idata = idata + 1
37968 data_tmp = full_data(idata)
37969 data_tmp = ishft(data_tmp, 16)
37970 data_tmp = iand(data_tmp, mask_left(0))
37971 pack_tmp = ior(pack_tmp, data_tmp)
37972 ipack = ipack + 1
37973 packed_data(ipack) = pack_tmp
37974 data_tmp = full_data(idata)
37975 pack_tmp = ishft(data_tmp, 16)
37976 pack_tmp = ishft(pack_tmp, -16)
37977 idata = idata + 1
37978 data_tmp = full_data(idata)
37979 data_tmp = ishft(data_tmp, 16)
37980 data_tmp = iand(data_tmp, mask_left(16))
37981 pack_tmp = ior(pack_tmp, data_tmp)
37982 ipack = ipack + 1
37983 packed_data(ipack) = pack_tmp
37984 data_tmp = full_data(idata)
37985 pack_tmp = ishft(data_tmp, 32)
37986 pack_tmp = ishft(pack_tmp, -32)
37987 idata = idata + 1
37988 data_tmp = full_data(idata)
37989 data_tmp = ishft(data_tmp, 16)
37990 data_tmp = iand(data_tmp, mask_left(32))
37991 pack_tmp = ior(pack_tmp, data_tmp)
37992 ipack = ipack + 1
37993 packed_data(ipack) = pack_tmp
37994 data_tmp = full_data(idata)
37995 pack_tmp = ishft(data_tmp, 48)
37996 pack_tmp = ishft(pack_tmp, -48)
37997 idata = idata + 1
37998 data_tmp = full_data(idata)
37999 data_tmp = ishft(data_tmp, 16)
38000 pack_tmp = ior(pack_tmp, data_tmp)
38001 pack_tmp = ishft(pack_tmp, 0)
38002 idata = idata + 1
38003 data_tmp = full_data(idata)
38004 data_tmp = ishft(data_tmp, 16)
38005 data_tmp = iand(data_tmp, mask_left(0))
38006 pack_tmp = ior(pack_tmp, data_tmp)
38007 ipack = ipack + 1
38008 packed_data(ipack) = pack_tmp
38009 data_tmp = full_data(idata)
38010 pack_tmp = ishft(data_tmp, 16)
38011 pack_tmp = ishft(pack_tmp, -16)
38012 idata = idata + 1
38013 data_tmp = full_data(idata)
38014 data_tmp = ishft(data_tmp, 16)
38015 data_tmp = iand(data_tmp, mask_left(16))
38016 pack_tmp = ior(pack_tmp, data_tmp)
38017 ipack = ipack + 1
38018 packed_data(ipack) = pack_tmp
38019 data_tmp = full_data(idata)
38020 pack_tmp = ishft(data_tmp, 32)
38021 pack_tmp = ishft(pack_tmp, -32)
38022 idata = idata + 1
38023 data_tmp = full_data(idata)
38024 data_tmp = ishft(data_tmp, 16)
38025 data_tmp = iand(data_tmp, mask_left(32))
38026 pack_tmp = ior(pack_tmp, data_tmp)
38027 ipack = ipack + 1
38028 packed_data(ipack) = pack_tmp
38029 data_tmp = full_data(idata)
38030 pack_tmp = ishft(data_tmp, 48)
38031 pack_tmp = ishft(pack_tmp, -48)
38032 idata = idata + 1
38033 data_tmp = full_data(idata)
38034 data_tmp = ishft(data_tmp, 16)
38035 pack_tmp = ior(pack_tmp, data_tmp)
38036 pack_tmp = ishft(pack_tmp, 0)
38037 idata = idata + 1
38038 data_tmp = full_data(idata)
38039 data_tmp = ishft(data_tmp, 16)
38040 data_tmp = iand(data_tmp, mask_left(0))
38041 pack_tmp = ior(pack_tmp, data_tmp)
38042 ipack = ipack + 1
38043 packed_data(ipack) = pack_tmp
38044 data_tmp = full_data(idata)
38045 pack_tmp = ishft(data_tmp, 16)
38046 pack_tmp = ishft(pack_tmp, -16)
38047 idata = idata + 1
38048 data_tmp = full_data(idata)
38049 data_tmp = ishft(data_tmp, 16)
38050 data_tmp = iand(data_tmp, mask_left(16))
38051 pack_tmp = ior(pack_tmp, data_tmp)
38052 ipack = ipack + 1
38053 packed_data(ipack) = pack_tmp
38054 data_tmp = full_data(idata)
38055 pack_tmp = ishft(data_tmp, 32)
38056 pack_tmp = ishft(pack_tmp, -32)
38057 idata = idata + 1
38058 data_tmp = full_data(idata)
38059 data_tmp = ishft(data_tmp, 16)
38060 data_tmp = iand(data_tmp, mask_left(32))
38061 pack_tmp = ior(pack_tmp, data_tmp)
38062 ipack = ipack + 1
38063 packed_data(ipack) = pack_tmp
38064 data_tmp = full_data(idata)
38065 pack_tmp = ishft(data_tmp, 48)
38066 pack_tmp = ishft(pack_tmp, -48)
38067 idata = idata + 1
38068 data_tmp = full_data(idata)
38069 data_tmp = ishft(data_tmp, 16)
38070 pack_tmp = ior(pack_tmp, data_tmp)
38071 pack_tmp = ishft(pack_tmp, 0)
38072 idata = idata + 1
38073 data_tmp = full_data(idata)
38074 data_tmp = ishft(data_tmp, 16)
38075 data_tmp = iand(data_tmp, mask_left(0))
38076 pack_tmp = ior(pack_tmp, data_tmp)
38077 ipack = ipack + 1
38078 packed_data(ipack) = pack_tmp
38079 data_tmp = full_data(idata)
38080 pack_tmp = ishft(data_tmp, 16)
38081 pack_tmp = ishft(pack_tmp, -16)
38082 idata = idata + 1
38083 data_tmp = full_data(idata)
38084 data_tmp = ishft(data_tmp, 16)
38085 data_tmp = iand(data_tmp, mask_left(16))
38086 pack_tmp = ior(pack_tmp, data_tmp)
38087 ipack = ipack + 1
38088 packed_data(ipack) = pack_tmp
38089 data_tmp = full_data(idata)
38090 pack_tmp = ishft(data_tmp, 32)
38091 pack_tmp = ishft(pack_tmp, -32)
38092 idata = idata + 1
38093 data_tmp = full_data(idata)
38094 data_tmp = ishft(data_tmp, 16)
38095 data_tmp = iand(data_tmp, mask_left(32))
38096 pack_tmp = ior(pack_tmp, data_tmp)
38097 ipack = ipack + 1
38098 packed_data(ipack) = pack_tmp
38099 data_tmp = full_data(idata)
38100 pack_tmp = ishft(data_tmp, 48)
38101 pack_tmp = ishft(pack_tmp, -48)
38102 idata = idata + 1
38103 data_tmp = full_data(idata)
38104 data_tmp = ishft(data_tmp, 16)
38105 pack_tmp = ior(pack_tmp, data_tmp)
38106 pack_tmp = ishft(pack_tmp, 0)
38107 idata = idata + 1
38108 data_tmp = full_data(idata)
38109 data_tmp = ishft(data_tmp, 16)
38110 data_tmp = iand(data_tmp, mask_left(0))
38111 pack_tmp = ior(pack_tmp, data_tmp)
38112 ipack = ipack + 1
38113 packed_data(ipack) = pack_tmp
38114 data_tmp = full_data(idata)
38115 pack_tmp = ishft(data_tmp, 16)
38116 pack_tmp = ishft(pack_tmp, -16)
38117 idata = idata + 1
38118 data_tmp = full_data(idata)
38119 data_tmp = ishft(data_tmp, 16)
38120 data_tmp = iand(data_tmp, mask_left(16))
38121 pack_tmp = ior(pack_tmp, data_tmp)
38122 ipack = ipack + 1
38123 packed_data(ipack) = pack_tmp
38124 data_tmp = full_data(idata)
38125 pack_tmp = ishft(data_tmp, 32)
38126 pack_tmp = ishft(pack_tmp, -32)
38127 idata = idata + 1
38128 data_tmp = full_data(idata)
38129 data_tmp = ishft(data_tmp, 16)
38130 data_tmp = iand(data_tmp, mask_left(32))
38131 pack_tmp = ior(pack_tmp, data_tmp)
38132 ipack = ipack + 1
38133 packed_data(ipack) = pack_tmp
38134 data_tmp = full_data(idata)
38135 pack_tmp = ishft(data_tmp, 48)
38136 pack_tmp = ishft(pack_tmp, -48)
38137 idata = idata + 1
38138 data_tmp = full_data(idata)
38139 data_tmp = ishft(data_tmp, 16)
38140 pack_tmp = ior(pack_tmp, data_tmp)
38141 pack_tmp = ishft(pack_tmp, 0)
38142 idata = idata + 1
38143 data_tmp = full_data(idata)
38144 data_tmp = ishft(data_tmp, 16)
38145 data_tmp = iand(data_tmp, mask_left(0))
38146 pack_tmp = ior(pack_tmp, data_tmp)
38147 ipack = ipack + 1
38148 packed_data(ipack) = pack_tmp
38149 data_tmp = full_data(idata)
38150 pack_tmp = ishft(data_tmp, 16)
38151 pack_tmp = ishft(pack_tmp, -16)
38152 idata = idata + 1
38153 data_tmp = full_data(idata)
38154 data_tmp = ishft(data_tmp, 16)
38155 data_tmp = iand(data_tmp, mask_left(16))
38156 pack_tmp = ior(pack_tmp, data_tmp)
38157 ipack = ipack + 1
38158 packed_data(ipack) = pack_tmp
38159 data_tmp = full_data(idata)
38160 pack_tmp = ishft(data_tmp, 32)
38161 pack_tmp = ishft(pack_tmp, -32)
38162 idata = idata + 1
38163 data_tmp = full_data(idata)
38164 data_tmp = ishft(data_tmp, 16)
38165 data_tmp = iand(data_tmp, mask_left(32))
38166 pack_tmp = ior(pack_tmp, data_tmp)
38167 ipack = ipack + 1
38168 packed_data(ipack) = pack_tmp
38169 data_tmp = full_data(idata)
38170 pack_tmp = ishft(data_tmp, 48)
38171 pack_tmp = ishft(pack_tmp, -48)
38172 idata = idata + 1
38173 data_tmp = full_data(idata)
38174 data_tmp = ishft(data_tmp, 16)
38175 pack_tmp = ior(pack_tmp, data_tmp)
38176 pack_tmp = ishft(pack_tmp, 0)
38177 pack_tmp = ishft(pack_tmp, 0)
38178 ipack = ipack + 1
38179 packed_data(ipack) = pack_tmp
38180 END DO
38181 IF (ndata_rep < ndata) THEN
38182 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
38183 END IF
38184 END SUBROUTINE ints2bits_48
38185
38186! **************************************************************************************************
38187!> \brief ...
38188!> \param Ndata ...
38189!> \param packed_data ...
38190!> \param full_data ...
38191! **************************************************************************************************
38192 SUBROUTINE bits2ints_48(Ndata, packed_data, full_data)
38193 INTEGER, INTENT(IN) :: Ndata
38194 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
38195 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
38196
38197 INTEGER, PARAMETER :: Nbits = 48
38198
38199 INTEGER :: idata, ipack, kdata, Ndata_rep
38200 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
38201
38202 ipack = 0
38203 idata = 0
38204 pack_tmp = 0
38205 ndata_rep = (ndata/64)*64
38206 DO kdata = 1, ndata_rep, 64
38207 idata = idata + 1
38208 data_tmp = ishft(pack_tmp, 48)
38209 ipack = ipack + 1
38210 pack_tmp = packed_data(ipack)
38211 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38212 pack_tmp = ishft(pack_tmp, -48)
38213 idata = idata + 1
38214 data_tmp = ishft(pack_tmp, 32)
38215 ipack = ipack + 1
38216 pack_tmp = packed_data(ipack)
38217 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38218 pack_tmp = ishft(pack_tmp, -32)
38219 idata = idata + 1
38220 data_tmp = ishft(pack_tmp, 16)
38221 ipack = ipack + 1
38222 pack_tmp = packed_data(ipack)
38223 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38224 pack_tmp = ishft(pack_tmp, -16)
38225 idata = idata + 1
38226 data_tmp = iand(pack_tmp, mask_right(nbits))
38227 full_data(idata) = data_tmp
38228 pack_tmp = ishft(pack_tmp, -nbits)
38229 idata = idata + 1
38230 data_tmp = ishft(pack_tmp, 48)
38231 ipack = ipack + 1
38232 pack_tmp = packed_data(ipack)
38233 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38234 pack_tmp = ishft(pack_tmp, -48)
38235 idata = idata + 1
38236 data_tmp = ishft(pack_tmp, 32)
38237 ipack = ipack + 1
38238 pack_tmp = packed_data(ipack)
38239 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38240 pack_tmp = ishft(pack_tmp, -32)
38241 idata = idata + 1
38242 data_tmp = ishft(pack_tmp, 16)
38243 ipack = ipack + 1
38244 pack_tmp = packed_data(ipack)
38245 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38246 pack_tmp = ishft(pack_tmp, -16)
38247 idata = idata + 1
38248 data_tmp = iand(pack_tmp, mask_right(nbits))
38249 full_data(idata) = data_tmp
38250 pack_tmp = ishft(pack_tmp, -nbits)
38251 idata = idata + 1
38252 data_tmp = ishft(pack_tmp, 48)
38253 ipack = ipack + 1
38254 pack_tmp = packed_data(ipack)
38255 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38256 pack_tmp = ishft(pack_tmp, -48)
38257 idata = idata + 1
38258 data_tmp = ishft(pack_tmp, 32)
38259 ipack = ipack + 1
38260 pack_tmp = packed_data(ipack)
38261 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38262 pack_tmp = ishft(pack_tmp, -32)
38263 idata = idata + 1
38264 data_tmp = ishft(pack_tmp, 16)
38265 ipack = ipack + 1
38266 pack_tmp = packed_data(ipack)
38267 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38268 pack_tmp = ishft(pack_tmp, -16)
38269 idata = idata + 1
38270 data_tmp = iand(pack_tmp, mask_right(nbits))
38271 full_data(idata) = data_tmp
38272 pack_tmp = ishft(pack_tmp, -nbits)
38273 idata = idata + 1
38274 data_tmp = ishft(pack_tmp, 48)
38275 ipack = ipack + 1
38276 pack_tmp = packed_data(ipack)
38277 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38278 pack_tmp = ishft(pack_tmp, -48)
38279 idata = idata + 1
38280 data_tmp = ishft(pack_tmp, 32)
38281 ipack = ipack + 1
38282 pack_tmp = packed_data(ipack)
38283 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38284 pack_tmp = ishft(pack_tmp, -32)
38285 idata = idata + 1
38286 data_tmp = ishft(pack_tmp, 16)
38287 ipack = ipack + 1
38288 pack_tmp = packed_data(ipack)
38289 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38290 pack_tmp = ishft(pack_tmp, -16)
38291 idata = idata + 1
38292 data_tmp = iand(pack_tmp, mask_right(nbits))
38293 full_data(idata) = data_tmp
38294 pack_tmp = ishft(pack_tmp, -nbits)
38295 idata = idata + 1
38296 data_tmp = ishft(pack_tmp, 48)
38297 ipack = ipack + 1
38298 pack_tmp = packed_data(ipack)
38299 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38300 pack_tmp = ishft(pack_tmp, -48)
38301 idata = idata + 1
38302 data_tmp = ishft(pack_tmp, 32)
38303 ipack = ipack + 1
38304 pack_tmp = packed_data(ipack)
38305 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38306 pack_tmp = ishft(pack_tmp, -32)
38307 idata = idata + 1
38308 data_tmp = ishft(pack_tmp, 16)
38309 ipack = ipack + 1
38310 pack_tmp = packed_data(ipack)
38311 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38312 pack_tmp = ishft(pack_tmp, -16)
38313 idata = idata + 1
38314 data_tmp = iand(pack_tmp, mask_right(nbits))
38315 full_data(idata) = data_tmp
38316 pack_tmp = ishft(pack_tmp, -nbits)
38317 idata = idata + 1
38318 data_tmp = ishft(pack_tmp, 48)
38319 ipack = ipack + 1
38320 pack_tmp = packed_data(ipack)
38321 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38322 pack_tmp = ishft(pack_tmp, -48)
38323 idata = idata + 1
38324 data_tmp = ishft(pack_tmp, 32)
38325 ipack = ipack + 1
38326 pack_tmp = packed_data(ipack)
38327 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38328 pack_tmp = ishft(pack_tmp, -32)
38329 idata = idata + 1
38330 data_tmp = ishft(pack_tmp, 16)
38331 ipack = ipack + 1
38332 pack_tmp = packed_data(ipack)
38333 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38334 pack_tmp = ishft(pack_tmp, -16)
38335 idata = idata + 1
38336 data_tmp = iand(pack_tmp, mask_right(nbits))
38337 full_data(idata) = data_tmp
38338 pack_tmp = ishft(pack_tmp, -nbits)
38339 idata = idata + 1
38340 data_tmp = ishft(pack_tmp, 48)
38341 ipack = ipack + 1
38342 pack_tmp = packed_data(ipack)
38343 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38344 pack_tmp = ishft(pack_tmp, -48)
38345 idata = idata + 1
38346 data_tmp = ishft(pack_tmp, 32)
38347 ipack = ipack + 1
38348 pack_tmp = packed_data(ipack)
38349 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38350 pack_tmp = ishft(pack_tmp, -32)
38351 idata = idata + 1
38352 data_tmp = ishft(pack_tmp, 16)
38353 ipack = ipack + 1
38354 pack_tmp = packed_data(ipack)
38355 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38356 pack_tmp = ishft(pack_tmp, -16)
38357 idata = idata + 1
38358 data_tmp = iand(pack_tmp, mask_right(nbits))
38359 full_data(idata) = data_tmp
38360 pack_tmp = ishft(pack_tmp, -nbits)
38361 idata = idata + 1
38362 data_tmp = ishft(pack_tmp, 48)
38363 ipack = ipack + 1
38364 pack_tmp = packed_data(ipack)
38365 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38366 pack_tmp = ishft(pack_tmp, -48)
38367 idata = idata + 1
38368 data_tmp = ishft(pack_tmp, 32)
38369 ipack = ipack + 1
38370 pack_tmp = packed_data(ipack)
38371 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38372 pack_tmp = ishft(pack_tmp, -32)
38373 idata = idata + 1
38374 data_tmp = ishft(pack_tmp, 16)
38375 ipack = ipack + 1
38376 pack_tmp = packed_data(ipack)
38377 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38378 pack_tmp = ishft(pack_tmp, -16)
38379 idata = idata + 1
38380 data_tmp = iand(pack_tmp, mask_right(nbits))
38381 full_data(idata) = data_tmp
38382 pack_tmp = ishft(pack_tmp, -nbits)
38383 idata = idata + 1
38384 data_tmp = ishft(pack_tmp, 48)
38385 ipack = ipack + 1
38386 pack_tmp = packed_data(ipack)
38387 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38388 pack_tmp = ishft(pack_tmp, -48)
38389 idata = idata + 1
38390 data_tmp = ishft(pack_tmp, 32)
38391 ipack = ipack + 1
38392 pack_tmp = packed_data(ipack)
38393 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38394 pack_tmp = ishft(pack_tmp, -32)
38395 idata = idata + 1
38396 data_tmp = ishft(pack_tmp, 16)
38397 ipack = ipack + 1
38398 pack_tmp = packed_data(ipack)
38399 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38400 pack_tmp = ishft(pack_tmp, -16)
38401 idata = idata + 1
38402 data_tmp = iand(pack_tmp, mask_right(nbits))
38403 full_data(idata) = data_tmp
38404 pack_tmp = ishft(pack_tmp, -nbits)
38405 idata = idata + 1
38406 data_tmp = ishft(pack_tmp, 48)
38407 ipack = ipack + 1
38408 pack_tmp = packed_data(ipack)
38409 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38410 pack_tmp = ishft(pack_tmp, -48)
38411 idata = idata + 1
38412 data_tmp = ishft(pack_tmp, 32)
38413 ipack = ipack + 1
38414 pack_tmp = packed_data(ipack)
38415 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38416 pack_tmp = ishft(pack_tmp, -32)
38417 idata = idata + 1
38418 data_tmp = ishft(pack_tmp, 16)
38419 ipack = ipack + 1
38420 pack_tmp = packed_data(ipack)
38421 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38422 pack_tmp = ishft(pack_tmp, -16)
38423 idata = idata + 1
38424 data_tmp = iand(pack_tmp, mask_right(nbits))
38425 full_data(idata) = data_tmp
38426 pack_tmp = ishft(pack_tmp, -nbits)
38427 idata = idata + 1
38428 data_tmp = ishft(pack_tmp, 48)
38429 ipack = ipack + 1
38430 pack_tmp = packed_data(ipack)
38431 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38432 pack_tmp = ishft(pack_tmp, -48)
38433 idata = idata + 1
38434 data_tmp = ishft(pack_tmp, 32)
38435 ipack = ipack + 1
38436 pack_tmp = packed_data(ipack)
38437 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38438 pack_tmp = ishft(pack_tmp, -32)
38439 idata = idata + 1
38440 data_tmp = ishft(pack_tmp, 16)
38441 ipack = ipack + 1
38442 pack_tmp = packed_data(ipack)
38443 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38444 pack_tmp = ishft(pack_tmp, -16)
38445 idata = idata + 1
38446 data_tmp = iand(pack_tmp, mask_right(nbits))
38447 full_data(idata) = data_tmp
38448 pack_tmp = ishft(pack_tmp, -nbits)
38449 idata = idata + 1
38450 data_tmp = ishft(pack_tmp, 48)
38451 ipack = ipack + 1
38452 pack_tmp = packed_data(ipack)
38453 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38454 pack_tmp = ishft(pack_tmp, -48)
38455 idata = idata + 1
38456 data_tmp = ishft(pack_tmp, 32)
38457 ipack = ipack + 1
38458 pack_tmp = packed_data(ipack)
38459 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38460 pack_tmp = ishft(pack_tmp, -32)
38461 idata = idata + 1
38462 data_tmp = ishft(pack_tmp, 16)
38463 ipack = ipack + 1
38464 pack_tmp = packed_data(ipack)
38465 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38466 pack_tmp = ishft(pack_tmp, -16)
38467 idata = idata + 1
38468 data_tmp = iand(pack_tmp, mask_right(nbits))
38469 full_data(idata) = data_tmp
38470 pack_tmp = ishft(pack_tmp, -nbits)
38471 idata = idata + 1
38472 data_tmp = ishft(pack_tmp, 48)
38473 ipack = ipack + 1
38474 pack_tmp = packed_data(ipack)
38475 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38476 pack_tmp = ishft(pack_tmp, -48)
38477 idata = idata + 1
38478 data_tmp = ishft(pack_tmp, 32)
38479 ipack = ipack + 1
38480 pack_tmp = packed_data(ipack)
38481 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38482 pack_tmp = ishft(pack_tmp, -32)
38483 idata = idata + 1
38484 data_tmp = ishft(pack_tmp, 16)
38485 ipack = ipack + 1
38486 pack_tmp = packed_data(ipack)
38487 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38488 pack_tmp = ishft(pack_tmp, -16)
38489 idata = idata + 1
38490 data_tmp = iand(pack_tmp, mask_right(nbits))
38491 full_data(idata) = data_tmp
38492 pack_tmp = ishft(pack_tmp, -nbits)
38493 idata = idata + 1
38494 data_tmp = ishft(pack_tmp, 48)
38495 ipack = ipack + 1
38496 pack_tmp = packed_data(ipack)
38497 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38498 pack_tmp = ishft(pack_tmp, -48)
38499 idata = idata + 1
38500 data_tmp = ishft(pack_tmp, 32)
38501 ipack = ipack + 1
38502 pack_tmp = packed_data(ipack)
38503 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38504 pack_tmp = ishft(pack_tmp, -32)
38505 idata = idata + 1
38506 data_tmp = ishft(pack_tmp, 16)
38507 ipack = ipack + 1
38508 pack_tmp = packed_data(ipack)
38509 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38510 pack_tmp = ishft(pack_tmp, -16)
38511 idata = idata + 1
38512 data_tmp = iand(pack_tmp, mask_right(nbits))
38513 full_data(idata) = data_tmp
38514 pack_tmp = ishft(pack_tmp, -nbits)
38515 idata = idata + 1
38516 data_tmp = ishft(pack_tmp, 48)
38517 ipack = ipack + 1
38518 pack_tmp = packed_data(ipack)
38519 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38520 pack_tmp = ishft(pack_tmp, -48)
38521 idata = idata + 1
38522 data_tmp = ishft(pack_tmp, 32)
38523 ipack = ipack + 1
38524 pack_tmp = packed_data(ipack)
38525 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38526 pack_tmp = ishft(pack_tmp, -32)
38527 idata = idata + 1
38528 data_tmp = ishft(pack_tmp, 16)
38529 ipack = ipack + 1
38530 pack_tmp = packed_data(ipack)
38531 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38532 pack_tmp = ishft(pack_tmp, -16)
38533 idata = idata + 1
38534 data_tmp = iand(pack_tmp, mask_right(nbits))
38535 full_data(idata) = data_tmp
38536 pack_tmp = ishft(pack_tmp, -nbits)
38537 idata = idata + 1
38538 data_tmp = ishft(pack_tmp, 48)
38539 ipack = ipack + 1
38540 pack_tmp = packed_data(ipack)
38541 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
38542 pack_tmp = ishft(pack_tmp, -48)
38543 idata = idata + 1
38544 data_tmp = ishft(pack_tmp, 32)
38545 ipack = ipack + 1
38546 pack_tmp = packed_data(ipack)
38547 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
38548 pack_tmp = ishft(pack_tmp, -32)
38549 idata = idata + 1
38550 data_tmp = ishft(pack_tmp, 16)
38551 ipack = ipack + 1
38552 pack_tmp = packed_data(ipack)
38553 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
38554 pack_tmp = ishft(pack_tmp, -16)
38555 idata = idata + 1
38556 data_tmp = iand(pack_tmp, mask_right(nbits))
38557 full_data(idata) = data_tmp
38558 pack_tmp = ishft(pack_tmp, -nbits)
38559 END DO
38560 IF (ndata_rep < ndata) THEN
38561 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
38562 END IF
38563 END SUBROUTINE bits2ints_48
38564
38565! **************************************************************************************************
38566!> \brief ...
38567!> \param Ndata ...
38568!> \param packed_data ...
38569!> \param full_data ...
38570! **************************************************************************************************
38571 SUBROUTINE ints2bits_49(Ndata, packed_data, full_data)
38572 INTEGER, INTENT(IN) :: Ndata
38573 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
38574 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
38575
38576 INTEGER, PARAMETER :: Nbits = 49
38577
38578 INTEGER :: idata, ipack, kdata, Ndata_rep
38579 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
38580
38581 idata = 0
38582 ipack = 0
38583 ndata_rep = (ndata/64)*64
38584 DO kdata = 1, ndata_rep, 64
38585 pack_tmp = 0
38586 idata = idata + 1
38587 data_tmp = full_data(idata)
38588 data_tmp = ishft(data_tmp, 15)
38589 pack_tmp = ior(pack_tmp, data_tmp)
38590 pack_tmp = ishft(pack_tmp, -15)
38591 idata = idata + 1
38592 data_tmp = full_data(idata)
38593 data_tmp = ishft(data_tmp, 15)
38594 data_tmp = iand(data_tmp, mask_left(15))
38595 pack_tmp = ior(pack_tmp, data_tmp)
38596 ipack = ipack + 1
38597 packed_data(ipack) = pack_tmp
38598 data_tmp = full_data(idata)
38599 pack_tmp = ishft(data_tmp, 30)
38600 pack_tmp = ishft(pack_tmp, -30)
38601 idata = idata + 1
38602 data_tmp = full_data(idata)
38603 data_tmp = ishft(data_tmp, 15)
38604 data_tmp = iand(data_tmp, mask_left(30))
38605 pack_tmp = ior(pack_tmp, data_tmp)
38606 ipack = ipack + 1
38607 packed_data(ipack) = pack_tmp
38608 data_tmp = full_data(idata)
38609 pack_tmp = ishft(data_tmp, 45)
38610 pack_tmp = ishft(pack_tmp, -45)
38611 idata = idata + 1
38612 data_tmp = full_data(idata)
38613 data_tmp = ishft(data_tmp, 15)
38614 data_tmp = iand(data_tmp, mask_left(45))
38615 pack_tmp = ior(pack_tmp, data_tmp)
38616 ipack = ipack + 1
38617 packed_data(ipack) = pack_tmp
38618 data_tmp = full_data(idata)
38619 pack_tmp = ishft(data_tmp, 60)
38620 pack_tmp = ishft(pack_tmp, -49)
38621 idata = idata + 1
38622 data_tmp = full_data(idata)
38623 data_tmp = ishft(data_tmp, 15)
38624 pack_tmp = ior(pack_tmp, data_tmp)
38625 pack_tmp = ishft(pack_tmp, -11)
38626 idata = idata + 1
38627 data_tmp = full_data(idata)
38628 data_tmp = ishft(data_tmp, 15)
38629 data_tmp = iand(data_tmp, mask_left(11))
38630 pack_tmp = ior(pack_tmp, data_tmp)
38631 ipack = ipack + 1
38632 packed_data(ipack) = pack_tmp
38633 data_tmp = full_data(idata)
38634 pack_tmp = ishft(data_tmp, 26)
38635 pack_tmp = ishft(pack_tmp, -26)
38636 idata = idata + 1
38637 data_tmp = full_data(idata)
38638 data_tmp = ishft(data_tmp, 15)
38639 data_tmp = iand(data_tmp, mask_left(26))
38640 pack_tmp = ior(pack_tmp, data_tmp)
38641 ipack = ipack + 1
38642 packed_data(ipack) = pack_tmp
38643 data_tmp = full_data(idata)
38644 pack_tmp = ishft(data_tmp, 41)
38645 pack_tmp = ishft(pack_tmp, -41)
38646 idata = idata + 1
38647 data_tmp = full_data(idata)
38648 data_tmp = ishft(data_tmp, 15)
38649 data_tmp = iand(data_tmp, mask_left(41))
38650 pack_tmp = ior(pack_tmp, data_tmp)
38651 ipack = ipack + 1
38652 packed_data(ipack) = pack_tmp
38653 data_tmp = full_data(idata)
38654 pack_tmp = ishft(data_tmp, 56)
38655 pack_tmp = ishft(pack_tmp, -49)
38656 idata = idata + 1
38657 data_tmp = full_data(idata)
38658 data_tmp = ishft(data_tmp, 15)
38659 pack_tmp = ior(pack_tmp, data_tmp)
38660 pack_tmp = ishft(pack_tmp, -7)
38661 idata = idata + 1
38662 data_tmp = full_data(idata)
38663 data_tmp = ishft(data_tmp, 15)
38664 data_tmp = iand(data_tmp, mask_left(7))
38665 pack_tmp = ior(pack_tmp, data_tmp)
38666 ipack = ipack + 1
38667 packed_data(ipack) = pack_tmp
38668 data_tmp = full_data(idata)
38669 pack_tmp = ishft(data_tmp, 22)
38670 pack_tmp = ishft(pack_tmp, -22)
38671 idata = idata + 1
38672 data_tmp = full_data(idata)
38673 data_tmp = ishft(data_tmp, 15)
38674 data_tmp = iand(data_tmp, mask_left(22))
38675 pack_tmp = ior(pack_tmp, data_tmp)
38676 ipack = ipack + 1
38677 packed_data(ipack) = pack_tmp
38678 data_tmp = full_data(idata)
38679 pack_tmp = ishft(data_tmp, 37)
38680 pack_tmp = ishft(pack_tmp, -37)
38681 idata = idata + 1
38682 data_tmp = full_data(idata)
38683 data_tmp = ishft(data_tmp, 15)
38684 data_tmp = iand(data_tmp, mask_left(37))
38685 pack_tmp = ior(pack_tmp, data_tmp)
38686 ipack = ipack + 1
38687 packed_data(ipack) = pack_tmp
38688 data_tmp = full_data(idata)
38689 pack_tmp = ishft(data_tmp, 52)
38690 pack_tmp = ishft(pack_tmp, -49)
38691 idata = idata + 1
38692 data_tmp = full_data(idata)
38693 data_tmp = ishft(data_tmp, 15)
38694 pack_tmp = ior(pack_tmp, data_tmp)
38695 pack_tmp = ishft(pack_tmp, -3)
38696 idata = idata + 1
38697 data_tmp = full_data(idata)
38698 data_tmp = ishft(data_tmp, 15)
38699 data_tmp = iand(data_tmp, mask_left(3))
38700 pack_tmp = ior(pack_tmp, data_tmp)
38701 ipack = ipack + 1
38702 packed_data(ipack) = pack_tmp
38703 data_tmp = full_data(idata)
38704 pack_tmp = ishft(data_tmp, 18)
38705 pack_tmp = ishft(pack_tmp, -18)
38706 idata = idata + 1
38707 data_tmp = full_data(idata)
38708 data_tmp = ishft(data_tmp, 15)
38709 data_tmp = iand(data_tmp, mask_left(18))
38710 pack_tmp = ior(pack_tmp, data_tmp)
38711 ipack = ipack + 1
38712 packed_data(ipack) = pack_tmp
38713 data_tmp = full_data(idata)
38714 pack_tmp = ishft(data_tmp, 33)
38715 pack_tmp = ishft(pack_tmp, -33)
38716 idata = idata + 1
38717 data_tmp = full_data(idata)
38718 data_tmp = ishft(data_tmp, 15)
38719 data_tmp = iand(data_tmp, mask_left(33))
38720 pack_tmp = ior(pack_tmp, data_tmp)
38721 ipack = ipack + 1
38722 packed_data(ipack) = pack_tmp
38723 data_tmp = full_data(idata)
38724 pack_tmp = ishft(data_tmp, 48)
38725 pack_tmp = ishft(pack_tmp, -48)
38726 idata = idata + 1
38727 data_tmp = full_data(idata)
38728 data_tmp = ishft(data_tmp, 15)
38729 data_tmp = iand(data_tmp, mask_left(48))
38730 pack_tmp = ior(pack_tmp, data_tmp)
38731 ipack = ipack + 1
38732 packed_data(ipack) = pack_tmp
38733 data_tmp = full_data(idata)
38734 pack_tmp = ishft(data_tmp, 63)
38735 pack_tmp = ishft(pack_tmp, -49)
38736 idata = idata + 1
38737 data_tmp = full_data(idata)
38738 data_tmp = ishft(data_tmp, 15)
38739 pack_tmp = ior(pack_tmp, data_tmp)
38740 pack_tmp = ishft(pack_tmp, -14)
38741 idata = idata + 1
38742 data_tmp = full_data(idata)
38743 data_tmp = ishft(data_tmp, 15)
38744 data_tmp = iand(data_tmp, mask_left(14))
38745 pack_tmp = ior(pack_tmp, data_tmp)
38746 ipack = ipack + 1
38747 packed_data(ipack) = pack_tmp
38748 data_tmp = full_data(idata)
38749 pack_tmp = ishft(data_tmp, 29)
38750 pack_tmp = ishft(pack_tmp, -29)
38751 idata = idata + 1
38752 data_tmp = full_data(idata)
38753 data_tmp = ishft(data_tmp, 15)
38754 data_tmp = iand(data_tmp, mask_left(29))
38755 pack_tmp = ior(pack_tmp, data_tmp)
38756 ipack = ipack + 1
38757 packed_data(ipack) = pack_tmp
38758 data_tmp = full_data(idata)
38759 pack_tmp = ishft(data_tmp, 44)
38760 pack_tmp = ishft(pack_tmp, -44)
38761 idata = idata + 1
38762 data_tmp = full_data(idata)
38763 data_tmp = ishft(data_tmp, 15)
38764 data_tmp = iand(data_tmp, mask_left(44))
38765 pack_tmp = ior(pack_tmp, data_tmp)
38766 ipack = ipack + 1
38767 packed_data(ipack) = pack_tmp
38768 data_tmp = full_data(idata)
38769 pack_tmp = ishft(data_tmp, 59)
38770 pack_tmp = ishft(pack_tmp, -49)
38771 idata = idata + 1
38772 data_tmp = full_data(idata)
38773 data_tmp = ishft(data_tmp, 15)
38774 pack_tmp = ior(pack_tmp, data_tmp)
38775 pack_tmp = ishft(pack_tmp, -10)
38776 idata = idata + 1
38777 data_tmp = full_data(idata)
38778 data_tmp = ishft(data_tmp, 15)
38779 data_tmp = iand(data_tmp, mask_left(10))
38780 pack_tmp = ior(pack_tmp, data_tmp)
38781 ipack = ipack + 1
38782 packed_data(ipack) = pack_tmp
38783 data_tmp = full_data(idata)
38784 pack_tmp = ishft(data_tmp, 25)
38785 pack_tmp = ishft(pack_tmp, -25)
38786 idata = idata + 1
38787 data_tmp = full_data(idata)
38788 data_tmp = ishft(data_tmp, 15)
38789 data_tmp = iand(data_tmp, mask_left(25))
38790 pack_tmp = ior(pack_tmp, data_tmp)
38791 ipack = ipack + 1
38792 packed_data(ipack) = pack_tmp
38793 data_tmp = full_data(idata)
38794 pack_tmp = ishft(data_tmp, 40)
38795 pack_tmp = ishft(pack_tmp, -40)
38796 idata = idata + 1
38797 data_tmp = full_data(idata)
38798 data_tmp = ishft(data_tmp, 15)
38799 data_tmp = iand(data_tmp, mask_left(40))
38800 pack_tmp = ior(pack_tmp, data_tmp)
38801 ipack = ipack + 1
38802 packed_data(ipack) = pack_tmp
38803 data_tmp = full_data(idata)
38804 pack_tmp = ishft(data_tmp, 55)
38805 pack_tmp = ishft(pack_tmp, -49)
38806 idata = idata + 1
38807 data_tmp = full_data(idata)
38808 data_tmp = ishft(data_tmp, 15)
38809 pack_tmp = ior(pack_tmp, data_tmp)
38810 pack_tmp = ishft(pack_tmp, -6)
38811 idata = idata + 1
38812 data_tmp = full_data(idata)
38813 data_tmp = ishft(data_tmp, 15)
38814 data_tmp = iand(data_tmp, mask_left(6))
38815 pack_tmp = ior(pack_tmp, data_tmp)
38816 ipack = ipack + 1
38817 packed_data(ipack) = pack_tmp
38818 data_tmp = full_data(idata)
38819 pack_tmp = ishft(data_tmp, 21)
38820 pack_tmp = ishft(pack_tmp, -21)
38821 idata = idata + 1
38822 data_tmp = full_data(idata)
38823 data_tmp = ishft(data_tmp, 15)
38824 data_tmp = iand(data_tmp, mask_left(21))
38825 pack_tmp = ior(pack_tmp, data_tmp)
38826 ipack = ipack + 1
38827 packed_data(ipack) = pack_tmp
38828 data_tmp = full_data(idata)
38829 pack_tmp = ishft(data_tmp, 36)
38830 pack_tmp = ishft(pack_tmp, -36)
38831 idata = idata + 1
38832 data_tmp = full_data(idata)
38833 data_tmp = ishft(data_tmp, 15)
38834 data_tmp = iand(data_tmp, mask_left(36))
38835 pack_tmp = ior(pack_tmp, data_tmp)
38836 ipack = ipack + 1
38837 packed_data(ipack) = pack_tmp
38838 data_tmp = full_data(idata)
38839 pack_tmp = ishft(data_tmp, 51)
38840 pack_tmp = ishft(pack_tmp, -49)
38841 idata = idata + 1
38842 data_tmp = full_data(idata)
38843 data_tmp = ishft(data_tmp, 15)
38844 pack_tmp = ior(pack_tmp, data_tmp)
38845 pack_tmp = ishft(pack_tmp, -2)
38846 idata = idata + 1
38847 data_tmp = full_data(idata)
38848 data_tmp = ishft(data_tmp, 15)
38849 data_tmp = iand(data_tmp, mask_left(2))
38850 pack_tmp = ior(pack_tmp, data_tmp)
38851 ipack = ipack + 1
38852 packed_data(ipack) = pack_tmp
38853 data_tmp = full_data(idata)
38854 pack_tmp = ishft(data_tmp, 17)
38855 pack_tmp = ishft(pack_tmp, -17)
38856 idata = idata + 1
38857 data_tmp = full_data(idata)
38858 data_tmp = ishft(data_tmp, 15)
38859 data_tmp = iand(data_tmp, mask_left(17))
38860 pack_tmp = ior(pack_tmp, data_tmp)
38861 ipack = ipack + 1
38862 packed_data(ipack) = pack_tmp
38863 data_tmp = full_data(idata)
38864 pack_tmp = ishft(data_tmp, 32)
38865 pack_tmp = ishft(pack_tmp, -32)
38866 idata = idata + 1
38867 data_tmp = full_data(idata)
38868 data_tmp = ishft(data_tmp, 15)
38869 data_tmp = iand(data_tmp, mask_left(32))
38870 pack_tmp = ior(pack_tmp, data_tmp)
38871 ipack = ipack + 1
38872 packed_data(ipack) = pack_tmp
38873 data_tmp = full_data(idata)
38874 pack_tmp = ishft(data_tmp, 47)
38875 pack_tmp = ishft(pack_tmp, -47)
38876 idata = idata + 1
38877 data_tmp = full_data(idata)
38878 data_tmp = ishft(data_tmp, 15)
38879 data_tmp = iand(data_tmp, mask_left(47))
38880 pack_tmp = ior(pack_tmp, data_tmp)
38881 ipack = ipack + 1
38882 packed_data(ipack) = pack_tmp
38883 data_tmp = full_data(idata)
38884 pack_tmp = ishft(data_tmp, 62)
38885 pack_tmp = ishft(pack_tmp, -49)
38886 idata = idata + 1
38887 data_tmp = full_data(idata)
38888 data_tmp = ishft(data_tmp, 15)
38889 pack_tmp = ior(pack_tmp, data_tmp)
38890 pack_tmp = ishft(pack_tmp, -13)
38891 idata = idata + 1
38892 data_tmp = full_data(idata)
38893 data_tmp = ishft(data_tmp, 15)
38894 data_tmp = iand(data_tmp, mask_left(13))
38895 pack_tmp = ior(pack_tmp, data_tmp)
38896 ipack = ipack + 1
38897 packed_data(ipack) = pack_tmp
38898 data_tmp = full_data(idata)
38899 pack_tmp = ishft(data_tmp, 28)
38900 pack_tmp = ishft(pack_tmp, -28)
38901 idata = idata + 1
38902 data_tmp = full_data(idata)
38903 data_tmp = ishft(data_tmp, 15)
38904 data_tmp = iand(data_tmp, mask_left(28))
38905 pack_tmp = ior(pack_tmp, data_tmp)
38906 ipack = ipack + 1
38907 packed_data(ipack) = pack_tmp
38908 data_tmp = full_data(idata)
38909 pack_tmp = ishft(data_tmp, 43)
38910 pack_tmp = ishft(pack_tmp, -43)
38911 idata = idata + 1
38912 data_tmp = full_data(idata)
38913 data_tmp = ishft(data_tmp, 15)
38914 data_tmp = iand(data_tmp, mask_left(43))
38915 pack_tmp = ior(pack_tmp, data_tmp)
38916 ipack = ipack + 1
38917 packed_data(ipack) = pack_tmp
38918 data_tmp = full_data(idata)
38919 pack_tmp = ishft(data_tmp, 58)
38920 pack_tmp = ishft(pack_tmp, -49)
38921 idata = idata + 1
38922 data_tmp = full_data(idata)
38923 data_tmp = ishft(data_tmp, 15)
38924 pack_tmp = ior(pack_tmp, data_tmp)
38925 pack_tmp = ishft(pack_tmp, -9)
38926 idata = idata + 1
38927 data_tmp = full_data(idata)
38928 data_tmp = ishft(data_tmp, 15)
38929 data_tmp = iand(data_tmp, mask_left(9))
38930 pack_tmp = ior(pack_tmp, data_tmp)
38931 ipack = ipack + 1
38932 packed_data(ipack) = pack_tmp
38933 data_tmp = full_data(idata)
38934 pack_tmp = ishft(data_tmp, 24)
38935 pack_tmp = ishft(pack_tmp, -24)
38936 idata = idata + 1
38937 data_tmp = full_data(idata)
38938 data_tmp = ishft(data_tmp, 15)
38939 data_tmp = iand(data_tmp, mask_left(24))
38940 pack_tmp = ior(pack_tmp, data_tmp)
38941 ipack = ipack + 1
38942 packed_data(ipack) = pack_tmp
38943 data_tmp = full_data(idata)
38944 pack_tmp = ishft(data_tmp, 39)
38945 pack_tmp = ishft(pack_tmp, -39)
38946 idata = idata + 1
38947 data_tmp = full_data(idata)
38948 data_tmp = ishft(data_tmp, 15)
38949 data_tmp = iand(data_tmp, mask_left(39))
38950 pack_tmp = ior(pack_tmp, data_tmp)
38951 ipack = ipack + 1
38952 packed_data(ipack) = pack_tmp
38953 data_tmp = full_data(idata)
38954 pack_tmp = ishft(data_tmp, 54)
38955 pack_tmp = ishft(pack_tmp, -49)
38956 idata = idata + 1
38957 data_tmp = full_data(idata)
38958 data_tmp = ishft(data_tmp, 15)
38959 pack_tmp = ior(pack_tmp, data_tmp)
38960 pack_tmp = ishft(pack_tmp, -5)
38961 idata = idata + 1
38962 data_tmp = full_data(idata)
38963 data_tmp = ishft(data_tmp, 15)
38964 data_tmp = iand(data_tmp, mask_left(5))
38965 pack_tmp = ior(pack_tmp, data_tmp)
38966 ipack = ipack + 1
38967 packed_data(ipack) = pack_tmp
38968 data_tmp = full_data(idata)
38969 pack_tmp = ishft(data_tmp, 20)
38970 pack_tmp = ishft(pack_tmp, -20)
38971 idata = idata + 1
38972 data_tmp = full_data(idata)
38973 data_tmp = ishft(data_tmp, 15)
38974 data_tmp = iand(data_tmp, mask_left(20))
38975 pack_tmp = ior(pack_tmp, data_tmp)
38976 ipack = ipack + 1
38977 packed_data(ipack) = pack_tmp
38978 data_tmp = full_data(idata)
38979 pack_tmp = ishft(data_tmp, 35)
38980 pack_tmp = ishft(pack_tmp, -35)
38981 idata = idata + 1
38982 data_tmp = full_data(idata)
38983 data_tmp = ishft(data_tmp, 15)
38984 data_tmp = iand(data_tmp, mask_left(35))
38985 pack_tmp = ior(pack_tmp, data_tmp)
38986 ipack = ipack + 1
38987 packed_data(ipack) = pack_tmp
38988 data_tmp = full_data(idata)
38989 pack_tmp = ishft(data_tmp, 50)
38990 pack_tmp = ishft(pack_tmp, -49)
38991 idata = idata + 1
38992 data_tmp = full_data(idata)
38993 data_tmp = ishft(data_tmp, 15)
38994 pack_tmp = ior(pack_tmp, data_tmp)
38995 pack_tmp = ishft(pack_tmp, -1)
38996 idata = idata + 1
38997 data_tmp = full_data(idata)
38998 data_tmp = ishft(data_tmp, 15)
38999 data_tmp = iand(data_tmp, mask_left(1))
39000 pack_tmp = ior(pack_tmp, data_tmp)
39001 ipack = ipack + 1
39002 packed_data(ipack) = pack_tmp
39003 data_tmp = full_data(idata)
39004 pack_tmp = ishft(data_tmp, 16)
39005 pack_tmp = ishft(pack_tmp, -16)
39006 idata = idata + 1
39007 data_tmp = full_data(idata)
39008 data_tmp = ishft(data_tmp, 15)
39009 data_tmp = iand(data_tmp, mask_left(16))
39010 pack_tmp = ior(pack_tmp, data_tmp)
39011 ipack = ipack + 1
39012 packed_data(ipack) = pack_tmp
39013 data_tmp = full_data(idata)
39014 pack_tmp = ishft(data_tmp, 31)
39015 pack_tmp = ishft(pack_tmp, -31)
39016 idata = idata + 1
39017 data_tmp = full_data(idata)
39018 data_tmp = ishft(data_tmp, 15)
39019 data_tmp = iand(data_tmp, mask_left(31))
39020 pack_tmp = ior(pack_tmp, data_tmp)
39021 ipack = ipack + 1
39022 packed_data(ipack) = pack_tmp
39023 data_tmp = full_data(idata)
39024 pack_tmp = ishft(data_tmp, 46)
39025 pack_tmp = ishft(pack_tmp, -46)
39026 idata = idata + 1
39027 data_tmp = full_data(idata)
39028 data_tmp = ishft(data_tmp, 15)
39029 data_tmp = iand(data_tmp, mask_left(46))
39030 pack_tmp = ior(pack_tmp, data_tmp)
39031 ipack = ipack + 1
39032 packed_data(ipack) = pack_tmp
39033 data_tmp = full_data(idata)
39034 pack_tmp = ishft(data_tmp, 61)
39035 pack_tmp = ishft(pack_tmp, -49)
39036 idata = idata + 1
39037 data_tmp = full_data(idata)
39038 data_tmp = ishft(data_tmp, 15)
39039 pack_tmp = ior(pack_tmp, data_tmp)
39040 pack_tmp = ishft(pack_tmp, -12)
39041 idata = idata + 1
39042 data_tmp = full_data(idata)
39043 data_tmp = ishft(data_tmp, 15)
39044 data_tmp = iand(data_tmp, mask_left(12))
39045 pack_tmp = ior(pack_tmp, data_tmp)
39046 ipack = ipack + 1
39047 packed_data(ipack) = pack_tmp
39048 data_tmp = full_data(idata)
39049 pack_tmp = ishft(data_tmp, 27)
39050 pack_tmp = ishft(pack_tmp, -27)
39051 idata = idata + 1
39052 data_tmp = full_data(idata)
39053 data_tmp = ishft(data_tmp, 15)
39054 data_tmp = iand(data_tmp, mask_left(27))
39055 pack_tmp = ior(pack_tmp, data_tmp)
39056 ipack = ipack + 1
39057 packed_data(ipack) = pack_tmp
39058 data_tmp = full_data(idata)
39059 pack_tmp = ishft(data_tmp, 42)
39060 pack_tmp = ishft(pack_tmp, -42)
39061 idata = idata + 1
39062 data_tmp = full_data(idata)
39063 data_tmp = ishft(data_tmp, 15)
39064 data_tmp = iand(data_tmp, mask_left(42))
39065 pack_tmp = ior(pack_tmp, data_tmp)
39066 ipack = ipack + 1
39067 packed_data(ipack) = pack_tmp
39068 data_tmp = full_data(idata)
39069 pack_tmp = ishft(data_tmp, 57)
39070 pack_tmp = ishft(pack_tmp, -49)
39071 idata = idata + 1
39072 data_tmp = full_data(idata)
39073 data_tmp = ishft(data_tmp, 15)
39074 pack_tmp = ior(pack_tmp, data_tmp)
39075 pack_tmp = ishft(pack_tmp, -8)
39076 idata = idata + 1
39077 data_tmp = full_data(idata)
39078 data_tmp = ishft(data_tmp, 15)
39079 data_tmp = iand(data_tmp, mask_left(8))
39080 pack_tmp = ior(pack_tmp, data_tmp)
39081 ipack = ipack + 1
39082 packed_data(ipack) = pack_tmp
39083 data_tmp = full_data(idata)
39084 pack_tmp = ishft(data_tmp, 23)
39085 pack_tmp = ishft(pack_tmp, -23)
39086 idata = idata + 1
39087 data_tmp = full_data(idata)
39088 data_tmp = ishft(data_tmp, 15)
39089 data_tmp = iand(data_tmp, mask_left(23))
39090 pack_tmp = ior(pack_tmp, data_tmp)
39091 ipack = ipack + 1
39092 packed_data(ipack) = pack_tmp
39093 data_tmp = full_data(idata)
39094 pack_tmp = ishft(data_tmp, 38)
39095 pack_tmp = ishft(pack_tmp, -38)
39096 idata = idata + 1
39097 data_tmp = full_data(idata)
39098 data_tmp = ishft(data_tmp, 15)
39099 data_tmp = iand(data_tmp, mask_left(38))
39100 pack_tmp = ior(pack_tmp, data_tmp)
39101 ipack = ipack + 1
39102 packed_data(ipack) = pack_tmp
39103 data_tmp = full_data(idata)
39104 pack_tmp = ishft(data_tmp, 53)
39105 pack_tmp = ishft(pack_tmp, -49)
39106 idata = idata + 1
39107 data_tmp = full_data(idata)
39108 data_tmp = ishft(data_tmp, 15)
39109 pack_tmp = ior(pack_tmp, data_tmp)
39110 pack_tmp = ishft(pack_tmp, -4)
39111 idata = idata + 1
39112 data_tmp = full_data(idata)
39113 data_tmp = ishft(data_tmp, 15)
39114 data_tmp = iand(data_tmp, mask_left(4))
39115 pack_tmp = ior(pack_tmp, data_tmp)
39116 ipack = ipack + 1
39117 packed_data(ipack) = pack_tmp
39118 data_tmp = full_data(idata)
39119 pack_tmp = ishft(data_tmp, 19)
39120 pack_tmp = ishft(pack_tmp, -19)
39121 idata = idata + 1
39122 data_tmp = full_data(idata)
39123 data_tmp = ishft(data_tmp, 15)
39124 data_tmp = iand(data_tmp, mask_left(19))
39125 pack_tmp = ior(pack_tmp, data_tmp)
39126 ipack = ipack + 1
39127 packed_data(ipack) = pack_tmp
39128 data_tmp = full_data(idata)
39129 pack_tmp = ishft(data_tmp, 34)
39130 pack_tmp = ishft(pack_tmp, -34)
39131 idata = idata + 1
39132 data_tmp = full_data(idata)
39133 data_tmp = ishft(data_tmp, 15)
39134 data_tmp = iand(data_tmp, mask_left(34))
39135 pack_tmp = ior(pack_tmp, data_tmp)
39136 ipack = ipack + 1
39137 packed_data(ipack) = pack_tmp
39138 data_tmp = full_data(idata)
39139 pack_tmp = ishft(data_tmp, 49)
39140 pack_tmp = ishft(pack_tmp, -49)
39141 idata = idata + 1
39142 data_tmp = full_data(idata)
39143 data_tmp = ishft(data_tmp, 15)
39144 pack_tmp = ior(pack_tmp, data_tmp)
39145 pack_tmp = ishft(pack_tmp, 0)
39146 pack_tmp = ishft(pack_tmp, 0)
39147 ipack = ipack + 1
39148 packed_data(ipack) = pack_tmp
39149 END DO
39150 IF (ndata_rep < ndata) THEN
39151 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
39152 END IF
39153 END SUBROUTINE ints2bits_49
39154
39155! **************************************************************************************************
39156!> \brief ...
39157!> \param Ndata ...
39158!> \param packed_data ...
39159!> \param full_data ...
39160! **************************************************************************************************
39161 SUBROUTINE bits2ints_49(Ndata, packed_data, full_data)
39162 INTEGER, INTENT(IN) :: Ndata
39163 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
39164 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
39165
39166 INTEGER, PARAMETER :: Nbits = 49
39167
39168 INTEGER :: idata, ipack, kdata, Ndata_rep
39169 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
39170
39171 ipack = 0
39172 idata = 0
39173 pack_tmp = 0
39174 ndata_rep = (ndata/64)*64
39175 DO kdata = 1, ndata_rep, 64
39176 idata = idata + 1
39177 data_tmp = ishft(pack_tmp, 49)
39178 ipack = ipack + 1
39179 pack_tmp = packed_data(ipack)
39180 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(49)))
39181 pack_tmp = ishft(pack_tmp, -49)
39182 idata = idata + 1
39183 data_tmp = ishft(pack_tmp, 34)
39184 ipack = ipack + 1
39185 pack_tmp = packed_data(ipack)
39186 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
39187 pack_tmp = ishft(pack_tmp, -34)
39188 idata = idata + 1
39189 data_tmp = ishft(pack_tmp, 19)
39190 ipack = ipack + 1
39191 pack_tmp = packed_data(ipack)
39192 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
39193 pack_tmp = ishft(pack_tmp, -19)
39194 idata = idata + 1
39195 data_tmp = ishft(pack_tmp, 4)
39196 ipack = ipack + 1
39197 pack_tmp = packed_data(ipack)
39198 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
39199 pack_tmp = ishft(pack_tmp, -4)
39200 idata = idata + 1
39201 data_tmp = iand(pack_tmp, mask_right(nbits))
39202 full_data(idata) = data_tmp
39203 pack_tmp = ishft(pack_tmp, -nbits)
39204 idata = idata + 1
39205 data_tmp = ishft(pack_tmp, 38)
39206 ipack = ipack + 1
39207 pack_tmp = packed_data(ipack)
39208 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
39209 pack_tmp = ishft(pack_tmp, -38)
39210 idata = idata + 1
39211 data_tmp = ishft(pack_tmp, 23)
39212 ipack = ipack + 1
39213 pack_tmp = packed_data(ipack)
39214 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
39215 pack_tmp = ishft(pack_tmp, -23)
39216 idata = idata + 1
39217 data_tmp = ishft(pack_tmp, 8)
39218 ipack = ipack + 1
39219 pack_tmp = packed_data(ipack)
39220 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
39221 pack_tmp = ishft(pack_tmp, -8)
39222 idata = idata + 1
39223 data_tmp = iand(pack_tmp, mask_right(nbits))
39224 full_data(idata) = data_tmp
39225 pack_tmp = ishft(pack_tmp, -nbits)
39226 idata = idata + 1
39227 data_tmp = ishft(pack_tmp, 42)
39228 ipack = ipack + 1
39229 pack_tmp = packed_data(ipack)
39230 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
39231 pack_tmp = ishft(pack_tmp, -42)
39232 idata = idata + 1
39233 data_tmp = ishft(pack_tmp, 27)
39234 ipack = ipack + 1
39235 pack_tmp = packed_data(ipack)
39236 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
39237 pack_tmp = ishft(pack_tmp, -27)
39238 idata = idata + 1
39239 data_tmp = ishft(pack_tmp, 12)
39240 ipack = ipack + 1
39241 pack_tmp = packed_data(ipack)
39242 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
39243 pack_tmp = ishft(pack_tmp, -12)
39244 idata = idata + 1
39245 data_tmp = iand(pack_tmp, mask_right(nbits))
39246 full_data(idata) = data_tmp
39247 pack_tmp = ishft(pack_tmp, -nbits)
39248 idata = idata + 1
39249 data_tmp = ishft(pack_tmp, 46)
39250 ipack = ipack + 1
39251 pack_tmp = packed_data(ipack)
39252 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
39253 pack_tmp = ishft(pack_tmp, -46)
39254 idata = idata + 1
39255 data_tmp = ishft(pack_tmp, 31)
39256 ipack = ipack + 1
39257 pack_tmp = packed_data(ipack)
39258 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
39259 pack_tmp = ishft(pack_tmp, -31)
39260 idata = idata + 1
39261 data_tmp = ishft(pack_tmp, 16)
39262 ipack = ipack + 1
39263 pack_tmp = packed_data(ipack)
39264 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
39265 pack_tmp = ishft(pack_tmp, -16)
39266 idata = idata + 1
39267 data_tmp = ishft(pack_tmp, 1)
39268 ipack = ipack + 1
39269 pack_tmp = packed_data(ipack)
39270 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
39271 pack_tmp = ishft(pack_tmp, -1)
39272 idata = idata + 1
39273 data_tmp = iand(pack_tmp, mask_right(nbits))
39274 full_data(idata) = data_tmp
39275 pack_tmp = ishft(pack_tmp, -nbits)
39276 idata = idata + 1
39277 data_tmp = ishft(pack_tmp, 35)
39278 ipack = ipack + 1
39279 pack_tmp = packed_data(ipack)
39280 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
39281 pack_tmp = ishft(pack_tmp, -35)
39282 idata = idata + 1
39283 data_tmp = ishft(pack_tmp, 20)
39284 ipack = ipack + 1
39285 pack_tmp = packed_data(ipack)
39286 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
39287 pack_tmp = ishft(pack_tmp, -20)
39288 idata = idata + 1
39289 data_tmp = ishft(pack_tmp, 5)
39290 ipack = ipack + 1
39291 pack_tmp = packed_data(ipack)
39292 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
39293 pack_tmp = ishft(pack_tmp, -5)
39294 idata = idata + 1
39295 data_tmp = iand(pack_tmp, mask_right(nbits))
39296 full_data(idata) = data_tmp
39297 pack_tmp = ishft(pack_tmp, -nbits)
39298 idata = idata + 1
39299 data_tmp = ishft(pack_tmp, 39)
39300 ipack = ipack + 1
39301 pack_tmp = packed_data(ipack)
39302 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
39303 pack_tmp = ishft(pack_tmp, -39)
39304 idata = idata + 1
39305 data_tmp = ishft(pack_tmp, 24)
39306 ipack = ipack + 1
39307 pack_tmp = packed_data(ipack)
39308 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
39309 pack_tmp = ishft(pack_tmp, -24)
39310 idata = idata + 1
39311 data_tmp = ishft(pack_tmp, 9)
39312 ipack = ipack + 1
39313 pack_tmp = packed_data(ipack)
39314 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
39315 pack_tmp = ishft(pack_tmp, -9)
39316 idata = idata + 1
39317 data_tmp = iand(pack_tmp, mask_right(nbits))
39318 full_data(idata) = data_tmp
39319 pack_tmp = ishft(pack_tmp, -nbits)
39320 idata = idata + 1
39321 data_tmp = ishft(pack_tmp, 43)
39322 ipack = ipack + 1
39323 pack_tmp = packed_data(ipack)
39324 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(43)))
39325 pack_tmp = ishft(pack_tmp, -43)
39326 idata = idata + 1
39327 data_tmp = ishft(pack_tmp, 28)
39328 ipack = ipack + 1
39329 pack_tmp = packed_data(ipack)
39330 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
39331 pack_tmp = ishft(pack_tmp, -28)
39332 idata = idata + 1
39333 data_tmp = ishft(pack_tmp, 13)
39334 ipack = ipack + 1
39335 pack_tmp = packed_data(ipack)
39336 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
39337 pack_tmp = ishft(pack_tmp, -13)
39338 idata = idata + 1
39339 data_tmp = iand(pack_tmp, mask_right(nbits))
39340 full_data(idata) = data_tmp
39341 pack_tmp = ishft(pack_tmp, -nbits)
39342 idata = idata + 1
39343 data_tmp = ishft(pack_tmp, 47)
39344 ipack = ipack + 1
39345 pack_tmp = packed_data(ipack)
39346 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(47)))
39347 pack_tmp = ishft(pack_tmp, -47)
39348 idata = idata + 1
39349 data_tmp = ishft(pack_tmp, 32)
39350 ipack = ipack + 1
39351 pack_tmp = packed_data(ipack)
39352 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
39353 pack_tmp = ishft(pack_tmp, -32)
39354 idata = idata + 1
39355 data_tmp = ishft(pack_tmp, 17)
39356 ipack = ipack + 1
39357 pack_tmp = packed_data(ipack)
39358 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
39359 pack_tmp = ishft(pack_tmp, -17)
39360 idata = idata + 1
39361 data_tmp = ishft(pack_tmp, 2)
39362 ipack = ipack + 1
39363 pack_tmp = packed_data(ipack)
39364 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
39365 pack_tmp = ishft(pack_tmp, -2)
39366 idata = idata + 1
39367 data_tmp = iand(pack_tmp, mask_right(nbits))
39368 full_data(idata) = data_tmp
39369 pack_tmp = ishft(pack_tmp, -nbits)
39370 idata = idata + 1
39371 data_tmp = ishft(pack_tmp, 36)
39372 ipack = ipack + 1
39373 pack_tmp = packed_data(ipack)
39374 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
39375 pack_tmp = ishft(pack_tmp, -36)
39376 idata = idata + 1
39377 data_tmp = ishft(pack_tmp, 21)
39378 ipack = ipack + 1
39379 pack_tmp = packed_data(ipack)
39380 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
39381 pack_tmp = ishft(pack_tmp, -21)
39382 idata = idata + 1
39383 data_tmp = ishft(pack_tmp, 6)
39384 ipack = ipack + 1
39385 pack_tmp = packed_data(ipack)
39386 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
39387 pack_tmp = ishft(pack_tmp, -6)
39388 idata = idata + 1
39389 data_tmp = iand(pack_tmp, mask_right(nbits))
39390 full_data(idata) = data_tmp
39391 pack_tmp = ishft(pack_tmp, -nbits)
39392 idata = idata + 1
39393 data_tmp = ishft(pack_tmp, 40)
39394 ipack = ipack + 1
39395 pack_tmp = packed_data(ipack)
39396 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
39397 pack_tmp = ishft(pack_tmp, -40)
39398 idata = idata + 1
39399 data_tmp = ishft(pack_tmp, 25)
39400 ipack = ipack + 1
39401 pack_tmp = packed_data(ipack)
39402 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
39403 pack_tmp = ishft(pack_tmp, -25)
39404 idata = idata + 1
39405 data_tmp = ishft(pack_tmp, 10)
39406 ipack = ipack + 1
39407 pack_tmp = packed_data(ipack)
39408 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
39409 pack_tmp = ishft(pack_tmp, -10)
39410 idata = idata + 1
39411 data_tmp = iand(pack_tmp, mask_right(nbits))
39412 full_data(idata) = data_tmp
39413 pack_tmp = ishft(pack_tmp, -nbits)
39414 idata = idata + 1
39415 data_tmp = ishft(pack_tmp, 44)
39416 ipack = ipack + 1
39417 pack_tmp = packed_data(ipack)
39418 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
39419 pack_tmp = ishft(pack_tmp, -44)
39420 idata = idata + 1
39421 data_tmp = ishft(pack_tmp, 29)
39422 ipack = ipack + 1
39423 pack_tmp = packed_data(ipack)
39424 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
39425 pack_tmp = ishft(pack_tmp, -29)
39426 idata = idata + 1
39427 data_tmp = ishft(pack_tmp, 14)
39428 ipack = ipack + 1
39429 pack_tmp = packed_data(ipack)
39430 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
39431 pack_tmp = ishft(pack_tmp, -14)
39432 idata = idata + 1
39433 data_tmp = iand(pack_tmp, mask_right(nbits))
39434 full_data(idata) = data_tmp
39435 pack_tmp = ishft(pack_tmp, -nbits)
39436 idata = idata + 1
39437 data_tmp = ishft(pack_tmp, 48)
39438 ipack = ipack + 1
39439 pack_tmp = packed_data(ipack)
39440 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
39441 pack_tmp = ishft(pack_tmp, -48)
39442 idata = idata + 1
39443 data_tmp = ishft(pack_tmp, 33)
39444 ipack = ipack + 1
39445 pack_tmp = packed_data(ipack)
39446 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
39447 pack_tmp = ishft(pack_tmp, -33)
39448 idata = idata + 1
39449 data_tmp = ishft(pack_tmp, 18)
39450 ipack = ipack + 1
39451 pack_tmp = packed_data(ipack)
39452 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
39453 pack_tmp = ishft(pack_tmp, -18)
39454 idata = idata + 1
39455 data_tmp = ishft(pack_tmp, 3)
39456 ipack = ipack + 1
39457 pack_tmp = packed_data(ipack)
39458 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
39459 pack_tmp = ishft(pack_tmp, -3)
39460 idata = idata + 1
39461 data_tmp = iand(pack_tmp, mask_right(nbits))
39462 full_data(idata) = data_tmp
39463 pack_tmp = ishft(pack_tmp, -nbits)
39464 idata = idata + 1
39465 data_tmp = ishft(pack_tmp, 37)
39466 ipack = ipack + 1
39467 pack_tmp = packed_data(ipack)
39468 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
39469 pack_tmp = ishft(pack_tmp, -37)
39470 idata = idata + 1
39471 data_tmp = ishft(pack_tmp, 22)
39472 ipack = ipack + 1
39473 pack_tmp = packed_data(ipack)
39474 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
39475 pack_tmp = ishft(pack_tmp, -22)
39476 idata = idata + 1
39477 data_tmp = ishft(pack_tmp, 7)
39478 ipack = ipack + 1
39479 pack_tmp = packed_data(ipack)
39480 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
39481 pack_tmp = ishft(pack_tmp, -7)
39482 idata = idata + 1
39483 data_tmp = iand(pack_tmp, mask_right(nbits))
39484 full_data(idata) = data_tmp
39485 pack_tmp = ishft(pack_tmp, -nbits)
39486 idata = idata + 1
39487 data_tmp = ishft(pack_tmp, 41)
39488 ipack = ipack + 1
39489 pack_tmp = packed_data(ipack)
39490 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(41)))
39491 pack_tmp = ishft(pack_tmp, -41)
39492 idata = idata + 1
39493 data_tmp = ishft(pack_tmp, 26)
39494 ipack = ipack + 1
39495 pack_tmp = packed_data(ipack)
39496 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
39497 pack_tmp = ishft(pack_tmp, -26)
39498 idata = idata + 1
39499 data_tmp = ishft(pack_tmp, 11)
39500 ipack = ipack + 1
39501 pack_tmp = packed_data(ipack)
39502 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
39503 pack_tmp = ishft(pack_tmp, -11)
39504 idata = idata + 1
39505 data_tmp = iand(pack_tmp, mask_right(nbits))
39506 full_data(idata) = data_tmp
39507 pack_tmp = ishft(pack_tmp, -nbits)
39508 idata = idata + 1
39509 data_tmp = ishft(pack_tmp, 45)
39510 ipack = ipack + 1
39511 pack_tmp = packed_data(ipack)
39512 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(45)))
39513 pack_tmp = ishft(pack_tmp, -45)
39514 idata = idata + 1
39515 data_tmp = ishft(pack_tmp, 30)
39516 ipack = ipack + 1
39517 pack_tmp = packed_data(ipack)
39518 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
39519 pack_tmp = ishft(pack_tmp, -30)
39520 idata = idata + 1
39521 data_tmp = ishft(pack_tmp, 15)
39522 ipack = ipack + 1
39523 pack_tmp = packed_data(ipack)
39524 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
39525 pack_tmp = ishft(pack_tmp, -15)
39526 idata = idata + 1
39527 data_tmp = iand(pack_tmp, mask_right(nbits))
39528 full_data(idata) = data_tmp
39529 pack_tmp = ishft(pack_tmp, -nbits)
39530 END DO
39531 IF (ndata_rep < ndata) THEN
39532 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
39533 END IF
39534 END SUBROUTINE bits2ints_49
39535
39536! **************************************************************************************************
39537!> \brief ...
39538!> \param Ndata ...
39539!> \param packed_data ...
39540!> \param full_data ...
39541! **************************************************************************************************
39542 SUBROUTINE ints2bits_50(Ndata, packed_data, full_data)
39543 INTEGER, INTENT(IN) :: Ndata
39544 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
39545 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
39546
39547 INTEGER, PARAMETER :: Nbits = 50
39548
39549 INTEGER :: idata, ipack, kdata, Ndata_rep
39550 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
39551
39552 idata = 0
39553 ipack = 0
39554 ndata_rep = (ndata/64)*64
39555 DO kdata = 1, ndata_rep, 64
39556 pack_tmp = 0
39557 idata = idata + 1
39558 data_tmp = full_data(idata)
39559 data_tmp = ishft(data_tmp, 14)
39560 pack_tmp = ior(pack_tmp, data_tmp)
39561 pack_tmp = ishft(pack_tmp, -14)
39562 idata = idata + 1
39563 data_tmp = full_data(idata)
39564 data_tmp = ishft(data_tmp, 14)
39565 data_tmp = iand(data_tmp, mask_left(14))
39566 pack_tmp = ior(pack_tmp, data_tmp)
39567 ipack = ipack + 1
39568 packed_data(ipack) = pack_tmp
39569 data_tmp = full_data(idata)
39570 pack_tmp = ishft(data_tmp, 28)
39571 pack_tmp = ishft(pack_tmp, -28)
39572 idata = idata + 1
39573 data_tmp = full_data(idata)
39574 data_tmp = ishft(data_tmp, 14)
39575 data_tmp = iand(data_tmp, mask_left(28))
39576 pack_tmp = ior(pack_tmp, data_tmp)
39577 ipack = ipack + 1
39578 packed_data(ipack) = pack_tmp
39579 data_tmp = full_data(idata)
39580 pack_tmp = ishft(data_tmp, 42)
39581 pack_tmp = ishft(pack_tmp, -42)
39582 idata = idata + 1
39583 data_tmp = full_data(idata)
39584 data_tmp = ishft(data_tmp, 14)
39585 data_tmp = iand(data_tmp, mask_left(42))
39586 pack_tmp = ior(pack_tmp, data_tmp)
39587 ipack = ipack + 1
39588 packed_data(ipack) = pack_tmp
39589 data_tmp = full_data(idata)
39590 pack_tmp = ishft(data_tmp, 56)
39591 pack_tmp = ishft(pack_tmp, -50)
39592 idata = idata + 1
39593 data_tmp = full_data(idata)
39594 data_tmp = ishft(data_tmp, 14)
39595 pack_tmp = ior(pack_tmp, data_tmp)
39596 pack_tmp = ishft(pack_tmp, -6)
39597 idata = idata + 1
39598 data_tmp = full_data(idata)
39599 data_tmp = ishft(data_tmp, 14)
39600 data_tmp = iand(data_tmp, mask_left(6))
39601 pack_tmp = ior(pack_tmp, data_tmp)
39602 ipack = ipack + 1
39603 packed_data(ipack) = pack_tmp
39604 data_tmp = full_data(idata)
39605 pack_tmp = ishft(data_tmp, 20)
39606 pack_tmp = ishft(pack_tmp, -20)
39607 idata = idata + 1
39608 data_tmp = full_data(idata)
39609 data_tmp = ishft(data_tmp, 14)
39610 data_tmp = iand(data_tmp, mask_left(20))
39611 pack_tmp = ior(pack_tmp, data_tmp)
39612 ipack = ipack + 1
39613 packed_data(ipack) = pack_tmp
39614 data_tmp = full_data(idata)
39615 pack_tmp = ishft(data_tmp, 34)
39616 pack_tmp = ishft(pack_tmp, -34)
39617 idata = idata + 1
39618 data_tmp = full_data(idata)
39619 data_tmp = ishft(data_tmp, 14)
39620 data_tmp = iand(data_tmp, mask_left(34))
39621 pack_tmp = ior(pack_tmp, data_tmp)
39622 ipack = ipack + 1
39623 packed_data(ipack) = pack_tmp
39624 data_tmp = full_data(idata)
39625 pack_tmp = ishft(data_tmp, 48)
39626 pack_tmp = ishft(pack_tmp, -48)
39627 idata = idata + 1
39628 data_tmp = full_data(idata)
39629 data_tmp = ishft(data_tmp, 14)
39630 data_tmp = iand(data_tmp, mask_left(48))
39631 pack_tmp = ior(pack_tmp, data_tmp)
39632 ipack = ipack + 1
39633 packed_data(ipack) = pack_tmp
39634 data_tmp = full_data(idata)
39635 pack_tmp = ishft(data_tmp, 62)
39636 pack_tmp = ishft(pack_tmp, -50)
39637 idata = idata + 1
39638 data_tmp = full_data(idata)
39639 data_tmp = ishft(data_tmp, 14)
39640 pack_tmp = ior(pack_tmp, data_tmp)
39641 pack_tmp = ishft(pack_tmp, -12)
39642 idata = idata + 1
39643 data_tmp = full_data(idata)
39644 data_tmp = ishft(data_tmp, 14)
39645 data_tmp = iand(data_tmp, mask_left(12))
39646 pack_tmp = ior(pack_tmp, data_tmp)
39647 ipack = ipack + 1
39648 packed_data(ipack) = pack_tmp
39649 data_tmp = full_data(idata)
39650 pack_tmp = ishft(data_tmp, 26)
39651 pack_tmp = ishft(pack_tmp, -26)
39652 idata = idata + 1
39653 data_tmp = full_data(idata)
39654 data_tmp = ishft(data_tmp, 14)
39655 data_tmp = iand(data_tmp, mask_left(26))
39656 pack_tmp = ior(pack_tmp, data_tmp)
39657 ipack = ipack + 1
39658 packed_data(ipack) = pack_tmp
39659 data_tmp = full_data(idata)
39660 pack_tmp = ishft(data_tmp, 40)
39661 pack_tmp = ishft(pack_tmp, -40)
39662 idata = idata + 1
39663 data_tmp = full_data(idata)
39664 data_tmp = ishft(data_tmp, 14)
39665 data_tmp = iand(data_tmp, mask_left(40))
39666 pack_tmp = ior(pack_tmp, data_tmp)
39667 ipack = ipack + 1
39668 packed_data(ipack) = pack_tmp
39669 data_tmp = full_data(idata)
39670 pack_tmp = ishft(data_tmp, 54)
39671 pack_tmp = ishft(pack_tmp, -50)
39672 idata = idata + 1
39673 data_tmp = full_data(idata)
39674 data_tmp = ishft(data_tmp, 14)
39675 pack_tmp = ior(pack_tmp, data_tmp)
39676 pack_tmp = ishft(pack_tmp, -4)
39677 idata = idata + 1
39678 data_tmp = full_data(idata)
39679 data_tmp = ishft(data_tmp, 14)
39680 data_tmp = iand(data_tmp, mask_left(4))
39681 pack_tmp = ior(pack_tmp, data_tmp)
39682 ipack = ipack + 1
39683 packed_data(ipack) = pack_tmp
39684 data_tmp = full_data(idata)
39685 pack_tmp = ishft(data_tmp, 18)
39686 pack_tmp = ishft(pack_tmp, -18)
39687 idata = idata + 1
39688 data_tmp = full_data(idata)
39689 data_tmp = ishft(data_tmp, 14)
39690 data_tmp = iand(data_tmp, mask_left(18))
39691 pack_tmp = ior(pack_tmp, data_tmp)
39692 ipack = ipack + 1
39693 packed_data(ipack) = pack_tmp
39694 data_tmp = full_data(idata)
39695 pack_tmp = ishft(data_tmp, 32)
39696 pack_tmp = ishft(pack_tmp, -32)
39697 idata = idata + 1
39698 data_tmp = full_data(idata)
39699 data_tmp = ishft(data_tmp, 14)
39700 data_tmp = iand(data_tmp, mask_left(32))
39701 pack_tmp = ior(pack_tmp, data_tmp)
39702 ipack = ipack + 1
39703 packed_data(ipack) = pack_tmp
39704 data_tmp = full_data(idata)
39705 pack_tmp = ishft(data_tmp, 46)
39706 pack_tmp = ishft(pack_tmp, -46)
39707 idata = idata + 1
39708 data_tmp = full_data(idata)
39709 data_tmp = ishft(data_tmp, 14)
39710 data_tmp = iand(data_tmp, mask_left(46))
39711 pack_tmp = ior(pack_tmp, data_tmp)
39712 ipack = ipack + 1
39713 packed_data(ipack) = pack_tmp
39714 data_tmp = full_data(idata)
39715 pack_tmp = ishft(data_tmp, 60)
39716 pack_tmp = ishft(pack_tmp, -50)
39717 idata = idata + 1
39718 data_tmp = full_data(idata)
39719 data_tmp = ishft(data_tmp, 14)
39720 pack_tmp = ior(pack_tmp, data_tmp)
39721 pack_tmp = ishft(pack_tmp, -10)
39722 idata = idata + 1
39723 data_tmp = full_data(idata)
39724 data_tmp = ishft(data_tmp, 14)
39725 data_tmp = iand(data_tmp, mask_left(10))
39726 pack_tmp = ior(pack_tmp, data_tmp)
39727 ipack = ipack + 1
39728 packed_data(ipack) = pack_tmp
39729 data_tmp = full_data(idata)
39730 pack_tmp = ishft(data_tmp, 24)
39731 pack_tmp = ishft(pack_tmp, -24)
39732 idata = idata + 1
39733 data_tmp = full_data(idata)
39734 data_tmp = ishft(data_tmp, 14)
39735 data_tmp = iand(data_tmp, mask_left(24))
39736 pack_tmp = ior(pack_tmp, data_tmp)
39737 ipack = ipack + 1
39738 packed_data(ipack) = pack_tmp
39739 data_tmp = full_data(idata)
39740 pack_tmp = ishft(data_tmp, 38)
39741 pack_tmp = ishft(pack_tmp, -38)
39742 idata = idata + 1
39743 data_tmp = full_data(idata)
39744 data_tmp = ishft(data_tmp, 14)
39745 data_tmp = iand(data_tmp, mask_left(38))
39746 pack_tmp = ior(pack_tmp, data_tmp)
39747 ipack = ipack + 1
39748 packed_data(ipack) = pack_tmp
39749 data_tmp = full_data(idata)
39750 pack_tmp = ishft(data_tmp, 52)
39751 pack_tmp = ishft(pack_tmp, -50)
39752 idata = idata + 1
39753 data_tmp = full_data(idata)
39754 data_tmp = ishft(data_tmp, 14)
39755 pack_tmp = ior(pack_tmp, data_tmp)
39756 pack_tmp = ishft(pack_tmp, -2)
39757 idata = idata + 1
39758 data_tmp = full_data(idata)
39759 data_tmp = ishft(data_tmp, 14)
39760 data_tmp = iand(data_tmp, mask_left(2))
39761 pack_tmp = ior(pack_tmp, data_tmp)
39762 ipack = ipack + 1
39763 packed_data(ipack) = pack_tmp
39764 data_tmp = full_data(idata)
39765 pack_tmp = ishft(data_tmp, 16)
39766 pack_tmp = ishft(pack_tmp, -16)
39767 idata = idata + 1
39768 data_tmp = full_data(idata)
39769 data_tmp = ishft(data_tmp, 14)
39770 data_tmp = iand(data_tmp, mask_left(16))
39771 pack_tmp = ior(pack_tmp, data_tmp)
39772 ipack = ipack + 1
39773 packed_data(ipack) = pack_tmp
39774 data_tmp = full_data(idata)
39775 pack_tmp = ishft(data_tmp, 30)
39776 pack_tmp = ishft(pack_tmp, -30)
39777 idata = idata + 1
39778 data_tmp = full_data(idata)
39779 data_tmp = ishft(data_tmp, 14)
39780 data_tmp = iand(data_tmp, mask_left(30))
39781 pack_tmp = ior(pack_tmp, data_tmp)
39782 ipack = ipack + 1
39783 packed_data(ipack) = pack_tmp
39784 data_tmp = full_data(idata)
39785 pack_tmp = ishft(data_tmp, 44)
39786 pack_tmp = ishft(pack_tmp, -44)
39787 idata = idata + 1
39788 data_tmp = full_data(idata)
39789 data_tmp = ishft(data_tmp, 14)
39790 data_tmp = iand(data_tmp, mask_left(44))
39791 pack_tmp = ior(pack_tmp, data_tmp)
39792 ipack = ipack + 1
39793 packed_data(ipack) = pack_tmp
39794 data_tmp = full_data(idata)
39795 pack_tmp = ishft(data_tmp, 58)
39796 pack_tmp = ishft(pack_tmp, -50)
39797 idata = idata + 1
39798 data_tmp = full_data(idata)
39799 data_tmp = ishft(data_tmp, 14)
39800 pack_tmp = ior(pack_tmp, data_tmp)
39801 pack_tmp = ishft(pack_tmp, -8)
39802 idata = idata + 1
39803 data_tmp = full_data(idata)
39804 data_tmp = ishft(data_tmp, 14)
39805 data_tmp = iand(data_tmp, mask_left(8))
39806 pack_tmp = ior(pack_tmp, data_tmp)
39807 ipack = ipack + 1
39808 packed_data(ipack) = pack_tmp
39809 data_tmp = full_data(idata)
39810 pack_tmp = ishft(data_tmp, 22)
39811 pack_tmp = ishft(pack_tmp, -22)
39812 idata = idata + 1
39813 data_tmp = full_data(idata)
39814 data_tmp = ishft(data_tmp, 14)
39815 data_tmp = iand(data_tmp, mask_left(22))
39816 pack_tmp = ior(pack_tmp, data_tmp)
39817 ipack = ipack + 1
39818 packed_data(ipack) = pack_tmp
39819 data_tmp = full_data(idata)
39820 pack_tmp = ishft(data_tmp, 36)
39821 pack_tmp = ishft(pack_tmp, -36)
39822 idata = idata + 1
39823 data_tmp = full_data(idata)
39824 data_tmp = ishft(data_tmp, 14)
39825 data_tmp = iand(data_tmp, mask_left(36))
39826 pack_tmp = ior(pack_tmp, data_tmp)
39827 ipack = ipack + 1
39828 packed_data(ipack) = pack_tmp
39829 data_tmp = full_data(idata)
39830 pack_tmp = ishft(data_tmp, 50)
39831 pack_tmp = ishft(pack_tmp, -50)
39832 idata = idata + 1
39833 data_tmp = full_data(idata)
39834 data_tmp = ishft(data_tmp, 14)
39835 pack_tmp = ior(pack_tmp, data_tmp)
39836 pack_tmp = ishft(pack_tmp, 0)
39837 idata = idata + 1
39838 data_tmp = full_data(idata)
39839 data_tmp = ishft(data_tmp, 14)
39840 data_tmp = iand(data_tmp, mask_left(0))
39841 pack_tmp = ior(pack_tmp, data_tmp)
39842 ipack = ipack + 1
39843 packed_data(ipack) = pack_tmp
39844 data_tmp = full_data(idata)
39845 pack_tmp = ishft(data_tmp, 14)
39846 pack_tmp = ishft(pack_tmp, -14)
39847 idata = idata + 1
39848 data_tmp = full_data(idata)
39849 data_tmp = ishft(data_tmp, 14)
39850 data_tmp = iand(data_tmp, mask_left(14))
39851 pack_tmp = ior(pack_tmp, data_tmp)
39852 ipack = ipack + 1
39853 packed_data(ipack) = pack_tmp
39854 data_tmp = full_data(idata)
39855 pack_tmp = ishft(data_tmp, 28)
39856 pack_tmp = ishft(pack_tmp, -28)
39857 idata = idata + 1
39858 data_tmp = full_data(idata)
39859 data_tmp = ishft(data_tmp, 14)
39860 data_tmp = iand(data_tmp, mask_left(28))
39861 pack_tmp = ior(pack_tmp, data_tmp)
39862 ipack = ipack + 1
39863 packed_data(ipack) = pack_tmp
39864 data_tmp = full_data(idata)
39865 pack_tmp = ishft(data_tmp, 42)
39866 pack_tmp = ishft(pack_tmp, -42)
39867 idata = idata + 1
39868 data_tmp = full_data(idata)
39869 data_tmp = ishft(data_tmp, 14)
39870 data_tmp = iand(data_tmp, mask_left(42))
39871 pack_tmp = ior(pack_tmp, data_tmp)
39872 ipack = ipack + 1
39873 packed_data(ipack) = pack_tmp
39874 data_tmp = full_data(idata)
39875 pack_tmp = ishft(data_tmp, 56)
39876 pack_tmp = ishft(pack_tmp, -50)
39877 idata = idata + 1
39878 data_tmp = full_data(idata)
39879 data_tmp = ishft(data_tmp, 14)
39880 pack_tmp = ior(pack_tmp, data_tmp)
39881 pack_tmp = ishft(pack_tmp, -6)
39882 idata = idata + 1
39883 data_tmp = full_data(idata)
39884 data_tmp = ishft(data_tmp, 14)
39885 data_tmp = iand(data_tmp, mask_left(6))
39886 pack_tmp = ior(pack_tmp, data_tmp)
39887 ipack = ipack + 1
39888 packed_data(ipack) = pack_tmp
39889 data_tmp = full_data(idata)
39890 pack_tmp = ishft(data_tmp, 20)
39891 pack_tmp = ishft(pack_tmp, -20)
39892 idata = idata + 1
39893 data_tmp = full_data(idata)
39894 data_tmp = ishft(data_tmp, 14)
39895 data_tmp = iand(data_tmp, mask_left(20))
39896 pack_tmp = ior(pack_tmp, data_tmp)
39897 ipack = ipack + 1
39898 packed_data(ipack) = pack_tmp
39899 data_tmp = full_data(idata)
39900 pack_tmp = ishft(data_tmp, 34)
39901 pack_tmp = ishft(pack_tmp, -34)
39902 idata = idata + 1
39903 data_tmp = full_data(idata)
39904 data_tmp = ishft(data_tmp, 14)
39905 data_tmp = iand(data_tmp, mask_left(34))
39906 pack_tmp = ior(pack_tmp, data_tmp)
39907 ipack = ipack + 1
39908 packed_data(ipack) = pack_tmp
39909 data_tmp = full_data(idata)
39910 pack_tmp = ishft(data_tmp, 48)
39911 pack_tmp = ishft(pack_tmp, -48)
39912 idata = idata + 1
39913 data_tmp = full_data(idata)
39914 data_tmp = ishft(data_tmp, 14)
39915 data_tmp = iand(data_tmp, mask_left(48))
39916 pack_tmp = ior(pack_tmp, data_tmp)
39917 ipack = ipack + 1
39918 packed_data(ipack) = pack_tmp
39919 data_tmp = full_data(idata)
39920 pack_tmp = ishft(data_tmp, 62)
39921 pack_tmp = ishft(pack_tmp, -50)
39922 idata = idata + 1
39923 data_tmp = full_data(idata)
39924 data_tmp = ishft(data_tmp, 14)
39925 pack_tmp = ior(pack_tmp, data_tmp)
39926 pack_tmp = ishft(pack_tmp, -12)
39927 idata = idata + 1
39928 data_tmp = full_data(idata)
39929 data_tmp = ishft(data_tmp, 14)
39930 data_tmp = iand(data_tmp, mask_left(12))
39931 pack_tmp = ior(pack_tmp, data_tmp)
39932 ipack = ipack + 1
39933 packed_data(ipack) = pack_tmp
39934 data_tmp = full_data(idata)
39935 pack_tmp = ishft(data_tmp, 26)
39936 pack_tmp = ishft(pack_tmp, -26)
39937 idata = idata + 1
39938 data_tmp = full_data(idata)
39939 data_tmp = ishft(data_tmp, 14)
39940 data_tmp = iand(data_tmp, mask_left(26))
39941 pack_tmp = ior(pack_tmp, data_tmp)
39942 ipack = ipack + 1
39943 packed_data(ipack) = pack_tmp
39944 data_tmp = full_data(idata)
39945 pack_tmp = ishft(data_tmp, 40)
39946 pack_tmp = ishft(pack_tmp, -40)
39947 idata = idata + 1
39948 data_tmp = full_data(idata)
39949 data_tmp = ishft(data_tmp, 14)
39950 data_tmp = iand(data_tmp, mask_left(40))
39951 pack_tmp = ior(pack_tmp, data_tmp)
39952 ipack = ipack + 1
39953 packed_data(ipack) = pack_tmp
39954 data_tmp = full_data(idata)
39955 pack_tmp = ishft(data_tmp, 54)
39956 pack_tmp = ishft(pack_tmp, -50)
39957 idata = idata + 1
39958 data_tmp = full_data(idata)
39959 data_tmp = ishft(data_tmp, 14)
39960 pack_tmp = ior(pack_tmp, data_tmp)
39961 pack_tmp = ishft(pack_tmp, -4)
39962 idata = idata + 1
39963 data_tmp = full_data(idata)
39964 data_tmp = ishft(data_tmp, 14)
39965 data_tmp = iand(data_tmp, mask_left(4))
39966 pack_tmp = ior(pack_tmp, data_tmp)
39967 ipack = ipack + 1
39968 packed_data(ipack) = pack_tmp
39969 data_tmp = full_data(idata)
39970 pack_tmp = ishft(data_tmp, 18)
39971 pack_tmp = ishft(pack_tmp, -18)
39972 idata = idata + 1
39973 data_tmp = full_data(idata)
39974 data_tmp = ishft(data_tmp, 14)
39975 data_tmp = iand(data_tmp, mask_left(18))
39976 pack_tmp = ior(pack_tmp, data_tmp)
39977 ipack = ipack + 1
39978 packed_data(ipack) = pack_tmp
39979 data_tmp = full_data(idata)
39980 pack_tmp = ishft(data_tmp, 32)
39981 pack_tmp = ishft(pack_tmp, -32)
39982 idata = idata + 1
39983 data_tmp = full_data(idata)
39984 data_tmp = ishft(data_tmp, 14)
39985 data_tmp = iand(data_tmp, mask_left(32))
39986 pack_tmp = ior(pack_tmp, data_tmp)
39987 ipack = ipack + 1
39988 packed_data(ipack) = pack_tmp
39989 data_tmp = full_data(idata)
39990 pack_tmp = ishft(data_tmp, 46)
39991 pack_tmp = ishft(pack_tmp, -46)
39992 idata = idata + 1
39993 data_tmp = full_data(idata)
39994 data_tmp = ishft(data_tmp, 14)
39995 data_tmp = iand(data_tmp, mask_left(46))
39996 pack_tmp = ior(pack_tmp, data_tmp)
39997 ipack = ipack + 1
39998 packed_data(ipack) = pack_tmp
39999 data_tmp = full_data(idata)
40000 pack_tmp = ishft(data_tmp, 60)
40001 pack_tmp = ishft(pack_tmp, -50)
40002 idata = idata + 1
40003 data_tmp = full_data(idata)
40004 data_tmp = ishft(data_tmp, 14)
40005 pack_tmp = ior(pack_tmp, data_tmp)
40006 pack_tmp = ishft(pack_tmp, -10)
40007 idata = idata + 1
40008 data_tmp = full_data(idata)
40009 data_tmp = ishft(data_tmp, 14)
40010 data_tmp = iand(data_tmp, mask_left(10))
40011 pack_tmp = ior(pack_tmp, data_tmp)
40012 ipack = ipack + 1
40013 packed_data(ipack) = pack_tmp
40014 data_tmp = full_data(idata)
40015 pack_tmp = ishft(data_tmp, 24)
40016 pack_tmp = ishft(pack_tmp, -24)
40017 idata = idata + 1
40018 data_tmp = full_data(idata)
40019 data_tmp = ishft(data_tmp, 14)
40020 data_tmp = iand(data_tmp, mask_left(24))
40021 pack_tmp = ior(pack_tmp, data_tmp)
40022 ipack = ipack + 1
40023 packed_data(ipack) = pack_tmp
40024 data_tmp = full_data(idata)
40025 pack_tmp = ishft(data_tmp, 38)
40026 pack_tmp = ishft(pack_tmp, -38)
40027 idata = idata + 1
40028 data_tmp = full_data(idata)
40029 data_tmp = ishft(data_tmp, 14)
40030 data_tmp = iand(data_tmp, mask_left(38))
40031 pack_tmp = ior(pack_tmp, data_tmp)
40032 ipack = ipack + 1
40033 packed_data(ipack) = pack_tmp
40034 data_tmp = full_data(idata)
40035 pack_tmp = ishft(data_tmp, 52)
40036 pack_tmp = ishft(pack_tmp, -50)
40037 idata = idata + 1
40038 data_tmp = full_data(idata)
40039 data_tmp = ishft(data_tmp, 14)
40040 pack_tmp = ior(pack_tmp, data_tmp)
40041 pack_tmp = ishft(pack_tmp, -2)
40042 idata = idata + 1
40043 data_tmp = full_data(idata)
40044 data_tmp = ishft(data_tmp, 14)
40045 data_tmp = iand(data_tmp, mask_left(2))
40046 pack_tmp = ior(pack_tmp, data_tmp)
40047 ipack = ipack + 1
40048 packed_data(ipack) = pack_tmp
40049 data_tmp = full_data(idata)
40050 pack_tmp = ishft(data_tmp, 16)
40051 pack_tmp = ishft(pack_tmp, -16)
40052 idata = idata + 1
40053 data_tmp = full_data(idata)
40054 data_tmp = ishft(data_tmp, 14)
40055 data_tmp = iand(data_tmp, mask_left(16))
40056 pack_tmp = ior(pack_tmp, data_tmp)
40057 ipack = ipack + 1
40058 packed_data(ipack) = pack_tmp
40059 data_tmp = full_data(idata)
40060 pack_tmp = ishft(data_tmp, 30)
40061 pack_tmp = ishft(pack_tmp, -30)
40062 idata = idata + 1
40063 data_tmp = full_data(idata)
40064 data_tmp = ishft(data_tmp, 14)
40065 data_tmp = iand(data_tmp, mask_left(30))
40066 pack_tmp = ior(pack_tmp, data_tmp)
40067 ipack = ipack + 1
40068 packed_data(ipack) = pack_tmp
40069 data_tmp = full_data(idata)
40070 pack_tmp = ishft(data_tmp, 44)
40071 pack_tmp = ishft(pack_tmp, -44)
40072 idata = idata + 1
40073 data_tmp = full_data(idata)
40074 data_tmp = ishft(data_tmp, 14)
40075 data_tmp = iand(data_tmp, mask_left(44))
40076 pack_tmp = ior(pack_tmp, data_tmp)
40077 ipack = ipack + 1
40078 packed_data(ipack) = pack_tmp
40079 data_tmp = full_data(idata)
40080 pack_tmp = ishft(data_tmp, 58)
40081 pack_tmp = ishft(pack_tmp, -50)
40082 idata = idata + 1
40083 data_tmp = full_data(idata)
40084 data_tmp = ishft(data_tmp, 14)
40085 pack_tmp = ior(pack_tmp, data_tmp)
40086 pack_tmp = ishft(pack_tmp, -8)
40087 idata = idata + 1
40088 data_tmp = full_data(idata)
40089 data_tmp = ishft(data_tmp, 14)
40090 data_tmp = iand(data_tmp, mask_left(8))
40091 pack_tmp = ior(pack_tmp, data_tmp)
40092 ipack = ipack + 1
40093 packed_data(ipack) = pack_tmp
40094 data_tmp = full_data(idata)
40095 pack_tmp = ishft(data_tmp, 22)
40096 pack_tmp = ishft(pack_tmp, -22)
40097 idata = idata + 1
40098 data_tmp = full_data(idata)
40099 data_tmp = ishft(data_tmp, 14)
40100 data_tmp = iand(data_tmp, mask_left(22))
40101 pack_tmp = ior(pack_tmp, data_tmp)
40102 ipack = ipack + 1
40103 packed_data(ipack) = pack_tmp
40104 data_tmp = full_data(idata)
40105 pack_tmp = ishft(data_tmp, 36)
40106 pack_tmp = ishft(pack_tmp, -36)
40107 idata = idata + 1
40108 data_tmp = full_data(idata)
40109 data_tmp = ishft(data_tmp, 14)
40110 data_tmp = iand(data_tmp, mask_left(36))
40111 pack_tmp = ior(pack_tmp, data_tmp)
40112 ipack = ipack + 1
40113 packed_data(ipack) = pack_tmp
40114 data_tmp = full_data(idata)
40115 pack_tmp = ishft(data_tmp, 50)
40116 pack_tmp = ishft(pack_tmp, -50)
40117 idata = idata + 1
40118 data_tmp = full_data(idata)
40119 data_tmp = ishft(data_tmp, 14)
40120 pack_tmp = ior(pack_tmp, data_tmp)
40121 pack_tmp = ishft(pack_tmp, 0)
40122 pack_tmp = ishft(pack_tmp, 0)
40123 ipack = ipack + 1
40124 packed_data(ipack) = pack_tmp
40125 END DO
40126 IF (ndata_rep < ndata) THEN
40127 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
40128 END IF
40129 END SUBROUTINE ints2bits_50
40130
40131! **************************************************************************************************
40132!> \brief ...
40133!> \param Ndata ...
40134!> \param packed_data ...
40135!> \param full_data ...
40136! **************************************************************************************************
40137 SUBROUTINE bits2ints_50(Ndata, packed_data, full_data)
40138 INTEGER, INTENT(IN) :: Ndata
40139 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
40140 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
40141
40142 INTEGER, PARAMETER :: Nbits = 50
40143
40144 INTEGER :: idata, ipack, kdata, Ndata_rep
40145 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
40146
40147 ipack = 0
40148 idata = 0
40149 pack_tmp = 0
40150 ndata_rep = (ndata/64)*64
40151 DO kdata = 1, ndata_rep, 64
40152 idata = idata + 1
40153 data_tmp = ishft(pack_tmp, 50)
40154 ipack = ipack + 1
40155 pack_tmp = packed_data(ipack)
40156 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
40157 pack_tmp = ishft(pack_tmp, -50)
40158 idata = idata + 1
40159 data_tmp = ishft(pack_tmp, 36)
40160 ipack = ipack + 1
40161 pack_tmp = packed_data(ipack)
40162 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
40163 pack_tmp = ishft(pack_tmp, -36)
40164 idata = idata + 1
40165 data_tmp = ishft(pack_tmp, 22)
40166 ipack = ipack + 1
40167 pack_tmp = packed_data(ipack)
40168 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
40169 pack_tmp = ishft(pack_tmp, -22)
40170 idata = idata + 1
40171 data_tmp = ishft(pack_tmp, 8)
40172 ipack = ipack + 1
40173 pack_tmp = packed_data(ipack)
40174 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
40175 pack_tmp = ishft(pack_tmp, -8)
40176 idata = idata + 1
40177 data_tmp = iand(pack_tmp, mask_right(nbits))
40178 full_data(idata) = data_tmp
40179 pack_tmp = ishft(pack_tmp, -nbits)
40180 idata = idata + 1
40181 data_tmp = ishft(pack_tmp, 44)
40182 ipack = ipack + 1
40183 pack_tmp = packed_data(ipack)
40184 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
40185 pack_tmp = ishft(pack_tmp, -44)
40186 idata = idata + 1
40187 data_tmp = ishft(pack_tmp, 30)
40188 ipack = ipack + 1
40189 pack_tmp = packed_data(ipack)
40190 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
40191 pack_tmp = ishft(pack_tmp, -30)
40192 idata = idata + 1
40193 data_tmp = ishft(pack_tmp, 16)
40194 ipack = ipack + 1
40195 pack_tmp = packed_data(ipack)
40196 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
40197 pack_tmp = ishft(pack_tmp, -16)
40198 idata = idata + 1
40199 data_tmp = ishft(pack_tmp, 2)
40200 ipack = ipack + 1
40201 pack_tmp = packed_data(ipack)
40202 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
40203 pack_tmp = ishft(pack_tmp, -2)
40204 idata = idata + 1
40205 data_tmp = iand(pack_tmp, mask_right(nbits))
40206 full_data(idata) = data_tmp
40207 pack_tmp = ishft(pack_tmp, -nbits)
40208 idata = idata + 1
40209 data_tmp = ishft(pack_tmp, 38)
40210 ipack = ipack + 1
40211 pack_tmp = packed_data(ipack)
40212 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
40213 pack_tmp = ishft(pack_tmp, -38)
40214 idata = idata + 1
40215 data_tmp = ishft(pack_tmp, 24)
40216 ipack = ipack + 1
40217 pack_tmp = packed_data(ipack)
40218 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
40219 pack_tmp = ishft(pack_tmp, -24)
40220 idata = idata + 1
40221 data_tmp = ishft(pack_tmp, 10)
40222 ipack = ipack + 1
40223 pack_tmp = packed_data(ipack)
40224 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
40225 pack_tmp = ishft(pack_tmp, -10)
40226 idata = idata + 1
40227 data_tmp = iand(pack_tmp, mask_right(nbits))
40228 full_data(idata) = data_tmp
40229 pack_tmp = ishft(pack_tmp, -nbits)
40230 idata = idata + 1
40231 data_tmp = ishft(pack_tmp, 46)
40232 ipack = ipack + 1
40233 pack_tmp = packed_data(ipack)
40234 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
40235 pack_tmp = ishft(pack_tmp, -46)
40236 idata = idata + 1
40237 data_tmp = ishft(pack_tmp, 32)
40238 ipack = ipack + 1
40239 pack_tmp = packed_data(ipack)
40240 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
40241 pack_tmp = ishft(pack_tmp, -32)
40242 idata = idata + 1
40243 data_tmp = ishft(pack_tmp, 18)
40244 ipack = ipack + 1
40245 pack_tmp = packed_data(ipack)
40246 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
40247 pack_tmp = ishft(pack_tmp, -18)
40248 idata = idata + 1
40249 data_tmp = ishft(pack_tmp, 4)
40250 ipack = ipack + 1
40251 pack_tmp = packed_data(ipack)
40252 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
40253 pack_tmp = ishft(pack_tmp, -4)
40254 idata = idata + 1
40255 data_tmp = iand(pack_tmp, mask_right(nbits))
40256 full_data(idata) = data_tmp
40257 pack_tmp = ishft(pack_tmp, -nbits)
40258 idata = idata + 1
40259 data_tmp = ishft(pack_tmp, 40)
40260 ipack = ipack + 1
40261 pack_tmp = packed_data(ipack)
40262 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
40263 pack_tmp = ishft(pack_tmp, -40)
40264 idata = idata + 1
40265 data_tmp = ishft(pack_tmp, 26)
40266 ipack = ipack + 1
40267 pack_tmp = packed_data(ipack)
40268 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
40269 pack_tmp = ishft(pack_tmp, -26)
40270 idata = idata + 1
40271 data_tmp = ishft(pack_tmp, 12)
40272 ipack = ipack + 1
40273 pack_tmp = packed_data(ipack)
40274 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
40275 pack_tmp = ishft(pack_tmp, -12)
40276 idata = idata + 1
40277 data_tmp = iand(pack_tmp, mask_right(nbits))
40278 full_data(idata) = data_tmp
40279 pack_tmp = ishft(pack_tmp, -nbits)
40280 idata = idata + 1
40281 data_tmp = ishft(pack_tmp, 48)
40282 ipack = ipack + 1
40283 pack_tmp = packed_data(ipack)
40284 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
40285 pack_tmp = ishft(pack_tmp, -48)
40286 idata = idata + 1
40287 data_tmp = ishft(pack_tmp, 34)
40288 ipack = ipack + 1
40289 pack_tmp = packed_data(ipack)
40290 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
40291 pack_tmp = ishft(pack_tmp, -34)
40292 idata = idata + 1
40293 data_tmp = ishft(pack_tmp, 20)
40294 ipack = ipack + 1
40295 pack_tmp = packed_data(ipack)
40296 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
40297 pack_tmp = ishft(pack_tmp, -20)
40298 idata = idata + 1
40299 data_tmp = ishft(pack_tmp, 6)
40300 ipack = ipack + 1
40301 pack_tmp = packed_data(ipack)
40302 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
40303 pack_tmp = ishft(pack_tmp, -6)
40304 idata = idata + 1
40305 data_tmp = iand(pack_tmp, mask_right(nbits))
40306 full_data(idata) = data_tmp
40307 pack_tmp = ishft(pack_tmp, -nbits)
40308 idata = idata + 1
40309 data_tmp = ishft(pack_tmp, 42)
40310 ipack = ipack + 1
40311 pack_tmp = packed_data(ipack)
40312 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
40313 pack_tmp = ishft(pack_tmp, -42)
40314 idata = idata + 1
40315 data_tmp = ishft(pack_tmp, 28)
40316 ipack = ipack + 1
40317 pack_tmp = packed_data(ipack)
40318 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
40319 pack_tmp = ishft(pack_tmp, -28)
40320 idata = idata + 1
40321 data_tmp = ishft(pack_tmp, 14)
40322 ipack = ipack + 1
40323 pack_tmp = packed_data(ipack)
40324 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
40325 pack_tmp = ishft(pack_tmp, -14)
40326 idata = idata + 1
40327 data_tmp = iand(pack_tmp, mask_right(nbits))
40328 full_data(idata) = data_tmp
40329 pack_tmp = ishft(pack_tmp, -nbits)
40330 idata = idata + 1
40331 data_tmp = ishft(pack_tmp, 50)
40332 ipack = ipack + 1
40333 pack_tmp = packed_data(ipack)
40334 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
40335 pack_tmp = ishft(pack_tmp, -50)
40336 idata = idata + 1
40337 data_tmp = ishft(pack_tmp, 36)
40338 ipack = ipack + 1
40339 pack_tmp = packed_data(ipack)
40340 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
40341 pack_tmp = ishft(pack_tmp, -36)
40342 idata = idata + 1
40343 data_tmp = ishft(pack_tmp, 22)
40344 ipack = ipack + 1
40345 pack_tmp = packed_data(ipack)
40346 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
40347 pack_tmp = ishft(pack_tmp, -22)
40348 idata = idata + 1
40349 data_tmp = ishft(pack_tmp, 8)
40350 ipack = ipack + 1
40351 pack_tmp = packed_data(ipack)
40352 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
40353 pack_tmp = ishft(pack_tmp, -8)
40354 idata = idata + 1
40355 data_tmp = iand(pack_tmp, mask_right(nbits))
40356 full_data(idata) = data_tmp
40357 pack_tmp = ishft(pack_tmp, -nbits)
40358 idata = idata + 1
40359 data_tmp = ishft(pack_tmp, 44)
40360 ipack = ipack + 1
40361 pack_tmp = packed_data(ipack)
40362 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
40363 pack_tmp = ishft(pack_tmp, -44)
40364 idata = idata + 1
40365 data_tmp = ishft(pack_tmp, 30)
40366 ipack = ipack + 1
40367 pack_tmp = packed_data(ipack)
40368 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
40369 pack_tmp = ishft(pack_tmp, -30)
40370 idata = idata + 1
40371 data_tmp = ishft(pack_tmp, 16)
40372 ipack = ipack + 1
40373 pack_tmp = packed_data(ipack)
40374 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
40375 pack_tmp = ishft(pack_tmp, -16)
40376 idata = idata + 1
40377 data_tmp = ishft(pack_tmp, 2)
40378 ipack = ipack + 1
40379 pack_tmp = packed_data(ipack)
40380 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
40381 pack_tmp = ishft(pack_tmp, -2)
40382 idata = idata + 1
40383 data_tmp = iand(pack_tmp, mask_right(nbits))
40384 full_data(idata) = data_tmp
40385 pack_tmp = ishft(pack_tmp, -nbits)
40386 idata = idata + 1
40387 data_tmp = ishft(pack_tmp, 38)
40388 ipack = ipack + 1
40389 pack_tmp = packed_data(ipack)
40390 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
40391 pack_tmp = ishft(pack_tmp, -38)
40392 idata = idata + 1
40393 data_tmp = ishft(pack_tmp, 24)
40394 ipack = ipack + 1
40395 pack_tmp = packed_data(ipack)
40396 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
40397 pack_tmp = ishft(pack_tmp, -24)
40398 idata = idata + 1
40399 data_tmp = ishft(pack_tmp, 10)
40400 ipack = ipack + 1
40401 pack_tmp = packed_data(ipack)
40402 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
40403 pack_tmp = ishft(pack_tmp, -10)
40404 idata = idata + 1
40405 data_tmp = iand(pack_tmp, mask_right(nbits))
40406 full_data(idata) = data_tmp
40407 pack_tmp = ishft(pack_tmp, -nbits)
40408 idata = idata + 1
40409 data_tmp = ishft(pack_tmp, 46)
40410 ipack = ipack + 1
40411 pack_tmp = packed_data(ipack)
40412 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
40413 pack_tmp = ishft(pack_tmp, -46)
40414 idata = idata + 1
40415 data_tmp = ishft(pack_tmp, 32)
40416 ipack = ipack + 1
40417 pack_tmp = packed_data(ipack)
40418 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
40419 pack_tmp = ishft(pack_tmp, -32)
40420 idata = idata + 1
40421 data_tmp = ishft(pack_tmp, 18)
40422 ipack = ipack + 1
40423 pack_tmp = packed_data(ipack)
40424 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
40425 pack_tmp = ishft(pack_tmp, -18)
40426 idata = idata + 1
40427 data_tmp = ishft(pack_tmp, 4)
40428 ipack = ipack + 1
40429 pack_tmp = packed_data(ipack)
40430 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
40431 pack_tmp = ishft(pack_tmp, -4)
40432 idata = idata + 1
40433 data_tmp = iand(pack_tmp, mask_right(nbits))
40434 full_data(idata) = data_tmp
40435 pack_tmp = ishft(pack_tmp, -nbits)
40436 idata = idata + 1
40437 data_tmp = ishft(pack_tmp, 40)
40438 ipack = ipack + 1
40439 pack_tmp = packed_data(ipack)
40440 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
40441 pack_tmp = ishft(pack_tmp, -40)
40442 idata = idata + 1
40443 data_tmp = ishft(pack_tmp, 26)
40444 ipack = ipack + 1
40445 pack_tmp = packed_data(ipack)
40446 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
40447 pack_tmp = ishft(pack_tmp, -26)
40448 idata = idata + 1
40449 data_tmp = ishft(pack_tmp, 12)
40450 ipack = ipack + 1
40451 pack_tmp = packed_data(ipack)
40452 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
40453 pack_tmp = ishft(pack_tmp, -12)
40454 idata = idata + 1
40455 data_tmp = iand(pack_tmp, mask_right(nbits))
40456 full_data(idata) = data_tmp
40457 pack_tmp = ishft(pack_tmp, -nbits)
40458 idata = idata + 1
40459 data_tmp = ishft(pack_tmp, 48)
40460 ipack = ipack + 1
40461 pack_tmp = packed_data(ipack)
40462 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
40463 pack_tmp = ishft(pack_tmp, -48)
40464 idata = idata + 1
40465 data_tmp = ishft(pack_tmp, 34)
40466 ipack = ipack + 1
40467 pack_tmp = packed_data(ipack)
40468 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
40469 pack_tmp = ishft(pack_tmp, -34)
40470 idata = idata + 1
40471 data_tmp = ishft(pack_tmp, 20)
40472 ipack = ipack + 1
40473 pack_tmp = packed_data(ipack)
40474 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
40475 pack_tmp = ishft(pack_tmp, -20)
40476 idata = idata + 1
40477 data_tmp = ishft(pack_tmp, 6)
40478 ipack = ipack + 1
40479 pack_tmp = packed_data(ipack)
40480 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
40481 pack_tmp = ishft(pack_tmp, -6)
40482 idata = idata + 1
40483 data_tmp = iand(pack_tmp, mask_right(nbits))
40484 full_data(idata) = data_tmp
40485 pack_tmp = ishft(pack_tmp, -nbits)
40486 idata = idata + 1
40487 data_tmp = ishft(pack_tmp, 42)
40488 ipack = ipack + 1
40489 pack_tmp = packed_data(ipack)
40490 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
40491 pack_tmp = ishft(pack_tmp, -42)
40492 idata = idata + 1
40493 data_tmp = ishft(pack_tmp, 28)
40494 ipack = ipack + 1
40495 pack_tmp = packed_data(ipack)
40496 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
40497 pack_tmp = ishft(pack_tmp, -28)
40498 idata = idata + 1
40499 data_tmp = ishft(pack_tmp, 14)
40500 ipack = ipack + 1
40501 pack_tmp = packed_data(ipack)
40502 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
40503 pack_tmp = ishft(pack_tmp, -14)
40504 idata = idata + 1
40505 data_tmp = iand(pack_tmp, mask_right(nbits))
40506 full_data(idata) = data_tmp
40507 pack_tmp = ishft(pack_tmp, -nbits)
40508 END DO
40509 IF (ndata_rep < ndata) THEN
40510 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
40511 END IF
40512 END SUBROUTINE bits2ints_50
40513
40514! **************************************************************************************************
40515!> \brief ...
40516!> \param Ndata ...
40517!> \param packed_data ...
40518!> \param full_data ...
40519! **************************************************************************************************
40520 SUBROUTINE ints2bits_51(Ndata, packed_data, full_data)
40521 INTEGER, INTENT(IN) :: Ndata
40522 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
40523 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
40524
40525 INTEGER, PARAMETER :: Nbits = 51
40526
40527 INTEGER :: idata, ipack, kdata, Ndata_rep
40528 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
40529
40530 idata = 0
40531 ipack = 0
40532 ndata_rep = (ndata/64)*64
40533 DO kdata = 1, ndata_rep, 64
40534 pack_tmp = 0
40535 idata = idata + 1
40536 data_tmp = full_data(idata)
40537 data_tmp = ishft(data_tmp, 13)
40538 pack_tmp = ior(pack_tmp, data_tmp)
40539 pack_tmp = ishft(pack_tmp, -13)
40540 idata = idata + 1
40541 data_tmp = full_data(idata)
40542 data_tmp = ishft(data_tmp, 13)
40543 data_tmp = iand(data_tmp, mask_left(13))
40544 pack_tmp = ior(pack_tmp, data_tmp)
40545 ipack = ipack + 1
40546 packed_data(ipack) = pack_tmp
40547 data_tmp = full_data(idata)
40548 pack_tmp = ishft(data_tmp, 26)
40549 pack_tmp = ishft(pack_tmp, -26)
40550 idata = idata + 1
40551 data_tmp = full_data(idata)
40552 data_tmp = ishft(data_tmp, 13)
40553 data_tmp = iand(data_tmp, mask_left(26))
40554 pack_tmp = ior(pack_tmp, data_tmp)
40555 ipack = ipack + 1
40556 packed_data(ipack) = pack_tmp
40557 data_tmp = full_data(idata)
40558 pack_tmp = ishft(data_tmp, 39)
40559 pack_tmp = ishft(pack_tmp, -39)
40560 idata = idata + 1
40561 data_tmp = full_data(idata)
40562 data_tmp = ishft(data_tmp, 13)
40563 data_tmp = iand(data_tmp, mask_left(39))
40564 pack_tmp = ior(pack_tmp, data_tmp)
40565 ipack = ipack + 1
40566 packed_data(ipack) = pack_tmp
40567 data_tmp = full_data(idata)
40568 pack_tmp = ishft(data_tmp, 52)
40569 pack_tmp = ishft(pack_tmp, -51)
40570 idata = idata + 1
40571 data_tmp = full_data(idata)
40572 data_tmp = ishft(data_tmp, 13)
40573 pack_tmp = ior(pack_tmp, data_tmp)
40574 pack_tmp = ishft(pack_tmp, -1)
40575 idata = idata + 1
40576 data_tmp = full_data(idata)
40577 data_tmp = ishft(data_tmp, 13)
40578 data_tmp = iand(data_tmp, mask_left(1))
40579 pack_tmp = ior(pack_tmp, data_tmp)
40580 ipack = ipack + 1
40581 packed_data(ipack) = pack_tmp
40582 data_tmp = full_data(idata)
40583 pack_tmp = ishft(data_tmp, 14)
40584 pack_tmp = ishft(pack_tmp, -14)
40585 idata = idata + 1
40586 data_tmp = full_data(idata)
40587 data_tmp = ishft(data_tmp, 13)
40588 data_tmp = iand(data_tmp, mask_left(14))
40589 pack_tmp = ior(pack_tmp, data_tmp)
40590 ipack = ipack + 1
40591 packed_data(ipack) = pack_tmp
40592 data_tmp = full_data(idata)
40593 pack_tmp = ishft(data_tmp, 27)
40594 pack_tmp = ishft(pack_tmp, -27)
40595 idata = idata + 1
40596 data_tmp = full_data(idata)
40597 data_tmp = ishft(data_tmp, 13)
40598 data_tmp = iand(data_tmp, mask_left(27))
40599 pack_tmp = ior(pack_tmp, data_tmp)
40600 ipack = ipack + 1
40601 packed_data(ipack) = pack_tmp
40602 data_tmp = full_data(idata)
40603 pack_tmp = ishft(data_tmp, 40)
40604 pack_tmp = ishft(pack_tmp, -40)
40605 idata = idata + 1
40606 data_tmp = full_data(idata)
40607 data_tmp = ishft(data_tmp, 13)
40608 data_tmp = iand(data_tmp, mask_left(40))
40609 pack_tmp = ior(pack_tmp, data_tmp)
40610 ipack = ipack + 1
40611 packed_data(ipack) = pack_tmp
40612 data_tmp = full_data(idata)
40613 pack_tmp = ishft(data_tmp, 53)
40614 pack_tmp = ishft(pack_tmp, -51)
40615 idata = idata + 1
40616 data_tmp = full_data(idata)
40617 data_tmp = ishft(data_tmp, 13)
40618 pack_tmp = ior(pack_tmp, data_tmp)
40619 pack_tmp = ishft(pack_tmp, -2)
40620 idata = idata + 1
40621 data_tmp = full_data(idata)
40622 data_tmp = ishft(data_tmp, 13)
40623 data_tmp = iand(data_tmp, mask_left(2))
40624 pack_tmp = ior(pack_tmp, data_tmp)
40625 ipack = ipack + 1
40626 packed_data(ipack) = pack_tmp
40627 data_tmp = full_data(idata)
40628 pack_tmp = ishft(data_tmp, 15)
40629 pack_tmp = ishft(pack_tmp, -15)
40630 idata = idata + 1
40631 data_tmp = full_data(idata)
40632 data_tmp = ishft(data_tmp, 13)
40633 data_tmp = iand(data_tmp, mask_left(15))
40634 pack_tmp = ior(pack_tmp, data_tmp)
40635 ipack = ipack + 1
40636 packed_data(ipack) = pack_tmp
40637 data_tmp = full_data(idata)
40638 pack_tmp = ishft(data_tmp, 28)
40639 pack_tmp = ishft(pack_tmp, -28)
40640 idata = idata + 1
40641 data_tmp = full_data(idata)
40642 data_tmp = ishft(data_tmp, 13)
40643 data_tmp = iand(data_tmp, mask_left(28))
40644 pack_tmp = ior(pack_tmp, data_tmp)
40645 ipack = ipack + 1
40646 packed_data(ipack) = pack_tmp
40647 data_tmp = full_data(idata)
40648 pack_tmp = ishft(data_tmp, 41)
40649 pack_tmp = ishft(pack_tmp, -41)
40650 idata = idata + 1
40651 data_tmp = full_data(idata)
40652 data_tmp = ishft(data_tmp, 13)
40653 data_tmp = iand(data_tmp, mask_left(41))
40654 pack_tmp = ior(pack_tmp, data_tmp)
40655 ipack = ipack + 1
40656 packed_data(ipack) = pack_tmp
40657 data_tmp = full_data(idata)
40658 pack_tmp = ishft(data_tmp, 54)
40659 pack_tmp = ishft(pack_tmp, -51)
40660 idata = idata + 1
40661 data_tmp = full_data(idata)
40662 data_tmp = ishft(data_tmp, 13)
40663 pack_tmp = ior(pack_tmp, data_tmp)
40664 pack_tmp = ishft(pack_tmp, -3)
40665 idata = idata + 1
40666 data_tmp = full_data(idata)
40667 data_tmp = ishft(data_tmp, 13)
40668 data_tmp = iand(data_tmp, mask_left(3))
40669 pack_tmp = ior(pack_tmp, data_tmp)
40670 ipack = ipack + 1
40671 packed_data(ipack) = pack_tmp
40672 data_tmp = full_data(idata)
40673 pack_tmp = ishft(data_tmp, 16)
40674 pack_tmp = ishft(pack_tmp, -16)
40675 idata = idata + 1
40676 data_tmp = full_data(idata)
40677 data_tmp = ishft(data_tmp, 13)
40678 data_tmp = iand(data_tmp, mask_left(16))
40679 pack_tmp = ior(pack_tmp, data_tmp)
40680 ipack = ipack + 1
40681 packed_data(ipack) = pack_tmp
40682 data_tmp = full_data(idata)
40683 pack_tmp = ishft(data_tmp, 29)
40684 pack_tmp = ishft(pack_tmp, -29)
40685 idata = idata + 1
40686 data_tmp = full_data(idata)
40687 data_tmp = ishft(data_tmp, 13)
40688 data_tmp = iand(data_tmp, mask_left(29))
40689 pack_tmp = ior(pack_tmp, data_tmp)
40690 ipack = ipack + 1
40691 packed_data(ipack) = pack_tmp
40692 data_tmp = full_data(idata)
40693 pack_tmp = ishft(data_tmp, 42)
40694 pack_tmp = ishft(pack_tmp, -42)
40695 idata = idata + 1
40696 data_tmp = full_data(idata)
40697 data_tmp = ishft(data_tmp, 13)
40698 data_tmp = iand(data_tmp, mask_left(42))
40699 pack_tmp = ior(pack_tmp, data_tmp)
40700 ipack = ipack + 1
40701 packed_data(ipack) = pack_tmp
40702 data_tmp = full_data(idata)
40703 pack_tmp = ishft(data_tmp, 55)
40704 pack_tmp = ishft(pack_tmp, -51)
40705 idata = idata + 1
40706 data_tmp = full_data(idata)
40707 data_tmp = ishft(data_tmp, 13)
40708 pack_tmp = ior(pack_tmp, data_tmp)
40709 pack_tmp = ishft(pack_tmp, -4)
40710 idata = idata + 1
40711 data_tmp = full_data(idata)
40712 data_tmp = ishft(data_tmp, 13)
40713 data_tmp = iand(data_tmp, mask_left(4))
40714 pack_tmp = ior(pack_tmp, data_tmp)
40715 ipack = ipack + 1
40716 packed_data(ipack) = pack_tmp
40717 data_tmp = full_data(idata)
40718 pack_tmp = ishft(data_tmp, 17)
40719 pack_tmp = ishft(pack_tmp, -17)
40720 idata = idata + 1
40721 data_tmp = full_data(idata)
40722 data_tmp = ishft(data_tmp, 13)
40723 data_tmp = iand(data_tmp, mask_left(17))
40724 pack_tmp = ior(pack_tmp, data_tmp)
40725 ipack = ipack + 1
40726 packed_data(ipack) = pack_tmp
40727 data_tmp = full_data(idata)
40728 pack_tmp = ishft(data_tmp, 30)
40729 pack_tmp = ishft(pack_tmp, -30)
40730 idata = idata + 1
40731 data_tmp = full_data(idata)
40732 data_tmp = ishft(data_tmp, 13)
40733 data_tmp = iand(data_tmp, mask_left(30))
40734 pack_tmp = ior(pack_tmp, data_tmp)
40735 ipack = ipack + 1
40736 packed_data(ipack) = pack_tmp
40737 data_tmp = full_data(idata)
40738 pack_tmp = ishft(data_tmp, 43)
40739 pack_tmp = ishft(pack_tmp, -43)
40740 idata = idata + 1
40741 data_tmp = full_data(idata)
40742 data_tmp = ishft(data_tmp, 13)
40743 data_tmp = iand(data_tmp, mask_left(43))
40744 pack_tmp = ior(pack_tmp, data_tmp)
40745 ipack = ipack + 1
40746 packed_data(ipack) = pack_tmp
40747 data_tmp = full_data(idata)
40748 pack_tmp = ishft(data_tmp, 56)
40749 pack_tmp = ishft(pack_tmp, -51)
40750 idata = idata + 1
40751 data_tmp = full_data(idata)
40752 data_tmp = ishft(data_tmp, 13)
40753 pack_tmp = ior(pack_tmp, data_tmp)
40754 pack_tmp = ishft(pack_tmp, -5)
40755 idata = idata + 1
40756 data_tmp = full_data(idata)
40757 data_tmp = ishft(data_tmp, 13)
40758 data_tmp = iand(data_tmp, mask_left(5))
40759 pack_tmp = ior(pack_tmp, data_tmp)
40760 ipack = ipack + 1
40761 packed_data(ipack) = pack_tmp
40762 data_tmp = full_data(idata)
40763 pack_tmp = ishft(data_tmp, 18)
40764 pack_tmp = ishft(pack_tmp, -18)
40765 idata = idata + 1
40766 data_tmp = full_data(idata)
40767 data_tmp = ishft(data_tmp, 13)
40768 data_tmp = iand(data_tmp, mask_left(18))
40769 pack_tmp = ior(pack_tmp, data_tmp)
40770 ipack = ipack + 1
40771 packed_data(ipack) = pack_tmp
40772 data_tmp = full_data(idata)
40773 pack_tmp = ishft(data_tmp, 31)
40774 pack_tmp = ishft(pack_tmp, -31)
40775 idata = idata + 1
40776 data_tmp = full_data(idata)
40777 data_tmp = ishft(data_tmp, 13)
40778 data_tmp = iand(data_tmp, mask_left(31))
40779 pack_tmp = ior(pack_tmp, data_tmp)
40780 ipack = ipack + 1
40781 packed_data(ipack) = pack_tmp
40782 data_tmp = full_data(idata)
40783 pack_tmp = ishft(data_tmp, 44)
40784 pack_tmp = ishft(pack_tmp, -44)
40785 idata = idata + 1
40786 data_tmp = full_data(idata)
40787 data_tmp = ishft(data_tmp, 13)
40788 data_tmp = iand(data_tmp, mask_left(44))
40789 pack_tmp = ior(pack_tmp, data_tmp)
40790 ipack = ipack + 1
40791 packed_data(ipack) = pack_tmp
40792 data_tmp = full_data(idata)
40793 pack_tmp = ishft(data_tmp, 57)
40794 pack_tmp = ishft(pack_tmp, -51)
40795 idata = idata + 1
40796 data_tmp = full_data(idata)
40797 data_tmp = ishft(data_tmp, 13)
40798 pack_tmp = ior(pack_tmp, data_tmp)
40799 pack_tmp = ishft(pack_tmp, -6)
40800 idata = idata + 1
40801 data_tmp = full_data(idata)
40802 data_tmp = ishft(data_tmp, 13)
40803 data_tmp = iand(data_tmp, mask_left(6))
40804 pack_tmp = ior(pack_tmp, data_tmp)
40805 ipack = ipack + 1
40806 packed_data(ipack) = pack_tmp
40807 data_tmp = full_data(idata)
40808 pack_tmp = ishft(data_tmp, 19)
40809 pack_tmp = ishft(pack_tmp, -19)
40810 idata = idata + 1
40811 data_tmp = full_data(idata)
40812 data_tmp = ishft(data_tmp, 13)
40813 data_tmp = iand(data_tmp, mask_left(19))
40814 pack_tmp = ior(pack_tmp, data_tmp)
40815 ipack = ipack + 1
40816 packed_data(ipack) = pack_tmp
40817 data_tmp = full_data(idata)
40818 pack_tmp = ishft(data_tmp, 32)
40819 pack_tmp = ishft(pack_tmp, -32)
40820 idata = idata + 1
40821 data_tmp = full_data(idata)
40822 data_tmp = ishft(data_tmp, 13)
40823 data_tmp = iand(data_tmp, mask_left(32))
40824 pack_tmp = ior(pack_tmp, data_tmp)
40825 ipack = ipack + 1
40826 packed_data(ipack) = pack_tmp
40827 data_tmp = full_data(idata)
40828 pack_tmp = ishft(data_tmp, 45)
40829 pack_tmp = ishft(pack_tmp, -45)
40830 idata = idata + 1
40831 data_tmp = full_data(idata)
40832 data_tmp = ishft(data_tmp, 13)
40833 data_tmp = iand(data_tmp, mask_left(45))
40834 pack_tmp = ior(pack_tmp, data_tmp)
40835 ipack = ipack + 1
40836 packed_data(ipack) = pack_tmp
40837 data_tmp = full_data(idata)
40838 pack_tmp = ishft(data_tmp, 58)
40839 pack_tmp = ishft(pack_tmp, -51)
40840 idata = idata + 1
40841 data_tmp = full_data(idata)
40842 data_tmp = ishft(data_tmp, 13)
40843 pack_tmp = ior(pack_tmp, data_tmp)
40844 pack_tmp = ishft(pack_tmp, -7)
40845 idata = idata + 1
40846 data_tmp = full_data(idata)
40847 data_tmp = ishft(data_tmp, 13)
40848 data_tmp = iand(data_tmp, mask_left(7))
40849 pack_tmp = ior(pack_tmp, data_tmp)
40850 ipack = ipack + 1
40851 packed_data(ipack) = pack_tmp
40852 data_tmp = full_data(idata)
40853 pack_tmp = ishft(data_tmp, 20)
40854 pack_tmp = ishft(pack_tmp, -20)
40855 idata = idata + 1
40856 data_tmp = full_data(idata)
40857 data_tmp = ishft(data_tmp, 13)
40858 data_tmp = iand(data_tmp, mask_left(20))
40859 pack_tmp = ior(pack_tmp, data_tmp)
40860 ipack = ipack + 1
40861 packed_data(ipack) = pack_tmp
40862 data_tmp = full_data(idata)
40863 pack_tmp = ishft(data_tmp, 33)
40864 pack_tmp = ishft(pack_tmp, -33)
40865 idata = idata + 1
40866 data_tmp = full_data(idata)
40867 data_tmp = ishft(data_tmp, 13)
40868 data_tmp = iand(data_tmp, mask_left(33))
40869 pack_tmp = ior(pack_tmp, data_tmp)
40870 ipack = ipack + 1
40871 packed_data(ipack) = pack_tmp
40872 data_tmp = full_data(idata)
40873 pack_tmp = ishft(data_tmp, 46)
40874 pack_tmp = ishft(pack_tmp, -46)
40875 idata = idata + 1
40876 data_tmp = full_data(idata)
40877 data_tmp = ishft(data_tmp, 13)
40878 data_tmp = iand(data_tmp, mask_left(46))
40879 pack_tmp = ior(pack_tmp, data_tmp)
40880 ipack = ipack + 1
40881 packed_data(ipack) = pack_tmp
40882 data_tmp = full_data(idata)
40883 pack_tmp = ishft(data_tmp, 59)
40884 pack_tmp = ishft(pack_tmp, -51)
40885 idata = idata + 1
40886 data_tmp = full_data(idata)
40887 data_tmp = ishft(data_tmp, 13)
40888 pack_tmp = ior(pack_tmp, data_tmp)
40889 pack_tmp = ishft(pack_tmp, -8)
40890 idata = idata + 1
40891 data_tmp = full_data(idata)
40892 data_tmp = ishft(data_tmp, 13)
40893 data_tmp = iand(data_tmp, mask_left(8))
40894 pack_tmp = ior(pack_tmp, data_tmp)
40895 ipack = ipack + 1
40896 packed_data(ipack) = pack_tmp
40897 data_tmp = full_data(idata)
40898 pack_tmp = ishft(data_tmp, 21)
40899 pack_tmp = ishft(pack_tmp, -21)
40900 idata = idata + 1
40901 data_tmp = full_data(idata)
40902 data_tmp = ishft(data_tmp, 13)
40903 data_tmp = iand(data_tmp, mask_left(21))
40904 pack_tmp = ior(pack_tmp, data_tmp)
40905 ipack = ipack + 1
40906 packed_data(ipack) = pack_tmp
40907 data_tmp = full_data(idata)
40908 pack_tmp = ishft(data_tmp, 34)
40909 pack_tmp = ishft(pack_tmp, -34)
40910 idata = idata + 1
40911 data_tmp = full_data(idata)
40912 data_tmp = ishft(data_tmp, 13)
40913 data_tmp = iand(data_tmp, mask_left(34))
40914 pack_tmp = ior(pack_tmp, data_tmp)
40915 ipack = ipack + 1
40916 packed_data(ipack) = pack_tmp
40917 data_tmp = full_data(idata)
40918 pack_tmp = ishft(data_tmp, 47)
40919 pack_tmp = ishft(pack_tmp, -47)
40920 idata = idata + 1
40921 data_tmp = full_data(idata)
40922 data_tmp = ishft(data_tmp, 13)
40923 data_tmp = iand(data_tmp, mask_left(47))
40924 pack_tmp = ior(pack_tmp, data_tmp)
40925 ipack = ipack + 1
40926 packed_data(ipack) = pack_tmp
40927 data_tmp = full_data(idata)
40928 pack_tmp = ishft(data_tmp, 60)
40929 pack_tmp = ishft(pack_tmp, -51)
40930 idata = idata + 1
40931 data_tmp = full_data(idata)
40932 data_tmp = ishft(data_tmp, 13)
40933 pack_tmp = ior(pack_tmp, data_tmp)
40934 pack_tmp = ishft(pack_tmp, -9)
40935 idata = idata + 1
40936 data_tmp = full_data(idata)
40937 data_tmp = ishft(data_tmp, 13)
40938 data_tmp = iand(data_tmp, mask_left(9))
40939 pack_tmp = ior(pack_tmp, data_tmp)
40940 ipack = ipack + 1
40941 packed_data(ipack) = pack_tmp
40942 data_tmp = full_data(idata)
40943 pack_tmp = ishft(data_tmp, 22)
40944 pack_tmp = ishft(pack_tmp, -22)
40945 idata = idata + 1
40946 data_tmp = full_data(idata)
40947 data_tmp = ishft(data_tmp, 13)
40948 data_tmp = iand(data_tmp, mask_left(22))
40949 pack_tmp = ior(pack_tmp, data_tmp)
40950 ipack = ipack + 1
40951 packed_data(ipack) = pack_tmp
40952 data_tmp = full_data(idata)
40953 pack_tmp = ishft(data_tmp, 35)
40954 pack_tmp = ishft(pack_tmp, -35)
40955 idata = idata + 1
40956 data_tmp = full_data(idata)
40957 data_tmp = ishft(data_tmp, 13)
40958 data_tmp = iand(data_tmp, mask_left(35))
40959 pack_tmp = ior(pack_tmp, data_tmp)
40960 ipack = ipack + 1
40961 packed_data(ipack) = pack_tmp
40962 data_tmp = full_data(idata)
40963 pack_tmp = ishft(data_tmp, 48)
40964 pack_tmp = ishft(pack_tmp, -48)
40965 idata = idata + 1
40966 data_tmp = full_data(idata)
40967 data_tmp = ishft(data_tmp, 13)
40968 data_tmp = iand(data_tmp, mask_left(48))
40969 pack_tmp = ior(pack_tmp, data_tmp)
40970 ipack = ipack + 1
40971 packed_data(ipack) = pack_tmp
40972 data_tmp = full_data(idata)
40973 pack_tmp = ishft(data_tmp, 61)
40974 pack_tmp = ishft(pack_tmp, -51)
40975 idata = idata + 1
40976 data_tmp = full_data(idata)
40977 data_tmp = ishft(data_tmp, 13)
40978 pack_tmp = ior(pack_tmp, data_tmp)
40979 pack_tmp = ishft(pack_tmp, -10)
40980 idata = idata + 1
40981 data_tmp = full_data(idata)
40982 data_tmp = ishft(data_tmp, 13)
40983 data_tmp = iand(data_tmp, mask_left(10))
40984 pack_tmp = ior(pack_tmp, data_tmp)
40985 ipack = ipack + 1
40986 packed_data(ipack) = pack_tmp
40987 data_tmp = full_data(idata)
40988 pack_tmp = ishft(data_tmp, 23)
40989 pack_tmp = ishft(pack_tmp, -23)
40990 idata = idata + 1
40991 data_tmp = full_data(idata)
40992 data_tmp = ishft(data_tmp, 13)
40993 data_tmp = iand(data_tmp, mask_left(23))
40994 pack_tmp = ior(pack_tmp, data_tmp)
40995 ipack = ipack + 1
40996 packed_data(ipack) = pack_tmp
40997 data_tmp = full_data(idata)
40998 pack_tmp = ishft(data_tmp, 36)
40999 pack_tmp = ishft(pack_tmp, -36)
41000 idata = idata + 1
41001 data_tmp = full_data(idata)
41002 data_tmp = ishft(data_tmp, 13)
41003 data_tmp = iand(data_tmp, mask_left(36))
41004 pack_tmp = ior(pack_tmp, data_tmp)
41005 ipack = ipack + 1
41006 packed_data(ipack) = pack_tmp
41007 data_tmp = full_data(idata)
41008 pack_tmp = ishft(data_tmp, 49)
41009 pack_tmp = ishft(pack_tmp, -49)
41010 idata = idata + 1
41011 data_tmp = full_data(idata)
41012 data_tmp = ishft(data_tmp, 13)
41013 data_tmp = iand(data_tmp, mask_left(49))
41014 pack_tmp = ior(pack_tmp, data_tmp)
41015 ipack = ipack + 1
41016 packed_data(ipack) = pack_tmp
41017 data_tmp = full_data(idata)
41018 pack_tmp = ishft(data_tmp, 62)
41019 pack_tmp = ishft(pack_tmp, -51)
41020 idata = idata + 1
41021 data_tmp = full_data(idata)
41022 data_tmp = ishft(data_tmp, 13)
41023 pack_tmp = ior(pack_tmp, data_tmp)
41024 pack_tmp = ishft(pack_tmp, -11)
41025 idata = idata + 1
41026 data_tmp = full_data(idata)
41027 data_tmp = ishft(data_tmp, 13)
41028 data_tmp = iand(data_tmp, mask_left(11))
41029 pack_tmp = ior(pack_tmp, data_tmp)
41030 ipack = ipack + 1
41031 packed_data(ipack) = pack_tmp
41032 data_tmp = full_data(idata)
41033 pack_tmp = ishft(data_tmp, 24)
41034 pack_tmp = ishft(pack_tmp, -24)
41035 idata = idata + 1
41036 data_tmp = full_data(idata)
41037 data_tmp = ishft(data_tmp, 13)
41038 data_tmp = iand(data_tmp, mask_left(24))
41039 pack_tmp = ior(pack_tmp, data_tmp)
41040 ipack = ipack + 1
41041 packed_data(ipack) = pack_tmp
41042 data_tmp = full_data(idata)
41043 pack_tmp = ishft(data_tmp, 37)
41044 pack_tmp = ishft(pack_tmp, -37)
41045 idata = idata + 1
41046 data_tmp = full_data(idata)
41047 data_tmp = ishft(data_tmp, 13)
41048 data_tmp = iand(data_tmp, mask_left(37))
41049 pack_tmp = ior(pack_tmp, data_tmp)
41050 ipack = ipack + 1
41051 packed_data(ipack) = pack_tmp
41052 data_tmp = full_data(idata)
41053 pack_tmp = ishft(data_tmp, 50)
41054 pack_tmp = ishft(pack_tmp, -50)
41055 idata = idata + 1
41056 data_tmp = full_data(idata)
41057 data_tmp = ishft(data_tmp, 13)
41058 data_tmp = iand(data_tmp, mask_left(50))
41059 pack_tmp = ior(pack_tmp, data_tmp)
41060 ipack = ipack + 1
41061 packed_data(ipack) = pack_tmp
41062 data_tmp = full_data(idata)
41063 pack_tmp = ishft(data_tmp, 63)
41064 pack_tmp = ishft(pack_tmp, -51)
41065 idata = idata + 1
41066 data_tmp = full_data(idata)
41067 data_tmp = ishft(data_tmp, 13)
41068 pack_tmp = ior(pack_tmp, data_tmp)
41069 pack_tmp = ishft(pack_tmp, -12)
41070 idata = idata + 1
41071 data_tmp = full_data(idata)
41072 data_tmp = ishft(data_tmp, 13)
41073 data_tmp = iand(data_tmp, mask_left(12))
41074 pack_tmp = ior(pack_tmp, data_tmp)
41075 ipack = ipack + 1
41076 packed_data(ipack) = pack_tmp
41077 data_tmp = full_data(idata)
41078 pack_tmp = ishft(data_tmp, 25)
41079 pack_tmp = ishft(pack_tmp, -25)
41080 idata = idata + 1
41081 data_tmp = full_data(idata)
41082 data_tmp = ishft(data_tmp, 13)
41083 data_tmp = iand(data_tmp, mask_left(25))
41084 pack_tmp = ior(pack_tmp, data_tmp)
41085 ipack = ipack + 1
41086 packed_data(ipack) = pack_tmp
41087 data_tmp = full_data(idata)
41088 pack_tmp = ishft(data_tmp, 38)
41089 pack_tmp = ishft(pack_tmp, -38)
41090 idata = idata + 1
41091 data_tmp = full_data(idata)
41092 data_tmp = ishft(data_tmp, 13)
41093 data_tmp = iand(data_tmp, mask_left(38))
41094 pack_tmp = ior(pack_tmp, data_tmp)
41095 ipack = ipack + 1
41096 packed_data(ipack) = pack_tmp
41097 data_tmp = full_data(idata)
41098 pack_tmp = ishft(data_tmp, 51)
41099 pack_tmp = ishft(pack_tmp, -51)
41100 idata = idata + 1
41101 data_tmp = full_data(idata)
41102 data_tmp = ishft(data_tmp, 13)
41103 pack_tmp = ior(pack_tmp, data_tmp)
41104 pack_tmp = ishft(pack_tmp, 0)
41105 pack_tmp = ishft(pack_tmp, 0)
41106 ipack = ipack + 1
41107 packed_data(ipack) = pack_tmp
41108 END DO
41109 IF (ndata_rep < ndata) THEN
41110 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
41111 END IF
41112 END SUBROUTINE ints2bits_51
41113
41114! **************************************************************************************************
41115!> \brief ...
41116!> \param Ndata ...
41117!> \param packed_data ...
41118!> \param full_data ...
41119! **************************************************************************************************
41120 SUBROUTINE bits2ints_51(Ndata, packed_data, full_data)
41121 INTEGER, INTENT(IN) :: Ndata
41122 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
41123 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
41124
41125 INTEGER, PARAMETER :: Nbits = 51
41126
41127 INTEGER :: idata, ipack, kdata, Ndata_rep
41128 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
41129
41130 ipack = 0
41131 idata = 0
41132 pack_tmp = 0
41133 ndata_rep = (ndata/64)*64
41134 DO kdata = 1, ndata_rep, 64
41135 idata = idata + 1
41136 data_tmp = ishft(pack_tmp, 51)
41137 ipack = ipack + 1
41138 pack_tmp = packed_data(ipack)
41139 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(51)))
41140 pack_tmp = ishft(pack_tmp, -51)
41141 idata = idata + 1
41142 data_tmp = ishft(pack_tmp, 38)
41143 ipack = ipack + 1
41144 pack_tmp = packed_data(ipack)
41145 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
41146 pack_tmp = ishft(pack_tmp, -38)
41147 idata = idata + 1
41148 data_tmp = ishft(pack_tmp, 25)
41149 ipack = ipack + 1
41150 pack_tmp = packed_data(ipack)
41151 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
41152 pack_tmp = ishft(pack_tmp, -25)
41153 idata = idata + 1
41154 data_tmp = ishft(pack_tmp, 12)
41155 ipack = ipack + 1
41156 pack_tmp = packed_data(ipack)
41157 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
41158 pack_tmp = ishft(pack_tmp, -12)
41159 idata = idata + 1
41160 data_tmp = iand(pack_tmp, mask_right(nbits))
41161 full_data(idata) = data_tmp
41162 pack_tmp = ishft(pack_tmp, -nbits)
41163 idata = idata + 1
41164 data_tmp = ishft(pack_tmp, 50)
41165 ipack = ipack + 1
41166 pack_tmp = packed_data(ipack)
41167 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
41168 pack_tmp = ishft(pack_tmp, -50)
41169 idata = idata + 1
41170 data_tmp = ishft(pack_tmp, 37)
41171 ipack = ipack + 1
41172 pack_tmp = packed_data(ipack)
41173 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
41174 pack_tmp = ishft(pack_tmp, -37)
41175 idata = idata + 1
41176 data_tmp = ishft(pack_tmp, 24)
41177 ipack = ipack + 1
41178 pack_tmp = packed_data(ipack)
41179 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
41180 pack_tmp = ishft(pack_tmp, -24)
41181 idata = idata + 1
41182 data_tmp = ishft(pack_tmp, 11)
41183 ipack = ipack + 1
41184 pack_tmp = packed_data(ipack)
41185 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
41186 pack_tmp = ishft(pack_tmp, -11)
41187 idata = idata + 1
41188 data_tmp = iand(pack_tmp, mask_right(nbits))
41189 full_data(idata) = data_tmp
41190 pack_tmp = ishft(pack_tmp, -nbits)
41191 idata = idata + 1
41192 data_tmp = ishft(pack_tmp, 49)
41193 ipack = ipack + 1
41194 pack_tmp = packed_data(ipack)
41195 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(49)))
41196 pack_tmp = ishft(pack_tmp, -49)
41197 idata = idata + 1
41198 data_tmp = ishft(pack_tmp, 36)
41199 ipack = ipack + 1
41200 pack_tmp = packed_data(ipack)
41201 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
41202 pack_tmp = ishft(pack_tmp, -36)
41203 idata = idata + 1
41204 data_tmp = ishft(pack_tmp, 23)
41205 ipack = ipack + 1
41206 pack_tmp = packed_data(ipack)
41207 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
41208 pack_tmp = ishft(pack_tmp, -23)
41209 idata = idata + 1
41210 data_tmp = ishft(pack_tmp, 10)
41211 ipack = ipack + 1
41212 pack_tmp = packed_data(ipack)
41213 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
41214 pack_tmp = ishft(pack_tmp, -10)
41215 idata = idata + 1
41216 data_tmp = iand(pack_tmp, mask_right(nbits))
41217 full_data(idata) = data_tmp
41218 pack_tmp = ishft(pack_tmp, -nbits)
41219 idata = idata + 1
41220 data_tmp = ishft(pack_tmp, 48)
41221 ipack = ipack + 1
41222 pack_tmp = packed_data(ipack)
41223 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
41224 pack_tmp = ishft(pack_tmp, -48)
41225 idata = idata + 1
41226 data_tmp = ishft(pack_tmp, 35)
41227 ipack = ipack + 1
41228 pack_tmp = packed_data(ipack)
41229 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
41230 pack_tmp = ishft(pack_tmp, -35)
41231 idata = idata + 1
41232 data_tmp = ishft(pack_tmp, 22)
41233 ipack = ipack + 1
41234 pack_tmp = packed_data(ipack)
41235 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
41236 pack_tmp = ishft(pack_tmp, -22)
41237 idata = idata + 1
41238 data_tmp = ishft(pack_tmp, 9)
41239 ipack = ipack + 1
41240 pack_tmp = packed_data(ipack)
41241 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
41242 pack_tmp = ishft(pack_tmp, -9)
41243 idata = idata + 1
41244 data_tmp = iand(pack_tmp, mask_right(nbits))
41245 full_data(idata) = data_tmp
41246 pack_tmp = ishft(pack_tmp, -nbits)
41247 idata = idata + 1
41248 data_tmp = ishft(pack_tmp, 47)
41249 ipack = ipack + 1
41250 pack_tmp = packed_data(ipack)
41251 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(47)))
41252 pack_tmp = ishft(pack_tmp, -47)
41253 idata = idata + 1
41254 data_tmp = ishft(pack_tmp, 34)
41255 ipack = ipack + 1
41256 pack_tmp = packed_data(ipack)
41257 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
41258 pack_tmp = ishft(pack_tmp, -34)
41259 idata = idata + 1
41260 data_tmp = ishft(pack_tmp, 21)
41261 ipack = ipack + 1
41262 pack_tmp = packed_data(ipack)
41263 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
41264 pack_tmp = ishft(pack_tmp, -21)
41265 idata = idata + 1
41266 data_tmp = ishft(pack_tmp, 8)
41267 ipack = ipack + 1
41268 pack_tmp = packed_data(ipack)
41269 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
41270 pack_tmp = ishft(pack_tmp, -8)
41271 idata = idata + 1
41272 data_tmp = iand(pack_tmp, mask_right(nbits))
41273 full_data(idata) = data_tmp
41274 pack_tmp = ishft(pack_tmp, -nbits)
41275 idata = idata + 1
41276 data_tmp = ishft(pack_tmp, 46)
41277 ipack = ipack + 1
41278 pack_tmp = packed_data(ipack)
41279 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
41280 pack_tmp = ishft(pack_tmp, -46)
41281 idata = idata + 1
41282 data_tmp = ishft(pack_tmp, 33)
41283 ipack = ipack + 1
41284 pack_tmp = packed_data(ipack)
41285 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
41286 pack_tmp = ishft(pack_tmp, -33)
41287 idata = idata + 1
41288 data_tmp = ishft(pack_tmp, 20)
41289 ipack = ipack + 1
41290 pack_tmp = packed_data(ipack)
41291 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
41292 pack_tmp = ishft(pack_tmp, -20)
41293 idata = idata + 1
41294 data_tmp = ishft(pack_tmp, 7)
41295 ipack = ipack + 1
41296 pack_tmp = packed_data(ipack)
41297 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
41298 pack_tmp = ishft(pack_tmp, -7)
41299 idata = idata + 1
41300 data_tmp = iand(pack_tmp, mask_right(nbits))
41301 full_data(idata) = data_tmp
41302 pack_tmp = ishft(pack_tmp, -nbits)
41303 idata = idata + 1
41304 data_tmp = ishft(pack_tmp, 45)
41305 ipack = ipack + 1
41306 pack_tmp = packed_data(ipack)
41307 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(45)))
41308 pack_tmp = ishft(pack_tmp, -45)
41309 idata = idata + 1
41310 data_tmp = ishft(pack_tmp, 32)
41311 ipack = ipack + 1
41312 pack_tmp = packed_data(ipack)
41313 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
41314 pack_tmp = ishft(pack_tmp, -32)
41315 idata = idata + 1
41316 data_tmp = ishft(pack_tmp, 19)
41317 ipack = ipack + 1
41318 pack_tmp = packed_data(ipack)
41319 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
41320 pack_tmp = ishft(pack_tmp, -19)
41321 idata = idata + 1
41322 data_tmp = ishft(pack_tmp, 6)
41323 ipack = ipack + 1
41324 pack_tmp = packed_data(ipack)
41325 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
41326 pack_tmp = ishft(pack_tmp, -6)
41327 idata = idata + 1
41328 data_tmp = iand(pack_tmp, mask_right(nbits))
41329 full_data(idata) = data_tmp
41330 pack_tmp = ishft(pack_tmp, -nbits)
41331 idata = idata + 1
41332 data_tmp = ishft(pack_tmp, 44)
41333 ipack = ipack + 1
41334 pack_tmp = packed_data(ipack)
41335 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
41336 pack_tmp = ishft(pack_tmp, -44)
41337 idata = idata + 1
41338 data_tmp = ishft(pack_tmp, 31)
41339 ipack = ipack + 1
41340 pack_tmp = packed_data(ipack)
41341 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
41342 pack_tmp = ishft(pack_tmp, -31)
41343 idata = idata + 1
41344 data_tmp = ishft(pack_tmp, 18)
41345 ipack = ipack + 1
41346 pack_tmp = packed_data(ipack)
41347 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
41348 pack_tmp = ishft(pack_tmp, -18)
41349 idata = idata + 1
41350 data_tmp = ishft(pack_tmp, 5)
41351 ipack = ipack + 1
41352 pack_tmp = packed_data(ipack)
41353 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
41354 pack_tmp = ishft(pack_tmp, -5)
41355 idata = idata + 1
41356 data_tmp = iand(pack_tmp, mask_right(nbits))
41357 full_data(idata) = data_tmp
41358 pack_tmp = ishft(pack_tmp, -nbits)
41359 idata = idata + 1
41360 data_tmp = ishft(pack_tmp, 43)
41361 ipack = ipack + 1
41362 pack_tmp = packed_data(ipack)
41363 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(43)))
41364 pack_tmp = ishft(pack_tmp, -43)
41365 idata = idata + 1
41366 data_tmp = ishft(pack_tmp, 30)
41367 ipack = ipack + 1
41368 pack_tmp = packed_data(ipack)
41369 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
41370 pack_tmp = ishft(pack_tmp, -30)
41371 idata = idata + 1
41372 data_tmp = ishft(pack_tmp, 17)
41373 ipack = ipack + 1
41374 pack_tmp = packed_data(ipack)
41375 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
41376 pack_tmp = ishft(pack_tmp, -17)
41377 idata = idata + 1
41378 data_tmp = ishft(pack_tmp, 4)
41379 ipack = ipack + 1
41380 pack_tmp = packed_data(ipack)
41381 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
41382 pack_tmp = ishft(pack_tmp, -4)
41383 idata = idata + 1
41384 data_tmp = iand(pack_tmp, mask_right(nbits))
41385 full_data(idata) = data_tmp
41386 pack_tmp = ishft(pack_tmp, -nbits)
41387 idata = idata + 1
41388 data_tmp = ishft(pack_tmp, 42)
41389 ipack = ipack + 1
41390 pack_tmp = packed_data(ipack)
41391 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
41392 pack_tmp = ishft(pack_tmp, -42)
41393 idata = idata + 1
41394 data_tmp = ishft(pack_tmp, 29)
41395 ipack = ipack + 1
41396 pack_tmp = packed_data(ipack)
41397 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
41398 pack_tmp = ishft(pack_tmp, -29)
41399 idata = idata + 1
41400 data_tmp = ishft(pack_tmp, 16)
41401 ipack = ipack + 1
41402 pack_tmp = packed_data(ipack)
41403 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
41404 pack_tmp = ishft(pack_tmp, -16)
41405 idata = idata + 1
41406 data_tmp = ishft(pack_tmp, 3)
41407 ipack = ipack + 1
41408 pack_tmp = packed_data(ipack)
41409 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
41410 pack_tmp = ishft(pack_tmp, -3)
41411 idata = idata + 1
41412 data_tmp = iand(pack_tmp, mask_right(nbits))
41413 full_data(idata) = data_tmp
41414 pack_tmp = ishft(pack_tmp, -nbits)
41415 idata = idata + 1
41416 data_tmp = ishft(pack_tmp, 41)
41417 ipack = ipack + 1
41418 pack_tmp = packed_data(ipack)
41419 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(41)))
41420 pack_tmp = ishft(pack_tmp, -41)
41421 idata = idata + 1
41422 data_tmp = ishft(pack_tmp, 28)
41423 ipack = ipack + 1
41424 pack_tmp = packed_data(ipack)
41425 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
41426 pack_tmp = ishft(pack_tmp, -28)
41427 idata = idata + 1
41428 data_tmp = ishft(pack_tmp, 15)
41429 ipack = ipack + 1
41430 pack_tmp = packed_data(ipack)
41431 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
41432 pack_tmp = ishft(pack_tmp, -15)
41433 idata = idata + 1
41434 data_tmp = ishft(pack_tmp, 2)
41435 ipack = ipack + 1
41436 pack_tmp = packed_data(ipack)
41437 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
41438 pack_tmp = ishft(pack_tmp, -2)
41439 idata = idata + 1
41440 data_tmp = iand(pack_tmp, mask_right(nbits))
41441 full_data(idata) = data_tmp
41442 pack_tmp = ishft(pack_tmp, -nbits)
41443 idata = idata + 1
41444 data_tmp = ishft(pack_tmp, 40)
41445 ipack = ipack + 1
41446 pack_tmp = packed_data(ipack)
41447 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
41448 pack_tmp = ishft(pack_tmp, -40)
41449 idata = idata + 1
41450 data_tmp = ishft(pack_tmp, 27)
41451 ipack = ipack + 1
41452 pack_tmp = packed_data(ipack)
41453 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
41454 pack_tmp = ishft(pack_tmp, -27)
41455 idata = idata + 1
41456 data_tmp = ishft(pack_tmp, 14)
41457 ipack = ipack + 1
41458 pack_tmp = packed_data(ipack)
41459 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
41460 pack_tmp = ishft(pack_tmp, -14)
41461 idata = idata + 1
41462 data_tmp = ishft(pack_tmp, 1)
41463 ipack = ipack + 1
41464 pack_tmp = packed_data(ipack)
41465 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
41466 pack_tmp = ishft(pack_tmp, -1)
41467 idata = idata + 1
41468 data_tmp = iand(pack_tmp, mask_right(nbits))
41469 full_data(idata) = data_tmp
41470 pack_tmp = ishft(pack_tmp, -nbits)
41471 idata = idata + 1
41472 data_tmp = ishft(pack_tmp, 39)
41473 ipack = ipack + 1
41474 pack_tmp = packed_data(ipack)
41475 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
41476 pack_tmp = ishft(pack_tmp, -39)
41477 idata = idata + 1
41478 data_tmp = ishft(pack_tmp, 26)
41479 ipack = ipack + 1
41480 pack_tmp = packed_data(ipack)
41481 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
41482 pack_tmp = ishft(pack_tmp, -26)
41483 idata = idata + 1
41484 data_tmp = ishft(pack_tmp, 13)
41485 ipack = ipack + 1
41486 pack_tmp = packed_data(ipack)
41487 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
41488 pack_tmp = ishft(pack_tmp, -13)
41489 idata = idata + 1
41490 data_tmp = iand(pack_tmp, mask_right(nbits))
41491 full_data(idata) = data_tmp
41492 pack_tmp = ishft(pack_tmp, -nbits)
41493 END DO
41494 IF (ndata_rep < ndata) THEN
41495 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
41496 END IF
41497 END SUBROUTINE bits2ints_51
41498
41499! **************************************************************************************************
41500!> \brief ...
41501!> \param Ndata ...
41502!> \param packed_data ...
41503!> \param full_data ...
41504! **************************************************************************************************
41505 SUBROUTINE ints2bits_52(Ndata, packed_data, full_data)
41506 INTEGER, INTENT(IN) :: Ndata
41507 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
41508 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
41509
41510 INTEGER, PARAMETER :: Nbits = 52
41511
41512 INTEGER :: idata, ipack, kdata, Ndata_rep
41513 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
41514
41515 idata = 0
41516 ipack = 0
41517 ndata_rep = (ndata/64)*64
41518 DO kdata = 1, ndata_rep, 64
41519 pack_tmp = 0
41520 idata = idata + 1
41521 data_tmp = full_data(idata)
41522 data_tmp = ishft(data_tmp, 12)
41523 pack_tmp = ior(pack_tmp, data_tmp)
41524 pack_tmp = ishft(pack_tmp, -12)
41525 idata = idata + 1
41526 data_tmp = full_data(idata)
41527 data_tmp = ishft(data_tmp, 12)
41528 data_tmp = iand(data_tmp, mask_left(12))
41529 pack_tmp = ior(pack_tmp, data_tmp)
41530 ipack = ipack + 1
41531 packed_data(ipack) = pack_tmp
41532 data_tmp = full_data(idata)
41533 pack_tmp = ishft(data_tmp, 24)
41534 pack_tmp = ishft(pack_tmp, -24)
41535 idata = idata + 1
41536 data_tmp = full_data(idata)
41537 data_tmp = ishft(data_tmp, 12)
41538 data_tmp = iand(data_tmp, mask_left(24))
41539 pack_tmp = ior(pack_tmp, data_tmp)
41540 ipack = ipack + 1
41541 packed_data(ipack) = pack_tmp
41542 data_tmp = full_data(idata)
41543 pack_tmp = ishft(data_tmp, 36)
41544 pack_tmp = ishft(pack_tmp, -36)
41545 idata = idata + 1
41546 data_tmp = full_data(idata)
41547 data_tmp = ishft(data_tmp, 12)
41548 data_tmp = iand(data_tmp, mask_left(36))
41549 pack_tmp = ior(pack_tmp, data_tmp)
41550 ipack = ipack + 1
41551 packed_data(ipack) = pack_tmp
41552 data_tmp = full_data(idata)
41553 pack_tmp = ishft(data_tmp, 48)
41554 pack_tmp = ishft(pack_tmp, -48)
41555 idata = idata + 1
41556 data_tmp = full_data(idata)
41557 data_tmp = ishft(data_tmp, 12)
41558 data_tmp = iand(data_tmp, mask_left(48))
41559 pack_tmp = ior(pack_tmp, data_tmp)
41560 ipack = ipack + 1
41561 packed_data(ipack) = pack_tmp
41562 data_tmp = full_data(idata)
41563 pack_tmp = ishft(data_tmp, 60)
41564 pack_tmp = ishft(pack_tmp, -52)
41565 idata = idata + 1
41566 data_tmp = full_data(idata)
41567 data_tmp = ishft(data_tmp, 12)
41568 pack_tmp = ior(pack_tmp, data_tmp)
41569 pack_tmp = ishft(pack_tmp, -8)
41570 idata = idata + 1
41571 data_tmp = full_data(idata)
41572 data_tmp = ishft(data_tmp, 12)
41573 data_tmp = iand(data_tmp, mask_left(8))
41574 pack_tmp = ior(pack_tmp, data_tmp)
41575 ipack = ipack + 1
41576 packed_data(ipack) = pack_tmp
41577 data_tmp = full_data(idata)
41578 pack_tmp = ishft(data_tmp, 20)
41579 pack_tmp = ishft(pack_tmp, -20)
41580 idata = idata + 1
41581 data_tmp = full_data(idata)
41582 data_tmp = ishft(data_tmp, 12)
41583 data_tmp = iand(data_tmp, mask_left(20))
41584 pack_tmp = ior(pack_tmp, data_tmp)
41585 ipack = ipack + 1
41586 packed_data(ipack) = pack_tmp
41587 data_tmp = full_data(idata)
41588 pack_tmp = ishft(data_tmp, 32)
41589 pack_tmp = ishft(pack_tmp, -32)
41590 idata = idata + 1
41591 data_tmp = full_data(idata)
41592 data_tmp = ishft(data_tmp, 12)
41593 data_tmp = iand(data_tmp, mask_left(32))
41594 pack_tmp = ior(pack_tmp, data_tmp)
41595 ipack = ipack + 1
41596 packed_data(ipack) = pack_tmp
41597 data_tmp = full_data(idata)
41598 pack_tmp = ishft(data_tmp, 44)
41599 pack_tmp = ishft(pack_tmp, -44)
41600 idata = idata + 1
41601 data_tmp = full_data(idata)
41602 data_tmp = ishft(data_tmp, 12)
41603 data_tmp = iand(data_tmp, mask_left(44))
41604 pack_tmp = ior(pack_tmp, data_tmp)
41605 ipack = ipack + 1
41606 packed_data(ipack) = pack_tmp
41607 data_tmp = full_data(idata)
41608 pack_tmp = ishft(data_tmp, 56)
41609 pack_tmp = ishft(pack_tmp, -52)
41610 idata = idata + 1
41611 data_tmp = full_data(idata)
41612 data_tmp = ishft(data_tmp, 12)
41613 pack_tmp = ior(pack_tmp, data_tmp)
41614 pack_tmp = ishft(pack_tmp, -4)
41615 idata = idata + 1
41616 data_tmp = full_data(idata)
41617 data_tmp = ishft(data_tmp, 12)
41618 data_tmp = iand(data_tmp, mask_left(4))
41619 pack_tmp = ior(pack_tmp, data_tmp)
41620 ipack = ipack + 1
41621 packed_data(ipack) = pack_tmp
41622 data_tmp = full_data(idata)
41623 pack_tmp = ishft(data_tmp, 16)
41624 pack_tmp = ishft(pack_tmp, -16)
41625 idata = idata + 1
41626 data_tmp = full_data(idata)
41627 data_tmp = ishft(data_tmp, 12)
41628 data_tmp = iand(data_tmp, mask_left(16))
41629 pack_tmp = ior(pack_tmp, data_tmp)
41630 ipack = ipack + 1
41631 packed_data(ipack) = pack_tmp
41632 data_tmp = full_data(idata)
41633 pack_tmp = ishft(data_tmp, 28)
41634 pack_tmp = ishft(pack_tmp, -28)
41635 idata = idata + 1
41636 data_tmp = full_data(idata)
41637 data_tmp = ishft(data_tmp, 12)
41638 data_tmp = iand(data_tmp, mask_left(28))
41639 pack_tmp = ior(pack_tmp, data_tmp)
41640 ipack = ipack + 1
41641 packed_data(ipack) = pack_tmp
41642 data_tmp = full_data(idata)
41643 pack_tmp = ishft(data_tmp, 40)
41644 pack_tmp = ishft(pack_tmp, -40)
41645 idata = idata + 1
41646 data_tmp = full_data(idata)
41647 data_tmp = ishft(data_tmp, 12)
41648 data_tmp = iand(data_tmp, mask_left(40))
41649 pack_tmp = ior(pack_tmp, data_tmp)
41650 ipack = ipack + 1
41651 packed_data(ipack) = pack_tmp
41652 data_tmp = full_data(idata)
41653 pack_tmp = ishft(data_tmp, 52)
41654 pack_tmp = ishft(pack_tmp, -52)
41655 idata = idata + 1
41656 data_tmp = full_data(idata)
41657 data_tmp = ishft(data_tmp, 12)
41658 pack_tmp = ior(pack_tmp, data_tmp)
41659 pack_tmp = ishft(pack_tmp, 0)
41660 idata = idata + 1
41661 data_tmp = full_data(idata)
41662 data_tmp = ishft(data_tmp, 12)
41663 data_tmp = iand(data_tmp, mask_left(0))
41664 pack_tmp = ior(pack_tmp, data_tmp)
41665 ipack = ipack + 1
41666 packed_data(ipack) = pack_tmp
41667 data_tmp = full_data(idata)
41668 pack_tmp = ishft(data_tmp, 12)
41669 pack_tmp = ishft(pack_tmp, -12)
41670 idata = idata + 1
41671 data_tmp = full_data(idata)
41672 data_tmp = ishft(data_tmp, 12)
41673 data_tmp = iand(data_tmp, mask_left(12))
41674 pack_tmp = ior(pack_tmp, data_tmp)
41675 ipack = ipack + 1
41676 packed_data(ipack) = pack_tmp
41677 data_tmp = full_data(idata)
41678 pack_tmp = ishft(data_tmp, 24)
41679 pack_tmp = ishft(pack_tmp, -24)
41680 idata = idata + 1
41681 data_tmp = full_data(idata)
41682 data_tmp = ishft(data_tmp, 12)
41683 data_tmp = iand(data_tmp, mask_left(24))
41684 pack_tmp = ior(pack_tmp, data_tmp)
41685 ipack = ipack + 1
41686 packed_data(ipack) = pack_tmp
41687 data_tmp = full_data(idata)
41688 pack_tmp = ishft(data_tmp, 36)
41689 pack_tmp = ishft(pack_tmp, -36)
41690 idata = idata + 1
41691 data_tmp = full_data(idata)
41692 data_tmp = ishft(data_tmp, 12)
41693 data_tmp = iand(data_tmp, mask_left(36))
41694 pack_tmp = ior(pack_tmp, data_tmp)
41695 ipack = ipack + 1
41696 packed_data(ipack) = pack_tmp
41697 data_tmp = full_data(idata)
41698 pack_tmp = ishft(data_tmp, 48)
41699 pack_tmp = ishft(pack_tmp, -48)
41700 idata = idata + 1
41701 data_tmp = full_data(idata)
41702 data_tmp = ishft(data_tmp, 12)
41703 data_tmp = iand(data_tmp, mask_left(48))
41704 pack_tmp = ior(pack_tmp, data_tmp)
41705 ipack = ipack + 1
41706 packed_data(ipack) = pack_tmp
41707 data_tmp = full_data(idata)
41708 pack_tmp = ishft(data_tmp, 60)
41709 pack_tmp = ishft(pack_tmp, -52)
41710 idata = idata + 1
41711 data_tmp = full_data(idata)
41712 data_tmp = ishft(data_tmp, 12)
41713 pack_tmp = ior(pack_tmp, data_tmp)
41714 pack_tmp = ishft(pack_tmp, -8)
41715 idata = idata + 1
41716 data_tmp = full_data(idata)
41717 data_tmp = ishft(data_tmp, 12)
41718 data_tmp = iand(data_tmp, mask_left(8))
41719 pack_tmp = ior(pack_tmp, data_tmp)
41720 ipack = ipack + 1
41721 packed_data(ipack) = pack_tmp
41722 data_tmp = full_data(idata)
41723 pack_tmp = ishft(data_tmp, 20)
41724 pack_tmp = ishft(pack_tmp, -20)
41725 idata = idata + 1
41726 data_tmp = full_data(idata)
41727 data_tmp = ishft(data_tmp, 12)
41728 data_tmp = iand(data_tmp, mask_left(20))
41729 pack_tmp = ior(pack_tmp, data_tmp)
41730 ipack = ipack + 1
41731 packed_data(ipack) = pack_tmp
41732 data_tmp = full_data(idata)
41733 pack_tmp = ishft(data_tmp, 32)
41734 pack_tmp = ishft(pack_tmp, -32)
41735 idata = idata + 1
41736 data_tmp = full_data(idata)
41737 data_tmp = ishft(data_tmp, 12)
41738 data_tmp = iand(data_tmp, mask_left(32))
41739 pack_tmp = ior(pack_tmp, data_tmp)
41740 ipack = ipack + 1
41741 packed_data(ipack) = pack_tmp
41742 data_tmp = full_data(idata)
41743 pack_tmp = ishft(data_tmp, 44)
41744 pack_tmp = ishft(pack_tmp, -44)
41745 idata = idata + 1
41746 data_tmp = full_data(idata)
41747 data_tmp = ishft(data_tmp, 12)
41748 data_tmp = iand(data_tmp, mask_left(44))
41749 pack_tmp = ior(pack_tmp, data_tmp)
41750 ipack = ipack + 1
41751 packed_data(ipack) = pack_tmp
41752 data_tmp = full_data(idata)
41753 pack_tmp = ishft(data_tmp, 56)
41754 pack_tmp = ishft(pack_tmp, -52)
41755 idata = idata + 1
41756 data_tmp = full_data(idata)
41757 data_tmp = ishft(data_tmp, 12)
41758 pack_tmp = ior(pack_tmp, data_tmp)
41759 pack_tmp = ishft(pack_tmp, -4)
41760 idata = idata + 1
41761 data_tmp = full_data(idata)
41762 data_tmp = ishft(data_tmp, 12)
41763 data_tmp = iand(data_tmp, mask_left(4))
41764 pack_tmp = ior(pack_tmp, data_tmp)
41765 ipack = ipack + 1
41766 packed_data(ipack) = pack_tmp
41767 data_tmp = full_data(idata)
41768 pack_tmp = ishft(data_tmp, 16)
41769 pack_tmp = ishft(pack_tmp, -16)
41770 idata = idata + 1
41771 data_tmp = full_data(idata)
41772 data_tmp = ishft(data_tmp, 12)
41773 data_tmp = iand(data_tmp, mask_left(16))
41774 pack_tmp = ior(pack_tmp, data_tmp)
41775 ipack = ipack + 1
41776 packed_data(ipack) = pack_tmp
41777 data_tmp = full_data(idata)
41778 pack_tmp = ishft(data_tmp, 28)
41779 pack_tmp = ishft(pack_tmp, -28)
41780 idata = idata + 1
41781 data_tmp = full_data(idata)
41782 data_tmp = ishft(data_tmp, 12)
41783 data_tmp = iand(data_tmp, mask_left(28))
41784 pack_tmp = ior(pack_tmp, data_tmp)
41785 ipack = ipack + 1
41786 packed_data(ipack) = pack_tmp
41787 data_tmp = full_data(idata)
41788 pack_tmp = ishft(data_tmp, 40)
41789 pack_tmp = ishft(pack_tmp, -40)
41790 idata = idata + 1
41791 data_tmp = full_data(idata)
41792 data_tmp = ishft(data_tmp, 12)
41793 data_tmp = iand(data_tmp, mask_left(40))
41794 pack_tmp = ior(pack_tmp, data_tmp)
41795 ipack = ipack + 1
41796 packed_data(ipack) = pack_tmp
41797 data_tmp = full_data(idata)
41798 pack_tmp = ishft(data_tmp, 52)
41799 pack_tmp = ishft(pack_tmp, -52)
41800 idata = idata + 1
41801 data_tmp = full_data(idata)
41802 data_tmp = ishft(data_tmp, 12)
41803 pack_tmp = ior(pack_tmp, data_tmp)
41804 pack_tmp = ishft(pack_tmp, 0)
41805 idata = idata + 1
41806 data_tmp = full_data(idata)
41807 data_tmp = ishft(data_tmp, 12)
41808 data_tmp = iand(data_tmp, mask_left(0))
41809 pack_tmp = ior(pack_tmp, data_tmp)
41810 ipack = ipack + 1
41811 packed_data(ipack) = pack_tmp
41812 data_tmp = full_data(idata)
41813 pack_tmp = ishft(data_tmp, 12)
41814 pack_tmp = ishft(pack_tmp, -12)
41815 idata = idata + 1
41816 data_tmp = full_data(idata)
41817 data_tmp = ishft(data_tmp, 12)
41818 data_tmp = iand(data_tmp, mask_left(12))
41819 pack_tmp = ior(pack_tmp, data_tmp)
41820 ipack = ipack + 1
41821 packed_data(ipack) = pack_tmp
41822 data_tmp = full_data(idata)
41823 pack_tmp = ishft(data_tmp, 24)
41824 pack_tmp = ishft(pack_tmp, -24)
41825 idata = idata + 1
41826 data_tmp = full_data(idata)
41827 data_tmp = ishft(data_tmp, 12)
41828 data_tmp = iand(data_tmp, mask_left(24))
41829 pack_tmp = ior(pack_tmp, data_tmp)
41830 ipack = ipack + 1
41831 packed_data(ipack) = pack_tmp
41832 data_tmp = full_data(idata)
41833 pack_tmp = ishft(data_tmp, 36)
41834 pack_tmp = ishft(pack_tmp, -36)
41835 idata = idata + 1
41836 data_tmp = full_data(idata)
41837 data_tmp = ishft(data_tmp, 12)
41838 data_tmp = iand(data_tmp, mask_left(36))
41839 pack_tmp = ior(pack_tmp, data_tmp)
41840 ipack = ipack + 1
41841 packed_data(ipack) = pack_tmp
41842 data_tmp = full_data(idata)
41843 pack_tmp = ishft(data_tmp, 48)
41844 pack_tmp = ishft(pack_tmp, -48)
41845 idata = idata + 1
41846 data_tmp = full_data(idata)
41847 data_tmp = ishft(data_tmp, 12)
41848 data_tmp = iand(data_tmp, mask_left(48))
41849 pack_tmp = ior(pack_tmp, data_tmp)
41850 ipack = ipack + 1
41851 packed_data(ipack) = pack_tmp
41852 data_tmp = full_data(idata)
41853 pack_tmp = ishft(data_tmp, 60)
41854 pack_tmp = ishft(pack_tmp, -52)
41855 idata = idata + 1
41856 data_tmp = full_data(idata)
41857 data_tmp = ishft(data_tmp, 12)
41858 pack_tmp = ior(pack_tmp, data_tmp)
41859 pack_tmp = ishft(pack_tmp, -8)
41860 idata = idata + 1
41861 data_tmp = full_data(idata)
41862 data_tmp = ishft(data_tmp, 12)
41863 data_tmp = iand(data_tmp, mask_left(8))
41864 pack_tmp = ior(pack_tmp, data_tmp)
41865 ipack = ipack + 1
41866 packed_data(ipack) = pack_tmp
41867 data_tmp = full_data(idata)
41868 pack_tmp = ishft(data_tmp, 20)
41869 pack_tmp = ishft(pack_tmp, -20)
41870 idata = idata + 1
41871 data_tmp = full_data(idata)
41872 data_tmp = ishft(data_tmp, 12)
41873 data_tmp = iand(data_tmp, mask_left(20))
41874 pack_tmp = ior(pack_tmp, data_tmp)
41875 ipack = ipack + 1
41876 packed_data(ipack) = pack_tmp
41877 data_tmp = full_data(idata)
41878 pack_tmp = ishft(data_tmp, 32)
41879 pack_tmp = ishft(pack_tmp, -32)
41880 idata = idata + 1
41881 data_tmp = full_data(idata)
41882 data_tmp = ishft(data_tmp, 12)
41883 data_tmp = iand(data_tmp, mask_left(32))
41884 pack_tmp = ior(pack_tmp, data_tmp)
41885 ipack = ipack + 1
41886 packed_data(ipack) = pack_tmp
41887 data_tmp = full_data(idata)
41888 pack_tmp = ishft(data_tmp, 44)
41889 pack_tmp = ishft(pack_tmp, -44)
41890 idata = idata + 1
41891 data_tmp = full_data(idata)
41892 data_tmp = ishft(data_tmp, 12)
41893 data_tmp = iand(data_tmp, mask_left(44))
41894 pack_tmp = ior(pack_tmp, data_tmp)
41895 ipack = ipack + 1
41896 packed_data(ipack) = pack_tmp
41897 data_tmp = full_data(idata)
41898 pack_tmp = ishft(data_tmp, 56)
41899 pack_tmp = ishft(pack_tmp, -52)
41900 idata = idata + 1
41901 data_tmp = full_data(idata)
41902 data_tmp = ishft(data_tmp, 12)
41903 pack_tmp = ior(pack_tmp, data_tmp)
41904 pack_tmp = ishft(pack_tmp, -4)
41905 idata = idata + 1
41906 data_tmp = full_data(idata)
41907 data_tmp = ishft(data_tmp, 12)
41908 data_tmp = iand(data_tmp, mask_left(4))
41909 pack_tmp = ior(pack_tmp, data_tmp)
41910 ipack = ipack + 1
41911 packed_data(ipack) = pack_tmp
41912 data_tmp = full_data(idata)
41913 pack_tmp = ishft(data_tmp, 16)
41914 pack_tmp = ishft(pack_tmp, -16)
41915 idata = idata + 1
41916 data_tmp = full_data(idata)
41917 data_tmp = ishft(data_tmp, 12)
41918 data_tmp = iand(data_tmp, mask_left(16))
41919 pack_tmp = ior(pack_tmp, data_tmp)
41920 ipack = ipack + 1
41921 packed_data(ipack) = pack_tmp
41922 data_tmp = full_data(idata)
41923 pack_tmp = ishft(data_tmp, 28)
41924 pack_tmp = ishft(pack_tmp, -28)
41925 idata = idata + 1
41926 data_tmp = full_data(idata)
41927 data_tmp = ishft(data_tmp, 12)
41928 data_tmp = iand(data_tmp, mask_left(28))
41929 pack_tmp = ior(pack_tmp, data_tmp)
41930 ipack = ipack + 1
41931 packed_data(ipack) = pack_tmp
41932 data_tmp = full_data(idata)
41933 pack_tmp = ishft(data_tmp, 40)
41934 pack_tmp = ishft(pack_tmp, -40)
41935 idata = idata + 1
41936 data_tmp = full_data(idata)
41937 data_tmp = ishft(data_tmp, 12)
41938 data_tmp = iand(data_tmp, mask_left(40))
41939 pack_tmp = ior(pack_tmp, data_tmp)
41940 ipack = ipack + 1
41941 packed_data(ipack) = pack_tmp
41942 data_tmp = full_data(idata)
41943 pack_tmp = ishft(data_tmp, 52)
41944 pack_tmp = ishft(pack_tmp, -52)
41945 idata = idata + 1
41946 data_tmp = full_data(idata)
41947 data_tmp = ishft(data_tmp, 12)
41948 pack_tmp = ior(pack_tmp, data_tmp)
41949 pack_tmp = ishft(pack_tmp, 0)
41950 idata = idata + 1
41951 data_tmp = full_data(idata)
41952 data_tmp = ishft(data_tmp, 12)
41953 data_tmp = iand(data_tmp, mask_left(0))
41954 pack_tmp = ior(pack_tmp, data_tmp)
41955 ipack = ipack + 1
41956 packed_data(ipack) = pack_tmp
41957 data_tmp = full_data(idata)
41958 pack_tmp = ishft(data_tmp, 12)
41959 pack_tmp = ishft(pack_tmp, -12)
41960 idata = idata + 1
41961 data_tmp = full_data(idata)
41962 data_tmp = ishft(data_tmp, 12)
41963 data_tmp = iand(data_tmp, mask_left(12))
41964 pack_tmp = ior(pack_tmp, data_tmp)
41965 ipack = ipack + 1
41966 packed_data(ipack) = pack_tmp
41967 data_tmp = full_data(idata)
41968 pack_tmp = ishft(data_tmp, 24)
41969 pack_tmp = ishft(pack_tmp, -24)
41970 idata = idata + 1
41971 data_tmp = full_data(idata)
41972 data_tmp = ishft(data_tmp, 12)
41973 data_tmp = iand(data_tmp, mask_left(24))
41974 pack_tmp = ior(pack_tmp, data_tmp)
41975 ipack = ipack + 1
41976 packed_data(ipack) = pack_tmp
41977 data_tmp = full_data(idata)
41978 pack_tmp = ishft(data_tmp, 36)
41979 pack_tmp = ishft(pack_tmp, -36)
41980 idata = idata + 1
41981 data_tmp = full_data(idata)
41982 data_tmp = ishft(data_tmp, 12)
41983 data_tmp = iand(data_tmp, mask_left(36))
41984 pack_tmp = ior(pack_tmp, data_tmp)
41985 ipack = ipack + 1
41986 packed_data(ipack) = pack_tmp
41987 data_tmp = full_data(idata)
41988 pack_tmp = ishft(data_tmp, 48)
41989 pack_tmp = ishft(pack_tmp, -48)
41990 idata = idata + 1
41991 data_tmp = full_data(idata)
41992 data_tmp = ishft(data_tmp, 12)
41993 data_tmp = iand(data_tmp, mask_left(48))
41994 pack_tmp = ior(pack_tmp, data_tmp)
41995 ipack = ipack + 1
41996 packed_data(ipack) = pack_tmp
41997 data_tmp = full_data(idata)
41998 pack_tmp = ishft(data_tmp, 60)
41999 pack_tmp = ishft(pack_tmp, -52)
42000 idata = idata + 1
42001 data_tmp = full_data(idata)
42002 data_tmp = ishft(data_tmp, 12)
42003 pack_tmp = ior(pack_tmp, data_tmp)
42004 pack_tmp = ishft(pack_tmp, -8)
42005 idata = idata + 1
42006 data_tmp = full_data(idata)
42007 data_tmp = ishft(data_tmp, 12)
42008 data_tmp = iand(data_tmp, mask_left(8))
42009 pack_tmp = ior(pack_tmp, data_tmp)
42010 ipack = ipack + 1
42011 packed_data(ipack) = pack_tmp
42012 data_tmp = full_data(idata)
42013 pack_tmp = ishft(data_tmp, 20)
42014 pack_tmp = ishft(pack_tmp, -20)
42015 idata = idata + 1
42016 data_tmp = full_data(idata)
42017 data_tmp = ishft(data_tmp, 12)
42018 data_tmp = iand(data_tmp, mask_left(20))
42019 pack_tmp = ior(pack_tmp, data_tmp)
42020 ipack = ipack + 1
42021 packed_data(ipack) = pack_tmp
42022 data_tmp = full_data(idata)
42023 pack_tmp = ishft(data_tmp, 32)
42024 pack_tmp = ishft(pack_tmp, -32)
42025 idata = idata + 1
42026 data_tmp = full_data(idata)
42027 data_tmp = ishft(data_tmp, 12)
42028 data_tmp = iand(data_tmp, mask_left(32))
42029 pack_tmp = ior(pack_tmp, data_tmp)
42030 ipack = ipack + 1
42031 packed_data(ipack) = pack_tmp
42032 data_tmp = full_data(idata)
42033 pack_tmp = ishft(data_tmp, 44)
42034 pack_tmp = ishft(pack_tmp, -44)
42035 idata = idata + 1
42036 data_tmp = full_data(idata)
42037 data_tmp = ishft(data_tmp, 12)
42038 data_tmp = iand(data_tmp, mask_left(44))
42039 pack_tmp = ior(pack_tmp, data_tmp)
42040 ipack = ipack + 1
42041 packed_data(ipack) = pack_tmp
42042 data_tmp = full_data(idata)
42043 pack_tmp = ishft(data_tmp, 56)
42044 pack_tmp = ishft(pack_tmp, -52)
42045 idata = idata + 1
42046 data_tmp = full_data(idata)
42047 data_tmp = ishft(data_tmp, 12)
42048 pack_tmp = ior(pack_tmp, data_tmp)
42049 pack_tmp = ishft(pack_tmp, -4)
42050 idata = idata + 1
42051 data_tmp = full_data(idata)
42052 data_tmp = ishft(data_tmp, 12)
42053 data_tmp = iand(data_tmp, mask_left(4))
42054 pack_tmp = ior(pack_tmp, data_tmp)
42055 ipack = ipack + 1
42056 packed_data(ipack) = pack_tmp
42057 data_tmp = full_data(idata)
42058 pack_tmp = ishft(data_tmp, 16)
42059 pack_tmp = ishft(pack_tmp, -16)
42060 idata = idata + 1
42061 data_tmp = full_data(idata)
42062 data_tmp = ishft(data_tmp, 12)
42063 data_tmp = iand(data_tmp, mask_left(16))
42064 pack_tmp = ior(pack_tmp, data_tmp)
42065 ipack = ipack + 1
42066 packed_data(ipack) = pack_tmp
42067 data_tmp = full_data(idata)
42068 pack_tmp = ishft(data_tmp, 28)
42069 pack_tmp = ishft(pack_tmp, -28)
42070 idata = idata + 1
42071 data_tmp = full_data(idata)
42072 data_tmp = ishft(data_tmp, 12)
42073 data_tmp = iand(data_tmp, mask_left(28))
42074 pack_tmp = ior(pack_tmp, data_tmp)
42075 ipack = ipack + 1
42076 packed_data(ipack) = pack_tmp
42077 data_tmp = full_data(idata)
42078 pack_tmp = ishft(data_tmp, 40)
42079 pack_tmp = ishft(pack_tmp, -40)
42080 idata = idata + 1
42081 data_tmp = full_data(idata)
42082 data_tmp = ishft(data_tmp, 12)
42083 data_tmp = iand(data_tmp, mask_left(40))
42084 pack_tmp = ior(pack_tmp, data_tmp)
42085 ipack = ipack + 1
42086 packed_data(ipack) = pack_tmp
42087 data_tmp = full_data(idata)
42088 pack_tmp = ishft(data_tmp, 52)
42089 pack_tmp = ishft(pack_tmp, -52)
42090 idata = idata + 1
42091 data_tmp = full_data(idata)
42092 data_tmp = ishft(data_tmp, 12)
42093 pack_tmp = ior(pack_tmp, data_tmp)
42094 pack_tmp = ishft(pack_tmp, 0)
42095 pack_tmp = ishft(pack_tmp, 0)
42096 ipack = ipack + 1
42097 packed_data(ipack) = pack_tmp
42098 END DO
42099 IF (ndata_rep < ndata) THEN
42100 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
42101 END IF
42102 END SUBROUTINE ints2bits_52
42103
42104! **************************************************************************************************
42105!> \brief ...
42106!> \param Ndata ...
42107!> \param packed_data ...
42108!> \param full_data ...
42109! **************************************************************************************************
42110 SUBROUTINE bits2ints_52(Ndata, packed_data, full_data)
42111 INTEGER, INTENT(IN) :: Ndata
42112 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
42113 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
42114
42115 INTEGER, PARAMETER :: Nbits = 52
42116
42117 INTEGER :: idata, ipack, kdata, Ndata_rep
42118 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
42119
42120 ipack = 0
42121 idata = 0
42122 pack_tmp = 0
42123 ndata_rep = (ndata/64)*64
42124 DO kdata = 1, ndata_rep, 64
42125 idata = idata + 1
42126 data_tmp = ishft(pack_tmp, 52)
42127 ipack = ipack + 1
42128 pack_tmp = packed_data(ipack)
42129 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
42130 pack_tmp = ishft(pack_tmp, -52)
42131 idata = idata + 1
42132 data_tmp = ishft(pack_tmp, 40)
42133 ipack = ipack + 1
42134 pack_tmp = packed_data(ipack)
42135 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
42136 pack_tmp = ishft(pack_tmp, -40)
42137 idata = idata + 1
42138 data_tmp = ishft(pack_tmp, 28)
42139 ipack = ipack + 1
42140 pack_tmp = packed_data(ipack)
42141 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
42142 pack_tmp = ishft(pack_tmp, -28)
42143 idata = idata + 1
42144 data_tmp = ishft(pack_tmp, 16)
42145 ipack = ipack + 1
42146 pack_tmp = packed_data(ipack)
42147 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
42148 pack_tmp = ishft(pack_tmp, -16)
42149 idata = idata + 1
42150 data_tmp = ishft(pack_tmp, 4)
42151 ipack = ipack + 1
42152 pack_tmp = packed_data(ipack)
42153 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
42154 pack_tmp = ishft(pack_tmp, -4)
42155 idata = idata + 1
42156 data_tmp = iand(pack_tmp, mask_right(nbits))
42157 full_data(idata) = data_tmp
42158 pack_tmp = ishft(pack_tmp, -nbits)
42159 idata = idata + 1
42160 data_tmp = ishft(pack_tmp, 44)
42161 ipack = ipack + 1
42162 pack_tmp = packed_data(ipack)
42163 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
42164 pack_tmp = ishft(pack_tmp, -44)
42165 idata = idata + 1
42166 data_tmp = ishft(pack_tmp, 32)
42167 ipack = ipack + 1
42168 pack_tmp = packed_data(ipack)
42169 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
42170 pack_tmp = ishft(pack_tmp, -32)
42171 idata = idata + 1
42172 data_tmp = ishft(pack_tmp, 20)
42173 ipack = ipack + 1
42174 pack_tmp = packed_data(ipack)
42175 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
42176 pack_tmp = ishft(pack_tmp, -20)
42177 idata = idata + 1
42178 data_tmp = ishft(pack_tmp, 8)
42179 ipack = ipack + 1
42180 pack_tmp = packed_data(ipack)
42181 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
42182 pack_tmp = ishft(pack_tmp, -8)
42183 idata = idata + 1
42184 data_tmp = iand(pack_tmp, mask_right(nbits))
42185 full_data(idata) = data_tmp
42186 pack_tmp = ishft(pack_tmp, -nbits)
42187 idata = idata + 1
42188 data_tmp = ishft(pack_tmp, 48)
42189 ipack = ipack + 1
42190 pack_tmp = packed_data(ipack)
42191 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
42192 pack_tmp = ishft(pack_tmp, -48)
42193 idata = idata + 1
42194 data_tmp = ishft(pack_tmp, 36)
42195 ipack = ipack + 1
42196 pack_tmp = packed_data(ipack)
42197 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
42198 pack_tmp = ishft(pack_tmp, -36)
42199 idata = idata + 1
42200 data_tmp = ishft(pack_tmp, 24)
42201 ipack = ipack + 1
42202 pack_tmp = packed_data(ipack)
42203 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
42204 pack_tmp = ishft(pack_tmp, -24)
42205 idata = idata + 1
42206 data_tmp = ishft(pack_tmp, 12)
42207 ipack = ipack + 1
42208 pack_tmp = packed_data(ipack)
42209 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
42210 pack_tmp = ishft(pack_tmp, -12)
42211 idata = idata + 1
42212 data_tmp = iand(pack_tmp, mask_right(nbits))
42213 full_data(idata) = data_tmp
42214 pack_tmp = ishft(pack_tmp, -nbits)
42215 idata = idata + 1
42216 data_tmp = ishft(pack_tmp, 52)
42217 ipack = ipack + 1
42218 pack_tmp = packed_data(ipack)
42219 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
42220 pack_tmp = ishft(pack_tmp, -52)
42221 idata = idata + 1
42222 data_tmp = ishft(pack_tmp, 40)
42223 ipack = ipack + 1
42224 pack_tmp = packed_data(ipack)
42225 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
42226 pack_tmp = ishft(pack_tmp, -40)
42227 idata = idata + 1
42228 data_tmp = ishft(pack_tmp, 28)
42229 ipack = ipack + 1
42230 pack_tmp = packed_data(ipack)
42231 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
42232 pack_tmp = ishft(pack_tmp, -28)
42233 idata = idata + 1
42234 data_tmp = ishft(pack_tmp, 16)
42235 ipack = ipack + 1
42236 pack_tmp = packed_data(ipack)
42237 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
42238 pack_tmp = ishft(pack_tmp, -16)
42239 idata = idata + 1
42240 data_tmp = ishft(pack_tmp, 4)
42241 ipack = ipack + 1
42242 pack_tmp = packed_data(ipack)
42243 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
42244 pack_tmp = ishft(pack_tmp, -4)
42245 idata = idata + 1
42246 data_tmp = iand(pack_tmp, mask_right(nbits))
42247 full_data(idata) = data_tmp
42248 pack_tmp = ishft(pack_tmp, -nbits)
42249 idata = idata + 1
42250 data_tmp = ishft(pack_tmp, 44)
42251 ipack = ipack + 1
42252 pack_tmp = packed_data(ipack)
42253 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
42254 pack_tmp = ishft(pack_tmp, -44)
42255 idata = idata + 1
42256 data_tmp = ishft(pack_tmp, 32)
42257 ipack = ipack + 1
42258 pack_tmp = packed_data(ipack)
42259 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
42260 pack_tmp = ishft(pack_tmp, -32)
42261 idata = idata + 1
42262 data_tmp = ishft(pack_tmp, 20)
42263 ipack = ipack + 1
42264 pack_tmp = packed_data(ipack)
42265 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
42266 pack_tmp = ishft(pack_tmp, -20)
42267 idata = idata + 1
42268 data_tmp = ishft(pack_tmp, 8)
42269 ipack = ipack + 1
42270 pack_tmp = packed_data(ipack)
42271 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
42272 pack_tmp = ishft(pack_tmp, -8)
42273 idata = idata + 1
42274 data_tmp = iand(pack_tmp, mask_right(nbits))
42275 full_data(idata) = data_tmp
42276 pack_tmp = ishft(pack_tmp, -nbits)
42277 idata = idata + 1
42278 data_tmp = ishft(pack_tmp, 48)
42279 ipack = ipack + 1
42280 pack_tmp = packed_data(ipack)
42281 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
42282 pack_tmp = ishft(pack_tmp, -48)
42283 idata = idata + 1
42284 data_tmp = ishft(pack_tmp, 36)
42285 ipack = ipack + 1
42286 pack_tmp = packed_data(ipack)
42287 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
42288 pack_tmp = ishft(pack_tmp, -36)
42289 idata = idata + 1
42290 data_tmp = ishft(pack_tmp, 24)
42291 ipack = ipack + 1
42292 pack_tmp = packed_data(ipack)
42293 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
42294 pack_tmp = ishft(pack_tmp, -24)
42295 idata = idata + 1
42296 data_tmp = ishft(pack_tmp, 12)
42297 ipack = ipack + 1
42298 pack_tmp = packed_data(ipack)
42299 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
42300 pack_tmp = ishft(pack_tmp, -12)
42301 idata = idata + 1
42302 data_tmp = iand(pack_tmp, mask_right(nbits))
42303 full_data(idata) = data_tmp
42304 pack_tmp = ishft(pack_tmp, -nbits)
42305 idata = idata + 1
42306 data_tmp = ishft(pack_tmp, 52)
42307 ipack = ipack + 1
42308 pack_tmp = packed_data(ipack)
42309 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
42310 pack_tmp = ishft(pack_tmp, -52)
42311 idata = idata + 1
42312 data_tmp = ishft(pack_tmp, 40)
42313 ipack = ipack + 1
42314 pack_tmp = packed_data(ipack)
42315 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
42316 pack_tmp = ishft(pack_tmp, -40)
42317 idata = idata + 1
42318 data_tmp = ishft(pack_tmp, 28)
42319 ipack = ipack + 1
42320 pack_tmp = packed_data(ipack)
42321 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
42322 pack_tmp = ishft(pack_tmp, -28)
42323 idata = idata + 1
42324 data_tmp = ishft(pack_tmp, 16)
42325 ipack = ipack + 1
42326 pack_tmp = packed_data(ipack)
42327 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
42328 pack_tmp = ishft(pack_tmp, -16)
42329 idata = idata + 1
42330 data_tmp = ishft(pack_tmp, 4)
42331 ipack = ipack + 1
42332 pack_tmp = packed_data(ipack)
42333 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
42334 pack_tmp = ishft(pack_tmp, -4)
42335 idata = idata + 1
42336 data_tmp = iand(pack_tmp, mask_right(nbits))
42337 full_data(idata) = data_tmp
42338 pack_tmp = ishft(pack_tmp, -nbits)
42339 idata = idata + 1
42340 data_tmp = ishft(pack_tmp, 44)
42341 ipack = ipack + 1
42342 pack_tmp = packed_data(ipack)
42343 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
42344 pack_tmp = ishft(pack_tmp, -44)
42345 idata = idata + 1
42346 data_tmp = ishft(pack_tmp, 32)
42347 ipack = ipack + 1
42348 pack_tmp = packed_data(ipack)
42349 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
42350 pack_tmp = ishft(pack_tmp, -32)
42351 idata = idata + 1
42352 data_tmp = ishft(pack_tmp, 20)
42353 ipack = ipack + 1
42354 pack_tmp = packed_data(ipack)
42355 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
42356 pack_tmp = ishft(pack_tmp, -20)
42357 idata = idata + 1
42358 data_tmp = ishft(pack_tmp, 8)
42359 ipack = ipack + 1
42360 pack_tmp = packed_data(ipack)
42361 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
42362 pack_tmp = ishft(pack_tmp, -8)
42363 idata = idata + 1
42364 data_tmp = iand(pack_tmp, mask_right(nbits))
42365 full_data(idata) = data_tmp
42366 pack_tmp = ishft(pack_tmp, -nbits)
42367 idata = idata + 1
42368 data_tmp = ishft(pack_tmp, 48)
42369 ipack = ipack + 1
42370 pack_tmp = packed_data(ipack)
42371 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
42372 pack_tmp = ishft(pack_tmp, -48)
42373 idata = idata + 1
42374 data_tmp = ishft(pack_tmp, 36)
42375 ipack = ipack + 1
42376 pack_tmp = packed_data(ipack)
42377 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
42378 pack_tmp = ishft(pack_tmp, -36)
42379 idata = idata + 1
42380 data_tmp = ishft(pack_tmp, 24)
42381 ipack = ipack + 1
42382 pack_tmp = packed_data(ipack)
42383 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
42384 pack_tmp = ishft(pack_tmp, -24)
42385 idata = idata + 1
42386 data_tmp = ishft(pack_tmp, 12)
42387 ipack = ipack + 1
42388 pack_tmp = packed_data(ipack)
42389 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
42390 pack_tmp = ishft(pack_tmp, -12)
42391 idata = idata + 1
42392 data_tmp = iand(pack_tmp, mask_right(nbits))
42393 full_data(idata) = data_tmp
42394 pack_tmp = ishft(pack_tmp, -nbits)
42395 idata = idata + 1
42396 data_tmp = ishft(pack_tmp, 52)
42397 ipack = ipack + 1
42398 pack_tmp = packed_data(ipack)
42399 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
42400 pack_tmp = ishft(pack_tmp, -52)
42401 idata = idata + 1
42402 data_tmp = ishft(pack_tmp, 40)
42403 ipack = ipack + 1
42404 pack_tmp = packed_data(ipack)
42405 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
42406 pack_tmp = ishft(pack_tmp, -40)
42407 idata = idata + 1
42408 data_tmp = ishft(pack_tmp, 28)
42409 ipack = ipack + 1
42410 pack_tmp = packed_data(ipack)
42411 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
42412 pack_tmp = ishft(pack_tmp, -28)
42413 idata = idata + 1
42414 data_tmp = ishft(pack_tmp, 16)
42415 ipack = ipack + 1
42416 pack_tmp = packed_data(ipack)
42417 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
42418 pack_tmp = ishft(pack_tmp, -16)
42419 idata = idata + 1
42420 data_tmp = ishft(pack_tmp, 4)
42421 ipack = ipack + 1
42422 pack_tmp = packed_data(ipack)
42423 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
42424 pack_tmp = ishft(pack_tmp, -4)
42425 idata = idata + 1
42426 data_tmp = iand(pack_tmp, mask_right(nbits))
42427 full_data(idata) = data_tmp
42428 pack_tmp = ishft(pack_tmp, -nbits)
42429 idata = idata + 1
42430 data_tmp = ishft(pack_tmp, 44)
42431 ipack = ipack + 1
42432 pack_tmp = packed_data(ipack)
42433 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
42434 pack_tmp = ishft(pack_tmp, -44)
42435 idata = idata + 1
42436 data_tmp = ishft(pack_tmp, 32)
42437 ipack = ipack + 1
42438 pack_tmp = packed_data(ipack)
42439 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
42440 pack_tmp = ishft(pack_tmp, -32)
42441 idata = idata + 1
42442 data_tmp = ishft(pack_tmp, 20)
42443 ipack = ipack + 1
42444 pack_tmp = packed_data(ipack)
42445 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
42446 pack_tmp = ishft(pack_tmp, -20)
42447 idata = idata + 1
42448 data_tmp = ishft(pack_tmp, 8)
42449 ipack = ipack + 1
42450 pack_tmp = packed_data(ipack)
42451 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
42452 pack_tmp = ishft(pack_tmp, -8)
42453 idata = idata + 1
42454 data_tmp = iand(pack_tmp, mask_right(nbits))
42455 full_data(idata) = data_tmp
42456 pack_tmp = ishft(pack_tmp, -nbits)
42457 idata = idata + 1
42458 data_tmp = ishft(pack_tmp, 48)
42459 ipack = ipack + 1
42460 pack_tmp = packed_data(ipack)
42461 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
42462 pack_tmp = ishft(pack_tmp, -48)
42463 idata = idata + 1
42464 data_tmp = ishft(pack_tmp, 36)
42465 ipack = ipack + 1
42466 pack_tmp = packed_data(ipack)
42467 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
42468 pack_tmp = ishft(pack_tmp, -36)
42469 idata = idata + 1
42470 data_tmp = ishft(pack_tmp, 24)
42471 ipack = ipack + 1
42472 pack_tmp = packed_data(ipack)
42473 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
42474 pack_tmp = ishft(pack_tmp, -24)
42475 idata = idata + 1
42476 data_tmp = ishft(pack_tmp, 12)
42477 ipack = ipack + 1
42478 pack_tmp = packed_data(ipack)
42479 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
42480 pack_tmp = ishft(pack_tmp, -12)
42481 idata = idata + 1
42482 data_tmp = iand(pack_tmp, mask_right(nbits))
42483 full_data(idata) = data_tmp
42484 pack_tmp = ishft(pack_tmp, -nbits)
42485 END DO
42486 IF (ndata_rep < ndata) THEN
42487 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
42488 END IF
42489 END SUBROUTINE bits2ints_52
42490
42491! **************************************************************************************************
42492!> \brief ...
42493!> \param Ndata ...
42494!> \param packed_data ...
42495!> \param full_data ...
42496! **************************************************************************************************
42497 SUBROUTINE ints2bits_53(Ndata, packed_data, full_data)
42498 INTEGER, INTENT(IN) :: Ndata
42499 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
42500 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
42501
42502 INTEGER, PARAMETER :: Nbits = 53
42503
42504 INTEGER :: idata, ipack, kdata, Ndata_rep
42505 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
42506
42507 idata = 0
42508 ipack = 0
42509 ndata_rep = (ndata/64)*64
42510 DO kdata = 1, ndata_rep, 64
42511 pack_tmp = 0
42512 idata = idata + 1
42513 data_tmp = full_data(idata)
42514 data_tmp = ishft(data_tmp, 11)
42515 pack_tmp = ior(pack_tmp, data_tmp)
42516 pack_tmp = ishft(pack_tmp, -11)
42517 idata = idata + 1
42518 data_tmp = full_data(idata)
42519 data_tmp = ishft(data_tmp, 11)
42520 data_tmp = iand(data_tmp, mask_left(11))
42521 pack_tmp = ior(pack_tmp, data_tmp)
42522 ipack = ipack + 1
42523 packed_data(ipack) = pack_tmp
42524 data_tmp = full_data(idata)
42525 pack_tmp = ishft(data_tmp, 22)
42526 pack_tmp = ishft(pack_tmp, -22)
42527 idata = idata + 1
42528 data_tmp = full_data(idata)
42529 data_tmp = ishft(data_tmp, 11)
42530 data_tmp = iand(data_tmp, mask_left(22))
42531 pack_tmp = ior(pack_tmp, data_tmp)
42532 ipack = ipack + 1
42533 packed_data(ipack) = pack_tmp
42534 data_tmp = full_data(idata)
42535 pack_tmp = ishft(data_tmp, 33)
42536 pack_tmp = ishft(pack_tmp, -33)
42537 idata = idata + 1
42538 data_tmp = full_data(idata)
42539 data_tmp = ishft(data_tmp, 11)
42540 data_tmp = iand(data_tmp, mask_left(33))
42541 pack_tmp = ior(pack_tmp, data_tmp)
42542 ipack = ipack + 1
42543 packed_data(ipack) = pack_tmp
42544 data_tmp = full_data(idata)
42545 pack_tmp = ishft(data_tmp, 44)
42546 pack_tmp = ishft(pack_tmp, -44)
42547 idata = idata + 1
42548 data_tmp = full_data(idata)
42549 data_tmp = ishft(data_tmp, 11)
42550 data_tmp = iand(data_tmp, mask_left(44))
42551 pack_tmp = ior(pack_tmp, data_tmp)
42552 ipack = ipack + 1
42553 packed_data(ipack) = pack_tmp
42554 data_tmp = full_data(idata)
42555 pack_tmp = ishft(data_tmp, 55)
42556 pack_tmp = ishft(pack_tmp, -53)
42557 idata = idata + 1
42558 data_tmp = full_data(idata)
42559 data_tmp = ishft(data_tmp, 11)
42560 pack_tmp = ior(pack_tmp, data_tmp)
42561 pack_tmp = ishft(pack_tmp, -2)
42562 idata = idata + 1
42563 data_tmp = full_data(idata)
42564 data_tmp = ishft(data_tmp, 11)
42565 data_tmp = iand(data_tmp, mask_left(2))
42566 pack_tmp = ior(pack_tmp, data_tmp)
42567 ipack = ipack + 1
42568 packed_data(ipack) = pack_tmp
42569 data_tmp = full_data(idata)
42570 pack_tmp = ishft(data_tmp, 13)
42571 pack_tmp = ishft(pack_tmp, -13)
42572 idata = idata + 1
42573 data_tmp = full_data(idata)
42574 data_tmp = ishft(data_tmp, 11)
42575 data_tmp = iand(data_tmp, mask_left(13))
42576 pack_tmp = ior(pack_tmp, data_tmp)
42577 ipack = ipack + 1
42578 packed_data(ipack) = pack_tmp
42579 data_tmp = full_data(idata)
42580 pack_tmp = ishft(data_tmp, 24)
42581 pack_tmp = ishft(pack_tmp, -24)
42582 idata = idata + 1
42583 data_tmp = full_data(idata)
42584 data_tmp = ishft(data_tmp, 11)
42585 data_tmp = iand(data_tmp, mask_left(24))
42586 pack_tmp = ior(pack_tmp, data_tmp)
42587 ipack = ipack + 1
42588 packed_data(ipack) = pack_tmp
42589 data_tmp = full_data(idata)
42590 pack_tmp = ishft(data_tmp, 35)
42591 pack_tmp = ishft(pack_tmp, -35)
42592 idata = idata + 1
42593 data_tmp = full_data(idata)
42594 data_tmp = ishft(data_tmp, 11)
42595 data_tmp = iand(data_tmp, mask_left(35))
42596 pack_tmp = ior(pack_tmp, data_tmp)
42597 ipack = ipack + 1
42598 packed_data(ipack) = pack_tmp
42599 data_tmp = full_data(idata)
42600 pack_tmp = ishft(data_tmp, 46)
42601 pack_tmp = ishft(pack_tmp, -46)
42602 idata = idata + 1
42603 data_tmp = full_data(idata)
42604 data_tmp = ishft(data_tmp, 11)
42605 data_tmp = iand(data_tmp, mask_left(46))
42606 pack_tmp = ior(pack_tmp, data_tmp)
42607 ipack = ipack + 1
42608 packed_data(ipack) = pack_tmp
42609 data_tmp = full_data(idata)
42610 pack_tmp = ishft(data_tmp, 57)
42611 pack_tmp = ishft(pack_tmp, -53)
42612 idata = idata + 1
42613 data_tmp = full_data(idata)
42614 data_tmp = ishft(data_tmp, 11)
42615 pack_tmp = ior(pack_tmp, data_tmp)
42616 pack_tmp = ishft(pack_tmp, -4)
42617 idata = idata + 1
42618 data_tmp = full_data(idata)
42619 data_tmp = ishft(data_tmp, 11)
42620 data_tmp = iand(data_tmp, mask_left(4))
42621 pack_tmp = ior(pack_tmp, data_tmp)
42622 ipack = ipack + 1
42623 packed_data(ipack) = pack_tmp
42624 data_tmp = full_data(idata)
42625 pack_tmp = ishft(data_tmp, 15)
42626 pack_tmp = ishft(pack_tmp, -15)
42627 idata = idata + 1
42628 data_tmp = full_data(idata)
42629 data_tmp = ishft(data_tmp, 11)
42630 data_tmp = iand(data_tmp, mask_left(15))
42631 pack_tmp = ior(pack_tmp, data_tmp)
42632 ipack = ipack + 1
42633 packed_data(ipack) = pack_tmp
42634 data_tmp = full_data(idata)
42635 pack_tmp = ishft(data_tmp, 26)
42636 pack_tmp = ishft(pack_tmp, -26)
42637 idata = idata + 1
42638 data_tmp = full_data(idata)
42639 data_tmp = ishft(data_tmp, 11)
42640 data_tmp = iand(data_tmp, mask_left(26))
42641 pack_tmp = ior(pack_tmp, data_tmp)
42642 ipack = ipack + 1
42643 packed_data(ipack) = pack_tmp
42644 data_tmp = full_data(idata)
42645 pack_tmp = ishft(data_tmp, 37)
42646 pack_tmp = ishft(pack_tmp, -37)
42647 idata = idata + 1
42648 data_tmp = full_data(idata)
42649 data_tmp = ishft(data_tmp, 11)
42650 data_tmp = iand(data_tmp, mask_left(37))
42651 pack_tmp = ior(pack_tmp, data_tmp)
42652 ipack = ipack + 1
42653 packed_data(ipack) = pack_tmp
42654 data_tmp = full_data(idata)
42655 pack_tmp = ishft(data_tmp, 48)
42656 pack_tmp = ishft(pack_tmp, -48)
42657 idata = idata + 1
42658 data_tmp = full_data(idata)
42659 data_tmp = ishft(data_tmp, 11)
42660 data_tmp = iand(data_tmp, mask_left(48))
42661 pack_tmp = ior(pack_tmp, data_tmp)
42662 ipack = ipack + 1
42663 packed_data(ipack) = pack_tmp
42664 data_tmp = full_data(idata)
42665 pack_tmp = ishft(data_tmp, 59)
42666 pack_tmp = ishft(pack_tmp, -53)
42667 idata = idata + 1
42668 data_tmp = full_data(idata)
42669 data_tmp = ishft(data_tmp, 11)
42670 pack_tmp = ior(pack_tmp, data_tmp)
42671 pack_tmp = ishft(pack_tmp, -6)
42672 idata = idata + 1
42673 data_tmp = full_data(idata)
42674 data_tmp = ishft(data_tmp, 11)
42675 data_tmp = iand(data_tmp, mask_left(6))
42676 pack_tmp = ior(pack_tmp, data_tmp)
42677 ipack = ipack + 1
42678 packed_data(ipack) = pack_tmp
42679 data_tmp = full_data(idata)
42680 pack_tmp = ishft(data_tmp, 17)
42681 pack_tmp = ishft(pack_tmp, -17)
42682 idata = idata + 1
42683 data_tmp = full_data(idata)
42684 data_tmp = ishft(data_tmp, 11)
42685 data_tmp = iand(data_tmp, mask_left(17))
42686 pack_tmp = ior(pack_tmp, data_tmp)
42687 ipack = ipack + 1
42688 packed_data(ipack) = pack_tmp
42689 data_tmp = full_data(idata)
42690 pack_tmp = ishft(data_tmp, 28)
42691 pack_tmp = ishft(pack_tmp, -28)
42692 idata = idata + 1
42693 data_tmp = full_data(idata)
42694 data_tmp = ishft(data_tmp, 11)
42695 data_tmp = iand(data_tmp, mask_left(28))
42696 pack_tmp = ior(pack_tmp, data_tmp)
42697 ipack = ipack + 1
42698 packed_data(ipack) = pack_tmp
42699 data_tmp = full_data(idata)
42700 pack_tmp = ishft(data_tmp, 39)
42701 pack_tmp = ishft(pack_tmp, -39)
42702 idata = idata + 1
42703 data_tmp = full_data(idata)
42704 data_tmp = ishft(data_tmp, 11)
42705 data_tmp = iand(data_tmp, mask_left(39))
42706 pack_tmp = ior(pack_tmp, data_tmp)
42707 ipack = ipack + 1
42708 packed_data(ipack) = pack_tmp
42709 data_tmp = full_data(idata)
42710 pack_tmp = ishft(data_tmp, 50)
42711 pack_tmp = ishft(pack_tmp, -50)
42712 idata = idata + 1
42713 data_tmp = full_data(idata)
42714 data_tmp = ishft(data_tmp, 11)
42715 data_tmp = iand(data_tmp, mask_left(50))
42716 pack_tmp = ior(pack_tmp, data_tmp)
42717 ipack = ipack + 1
42718 packed_data(ipack) = pack_tmp
42719 data_tmp = full_data(idata)
42720 pack_tmp = ishft(data_tmp, 61)
42721 pack_tmp = ishft(pack_tmp, -53)
42722 idata = idata + 1
42723 data_tmp = full_data(idata)
42724 data_tmp = ishft(data_tmp, 11)
42725 pack_tmp = ior(pack_tmp, data_tmp)
42726 pack_tmp = ishft(pack_tmp, -8)
42727 idata = idata + 1
42728 data_tmp = full_data(idata)
42729 data_tmp = ishft(data_tmp, 11)
42730 data_tmp = iand(data_tmp, mask_left(8))
42731 pack_tmp = ior(pack_tmp, data_tmp)
42732 ipack = ipack + 1
42733 packed_data(ipack) = pack_tmp
42734 data_tmp = full_data(idata)
42735 pack_tmp = ishft(data_tmp, 19)
42736 pack_tmp = ishft(pack_tmp, -19)
42737 idata = idata + 1
42738 data_tmp = full_data(idata)
42739 data_tmp = ishft(data_tmp, 11)
42740 data_tmp = iand(data_tmp, mask_left(19))
42741 pack_tmp = ior(pack_tmp, data_tmp)
42742 ipack = ipack + 1
42743 packed_data(ipack) = pack_tmp
42744 data_tmp = full_data(idata)
42745 pack_tmp = ishft(data_tmp, 30)
42746 pack_tmp = ishft(pack_tmp, -30)
42747 idata = idata + 1
42748 data_tmp = full_data(idata)
42749 data_tmp = ishft(data_tmp, 11)
42750 data_tmp = iand(data_tmp, mask_left(30))
42751 pack_tmp = ior(pack_tmp, data_tmp)
42752 ipack = ipack + 1
42753 packed_data(ipack) = pack_tmp
42754 data_tmp = full_data(idata)
42755 pack_tmp = ishft(data_tmp, 41)
42756 pack_tmp = ishft(pack_tmp, -41)
42757 idata = idata + 1
42758 data_tmp = full_data(idata)
42759 data_tmp = ishft(data_tmp, 11)
42760 data_tmp = iand(data_tmp, mask_left(41))
42761 pack_tmp = ior(pack_tmp, data_tmp)
42762 ipack = ipack + 1
42763 packed_data(ipack) = pack_tmp
42764 data_tmp = full_data(idata)
42765 pack_tmp = ishft(data_tmp, 52)
42766 pack_tmp = ishft(pack_tmp, -52)
42767 idata = idata + 1
42768 data_tmp = full_data(idata)
42769 data_tmp = ishft(data_tmp, 11)
42770 data_tmp = iand(data_tmp, mask_left(52))
42771 pack_tmp = ior(pack_tmp, data_tmp)
42772 ipack = ipack + 1
42773 packed_data(ipack) = pack_tmp
42774 data_tmp = full_data(idata)
42775 pack_tmp = ishft(data_tmp, 63)
42776 pack_tmp = ishft(pack_tmp, -53)
42777 idata = idata + 1
42778 data_tmp = full_data(idata)
42779 data_tmp = ishft(data_tmp, 11)
42780 pack_tmp = ior(pack_tmp, data_tmp)
42781 pack_tmp = ishft(pack_tmp, -10)
42782 idata = idata + 1
42783 data_tmp = full_data(idata)
42784 data_tmp = ishft(data_tmp, 11)
42785 data_tmp = iand(data_tmp, mask_left(10))
42786 pack_tmp = ior(pack_tmp, data_tmp)
42787 ipack = ipack + 1
42788 packed_data(ipack) = pack_tmp
42789 data_tmp = full_data(idata)
42790 pack_tmp = ishft(data_tmp, 21)
42791 pack_tmp = ishft(pack_tmp, -21)
42792 idata = idata + 1
42793 data_tmp = full_data(idata)
42794 data_tmp = ishft(data_tmp, 11)
42795 data_tmp = iand(data_tmp, mask_left(21))
42796 pack_tmp = ior(pack_tmp, data_tmp)
42797 ipack = ipack + 1
42798 packed_data(ipack) = pack_tmp
42799 data_tmp = full_data(idata)
42800 pack_tmp = ishft(data_tmp, 32)
42801 pack_tmp = ishft(pack_tmp, -32)
42802 idata = idata + 1
42803 data_tmp = full_data(idata)
42804 data_tmp = ishft(data_tmp, 11)
42805 data_tmp = iand(data_tmp, mask_left(32))
42806 pack_tmp = ior(pack_tmp, data_tmp)
42807 ipack = ipack + 1
42808 packed_data(ipack) = pack_tmp
42809 data_tmp = full_data(idata)
42810 pack_tmp = ishft(data_tmp, 43)
42811 pack_tmp = ishft(pack_tmp, -43)
42812 idata = idata + 1
42813 data_tmp = full_data(idata)
42814 data_tmp = ishft(data_tmp, 11)
42815 data_tmp = iand(data_tmp, mask_left(43))
42816 pack_tmp = ior(pack_tmp, data_tmp)
42817 ipack = ipack + 1
42818 packed_data(ipack) = pack_tmp
42819 data_tmp = full_data(idata)
42820 pack_tmp = ishft(data_tmp, 54)
42821 pack_tmp = ishft(pack_tmp, -53)
42822 idata = idata + 1
42823 data_tmp = full_data(idata)
42824 data_tmp = ishft(data_tmp, 11)
42825 pack_tmp = ior(pack_tmp, data_tmp)
42826 pack_tmp = ishft(pack_tmp, -1)
42827 idata = idata + 1
42828 data_tmp = full_data(idata)
42829 data_tmp = ishft(data_tmp, 11)
42830 data_tmp = iand(data_tmp, mask_left(1))
42831 pack_tmp = ior(pack_tmp, data_tmp)
42832 ipack = ipack + 1
42833 packed_data(ipack) = pack_tmp
42834 data_tmp = full_data(idata)
42835 pack_tmp = ishft(data_tmp, 12)
42836 pack_tmp = ishft(pack_tmp, -12)
42837 idata = idata + 1
42838 data_tmp = full_data(idata)
42839 data_tmp = ishft(data_tmp, 11)
42840 data_tmp = iand(data_tmp, mask_left(12))
42841 pack_tmp = ior(pack_tmp, data_tmp)
42842 ipack = ipack + 1
42843 packed_data(ipack) = pack_tmp
42844 data_tmp = full_data(idata)
42845 pack_tmp = ishft(data_tmp, 23)
42846 pack_tmp = ishft(pack_tmp, -23)
42847 idata = idata + 1
42848 data_tmp = full_data(idata)
42849 data_tmp = ishft(data_tmp, 11)
42850 data_tmp = iand(data_tmp, mask_left(23))
42851 pack_tmp = ior(pack_tmp, data_tmp)
42852 ipack = ipack + 1
42853 packed_data(ipack) = pack_tmp
42854 data_tmp = full_data(idata)
42855 pack_tmp = ishft(data_tmp, 34)
42856 pack_tmp = ishft(pack_tmp, -34)
42857 idata = idata + 1
42858 data_tmp = full_data(idata)
42859 data_tmp = ishft(data_tmp, 11)
42860 data_tmp = iand(data_tmp, mask_left(34))
42861 pack_tmp = ior(pack_tmp, data_tmp)
42862 ipack = ipack + 1
42863 packed_data(ipack) = pack_tmp
42864 data_tmp = full_data(idata)
42865 pack_tmp = ishft(data_tmp, 45)
42866 pack_tmp = ishft(pack_tmp, -45)
42867 idata = idata + 1
42868 data_tmp = full_data(idata)
42869 data_tmp = ishft(data_tmp, 11)
42870 data_tmp = iand(data_tmp, mask_left(45))
42871 pack_tmp = ior(pack_tmp, data_tmp)
42872 ipack = ipack + 1
42873 packed_data(ipack) = pack_tmp
42874 data_tmp = full_data(idata)
42875 pack_tmp = ishft(data_tmp, 56)
42876 pack_tmp = ishft(pack_tmp, -53)
42877 idata = idata + 1
42878 data_tmp = full_data(idata)
42879 data_tmp = ishft(data_tmp, 11)
42880 pack_tmp = ior(pack_tmp, data_tmp)
42881 pack_tmp = ishft(pack_tmp, -3)
42882 idata = idata + 1
42883 data_tmp = full_data(idata)
42884 data_tmp = ishft(data_tmp, 11)
42885 data_tmp = iand(data_tmp, mask_left(3))
42886 pack_tmp = ior(pack_tmp, data_tmp)
42887 ipack = ipack + 1
42888 packed_data(ipack) = pack_tmp
42889 data_tmp = full_data(idata)
42890 pack_tmp = ishft(data_tmp, 14)
42891 pack_tmp = ishft(pack_tmp, -14)
42892 idata = idata + 1
42893 data_tmp = full_data(idata)
42894 data_tmp = ishft(data_tmp, 11)
42895 data_tmp = iand(data_tmp, mask_left(14))
42896 pack_tmp = ior(pack_tmp, data_tmp)
42897 ipack = ipack + 1
42898 packed_data(ipack) = pack_tmp
42899 data_tmp = full_data(idata)
42900 pack_tmp = ishft(data_tmp, 25)
42901 pack_tmp = ishft(pack_tmp, -25)
42902 idata = idata + 1
42903 data_tmp = full_data(idata)
42904 data_tmp = ishft(data_tmp, 11)
42905 data_tmp = iand(data_tmp, mask_left(25))
42906 pack_tmp = ior(pack_tmp, data_tmp)
42907 ipack = ipack + 1
42908 packed_data(ipack) = pack_tmp
42909 data_tmp = full_data(idata)
42910 pack_tmp = ishft(data_tmp, 36)
42911 pack_tmp = ishft(pack_tmp, -36)
42912 idata = idata + 1
42913 data_tmp = full_data(idata)
42914 data_tmp = ishft(data_tmp, 11)
42915 data_tmp = iand(data_tmp, mask_left(36))
42916 pack_tmp = ior(pack_tmp, data_tmp)
42917 ipack = ipack + 1
42918 packed_data(ipack) = pack_tmp
42919 data_tmp = full_data(idata)
42920 pack_tmp = ishft(data_tmp, 47)
42921 pack_tmp = ishft(pack_tmp, -47)
42922 idata = idata + 1
42923 data_tmp = full_data(idata)
42924 data_tmp = ishft(data_tmp, 11)
42925 data_tmp = iand(data_tmp, mask_left(47))
42926 pack_tmp = ior(pack_tmp, data_tmp)
42927 ipack = ipack + 1
42928 packed_data(ipack) = pack_tmp
42929 data_tmp = full_data(idata)
42930 pack_tmp = ishft(data_tmp, 58)
42931 pack_tmp = ishft(pack_tmp, -53)
42932 idata = idata + 1
42933 data_tmp = full_data(idata)
42934 data_tmp = ishft(data_tmp, 11)
42935 pack_tmp = ior(pack_tmp, data_tmp)
42936 pack_tmp = ishft(pack_tmp, -5)
42937 idata = idata + 1
42938 data_tmp = full_data(idata)
42939 data_tmp = ishft(data_tmp, 11)
42940 data_tmp = iand(data_tmp, mask_left(5))
42941 pack_tmp = ior(pack_tmp, data_tmp)
42942 ipack = ipack + 1
42943 packed_data(ipack) = pack_tmp
42944 data_tmp = full_data(idata)
42945 pack_tmp = ishft(data_tmp, 16)
42946 pack_tmp = ishft(pack_tmp, -16)
42947 idata = idata + 1
42948 data_tmp = full_data(idata)
42949 data_tmp = ishft(data_tmp, 11)
42950 data_tmp = iand(data_tmp, mask_left(16))
42951 pack_tmp = ior(pack_tmp, data_tmp)
42952 ipack = ipack + 1
42953 packed_data(ipack) = pack_tmp
42954 data_tmp = full_data(idata)
42955 pack_tmp = ishft(data_tmp, 27)
42956 pack_tmp = ishft(pack_tmp, -27)
42957 idata = idata + 1
42958 data_tmp = full_data(idata)
42959 data_tmp = ishft(data_tmp, 11)
42960 data_tmp = iand(data_tmp, mask_left(27))
42961 pack_tmp = ior(pack_tmp, data_tmp)
42962 ipack = ipack + 1
42963 packed_data(ipack) = pack_tmp
42964 data_tmp = full_data(idata)
42965 pack_tmp = ishft(data_tmp, 38)
42966 pack_tmp = ishft(pack_tmp, -38)
42967 idata = idata + 1
42968 data_tmp = full_data(idata)
42969 data_tmp = ishft(data_tmp, 11)
42970 data_tmp = iand(data_tmp, mask_left(38))
42971 pack_tmp = ior(pack_tmp, data_tmp)
42972 ipack = ipack + 1
42973 packed_data(ipack) = pack_tmp
42974 data_tmp = full_data(idata)
42975 pack_tmp = ishft(data_tmp, 49)
42976 pack_tmp = ishft(pack_tmp, -49)
42977 idata = idata + 1
42978 data_tmp = full_data(idata)
42979 data_tmp = ishft(data_tmp, 11)
42980 data_tmp = iand(data_tmp, mask_left(49))
42981 pack_tmp = ior(pack_tmp, data_tmp)
42982 ipack = ipack + 1
42983 packed_data(ipack) = pack_tmp
42984 data_tmp = full_data(idata)
42985 pack_tmp = ishft(data_tmp, 60)
42986 pack_tmp = ishft(pack_tmp, -53)
42987 idata = idata + 1
42988 data_tmp = full_data(idata)
42989 data_tmp = ishft(data_tmp, 11)
42990 pack_tmp = ior(pack_tmp, data_tmp)
42991 pack_tmp = ishft(pack_tmp, -7)
42992 idata = idata + 1
42993 data_tmp = full_data(idata)
42994 data_tmp = ishft(data_tmp, 11)
42995 data_tmp = iand(data_tmp, mask_left(7))
42996 pack_tmp = ior(pack_tmp, data_tmp)
42997 ipack = ipack + 1
42998 packed_data(ipack) = pack_tmp
42999 data_tmp = full_data(idata)
43000 pack_tmp = ishft(data_tmp, 18)
43001 pack_tmp = ishft(pack_tmp, -18)
43002 idata = idata + 1
43003 data_tmp = full_data(idata)
43004 data_tmp = ishft(data_tmp, 11)
43005 data_tmp = iand(data_tmp, mask_left(18))
43006 pack_tmp = ior(pack_tmp, data_tmp)
43007 ipack = ipack + 1
43008 packed_data(ipack) = pack_tmp
43009 data_tmp = full_data(idata)
43010 pack_tmp = ishft(data_tmp, 29)
43011 pack_tmp = ishft(pack_tmp, -29)
43012 idata = idata + 1
43013 data_tmp = full_data(idata)
43014 data_tmp = ishft(data_tmp, 11)
43015 data_tmp = iand(data_tmp, mask_left(29))
43016 pack_tmp = ior(pack_tmp, data_tmp)
43017 ipack = ipack + 1
43018 packed_data(ipack) = pack_tmp
43019 data_tmp = full_data(idata)
43020 pack_tmp = ishft(data_tmp, 40)
43021 pack_tmp = ishft(pack_tmp, -40)
43022 idata = idata + 1
43023 data_tmp = full_data(idata)
43024 data_tmp = ishft(data_tmp, 11)
43025 data_tmp = iand(data_tmp, mask_left(40))
43026 pack_tmp = ior(pack_tmp, data_tmp)
43027 ipack = ipack + 1
43028 packed_data(ipack) = pack_tmp
43029 data_tmp = full_data(idata)
43030 pack_tmp = ishft(data_tmp, 51)
43031 pack_tmp = ishft(pack_tmp, -51)
43032 idata = idata + 1
43033 data_tmp = full_data(idata)
43034 data_tmp = ishft(data_tmp, 11)
43035 data_tmp = iand(data_tmp, mask_left(51))
43036 pack_tmp = ior(pack_tmp, data_tmp)
43037 ipack = ipack + 1
43038 packed_data(ipack) = pack_tmp
43039 data_tmp = full_data(idata)
43040 pack_tmp = ishft(data_tmp, 62)
43041 pack_tmp = ishft(pack_tmp, -53)
43042 idata = idata + 1
43043 data_tmp = full_data(idata)
43044 data_tmp = ishft(data_tmp, 11)
43045 pack_tmp = ior(pack_tmp, data_tmp)
43046 pack_tmp = ishft(pack_tmp, -9)
43047 idata = idata + 1
43048 data_tmp = full_data(idata)
43049 data_tmp = ishft(data_tmp, 11)
43050 data_tmp = iand(data_tmp, mask_left(9))
43051 pack_tmp = ior(pack_tmp, data_tmp)
43052 ipack = ipack + 1
43053 packed_data(ipack) = pack_tmp
43054 data_tmp = full_data(idata)
43055 pack_tmp = ishft(data_tmp, 20)
43056 pack_tmp = ishft(pack_tmp, -20)
43057 idata = idata + 1
43058 data_tmp = full_data(idata)
43059 data_tmp = ishft(data_tmp, 11)
43060 data_tmp = iand(data_tmp, mask_left(20))
43061 pack_tmp = ior(pack_tmp, data_tmp)
43062 ipack = ipack + 1
43063 packed_data(ipack) = pack_tmp
43064 data_tmp = full_data(idata)
43065 pack_tmp = ishft(data_tmp, 31)
43066 pack_tmp = ishft(pack_tmp, -31)
43067 idata = idata + 1
43068 data_tmp = full_data(idata)
43069 data_tmp = ishft(data_tmp, 11)
43070 data_tmp = iand(data_tmp, mask_left(31))
43071 pack_tmp = ior(pack_tmp, data_tmp)
43072 ipack = ipack + 1
43073 packed_data(ipack) = pack_tmp
43074 data_tmp = full_data(idata)
43075 pack_tmp = ishft(data_tmp, 42)
43076 pack_tmp = ishft(pack_tmp, -42)
43077 idata = idata + 1
43078 data_tmp = full_data(idata)
43079 data_tmp = ishft(data_tmp, 11)
43080 data_tmp = iand(data_tmp, mask_left(42))
43081 pack_tmp = ior(pack_tmp, data_tmp)
43082 ipack = ipack + 1
43083 packed_data(ipack) = pack_tmp
43084 data_tmp = full_data(idata)
43085 pack_tmp = ishft(data_tmp, 53)
43086 pack_tmp = ishft(pack_tmp, -53)
43087 idata = idata + 1
43088 data_tmp = full_data(idata)
43089 data_tmp = ishft(data_tmp, 11)
43090 pack_tmp = ior(pack_tmp, data_tmp)
43091 pack_tmp = ishft(pack_tmp, 0)
43092 pack_tmp = ishft(pack_tmp, 0)
43093 ipack = ipack + 1
43094 packed_data(ipack) = pack_tmp
43095 END DO
43096 IF (ndata_rep < ndata) THEN
43097 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
43098 END IF
43099 END SUBROUTINE ints2bits_53
43100
43101! **************************************************************************************************
43102!> \brief ...
43103!> \param Ndata ...
43104!> \param packed_data ...
43105!> \param full_data ...
43106! **************************************************************************************************
43107 SUBROUTINE bits2ints_53(Ndata, packed_data, full_data)
43108 INTEGER, INTENT(IN) :: Ndata
43109 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
43110 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
43111
43112 INTEGER, PARAMETER :: Nbits = 53
43113
43114 INTEGER :: idata, ipack, kdata, Ndata_rep
43115 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
43116
43117 ipack = 0
43118 idata = 0
43119 pack_tmp = 0
43120 ndata_rep = (ndata/64)*64
43121 DO kdata = 1, ndata_rep, 64
43122 idata = idata + 1
43123 data_tmp = ishft(pack_tmp, 53)
43124 ipack = ipack + 1
43125 pack_tmp = packed_data(ipack)
43126 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(53)))
43127 pack_tmp = ishft(pack_tmp, -53)
43128 idata = idata + 1
43129 data_tmp = ishft(pack_tmp, 42)
43130 ipack = ipack + 1
43131 pack_tmp = packed_data(ipack)
43132 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
43133 pack_tmp = ishft(pack_tmp, -42)
43134 idata = idata + 1
43135 data_tmp = ishft(pack_tmp, 31)
43136 ipack = ipack + 1
43137 pack_tmp = packed_data(ipack)
43138 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
43139 pack_tmp = ishft(pack_tmp, -31)
43140 idata = idata + 1
43141 data_tmp = ishft(pack_tmp, 20)
43142 ipack = ipack + 1
43143 pack_tmp = packed_data(ipack)
43144 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
43145 pack_tmp = ishft(pack_tmp, -20)
43146 idata = idata + 1
43147 data_tmp = ishft(pack_tmp, 9)
43148 ipack = ipack + 1
43149 pack_tmp = packed_data(ipack)
43150 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
43151 pack_tmp = ishft(pack_tmp, -9)
43152 idata = idata + 1
43153 data_tmp = iand(pack_tmp, mask_right(nbits))
43154 full_data(idata) = data_tmp
43155 pack_tmp = ishft(pack_tmp, -nbits)
43156 idata = idata + 1
43157 data_tmp = ishft(pack_tmp, 51)
43158 ipack = ipack + 1
43159 pack_tmp = packed_data(ipack)
43160 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(51)))
43161 pack_tmp = ishft(pack_tmp, -51)
43162 idata = idata + 1
43163 data_tmp = ishft(pack_tmp, 40)
43164 ipack = ipack + 1
43165 pack_tmp = packed_data(ipack)
43166 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
43167 pack_tmp = ishft(pack_tmp, -40)
43168 idata = idata + 1
43169 data_tmp = ishft(pack_tmp, 29)
43170 ipack = ipack + 1
43171 pack_tmp = packed_data(ipack)
43172 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
43173 pack_tmp = ishft(pack_tmp, -29)
43174 idata = idata + 1
43175 data_tmp = ishft(pack_tmp, 18)
43176 ipack = ipack + 1
43177 pack_tmp = packed_data(ipack)
43178 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
43179 pack_tmp = ishft(pack_tmp, -18)
43180 idata = idata + 1
43181 data_tmp = ishft(pack_tmp, 7)
43182 ipack = ipack + 1
43183 pack_tmp = packed_data(ipack)
43184 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
43185 pack_tmp = ishft(pack_tmp, -7)
43186 idata = idata + 1
43187 data_tmp = iand(pack_tmp, mask_right(nbits))
43188 full_data(idata) = data_tmp
43189 pack_tmp = ishft(pack_tmp, -nbits)
43190 idata = idata + 1
43191 data_tmp = ishft(pack_tmp, 49)
43192 ipack = ipack + 1
43193 pack_tmp = packed_data(ipack)
43194 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(49)))
43195 pack_tmp = ishft(pack_tmp, -49)
43196 idata = idata + 1
43197 data_tmp = ishft(pack_tmp, 38)
43198 ipack = ipack + 1
43199 pack_tmp = packed_data(ipack)
43200 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
43201 pack_tmp = ishft(pack_tmp, -38)
43202 idata = idata + 1
43203 data_tmp = ishft(pack_tmp, 27)
43204 ipack = ipack + 1
43205 pack_tmp = packed_data(ipack)
43206 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
43207 pack_tmp = ishft(pack_tmp, -27)
43208 idata = idata + 1
43209 data_tmp = ishft(pack_tmp, 16)
43210 ipack = ipack + 1
43211 pack_tmp = packed_data(ipack)
43212 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
43213 pack_tmp = ishft(pack_tmp, -16)
43214 idata = idata + 1
43215 data_tmp = ishft(pack_tmp, 5)
43216 ipack = ipack + 1
43217 pack_tmp = packed_data(ipack)
43218 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
43219 pack_tmp = ishft(pack_tmp, -5)
43220 idata = idata + 1
43221 data_tmp = iand(pack_tmp, mask_right(nbits))
43222 full_data(idata) = data_tmp
43223 pack_tmp = ishft(pack_tmp, -nbits)
43224 idata = idata + 1
43225 data_tmp = ishft(pack_tmp, 47)
43226 ipack = ipack + 1
43227 pack_tmp = packed_data(ipack)
43228 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(47)))
43229 pack_tmp = ishft(pack_tmp, -47)
43230 idata = idata + 1
43231 data_tmp = ishft(pack_tmp, 36)
43232 ipack = ipack + 1
43233 pack_tmp = packed_data(ipack)
43234 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
43235 pack_tmp = ishft(pack_tmp, -36)
43236 idata = idata + 1
43237 data_tmp = ishft(pack_tmp, 25)
43238 ipack = ipack + 1
43239 pack_tmp = packed_data(ipack)
43240 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
43241 pack_tmp = ishft(pack_tmp, -25)
43242 idata = idata + 1
43243 data_tmp = ishft(pack_tmp, 14)
43244 ipack = ipack + 1
43245 pack_tmp = packed_data(ipack)
43246 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
43247 pack_tmp = ishft(pack_tmp, -14)
43248 idata = idata + 1
43249 data_tmp = ishft(pack_tmp, 3)
43250 ipack = ipack + 1
43251 pack_tmp = packed_data(ipack)
43252 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
43253 pack_tmp = ishft(pack_tmp, -3)
43254 idata = idata + 1
43255 data_tmp = iand(pack_tmp, mask_right(nbits))
43256 full_data(idata) = data_tmp
43257 pack_tmp = ishft(pack_tmp, -nbits)
43258 idata = idata + 1
43259 data_tmp = ishft(pack_tmp, 45)
43260 ipack = ipack + 1
43261 pack_tmp = packed_data(ipack)
43262 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(45)))
43263 pack_tmp = ishft(pack_tmp, -45)
43264 idata = idata + 1
43265 data_tmp = ishft(pack_tmp, 34)
43266 ipack = ipack + 1
43267 pack_tmp = packed_data(ipack)
43268 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
43269 pack_tmp = ishft(pack_tmp, -34)
43270 idata = idata + 1
43271 data_tmp = ishft(pack_tmp, 23)
43272 ipack = ipack + 1
43273 pack_tmp = packed_data(ipack)
43274 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
43275 pack_tmp = ishft(pack_tmp, -23)
43276 idata = idata + 1
43277 data_tmp = ishft(pack_tmp, 12)
43278 ipack = ipack + 1
43279 pack_tmp = packed_data(ipack)
43280 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
43281 pack_tmp = ishft(pack_tmp, -12)
43282 idata = idata + 1
43283 data_tmp = ishft(pack_tmp, 1)
43284 ipack = ipack + 1
43285 pack_tmp = packed_data(ipack)
43286 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
43287 pack_tmp = ishft(pack_tmp, -1)
43288 idata = idata + 1
43289 data_tmp = iand(pack_tmp, mask_right(nbits))
43290 full_data(idata) = data_tmp
43291 pack_tmp = ishft(pack_tmp, -nbits)
43292 idata = idata + 1
43293 data_tmp = ishft(pack_tmp, 43)
43294 ipack = ipack + 1
43295 pack_tmp = packed_data(ipack)
43296 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(43)))
43297 pack_tmp = ishft(pack_tmp, -43)
43298 idata = idata + 1
43299 data_tmp = ishft(pack_tmp, 32)
43300 ipack = ipack + 1
43301 pack_tmp = packed_data(ipack)
43302 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
43303 pack_tmp = ishft(pack_tmp, -32)
43304 idata = idata + 1
43305 data_tmp = ishft(pack_tmp, 21)
43306 ipack = ipack + 1
43307 pack_tmp = packed_data(ipack)
43308 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
43309 pack_tmp = ishft(pack_tmp, -21)
43310 idata = idata + 1
43311 data_tmp = ishft(pack_tmp, 10)
43312 ipack = ipack + 1
43313 pack_tmp = packed_data(ipack)
43314 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
43315 pack_tmp = ishft(pack_tmp, -10)
43316 idata = idata + 1
43317 data_tmp = iand(pack_tmp, mask_right(nbits))
43318 full_data(idata) = data_tmp
43319 pack_tmp = ishft(pack_tmp, -nbits)
43320 idata = idata + 1
43321 data_tmp = ishft(pack_tmp, 52)
43322 ipack = ipack + 1
43323 pack_tmp = packed_data(ipack)
43324 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
43325 pack_tmp = ishft(pack_tmp, -52)
43326 idata = idata + 1
43327 data_tmp = ishft(pack_tmp, 41)
43328 ipack = ipack + 1
43329 pack_tmp = packed_data(ipack)
43330 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(41)))
43331 pack_tmp = ishft(pack_tmp, -41)
43332 idata = idata + 1
43333 data_tmp = ishft(pack_tmp, 30)
43334 ipack = ipack + 1
43335 pack_tmp = packed_data(ipack)
43336 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
43337 pack_tmp = ishft(pack_tmp, -30)
43338 idata = idata + 1
43339 data_tmp = ishft(pack_tmp, 19)
43340 ipack = ipack + 1
43341 pack_tmp = packed_data(ipack)
43342 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
43343 pack_tmp = ishft(pack_tmp, -19)
43344 idata = idata + 1
43345 data_tmp = ishft(pack_tmp, 8)
43346 ipack = ipack + 1
43347 pack_tmp = packed_data(ipack)
43348 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
43349 pack_tmp = ishft(pack_tmp, -8)
43350 idata = idata + 1
43351 data_tmp = iand(pack_tmp, mask_right(nbits))
43352 full_data(idata) = data_tmp
43353 pack_tmp = ishft(pack_tmp, -nbits)
43354 idata = idata + 1
43355 data_tmp = ishft(pack_tmp, 50)
43356 ipack = ipack + 1
43357 pack_tmp = packed_data(ipack)
43358 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
43359 pack_tmp = ishft(pack_tmp, -50)
43360 idata = idata + 1
43361 data_tmp = ishft(pack_tmp, 39)
43362 ipack = ipack + 1
43363 pack_tmp = packed_data(ipack)
43364 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
43365 pack_tmp = ishft(pack_tmp, -39)
43366 idata = idata + 1
43367 data_tmp = ishft(pack_tmp, 28)
43368 ipack = ipack + 1
43369 pack_tmp = packed_data(ipack)
43370 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
43371 pack_tmp = ishft(pack_tmp, -28)
43372 idata = idata + 1
43373 data_tmp = ishft(pack_tmp, 17)
43374 ipack = ipack + 1
43375 pack_tmp = packed_data(ipack)
43376 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
43377 pack_tmp = ishft(pack_tmp, -17)
43378 idata = idata + 1
43379 data_tmp = ishft(pack_tmp, 6)
43380 ipack = ipack + 1
43381 pack_tmp = packed_data(ipack)
43382 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
43383 pack_tmp = ishft(pack_tmp, -6)
43384 idata = idata + 1
43385 data_tmp = iand(pack_tmp, mask_right(nbits))
43386 full_data(idata) = data_tmp
43387 pack_tmp = ishft(pack_tmp, -nbits)
43388 idata = idata + 1
43389 data_tmp = ishft(pack_tmp, 48)
43390 ipack = ipack + 1
43391 pack_tmp = packed_data(ipack)
43392 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
43393 pack_tmp = ishft(pack_tmp, -48)
43394 idata = idata + 1
43395 data_tmp = ishft(pack_tmp, 37)
43396 ipack = ipack + 1
43397 pack_tmp = packed_data(ipack)
43398 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
43399 pack_tmp = ishft(pack_tmp, -37)
43400 idata = idata + 1
43401 data_tmp = ishft(pack_tmp, 26)
43402 ipack = ipack + 1
43403 pack_tmp = packed_data(ipack)
43404 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
43405 pack_tmp = ishft(pack_tmp, -26)
43406 idata = idata + 1
43407 data_tmp = ishft(pack_tmp, 15)
43408 ipack = ipack + 1
43409 pack_tmp = packed_data(ipack)
43410 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
43411 pack_tmp = ishft(pack_tmp, -15)
43412 idata = idata + 1
43413 data_tmp = ishft(pack_tmp, 4)
43414 ipack = ipack + 1
43415 pack_tmp = packed_data(ipack)
43416 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
43417 pack_tmp = ishft(pack_tmp, -4)
43418 idata = idata + 1
43419 data_tmp = iand(pack_tmp, mask_right(nbits))
43420 full_data(idata) = data_tmp
43421 pack_tmp = ishft(pack_tmp, -nbits)
43422 idata = idata + 1
43423 data_tmp = ishft(pack_tmp, 46)
43424 ipack = ipack + 1
43425 pack_tmp = packed_data(ipack)
43426 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
43427 pack_tmp = ishft(pack_tmp, -46)
43428 idata = idata + 1
43429 data_tmp = ishft(pack_tmp, 35)
43430 ipack = ipack + 1
43431 pack_tmp = packed_data(ipack)
43432 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
43433 pack_tmp = ishft(pack_tmp, -35)
43434 idata = idata + 1
43435 data_tmp = ishft(pack_tmp, 24)
43436 ipack = ipack + 1
43437 pack_tmp = packed_data(ipack)
43438 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
43439 pack_tmp = ishft(pack_tmp, -24)
43440 idata = idata + 1
43441 data_tmp = ishft(pack_tmp, 13)
43442 ipack = ipack + 1
43443 pack_tmp = packed_data(ipack)
43444 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
43445 pack_tmp = ishft(pack_tmp, -13)
43446 idata = idata + 1
43447 data_tmp = ishft(pack_tmp, 2)
43448 ipack = ipack + 1
43449 pack_tmp = packed_data(ipack)
43450 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
43451 pack_tmp = ishft(pack_tmp, -2)
43452 idata = idata + 1
43453 data_tmp = iand(pack_tmp, mask_right(nbits))
43454 full_data(idata) = data_tmp
43455 pack_tmp = ishft(pack_tmp, -nbits)
43456 idata = idata + 1
43457 data_tmp = ishft(pack_tmp, 44)
43458 ipack = ipack + 1
43459 pack_tmp = packed_data(ipack)
43460 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
43461 pack_tmp = ishft(pack_tmp, -44)
43462 idata = idata + 1
43463 data_tmp = ishft(pack_tmp, 33)
43464 ipack = ipack + 1
43465 pack_tmp = packed_data(ipack)
43466 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
43467 pack_tmp = ishft(pack_tmp, -33)
43468 idata = idata + 1
43469 data_tmp = ishft(pack_tmp, 22)
43470 ipack = ipack + 1
43471 pack_tmp = packed_data(ipack)
43472 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
43473 pack_tmp = ishft(pack_tmp, -22)
43474 idata = idata + 1
43475 data_tmp = ishft(pack_tmp, 11)
43476 ipack = ipack + 1
43477 pack_tmp = packed_data(ipack)
43478 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
43479 pack_tmp = ishft(pack_tmp, -11)
43480 idata = idata + 1
43481 data_tmp = iand(pack_tmp, mask_right(nbits))
43482 full_data(idata) = data_tmp
43483 pack_tmp = ishft(pack_tmp, -nbits)
43484 END DO
43485 IF (ndata_rep < ndata) THEN
43486 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
43487 END IF
43488 END SUBROUTINE bits2ints_53
43489
43490! **************************************************************************************************
43491!> \brief ...
43492!> \param Ndata ...
43493!> \param packed_data ...
43494!> \param full_data ...
43495! **************************************************************************************************
43496 SUBROUTINE ints2bits_54(Ndata, packed_data, full_data)
43497 INTEGER, INTENT(IN) :: Ndata
43498 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
43499 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
43500
43501 INTEGER, PARAMETER :: Nbits = 54
43502
43503 INTEGER :: idata, ipack, kdata, Ndata_rep
43504 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
43505
43506 idata = 0
43507 ipack = 0
43508 ndata_rep = (ndata/64)*64
43509 DO kdata = 1, ndata_rep, 64
43510 pack_tmp = 0
43511 idata = idata + 1
43512 data_tmp = full_data(idata)
43513 data_tmp = ishft(data_tmp, 10)
43514 pack_tmp = ior(pack_tmp, data_tmp)
43515 pack_tmp = ishft(pack_tmp, -10)
43516 idata = idata + 1
43517 data_tmp = full_data(idata)
43518 data_tmp = ishft(data_tmp, 10)
43519 data_tmp = iand(data_tmp, mask_left(10))
43520 pack_tmp = ior(pack_tmp, data_tmp)
43521 ipack = ipack + 1
43522 packed_data(ipack) = pack_tmp
43523 data_tmp = full_data(idata)
43524 pack_tmp = ishft(data_tmp, 20)
43525 pack_tmp = ishft(pack_tmp, -20)
43526 idata = idata + 1
43527 data_tmp = full_data(idata)
43528 data_tmp = ishft(data_tmp, 10)
43529 data_tmp = iand(data_tmp, mask_left(20))
43530 pack_tmp = ior(pack_tmp, data_tmp)
43531 ipack = ipack + 1
43532 packed_data(ipack) = pack_tmp
43533 data_tmp = full_data(idata)
43534 pack_tmp = ishft(data_tmp, 30)
43535 pack_tmp = ishft(pack_tmp, -30)
43536 idata = idata + 1
43537 data_tmp = full_data(idata)
43538 data_tmp = ishft(data_tmp, 10)
43539 data_tmp = iand(data_tmp, mask_left(30))
43540 pack_tmp = ior(pack_tmp, data_tmp)
43541 ipack = ipack + 1
43542 packed_data(ipack) = pack_tmp
43543 data_tmp = full_data(idata)
43544 pack_tmp = ishft(data_tmp, 40)
43545 pack_tmp = ishft(pack_tmp, -40)
43546 idata = idata + 1
43547 data_tmp = full_data(idata)
43548 data_tmp = ishft(data_tmp, 10)
43549 data_tmp = iand(data_tmp, mask_left(40))
43550 pack_tmp = ior(pack_tmp, data_tmp)
43551 ipack = ipack + 1
43552 packed_data(ipack) = pack_tmp
43553 data_tmp = full_data(idata)
43554 pack_tmp = ishft(data_tmp, 50)
43555 pack_tmp = ishft(pack_tmp, -50)
43556 idata = idata + 1
43557 data_tmp = full_data(idata)
43558 data_tmp = ishft(data_tmp, 10)
43559 data_tmp = iand(data_tmp, mask_left(50))
43560 pack_tmp = ior(pack_tmp, data_tmp)
43561 ipack = ipack + 1
43562 packed_data(ipack) = pack_tmp
43563 data_tmp = full_data(idata)
43564 pack_tmp = ishft(data_tmp, 60)
43565 pack_tmp = ishft(pack_tmp, -54)
43566 idata = idata + 1
43567 data_tmp = full_data(idata)
43568 data_tmp = ishft(data_tmp, 10)
43569 pack_tmp = ior(pack_tmp, data_tmp)
43570 pack_tmp = ishft(pack_tmp, -6)
43571 idata = idata + 1
43572 data_tmp = full_data(idata)
43573 data_tmp = ishft(data_tmp, 10)
43574 data_tmp = iand(data_tmp, mask_left(6))
43575 pack_tmp = ior(pack_tmp, data_tmp)
43576 ipack = ipack + 1
43577 packed_data(ipack) = pack_tmp
43578 data_tmp = full_data(idata)
43579 pack_tmp = ishft(data_tmp, 16)
43580 pack_tmp = ishft(pack_tmp, -16)
43581 idata = idata + 1
43582 data_tmp = full_data(idata)
43583 data_tmp = ishft(data_tmp, 10)
43584 data_tmp = iand(data_tmp, mask_left(16))
43585 pack_tmp = ior(pack_tmp, data_tmp)
43586 ipack = ipack + 1
43587 packed_data(ipack) = pack_tmp
43588 data_tmp = full_data(idata)
43589 pack_tmp = ishft(data_tmp, 26)
43590 pack_tmp = ishft(pack_tmp, -26)
43591 idata = idata + 1
43592 data_tmp = full_data(idata)
43593 data_tmp = ishft(data_tmp, 10)
43594 data_tmp = iand(data_tmp, mask_left(26))
43595 pack_tmp = ior(pack_tmp, data_tmp)
43596 ipack = ipack + 1
43597 packed_data(ipack) = pack_tmp
43598 data_tmp = full_data(idata)
43599 pack_tmp = ishft(data_tmp, 36)
43600 pack_tmp = ishft(pack_tmp, -36)
43601 idata = idata + 1
43602 data_tmp = full_data(idata)
43603 data_tmp = ishft(data_tmp, 10)
43604 data_tmp = iand(data_tmp, mask_left(36))
43605 pack_tmp = ior(pack_tmp, data_tmp)
43606 ipack = ipack + 1
43607 packed_data(ipack) = pack_tmp
43608 data_tmp = full_data(idata)
43609 pack_tmp = ishft(data_tmp, 46)
43610 pack_tmp = ishft(pack_tmp, -46)
43611 idata = idata + 1
43612 data_tmp = full_data(idata)
43613 data_tmp = ishft(data_tmp, 10)
43614 data_tmp = iand(data_tmp, mask_left(46))
43615 pack_tmp = ior(pack_tmp, data_tmp)
43616 ipack = ipack + 1
43617 packed_data(ipack) = pack_tmp
43618 data_tmp = full_data(idata)
43619 pack_tmp = ishft(data_tmp, 56)
43620 pack_tmp = ishft(pack_tmp, -54)
43621 idata = idata + 1
43622 data_tmp = full_data(idata)
43623 data_tmp = ishft(data_tmp, 10)
43624 pack_tmp = ior(pack_tmp, data_tmp)
43625 pack_tmp = ishft(pack_tmp, -2)
43626 idata = idata + 1
43627 data_tmp = full_data(idata)
43628 data_tmp = ishft(data_tmp, 10)
43629 data_tmp = iand(data_tmp, mask_left(2))
43630 pack_tmp = ior(pack_tmp, data_tmp)
43631 ipack = ipack + 1
43632 packed_data(ipack) = pack_tmp
43633 data_tmp = full_data(idata)
43634 pack_tmp = ishft(data_tmp, 12)
43635 pack_tmp = ishft(pack_tmp, -12)
43636 idata = idata + 1
43637 data_tmp = full_data(idata)
43638 data_tmp = ishft(data_tmp, 10)
43639 data_tmp = iand(data_tmp, mask_left(12))
43640 pack_tmp = ior(pack_tmp, data_tmp)
43641 ipack = ipack + 1
43642 packed_data(ipack) = pack_tmp
43643 data_tmp = full_data(idata)
43644 pack_tmp = ishft(data_tmp, 22)
43645 pack_tmp = ishft(pack_tmp, -22)
43646 idata = idata + 1
43647 data_tmp = full_data(idata)
43648 data_tmp = ishft(data_tmp, 10)
43649 data_tmp = iand(data_tmp, mask_left(22))
43650 pack_tmp = ior(pack_tmp, data_tmp)
43651 ipack = ipack + 1
43652 packed_data(ipack) = pack_tmp
43653 data_tmp = full_data(idata)
43654 pack_tmp = ishft(data_tmp, 32)
43655 pack_tmp = ishft(pack_tmp, -32)
43656 idata = idata + 1
43657 data_tmp = full_data(idata)
43658 data_tmp = ishft(data_tmp, 10)
43659 data_tmp = iand(data_tmp, mask_left(32))
43660 pack_tmp = ior(pack_tmp, data_tmp)
43661 ipack = ipack + 1
43662 packed_data(ipack) = pack_tmp
43663 data_tmp = full_data(idata)
43664 pack_tmp = ishft(data_tmp, 42)
43665 pack_tmp = ishft(pack_tmp, -42)
43666 idata = idata + 1
43667 data_tmp = full_data(idata)
43668 data_tmp = ishft(data_tmp, 10)
43669 data_tmp = iand(data_tmp, mask_left(42))
43670 pack_tmp = ior(pack_tmp, data_tmp)
43671 ipack = ipack + 1
43672 packed_data(ipack) = pack_tmp
43673 data_tmp = full_data(idata)
43674 pack_tmp = ishft(data_tmp, 52)
43675 pack_tmp = ishft(pack_tmp, -52)
43676 idata = idata + 1
43677 data_tmp = full_data(idata)
43678 data_tmp = ishft(data_tmp, 10)
43679 data_tmp = iand(data_tmp, mask_left(52))
43680 pack_tmp = ior(pack_tmp, data_tmp)
43681 ipack = ipack + 1
43682 packed_data(ipack) = pack_tmp
43683 data_tmp = full_data(idata)
43684 pack_tmp = ishft(data_tmp, 62)
43685 pack_tmp = ishft(pack_tmp, -54)
43686 idata = idata + 1
43687 data_tmp = full_data(idata)
43688 data_tmp = ishft(data_tmp, 10)
43689 pack_tmp = ior(pack_tmp, data_tmp)
43690 pack_tmp = ishft(pack_tmp, -8)
43691 idata = idata + 1
43692 data_tmp = full_data(idata)
43693 data_tmp = ishft(data_tmp, 10)
43694 data_tmp = iand(data_tmp, mask_left(8))
43695 pack_tmp = ior(pack_tmp, data_tmp)
43696 ipack = ipack + 1
43697 packed_data(ipack) = pack_tmp
43698 data_tmp = full_data(idata)
43699 pack_tmp = ishft(data_tmp, 18)
43700 pack_tmp = ishft(pack_tmp, -18)
43701 idata = idata + 1
43702 data_tmp = full_data(idata)
43703 data_tmp = ishft(data_tmp, 10)
43704 data_tmp = iand(data_tmp, mask_left(18))
43705 pack_tmp = ior(pack_tmp, data_tmp)
43706 ipack = ipack + 1
43707 packed_data(ipack) = pack_tmp
43708 data_tmp = full_data(idata)
43709 pack_tmp = ishft(data_tmp, 28)
43710 pack_tmp = ishft(pack_tmp, -28)
43711 idata = idata + 1
43712 data_tmp = full_data(idata)
43713 data_tmp = ishft(data_tmp, 10)
43714 data_tmp = iand(data_tmp, mask_left(28))
43715 pack_tmp = ior(pack_tmp, data_tmp)
43716 ipack = ipack + 1
43717 packed_data(ipack) = pack_tmp
43718 data_tmp = full_data(idata)
43719 pack_tmp = ishft(data_tmp, 38)
43720 pack_tmp = ishft(pack_tmp, -38)
43721 idata = idata + 1
43722 data_tmp = full_data(idata)
43723 data_tmp = ishft(data_tmp, 10)
43724 data_tmp = iand(data_tmp, mask_left(38))
43725 pack_tmp = ior(pack_tmp, data_tmp)
43726 ipack = ipack + 1
43727 packed_data(ipack) = pack_tmp
43728 data_tmp = full_data(idata)
43729 pack_tmp = ishft(data_tmp, 48)
43730 pack_tmp = ishft(pack_tmp, -48)
43731 idata = idata + 1
43732 data_tmp = full_data(idata)
43733 data_tmp = ishft(data_tmp, 10)
43734 data_tmp = iand(data_tmp, mask_left(48))
43735 pack_tmp = ior(pack_tmp, data_tmp)
43736 ipack = ipack + 1
43737 packed_data(ipack) = pack_tmp
43738 data_tmp = full_data(idata)
43739 pack_tmp = ishft(data_tmp, 58)
43740 pack_tmp = ishft(pack_tmp, -54)
43741 idata = idata + 1
43742 data_tmp = full_data(idata)
43743 data_tmp = ishft(data_tmp, 10)
43744 pack_tmp = ior(pack_tmp, data_tmp)
43745 pack_tmp = ishft(pack_tmp, -4)
43746 idata = idata + 1
43747 data_tmp = full_data(idata)
43748 data_tmp = ishft(data_tmp, 10)
43749 data_tmp = iand(data_tmp, mask_left(4))
43750 pack_tmp = ior(pack_tmp, data_tmp)
43751 ipack = ipack + 1
43752 packed_data(ipack) = pack_tmp
43753 data_tmp = full_data(idata)
43754 pack_tmp = ishft(data_tmp, 14)
43755 pack_tmp = ishft(pack_tmp, -14)
43756 idata = idata + 1
43757 data_tmp = full_data(idata)
43758 data_tmp = ishft(data_tmp, 10)
43759 data_tmp = iand(data_tmp, mask_left(14))
43760 pack_tmp = ior(pack_tmp, data_tmp)
43761 ipack = ipack + 1
43762 packed_data(ipack) = pack_tmp
43763 data_tmp = full_data(idata)
43764 pack_tmp = ishft(data_tmp, 24)
43765 pack_tmp = ishft(pack_tmp, -24)
43766 idata = idata + 1
43767 data_tmp = full_data(idata)
43768 data_tmp = ishft(data_tmp, 10)
43769 data_tmp = iand(data_tmp, mask_left(24))
43770 pack_tmp = ior(pack_tmp, data_tmp)
43771 ipack = ipack + 1
43772 packed_data(ipack) = pack_tmp
43773 data_tmp = full_data(idata)
43774 pack_tmp = ishft(data_tmp, 34)
43775 pack_tmp = ishft(pack_tmp, -34)
43776 idata = idata + 1
43777 data_tmp = full_data(idata)
43778 data_tmp = ishft(data_tmp, 10)
43779 data_tmp = iand(data_tmp, mask_left(34))
43780 pack_tmp = ior(pack_tmp, data_tmp)
43781 ipack = ipack + 1
43782 packed_data(ipack) = pack_tmp
43783 data_tmp = full_data(idata)
43784 pack_tmp = ishft(data_tmp, 44)
43785 pack_tmp = ishft(pack_tmp, -44)
43786 idata = idata + 1
43787 data_tmp = full_data(idata)
43788 data_tmp = ishft(data_tmp, 10)
43789 data_tmp = iand(data_tmp, mask_left(44))
43790 pack_tmp = ior(pack_tmp, data_tmp)
43791 ipack = ipack + 1
43792 packed_data(ipack) = pack_tmp
43793 data_tmp = full_data(idata)
43794 pack_tmp = ishft(data_tmp, 54)
43795 pack_tmp = ishft(pack_tmp, -54)
43796 idata = idata + 1
43797 data_tmp = full_data(idata)
43798 data_tmp = ishft(data_tmp, 10)
43799 pack_tmp = ior(pack_tmp, data_tmp)
43800 pack_tmp = ishft(pack_tmp, 0)
43801 idata = idata + 1
43802 data_tmp = full_data(idata)
43803 data_tmp = ishft(data_tmp, 10)
43804 data_tmp = iand(data_tmp, mask_left(0))
43805 pack_tmp = ior(pack_tmp, data_tmp)
43806 ipack = ipack + 1
43807 packed_data(ipack) = pack_tmp
43808 data_tmp = full_data(idata)
43809 pack_tmp = ishft(data_tmp, 10)
43810 pack_tmp = ishft(pack_tmp, -10)
43811 idata = idata + 1
43812 data_tmp = full_data(idata)
43813 data_tmp = ishft(data_tmp, 10)
43814 data_tmp = iand(data_tmp, mask_left(10))
43815 pack_tmp = ior(pack_tmp, data_tmp)
43816 ipack = ipack + 1
43817 packed_data(ipack) = pack_tmp
43818 data_tmp = full_data(idata)
43819 pack_tmp = ishft(data_tmp, 20)
43820 pack_tmp = ishft(pack_tmp, -20)
43821 idata = idata + 1
43822 data_tmp = full_data(idata)
43823 data_tmp = ishft(data_tmp, 10)
43824 data_tmp = iand(data_tmp, mask_left(20))
43825 pack_tmp = ior(pack_tmp, data_tmp)
43826 ipack = ipack + 1
43827 packed_data(ipack) = pack_tmp
43828 data_tmp = full_data(idata)
43829 pack_tmp = ishft(data_tmp, 30)
43830 pack_tmp = ishft(pack_tmp, -30)
43831 idata = idata + 1
43832 data_tmp = full_data(idata)
43833 data_tmp = ishft(data_tmp, 10)
43834 data_tmp = iand(data_tmp, mask_left(30))
43835 pack_tmp = ior(pack_tmp, data_tmp)
43836 ipack = ipack + 1
43837 packed_data(ipack) = pack_tmp
43838 data_tmp = full_data(idata)
43839 pack_tmp = ishft(data_tmp, 40)
43840 pack_tmp = ishft(pack_tmp, -40)
43841 idata = idata + 1
43842 data_tmp = full_data(idata)
43843 data_tmp = ishft(data_tmp, 10)
43844 data_tmp = iand(data_tmp, mask_left(40))
43845 pack_tmp = ior(pack_tmp, data_tmp)
43846 ipack = ipack + 1
43847 packed_data(ipack) = pack_tmp
43848 data_tmp = full_data(idata)
43849 pack_tmp = ishft(data_tmp, 50)
43850 pack_tmp = ishft(pack_tmp, -50)
43851 idata = idata + 1
43852 data_tmp = full_data(idata)
43853 data_tmp = ishft(data_tmp, 10)
43854 data_tmp = iand(data_tmp, mask_left(50))
43855 pack_tmp = ior(pack_tmp, data_tmp)
43856 ipack = ipack + 1
43857 packed_data(ipack) = pack_tmp
43858 data_tmp = full_data(idata)
43859 pack_tmp = ishft(data_tmp, 60)
43860 pack_tmp = ishft(pack_tmp, -54)
43861 idata = idata + 1
43862 data_tmp = full_data(idata)
43863 data_tmp = ishft(data_tmp, 10)
43864 pack_tmp = ior(pack_tmp, data_tmp)
43865 pack_tmp = ishft(pack_tmp, -6)
43866 idata = idata + 1
43867 data_tmp = full_data(idata)
43868 data_tmp = ishft(data_tmp, 10)
43869 data_tmp = iand(data_tmp, mask_left(6))
43870 pack_tmp = ior(pack_tmp, data_tmp)
43871 ipack = ipack + 1
43872 packed_data(ipack) = pack_tmp
43873 data_tmp = full_data(idata)
43874 pack_tmp = ishft(data_tmp, 16)
43875 pack_tmp = ishft(pack_tmp, -16)
43876 idata = idata + 1
43877 data_tmp = full_data(idata)
43878 data_tmp = ishft(data_tmp, 10)
43879 data_tmp = iand(data_tmp, mask_left(16))
43880 pack_tmp = ior(pack_tmp, data_tmp)
43881 ipack = ipack + 1
43882 packed_data(ipack) = pack_tmp
43883 data_tmp = full_data(idata)
43884 pack_tmp = ishft(data_tmp, 26)
43885 pack_tmp = ishft(pack_tmp, -26)
43886 idata = idata + 1
43887 data_tmp = full_data(idata)
43888 data_tmp = ishft(data_tmp, 10)
43889 data_tmp = iand(data_tmp, mask_left(26))
43890 pack_tmp = ior(pack_tmp, data_tmp)
43891 ipack = ipack + 1
43892 packed_data(ipack) = pack_tmp
43893 data_tmp = full_data(idata)
43894 pack_tmp = ishft(data_tmp, 36)
43895 pack_tmp = ishft(pack_tmp, -36)
43896 idata = idata + 1
43897 data_tmp = full_data(idata)
43898 data_tmp = ishft(data_tmp, 10)
43899 data_tmp = iand(data_tmp, mask_left(36))
43900 pack_tmp = ior(pack_tmp, data_tmp)
43901 ipack = ipack + 1
43902 packed_data(ipack) = pack_tmp
43903 data_tmp = full_data(idata)
43904 pack_tmp = ishft(data_tmp, 46)
43905 pack_tmp = ishft(pack_tmp, -46)
43906 idata = idata + 1
43907 data_tmp = full_data(idata)
43908 data_tmp = ishft(data_tmp, 10)
43909 data_tmp = iand(data_tmp, mask_left(46))
43910 pack_tmp = ior(pack_tmp, data_tmp)
43911 ipack = ipack + 1
43912 packed_data(ipack) = pack_tmp
43913 data_tmp = full_data(idata)
43914 pack_tmp = ishft(data_tmp, 56)
43915 pack_tmp = ishft(pack_tmp, -54)
43916 idata = idata + 1
43917 data_tmp = full_data(idata)
43918 data_tmp = ishft(data_tmp, 10)
43919 pack_tmp = ior(pack_tmp, data_tmp)
43920 pack_tmp = ishft(pack_tmp, -2)
43921 idata = idata + 1
43922 data_tmp = full_data(idata)
43923 data_tmp = ishft(data_tmp, 10)
43924 data_tmp = iand(data_tmp, mask_left(2))
43925 pack_tmp = ior(pack_tmp, data_tmp)
43926 ipack = ipack + 1
43927 packed_data(ipack) = pack_tmp
43928 data_tmp = full_data(idata)
43929 pack_tmp = ishft(data_tmp, 12)
43930 pack_tmp = ishft(pack_tmp, -12)
43931 idata = idata + 1
43932 data_tmp = full_data(idata)
43933 data_tmp = ishft(data_tmp, 10)
43934 data_tmp = iand(data_tmp, mask_left(12))
43935 pack_tmp = ior(pack_tmp, data_tmp)
43936 ipack = ipack + 1
43937 packed_data(ipack) = pack_tmp
43938 data_tmp = full_data(idata)
43939 pack_tmp = ishft(data_tmp, 22)
43940 pack_tmp = ishft(pack_tmp, -22)
43941 idata = idata + 1
43942 data_tmp = full_data(idata)
43943 data_tmp = ishft(data_tmp, 10)
43944 data_tmp = iand(data_tmp, mask_left(22))
43945 pack_tmp = ior(pack_tmp, data_tmp)
43946 ipack = ipack + 1
43947 packed_data(ipack) = pack_tmp
43948 data_tmp = full_data(idata)
43949 pack_tmp = ishft(data_tmp, 32)
43950 pack_tmp = ishft(pack_tmp, -32)
43951 idata = idata + 1
43952 data_tmp = full_data(idata)
43953 data_tmp = ishft(data_tmp, 10)
43954 data_tmp = iand(data_tmp, mask_left(32))
43955 pack_tmp = ior(pack_tmp, data_tmp)
43956 ipack = ipack + 1
43957 packed_data(ipack) = pack_tmp
43958 data_tmp = full_data(idata)
43959 pack_tmp = ishft(data_tmp, 42)
43960 pack_tmp = ishft(pack_tmp, -42)
43961 idata = idata + 1
43962 data_tmp = full_data(idata)
43963 data_tmp = ishft(data_tmp, 10)
43964 data_tmp = iand(data_tmp, mask_left(42))
43965 pack_tmp = ior(pack_tmp, data_tmp)
43966 ipack = ipack + 1
43967 packed_data(ipack) = pack_tmp
43968 data_tmp = full_data(idata)
43969 pack_tmp = ishft(data_tmp, 52)
43970 pack_tmp = ishft(pack_tmp, -52)
43971 idata = idata + 1
43972 data_tmp = full_data(idata)
43973 data_tmp = ishft(data_tmp, 10)
43974 data_tmp = iand(data_tmp, mask_left(52))
43975 pack_tmp = ior(pack_tmp, data_tmp)
43976 ipack = ipack + 1
43977 packed_data(ipack) = pack_tmp
43978 data_tmp = full_data(idata)
43979 pack_tmp = ishft(data_tmp, 62)
43980 pack_tmp = ishft(pack_tmp, -54)
43981 idata = idata + 1
43982 data_tmp = full_data(idata)
43983 data_tmp = ishft(data_tmp, 10)
43984 pack_tmp = ior(pack_tmp, data_tmp)
43985 pack_tmp = ishft(pack_tmp, -8)
43986 idata = idata + 1
43987 data_tmp = full_data(idata)
43988 data_tmp = ishft(data_tmp, 10)
43989 data_tmp = iand(data_tmp, mask_left(8))
43990 pack_tmp = ior(pack_tmp, data_tmp)
43991 ipack = ipack + 1
43992 packed_data(ipack) = pack_tmp
43993 data_tmp = full_data(idata)
43994 pack_tmp = ishft(data_tmp, 18)
43995 pack_tmp = ishft(pack_tmp, -18)
43996 idata = idata + 1
43997 data_tmp = full_data(idata)
43998 data_tmp = ishft(data_tmp, 10)
43999 data_tmp = iand(data_tmp, mask_left(18))
44000 pack_tmp = ior(pack_tmp, data_tmp)
44001 ipack = ipack + 1
44002 packed_data(ipack) = pack_tmp
44003 data_tmp = full_data(idata)
44004 pack_tmp = ishft(data_tmp, 28)
44005 pack_tmp = ishft(pack_tmp, -28)
44006 idata = idata + 1
44007 data_tmp = full_data(idata)
44008 data_tmp = ishft(data_tmp, 10)
44009 data_tmp = iand(data_tmp, mask_left(28))
44010 pack_tmp = ior(pack_tmp, data_tmp)
44011 ipack = ipack + 1
44012 packed_data(ipack) = pack_tmp
44013 data_tmp = full_data(idata)
44014 pack_tmp = ishft(data_tmp, 38)
44015 pack_tmp = ishft(pack_tmp, -38)
44016 idata = idata + 1
44017 data_tmp = full_data(idata)
44018 data_tmp = ishft(data_tmp, 10)
44019 data_tmp = iand(data_tmp, mask_left(38))
44020 pack_tmp = ior(pack_tmp, data_tmp)
44021 ipack = ipack + 1
44022 packed_data(ipack) = pack_tmp
44023 data_tmp = full_data(idata)
44024 pack_tmp = ishft(data_tmp, 48)
44025 pack_tmp = ishft(pack_tmp, -48)
44026 idata = idata + 1
44027 data_tmp = full_data(idata)
44028 data_tmp = ishft(data_tmp, 10)
44029 data_tmp = iand(data_tmp, mask_left(48))
44030 pack_tmp = ior(pack_tmp, data_tmp)
44031 ipack = ipack + 1
44032 packed_data(ipack) = pack_tmp
44033 data_tmp = full_data(idata)
44034 pack_tmp = ishft(data_tmp, 58)
44035 pack_tmp = ishft(pack_tmp, -54)
44036 idata = idata + 1
44037 data_tmp = full_data(idata)
44038 data_tmp = ishft(data_tmp, 10)
44039 pack_tmp = ior(pack_tmp, data_tmp)
44040 pack_tmp = ishft(pack_tmp, -4)
44041 idata = idata + 1
44042 data_tmp = full_data(idata)
44043 data_tmp = ishft(data_tmp, 10)
44044 data_tmp = iand(data_tmp, mask_left(4))
44045 pack_tmp = ior(pack_tmp, data_tmp)
44046 ipack = ipack + 1
44047 packed_data(ipack) = pack_tmp
44048 data_tmp = full_data(idata)
44049 pack_tmp = ishft(data_tmp, 14)
44050 pack_tmp = ishft(pack_tmp, -14)
44051 idata = idata + 1
44052 data_tmp = full_data(idata)
44053 data_tmp = ishft(data_tmp, 10)
44054 data_tmp = iand(data_tmp, mask_left(14))
44055 pack_tmp = ior(pack_tmp, data_tmp)
44056 ipack = ipack + 1
44057 packed_data(ipack) = pack_tmp
44058 data_tmp = full_data(idata)
44059 pack_tmp = ishft(data_tmp, 24)
44060 pack_tmp = ishft(pack_tmp, -24)
44061 idata = idata + 1
44062 data_tmp = full_data(idata)
44063 data_tmp = ishft(data_tmp, 10)
44064 data_tmp = iand(data_tmp, mask_left(24))
44065 pack_tmp = ior(pack_tmp, data_tmp)
44066 ipack = ipack + 1
44067 packed_data(ipack) = pack_tmp
44068 data_tmp = full_data(idata)
44069 pack_tmp = ishft(data_tmp, 34)
44070 pack_tmp = ishft(pack_tmp, -34)
44071 idata = idata + 1
44072 data_tmp = full_data(idata)
44073 data_tmp = ishft(data_tmp, 10)
44074 data_tmp = iand(data_tmp, mask_left(34))
44075 pack_tmp = ior(pack_tmp, data_tmp)
44076 ipack = ipack + 1
44077 packed_data(ipack) = pack_tmp
44078 data_tmp = full_data(idata)
44079 pack_tmp = ishft(data_tmp, 44)
44080 pack_tmp = ishft(pack_tmp, -44)
44081 idata = idata + 1
44082 data_tmp = full_data(idata)
44083 data_tmp = ishft(data_tmp, 10)
44084 data_tmp = iand(data_tmp, mask_left(44))
44085 pack_tmp = ior(pack_tmp, data_tmp)
44086 ipack = ipack + 1
44087 packed_data(ipack) = pack_tmp
44088 data_tmp = full_data(idata)
44089 pack_tmp = ishft(data_tmp, 54)
44090 pack_tmp = ishft(pack_tmp, -54)
44091 idata = idata + 1
44092 data_tmp = full_data(idata)
44093 data_tmp = ishft(data_tmp, 10)
44094 pack_tmp = ior(pack_tmp, data_tmp)
44095 pack_tmp = ishft(pack_tmp, 0)
44096 pack_tmp = ishft(pack_tmp, 0)
44097 ipack = ipack + 1
44098 packed_data(ipack) = pack_tmp
44099 END DO
44100 IF (ndata_rep < ndata) THEN
44101 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
44102 END IF
44103 END SUBROUTINE ints2bits_54
44104
44105! **************************************************************************************************
44106!> \brief ...
44107!> \param Ndata ...
44108!> \param packed_data ...
44109!> \param full_data ...
44110! **************************************************************************************************
44111 SUBROUTINE bits2ints_54(Ndata, packed_data, full_data)
44112 INTEGER, INTENT(IN) :: Ndata
44113 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
44114 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
44115
44116 INTEGER, PARAMETER :: Nbits = 54
44117
44118 INTEGER :: idata, ipack, kdata, Ndata_rep
44119 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
44120
44121 ipack = 0
44122 idata = 0
44123 pack_tmp = 0
44124 ndata_rep = (ndata/64)*64
44125 DO kdata = 1, ndata_rep, 64
44126 idata = idata + 1
44127 data_tmp = ishft(pack_tmp, 54)
44128 ipack = ipack + 1
44129 pack_tmp = packed_data(ipack)
44130 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(54)))
44131 pack_tmp = ishft(pack_tmp, -54)
44132 idata = idata + 1
44133 data_tmp = ishft(pack_tmp, 44)
44134 ipack = ipack + 1
44135 pack_tmp = packed_data(ipack)
44136 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
44137 pack_tmp = ishft(pack_tmp, -44)
44138 idata = idata + 1
44139 data_tmp = ishft(pack_tmp, 34)
44140 ipack = ipack + 1
44141 pack_tmp = packed_data(ipack)
44142 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
44143 pack_tmp = ishft(pack_tmp, -34)
44144 idata = idata + 1
44145 data_tmp = ishft(pack_tmp, 24)
44146 ipack = ipack + 1
44147 pack_tmp = packed_data(ipack)
44148 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
44149 pack_tmp = ishft(pack_tmp, -24)
44150 idata = idata + 1
44151 data_tmp = ishft(pack_tmp, 14)
44152 ipack = ipack + 1
44153 pack_tmp = packed_data(ipack)
44154 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
44155 pack_tmp = ishft(pack_tmp, -14)
44156 idata = idata + 1
44157 data_tmp = ishft(pack_tmp, 4)
44158 ipack = ipack + 1
44159 pack_tmp = packed_data(ipack)
44160 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
44161 pack_tmp = ishft(pack_tmp, -4)
44162 idata = idata + 1
44163 data_tmp = iand(pack_tmp, mask_right(nbits))
44164 full_data(idata) = data_tmp
44165 pack_tmp = ishft(pack_tmp, -nbits)
44166 idata = idata + 1
44167 data_tmp = ishft(pack_tmp, 48)
44168 ipack = ipack + 1
44169 pack_tmp = packed_data(ipack)
44170 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
44171 pack_tmp = ishft(pack_tmp, -48)
44172 idata = idata + 1
44173 data_tmp = ishft(pack_tmp, 38)
44174 ipack = ipack + 1
44175 pack_tmp = packed_data(ipack)
44176 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
44177 pack_tmp = ishft(pack_tmp, -38)
44178 idata = idata + 1
44179 data_tmp = ishft(pack_tmp, 28)
44180 ipack = ipack + 1
44181 pack_tmp = packed_data(ipack)
44182 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
44183 pack_tmp = ishft(pack_tmp, -28)
44184 idata = idata + 1
44185 data_tmp = ishft(pack_tmp, 18)
44186 ipack = ipack + 1
44187 pack_tmp = packed_data(ipack)
44188 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
44189 pack_tmp = ishft(pack_tmp, -18)
44190 idata = idata + 1
44191 data_tmp = ishft(pack_tmp, 8)
44192 ipack = ipack + 1
44193 pack_tmp = packed_data(ipack)
44194 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
44195 pack_tmp = ishft(pack_tmp, -8)
44196 idata = idata + 1
44197 data_tmp = iand(pack_tmp, mask_right(nbits))
44198 full_data(idata) = data_tmp
44199 pack_tmp = ishft(pack_tmp, -nbits)
44200 idata = idata + 1
44201 data_tmp = ishft(pack_tmp, 52)
44202 ipack = ipack + 1
44203 pack_tmp = packed_data(ipack)
44204 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
44205 pack_tmp = ishft(pack_tmp, -52)
44206 idata = idata + 1
44207 data_tmp = ishft(pack_tmp, 42)
44208 ipack = ipack + 1
44209 pack_tmp = packed_data(ipack)
44210 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
44211 pack_tmp = ishft(pack_tmp, -42)
44212 idata = idata + 1
44213 data_tmp = ishft(pack_tmp, 32)
44214 ipack = ipack + 1
44215 pack_tmp = packed_data(ipack)
44216 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
44217 pack_tmp = ishft(pack_tmp, -32)
44218 idata = idata + 1
44219 data_tmp = ishft(pack_tmp, 22)
44220 ipack = ipack + 1
44221 pack_tmp = packed_data(ipack)
44222 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
44223 pack_tmp = ishft(pack_tmp, -22)
44224 idata = idata + 1
44225 data_tmp = ishft(pack_tmp, 12)
44226 ipack = ipack + 1
44227 pack_tmp = packed_data(ipack)
44228 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
44229 pack_tmp = ishft(pack_tmp, -12)
44230 idata = idata + 1
44231 data_tmp = ishft(pack_tmp, 2)
44232 ipack = ipack + 1
44233 pack_tmp = packed_data(ipack)
44234 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
44235 pack_tmp = ishft(pack_tmp, -2)
44236 idata = idata + 1
44237 data_tmp = iand(pack_tmp, mask_right(nbits))
44238 full_data(idata) = data_tmp
44239 pack_tmp = ishft(pack_tmp, -nbits)
44240 idata = idata + 1
44241 data_tmp = ishft(pack_tmp, 46)
44242 ipack = ipack + 1
44243 pack_tmp = packed_data(ipack)
44244 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
44245 pack_tmp = ishft(pack_tmp, -46)
44246 idata = idata + 1
44247 data_tmp = ishft(pack_tmp, 36)
44248 ipack = ipack + 1
44249 pack_tmp = packed_data(ipack)
44250 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
44251 pack_tmp = ishft(pack_tmp, -36)
44252 idata = idata + 1
44253 data_tmp = ishft(pack_tmp, 26)
44254 ipack = ipack + 1
44255 pack_tmp = packed_data(ipack)
44256 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
44257 pack_tmp = ishft(pack_tmp, -26)
44258 idata = idata + 1
44259 data_tmp = ishft(pack_tmp, 16)
44260 ipack = ipack + 1
44261 pack_tmp = packed_data(ipack)
44262 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
44263 pack_tmp = ishft(pack_tmp, -16)
44264 idata = idata + 1
44265 data_tmp = ishft(pack_tmp, 6)
44266 ipack = ipack + 1
44267 pack_tmp = packed_data(ipack)
44268 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
44269 pack_tmp = ishft(pack_tmp, -6)
44270 idata = idata + 1
44271 data_tmp = iand(pack_tmp, mask_right(nbits))
44272 full_data(idata) = data_tmp
44273 pack_tmp = ishft(pack_tmp, -nbits)
44274 idata = idata + 1
44275 data_tmp = ishft(pack_tmp, 50)
44276 ipack = ipack + 1
44277 pack_tmp = packed_data(ipack)
44278 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
44279 pack_tmp = ishft(pack_tmp, -50)
44280 idata = idata + 1
44281 data_tmp = ishft(pack_tmp, 40)
44282 ipack = ipack + 1
44283 pack_tmp = packed_data(ipack)
44284 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
44285 pack_tmp = ishft(pack_tmp, -40)
44286 idata = idata + 1
44287 data_tmp = ishft(pack_tmp, 30)
44288 ipack = ipack + 1
44289 pack_tmp = packed_data(ipack)
44290 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
44291 pack_tmp = ishft(pack_tmp, -30)
44292 idata = idata + 1
44293 data_tmp = ishft(pack_tmp, 20)
44294 ipack = ipack + 1
44295 pack_tmp = packed_data(ipack)
44296 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
44297 pack_tmp = ishft(pack_tmp, -20)
44298 idata = idata + 1
44299 data_tmp = ishft(pack_tmp, 10)
44300 ipack = ipack + 1
44301 pack_tmp = packed_data(ipack)
44302 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
44303 pack_tmp = ishft(pack_tmp, -10)
44304 idata = idata + 1
44305 data_tmp = iand(pack_tmp, mask_right(nbits))
44306 full_data(idata) = data_tmp
44307 pack_tmp = ishft(pack_tmp, -nbits)
44308 idata = idata + 1
44309 data_tmp = ishft(pack_tmp, 54)
44310 ipack = ipack + 1
44311 pack_tmp = packed_data(ipack)
44312 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(54)))
44313 pack_tmp = ishft(pack_tmp, -54)
44314 idata = idata + 1
44315 data_tmp = ishft(pack_tmp, 44)
44316 ipack = ipack + 1
44317 pack_tmp = packed_data(ipack)
44318 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
44319 pack_tmp = ishft(pack_tmp, -44)
44320 idata = idata + 1
44321 data_tmp = ishft(pack_tmp, 34)
44322 ipack = ipack + 1
44323 pack_tmp = packed_data(ipack)
44324 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
44325 pack_tmp = ishft(pack_tmp, -34)
44326 idata = idata + 1
44327 data_tmp = ishft(pack_tmp, 24)
44328 ipack = ipack + 1
44329 pack_tmp = packed_data(ipack)
44330 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
44331 pack_tmp = ishft(pack_tmp, -24)
44332 idata = idata + 1
44333 data_tmp = ishft(pack_tmp, 14)
44334 ipack = ipack + 1
44335 pack_tmp = packed_data(ipack)
44336 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
44337 pack_tmp = ishft(pack_tmp, -14)
44338 idata = idata + 1
44339 data_tmp = ishft(pack_tmp, 4)
44340 ipack = ipack + 1
44341 pack_tmp = packed_data(ipack)
44342 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
44343 pack_tmp = ishft(pack_tmp, -4)
44344 idata = idata + 1
44345 data_tmp = iand(pack_tmp, mask_right(nbits))
44346 full_data(idata) = data_tmp
44347 pack_tmp = ishft(pack_tmp, -nbits)
44348 idata = idata + 1
44349 data_tmp = ishft(pack_tmp, 48)
44350 ipack = ipack + 1
44351 pack_tmp = packed_data(ipack)
44352 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
44353 pack_tmp = ishft(pack_tmp, -48)
44354 idata = idata + 1
44355 data_tmp = ishft(pack_tmp, 38)
44356 ipack = ipack + 1
44357 pack_tmp = packed_data(ipack)
44358 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
44359 pack_tmp = ishft(pack_tmp, -38)
44360 idata = idata + 1
44361 data_tmp = ishft(pack_tmp, 28)
44362 ipack = ipack + 1
44363 pack_tmp = packed_data(ipack)
44364 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
44365 pack_tmp = ishft(pack_tmp, -28)
44366 idata = idata + 1
44367 data_tmp = ishft(pack_tmp, 18)
44368 ipack = ipack + 1
44369 pack_tmp = packed_data(ipack)
44370 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
44371 pack_tmp = ishft(pack_tmp, -18)
44372 idata = idata + 1
44373 data_tmp = ishft(pack_tmp, 8)
44374 ipack = ipack + 1
44375 pack_tmp = packed_data(ipack)
44376 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
44377 pack_tmp = ishft(pack_tmp, -8)
44378 idata = idata + 1
44379 data_tmp = iand(pack_tmp, mask_right(nbits))
44380 full_data(idata) = data_tmp
44381 pack_tmp = ishft(pack_tmp, -nbits)
44382 idata = idata + 1
44383 data_tmp = ishft(pack_tmp, 52)
44384 ipack = ipack + 1
44385 pack_tmp = packed_data(ipack)
44386 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
44387 pack_tmp = ishft(pack_tmp, -52)
44388 idata = idata + 1
44389 data_tmp = ishft(pack_tmp, 42)
44390 ipack = ipack + 1
44391 pack_tmp = packed_data(ipack)
44392 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
44393 pack_tmp = ishft(pack_tmp, -42)
44394 idata = idata + 1
44395 data_tmp = ishft(pack_tmp, 32)
44396 ipack = ipack + 1
44397 pack_tmp = packed_data(ipack)
44398 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
44399 pack_tmp = ishft(pack_tmp, -32)
44400 idata = idata + 1
44401 data_tmp = ishft(pack_tmp, 22)
44402 ipack = ipack + 1
44403 pack_tmp = packed_data(ipack)
44404 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
44405 pack_tmp = ishft(pack_tmp, -22)
44406 idata = idata + 1
44407 data_tmp = ishft(pack_tmp, 12)
44408 ipack = ipack + 1
44409 pack_tmp = packed_data(ipack)
44410 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
44411 pack_tmp = ishft(pack_tmp, -12)
44412 idata = idata + 1
44413 data_tmp = ishft(pack_tmp, 2)
44414 ipack = ipack + 1
44415 pack_tmp = packed_data(ipack)
44416 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
44417 pack_tmp = ishft(pack_tmp, -2)
44418 idata = idata + 1
44419 data_tmp = iand(pack_tmp, mask_right(nbits))
44420 full_data(idata) = data_tmp
44421 pack_tmp = ishft(pack_tmp, -nbits)
44422 idata = idata + 1
44423 data_tmp = ishft(pack_tmp, 46)
44424 ipack = ipack + 1
44425 pack_tmp = packed_data(ipack)
44426 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
44427 pack_tmp = ishft(pack_tmp, -46)
44428 idata = idata + 1
44429 data_tmp = ishft(pack_tmp, 36)
44430 ipack = ipack + 1
44431 pack_tmp = packed_data(ipack)
44432 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
44433 pack_tmp = ishft(pack_tmp, -36)
44434 idata = idata + 1
44435 data_tmp = ishft(pack_tmp, 26)
44436 ipack = ipack + 1
44437 pack_tmp = packed_data(ipack)
44438 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
44439 pack_tmp = ishft(pack_tmp, -26)
44440 idata = idata + 1
44441 data_tmp = ishft(pack_tmp, 16)
44442 ipack = ipack + 1
44443 pack_tmp = packed_data(ipack)
44444 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
44445 pack_tmp = ishft(pack_tmp, -16)
44446 idata = idata + 1
44447 data_tmp = ishft(pack_tmp, 6)
44448 ipack = ipack + 1
44449 pack_tmp = packed_data(ipack)
44450 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
44451 pack_tmp = ishft(pack_tmp, -6)
44452 idata = idata + 1
44453 data_tmp = iand(pack_tmp, mask_right(nbits))
44454 full_data(idata) = data_tmp
44455 pack_tmp = ishft(pack_tmp, -nbits)
44456 idata = idata + 1
44457 data_tmp = ishft(pack_tmp, 50)
44458 ipack = ipack + 1
44459 pack_tmp = packed_data(ipack)
44460 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
44461 pack_tmp = ishft(pack_tmp, -50)
44462 idata = idata + 1
44463 data_tmp = ishft(pack_tmp, 40)
44464 ipack = ipack + 1
44465 pack_tmp = packed_data(ipack)
44466 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
44467 pack_tmp = ishft(pack_tmp, -40)
44468 idata = idata + 1
44469 data_tmp = ishft(pack_tmp, 30)
44470 ipack = ipack + 1
44471 pack_tmp = packed_data(ipack)
44472 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
44473 pack_tmp = ishft(pack_tmp, -30)
44474 idata = idata + 1
44475 data_tmp = ishft(pack_tmp, 20)
44476 ipack = ipack + 1
44477 pack_tmp = packed_data(ipack)
44478 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
44479 pack_tmp = ishft(pack_tmp, -20)
44480 idata = idata + 1
44481 data_tmp = ishft(pack_tmp, 10)
44482 ipack = ipack + 1
44483 pack_tmp = packed_data(ipack)
44484 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
44485 pack_tmp = ishft(pack_tmp, -10)
44486 idata = idata + 1
44487 data_tmp = iand(pack_tmp, mask_right(nbits))
44488 full_data(idata) = data_tmp
44489 pack_tmp = ishft(pack_tmp, -nbits)
44490 END DO
44491 IF (ndata_rep < ndata) THEN
44492 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
44493 END IF
44494 END SUBROUTINE bits2ints_54
44495
44496! **************************************************************************************************
44497!> \brief ...
44498!> \param Ndata ...
44499!> \param packed_data ...
44500!> \param full_data ...
44501! **************************************************************************************************
44502 SUBROUTINE ints2bits_55(Ndata, packed_data, full_data)
44503 INTEGER, INTENT(IN) :: Ndata
44504 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
44505 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
44506
44507 INTEGER, PARAMETER :: Nbits = 55
44508
44509 INTEGER :: idata, ipack, kdata, Ndata_rep
44510 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
44511
44512 idata = 0
44513 ipack = 0
44514 ndata_rep = (ndata/64)*64
44515 DO kdata = 1, ndata_rep, 64
44516 pack_tmp = 0
44517 idata = idata + 1
44518 data_tmp = full_data(idata)
44519 data_tmp = ishft(data_tmp, 9)
44520 pack_tmp = ior(pack_tmp, data_tmp)
44521 pack_tmp = ishft(pack_tmp, -9)
44522 idata = idata + 1
44523 data_tmp = full_data(idata)
44524 data_tmp = ishft(data_tmp, 9)
44525 data_tmp = iand(data_tmp, mask_left(9))
44526 pack_tmp = ior(pack_tmp, data_tmp)
44527 ipack = ipack + 1
44528 packed_data(ipack) = pack_tmp
44529 data_tmp = full_data(idata)
44530 pack_tmp = ishft(data_tmp, 18)
44531 pack_tmp = ishft(pack_tmp, -18)
44532 idata = idata + 1
44533 data_tmp = full_data(idata)
44534 data_tmp = ishft(data_tmp, 9)
44535 data_tmp = iand(data_tmp, mask_left(18))
44536 pack_tmp = ior(pack_tmp, data_tmp)
44537 ipack = ipack + 1
44538 packed_data(ipack) = pack_tmp
44539 data_tmp = full_data(idata)
44540 pack_tmp = ishft(data_tmp, 27)
44541 pack_tmp = ishft(pack_tmp, -27)
44542 idata = idata + 1
44543 data_tmp = full_data(idata)
44544 data_tmp = ishft(data_tmp, 9)
44545 data_tmp = iand(data_tmp, mask_left(27))
44546 pack_tmp = ior(pack_tmp, data_tmp)
44547 ipack = ipack + 1
44548 packed_data(ipack) = pack_tmp
44549 data_tmp = full_data(idata)
44550 pack_tmp = ishft(data_tmp, 36)
44551 pack_tmp = ishft(pack_tmp, -36)
44552 idata = idata + 1
44553 data_tmp = full_data(idata)
44554 data_tmp = ishft(data_tmp, 9)
44555 data_tmp = iand(data_tmp, mask_left(36))
44556 pack_tmp = ior(pack_tmp, data_tmp)
44557 ipack = ipack + 1
44558 packed_data(ipack) = pack_tmp
44559 data_tmp = full_data(idata)
44560 pack_tmp = ishft(data_tmp, 45)
44561 pack_tmp = ishft(pack_tmp, -45)
44562 idata = idata + 1
44563 data_tmp = full_data(idata)
44564 data_tmp = ishft(data_tmp, 9)
44565 data_tmp = iand(data_tmp, mask_left(45))
44566 pack_tmp = ior(pack_tmp, data_tmp)
44567 ipack = ipack + 1
44568 packed_data(ipack) = pack_tmp
44569 data_tmp = full_data(idata)
44570 pack_tmp = ishft(data_tmp, 54)
44571 pack_tmp = ishft(pack_tmp, -54)
44572 idata = idata + 1
44573 data_tmp = full_data(idata)
44574 data_tmp = ishft(data_tmp, 9)
44575 data_tmp = iand(data_tmp, mask_left(54))
44576 pack_tmp = ior(pack_tmp, data_tmp)
44577 ipack = ipack + 1
44578 packed_data(ipack) = pack_tmp
44579 data_tmp = full_data(idata)
44580 pack_tmp = ishft(data_tmp, 63)
44581 pack_tmp = ishft(pack_tmp, -55)
44582 idata = idata + 1
44583 data_tmp = full_data(idata)
44584 data_tmp = ishft(data_tmp, 9)
44585 pack_tmp = ior(pack_tmp, data_tmp)
44586 pack_tmp = ishft(pack_tmp, -8)
44587 idata = idata + 1
44588 data_tmp = full_data(idata)
44589 data_tmp = ishft(data_tmp, 9)
44590 data_tmp = iand(data_tmp, mask_left(8))
44591 pack_tmp = ior(pack_tmp, data_tmp)
44592 ipack = ipack + 1
44593 packed_data(ipack) = pack_tmp
44594 data_tmp = full_data(idata)
44595 pack_tmp = ishft(data_tmp, 17)
44596 pack_tmp = ishft(pack_tmp, -17)
44597 idata = idata + 1
44598 data_tmp = full_data(idata)
44599 data_tmp = ishft(data_tmp, 9)
44600 data_tmp = iand(data_tmp, mask_left(17))
44601 pack_tmp = ior(pack_tmp, data_tmp)
44602 ipack = ipack + 1
44603 packed_data(ipack) = pack_tmp
44604 data_tmp = full_data(idata)
44605 pack_tmp = ishft(data_tmp, 26)
44606 pack_tmp = ishft(pack_tmp, -26)
44607 idata = idata + 1
44608 data_tmp = full_data(idata)
44609 data_tmp = ishft(data_tmp, 9)
44610 data_tmp = iand(data_tmp, mask_left(26))
44611 pack_tmp = ior(pack_tmp, data_tmp)
44612 ipack = ipack + 1
44613 packed_data(ipack) = pack_tmp
44614 data_tmp = full_data(idata)
44615 pack_tmp = ishft(data_tmp, 35)
44616 pack_tmp = ishft(pack_tmp, -35)
44617 idata = idata + 1
44618 data_tmp = full_data(idata)
44619 data_tmp = ishft(data_tmp, 9)
44620 data_tmp = iand(data_tmp, mask_left(35))
44621 pack_tmp = ior(pack_tmp, data_tmp)
44622 ipack = ipack + 1
44623 packed_data(ipack) = pack_tmp
44624 data_tmp = full_data(idata)
44625 pack_tmp = ishft(data_tmp, 44)
44626 pack_tmp = ishft(pack_tmp, -44)
44627 idata = idata + 1
44628 data_tmp = full_data(idata)
44629 data_tmp = ishft(data_tmp, 9)
44630 data_tmp = iand(data_tmp, mask_left(44))
44631 pack_tmp = ior(pack_tmp, data_tmp)
44632 ipack = ipack + 1
44633 packed_data(ipack) = pack_tmp
44634 data_tmp = full_data(idata)
44635 pack_tmp = ishft(data_tmp, 53)
44636 pack_tmp = ishft(pack_tmp, -53)
44637 idata = idata + 1
44638 data_tmp = full_data(idata)
44639 data_tmp = ishft(data_tmp, 9)
44640 data_tmp = iand(data_tmp, mask_left(53))
44641 pack_tmp = ior(pack_tmp, data_tmp)
44642 ipack = ipack + 1
44643 packed_data(ipack) = pack_tmp
44644 data_tmp = full_data(idata)
44645 pack_tmp = ishft(data_tmp, 62)
44646 pack_tmp = ishft(pack_tmp, -55)
44647 idata = idata + 1
44648 data_tmp = full_data(idata)
44649 data_tmp = ishft(data_tmp, 9)
44650 pack_tmp = ior(pack_tmp, data_tmp)
44651 pack_tmp = ishft(pack_tmp, -7)
44652 idata = idata + 1
44653 data_tmp = full_data(idata)
44654 data_tmp = ishft(data_tmp, 9)
44655 data_tmp = iand(data_tmp, mask_left(7))
44656 pack_tmp = ior(pack_tmp, data_tmp)
44657 ipack = ipack + 1
44658 packed_data(ipack) = pack_tmp
44659 data_tmp = full_data(idata)
44660 pack_tmp = ishft(data_tmp, 16)
44661 pack_tmp = ishft(pack_tmp, -16)
44662 idata = idata + 1
44663 data_tmp = full_data(idata)
44664 data_tmp = ishft(data_tmp, 9)
44665 data_tmp = iand(data_tmp, mask_left(16))
44666 pack_tmp = ior(pack_tmp, data_tmp)
44667 ipack = ipack + 1
44668 packed_data(ipack) = pack_tmp
44669 data_tmp = full_data(idata)
44670 pack_tmp = ishft(data_tmp, 25)
44671 pack_tmp = ishft(pack_tmp, -25)
44672 idata = idata + 1
44673 data_tmp = full_data(idata)
44674 data_tmp = ishft(data_tmp, 9)
44675 data_tmp = iand(data_tmp, mask_left(25))
44676 pack_tmp = ior(pack_tmp, data_tmp)
44677 ipack = ipack + 1
44678 packed_data(ipack) = pack_tmp
44679 data_tmp = full_data(idata)
44680 pack_tmp = ishft(data_tmp, 34)
44681 pack_tmp = ishft(pack_tmp, -34)
44682 idata = idata + 1
44683 data_tmp = full_data(idata)
44684 data_tmp = ishft(data_tmp, 9)
44685 data_tmp = iand(data_tmp, mask_left(34))
44686 pack_tmp = ior(pack_tmp, data_tmp)
44687 ipack = ipack + 1
44688 packed_data(ipack) = pack_tmp
44689 data_tmp = full_data(idata)
44690 pack_tmp = ishft(data_tmp, 43)
44691 pack_tmp = ishft(pack_tmp, -43)
44692 idata = idata + 1
44693 data_tmp = full_data(idata)
44694 data_tmp = ishft(data_tmp, 9)
44695 data_tmp = iand(data_tmp, mask_left(43))
44696 pack_tmp = ior(pack_tmp, data_tmp)
44697 ipack = ipack + 1
44698 packed_data(ipack) = pack_tmp
44699 data_tmp = full_data(idata)
44700 pack_tmp = ishft(data_tmp, 52)
44701 pack_tmp = ishft(pack_tmp, -52)
44702 idata = idata + 1
44703 data_tmp = full_data(idata)
44704 data_tmp = ishft(data_tmp, 9)
44705 data_tmp = iand(data_tmp, mask_left(52))
44706 pack_tmp = ior(pack_tmp, data_tmp)
44707 ipack = ipack + 1
44708 packed_data(ipack) = pack_tmp
44709 data_tmp = full_data(idata)
44710 pack_tmp = ishft(data_tmp, 61)
44711 pack_tmp = ishft(pack_tmp, -55)
44712 idata = idata + 1
44713 data_tmp = full_data(idata)
44714 data_tmp = ishft(data_tmp, 9)
44715 pack_tmp = ior(pack_tmp, data_tmp)
44716 pack_tmp = ishft(pack_tmp, -6)
44717 idata = idata + 1
44718 data_tmp = full_data(idata)
44719 data_tmp = ishft(data_tmp, 9)
44720 data_tmp = iand(data_tmp, mask_left(6))
44721 pack_tmp = ior(pack_tmp, data_tmp)
44722 ipack = ipack + 1
44723 packed_data(ipack) = pack_tmp
44724 data_tmp = full_data(idata)
44725 pack_tmp = ishft(data_tmp, 15)
44726 pack_tmp = ishft(pack_tmp, -15)
44727 idata = idata + 1
44728 data_tmp = full_data(idata)
44729 data_tmp = ishft(data_tmp, 9)
44730 data_tmp = iand(data_tmp, mask_left(15))
44731 pack_tmp = ior(pack_tmp, data_tmp)
44732 ipack = ipack + 1
44733 packed_data(ipack) = pack_tmp
44734 data_tmp = full_data(idata)
44735 pack_tmp = ishft(data_tmp, 24)
44736 pack_tmp = ishft(pack_tmp, -24)
44737 idata = idata + 1
44738 data_tmp = full_data(idata)
44739 data_tmp = ishft(data_tmp, 9)
44740 data_tmp = iand(data_tmp, mask_left(24))
44741 pack_tmp = ior(pack_tmp, data_tmp)
44742 ipack = ipack + 1
44743 packed_data(ipack) = pack_tmp
44744 data_tmp = full_data(idata)
44745 pack_tmp = ishft(data_tmp, 33)
44746 pack_tmp = ishft(pack_tmp, -33)
44747 idata = idata + 1
44748 data_tmp = full_data(idata)
44749 data_tmp = ishft(data_tmp, 9)
44750 data_tmp = iand(data_tmp, mask_left(33))
44751 pack_tmp = ior(pack_tmp, data_tmp)
44752 ipack = ipack + 1
44753 packed_data(ipack) = pack_tmp
44754 data_tmp = full_data(idata)
44755 pack_tmp = ishft(data_tmp, 42)
44756 pack_tmp = ishft(pack_tmp, -42)
44757 idata = idata + 1
44758 data_tmp = full_data(idata)
44759 data_tmp = ishft(data_tmp, 9)
44760 data_tmp = iand(data_tmp, mask_left(42))
44761 pack_tmp = ior(pack_tmp, data_tmp)
44762 ipack = ipack + 1
44763 packed_data(ipack) = pack_tmp
44764 data_tmp = full_data(idata)
44765 pack_tmp = ishft(data_tmp, 51)
44766 pack_tmp = ishft(pack_tmp, -51)
44767 idata = idata + 1
44768 data_tmp = full_data(idata)
44769 data_tmp = ishft(data_tmp, 9)
44770 data_tmp = iand(data_tmp, mask_left(51))
44771 pack_tmp = ior(pack_tmp, data_tmp)
44772 ipack = ipack + 1
44773 packed_data(ipack) = pack_tmp
44774 data_tmp = full_data(idata)
44775 pack_tmp = ishft(data_tmp, 60)
44776 pack_tmp = ishft(pack_tmp, -55)
44777 idata = idata + 1
44778 data_tmp = full_data(idata)
44779 data_tmp = ishft(data_tmp, 9)
44780 pack_tmp = ior(pack_tmp, data_tmp)
44781 pack_tmp = ishft(pack_tmp, -5)
44782 idata = idata + 1
44783 data_tmp = full_data(idata)
44784 data_tmp = ishft(data_tmp, 9)
44785 data_tmp = iand(data_tmp, mask_left(5))
44786 pack_tmp = ior(pack_tmp, data_tmp)
44787 ipack = ipack + 1
44788 packed_data(ipack) = pack_tmp
44789 data_tmp = full_data(idata)
44790 pack_tmp = ishft(data_tmp, 14)
44791 pack_tmp = ishft(pack_tmp, -14)
44792 idata = idata + 1
44793 data_tmp = full_data(idata)
44794 data_tmp = ishft(data_tmp, 9)
44795 data_tmp = iand(data_tmp, mask_left(14))
44796 pack_tmp = ior(pack_tmp, data_tmp)
44797 ipack = ipack + 1
44798 packed_data(ipack) = pack_tmp
44799 data_tmp = full_data(idata)
44800 pack_tmp = ishft(data_tmp, 23)
44801 pack_tmp = ishft(pack_tmp, -23)
44802 idata = idata + 1
44803 data_tmp = full_data(idata)
44804 data_tmp = ishft(data_tmp, 9)
44805 data_tmp = iand(data_tmp, mask_left(23))
44806 pack_tmp = ior(pack_tmp, data_tmp)
44807 ipack = ipack + 1
44808 packed_data(ipack) = pack_tmp
44809 data_tmp = full_data(idata)
44810 pack_tmp = ishft(data_tmp, 32)
44811 pack_tmp = ishft(pack_tmp, -32)
44812 idata = idata + 1
44813 data_tmp = full_data(idata)
44814 data_tmp = ishft(data_tmp, 9)
44815 data_tmp = iand(data_tmp, mask_left(32))
44816 pack_tmp = ior(pack_tmp, data_tmp)
44817 ipack = ipack + 1
44818 packed_data(ipack) = pack_tmp
44819 data_tmp = full_data(idata)
44820 pack_tmp = ishft(data_tmp, 41)
44821 pack_tmp = ishft(pack_tmp, -41)
44822 idata = idata + 1
44823 data_tmp = full_data(idata)
44824 data_tmp = ishft(data_tmp, 9)
44825 data_tmp = iand(data_tmp, mask_left(41))
44826 pack_tmp = ior(pack_tmp, data_tmp)
44827 ipack = ipack + 1
44828 packed_data(ipack) = pack_tmp
44829 data_tmp = full_data(idata)
44830 pack_tmp = ishft(data_tmp, 50)
44831 pack_tmp = ishft(pack_tmp, -50)
44832 idata = idata + 1
44833 data_tmp = full_data(idata)
44834 data_tmp = ishft(data_tmp, 9)
44835 data_tmp = iand(data_tmp, mask_left(50))
44836 pack_tmp = ior(pack_tmp, data_tmp)
44837 ipack = ipack + 1
44838 packed_data(ipack) = pack_tmp
44839 data_tmp = full_data(idata)
44840 pack_tmp = ishft(data_tmp, 59)
44841 pack_tmp = ishft(pack_tmp, -55)
44842 idata = idata + 1
44843 data_tmp = full_data(idata)
44844 data_tmp = ishft(data_tmp, 9)
44845 pack_tmp = ior(pack_tmp, data_tmp)
44846 pack_tmp = ishft(pack_tmp, -4)
44847 idata = idata + 1
44848 data_tmp = full_data(idata)
44849 data_tmp = ishft(data_tmp, 9)
44850 data_tmp = iand(data_tmp, mask_left(4))
44851 pack_tmp = ior(pack_tmp, data_tmp)
44852 ipack = ipack + 1
44853 packed_data(ipack) = pack_tmp
44854 data_tmp = full_data(idata)
44855 pack_tmp = ishft(data_tmp, 13)
44856 pack_tmp = ishft(pack_tmp, -13)
44857 idata = idata + 1
44858 data_tmp = full_data(idata)
44859 data_tmp = ishft(data_tmp, 9)
44860 data_tmp = iand(data_tmp, mask_left(13))
44861 pack_tmp = ior(pack_tmp, data_tmp)
44862 ipack = ipack + 1
44863 packed_data(ipack) = pack_tmp
44864 data_tmp = full_data(idata)
44865 pack_tmp = ishft(data_tmp, 22)
44866 pack_tmp = ishft(pack_tmp, -22)
44867 idata = idata + 1
44868 data_tmp = full_data(idata)
44869 data_tmp = ishft(data_tmp, 9)
44870 data_tmp = iand(data_tmp, mask_left(22))
44871 pack_tmp = ior(pack_tmp, data_tmp)
44872 ipack = ipack + 1
44873 packed_data(ipack) = pack_tmp
44874 data_tmp = full_data(idata)
44875 pack_tmp = ishft(data_tmp, 31)
44876 pack_tmp = ishft(pack_tmp, -31)
44877 idata = idata + 1
44878 data_tmp = full_data(idata)
44879 data_tmp = ishft(data_tmp, 9)
44880 data_tmp = iand(data_tmp, mask_left(31))
44881 pack_tmp = ior(pack_tmp, data_tmp)
44882 ipack = ipack + 1
44883 packed_data(ipack) = pack_tmp
44884 data_tmp = full_data(idata)
44885 pack_tmp = ishft(data_tmp, 40)
44886 pack_tmp = ishft(pack_tmp, -40)
44887 idata = idata + 1
44888 data_tmp = full_data(idata)
44889 data_tmp = ishft(data_tmp, 9)
44890 data_tmp = iand(data_tmp, mask_left(40))
44891 pack_tmp = ior(pack_tmp, data_tmp)
44892 ipack = ipack + 1
44893 packed_data(ipack) = pack_tmp
44894 data_tmp = full_data(idata)
44895 pack_tmp = ishft(data_tmp, 49)
44896 pack_tmp = ishft(pack_tmp, -49)
44897 idata = idata + 1
44898 data_tmp = full_data(idata)
44899 data_tmp = ishft(data_tmp, 9)
44900 data_tmp = iand(data_tmp, mask_left(49))
44901 pack_tmp = ior(pack_tmp, data_tmp)
44902 ipack = ipack + 1
44903 packed_data(ipack) = pack_tmp
44904 data_tmp = full_data(idata)
44905 pack_tmp = ishft(data_tmp, 58)
44906 pack_tmp = ishft(pack_tmp, -55)
44907 idata = idata + 1
44908 data_tmp = full_data(idata)
44909 data_tmp = ishft(data_tmp, 9)
44910 pack_tmp = ior(pack_tmp, data_tmp)
44911 pack_tmp = ishft(pack_tmp, -3)
44912 idata = idata + 1
44913 data_tmp = full_data(idata)
44914 data_tmp = ishft(data_tmp, 9)
44915 data_tmp = iand(data_tmp, mask_left(3))
44916 pack_tmp = ior(pack_tmp, data_tmp)
44917 ipack = ipack + 1
44918 packed_data(ipack) = pack_tmp
44919 data_tmp = full_data(idata)
44920 pack_tmp = ishft(data_tmp, 12)
44921 pack_tmp = ishft(pack_tmp, -12)
44922 idata = idata + 1
44923 data_tmp = full_data(idata)
44924 data_tmp = ishft(data_tmp, 9)
44925 data_tmp = iand(data_tmp, mask_left(12))
44926 pack_tmp = ior(pack_tmp, data_tmp)
44927 ipack = ipack + 1
44928 packed_data(ipack) = pack_tmp
44929 data_tmp = full_data(idata)
44930 pack_tmp = ishft(data_tmp, 21)
44931 pack_tmp = ishft(pack_tmp, -21)
44932 idata = idata + 1
44933 data_tmp = full_data(idata)
44934 data_tmp = ishft(data_tmp, 9)
44935 data_tmp = iand(data_tmp, mask_left(21))
44936 pack_tmp = ior(pack_tmp, data_tmp)
44937 ipack = ipack + 1
44938 packed_data(ipack) = pack_tmp
44939 data_tmp = full_data(idata)
44940 pack_tmp = ishft(data_tmp, 30)
44941 pack_tmp = ishft(pack_tmp, -30)
44942 idata = idata + 1
44943 data_tmp = full_data(idata)
44944 data_tmp = ishft(data_tmp, 9)
44945 data_tmp = iand(data_tmp, mask_left(30))
44946 pack_tmp = ior(pack_tmp, data_tmp)
44947 ipack = ipack + 1
44948 packed_data(ipack) = pack_tmp
44949 data_tmp = full_data(idata)
44950 pack_tmp = ishft(data_tmp, 39)
44951 pack_tmp = ishft(pack_tmp, -39)
44952 idata = idata + 1
44953 data_tmp = full_data(idata)
44954 data_tmp = ishft(data_tmp, 9)
44955 data_tmp = iand(data_tmp, mask_left(39))
44956 pack_tmp = ior(pack_tmp, data_tmp)
44957 ipack = ipack + 1
44958 packed_data(ipack) = pack_tmp
44959 data_tmp = full_data(idata)
44960 pack_tmp = ishft(data_tmp, 48)
44961 pack_tmp = ishft(pack_tmp, -48)
44962 idata = idata + 1
44963 data_tmp = full_data(idata)
44964 data_tmp = ishft(data_tmp, 9)
44965 data_tmp = iand(data_tmp, mask_left(48))
44966 pack_tmp = ior(pack_tmp, data_tmp)
44967 ipack = ipack + 1
44968 packed_data(ipack) = pack_tmp
44969 data_tmp = full_data(idata)
44970 pack_tmp = ishft(data_tmp, 57)
44971 pack_tmp = ishft(pack_tmp, -55)
44972 idata = idata + 1
44973 data_tmp = full_data(idata)
44974 data_tmp = ishft(data_tmp, 9)
44975 pack_tmp = ior(pack_tmp, data_tmp)
44976 pack_tmp = ishft(pack_tmp, -2)
44977 idata = idata + 1
44978 data_tmp = full_data(idata)
44979 data_tmp = ishft(data_tmp, 9)
44980 data_tmp = iand(data_tmp, mask_left(2))
44981 pack_tmp = ior(pack_tmp, data_tmp)
44982 ipack = ipack + 1
44983 packed_data(ipack) = pack_tmp
44984 data_tmp = full_data(idata)
44985 pack_tmp = ishft(data_tmp, 11)
44986 pack_tmp = ishft(pack_tmp, -11)
44987 idata = idata + 1
44988 data_tmp = full_data(idata)
44989 data_tmp = ishft(data_tmp, 9)
44990 data_tmp = iand(data_tmp, mask_left(11))
44991 pack_tmp = ior(pack_tmp, data_tmp)
44992 ipack = ipack + 1
44993 packed_data(ipack) = pack_tmp
44994 data_tmp = full_data(idata)
44995 pack_tmp = ishft(data_tmp, 20)
44996 pack_tmp = ishft(pack_tmp, -20)
44997 idata = idata + 1
44998 data_tmp = full_data(idata)
44999 data_tmp = ishft(data_tmp, 9)
45000 data_tmp = iand(data_tmp, mask_left(20))
45001 pack_tmp = ior(pack_tmp, data_tmp)
45002 ipack = ipack + 1
45003 packed_data(ipack) = pack_tmp
45004 data_tmp = full_data(idata)
45005 pack_tmp = ishft(data_tmp, 29)
45006 pack_tmp = ishft(pack_tmp, -29)
45007 idata = idata + 1
45008 data_tmp = full_data(idata)
45009 data_tmp = ishft(data_tmp, 9)
45010 data_tmp = iand(data_tmp, mask_left(29))
45011 pack_tmp = ior(pack_tmp, data_tmp)
45012 ipack = ipack + 1
45013 packed_data(ipack) = pack_tmp
45014 data_tmp = full_data(idata)
45015 pack_tmp = ishft(data_tmp, 38)
45016 pack_tmp = ishft(pack_tmp, -38)
45017 idata = idata + 1
45018 data_tmp = full_data(idata)
45019 data_tmp = ishft(data_tmp, 9)
45020 data_tmp = iand(data_tmp, mask_left(38))
45021 pack_tmp = ior(pack_tmp, data_tmp)
45022 ipack = ipack + 1
45023 packed_data(ipack) = pack_tmp
45024 data_tmp = full_data(idata)
45025 pack_tmp = ishft(data_tmp, 47)
45026 pack_tmp = ishft(pack_tmp, -47)
45027 idata = idata + 1
45028 data_tmp = full_data(idata)
45029 data_tmp = ishft(data_tmp, 9)
45030 data_tmp = iand(data_tmp, mask_left(47))
45031 pack_tmp = ior(pack_tmp, data_tmp)
45032 ipack = ipack + 1
45033 packed_data(ipack) = pack_tmp
45034 data_tmp = full_data(idata)
45035 pack_tmp = ishft(data_tmp, 56)
45036 pack_tmp = ishft(pack_tmp, -55)
45037 idata = idata + 1
45038 data_tmp = full_data(idata)
45039 data_tmp = ishft(data_tmp, 9)
45040 pack_tmp = ior(pack_tmp, data_tmp)
45041 pack_tmp = ishft(pack_tmp, -1)
45042 idata = idata + 1
45043 data_tmp = full_data(idata)
45044 data_tmp = ishft(data_tmp, 9)
45045 data_tmp = iand(data_tmp, mask_left(1))
45046 pack_tmp = ior(pack_tmp, data_tmp)
45047 ipack = ipack + 1
45048 packed_data(ipack) = pack_tmp
45049 data_tmp = full_data(idata)
45050 pack_tmp = ishft(data_tmp, 10)
45051 pack_tmp = ishft(pack_tmp, -10)
45052 idata = idata + 1
45053 data_tmp = full_data(idata)
45054 data_tmp = ishft(data_tmp, 9)
45055 data_tmp = iand(data_tmp, mask_left(10))
45056 pack_tmp = ior(pack_tmp, data_tmp)
45057 ipack = ipack + 1
45058 packed_data(ipack) = pack_tmp
45059 data_tmp = full_data(idata)
45060 pack_tmp = ishft(data_tmp, 19)
45061 pack_tmp = ishft(pack_tmp, -19)
45062 idata = idata + 1
45063 data_tmp = full_data(idata)
45064 data_tmp = ishft(data_tmp, 9)
45065 data_tmp = iand(data_tmp, mask_left(19))
45066 pack_tmp = ior(pack_tmp, data_tmp)
45067 ipack = ipack + 1
45068 packed_data(ipack) = pack_tmp
45069 data_tmp = full_data(idata)
45070 pack_tmp = ishft(data_tmp, 28)
45071 pack_tmp = ishft(pack_tmp, -28)
45072 idata = idata + 1
45073 data_tmp = full_data(idata)
45074 data_tmp = ishft(data_tmp, 9)
45075 data_tmp = iand(data_tmp, mask_left(28))
45076 pack_tmp = ior(pack_tmp, data_tmp)
45077 ipack = ipack + 1
45078 packed_data(ipack) = pack_tmp
45079 data_tmp = full_data(idata)
45080 pack_tmp = ishft(data_tmp, 37)
45081 pack_tmp = ishft(pack_tmp, -37)
45082 idata = idata + 1
45083 data_tmp = full_data(idata)
45084 data_tmp = ishft(data_tmp, 9)
45085 data_tmp = iand(data_tmp, mask_left(37))
45086 pack_tmp = ior(pack_tmp, data_tmp)
45087 ipack = ipack + 1
45088 packed_data(ipack) = pack_tmp
45089 data_tmp = full_data(idata)
45090 pack_tmp = ishft(data_tmp, 46)
45091 pack_tmp = ishft(pack_tmp, -46)
45092 idata = idata + 1
45093 data_tmp = full_data(idata)
45094 data_tmp = ishft(data_tmp, 9)
45095 data_tmp = iand(data_tmp, mask_left(46))
45096 pack_tmp = ior(pack_tmp, data_tmp)
45097 ipack = ipack + 1
45098 packed_data(ipack) = pack_tmp
45099 data_tmp = full_data(idata)
45100 pack_tmp = ishft(data_tmp, 55)
45101 pack_tmp = ishft(pack_tmp, -55)
45102 idata = idata + 1
45103 data_tmp = full_data(idata)
45104 data_tmp = ishft(data_tmp, 9)
45105 pack_tmp = ior(pack_tmp, data_tmp)
45106 pack_tmp = ishft(pack_tmp, 0)
45107 pack_tmp = ishft(pack_tmp, 0)
45108 ipack = ipack + 1
45109 packed_data(ipack) = pack_tmp
45110 END DO
45111 IF (ndata_rep < ndata) THEN
45112 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
45113 END IF
45114 END SUBROUTINE ints2bits_55
45115
45116! **************************************************************************************************
45117!> \brief ...
45118!> \param Ndata ...
45119!> \param packed_data ...
45120!> \param full_data ...
45121! **************************************************************************************************
45122 SUBROUTINE bits2ints_55(Ndata, packed_data, full_data)
45123 INTEGER, INTENT(IN) :: Ndata
45124 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
45125 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
45126
45127 INTEGER, PARAMETER :: Nbits = 55
45128
45129 INTEGER :: idata, ipack, kdata, Ndata_rep
45130 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
45131
45132 ipack = 0
45133 idata = 0
45134 pack_tmp = 0
45135 ndata_rep = (ndata/64)*64
45136 DO kdata = 1, ndata_rep, 64
45137 idata = idata + 1
45138 data_tmp = ishft(pack_tmp, 55)
45139 ipack = ipack + 1
45140 pack_tmp = packed_data(ipack)
45141 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(55)))
45142 pack_tmp = ishft(pack_tmp, -55)
45143 idata = idata + 1
45144 data_tmp = ishft(pack_tmp, 46)
45145 ipack = ipack + 1
45146 pack_tmp = packed_data(ipack)
45147 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
45148 pack_tmp = ishft(pack_tmp, -46)
45149 idata = idata + 1
45150 data_tmp = ishft(pack_tmp, 37)
45151 ipack = ipack + 1
45152 pack_tmp = packed_data(ipack)
45153 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
45154 pack_tmp = ishft(pack_tmp, -37)
45155 idata = idata + 1
45156 data_tmp = ishft(pack_tmp, 28)
45157 ipack = ipack + 1
45158 pack_tmp = packed_data(ipack)
45159 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
45160 pack_tmp = ishft(pack_tmp, -28)
45161 idata = idata + 1
45162 data_tmp = ishft(pack_tmp, 19)
45163 ipack = ipack + 1
45164 pack_tmp = packed_data(ipack)
45165 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
45166 pack_tmp = ishft(pack_tmp, -19)
45167 idata = idata + 1
45168 data_tmp = ishft(pack_tmp, 10)
45169 ipack = ipack + 1
45170 pack_tmp = packed_data(ipack)
45171 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
45172 pack_tmp = ishft(pack_tmp, -10)
45173 idata = idata + 1
45174 data_tmp = ishft(pack_tmp, 1)
45175 ipack = ipack + 1
45176 pack_tmp = packed_data(ipack)
45177 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
45178 pack_tmp = ishft(pack_tmp, -1)
45179 idata = idata + 1
45180 data_tmp = iand(pack_tmp, mask_right(nbits))
45181 full_data(idata) = data_tmp
45182 pack_tmp = ishft(pack_tmp, -nbits)
45183 idata = idata + 1
45184 data_tmp = ishft(pack_tmp, 47)
45185 ipack = ipack + 1
45186 pack_tmp = packed_data(ipack)
45187 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(47)))
45188 pack_tmp = ishft(pack_tmp, -47)
45189 idata = idata + 1
45190 data_tmp = ishft(pack_tmp, 38)
45191 ipack = ipack + 1
45192 pack_tmp = packed_data(ipack)
45193 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
45194 pack_tmp = ishft(pack_tmp, -38)
45195 idata = idata + 1
45196 data_tmp = ishft(pack_tmp, 29)
45197 ipack = ipack + 1
45198 pack_tmp = packed_data(ipack)
45199 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
45200 pack_tmp = ishft(pack_tmp, -29)
45201 idata = idata + 1
45202 data_tmp = ishft(pack_tmp, 20)
45203 ipack = ipack + 1
45204 pack_tmp = packed_data(ipack)
45205 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
45206 pack_tmp = ishft(pack_tmp, -20)
45207 idata = idata + 1
45208 data_tmp = ishft(pack_tmp, 11)
45209 ipack = ipack + 1
45210 pack_tmp = packed_data(ipack)
45211 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
45212 pack_tmp = ishft(pack_tmp, -11)
45213 idata = idata + 1
45214 data_tmp = ishft(pack_tmp, 2)
45215 ipack = ipack + 1
45216 pack_tmp = packed_data(ipack)
45217 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
45218 pack_tmp = ishft(pack_tmp, -2)
45219 idata = idata + 1
45220 data_tmp = iand(pack_tmp, mask_right(nbits))
45221 full_data(idata) = data_tmp
45222 pack_tmp = ishft(pack_tmp, -nbits)
45223 idata = idata + 1
45224 data_tmp = ishft(pack_tmp, 48)
45225 ipack = ipack + 1
45226 pack_tmp = packed_data(ipack)
45227 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
45228 pack_tmp = ishft(pack_tmp, -48)
45229 idata = idata + 1
45230 data_tmp = ishft(pack_tmp, 39)
45231 ipack = ipack + 1
45232 pack_tmp = packed_data(ipack)
45233 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
45234 pack_tmp = ishft(pack_tmp, -39)
45235 idata = idata + 1
45236 data_tmp = ishft(pack_tmp, 30)
45237 ipack = ipack + 1
45238 pack_tmp = packed_data(ipack)
45239 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
45240 pack_tmp = ishft(pack_tmp, -30)
45241 idata = idata + 1
45242 data_tmp = ishft(pack_tmp, 21)
45243 ipack = ipack + 1
45244 pack_tmp = packed_data(ipack)
45245 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
45246 pack_tmp = ishft(pack_tmp, -21)
45247 idata = idata + 1
45248 data_tmp = ishft(pack_tmp, 12)
45249 ipack = ipack + 1
45250 pack_tmp = packed_data(ipack)
45251 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
45252 pack_tmp = ishft(pack_tmp, -12)
45253 idata = idata + 1
45254 data_tmp = ishft(pack_tmp, 3)
45255 ipack = ipack + 1
45256 pack_tmp = packed_data(ipack)
45257 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
45258 pack_tmp = ishft(pack_tmp, -3)
45259 idata = idata + 1
45260 data_tmp = iand(pack_tmp, mask_right(nbits))
45261 full_data(idata) = data_tmp
45262 pack_tmp = ishft(pack_tmp, -nbits)
45263 idata = idata + 1
45264 data_tmp = ishft(pack_tmp, 49)
45265 ipack = ipack + 1
45266 pack_tmp = packed_data(ipack)
45267 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(49)))
45268 pack_tmp = ishft(pack_tmp, -49)
45269 idata = idata + 1
45270 data_tmp = ishft(pack_tmp, 40)
45271 ipack = ipack + 1
45272 pack_tmp = packed_data(ipack)
45273 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
45274 pack_tmp = ishft(pack_tmp, -40)
45275 idata = idata + 1
45276 data_tmp = ishft(pack_tmp, 31)
45277 ipack = ipack + 1
45278 pack_tmp = packed_data(ipack)
45279 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
45280 pack_tmp = ishft(pack_tmp, -31)
45281 idata = idata + 1
45282 data_tmp = ishft(pack_tmp, 22)
45283 ipack = ipack + 1
45284 pack_tmp = packed_data(ipack)
45285 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
45286 pack_tmp = ishft(pack_tmp, -22)
45287 idata = idata + 1
45288 data_tmp = ishft(pack_tmp, 13)
45289 ipack = ipack + 1
45290 pack_tmp = packed_data(ipack)
45291 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
45292 pack_tmp = ishft(pack_tmp, -13)
45293 idata = idata + 1
45294 data_tmp = ishft(pack_tmp, 4)
45295 ipack = ipack + 1
45296 pack_tmp = packed_data(ipack)
45297 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
45298 pack_tmp = ishft(pack_tmp, -4)
45299 idata = idata + 1
45300 data_tmp = iand(pack_tmp, mask_right(nbits))
45301 full_data(idata) = data_tmp
45302 pack_tmp = ishft(pack_tmp, -nbits)
45303 idata = idata + 1
45304 data_tmp = ishft(pack_tmp, 50)
45305 ipack = ipack + 1
45306 pack_tmp = packed_data(ipack)
45307 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
45308 pack_tmp = ishft(pack_tmp, -50)
45309 idata = idata + 1
45310 data_tmp = ishft(pack_tmp, 41)
45311 ipack = ipack + 1
45312 pack_tmp = packed_data(ipack)
45313 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(41)))
45314 pack_tmp = ishft(pack_tmp, -41)
45315 idata = idata + 1
45316 data_tmp = ishft(pack_tmp, 32)
45317 ipack = ipack + 1
45318 pack_tmp = packed_data(ipack)
45319 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
45320 pack_tmp = ishft(pack_tmp, -32)
45321 idata = idata + 1
45322 data_tmp = ishft(pack_tmp, 23)
45323 ipack = ipack + 1
45324 pack_tmp = packed_data(ipack)
45325 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
45326 pack_tmp = ishft(pack_tmp, -23)
45327 idata = idata + 1
45328 data_tmp = ishft(pack_tmp, 14)
45329 ipack = ipack + 1
45330 pack_tmp = packed_data(ipack)
45331 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
45332 pack_tmp = ishft(pack_tmp, -14)
45333 idata = idata + 1
45334 data_tmp = ishft(pack_tmp, 5)
45335 ipack = ipack + 1
45336 pack_tmp = packed_data(ipack)
45337 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
45338 pack_tmp = ishft(pack_tmp, -5)
45339 idata = idata + 1
45340 data_tmp = iand(pack_tmp, mask_right(nbits))
45341 full_data(idata) = data_tmp
45342 pack_tmp = ishft(pack_tmp, -nbits)
45343 idata = idata + 1
45344 data_tmp = ishft(pack_tmp, 51)
45345 ipack = ipack + 1
45346 pack_tmp = packed_data(ipack)
45347 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(51)))
45348 pack_tmp = ishft(pack_tmp, -51)
45349 idata = idata + 1
45350 data_tmp = ishft(pack_tmp, 42)
45351 ipack = ipack + 1
45352 pack_tmp = packed_data(ipack)
45353 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
45354 pack_tmp = ishft(pack_tmp, -42)
45355 idata = idata + 1
45356 data_tmp = ishft(pack_tmp, 33)
45357 ipack = ipack + 1
45358 pack_tmp = packed_data(ipack)
45359 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
45360 pack_tmp = ishft(pack_tmp, -33)
45361 idata = idata + 1
45362 data_tmp = ishft(pack_tmp, 24)
45363 ipack = ipack + 1
45364 pack_tmp = packed_data(ipack)
45365 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
45366 pack_tmp = ishft(pack_tmp, -24)
45367 idata = idata + 1
45368 data_tmp = ishft(pack_tmp, 15)
45369 ipack = ipack + 1
45370 pack_tmp = packed_data(ipack)
45371 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
45372 pack_tmp = ishft(pack_tmp, -15)
45373 idata = idata + 1
45374 data_tmp = ishft(pack_tmp, 6)
45375 ipack = ipack + 1
45376 pack_tmp = packed_data(ipack)
45377 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
45378 pack_tmp = ishft(pack_tmp, -6)
45379 idata = idata + 1
45380 data_tmp = iand(pack_tmp, mask_right(nbits))
45381 full_data(idata) = data_tmp
45382 pack_tmp = ishft(pack_tmp, -nbits)
45383 idata = idata + 1
45384 data_tmp = ishft(pack_tmp, 52)
45385 ipack = ipack + 1
45386 pack_tmp = packed_data(ipack)
45387 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
45388 pack_tmp = ishft(pack_tmp, -52)
45389 idata = idata + 1
45390 data_tmp = ishft(pack_tmp, 43)
45391 ipack = ipack + 1
45392 pack_tmp = packed_data(ipack)
45393 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(43)))
45394 pack_tmp = ishft(pack_tmp, -43)
45395 idata = idata + 1
45396 data_tmp = ishft(pack_tmp, 34)
45397 ipack = ipack + 1
45398 pack_tmp = packed_data(ipack)
45399 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
45400 pack_tmp = ishft(pack_tmp, -34)
45401 idata = idata + 1
45402 data_tmp = ishft(pack_tmp, 25)
45403 ipack = ipack + 1
45404 pack_tmp = packed_data(ipack)
45405 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
45406 pack_tmp = ishft(pack_tmp, -25)
45407 idata = idata + 1
45408 data_tmp = ishft(pack_tmp, 16)
45409 ipack = ipack + 1
45410 pack_tmp = packed_data(ipack)
45411 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
45412 pack_tmp = ishft(pack_tmp, -16)
45413 idata = idata + 1
45414 data_tmp = ishft(pack_tmp, 7)
45415 ipack = ipack + 1
45416 pack_tmp = packed_data(ipack)
45417 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
45418 pack_tmp = ishft(pack_tmp, -7)
45419 idata = idata + 1
45420 data_tmp = iand(pack_tmp, mask_right(nbits))
45421 full_data(idata) = data_tmp
45422 pack_tmp = ishft(pack_tmp, -nbits)
45423 idata = idata + 1
45424 data_tmp = ishft(pack_tmp, 53)
45425 ipack = ipack + 1
45426 pack_tmp = packed_data(ipack)
45427 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(53)))
45428 pack_tmp = ishft(pack_tmp, -53)
45429 idata = idata + 1
45430 data_tmp = ishft(pack_tmp, 44)
45431 ipack = ipack + 1
45432 pack_tmp = packed_data(ipack)
45433 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
45434 pack_tmp = ishft(pack_tmp, -44)
45435 idata = idata + 1
45436 data_tmp = ishft(pack_tmp, 35)
45437 ipack = ipack + 1
45438 pack_tmp = packed_data(ipack)
45439 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
45440 pack_tmp = ishft(pack_tmp, -35)
45441 idata = idata + 1
45442 data_tmp = ishft(pack_tmp, 26)
45443 ipack = ipack + 1
45444 pack_tmp = packed_data(ipack)
45445 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
45446 pack_tmp = ishft(pack_tmp, -26)
45447 idata = idata + 1
45448 data_tmp = ishft(pack_tmp, 17)
45449 ipack = ipack + 1
45450 pack_tmp = packed_data(ipack)
45451 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
45452 pack_tmp = ishft(pack_tmp, -17)
45453 idata = idata + 1
45454 data_tmp = ishft(pack_tmp, 8)
45455 ipack = ipack + 1
45456 pack_tmp = packed_data(ipack)
45457 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
45458 pack_tmp = ishft(pack_tmp, -8)
45459 idata = idata + 1
45460 data_tmp = iand(pack_tmp, mask_right(nbits))
45461 full_data(idata) = data_tmp
45462 pack_tmp = ishft(pack_tmp, -nbits)
45463 idata = idata + 1
45464 data_tmp = ishft(pack_tmp, 54)
45465 ipack = ipack + 1
45466 pack_tmp = packed_data(ipack)
45467 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(54)))
45468 pack_tmp = ishft(pack_tmp, -54)
45469 idata = idata + 1
45470 data_tmp = ishft(pack_tmp, 45)
45471 ipack = ipack + 1
45472 pack_tmp = packed_data(ipack)
45473 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(45)))
45474 pack_tmp = ishft(pack_tmp, -45)
45475 idata = idata + 1
45476 data_tmp = ishft(pack_tmp, 36)
45477 ipack = ipack + 1
45478 pack_tmp = packed_data(ipack)
45479 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
45480 pack_tmp = ishft(pack_tmp, -36)
45481 idata = idata + 1
45482 data_tmp = ishft(pack_tmp, 27)
45483 ipack = ipack + 1
45484 pack_tmp = packed_data(ipack)
45485 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
45486 pack_tmp = ishft(pack_tmp, -27)
45487 idata = idata + 1
45488 data_tmp = ishft(pack_tmp, 18)
45489 ipack = ipack + 1
45490 pack_tmp = packed_data(ipack)
45491 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
45492 pack_tmp = ishft(pack_tmp, -18)
45493 idata = idata + 1
45494 data_tmp = ishft(pack_tmp, 9)
45495 ipack = ipack + 1
45496 pack_tmp = packed_data(ipack)
45497 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
45498 pack_tmp = ishft(pack_tmp, -9)
45499 idata = idata + 1
45500 data_tmp = iand(pack_tmp, mask_right(nbits))
45501 full_data(idata) = data_tmp
45502 pack_tmp = ishft(pack_tmp, -nbits)
45503 END DO
45504 IF (ndata_rep < ndata) THEN
45505 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
45506 END IF
45507 END SUBROUTINE bits2ints_55
45508
45509! **************************************************************************************************
45510!> \brief ...
45511!> \param Ndata ...
45512!> \param packed_data ...
45513!> \param full_data ...
45514! **************************************************************************************************
45515 SUBROUTINE ints2bits_56(Ndata, packed_data, full_data)
45516 INTEGER, INTENT(IN) :: Ndata
45517 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
45518 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
45519
45520 INTEGER, PARAMETER :: Nbits = 56
45521
45522 INTEGER :: idata, ipack, kdata, Ndata_rep
45523 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
45524
45525 idata = 0
45526 ipack = 0
45527 ndata_rep = (ndata/64)*64
45528 DO kdata = 1, ndata_rep, 64
45529 pack_tmp = 0
45530 idata = idata + 1
45531 data_tmp = full_data(idata)
45532 data_tmp = ishft(data_tmp, 8)
45533 pack_tmp = ior(pack_tmp, data_tmp)
45534 pack_tmp = ishft(pack_tmp, -8)
45535 idata = idata + 1
45536 data_tmp = full_data(idata)
45537 data_tmp = ishft(data_tmp, 8)
45538 data_tmp = iand(data_tmp, mask_left(8))
45539 pack_tmp = ior(pack_tmp, data_tmp)
45540 ipack = ipack + 1
45541 packed_data(ipack) = pack_tmp
45542 data_tmp = full_data(idata)
45543 pack_tmp = ishft(data_tmp, 16)
45544 pack_tmp = ishft(pack_tmp, -16)
45545 idata = idata + 1
45546 data_tmp = full_data(idata)
45547 data_tmp = ishft(data_tmp, 8)
45548 data_tmp = iand(data_tmp, mask_left(16))
45549 pack_tmp = ior(pack_tmp, data_tmp)
45550 ipack = ipack + 1
45551 packed_data(ipack) = pack_tmp
45552 data_tmp = full_data(idata)
45553 pack_tmp = ishft(data_tmp, 24)
45554 pack_tmp = ishft(pack_tmp, -24)
45555 idata = idata + 1
45556 data_tmp = full_data(idata)
45557 data_tmp = ishft(data_tmp, 8)
45558 data_tmp = iand(data_tmp, mask_left(24))
45559 pack_tmp = ior(pack_tmp, data_tmp)
45560 ipack = ipack + 1
45561 packed_data(ipack) = pack_tmp
45562 data_tmp = full_data(idata)
45563 pack_tmp = ishft(data_tmp, 32)
45564 pack_tmp = ishft(pack_tmp, -32)
45565 idata = idata + 1
45566 data_tmp = full_data(idata)
45567 data_tmp = ishft(data_tmp, 8)
45568 data_tmp = iand(data_tmp, mask_left(32))
45569 pack_tmp = ior(pack_tmp, data_tmp)
45570 ipack = ipack + 1
45571 packed_data(ipack) = pack_tmp
45572 data_tmp = full_data(idata)
45573 pack_tmp = ishft(data_tmp, 40)
45574 pack_tmp = ishft(pack_tmp, -40)
45575 idata = idata + 1
45576 data_tmp = full_data(idata)
45577 data_tmp = ishft(data_tmp, 8)
45578 data_tmp = iand(data_tmp, mask_left(40))
45579 pack_tmp = ior(pack_tmp, data_tmp)
45580 ipack = ipack + 1
45581 packed_data(ipack) = pack_tmp
45582 data_tmp = full_data(idata)
45583 pack_tmp = ishft(data_tmp, 48)
45584 pack_tmp = ishft(pack_tmp, -48)
45585 idata = idata + 1
45586 data_tmp = full_data(idata)
45587 data_tmp = ishft(data_tmp, 8)
45588 data_tmp = iand(data_tmp, mask_left(48))
45589 pack_tmp = ior(pack_tmp, data_tmp)
45590 ipack = ipack + 1
45591 packed_data(ipack) = pack_tmp
45592 data_tmp = full_data(idata)
45593 pack_tmp = ishft(data_tmp, 56)
45594 pack_tmp = ishft(pack_tmp, -56)
45595 idata = idata + 1
45596 data_tmp = full_data(idata)
45597 data_tmp = ishft(data_tmp, 8)
45598 pack_tmp = ior(pack_tmp, data_tmp)
45599 pack_tmp = ishft(pack_tmp, 0)
45600 idata = idata + 1
45601 data_tmp = full_data(idata)
45602 data_tmp = ishft(data_tmp, 8)
45603 data_tmp = iand(data_tmp, mask_left(0))
45604 pack_tmp = ior(pack_tmp, data_tmp)
45605 ipack = ipack + 1
45606 packed_data(ipack) = pack_tmp
45607 data_tmp = full_data(idata)
45608 pack_tmp = ishft(data_tmp, 8)
45609 pack_tmp = ishft(pack_tmp, -8)
45610 idata = idata + 1
45611 data_tmp = full_data(idata)
45612 data_tmp = ishft(data_tmp, 8)
45613 data_tmp = iand(data_tmp, mask_left(8))
45614 pack_tmp = ior(pack_tmp, data_tmp)
45615 ipack = ipack + 1
45616 packed_data(ipack) = pack_tmp
45617 data_tmp = full_data(idata)
45618 pack_tmp = ishft(data_tmp, 16)
45619 pack_tmp = ishft(pack_tmp, -16)
45620 idata = idata + 1
45621 data_tmp = full_data(idata)
45622 data_tmp = ishft(data_tmp, 8)
45623 data_tmp = iand(data_tmp, mask_left(16))
45624 pack_tmp = ior(pack_tmp, data_tmp)
45625 ipack = ipack + 1
45626 packed_data(ipack) = pack_tmp
45627 data_tmp = full_data(idata)
45628 pack_tmp = ishft(data_tmp, 24)
45629 pack_tmp = ishft(pack_tmp, -24)
45630 idata = idata + 1
45631 data_tmp = full_data(idata)
45632 data_tmp = ishft(data_tmp, 8)
45633 data_tmp = iand(data_tmp, mask_left(24))
45634 pack_tmp = ior(pack_tmp, data_tmp)
45635 ipack = ipack + 1
45636 packed_data(ipack) = pack_tmp
45637 data_tmp = full_data(idata)
45638 pack_tmp = ishft(data_tmp, 32)
45639 pack_tmp = ishft(pack_tmp, -32)
45640 idata = idata + 1
45641 data_tmp = full_data(idata)
45642 data_tmp = ishft(data_tmp, 8)
45643 data_tmp = iand(data_tmp, mask_left(32))
45644 pack_tmp = ior(pack_tmp, data_tmp)
45645 ipack = ipack + 1
45646 packed_data(ipack) = pack_tmp
45647 data_tmp = full_data(idata)
45648 pack_tmp = ishft(data_tmp, 40)
45649 pack_tmp = ishft(pack_tmp, -40)
45650 idata = idata + 1
45651 data_tmp = full_data(idata)
45652 data_tmp = ishft(data_tmp, 8)
45653 data_tmp = iand(data_tmp, mask_left(40))
45654 pack_tmp = ior(pack_tmp, data_tmp)
45655 ipack = ipack + 1
45656 packed_data(ipack) = pack_tmp
45657 data_tmp = full_data(idata)
45658 pack_tmp = ishft(data_tmp, 48)
45659 pack_tmp = ishft(pack_tmp, -48)
45660 idata = idata + 1
45661 data_tmp = full_data(idata)
45662 data_tmp = ishft(data_tmp, 8)
45663 data_tmp = iand(data_tmp, mask_left(48))
45664 pack_tmp = ior(pack_tmp, data_tmp)
45665 ipack = ipack + 1
45666 packed_data(ipack) = pack_tmp
45667 data_tmp = full_data(idata)
45668 pack_tmp = ishft(data_tmp, 56)
45669 pack_tmp = ishft(pack_tmp, -56)
45670 idata = idata + 1
45671 data_tmp = full_data(idata)
45672 data_tmp = ishft(data_tmp, 8)
45673 pack_tmp = ior(pack_tmp, data_tmp)
45674 pack_tmp = ishft(pack_tmp, 0)
45675 idata = idata + 1
45676 data_tmp = full_data(idata)
45677 data_tmp = ishft(data_tmp, 8)
45678 data_tmp = iand(data_tmp, mask_left(0))
45679 pack_tmp = ior(pack_tmp, data_tmp)
45680 ipack = ipack + 1
45681 packed_data(ipack) = pack_tmp
45682 data_tmp = full_data(idata)
45683 pack_tmp = ishft(data_tmp, 8)
45684 pack_tmp = ishft(pack_tmp, -8)
45685 idata = idata + 1
45686 data_tmp = full_data(idata)
45687 data_tmp = ishft(data_tmp, 8)
45688 data_tmp = iand(data_tmp, mask_left(8))
45689 pack_tmp = ior(pack_tmp, data_tmp)
45690 ipack = ipack + 1
45691 packed_data(ipack) = pack_tmp
45692 data_tmp = full_data(idata)
45693 pack_tmp = ishft(data_tmp, 16)
45694 pack_tmp = ishft(pack_tmp, -16)
45695 idata = idata + 1
45696 data_tmp = full_data(idata)
45697 data_tmp = ishft(data_tmp, 8)
45698 data_tmp = iand(data_tmp, mask_left(16))
45699 pack_tmp = ior(pack_tmp, data_tmp)
45700 ipack = ipack + 1
45701 packed_data(ipack) = pack_tmp
45702 data_tmp = full_data(idata)
45703 pack_tmp = ishft(data_tmp, 24)
45704 pack_tmp = ishft(pack_tmp, -24)
45705 idata = idata + 1
45706 data_tmp = full_data(idata)
45707 data_tmp = ishft(data_tmp, 8)
45708 data_tmp = iand(data_tmp, mask_left(24))
45709 pack_tmp = ior(pack_tmp, data_tmp)
45710 ipack = ipack + 1
45711 packed_data(ipack) = pack_tmp
45712 data_tmp = full_data(idata)
45713 pack_tmp = ishft(data_tmp, 32)
45714 pack_tmp = ishft(pack_tmp, -32)
45715 idata = idata + 1
45716 data_tmp = full_data(idata)
45717 data_tmp = ishft(data_tmp, 8)
45718 data_tmp = iand(data_tmp, mask_left(32))
45719 pack_tmp = ior(pack_tmp, data_tmp)
45720 ipack = ipack + 1
45721 packed_data(ipack) = pack_tmp
45722 data_tmp = full_data(idata)
45723 pack_tmp = ishft(data_tmp, 40)
45724 pack_tmp = ishft(pack_tmp, -40)
45725 idata = idata + 1
45726 data_tmp = full_data(idata)
45727 data_tmp = ishft(data_tmp, 8)
45728 data_tmp = iand(data_tmp, mask_left(40))
45729 pack_tmp = ior(pack_tmp, data_tmp)
45730 ipack = ipack + 1
45731 packed_data(ipack) = pack_tmp
45732 data_tmp = full_data(idata)
45733 pack_tmp = ishft(data_tmp, 48)
45734 pack_tmp = ishft(pack_tmp, -48)
45735 idata = idata + 1
45736 data_tmp = full_data(idata)
45737 data_tmp = ishft(data_tmp, 8)
45738 data_tmp = iand(data_tmp, mask_left(48))
45739 pack_tmp = ior(pack_tmp, data_tmp)
45740 ipack = ipack + 1
45741 packed_data(ipack) = pack_tmp
45742 data_tmp = full_data(idata)
45743 pack_tmp = ishft(data_tmp, 56)
45744 pack_tmp = ishft(pack_tmp, -56)
45745 idata = idata + 1
45746 data_tmp = full_data(idata)
45747 data_tmp = ishft(data_tmp, 8)
45748 pack_tmp = ior(pack_tmp, data_tmp)
45749 pack_tmp = ishft(pack_tmp, 0)
45750 idata = idata + 1
45751 data_tmp = full_data(idata)
45752 data_tmp = ishft(data_tmp, 8)
45753 data_tmp = iand(data_tmp, mask_left(0))
45754 pack_tmp = ior(pack_tmp, data_tmp)
45755 ipack = ipack + 1
45756 packed_data(ipack) = pack_tmp
45757 data_tmp = full_data(idata)
45758 pack_tmp = ishft(data_tmp, 8)
45759 pack_tmp = ishft(pack_tmp, -8)
45760 idata = idata + 1
45761 data_tmp = full_data(idata)
45762 data_tmp = ishft(data_tmp, 8)
45763 data_tmp = iand(data_tmp, mask_left(8))
45764 pack_tmp = ior(pack_tmp, data_tmp)
45765 ipack = ipack + 1
45766 packed_data(ipack) = pack_tmp
45767 data_tmp = full_data(idata)
45768 pack_tmp = ishft(data_tmp, 16)
45769 pack_tmp = ishft(pack_tmp, -16)
45770 idata = idata + 1
45771 data_tmp = full_data(idata)
45772 data_tmp = ishft(data_tmp, 8)
45773 data_tmp = iand(data_tmp, mask_left(16))
45774 pack_tmp = ior(pack_tmp, data_tmp)
45775 ipack = ipack + 1
45776 packed_data(ipack) = pack_tmp
45777 data_tmp = full_data(idata)
45778 pack_tmp = ishft(data_tmp, 24)
45779 pack_tmp = ishft(pack_tmp, -24)
45780 idata = idata + 1
45781 data_tmp = full_data(idata)
45782 data_tmp = ishft(data_tmp, 8)
45783 data_tmp = iand(data_tmp, mask_left(24))
45784 pack_tmp = ior(pack_tmp, data_tmp)
45785 ipack = ipack + 1
45786 packed_data(ipack) = pack_tmp
45787 data_tmp = full_data(idata)
45788 pack_tmp = ishft(data_tmp, 32)
45789 pack_tmp = ishft(pack_tmp, -32)
45790 idata = idata + 1
45791 data_tmp = full_data(idata)
45792 data_tmp = ishft(data_tmp, 8)
45793 data_tmp = iand(data_tmp, mask_left(32))
45794 pack_tmp = ior(pack_tmp, data_tmp)
45795 ipack = ipack + 1
45796 packed_data(ipack) = pack_tmp
45797 data_tmp = full_data(idata)
45798 pack_tmp = ishft(data_tmp, 40)
45799 pack_tmp = ishft(pack_tmp, -40)
45800 idata = idata + 1
45801 data_tmp = full_data(idata)
45802 data_tmp = ishft(data_tmp, 8)
45803 data_tmp = iand(data_tmp, mask_left(40))
45804 pack_tmp = ior(pack_tmp, data_tmp)
45805 ipack = ipack + 1
45806 packed_data(ipack) = pack_tmp
45807 data_tmp = full_data(idata)
45808 pack_tmp = ishft(data_tmp, 48)
45809 pack_tmp = ishft(pack_tmp, -48)
45810 idata = idata + 1
45811 data_tmp = full_data(idata)
45812 data_tmp = ishft(data_tmp, 8)
45813 data_tmp = iand(data_tmp, mask_left(48))
45814 pack_tmp = ior(pack_tmp, data_tmp)
45815 ipack = ipack + 1
45816 packed_data(ipack) = pack_tmp
45817 data_tmp = full_data(idata)
45818 pack_tmp = ishft(data_tmp, 56)
45819 pack_tmp = ishft(pack_tmp, -56)
45820 idata = idata + 1
45821 data_tmp = full_data(idata)
45822 data_tmp = ishft(data_tmp, 8)
45823 pack_tmp = ior(pack_tmp, data_tmp)
45824 pack_tmp = ishft(pack_tmp, 0)
45825 idata = idata + 1
45826 data_tmp = full_data(idata)
45827 data_tmp = ishft(data_tmp, 8)
45828 data_tmp = iand(data_tmp, mask_left(0))
45829 pack_tmp = ior(pack_tmp, data_tmp)
45830 ipack = ipack + 1
45831 packed_data(ipack) = pack_tmp
45832 data_tmp = full_data(idata)
45833 pack_tmp = ishft(data_tmp, 8)
45834 pack_tmp = ishft(pack_tmp, -8)
45835 idata = idata + 1
45836 data_tmp = full_data(idata)
45837 data_tmp = ishft(data_tmp, 8)
45838 data_tmp = iand(data_tmp, mask_left(8))
45839 pack_tmp = ior(pack_tmp, data_tmp)
45840 ipack = ipack + 1
45841 packed_data(ipack) = pack_tmp
45842 data_tmp = full_data(idata)
45843 pack_tmp = ishft(data_tmp, 16)
45844 pack_tmp = ishft(pack_tmp, -16)
45845 idata = idata + 1
45846 data_tmp = full_data(idata)
45847 data_tmp = ishft(data_tmp, 8)
45848 data_tmp = iand(data_tmp, mask_left(16))
45849 pack_tmp = ior(pack_tmp, data_tmp)
45850 ipack = ipack + 1
45851 packed_data(ipack) = pack_tmp
45852 data_tmp = full_data(idata)
45853 pack_tmp = ishft(data_tmp, 24)
45854 pack_tmp = ishft(pack_tmp, -24)
45855 idata = idata + 1
45856 data_tmp = full_data(idata)
45857 data_tmp = ishft(data_tmp, 8)
45858 data_tmp = iand(data_tmp, mask_left(24))
45859 pack_tmp = ior(pack_tmp, data_tmp)
45860 ipack = ipack + 1
45861 packed_data(ipack) = pack_tmp
45862 data_tmp = full_data(idata)
45863 pack_tmp = ishft(data_tmp, 32)
45864 pack_tmp = ishft(pack_tmp, -32)
45865 idata = idata + 1
45866 data_tmp = full_data(idata)
45867 data_tmp = ishft(data_tmp, 8)
45868 data_tmp = iand(data_tmp, mask_left(32))
45869 pack_tmp = ior(pack_tmp, data_tmp)
45870 ipack = ipack + 1
45871 packed_data(ipack) = pack_tmp
45872 data_tmp = full_data(idata)
45873 pack_tmp = ishft(data_tmp, 40)
45874 pack_tmp = ishft(pack_tmp, -40)
45875 idata = idata + 1
45876 data_tmp = full_data(idata)
45877 data_tmp = ishft(data_tmp, 8)
45878 data_tmp = iand(data_tmp, mask_left(40))
45879 pack_tmp = ior(pack_tmp, data_tmp)
45880 ipack = ipack + 1
45881 packed_data(ipack) = pack_tmp
45882 data_tmp = full_data(idata)
45883 pack_tmp = ishft(data_tmp, 48)
45884 pack_tmp = ishft(pack_tmp, -48)
45885 idata = idata + 1
45886 data_tmp = full_data(idata)
45887 data_tmp = ishft(data_tmp, 8)
45888 data_tmp = iand(data_tmp, mask_left(48))
45889 pack_tmp = ior(pack_tmp, data_tmp)
45890 ipack = ipack + 1
45891 packed_data(ipack) = pack_tmp
45892 data_tmp = full_data(idata)
45893 pack_tmp = ishft(data_tmp, 56)
45894 pack_tmp = ishft(pack_tmp, -56)
45895 idata = idata + 1
45896 data_tmp = full_data(idata)
45897 data_tmp = ishft(data_tmp, 8)
45898 pack_tmp = ior(pack_tmp, data_tmp)
45899 pack_tmp = ishft(pack_tmp, 0)
45900 idata = idata + 1
45901 data_tmp = full_data(idata)
45902 data_tmp = ishft(data_tmp, 8)
45903 data_tmp = iand(data_tmp, mask_left(0))
45904 pack_tmp = ior(pack_tmp, data_tmp)
45905 ipack = ipack + 1
45906 packed_data(ipack) = pack_tmp
45907 data_tmp = full_data(idata)
45908 pack_tmp = ishft(data_tmp, 8)
45909 pack_tmp = ishft(pack_tmp, -8)
45910 idata = idata + 1
45911 data_tmp = full_data(idata)
45912 data_tmp = ishft(data_tmp, 8)
45913 data_tmp = iand(data_tmp, mask_left(8))
45914 pack_tmp = ior(pack_tmp, data_tmp)
45915 ipack = ipack + 1
45916 packed_data(ipack) = pack_tmp
45917 data_tmp = full_data(idata)
45918 pack_tmp = ishft(data_tmp, 16)
45919 pack_tmp = ishft(pack_tmp, -16)
45920 idata = idata + 1
45921 data_tmp = full_data(idata)
45922 data_tmp = ishft(data_tmp, 8)
45923 data_tmp = iand(data_tmp, mask_left(16))
45924 pack_tmp = ior(pack_tmp, data_tmp)
45925 ipack = ipack + 1
45926 packed_data(ipack) = pack_tmp
45927 data_tmp = full_data(idata)
45928 pack_tmp = ishft(data_tmp, 24)
45929 pack_tmp = ishft(pack_tmp, -24)
45930 idata = idata + 1
45931 data_tmp = full_data(idata)
45932 data_tmp = ishft(data_tmp, 8)
45933 data_tmp = iand(data_tmp, mask_left(24))
45934 pack_tmp = ior(pack_tmp, data_tmp)
45935 ipack = ipack + 1
45936 packed_data(ipack) = pack_tmp
45937 data_tmp = full_data(idata)
45938 pack_tmp = ishft(data_tmp, 32)
45939 pack_tmp = ishft(pack_tmp, -32)
45940 idata = idata + 1
45941 data_tmp = full_data(idata)
45942 data_tmp = ishft(data_tmp, 8)
45943 data_tmp = iand(data_tmp, mask_left(32))
45944 pack_tmp = ior(pack_tmp, data_tmp)
45945 ipack = ipack + 1
45946 packed_data(ipack) = pack_tmp
45947 data_tmp = full_data(idata)
45948 pack_tmp = ishft(data_tmp, 40)
45949 pack_tmp = ishft(pack_tmp, -40)
45950 idata = idata + 1
45951 data_tmp = full_data(idata)
45952 data_tmp = ishft(data_tmp, 8)
45953 data_tmp = iand(data_tmp, mask_left(40))
45954 pack_tmp = ior(pack_tmp, data_tmp)
45955 ipack = ipack + 1
45956 packed_data(ipack) = pack_tmp
45957 data_tmp = full_data(idata)
45958 pack_tmp = ishft(data_tmp, 48)
45959 pack_tmp = ishft(pack_tmp, -48)
45960 idata = idata + 1
45961 data_tmp = full_data(idata)
45962 data_tmp = ishft(data_tmp, 8)
45963 data_tmp = iand(data_tmp, mask_left(48))
45964 pack_tmp = ior(pack_tmp, data_tmp)
45965 ipack = ipack + 1
45966 packed_data(ipack) = pack_tmp
45967 data_tmp = full_data(idata)
45968 pack_tmp = ishft(data_tmp, 56)
45969 pack_tmp = ishft(pack_tmp, -56)
45970 idata = idata + 1
45971 data_tmp = full_data(idata)
45972 data_tmp = ishft(data_tmp, 8)
45973 pack_tmp = ior(pack_tmp, data_tmp)
45974 pack_tmp = ishft(pack_tmp, 0)
45975 idata = idata + 1
45976 data_tmp = full_data(idata)
45977 data_tmp = ishft(data_tmp, 8)
45978 data_tmp = iand(data_tmp, mask_left(0))
45979 pack_tmp = ior(pack_tmp, data_tmp)
45980 ipack = ipack + 1
45981 packed_data(ipack) = pack_tmp
45982 data_tmp = full_data(idata)
45983 pack_tmp = ishft(data_tmp, 8)
45984 pack_tmp = ishft(pack_tmp, -8)
45985 idata = idata + 1
45986 data_tmp = full_data(idata)
45987 data_tmp = ishft(data_tmp, 8)
45988 data_tmp = iand(data_tmp, mask_left(8))
45989 pack_tmp = ior(pack_tmp, data_tmp)
45990 ipack = ipack + 1
45991 packed_data(ipack) = pack_tmp
45992 data_tmp = full_data(idata)
45993 pack_tmp = ishft(data_tmp, 16)
45994 pack_tmp = ishft(pack_tmp, -16)
45995 idata = idata + 1
45996 data_tmp = full_data(idata)
45997 data_tmp = ishft(data_tmp, 8)
45998 data_tmp = iand(data_tmp, mask_left(16))
45999 pack_tmp = ior(pack_tmp, data_tmp)
46000 ipack = ipack + 1
46001 packed_data(ipack) = pack_tmp
46002 data_tmp = full_data(idata)
46003 pack_tmp = ishft(data_tmp, 24)
46004 pack_tmp = ishft(pack_tmp, -24)
46005 idata = idata + 1
46006 data_tmp = full_data(idata)
46007 data_tmp = ishft(data_tmp, 8)
46008 data_tmp = iand(data_tmp, mask_left(24))
46009 pack_tmp = ior(pack_tmp, data_tmp)
46010 ipack = ipack + 1
46011 packed_data(ipack) = pack_tmp
46012 data_tmp = full_data(idata)
46013 pack_tmp = ishft(data_tmp, 32)
46014 pack_tmp = ishft(pack_tmp, -32)
46015 idata = idata + 1
46016 data_tmp = full_data(idata)
46017 data_tmp = ishft(data_tmp, 8)
46018 data_tmp = iand(data_tmp, mask_left(32))
46019 pack_tmp = ior(pack_tmp, data_tmp)
46020 ipack = ipack + 1
46021 packed_data(ipack) = pack_tmp
46022 data_tmp = full_data(idata)
46023 pack_tmp = ishft(data_tmp, 40)
46024 pack_tmp = ishft(pack_tmp, -40)
46025 idata = idata + 1
46026 data_tmp = full_data(idata)
46027 data_tmp = ishft(data_tmp, 8)
46028 data_tmp = iand(data_tmp, mask_left(40))
46029 pack_tmp = ior(pack_tmp, data_tmp)
46030 ipack = ipack + 1
46031 packed_data(ipack) = pack_tmp
46032 data_tmp = full_data(idata)
46033 pack_tmp = ishft(data_tmp, 48)
46034 pack_tmp = ishft(pack_tmp, -48)
46035 idata = idata + 1
46036 data_tmp = full_data(idata)
46037 data_tmp = ishft(data_tmp, 8)
46038 data_tmp = iand(data_tmp, mask_left(48))
46039 pack_tmp = ior(pack_tmp, data_tmp)
46040 ipack = ipack + 1
46041 packed_data(ipack) = pack_tmp
46042 data_tmp = full_data(idata)
46043 pack_tmp = ishft(data_tmp, 56)
46044 pack_tmp = ishft(pack_tmp, -56)
46045 idata = idata + 1
46046 data_tmp = full_data(idata)
46047 data_tmp = ishft(data_tmp, 8)
46048 pack_tmp = ior(pack_tmp, data_tmp)
46049 pack_tmp = ishft(pack_tmp, 0)
46050 idata = idata + 1
46051 data_tmp = full_data(idata)
46052 data_tmp = ishft(data_tmp, 8)
46053 data_tmp = iand(data_tmp, mask_left(0))
46054 pack_tmp = ior(pack_tmp, data_tmp)
46055 ipack = ipack + 1
46056 packed_data(ipack) = pack_tmp
46057 data_tmp = full_data(idata)
46058 pack_tmp = ishft(data_tmp, 8)
46059 pack_tmp = ishft(pack_tmp, -8)
46060 idata = idata + 1
46061 data_tmp = full_data(idata)
46062 data_tmp = ishft(data_tmp, 8)
46063 data_tmp = iand(data_tmp, mask_left(8))
46064 pack_tmp = ior(pack_tmp, data_tmp)
46065 ipack = ipack + 1
46066 packed_data(ipack) = pack_tmp
46067 data_tmp = full_data(idata)
46068 pack_tmp = ishft(data_tmp, 16)
46069 pack_tmp = ishft(pack_tmp, -16)
46070 idata = idata + 1
46071 data_tmp = full_data(idata)
46072 data_tmp = ishft(data_tmp, 8)
46073 data_tmp = iand(data_tmp, mask_left(16))
46074 pack_tmp = ior(pack_tmp, data_tmp)
46075 ipack = ipack + 1
46076 packed_data(ipack) = pack_tmp
46077 data_tmp = full_data(idata)
46078 pack_tmp = ishft(data_tmp, 24)
46079 pack_tmp = ishft(pack_tmp, -24)
46080 idata = idata + 1
46081 data_tmp = full_data(idata)
46082 data_tmp = ishft(data_tmp, 8)
46083 data_tmp = iand(data_tmp, mask_left(24))
46084 pack_tmp = ior(pack_tmp, data_tmp)
46085 ipack = ipack + 1
46086 packed_data(ipack) = pack_tmp
46087 data_tmp = full_data(idata)
46088 pack_tmp = ishft(data_tmp, 32)
46089 pack_tmp = ishft(pack_tmp, -32)
46090 idata = idata + 1
46091 data_tmp = full_data(idata)
46092 data_tmp = ishft(data_tmp, 8)
46093 data_tmp = iand(data_tmp, mask_left(32))
46094 pack_tmp = ior(pack_tmp, data_tmp)
46095 ipack = ipack + 1
46096 packed_data(ipack) = pack_tmp
46097 data_tmp = full_data(idata)
46098 pack_tmp = ishft(data_tmp, 40)
46099 pack_tmp = ishft(pack_tmp, -40)
46100 idata = idata + 1
46101 data_tmp = full_data(idata)
46102 data_tmp = ishft(data_tmp, 8)
46103 data_tmp = iand(data_tmp, mask_left(40))
46104 pack_tmp = ior(pack_tmp, data_tmp)
46105 ipack = ipack + 1
46106 packed_data(ipack) = pack_tmp
46107 data_tmp = full_data(idata)
46108 pack_tmp = ishft(data_tmp, 48)
46109 pack_tmp = ishft(pack_tmp, -48)
46110 idata = idata + 1
46111 data_tmp = full_data(idata)
46112 data_tmp = ishft(data_tmp, 8)
46113 data_tmp = iand(data_tmp, mask_left(48))
46114 pack_tmp = ior(pack_tmp, data_tmp)
46115 ipack = ipack + 1
46116 packed_data(ipack) = pack_tmp
46117 data_tmp = full_data(idata)
46118 pack_tmp = ishft(data_tmp, 56)
46119 pack_tmp = ishft(pack_tmp, -56)
46120 idata = idata + 1
46121 data_tmp = full_data(idata)
46122 data_tmp = ishft(data_tmp, 8)
46123 pack_tmp = ior(pack_tmp, data_tmp)
46124 pack_tmp = ishft(pack_tmp, 0)
46125 pack_tmp = ishft(pack_tmp, 0)
46126 ipack = ipack + 1
46127 packed_data(ipack) = pack_tmp
46128 END DO
46129 IF (ndata_rep < ndata) THEN
46130 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
46131 END IF
46132 END SUBROUTINE ints2bits_56
46133
46134! **************************************************************************************************
46135!> \brief ...
46136!> \param Ndata ...
46137!> \param packed_data ...
46138!> \param full_data ...
46139! **************************************************************************************************
46140 SUBROUTINE bits2ints_56(Ndata, packed_data, full_data)
46141 INTEGER, INTENT(IN) :: Ndata
46142 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
46143 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
46144
46145 INTEGER, PARAMETER :: Nbits = 56
46146
46147 INTEGER :: idata, ipack, kdata, Ndata_rep
46148 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
46149
46150 ipack = 0
46151 idata = 0
46152 pack_tmp = 0
46153 ndata_rep = (ndata/64)*64
46154 DO kdata = 1, ndata_rep, 64
46155 idata = idata + 1
46156 data_tmp = ishft(pack_tmp, 56)
46157 ipack = ipack + 1
46158 pack_tmp = packed_data(ipack)
46159 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
46160 pack_tmp = ishft(pack_tmp, -56)
46161 idata = idata + 1
46162 data_tmp = ishft(pack_tmp, 48)
46163 ipack = ipack + 1
46164 pack_tmp = packed_data(ipack)
46165 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
46166 pack_tmp = ishft(pack_tmp, -48)
46167 idata = idata + 1
46168 data_tmp = ishft(pack_tmp, 40)
46169 ipack = ipack + 1
46170 pack_tmp = packed_data(ipack)
46171 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
46172 pack_tmp = ishft(pack_tmp, -40)
46173 idata = idata + 1
46174 data_tmp = ishft(pack_tmp, 32)
46175 ipack = ipack + 1
46176 pack_tmp = packed_data(ipack)
46177 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
46178 pack_tmp = ishft(pack_tmp, -32)
46179 idata = idata + 1
46180 data_tmp = ishft(pack_tmp, 24)
46181 ipack = ipack + 1
46182 pack_tmp = packed_data(ipack)
46183 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
46184 pack_tmp = ishft(pack_tmp, -24)
46185 idata = idata + 1
46186 data_tmp = ishft(pack_tmp, 16)
46187 ipack = ipack + 1
46188 pack_tmp = packed_data(ipack)
46189 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
46190 pack_tmp = ishft(pack_tmp, -16)
46191 idata = idata + 1
46192 data_tmp = ishft(pack_tmp, 8)
46193 ipack = ipack + 1
46194 pack_tmp = packed_data(ipack)
46195 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
46196 pack_tmp = ishft(pack_tmp, -8)
46197 idata = idata + 1
46198 data_tmp = iand(pack_tmp, mask_right(nbits))
46199 full_data(idata) = data_tmp
46200 pack_tmp = ishft(pack_tmp, -nbits)
46201 idata = idata + 1
46202 data_tmp = ishft(pack_tmp, 56)
46203 ipack = ipack + 1
46204 pack_tmp = packed_data(ipack)
46205 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
46206 pack_tmp = ishft(pack_tmp, -56)
46207 idata = idata + 1
46208 data_tmp = ishft(pack_tmp, 48)
46209 ipack = ipack + 1
46210 pack_tmp = packed_data(ipack)
46211 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
46212 pack_tmp = ishft(pack_tmp, -48)
46213 idata = idata + 1
46214 data_tmp = ishft(pack_tmp, 40)
46215 ipack = ipack + 1
46216 pack_tmp = packed_data(ipack)
46217 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
46218 pack_tmp = ishft(pack_tmp, -40)
46219 idata = idata + 1
46220 data_tmp = ishft(pack_tmp, 32)
46221 ipack = ipack + 1
46222 pack_tmp = packed_data(ipack)
46223 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
46224 pack_tmp = ishft(pack_tmp, -32)
46225 idata = idata + 1
46226 data_tmp = ishft(pack_tmp, 24)
46227 ipack = ipack + 1
46228 pack_tmp = packed_data(ipack)
46229 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
46230 pack_tmp = ishft(pack_tmp, -24)
46231 idata = idata + 1
46232 data_tmp = ishft(pack_tmp, 16)
46233 ipack = ipack + 1
46234 pack_tmp = packed_data(ipack)
46235 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
46236 pack_tmp = ishft(pack_tmp, -16)
46237 idata = idata + 1
46238 data_tmp = ishft(pack_tmp, 8)
46239 ipack = ipack + 1
46240 pack_tmp = packed_data(ipack)
46241 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
46242 pack_tmp = ishft(pack_tmp, -8)
46243 idata = idata + 1
46244 data_tmp = iand(pack_tmp, mask_right(nbits))
46245 full_data(idata) = data_tmp
46246 pack_tmp = ishft(pack_tmp, -nbits)
46247 idata = idata + 1
46248 data_tmp = ishft(pack_tmp, 56)
46249 ipack = ipack + 1
46250 pack_tmp = packed_data(ipack)
46251 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
46252 pack_tmp = ishft(pack_tmp, -56)
46253 idata = idata + 1
46254 data_tmp = ishft(pack_tmp, 48)
46255 ipack = ipack + 1
46256 pack_tmp = packed_data(ipack)
46257 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
46258 pack_tmp = ishft(pack_tmp, -48)
46259 idata = idata + 1
46260 data_tmp = ishft(pack_tmp, 40)
46261 ipack = ipack + 1
46262 pack_tmp = packed_data(ipack)
46263 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
46264 pack_tmp = ishft(pack_tmp, -40)
46265 idata = idata + 1
46266 data_tmp = ishft(pack_tmp, 32)
46267 ipack = ipack + 1
46268 pack_tmp = packed_data(ipack)
46269 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
46270 pack_tmp = ishft(pack_tmp, -32)
46271 idata = idata + 1
46272 data_tmp = ishft(pack_tmp, 24)
46273 ipack = ipack + 1
46274 pack_tmp = packed_data(ipack)
46275 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
46276 pack_tmp = ishft(pack_tmp, -24)
46277 idata = idata + 1
46278 data_tmp = ishft(pack_tmp, 16)
46279 ipack = ipack + 1
46280 pack_tmp = packed_data(ipack)
46281 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
46282 pack_tmp = ishft(pack_tmp, -16)
46283 idata = idata + 1
46284 data_tmp = ishft(pack_tmp, 8)
46285 ipack = ipack + 1
46286 pack_tmp = packed_data(ipack)
46287 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
46288 pack_tmp = ishft(pack_tmp, -8)
46289 idata = idata + 1
46290 data_tmp = iand(pack_tmp, mask_right(nbits))
46291 full_data(idata) = data_tmp
46292 pack_tmp = ishft(pack_tmp, -nbits)
46293 idata = idata + 1
46294 data_tmp = ishft(pack_tmp, 56)
46295 ipack = ipack + 1
46296 pack_tmp = packed_data(ipack)
46297 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
46298 pack_tmp = ishft(pack_tmp, -56)
46299 idata = idata + 1
46300 data_tmp = ishft(pack_tmp, 48)
46301 ipack = ipack + 1
46302 pack_tmp = packed_data(ipack)
46303 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
46304 pack_tmp = ishft(pack_tmp, -48)
46305 idata = idata + 1
46306 data_tmp = ishft(pack_tmp, 40)
46307 ipack = ipack + 1
46308 pack_tmp = packed_data(ipack)
46309 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
46310 pack_tmp = ishft(pack_tmp, -40)
46311 idata = idata + 1
46312 data_tmp = ishft(pack_tmp, 32)
46313 ipack = ipack + 1
46314 pack_tmp = packed_data(ipack)
46315 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
46316 pack_tmp = ishft(pack_tmp, -32)
46317 idata = idata + 1
46318 data_tmp = ishft(pack_tmp, 24)
46319 ipack = ipack + 1
46320 pack_tmp = packed_data(ipack)
46321 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
46322 pack_tmp = ishft(pack_tmp, -24)
46323 idata = idata + 1
46324 data_tmp = ishft(pack_tmp, 16)
46325 ipack = ipack + 1
46326 pack_tmp = packed_data(ipack)
46327 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
46328 pack_tmp = ishft(pack_tmp, -16)
46329 idata = idata + 1
46330 data_tmp = ishft(pack_tmp, 8)
46331 ipack = ipack + 1
46332 pack_tmp = packed_data(ipack)
46333 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
46334 pack_tmp = ishft(pack_tmp, -8)
46335 idata = idata + 1
46336 data_tmp = iand(pack_tmp, mask_right(nbits))
46337 full_data(idata) = data_tmp
46338 pack_tmp = ishft(pack_tmp, -nbits)
46339 idata = idata + 1
46340 data_tmp = ishft(pack_tmp, 56)
46341 ipack = ipack + 1
46342 pack_tmp = packed_data(ipack)
46343 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
46344 pack_tmp = ishft(pack_tmp, -56)
46345 idata = idata + 1
46346 data_tmp = ishft(pack_tmp, 48)
46347 ipack = ipack + 1
46348 pack_tmp = packed_data(ipack)
46349 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
46350 pack_tmp = ishft(pack_tmp, -48)
46351 idata = idata + 1
46352 data_tmp = ishft(pack_tmp, 40)
46353 ipack = ipack + 1
46354 pack_tmp = packed_data(ipack)
46355 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
46356 pack_tmp = ishft(pack_tmp, -40)
46357 idata = idata + 1
46358 data_tmp = ishft(pack_tmp, 32)
46359 ipack = ipack + 1
46360 pack_tmp = packed_data(ipack)
46361 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
46362 pack_tmp = ishft(pack_tmp, -32)
46363 idata = idata + 1
46364 data_tmp = ishft(pack_tmp, 24)
46365 ipack = ipack + 1
46366 pack_tmp = packed_data(ipack)
46367 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
46368 pack_tmp = ishft(pack_tmp, -24)
46369 idata = idata + 1
46370 data_tmp = ishft(pack_tmp, 16)
46371 ipack = ipack + 1
46372 pack_tmp = packed_data(ipack)
46373 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
46374 pack_tmp = ishft(pack_tmp, -16)
46375 idata = idata + 1
46376 data_tmp = ishft(pack_tmp, 8)
46377 ipack = ipack + 1
46378 pack_tmp = packed_data(ipack)
46379 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
46380 pack_tmp = ishft(pack_tmp, -8)
46381 idata = idata + 1
46382 data_tmp = iand(pack_tmp, mask_right(nbits))
46383 full_data(idata) = data_tmp
46384 pack_tmp = ishft(pack_tmp, -nbits)
46385 idata = idata + 1
46386 data_tmp = ishft(pack_tmp, 56)
46387 ipack = ipack + 1
46388 pack_tmp = packed_data(ipack)
46389 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
46390 pack_tmp = ishft(pack_tmp, -56)
46391 idata = idata + 1
46392 data_tmp = ishft(pack_tmp, 48)
46393 ipack = ipack + 1
46394 pack_tmp = packed_data(ipack)
46395 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
46396 pack_tmp = ishft(pack_tmp, -48)
46397 idata = idata + 1
46398 data_tmp = ishft(pack_tmp, 40)
46399 ipack = ipack + 1
46400 pack_tmp = packed_data(ipack)
46401 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
46402 pack_tmp = ishft(pack_tmp, -40)
46403 idata = idata + 1
46404 data_tmp = ishft(pack_tmp, 32)
46405 ipack = ipack + 1
46406 pack_tmp = packed_data(ipack)
46407 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
46408 pack_tmp = ishft(pack_tmp, -32)
46409 idata = idata + 1
46410 data_tmp = ishft(pack_tmp, 24)
46411 ipack = ipack + 1
46412 pack_tmp = packed_data(ipack)
46413 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
46414 pack_tmp = ishft(pack_tmp, -24)
46415 idata = idata + 1
46416 data_tmp = ishft(pack_tmp, 16)
46417 ipack = ipack + 1
46418 pack_tmp = packed_data(ipack)
46419 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
46420 pack_tmp = ishft(pack_tmp, -16)
46421 idata = idata + 1
46422 data_tmp = ishft(pack_tmp, 8)
46423 ipack = ipack + 1
46424 pack_tmp = packed_data(ipack)
46425 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
46426 pack_tmp = ishft(pack_tmp, -8)
46427 idata = idata + 1
46428 data_tmp = iand(pack_tmp, mask_right(nbits))
46429 full_data(idata) = data_tmp
46430 pack_tmp = ishft(pack_tmp, -nbits)
46431 idata = idata + 1
46432 data_tmp = ishft(pack_tmp, 56)
46433 ipack = ipack + 1
46434 pack_tmp = packed_data(ipack)
46435 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
46436 pack_tmp = ishft(pack_tmp, -56)
46437 idata = idata + 1
46438 data_tmp = ishft(pack_tmp, 48)
46439 ipack = ipack + 1
46440 pack_tmp = packed_data(ipack)
46441 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
46442 pack_tmp = ishft(pack_tmp, -48)
46443 idata = idata + 1
46444 data_tmp = ishft(pack_tmp, 40)
46445 ipack = ipack + 1
46446 pack_tmp = packed_data(ipack)
46447 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
46448 pack_tmp = ishft(pack_tmp, -40)
46449 idata = idata + 1
46450 data_tmp = ishft(pack_tmp, 32)
46451 ipack = ipack + 1
46452 pack_tmp = packed_data(ipack)
46453 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
46454 pack_tmp = ishft(pack_tmp, -32)
46455 idata = idata + 1
46456 data_tmp = ishft(pack_tmp, 24)
46457 ipack = ipack + 1
46458 pack_tmp = packed_data(ipack)
46459 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
46460 pack_tmp = ishft(pack_tmp, -24)
46461 idata = idata + 1
46462 data_tmp = ishft(pack_tmp, 16)
46463 ipack = ipack + 1
46464 pack_tmp = packed_data(ipack)
46465 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
46466 pack_tmp = ishft(pack_tmp, -16)
46467 idata = idata + 1
46468 data_tmp = ishft(pack_tmp, 8)
46469 ipack = ipack + 1
46470 pack_tmp = packed_data(ipack)
46471 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
46472 pack_tmp = ishft(pack_tmp, -8)
46473 idata = idata + 1
46474 data_tmp = iand(pack_tmp, mask_right(nbits))
46475 full_data(idata) = data_tmp
46476 pack_tmp = ishft(pack_tmp, -nbits)
46477 idata = idata + 1
46478 data_tmp = ishft(pack_tmp, 56)
46479 ipack = ipack + 1
46480 pack_tmp = packed_data(ipack)
46481 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
46482 pack_tmp = ishft(pack_tmp, -56)
46483 idata = idata + 1
46484 data_tmp = ishft(pack_tmp, 48)
46485 ipack = ipack + 1
46486 pack_tmp = packed_data(ipack)
46487 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
46488 pack_tmp = ishft(pack_tmp, -48)
46489 idata = idata + 1
46490 data_tmp = ishft(pack_tmp, 40)
46491 ipack = ipack + 1
46492 pack_tmp = packed_data(ipack)
46493 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
46494 pack_tmp = ishft(pack_tmp, -40)
46495 idata = idata + 1
46496 data_tmp = ishft(pack_tmp, 32)
46497 ipack = ipack + 1
46498 pack_tmp = packed_data(ipack)
46499 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
46500 pack_tmp = ishft(pack_tmp, -32)
46501 idata = idata + 1
46502 data_tmp = ishft(pack_tmp, 24)
46503 ipack = ipack + 1
46504 pack_tmp = packed_data(ipack)
46505 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
46506 pack_tmp = ishft(pack_tmp, -24)
46507 idata = idata + 1
46508 data_tmp = ishft(pack_tmp, 16)
46509 ipack = ipack + 1
46510 pack_tmp = packed_data(ipack)
46511 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
46512 pack_tmp = ishft(pack_tmp, -16)
46513 idata = idata + 1
46514 data_tmp = ishft(pack_tmp, 8)
46515 ipack = ipack + 1
46516 pack_tmp = packed_data(ipack)
46517 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
46518 pack_tmp = ishft(pack_tmp, -8)
46519 idata = idata + 1
46520 data_tmp = iand(pack_tmp, mask_right(nbits))
46521 full_data(idata) = data_tmp
46522 pack_tmp = ishft(pack_tmp, -nbits)
46523 END DO
46524 IF (ndata_rep < ndata) THEN
46525 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
46526 END IF
46527 END SUBROUTINE bits2ints_56
46528
46529! **************************************************************************************************
46530!> \brief ...
46531!> \param Ndata ...
46532!> \param packed_data ...
46533!> \param full_data ...
46534! **************************************************************************************************
46535 SUBROUTINE ints2bits_57(Ndata, packed_data, full_data)
46536 INTEGER, INTENT(IN) :: Ndata
46537 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
46538 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
46539
46540 INTEGER, PARAMETER :: Nbits = 57
46541
46542 INTEGER :: idata, ipack, kdata, Ndata_rep
46543 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
46544
46545 idata = 0
46546 ipack = 0
46547 ndata_rep = (ndata/64)*64
46548 DO kdata = 1, ndata_rep, 64
46549 pack_tmp = 0
46550 idata = idata + 1
46551 data_tmp = full_data(idata)
46552 data_tmp = ishft(data_tmp, 7)
46553 pack_tmp = ior(pack_tmp, data_tmp)
46554 pack_tmp = ishft(pack_tmp, -7)
46555 idata = idata + 1
46556 data_tmp = full_data(idata)
46557 data_tmp = ishft(data_tmp, 7)
46558 data_tmp = iand(data_tmp, mask_left(7))
46559 pack_tmp = ior(pack_tmp, data_tmp)
46560 ipack = ipack + 1
46561 packed_data(ipack) = pack_tmp
46562 data_tmp = full_data(idata)
46563 pack_tmp = ishft(data_tmp, 14)
46564 pack_tmp = ishft(pack_tmp, -14)
46565 idata = idata + 1
46566 data_tmp = full_data(idata)
46567 data_tmp = ishft(data_tmp, 7)
46568 data_tmp = iand(data_tmp, mask_left(14))
46569 pack_tmp = ior(pack_tmp, data_tmp)
46570 ipack = ipack + 1
46571 packed_data(ipack) = pack_tmp
46572 data_tmp = full_data(idata)
46573 pack_tmp = ishft(data_tmp, 21)
46574 pack_tmp = ishft(pack_tmp, -21)
46575 idata = idata + 1
46576 data_tmp = full_data(idata)
46577 data_tmp = ishft(data_tmp, 7)
46578 data_tmp = iand(data_tmp, mask_left(21))
46579 pack_tmp = ior(pack_tmp, data_tmp)
46580 ipack = ipack + 1
46581 packed_data(ipack) = pack_tmp
46582 data_tmp = full_data(idata)
46583 pack_tmp = ishft(data_tmp, 28)
46584 pack_tmp = ishft(pack_tmp, -28)
46585 idata = idata + 1
46586 data_tmp = full_data(idata)
46587 data_tmp = ishft(data_tmp, 7)
46588 data_tmp = iand(data_tmp, mask_left(28))
46589 pack_tmp = ior(pack_tmp, data_tmp)
46590 ipack = ipack + 1
46591 packed_data(ipack) = pack_tmp
46592 data_tmp = full_data(idata)
46593 pack_tmp = ishft(data_tmp, 35)
46594 pack_tmp = ishft(pack_tmp, -35)
46595 idata = idata + 1
46596 data_tmp = full_data(idata)
46597 data_tmp = ishft(data_tmp, 7)
46598 data_tmp = iand(data_tmp, mask_left(35))
46599 pack_tmp = ior(pack_tmp, data_tmp)
46600 ipack = ipack + 1
46601 packed_data(ipack) = pack_tmp
46602 data_tmp = full_data(idata)
46603 pack_tmp = ishft(data_tmp, 42)
46604 pack_tmp = ishft(pack_tmp, -42)
46605 idata = idata + 1
46606 data_tmp = full_data(idata)
46607 data_tmp = ishft(data_tmp, 7)
46608 data_tmp = iand(data_tmp, mask_left(42))
46609 pack_tmp = ior(pack_tmp, data_tmp)
46610 ipack = ipack + 1
46611 packed_data(ipack) = pack_tmp
46612 data_tmp = full_data(idata)
46613 pack_tmp = ishft(data_tmp, 49)
46614 pack_tmp = ishft(pack_tmp, -49)
46615 idata = idata + 1
46616 data_tmp = full_data(idata)
46617 data_tmp = ishft(data_tmp, 7)
46618 data_tmp = iand(data_tmp, mask_left(49))
46619 pack_tmp = ior(pack_tmp, data_tmp)
46620 ipack = ipack + 1
46621 packed_data(ipack) = pack_tmp
46622 data_tmp = full_data(idata)
46623 pack_tmp = ishft(data_tmp, 56)
46624 pack_tmp = ishft(pack_tmp, -56)
46625 idata = idata + 1
46626 data_tmp = full_data(idata)
46627 data_tmp = ishft(data_tmp, 7)
46628 data_tmp = iand(data_tmp, mask_left(56))
46629 pack_tmp = ior(pack_tmp, data_tmp)
46630 ipack = ipack + 1
46631 packed_data(ipack) = pack_tmp
46632 data_tmp = full_data(idata)
46633 pack_tmp = ishft(data_tmp, 63)
46634 pack_tmp = ishft(pack_tmp, -57)
46635 idata = idata + 1
46636 data_tmp = full_data(idata)
46637 data_tmp = ishft(data_tmp, 7)
46638 pack_tmp = ior(pack_tmp, data_tmp)
46639 pack_tmp = ishft(pack_tmp, -6)
46640 idata = idata + 1
46641 data_tmp = full_data(idata)
46642 data_tmp = ishft(data_tmp, 7)
46643 data_tmp = iand(data_tmp, mask_left(6))
46644 pack_tmp = ior(pack_tmp, data_tmp)
46645 ipack = ipack + 1
46646 packed_data(ipack) = pack_tmp
46647 data_tmp = full_data(idata)
46648 pack_tmp = ishft(data_tmp, 13)
46649 pack_tmp = ishft(pack_tmp, -13)
46650 idata = idata + 1
46651 data_tmp = full_data(idata)
46652 data_tmp = ishft(data_tmp, 7)
46653 data_tmp = iand(data_tmp, mask_left(13))
46654 pack_tmp = ior(pack_tmp, data_tmp)
46655 ipack = ipack + 1
46656 packed_data(ipack) = pack_tmp
46657 data_tmp = full_data(idata)
46658 pack_tmp = ishft(data_tmp, 20)
46659 pack_tmp = ishft(pack_tmp, -20)
46660 idata = idata + 1
46661 data_tmp = full_data(idata)
46662 data_tmp = ishft(data_tmp, 7)
46663 data_tmp = iand(data_tmp, mask_left(20))
46664 pack_tmp = ior(pack_tmp, data_tmp)
46665 ipack = ipack + 1
46666 packed_data(ipack) = pack_tmp
46667 data_tmp = full_data(idata)
46668 pack_tmp = ishft(data_tmp, 27)
46669 pack_tmp = ishft(pack_tmp, -27)
46670 idata = idata + 1
46671 data_tmp = full_data(idata)
46672 data_tmp = ishft(data_tmp, 7)
46673 data_tmp = iand(data_tmp, mask_left(27))
46674 pack_tmp = ior(pack_tmp, data_tmp)
46675 ipack = ipack + 1
46676 packed_data(ipack) = pack_tmp
46677 data_tmp = full_data(idata)
46678 pack_tmp = ishft(data_tmp, 34)
46679 pack_tmp = ishft(pack_tmp, -34)
46680 idata = idata + 1
46681 data_tmp = full_data(idata)
46682 data_tmp = ishft(data_tmp, 7)
46683 data_tmp = iand(data_tmp, mask_left(34))
46684 pack_tmp = ior(pack_tmp, data_tmp)
46685 ipack = ipack + 1
46686 packed_data(ipack) = pack_tmp
46687 data_tmp = full_data(idata)
46688 pack_tmp = ishft(data_tmp, 41)
46689 pack_tmp = ishft(pack_tmp, -41)
46690 idata = idata + 1
46691 data_tmp = full_data(idata)
46692 data_tmp = ishft(data_tmp, 7)
46693 data_tmp = iand(data_tmp, mask_left(41))
46694 pack_tmp = ior(pack_tmp, data_tmp)
46695 ipack = ipack + 1
46696 packed_data(ipack) = pack_tmp
46697 data_tmp = full_data(idata)
46698 pack_tmp = ishft(data_tmp, 48)
46699 pack_tmp = ishft(pack_tmp, -48)
46700 idata = idata + 1
46701 data_tmp = full_data(idata)
46702 data_tmp = ishft(data_tmp, 7)
46703 data_tmp = iand(data_tmp, mask_left(48))
46704 pack_tmp = ior(pack_tmp, data_tmp)
46705 ipack = ipack + 1
46706 packed_data(ipack) = pack_tmp
46707 data_tmp = full_data(idata)
46708 pack_tmp = ishft(data_tmp, 55)
46709 pack_tmp = ishft(pack_tmp, -55)
46710 idata = idata + 1
46711 data_tmp = full_data(idata)
46712 data_tmp = ishft(data_tmp, 7)
46713 data_tmp = iand(data_tmp, mask_left(55))
46714 pack_tmp = ior(pack_tmp, data_tmp)
46715 ipack = ipack + 1
46716 packed_data(ipack) = pack_tmp
46717 data_tmp = full_data(idata)
46718 pack_tmp = ishft(data_tmp, 62)
46719 pack_tmp = ishft(pack_tmp, -57)
46720 idata = idata + 1
46721 data_tmp = full_data(idata)
46722 data_tmp = ishft(data_tmp, 7)
46723 pack_tmp = ior(pack_tmp, data_tmp)
46724 pack_tmp = ishft(pack_tmp, -5)
46725 idata = idata + 1
46726 data_tmp = full_data(idata)
46727 data_tmp = ishft(data_tmp, 7)
46728 data_tmp = iand(data_tmp, mask_left(5))
46729 pack_tmp = ior(pack_tmp, data_tmp)
46730 ipack = ipack + 1
46731 packed_data(ipack) = pack_tmp
46732 data_tmp = full_data(idata)
46733 pack_tmp = ishft(data_tmp, 12)
46734 pack_tmp = ishft(pack_tmp, -12)
46735 idata = idata + 1
46736 data_tmp = full_data(idata)
46737 data_tmp = ishft(data_tmp, 7)
46738 data_tmp = iand(data_tmp, mask_left(12))
46739 pack_tmp = ior(pack_tmp, data_tmp)
46740 ipack = ipack + 1
46741 packed_data(ipack) = pack_tmp
46742 data_tmp = full_data(idata)
46743 pack_tmp = ishft(data_tmp, 19)
46744 pack_tmp = ishft(pack_tmp, -19)
46745 idata = idata + 1
46746 data_tmp = full_data(idata)
46747 data_tmp = ishft(data_tmp, 7)
46748 data_tmp = iand(data_tmp, mask_left(19))
46749 pack_tmp = ior(pack_tmp, data_tmp)
46750 ipack = ipack + 1
46751 packed_data(ipack) = pack_tmp
46752 data_tmp = full_data(idata)
46753 pack_tmp = ishft(data_tmp, 26)
46754 pack_tmp = ishft(pack_tmp, -26)
46755 idata = idata + 1
46756 data_tmp = full_data(idata)
46757 data_tmp = ishft(data_tmp, 7)
46758 data_tmp = iand(data_tmp, mask_left(26))
46759 pack_tmp = ior(pack_tmp, data_tmp)
46760 ipack = ipack + 1
46761 packed_data(ipack) = pack_tmp
46762 data_tmp = full_data(idata)
46763 pack_tmp = ishft(data_tmp, 33)
46764 pack_tmp = ishft(pack_tmp, -33)
46765 idata = idata + 1
46766 data_tmp = full_data(idata)
46767 data_tmp = ishft(data_tmp, 7)
46768 data_tmp = iand(data_tmp, mask_left(33))
46769 pack_tmp = ior(pack_tmp, data_tmp)
46770 ipack = ipack + 1
46771 packed_data(ipack) = pack_tmp
46772 data_tmp = full_data(idata)
46773 pack_tmp = ishft(data_tmp, 40)
46774 pack_tmp = ishft(pack_tmp, -40)
46775 idata = idata + 1
46776 data_tmp = full_data(idata)
46777 data_tmp = ishft(data_tmp, 7)
46778 data_tmp = iand(data_tmp, mask_left(40))
46779 pack_tmp = ior(pack_tmp, data_tmp)
46780 ipack = ipack + 1
46781 packed_data(ipack) = pack_tmp
46782 data_tmp = full_data(idata)
46783 pack_tmp = ishft(data_tmp, 47)
46784 pack_tmp = ishft(pack_tmp, -47)
46785 idata = idata + 1
46786 data_tmp = full_data(idata)
46787 data_tmp = ishft(data_tmp, 7)
46788 data_tmp = iand(data_tmp, mask_left(47))
46789 pack_tmp = ior(pack_tmp, data_tmp)
46790 ipack = ipack + 1
46791 packed_data(ipack) = pack_tmp
46792 data_tmp = full_data(idata)
46793 pack_tmp = ishft(data_tmp, 54)
46794 pack_tmp = ishft(pack_tmp, -54)
46795 idata = idata + 1
46796 data_tmp = full_data(idata)
46797 data_tmp = ishft(data_tmp, 7)
46798 data_tmp = iand(data_tmp, mask_left(54))
46799 pack_tmp = ior(pack_tmp, data_tmp)
46800 ipack = ipack + 1
46801 packed_data(ipack) = pack_tmp
46802 data_tmp = full_data(idata)
46803 pack_tmp = ishft(data_tmp, 61)
46804 pack_tmp = ishft(pack_tmp, -57)
46805 idata = idata + 1
46806 data_tmp = full_data(idata)
46807 data_tmp = ishft(data_tmp, 7)
46808 pack_tmp = ior(pack_tmp, data_tmp)
46809 pack_tmp = ishft(pack_tmp, -4)
46810 idata = idata + 1
46811 data_tmp = full_data(idata)
46812 data_tmp = ishft(data_tmp, 7)
46813 data_tmp = iand(data_tmp, mask_left(4))
46814 pack_tmp = ior(pack_tmp, data_tmp)
46815 ipack = ipack + 1
46816 packed_data(ipack) = pack_tmp
46817 data_tmp = full_data(idata)
46818 pack_tmp = ishft(data_tmp, 11)
46819 pack_tmp = ishft(pack_tmp, -11)
46820 idata = idata + 1
46821 data_tmp = full_data(idata)
46822 data_tmp = ishft(data_tmp, 7)
46823 data_tmp = iand(data_tmp, mask_left(11))
46824 pack_tmp = ior(pack_tmp, data_tmp)
46825 ipack = ipack + 1
46826 packed_data(ipack) = pack_tmp
46827 data_tmp = full_data(idata)
46828 pack_tmp = ishft(data_tmp, 18)
46829 pack_tmp = ishft(pack_tmp, -18)
46830 idata = idata + 1
46831 data_tmp = full_data(idata)
46832 data_tmp = ishft(data_tmp, 7)
46833 data_tmp = iand(data_tmp, mask_left(18))
46834 pack_tmp = ior(pack_tmp, data_tmp)
46835 ipack = ipack + 1
46836 packed_data(ipack) = pack_tmp
46837 data_tmp = full_data(idata)
46838 pack_tmp = ishft(data_tmp, 25)
46839 pack_tmp = ishft(pack_tmp, -25)
46840 idata = idata + 1
46841 data_tmp = full_data(idata)
46842 data_tmp = ishft(data_tmp, 7)
46843 data_tmp = iand(data_tmp, mask_left(25))
46844 pack_tmp = ior(pack_tmp, data_tmp)
46845 ipack = ipack + 1
46846 packed_data(ipack) = pack_tmp
46847 data_tmp = full_data(idata)
46848 pack_tmp = ishft(data_tmp, 32)
46849 pack_tmp = ishft(pack_tmp, -32)
46850 idata = idata + 1
46851 data_tmp = full_data(idata)
46852 data_tmp = ishft(data_tmp, 7)
46853 data_tmp = iand(data_tmp, mask_left(32))
46854 pack_tmp = ior(pack_tmp, data_tmp)
46855 ipack = ipack + 1
46856 packed_data(ipack) = pack_tmp
46857 data_tmp = full_data(idata)
46858 pack_tmp = ishft(data_tmp, 39)
46859 pack_tmp = ishft(pack_tmp, -39)
46860 idata = idata + 1
46861 data_tmp = full_data(idata)
46862 data_tmp = ishft(data_tmp, 7)
46863 data_tmp = iand(data_tmp, mask_left(39))
46864 pack_tmp = ior(pack_tmp, data_tmp)
46865 ipack = ipack + 1
46866 packed_data(ipack) = pack_tmp
46867 data_tmp = full_data(idata)
46868 pack_tmp = ishft(data_tmp, 46)
46869 pack_tmp = ishft(pack_tmp, -46)
46870 idata = idata + 1
46871 data_tmp = full_data(idata)
46872 data_tmp = ishft(data_tmp, 7)
46873 data_tmp = iand(data_tmp, mask_left(46))
46874 pack_tmp = ior(pack_tmp, data_tmp)
46875 ipack = ipack + 1
46876 packed_data(ipack) = pack_tmp
46877 data_tmp = full_data(idata)
46878 pack_tmp = ishft(data_tmp, 53)
46879 pack_tmp = ishft(pack_tmp, -53)
46880 idata = idata + 1
46881 data_tmp = full_data(idata)
46882 data_tmp = ishft(data_tmp, 7)
46883 data_tmp = iand(data_tmp, mask_left(53))
46884 pack_tmp = ior(pack_tmp, data_tmp)
46885 ipack = ipack + 1
46886 packed_data(ipack) = pack_tmp
46887 data_tmp = full_data(idata)
46888 pack_tmp = ishft(data_tmp, 60)
46889 pack_tmp = ishft(pack_tmp, -57)
46890 idata = idata + 1
46891 data_tmp = full_data(idata)
46892 data_tmp = ishft(data_tmp, 7)
46893 pack_tmp = ior(pack_tmp, data_tmp)
46894 pack_tmp = ishft(pack_tmp, -3)
46895 idata = idata + 1
46896 data_tmp = full_data(idata)
46897 data_tmp = ishft(data_tmp, 7)
46898 data_tmp = iand(data_tmp, mask_left(3))
46899 pack_tmp = ior(pack_tmp, data_tmp)
46900 ipack = ipack + 1
46901 packed_data(ipack) = pack_tmp
46902 data_tmp = full_data(idata)
46903 pack_tmp = ishft(data_tmp, 10)
46904 pack_tmp = ishft(pack_tmp, -10)
46905 idata = idata + 1
46906 data_tmp = full_data(idata)
46907 data_tmp = ishft(data_tmp, 7)
46908 data_tmp = iand(data_tmp, mask_left(10))
46909 pack_tmp = ior(pack_tmp, data_tmp)
46910 ipack = ipack + 1
46911 packed_data(ipack) = pack_tmp
46912 data_tmp = full_data(idata)
46913 pack_tmp = ishft(data_tmp, 17)
46914 pack_tmp = ishft(pack_tmp, -17)
46915 idata = idata + 1
46916 data_tmp = full_data(idata)
46917 data_tmp = ishft(data_tmp, 7)
46918 data_tmp = iand(data_tmp, mask_left(17))
46919 pack_tmp = ior(pack_tmp, data_tmp)
46920 ipack = ipack + 1
46921 packed_data(ipack) = pack_tmp
46922 data_tmp = full_data(idata)
46923 pack_tmp = ishft(data_tmp, 24)
46924 pack_tmp = ishft(pack_tmp, -24)
46925 idata = idata + 1
46926 data_tmp = full_data(idata)
46927 data_tmp = ishft(data_tmp, 7)
46928 data_tmp = iand(data_tmp, mask_left(24))
46929 pack_tmp = ior(pack_tmp, data_tmp)
46930 ipack = ipack + 1
46931 packed_data(ipack) = pack_tmp
46932 data_tmp = full_data(idata)
46933 pack_tmp = ishft(data_tmp, 31)
46934 pack_tmp = ishft(pack_tmp, -31)
46935 idata = idata + 1
46936 data_tmp = full_data(idata)
46937 data_tmp = ishft(data_tmp, 7)
46938 data_tmp = iand(data_tmp, mask_left(31))
46939 pack_tmp = ior(pack_tmp, data_tmp)
46940 ipack = ipack + 1
46941 packed_data(ipack) = pack_tmp
46942 data_tmp = full_data(idata)
46943 pack_tmp = ishft(data_tmp, 38)
46944 pack_tmp = ishft(pack_tmp, -38)
46945 idata = idata + 1
46946 data_tmp = full_data(idata)
46947 data_tmp = ishft(data_tmp, 7)
46948 data_tmp = iand(data_tmp, mask_left(38))
46949 pack_tmp = ior(pack_tmp, data_tmp)
46950 ipack = ipack + 1
46951 packed_data(ipack) = pack_tmp
46952 data_tmp = full_data(idata)
46953 pack_tmp = ishft(data_tmp, 45)
46954 pack_tmp = ishft(pack_tmp, -45)
46955 idata = idata + 1
46956 data_tmp = full_data(idata)
46957 data_tmp = ishft(data_tmp, 7)
46958 data_tmp = iand(data_tmp, mask_left(45))
46959 pack_tmp = ior(pack_tmp, data_tmp)
46960 ipack = ipack + 1
46961 packed_data(ipack) = pack_tmp
46962 data_tmp = full_data(idata)
46963 pack_tmp = ishft(data_tmp, 52)
46964 pack_tmp = ishft(pack_tmp, -52)
46965 idata = idata + 1
46966 data_tmp = full_data(idata)
46967 data_tmp = ishft(data_tmp, 7)
46968 data_tmp = iand(data_tmp, mask_left(52))
46969 pack_tmp = ior(pack_tmp, data_tmp)
46970 ipack = ipack + 1
46971 packed_data(ipack) = pack_tmp
46972 data_tmp = full_data(idata)
46973 pack_tmp = ishft(data_tmp, 59)
46974 pack_tmp = ishft(pack_tmp, -57)
46975 idata = idata + 1
46976 data_tmp = full_data(idata)
46977 data_tmp = ishft(data_tmp, 7)
46978 pack_tmp = ior(pack_tmp, data_tmp)
46979 pack_tmp = ishft(pack_tmp, -2)
46980 idata = idata + 1
46981 data_tmp = full_data(idata)
46982 data_tmp = ishft(data_tmp, 7)
46983 data_tmp = iand(data_tmp, mask_left(2))
46984 pack_tmp = ior(pack_tmp, data_tmp)
46985 ipack = ipack + 1
46986 packed_data(ipack) = pack_tmp
46987 data_tmp = full_data(idata)
46988 pack_tmp = ishft(data_tmp, 9)
46989 pack_tmp = ishft(pack_tmp, -9)
46990 idata = idata + 1
46991 data_tmp = full_data(idata)
46992 data_tmp = ishft(data_tmp, 7)
46993 data_tmp = iand(data_tmp, mask_left(9))
46994 pack_tmp = ior(pack_tmp, data_tmp)
46995 ipack = ipack + 1
46996 packed_data(ipack) = pack_tmp
46997 data_tmp = full_data(idata)
46998 pack_tmp = ishft(data_tmp, 16)
46999 pack_tmp = ishft(pack_tmp, -16)
47000 idata = idata + 1
47001 data_tmp = full_data(idata)
47002 data_tmp = ishft(data_tmp, 7)
47003 data_tmp = iand(data_tmp, mask_left(16))
47004 pack_tmp = ior(pack_tmp, data_tmp)
47005 ipack = ipack + 1
47006 packed_data(ipack) = pack_tmp
47007 data_tmp = full_data(idata)
47008 pack_tmp = ishft(data_tmp, 23)
47009 pack_tmp = ishft(pack_tmp, -23)
47010 idata = idata + 1
47011 data_tmp = full_data(idata)
47012 data_tmp = ishft(data_tmp, 7)
47013 data_tmp = iand(data_tmp, mask_left(23))
47014 pack_tmp = ior(pack_tmp, data_tmp)
47015 ipack = ipack + 1
47016 packed_data(ipack) = pack_tmp
47017 data_tmp = full_data(idata)
47018 pack_tmp = ishft(data_tmp, 30)
47019 pack_tmp = ishft(pack_tmp, -30)
47020 idata = idata + 1
47021 data_tmp = full_data(idata)
47022 data_tmp = ishft(data_tmp, 7)
47023 data_tmp = iand(data_tmp, mask_left(30))
47024 pack_tmp = ior(pack_tmp, data_tmp)
47025 ipack = ipack + 1
47026 packed_data(ipack) = pack_tmp
47027 data_tmp = full_data(idata)
47028 pack_tmp = ishft(data_tmp, 37)
47029 pack_tmp = ishft(pack_tmp, -37)
47030 idata = idata + 1
47031 data_tmp = full_data(idata)
47032 data_tmp = ishft(data_tmp, 7)
47033 data_tmp = iand(data_tmp, mask_left(37))
47034 pack_tmp = ior(pack_tmp, data_tmp)
47035 ipack = ipack + 1
47036 packed_data(ipack) = pack_tmp
47037 data_tmp = full_data(idata)
47038 pack_tmp = ishft(data_tmp, 44)
47039 pack_tmp = ishft(pack_tmp, -44)
47040 idata = idata + 1
47041 data_tmp = full_data(idata)
47042 data_tmp = ishft(data_tmp, 7)
47043 data_tmp = iand(data_tmp, mask_left(44))
47044 pack_tmp = ior(pack_tmp, data_tmp)
47045 ipack = ipack + 1
47046 packed_data(ipack) = pack_tmp
47047 data_tmp = full_data(idata)
47048 pack_tmp = ishft(data_tmp, 51)
47049 pack_tmp = ishft(pack_tmp, -51)
47050 idata = idata + 1
47051 data_tmp = full_data(idata)
47052 data_tmp = ishft(data_tmp, 7)
47053 data_tmp = iand(data_tmp, mask_left(51))
47054 pack_tmp = ior(pack_tmp, data_tmp)
47055 ipack = ipack + 1
47056 packed_data(ipack) = pack_tmp
47057 data_tmp = full_data(idata)
47058 pack_tmp = ishft(data_tmp, 58)
47059 pack_tmp = ishft(pack_tmp, -57)
47060 idata = idata + 1
47061 data_tmp = full_data(idata)
47062 data_tmp = ishft(data_tmp, 7)
47063 pack_tmp = ior(pack_tmp, data_tmp)
47064 pack_tmp = ishft(pack_tmp, -1)
47065 idata = idata + 1
47066 data_tmp = full_data(idata)
47067 data_tmp = ishft(data_tmp, 7)
47068 data_tmp = iand(data_tmp, mask_left(1))
47069 pack_tmp = ior(pack_tmp, data_tmp)
47070 ipack = ipack + 1
47071 packed_data(ipack) = pack_tmp
47072 data_tmp = full_data(idata)
47073 pack_tmp = ishft(data_tmp, 8)
47074 pack_tmp = ishft(pack_tmp, -8)
47075 idata = idata + 1
47076 data_tmp = full_data(idata)
47077 data_tmp = ishft(data_tmp, 7)
47078 data_tmp = iand(data_tmp, mask_left(8))
47079 pack_tmp = ior(pack_tmp, data_tmp)
47080 ipack = ipack + 1
47081 packed_data(ipack) = pack_tmp
47082 data_tmp = full_data(idata)
47083 pack_tmp = ishft(data_tmp, 15)
47084 pack_tmp = ishft(pack_tmp, -15)
47085 idata = idata + 1
47086 data_tmp = full_data(idata)
47087 data_tmp = ishft(data_tmp, 7)
47088 data_tmp = iand(data_tmp, mask_left(15))
47089 pack_tmp = ior(pack_tmp, data_tmp)
47090 ipack = ipack + 1
47091 packed_data(ipack) = pack_tmp
47092 data_tmp = full_data(idata)
47093 pack_tmp = ishft(data_tmp, 22)
47094 pack_tmp = ishft(pack_tmp, -22)
47095 idata = idata + 1
47096 data_tmp = full_data(idata)
47097 data_tmp = ishft(data_tmp, 7)
47098 data_tmp = iand(data_tmp, mask_left(22))
47099 pack_tmp = ior(pack_tmp, data_tmp)
47100 ipack = ipack + 1
47101 packed_data(ipack) = pack_tmp
47102 data_tmp = full_data(idata)
47103 pack_tmp = ishft(data_tmp, 29)
47104 pack_tmp = ishft(pack_tmp, -29)
47105 idata = idata + 1
47106 data_tmp = full_data(idata)
47107 data_tmp = ishft(data_tmp, 7)
47108 data_tmp = iand(data_tmp, mask_left(29))
47109 pack_tmp = ior(pack_tmp, data_tmp)
47110 ipack = ipack + 1
47111 packed_data(ipack) = pack_tmp
47112 data_tmp = full_data(idata)
47113 pack_tmp = ishft(data_tmp, 36)
47114 pack_tmp = ishft(pack_tmp, -36)
47115 idata = idata + 1
47116 data_tmp = full_data(idata)
47117 data_tmp = ishft(data_tmp, 7)
47118 data_tmp = iand(data_tmp, mask_left(36))
47119 pack_tmp = ior(pack_tmp, data_tmp)
47120 ipack = ipack + 1
47121 packed_data(ipack) = pack_tmp
47122 data_tmp = full_data(idata)
47123 pack_tmp = ishft(data_tmp, 43)
47124 pack_tmp = ishft(pack_tmp, -43)
47125 idata = idata + 1
47126 data_tmp = full_data(idata)
47127 data_tmp = ishft(data_tmp, 7)
47128 data_tmp = iand(data_tmp, mask_left(43))
47129 pack_tmp = ior(pack_tmp, data_tmp)
47130 ipack = ipack + 1
47131 packed_data(ipack) = pack_tmp
47132 data_tmp = full_data(idata)
47133 pack_tmp = ishft(data_tmp, 50)
47134 pack_tmp = ishft(pack_tmp, -50)
47135 idata = idata + 1
47136 data_tmp = full_data(idata)
47137 data_tmp = ishft(data_tmp, 7)
47138 data_tmp = iand(data_tmp, mask_left(50))
47139 pack_tmp = ior(pack_tmp, data_tmp)
47140 ipack = ipack + 1
47141 packed_data(ipack) = pack_tmp
47142 data_tmp = full_data(idata)
47143 pack_tmp = ishft(data_tmp, 57)
47144 pack_tmp = ishft(pack_tmp, -57)
47145 idata = idata + 1
47146 data_tmp = full_data(idata)
47147 data_tmp = ishft(data_tmp, 7)
47148 pack_tmp = ior(pack_tmp, data_tmp)
47149 pack_tmp = ishft(pack_tmp, 0)
47150 pack_tmp = ishft(pack_tmp, 0)
47151 ipack = ipack + 1
47152 packed_data(ipack) = pack_tmp
47153 END DO
47154 IF (ndata_rep < ndata) THEN
47155 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
47156 END IF
47157 END SUBROUTINE ints2bits_57
47158
47159! **************************************************************************************************
47160!> \brief ...
47161!> \param Ndata ...
47162!> \param packed_data ...
47163!> \param full_data ...
47164! **************************************************************************************************
47165 SUBROUTINE bits2ints_57(Ndata, packed_data, full_data)
47166 INTEGER, INTENT(IN) :: Ndata
47167 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
47168 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
47169
47170 INTEGER, PARAMETER :: Nbits = 57
47171
47172 INTEGER :: idata, ipack, kdata, Ndata_rep
47173 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
47174
47175 ipack = 0
47176 idata = 0
47177 pack_tmp = 0
47178 ndata_rep = (ndata/64)*64
47179 DO kdata = 1, ndata_rep, 64
47180 idata = idata + 1
47181 data_tmp = ishft(pack_tmp, 57)
47182 ipack = ipack + 1
47183 pack_tmp = packed_data(ipack)
47184 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(57)))
47185 pack_tmp = ishft(pack_tmp, -57)
47186 idata = idata + 1
47187 data_tmp = ishft(pack_tmp, 50)
47188 ipack = ipack + 1
47189 pack_tmp = packed_data(ipack)
47190 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
47191 pack_tmp = ishft(pack_tmp, -50)
47192 idata = idata + 1
47193 data_tmp = ishft(pack_tmp, 43)
47194 ipack = ipack + 1
47195 pack_tmp = packed_data(ipack)
47196 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(43)))
47197 pack_tmp = ishft(pack_tmp, -43)
47198 idata = idata + 1
47199 data_tmp = ishft(pack_tmp, 36)
47200 ipack = ipack + 1
47201 pack_tmp = packed_data(ipack)
47202 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
47203 pack_tmp = ishft(pack_tmp, -36)
47204 idata = idata + 1
47205 data_tmp = ishft(pack_tmp, 29)
47206 ipack = ipack + 1
47207 pack_tmp = packed_data(ipack)
47208 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
47209 pack_tmp = ishft(pack_tmp, -29)
47210 idata = idata + 1
47211 data_tmp = ishft(pack_tmp, 22)
47212 ipack = ipack + 1
47213 pack_tmp = packed_data(ipack)
47214 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
47215 pack_tmp = ishft(pack_tmp, -22)
47216 idata = idata + 1
47217 data_tmp = ishft(pack_tmp, 15)
47218 ipack = ipack + 1
47219 pack_tmp = packed_data(ipack)
47220 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
47221 pack_tmp = ishft(pack_tmp, -15)
47222 idata = idata + 1
47223 data_tmp = ishft(pack_tmp, 8)
47224 ipack = ipack + 1
47225 pack_tmp = packed_data(ipack)
47226 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
47227 pack_tmp = ishft(pack_tmp, -8)
47228 idata = idata + 1
47229 data_tmp = ishft(pack_tmp, 1)
47230 ipack = ipack + 1
47231 pack_tmp = packed_data(ipack)
47232 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
47233 pack_tmp = ishft(pack_tmp, -1)
47234 idata = idata + 1
47235 data_tmp = iand(pack_tmp, mask_right(nbits))
47236 full_data(idata) = data_tmp
47237 pack_tmp = ishft(pack_tmp, -nbits)
47238 idata = idata + 1
47239 data_tmp = ishft(pack_tmp, 51)
47240 ipack = ipack + 1
47241 pack_tmp = packed_data(ipack)
47242 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(51)))
47243 pack_tmp = ishft(pack_tmp, -51)
47244 idata = idata + 1
47245 data_tmp = ishft(pack_tmp, 44)
47246 ipack = ipack + 1
47247 pack_tmp = packed_data(ipack)
47248 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
47249 pack_tmp = ishft(pack_tmp, -44)
47250 idata = idata + 1
47251 data_tmp = ishft(pack_tmp, 37)
47252 ipack = ipack + 1
47253 pack_tmp = packed_data(ipack)
47254 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
47255 pack_tmp = ishft(pack_tmp, -37)
47256 idata = idata + 1
47257 data_tmp = ishft(pack_tmp, 30)
47258 ipack = ipack + 1
47259 pack_tmp = packed_data(ipack)
47260 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
47261 pack_tmp = ishft(pack_tmp, -30)
47262 idata = idata + 1
47263 data_tmp = ishft(pack_tmp, 23)
47264 ipack = ipack + 1
47265 pack_tmp = packed_data(ipack)
47266 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
47267 pack_tmp = ishft(pack_tmp, -23)
47268 idata = idata + 1
47269 data_tmp = ishft(pack_tmp, 16)
47270 ipack = ipack + 1
47271 pack_tmp = packed_data(ipack)
47272 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
47273 pack_tmp = ishft(pack_tmp, -16)
47274 idata = idata + 1
47275 data_tmp = ishft(pack_tmp, 9)
47276 ipack = ipack + 1
47277 pack_tmp = packed_data(ipack)
47278 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
47279 pack_tmp = ishft(pack_tmp, -9)
47280 idata = idata + 1
47281 data_tmp = ishft(pack_tmp, 2)
47282 ipack = ipack + 1
47283 pack_tmp = packed_data(ipack)
47284 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
47285 pack_tmp = ishft(pack_tmp, -2)
47286 idata = idata + 1
47287 data_tmp = iand(pack_tmp, mask_right(nbits))
47288 full_data(idata) = data_tmp
47289 pack_tmp = ishft(pack_tmp, -nbits)
47290 idata = idata + 1
47291 data_tmp = ishft(pack_tmp, 52)
47292 ipack = ipack + 1
47293 pack_tmp = packed_data(ipack)
47294 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
47295 pack_tmp = ishft(pack_tmp, -52)
47296 idata = idata + 1
47297 data_tmp = ishft(pack_tmp, 45)
47298 ipack = ipack + 1
47299 pack_tmp = packed_data(ipack)
47300 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(45)))
47301 pack_tmp = ishft(pack_tmp, -45)
47302 idata = idata + 1
47303 data_tmp = ishft(pack_tmp, 38)
47304 ipack = ipack + 1
47305 pack_tmp = packed_data(ipack)
47306 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
47307 pack_tmp = ishft(pack_tmp, -38)
47308 idata = idata + 1
47309 data_tmp = ishft(pack_tmp, 31)
47310 ipack = ipack + 1
47311 pack_tmp = packed_data(ipack)
47312 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
47313 pack_tmp = ishft(pack_tmp, -31)
47314 idata = idata + 1
47315 data_tmp = ishft(pack_tmp, 24)
47316 ipack = ipack + 1
47317 pack_tmp = packed_data(ipack)
47318 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
47319 pack_tmp = ishft(pack_tmp, -24)
47320 idata = idata + 1
47321 data_tmp = ishft(pack_tmp, 17)
47322 ipack = ipack + 1
47323 pack_tmp = packed_data(ipack)
47324 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
47325 pack_tmp = ishft(pack_tmp, -17)
47326 idata = idata + 1
47327 data_tmp = ishft(pack_tmp, 10)
47328 ipack = ipack + 1
47329 pack_tmp = packed_data(ipack)
47330 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
47331 pack_tmp = ishft(pack_tmp, -10)
47332 idata = idata + 1
47333 data_tmp = ishft(pack_tmp, 3)
47334 ipack = ipack + 1
47335 pack_tmp = packed_data(ipack)
47336 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
47337 pack_tmp = ishft(pack_tmp, -3)
47338 idata = idata + 1
47339 data_tmp = iand(pack_tmp, mask_right(nbits))
47340 full_data(idata) = data_tmp
47341 pack_tmp = ishft(pack_tmp, -nbits)
47342 idata = idata + 1
47343 data_tmp = ishft(pack_tmp, 53)
47344 ipack = ipack + 1
47345 pack_tmp = packed_data(ipack)
47346 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(53)))
47347 pack_tmp = ishft(pack_tmp, -53)
47348 idata = idata + 1
47349 data_tmp = ishft(pack_tmp, 46)
47350 ipack = ipack + 1
47351 pack_tmp = packed_data(ipack)
47352 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
47353 pack_tmp = ishft(pack_tmp, -46)
47354 idata = idata + 1
47355 data_tmp = ishft(pack_tmp, 39)
47356 ipack = ipack + 1
47357 pack_tmp = packed_data(ipack)
47358 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
47359 pack_tmp = ishft(pack_tmp, -39)
47360 idata = idata + 1
47361 data_tmp = ishft(pack_tmp, 32)
47362 ipack = ipack + 1
47363 pack_tmp = packed_data(ipack)
47364 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
47365 pack_tmp = ishft(pack_tmp, -32)
47366 idata = idata + 1
47367 data_tmp = ishft(pack_tmp, 25)
47368 ipack = ipack + 1
47369 pack_tmp = packed_data(ipack)
47370 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
47371 pack_tmp = ishft(pack_tmp, -25)
47372 idata = idata + 1
47373 data_tmp = ishft(pack_tmp, 18)
47374 ipack = ipack + 1
47375 pack_tmp = packed_data(ipack)
47376 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
47377 pack_tmp = ishft(pack_tmp, -18)
47378 idata = idata + 1
47379 data_tmp = ishft(pack_tmp, 11)
47380 ipack = ipack + 1
47381 pack_tmp = packed_data(ipack)
47382 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
47383 pack_tmp = ishft(pack_tmp, -11)
47384 idata = idata + 1
47385 data_tmp = ishft(pack_tmp, 4)
47386 ipack = ipack + 1
47387 pack_tmp = packed_data(ipack)
47388 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
47389 pack_tmp = ishft(pack_tmp, -4)
47390 idata = idata + 1
47391 data_tmp = iand(pack_tmp, mask_right(nbits))
47392 full_data(idata) = data_tmp
47393 pack_tmp = ishft(pack_tmp, -nbits)
47394 idata = idata + 1
47395 data_tmp = ishft(pack_tmp, 54)
47396 ipack = ipack + 1
47397 pack_tmp = packed_data(ipack)
47398 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(54)))
47399 pack_tmp = ishft(pack_tmp, -54)
47400 idata = idata + 1
47401 data_tmp = ishft(pack_tmp, 47)
47402 ipack = ipack + 1
47403 pack_tmp = packed_data(ipack)
47404 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(47)))
47405 pack_tmp = ishft(pack_tmp, -47)
47406 idata = idata + 1
47407 data_tmp = ishft(pack_tmp, 40)
47408 ipack = ipack + 1
47409 pack_tmp = packed_data(ipack)
47410 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
47411 pack_tmp = ishft(pack_tmp, -40)
47412 idata = idata + 1
47413 data_tmp = ishft(pack_tmp, 33)
47414 ipack = ipack + 1
47415 pack_tmp = packed_data(ipack)
47416 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
47417 pack_tmp = ishft(pack_tmp, -33)
47418 idata = idata + 1
47419 data_tmp = ishft(pack_tmp, 26)
47420 ipack = ipack + 1
47421 pack_tmp = packed_data(ipack)
47422 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
47423 pack_tmp = ishft(pack_tmp, -26)
47424 idata = idata + 1
47425 data_tmp = ishft(pack_tmp, 19)
47426 ipack = ipack + 1
47427 pack_tmp = packed_data(ipack)
47428 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
47429 pack_tmp = ishft(pack_tmp, -19)
47430 idata = idata + 1
47431 data_tmp = ishft(pack_tmp, 12)
47432 ipack = ipack + 1
47433 pack_tmp = packed_data(ipack)
47434 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
47435 pack_tmp = ishft(pack_tmp, -12)
47436 idata = idata + 1
47437 data_tmp = ishft(pack_tmp, 5)
47438 ipack = ipack + 1
47439 pack_tmp = packed_data(ipack)
47440 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
47441 pack_tmp = ishft(pack_tmp, -5)
47442 idata = idata + 1
47443 data_tmp = iand(pack_tmp, mask_right(nbits))
47444 full_data(idata) = data_tmp
47445 pack_tmp = ishft(pack_tmp, -nbits)
47446 idata = idata + 1
47447 data_tmp = ishft(pack_tmp, 55)
47448 ipack = ipack + 1
47449 pack_tmp = packed_data(ipack)
47450 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(55)))
47451 pack_tmp = ishft(pack_tmp, -55)
47452 idata = idata + 1
47453 data_tmp = ishft(pack_tmp, 48)
47454 ipack = ipack + 1
47455 pack_tmp = packed_data(ipack)
47456 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
47457 pack_tmp = ishft(pack_tmp, -48)
47458 idata = idata + 1
47459 data_tmp = ishft(pack_tmp, 41)
47460 ipack = ipack + 1
47461 pack_tmp = packed_data(ipack)
47462 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(41)))
47463 pack_tmp = ishft(pack_tmp, -41)
47464 idata = idata + 1
47465 data_tmp = ishft(pack_tmp, 34)
47466 ipack = ipack + 1
47467 pack_tmp = packed_data(ipack)
47468 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
47469 pack_tmp = ishft(pack_tmp, -34)
47470 idata = idata + 1
47471 data_tmp = ishft(pack_tmp, 27)
47472 ipack = ipack + 1
47473 pack_tmp = packed_data(ipack)
47474 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
47475 pack_tmp = ishft(pack_tmp, -27)
47476 idata = idata + 1
47477 data_tmp = ishft(pack_tmp, 20)
47478 ipack = ipack + 1
47479 pack_tmp = packed_data(ipack)
47480 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
47481 pack_tmp = ishft(pack_tmp, -20)
47482 idata = idata + 1
47483 data_tmp = ishft(pack_tmp, 13)
47484 ipack = ipack + 1
47485 pack_tmp = packed_data(ipack)
47486 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
47487 pack_tmp = ishft(pack_tmp, -13)
47488 idata = idata + 1
47489 data_tmp = ishft(pack_tmp, 6)
47490 ipack = ipack + 1
47491 pack_tmp = packed_data(ipack)
47492 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
47493 pack_tmp = ishft(pack_tmp, -6)
47494 idata = idata + 1
47495 data_tmp = iand(pack_tmp, mask_right(nbits))
47496 full_data(idata) = data_tmp
47497 pack_tmp = ishft(pack_tmp, -nbits)
47498 idata = idata + 1
47499 data_tmp = ishft(pack_tmp, 56)
47500 ipack = ipack + 1
47501 pack_tmp = packed_data(ipack)
47502 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
47503 pack_tmp = ishft(pack_tmp, -56)
47504 idata = idata + 1
47505 data_tmp = ishft(pack_tmp, 49)
47506 ipack = ipack + 1
47507 pack_tmp = packed_data(ipack)
47508 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(49)))
47509 pack_tmp = ishft(pack_tmp, -49)
47510 idata = idata + 1
47511 data_tmp = ishft(pack_tmp, 42)
47512 ipack = ipack + 1
47513 pack_tmp = packed_data(ipack)
47514 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
47515 pack_tmp = ishft(pack_tmp, -42)
47516 idata = idata + 1
47517 data_tmp = ishft(pack_tmp, 35)
47518 ipack = ipack + 1
47519 pack_tmp = packed_data(ipack)
47520 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
47521 pack_tmp = ishft(pack_tmp, -35)
47522 idata = idata + 1
47523 data_tmp = ishft(pack_tmp, 28)
47524 ipack = ipack + 1
47525 pack_tmp = packed_data(ipack)
47526 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
47527 pack_tmp = ishft(pack_tmp, -28)
47528 idata = idata + 1
47529 data_tmp = ishft(pack_tmp, 21)
47530 ipack = ipack + 1
47531 pack_tmp = packed_data(ipack)
47532 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
47533 pack_tmp = ishft(pack_tmp, -21)
47534 idata = idata + 1
47535 data_tmp = ishft(pack_tmp, 14)
47536 ipack = ipack + 1
47537 pack_tmp = packed_data(ipack)
47538 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
47539 pack_tmp = ishft(pack_tmp, -14)
47540 idata = idata + 1
47541 data_tmp = ishft(pack_tmp, 7)
47542 ipack = ipack + 1
47543 pack_tmp = packed_data(ipack)
47544 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
47545 pack_tmp = ishft(pack_tmp, -7)
47546 idata = idata + 1
47547 data_tmp = iand(pack_tmp, mask_right(nbits))
47548 full_data(idata) = data_tmp
47549 pack_tmp = ishft(pack_tmp, -nbits)
47550 END DO
47551 IF (ndata_rep < ndata) THEN
47552 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
47553 END IF
47554 END SUBROUTINE bits2ints_57
47555
47556! **************************************************************************************************
47557!> \brief ...
47558!> \param Ndata ...
47559!> \param packed_data ...
47560!> \param full_data ...
47561! **************************************************************************************************
47562 SUBROUTINE ints2bits_58(Ndata, packed_data, full_data)
47563 INTEGER, INTENT(IN) :: Ndata
47564 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
47565 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
47566
47567 INTEGER, PARAMETER :: Nbits = 58
47568
47569 INTEGER :: idata, ipack, kdata, Ndata_rep
47570 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
47571
47572 idata = 0
47573 ipack = 0
47574 ndata_rep = (ndata/64)*64
47575 DO kdata = 1, ndata_rep, 64
47576 pack_tmp = 0
47577 idata = idata + 1
47578 data_tmp = full_data(idata)
47579 data_tmp = ishft(data_tmp, 6)
47580 pack_tmp = ior(pack_tmp, data_tmp)
47581 pack_tmp = ishft(pack_tmp, -6)
47582 idata = idata + 1
47583 data_tmp = full_data(idata)
47584 data_tmp = ishft(data_tmp, 6)
47585 data_tmp = iand(data_tmp, mask_left(6))
47586 pack_tmp = ior(pack_tmp, data_tmp)
47587 ipack = ipack + 1
47588 packed_data(ipack) = pack_tmp
47589 data_tmp = full_data(idata)
47590 pack_tmp = ishft(data_tmp, 12)
47591 pack_tmp = ishft(pack_tmp, -12)
47592 idata = idata + 1
47593 data_tmp = full_data(idata)
47594 data_tmp = ishft(data_tmp, 6)
47595 data_tmp = iand(data_tmp, mask_left(12))
47596 pack_tmp = ior(pack_tmp, data_tmp)
47597 ipack = ipack + 1
47598 packed_data(ipack) = pack_tmp
47599 data_tmp = full_data(idata)
47600 pack_tmp = ishft(data_tmp, 18)
47601 pack_tmp = ishft(pack_tmp, -18)
47602 idata = idata + 1
47603 data_tmp = full_data(idata)
47604 data_tmp = ishft(data_tmp, 6)
47605 data_tmp = iand(data_tmp, mask_left(18))
47606 pack_tmp = ior(pack_tmp, data_tmp)
47607 ipack = ipack + 1
47608 packed_data(ipack) = pack_tmp
47609 data_tmp = full_data(idata)
47610 pack_tmp = ishft(data_tmp, 24)
47611 pack_tmp = ishft(pack_tmp, -24)
47612 idata = idata + 1
47613 data_tmp = full_data(idata)
47614 data_tmp = ishft(data_tmp, 6)
47615 data_tmp = iand(data_tmp, mask_left(24))
47616 pack_tmp = ior(pack_tmp, data_tmp)
47617 ipack = ipack + 1
47618 packed_data(ipack) = pack_tmp
47619 data_tmp = full_data(idata)
47620 pack_tmp = ishft(data_tmp, 30)
47621 pack_tmp = ishft(pack_tmp, -30)
47622 idata = idata + 1
47623 data_tmp = full_data(idata)
47624 data_tmp = ishft(data_tmp, 6)
47625 data_tmp = iand(data_tmp, mask_left(30))
47626 pack_tmp = ior(pack_tmp, data_tmp)
47627 ipack = ipack + 1
47628 packed_data(ipack) = pack_tmp
47629 data_tmp = full_data(idata)
47630 pack_tmp = ishft(data_tmp, 36)
47631 pack_tmp = ishft(pack_tmp, -36)
47632 idata = idata + 1
47633 data_tmp = full_data(idata)
47634 data_tmp = ishft(data_tmp, 6)
47635 data_tmp = iand(data_tmp, mask_left(36))
47636 pack_tmp = ior(pack_tmp, data_tmp)
47637 ipack = ipack + 1
47638 packed_data(ipack) = pack_tmp
47639 data_tmp = full_data(idata)
47640 pack_tmp = ishft(data_tmp, 42)
47641 pack_tmp = ishft(pack_tmp, -42)
47642 idata = idata + 1
47643 data_tmp = full_data(idata)
47644 data_tmp = ishft(data_tmp, 6)
47645 data_tmp = iand(data_tmp, mask_left(42))
47646 pack_tmp = ior(pack_tmp, data_tmp)
47647 ipack = ipack + 1
47648 packed_data(ipack) = pack_tmp
47649 data_tmp = full_data(idata)
47650 pack_tmp = ishft(data_tmp, 48)
47651 pack_tmp = ishft(pack_tmp, -48)
47652 idata = idata + 1
47653 data_tmp = full_data(idata)
47654 data_tmp = ishft(data_tmp, 6)
47655 data_tmp = iand(data_tmp, mask_left(48))
47656 pack_tmp = ior(pack_tmp, data_tmp)
47657 ipack = ipack + 1
47658 packed_data(ipack) = pack_tmp
47659 data_tmp = full_data(idata)
47660 pack_tmp = ishft(data_tmp, 54)
47661 pack_tmp = ishft(pack_tmp, -54)
47662 idata = idata + 1
47663 data_tmp = full_data(idata)
47664 data_tmp = ishft(data_tmp, 6)
47665 data_tmp = iand(data_tmp, mask_left(54))
47666 pack_tmp = ior(pack_tmp, data_tmp)
47667 ipack = ipack + 1
47668 packed_data(ipack) = pack_tmp
47669 data_tmp = full_data(idata)
47670 pack_tmp = ishft(data_tmp, 60)
47671 pack_tmp = ishft(pack_tmp, -58)
47672 idata = idata + 1
47673 data_tmp = full_data(idata)
47674 data_tmp = ishft(data_tmp, 6)
47675 pack_tmp = ior(pack_tmp, data_tmp)
47676 pack_tmp = ishft(pack_tmp, -2)
47677 idata = idata + 1
47678 data_tmp = full_data(idata)
47679 data_tmp = ishft(data_tmp, 6)
47680 data_tmp = iand(data_tmp, mask_left(2))
47681 pack_tmp = ior(pack_tmp, data_tmp)
47682 ipack = ipack + 1
47683 packed_data(ipack) = pack_tmp
47684 data_tmp = full_data(idata)
47685 pack_tmp = ishft(data_tmp, 8)
47686 pack_tmp = ishft(pack_tmp, -8)
47687 idata = idata + 1
47688 data_tmp = full_data(idata)
47689 data_tmp = ishft(data_tmp, 6)
47690 data_tmp = iand(data_tmp, mask_left(8))
47691 pack_tmp = ior(pack_tmp, data_tmp)
47692 ipack = ipack + 1
47693 packed_data(ipack) = pack_tmp
47694 data_tmp = full_data(idata)
47695 pack_tmp = ishft(data_tmp, 14)
47696 pack_tmp = ishft(pack_tmp, -14)
47697 idata = idata + 1
47698 data_tmp = full_data(idata)
47699 data_tmp = ishft(data_tmp, 6)
47700 data_tmp = iand(data_tmp, mask_left(14))
47701 pack_tmp = ior(pack_tmp, data_tmp)
47702 ipack = ipack + 1
47703 packed_data(ipack) = pack_tmp
47704 data_tmp = full_data(idata)
47705 pack_tmp = ishft(data_tmp, 20)
47706 pack_tmp = ishft(pack_tmp, -20)
47707 idata = idata + 1
47708 data_tmp = full_data(idata)
47709 data_tmp = ishft(data_tmp, 6)
47710 data_tmp = iand(data_tmp, mask_left(20))
47711 pack_tmp = ior(pack_tmp, data_tmp)
47712 ipack = ipack + 1
47713 packed_data(ipack) = pack_tmp
47714 data_tmp = full_data(idata)
47715 pack_tmp = ishft(data_tmp, 26)
47716 pack_tmp = ishft(pack_tmp, -26)
47717 idata = idata + 1
47718 data_tmp = full_data(idata)
47719 data_tmp = ishft(data_tmp, 6)
47720 data_tmp = iand(data_tmp, mask_left(26))
47721 pack_tmp = ior(pack_tmp, data_tmp)
47722 ipack = ipack + 1
47723 packed_data(ipack) = pack_tmp
47724 data_tmp = full_data(idata)
47725 pack_tmp = ishft(data_tmp, 32)
47726 pack_tmp = ishft(pack_tmp, -32)
47727 idata = idata + 1
47728 data_tmp = full_data(idata)
47729 data_tmp = ishft(data_tmp, 6)
47730 data_tmp = iand(data_tmp, mask_left(32))
47731 pack_tmp = ior(pack_tmp, data_tmp)
47732 ipack = ipack + 1
47733 packed_data(ipack) = pack_tmp
47734 data_tmp = full_data(idata)
47735 pack_tmp = ishft(data_tmp, 38)
47736 pack_tmp = ishft(pack_tmp, -38)
47737 idata = idata + 1
47738 data_tmp = full_data(idata)
47739 data_tmp = ishft(data_tmp, 6)
47740 data_tmp = iand(data_tmp, mask_left(38))
47741 pack_tmp = ior(pack_tmp, data_tmp)
47742 ipack = ipack + 1
47743 packed_data(ipack) = pack_tmp
47744 data_tmp = full_data(idata)
47745 pack_tmp = ishft(data_tmp, 44)
47746 pack_tmp = ishft(pack_tmp, -44)
47747 idata = idata + 1
47748 data_tmp = full_data(idata)
47749 data_tmp = ishft(data_tmp, 6)
47750 data_tmp = iand(data_tmp, mask_left(44))
47751 pack_tmp = ior(pack_tmp, data_tmp)
47752 ipack = ipack + 1
47753 packed_data(ipack) = pack_tmp
47754 data_tmp = full_data(idata)
47755 pack_tmp = ishft(data_tmp, 50)
47756 pack_tmp = ishft(pack_tmp, -50)
47757 idata = idata + 1
47758 data_tmp = full_data(idata)
47759 data_tmp = ishft(data_tmp, 6)
47760 data_tmp = iand(data_tmp, mask_left(50))
47761 pack_tmp = ior(pack_tmp, data_tmp)
47762 ipack = ipack + 1
47763 packed_data(ipack) = pack_tmp
47764 data_tmp = full_data(idata)
47765 pack_tmp = ishft(data_tmp, 56)
47766 pack_tmp = ishft(pack_tmp, -56)
47767 idata = idata + 1
47768 data_tmp = full_data(idata)
47769 data_tmp = ishft(data_tmp, 6)
47770 data_tmp = iand(data_tmp, mask_left(56))
47771 pack_tmp = ior(pack_tmp, data_tmp)
47772 ipack = ipack + 1
47773 packed_data(ipack) = pack_tmp
47774 data_tmp = full_data(idata)
47775 pack_tmp = ishft(data_tmp, 62)
47776 pack_tmp = ishft(pack_tmp, -58)
47777 idata = idata + 1
47778 data_tmp = full_data(idata)
47779 data_tmp = ishft(data_tmp, 6)
47780 pack_tmp = ior(pack_tmp, data_tmp)
47781 pack_tmp = ishft(pack_tmp, -4)
47782 idata = idata + 1
47783 data_tmp = full_data(idata)
47784 data_tmp = ishft(data_tmp, 6)
47785 data_tmp = iand(data_tmp, mask_left(4))
47786 pack_tmp = ior(pack_tmp, data_tmp)
47787 ipack = ipack + 1
47788 packed_data(ipack) = pack_tmp
47789 data_tmp = full_data(idata)
47790 pack_tmp = ishft(data_tmp, 10)
47791 pack_tmp = ishft(pack_tmp, -10)
47792 idata = idata + 1
47793 data_tmp = full_data(idata)
47794 data_tmp = ishft(data_tmp, 6)
47795 data_tmp = iand(data_tmp, mask_left(10))
47796 pack_tmp = ior(pack_tmp, data_tmp)
47797 ipack = ipack + 1
47798 packed_data(ipack) = pack_tmp
47799 data_tmp = full_data(idata)
47800 pack_tmp = ishft(data_tmp, 16)
47801 pack_tmp = ishft(pack_tmp, -16)
47802 idata = idata + 1
47803 data_tmp = full_data(idata)
47804 data_tmp = ishft(data_tmp, 6)
47805 data_tmp = iand(data_tmp, mask_left(16))
47806 pack_tmp = ior(pack_tmp, data_tmp)
47807 ipack = ipack + 1
47808 packed_data(ipack) = pack_tmp
47809 data_tmp = full_data(idata)
47810 pack_tmp = ishft(data_tmp, 22)
47811 pack_tmp = ishft(pack_tmp, -22)
47812 idata = idata + 1
47813 data_tmp = full_data(idata)
47814 data_tmp = ishft(data_tmp, 6)
47815 data_tmp = iand(data_tmp, mask_left(22))
47816 pack_tmp = ior(pack_tmp, data_tmp)
47817 ipack = ipack + 1
47818 packed_data(ipack) = pack_tmp
47819 data_tmp = full_data(idata)
47820 pack_tmp = ishft(data_tmp, 28)
47821 pack_tmp = ishft(pack_tmp, -28)
47822 idata = idata + 1
47823 data_tmp = full_data(idata)
47824 data_tmp = ishft(data_tmp, 6)
47825 data_tmp = iand(data_tmp, mask_left(28))
47826 pack_tmp = ior(pack_tmp, data_tmp)
47827 ipack = ipack + 1
47828 packed_data(ipack) = pack_tmp
47829 data_tmp = full_data(idata)
47830 pack_tmp = ishft(data_tmp, 34)
47831 pack_tmp = ishft(pack_tmp, -34)
47832 idata = idata + 1
47833 data_tmp = full_data(idata)
47834 data_tmp = ishft(data_tmp, 6)
47835 data_tmp = iand(data_tmp, mask_left(34))
47836 pack_tmp = ior(pack_tmp, data_tmp)
47837 ipack = ipack + 1
47838 packed_data(ipack) = pack_tmp
47839 data_tmp = full_data(idata)
47840 pack_tmp = ishft(data_tmp, 40)
47841 pack_tmp = ishft(pack_tmp, -40)
47842 idata = idata + 1
47843 data_tmp = full_data(idata)
47844 data_tmp = ishft(data_tmp, 6)
47845 data_tmp = iand(data_tmp, mask_left(40))
47846 pack_tmp = ior(pack_tmp, data_tmp)
47847 ipack = ipack + 1
47848 packed_data(ipack) = pack_tmp
47849 data_tmp = full_data(idata)
47850 pack_tmp = ishft(data_tmp, 46)
47851 pack_tmp = ishft(pack_tmp, -46)
47852 idata = idata + 1
47853 data_tmp = full_data(idata)
47854 data_tmp = ishft(data_tmp, 6)
47855 data_tmp = iand(data_tmp, mask_left(46))
47856 pack_tmp = ior(pack_tmp, data_tmp)
47857 ipack = ipack + 1
47858 packed_data(ipack) = pack_tmp
47859 data_tmp = full_data(idata)
47860 pack_tmp = ishft(data_tmp, 52)
47861 pack_tmp = ishft(pack_tmp, -52)
47862 idata = idata + 1
47863 data_tmp = full_data(idata)
47864 data_tmp = ishft(data_tmp, 6)
47865 data_tmp = iand(data_tmp, mask_left(52))
47866 pack_tmp = ior(pack_tmp, data_tmp)
47867 ipack = ipack + 1
47868 packed_data(ipack) = pack_tmp
47869 data_tmp = full_data(idata)
47870 pack_tmp = ishft(data_tmp, 58)
47871 pack_tmp = ishft(pack_tmp, -58)
47872 idata = idata + 1
47873 data_tmp = full_data(idata)
47874 data_tmp = ishft(data_tmp, 6)
47875 pack_tmp = ior(pack_tmp, data_tmp)
47876 pack_tmp = ishft(pack_tmp, 0)
47877 idata = idata + 1
47878 data_tmp = full_data(idata)
47879 data_tmp = ishft(data_tmp, 6)
47880 data_tmp = iand(data_tmp, mask_left(0))
47881 pack_tmp = ior(pack_tmp, data_tmp)
47882 ipack = ipack + 1
47883 packed_data(ipack) = pack_tmp
47884 data_tmp = full_data(idata)
47885 pack_tmp = ishft(data_tmp, 6)
47886 pack_tmp = ishft(pack_tmp, -6)
47887 idata = idata + 1
47888 data_tmp = full_data(idata)
47889 data_tmp = ishft(data_tmp, 6)
47890 data_tmp = iand(data_tmp, mask_left(6))
47891 pack_tmp = ior(pack_tmp, data_tmp)
47892 ipack = ipack + 1
47893 packed_data(ipack) = pack_tmp
47894 data_tmp = full_data(idata)
47895 pack_tmp = ishft(data_tmp, 12)
47896 pack_tmp = ishft(pack_tmp, -12)
47897 idata = idata + 1
47898 data_tmp = full_data(idata)
47899 data_tmp = ishft(data_tmp, 6)
47900 data_tmp = iand(data_tmp, mask_left(12))
47901 pack_tmp = ior(pack_tmp, data_tmp)
47902 ipack = ipack + 1
47903 packed_data(ipack) = pack_tmp
47904 data_tmp = full_data(idata)
47905 pack_tmp = ishft(data_tmp, 18)
47906 pack_tmp = ishft(pack_tmp, -18)
47907 idata = idata + 1
47908 data_tmp = full_data(idata)
47909 data_tmp = ishft(data_tmp, 6)
47910 data_tmp = iand(data_tmp, mask_left(18))
47911 pack_tmp = ior(pack_tmp, data_tmp)
47912 ipack = ipack + 1
47913 packed_data(ipack) = pack_tmp
47914 data_tmp = full_data(idata)
47915 pack_tmp = ishft(data_tmp, 24)
47916 pack_tmp = ishft(pack_tmp, -24)
47917 idata = idata + 1
47918 data_tmp = full_data(idata)
47919 data_tmp = ishft(data_tmp, 6)
47920 data_tmp = iand(data_tmp, mask_left(24))
47921 pack_tmp = ior(pack_tmp, data_tmp)
47922 ipack = ipack + 1
47923 packed_data(ipack) = pack_tmp
47924 data_tmp = full_data(idata)
47925 pack_tmp = ishft(data_tmp, 30)
47926 pack_tmp = ishft(pack_tmp, -30)
47927 idata = idata + 1
47928 data_tmp = full_data(idata)
47929 data_tmp = ishft(data_tmp, 6)
47930 data_tmp = iand(data_tmp, mask_left(30))
47931 pack_tmp = ior(pack_tmp, data_tmp)
47932 ipack = ipack + 1
47933 packed_data(ipack) = pack_tmp
47934 data_tmp = full_data(idata)
47935 pack_tmp = ishft(data_tmp, 36)
47936 pack_tmp = ishft(pack_tmp, -36)
47937 idata = idata + 1
47938 data_tmp = full_data(idata)
47939 data_tmp = ishft(data_tmp, 6)
47940 data_tmp = iand(data_tmp, mask_left(36))
47941 pack_tmp = ior(pack_tmp, data_tmp)
47942 ipack = ipack + 1
47943 packed_data(ipack) = pack_tmp
47944 data_tmp = full_data(idata)
47945 pack_tmp = ishft(data_tmp, 42)
47946 pack_tmp = ishft(pack_tmp, -42)
47947 idata = idata + 1
47948 data_tmp = full_data(idata)
47949 data_tmp = ishft(data_tmp, 6)
47950 data_tmp = iand(data_tmp, mask_left(42))
47951 pack_tmp = ior(pack_tmp, data_tmp)
47952 ipack = ipack + 1
47953 packed_data(ipack) = pack_tmp
47954 data_tmp = full_data(idata)
47955 pack_tmp = ishft(data_tmp, 48)
47956 pack_tmp = ishft(pack_tmp, -48)
47957 idata = idata + 1
47958 data_tmp = full_data(idata)
47959 data_tmp = ishft(data_tmp, 6)
47960 data_tmp = iand(data_tmp, mask_left(48))
47961 pack_tmp = ior(pack_tmp, data_tmp)
47962 ipack = ipack + 1
47963 packed_data(ipack) = pack_tmp
47964 data_tmp = full_data(idata)
47965 pack_tmp = ishft(data_tmp, 54)
47966 pack_tmp = ishft(pack_tmp, -54)
47967 idata = idata + 1
47968 data_tmp = full_data(idata)
47969 data_tmp = ishft(data_tmp, 6)
47970 data_tmp = iand(data_tmp, mask_left(54))
47971 pack_tmp = ior(pack_tmp, data_tmp)
47972 ipack = ipack + 1
47973 packed_data(ipack) = pack_tmp
47974 data_tmp = full_data(idata)
47975 pack_tmp = ishft(data_tmp, 60)
47976 pack_tmp = ishft(pack_tmp, -58)
47977 idata = idata + 1
47978 data_tmp = full_data(idata)
47979 data_tmp = ishft(data_tmp, 6)
47980 pack_tmp = ior(pack_tmp, data_tmp)
47981 pack_tmp = ishft(pack_tmp, -2)
47982 idata = idata + 1
47983 data_tmp = full_data(idata)
47984 data_tmp = ishft(data_tmp, 6)
47985 data_tmp = iand(data_tmp, mask_left(2))
47986 pack_tmp = ior(pack_tmp, data_tmp)
47987 ipack = ipack + 1
47988 packed_data(ipack) = pack_tmp
47989 data_tmp = full_data(idata)
47990 pack_tmp = ishft(data_tmp, 8)
47991 pack_tmp = ishft(pack_tmp, -8)
47992 idata = idata + 1
47993 data_tmp = full_data(idata)
47994 data_tmp = ishft(data_tmp, 6)
47995 data_tmp = iand(data_tmp, mask_left(8))
47996 pack_tmp = ior(pack_tmp, data_tmp)
47997 ipack = ipack + 1
47998 packed_data(ipack) = pack_tmp
47999 data_tmp = full_data(idata)
48000 pack_tmp = ishft(data_tmp, 14)
48001 pack_tmp = ishft(pack_tmp, -14)
48002 idata = idata + 1
48003 data_tmp = full_data(idata)
48004 data_tmp = ishft(data_tmp, 6)
48005 data_tmp = iand(data_tmp, mask_left(14))
48006 pack_tmp = ior(pack_tmp, data_tmp)
48007 ipack = ipack + 1
48008 packed_data(ipack) = pack_tmp
48009 data_tmp = full_data(idata)
48010 pack_tmp = ishft(data_tmp, 20)
48011 pack_tmp = ishft(pack_tmp, -20)
48012 idata = idata + 1
48013 data_tmp = full_data(idata)
48014 data_tmp = ishft(data_tmp, 6)
48015 data_tmp = iand(data_tmp, mask_left(20))
48016 pack_tmp = ior(pack_tmp, data_tmp)
48017 ipack = ipack + 1
48018 packed_data(ipack) = pack_tmp
48019 data_tmp = full_data(idata)
48020 pack_tmp = ishft(data_tmp, 26)
48021 pack_tmp = ishft(pack_tmp, -26)
48022 idata = idata + 1
48023 data_tmp = full_data(idata)
48024 data_tmp = ishft(data_tmp, 6)
48025 data_tmp = iand(data_tmp, mask_left(26))
48026 pack_tmp = ior(pack_tmp, data_tmp)
48027 ipack = ipack + 1
48028 packed_data(ipack) = pack_tmp
48029 data_tmp = full_data(idata)
48030 pack_tmp = ishft(data_tmp, 32)
48031 pack_tmp = ishft(pack_tmp, -32)
48032 idata = idata + 1
48033 data_tmp = full_data(idata)
48034 data_tmp = ishft(data_tmp, 6)
48035 data_tmp = iand(data_tmp, mask_left(32))
48036 pack_tmp = ior(pack_tmp, data_tmp)
48037 ipack = ipack + 1
48038 packed_data(ipack) = pack_tmp
48039 data_tmp = full_data(idata)
48040 pack_tmp = ishft(data_tmp, 38)
48041 pack_tmp = ishft(pack_tmp, -38)
48042 idata = idata + 1
48043 data_tmp = full_data(idata)
48044 data_tmp = ishft(data_tmp, 6)
48045 data_tmp = iand(data_tmp, mask_left(38))
48046 pack_tmp = ior(pack_tmp, data_tmp)
48047 ipack = ipack + 1
48048 packed_data(ipack) = pack_tmp
48049 data_tmp = full_data(idata)
48050 pack_tmp = ishft(data_tmp, 44)
48051 pack_tmp = ishft(pack_tmp, -44)
48052 idata = idata + 1
48053 data_tmp = full_data(idata)
48054 data_tmp = ishft(data_tmp, 6)
48055 data_tmp = iand(data_tmp, mask_left(44))
48056 pack_tmp = ior(pack_tmp, data_tmp)
48057 ipack = ipack + 1
48058 packed_data(ipack) = pack_tmp
48059 data_tmp = full_data(idata)
48060 pack_tmp = ishft(data_tmp, 50)
48061 pack_tmp = ishft(pack_tmp, -50)
48062 idata = idata + 1
48063 data_tmp = full_data(idata)
48064 data_tmp = ishft(data_tmp, 6)
48065 data_tmp = iand(data_tmp, mask_left(50))
48066 pack_tmp = ior(pack_tmp, data_tmp)
48067 ipack = ipack + 1
48068 packed_data(ipack) = pack_tmp
48069 data_tmp = full_data(idata)
48070 pack_tmp = ishft(data_tmp, 56)
48071 pack_tmp = ishft(pack_tmp, -56)
48072 idata = idata + 1
48073 data_tmp = full_data(idata)
48074 data_tmp = ishft(data_tmp, 6)
48075 data_tmp = iand(data_tmp, mask_left(56))
48076 pack_tmp = ior(pack_tmp, data_tmp)
48077 ipack = ipack + 1
48078 packed_data(ipack) = pack_tmp
48079 data_tmp = full_data(idata)
48080 pack_tmp = ishft(data_tmp, 62)
48081 pack_tmp = ishft(pack_tmp, -58)
48082 idata = idata + 1
48083 data_tmp = full_data(idata)
48084 data_tmp = ishft(data_tmp, 6)
48085 pack_tmp = ior(pack_tmp, data_tmp)
48086 pack_tmp = ishft(pack_tmp, -4)
48087 idata = idata + 1
48088 data_tmp = full_data(idata)
48089 data_tmp = ishft(data_tmp, 6)
48090 data_tmp = iand(data_tmp, mask_left(4))
48091 pack_tmp = ior(pack_tmp, data_tmp)
48092 ipack = ipack + 1
48093 packed_data(ipack) = pack_tmp
48094 data_tmp = full_data(idata)
48095 pack_tmp = ishft(data_tmp, 10)
48096 pack_tmp = ishft(pack_tmp, -10)
48097 idata = idata + 1
48098 data_tmp = full_data(idata)
48099 data_tmp = ishft(data_tmp, 6)
48100 data_tmp = iand(data_tmp, mask_left(10))
48101 pack_tmp = ior(pack_tmp, data_tmp)
48102 ipack = ipack + 1
48103 packed_data(ipack) = pack_tmp
48104 data_tmp = full_data(idata)
48105 pack_tmp = ishft(data_tmp, 16)
48106 pack_tmp = ishft(pack_tmp, -16)
48107 idata = idata + 1
48108 data_tmp = full_data(idata)
48109 data_tmp = ishft(data_tmp, 6)
48110 data_tmp = iand(data_tmp, mask_left(16))
48111 pack_tmp = ior(pack_tmp, data_tmp)
48112 ipack = ipack + 1
48113 packed_data(ipack) = pack_tmp
48114 data_tmp = full_data(idata)
48115 pack_tmp = ishft(data_tmp, 22)
48116 pack_tmp = ishft(pack_tmp, -22)
48117 idata = idata + 1
48118 data_tmp = full_data(idata)
48119 data_tmp = ishft(data_tmp, 6)
48120 data_tmp = iand(data_tmp, mask_left(22))
48121 pack_tmp = ior(pack_tmp, data_tmp)
48122 ipack = ipack + 1
48123 packed_data(ipack) = pack_tmp
48124 data_tmp = full_data(idata)
48125 pack_tmp = ishft(data_tmp, 28)
48126 pack_tmp = ishft(pack_tmp, -28)
48127 idata = idata + 1
48128 data_tmp = full_data(idata)
48129 data_tmp = ishft(data_tmp, 6)
48130 data_tmp = iand(data_tmp, mask_left(28))
48131 pack_tmp = ior(pack_tmp, data_tmp)
48132 ipack = ipack + 1
48133 packed_data(ipack) = pack_tmp
48134 data_tmp = full_data(idata)
48135 pack_tmp = ishft(data_tmp, 34)
48136 pack_tmp = ishft(pack_tmp, -34)
48137 idata = idata + 1
48138 data_tmp = full_data(idata)
48139 data_tmp = ishft(data_tmp, 6)
48140 data_tmp = iand(data_tmp, mask_left(34))
48141 pack_tmp = ior(pack_tmp, data_tmp)
48142 ipack = ipack + 1
48143 packed_data(ipack) = pack_tmp
48144 data_tmp = full_data(idata)
48145 pack_tmp = ishft(data_tmp, 40)
48146 pack_tmp = ishft(pack_tmp, -40)
48147 idata = idata + 1
48148 data_tmp = full_data(idata)
48149 data_tmp = ishft(data_tmp, 6)
48150 data_tmp = iand(data_tmp, mask_left(40))
48151 pack_tmp = ior(pack_tmp, data_tmp)
48152 ipack = ipack + 1
48153 packed_data(ipack) = pack_tmp
48154 data_tmp = full_data(idata)
48155 pack_tmp = ishft(data_tmp, 46)
48156 pack_tmp = ishft(pack_tmp, -46)
48157 idata = idata + 1
48158 data_tmp = full_data(idata)
48159 data_tmp = ishft(data_tmp, 6)
48160 data_tmp = iand(data_tmp, mask_left(46))
48161 pack_tmp = ior(pack_tmp, data_tmp)
48162 ipack = ipack + 1
48163 packed_data(ipack) = pack_tmp
48164 data_tmp = full_data(idata)
48165 pack_tmp = ishft(data_tmp, 52)
48166 pack_tmp = ishft(pack_tmp, -52)
48167 idata = idata + 1
48168 data_tmp = full_data(idata)
48169 data_tmp = ishft(data_tmp, 6)
48170 data_tmp = iand(data_tmp, mask_left(52))
48171 pack_tmp = ior(pack_tmp, data_tmp)
48172 ipack = ipack + 1
48173 packed_data(ipack) = pack_tmp
48174 data_tmp = full_data(idata)
48175 pack_tmp = ishft(data_tmp, 58)
48176 pack_tmp = ishft(pack_tmp, -58)
48177 idata = idata + 1
48178 data_tmp = full_data(idata)
48179 data_tmp = ishft(data_tmp, 6)
48180 pack_tmp = ior(pack_tmp, data_tmp)
48181 pack_tmp = ishft(pack_tmp, 0)
48182 pack_tmp = ishft(pack_tmp, 0)
48183 ipack = ipack + 1
48184 packed_data(ipack) = pack_tmp
48185 END DO
48186 IF (ndata_rep < ndata) THEN
48187 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
48188 END IF
48189 END SUBROUTINE ints2bits_58
48190
48191! **************************************************************************************************
48192!> \brief ...
48193!> \param Ndata ...
48194!> \param packed_data ...
48195!> \param full_data ...
48196! **************************************************************************************************
48197 SUBROUTINE bits2ints_58(Ndata, packed_data, full_data)
48198 INTEGER, INTENT(IN) :: Ndata
48199 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
48200 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
48201
48202 INTEGER, PARAMETER :: Nbits = 58
48203
48204 INTEGER :: idata, ipack, kdata, Ndata_rep
48205 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
48206
48207 ipack = 0
48208 idata = 0
48209 pack_tmp = 0
48210 ndata_rep = (ndata/64)*64
48211 DO kdata = 1, ndata_rep, 64
48212 idata = idata + 1
48213 data_tmp = ishft(pack_tmp, 58)
48214 ipack = ipack + 1
48215 pack_tmp = packed_data(ipack)
48216 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(58)))
48217 pack_tmp = ishft(pack_tmp, -58)
48218 idata = idata + 1
48219 data_tmp = ishft(pack_tmp, 52)
48220 ipack = ipack + 1
48221 pack_tmp = packed_data(ipack)
48222 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
48223 pack_tmp = ishft(pack_tmp, -52)
48224 idata = idata + 1
48225 data_tmp = ishft(pack_tmp, 46)
48226 ipack = ipack + 1
48227 pack_tmp = packed_data(ipack)
48228 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
48229 pack_tmp = ishft(pack_tmp, -46)
48230 idata = idata + 1
48231 data_tmp = ishft(pack_tmp, 40)
48232 ipack = ipack + 1
48233 pack_tmp = packed_data(ipack)
48234 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
48235 pack_tmp = ishft(pack_tmp, -40)
48236 idata = idata + 1
48237 data_tmp = ishft(pack_tmp, 34)
48238 ipack = ipack + 1
48239 pack_tmp = packed_data(ipack)
48240 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
48241 pack_tmp = ishft(pack_tmp, -34)
48242 idata = idata + 1
48243 data_tmp = ishft(pack_tmp, 28)
48244 ipack = ipack + 1
48245 pack_tmp = packed_data(ipack)
48246 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
48247 pack_tmp = ishft(pack_tmp, -28)
48248 idata = idata + 1
48249 data_tmp = ishft(pack_tmp, 22)
48250 ipack = ipack + 1
48251 pack_tmp = packed_data(ipack)
48252 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
48253 pack_tmp = ishft(pack_tmp, -22)
48254 idata = idata + 1
48255 data_tmp = ishft(pack_tmp, 16)
48256 ipack = ipack + 1
48257 pack_tmp = packed_data(ipack)
48258 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
48259 pack_tmp = ishft(pack_tmp, -16)
48260 idata = idata + 1
48261 data_tmp = ishft(pack_tmp, 10)
48262 ipack = ipack + 1
48263 pack_tmp = packed_data(ipack)
48264 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
48265 pack_tmp = ishft(pack_tmp, -10)
48266 idata = idata + 1
48267 data_tmp = ishft(pack_tmp, 4)
48268 ipack = ipack + 1
48269 pack_tmp = packed_data(ipack)
48270 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
48271 pack_tmp = ishft(pack_tmp, -4)
48272 idata = idata + 1
48273 data_tmp = iand(pack_tmp, mask_right(nbits))
48274 full_data(idata) = data_tmp
48275 pack_tmp = ishft(pack_tmp, -nbits)
48276 idata = idata + 1
48277 data_tmp = ishft(pack_tmp, 56)
48278 ipack = ipack + 1
48279 pack_tmp = packed_data(ipack)
48280 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
48281 pack_tmp = ishft(pack_tmp, -56)
48282 idata = idata + 1
48283 data_tmp = ishft(pack_tmp, 50)
48284 ipack = ipack + 1
48285 pack_tmp = packed_data(ipack)
48286 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
48287 pack_tmp = ishft(pack_tmp, -50)
48288 idata = idata + 1
48289 data_tmp = ishft(pack_tmp, 44)
48290 ipack = ipack + 1
48291 pack_tmp = packed_data(ipack)
48292 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
48293 pack_tmp = ishft(pack_tmp, -44)
48294 idata = idata + 1
48295 data_tmp = ishft(pack_tmp, 38)
48296 ipack = ipack + 1
48297 pack_tmp = packed_data(ipack)
48298 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
48299 pack_tmp = ishft(pack_tmp, -38)
48300 idata = idata + 1
48301 data_tmp = ishft(pack_tmp, 32)
48302 ipack = ipack + 1
48303 pack_tmp = packed_data(ipack)
48304 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
48305 pack_tmp = ishft(pack_tmp, -32)
48306 idata = idata + 1
48307 data_tmp = ishft(pack_tmp, 26)
48308 ipack = ipack + 1
48309 pack_tmp = packed_data(ipack)
48310 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
48311 pack_tmp = ishft(pack_tmp, -26)
48312 idata = idata + 1
48313 data_tmp = ishft(pack_tmp, 20)
48314 ipack = ipack + 1
48315 pack_tmp = packed_data(ipack)
48316 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
48317 pack_tmp = ishft(pack_tmp, -20)
48318 idata = idata + 1
48319 data_tmp = ishft(pack_tmp, 14)
48320 ipack = ipack + 1
48321 pack_tmp = packed_data(ipack)
48322 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
48323 pack_tmp = ishft(pack_tmp, -14)
48324 idata = idata + 1
48325 data_tmp = ishft(pack_tmp, 8)
48326 ipack = ipack + 1
48327 pack_tmp = packed_data(ipack)
48328 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
48329 pack_tmp = ishft(pack_tmp, -8)
48330 idata = idata + 1
48331 data_tmp = ishft(pack_tmp, 2)
48332 ipack = ipack + 1
48333 pack_tmp = packed_data(ipack)
48334 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
48335 pack_tmp = ishft(pack_tmp, -2)
48336 idata = idata + 1
48337 data_tmp = iand(pack_tmp, mask_right(nbits))
48338 full_data(idata) = data_tmp
48339 pack_tmp = ishft(pack_tmp, -nbits)
48340 idata = idata + 1
48341 data_tmp = ishft(pack_tmp, 54)
48342 ipack = ipack + 1
48343 pack_tmp = packed_data(ipack)
48344 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(54)))
48345 pack_tmp = ishft(pack_tmp, -54)
48346 idata = idata + 1
48347 data_tmp = ishft(pack_tmp, 48)
48348 ipack = ipack + 1
48349 pack_tmp = packed_data(ipack)
48350 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
48351 pack_tmp = ishft(pack_tmp, -48)
48352 idata = idata + 1
48353 data_tmp = ishft(pack_tmp, 42)
48354 ipack = ipack + 1
48355 pack_tmp = packed_data(ipack)
48356 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
48357 pack_tmp = ishft(pack_tmp, -42)
48358 idata = idata + 1
48359 data_tmp = ishft(pack_tmp, 36)
48360 ipack = ipack + 1
48361 pack_tmp = packed_data(ipack)
48362 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
48363 pack_tmp = ishft(pack_tmp, -36)
48364 idata = idata + 1
48365 data_tmp = ishft(pack_tmp, 30)
48366 ipack = ipack + 1
48367 pack_tmp = packed_data(ipack)
48368 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
48369 pack_tmp = ishft(pack_tmp, -30)
48370 idata = idata + 1
48371 data_tmp = ishft(pack_tmp, 24)
48372 ipack = ipack + 1
48373 pack_tmp = packed_data(ipack)
48374 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
48375 pack_tmp = ishft(pack_tmp, -24)
48376 idata = idata + 1
48377 data_tmp = ishft(pack_tmp, 18)
48378 ipack = ipack + 1
48379 pack_tmp = packed_data(ipack)
48380 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
48381 pack_tmp = ishft(pack_tmp, -18)
48382 idata = idata + 1
48383 data_tmp = ishft(pack_tmp, 12)
48384 ipack = ipack + 1
48385 pack_tmp = packed_data(ipack)
48386 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
48387 pack_tmp = ishft(pack_tmp, -12)
48388 idata = idata + 1
48389 data_tmp = ishft(pack_tmp, 6)
48390 ipack = ipack + 1
48391 pack_tmp = packed_data(ipack)
48392 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
48393 pack_tmp = ishft(pack_tmp, -6)
48394 idata = idata + 1
48395 data_tmp = iand(pack_tmp, mask_right(nbits))
48396 full_data(idata) = data_tmp
48397 pack_tmp = ishft(pack_tmp, -nbits)
48398 idata = idata + 1
48399 data_tmp = ishft(pack_tmp, 58)
48400 ipack = ipack + 1
48401 pack_tmp = packed_data(ipack)
48402 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(58)))
48403 pack_tmp = ishft(pack_tmp, -58)
48404 idata = idata + 1
48405 data_tmp = ishft(pack_tmp, 52)
48406 ipack = ipack + 1
48407 pack_tmp = packed_data(ipack)
48408 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
48409 pack_tmp = ishft(pack_tmp, -52)
48410 idata = idata + 1
48411 data_tmp = ishft(pack_tmp, 46)
48412 ipack = ipack + 1
48413 pack_tmp = packed_data(ipack)
48414 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
48415 pack_tmp = ishft(pack_tmp, -46)
48416 idata = idata + 1
48417 data_tmp = ishft(pack_tmp, 40)
48418 ipack = ipack + 1
48419 pack_tmp = packed_data(ipack)
48420 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
48421 pack_tmp = ishft(pack_tmp, -40)
48422 idata = idata + 1
48423 data_tmp = ishft(pack_tmp, 34)
48424 ipack = ipack + 1
48425 pack_tmp = packed_data(ipack)
48426 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
48427 pack_tmp = ishft(pack_tmp, -34)
48428 idata = idata + 1
48429 data_tmp = ishft(pack_tmp, 28)
48430 ipack = ipack + 1
48431 pack_tmp = packed_data(ipack)
48432 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
48433 pack_tmp = ishft(pack_tmp, -28)
48434 idata = idata + 1
48435 data_tmp = ishft(pack_tmp, 22)
48436 ipack = ipack + 1
48437 pack_tmp = packed_data(ipack)
48438 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
48439 pack_tmp = ishft(pack_tmp, -22)
48440 idata = idata + 1
48441 data_tmp = ishft(pack_tmp, 16)
48442 ipack = ipack + 1
48443 pack_tmp = packed_data(ipack)
48444 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
48445 pack_tmp = ishft(pack_tmp, -16)
48446 idata = idata + 1
48447 data_tmp = ishft(pack_tmp, 10)
48448 ipack = ipack + 1
48449 pack_tmp = packed_data(ipack)
48450 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
48451 pack_tmp = ishft(pack_tmp, -10)
48452 idata = idata + 1
48453 data_tmp = ishft(pack_tmp, 4)
48454 ipack = ipack + 1
48455 pack_tmp = packed_data(ipack)
48456 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
48457 pack_tmp = ishft(pack_tmp, -4)
48458 idata = idata + 1
48459 data_tmp = iand(pack_tmp, mask_right(nbits))
48460 full_data(idata) = data_tmp
48461 pack_tmp = ishft(pack_tmp, -nbits)
48462 idata = idata + 1
48463 data_tmp = ishft(pack_tmp, 56)
48464 ipack = ipack + 1
48465 pack_tmp = packed_data(ipack)
48466 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
48467 pack_tmp = ishft(pack_tmp, -56)
48468 idata = idata + 1
48469 data_tmp = ishft(pack_tmp, 50)
48470 ipack = ipack + 1
48471 pack_tmp = packed_data(ipack)
48472 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
48473 pack_tmp = ishft(pack_tmp, -50)
48474 idata = idata + 1
48475 data_tmp = ishft(pack_tmp, 44)
48476 ipack = ipack + 1
48477 pack_tmp = packed_data(ipack)
48478 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
48479 pack_tmp = ishft(pack_tmp, -44)
48480 idata = idata + 1
48481 data_tmp = ishft(pack_tmp, 38)
48482 ipack = ipack + 1
48483 pack_tmp = packed_data(ipack)
48484 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
48485 pack_tmp = ishft(pack_tmp, -38)
48486 idata = idata + 1
48487 data_tmp = ishft(pack_tmp, 32)
48488 ipack = ipack + 1
48489 pack_tmp = packed_data(ipack)
48490 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
48491 pack_tmp = ishft(pack_tmp, -32)
48492 idata = idata + 1
48493 data_tmp = ishft(pack_tmp, 26)
48494 ipack = ipack + 1
48495 pack_tmp = packed_data(ipack)
48496 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
48497 pack_tmp = ishft(pack_tmp, -26)
48498 idata = idata + 1
48499 data_tmp = ishft(pack_tmp, 20)
48500 ipack = ipack + 1
48501 pack_tmp = packed_data(ipack)
48502 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
48503 pack_tmp = ishft(pack_tmp, -20)
48504 idata = idata + 1
48505 data_tmp = ishft(pack_tmp, 14)
48506 ipack = ipack + 1
48507 pack_tmp = packed_data(ipack)
48508 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
48509 pack_tmp = ishft(pack_tmp, -14)
48510 idata = idata + 1
48511 data_tmp = ishft(pack_tmp, 8)
48512 ipack = ipack + 1
48513 pack_tmp = packed_data(ipack)
48514 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
48515 pack_tmp = ishft(pack_tmp, -8)
48516 idata = idata + 1
48517 data_tmp = ishft(pack_tmp, 2)
48518 ipack = ipack + 1
48519 pack_tmp = packed_data(ipack)
48520 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
48521 pack_tmp = ishft(pack_tmp, -2)
48522 idata = idata + 1
48523 data_tmp = iand(pack_tmp, mask_right(nbits))
48524 full_data(idata) = data_tmp
48525 pack_tmp = ishft(pack_tmp, -nbits)
48526 idata = idata + 1
48527 data_tmp = ishft(pack_tmp, 54)
48528 ipack = ipack + 1
48529 pack_tmp = packed_data(ipack)
48530 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(54)))
48531 pack_tmp = ishft(pack_tmp, -54)
48532 idata = idata + 1
48533 data_tmp = ishft(pack_tmp, 48)
48534 ipack = ipack + 1
48535 pack_tmp = packed_data(ipack)
48536 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
48537 pack_tmp = ishft(pack_tmp, -48)
48538 idata = idata + 1
48539 data_tmp = ishft(pack_tmp, 42)
48540 ipack = ipack + 1
48541 pack_tmp = packed_data(ipack)
48542 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
48543 pack_tmp = ishft(pack_tmp, -42)
48544 idata = idata + 1
48545 data_tmp = ishft(pack_tmp, 36)
48546 ipack = ipack + 1
48547 pack_tmp = packed_data(ipack)
48548 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
48549 pack_tmp = ishft(pack_tmp, -36)
48550 idata = idata + 1
48551 data_tmp = ishft(pack_tmp, 30)
48552 ipack = ipack + 1
48553 pack_tmp = packed_data(ipack)
48554 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
48555 pack_tmp = ishft(pack_tmp, -30)
48556 idata = idata + 1
48557 data_tmp = ishft(pack_tmp, 24)
48558 ipack = ipack + 1
48559 pack_tmp = packed_data(ipack)
48560 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
48561 pack_tmp = ishft(pack_tmp, -24)
48562 idata = idata + 1
48563 data_tmp = ishft(pack_tmp, 18)
48564 ipack = ipack + 1
48565 pack_tmp = packed_data(ipack)
48566 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
48567 pack_tmp = ishft(pack_tmp, -18)
48568 idata = idata + 1
48569 data_tmp = ishft(pack_tmp, 12)
48570 ipack = ipack + 1
48571 pack_tmp = packed_data(ipack)
48572 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
48573 pack_tmp = ishft(pack_tmp, -12)
48574 idata = idata + 1
48575 data_tmp = ishft(pack_tmp, 6)
48576 ipack = ipack + 1
48577 pack_tmp = packed_data(ipack)
48578 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
48579 pack_tmp = ishft(pack_tmp, -6)
48580 idata = idata + 1
48581 data_tmp = iand(pack_tmp, mask_right(nbits))
48582 full_data(idata) = data_tmp
48583 pack_tmp = ishft(pack_tmp, -nbits)
48584 END DO
48585 IF (ndata_rep < ndata) THEN
48586 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
48587 END IF
48588 END SUBROUTINE bits2ints_58
48589
48590! **************************************************************************************************
48591!> \brief ...
48592!> \param Ndata ...
48593!> \param packed_data ...
48594!> \param full_data ...
48595! **************************************************************************************************
48596 SUBROUTINE ints2bits_59(Ndata, packed_data, full_data)
48597 INTEGER, INTENT(IN) :: Ndata
48598 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
48599 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
48600
48601 INTEGER, PARAMETER :: Nbits = 59
48602
48603 INTEGER :: idata, ipack, kdata, Ndata_rep
48604 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
48605
48606 idata = 0
48607 ipack = 0
48608 ndata_rep = (ndata/64)*64
48609 DO kdata = 1, ndata_rep, 64
48610 pack_tmp = 0
48611 idata = idata + 1
48612 data_tmp = full_data(idata)
48613 data_tmp = ishft(data_tmp, 5)
48614 pack_tmp = ior(pack_tmp, data_tmp)
48615 pack_tmp = ishft(pack_tmp, -5)
48616 idata = idata + 1
48617 data_tmp = full_data(idata)
48618 data_tmp = ishft(data_tmp, 5)
48619 data_tmp = iand(data_tmp, mask_left(5))
48620 pack_tmp = ior(pack_tmp, data_tmp)
48621 ipack = ipack + 1
48622 packed_data(ipack) = pack_tmp
48623 data_tmp = full_data(idata)
48624 pack_tmp = ishft(data_tmp, 10)
48625 pack_tmp = ishft(pack_tmp, -10)
48626 idata = idata + 1
48627 data_tmp = full_data(idata)
48628 data_tmp = ishft(data_tmp, 5)
48629 data_tmp = iand(data_tmp, mask_left(10))
48630 pack_tmp = ior(pack_tmp, data_tmp)
48631 ipack = ipack + 1
48632 packed_data(ipack) = pack_tmp
48633 data_tmp = full_data(idata)
48634 pack_tmp = ishft(data_tmp, 15)
48635 pack_tmp = ishft(pack_tmp, -15)
48636 idata = idata + 1
48637 data_tmp = full_data(idata)
48638 data_tmp = ishft(data_tmp, 5)
48639 data_tmp = iand(data_tmp, mask_left(15))
48640 pack_tmp = ior(pack_tmp, data_tmp)
48641 ipack = ipack + 1
48642 packed_data(ipack) = pack_tmp
48643 data_tmp = full_data(idata)
48644 pack_tmp = ishft(data_tmp, 20)
48645 pack_tmp = ishft(pack_tmp, -20)
48646 idata = idata + 1
48647 data_tmp = full_data(idata)
48648 data_tmp = ishft(data_tmp, 5)
48649 data_tmp = iand(data_tmp, mask_left(20))
48650 pack_tmp = ior(pack_tmp, data_tmp)
48651 ipack = ipack + 1
48652 packed_data(ipack) = pack_tmp
48653 data_tmp = full_data(idata)
48654 pack_tmp = ishft(data_tmp, 25)
48655 pack_tmp = ishft(pack_tmp, -25)
48656 idata = idata + 1
48657 data_tmp = full_data(idata)
48658 data_tmp = ishft(data_tmp, 5)
48659 data_tmp = iand(data_tmp, mask_left(25))
48660 pack_tmp = ior(pack_tmp, data_tmp)
48661 ipack = ipack + 1
48662 packed_data(ipack) = pack_tmp
48663 data_tmp = full_data(idata)
48664 pack_tmp = ishft(data_tmp, 30)
48665 pack_tmp = ishft(pack_tmp, -30)
48666 idata = idata + 1
48667 data_tmp = full_data(idata)
48668 data_tmp = ishft(data_tmp, 5)
48669 data_tmp = iand(data_tmp, mask_left(30))
48670 pack_tmp = ior(pack_tmp, data_tmp)
48671 ipack = ipack + 1
48672 packed_data(ipack) = pack_tmp
48673 data_tmp = full_data(idata)
48674 pack_tmp = ishft(data_tmp, 35)
48675 pack_tmp = ishft(pack_tmp, -35)
48676 idata = idata + 1
48677 data_tmp = full_data(idata)
48678 data_tmp = ishft(data_tmp, 5)
48679 data_tmp = iand(data_tmp, mask_left(35))
48680 pack_tmp = ior(pack_tmp, data_tmp)
48681 ipack = ipack + 1
48682 packed_data(ipack) = pack_tmp
48683 data_tmp = full_data(idata)
48684 pack_tmp = ishft(data_tmp, 40)
48685 pack_tmp = ishft(pack_tmp, -40)
48686 idata = idata + 1
48687 data_tmp = full_data(idata)
48688 data_tmp = ishft(data_tmp, 5)
48689 data_tmp = iand(data_tmp, mask_left(40))
48690 pack_tmp = ior(pack_tmp, data_tmp)
48691 ipack = ipack + 1
48692 packed_data(ipack) = pack_tmp
48693 data_tmp = full_data(idata)
48694 pack_tmp = ishft(data_tmp, 45)
48695 pack_tmp = ishft(pack_tmp, -45)
48696 idata = idata + 1
48697 data_tmp = full_data(idata)
48698 data_tmp = ishft(data_tmp, 5)
48699 data_tmp = iand(data_tmp, mask_left(45))
48700 pack_tmp = ior(pack_tmp, data_tmp)
48701 ipack = ipack + 1
48702 packed_data(ipack) = pack_tmp
48703 data_tmp = full_data(idata)
48704 pack_tmp = ishft(data_tmp, 50)
48705 pack_tmp = ishft(pack_tmp, -50)
48706 idata = idata + 1
48707 data_tmp = full_data(idata)
48708 data_tmp = ishft(data_tmp, 5)
48709 data_tmp = iand(data_tmp, mask_left(50))
48710 pack_tmp = ior(pack_tmp, data_tmp)
48711 ipack = ipack + 1
48712 packed_data(ipack) = pack_tmp
48713 data_tmp = full_data(idata)
48714 pack_tmp = ishft(data_tmp, 55)
48715 pack_tmp = ishft(pack_tmp, -55)
48716 idata = idata + 1
48717 data_tmp = full_data(idata)
48718 data_tmp = ishft(data_tmp, 5)
48719 data_tmp = iand(data_tmp, mask_left(55))
48720 pack_tmp = ior(pack_tmp, data_tmp)
48721 ipack = ipack + 1
48722 packed_data(ipack) = pack_tmp
48723 data_tmp = full_data(idata)
48724 pack_tmp = ishft(data_tmp, 60)
48725 pack_tmp = ishft(pack_tmp, -59)
48726 idata = idata + 1
48727 data_tmp = full_data(idata)
48728 data_tmp = ishft(data_tmp, 5)
48729 pack_tmp = ior(pack_tmp, data_tmp)
48730 pack_tmp = ishft(pack_tmp, -1)
48731 idata = idata + 1
48732 data_tmp = full_data(idata)
48733 data_tmp = ishft(data_tmp, 5)
48734 data_tmp = iand(data_tmp, mask_left(1))
48735 pack_tmp = ior(pack_tmp, data_tmp)
48736 ipack = ipack + 1
48737 packed_data(ipack) = pack_tmp
48738 data_tmp = full_data(idata)
48739 pack_tmp = ishft(data_tmp, 6)
48740 pack_tmp = ishft(pack_tmp, -6)
48741 idata = idata + 1
48742 data_tmp = full_data(idata)
48743 data_tmp = ishft(data_tmp, 5)
48744 data_tmp = iand(data_tmp, mask_left(6))
48745 pack_tmp = ior(pack_tmp, data_tmp)
48746 ipack = ipack + 1
48747 packed_data(ipack) = pack_tmp
48748 data_tmp = full_data(idata)
48749 pack_tmp = ishft(data_tmp, 11)
48750 pack_tmp = ishft(pack_tmp, -11)
48751 idata = idata + 1
48752 data_tmp = full_data(idata)
48753 data_tmp = ishft(data_tmp, 5)
48754 data_tmp = iand(data_tmp, mask_left(11))
48755 pack_tmp = ior(pack_tmp, data_tmp)
48756 ipack = ipack + 1
48757 packed_data(ipack) = pack_tmp
48758 data_tmp = full_data(idata)
48759 pack_tmp = ishft(data_tmp, 16)
48760 pack_tmp = ishft(pack_tmp, -16)
48761 idata = idata + 1
48762 data_tmp = full_data(idata)
48763 data_tmp = ishft(data_tmp, 5)
48764 data_tmp = iand(data_tmp, mask_left(16))
48765 pack_tmp = ior(pack_tmp, data_tmp)
48766 ipack = ipack + 1
48767 packed_data(ipack) = pack_tmp
48768 data_tmp = full_data(idata)
48769 pack_tmp = ishft(data_tmp, 21)
48770 pack_tmp = ishft(pack_tmp, -21)
48771 idata = idata + 1
48772 data_tmp = full_data(idata)
48773 data_tmp = ishft(data_tmp, 5)
48774 data_tmp = iand(data_tmp, mask_left(21))
48775 pack_tmp = ior(pack_tmp, data_tmp)
48776 ipack = ipack + 1
48777 packed_data(ipack) = pack_tmp
48778 data_tmp = full_data(idata)
48779 pack_tmp = ishft(data_tmp, 26)
48780 pack_tmp = ishft(pack_tmp, -26)
48781 idata = idata + 1
48782 data_tmp = full_data(idata)
48783 data_tmp = ishft(data_tmp, 5)
48784 data_tmp = iand(data_tmp, mask_left(26))
48785 pack_tmp = ior(pack_tmp, data_tmp)
48786 ipack = ipack + 1
48787 packed_data(ipack) = pack_tmp
48788 data_tmp = full_data(idata)
48789 pack_tmp = ishft(data_tmp, 31)
48790 pack_tmp = ishft(pack_tmp, -31)
48791 idata = idata + 1
48792 data_tmp = full_data(idata)
48793 data_tmp = ishft(data_tmp, 5)
48794 data_tmp = iand(data_tmp, mask_left(31))
48795 pack_tmp = ior(pack_tmp, data_tmp)
48796 ipack = ipack + 1
48797 packed_data(ipack) = pack_tmp
48798 data_tmp = full_data(idata)
48799 pack_tmp = ishft(data_tmp, 36)
48800 pack_tmp = ishft(pack_tmp, -36)
48801 idata = idata + 1
48802 data_tmp = full_data(idata)
48803 data_tmp = ishft(data_tmp, 5)
48804 data_tmp = iand(data_tmp, mask_left(36))
48805 pack_tmp = ior(pack_tmp, data_tmp)
48806 ipack = ipack + 1
48807 packed_data(ipack) = pack_tmp
48808 data_tmp = full_data(idata)
48809 pack_tmp = ishft(data_tmp, 41)
48810 pack_tmp = ishft(pack_tmp, -41)
48811 idata = idata + 1
48812 data_tmp = full_data(idata)
48813 data_tmp = ishft(data_tmp, 5)
48814 data_tmp = iand(data_tmp, mask_left(41))
48815 pack_tmp = ior(pack_tmp, data_tmp)
48816 ipack = ipack + 1
48817 packed_data(ipack) = pack_tmp
48818 data_tmp = full_data(idata)
48819 pack_tmp = ishft(data_tmp, 46)
48820 pack_tmp = ishft(pack_tmp, -46)
48821 idata = idata + 1
48822 data_tmp = full_data(idata)
48823 data_tmp = ishft(data_tmp, 5)
48824 data_tmp = iand(data_tmp, mask_left(46))
48825 pack_tmp = ior(pack_tmp, data_tmp)
48826 ipack = ipack + 1
48827 packed_data(ipack) = pack_tmp
48828 data_tmp = full_data(idata)
48829 pack_tmp = ishft(data_tmp, 51)
48830 pack_tmp = ishft(pack_tmp, -51)
48831 idata = idata + 1
48832 data_tmp = full_data(idata)
48833 data_tmp = ishft(data_tmp, 5)
48834 data_tmp = iand(data_tmp, mask_left(51))
48835 pack_tmp = ior(pack_tmp, data_tmp)
48836 ipack = ipack + 1
48837 packed_data(ipack) = pack_tmp
48838 data_tmp = full_data(idata)
48839 pack_tmp = ishft(data_tmp, 56)
48840 pack_tmp = ishft(pack_tmp, -56)
48841 idata = idata + 1
48842 data_tmp = full_data(idata)
48843 data_tmp = ishft(data_tmp, 5)
48844 data_tmp = iand(data_tmp, mask_left(56))
48845 pack_tmp = ior(pack_tmp, data_tmp)
48846 ipack = ipack + 1
48847 packed_data(ipack) = pack_tmp
48848 data_tmp = full_data(idata)
48849 pack_tmp = ishft(data_tmp, 61)
48850 pack_tmp = ishft(pack_tmp, -59)
48851 idata = idata + 1
48852 data_tmp = full_data(idata)
48853 data_tmp = ishft(data_tmp, 5)
48854 pack_tmp = ior(pack_tmp, data_tmp)
48855 pack_tmp = ishft(pack_tmp, -2)
48856 idata = idata + 1
48857 data_tmp = full_data(idata)
48858 data_tmp = ishft(data_tmp, 5)
48859 data_tmp = iand(data_tmp, mask_left(2))
48860 pack_tmp = ior(pack_tmp, data_tmp)
48861 ipack = ipack + 1
48862 packed_data(ipack) = pack_tmp
48863 data_tmp = full_data(idata)
48864 pack_tmp = ishft(data_tmp, 7)
48865 pack_tmp = ishft(pack_tmp, -7)
48866 idata = idata + 1
48867 data_tmp = full_data(idata)
48868 data_tmp = ishft(data_tmp, 5)
48869 data_tmp = iand(data_tmp, mask_left(7))
48870 pack_tmp = ior(pack_tmp, data_tmp)
48871 ipack = ipack + 1
48872 packed_data(ipack) = pack_tmp
48873 data_tmp = full_data(idata)
48874 pack_tmp = ishft(data_tmp, 12)
48875 pack_tmp = ishft(pack_tmp, -12)
48876 idata = idata + 1
48877 data_tmp = full_data(idata)
48878 data_tmp = ishft(data_tmp, 5)
48879 data_tmp = iand(data_tmp, mask_left(12))
48880 pack_tmp = ior(pack_tmp, data_tmp)
48881 ipack = ipack + 1
48882 packed_data(ipack) = pack_tmp
48883 data_tmp = full_data(idata)
48884 pack_tmp = ishft(data_tmp, 17)
48885 pack_tmp = ishft(pack_tmp, -17)
48886 idata = idata + 1
48887 data_tmp = full_data(idata)
48888 data_tmp = ishft(data_tmp, 5)
48889 data_tmp = iand(data_tmp, mask_left(17))
48890 pack_tmp = ior(pack_tmp, data_tmp)
48891 ipack = ipack + 1
48892 packed_data(ipack) = pack_tmp
48893 data_tmp = full_data(idata)
48894 pack_tmp = ishft(data_tmp, 22)
48895 pack_tmp = ishft(pack_tmp, -22)
48896 idata = idata + 1
48897 data_tmp = full_data(idata)
48898 data_tmp = ishft(data_tmp, 5)
48899 data_tmp = iand(data_tmp, mask_left(22))
48900 pack_tmp = ior(pack_tmp, data_tmp)
48901 ipack = ipack + 1
48902 packed_data(ipack) = pack_tmp
48903 data_tmp = full_data(idata)
48904 pack_tmp = ishft(data_tmp, 27)
48905 pack_tmp = ishft(pack_tmp, -27)
48906 idata = idata + 1
48907 data_tmp = full_data(idata)
48908 data_tmp = ishft(data_tmp, 5)
48909 data_tmp = iand(data_tmp, mask_left(27))
48910 pack_tmp = ior(pack_tmp, data_tmp)
48911 ipack = ipack + 1
48912 packed_data(ipack) = pack_tmp
48913 data_tmp = full_data(idata)
48914 pack_tmp = ishft(data_tmp, 32)
48915 pack_tmp = ishft(pack_tmp, -32)
48916 idata = idata + 1
48917 data_tmp = full_data(idata)
48918 data_tmp = ishft(data_tmp, 5)
48919 data_tmp = iand(data_tmp, mask_left(32))
48920 pack_tmp = ior(pack_tmp, data_tmp)
48921 ipack = ipack + 1
48922 packed_data(ipack) = pack_tmp
48923 data_tmp = full_data(idata)
48924 pack_tmp = ishft(data_tmp, 37)
48925 pack_tmp = ishft(pack_tmp, -37)
48926 idata = idata + 1
48927 data_tmp = full_data(idata)
48928 data_tmp = ishft(data_tmp, 5)
48929 data_tmp = iand(data_tmp, mask_left(37))
48930 pack_tmp = ior(pack_tmp, data_tmp)
48931 ipack = ipack + 1
48932 packed_data(ipack) = pack_tmp
48933 data_tmp = full_data(idata)
48934 pack_tmp = ishft(data_tmp, 42)
48935 pack_tmp = ishft(pack_tmp, -42)
48936 idata = idata + 1
48937 data_tmp = full_data(idata)
48938 data_tmp = ishft(data_tmp, 5)
48939 data_tmp = iand(data_tmp, mask_left(42))
48940 pack_tmp = ior(pack_tmp, data_tmp)
48941 ipack = ipack + 1
48942 packed_data(ipack) = pack_tmp
48943 data_tmp = full_data(idata)
48944 pack_tmp = ishft(data_tmp, 47)
48945 pack_tmp = ishft(pack_tmp, -47)
48946 idata = idata + 1
48947 data_tmp = full_data(idata)
48948 data_tmp = ishft(data_tmp, 5)
48949 data_tmp = iand(data_tmp, mask_left(47))
48950 pack_tmp = ior(pack_tmp, data_tmp)
48951 ipack = ipack + 1
48952 packed_data(ipack) = pack_tmp
48953 data_tmp = full_data(idata)
48954 pack_tmp = ishft(data_tmp, 52)
48955 pack_tmp = ishft(pack_tmp, -52)
48956 idata = idata + 1
48957 data_tmp = full_data(idata)
48958 data_tmp = ishft(data_tmp, 5)
48959 data_tmp = iand(data_tmp, mask_left(52))
48960 pack_tmp = ior(pack_tmp, data_tmp)
48961 ipack = ipack + 1
48962 packed_data(ipack) = pack_tmp
48963 data_tmp = full_data(idata)
48964 pack_tmp = ishft(data_tmp, 57)
48965 pack_tmp = ishft(pack_tmp, -57)
48966 idata = idata + 1
48967 data_tmp = full_data(idata)
48968 data_tmp = ishft(data_tmp, 5)
48969 data_tmp = iand(data_tmp, mask_left(57))
48970 pack_tmp = ior(pack_tmp, data_tmp)
48971 ipack = ipack + 1
48972 packed_data(ipack) = pack_tmp
48973 data_tmp = full_data(idata)
48974 pack_tmp = ishft(data_tmp, 62)
48975 pack_tmp = ishft(pack_tmp, -59)
48976 idata = idata + 1
48977 data_tmp = full_data(idata)
48978 data_tmp = ishft(data_tmp, 5)
48979 pack_tmp = ior(pack_tmp, data_tmp)
48980 pack_tmp = ishft(pack_tmp, -3)
48981 idata = idata + 1
48982 data_tmp = full_data(idata)
48983 data_tmp = ishft(data_tmp, 5)
48984 data_tmp = iand(data_tmp, mask_left(3))
48985 pack_tmp = ior(pack_tmp, data_tmp)
48986 ipack = ipack + 1
48987 packed_data(ipack) = pack_tmp
48988 data_tmp = full_data(idata)
48989 pack_tmp = ishft(data_tmp, 8)
48990 pack_tmp = ishft(pack_tmp, -8)
48991 idata = idata + 1
48992 data_tmp = full_data(idata)
48993 data_tmp = ishft(data_tmp, 5)
48994 data_tmp = iand(data_tmp, mask_left(8))
48995 pack_tmp = ior(pack_tmp, data_tmp)
48996 ipack = ipack + 1
48997 packed_data(ipack) = pack_tmp
48998 data_tmp = full_data(idata)
48999 pack_tmp = ishft(data_tmp, 13)
49000 pack_tmp = ishft(pack_tmp, -13)
49001 idata = idata + 1
49002 data_tmp = full_data(idata)
49003 data_tmp = ishft(data_tmp, 5)
49004 data_tmp = iand(data_tmp, mask_left(13))
49005 pack_tmp = ior(pack_tmp, data_tmp)
49006 ipack = ipack + 1
49007 packed_data(ipack) = pack_tmp
49008 data_tmp = full_data(idata)
49009 pack_tmp = ishft(data_tmp, 18)
49010 pack_tmp = ishft(pack_tmp, -18)
49011 idata = idata + 1
49012 data_tmp = full_data(idata)
49013 data_tmp = ishft(data_tmp, 5)
49014 data_tmp = iand(data_tmp, mask_left(18))
49015 pack_tmp = ior(pack_tmp, data_tmp)
49016 ipack = ipack + 1
49017 packed_data(ipack) = pack_tmp
49018 data_tmp = full_data(idata)
49019 pack_tmp = ishft(data_tmp, 23)
49020 pack_tmp = ishft(pack_tmp, -23)
49021 idata = idata + 1
49022 data_tmp = full_data(idata)
49023 data_tmp = ishft(data_tmp, 5)
49024 data_tmp = iand(data_tmp, mask_left(23))
49025 pack_tmp = ior(pack_tmp, data_tmp)
49026 ipack = ipack + 1
49027 packed_data(ipack) = pack_tmp
49028 data_tmp = full_data(idata)
49029 pack_tmp = ishft(data_tmp, 28)
49030 pack_tmp = ishft(pack_tmp, -28)
49031 idata = idata + 1
49032 data_tmp = full_data(idata)
49033 data_tmp = ishft(data_tmp, 5)
49034 data_tmp = iand(data_tmp, mask_left(28))
49035 pack_tmp = ior(pack_tmp, data_tmp)
49036 ipack = ipack + 1
49037 packed_data(ipack) = pack_tmp
49038 data_tmp = full_data(idata)
49039 pack_tmp = ishft(data_tmp, 33)
49040 pack_tmp = ishft(pack_tmp, -33)
49041 idata = idata + 1
49042 data_tmp = full_data(idata)
49043 data_tmp = ishft(data_tmp, 5)
49044 data_tmp = iand(data_tmp, mask_left(33))
49045 pack_tmp = ior(pack_tmp, data_tmp)
49046 ipack = ipack + 1
49047 packed_data(ipack) = pack_tmp
49048 data_tmp = full_data(idata)
49049 pack_tmp = ishft(data_tmp, 38)
49050 pack_tmp = ishft(pack_tmp, -38)
49051 idata = idata + 1
49052 data_tmp = full_data(idata)
49053 data_tmp = ishft(data_tmp, 5)
49054 data_tmp = iand(data_tmp, mask_left(38))
49055 pack_tmp = ior(pack_tmp, data_tmp)
49056 ipack = ipack + 1
49057 packed_data(ipack) = pack_tmp
49058 data_tmp = full_data(idata)
49059 pack_tmp = ishft(data_tmp, 43)
49060 pack_tmp = ishft(pack_tmp, -43)
49061 idata = idata + 1
49062 data_tmp = full_data(idata)
49063 data_tmp = ishft(data_tmp, 5)
49064 data_tmp = iand(data_tmp, mask_left(43))
49065 pack_tmp = ior(pack_tmp, data_tmp)
49066 ipack = ipack + 1
49067 packed_data(ipack) = pack_tmp
49068 data_tmp = full_data(idata)
49069 pack_tmp = ishft(data_tmp, 48)
49070 pack_tmp = ishft(pack_tmp, -48)
49071 idata = idata + 1
49072 data_tmp = full_data(idata)
49073 data_tmp = ishft(data_tmp, 5)
49074 data_tmp = iand(data_tmp, mask_left(48))
49075 pack_tmp = ior(pack_tmp, data_tmp)
49076 ipack = ipack + 1
49077 packed_data(ipack) = pack_tmp
49078 data_tmp = full_data(idata)
49079 pack_tmp = ishft(data_tmp, 53)
49080 pack_tmp = ishft(pack_tmp, -53)
49081 idata = idata + 1
49082 data_tmp = full_data(idata)
49083 data_tmp = ishft(data_tmp, 5)
49084 data_tmp = iand(data_tmp, mask_left(53))
49085 pack_tmp = ior(pack_tmp, data_tmp)
49086 ipack = ipack + 1
49087 packed_data(ipack) = pack_tmp
49088 data_tmp = full_data(idata)
49089 pack_tmp = ishft(data_tmp, 58)
49090 pack_tmp = ishft(pack_tmp, -58)
49091 idata = idata + 1
49092 data_tmp = full_data(idata)
49093 data_tmp = ishft(data_tmp, 5)
49094 data_tmp = iand(data_tmp, mask_left(58))
49095 pack_tmp = ior(pack_tmp, data_tmp)
49096 ipack = ipack + 1
49097 packed_data(ipack) = pack_tmp
49098 data_tmp = full_data(idata)
49099 pack_tmp = ishft(data_tmp, 63)
49100 pack_tmp = ishft(pack_tmp, -59)
49101 idata = idata + 1
49102 data_tmp = full_data(idata)
49103 data_tmp = ishft(data_tmp, 5)
49104 pack_tmp = ior(pack_tmp, data_tmp)
49105 pack_tmp = ishft(pack_tmp, -4)
49106 idata = idata + 1
49107 data_tmp = full_data(idata)
49108 data_tmp = ishft(data_tmp, 5)
49109 data_tmp = iand(data_tmp, mask_left(4))
49110 pack_tmp = ior(pack_tmp, data_tmp)
49111 ipack = ipack + 1
49112 packed_data(ipack) = pack_tmp
49113 data_tmp = full_data(idata)
49114 pack_tmp = ishft(data_tmp, 9)
49115 pack_tmp = ishft(pack_tmp, -9)
49116 idata = idata + 1
49117 data_tmp = full_data(idata)
49118 data_tmp = ishft(data_tmp, 5)
49119 data_tmp = iand(data_tmp, mask_left(9))
49120 pack_tmp = ior(pack_tmp, data_tmp)
49121 ipack = ipack + 1
49122 packed_data(ipack) = pack_tmp
49123 data_tmp = full_data(idata)
49124 pack_tmp = ishft(data_tmp, 14)
49125 pack_tmp = ishft(pack_tmp, -14)
49126 idata = idata + 1
49127 data_tmp = full_data(idata)
49128 data_tmp = ishft(data_tmp, 5)
49129 data_tmp = iand(data_tmp, mask_left(14))
49130 pack_tmp = ior(pack_tmp, data_tmp)
49131 ipack = ipack + 1
49132 packed_data(ipack) = pack_tmp
49133 data_tmp = full_data(idata)
49134 pack_tmp = ishft(data_tmp, 19)
49135 pack_tmp = ishft(pack_tmp, -19)
49136 idata = idata + 1
49137 data_tmp = full_data(idata)
49138 data_tmp = ishft(data_tmp, 5)
49139 data_tmp = iand(data_tmp, mask_left(19))
49140 pack_tmp = ior(pack_tmp, data_tmp)
49141 ipack = ipack + 1
49142 packed_data(ipack) = pack_tmp
49143 data_tmp = full_data(idata)
49144 pack_tmp = ishft(data_tmp, 24)
49145 pack_tmp = ishft(pack_tmp, -24)
49146 idata = idata + 1
49147 data_tmp = full_data(idata)
49148 data_tmp = ishft(data_tmp, 5)
49149 data_tmp = iand(data_tmp, mask_left(24))
49150 pack_tmp = ior(pack_tmp, data_tmp)
49151 ipack = ipack + 1
49152 packed_data(ipack) = pack_tmp
49153 data_tmp = full_data(idata)
49154 pack_tmp = ishft(data_tmp, 29)
49155 pack_tmp = ishft(pack_tmp, -29)
49156 idata = idata + 1
49157 data_tmp = full_data(idata)
49158 data_tmp = ishft(data_tmp, 5)
49159 data_tmp = iand(data_tmp, mask_left(29))
49160 pack_tmp = ior(pack_tmp, data_tmp)
49161 ipack = ipack + 1
49162 packed_data(ipack) = pack_tmp
49163 data_tmp = full_data(idata)
49164 pack_tmp = ishft(data_tmp, 34)
49165 pack_tmp = ishft(pack_tmp, -34)
49166 idata = idata + 1
49167 data_tmp = full_data(idata)
49168 data_tmp = ishft(data_tmp, 5)
49169 data_tmp = iand(data_tmp, mask_left(34))
49170 pack_tmp = ior(pack_tmp, data_tmp)
49171 ipack = ipack + 1
49172 packed_data(ipack) = pack_tmp
49173 data_tmp = full_data(idata)
49174 pack_tmp = ishft(data_tmp, 39)
49175 pack_tmp = ishft(pack_tmp, -39)
49176 idata = idata + 1
49177 data_tmp = full_data(idata)
49178 data_tmp = ishft(data_tmp, 5)
49179 data_tmp = iand(data_tmp, mask_left(39))
49180 pack_tmp = ior(pack_tmp, data_tmp)
49181 ipack = ipack + 1
49182 packed_data(ipack) = pack_tmp
49183 data_tmp = full_data(idata)
49184 pack_tmp = ishft(data_tmp, 44)
49185 pack_tmp = ishft(pack_tmp, -44)
49186 idata = idata + 1
49187 data_tmp = full_data(idata)
49188 data_tmp = ishft(data_tmp, 5)
49189 data_tmp = iand(data_tmp, mask_left(44))
49190 pack_tmp = ior(pack_tmp, data_tmp)
49191 ipack = ipack + 1
49192 packed_data(ipack) = pack_tmp
49193 data_tmp = full_data(idata)
49194 pack_tmp = ishft(data_tmp, 49)
49195 pack_tmp = ishft(pack_tmp, -49)
49196 idata = idata + 1
49197 data_tmp = full_data(idata)
49198 data_tmp = ishft(data_tmp, 5)
49199 data_tmp = iand(data_tmp, mask_left(49))
49200 pack_tmp = ior(pack_tmp, data_tmp)
49201 ipack = ipack + 1
49202 packed_data(ipack) = pack_tmp
49203 data_tmp = full_data(idata)
49204 pack_tmp = ishft(data_tmp, 54)
49205 pack_tmp = ishft(pack_tmp, -54)
49206 idata = idata + 1
49207 data_tmp = full_data(idata)
49208 data_tmp = ishft(data_tmp, 5)
49209 data_tmp = iand(data_tmp, mask_left(54))
49210 pack_tmp = ior(pack_tmp, data_tmp)
49211 ipack = ipack + 1
49212 packed_data(ipack) = pack_tmp
49213 data_tmp = full_data(idata)
49214 pack_tmp = ishft(data_tmp, 59)
49215 pack_tmp = ishft(pack_tmp, -59)
49216 idata = idata + 1
49217 data_tmp = full_data(idata)
49218 data_tmp = ishft(data_tmp, 5)
49219 pack_tmp = ior(pack_tmp, data_tmp)
49220 pack_tmp = ishft(pack_tmp, 0)
49221 pack_tmp = ishft(pack_tmp, 0)
49222 ipack = ipack + 1
49223 packed_data(ipack) = pack_tmp
49224 END DO
49225 IF (ndata_rep < ndata) THEN
49226 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
49227 END IF
49228 END SUBROUTINE ints2bits_59
49229
49230! **************************************************************************************************
49231!> \brief ...
49232!> \param Ndata ...
49233!> \param packed_data ...
49234!> \param full_data ...
49235! **************************************************************************************************
49236 SUBROUTINE bits2ints_59(Ndata, packed_data, full_data)
49237 INTEGER, INTENT(IN) :: Ndata
49238 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
49239 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
49240
49241 INTEGER, PARAMETER :: Nbits = 59
49242
49243 INTEGER :: idata, ipack, kdata, Ndata_rep
49244 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
49245
49246 ipack = 0
49247 idata = 0
49248 pack_tmp = 0
49249 ndata_rep = (ndata/64)*64
49250 DO kdata = 1, ndata_rep, 64
49251 idata = idata + 1
49252 data_tmp = ishft(pack_tmp, 59)
49253 ipack = ipack + 1
49254 pack_tmp = packed_data(ipack)
49255 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(59)))
49256 pack_tmp = ishft(pack_tmp, -59)
49257 idata = idata + 1
49258 data_tmp = ishft(pack_tmp, 54)
49259 ipack = ipack + 1
49260 pack_tmp = packed_data(ipack)
49261 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(54)))
49262 pack_tmp = ishft(pack_tmp, -54)
49263 idata = idata + 1
49264 data_tmp = ishft(pack_tmp, 49)
49265 ipack = ipack + 1
49266 pack_tmp = packed_data(ipack)
49267 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(49)))
49268 pack_tmp = ishft(pack_tmp, -49)
49269 idata = idata + 1
49270 data_tmp = ishft(pack_tmp, 44)
49271 ipack = ipack + 1
49272 pack_tmp = packed_data(ipack)
49273 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
49274 pack_tmp = ishft(pack_tmp, -44)
49275 idata = idata + 1
49276 data_tmp = ishft(pack_tmp, 39)
49277 ipack = ipack + 1
49278 pack_tmp = packed_data(ipack)
49279 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
49280 pack_tmp = ishft(pack_tmp, -39)
49281 idata = idata + 1
49282 data_tmp = ishft(pack_tmp, 34)
49283 ipack = ipack + 1
49284 pack_tmp = packed_data(ipack)
49285 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
49286 pack_tmp = ishft(pack_tmp, -34)
49287 idata = idata + 1
49288 data_tmp = ishft(pack_tmp, 29)
49289 ipack = ipack + 1
49290 pack_tmp = packed_data(ipack)
49291 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
49292 pack_tmp = ishft(pack_tmp, -29)
49293 idata = idata + 1
49294 data_tmp = ishft(pack_tmp, 24)
49295 ipack = ipack + 1
49296 pack_tmp = packed_data(ipack)
49297 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
49298 pack_tmp = ishft(pack_tmp, -24)
49299 idata = idata + 1
49300 data_tmp = ishft(pack_tmp, 19)
49301 ipack = ipack + 1
49302 pack_tmp = packed_data(ipack)
49303 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
49304 pack_tmp = ishft(pack_tmp, -19)
49305 idata = idata + 1
49306 data_tmp = ishft(pack_tmp, 14)
49307 ipack = ipack + 1
49308 pack_tmp = packed_data(ipack)
49309 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
49310 pack_tmp = ishft(pack_tmp, -14)
49311 idata = idata + 1
49312 data_tmp = ishft(pack_tmp, 9)
49313 ipack = ipack + 1
49314 pack_tmp = packed_data(ipack)
49315 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
49316 pack_tmp = ishft(pack_tmp, -9)
49317 idata = idata + 1
49318 data_tmp = ishft(pack_tmp, 4)
49319 ipack = ipack + 1
49320 pack_tmp = packed_data(ipack)
49321 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
49322 pack_tmp = ishft(pack_tmp, -4)
49323 idata = idata + 1
49324 data_tmp = iand(pack_tmp, mask_right(nbits))
49325 full_data(idata) = data_tmp
49326 pack_tmp = ishft(pack_tmp, -nbits)
49327 idata = idata + 1
49328 data_tmp = ishft(pack_tmp, 58)
49329 ipack = ipack + 1
49330 pack_tmp = packed_data(ipack)
49331 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(58)))
49332 pack_tmp = ishft(pack_tmp, -58)
49333 idata = idata + 1
49334 data_tmp = ishft(pack_tmp, 53)
49335 ipack = ipack + 1
49336 pack_tmp = packed_data(ipack)
49337 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(53)))
49338 pack_tmp = ishft(pack_tmp, -53)
49339 idata = idata + 1
49340 data_tmp = ishft(pack_tmp, 48)
49341 ipack = ipack + 1
49342 pack_tmp = packed_data(ipack)
49343 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
49344 pack_tmp = ishft(pack_tmp, -48)
49345 idata = idata + 1
49346 data_tmp = ishft(pack_tmp, 43)
49347 ipack = ipack + 1
49348 pack_tmp = packed_data(ipack)
49349 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(43)))
49350 pack_tmp = ishft(pack_tmp, -43)
49351 idata = idata + 1
49352 data_tmp = ishft(pack_tmp, 38)
49353 ipack = ipack + 1
49354 pack_tmp = packed_data(ipack)
49355 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
49356 pack_tmp = ishft(pack_tmp, -38)
49357 idata = idata + 1
49358 data_tmp = ishft(pack_tmp, 33)
49359 ipack = ipack + 1
49360 pack_tmp = packed_data(ipack)
49361 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
49362 pack_tmp = ishft(pack_tmp, -33)
49363 idata = idata + 1
49364 data_tmp = ishft(pack_tmp, 28)
49365 ipack = ipack + 1
49366 pack_tmp = packed_data(ipack)
49367 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
49368 pack_tmp = ishft(pack_tmp, -28)
49369 idata = idata + 1
49370 data_tmp = ishft(pack_tmp, 23)
49371 ipack = ipack + 1
49372 pack_tmp = packed_data(ipack)
49373 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
49374 pack_tmp = ishft(pack_tmp, -23)
49375 idata = idata + 1
49376 data_tmp = ishft(pack_tmp, 18)
49377 ipack = ipack + 1
49378 pack_tmp = packed_data(ipack)
49379 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
49380 pack_tmp = ishft(pack_tmp, -18)
49381 idata = idata + 1
49382 data_tmp = ishft(pack_tmp, 13)
49383 ipack = ipack + 1
49384 pack_tmp = packed_data(ipack)
49385 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
49386 pack_tmp = ishft(pack_tmp, -13)
49387 idata = idata + 1
49388 data_tmp = ishft(pack_tmp, 8)
49389 ipack = ipack + 1
49390 pack_tmp = packed_data(ipack)
49391 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
49392 pack_tmp = ishft(pack_tmp, -8)
49393 idata = idata + 1
49394 data_tmp = ishft(pack_tmp, 3)
49395 ipack = ipack + 1
49396 pack_tmp = packed_data(ipack)
49397 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
49398 pack_tmp = ishft(pack_tmp, -3)
49399 idata = idata + 1
49400 data_tmp = iand(pack_tmp, mask_right(nbits))
49401 full_data(idata) = data_tmp
49402 pack_tmp = ishft(pack_tmp, -nbits)
49403 idata = idata + 1
49404 data_tmp = ishft(pack_tmp, 57)
49405 ipack = ipack + 1
49406 pack_tmp = packed_data(ipack)
49407 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(57)))
49408 pack_tmp = ishft(pack_tmp, -57)
49409 idata = idata + 1
49410 data_tmp = ishft(pack_tmp, 52)
49411 ipack = ipack + 1
49412 pack_tmp = packed_data(ipack)
49413 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
49414 pack_tmp = ishft(pack_tmp, -52)
49415 idata = idata + 1
49416 data_tmp = ishft(pack_tmp, 47)
49417 ipack = ipack + 1
49418 pack_tmp = packed_data(ipack)
49419 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(47)))
49420 pack_tmp = ishft(pack_tmp, -47)
49421 idata = idata + 1
49422 data_tmp = ishft(pack_tmp, 42)
49423 ipack = ipack + 1
49424 pack_tmp = packed_data(ipack)
49425 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
49426 pack_tmp = ishft(pack_tmp, -42)
49427 idata = idata + 1
49428 data_tmp = ishft(pack_tmp, 37)
49429 ipack = ipack + 1
49430 pack_tmp = packed_data(ipack)
49431 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
49432 pack_tmp = ishft(pack_tmp, -37)
49433 idata = idata + 1
49434 data_tmp = ishft(pack_tmp, 32)
49435 ipack = ipack + 1
49436 pack_tmp = packed_data(ipack)
49437 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
49438 pack_tmp = ishft(pack_tmp, -32)
49439 idata = idata + 1
49440 data_tmp = ishft(pack_tmp, 27)
49441 ipack = ipack + 1
49442 pack_tmp = packed_data(ipack)
49443 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
49444 pack_tmp = ishft(pack_tmp, -27)
49445 idata = idata + 1
49446 data_tmp = ishft(pack_tmp, 22)
49447 ipack = ipack + 1
49448 pack_tmp = packed_data(ipack)
49449 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
49450 pack_tmp = ishft(pack_tmp, -22)
49451 idata = idata + 1
49452 data_tmp = ishft(pack_tmp, 17)
49453 ipack = ipack + 1
49454 pack_tmp = packed_data(ipack)
49455 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
49456 pack_tmp = ishft(pack_tmp, -17)
49457 idata = idata + 1
49458 data_tmp = ishft(pack_tmp, 12)
49459 ipack = ipack + 1
49460 pack_tmp = packed_data(ipack)
49461 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
49462 pack_tmp = ishft(pack_tmp, -12)
49463 idata = idata + 1
49464 data_tmp = ishft(pack_tmp, 7)
49465 ipack = ipack + 1
49466 pack_tmp = packed_data(ipack)
49467 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
49468 pack_tmp = ishft(pack_tmp, -7)
49469 idata = idata + 1
49470 data_tmp = ishft(pack_tmp, 2)
49471 ipack = ipack + 1
49472 pack_tmp = packed_data(ipack)
49473 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
49474 pack_tmp = ishft(pack_tmp, -2)
49475 idata = idata + 1
49476 data_tmp = iand(pack_tmp, mask_right(nbits))
49477 full_data(idata) = data_tmp
49478 pack_tmp = ishft(pack_tmp, -nbits)
49479 idata = idata + 1
49480 data_tmp = ishft(pack_tmp, 56)
49481 ipack = ipack + 1
49482 pack_tmp = packed_data(ipack)
49483 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
49484 pack_tmp = ishft(pack_tmp, -56)
49485 idata = idata + 1
49486 data_tmp = ishft(pack_tmp, 51)
49487 ipack = ipack + 1
49488 pack_tmp = packed_data(ipack)
49489 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(51)))
49490 pack_tmp = ishft(pack_tmp, -51)
49491 idata = idata + 1
49492 data_tmp = ishft(pack_tmp, 46)
49493 ipack = ipack + 1
49494 pack_tmp = packed_data(ipack)
49495 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
49496 pack_tmp = ishft(pack_tmp, -46)
49497 idata = idata + 1
49498 data_tmp = ishft(pack_tmp, 41)
49499 ipack = ipack + 1
49500 pack_tmp = packed_data(ipack)
49501 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(41)))
49502 pack_tmp = ishft(pack_tmp, -41)
49503 idata = idata + 1
49504 data_tmp = ishft(pack_tmp, 36)
49505 ipack = ipack + 1
49506 pack_tmp = packed_data(ipack)
49507 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
49508 pack_tmp = ishft(pack_tmp, -36)
49509 idata = idata + 1
49510 data_tmp = ishft(pack_tmp, 31)
49511 ipack = ipack + 1
49512 pack_tmp = packed_data(ipack)
49513 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
49514 pack_tmp = ishft(pack_tmp, -31)
49515 idata = idata + 1
49516 data_tmp = ishft(pack_tmp, 26)
49517 ipack = ipack + 1
49518 pack_tmp = packed_data(ipack)
49519 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
49520 pack_tmp = ishft(pack_tmp, -26)
49521 idata = idata + 1
49522 data_tmp = ishft(pack_tmp, 21)
49523 ipack = ipack + 1
49524 pack_tmp = packed_data(ipack)
49525 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
49526 pack_tmp = ishft(pack_tmp, -21)
49527 idata = idata + 1
49528 data_tmp = ishft(pack_tmp, 16)
49529 ipack = ipack + 1
49530 pack_tmp = packed_data(ipack)
49531 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
49532 pack_tmp = ishft(pack_tmp, -16)
49533 idata = idata + 1
49534 data_tmp = ishft(pack_tmp, 11)
49535 ipack = ipack + 1
49536 pack_tmp = packed_data(ipack)
49537 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
49538 pack_tmp = ishft(pack_tmp, -11)
49539 idata = idata + 1
49540 data_tmp = ishft(pack_tmp, 6)
49541 ipack = ipack + 1
49542 pack_tmp = packed_data(ipack)
49543 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
49544 pack_tmp = ishft(pack_tmp, -6)
49545 idata = idata + 1
49546 data_tmp = ishft(pack_tmp, 1)
49547 ipack = ipack + 1
49548 pack_tmp = packed_data(ipack)
49549 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
49550 pack_tmp = ishft(pack_tmp, -1)
49551 idata = idata + 1
49552 data_tmp = iand(pack_tmp, mask_right(nbits))
49553 full_data(idata) = data_tmp
49554 pack_tmp = ishft(pack_tmp, -nbits)
49555 idata = idata + 1
49556 data_tmp = ishft(pack_tmp, 55)
49557 ipack = ipack + 1
49558 pack_tmp = packed_data(ipack)
49559 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(55)))
49560 pack_tmp = ishft(pack_tmp, -55)
49561 idata = idata + 1
49562 data_tmp = ishft(pack_tmp, 50)
49563 ipack = ipack + 1
49564 pack_tmp = packed_data(ipack)
49565 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
49566 pack_tmp = ishft(pack_tmp, -50)
49567 idata = idata + 1
49568 data_tmp = ishft(pack_tmp, 45)
49569 ipack = ipack + 1
49570 pack_tmp = packed_data(ipack)
49571 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(45)))
49572 pack_tmp = ishft(pack_tmp, -45)
49573 idata = idata + 1
49574 data_tmp = ishft(pack_tmp, 40)
49575 ipack = ipack + 1
49576 pack_tmp = packed_data(ipack)
49577 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
49578 pack_tmp = ishft(pack_tmp, -40)
49579 idata = idata + 1
49580 data_tmp = ishft(pack_tmp, 35)
49581 ipack = ipack + 1
49582 pack_tmp = packed_data(ipack)
49583 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
49584 pack_tmp = ishft(pack_tmp, -35)
49585 idata = idata + 1
49586 data_tmp = ishft(pack_tmp, 30)
49587 ipack = ipack + 1
49588 pack_tmp = packed_data(ipack)
49589 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
49590 pack_tmp = ishft(pack_tmp, -30)
49591 idata = idata + 1
49592 data_tmp = ishft(pack_tmp, 25)
49593 ipack = ipack + 1
49594 pack_tmp = packed_data(ipack)
49595 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
49596 pack_tmp = ishft(pack_tmp, -25)
49597 idata = idata + 1
49598 data_tmp = ishft(pack_tmp, 20)
49599 ipack = ipack + 1
49600 pack_tmp = packed_data(ipack)
49601 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
49602 pack_tmp = ishft(pack_tmp, -20)
49603 idata = idata + 1
49604 data_tmp = ishft(pack_tmp, 15)
49605 ipack = ipack + 1
49606 pack_tmp = packed_data(ipack)
49607 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
49608 pack_tmp = ishft(pack_tmp, -15)
49609 idata = idata + 1
49610 data_tmp = ishft(pack_tmp, 10)
49611 ipack = ipack + 1
49612 pack_tmp = packed_data(ipack)
49613 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
49614 pack_tmp = ishft(pack_tmp, -10)
49615 idata = idata + 1
49616 data_tmp = ishft(pack_tmp, 5)
49617 ipack = ipack + 1
49618 pack_tmp = packed_data(ipack)
49619 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
49620 pack_tmp = ishft(pack_tmp, -5)
49621 idata = idata + 1
49622 data_tmp = iand(pack_tmp, mask_right(nbits))
49623 full_data(idata) = data_tmp
49624 pack_tmp = ishft(pack_tmp, -nbits)
49625 END DO
49626 IF (ndata_rep < ndata) THEN
49627 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
49628 END IF
49629 END SUBROUTINE bits2ints_59
49630
49631! **************************************************************************************************
49632!> \brief ...
49633!> \param Ndata ...
49634!> \param packed_data ...
49635!> \param full_data ...
49636! **************************************************************************************************
49637 SUBROUTINE ints2bits_60(Ndata, packed_data, full_data)
49638 INTEGER, INTENT(IN) :: Ndata
49639 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
49640 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
49641
49642 INTEGER, PARAMETER :: Nbits = 60
49643
49644 INTEGER :: idata, ipack, kdata, Ndata_rep
49645 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
49646
49647 idata = 0
49648 ipack = 0
49649 ndata_rep = (ndata/64)*64
49650 DO kdata = 1, ndata_rep, 64
49651 pack_tmp = 0
49652 idata = idata + 1
49653 data_tmp = full_data(idata)
49654 data_tmp = ishft(data_tmp, 4)
49655 pack_tmp = ior(pack_tmp, data_tmp)
49656 pack_tmp = ishft(pack_tmp, -4)
49657 idata = idata + 1
49658 data_tmp = full_data(idata)
49659 data_tmp = ishft(data_tmp, 4)
49660 data_tmp = iand(data_tmp, mask_left(4))
49661 pack_tmp = ior(pack_tmp, data_tmp)
49662 ipack = ipack + 1
49663 packed_data(ipack) = pack_tmp
49664 data_tmp = full_data(idata)
49665 pack_tmp = ishft(data_tmp, 8)
49666 pack_tmp = ishft(pack_tmp, -8)
49667 idata = idata + 1
49668 data_tmp = full_data(idata)
49669 data_tmp = ishft(data_tmp, 4)
49670 data_tmp = iand(data_tmp, mask_left(8))
49671 pack_tmp = ior(pack_tmp, data_tmp)
49672 ipack = ipack + 1
49673 packed_data(ipack) = pack_tmp
49674 data_tmp = full_data(idata)
49675 pack_tmp = ishft(data_tmp, 12)
49676 pack_tmp = ishft(pack_tmp, -12)
49677 idata = idata + 1
49678 data_tmp = full_data(idata)
49679 data_tmp = ishft(data_tmp, 4)
49680 data_tmp = iand(data_tmp, mask_left(12))
49681 pack_tmp = ior(pack_tmp, data_tmp)
49682 ipack = ipack + 1
49683 packed_data(ipack) = pack_tmp
49684 data_tmp = full_data(idata)
49685 pack_tmp = ishft(data_tmp, 16)
49686 pack_tmp = ishft(pack_tmp, -16)
49687 idata = idata + 1
49688 data_tmp = full_data(idata)
49689 data_tmp = ishft(data_tmp, 4)
49690 data_tmp = iand(data_tmp, mask_left(16))
49691 pack_tmp = ior(pack_tmp, data_tmp)
49692 ipack = ipack + 1
49693 packed_data(ipack) = pack_tmp
49694 data_tmp = full_data(idata)
49695 pack_tmp = ishft(data_tmp, 20)
49696 pack_tmp = ishft(pack_tmp, -20)
49697 idata = idata + 1
49698 data_tmp = full_data(idata)
49699 data_tmp = ishft(data_tmp, 4)
49700 data_tmp = iand(data_tmp, mask_left(20))
49701 pack_tmp = ior(pack_tmp, data_tmp)
49702 ipack = ipack + 1
49703 packed_data(ipack) = pack_tmp
49704 data_tmp = full_data(idata)
49705 pack_tmp = ishft(data_tmp, 24)
49706 pack_tmp = ishft(pack_tmp, -24)
49707 idata = idata + 1
49708 data_tmp = full_data(idata)
49709 data_tmp = ishft(data_tmp, 4)
49710 data_tmp = iand(data_tmp, mask_left(24))
49711 pack_tmp = ior(pack_tmp, data_tmp)
49712 ipack = ipack + 1
49713 packed_data(ipack) = pack_tmp
49714 data_tmp = full_data(idata)
49715 pack_tmp = ishft(data_tmp, 28)
49716 pack_tmp = ishft(pack_tmp, -28)
49717 idata = idata + 1
49718 data_tmp = full_data(idata)
49719 data_tmp = ishft(data_tmp, 4)
49720 data_tmp = iand(data_tmp, mask_left(28))
49721 pack_tmp = ior(pack_tmp, data_tmp)
49722 ipack = ipack + 1
49723 packed_data(ipack) = pack_tmp
49724 data_tmp = full_data(idata)
49725 pack_tmp = ishft(data_tmp, 32)
49726 pack_tmp = ishft(pack_tmp, -32)
49727 idata = idata + 1
49728 data_tmp = full_data(idata)
49729 data_tmp = ishft(data_tmp, 4)
49730 data_tmp = iand(data_tmp, mask_left(32))
49731 pack_tmp = ior(pack_tmp, data_tmp)
49732 ipack = ipack + 1
49733 packed_data(ipack) = pack_tmp
49734 data_tmp = full_data(idata)
49735 pack_tmp = ishft(data_tmp, 36)
49736 pack_tmp = ishft(pack_tmp, -36)
49737 idata = idata + 1
49738 data_tmp = full_data(idata)
49739 data_tmp = ishft(data_tmp, 4)
49740 data_tmp = iand(data_tmp, mask_left(36))
49741 pack_tmp = ior(pack_tmp, data_tmp)
49742 ipack = ipack + 1
49743 packed_data(ipack) = pack_tmp
49744 data_tmp = full_data(idata)
49745 pack_tmp = ishft(data_tmp, 40)
49746 pack_tmp = ishft(pack_tmp, -40)
49747 idata = idata + 1
49748 data_tmp = full_data(idata)
49749 data_tmp = ishft(data_tmp, 4)
49750 data_tmp = iand(data_tmp, mask_left(40))
49751 pack_tmp = ior(pack_tmp, data_tmp)
49752 ipack = ipack + 1
49753 packed_data(ipack) = pack_tmp
49754 data_tmp = full_data(idata)
49755 pack_tmp = ishft(data_tmp, 44)
49756 pack_tmp = ishft(pack_tmp, -44)
49757 idata = idata + 1
49758 data_tmp = full_data(idata)
49759 data_tmp = ishft(data_tmp, 4)
49760 data_tmp = iand(data_tmp, mask_left(44))
49761 pack_tmp = ior(pack_tmp, data_tmp)
49762 ipack = ipack + 1
49763 packed_data(ipack) = pack_tmp
49764 data_tmp = full_data(idata)
49765 pack_tmp = ishft(data_tmp, 48)
49766 pack_tmp = ishft(pack_tmp, -48)
49767 idata = idata + 1
49768 data_tmp = full_data(idata)
49769 data_tmp = ishft(data_tmp, 4)
49770 data_tmp = iand(data_tmp, mask_left(48))
49771 pack_tmp = ior(pack_tmp, data_tmp)
49772 ipack = ipack + 1
49773 packed_data(ipack) = pack_tmp
49774 data_tmp = full_data(idata)
49775 pack_tmp = ishft(data_tmp, 52)
49776 pack_tmp = ishft(pack_tmp, -52)
49777 idata = idata + 1
49778 data_tmp = full_data(idata)
49779 data_tmp = ishft(data_tmp, 4)
49780 data_tmp = iand(data_tmp, mask_left(52))
49781 pack_tmp = ior(pack_tmp, data_tmp)
49782 ipack = ipack + 1
49783 packed_data(ipack) = pack_tmp
49784 data_tmp = full_data(idata)
49785 pack_tmp = ishft(data_tmp, 56)
49786 pack_tmp = ishft(pack_tmp, -56)
49787 idata = idata + 1
49788 data_tmp = full_data(idata)
49789 data_tmp = ishft(data_tmp, 4)
49790 data_tmp = iand(data_tmp, mask_left(56))
49791 pack_tmp = ior(pack_tmp, data_tmp)
49792 ipack = ipack + 1
49793 packed_data(ipack) = pack_tmp
49794 data_tmp = full_data(idata)
49795 pack_tmp = ishft(data_tmp, 60)
49796 pack_tmp = ishft(pack_tmp, -60)
49797 idata = idata + 1
49798 data_tmp = full_data(idata)
49799 data_tmp = ishft(data_tmp, 4)
49800 pack_tmp = ior(pack_tmp, data_tmp)
49801 pack_tmp = ishft(pack_tmp, 0)
49802 idata = idata + 1
49803 data_tmp = full_data(idata)
49804 data_tmp = ishft(data_tmp, 4)
49805 data_tmp = iand(data_tmp, mask_left(0))
49806 pack_tmp = ior(pack_tmp, data_tmp)
49807 ipack = ipack + 1
49808 packed_data(ipack) = pack_tmp
49809 data_tmp = full_data(idata)
49810 pack_tmp = ishft(data_tmp, 4)
49811 pack_tmp = ishft(pack_tmp, -4)
49812 idata = idata + 1
49813 data_tmp = full_data(idata)
49814 data_tmp = ishft(data_tmp, 4)
49815 data_tmp = iand(data_tmp, mask_left(4))
49816 pack_tmp = ior(pack_tmp, data_tmp)
49817 ipack = ipack + 1
49818 packed_data(ipack) = pack_tmp
49819 data_tmp = full_data(idata)
49820 pack_tmp = ishft(data_tmp, 8)
49821 pack_tmp = ishft(pack_tmp, -8)
49822 idata = idata + 1
49823 data_tmp = full_data(idata)
49824 data_tmp = ishft(data_tmp, 4)
49825 data_tmp = iand(data_tmp, mask_left(8))
49826 pack_tmp = ior(pack_tmp, data_tmp)
49827 ipack = ipack + 1
49828 packed_data(ipack) = pack_tmp
49829 data_tmp = full_data(idata)
49830 pack_tmp = ishft(data_tmp, 12)
49831 pack_tmp = ishft(pack_tmp, -12)
49832 idata = idata + 1
49833 data_tmp = full_data(idata)
49834 data_tmp = ishft(data_tmp, 4)
49835 data_tmp = iand(data_tmp, mask_left(12))
49836 pack_tmp = ior(pack_tmp, data_tmp)
49837 ipack = ipack + 1
49838 packed_data(ipack) = pack_tmp
49839 data_tmp = full_data(idata)
49840 pack_tmp = ishft(data_tmp, 16)
49841 pack_tmp = ishft(pack_tmp, -16)
49842 idata = idata + 1
49843 data_tmp = full_data(idata)
49844 data_tmp = ishft(data_tmp, 4)
49845 data_tmp = iand(data_tmp, mask_left(16))
49846 pack_tmp = ior(pack_tmp, data_tmp)
49847 ipack = ipack + 1
49848 packed_data(ipack) = pack_tmp
49849 data_tmp = full_data(idata)
49850 pack_tmp = ishft(data_tmp, 20)
49851 pack_tmp = ishft(pack_tmp, -20)
49852 idata = idata + 1
49853 data_tmp = full_data(idata)
49854 data_tmp = ishft(data_tmp, 4)
49855 data_tmp = iand(data_tmp, mask_left(20))
49856 pack_tmp = ior(pack_tmp, data_tmp)
49857 ipack = ipack + 1
49858 packed_data(ipack) = pack_tmp
49859 data_tmp = full_data(idata)
49860 pack_tmp = ishft(data_tmp, 24)
49861 pack_tmp = ishft(pack_tmp, -24)
49862 idata = idata + 1
49863 data_tmp = full_data(idata)
49864 data_tmp = ishft(data_tmp, 4)
49865 data_tmp = iand(data_tmp, mask_left(24))
49866 pack_tmp = ior(pack_tmp, data_tmp)
49867 ipack = ipack + 1
49868 packed_data(ipack) = pack_tmp
49869 data_tmp = full_data(idata)
49870 pack_tmp = ishft(data_tmp, 28)
49871 pack_tmp = ishft(pack_tmp, -28)
49872 idata = idata + 1
49873 data_tmp = full_data(idata)
49874 data_tmp = ishft(data_tmp, 4)
49875 data_tmp = iand(data_tmp, mask_left(28))
49876 pack_tmp = ior(pack_tmp, data_tmp)
49877 ipack = ipack + 1
49878 packed_data(ipack) = pack_tmp
49879 data_tmp = full_data(idata)
49880 pack_tmp = ishft(data_tmp, 32)
49881 pack_tmp = ishft(pack_tmp, -32)
49882 idata = idata + 1
49883 data_tmp = full_data(idata)
49884 data_tmp = ishft(data_tmp, 4)
49885 data_tmp = iand(data_tmp, mask_left(32))
49886 pack_tmp = ior(pack_tmp, data_tmp)
49887 ipack = ipack + 1
49888 packed_data(ipack) = pack_tmp
49889 data_tmp = full_data(idata)
49890 pack_tmp = ishft(data_tmp, 36)
49891 pack_tmp = ishft(pack_tmp, -36)
49892 idata = idata + 1
49893 data_tmp = full_data(idata)
49894 data_tmp = ishft(data_tmp, 4)
49895 data_tmp = iand(data_tmp, mask_left(36))
49896 pack_tmp = ior(pack_tmp, data_tmp)
49897 ipack = ipack + 1
49898 packed_data(ipack) = pack_tmp
49899 data_tmp = full_data(idata)
49900 pack_tmp = ishft(data_tmp, 40)
49901 pack_tmp = ishft(pack_tmp, -40)
49902 idata = idata + 1
49903 data_tmp = full_data(idata)
49904 data_tmp = ishft(data_tmp, 4)
49905 data_tmp = iand(data_tmp, mask_left(40))
49906 pack_tmp = ior(pack_tmp, data_tmp)
49907 ipack = ipack + 1
49908 packed_data(ipack) = pack_tmp
49909 data_tmp = full_data(idata)
49910 pack_tmp = ishft(data_tmp, 44)
49911 pack_tmp = ishft(pack_tmp, -44)
49912 idata = idata + 1
49913 data_tmp = full_data(idata)
49914 data_tmp = ishft(data_tmp, 4)
49915 data_tmp = iand(data_tmp, mask_left(44))
49916 pack_tmp = ior(pack_tmp, data_tmp)
49917 ipack = ipack + 1
49918 packed_data(ipack) = pack_tmp
49919 data_tmp = full_data(idata)
49920 pack_tmp = ishft(data_tmp, 48)
49921 pack_tmp = ishft(pack_tmp, -48)
49922 idata = idata + 1
49923 data_tmp = full_data(idata)
49924 data_tmp = ishft(data_tmp, 4)
49925 data_tmp = iand(data_tmp, mask_left(48))
49926 pack_tmp = ior(pack_tmp, data_tmp)
49927 ipack = ipack + 1
49928 packed_data(ipack) = pack_tmp
49929 data_tmp = full_data(idata)
49930 pack_tmp = ishft(data_tmp, 52)
49931 pack_tmp = ishft(pack_tmp, -52)
49932 idata = idata + 1
49933 data_tmp = full_data(idata)
49934 data_tmp = ishft(data_tmp, 4)
49935 data_tmp = iand(data_tmp, mask_left(52))
49936 pack_tmp = ior(pack_tmp, data_tmp)
49937 ipack = ipack + 1
49938 packed_data(ipack) = pack_tmp
49939 data_tmp = full_data(idata)
49940 pack_tmp = ishft(data_tmp, 56)
49941 pack_tmp = ishft(pack_tmp, -56)
49942 idata = idata + 1
49943 data_tmp = full_data(idata)
49944 data_tmp = ishft(data_tmp, 4)
49945 data_tmp = iand(data_tmp, mask_left(56))
49946 pack_tmp = ior(pack_tmp, data_tmp)
49947 ipack = ipack + 1
49948 packed_data(ipack) = pack_tmp
49949 data_tmp = full_data(idata)
49950 pack_tmp = ishft(data_tmp, 60)
49951 pack_tmp = ishft(pack_tmp, -60)
49952 idata = idata + 1
49953 data_tmp = full_data(idata)
49954 data_tmp = ishft(data_tmp, 4)
49955 pack_tmp = ior(pack_tmp, data_tmp)
49956 pack_tmp = ishft(pack_tmp, 0)
49957 idata = idata + 1
49958 data_tmp = full_data(idata)
49959 data_tmp = ishft(data_tmp, 4)
49960 data_tmp = iand(data_tmp, mask_left(0))
49961 pack_tmp = ior(pack_tmp, data_tmp)
49962 ipack = ipack + 1
49963 packed_data(ipack) = pack_tmp
49964 data_tmp = full_data(idata)
49965 pack_tmp = ishft(data_tmp, 4)
49966 pack_tmp = ishft(pack_tmp, -4)
49967 idata = idata + 1
49968 data_tmp = full_data(idata)
49969 data_tmp = ishft(data_tmp, 4)
49970 data_tmp = iand(data_tmp, mask_left(4))
49971 pack_tmp = ior(pack_tmp, data_tmp)
49972 ipack = ipack + 1
49973 packed_data(ipack) = pack_tmp
49974 data_tmp = full_data(idata)
49975 pack_tmp = ishft(data_tmp, 8)
49976 pack_tmp = ishft(pack_tmp, -8)
49977 idata = idata + 1
49978 data_tmp = full_data(idata)
49979 data_tmp = ishft(data_tmp, 4)
49980 data_tmp = iand(data_tmp, mask_left(8))
49981 pack_tmp = ior(pack_tmp, data_tmp)
49982 ipack = ipack + 1
49983 packed_data(ipack) = pack_tmp
49984 data_tmp = full_data(idata)
49985 pack_tmp = ishft(data_tmp, 12)
49986 pack_tmp = ishft(pack_tmp, -12)
49987 idata = idata + 1
49988 data_tmp = full_data(idata)
49989 data_tmp = ishft(data_tmp, 4)
49990 data_tmp = iand(data_tmp, mask_left(12))
49991 pack_tmp = ior(pack_tmp, data_tmp)
49992 ipack = ipack + 1
49993 packed_data(ipack) = pack_tmp
49994 data_tmp = full_data(idata)
49995 pack_tmp = ishft(data_tmp, 16)
49996 pack_tmp = ishft(pack_tmp, -16)
49997 idata = idata + 1
49998 data_tmp = full_data(idata)
49999 data_tmp = ishft(data_tmp, 4)
50000 data_tmp = iand(data_tmp, mask_left(16))
50001 pack_tmp = ior(pack_tmp, data_tmp)
50002 ipack = ipack + 1
50003 packed_data(ipack) = pack_tmp
50004 data_tmp = full_data(idata)
50005 pack_tmp = ishft(data_tmp, 20)
50006 pack_tmp = ishft(pack_tmp, -20)
50007 idata = idata + 1
50008 data_tmp = full_data(idata)
50009 data_tmp = ishft(data_tmp, 4)
50010 data_tmp = iand(data_tmp, mask_left(20))
50011 pack_tmp = ior(pack_tmp, data_tmp)
50012 ipack = ipack + 1
50013 packed_data(ipack) = pack_tmp
50014 data_tmp = full_data(idata)
50015 pack_tmp = ishft(data_tmp, 24)
50016 pack_tmp = ishft(pack_tmp, -24)
50017 idata = idata + 1
50018 data_tmp = full_data(idata)
50019 data_tmp = ishft(data_tmp, 4)
50020 data_tmp = iand(data_tmp, mask_left(24))
50021 pack_tmp = ior(pack_tmp, data_tmp)
50022 ipack = ipack + 1
50023 packed_data(ipack) = pack_tmp
50024 data_tmp = full_data(idata)
50025 pack_tmp = ishft(data_tmp, 28)
50026 pack_tmp = ishft(pack_tmp, -28)
50027 idata = idata + 1
50028 data_tmp = full_data(idata)
50029 data_tmp = ishft(data_tmp, 4)
50030 data_tmp = iand(data_tmp, mask_left(28))
50031 pack_tmp = ior(pack_tmp, data_tmp)
50032 ipack = ipack + 1
50033 packed_data(ipack) = pack_tmp
50034 data_tmp = full_data(idata)
50035 pack_tmp = ishft(data_tmp, 32)
50036 pack_tmp = ishft(pack_tmp, -32)
50037 idata = idata + 1
50038 data_tmp = full_data(idata)
50039 data_tmp = ishft(data_tmp, 4)
50040 data_tmp = iand(data_tmp, mask_left(32))
50041 pack_tmp = ior(pack_tmp, data_tmp)
50042 ipack = ipack + 1
50043 packed_data(ipack) = pack_tmp
50044 data_tmp = full_data(idata)
50045 pack_tmp = ishft(data_tmp, 36)
50046 pack_tmp = ishft(pack_tmp, -36)
50047 idata = idata + 1
50048 data_tmp = full_data(idata)
50049 data_tmp = ishft(data_tmp, 4)
50050 data_tmp = iand(data_tmp, mask_left(36))
50051 pack_tmp = ior(pack_tmp, data_tmp)
50052 ipack = ipack + 1
50053 packed_data(ipack) = pack_tmp
50054 data_tmp = full_data(idata)
50055 pack_tmp = ishft(data_tmp, 40)
50056 pack_tmp = ishft(pack_tmp, -40)
50057 idata = idata + 1
50058 data_tmp = full_data(idata)
50059 data_tmp = ishft(data_tmp, 4)
50060 data_tmp = iand(data_tmp, mask_left(40))
50061 pack_tmp = ior(pack_tmp, data_tmp)
50062 ipack = ipack + 1
50063 packed_data(ipack) = pack_tmp
50064 data_tmp = full_data(idata)
50065 pack_tmp = ishft(data_tmp, 44)
50066 pack_tmp = ishft(pack_tmp, -44)
50067 idata = idata + 1
50068 data_tmp = full_data(idata)
50069 data_tmp = ishft(data_tmp, 4)
50070 data_tmp = iand(data_tmp, mask_left(44))
50071 pack_tmp = ior(pack_tmp, data_tmp)
50072 ipack = ipack + 1
50073 packed_data(ipack) = pack_tmp
50074 data_tmp = full_data(idata)
50075 pack_tmp = ishft(data_tmp, 48)
50076 pack_tmp = ishft(pack_tmp, -48)
50077 idata = idata + 1
50078 data_tmp = full_data(idata)
50079 data_tmp = ishft(data_tmp, 4)
50080 data_tmp = iand(data_tmp, mask_left(48))
50081 pack_tmp = ior(pack_tmp, data_tmp)
50082 ipack = ipack + 1
50083 packed_data(ipack) = pack_tmp
50084 data_tmp = full_data(idata)
50085 pack_tmp = ishft(data_tmp, 52)
50086 pack_tmp = ishft(pack_tmp, -52)
50087 idata = idata + 1
50088 data_tmp = full_data(idata)
50089 data_tmp = ishft(data_tmp, 4)
50090 data_tmp = iand(data_tmp, mask_left(52))
50091 pack_tmp = ior(pack_tmp, data_tmp)
50092 ipack = ipack + 1
50093 packed_data(ipack) = pack_tmp
50094 data_tmp = full_data(idata)
50095 pack_tmp = ishft(data_tmp, 56)
50096 pack_tmp = ishft(pack_tmp, -56)
50097 idata = idata + 1
50098 data_tmp = full_data(idata)
50099 data_tmp = ishft(data_tmp, 4)
50100 data_tmp = iand(data_tmp, mask_left(56))
50101 pack_tmp = ior(pack_tmp, data_tmp)
50102 ipack = ipack + 1
50103 packed_data(ipack) = pack_tmp
50104 data_tmp = full_data(idata)
50105 pack_tmp = ishft(data_tmp, 60)
50106 pack_tmp = ishft(pack_tmp, -60)
50107 idata = idata + 1
50108 data_tmp = full_data(idata)
50109 data_tmp = ishft(data_tmp, 4)
50110 pack_tmp = ior(pack_tmp, data_tmp)
50111 pack_tmp = ishft(pack_tmp, 0)
50112 idata = idata + 1
50113 data_tmp = full_data(idata)
50114 data_tmp = ishft(data_tmp, 4)
50115 data_tmp = iand(data_tmp, mask_left(0))
50116 pack_tmp = ior(pack_tmp, data_tmp)
50117 ipack = ipack + 1
50118 packed_data(ipack) = pack_tmp
50119 data_tmp = full_data(idata)
50120 pack_tmp = ishft(data_tmp, 4)
50121 pack_tmp = ishft(pack_tmp, -4)
50122 idata = idata + 1
50123 data_tmp = full_data(idata)
50124 data_tmp = ishft(data_tmp, 4)
50125 data_tmp = iand(data_tmp, mask_left(4))
50126 pack_tmp = ior(pack_tmp, data_tmp)
50127 ipack = ipack + 1
50128 packed_data(ipack) = pack_tmp
50129 data_tmp = full_data(idata)
50130 pack_tmp = ishft(data_tmp, 8)
50131 pack_tmp = ishft(pack_tmp, -8)
50132 idata = idata + 1
50133 data_tmp = full_data(idata)
50134 data_tmp = ishft(data_tmp, 4)
50135 data_tmp = iand(data_tmp, mask_left(8))
50136 pack_tmp = ior(pack_tmp, data_tmp)
50137 ipack = ipack + 1
50138 packed_data(ipack) = pack_tmp
50139 data_tmp = full_data(idata)
50140 pack_tmp = ishft(data_tmp, 12)
50141 pack_tmp = ishft(pack_tmp, -12)
50142 idata = idata + 1
50143 data_tmp = full_data(idata)
50144 data_tmp = ishft(data_tmp, 4)
50145 data_tmp = iand(data_tmp, mask_left(12))
50146 pack_tmp = ior(pack_tmp, data_tmp)
50147 ipack = ipack + 1
50148 packed_data(ipack) = pack_tmp
50149 data_tmp = full_data(idata)
50150 pack_tmp = ishft(data_tmp, 16)
50151 pack_tmp = ishft(pack_tmp, -16)
50152 idata = idata + 1
50153 data_tmp = full_data(idata)
50154 data_tmp = ishft(data_tmp, 4)
50155 data_tmp = iand(data_tmp, mask_left(16))
50156 pack_tmp = ior(pack_tmp, data_tmp)
50157 ipack = ipack + 1
50158 packed_data(ipack) = pack_tmp
50159 data_tmp = full_data(idata)
50160 pack_tmp = ishft(data_tmp, 20)
50161 pack_tmp = ishft(pack_tmp, -20)
50162 idata = idata + 1
50163 data_tmp = full_data(idata)
50164 data_tmp = ishft(data_tmp, 4)
50165 data_tmp = iand(data_tmp, mask_left(20))
50166 pack_tmp = ior(pack_tmp, data_tmp)
50167 ipack = ipack + 1
50168 packed_data(ipack) = pack_tmp
50169 data_tmp = full_data(idata)
50170 pack_tmp = ishft(data_tmp, 24)
50171 pack_tmp = ishft(pack_tmp, -24)
50172 idata = idata + 1
50173 data_tmp = full_data(idata)
50174 data_tmp = ishft(data_tmp, 4)
50175 data_tmp = iand(data_tmp, mask_left(24))
50176 pack_tmp = ior(pack_tmp, data_tmp)
50177 ipack = ipack + 1
50178 packed_data(ipack) = pack_tmp
50179 data_tmp = full_data(idata)
50180 pack_tmp = ishft(data_tmp, 28)
50181 pack_tmp = ishft(pack_tmp, -28)
50182 idata = idata + 1
50183 data_tmp = full_data(idata)
50184 data_tmp = ishft(data_tmp, 4)
50185 data_tmp = iand(data_tmp, mask_left(28))
50186 pack_tmp = ior(pack_tmp, data_tmp)
50187 ipack = ipack + 1
50188 packed_data(ipack) = pack_tmp
50189 data_tmp = full_data(idata)
50190 pack_tmp = ishft(data_tmp, 32)
50191 pack_tmp = ishft(pack_tmp, -32)
50192 idata = idata + 1
50193 data_tmp = full_data(idata)
50194 data_tmp = ishft(data_tmp, 4)
50195 data_tmp = iand(data_tmp, mask_left(32))
50196 pack_tmp = ior(pack_tmp, data_tmp)
50197 ipack = ipack + 1
50198 packed_data(ipack) = pack_tmp
50199 data_tmp = full_data(idata)
50200 pack_tmp = ishft(data_tmp, 36)
50201 pack_tmp = ishft(pack_tmp, -36)
50202 idata = idata + 1
50203 data_tmp = full_data(idata)
50204 data_tmp = ishft(data_tmp, 4)
50205 data_tmp = iand(data_tmp, mask_left(36))
50206 pack_tmp = ior(pack_tmp, data_tmp)
50207 ipack = ipack + 1
50208 packed_data(ipack) = pack_tmp
50209 data_tmp = full_data(idata)
50210 pack_tmp = ishft(data_tmp, 40)
50211 pack_tmp = ishft(pack_tmp, -40)
50212 idata = idata + 1
50213 data_tmp = full_data(idata)
50214 data_tmp = ishft(data_tmp, 4)
50215 data_tmp = iand(data_tmp, mask_left(40))
50216 pack_tmp = ior(pack_tmp, data_tmp)
50217 ipack = ipack + 1
50218 packed_data(ipack) = pack_tmp
50219 data_tmp = full_data(idata)
50220 pack_tmp = ishft(data_tmp, 44)
50221 pack_tmp = ishft(pack_tmp, -44)
50222 idata = idata + 1
50223 data_tmp = full_data(idata)
50224 data_tmp = ishft(data_tmp, 4)
50225 data_tmp = iand(data_tmp, mask_left(44))
50226 pack_tmp = ior(pack_tmp, data_tmp)
50227 ipack = ipack + 1
50228 packed_data(ipack) = pack_tmp
50229 data_tmp = full_data(idata)
50230 pack_tmp = ishft(data_tmp, 48)
50231 pack_tmp = ishft(pack_tmp, -48)
50232 idata = idata + 1
50233 data_tmp = full_data(idata)
50234 data_tmp = ishft(data_tmp, 4)
50235 data_tmp = iand(data_tmp, mask_left(48))
50236 pack_tmp = ior(pack_tmp, data_tmp)
50237 ipack = ipack + 1
50238 packed_data(ipack) = pack_tmp
50239 data_tmp = full_data(idata)
50240 pack_tmp = ishft(data_tmp, 52)
50241 pack_tmp = ishft(pack_tmp, -52)
50242 idata = idata + 1
50243 data_tmp = full_data(idata)
50244 data_tmp = ishft(data_tmp, 4)
50245 data_tmp = iand(data_tmp, mask_left(52))
50246 pack_tmp = ior(pack_tmp, data_tmp)
50247 ipack = ipack + 1
50248 packed_data(ipack) = pack_tmp
50249 data_tmp = full_data(idata)
50250 pack_tmp = ishft(data_tmp, 56)
50251 pack_tmp = ishft(pack_tmp, -56)
50252 idata = idata + 1
50253 data_tmp = full_data(idata)
50254 data_tmp = ishft(data_tmp, 4)
50255 data_tmp = iand(data_tmp, mask_left(56))
50256 pack_tmp = ior(pack_tmp, data_tmp)
50257 ipack = ipack + 1
50258 packed_data(ipack) = pack_tmp
50259 data_tmp = full_data(idata)
50260 pack_tmp = ishft(data_tmp, 60)
50261 pack_tmp = ishft(pack_tmp, -60)
50262 idata = idata + 1
50263 data_tmp = full_data(idata)
50264 data_tmp = ishft(data_tmp, 4)
50265 pack_tmp = ior(pack_tmp, data_tmp)
50266 pack_tmp = ishft(pack_tmp, 0)
50267 pack_tmp = ishft(pack_tmp, 0)
50268 ipack = ipack + 1
50269 packed_data(ipack) = pack_tmp
50270 END DO
50271 IF (ndata_rep < ndata) THEN
50272 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
50273 END IF
50274 END SUBROUTINE ints2bits_60
50275
50276! **************************************************************************************************
50277!> \brief ...
50278!> \param Ndata ...
50279!> \param packed_data ...
50280!> \param full_data ...
50281! **************************************************************************************************
50282 SUBROUTINE bits2ints_60(Ndata, packed_data, full_data)
50283 INTEGER, INTENT(IN) :: Ndata
50284 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
50285 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
50286
50287 INTEGER, PARAMETER :: Nbits = 60
50288
50289 INTEGER :: idata, ipack, kdata, Ndata_rep
50290 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
50291
50292 ipack = 0
50293 idata = 0
50294 pack_tmp = 0
50295 ndata_rep = (ndata/64)*64
50296 DO kdata = 1, ndata_rep, 64
50297 idata = idata + 1
50298 data_tmp = ishft(pack_tmp, 60)
50299 ipack = ipack + 1
50300 pack_tmp = packed_data(ipack)
50301 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(60)))
50302 pack_tmp = ishft(pack_tmp, -60)
50303 idata = idata + 1
50304 data_tmp = ishft(pack_tmp, 56)
50305 ipack = ipack + 1
50306 pack_tmp = packed_data(ipack)
50307 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
50308 pack_tmp = ishft(pack_tmp, -56)
50309 idata = idata + 1
50310 data_tmp = ishft(pack_tmp, 52)
50311 ipack = ipack + 1
50312 pack_tmp = packed_data(ipack)
50313 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
50314 pack_tmp = ishft(pack_tmp, -52)
50315 idata = idata + 1
50316 data_tmp = ishft(pack_tmp, 48)
50317 ipack = ipack + 1
50318 pack_tmp = packed_data(ipack)
50319 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
50320 pack_tmp = ishft(pack_tmp, -48)
50321 idata = idata + 1
50322 data_tmp = ishft(pack_tmp, 44)
50323 ipack = ipack + 1
50324 pack_tmp = packed_data(ipack)
50325 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
50326 pack_tmp = ishft(pack_tmp, -44)
50327 idata = idata + 1
50328 data_tmp = ishft(pack_tmp, 40)
50329 ipack = ipack + 1
50330 pack_tmp = packed_data(ipack)
50331 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
50332 pack_tmp = ishft(pack_tmp, -40)
50333 idata = idata + 1
50334 data_tmp = ishft(pack_tmp, 36)
50335 ipack = ipack + 1
50336 pack_tmp = packed_data(ipack)
50337 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
50338 pack_tmp = ishft(pack_tmp, -36)
50339 idata = idata + 1
50340 data_tmp = ishft(pack_tmp, 32)
50341 ipack = ipack + 1
50342 pack_tmp = packed_data(ipack)
50343 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
50344 pack_tmp = ishft(pack_tmp, -32)
50345 idata = idata + 1
50346 data_tmp = ishft(pack_tmp, 28)
50347 ipack = ipack + 1
50348 pack_tmp = packed_data(ipack)
50349 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
50350 pack_tmp = ishft(pack_tmp, -28)
50351 idata = idata + 1
50352 data_tmp = ishft(pack_tmp, 24)
50353 ipack = ipack + 1
50354 pack_tmp = packed_data(ipack)
50355 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
50356 pack_tmp = ishft(pack_tmp, -24)
50357 idata = idata + 1
50358 data_tmp = ishft(pack_tmp, 20)
50359 ipack = ipack + 1
50360 pack_tmp = packed_data(ipack)
50361 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
50362 pack_tmp = ishft(pack_tmp, -20)
50363 idata = idata + 1
50364 data_tmp = ishft(pack_tmp, 16)
50365 ipack = ipack + 1
50366 pack_tmp = packed_data(ipack)
50367 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
50368 pack_tmp = ishft(pack_tmp, -16)
50369 idata = idata + 1
50370 data_tmp = ishft(pack_tmp, 12)
50371 ipack = ipack + 1
50372 pack_tmp = packed_data(ipack)
50373 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
50374 pack_tmp = ishft(pack_tmp, -12)
50375 idata = idata + 1
50376 data_tmp = ishft(pack_tmp, 8)
50377 ipack = ipack + 1
50378 pack_tmp = packed_data(ipack)
50379 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
50380 pack_tmp = ishft(pack_tmp, -8)
50381 idata = idata + 1
50382 data_tmp = ishft(pack_tmp, 4)
50383 ipack = ipack + 1
50384 pack_tmp = packed_data(ipack)
50385 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
50386 pack_tmp = ishft(pack_tmp, -4)
50387 idata = idata + 1
50388 data_tmp = iand(pack_tmp, mask_right(nbits))
50389 full_data(idata) = data_tmp
50390 pack_tmp = ishft(pack_tmp, -nbits)
50391 idata = idata + 1
50392 data_tmp = ishft(pack_tmp, 60)
50393 ipack = ipack + 1
50394 pack_tmp = packed_data(ipack)
50395 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(60)))
50396 pack_tmp = ishft(pack_tmp, -60)
50397 idata = idata + 1
50398 data_tmp = ishft(pack_tmp, 56)
50399 ipack = ipack + 1
50400 pack_tmp = packed_data(ipack)
50401 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
50402 pack_tmp = ishft(pack_tmp, -56)
50403 idata = idata + 1
50404 data_tmp = ishft(pack_tmp, 52)
50405 ipack = ipack + 1
50406 pack_tmp = packed_data(ipack)
50407 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
50408 pack_tmp = ishft(pack_tmp, -52)
50409 idata = idata + 1
50410 data_tmp = ishft(pack_tmp, 48)
50411 ipack = ipack + 1
50412 pack_tmp = packed_data(ipack)
50413 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
50414 pack_tmp = ishft(pack_tmp, -48)
50415 idata = idata + 1
50416 data_tmp = ishft(pack_tmp, 44)
50417 ipack = ipack + 1
50418 pack_tmp = packed_data(ipack)
50419 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
50420 pack_tmp = ishft(pack_tmp, -44)
50421 idata = idata + 1
50422 data_tmp = ishft(pack_tmp, 40)
50423 ipack = ipack + 1
50424 pack_tmp = packed_data(ipack)
50425 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
50426 pack_tmp = ishft(pack_tmp, -40)
50427 idata = idata + 1
50428 data_tmp = ishft(pack_tmp, 36)
50429 ipack = ipack + 1
50430 pack_tmp = packed_data(ipack)
50431 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
50432 pack_tmp = ishft(pack_tmp, -36)
50433 idata = idata + 1
50434 data_tmp = ishft(pack_tmp, 32)
50435 ipack = ipack + 1
50436 pack_tmp = packed_data(ipack)
50437 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
50438 pack_tmp = ishft(pack_tmp, -32)
50439 idata = idata + 1
50440 data_tmp = ishft(pack_tmp, 28)
50441 ipack = ipack + 1
50442 pack_tmp = packed_data(ipack)
50443 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
50444 pack_tmp = ishft(pack_tmp, -28)
50445 idata = idata + 1
50446 data_tmp = ishft(pack_tmp, 24)
50447 ipack = ipack + 1
50448 pack_tmp = packed_data(ipack)
50449 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
50450 pack_tmp = ishft(pack_tmp, -24)
50451 idata = idata + 1
50452 data_tmp = ishft(pack_tmp, 20)
50453 ipack = ipack + 1
50454 pack_tmp = packed_data(ipack)
50455 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
50456 pack_tmp = ishft(pack_tmp, -20)
50457 idata = idata + 1
50458 data_tmp = ishft(pack_tmp, 16)
50459 ipack = ipack + 1
50460 pack_tmp = packed_data(ipack)
50461 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
50462 pack_tmp = ishft(pack_tmp, -16)
50463 idata = idata + 1
50464 data_tmp = ishft(pack_tmp, 12)
50465 ipack = ipack + 1
50466 pack_tmp = packed_data(ipack)
50467 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
50468 pack_tmp = ishft(pack_tmp, -12)
50469 idata = idata + 1
50470 data_tmp = ishft(pack_tmp, 8)
50471 ipack = ipack + 1
50472 pack_tmp = packed_data(ipack)
50473 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
50474 pack_tmp = ishft(pack_tmp, -8)
50475 idata = idata + 1
50476 data_tmp = ishft(pack_tmp, 4)
50477 ipack = ipack + 1
50478 pack_tmp = packed_data(ipack)
50479 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
50480 pack_tmp = ishft(pack_tmp, -4)
50481 idata = idata + 1
50482 data_tmp = iand(pack_tmp, mask_right(nbits))
50483 full_data(idata) = data_tmp
50484 pack_tmp = ishft(pack_tmp, -nbits)
50485 idata = idata + 1
50486 data_tmp = ishft(pack_tmp, 60)
50487 ipack = ipack + 1
50488 pack_tmp = packed_data(ipack)
50489 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(60)))
50490 pack_tmp = ishft(pack_tmp, -60)
50491 idata = idata + 1
50492 data_tmp = ishft(pack_tmp, 56)
50493 ipack = ipack + 1
50494 pack_tmp = packed_data(ipack)
50495 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
50496 pack_tmp = ishft(pack_tmp, -56)
50497 idata = idata + 1
50498 data_tmp = ishft(pack_tmp, 52)
50499 ipack = ipack + 1
50500 pack_tmp = packed_data(ipack)
50501 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
50502 pack_tmp = ishft(pack_tmp, -52)
50503 idata = idata + 1
50504 data_tmp = ishft(pack_tmp, 48)
50505 ipack = ipack + 1
50506 pack_tmp = packed_data(ipack)
50507 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
50508 pack_tmp = ishft(pack_tmp, -48)
50509 idata = idata + 1
50510 data_tmp = ishft(pack_tmp, 44)
50511 ipack = ipack + 1
50512 pack_tmp = packed_data(ipack)
50513 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
50514 pack_tmp = ishft(pack_tmp, -44)
50515 idata = idata + 1
50516 data_tmp = ishft(pack_tmp, 40)
50517 ipack = ipack + 1
50518 pack_tmp = packed_data(ipack)
50519 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
50520 pack_tmp = ishft(pack_tmp, -40)
50521 idata = idata + 1
50522 data_tmp = ishft(pack_tmp, 36)
50523 ipack = ipack + 1
50524 pack_tmp = packed_data(ipack)
50525 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
50526 pack_tmp = ishft(pack_tmp, -36)
50527 idata = idata + 1
50528 data_tmp = ishft(pack_tmp, 32)
50529 ipack = ipack + 1
50530 pack_tmp = packed_data(ipack)
50531 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
50532 pack_tmp = ishft(pack_tmp, -32)
50533 idata = idata + 1
50534 data_tmp = ishft(pack_tmp, 28)
50535 ipack = ipack + 1
50536 pack_tmp = packed_data(ipack)
50537 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
50538 pack_tmp = ishft(pack_tmp, -28)
50539 idata = idata + 1
50540 data_tmp = ishft(pack_tmp, 24)
50541 ipack = ipack + 1
50542 pack_tmp = packed_data(ipack)
50543 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
50544 pack_tmp = ishft(pack_tmp, -24)
50545 idata = idata + 1
50546 data_tmp = ishft(pack_tmp, 20)
50547 ipack = ipack + 1
50548 pack_tmp = packed_data(ipack)
50549 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
50550 pack_tmp = ishft(pack_tmp, -20)
50551 idata = idata + 1
50552 data_tmp = ishft(pack_tmp, 16)
50553 ipack = ipack + 1
50554 pack_tmp = packed_data(ipack)
50555 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
50556 pack_tmp = ishft(pack_tmp, -16)
50557 idata = idata + 1
50558 data_tmp = ishft(pack_tmp, 12)
50559 ipack = ipack + 1
50560 pack_tmp = packed_data(ipack)
50561 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
50562 pack_tmp = ishft(pack_tmp, -12)
50563 idata = idata + 1
50564 data_tmp = ishft(pack_tmp, 8)
50565 ipack = ipack + 1
50566 pack_tmp = packed_data(ipack)
50567 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
50568 pack_tmp = ishft(pack_tmp, -8)
50569 idata = idata + 1
50570 data_tmp = ishft(pack_tmp, 4)
50571 ipack = ipack + 1
50572 pack_tmp = packed_data(ipack)
50573 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
50574 pack_tmp = ishft(pack_tmp, -4)
50575 idata = idata + 1
50576 data_tmp = iand(pack_tmp, mask_right(nbits))
50577 full_data(idata) = data_tmp
50578 pack_tmp = ishft(pack_tmp, -nbits)
50579 idata = idata + 1
50580 data_tmp = ishft(pack_tmp, 60)
50581 ipack = ipack + 1
50582 pack_tmp = packed_data(ipack)
50583 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(60)))
50584 pack_tmp = ishft(pack_tmp, -60)
50585 idata = idata + 1
50586 data_tmp = ishft(pack_tmp, 56)
50587 ipack = ipack + 1
50588 pack_tmp = packed_data(ipack)
50589 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
50590 pack_tmp = ishft(pack_tmp, -56)
50591 idata = idata + 1
50592 data_tmp = ishft(pack_tmp, 52)
50593 ipack = ipack + 1
50594 pack_tmp = packed_data(ipack)
50595 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
50596 pack_tmp = ishft(pack_tmp, -52)
50597 idata = idata + 1
50598 data_tmp = ishft(pack_tmp, 48)
50599 ipack = ipack + 1
50600 pack_tmp = packed_data(ipack)
50601 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
50602 pack_tmp = ishft(pack_tmp, -48)
50603 idata = idata + 1
50604 data_tmp = ishft(pack_tmp, 44)
50605 ipack = ipack + 1
50606 pack_tmp = packed_data(ipack)
50607 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
50608 pack_tmp = ishft(pack_tmp, -44)
50609 idata = idata + 1
50610 data_tmp = ishft(pack_tmp, 40)
50611 ipack = ipack + 1
50612 pack_tmp = packed_data(ipack)
50613 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
50614 pack_tmp = ishft(pack_tmp, -40)
50615 idata = idata + 1
50616 data_tmp = ishft(pack_tmp, 36)
50617 ipack = ipack + 1
50618 pack_tmp = packed_data(ipack)
50619 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
50620 pack_tmp = ishft(pack_tmp, -36)
50621 idata = idata + 1
50622 data_tmp = ishft(pack_tmp, 32)
50623 ipack = ipack + 1
50624 pack_tmp = packed_data(ipack)
50625 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
50626 pack_tmp = ishft(pack_tmp, -32)
50627 idata = idata + 1
50628 data_tmp = ishft(pack_tmp, 28)
50629 ipack = ipack + 1
50630 pack_tmp = packed_data(ipack)
50631 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
50632 pack_tmp = ishft(pack_tmp, -28)
50633 idata = idata + 1
50634 data_tmp = ishft(pack_tmp, 24)
50635 ipack = ipack + 1
50636 pack_tmp = packed_data(ipack)
50637 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
50638 pack_tmp = ishft(pack_tmp, -24)
50639 idata = idata + 1
50640 data_tmp = ishft(pack_tmp, 20)
50641 ipack = ipack + 1
50642 pack_tmp = packed_data(ipack)
50643 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
50644 pack_tmp = ishft(pack_tmp, -20)
50645 idata = idata + 1
50646 data_tmp = ishft(pack_tmp, 16)
50647 ipack = ipack + 1
50648 pack_tmp = packed_data(ipack)
50649 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
50650 pack_tmp = ishft(pack_tmp, -16)
50651 idata = idata + 1
50652 data_tmp = ishft(pack_tmp, 12)
50653 ipack = ipack + 1
50654 pack_tmp = packed_data(ipack)
50655 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
50656 pack_tmp = ishft(pack_tmp, -12)
50657 idata = idata + 1
50658 data_tmp = ishft(pack_tmp, 8)
50659 ipack = ipack + 1
50660 pack_tmp = packed_data(ipack)
50661 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
50662 pack_tmp = ishft(pack_tmp, -8)
50663 idata = idata + 1
50664 data_tmp = ishft(pack_tmp, 4)
50665 ipack = ipack + 1
50666 pack_tmp = packed_data(ipack)
50667 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
50668 pack_tmp = ishft(pack_tmp, -4)
50669 idata = idata + 1
50670 data_tmp = iand(pack_tmp, mask_right(nbits))
50671 full_data(idata) = data_tmp
50672 pack_tmp = ishft(pack_tmp, -nbits)
50673 END DO
50674 IF (ndata_rep < ndata) THEN
50675 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
50676 END IF
50677 END SUBROUTINE bits2ints_60
50678
50679! **************************************************************************************************
50680!> \brief ...
50681!> \param Ndata ...
50682!> \param packed_data ...
50683!> \param full_data ...
50684! **************************************************************************************************
50685 SUBROUTINE ints2bits_61(Ndata, packed_data, full_data)
50686 INTEGER, INTENT(IN) :: Ndata
50687 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
50688 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
50689
50690 INTEGER, PARAMETER :: Nbits = 61
50691
50692 INTEGER :: idata, ipack, kdata, Ndata_rep
50693 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
50694
50695 idata = 0
50696 ipack = 0
50697 ndata_rep = (ndata/64)*64
50698 DO kdata = 1, ndata_rep, 64
50699 pack_tmp = 0
50700 idata = idata + 1
50701 data_tmp = full_data(idata)
50702 data_tmp = ishft(data_tmp, 3)
50703 pack_tmp = ior(pack_tmp, data_tmp)
50704 pack_tmp = ishft(pack_tmp, -3)
50705 idata = idata + 1
50706 data_tmp = full_data(idata)
50707 data_tmp = ishft(data_tmp, 3)
50708 data_tmp = iand(data_tmp, mask_left(3))
50709 pack_tmp = ior(pack_tmp, data_tmp)
50710 ipack = ipack + 1
50711 packed_data(ipack) = pack_tmp
50712 data_tmp = full_data(idata)
50713 pack_tmp = ishft(data_tmp, 6)
50714 pack_tmp = ishft(pack_tmp, -6)
50715 idata = idata + 1
50716 data_tmp = full_data(idata)
50717 data_tmp = ishft(data_tmp, 3)
50718 data_tmp = iand(data_tmp, mask_left(6))
50719 pack_tmp = ior(pack_tmp, data_tmp)
50720 ipack = ipack + 1
50721 packed_data(ipack) = pack_tmp
50722 data_tmp = full_data(idata)
50723 pack_tmp = ishft(data_tmp, 9)
50724 pack_tmp = ishft(pack_tmp, -9)
50725 idata = idata + 1
50726 data_tmp = full_data(idata)
50727 data_tmp = ishft(data_tmp, 3)
50728 data_tmp = iand(data_tmp, mask_left(9))
50729 pack_tmp = ior(pack_tmp, data_tmp)
50730 ipack = ipack + 1
50731 packed_data(ipack) = pack_tmp
50732 data_tmp = full_data(idata)
50733 pack_tmp = ishft(data_tmp, 12)
50734 pack_tmp = ishft(pack_tmp, -12)
50735 idata = idata + 1
50736 data_tmp = full_data(idata)
50737 data_tmp = ishft(data_tmp, 3)
50738 data_tmp = iand(data_tmp, mask_left(12))
50739 pack_tmp = ior(pack_tmp, data_tmp)
50740 ipack = ipack + 1
50741 packed_data(ipack) = pack_tmp
50742 data_tmp = full_data(idata)
50743 pack_tmp = ishft(data_tmp, 15)
50744 pack_tmp = ishft(pack_tmp, -15)
50745 idata = idata + 1
50746 data_tmp = full_data(idata)
50747 data_tmp = ishft(data_tmp, 3)
50748 data_tmp = iand(data_tmp, mask_left(15))
50749 pack_tmp = ior(pack_tmp, data_tmp)
50750 ipack = ipack + 1
50751 packed_data(ipack) = pack_tmp
50752 data_tmp = full_data(idata)
50753 pack_tmp = ishft(data_tmp, 18)
50754 pack_tmp = ishft(pack_tmp, -18)
50755 idata = idata + 1
50756 data_tmp = full_data(idata)
50757 data_tmp = ishft(data_tmp, 3)
50758 data_tmp = iand(data_tmp, mask_left(18))
50759 pack_tmp = ior(pack_tmp, data_tmp)
50760 ipack = ipack + 1
50761 packed_data(ipack) = pack_tmp
50762 data_tmp = full_data(idata)
50763 pack_tmp = ishft(data_tmp, 21)
50764 pack_tmp = ishft(pack_tmp, -21)
50765 idata = idata + 1
50766 data_tmp = full_data(idata)
50767 data_tmp = ishft(data_tmp, 3)
50768 data_tmp = iand(data_tmp, mask_left(21))
50769 pack_tmp = ior(pack_tmp, data_tmp)
50770 ipack = ipack + 1
50771 packed_data(ipack) = pack_tmp
50772 data_tmp = full_data(idata)
50773 pack_tmp = ishft(data_tmp, 24)
50774 pack_tmp = ishft(pack_tmp, -24)
50775 idata = idata + 1
50776 data_tmp = full_data(idata)
50777 data_tmp = ishft(data_tmp, 3)
50778 data_tmp = iand(data_tmp, mask_left(24))
50779 pack_tmp = ior(pack_tmp, data_tmp)
50780 ipack = ipack + 1
50781 packed_data(ipack) = pack_tmp
50782 data_tmp = full_data(idata)
50783 pack_tmp = ishft(data_tmp, 27)
50784 pack_tmp = ishft(pack_tmp, -27)
50785 idata = idata + 1
50786 data_tmp = full_data(idata)
50787 data_tmp = ishft(data_tmp, 3)
50788 data_tmp = iand(data_tmp, mask_left(27))
50789 pack_tmp = ior(pack_tmp, data_tmp)
50790 ipack = ipack + 1
50791 packed_data(ipack) = pack_tmp
50792 data_tmp = full_data(idata)
50793 pack_tmp = ishft(data_tmp, 30)
50794 pack_tmp = ishft(pack_tmp, -30)
50795 idata = idata + 1
50796 data_tmp = full_data(idata)
50797 data_tmp = ishft(data_tmp, 3)
50798 data_tmp = iand(data_tmp, mask_left(30))
50799 pack_tmp = ior(pack_tmp, data_tmp)
50800 ipack = ipack + 1
50801 packed_data(ipack) = pack_tmp
50802 data_tmp = full_data(idata)
50803 pack_tmp = ishft(data_tmp, 33)
50804 pack_tmp = ishft(pack_tmp, -33)
50805 idata = idata + 1
50806 data_tmp = full_data(idata)
50807 data_tmp = ishft(data_tmp, 3)
50808 data_tmp = iand(data_tmp, mask_left(33))
50809 pack_tmp = ior(pack_tmp, data_tmp)
50810 ipack = ipack + 1
50811 packed_data(ipack) = pack_tmp
50812 data_tmp = full_data(idata)
50813 pack_tmp = ishft(data_tmp, 36)
50814 pack_tmp = ishft(pack_tmp, -36)
50815 idata = idata + 1
50816 data_tmp = full_data(idata)
50817 data_tmp = ishft(data_tmp, 3)
50818 data_tmp = iand(data_tmp, mask_left(36))
50819 pack_tmp = ior(pack_tmp, data_tmp)
50820 ipack = ipack + 1
50821 packed_data(ipack) = pack_tmp
50822 data_tmp = full_data(idata)
50823 pack_tmp = ishft(data_tmp, 39)
50824 pack_tmp = ishft(pack_tmp, -39)
50825 idata = idata + 1
50826 data_tmp = full_data(idata)
50827 data_tmp = ishft(data_tmp, 3)
50828 data_tmp = iand(data_tmp, mask_left(39))
50829 pack_tmp = ior(pack_tmp, data_tmp)
50830 ipack = ipack + 1
50831 packed_data(ipack) = pack_tmp
50832 data_tmp = full_data(idata)
50833 pack_tmp = ishft(data_tmp, 42)
50834 pack_tmp = ishft(pack_tmp, -42)
50835 idata = idata + 1
50836 data_tmp = full_data(idata)
50837 data_tmp = ishft(data_tmp, 3)
50838 data_tmp = iand(data_tmp, mask_left(42))
50839 pack_tmp = ior(pack_tmp, data_tmp)
50840 ipack = ipack + 1
50841 packed_data(ipack) = pack_tmp
50842 data_tmp = full_data(idata)
50843 pack_tmp = ishft(data_tmp, 45)
50844 pack_tmp = ishft(pack_tmp, -45)
50845 idata = idata + 1
50846 data_tmp = full_data(idata)
50847 data_tmp = ishft(data_tmp, 3)
50848 data_tmp = iand(data_tmp, mask_left(45))
50849 pack_tmp = ior(pack_tmp, data_tmp)
50850 ipack = ipack + 1
50851 packed_data(ipack) = pack_tmp
50852 data_tmp = full_data(idata)
50853 pack_tmp = ishft(data_tmp, 48)
50854 pack_tmp = ishft(pack_tmp, -48)
50855 idata = idata + 1
50856 data_tmp = full_data(idata)
50857 data_tmp = ishft(data_tmp, 3)
50858 data_tmp = iand(data_tmp, mask_left(48))
50859 pack_tmp = ior(pack_tmp, data_tmp)
50860 ipack = ipack + 1
50861 packed_data(ipack) = pack_tmp
50862 data_tmp = full_data(idata)
50863 pack_tmp = ishft(data_tmp, 51)
50864 pack_tmp = ishft(pack_tmp, -51)
50865 idata = idata + 1
50866 data_tmp = full_data(idata)
50867 data_tmp = ishft(data_tmp, 3)
50868 data_tmp = iand(data_tmp, mask_left(51))
50869 pack_tmp = ior(pack_tmp, data_tmp)
50870 ipack = ipack + 1
50871 packed_data(ipack) = pack_tmp
50872 data_tmp = full_data(idata)
50873 pack_tmp = ishft(data_tmp, 54)
50874 pack_tmp = ishft(pack_tmp, -54)
50875 idata = idata + 1
50876 data_tmp = full_data(idata)
50877 data_tmp = ishft(data_tmp, 3)
50878 data_tmp = iand(data_tmp, mask_left(54))
50879 pack_tmp = ior(pack_tmp, data_tmp)
50880 ipack = ipack + 1
50881 packed_data(ipack) = pack_tmp
50882 data_tmp = full_data(idata)
50883 pack_tmp = ishft(data_tmp, 57)
50884 pack_tmp = ishft(pack_tmp, -57)
50885 idata = idata + 1
50886 data_tmp = full_data(idata)
50887 data_tmp = ishft(data_tmp, 3)
50888 data_tmp = iand(data_tmp, mask_left(57))
50889 pack_tmp = ior(pack_tmp, data_tmp)
50890 ipack = ipack + 1
50891 packed_data(ipack) = pack_tmp
50892 data_tmp = full_data(idata)
50893 pack_tmp = ishft(data_tmp, 60)
50894 pack_tmp = ishft(pack_tmp, -60)
50895 idata = idata + 1
50896 data_tmp = full_data(idata)
50897 data_tmp = ishft(data_tmp, 3)
50898 data_tmp = iand(data_tmp, mask_left(60))
50899 pack_tmp = ior(pack_tmp, data_tmp)
50900 ipack = ipack + 1
50901 packed_data(ipack) = pack_tmp
50902 data_tmp = full_data(idata)
50903 pack_tmp = ishft(data_tmp, 63)
50904 pack_tmp = ishft(pack_tmp, -61)
50905 idata = idata + 1
50906 data_tmp = full_data(idata)
50907 data_tmp = ishft(data_tmp, 3)
50908 pack_tmp = ior(pack_tmp, data_tmp)
50909 pack_tmp = ishft(pack_tmp, -2)
50910 idata = idata + 1
50911 data_tmp = full_data(idata)
50912 data_tmp = ishft(data_tmp, 3)
50913 data_tmp = iand(data_tmp, mask_left(2))
50914 pack_tmp = ior(pack_tmp, data_tmp)
50915 ipack = ipack + 1
50916 packed_data(ipack) = pack_tmp
50917 data_tmp = full_data(idata)
50918 pack_tmp = ishft(data_tmp, 5)
50919 pack_tmp = ishft(pack_tmp, -5)
50920 idata = idata + 1
50921 data_tmp = full_data(idata)
50922 data_tmp = ishft(data_tmp, 3)
50923 data_tmp = iand(data_tmp, mask_left(5))
50924 pack_tmp = ior(pack_tmp, data_tmp)
50925 ipack = ipack + 1
50926 packed_data(ipack) = pack_tmp
50927 data_tmp = full_data(idata)
50928 pack_tmp = ishft(data_tmp, 8)
50929 pack_tmp = ishft(pack_tmp, -8)
50930 idata = idata + 1
50931 data_tmp = full_data(idata)
50932 data_tmp = ishft(data_tmp, 3)
50933 data_tmp = iand(data_tmp, mask_left(8))
50934 pack_tmp = ior(pack_tmp, data_tmp)
50935 ipack = ipack + 1
50936 packed_data(ipack) = pack_tmp
50937 data_tmp = full_data(idata)
50938 pack_tmp = ishft(data_tmp, 11)
50939 pack_tmp = ishft(pack_tmp, -11)
50940 idata = idata + 1
50941 data_tmp = full_data(idata)
50942 data_tmp = ishft(data_tmp, 3)
50943 data_tmp = iand(data_tmp, mask_left(11))
50944 pack_tmp = ior(pack_tmp, data_tmp)
50945 ipack = ipack + 1
50946 packed_data(ipack) = pack_tmp
50947 data_tmp = full_data(idata)
50948 pack_tmp = ishft(data_tmp, 14)
50949 pack_tmp = ishft(pack_tmp, -14)
50950 idata = idata + 1
50951 data_tmp = full_data(idata)
50952 data_tmp = ishft(data_tmp, 3)
50953 data_tmp = iand(data_tmp, mask_left(14))
50954 pack_tmp = ior(pack_tmp, data_tmp)
50955 ipack = ipack + 1
50956 packed_data(ipack) = pack_tmp
50957 data_tmp = full_data(idata)
50958 pack_tmp = ishft(data_tmp, 17)
50959 pack_tmp = ishft(pack_tmp, -17)
50960 idata = idata + 1
50961 data_tmp = full_data(idata)
50962 data_tmp = ishft(data_tmp, 3)
50963 data_tmp = iand(data_tmp, mask_left(17))
50964 pack_tmp = ior(pack_tmp, data_tmp)
50965 ipack = ipack + 1
50966 packed_data(ipack) = pack_tmp
50967 data_tmp = full_data(idata)
50968 pack_tmp = ishft(data_tmp, 20)
50969 pack_tmp = ishft(pack_tmp, -20)
50970 idata = idata + 1
50971 data_tmp = full_data(idata)
50972 data_tmp = ishft(data_tmp, 3)
50973 data_tmp = iand(data_tmp, mask_left(20))
50974 pack_tmp = ior(pack_tmp, data_tmp)
50975 ipack = ipack + 1
50976 packed_data(ipack) = pack_tmp
50977 data_tmp = full_data(idata)
50978 pack_tmp = ishft(data_tmp, 23)
50979 pack_tmp = ishft(pack_tmp, -23)
50980 idata = idata + 1
50981 data_tmp = full_data(idata)
50982 data_tmp = ishft(data_tmp, 3)
50983 data_tmp = iand(data_tmp, mask_left(23))
50984 pack_tmp = ior(pack_tmp, data_tmp)
50985 ipack = ipack + 1
50986 packed_data(ipack) = pack_tmp
50987 data_tmp = full_data(idata)
50988 pack_tmp = ishft(data_tmp, 26)
50989 pack_tmp = ishft(pack_tmp, -26)
50990 idata = idata + 1
50991 data_tmp = full_data(idata)
50992 data_tmp = ishft(data_tmp, 3)
50993 data_tmp = iand(data_tmp, mask_left(26))
50994 pack_tmp = ior(pack_tmp, data_tmp)
50995 ipack = ipack + 1
50996 packed_data(ipack) = pack_tmp
50997 data_tmp = full_data(idata)
50998 pack_tmp = ishft(data_tmp, 29)
50999 pack_tmp = ishft(pack_tmp, -29)
51000 idata = idata + 1
51001 data_tmp = full_data(idata)
51002 data_tmp = ishft(data_tmp, 3)
51003 data_tmp = iand(data_tmp, mask_left(29))
51004 pack_tmp = ior(pack_tmp, data_tmp)
51005 ipack = ipack + 1
51006 packed_data(ipack) = pack_tmp
51007 data_tmp = full_data(idata)
51008 pack_tmp = ishft(data_tmp, 32)
51009 pack_tmp = ishft(pack_tmp, -32)
51010 idata = idata + 1
51011 data_tmp = full_data(idata)
51012 data_tmp = ishft(data_tmp, 3)
51013 data_tmp = iand(data_tmp, mask_left(32))
51014 pack_tmp = ior(pack_tmp, data_tmp)
51015 ipack = ipack + 1
51016 packed_data(ipack) = pack_tmp
51017 data_tmp = full_data(idata)
51018 pack_tmp = ishft(data_tmp, 35)
51019 pack_tmp = ishft(pack_tmp, -35)
51020 idata = idata + 1
51021 data_tmp = full_data(idata)
51022 data_tmp = ishft(data_tmp, 3)
51023 data_tmp = iand(data_tmp, mask_left(35))
51024 pack_tmp = ior(pack_tmp, data_tmp)
51025 ipack = ipack + 1
51026 packed_data(ipack) = pack_tmp
51027 data_tmp = full_data(idata)
51028 pack_tmp = ishft(data_tmp, 38)
51029 pack_tmp = ishft(pack_tmp, -38)
51030 idata = idata + 1
51031 data_tmp = full_data(idata)
51032 data_tmp = ishft(data_tmp, 3)
51033 data_tmp = iand(data_tmp, mask_left(38))
51034 pack_tmp = ior(pack_tmp, data_tmp)
51035 ipack = ipack + 1
51036 packed_data(ipack) = pack_tmp
51037 data_tmp = full_data(idata)
51038 pack_tmp = ishft(data_tmp, 41)
51039 pack_tmp = ishft(pack_tmp, -41)
51040 idata = idata + 1
51041 data_tmp = full_data(idata)
51042 data_tmp = ishft(data_tmp, 3)
51043 data_tmp = iand(data_tmp, mask_left(41))
51044 pack_tmp = ior(pack_tmp, data_tmp)
51045 ipack = ipack + 1
51046 packed_data(ipack) = pack_tmp
51047 data_tmp = full_data(idata)
51048 pack_tmp = ishft(data_tmp, 44)
51049 pack_tmp = ishft(pack_tmp, -44)
51050 idata = idata + 1
51051 data_tmp = full_data(idata)
51052 data_tmp = ishft(data_tmp, 3)
51053 data_tmp = iand(data_tmp, mask_left(44))
51054 pack_tmp = ior(pack_tmp, data_tmp)
51055 ipack = ipack + 1
51056 packed_data(ipack) = pack_tmp
51057 data_tmp = full_data(idata)
51058 pack_tmp = ishft(data_tmp, 47)
51059 pack_tmp = ishft(pack_tmp, -47)
51060 idata = idata + 1
51061 data_tmp = full_data(idata)
51062 data_tmp = ishft(data_tmp, 3)
51063 data_tmp = iand(data_tmp, mask_left(47))
51064 pack_tmp = ior(pack_tmp, data_tmp)
51065 ipack = ipack + 1
51066 packed_data(ipack) = pack_tmp
51067 data_tmp = full_data(idata)
51068 pack_tmp = ishft(data_tmp, 50)
51069 pack_tmp = ishft(pack_tmp, -50)
51070 idata = idata + 1
51071 data_tmp = full_data(idata)
51072 data_tmp = ishft(data_tmp, 3)
51073 data_tmp = iand(data_tmp, mask_left(50))
51074 pack_tmp = ior(pack_tmp, data_tmp)
51075 ipack = ipack + 1
51076 packed_data(ipack) = pack_tmp
51077 data_tmp = full_data(idata)
51078 pack_tmp = ishft(data_tmp, 53)
51079 pack_tmp = ishft(pack_tmp, -53)
51080 idata = idata + 1
51081 data_tmp = full_data(idata)
51082 data_tmp = ishft(data_tmp, 3)
51083 data_tmp = iand(data_tmp, mask_left(53))
51084 pack_tmp = ior(pack_tmp, data_tmp)
51085 ipack = ipack + 1
51086 packed_data(ipack) = pack_tmp
51087 data_tmp = full_data(idata)
51088 pack_tmp = ishft(data_tmp, 56)
51089 pack_tmp = ishft(pack_tmp, -56)
51090 idata = idata + 1
51091 data_tmp = full_data(idata)
51092 data_tmp = ishft(data_tmp, 3)
51093 data_tmp = iand(data_tmp, mask_left(56))
51094 pack_tmp = ior(pack_tmp, data_tmp)
51095 ipack = ipack + 1
51096 packed_data(ipack) = pack_tmp
51097 data_tmp = full_data(idata)
51098 pack_tmp = ishft(data_tmp, 59)
51099 pack_tmp = ishft(pack_tmp, -59)
51100 idata = idata + 1
51101 data_tmp = full_data(idata)
51102 data_tmp = ishft(data_tmp, 3)
51103 data_tmp = iand(data_tmp, mask_left(59))
51104 pack_tmp = ior(pack_tmp, data_tmp)
51105 ipack = ipack + 1
51106 packed_data(ipack) = pack_tmp
51107 data_tmp = full_data(idata)
51108 pack_tmp = ishft(data_tmp, 62)
51109 pack_tmp = ishft(pack_tmp, -61)
51110 idata = idata + 1
51111 data_tmp = full_data(idata)
51112 data_tmp = ishft(data_tmp, 3)
51113 pack_tmp = ior(pack_tmp, data_tmp)
51114 pack_tmp = ishft(pack_tmp, -1)
51115 idata = idata + 1
51116 data_tmp = full_data(idata)
51117 data_tmp = ishft(data_tmp, 3)
51118 data_tmp = iand(data_tmp, mask_left(1))
51119 pack_tmp = ior(pack_tmp, data_tmp)
51120 ipack = ipack + 1
51121 packed_data(ipack) = pack_tmp
51122 data_tmp = full_data(idata)
51123 pack_tmp = ishft(data_tmp, 4)
51124 pack_tmp = ishft(pack_tmp, -4)
51125 idata = idata + 1
51126 data_tmp = full_data(idata)
51127 data_tmp = ishft(data_tmp, 3)
51128 data_tmp = iand(data_tmp, mask_left(4))
51129 pack_tmp = ior(pack_tmp, data_tmp)
51130 ipack = ipack + 1
51131 packed_data(ipack) = pack_tmp
51132 data_tmp = full_data(idata)
51133 pack_tmp = ishft(data_tmp, 7)
51134 pack_tmp = ishft(pack_tmp, -7)
51135 idata = idata + 1
51136 data_tmp = full_data(idata)
51137 data_tmp = ishft(data_tmp, 3)
51138 data_tmp = iand(data_tmp, mask_left(7))
51139 pack_tmp = ior(pack_tmp, data_tmp)
51140 ipack = ipack + 1
51141 packed_data(ipack) = pack_tmp
51142 data_tmp = full_data(idata)
51143 pack_tmp = ishft(data_tmp, 10)
51144 pack_tmp = ishft(pack_tmp, -10)
51145 idata = idata + 1
51146 data_tmp = full_data(idata)
51147 data_tmp = ishft(data_tmp, 3)
51148 data_tmp = iand(data_tmp, mask_left(10))
51149 pack_tmp = ior(pack_tmp, data_tmp)
51150 ipack = ipack + 1
51151 packed_data(ipack) = pack_tmp
51152 data_tmp = full_data(idata)
51153 pack_tmp = ishft(data_tmp, 13)
51154 pack_tmp = ishft(pack_tmp, -13)
51155 idata = idata + 1
51156 data_tmp = full_data(idata)
51157 data_tmp = ishft(data_tmp, 3)
51158 data_tmp = iand(data_tmp, mask_left(13))
51159 pack_tmp = ior(pack_tmp, data_tmp)
51160 ipack = ipack + 1
51161 packed_data(ipack) = pack_tmp
51162 data_tmp = full_data(idata)
51163 pack_tmp = ishft(data_tmp, 16)
51164 pack_tmp = ishft(pack_tmp, -16)
51165 idata = idata + 1
51166 data_tmp = full_data(idata)
51167 data_tmp = ishft(data_tmp, 3)
51168 data_tmp = iand(data_tmp, mask_left(16))
51169 pack_tmp = ior(pack_tmp, data_tmp)
51170 ipack = ipack + 1
51171 packed_data(ipack) = pack_tmp
51172 data_tmp = full_data(idata)
51173 pack_tmp = ishft(data_tmp, 19)
51174 pack_tmp = ishft(pack_tmp, -19)
51175 idata = idata + 1
51176 data_tmp = full_data(idata)
51177 data_tmp = ishft(data_tmp, 3)
51178 data_tmp = iand(data_tmp, mask_left(19))
51179 pack_tmp = ior(pack_tmp, data_tmp)
51180 ipack = ipack + 1
51181 packed_data(ipack) = pack_tmp
51182 data_tmp = full_data(idata)
51183 pack_tmp = ishft(data_tmp, 22)
51184 pack_tmp = ishft(pack_tmp, -22)
51185 idata = idata + 1
51186 data_tmp = full_data(idata)
51187 data_tmp = ishft(data_tmp, 3)
51188 data_tmp = iand(data_tmp, mask_left(22))
51189 pack_tmp = ior(pack_tmp, data_tmp)
51190 ipack = ipack + 1
51191 packed_data(ipack) = pack_tmp
51192 data_tmp = full_data(idata)
51193 pack_tmp = ishft(data_tmp, 25)
51194 pack_tmp = ishft(pack_tmp, -25)
51195 idata = idata + 1
51196 data_tmp = full_data(idata)
51197 data_tmp = ishft(data_tmp, 3)
51198 data_tmp = iand(data_tmp, mask_left(25))
51199 pack_tmp = ior(pack_tmp, data_tmp)
51200 ipack = ipack + 1
51201 packed_data(ipack) = pack_tmp
51202 data_tmp = full_data(idata)
51203 pack_tmp = ishft(data_tmp, 28)
51204 pack_tmp = ishft(pack_tmp, -28)
51205 idata = idata + 1
51206 data_tmp = full_data(idata)
51207 data_tmp = ishft(data_tmp, 3)
51208 data_tmp = iand(data_tmp, mask_left(28))
51209 pack_tmp = ior(pack_tmp, data_tmp)
51210 ipack = ipack + 1
51211 packed_data(ipack) = pack_tmp
51212 data_tmp = full_data(idata)
51213 pack_tmp = ishft(data_tmp, 31)
51214 pack_tmp = ishft(pack_tmp, -31)
51215 idata = idata + 1
51216 data_tmp = full_data(idata)
51217 data_tmp = ishft(data_tmp, 3)
51218 data_tmp = iand(data_tmp, mask_left(31))
51219 pack_tmp = ior(pack_tmp, data_tmp)
51220 ipack = ipack + 1
51221 packed_data(ipack) = pack_tmp
51222 data_tmp = full_data(idata)
51223 pack_tmp = ishft(data_tmp, 34)
51224 pack_tmp = ishft(pack_tmp, -34)
51225 idata = idata + 1
51226 data_tmp = full_data(idata)
51227 data_tmp = ishft(data_tmp, 3)
51228 data_tmp = iand(data_tmp, mask_left(34))
51229 pack_tmp = ior(pack_tmp, data_tmp)
51230 ipack = ipack + 1
51231 packed_data(ipack) = pack_tmp
51232 data_tmp = full_data(idata)
51233 pack_tmp = ishft(data_tmp, 37)
51234 pack_tmp = ishft(pack_tmp, -37)
51235 idata = idata + 1
51236 data_tmp = full_data(idata)
51237 data_tmp = ishft(data_tmp, 3)
51238 data_tmp = iand(data_tmp, mask_left(37))
51239 pack_tmp = ior(pack_tmp, data_tmp)
51240 ipack = ipack + 1
51241 packed_data(ipack) = pack_tmp
51242 data_tmp = full_data(idata)
51243 pack_tmp = ishft(data_tmp, 40)
51244 pack_tmp = ishft(pack_tmp, -40)
51245 idata = idata + 1
51246 data_tmp = full_data(idata)
51247 data_tmp = ishft(data_tmp, 3)
51248 data_tmp = iand(data_tmp, mask_left(40))
51249 pack_tmp = ior(pack_tmp, data_tmp)
51250 ipack = ipack + 1
51251 packed_data(ipack) = pack_tmp
51252 data_tmp = full_data(idata)
51253 pack_tmp = ishft(data_tmp, 43)
51254 pack_tmp = ishft(pack_tmp, -43)
51255 idata = idata + 1
51256 data_tmp = full_data(idata)
51257 data_tmp = ishft(data_tmp, 3)
51258 data_tmp = iand(data_tmp, mask_left(43))
51259 pack_tmp = ior(pack_tmp, data_tmp)
51260 ipack = ipack + 1
51261 packed_data(ipack) = pack_tmp
51262 data_tmp = full_data(idata)
51263 pack_tmp = ishft(data_tmp, 46)
51264 pack_tmp = ishft(pack_tmp, -46)
51265 idata = idata + 1
51266 data_tmp = full_data(idata)
51267 data_tmp = ishft(data_tmp, 3)
51268 data_tmp = iand(data_tmp, mask_left(46))
51269 pack_tmp = ior(pack_tmp, data_tmp)
51270 ipack = ipack + 1
51271 packed_data(ipack) = pack_tmp
51272 data_tmp = full_data(idata)
51273 pack_tmp = ishft(data_tmp, 49)
51274 pack_tmp = ishft(pack_tmp, -49)
51275 idata = idata + 1
51276 data_tmp = full_data(idata)
51277 data_tmp = ishft(data_tmp, 3)
51278 data_tmp = iand(data_tmp, mask_left(49))
51279 pack_tmp = ior(pack_tmp, data_tmp)
51280 ipack = ipack + 1
51281 packed_data(ipack) = pack_tmp
51282 data_tmp = full_data(idata)
51283 pack_tmp = ishft(data_tmp, 52)
51284 pack_tmp = ishft(pack_tmp, -52)
51285 idata = idata + 1
51286 data_tmp = full_data(idata)
51287 data_tmp = ishft(data_tmp, 3)
51288 data_tmp = iand(data_tmp, mask_left(52))
51289 pack_tmp = ior(pack_tmp, data_tmp)
51290 ipack = ipack + 1
51291 packed_data(ipack) = pack_tmp
51292 data_tmp = full_data(idata)
51293 pack_tmp = ishft(data_tmp, 55)
51294 pack_tmp = ishft(pack_tmp, -55)
51295 idata = idata + 1
51296 data_tmp = full_data(idata)
51297 data_tmp = ishft(data_tmp, 3)
51298 data_tmp = iand(data_tmp, mask_left(55))
51299 pack_tmp = ior(pack_tmp, data_tmp)
51300 ipack = ipack + 1
51301 packed_data(ipack) = pack_tmp
51302 data_tmp = full_data(idata)
51303 pack_tmp = ishft(data_tmp, 58)
51304 pack_tmp = ishft(pack_tmp, -58)
51305 idata = idata + 1
51306 data_tmp = full_data(idata)
51307 data_tmp = ishft(data_tmp, 3)
51308 data_tmp = iand(data_tmp, mask_left(58))
51309 pack_tmp = ior(pack_tmp, data_tmp)
51310 ipack = ipack + 1
51311 packed_data(ipack) = pack_tmp
51312 data_tmp = full_data(idata)
51313 pack_tmp = ishft(data_tmp, 61)
51314 pack_tmp = ishft(pack_tmp, -61)
51315 idata = idata + 1
51316 data_tmp = full_data(idata)
51317 data_tmp = ishft(data_tmp, 3)
51318 pack_tmp = ior(pack_tmp, data_tmp)
51319 pack_tmp = ishft(pack_tmp, 0)
51320 pack_tmp = ishft(pack_tmp, 0)
51321 ipack = ipack + 1
51322 packed_data(ipack) = pack_tmp
51323 END DO
51324 IF (ndata_rep < ndata) THEN
51325 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
51326 END IF
51327 END SUBROUTINE ints2bits_61
51328
51329! **************************************************************************************************
51330!> \brief ...
51331!> \param Ndata ...
51332!> \param packed_data ...
51333!> \param full_data ...
51334! **************************************************************************************************
51335 SUBROUTINE bits2ints_61(Ndata, packed_data, full_data)
51336 INTEGER, INTENT(IN) :: Ndata
51337 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
51338 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
51339
51340 INTEGER, PARAMETER :: Nbits = 61
51341
51342 INTEGER :: idata, ipack, kdata, Ndata_rep
51343 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
51344
51345 ipack = 0
51346 idata = 0
51347 pack_tmp = 0
51348 ndata_rep = (ndata/64)*64
51349 DO kdata = 1, ndata_rep, 64
51350 idata = idata + 1
51351 data_tmp = ishft(pack_tmp, 61)
51352 ipack = ipack + 1
51353 pack_tmp = packed_data(ipack)
51354 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(61)))
51355 pack_tmp = ishft(pack_tmp, -61)
51356 idata = idata + 1
51357 data_tmp = ishft(pack_tmp, 58)
51358 ipack = ipack + 1
51359 pack_tmp = packed_data(ipack)
51360 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(58)))
51361 pack_tmp = ishft(pack_tmp, -58)
51362 idata = idata + 1
51363 data_tmp = ishft(pack_tmp, 55)
51364 ipack = ipack + 1
51365 pack_tmp = packed_data(ipack)
51366 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(55)))
51367 pack_tmp = ishft(pack_tmp, -55)
51368 idata = idata + 1
51369 data_tmp = ishft(pack_tmp, 52)
51370 ipack = ipack + 1
51371 pack_tmp = packed_data(ipack)
51372 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
51373 pack_tmp = ishft(pack_tmp, -52)
51374 idata = idata + 1
51375 data_tmp = ishft(pack_tmp, 49)
51376 ipack = ipack + 1
51377 pack_tmp = packed_data(ipack)
51378 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(49)))
51379 pack_tmp = ishft(pack_tmp, -49)
51380 idata = idata + 1
51381 data_tmp = ishft(pack_tmp, 46)
51382 ipack = ipack + 1
51383 pack_tmp = packed_data(ipack)
51384 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
51385 pack_tmp = ishft(pack_tmp, -46)
51386 idata = idata + 1
51387 data_tmp = ishft(pack_tmp, 43)
51388 ipack = ipack + 1
51389 pack_tmp = packed_data(ipack)
51390 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(43)))
51391 pack_tmp = ishft(pack_tmp, -43)
51392 idata = idata + 1
51393 data_tmp = ishft(pack_tmp, 40)
51394 ipack = ipack + 1
51395 pack_tmp = packed_data(ipack)
51396 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
51397 pack_tmp = ishft(pack_tmp, -40)
51398 idata = idata + 1
51399 data_tmp = ishft(pack_tmp, 37)
51400 ipack = ipack + 1
51401 pack_tmp = packed_data(ipack)
51402 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
51403 pack_tmp = ishft(pack_tmp, -37)
51404 idata = idata + 1
51405 data_tmp = ishft(pack_tmp, 34)
51406 ipack = ipack + 1
51407 pack_tmp = packed_data(ipack)
51408 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
51409 pack_tmp = ishft(pack_tmp, -34)
51410 idata = idata + 1
51411 data_tmp = ishft(pack_tmp, 31)
51412 ipack = ipack + 1
51413 pack_tmp = packed_data(ipack)
51414 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
51415 pack_tmp = ishft(pack_tmp, -31)
51416 idata = idata + 1
51417 data_tmp = ishft(pack_tmp, 28)
51418 ipack = ipack + 1
51419 pack_tmp = packed_data(ipack)
51420 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
51421 pack_tmp = ishft(pack_tmp, -28)
51422 idata = idata + 1
51423 data_tmp = ishft(pack_tmp, 25)
51424 ipack = ipack + 1
51425 pack_tmp = packed_data(ipack)
51426 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
51427 pack_tmp = ishft(pack_tmp, -25)
51428 idata = idata + 1
51429 data_tmp = ishft(pack_tmp, 22)
51430 ipack = ipack + 1
51431 pack_tmp = packed_data(ipack)
51432 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
51433 pack_tmp = ishft(pack_tmp, -22)
51434 idata = idata + 1
51435 data_tmp = ishft(pack_tmp, 19)
51436 ipack = ipack + 1
51437 pack_tmp = packed_data(ipack)
51438 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
51439 pack_tmp = ishft(pack_tmp, -19)
51440 idata = idata + 1
51441 data_tmp = ishft(pack_tmp, 16)
51442 ipack = ipack + 1
51443 pack_tmp = packed_data(ipack)
51444 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
51445 pack_tmp = ishft(pack_tmp, -16)
51446 idata = idata + 1
51447 data_tmp = ishft(pack_tmp, 13)
51448 ipack = ipack + 1
51449 pack_tmp = packed_data(ipack)
51450 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
51451 pack_tmp = ishft(pack_tmp, -13)
51452 idata = idata + 1
51453 data_tmp = ishft(pack_tmp, 10)
51454 ipack = ipack + 1
51455 pack_tmp = packed_data(ipack)
51456 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
51457 pack_tmp = ishft(pack_tmp, -10)
51458 idata = idata + 1
51459 data_tmp = ishft(pack_tmp, 7)
51460 ipack = ipack + 1
51461 pack_tmp = packed_data(ipack)
51462 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
51463 pack_tmp = ishft(pack_tmp, -7)
51464 idata = idata + 1
51465 data_tmp = ishft(pack_tmp, 4)
51466 ipack = ipack + 1
51467 pack_tmp = packed_data(ipack)
51468 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
51469 pack_tmp = ishft(pack_tmp, -4)
51470 idata = idata + 1
51471 data_tmp = ishft(pack_tmp, 1)
51472 ipack = ipack + 1
51473 pack_tmp = packed_data(ipack)
51474 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
51475 pack_tmp = ishft(pack_tmp, -1)
51476 idata = idata + 1
51477 data_tmp = iand(pack_tmp, mask_right(nbits))
51478 full_data(idata) = data_tmp
51479 pack_tmp = ishft(pack_tmp, -nbits)
51480 idata = idata + 1
51481 data_tmp = ishft(pack_tmp, 59)
51482 ipack = ipack + 1
51483 pack_tmp = packed_data(ipack)
51484 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(59)))
51485 pack_tmp = ishft(pack_tmp, -59)
51486 idata = idata + 1
51487 data_tmp = ishft(pack_tmp, 56)
51488 ipack = ipack + 1
51489 pack_tmp = packed_data(ipack)
51490 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
51491 pack_tmp = ishft(pack_tmp, -56)
51492 idata = idata + 1
51493 data_tmp = ishft(pack_tmp, 53)
51494 ipack = ipack + 1
51495 pack_tmp = packed_data(ipack)
51496 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(53)))
51497 pack_tmp = ishft(pack_tmp, -53)
51498 idata = idata + 1
51499 data_tmp = ishft(pack_tmp, 50)
51500 ipack = ipack + 1
51501 pack_tmp = packed_data(ipack)
51502 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
51503 pack_tmp = ishft(pack_tmp, -50)
51504 idata = idata + 1
51505 data_tmp = ishft(pack_tmp, 47)
51506 ipack = ipack + 1
51507 pack_tmp = packed_data(ipack)
51508 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(47)))
51509 pack_tmp = ishft(pack_tmp, -47)
51510 idata = idata + 1
51511 data_tmp = ishft(pack_tmp, 44)
51512 ipack = ipack + 1
51513 pack_tmp = packed_data(ipack)
51514 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
51515 pack_tmp = ishft(pack_tmp, -44)
51516 idata = idata + 1
51517 data_tmp = ishft(pack_tmp, 41)
51518 ipack = ipack + 1
51519 pack_tmp = packed_data(ipack)
51520 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(41)))
51521 pack_tmp = ishft(pack_tmp, -41)
51522 idata = idata + 1
51523 data_tmp = ishft(pack_tmp, 38)
51524 ipack = ipack + 1
51525 pack_tmp = packed_data(ipack)
51526 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
51527 pack_tmp = ishft(pack_tmp, -38)
51528 idata = idata + 1
51529 data_tmp = ishft(pack_tmp, 35)
51530 ipack = ipack + 1
51531 pack_tmp = packed_data(ipack)
51532 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
51533 pack_tmp = ishft(pack_tmp, -35)
51534 idata = idata + 1
51535 data_tmp = ishft(pack_tmp, 32)
51536 ipack = ipack + 1
51537 pack_tmp = packed_data(ipack)
51538 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
51539 pack_tmp = ishft(pack_tmp, -32)
51540 idata = idata + 1
51541 data_tmp = ishft(pack_tmp, 29)
51542 ipack = ipack + 1
51543 pack_tmp = packed_data(ipack)
51544 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
51545 pack_tmp = ishft(pack_tmp, -29)
51546 idata = idata + 1
51547 data_tmp = ishft(pack_tmp, 26)
51548 ipack = ipack + 1
51549 pack_tmp = packed_data(ipack)
51550 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
51551 pack_tmp = ishft(pack_tmp, -26)
51552 idata = idata + 1
51553 data_tmp = ishft(pack_tmp, 23)
51554 ipack = ipack + 1
51555 pack_tmp = packed_data(ipack)
51556 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
51557 pack_tmp = ishft(pack_tmp, -23)
51558 idata = idata + 1
51559 data_tmp = ishft(pack_tmp, 20)
51560 ipack = ipack + 1
51561 pack_tmp = packed_data(ipack)
51562 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
51563 pack_tmp = ishft(pack_tmp, -20)
51564 idata = idata + 1
51565 data_tmp = ishft(pack_tmp, 17)
51566 ipack = ipack + 1
51567 pack_tmp = packed_data(ipack)
51568 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
51569 pack_tmp = ishft(pack_tmp, -17)
51570 idata = idata + 1
51571 data_tmp = ishft(pack_tmp, 14)
51572 ipack = ipack + 1
51573 pack_tmp = packed_data(ipack)
51574 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
51575 pack_tmp = ishft(pack_tmp, -14)
51576 idata = idata + 1
51577 data_tmp = ishft(pack_tmp, 11)
51578 ipack = ipack + 1
51579 pack_tmp = packed_data(ipack)
51580 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
51581 pack_tmp = ishft(pack_tmp, -11)
51582 idata = idata + 1
51583 data_tmp = ishft(pack_tmp, 8)
51584 ipack = ipack + 1
51585 pack_tmp = packed_data(ipack)
51586 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
51587 pack_tmp = ishft(pack_tmp, -8)
51588 idata = idata + 1
51589 data_tmp = ishft(pack_tmp, 5)
51590 ipack = ipack + 1
51591 pack_tmp = packed_data(ipack)
51592 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
51593 pack_tmp = ishft(pack_tmp, -5)
51594 idata = idata + 1
51595 data_tmp = ishft(pack_tmp, 2)
51596 ipack = ipack + 1
51597 pack_tmp = packed_data(ipack)
51598 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
51599 pack_tmp = ishft(pack_tmp, -2)
51600 idata = idata + 1
51601 data_tmp = iand(pack_tmp, mask_right(nbits))
51602 full_data(idata) = data_tmp
51603 pack_tmp = ishft(pack_tmp, -nbits)
51604 idata = idata + 1
51605 data_tmp = ishft(pack_tmp, 60)
51606 ipack = ipack + 1
51607 pack_tmp = packed_data(ipack)
51608 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(60)))
51609 pack_tmp = ishft(pack_tmp, -60)
51610 idata = idata + 1
51611 data_tmp = ishft(pack_tmp, 57)
51612 ipack = ipack + 1
51613 pack_tmp = packed_data(ipack)
51614 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(57)))
51615 pack_tmp = ishft(pack_tmp, -57)
51616 idata = idata + 1
51617 data_tmp = ishft(pack_tmp, 54)
51618 ipack = ipack + 1
51619 pack_tmp = packed_data(ipack)
51620 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(54)))
51621 pack_tmp = ishft(pack_tmp, -54)
51622 idata = idata + 1
51623 data_tmp = ishft(pack_tmp, 51)
51624 ipack = ipack + 1
51625 pack_tmp = packed_data(ipack)
51626 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(51)))
51627 pack_tmp = ishft(pack_tmp, -51)
51628 idata = idata + 1
51629 data_tmp = ishft(pack_tmp, 48)
51630 ipack = ipack + 1
51631 pack_tmp = packed_data(ipack)
51632 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
51633 pack_tmp = ishft(pack_tmp, -48)
51634 idata = idata + 1
51635 data_tmp = ishft(pack_tmp, 45)
51636 ipack = ipack + 1
51637 pack_tmp = packed_data(ipack)
51638 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(45)))
51639 pack_tmp = ishft(pack_tmp, -45)
51640 idata = idata + 1
51641 data_tmp = ishft(pack_tmp, 42)
51642 ipack = ipack + 1
51643 pack_tmp = packed_data(ipack)
51644 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
51645 pack_tmp = ishft(pack_tmp, -42)
51646 idata = idata + 1
51647 data_tmp = ishft(pack_tmp, 39)
51648 ipack = ipack + 1
51649 pack_tmp = packed_data(ipack)
51650 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
51651 pack_tmp = ishft(pack_tmp, -39)
51652 idata = idata + 1
51653 data_tmp = ishft(pack_tmp, 36)
51654 ipack = ipack + 1
51655 pack_tmp = packed_data(ipack)
51656 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
51657 pack_tmp = ishft(pack_tmp, -36)
51658 idata = idata + 1
51659 data_tmp = ishft(pack_tmp, 33)
51660 ipack = ipack + 1
51661 pack_tmp = packed_data(ipack)
51662 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
51663 pack_tmp = ishft(pack_tmp, -33)
51664 idata = idata + 1
51665 data_tmp = ishft(pack_tmp, 30)
51666 ipack = ipack + 1
51667 pack_tmp = packed_data(ipack)
51668 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
51669 pack_tmp = ishft(pack_tmp, -30)
51670 idata = idata + 1
51671 data_tmp = ishft(pack_tmp, 27)
51672 ipack = ipack + 1
51673 pack_tmp = packed_data(ipack)
51674 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
51675 pack_tmp = ishft(pack_tmp, -27)
51676 idata = idata + 1
51677 data_tmp = ishft(pack_tmp, 24)
51678 ipack = ipack + 1
51679 pack_tmp = packed_data(ipack)
51680 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
51681 pack_tmp = ishft(pack_tmp, -24)
51682 idata = idata + 1
51683 data_tmp = ishft(pack_tmp, 21)
51684 ipack = ipack + 1
51685 pack_tmp = packed_data(ipack)
51686 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
51687 pack_tmp = ishft(pack_tmp, -21)
51688 idata = idata + 1
51689 data_tmp = ishft(pack_tmp, 18)
51690 ipack = ipack + 1
51691 pack_tmp = packed_data(ipack)
51692 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
51693 pack_tmp = ishft(pack_tmp, -18)
51694 idata = idata + 1
51695 data_tmp = ishft(pack_tmp, 15)
51696 ipack = ipack + 1
51697 pack_tmp = packed_data(ipack)
51698 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
51699 pack_tmp = ishft(pack_tmp, -15)
51700 idata = idata + 1
51701 data_tmp = ishft(pack_tmp, 12)
51702 ipack = ipack + 1
51703 pack_tmp = packed_data(ipack)
51704 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
51705 pack_tmp = ishft(pack_tmp, -12)
51706 idata = idata + 1
51707 data_tmp = ishft(pack_tmp, 9)
51708 ipack = ipack + 1
51709 pack_tmp = packed_data(ipack)
51710 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
51711 pack_tmp = ishft(pack_tmp, -9)
51712 idata = idata + 1
51713 data_tmp = ishft(pack_tmp, 6)
51714 ipack = ipack + 1
51715 pack_tmp = packed_data(ipack)
51716 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
51717 pack_tmp = ishft(pack_tmp, -6)
51718 idata = idata + 1
51719 data_tmp = ishft(pack_tmp, 3)
51720 ipack = ipack + 1
51721 pack_tmp = packed_data(ipack)
51722 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
51723 pack_tmp = ishft(pack_tmp, -3)
51724 idata = idata + 1
51725 data_tmp = iand(pack_tmp, mask_right(nbits))
51726 full_data(idata) = data_tmp
51727 pack_tmp = ishft(pack_tmp, -nbits)
51728 END DO
51729 IF (ndata_rep < ndata) THEN
51730 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
51731 END IF
51732 END SUBROUTINE bits2ints_61
51733
51734! **************************************************************************************************
51735!> \brief ...
51736!> \param Ndata ...
51737!> \param packed_data ...
51738!> \param full_data ...
51739! **************************************************************************************************
51740 SUBROUTINE ints2bits_62(Ndata, packed_data, full_data)
51741 INTEGER, INTENT(IN) :: Ndata
51742 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
51743 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
51744
51745 INTEGER, PARAMETER :: Nbits = 62
51746
51747 INTEGER :: idata, ipack, kdata, Ndata_rep
51748 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
51749
51750 idata = 0
51751 ipack = 0
51752 ndata_rep = (ndata/64)*64
51753 DO kdata = 1, ndata_rep, 64
51754 pack_tmp = 0
51755 idata = idata + 1
51756 data_tmp = full_data(idata)
51757 data_tmp = ishft(data_tmp, 2)
51758 pack_tmp = ior(pack_tmp, data_tmp)
51759 pack_tmp = ishft(pack_tmp, -2)
51760 idata = idata + 1
51761 data_tmp = full_data(idata)
51762 data_tmp = ishft(data_tmp, 2)
51763 data_tmp = iand(data_tmp, mask_left(2))
51764 pack_tmp = ior(pack_tmp, data_tmp)
51765 ipack = ipack + 1
51766 packed_data(ipack) = pack_tmp
51767 data_tmp = full_data(idata)
51768 pack_tmp = ishft(data_tmp, 4)
51769 pack_tmp = ishft(pack_tmp, -4)
51770 idata = idata + 1
51771 data_tmp = full_data(idata)
51772 data_tmp = ishft(data_tmp, 2)
51773 data_tmp = iand(data_tmp, mask_left(4))
51774 pack_tmp = ior(pack_tmp, data_tmp)
51775 ipack = ipack + 1
51776 packed_data(ipack) = pack_tmp
51777 data_tmp = full_data(idata)
51778 pack_tmp = ishft(data_tmp, 6)
51779 pack_tmp = ishft(pack_tmp, -6)
51780 idata = idata + 1
51781 data_tmp = full_data(idata)
51782 data_tmp = ishft(data_tmp, 2)
51783 data_tmp = iand(data_tmp, mask_left(6))
51784 pack_tmp = ior(pack_tmp, data_tmp)
51785 ipack = ipack + 1
51786 packed_data(ipack) = pack_tmp
51787 data_tmp = full_data(idata)
51788 pack_tmp = ishft(data_tmp, 8)
51789 pack_tmp = ishft(pack_tmp, -8)
51790 idata = idata + 1
51791 data_tmp = full_data(idata)
51792 data_tmp = ishft(data_tmp, 2)
51793 data_tmp = iand(data_tmp, mask_left(8))
51794 pack_tmp = ior(pack_tmp, data_tmp)
51795 ipack = ipack + 1
51796 packed_data(ipack) = pack_tmp
51797 data_tmp = full_data(idata)
51798 pack_tmp = ishft(data_tmp, 10)
51799 pack_tmp = ishft(pack_tmp, -10)
51800 idata = idata + 1
51801 data_tmp = full_data(idata)
51802 data_tmp = ishft(data_tmp, 2)
51803 data_tmp = iand(data_tmp, mask_left(10))
51804 pack_tmp = ior(pack_tmp, data_tmp)
51805 ipack = ipack + 1
51806 packed_data(ipack) = pack_tmp
51807 data_tmp = full_data(idata)
51808 pack_tmp = ishft(data_tmp, 12)
51809 pack_tmp = ishft(pack_tmp, -12)
51810 idata = idata + 1
51811 data_tmp = full_data(idata)
51812 data_tmp = ishft(data_tmp, 2)
51813 data_tmp = iand(data_tmp, mask_left(12))
51814 pack_tmp = ior(pack_tmp, data_tmp)
51815 ipack = ipack + 1
51816 packed_data(ipack) = pack_tmp
51817 data_tmp = full_data(idata)
51818 pack_tmp = ishft(data_tmp, 14)
51819 pack_tmp = ishft(pack_tmp, -14)
51820 idata = idata + 1
51821 data_tmp = full_data(idata)
51822 data_tmp = ishft(data_tmp, 2)
51823 data_tmp = iand(data_tmp, mask_left(14))
51824 pack_tmp = ior(pack_tmp, data_tmp)
51825 ipack = ipack + 1
51826 packed_data(ipack) = pack_tmp
51827 data_tmp = full_data(idata)
51828 pack_tmp = ishft(data_tmp, 16)
51829 pack_tmp = ishft(pack_tmp, -16)
51830 idata = idata + 1
51831 data_tmp = full_data(idata)
51832 data_tmp = ishft(data_tmp, 2)
51833 data_tmp = iand(data_tmp, mask_left(16))
51834 pack_tmp = ior(pack_tmp, data_tmp)
51835 ipack = ipack + 1
51836 packed_data(ipack) = pack_tmp
51837 data_tmp = full_data(idata)
51838 pack_tmp = ishft(data_tmp, 18)
51839 pack_tmp = ishft(pack_tmp, -18)
51840 idata = idata + 1
51841 data_tmp = full_data(idata)
51842 data_tmp = ishft(data_tmp, 2)
51843 data_tmp = iand(data_tmp, mask_left(18))
51844 pack_tmp = ior(pack_tmp, data_tmp)
51845 ipack = ipack + 1
51846 packed_data(ipack) = pack_tmp
51847 data_tmp = full_data(idata)
51848 pack_tmp = ishft(data_tmp, 20)
51849 pack_tmp = ishft(pack_tmp, -20)
51850 idata = idata + 1
51851 data_tmp = full_data(idata)
51852 data_tmp = ishft(data_tmp, 2)
51853 data_tmp = iand(data_tmp, mask_left(20))
51854 pack_tmp = ior(pack_tmp, data_tmp)
51855 ipack = ipack + 1
51856 packed_data(ipack) = pack_tmp
51857 data_tmp = full_data(idata)
51858 pack_tmp = ishft(data_tmp, 22)
51859 pack_tmp = ishft(pack_tmp, -22)
51860 idata = idata + 1
51861 data_tmp = full_data(idata)
51862 data_tmp = ishft(data_tmp, 2)
51863 data_tmp = iand(data_tmp, mask_left(22))
51864 pack_tmp = ior(pack_tmp, data_tmp)
51865 ipack = ipack + 1
51866 packed_data(ipack) = pack_tmp
51867 data_tmp = full_data(idata)
51868 pack_tmp = ishft(data_tmp, 24)
51869 pack_tmp = ishft(pack_tmp, -24)
51870 idata = idata + 1
51871 data_tmp = full_data(idata)
51872 data_tmp = ishft(data_tmp, 2)
51873 data_tmp = iand(data_tmp, mask_left(24))
51874 pack_tmp = ior(pack_tmp, data_tmp)
51875 ipack = ipack + 1
51876 packed_data(ipack) = pack_tmp
51877 data_tmp = full_data(idata)
51878 pack_tmp = ishft(data_tmp, 26)
51879 pack_tmp = ishft(pack_tmp, -26)
51880 idata = idata + 1
51881 data_tmp = full_data(idata)
51882 data_tmp = ishft(data_tmp, 2)
51883 data_tmp = iand(data_tmp, mask_left(26))
51884 pack_tmp = ior(pack_tmp, data_tmp)
51885 ipack = ipack + 1
51886 packed_data(ipack) = pack_tmp
51887 data_tmp = full_data(idata)
51888 pack_tmp = ishft(data_tmp, 28)
51889 pack_tmp = ishft(pack_tmp, -28)
51890 idata = idata + 1
51891 data_tmp = full_data(idata)
51892 data_tmp = ishft(data_tmp, 2)
51893 data_tmp = iand(data_tmp, mask_left(28))
51894 pack_tmp = ior(pack_tmp, data_tmp)
51895 ipack = ipack + 1
51896 packed_data(ipack) = pack_tmp
51897 data_tmp = full_data(idata)
51898 pack_tmp = ishft(data_tmp, 30)
51899 pack_tmp = ishft(pack_tmp, -30)
51900 idata = idata + 1
51901 data_tmp = full_data(idata)
51902 data_tmp = ishft(data_tmp, 2)
51903 data_tmp = iand(data_tmp, mask_left(30))
51904 pack_tmp = ior(pack_tmp, data_tmp)
51905 ipack = ipack + 1
51906 packed_data(ipack) = pack_tmp
51907 data_tmp = full_data(idata)
51908 pack_tmp = ishft(data_tmp, 32)
51909 pack_tmp = ishft(pack_tmp, -32)
51910 idata = idata + 1
51911 data_tmp = full_data(idata)
51912 data_tmp = ishft(data_tmp, 2)
51913 data_tmp = iand(data_tmp, mask_left(32))
51914 pack_tmp = ior(pack_tmp, data_tmp)
51915 ipack = ipack + 1
51916 packed_data(ipack) = pack_tmp
51917 data_tmp = full_data(idata)
51918 pack_tmp = ishft(data_tmp, 34)
51919 pack_tmp = ishft(pack_tmp, -34)
51920 idata = idata + 1
51921 data_tmp = full_data(idata)
51922 data_tmp = ishft(data_tmp, 2)
51923 data_tmp = iand(data_tmp, mask_left(34))
51924 pack_tmp = ior(pack_tmp, data_tmp)
51925 ipack = ipack + 1
51926 packed_data(ipack) = pack_tmp
51927 data_tmp = full_data(idata)
51928 pack_tmp = ishft(data_tmp, 36)
51929 pack_tmp = ishft(pack_tmp, -36)
51930 idata = idata + 1
51931 data_tmp = full_data(idata)
51932 data_tmp = ishft(data_tmp, 2)
51933 data_tmp = iand(data_tmp, mask_left(36))
51934 pack_tmp = ior(pack_tmp, data_tmp)
51935 ipack = ipack + 1
51936 packed_data(ipack) = pack_tmp
51937 data_tmp = full_data(idata)
51938 pack_tmp = ishft(data_tmp, 38)
51939 pack_tmp = ishft(pack_tmp, -38)
51940 idata = idata + 1
51941 data_tmp = full_data(idata)
51942 data_tmp = ishft(data_tmp, 2)
51943 data_tmp = iand(data_tmp, mask_left(38))
51944 pack_tmp = ior(pack_tmp, data_tmp)
51945 ipack = ipack + 1
51946 packed_data(ipack) = pack_tmp
51947 data_tmp = full_data(idata)
51948 pack_tmp = ishft(data_tmp, 40)
51949 pack_tmp = ishft(pack_tmp, -40)
51950 idata = idata + 1
51951 data_tmp = full_data(idata)
51952 data_tmp = ishft(data_tmp, 2)
51953 data_tmp = iand(data_tmp, mask_left(40))
51954 pack_tmp = ior(pack_tmp, data_tmp)
51955 ipack = ipack + 1
51956 packed_data(ipack) = pack_tmp
51957 data_tmp = full_data(idata)
51958 pack_tmp = ishft(data_tmp, 42)
51959 pack_tmp = ishft(pack_tmp, -42)
51960 idata = idata + 1
51961 data_tmp = full_data(idata)
51962 data_tmp = ishft(data_tmp, 2)
51963 data_tmp = iand(data_tmp, mask_left(42))
51964 pack_tmp = ior(pack_tmp, data_tmp)
51965 ipack = ipack + 1
51966 packed_data(ipack) = pack_tmp
51967 data_tmp = full_data(idata)
51968 pack_tmp = ishft(data_tmp, 44)
51969 pack_tmp = ishft(pack_tmp, -44)
51970 idata = idata + 1
51971 data_tmp = full_data(idata)
51972 data_tmp = ishft(data_tmp, 2)
51973 data_tmp = iand(data_tmp, mask_left(44))
51974 pack_tmp = ior(pack_tmp, data_tmp)
51975 ipack = ipack + 1
51976 packed_data(ipack) = pack_tmp
51977 data_tmp = full_data(idata)
51978 pack_tmp = ishft(data_tmp, 46)
51979 pack_tmp = ishft(pack_tmp, -46)
51980 idata = idata + 1
51981 data_tmp = full_data(idata)
51982 data_tmp = ishft(data_tmp, 2)
51983 data_tmp = iand(data_tmp, mask_left(46))
51984 pack_tmp = ior(pack_tmp, data_tmp)
51985 ipack = ipack + 1
51986 packed_data(ipack) = pack_tmp
51987 data_tmp = full_data(idata)
51988 pack_tmp = ishft(data_tmp, 48)
51989 pack_tmp = ishft(pack_tmp, -48)
51990 idata = idata + 1
51991 data_tmp = full_data(idata)
51992 data_tmp = ishft(data_tmp, 2)
51993 data_tmp = iand(data_tmp, mask_left(48))
51994 pack_tmp = ior(pack_tmp, data_tmp)
51995 ipack = ipack + 1
51996 packed_data(ipack) = pack_tmp
51997 data_tmp = full_data(idata)
51998 pack_tmp = ishft(data_tmp, 50)
51999 pack_tmp = ishft(pack_tmp, -50)
52000 idata = idata + 1
52001 data_tmp = full_data(idata)
52002 data_tmp = ishft(data_tmp, 2)
52003 data_tmp = iand(data_tmp, mask_left(50))
52004 pack_tmp = ior(pack_tmp, data_tmp)
52005 ipack = ipack + 1
52006 packed_data(ipack) = pack_tmp
52007 data_tmp = full_data(idata)
52008 pack_tmp = ishft(data_tmp, 52)
52009 pack_tmp = ishft(pack_tmp, -52)
52010 idata = idata + 1
52011 data_tmp = full_data(idata)
52012 data_tmp = ishft(data_tmp, 2)
52013 data_tmp = iand(data_tmp, mask_left(52))
52014 pack_tmp = ior(pack_tmp, data_tmp)
52015 ipack = ipack + 1
52016 packed_data(ipack) = pack_tmp
52017 data_tmp = full_data(idata)
52018 pack_tmp = ishft(data_tmp, 54)
52019 pack_tmp = ishft(pack_tmp, -54)
52020 idata = idata + 1
52021 data_tmp = full_data(idata)
52022 data_tmp = ishft(data_tmp, 2)
52023 data_tmp = iand(data_tmp, mask_left(54))
52024 pack_tmp = ior(pack_tmp, data_tmp)
52025 ipack = ipack + 1
52026 packed_data(ipack) = pack_tmp
52027 data_tmp = full_data(idata)
52028 pack_tmp = ishft(data_tmp, 56)
52029 pack_tmp = ishft(pack_tmp, -56)
52030 idata = idata + 1
52031 data_tmp = full_data(idata)
52032 data_tmp = ishft(data_tmp, 2)
52033 data_tmp = iand(data_tmp, mask_left(56))
52034 pack_tmp = ior(pack_tmp, data_tmp)
52035 ipack = ipack + 1
52036 packed_data(ipack) = pack_tmp
52037 data_tmp = full_data(idata)
52038 pack_tmp = ishft(data_tmp, 58)
52039 pack_tmp = ishft(pack_tmp, -58)
52040 idata = idata + 1
52041 data_tmp = full_data(idata)
52042 data_tmp = ishft(data_tmp, 2)
52043 data_tmp = iand(data_tmp, mask_left(58))
52044 pack_tmp = ior(pack_tmp, data_tmp)
52045 ipack = ipack + 1
52046 packed_data(ipack) = pack_tmp
52047 data_tmp = full_data(idata)
52048 pack_tmp = ishft(data_tmp, 60)
52049 pack_tmp = ishft(pack_tmp, -60)
52050 idata = idata + 1
52051 data_tmp = full_data(idata)
52052 data_tmp = ishft(data_tmp, 2)
52053 data_tmp = iand(data_tmp, mask_left(60))
52054 pack_tmp = ior(pack_tmp, data_tmp)
52055 ipack = ipack + 1
52056 packed_data(ipack) = pack_tmp
52057 data_tmp = full_data(idata)
52058 pack_tmp = ishft(data_tmp, 62)
52059 pack_tmp = ishft(pack_tmp, -62)
52060 idata = idata + 1
52061 data_tmp = full_data(idata)
52062 data_tmp = ishft(data_tmp, 2)
52063 pack_tmp = ior(pack_tmp, data_tmp)
52064 pack_tmp = ishft(pack_tmp, 0)
52065 idata = idata + 1
52066 data_tmp = full_data(idata)
52067 data_tmp = ishft(data_tmp, 2)
52068 data_tmp = iand(data_tmp, mask_left(0))
52069 pack_tmp = ior(pack_tmp, data_tmp)
52070 ipack = ipack + 1
52071 packed_data(ipack) = pack_tmp
52072 data_tmp = full_data(idata)
52073 pack_tmp = ishft(data_tmp, 2)
52074 pack_tmp = ishft(pack_tmp, -2)
52075 idata = idata + 1
52076 data_tmp = full_data(idata)
52077 data_tmp = ishft(data_tmp, 2)
52078 data_tmp = iand(data_tmp, mask_left(2))
52079 pack_tmp = ior(pack_tmp, data_tmp)
52080 ipack = ipack + 1
52081 packed_data(ipack) = pack_tmp
52082 data_tmp = full_data(idata)
52083 pack_tmp = ishft(data_tmp, 4)
52084 pack_tmp = ishft(pack_tmp, -4)
52085 idata = idata + 1
52086 data_tmp = full_data(idata)
52087 data_tmp = ishft(data_tmp, 2)
52088 data_tmp = iand(data_tmp, mask_left(4))
52089 pack_tmp = ior(pack_tmp, data_tmp)
52090 ipack = ipack + 1
52091 packed_data(ipack) = pack_tmp
52092 data_tmp = full_data(idata)
52093 pack_tmp = ishft(data_tmp, 6)
52094 pack_tmp = ishft(pack_tmp, -6)
52095 idata = idata + 1
52096 data_tmp = full_data(idata)
52097 data_tmp = ishft(data_tmp, 2)
52098 data_tmp = iand(data_tmp, mask_left(6))
52099 pack_tmp = ior(pack_tmp, data_tmp)
52100 ipack = ipack + 1
52101 packed_data(ipack) = pack_tmp
52102 data_tmp = full_data(idata)
52103 pack_tmp = ishft(data_tmp, 8)
52104 pack_tmp = ishft(pack_tmp, -8)
52105 idata = idata + 1
52106 data_tmp = full_data(idata)
52107 data_tmp = ishft(data_tmp, 2)
52108 data_tmp = iand(data_tmp, mask_left(8))
52109 pack_tmp = ior(pack_tmp, data_tmp)
52110 ipack = ipack + 1
52111 packed_data(ipack) = pack_tmp
52112 data_tmp = full_data(idata)
52113 pack_tmp = ishft(data_tmp, 10)
52114 pack_tmp = ishft(pack_tmp, -10)
52115 idata = idata + 1
52116 data_tmp = full_data(idata)
52117 data_tmp = ishft(data_tmp, 2)
52118 data_tmp = iand(data_tmp, mask_left(10))
52119 pack_tmp = ior(pack_tmp, data_tmp)
52120 ipack = ipack + 1
52121 packed_data(ipack) = pack_tmp
52122 data_tmp = full_data(idata)
52123 pack_tmp = ishft(data_tmp, 12)
52124 pack_tmp = ishft(pack_tmp, -12)
52125 idata = idata + 1
52126 data_tmp = full_data(idata)
52127 data_tmp = ishft(data_tmp, 2)
52128 data_tmp = iand(data_tmp, mask_left(12))
52129 pack_tmp = ior(pack_tmp, data_tmp)
52130 ipack = ipack + 1
52131 packed_data(ipack) = pack_tmp
52132 data_tmp = full_data(idata)
52133 pack_tmp = ishft(data_tmp, 14)
52134 pack_tmp = ishft(pack_tmp, -14)
52135 idata = idata + 1
52136 data_tmp = full_data(idata)
52137 data_tmp = ishft(data_tmp, 2)
52138 data_tmp = iand(data_tmp, mask_left(14))
52139 pack_tmp = ior(pack_tmp, data_tmp)
52140 ipack = ipack + 1
52141 packed_data(ipack) = pack_tmp
52142 data_tmp = full_data(idata)
52143 pack_tmp = ishft(data_tmp, 16)
52144 pack_tmp = ishft(pack_tmp, -16)
52145 idata = idata + 1
52146 data_tmp = full_data(idata)
52147 data_tmp = ishft(data_tmp, 2)
52148 data_tmp = iand(data_tmp, mask_left(16))
52149 pack_tmp = ior(pack_tmp, data_tmp)
52150 ipack = ipack + 1
52151 packed_data(ipack) = pack_tmp
52152 data_tmp = full_data(idata)
52153 pack_tmp = ishft(data_tmp, 18)
52154 pack_tmp = ishft(pack_tmp, -18)
52155 idata = idata + 1
52156 data_tmp = full_data(idata)
52157 data_tmp = ishft(data_tmp, 2)
52158 data_tmp = iand(data_tmp, mask_left(18))
52159 pack_tmp = ior(pack_tmp, data_tmp)
52160 ipack = ipack + 1
52161 packed_data(ipack) = pack_tmp
52162 data_tmp = full_data(idata)
52163 pack_tmp = ishft(data_tmp, 20)
52164 pack_tmp = ishft(pack_tmp, -20)
52165 idata = idata + 1
52166 data_tmp = full_data(idata)
52167 data_tmp = ishft(data_tmp, 2)
52168 data_tmp = iand(data_tmp, mask_left(20))
52169 pack_tmp = ior(pack_tmp, data_tmp)
52170 ipack = ipack + 1
52171 packed_data(ipack) = pack_tmp
52172 data_tmp = full_data(idata)
52173 pack_tmp = ishft(data_tmp, 22)
52174 pack_tmp = ishft(pack_tmp, -22)
52175 idata = idata + 1
52176 data_tmp = full_data(idata)
52177 data_tmp = ishft(data_tmp, 2)
52178 data_tmp = iand(data_tmp, mask_left(22))
52179 pack_tmp = ior(pack_tmp, data_tmp)
52180 ipack = ipack + 1
52181 packed_data(ipack) = pack_tmp
52182 data_tmp = full_data(idata)
52183 pack_tmp = ishft(data_tmp, 24)
52184 pack_tmp = ishft(pack_tmp, -24)
52185 idata = idata + 1
52186 data_tmp = full_data(idata)
52187 data_tmp = ishft(data_tmp, 2)
52188 data_tmp = iand(data_tmp, mask_left(24))
52189 pack_tmp = ior(pack_tmp, data_tmp)
52190 ipack = ipack + 1
52191 packed_data(ipack) = pack_tmp
52192 data_tmp = full_data(idata)
52193 pack_tmp = ishft(data_tmp, 26)
52194 pack_tmp = ishft(pack_tmp, -26)
52195 idata = idata + 1
52196 data_tmp = full_data(idata)
52197 data_tmp = ishft(data_tmp, 2)
52198 data_tmp = iand(data_tmp, mask_left(26))
52199 pack_tmp = ior(pack_tmp, data_tmp)
52200 ipack = ipack + 1
52201 packed_data(ipack) = pack_tmp
52202 data_tmp = full_data(idata)
52203 pack_tmp = ishft(data_tmp, 28)
52204 pack_tmp = ishft(pack_tmp, -28)
52205 idata = idata + 1
52206 data_tmp = full_data(idata)
52207 data_tmp = ishft(data_tmp, 2)
52208 data_tmp = iand(data_tmp, mask_left(28))
52209 pack_tmp = ior(pack_tmp, data_tmp)
52210 ipack = ipack + 1
52211 packed_data(ipack) = pack_tmp
52212 data_tmp = full_data(idata)
52213 pack_tmp = ishft(data_tmp, 30)
52214 pack_tmp = ishft(pack_tmp, -30)
52215 idata = idata + 1
52216 data_tmp = full_data(idata)
52217 data_tmp = ishft(data_tmp, 2)
52218 data_tmp = iand(data_tmp, mask_left(30))
52219 pack_tmp = ior(pack_tmp, data_tmp)
52220 ipack = ipack + 1
52221 packed_data(ipack) = pack_tmp
52222 data_tmp = full_data(idata)
52223 pack_tmp = ishft(data_tmp, 32)
52224 pack_tmp = ishft(pack_tmp, -32)
52225 idata = idata + 1
52226 data_tmp = full_data(idata)
52227 data_tmp = ishft(data_tmp, 2)
52228 data_tmp = iand(data_tmp, mask_left(32))
52229 pack_tmp = ior(pack_tmp, data_tmp)
52230 ipack = ipack + 1
52231 packed_data(ipack) = pack_tmp
52232 data_tmp = full_data(idata)
52233 pack_tmp = ishft(data_tmp, 34)
52234 pack_tmp = ishft(pack_tmp, -34)
52235 idata = idata + 1
52236 data_tmp = full_data(idata)
52237 data_tmp = ishft(data_tmp, 2)
52238 data_tmp = iand(data_tmp, mask_left(34))
52239 pack_tmp = ior(pack_tmp, data_tmp)
52240 ipack = ipack + 1
52241 packed_data(ipack) = pack_tmp
52242 data_tmp = full_data(idata)
52243 pack_tmp = ishft(data_tmp, 36)
52244 pack_tmp = ishft(pack_tmp, -36)
52245 idata = idata + 1
52246 data_tmp = full_data(idata)
52247 data_tmp = ishft(data_tmp, 2)
52248 data_tmp = iand(data_tmp, mask_left(36))
52249 pack_tmp = ior(pack_tmp, data_tmp)
52250 ipack = ipack + 1
52251 packed_data(ipack) = pack_tmp
52252 data_tmp = full_data(idata)
52253 pack_tmp = ishft(data_tmp, 38)
52254 pack_tmp = ishft(pack_tmp, -38)
52255 idata = idata + 1
52256 data_tmp = full_data(idata)
52257 data_tmp = ishft(data_tmp, 2)
52258 data_tmp = iand(data_tmp, mask_left(38))
52259 pack_tmp = ior(pack_tmp, data_tmp)
52260 ipack = ipack + 1
52261 packed_data(ipack) = pack_tmp
52262 data_tmp = full_data(idata)
52263 pack_tmp = ishft(data_tmp, 40)
52264 pack_tmp = ishft(pack_tmp, -40)
52265 idata = idata + 1
52266 data_tmp = full_data(idata)
52267 data_tmp = ishft(data_tmp, 2)
52268 data_tmp = iand(data_tmp, mask_left(40))
52269 pack_tmp = ior(pack_tmp, data_tmp)
52270 ipack = ipack + 1
52271 packed_data(ipack) = pack_tmp
52272 data_tmp = full_data(idata)
52273 pack_tmp = ishft(data_tmp, 42)
52274 pack_tmp = ishft(pack_tmp, -42)
52275 idata = idata + 1
52276 data_tmp = full_data(idata)
52277 data_tmp = ishft(data_tmp, 2)
52278 data_tmp = iand(data_tmp, mask_left(42))
52279 pack_tmp = ior(pack_tmp, data_tmp)
52280 ipack = ipack + 1
52281 packed_data(ipack) = pack_tmp
52282 data_tmp = full_data(idata)
52283 pack_tmp = ishft(data_tmp, 44)
52284 pack_tmp = ishft(pack_tmp, -44)
52285 idata = idata + 1
52286 data_tmp = full_data(idata)
52287 data_tmp = ishft(data_tmp, 2)
52288 data_tmp = iand(data_tmp, mask_left(44))
52289 pack_tmp = ior(pack_tmp, data_tmp)
52290 ipack = ipack + 1
52291 packed_data(ipack) = pack_tmp
52292 data_tmp = full_data(idata)
52293 pack_tmp = ishft(data_tmp, 46)
52294 pack_tmp = ishft(pack_tmp, -46)
52295 idata = idata + 1
52296 data_tmp = full_data(idata)
52297 data_tmp = ishft(data_tmp, 2)
52298 data_tmp = iand(data_tmp, mask_left(46))
52299 pack_tmp = ior(pack_tmp, data_tmp)
52300 ipack = ipack + 1
52301 packed_data(ipack) = pack_tmp
52302 data_tmp = full_data(idata)
52303 pack_tmp = ishft(data_tmp, 48)
52304 pack_tmp = ishft(pack_tmp, -48)
52305 idata = idata + 1
52306 data_tmp = full_data(idata)
52307 data_tmp = ishft(data_tmp, 2)
52308 data_tmp = iand(data_tmp, mask_left(48))
52309 pack_tmp = ior(pack_tmp, data_tmp)
52310 ipack = ipack + 1
52311 packed_data(ipack) = pack_tmp
52312 data_tmp = full_data(idata)
52313 pack_tmp = ishft(data_tmp, 50)
52314 pack_tmp = ishft(pack_tmp, -50)
52315 idata = idata + 1
52316 data_tmp = full_data(idata)
52317 data_tmp = ishft(data_tmp, 2)
52318 data_tmp = iand(data_tmp, mask_left(50))
52319 pack_tmp = ior(pack_tmp, data_tmp)
52320 ipack = ipack + 1
52321 packed_data(ipack) = pack_tmp
52322 data_tmp = full_data(idata)
52323 pack_tmp = ishft(data_tmp, 52)
52324 pack_tmp = ishft(pack_tmp, -52)
52325 idata = idata + 1
52326 data_tmp = full_data(idata)
52327 data_tmp = ishft(data_tmp, 2)
52328 data_tmp = iand(data_tmp, mask_left(52))
52329 pack_tmp = ior(pack_tmp, data_tmp)
52330 ipack = ipack + 1
52331 packed_data(ipack) = pack_tmp
52332 data_tmp = full_data(idata)
52333 pack_tmp = ishft(data_tmp, 54)
52334 pack_tmp = ishft(pack_tmp, -54)
52335 idata = idata + 1
52336 data_tmp = full_data(idata)
52337 data_tmp = ishft(data_tmp, 2)
52338 data_tmp = iand(data_tmp, mask_left(54))
52339 pack_tmp = ior(pack_tmp, data_tmp)
52340 ipack = ipack + 1
52341 packed_data(ipack) = pack_tmp
52342 data_tmp = full_data(idata)
52343 pack_tmp = ishft(data_tmp, 56)
52344 pack_tmp = ishft(pack_tmp, -56)
52345 idata = idata + 1
52346 data_tmp = full_data(idata)
52347 data_tmp = ishft(data_tmp, 2)
52348 data_tmp = iand(data_tmp, mask_left(56))
52349 pack_tmp = ior(pack_tmp, data_tmp)
52350 ipack = ipack + 1
52351 packed_data(ipack) = pack_tmp
52352 data_tmp = full_data(idata)
52353 pack_tmp = ishft(data_tmp, 58)
52354 pack_tmp = ishft(pack_tmp, -58)
52355 idata = idata + 1
52356 data_tmp = full_data(idata)
52357 data_tmp = ishft(data_tmp, 2)
52358 data_tmp = iand(data_tmp, mask_left(58))
52359 pack_tmp = ior(pack_tmp, data_tmp)
52360 ipack = ipack + 1
52361 packed_data(ipack) = pack_tmp
52362 data_tmp = full_data(idata)
52363 pack_tmp = ishft(data_tmp, 60)
52364 pack_tmp = ishft(pack_tmp, -60)
52365 idata = idata + 1
52366 data_tmp = full_data(idata)
52367 data_tmp = ishft(data_tmp, 2)
52368 data_tmp = iand(data_tmp, mask_left(60))
52369 pack_tmp = ior(pack_tmp, data_tmp)
52370 ipack = ipack + 1
52371 packed_data(ipack) = pack_tmp
52372 data_tmp = full_data(idata)
52373 pack_tmp = ishft(data_tmp, 62)
52374 pack_tmp = ishft(pack_tmp, -62)
52375 idata = idata + 1
52376 data_tmp = full_data(idata)
52377 data_tmp = ishft(data_tmp, 2)
52378 pack_tmp = ior(pack_tmp, data_tmp)
52379 pack_tmp = ishft(pack_tmp, 0)
52380 pack_tmp = ishft(pack_tmp, 0)
52381 ipack = ipack + 1
52382 packed_data(ipack) = pack_tmp
52383 END DO
52384 IF (ndata_rep < ndata) THEN
52385 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
52386 END IF
52387 END SUBROUTINE ints2bits_62
52388
52389! **************************************************************************************************
52390!> \brief ...
52391!> \param Ndata ...
52392!> \param packed_data ...
52393!> \param full_data ...
52394! **************************************************************************************************
52395 SUBROUTINE bits2ints_62(Ndata, packed_data, full_data)
52396 INTEGER, INTENT(IN) :: Ndata
52397 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
52398 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
52399
52400 INTEGER, PARAMETER :: Nbits = 62
52401
52402 INTEGER :: idata, ipack, kdata, Ndata_rep
52403 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
52404
52405 ipack = 0
52406 idata = 0
52407 pack_tmp = 0
52408 ndata_rep = (ndata/64)*64
52409 DO kdata = 1, ndata_rep, 64
52410 idata = idata + 1
52411 data_tmp = ishft(pack_tmp, 62)
52412 ipack = ipack + 1
52413 pack_tmp = packed_data(ipack)
52414 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(62)))
52415 pack_tmp = ishft(pack_tmp, -62)
52416 idata = idata + 1
52417 data_tmp = ishft(pack_tmp, 60)
52418 ipack = ipack + 1
52419 pack_tmp = packed_data(ipack)
52420 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(60)))
52421 pack_tmp = ishft(pack_tmp, -60)
52422 idata = idata + 1
52423 data_tmp = ishft(pack_tmp, 58)
52424 ipack = ipack + 1
52425 pack_tmp = packed_data(ipack)
52426 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(58)))
52427 pack_tmp = ishft(pack_tmp, -58)
52428 idata = idata + 1
52429 data_tmp = ishft(pack_tmp, 56)
52430 ipack = ipack + 1
52431 pack_tmp = packed_data(ipack)
52432 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
52433 pack_tmp = ishft(pack_tmp, -56)
52434 idata = idata + 1
52435 data_tmp = ishft(pack_tmp, 54)
52436 ipack = ipack + 1
52437 pack_tmp = packed_data(ipack)
52438 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(54)))
52439 pack_tmp = ishft(pack_tmp, -54)
52440 idata = idata + 1
52441 data_tmp = ishft(pack_tmp, 52)
52442 ipack = ipack + 1
52443 pack_tmp = packed_data(ipack)
52444 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
52445 pack_tmp = ishft(pack_tmp, -52)
52446 idata = idata + 1
52447 data_tmp = ishft(pack_tmp, 50)
52448 ipack = ipack + 1
52449 pack_tmp = packed_data(ipack)
52450 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
52451 pack_tmp = ishft(pack_tmp, -50)
52452 idata = idata + 1
52453 data_tmp = ishft(pack_tmp, 48)
52454 ipack = ipack + 1
52455 pack_tmp = packed_data(ipack)
52456 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
52457 pack_tmp = ishft(pack_tmp, -48)
52458 idata = idata + 1
52459 data_tmp = ishft(pack_tmp, 46)
52460 ipack = ipack + 1
52461 pack_tmp = packed_data(ipack)
52462 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
52463 pack_tmp = ishft(pack_tmp, -46)
52464 idata = idata + 1
52465 data_tmp = ishft(pack_tmp, 44)
52466 ipack = ipack + 1
52467 pack_tmp = packed_data(ipack)
52468 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
52469 pack_tmp = ishft(pack_tmp, -44)
52470 idata = idata + 1
52471 data_tmp = ishft(pack_tmp, 42)
52472 ipack = ipack + 1
52473 pack_tmp = packed_data(ipack)
52474 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
52475 pack_tmp = ishft(pack_tmp, -42)
52476 idata = idata + 1
52477 data_tmp = ishft(pack_tmp, 40)
52478 ipack = ipack + 1
52479 pack_tmp = packed_data(ipack)
52480 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
52481 pack_tmp = ishft(pack_tmp, -40)
52482 idata = idata + 1
52483 data_tmp = ishft(pack_tmp, 38)
52484 ipack = ipack + 1
52485 pack_tmp = packed_data(ipack)
52486 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
52487 pack_tmp = ishft(pack_tmp, -38)
52488 idata = idata + 1
52489 data_tmp = ishft(pack_tmp, 36)
52490 ipack = ipack + 1
52491 pack_tmp = packed_data(ipack)
52492 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
52493 pack_tmp = ishft(pack_tmp, -36)
52494 idata = idata + 1
52495 data_tmp = ishft(pack_tmp, 34)
52496 ipack = ipack + 1
52497 pack_tmp = packed_data(ipack)
52498 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
52499 pack_tmp = ishft(pack_tmp, -34)
52500 idata = idata + 1
52501 data_tmp = ishft(pack_tmp, 32)
52502 ipack = ipack + 1
52503 pack_tmp = packed_data(ipack)
52504 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
52505 pack_tmp = ishft(pack_tmp, -32)
52506 idata = idata + 1
52507 data_tmp = ishft(pack_tmp, 30)
52508 ipack = ipack + 1
52509 pack_tmp = packed_data(ipack)
52510 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
52511 pack_tmp = ishft(pack_tmp, -30)
52512 idata = idata + 1
52513 data_tmp = ishft(pack_tmp, 28)
52514 ipack = ipack + 1
52515 pack_tmp = packed_data(ipack)
52516 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
52517 pack_tmp = ishft(pack_tmp, -28)
52518 idata = idata + 1
52519 data_tmp = ishft(pack_tmp, 26)
52520 ipack = ipack + 1
52521 pack_tmp = packed_data(ipack)
52522 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
52523 pack_tmp = ishft(pack_tmp, -26)
52524 idata = idata + 1
52525 data_tmp = ishft(pack_tmp, 24)
52526 ipack = ipack + 1
52527 pack_tmp = packed_data(ipack)
52528 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
52529 pack_tmp = ishft(pack_tmp, -24)
52530 idata = idata + 1
52531 data_tmp = ishft(pack_tmp, 22)
52532 ipack = ipack + 1
52533 pack_tmp = packed_data(ipack)
52534 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
52535 pack_tmp = ishft(pack_tmp, -22)
52536 idata = idata + 1
52537 data_tmp = ishft(pack_tmp, 20)
52538 ipack = ipack + 1
52539 pack_tmp = packed_data(ipack)
52540 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
52541 pack_tmp = ishft(pack_tmp, -20)
52542 idata = idata + 1
52543 data_tmp = ishft(pack_tmp, 18)
52544 ipack = ipack + 1
52545 pack_tmp = packed_data(ipack)
52546 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
52547 pack_tmp = ishft(pack_tmp, -18)
52548 idata = idata + 1
52549 data_tmp = ishft(pack_tmp, 16)
52550 ipack = ipack + 1
52551 pack_tmp = packed_data(ipack)
52552 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
52553 pack_tmp = ishft(pack_tmp, -16)
52554 idata = idata + 1
52555 data_tmp = ishft(pack_tmp, 14)
52556 ipack = ipack + 1
52557 pack_tmp = packed_data(ipack)
52558 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
52559 pack_tmp = ishft(pack_tmp, -14)
52560 idata = idata + 1
52561 data_tmp = ishft(pack_tmp, 12)
52562 ipack = ipack + 1
52563 pack_tmp = packed_data(ipack)
52564 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
52565 pack_tmp = ishft(pack_tmp, -12)
52566 idata = idata + 1
52567 data_tmp = ishft(pack_tmp, 10)
52568 ipack = ipack + 1
52569 pack_tmp = packed_data(ipack)
52570 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
52571 pack_tmp = ishft(pack_tmp, -10)
52572 idata = idata + 1
52573 data_tmp = ishft(pack_tmp, 8)
52574 ipack = ipack + 1
52575 pack_tmp = packed_data(ipack)
52576 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
52577 pack_tmp = ishft(pack_tmp, -8)
52578 idata = idata + 1
52579 data_tmp = ishft(pack_tmp, 6)
52580 ipack = ipack + 1
52581 pack_tmp = packed_data(ipack)
52582 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
52583 pack_tmp = ishft(pack_tmp, -6)
52584 idata = idata + 1
52585 data_tmp = ishft(pack_tmp, 4)
52586 ipack = ipack + 1
52587 pack_tmp = packed_data(ipack)
52588 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
52589 pack_tmp = ishft(pack_tmp, -4)
52590 idata = idata + 1
52591 data_tmp = ishft(pack_tmp, 2)
52592 ipack = ipack + 1
52593 pack_tmp = packed_data(ipack)
52594 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
52595 pack_tmp = ishft(pack_tmp, -2)
52596 idata = idata + 1
52597 data_tmp = iand(pack_tmp, mask_right(nbits))
52598 full_data(idata) = data_tmp
52599 pack_tmp = ishft(pack_tmp, -nbits)
52600 idata = idata + 1
52601 data_tmp = ishft(pack_tmp, 62)
52602 ipack = ipack + 1
52603 pack_tmp = packed_data(ipack)
52604 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(62)))
52605 pack_tmp = ishft(pack_tmp, -62)
52606 idata = idata + 1
52607 data_tmp = ishft(pack_tmp, 60)
52608 ipack = ipack + 1
52609 pack_tmp = packed_data(ipack)
52610 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(60)))
52611 pack_tmp = ishft(pack_tmp, -60)
52612 idata = idata + 1
52613 data_tmp = ishft(pack_tmp, 58)
52614 ipack = ipack + 1
52615 pack_tmp = packed_data(ipack)
52616 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(58)))
52617 pack_tmp = ishft(pack_tmp, -58)
52618 idata = idata + 1
52619 data_tmp = ishft(pack_tmp, 56)
52620 ipack = ipack + 1
52621 pack_tmp = packed_data(ipack)
52622 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
52623 pack_tmp = ishft(pack_tmp, -56)
52624 idata = idata + 1
52625 data_tmp = ishft(pack_tmp, 54)
52626 ipack = ipack + 1
52627 pack_tmp = packed_data(ipack)
52628 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(54)))
52629 pack_tmp = ishft(pack_tmp, -54)
52630 idata = idata + 1
52631 data_tmp = ishft(pack_tmp, 52)
52632 ipack = ipack + 1
52633 pack_tmp = packed_data(ipack)
52634 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
52635 pack_tmp = ishft(pack_tmp, -52)
52636 idata = idata + 1
52637 data_tmp = ishft(pack_tmp, 50)
52638 ipack = ipack + 1
52639 pack_tmp = packed_data(ipack)
52640 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
52641 pack_tmp = ishft(pack_tmp, -50)
52642 idata = idata + 1
52643 data_tmp = ishft(pack_tmp, 48)
52644 ipack = ipack + 1
52645 pack_tmp = packed_data(ipack)
52646 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
52647 pack_tmp = ishft(pack_tmp, -48)
52648 idata = idata + 1
52649 data_tmp = ishft(pack_tmp, 46)
52650 ipack = ipack + 1
52651 pack_tmp = packed_data(ipack)
52652 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
52653 pack_tmp = ishft(pack_tmp, -46)
52654 idata = idata + 1
52655 data_tmp = ishft(pack_tmp, 44)
52656 ipack = ipack + 1
52657 pack_tmp = packed_data(ipack)
52658 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
52659 pack_tmp = ishft(pack_tmp, -44)
52660 idata = idata + 1
52661 data_tmp = ishft(pack_tmp, 42)
52662 ipack = ipack + 1
52663 pack_tmp = packed_data(ipack)
52664 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
52665 pack_tmp = ishft(pack_tmp, -42)
52666 idata = idata + 1
52667 data_tmp = ishft(pack_tmp, 40)
52668 ipack = ipack + 1
52669 pack_tmp = packed_data(ipack)
52670 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
52671 pack_tmp = ishft(pack_tmp, -40)
52672 idata = idata + 1
52673 data_tmp = ishft(pack_tmp, 38)
52674 ipack = ipack + 1
52675 pack_tmp = packed_data(ipack)
52676 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
52677 pack_tmp = ishft(pack_tmp, -38)
52678 idata = idata + 1
52679 data_tmp = ishft(pack_tmp, 36)
52680 ipack = ipack + 1
52681 pack_tmp = packed_data(ipack)
52682 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
52683 pack_tmp = ishft(pack_tmp, -36)
52684 idata = idata + 1
52685 data_tmp = ishft(pack_tmp, 34)
52686 ipack = ipack + 1
52687 pack_tmp = packed_data(ipack)
52688 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
52689 pack_tmp = ishft(pack_tmp, -34)
52690 idata = idata + 1
52691 data_tmp = ishft(pack_tmp, 32)
52692 ipack = ipack + 1
52693 pack_tmp = packed_data(ipack)
52694 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
52695 pack_tmp = ishft(pack_tmp, -32)
52696 idata = idata + 1
52697 data_tmp = ishft(pack_tmp, 30)
52698 ipack = ipack + 1
52699 pack_tmp = packed_data(ipack)
52700 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
52701 pack_tmp = ishft(pack_tmp, -30)
52702 idata = idata + 1
52703 data_tmp = ishft(pack_tmp, 28)
52704 ipack = ipack + 1
52705 pack_tmp = packed_data(ipack)
52706 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
52707 pack_tmp = ishft(pack_tmp, -28)
52708 idata = idata + 1
52709 data_tmp = ishft(pack_tmp, 26)
52710 ipack = ipack + 1
52711 pack_tmp = packed_data(ipack)
52712 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
52713 pack_tmp = ishft(pack_tmp, -26)
52714 idata = idata + 1
52715 data_tmp = ishft(pack_tmp, 24)
52716 ipack = ipack + 1
52717 pack_tmp = packed_data(ipack)
52718 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
52719 pack_tmp = ishft(pack_tmp, -24)
52720 idata = idata + 1
52721 data_tmp = ishft(pack_tmp, 22)
52722 ipack = ipack + 1
52723 pack_tmp = packed_data(ipack)
52724 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
52725 pack_tmp = ishft(pack_tmp, -22)
52726 idata = idata + 1
52727 data_tmp = ishft(pack_tmp, 20)
52728 ipack = ipack + 1
52729 pack_tmp = packed_data(ipack)
52730 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
52731 pack_tmp = ishft(pack_tmp, -20)
52732 idata = idata + 1
52733 data_tmp = ishft(pack_tmp, 18)
52734 ipack = ipack + 1
52735 pack_tmp = packed_data(ipack)
52736 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
52737 pack_tmp = ishft(pack_tmp, -18)
52738 idata = idata + 1
52739 data_tmp = ishft(pack_tmp, 16)
52740 ipack = ipack + 1
52741 pack_tmp = packed_data(ipack)
52742 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
52743 pack_tmp = ishft(pack_tmp, -16)
52744 idata = idata + 1
52745 data_tmp = ishft(pack_tmp, 14)
52746 ipack = ipack + 1
52747 pack_tmp = packed_data(ipack)
52748 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
52749 pack_tmp = ishft(pack_tmp, -14)
52750 idata = idata + 1
52751 data_tmp = ishft(pack_tmp, 12)
52752 ipack = ipack + 1
52753 pack_tmp = packed_data(ipack)
52754 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
52755 pack_tmp = ishft(pack_tmp, -12)
52756 idata = idata + 1
52757 data_tmp = ishft(pack_tmp, 10)
52758 ipack = ipack + 1
52759 pack_tmp = packed_data(ipack)
52760 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
52761 pack_tmp = ishft(pack_tmp, -10)
52762 idata = idata + 1
52763 data_tmp = ishft(pack_tmp, 8)
52764 ipack = ipack + 1
52765 pack_tmp = packed_data(ipack)
52766 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
52767 pack_tmp = ishft(pack_tmp, -8)
52768 idata = idata + 1
52769 data_tmp = ishft(pack_tmp, 6)
52770 ipack = ipack + 1
52771 pack_tmp = packed_data(ipack)
52772 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
52773 pack_tmp = ishft(pack_tmp, -6)
52774 idata = idata + 1
52775 data_tmp = ishft(pack_tmp, 4)
52776 ipack = ipack + 1
52777 pack_tmp = packed_data(ipack)
52778 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
52779 pack_tmp = ishft(pack_tmp, -4)
52780 idata = idata + 1
52781 data_tmp = ishft(pack_tmp, 2)
52782 ipack = ipack + 1
52783 pack_tmp = packed_data(ipack)
52784 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
52785 pack_tmp = ishft(pack_tmp, -2)
52786 idata = idata + 1
52787 data_tmp = iand(pack_tmp, mask_right(nbits))
52788 full_data(idata) = data_tmp
52789 pack_tmp = ishft(pack_tmp, -nbits)
52790 END DO
52791 IF (ndata_rep < ndata) THEN
52792 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
52793 END IF
52794 END SUBROUTINE bits2ints_62
52795
52796! **************************************************************************************************
52797!> \brief ...
52798!> \param Ndata ...
52799!> \param packed_data ...
52800!> \param full_data ...
52801! **************************************************************************************************
52802 SUBROUTINE ints2bits_63(Ndata, packed_data, full_data)
52803 INTEGER, INTENT(IN) :: Ndata
52804 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
52805 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
52806
52807 INTEGER, PARAMETER :: Nbits = 63
52808
52809 INTEGER :: idata, ipack, kdata, Ndata_rep
52810 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
52811
52812 idata = 0
52813 ipack = 0
52814 ndata_rep = (ndata/64)*64
52815 DO kdata = 1, ndata_rep, 64
52816 pack_tmp = 0
52817 idata = idata + 1
52818 data_tmp = full_data(idata)
52819 data_tmp = ishft(data_tmp, 1)
52820 pack_tmp = ior(pack_tmp, data_tmp)
52821 pack_tmp = ishft(pack_tmp, -1)
52822 idata = idata + 1
52823 data_tmp = full_data(idata)
52824 data_tmp = ishft(data_tmp, 1)
52825 data_tmp = iand(data_tmp, mask_left(1))
52826 pack_tmp = ior(pack_tmp, data_tmp)
52827 ipack = ipack + 1
52828 packed_data(ipack) = pack_tmp
52829 data_tmp = full_data(idata)
52830 pack_tmp = ishft(data_tmp, 2)
52831 pack_tmp = ishft(pack_tmp, -2)
52832 idata = idata + 1
52833 data_tmp = full_data(idata)
52834 data_tmp = ishft(data_tmp, 1)
52835 data_tmp = iand(data_tmp, mask_left(2))
52836 pack_tmp = ior(pack_tmp, data_tmp)
52837 ipack = ipack + 1
52838 packed_data(ipack) = pack_tmp
52839 data_tmp = full_data(idata)
52840 pack_tmp = ishft(data_tmp, 3)
52841 pack_tmp = ishft(pack_tmp, -3)
52842 idata = idata + 1
52843 data_tmp = full_data(idata)
52844 data_tmp = ishft(data_tmp, 1)
52845 data_tmp = iand(data_tmp, mask_left(3))
52846 pack_tmp = ior(pack_tmp, data_tmp)
52847 ipack = ipack + 1
52848 packed_data(ipack) = pack_tmp
52849 data_tmp = full_data(idata)
52850 pack_tmp = ishft(data_tmp, 4)
52851 pack_tmp = ishft(pack_tmp, -4)
52852 idata = idata + 1
52853 data_tmp = full_data(idata)
52854 data_tmp = ishft(data_tmp, 1)
52855 data_tmp = iand(data_tmp, mask_left(4))
52856 pack_tmp = ior(pack_tmp, data_tmp)
52857 ipack = ipack + 1
52858 packed_data(ipack) = pack_tmp
52859 data_tmp = full_data(idata)
52860 pack_tmp = ishft(data_tmp, 5)
52861 pack_tmp = ishft(pack_tmp, -5)
52862 idata = idata + 1
52863 data_tmp = full_data(idata)
52864 data_tmp = ishft(data_tmp, 1)
52865 data_tmp = iand(data_tmp, mask_left(5))
52866 pack_tmp = ior(pack_tmp, data_tmp)
52867 ipack = ipack + 1
52868 packed_data(ipack) = pack_tmp
52869 data_tmp = full_data(idata)
52870 pack_tmp = ishft(data_tmp, 6)
52871 pack_tmp = ishft(pack_tmp, -6)
52872 idata = idata + 1
52873 data_tmp = full_data(idata)
52874 data_tmp = ishft(data_tmp, 1)
52875 data_tmp = iand(data_tmp, mask_left(6))
52876 pack_tmp = ior(pack_tmp, data_tmp)
52877 ipack = ipack + 1
52878 packed_data(ipack) = pack_tmp
52879 data_tmp = full_data(idata)
52880 pack_tmp = ishft(data_tmp, 7)
52881 pack_tmp = ishft(pack_tmp, -7)
52882 idata = idata + 1
52883 data_tmp = full_data(idata)
52884 data_tmp = ishft(data_tmp, 1)
52885 data_tmp = iand(data_tmp, mask_left(7))
52886 pack_tmp = ior(pack_tmp, data_tmp)
52887 ipack = ipack + 1
52888 packed_data(ipack) = pack_tmp
52889 data_tmp = full_data(idata)
52890 pack_tmp = ishft(data_tmp, 8)
52891 pack_tmp = ishft(pack_tmp, -8)
52892 idata = idata + 1
52893 data_tmp = full_data(idata)
52894 data_tmp = ishft(data_tmp, 1)
52895 data_tmp = iand(data_tmp, mask_left(8))
52896 pack_tmp = ior(pack_tmp, data_tmp)
52897 ipack = ipack + 1
52898 packed_data(ipack) = pack_tmp
52899 data_tmp = full_data(idata)
52900 pack_tmp = ishft(data_tmp, 9)
52901 pack_tmp = ishft(pack_tmp, -9)
52902 idata = idata + 1
52903 data_tmp = full_data(idata)
52904 data_tmp = ishft(data_tmp, 1)
52905 data_tmp = iand(data_tmp, mask_left(9))
52906 pack_tmp = ior(pack_tmp, data_tmp)
52907 ipack = ipack + 1
52908 packed_data(ipack) = pack_tmp
52909 data_tmp = full_data(idata)
52910 pack_tmp = ishft(data_tmp, 10)
52911 pack_tmp = ishft(pack_tmp, -10)
52912 idata = idata + 1
52913 data_tmp = full_data(idata)
52914 data_tmp = ishft(data_tmp, 1)
52915 data_tmp = iand(data_tmp, mask_left(10))
52916 pack_tmp = ior(pack_tmp, data_tmp)
52917 ipack = ipack + 1
52918 packed_data(ipack) = pack_tmp
52919 data_tmp = full_data(idata)
52920 pack_tmp = ishft(data_tmp, 11)
52921 pack_tmp = ishft(pack_tmp, -11)
52922 idata = idata + 1
52923 data_tmp = full_data(idata)
52924 data_tmp = ishft(data_tmp, 1)
52925 data_tmp = iand(data_tmp, mask_left(11))
52926 pack_tmp = ior(pack_tmp, data_tmp)
52927 ipack = ipack + 1
52928 packed_data(ipack) = pack_tmp
52929 data_tmp = full_data(idata)
52930 pack_tmp = ishft(data_tmp, 12)
52931 pack_tmp = ishft(pack_tmp, -12)
52932 idata = idata + 1
52933 data_tmp = full_data(idata)
52934 data_tmp = ishft(data_tmp, 1)
52935 data_tmp = iand(data_tmp, mask_left(12))
52936 pack_tmp = ior(pack_tmp, data_tmp)
52937 ipack = ipack + 1
52938 packed_data(ipack) = pack_tmp
52939 data_tmp = full_data(idata)
52940 pack_tmp = ishft(data_tmp, 13)
52941 pack_tmp = ishft(pack_tmp, -13)
52942 idata = idata + 1
52943 data_tmp = full_data(idata)
52944 data_tmp = ishft(data_tmp, 1)
52945 data_tmp = iand(data_tmp, mask_left(13))
52946 pack_tmp = ior(pack_tmp, data_tmp)
52947 ipack = ipack + 1
52948 packed_data(ipack) = pack_tmp
52949 data_tmp = full_data(idata)
52950 pack_tmp = ishft(data_tmp, 14)
52951 pack_tmp = ishft(pack_tmp, -14)
52952 idata = idata + 1
52953 data_tmp = full_data(idata)
52954 data_tmp = ishft(data_tmp, 1)
52955 data_tmp = iand(data_tmp, mask_left(14))
52956 pack_tmp = ior(pack_tmp, data_tmp)
52957 ipack = ipack + 1
52958 packed_data(ipack) = pack_tmp
52959 data_tmp = full_data(idata)
52960 pack_tmp = ishft(data_tmp, 15)
52961 pack_tmp = ishft(pack_tmp, -15)
52962 idata = idata + 1
52963 data_tmp = full_data(idata)
52964 data_tmp = ishft(data_tmp, 1)
52965 data_tmp = iand(data_tmp, mask_left(15))
52966 pack_tmp = ior(pack_tmp, data_tmp)
52967 ipack = ipack + 1
52968 packed_data(ipack) = pack_tmp
52969 data_tmp = full_data(idata)
52970 pack_tmp = ishft(data_tmp, 16)
52971 pack_tmp = ishft(pack_tmp, -16)
52972 idata = idata + 1
52973 data_tmp = full_data(idata)
52974 data_tmp = ishft(data_tmp, 1)
52975 data_tmp = iand(data_tmp, mask_left(16))
52976 pack_tmp = ior(pack_tmp, data_tmp)
52977 ipack = ipack + 1
52978 packed_data(ipack) = pack_tmp
52979 data_tmp = full_data(idata)
52980 pack_tmp = ishft(data_tmp, 17)
52981 pack_tmp = ishft(pack_tmp, -17)
52982 idata = idata + 1
52983 data_tmp = full_data(idata)
52984 data_tmp = ishft(data_tmp, 1)
52985 data_tmp = iand(data_tmp, mask_left(17))
52986 pack_tmp = ior(pack_tmp, data_tmp)
52987 ipack = ipack + 1
52988 packed_data(ipack) = pack_tmp
52989 data_tmp = full_data(idata)
52990 pack_tmp = ishft(data_tmp, 18)
52991 pack_tmp = ishft(pack_tmp, -18)
52992 idata = idata + 1
52993 data_tmp = full_data(idata)
52994 data_tmp = ishft(data_tmp, 1)
52995 data_tmp = iand(data_tmp, mask_left(18))
52996 pack_tmp = ior(pack_tmp, data_tmp)
52997 ipack = ipack + 1
52998 packed_data(ipack) = pack_tmp
52999 data_tmp = full_data(idata)
53000 pack_tmp = ishft(data_tmp, 19)
53001 pack_tmp = ishft(pack_tmp, -19)
53002 idata = idata + 1
53003 data_tmp = full_data(idata)
53004 data_tmp = ishft(data_tmp, 1)
53005 data_tmp = iand(data_tmp, mask_left(19))
53006 pack_tmp = ior(pack_tmp, data_tmp)
53007 ipack = ipack + 1
53008 packed_data(ipack) = pack_tmp
53009 data_tmp = full_data(idata)
53010 pack_tmp = ishft(data_tmp, 20)
53011 pack_tmp = ishft(pack_tmp, -20)
53012 idata = idata + 1
53013 data_tmp = full_data(idata)
53014 data_tmp = ishft(data_tmp, 1)
53015 data_tmp = iand(data_tmp, mask_left(20))
53016 pack_tmp = ior(pack_tmp, data_tmp)
53017 ipack = ipack + 1
53018 packed_data(ipack) = pack_tmp
53019 data_tmp = full_data(idata)
53020 pack_tmp = ishft(data_tmp, 21)
53021 pack_tmp = ishft(pack_tmp, -21)
53022 idata = idata + 1
53023 data_tmp = full_data(idata)
53024 data_tmp = ishft(data_tmp, 1)
53025 data_tmp = iand(data_tmp, mask_left(21))
53026 pack_tmp = ior(pack_tmp, data_tmp)
53027 ipack = ipack + 1
53028 packed_data(ipack) = pack_tmp
53029 data_tmp = full_data(idata)
53030 pack_tmp = ishft(data_tmp, 22)
53031 pack_tmp = ishft(pack_tmp, -22)
53032 idata = idata + 1
53033 data_tmp = full_data(idata)
53034 data_tmp = ishft(data_tmp, 1)
53035 data_tmp = iand(data_tmp, mask_left(22))
53036 pack_tmp = ior(pack_tmp, data_tmp)
53037 ipack = ipack + 1
53038 packed_data(ipack) = pack_tmp
53039 data_tmp = full_data(idata)
53040 pack_tmp = ishft(data_tmp, 23)
53041 pack_tmp = ishft(pack_tmp, -23)
53042 idata = idata + 1
53043 data_tmp = full_data(idata)
53044 data_tmp = ishft(data_tmp, 1)
53045 data_tmp = iand(data_tmp, mask_left(23))
53046 pack_tmp = ior(pack_tmp, data_tmp)
53047 ipack = ipack + 1
53048 packed_data(ipack) = pack_tmp
53049 data_tmp = full_data(idata)
53050 pack_tmp = ishft(data_tmp, 24)
53051 pack_tmp = ishft(pack_tmp, -24)
53052 idata = idata + 1
53053 data_tmp = full_data(idata)
53054 data_tmp = ishft(data_tmp, 1)
53055 data_tmp = iand(data_tmp, mask_left(24))
53056 pack_tmp = ior(pack_tmp, data_tmp)
53057 ipack = ipack + 1
53058 packed_data(ipack) = pack_tmp
53059 data_tmp = full_data(idata)
53060 pack_tmp = ishft(data_tmp, 25)
53061 pack_tmp = ishft(pack_tmp, -25)
53062 idata = idata + 1
53063 data_tmp = full_data(idata)
53064 data_tmp = ishft(data_tmp, 1)
53065 data_tmp = iand(data_tmp, mask_left(25))
53066 pack_tmp = ior(pack_tmp, data_tmp)
53067 ipack = ipack + 1
53068 packed_data(ipack) = pack_tmp
53069 data_tmp = full_data(idata)
53070 pack_tmp = ishft(data_tmp, 26)
53071 pack_tmp = ishft(pack_tmp, -26)
53072 idata = idata + 1
53073 data_tmp = full_data(idata)
53074 data_tmp = ishft(data_tmp, 1)
53075 data_tmp = iand(data_tmp, mask_left(26))
53076 pack_tmp = ior(pack_tmp, data_tmp)
53077 ipack = ipack + 1
53078 packed_data(ipack) = pack_tmp
53079 data_tmp = full_data(idata)
53080 pack_tmp = ishft(data_tmp, 27)
53081 pack_tmp = ishft(pack_tmp, -27)
53082 idata = idata + 1
53083 data_tmp = full_data(idata)
53084 data_tmp = ishft(data_tmp, 1)
53085 data_tmp = iand(data_tmp, mask_left(27))
53086 pack_tmp = ior(pack_tmp, data_tmp)
53087 ipack = ipack + 1
53088 packed_data(ipack) = pack_tmp
53089 data_tmp = full_data(idata)
53090 pack_tmp = ishft(data_tmp, 28)
53091 pack_tmp = ishft(pack_tmp, -28)
53092 idata = idata + 1
53093 data_tmp = full_data(idata)
53094 data_tmp = ishft(data_tmp, 1)
53095 data_tmp = iand(data_tmp, mask_left(28))
53096 pack_tmp = ior(pack_tmp, data_tmp)
53097 ipack = ipack + 1
53098 packed_data(ipack) = pack_tmp
53099 data_tmp = full_data(idata)
53100 pack_tmp = ishft(data_tmp, 29)
53101 pack_tmp = ishft(pack_tmp, -29)
53102 idata = idata + 1
53103 data_tmp = full_data(idata)
53104 data_tmp = ishft(data_tmp, 1)
53105 data_tmp = iand(data_tmp, mask_left(29))
53106 pack_tmp = ior(pack_tmp, data_tmp)
53107 ipack = ipack + 1
53108 packed_data(ipack) = pack_tmp
53109 data_tmp = full_data(idata)
53110 pack_tmp = ishft(data_tmp, 30)
53111 pack_tmp = ishft(pack_tmp, -30)
53112 idata = idata + 1
53113 data_tmp = full_data(idata)
53114 data_tmp = ishft(data_tmp, 1)
53115 data_tmp = iand(data_tmp, mask_left(30))
53116 pack_tmp = ior(pack_tmp, data_tmp)
53117 ipack = ipack + 1
53118 packed_data(ipack) = pack_tmp
53119 data_tmp = full_data(idata)
53120 pack_tmp = ishft(data_tmp, 31)
53121 pack_tmp = ishft(pack_tmp, -31)
53122 idata = idata + 1
53123 data_tmp = full_data(idata)
53124 data_tmp = ishft(data_tmp, 1)
53125 data_tmp = iand(data_tmp, mask_left(31))
53126 pack_tmp = ior(pack_tmp, data_tmp)
53127 ipack = ipack + 1
53128 packed_data(ipack) = pack_tmp
53129 data_tmp = full_data(idata)
53130 pack_tmp = ishft(data_tmp, 32)
53131 pack_tmp = ishft(pack_tmp, -32)
53132 idata = idata + 1
53133 data_tmp = full_data(idata)
53134 data_tmp = ishft(data_tmp, 1)
53135 data_tmp = iand(data_tmp, mask_left(32))
53136 pack_tmp = ior(pack_tmp, data_tmp)
53137 ipack = ipack + 1
53138 packed_data(ipack) = pack_tmp
53139 data_tmp = full_data(idata)
53140 pack_tmp = ishft(data_tmp, 33)
53141 pack_tmp = ishft(pack_tmp, -33)
53142 idata = idata + 1
53143 data_tmp = full_data(idata)
53144 data_tmp = ishft(data_tmp, 1)
53145 data_tmp = iand(data_tmp, mask_left(33))
53146 pack_tmp = ior(pack_tmp, data_tmp)
53147 ipack = ipack + 1
53148 packed_data(ipack) = pack_tmp
53149 data_tmp = full_data(idata)
53150 pack_tmp = ishft(data_tmp, 34)
53151 pack_tmp = ishft(pack_tmp, -34)
53152 idata = idata + 1
53153 data_tmp = full_data(idata)
53154 data_tmp = ishft(data_tmp, 1)
53155 data_tmp = iand(data_tmp, mask_left(34))
53156 pack_tmp = ior(pack_tmp, data_tmp)
53157 ipack = ipack + 1
53158 packed_data(ipack) = pack_tmp
53159 data_tmp = full_data(idata)
53160 pack_tmp = ishft(data_tmp, 35)
53161 pack_tmp = ishft(pack_tmp, -35)
53162 idata = idata + 1
53163 data_tmp = full_data(idata)
53164 data_tmp = ishft(data_tmp, 1)
53165 data_tmp = iand(data_tmp, mask_left(35))
53166 pack_tmp = ior(pack_tmp, data_tmp)
53167 ipack = ipack + 1
53168 packed_data(ipack) = pack_tmp
53169 data_tmp = full_data(idata)
53170 pack_tmp = ishft(data_tmp, 36)
53171 pack_tmp = ishft(pack_tmp, -36)
53172 idata = idata + 1
53173 data_tmp = full_data(idata)
53174 data_tmp = ishft(data_tmp, 1)
53175 data_tmp = iand(data_tmp, mask_left(36))
53176 pack_tmp = ior(pack_tmp, data_tmp)
53177 ipack = ipack + 1
53178 packed_data(ipack) = pack_tmp
53179 data_tmp = full_data(idata)
53180 pack_tmp = ishft(data_tmp, 37)
53181 pack_tmp = ishft(pack_tmp, -37)
53182 idata = idata + 1
53183 data_tmp = full_data(idata)
53184 data_tmp = ishft(data_tmp, 1)
53185 data_tmp = iand(data_tmp, mask_left(37))
53186 pack_tmp = ior(pack_tmp, data_tmp)
53187 ipack = ipack + 1
53188 packed_data(ipack) = pack_tmp
53189 data_tmp = full_data(idata)
53190 pack_tmp = ishft(data_tmp, 38)
53191 pack_tmp = ishft(pack_tmp, -38)
53192 idata = idata + 1
53193 data_tmp = full_data(idata)
53194 data_tmp = ishft(data_tmp, 1)
53195 data_tmp = iand(data_tmp, mask_left(38))
53196 pack_tmp = ior(pack_tmp, data_tmp)
53197 ipack = ipack + 1
53198 packed_data(ipack) = pack_tmp
53199 data_tmp = full_data(idata)
53200 pack_tmp = ishft(data_tmp, 39)
53201 pack_tmp = ishft(pack_tmp, -39)
53202 idata = idata + 1
53203 data_tmp = full_data(idata)
53204 data_tmp = ishft(data_tmp, 1)
53205 data_tmp = iand(data_tmp, mask_left(39))
53206 pack_tmp = ior(pack_tmp, data_tmp)
53207 ipack = ipack + 1
53208 packed_data(ipack) = pack_tmp
53209 data_tmp = full_data(idata)
53210 pack_tmp = ishft(data_tmp, 40)
53211 pack_tmp = ishft(pack_tmp, -40)
53212 idata = idata + 1
53213 data_tmp = full_data(idata)
53214 data_tmp = ishft(data_tmp, 1)
53215 data_tmp = iand(data_tmp, mask_left(40))
53216 pack_tmp = ior(pack_tmp, data_tmp)
53217 ipack = ipack + 1
53218 packed_data(ipack) = pack_tmp
53219 data_tmp = full_data(idata)
53220 pack_tmp = ishft(data_tmp, 41)
53221 pack_tmp = ishft(pack_tmp, -41)
53222 idata = idata + 1
53223 data_tmp = full_data(idata)
53224 data_tmp = ishft(data_tmp, 1)
53225 data_tmp = iand(data_tmp, mask_left(41))
53226 pack_tmp = ior(pack_tmp, data_tmp)
53227 ipack = ipack + 1
53228 packed_data(ipack) = pack_tmp
53229 data_tmp = full_data(idata)
53230 pack_tmp = ishft(data_tmp, 42)
53231 pack_tmp = ishft(pack_tmp, -42)
53232 idata = idata + 1
53233 data_tmp = full_data(idata)
53234 data_tmp = ishft(data_tmp, 1)
53235 data_tmp = iand(data_tmp, mask_left(42))
53236 pack_tmp = ior(pack_tmp, data_tmp)
53237 ipack = ipack + 1
53238 packed_data(ipack) = pack_tmp
53239 data_tmp = full_data(idata)
53240 pack_tmp = ishft(data_tmp, 43)
53241 pack_tmp = ishft(pack_tmp, -43)
53242 idata = idata + 1
53243 data_tmp = full_data(idata)
53244 data_tmp = ishft(data_tmp, 1)
53245 data_tmp = iand(data_tmp, mask_left(43))
53246 pack_tmp = ior(pack_tmp, data_tmp)
53247 ipack = ipack + 1
53248 packed_data(ipack) = pack_tmp
53249 data_tmp = full_data(idata)
53250 pack_tmp = ishft(data_tmp, 44)
53251 pack_tmp = ishft(pack_tmp, -44)
53252 idata = idata + 1
53253 data_tmp = full_data(idata)
53254 data_tmp = ishft(data_tmp, 1)
53255 data_tmp = iand(data_tmp, mask_left(44))
53256 pack_tmp = ior(pack_tmp, data_tmp)
53257 ipack = ipack + 1
53258 packed_data(ipack) = pack_tmp
53259 data_tmp = full_data(idata)
53260 pack_tmp = ishft(data_tmp, 45)
53261 pack_tmp = ishft(pack_tmp, -45)
53262 idata = idata + 1
53263 data_tmp = full_data(idata)
53264 data_tmp = ishft(data_tmp, 1)
53265 data_tmp = iand(data_tmp, mask_left(45))
53266 pack_tmp = ior(pack_tmp, data_tmp)
53267 ipack = ipack + 1
53268 packed_data(ipack) = pack_tmp
53269 data_tmp = full_data(idata)
53270 pack_tmp = ishft(data_tmp, 46)
53271 pack_tmp = ishft(pack_tmp, -46)
53272 idata = idata + 1
53273 data_tmp = full_data(idata)
53274 data_tmp = ishft(data_tmp, 1)
53275 data_tmp = iand(data_tmp, mask_left(46))
53276 pack_tmp = ior(pack_tmp, data_tmp)
53277 ipack = ipack + 1
53278 packed_data(ipack) = pack_tmp
53279 data_tmp = full_data(idata)
53280 pack_tmp = ishft(data_tmp, 47)
53281 pack_tmp = ishft(pack_tmp, -47)
53282 idata = idata + 1
53283 data_tmp = full_data(idata)
53284 data_tmp = ishft(data_tmp, 1)
53285 data_tmp = iand(data_tmp, mask_left(47))
53286 pack_tmp = ior(pack_tmp, data_tmp)
53287 ipack = ipack + 1
53288 packed_data(ipack) = pack_tmp
53289 data_tmp = full_data(idata)
53290 pack_tmp = ishft(data_tmp, 48)
53291 pack_tmp = ishft(pack_tmp, -48)
53292 idata = idata + 1
53293 data_tmp = full_data(idata)
53294 data_tmp = ishft(data_tmp, 1)
53295 data_tmp = iand(data_tmp, mask_left(48))
53296 pack_tmp = ior(pack_tmp, data_tmp)
53297 ipack = ipack + 1
53298 packed_data(ipack) = pack_tmp
53299 data_tmp = full_data(idata)
53300 pack_tmp = ishft(data_tmp, 49)
53301 pack_tmp = ishft(pack_tmp, -49)
53302 idata = idata + 1
53303 data_tmp = full_data(idata)
53304 data_tmp = ishft(data_tmp, 1)
53305 data_tmp = iand(data_tmp, mask_left(49))
53306 pack_tmp = ior(pack_tmp, data_tmp)
53307 ipack = ipack + 1
53308 packed_data(ipack) = pack_tmp
53309 data_tmp = full_data(idata)
53310 pack_tmp = ishft(data_tmp, 50)
53311 pack_tmp = ishft(pack_tmp, -50)
53312 idata = idata + 1
53313 data_tmp = full_data(idata)
53314 data_tmp = ishft(data_tmp, 1)
53315 data_tmp = iand(data_tmp, mask_left(50))
53316 pack_tmp = ior(pack_tmp, data_tmp)
53317 ipack = ipack + 1
53318 packed_data(ipack) = pack_tmp
53319 data_tmp = full_data(idata)
53320 pack_tmp = ishft(data_tmp, 51)
53321 pack_tmp = ishft(pack_tmp, -51)
53322 idata = idata + 1
53323 data_tmp = full_data(idata)
53324 data_tmp = ishft(data_tmp, 1)
53325 data_tmp = iand(data_tmp, mask_left(51))
53326 pack_tmp = ior(pack_tmp, data_tmp)
53327 ipack = ipack + 1
53328 packed_data(ipack) = pack_tmp
53329 data_tmp = full_data(idata)
53330 pack_tmp = ishft(data_tmp, 52)
53331 pack_tmp = ishft(pack_tmp, -52)
53332 idata = idata + 1
53333 data_tmp = full_data(idata)
53334 data_tmp = ishft(data_tmp, 1)
53335 data_tmp = iand(data_tmp, mask_left(52))
53336 pack_tmp = ior(pack_tmp, data_tmp)
53337 ipack = ipack + 1
53338 packed_data(ipack) = pack_tmp
53339 data_tmp = full_data(idata)
53340 pack_tmp = ishft(data_tmp, 53)
53341 pack_tmp = ishft(pack_tmp, -53)
53342 idata = idata + 1
53343 data_tmp = full_data(idata)
53344 data_tmp = ishft(data_tmp, 1)
53345 data_tmp = iand(data_tmp, mask_left(53))
53346 pack_tmp = ior(pack_tmp, data_tmp)
53347 ipack = ipack + 1
53348 packed_data(ipack) = pack_tmp
53349 data_tmp = full_data(idata)
53350 pack_tmp = ishft(data_tmp, 54)
53351 pack_tmp = ishft(pack_tmp, -54)
53352 idata = idata + 1
53353 data_tmp = full_data(idata)
53354 data_tmp = ishft(data_tmp, 1)
53355 data_tmp = iand(data_tmp, mask_left(54))
53356 pack_tmp = ior(pack_tmp, data_tmp)
53357 ipack = ipack + 1
53358 packed_data(ipack) = pack_tmp
53359 data_tmp = full_data(idata)
53360 pack_tmp = ishft(data_tmp, 55)
53361 pack_tmp = ishft(pack_tmp, -55)
53362 idata = idata + 1
53363 data_tmp = full_data(idata)
53364 data_tmp = ishft(data_tmp, 1)
53365 data_tmp = iand(data_tmp, mask_left(55))
53366 pack_tmp = ior(pack_tmp, data_tmp)
53367 ipack = ipack + 1
53368 packed_data(ipack) = pack_tmp
53369 data_tmp = full_data(idata)
53370 pack_tmp = ishft(data_tmp, 56)
53371 pack_tmp = ishft(pack_tmp, -56)
53372 idata = idata + 1
53373 data_tmp = full_data(idata)
53374 data_tmp = ishft(data_tmp, 1)
53375 data_tmp = iand(data_tmp, mask_left(56))
53376 pack_tmp = ior(pack_tmp, data_tmp)
53377 ipack = ipack + 1
53378 packed_data(ipack) = pack_tmp
53379 data_tmp = full_data(idata)
53380 pack_tmp = ishft(data_tmp, 57)
53381 pack_tmp = ishft(pack_tmp, -57)
53382 idata = idata + 1
53383 data_tmp = full_data(idata)
53384 data_tmp = ishft(data_tmp, 1)
53385 data_tmp = iand(data_tmp, mask_left(57))
53386 pack_tmp = ior(pack_tmp, data_tmp)
53387 ipack = ipack + 1
53388 packed_data(ipack) = pack_tmp
53389 data_tmp = full_data(idata)
53390 pack_tmp = ishft(data_tmp, 58)
53391 pack_tmp = ishft(pack_tmp, -58)
53392 idata = idata + 1
53393 data_tmp = full_data(idata)
53394 data_tmp = ishft(data_tmp, 1)
53395 data_tmp = iand(data_tmp, mask_left(58))
53396 pack_tmp = ior(pack_tmp, data_tmp)
53397 ipack = ipack + 1
53398 packed_data(ipack) = pack_tmp
53399 data_tmp = full_data(idata)
53400 pack_tmp = ishft(data_tmp, 59)
53401 pack_tmp = ishft(pack_tmp, -59)
53402 idata = idata + 1
53403 data_tmp = full_data(idata)
53404 data_tmp = ishft(data_tmp, 1)
53405 data_tmp = iand(data_tmp, mask_left(59))
53406 pack_tmp = ior(pack_tmp, data_tmp)
53407 ipack = ipack + 1
53408 packed_data(ipack) = pack_tmp
53409 data_tmp = full_data(idata)
53410 pack_tmp = ishft(data_tmp, 60)
53411 pack_tmp = ishft(pack_tmp, -60)
53412 idata = idata + 1
53413 data_tmp = full_data(idata)
53414 data_tmp = ishft(data_tmp, 1)
53415 data_tmp = iand(data_tmp, mask_left(60))
53416 pack_tmp = ior(pack_tmp, data_tmp)
53417 ipack = ipack + 1
53418 packed_data(ipack) = pack_tmp
53419 data_tmp = full_data(idata)
53420 pack_tmp = ishft(data_tmp, 61)
53421 pack_tmp = ishft(pack_tmp, -61)
53422 idata = idata + 1
53423 data_tmp = full_data(idata)
53424 data_tmp = ishft(data_tmp, 1)
53425 data_tmp = iand(data_tmp, mask_left(61))
53426 pack_tmp = ior(pack_tmp, data_tmp)
53427 ipack = ipack + 1
53428 packed_data(ipack) = pack_tmp
53429 data_tmp = full_data(idata)
53430 pack_tmp = ishft(data_tmp, 62)
53431 pack_tmp = ishft(pack_tmp, -62)
53432 idata = idata + 1
53433 data_tmp = full_data(idata)
53434 data_tmp = ishft(data_tmp, 1)
53435 data_tmp = iand(data_tmp, mask_left(62))
53436 pack_tmp = ior(pack_tmp, data_tmp)
53437 ipack = ipack + 1
53438 packed_data(ipack) = pack_tmp
53439 data_tmp = full_data(idata)
53440 pack_tmp = ishft(data_tmp, 63)
53441 pack_tmp = ishft(pack_tmp, -63)
53442 idata = idata + 1
53443 data_tmp = full_data(idata)
53444 data_tmp = ishft(data_tmp, 1)
53445 pack_tmp = ior(pack_tmp, data_tmp)
53446 pack_tmp = ishft(pack_tmp, 0)
53447 pack_tmp = ishft(pack_tmp, 0)
53448 ipack = ipack + 1
53449 packed_data(ipack) = pack_tmp
53450 END DO
53451 IF (ndata_rep < ndata) THEN
53452 CALL ints2bits_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
53453 END IF
53454 END SUBROUTINE ints2bits_63
53455
53456! **************************************************************************************************
53457!> \brief ...
53458!> \param Ndata ...
53459!> \param packed_data ...
53460!> \param full_data ...
53461! **************************************************************************************************
53462 SUBROUTINE bits2ints_63(Ndata, packed_data, full_data)
53463 INTEGER, INTENT(IN) :: Ndata
53464 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
53465 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
53466
53467 INTEGER, PARAMETER :: Nbits = 63
53468
53469 INTEGER :: idata, ipack, kdata, Ndata_rep
53470 INTEGER(KIND=int_8) :: data_tmp, pack_tmp
53471
53472 ipack = 0
53473 idata = 0
53474 pack_tmp = 0
53475 ndata_rep = (ndata/64)*64
53476 DO kdata = 1, ndata_rep, 64
53477 idata = idata + 1
53478 data_tmp = ishft(pack_tmp, 63)
53479 ipack = ipack + 1
53480 pack_tmp = packed_data(ipack)
53481 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(63)))
53482 pack_tmp = ishft(pack_tmp, -63)
53483 idata = idata + 1
53484 data_tmp = ishft(pack_tmp, 62)
53485 ipack = ipack + 1
53486 pack_tmp = packed_data(ipack)
53487 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(62)))
53488 pack_tmp = ishft(pack_tmp, -62)
53489 idata = idata + 1
53490 data_tmp = ishft(pack_tmp, 61)
53491 ipack = ipack + 1
53492 pack_tmp = packed_data(ipack)
53493 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(61)))
53494 pack_tmp = ishft(pack_tmp, -61)
53495 idata = idata + 1
53496 data_tmp = ishft(pack_tmp, 60)
53497 ipack = ipack + 1
53498 pack_tmp = packed_data(ipack)
53499 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(60)))
53500 pack_tmp = ishft(pack_tmp, -60)
53501 idata = idata + 1
53502 data_tmp = ishft(pack_tmp, 59)
53503 ipack = ipack + 1
53504 pack_tmp = packed_data(ipack)
53505 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(59)))
53506 pack_tmp = ishft(pack_tmp, -59)
53507 idata = idata + 1
53508 data_tmp = ishft(pack_tmp, 58)
53509 ipack = ipack + 1
53510 pack_tmp = packed_data(ipack)
53511 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(58)))
53512 pack_tmp = ishft(pack_tmp, -58)
53513 idata = idata + 1
53514 data_tmp = ishft(pack_tmp, 57)
53515 ipack = ipack + 1
53516 pack_tmp = packed_data(ipack)
53517 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(57)))
53518 pack_tmp = ishft(pack_tmp, -57)
53519 idata = idata + 1
53520 data_tmp = ishft(pack_tmp, 56)
53521 ipack = ipack + 1
53522 pack_tmp = packed_data(ipack)
53523 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(56)))
53524 pack_tmp = ishft(pack_tmp, -56)
53525 idata = idata + 1
53526 data_tmp = ishft(pack_tmp, 55)
53527 ipack = ipack + 1
53528 pack_tmp = packed_data(ipack)
53529 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(55)))
53530 pack_tmp = ishft(pack_tmp, -55)
53531 idata = idata + 1
53532 data_tmp = ishft(pack_tmp, 54)
53533 ipack = ipack + 1
53534 pack_tmp = packed_data(ipack)
53535 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(54)))
53536 pack_tmp = ishft(pack_tmp, -54)
53537 idata = idata + 1
53538 data_tmp = ishft(pack_tmp, 53)
53539 ipack = ipack + 1
53540 pack_tmp = packed_data(ipack)
53541 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(53)))
53542 pack_tmp = ishft(pack_tmp, -53)
53543 idata = idata + 1
53544 data_tmp = ishft(pack_tmp, 52)
53545 ipack = ipack + 1
53546 pack_tmp = packed_data(ipack)
53547 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(52)))
53548 pack_tmp = ishft(pack_tmp, -52)
53549 idata = idata + 1
53550 data_tmp = ishft(pack_tmp, 51)
53551 ipack = ipack + 1
53552 pack_tmp = packed_data(ipack)
53553 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(51)))
53554 pack_tmp = ishft(pack_tmp, -51)
53555 idata = idata + 1
53556 data_tmp = ishft(pack_tmp, 50)
53557 ipack = ipack + 1
53558 pack_tmp = packed_data(ipack)
53559 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(50)))
53560 pack_tmp = ishft(pack_tmp, -50)
53561 idata = idata + 1
53562 data_tmp = ishft(pack_tmp, 49)
53563 ipack = ipack + 1
53564 pack_tmp = packed_data(ipack)
53565 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(49)))
53566 pack_tmp = ishft(pack_tmp, -49)
53567 idata = idata + 1
53568 data_tmp = ishft(pack_tmp, 48)
53569 ipack = ipack + 1
53570 pack_tmp = packed_data(ipack)
53571 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(48)))
53572 pack_tmp = ishft(pack_tmp, -48)
53573 idata = idata + 1
53574 data_tmp = ishft(pack_tmp, 47)
53575 ipack = ipack + 1
53576 pack_tmp = packed_data(ipack)
53577 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(47)))
53578 pack_tmp = ishft(pack_tmp, -47)
53579 idata = idata + 1
53580 data_tmp = ishft(pack_tmp, 46)
53581 ipack = ipack + 1
53582 pack_tmp = packed_data(ipack)
53583 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(46)))
53584 pack_tmp = ishft(pack_tmp, -46)
53585 idata = idata + 1
53586 data_tmp = ishft(pack_tmp, 45)
53587 ipack = ipack + 1
53588 pack_tmp = packed_data(ipack)
53589 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(45)))
53590 pack_tmp = ishft(pack_tmp, -45)
53591 idata = idata + 1
53592 data_tmp = ishft(pack_tmp, 44)
53593 ipack = ipack + 1
53594 pack_tmp = packed_data(ipack)
53595 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(44)))
53596 pack_tmp = ishft(pack_tmp, -44)
53597 idata = idata + 1
53598 data_tmp = ishft(pack_tmp, 43)
53599 ipack = ipack + 1
53600 pack_tmp = packed_data(ipack)
53601 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(43)))
53602 pack_tmp = ishft(pack_tmp, -43)
53603 idata = idata + 1
53604 data_tmp = ishft(pack_tmp, 42)
53605 ipack = ipack + 1
53606 pack_tmp = packed_data(ipack)
53607 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(42)))
53608 pack_tmp = ishft(pack_tmp, -42)
53609 idata = idata + 1
53610 data_tmp = ishft(pack_tmp, 41)
53611 ipack = ipack + 1
53612 pack_tmp = packed_data(ipack)
53613 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(41)))
53614 pack_tmp = ishft(pack_tmp, -41)
53615 idata = idata + 1
53616 data_tmp = ishft(pack_tmp, 40)
53617 ipack = ipack + 1
53618 pack_tmp = packed_data(ipack)
53619 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(40)))
53620 pack_tmp = ishft(pack_tmp, -40)
53621 idata = idata + 1
53622 data_tmp = ishft(pack_tmp, 39)
53623 ipack = ipack + 1
53624 pack_tmp = packed_data(ipack)
53625 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(39)))
53626 pack_tmp = ishft(pack_tmp, -39)
53627 idata = idata + 1
53628 data_tmp = ishft(pack_tmp, 38)
53629 ipack = ipack + 1
53630 pack_tmp = packed_data(ipack)
53631 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(38)))
53632 pack_tmp = ishft(pack_tmp, -38)
53633 idata = idata + 1
53634 data_tmp = ishft(pack_tmp, 37)
53635 ipack = ipack + 1
53636 pack_tmp = packed_data(ipack)
53637 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(37)))
53638 pack_tmp = ishft(pack_tmp, -37)
53639 idata = idata + 1
53640 data_tmp = ishft(pack_tmp, 36)
53641 ipack = ipack + 1
53642 pack_tmp = packed_data(ipack)
53643 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(36)))
53644 pack_tmp = ishft(pack_tmp, -36)
53645 idata = idata + 1
53646 data_tmp = ishft(pack_tmp, 35)
53647 ipack = ipack + 1
53648 pack_tmp = packed_data(ipack)
53649 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(35)))
53650 pack_tmp = ishft(pack_tmp, -35)
53651 idata = idata + 1
53652 data_tmp = ishft(pack_tmp, 34)
53653 ipack = ipack + 1
53654 pack_tmp = packed_data(ipack)
53655 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(34)))
53656 pack_tmp = ishft(pack_tmp, -34)
53657 idata = idata + 1
53658 data_tmp = ishft(pack_tmp, 33)
53659 ipack = ipack + 1
53660 pack_tmp = packed_data(ipack)
53661 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(33)))
53662 pack_tmp = ishft(pack_tmp, -33)
53663 idata = idata + 1
53664 data_tmp = ishft(pack_tmp, 32)
53665 ipack = ipack + 1
53666 pack_tmp = packed_data(ipack)
53667 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(32)))
53668 pack_tmp = ishft(pack_tmp, -32)
53669 idata = idata + 1
53670 data_tmp = ishft(pack_tmp, 31)
53671 ipack = ipack + 1
53672 pack_tmp = packed_data(ipack)
53673 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(31)))
53674 pack_tmp = ishft(pack_tmp, -31)
53675 idata = idata + 1
53676 data_tmp = ishft(pack_tmp, 30)
53677 ipack = ipack + 1
53678 pack_tmp = packed_data(ipack)
53679 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(30)))
53680 pack_tmp = ishft(pack_tmp, -30)
53681 idata = idata + 1
53682 data_tmp = ishft(pack_tmp, 29)
53683 ipack = ipack + 1
53684 pack_tmp = packed_data(ipack)
53685 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(29)))
53686 pack_tmp = ishft(pack_tmp, -29)
53687 idata = idata + 1
53688 data_tmp = ishft(pack_tmp, 28)
53689 ipack = ipack + 1
53690 pack_tmp = packed_data(ipack)
53691 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(28)))
53692 pack_tmp = ishft(pack_tmp, -28)
53693 idata = idata + 1
53694 data_tmp = ishft(pack_tmp, 27)
53695 ipack = ipack + 1
53696 pack_tmp = packed_data(ipack)
53697 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(27)))
53698 pack_tmp = ishft(pack_tmp, -27)
53699 idata = idata + 1
53700 data_tmp = ishft(pack_tmp, 26)
53701 ipack = ipack + 1
53702 pack_tmp = packed_data(ipack)
53703 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(26)))
53704 pack_tmp = ishft(pack_tmp, -26)
53705 idata = idata + 1
53706 data_tmp = ishft(pack_tmp, 25)
53707 ipack = ipack + 1
53708 pack_tmp = packed_data(ipack)
53709 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(25)))
53710 pack_tmp = ishft(pack_tmp, -25)
53711 idata = idata + 1
53712 data_tmp = ishft(pack_tmp, 24)
53713 ipack = ipack + 1
53714 pack_tmp = packed_data(ipack)
53715 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(24)))
53716 pack_tmp = ishft(pack_tmp, -24)
53717 idata = idata + 1
53718 data_tmp = ishft(pack_tmp, 23)
53719 ipack = ipack + 1
53720 pack_tmp = packed_data(ipack)
53721 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(23)))
53722 pack_tmp = ishft(pack_tmp, -23)
53723 idata = idata + 1
53724 data_tmp = ishft(pack_tmp, 22)
53725 ipack = ipack + 1
53726 pack_tmp = packed_data(ipack)
53727 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(22)))
53728 pack_tmp = ishft(pack_tmp, -22)
53729 idata = idata + 1
53730 data_tmp = ishft(pack_tmp, 21)
53731 ipack = ipack + 1
53732 pack_tmp = packed_data(ipack)
53733 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(21)))
53734 pack_tmp = ishft(pack_tmp, -21)
53735 idata = idata + 1
53736 data_tmp = ishft(pack_tmp, 20)
53737 ipack = ipack + 1
53738 pack_tmp = packed_data(ipack)
53739 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(20)))
53740 pack_tmp = ishft(pack_tmp, -20)
53741 idata = idata + 1
53742 data_tmp = ishft(pack_tmp, 19)
53743 ipack = ipack + 1
53744 pack_tmp = packed_data(ipack)
53745 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(19)))
53746 pack_tmp = ishft(pack_tmp, -19)
53747 idata = idata + 1
53748 data_tmp = ishft(pack_tmp, 18)
53749 ipack = ipack + 1
53750 pack_tmp = packed_data(ipack)
53751 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(18)))
53752 pack_tmp = ishft(pack_tmp, -18)
53753 idata = idata + 1
53754 data_tmp = ishft(pack_tmp, 17)
53755 ipack = ipack + 1
53756 pack_tmp = packed_data(ipack)
53757 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(17)))
53758 pack_tmp = ishft(pack_tmp, -17)
53759 idata = idata + 1
53760 data_tmp = ishft(pack_tmp, 16)
53761 ipack = ipack + 1
53762 pack_tmp = packed_data(ipack)
53763 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(16)))
53764 pack_tmp = ishft(pack_tmp, -16)
53765 idata = idata + 1
53766 data_tmp = ishft(pack_tmp, 15)
53767 ipack = ipack + 1
53768 pack_tmp = packed_data(ipack)
53769 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(15)))
53770 pack_tmp = ishft(pack_tmp, -15)
53771 idata = idata + 1
53772 data_tmp = ishft(pack_tmp, 14)
53773 ipack = ipack + 1
53774 pack_tmp = packed_data(ipack)
53775 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(14)))
53776 pack_tmp = ishft(pack_tmp, -14)
53777 idata = idata + 1
53778 data_tmp = ishft(pack_tmp, 13)
53779 ipack = ipack + 1
53780 pack_tmp = packed_data(ipack)
53781 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(13)))
53782 pack_tmp = ishft(pack_tmp, -13)
53783 idata = idata + 1
53784 data_tmp = ishft(pack_tmp, 12)
53785 ipack = ipack + 1
53786 pack_tmp = packed_data(ipack)
53787 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(12)))
53788 pack_tmp = ishft(pack_tmp, -12)
53789 idata = idata + 1
53790 data_tmp = ishft(pack_tmp, 11)
53791 ipack = ipack + 1
53792 pack_tmp = packed_data(ipack)
53793 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(11)))
53794 pack_tmp = ishft(pack_tmp, -11)
53795 idata = idata + 1
53796 data_tmp = ishft(pack_tmp, 10)
53797 ipack = ipack + 1
53798 pack_tmp = packed_data(ipack)
53799 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(10)))
53800 pack_tmp = ishft(pack_tmp, -10)
53801 idata = idata + 1
53802 data_tmp = ishft(pack_tmp, 9)
53803 ipack = ipack + 1
53804 pack_tmp = packed_data(ipack)
53805 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(9)))
53806 pack_tmp = ishft(pack_tmp, -9)
53807 idata = idata + 1
53808 data_tmp = ishft(pack_tmp, 8)
53809 ipack = ipack + 1
53810 pack_tmp = packed_data(ipack)
53811 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(8)))
53812 pack_tmp = ishft(pack_tmp, -8)
53813 idata = idata + 1
53814 data_tmp = ishft(pack_tmp, 7)
53815 ipack = ipack + 1
53816 pack_tmp = packed_data(ipack)
53817 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(7)))
53818 pack_tmp = ishft(pack_tmp, -7)
53819 idata = idata + 1
53820 data_tmp = ishft(pack_tmp, 6)
53821 ipack = ipack + 1
53822 pack_tmp = packed_data(ipack)
53823 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(6)))
53824 pack_tmp = ishft(pack_tmp, -6)
53825 idata = idata + 1
53826 data_tmp = ishft(pack_tmp, 5)
53827 ipack = ipack + 1
53828 pack_tmp = packed_data(ipack)
53829 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(5)))
53830 pack_tmp = ishft(pack_tmp, -5)
53831 idata = idata + 1
53832 data_tmp = ishft(pack_tmp, 4)
53833 ipack = ipack + 1
53834 pack_tmp = packed_data(ipack)
53835 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(4)))
53836 pack_tmp = ishft(pack_tmp, -4)
53837 idata = idata + 1
53838 data_tmp = ishft(pack_tmp, 3)
53839 ipack = ipack + 1
53840 pack_tmp = packed_data(ipack)
53841 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(3)))
53842 pack_tmp = ishft(pack_tmp, -3)
53843 idata = idata + 1
53844 data_tmp = ishft(pack_tmp, 2)
53845 ipack = ipack + 1
53846 pack_tmp = packed_data(ipack)
53847 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(2)))
53848 pack_tmp = ishft(pack_tmp, -2)
53849 idata = idata + 1
53850 data_tmp = ishft(pack_tmp, 1)
53851 ipack = ipack + 1
53852 pack_tmp = packed_data(ipack)
53853 full_data(idata) = ior(data_tmp, iand(pack_tmp, mask_right(1)))
53854 pack_tmp = ishft(pack_tmp, -1)
53855 idata = idata + 1
53856 data_tmp = iand(pack_tmp, mask_right(nbits))
53857 full_data(idata) = data_tmp
53858 pack_tmp = ishft(pack_tmp, -nbits)
53859 END DO
53860 IF (ndata_rep < ndata) THEN
53861 CALL bits2ints_generic(nbits, ndata - ndata_rep, packed_data(ipack + 1), full_data(ndata_rep + 1))
53862 END IF
53863 END SUBROUTINE bits2ints_63
53864
53865! **************************************************************************************************
53866!> \brief ...
53867!> \param Nbits ...
53868!> \param Ndata ...
53869!> \param packed_data ...
53870!> \param full_data ...
53871! **************************************************************************************************
53872 SUBROUTINE ints2bits_specific(Nbits, Ndata, packed_data, full_data)
53873 INTEGER, INTENT(IN) :: nbits, ndata
53874 INTEGER(KIND=int_8), INTENT(OUT) :: packed_data(*)
53875 INTEGER(KIND=int_8), INTENT(IN) :: full_data(*)
53876
53877 SELECT CASE (nbits)
53878 CASE (1)
53879 CALL ints2bits_1(ndata, packed_data, full_data)
53880 CASE (2)
53881 CALL ints2bits_2(ndata, packed_data, full_data)
53882 CASE (3)
53883 CALL ints2bits_3(ndata, packed_data, full_data)
53884 CASE (4)
53885 CALL ints2bits_4(ndata, packed_data, full_data)
53886 CASE (5)
53887 CALL ints2bits_5(ndata, packed_data, full_data)
53888 CASE (6)
53889 CALL ints2bits_6(ndata, packed_data, full_data)
53890 CASE (7)
53891 CALL ints2bits_7(ndata, packed_data, full_data)
53892 CASE (8)
53893 CALL ints2bits_8(ndata, packed_data, full_data)
53894 CASE (9)
53895 CALL ints2bits_9(ndata, packed_data, full_data)
53896 CASE (10)
53897 CALL ints2bits_10(ndata, packed_data, full_data)
53898 CASE (11)
53899 CALL ints2bits_11(ndata, packed_data, full_data)
53900 CASE (12)
53901 CALL ints2bits_12(ndata, packed_data, full_data)
53902 CASE (13)
53903 CALL ints2bits_13(ndata, packed_data, full_data)
53904 CASE (14)
53905 CALL ints2bits_14(ndata, packed_data, full_data)
53906 CASE (15)
53907 CALL ints2bits_15(ndata, packed_data, full_data)
53908 CASE (16)
53909 CALL ints2bits_16(ndata, packed_data, full_data)
53910 CASE (17)
53911 CALL ints2bits_17(ndata, packed_data, full_data)
53912 CASE (18)
53913 CALL ints2bits_18(ndata, packed_data, full_data)
53914 CASE (19)
53915 CALL ints2bits_19(ndata, packed_data, full_data)
53916 CASE (20)
53917 CALL ints2bits_20(ndata, packed_data, full_data)
53918 CASE (21)
53919 CALL ints2bits_21(ndata, packed_data, full_data)
53920 CASE (22)
53921 CALL ints2bits_22(ndata, packed_data, full_data)
53922 CASE (23)
53923 CALL ints2bits_23(ndata, packed_data, full_data)
53924 CASE (24)
53925 CALL ints2bits_24(ndata, packed_data, full_data)
53926 CASE (25)
53927 CALL ints2bits_25(ndata, packed_data, full_data)
53928 CASE (26)
53929 CALL ints2bits_26(ndata, packed_data, full_data)
53930 CASE (27)
53931 CALL ints2bits_27(ndata, packed_data, full_data)
53932 CASE (28)
53933 CALL ints2bits_28(ndata, packed_data, full_data)
53934 CASE (29)
53935 CALL ints2bits_29(ndata, packed_data, full_data)
53936 CASE (30)
53937 CALL ints2bits_30(ndata, packed_data, full_data)
53938 CASE (31)
53939 CALL ints2bits_31(ndata, packed_data, full_data)
53940 CASE (32)
53941 CALL ints2bits_32(ndata, packed_data, full_data)
53942 CASE (33)
53943 CALL ints2bits_33(ndata, packed_data, full_data)
53944 CASE (34)
53945 CALL ints2bits_34(ndata, packed_data, full_data)
53946 CASE (35)
53947 CALL ints2bits_35(ndata, packed_data, full_data)
53948 CASE (36)
53949 CALL ints2bits_36(ndata, packed_data, full_data)
53950 CASE (37)
53951 CALL ints2bits_37(ndata, packed_data, full_data)
53952 CASE (38)
53953 CALL ints2bits_38(ndata, packed_data, full_data)
53954 CASE (39)
53955 CALL ints2bits_39(ndata, packed_data, full_data)
53956 CASE (40)
53957 CALL ints2bits_40(ndata, packed_data, full_data)
53958 CASE (41)
53959 CALL ints2bits_41(ndata, packed_data, full_data)
53960 CASE (42)
53961 CALL ints2bits_42(ndata, packed_data, full_data)
53962 CASE (43)
53963 CALL ints2bits_43(ndata, packed_data, full_data)
53964 CASE (44)
53965 CALL ints2bits_44(ndata, packed_data, full_data)
53966 CASE (45)
53967 CALL ints2bits_45(ndata, packed_data, full_data)
53968 CASE (46)
53969 CALL ints2bits_46(ndata, packed_data, full_data)
53970 CASE (47)
53971 CALL ints2bits_47(ndata, packed_data, full_data)
53972 CASE (48)
53973 CALL ints2bits_48(ndata, packed_data, full_data)
53974 CASE (49)
53975 CALL ints2bits_49(ndata, packed_data, full_data)
53976 CASE (50)
53977 CALL ints2bits_50(ndata, packed_data, full_data)
53978 CASE (51)
53979 CALL ints2bits_51(ndata, packed_data, full_data)
53980 CASE (52)
53981 CALL ints2bits_52(ndata, packed_data, full_data)
53982 CASE (53)
53983 CALL ints2bits_53(ndata, packed_data, full_data)
53984 CASE (54)
53985 CALL ints2bits_54(ndata, packed_data, full_data)
53986 CASE (55)
53987 CALL ints2bits_55(ndata, packed_data, full_data)
53988 CASE (56)
53989 CALL ints2bits_56(ndata, packed_data, full_data)
53990 CASE (57)
53991 CALL ints2bits_57(ndata, packed_data, full_data)
53992 CASE (58)
53993 CALL ints2bits_58(ndata, packed_data, full_data)
53994 CASE (59)
53995 CALL ints2bits_59(ndata, packed_data, full_data)
53996 CASE (60)
53997 CALL ints2bits_60(ndata, packed_data, full_data)
53998 CASE (61)
53999 CALL ints2bits_61(ndata, packed_data, full_data)
54000 CASE (62)
54001 CALL ints2bits_62(ndata, packed_data, full_data)
54002 CASE (63)
54003 CALL ints2bits_63(ndata, packed_data, full_data)
54004 END SELECT
54005 END SUBROUTINE ints2bits_specific
54006
54007! **************************************************************************************************
54008!> \brief ...
54009!> \param Nbits ...
54010!> \param Ndata ...
54011!> \param packed_data ...
54012!> \param full_data ...
54013! **************************************************************************************************
54014 SUBROUTINE bits2ints_specific(Nbits, Ndata, packed_data, full_data)
54015 INTEGER, INTENT(IN) :: nbits, ndata
54016 INTEGER(KIND=int_8), INTENT(IN) :: packed_data(*)
54017 INTEGER(KIND=int_8), INTENT(OUT) :: full_data(*)
54018
54019 SELECT CASE (nbits)
54020 CASE (1)
54021 CALL bits2ints_1(ndata, packed_data, full_data)
54022 CASE (2)
54023 CALL bits2ints_2(ndata, packed_data, full_data)
54024 CASE (3)
54025 CALL bits2ints_3(ndata, packed_data, full_data)
54026 CASE (4)
54027 CALL bits2ints_4(ndata, packed_data, full_data)
54028 CASE (5)
54029 CALL bits2ints_5(ndata, packed_data, full_data)
54030 CASE (6)
54031 CALL bits2ints_6(ndata, packed_data, full_data)
54032 CASE (7)
54033 CALL bits2ints_7(ndata, packed_data, full_data)
54034 CASE (8)
54035 CALL bits2ints_8(ndata, packed_data, full_data)
54036 CASE (9)
54037 CALL bits2ints_9(ndata, packed_data, full_data)
54038 CASE (10)
54039 CALL bits2ints_10(ndata, packed_data, full_data)
54040 CASE (11)
54041 CALL bits2ints_11(ndata, packed_data, full_data)
54042 CASE (12)
54043 CALL bits2ints_12(ndata, packed_data, full_data)
54044 CASE (13)
54045 CALL bits2ints_13(ndata, packed_data, full_data)
54046 CASE (14)
54047 CALL bits2ints_14(ndata, packed_data, full_data)
54048 CASE (15)
54049 CALL bits2ints_15(ndata, packed_data, full_data)
54050 CASE (16)
54051 CALL bits2ints_16(ndata, packed_data, full_data)
54052 CASE (17)
54053 CALL bits2ints_17(ndata, packed_data, full_data)
54054 CASE (18)
54055 CALL bits2ints_18(ndata, packed_data, full_data)
54056 CASE (19)
54057 CALL bits2ints_19(ndata, packed_data, full_data)
54058 CASE (20)
54059 CALL bits2ints_20(ndata, packed_data, full_data)
54060 CASE (21)
54061 CALL bits2ints_21(ndata, packed_data, full_data)
54062 CASE (22)
54063 CALL bits2ints_22(ndata, packed_data, full_data)
54064 CASE (23)
54065 CALL bits2ints_23(ndata, packed_data, full_data)
54066 CASE (24)
54067 CALL bits2ints_24(ndata, packed_data, full_data)
54068 CASE (25)
54069 CALL bits2ints_25(ndata, packed_data, full_data)
54070 CASE (26)
54071 CALL bits2ints_26(ndata, packed_data, full_data)
54072 CASE (27)
54073 CALL bits2ints_27(ndata, packed_data, full_data)
54074 CASE (28)
54075 CALL bits2ints_28(ndata, packed_data, full_data)
54076 CASE (29)
54077 CALL bits2ints_29(ndata, packed_data, full_data)
54078 CASE (30)
54079 CALL bits2ints_30(ndata, packed_data, full_data)
54080 CASE (31)
54081 CALL bits2ints_31(ndata, packed_data, full_data)
54082 CASE (32)
54083 CALL bits2ints_32(ndata, packed_data, full_data)
54084 CASE (33)
54085 CALL bits2ints_33(ndata, packed_data, full_data)
54086 CASE (34)
54087 CALL bits2ints_34(ndata, packed_data, full_data)
54088 CASE (35)
54089 CALL bits2ints_35(ndata, packed_data, full_data)
54090 CASE (36)
54091 CALL bits2ints_36(ndata, packed_data, full_data)
54092 CASE (37)
54093 CALL bits2ints_37(ndata, packed_data, full_data)
54094 CASE (38)
54095 CALL bits2ints_38(ndata, packed_data, full_data)
54096 CASE (39)
54097 CALL bits2ints_39(ndata, packed_data, full_data)
54098 CASE (40)
54099 CALL bits2ints_40(ndata, packed_data, full_data)
54100 CASE (41)
54101 CALL bits2ints_41(ndata, packed_data, full_data)
54102 CASE (42)
54103 CALL bits2ints_42(ndata, packed_data, full_data)
54104 CASE (43)
54105 CALL bits2ints_43(ndata, packed_data, full_data)
54106 CASE (44)
54107 CALL bits2ints_44(ndata, packed_data, full_data)
54108 CASE (45)
54109 CALL bits2ints_45(ndata, packed_data, full_data)
54110 CASE (46)
54111 CALL bits2ints_46(ndata, packed_data, full_data)
54112 CASE (47)
54113 CALL bits2ints_47(ndata, packed_data, full_data)
54114 CASE (48)
54115 CALL bits2ints_48(ndata, packed_data, full_data)
54116 CASE (49)
54117 CALL bits2ints_49(ndata, packed_data, full_data)
54118 CASE (50)
54119 CALL bits2ints_50(ndata, packed_data, full_data)
54120 CASE (51)
54121 CALL bits2ints_51(ndata, packed_data, full_data)
54122 CASE (52)
54123 CALL bits2ints_52(ndata, packed_data, full_data)
54124 CASE (53)
54125 CALL bits2ints_53(ndata, packed_data, full_data)
54126 CASE (54)
54127 CALL bits2ints_54(ndata, packed_data, full_data)
54128 CASE (55)
54129 CALL bits2ints_55(ndata, packed_data, full_data)
54130 CASE (56)
54131 CALL bits2ints_56(ndata, packed_data, full_data)
54132 CASE (57)
54133 CALL bits2ints_57(ndata, packed_data, full_data)
54134 CASE (58)
54135 CALL bits2ints_58(ndata, packed_data, full_data)
54136 CASE (59)
54137 CALL bits2ints_59(ndata, packed_data, full_data)
54138 CASE (60)
54139 CALL bits2ints_60(ndata, packed_data, full_data)
54140 CASE (61)
54141 CALL bits2ints_61(ndata, packed_data, full_data)
54142 CASE (62)
54143 CALL bits2ints_62(ndata, packed_data, full_data)
54144 CASE (63)
54145 CALL bits2ints_63(ndata, packed_data, full_data)
54146 END SELECT
54147 END SUBROUTINE bits2ints_specific
54148
Contains routines for data compression. PLEASE DO NOT MODIFY.
subroutine, public bits2ints_specific(nbits, ndata, packed_data, full_data)
...
subroutine, public ints2bits_specific(nbits, ndata, packed_data, full_data)
...
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public int_8
Definition kinds.F:54