(git:b195825)
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 
59 CONTAINS
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 ints2bits_specific(Nbits, Ndata, packed_data, full_data)
...
subroutine, public bits2ints_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