LCOV - code coverage report
Current view: top level - src/hfxbase - hfx_compression_core_methods.F (source / functions) Coverage Total Hit
Test: CP2K Regtests (git:ca6acae) Lines: 99.9 % 51404 51379
Test Date: 2026-01-02 06:29:53 Functions: 99.2 % 131 130

            Line data    Source code
       1              : !--------------------------------------------------------------------------------------------------!
       2              : !   CP2K: A general program to perform molecular dynamics simulations                              !
       3              : !   Copyright 2000-2026 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              : ! **************************************************************************************************
      14              : MODULE hfx_compression_core_methods
      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              : 
      57              :    PUBLIC :: bits2ints_specific, ints2bits_specific
      58              : 
      59              : CONTAINS
      60              : 
      61              : ! **************************************************************************************************
      62              : !> \brief ...
      63              : !> \param Ndata ...
      64              : !> \param packed_data ...
      65              : !> \param full_data ...
      66              : ! **************************************************************************************************
      67            0 :    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            0 :       full_data(1:Ndata) = packed_data(1:Ndata)
      73            0 :    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      1582856 :    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      1582856 :       idata = 0
      96              : 
      97              :       ! number of data bits in the pack_tmp that should still be read
      98      1582856 :       ibits_remaining = 64
      99      1582856 :       ipack = 1
     100      1582856 :       pack_tmp = packed_data(ipack)
     101              : 
     102              :       ! give the compiler a hint that Nbits is strictly positive
     103      1582856 :       IF (Nbits < 1) CPABORT("This is a bug")
     104              :       ! we also limit the making number of bits
     105      1582856 :       IF (Nbits >= 64) CPABORT("This is a bug")
     106              : 
     107              :       DO
     108              :          ! we've unpacked all data
     109     52234248 :          IF (idata == Ndata) EXIT
     110     50651392 :          idata = idata + 1
     111     52234248 :          IF (ibits_remaining >= Nbits) THEN
     112     26352645 :             data_tmp = IAND(pack_tmp, mask_right(Nbits)) ! get the last Nbits
     113     26352645 :             full_data(idata) = data_tmp
     114     26352645 :             pack_tmp = ISHFT(pack_tmp, -Nbits) ! and shift right to get the bits in place for the next
     115     26352645 :             ibits_remaining = ibits_remaining - Nbits
     116              :          ELSE
     117     24298747 :             i_odd_bits = Nbits - ibits_remaining
     118     24298747 :             data_tmp = ISHFT(pack_tmp, i_odd_bits) ! use all remaining bits, shifted left to make place for the missing bits
     119     24298747 :             ipack = ipack + 1
     120     24298747 :             pack_tmp = packed_data(ipack) ! get new storage
     121     24298747 :             ibits_remaining = 64
     122     24298747 :             full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(i_odd_bits))) ! and use the missing bits to assemble the data
     123     24298747 :             pack_tmp = ISHFT(pack_tmp, -i_odd_bits) ! shift right to get the bits in place for the next
     124     24298747 :             ibits_remaining = 64 - i_odd_bits
     125              :          END IF
     126              :       END DO
     127              : 
     128      1582856 :    END SUBROUTINE bits2ints_generic
     129              : 
     130              : ! **************************************************************************************************
     131              : !> \brief ...
     132              : !> \param Nbits ...
     133              : !> \param Ndata ...
     134              : !> \param packed_data ...
     135              : !> \param full_data ...
     136              : ! **************************************************************************************************
     137       271650 :    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       271650 :       idata = 0
     146       271650 :       ipack = 0
     147       271650 :       pack_tmp = 0
     148              : 
     149              :       ! number of data bits in the pack_tmp that should still be written
     150       271650 :       ibits_remaining = 64
     151              : 
     152              :       ! give the compiler a hint that Nbits is strictly positive
     153       271650 :       IF (Nbits < 1) CPABORT("This is a bug")
     154              :       ! we also limit the making number of bits
     155       271650 :       IF (Nbits >= 64) CPABORT("This is a bug")
     156              : 
     157              :       DO
     158              :          ! we've packed all data
     159      8964450 :          IF (idata == Ndata) EXIT
     160      8692800 :          idata = idata + 1
     161      8964450 :          IF (ibits_remaining >= Nbits) THEN
     162      4437136 :             data_tmp = full_data(idata)
     163      4437136 :             data_tmp = ISHFT(data_tmp, 64 - Nbits) ! put bits on the left
     164      4437136 :             pack_tmp = IOR(pack_tmp, data_tmp) ! add to the packed data
     165      4437136 :             ibits_remaining = ibits_remaining - Nbits
     166      4437136 :             pack_tmp = ISHFT(pack_tmp, -MIN(Nbits, ibits_remaining)) ! and shift to the right to make place for the next
     167              :          ELSE
     168      4255664 :             i_odd_bits = ibits_remaining
     169      4255664 :             data_tmp = full_data(idata)
     170      4255664 :             data_tmp = ISHFT(data_tmp, 64 - Nbits) ! put bits on the left
     171      4255664 :             data_tmp = IAND(data_tmp, mask_left(i_odd_bits)) ! restrict to those bits for which we still have space
     172      4255664 :             pack_tmp = IOR(pack_tmp, data_tmp) ! add them to the packed bits
     173      4255664 :             ipack = ipack + 1
     174      4255664 :             packed_data(ipack) = pack_tmp ! store the full packed data away and start with a new one
     175      4255664 :             data_tmp = full_data(idata)
     176      4255664 :             pack_tmp = ISHFT(data_tmp, 64 - Nbits + i_odd_bits) ! put the missing bits on the left if pack_tmp
     177      4255664 :             ibits_remaining = 64 - Nbits + i_odd_bits
     178      4255664 :             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       271650 :       pack_tmp = ISHFT(pack_tmp, -MAX(0, ibits_remaining - Nbits))
     184       271650 :       ipack = ipack + 1
     185       271650 :       packed_data(ipack) = pack_tmp
     186              : 
     187       271650 :    END SUBROUTINE ints2bits_generic
     188              : 
     189              : ! **************************************************************************************************
     190              : !> \brief ...
     191              : !> \param Ndata ...
     192              : !> \param packed_data ...
     193              : !> \param full_data ...
     194              : ! **************************************************************************************************
     195        24432 :    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        24432 :       idata = 0
     206        24432 :       ipack = 0
     207        24432 :       Ndata_rep = (Ndata/64)*64
     208        24432 :       DO kdata = 1, Ndata_rep, 64
     209       390912 :          pack_tmp = 0
     210       390912 :          idata = idata + 1
     211       390912 :          data_tmp = full_data(idata)
     212       390912 :          data_tmp = ISHFT(data_tmp, 63)
     213       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     214       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     215       390912 :          idata = idata + 1
     216       390912 :          data_tmp = full_data(idata)
     217       390912 :          data_tmp = ISHFT(data_tmp, 63)
     218       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     219       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     220       390912 :          idata = idata + 1
     221       390912 :          data_tmp = full_data(idata)
     222       390912 :          data_tmp = ISHFT(data_tmp, 63)
     223       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     224       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     225       390912 :          idata = idata + 1
     226       390912 :          data_tmp = full_data(idata)
     227       390912 :          data_tmp = ISHFT(data_tmp, 63)
     228       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     229       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     230       390912 :          idata = idata + 1
     231       390912 :          data_tmp = full_data(idata)
     232       390912 :          data_tmp = ISHFT(data_tmp, 63)
     233       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     234       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     235       390912 :          idata = idata + 1
     236       390912 :          data_tmp = full_data(idata)
     237       390912 :          data_tmp = ISHFT(data_tmp, 63)
     238       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     239       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     240       390912 :          idata = idata + 1
     241       390912 :          data_tmp = full_data(idata)
     242       390912 :          data_tmp = ISHFT(data_tmp, 63)
     243       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     244       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     245       390912 :          idata = idata + 1
     246       390912 :          data_tmp = full_data(idata)
     247       390912 :          data_tmp = ISHFT(data_tmp, 63)
     248       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     249       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     250       390912 :          idata = idata + 1
     251       390912 :          data_tmp = full_data(idata)
     252       390912 :          data_tmp = ISHFT(data_tmp, 63)
     253       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     254       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     255       390912 :          idata = idata + 1
     256       390912 :          data_tmp = full_data(idata)
     257       390912 :          data_tmp = ISHFT(data_tmp, 63)
     258       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     259       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     260       390912 :          idata = idata + 1
     261       390912 :          data_tmp = full_data(idata)
     262       390912 :          data_tmp = ISHFT(data_tmp, 63)
     263       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     264       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     265       390912 :          idata = idata + 1
     266       390912 :          data_tmp = full_data(idata)
     267       390912 :          data_tmp = ISHFT(data_tmp, 63)
     268       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     269       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     270       390912 :          idata = idata + 1
     271       390912 :          data_tmp = full_data(idata)
     272       390912 :          data_tmp = ISHFT(data_tmp, 63)
     273       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     274       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     275       390912 :          idata = idata + 1
     276       390912 :          data_tmp = full_data(idata)
     277       390912 :          data_tmp = ISHFT(data_tmp, 63)
     278       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     279       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     280       390912 :          idata = idata + 1
     281       390912 :          data_tmp = full_data(idata)
     282       390912 :          data_tmp = ISHFT(data_tmp, 63)
     283       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     284       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     285       390912 :          idata = idata + 1
     286       390912 :          data_tmp = full_data(idata)
     287       390912 :          data_tmp = ISHFT(data_tmp, 63)
     288       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     289       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     290       390912 :          idata = idata + 1
     291       390912 :          data_tmp = full_data(idata)
     292       390912 :          data_tmp = ISHFT(data_tmp, 63)
     293       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     294       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     295       390912 :          idata = idata + 1
     296       390912 :          data_tmp = full_data(idata)
     297       390912 :          data_tmp = ISHFT(data_tmp, 63)
     298       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     299       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     300       390912 :          idata = idata + 1
     301       390912 :          data_tmp = full_data(idata)
     302       390912 :          data_tmp = ISHFT(data_tmp, 63)
     303       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     304       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     305       390912 :          idata = idata + 1
     306       390912 :          data_tmp = full_data(idata)
     307       390912 :          data_tmp = ISHFT(data_tmp, 63)
     308       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     309       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     310       390912 :          idata = idata + 1
     311       390912 :          data_tmp = full_data(idata)
     312       390912 :          data_tmp = ISHFT(data_tmp, 63)
     313       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     314       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     315       390912 :          idata = idata + 1
     316       390912 :          data_tmp = full_data(idata)
     317       390912 :          data_tmp = ISHFT(data_tmp, 63)
     318       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     319       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     320       390912 :          idata = idata + 1
     321       390912 :          data_tmp = full_data(idata)
     322       390912 :          data_tmp = ISHFT(data_tmp, 63)
     323       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     324       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     325       390912 :          idata = idata + 1
     326       390912 :          data_tmp = full_data(idata)
     327       390912 :          data_tmp = ISHFT(data_tmp, 63)
     328       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     329       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     330       390912 :          idata = idata + 1
     331       390912 :          data_tmp = full_data(idata)
     332       390912 :          data_tmp = ISHFT(data_tmp, 63)
     333       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     334       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     335       390912 :          idata = idata + 1
     336       390912 :          data_tmp = full_data(idata)
     337       390912 :          data_tmp = ISHFT(data_tmp, 63)
     338       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     339       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     340       390912 :          idata = idata + 1
     341       390912 :          data_tmp = full_data(idata)
     342       390912 :          data_tmp = ISHFT(data_tmp, 63)
     343       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     344       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     345       390912 :          idata = idata + 1
     346       390912 :          data_tmp = full_data(idata)
     347       390912 :          data_tmp = ISHFT(data_tmp, 63)
     348       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     349       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     350       390912 :          idata = idata + 1
     351       390912 :          data_tmp = full_data(idata)
     352       390912 :          data_tmp = ISHFT(data_tmp, 63)
     353       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     354       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     355       390912 :          idata = idata + 1
     356       390912 :          data_tmp = full_data(idata)
     357       390912 :          data_tmp = ISHFT(data_tmp, 63)
     358       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     359       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     360       390912 :          idata = idata + 1
     361       390912 :          data_tmp = full_data(idata)
     362       390912 :          data_tmp = ISHFT(data_tmp, 63)
     363       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     364       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     365       390912 :          idata = idata + 1
     366       390912 :          data_tmp = full_data(idata)
     367       390912 :          data_tmp = ISHFT(data_tmp, 63)
     368       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     369       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     370       390912 :          idata = idata + 1
     371       390912 :          data_tmp = full_data(idata)
     372       390912 :          data_tmp = ISHFT(data_tmp, 63)
     373       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     374       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     375       390912 :          idata = idata + 1
     376       390912 :          data_tmp = full_data(idata)
     377       390912 :          data_tmp = ISHFT(data_tmp, 63)
     378       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     379       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     380       390912 :          idata = idata + 1
     381       390912 :          data_tmp = full_data(idata)
     382       390912 :          data_tmp = ISHFT(data_tmp, 63)
     383       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     384       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     385       390912 :          idata = idata + 1
     386       390912 :          data_tmp = full_data(idata)
     387       390912 :          data_tmp = ISHFT(data_tmp, 63)
     388       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     389       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     390       390912 :          idata = idata + 1
     391       390912 :          data_tmp = full_data(idata)
     392       390912 :          data_tmp = ISHFT(data_tmp, 63)
     393       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     394       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     395       390912 :          idata = idata + 1
     396       390912 :          data_tmp = full_data(idata)
     397       390912 :          data_tmp = ISHFT(data_tmp, 63)
     398       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     399       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     400       390912 :          idata = idata + 1
     401       390912 :          data_tmp = full_data(idata)
     402       390912 :          data_tmp = ISHFT(data_tmp, 63)
     403       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     404       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     405       390912 :          idata = idata + 1
     406       390912 :          data_tmp = full_data(idata)
     407       390912 :          data_tmp = ISHFT(data_tmp, 63)
     408       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     409       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     410       390912 :          idata = idata + 1
     411       390912 :          data_tmp = full_data(idata)
     412       390912 :          data_tmp = ISHFT(data_tmp, 63)
     413       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     414       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     415       390912 :          idata = idata + 1
     416       390912 :          data_tmp = full_data(idata)
     417       390912 :          data_tmp = ISHFT(data_tmp, 63)
     418       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     419       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     420       390912 :          idata = idata + 1
     421       390912 :          data_tmp = full_data(idata)
     422       390912 :          data_tmp = ISHFT(data_tmp, 63)
     423       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     424       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     425       390912 :          idata = idata + 1
     426       390912 :          data_tmp = full_data(idata)
     427       390912 :          data_tmp = ISHFT(data_tmp, 63)
     428       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     429       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     430       390912 :          idata = idata + 1
     431       390912 :          data_tmp = full_data(idata)
     432       390912 :          data_tmp = ISHFT(data_tmp, 63)
     433       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     434       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     435       390912 :          idata = idata + 1
     436       390912 :          data_tmp = full_data(idata)
     437       390912 :          data_tmp = ISHFT(data_tmp, 63)
     438       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     439       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     440       390912 :          idata = idata + 1
     441       390912 :          data_tmp = full_data(idata)
     442       390912 :          data_tmp = ISHFT(data_tmp, 63)
     443       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     444       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     445       390912 :          idata = idata + 1
     446       390912 :          data_tmp = full_data(idata)
     447       390912 :          data_tmp = ISHFT(data_tmp, 63)
     448       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     449       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     450       390912 :          idata = idata + 1
     451       390912 :          data_tmp = full_data(idata)
     452       390912 :          data_tmp = ISHFT(data_tmp, 63)
     453       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     454       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     455       390912 :          idata = idata + 1
     456       390912 :          data_tmp = full_data(idata)
     457       390912 :          data_tmp = ISHFT(data_tmp, 63)
     458       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     459       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     460       390912 :          idata = idata + 1
     461       390912 :          data_tmp = full_data(idata)
     462       390912 :          data_tmp = ISHFT(data_tmp, 63)
     463       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     464       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     465       390912 :          idata = idata + 1
     466       390912 :          data_tmp = full_data(idata)
     467       390912 :          data_tmp = ISHFT(data_tmp, 63)
     468       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     469       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     470       390912 :          idata = idata + 1
     471       390912 :          data_tmp = full_data(idata)
     472       390912 :          data_tmp = ISHFT(data_tmp, 63)
     473       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     474       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     475       390912 :          idata = idata + 1
     476       390912 :          data_tmp = full_data(idata)
     477       390912 :          data_tmp = ISHFT(data_tmp, 63)
     478       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     479       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     480       390912 :          idata = idata + 1
     481       390912 :          data_tmp = full_data(idata)
     482       390912 :          data_tmp = ISHFT(data_tmp, 63)
     483       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     484       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     485       390912 :          idata = idata + 1
     486       390912 :          data_tmp = full_data(idata)
     487       390912 :          data_tmp = ISHFT(data_tmp, 63)
     488       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     489       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     490       390912 :          idata = idata + 1
     491       390912 :          data_tmp = full_data(idata)
     492       390912 :          data_tmp = ISHFT(data_tmp, 63)
     493       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     494       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     495       390912 :          idata = idata + 1
     496       390912 :          data_tmp = full_data(idata)
     497       390912 :          data_tmp = ISHFT(data_tmp, 63)
     498       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     499       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     500       390912 :          idata = idata + 1
     501       390912 :          data_tmp = full_data(idata)
     502       390912 :          data_tmp = ISHFT(data_tmp, 63)
     503       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     504       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     505       390912 :          idata = idata + 1
     506       390912 :          data_tmp = full_data(idata)
     507       390912 :          data_tmp = ISHFT(data_tmp, 63)
     508       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     509       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     510       390912 :          idata = idata + 1
     511       390912 :          data_tmp = full_data(idata)
     512       390912 :          data_tmp = ISHFT(data_tmp, 63)
     513       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     514       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     515       390912 :          idata = idata + 1
     516       390912 :          data_tmp = full_data(idata)
     517       390912 :          data_tmp = ISHFT(data_tmp, 63)
     518       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     519       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     520       390912 :          idata = idata + 1
     521       390912 :          data_tmp = full_data(idata)
     522       390912 :          data_tmp = ISHFT(data_tmp, 63)
     523       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     524       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
     525       390912 :          idata = idata + 1
     526       390912 :          data_tmp = full_data(idata)
     527       390912 :          data_tmp = ISHFT(data_tmp, 63)
     528       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     529              :          pack_tmp = ISHFT(pack_tmp, 0)
     530       390912 :          pack_tmp = ISHFT(pack_tmp, 0)
     531       390912 :          ipack = ipack + 1
     532       390912 :          packed_data(ipack) = pack_tmp
     533              :       END DO
     534        24432 :       IF (Ndata_rep < Ndata) THEN
     535            0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
     536              :       END IF
     537        24432 :    END SUBROUTINE ints2bits_1
     538              : 
     539              : ! **************************************************************************************************
     540              : !> \brief ...
     541              : !> \param Ndata ...
     542              : !> \param packed_data ...
     543              : !> \param full_data ...
     544              : ! **************************************************************************************************
     545        98465 :    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        98465 :       ipack = 0
     556        98465 :       idata = 0
     557        98465 :       pack_tmp = 0
     558        98465 :       Ndata_rep = (Ndata/64)*64
     559        98465 :       DO kdata = 1, Ndata_rep, 64
     560      1575440 :          idata = idata + 1
     561      1575440 :          data_tmp = ISHFT(pack_tmp, 1)
     562      1575440 :          ipack = ipack + 1
     563      1575440 :          pack_tmp = packed_data(ipack)
     564      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
     565      1575440 :          pack_tmp = ISHFT(pack_tmp, -1)
     566      1575440 :          idata = idata + 1
     567      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     568      1575440 :          full_data(idata) = data_tmp
     569      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     570      1575440 :          idata = idata + 1
     571      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     572      1575440 :          full_data(idata) = data_tmp
     573      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     574      1575440 :          idata = idata + 1
     575      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     576      1575440 :          full_data(idata) = data_tmp
     577      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     578      1575440 :          idata = idata + 1
     579      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     580      1575440 :          full_data(idata) = data_tmp
     581      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     582      1575440 :          idata = idata + 1
     583      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     584      1575440 :          full_data(idata) = data_tmp
     585      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     586      1575440 :          idata = idata + 1
     587      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     588      1575440 :          full_data(idata) = data_tmp
     589      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     590      1575440 :          idata = idata + 1
     591      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     592      1575440 :          full_data(idata) = data_tmp
     593      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     594      1575440 :          idata = idata + 1
     595      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     596      1575440 :          full_data(idata) = data_tmp
     597      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     598      1575440 :          idata = idata + 1
     599      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     600      1575440 :          full_data(idata) = data_tmp
     601      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     602      1575440 :          idata = idata + 1
     603      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     604      1575440 :          full_data(idata) = data_tmp
     605      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     606      1575440 :          idata = idata + 1
     607      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     608      1575440 :          full_data(idata) = data_tmp
     609      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     610      1575440 :          idata = idata + 1
     611      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     612      1575440 :          full_data(idata) = data_tmp
     613      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     614      1575440 :          idata = idata + 1
     615      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     616      1575440 :          full_data(idata) = data_tmp
     617      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     618      1575440 :          idata = idata + 1
     619      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     620      1575440 :          full_data(idata) = data_tmp
     621      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     622      1575440 :          idata = idata + 1
     623      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     624      1575440 :          full_data(idata) = data_tmp
     625      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     626      1575440 :          idata = idata + 1
     627      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     628      1575440 :          full_data(idata) = data_tmp
     629      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     630      1575440 :          idata = idata + 1
     631      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     632      1575440 :          full_data(idata) = data_tmp
     633      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     634      1575440 :          idata = idata + 1
     635      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     636      1575440 :          full_data(idata) = data_tmp
     637      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     638      1575440 :          idata = idata + 1
     639      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     640      1575440 :          full_data(idata) = data_tmp
     641      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     642      1575440 :          idata = idata + 1
     643      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     644      1575440 :          full_data(idata) = data_tmp
     645      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     646      1575440 :          idata = idata + 1
     647      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     648      1575440 :          full_data(idata) = data_tmp
     649      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     650      1575440 :          idata = idata + 1
     651      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     652      1575440 :          full_data(idata) = data_tmp
     653      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     654      1575440 :          idata = idata + 1
     655      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     656      1575440 :          full_data(idata) = data_tmp
     657      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     658      1575440 :          idata = idata + 1
     659      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     660      1575440 :          full_data(idata) = data_tmp
     661      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     662      1575440 :          idata = idata + 1
     663      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     664      1575440 :          full_data(idata) = data_tmp
     665      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     666      1575440 :          idata = idata + 1
     667      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     668      1575440 :          full_data(idata) = data_tmp
     669      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     670      1575440 :          idata = idata + 1
     671      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     672      1575440 :          full_data(idata) = data_tmp
     673      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     674      1575440 :          idata = idata + 1
     675      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     676      1575440 :          full_data(idata) = data_tmp
     677      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     678      1575440 :          idata = idata + 1
     679      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     680      1575440 :          full_data(idata) = data_tmp
     681      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     682      1575440 :          idata = idata + 1
     683      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     684      1575440 :          full_data(idata) = data_tmp
     685      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     686      1575440 :          idata = idata + 1
     687      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     688      1575440 :          full_data(idata) = data_tmp
     689      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     690      1575440 :          idata = idata + 1
     691      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     692      1575440 :          full_data(idata) = data_tmp
     693      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     694      1575440 :          idata = idata + 1
     695      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     696      1575440 :          full_data(idata) = data_tmp
     697      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     698      1575440 :          idata = idata + 1
     699      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     700      1575440 :          full_data(idata) = data_tmp
     701      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     702      1575440 :          idata = idata + 1
     703      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     704      1575440 :          full_data(idata) = data_tmp
     705      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     706      1575440 :          idata = idata + 1
     707      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     708      1575440 :          full_data(idata) = data_tmp
     709      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     710      1575440 :          idata = idata + 1
     711      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     712      1575440 :          full_data(idata) = data_tmp
     713      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     714      1575440 :          idata = idata + 1
     715      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     716      1575440 :          full_data(idata) = data_tmp
     717      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     718      1575440 :          idata = idata + 1
     719      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     720      1575440 :          full_data(idata) = data_tmp
     721      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     722      1575440 :          idata = idata + 1
     723      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     724      1575440 :          full_data(idata) = data_tmp
     725      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     726      1575440 :          idata = idata + 1
     727      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     728      1575440 :          full_data(idata) = data_tmp
     729      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     730      1575440 :          idata = idata + 1
     731      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     732      1575440 :          full_data(idata) = data_tmp
     733      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     734      1575440 :          idata = idata + 1
     735      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     736      1575440 :          full_data(idata) = data_tmp
     737      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     738      1575440 :          idata = idata + 1
     739      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     740      1575440 :          full_data(idata) = data_tmp
     741      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     742      1575440 :          idata = idata + 1
     743      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     744      1575440 :          full_data(idata) = data_tmp
     745      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     746      1575440 :          idata = idata + 1
     747      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     748      1575440 :          full_data(idata) = data_tmp
     749      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     750      1575440 :          idata = idata + 1
     751      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     752      1575440 :          full_data(idata) = data_tmp
     753      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     754      1575440 :          idata = idata + 1
     755      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     756      1575440 :          full_data(idata) = data_tmp
     757      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     758      1575440 :          idata = idata + 1
     759      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     760      1575440 :          full_data(idata) = data_tmp
     761      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     762      1575440 :          idata = idata + 1
     763      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     764      1575440 :          full_data(idata) = data_tmp
     765      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     766      1575440 :          idata = idata + 1
     767      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     768      1575440 :          full_data(idata) = data_tmp
     769      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     770      1575440 :          idata = idata + 1
     771      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     772      1575440 :          full_data(idata) = data_tmp
     773      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     774      1575440 :          idata = idata + 1
     775      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     776      1575440 :          full_data(idata) = data_tmp
     777      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     778      1575440 :          idata = idata + 1
     779      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     780      1575440 :          full_data(idata) = data_tmp
     781      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     782      1575440 :          idata = idata + 1
     783      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     784      1575440 :          full_data(idata) = data_tmp
     785      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     786      1575440 :          idata = idata + 1
     787      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     788      1575440 :          full_data(idata) = data_tmp
     789      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     790      1575440 :          idata = idata + 1
     791      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     792      1575440 :          full_data(idata) = data_tmp
     793      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     794      1575440 :          idata = idata + 1
     795      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     796      1575440 :          full_data(idata) = data_tmp
     797      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     798      1575440 :          idata = idata + 1
     799      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     800      1575440 :          full_data(idata) = data_tmp
     801      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     802      1575440 :          idata = idata + 1
     803      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     804      1575440 :          full_data(idata) = data_tmp
     805      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     806      1575440 :          idata = idata + 1
     807      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     808      1575440 :          full_data(idata) = data_tmp
     809      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     810      1575440 :          idata = idata + 1
     811      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     812      1575440 :          full_data(idata) = data_tmp
     813      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     814      1575440 :          idata = idata + 1
     815      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
     816      1575440 :          full_data(idata) = data_tmp
     817      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
     818              :       END DO
     819        98465 :       IF (Ndata_rep < Ndata) THEN
     820            0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
     821              :       END IF
     822        98465 :    END SUBROUTINE bits2ints_1
     823              : 
     824              : ! **************************************************************************************************
     825              : !> \brief ...
     826              : !> \param Ndata ...
     827              : !> \param packed_data ...
     828              : !> \param full_data ...
     829              : ! **************************************************************************************************
     830        24432 :    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        24432 :       idata = 0
     841        24432 :       ipack = 0
     842        24432 :       Ndata_rep = (Ndata/64)*64
     843        24432 :       DO kdata = 1, Ndata_rep, 64
     844       390912 :          pack_tmp = 0
     845       390912 :          idata = idata + 1
     846       390912 :          data_tmp = full_data(idata)
     847       390912 :          data_tmp = ISHFT(data_tmp, 62)
     848       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     849       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     850       390912 :          idata = idata + 1
     851       390912 :          data_tmp = full_data(idata)
     852       390912 :          data_tmp = ISHFT(data_tmp, 62)
     853       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     854       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     855       390912 :          idata = idata + 1
     856       390912 :          data_tmp = full_data(idata)
     857       390912 :          data_tmp = ISHFT(data_tmp, 62)
     858       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     859       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     860       390912 :          idata = idata + 1
     861       390912 :          data_tmp = full_data(idata)
     862       390912 :          data_tmp = ISHFT(data_tmp, 62)
     863       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     864       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     865       390912 :          idata = idata + 1
     866       390912 :          data_tmp = full_data(idata)
     867       390912 :          data_tmp = ISHFT(data_tmp, 62)
     868       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     869       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     870       390912 :          idata = idata + 1
     871       390912 :          data_tmp = full_data(idata)
     872       390912 :          data_tmp = ISHFT(data_tmp, 62)
     873       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     874       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     875       390912 :          idata = idata + 1
     876       390912 :          data_tmp = full_data(idata)
     877       390912 :          data_tmp = ISHFT(data_tmp, 62)
     878       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     879       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     880       390912 :          idata = idata + 1
     881       390912 :          data_tmp = full_data(idata)
     882       390912 :          data_tmp = ISHFT(data_tmp, 62)
     883       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     884       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     885       390912 :          idata = idata + 1
     886       390912 :          data_tmp = full_data(idata)
     887       390912 :          data_tmp = ISHFT(data_tmp, 62)
     888       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     889       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     890       390912 :          idata = idata + 1
     891       390912 :          data_tmp = full_data(idata)
     892       390912 :          data_tmp = ISHFT(data_tmp, 62)
     893       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     894       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     895       390912 :          idata = idata + 1
     896       390912 :          data_tmp = full_data(idata)
     897       390912 :          data_tmp = ISHFT(data_tmp, 62)
     898       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     899       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     900       390912 :          idata = idata + 1
     901       390912 :          data_tmp = full_data(idata)
     902       390912 :          data_tmp = ISHFT(data_tmp, 62)
     903       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     904       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     905       390912 :          idata = idata + 1
     906       390912 :          data_tmp = full_data(idata)
     907       390912 :          data_tmp = ISHFT(data_tmp, 62)
     908       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     909       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     910       390912 :          idata = idata + 1
     911       390912 :          data_tmp = full_data(idata)
     912       390912 :          data_tmp = ISHFT(data_tmp, 62)
     913       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     914       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     915       390912 :          idata = idata + 1
     916       390912 :          data_tmp = full_data(idata)
     917       390912 :          data_tmp = ISHFT(data_tmp, 62)
     918       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     919       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     920       390912 :          idata = idata + 1
     921       390912 :          data_tmp = full_data(idata)
     922       390912 :          data_tmp = ISHFT(data_tmp, 62)
     923       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     924       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     925       390912 :          idata = idata + 1
     926       390912 :          data_tmp = full_data(idata)
     927       390912 :          data_tmp = ISHFT(data_tmp, 62)
     928       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     929       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     930       390912 :          idata = idata + 1
     931       390912 :          data_tmp = full_data(idata)
     932       390912 :          data_tmp = ISHFT(data_tmp, 62)
     933       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     934       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     935       390912 :          idata = idata + 1
     936       390912 :          data_tmp = full_data(idata)
     937       390912 :          data_tmp = ISHFT(data_tmp, 62)
     938       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     939       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     940       390912 :          idata = idata + 1
     941       390912 :          data_tmp = full_data(idata)
     942       390912 :          data_tmp = ISHFT(data_tmp, 62)
     943       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     944       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     945       390912 :          idata = idata + 1
     946       390912 :          data_tmp = full_data(idata)
     947       390912 :          data_tmp = ISHFT(data_tmp, 62)
     948       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     949       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     950       390912 :          idata = idata + 1
     951       390912 :          data_tmp = full_data(idata)
     952       390912 :          data_tmp = ISHFT(data_tmp, 62)
     953       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     954       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     955       390912 :          idata = idata + 1
     956       390912 :          data_tmp = full_data(idata)
     957       390912 :          data_tmp = ISHFT(data_tmp, 62)
     958       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     959       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     960       390912 :          idata = idata + 1
     961       390912 :          data_tmp = full_data(idata)
     962       390912 :          data_tmp = ISHFT(data_tmp, 62)
     963       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     964       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     965       390912 :          idata = idata + 1
     966       390912 :          data_tmp = full_data(idata)
     967       390912 :          data_tmp = ISHFT(data_tmp, 62)
     968       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     969       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     970       390912 :          idata = idata + 1
     971       390912 :          data_tmp = full_data(idata)
     972       390912 :          data_tmp = ISHFT(data_tmp, 62)
     973       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     974       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     975       390912 :          idata = idata + 1
     976       390912 :          data_tmp = full_data(idata)
     977       390912 :          data_tmp = ISHFT(data_tmp, 62)
     978       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     979       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     980       390912 :          idata = idata + 1
     981       390912 :          data_tmp = full_data(idata)
     982       390912 :          data_tmp = ISHFT(data_tmp, 62)
     983       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     984       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     985       390912 :          idata = idata + 1
     986       390912 :          data_tmp = full_data(idata)
     987       390912 :          data_tmp = ISHFT(data_tmp, 62)
     988       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     989       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     990       390912 :          idata = idata + 1
     991       390912 :          data_tmp = full_data(idata)
     992       390912 :          data_tmp = ISHFT(data_tmp, 62)
     993       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     994       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
     995       390912 :          idata = idata + 1
     996       390912 :          data_tmp = full_data(idata)
     997       390912 :          data_tmp = ISHFT(data_tmp, 62)
     998       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
     999       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1000       390912 :          idata = idata + 1
    1001       390912 :          data_tmp = full_data(idata)
    1002       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1003       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1004       390912 :          pack_tmp = ISHFT(pack_tmp, 0)
    1005       390912 :          idata = idata + 1
    1006       390912 :          data_tmp = full_data(idata)
    1007              :          data_tmp = ISHFT(data_tmp, 62)
    1008       390912 :          data_tmp = IAND(data_tmp, mask_left(0))
    1009       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1010       390912 :          ipack = ipack + 1
    1011       390912 :          packed_data(ipack) = pack_tmp
    1012       390912 :          data_tmp = full_data(idata)
    1013       390912 :          pack_tmp = ISHFT(data_tmp, 62)
    1014       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1015       390912 :          idata = idata + 1
    1016       390912 :          data_tmp = full_data(idata)
    1017       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1018       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1019       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1020       390912 :          idata = idata + 1
    1021       390912 :          data_tmp = full_data(idata)
    1022       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1023       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1024       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1025       390912 :          idata = idata + 1
    1026       390912 :          data_tmp = full_data(idata)
    1027       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1028       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1029       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1030       390912 :          idata = idata + 1
    1031       390912 :          data_tmp = full_data(idata)
    1032       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1033       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1034       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1035       390912 :          idata = idata + 1
    1036       390912 :          data_tmp = full_data(idata)
    1037       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1038       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1039       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1040       390912 :          idata = idata + 1
    1041       390912 :          data_tmp = full_data(idata)
    1042       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1043       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1044       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1045       390912 :          idata = idata + 1
    1046       390912 :          data_tmp = full_data(idata)
    1047       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1048       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1049       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1050       390912 :          idata = idata + 1
    1051       390912 :          data_tmp = full_data(idata)
    1052       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1053       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1054       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1055       390912 :          idata = idata + 1
    1056       390912 :          data_tmp = full_data(idata)
    1057       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1058       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1059       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1060       390912 :          idata = idata + 1
    1061       390912 :          data_tmp = full_data(idata)
    1062       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1063       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1064       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1065       390912 :          idata = idata + 1
    1066       390912 :          data_tmp = full_data(idata)
    1067       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1068       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1069       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1070       390912 :          idata = idata + 1
    1071       390912 :          data_tmp = full_data(idata)
    1072       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1073       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1074       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1075       390912 :          idata = idata + 1
    1076       390912 :          data_tmp = full_data(idata)
    1077       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1078       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1079       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1080       390912 :          idata = idata + 1
    1081       390912 :          data_tmp = full_data(idata)
    1082       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1083       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1084       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1085       390912 :          idata = idata + 1
    1086       390912 :          data_tmp = full_data(idata)
    1087       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1088       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1089       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1090       390912 :          idata = idata + 1
    1091       390912 :          data_tmp = full_data(idata)
    1092       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1093       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1094       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1095       390912 :          idata = idata + 1
    1096       390912 :          data_tmp = full_data(idata)
    1097       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1098       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1099       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1100       390912 :          idata = idata + 1
    1101       390912 :          data_tmp = full_data(idata)
    1102       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1103       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1104       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1105       390912 :          idata = idata + 1
    1106       390912 :          data_tmp = full_data(idata)
    1107       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1108       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1109       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1110       390912 :          idata = idata + 1
    1111       390912 :          data_tmp = full_data(idata)
    1112       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1113       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1114       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1115       390912 :          idata = idata + 1
    1116       390912 :          data_tmp = full_data(idata)
    1117       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1118       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1119       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1120       390912 :          idata = idata + 1
    1121       390912 :          data_tmp = full_data(idata)
    1122       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1123       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1124       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1125       390912 :          idata = idata + 1
    1126       390912 :          data_tmp = full_data(idata)
    1127       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1128       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1129       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1130       390912 :          idata = idata + 1
    1131       390912 :          data_tmp = full_data(idata)
    1132       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1133       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1134       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1135       390912 :          idata = idata + 1
    1136       390912 :          data_tmp = full_data(idata)
    1137       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1138       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1139       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1140       390912 :          idata = idata + 1
    1141       390912 :          data_tmp = full_data(idata)
    1142       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1143       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1144       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1145       390912 :          idata = idata + 1
    1146       390912 :          data_tmp = full_data(idata)
    1147       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1148       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1149       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1150       390912 :          idata = idata + 1
    1151       390912 :          data_tmp = full_data(idata)
    1152       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1153       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1154       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1155       390912 :          idata = idata + 1
    1156       390912 :          data_tmp = full_data(idata)
    1157       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1158       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1159       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1160       390912 :          idata = idata + 1
    1161       390912 :          data_tmp = full_data(idata)
    1162       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1163       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1164       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
    1165       390912 :          idata = idata + 1
    1166       390912 :          data_tmp = full_data(idata)
    1167       390912 :          data_tmp = ISHFT(data_tmp, 62)
    1168       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1169              :          pack_tmp = ISHFT(pack_tmp, 0)
    1170       390912 :          pack_tmp = ISHFT(pack_tmp, 0)
    1171       390912 :          ipack = ipack + 1
    1172       390912 :          packed_data(ipack) = pack_tmp
    1173              :       END DO
    1174        24432 :       IF (Ndata_rep < Ndata) THEN
    1175            0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    1176              :       END IF
    1177        24432 :    END SUBROUTINE ints2bits_2
    1178              : 
    1179              : ! **************************************************************************************************
    1180              : !> \brief ...
    1181              : !> \param Ndata ...
    1182              : !> \param packed_data ...
    1183              : !> \param full_data ...
    1184              : ! **************************************************************************************************
    1185        98465 :    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        98465 :       ipack = 0
    1196        98465 :       idata = 0
    1197        98465 :       pack_tmp = 0
    1198        98465 :       Ndata_rep = (Ndata/64)*64
    1199        98465 :       DO kdata = 1, Ndata_rep, 64
    1200      1575440 :          idata = idata + 1
    1201      1575440 :          data_tmp = ISHFT(pack_tmp, 2)
    1202      1575440 :          ipack = ipack + 1
    1203      1575440 :          pack_tmp = packed_data(ipack)
    1204      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1205      1575440 :          pack_tmp = ISHFT(pack_tmp, -2)
    1206      1575440 :          idata = idata + 1
    1207      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1208      1575440 :          full_data(idata) = data_tmp
    1209      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1210      1575440 :          idata = idata + 1
    1211      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1212      1575440 :          full_data(idata) = data_tmp
    1213      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1214      1575440 :          idata = idata + 1
    1215      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1216      1575440 :          full_data(idata) = data_tmp
    1217      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1218      1575440 :          idata = idata + 1
    1219      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1220      1575440 :          full_data(idata) = data_tmp
    1221      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1222      1575440 :          idata = idata + 1
    1223      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1224      1575440 :          full_data(idata) = data_tmp
    1225      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1226      1575440 :          idata = idata + 1
    1227      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1228      1575440 :          full_data(idata) = data_tmp
    1229      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1230      1575440 :          idata = idata + 1
    1231      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1232      1575440 :          full_data(idata) = data_tmp
    1233      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1234      1575440 :          idata = idata + 1
    1235      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1236      1575440 :          full_data(idata) = data_tmp
    1237      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1238      1575440 :          idata = idata + 1
    1239      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1240      1575440 :          full_data(idata) = data_tmp
    1241      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1242      1575440 :          idata = idata + 1
    1243      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1244      1575440 :          full_data(idata) = data_tmp
    1245      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1246      1575440 :          idata = idata + 1
    1247      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1248      1575440 :          full_data(idata) = data_tmp
    1249      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1250      1575440 :          idata = idata + 1
    1251      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1252      1575440 :          full_data(idata) = data_tmp
    1253      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1254      1575440 :          idata = idata + 1
    1255      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1256      1575440 :          full_data(idata) = data_tmp
    1257      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1258      1575440 :          idata = idata + 1
    1259      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1260      1575440 :          full_data(idata) = data_tmp
    1261      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1262      1575440 :          idata = idata + 1
    1263      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1264      1575440 :          full_data(idata) = data_tmp
    1265      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1266      1575440 :          idata = idata + 1
    1267      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1268      1575440 :          full_data(idata) = data_tmp
    1269      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1270      1575440 :          idata = idata + 1
    1271      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1272      1575440 :          full_data(idata) = data_tmp
    1273      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1274      1575440 :          idata = idata + 1
    1275      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1276      1575440 :          full_data(idata) = data_tmp
    1277      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1278      1575440 :          idata = idata + 1
    1279      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1280      1575440 :          full_data(idata) = data_tmp
    1281      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1282      1575440 :          idata = idata + 1
    1283      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1284      1575440 :          full_data(idata) = data_tmp
    1285      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1286      1575440 :          idata = idata + 1
    1287      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1288      1575440 :          full_data(idata) = data_tmp
    1289      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1290      1575440 :          idata = idata + 1
    1291      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1292      1575440 :          full_data(idata) = data_tmp
    1293      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1294      1575440 :          idata = idata + 1
    1295      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1296      1575440 :          full_data(idata) = data_tmp
    1297      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1298      1575440 :          idata = idata + 1
    1299      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1300      1575440 :          full_data(idata) = data_tmp
    1301      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1302      1575440 :          idata = idata + 1
    1303      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1304      1575440 :          full_data(idata) = data_tmp
    1305      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1306      1575440 :          idata = idata + 1
    1307      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1308      1575440 :          full_data(idata) = data_tmp
    1309      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1310      1575440 :          idata = idata + 1
    1311      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1312      1575440 :          full_data(idata) = data_tmp
    1313      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1314      1575440 :          idata = idata + 1
    1315      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1316      1575440 :          full_data(idata) = data_tmp
    1317      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1318      1575440 :          idata = idata + 1
    1319      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1320      1575440 :          full_data(idata) = data_tmp
    1321      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1322      1575440 :          idata = idata + 1
    1323      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1324      1575440 :          full_data(idata) = data_tmp
    1325      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1326      1575440 :          idata = idata + 1
    1327      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1328      1575440 :          full_data(idata) = data_tmp
    1329      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1330      1575440 :          idata = idata + 1
    1331      1575440 :          data_tmp = ISHFT(pack_tmp, 2)
    1332      1575440 :          ipack = ipack + 1
    1333      1575440 :          pack_tmp = packed_data(ipack)
    1334      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1335      1575440 :          pack_tmp = ISHFT(pack_tmp, -2)
    1336      1575440 :          idata = idata + 1
    1337      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1338      1575440 :          full_data(idata) = data_tmp
    1339      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1340      1575440 :          idata = idata + 1
    1341      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1342      1575440 :          full_data(idata) = data_tmp
    1343      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1344      1575440 :          idata = idata + 1
    1345      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1346      1575440 :          full_data(idata) = data_tmp
    1347      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1348      1575440 :          idata = idata + 1
    1349      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1350      1575440 :          full_data(idata) = data_tmp
    1351      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1352      1575440 :          idata = idata + 1
    1353      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1354      1575440 :          full_data(idata) = data_tmp
    1355      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1356      1575440 :          idata = idata + 1
    1357      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1358      1575440 :          full_data(idata) = data_tmp
    1359      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1360      1575440 :          idata = idata + 1
    1361      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1362      1575440 :          full_data(idata) = data_tmp
    1363      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1364      1575440 :          idata = idata + 1
    1365      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1366      1575440 :          full_data(idata) = data_tmp
    1367      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1368      1575440 :          idata = idata + 1
    1369      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1370      1575440 :          full_data(idata) = data_tmp
    1371      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1372      1575440 :          idata = idata + 1
    1373      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1374      1575440 :          full_data(idata) = data_tmp
    1375      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1376      1575440 :          idata = idata + 1
    1377      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1378      1575440 :          full_data(idata) = data_tmp
    1379      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1380      1575440 :          idata = idata + 1
    1381      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1382      1575440 :          full_data(idata) = data_tmp
    1383      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1384      1575440 :          idata = idata + 1
    1385      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1386      1575440 :          full_data(idata) = data_tmp
    1387      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1388      1575440 :          idata = idata + 1
    1389      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1390      1575440 :          full_data(idata) = data_tmp
    1391      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1392      1575440 :          idata = idata + 1
    1393      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1394      1575440 :          full_data(idata) = data_tmp
    1395      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1396      1575440 :          idata = idata + 1
    1397      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1398      1575440 :          full_data(idata) = data_tmp
    1399      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1400      1575440 :          idata = idata + 1
    1401      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1402      1575440 :          full_data(idata) = data_tmp
    1403      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1404      1575440 :          idata = idata + 1
    1405      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1406      1575440 :          full_data(idata) = data_tmp
    1407      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1408      1575440 :          idata = idata + 1
    1409      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1410      1575440 :          full_data(idata) = data_tmp
    1411      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1412      1575440 :          idata = idata + 1
    1413      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1414      1575440 :          full_data(idata) = data_tmp
    1415      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1416      1575440 :          idata = idata + 1
    1417      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1418      1575440 :          full_data(idata) = data_tmp
    1419      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1420      1575440 :          idata = idata + 1
    1421      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1422      1575440 :          full_data(idata) = data_tmp
    1423      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1424      1575440 :          idata = idata + 1
    1425      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1426      1575440 :          full_data(idata) = data_tmp
    1427      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1428      1575440 :          idata = idata + 1
    1429      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1430      1575440 :          full_data(idata) = data_tmp
    1431      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1432      1575440 :          idata = idata + 1
    1433      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1434      1575440 :          full_data(idata) = data_tmp
    1435      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1436      1575440 :          idata = idata + 1
    1437      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1438      1575440 :          full_data(idata) = data_tmp
    1439      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1440      1575440 :          idata = idata + 1
    1441      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1442      1575440 :          full_data(idata) = data_tmp
    1443      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1444      1575440 :          idata = idata + 1
    1445      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1446      1575440 :          full_data(idata) = data_tmp
    1447      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1448      1575440 :          idata = idata + 1
    1449      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1450      1575440 :          full_data(idata) = data_tmp
    1451      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1452      1575440 :          idata = idata + 1
    1453      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1454      1575440 :          full_data(idata) = data_tmp
    1455      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1456      1575440 :          idata = idata + 1
    1457      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1458      1575440 :          full_data(idata) = data_tmp
    1459      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1460              :       END DO
    1461        98465 :       IF (Ndata_rep < Ndata) THEN
    1462            0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    1463              :       END IF
    1464        98465 :    END SUBROUTINE bits2ints_2
    1465              : 
    1466              : ! **************************************************************************************************
    1467              : !> \brief ...
    1468              : !> \param Ndata ...
    1469              : !> \param packed_data ...
    1470              : !> \param full_data ...
    1471              : ! **************************************************************************************************
    1472        24678 :    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        24678 :       idata = 0
    1483        24678 :       ipack = 0
    1484        24678 :       Ndata_rep = (Ndata/64)*64
    1485        24678 :       DO kdata = 1, Ndata_rep, 64
    1486       394712 :          pack_tmp = 0
    1487       394712 :          idata = idata + 1
    1488       394712 :          data_tmp = full_data(idata)
    1489       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1490       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1491       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1492       394712 :          idata = idata + 1
    1493       394712 :          data_tmp = full_data(idata)
    1494       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1495       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1496       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1497       394712 :          idata = idata + 1
    1498       394712 :          data_tmp = full_data(idata)
    1499       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1500       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1501       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1502       394712 :          idata = idata + 1
    1503       394712 :          data_tmp = full_data(idata)
    1504       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1505       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1506       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1507       394712 :          idata = idata + 1
    1508       394712 :          data_tmp = full_data(idata)
    1509       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1510       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1511       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1512       394712 :          idata = idata + 1
    1513       394712 :          data_tmp = full_data(idata)
    1514       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1515       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1516       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1517       394712 :          idata = idata + 1
    1518       394712 :          data_tmp = full_data(idata)
    1519       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1520       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1521       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1522       394712 :          idata = idata + 1
    1523       394712 :          data_tmp = full_data(idata)
    1524       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1525       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1526       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1527       394712 :          idata = idata + 1
    1528       394712 :          data_tmp = full_data(idata)
    1529       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1530       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1531       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1532       394712 :          idata = idata + 1
    1533       394712 :          data_tmp = full_data(idata)
    1534       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1535       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1536       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1537       394712 :          idata = idata + 1
    1538       394712 :          data_tmp = full_data(idata)
    1539       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1540       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1541       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1542       394712 :          idata = idata + 1
    1543       394712 :          data_tmp = full_data(idata)
    1544       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1545       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1546       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1547       394712 :          idata = idata + 1
    1548       394712 :          data_tmp = full_data(idata)
    1549       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1550       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1551       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1552       394712 :          idata = idata + 1
    1553       394712 :          data_tmp = full_data(idata)
    1554       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1555       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1556       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1557       394712 :          idata = idata + 1
    1558       394712 :          data_tmp = full_data(idata)
    1559       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1560       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1561       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1562       394712 :          idata = idata + 1
    1563       394712 :          data_tmp = full_data(idata)
    1564       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1565       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1566       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1567       394712 :          idata = idata + 1
    1568       394712 :          data_tmp = full_data(idata)
    1569       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1570       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1571       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1572       394712 :          idata = idata + 1
    1573       394712 :          data_tmp = full_data(idata)
    1574       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1575       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1576       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1577       394712 :          idata = idata + 1
    1578       394712 :          data_tmp = full_data(idata)
    1579       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1580       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1581       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1582       394712 :          idata = idata + 1
    1583       394712 :          data_tmp = full_data(idata)
    1584       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1585       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1586       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1587       394712 :          idata = idata + 1
    1588       394712 :          data_tmp = full_data(idata)
    1589       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1590       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1591       394712 :          pack_tmp = ISHFT(pack_tmp, -1)
    1592       394712 :          idata = idata + 1
    1593       394712 :          data_tmp = full_data(idata)
    1594       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1595       394712 :          data_tmp = IAND(data_tmp, mask_left(1))
    1596       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1597       394712 :          ipack = ipack + 1
    1598       394712 :          packed_data(ipack) = pack_tmp
    1599       394712 :          data_tmp = full_data(idata)
    1600       394712 :          pack_tmp = ISHFT(data_tmp, 62)
    1601       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1602       394712 :          idata = idata + 1
    1603       394712 :          data_tmp = full_data(idata)
    1604       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1605       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1606       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1607       394712 :          idata = idata + 1
    1608       394712 :          data_tmp = full_data(idata)
    1609       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1610       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1611       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1612       394712 :          idata = idata + 1
    1613       394712 :          data_tmp = full_data(idata)
    1614       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1615       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1616       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1617       394712 :          idata = idata + 1
    1618       394712 :          data_tmp = full_data(idata)
    1619       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1620       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1621       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1622       394712 :          idata = idata + 1
    1623       394712 :          data_tmp = full_data(idata)
    1624       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1625       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1626       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1627       394712 :          idata = idata + 1
    1628       394712 :          data_tmp = full_data(idata)
    1629       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1630       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1631       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1632       394712 :          idata = idata + 1
    1633       394712 :          data_tmp = full_data(idata)
    1634       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1635       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1636       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1637       394712 :          idata = idata + 1
    1638       394712 :          data_tmp = full_data(idata)
    1639       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1640       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1641       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1642       394712 :          idata = idata + 1
    1643       394712 :          data_tmp = full_data(idata)
    1644       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1645       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1646       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1647       394712 :          idata = idata + 1
    1648       394712 :          data_tmp = full_data(idata)
    1649       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1650       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1651       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1652       394712 :          idata = idata + 1
    1653       394712 :          data_tmp = full_data(idata)
    1654       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1655       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1656       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1657       394712 :          idata = idata + 1
    1658       394712 :          data_tmp = full_data(idata)
    1659       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1660       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1661       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1662       394712 :          idata = idata + 1
    1663       394712 :          data_tmp = full_data(idata)
    1664       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1665       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1666       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1667       394712 :          idata = idata + 1
    1668       394712 :          data_tmp = full_data(idata)
    1669       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1670       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1671       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1672       394712 :          idata = idata + 1
    1673       394712 :          data_tmp = full_data(idata)
    1674       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1675       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1676       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1677       394712 :          idata = idata + 1
    1678       394712 :          data_tmp = full_data(idata)
    1679       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1680       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1681       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1682       394712 :          idata = idata + 1
    1683       394712 :          data_tmp = full_data(idata)
    1684       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1685       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1686       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1687       394712 :          idata = idata + 1
    1688       394712 :          data_tmp = full_data(idata)
    1689       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1690       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1691       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1692       394712 :          idata = idata + 1
    1693       394712 :          data_tmp = full_data(idata)
    1694       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1695       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1696       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1697       394712 :          idata = idata + 1
    1698       394712 :          data_tmp = full_data(idata)
    1699       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1700       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1701       394712 :          pack_tmp = ISHFT(pack_tmp, -2)
    1702       394712 :          idata = idata + 1
    1703       394712 :          data_tmp = full_data(idata)
    1704       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1705       394712 :          data_tmp = IAND(data_tmp, mask_left(2))
    1706       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1707       394712 :          ipack = ipack + 1
    1708       394712 :          packed_data(ipack) = pack_tmp
    1709       394712 :          data_tmp = full_data(idata)
    1710       394712 :          pack_tmp = ISHFT(data_tmp, 63)
    1711       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1712       394712 :          idata = idata + 1
    1713       394712 :          data_tmp = full_data(idata)
    1714       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1715       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1716       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1717       394712 :          idata = idata + 1
    1718       394712 :          data_tmp = full_data(idata)
    1719       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1720       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1721       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1722       394712 :          idata = idata + 1
    1723       394712 :          data_tmp = full_data(idata)
    1724       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1725       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1726       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1727       394712 :          idata = idata + 1
    1728       394712 :          data_tmp = full_data(idata)
    1729       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1730       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1731       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1732       394712 :          idata = idata + 1
    1733       394712 :          data_tmp = full_data(idata)
    1734       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1735       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1736       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1737       394712 :          idata = idata + 1
    1738       394712 :          data_tmp = full_data(idata)
    1739       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1740       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1741       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1742       394712 :          idata = idata + 1
    1743       394712 :          data_tmp = full_data(idata)
    1744       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1745       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1746       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1747       394712 :          idata = idata + 1
    1748       394712 :          data_tmp = full_data(idata)
    1749       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1750       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1751       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1752       394712 :          idata = idata + 1
    1753       394712 :          data_tmp = full_data(idata)
    1754       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1755       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1756       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1757       394712 :          idata = idata + 1
    1758       394712 :          data_tmp = full_data(idata)
    1759       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1760       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1761       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1762       394712 :          idata = idata + 1
    1763       394712 :          data_tmp = full_data(idata)
    1764       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1765       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1766       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1767       394712 :          idata = idata + 1
    1768       394712 :          data_tmp = full_data(idata)
    1769       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1770       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1771       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1772       394712 :          idata = idata + 1
    1773       394712 :          data_tmp = full_data(idata)
    1774       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1775       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1776       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1777       394712 :          idata = idata + 1
    1778       394712 :          data_tmp = full_data(idata)
    1779       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1780       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1781       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1782       394712 :          idata = idata + 1
    1783       394712 :          data_tmp = full_data(idata)
    1784       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1785       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1786       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1787       394712 :          idata = idata + 1
    1788       394712 :          data_tmp = full_data(idata)
    1789       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1790       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1791       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1792       394712 :          idata = idata + 1
    1793       394712 :          data_tmp = full_data(idata)
    1794       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1795       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1796       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1797       394712 :          idata = idata + 1
    1798       394712 :          data_tmp = full_data(idata)
    1799       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1800       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1801       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1802       394712 :          idata = idata + 1
    1803       394712 :          data_tmp = full_data(idata)
    1804       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1805       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1806       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1807       394712 :          idata = idata + 1
    1808       394712 :          data_tmp = full_data(idata)
    1809       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1810       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1811       394712 :          pack_tmp = ISHFT(pack_tmp, -3)
    1812       394712 :          idata = idata + 1
    1813       394712 :          data_tmp = full_data(idata)
    1814       394712 :          data_tmp = ISHFT(data_tmp, 61)
    1815       394712 :          pack_tmp = IOR(pack_tmp, data_tmp)
    1816              :          pack_tmp = ISHFT(pack_tmp, 0)
    1817       394712 :          pack_tmp = ISHFT(pack_tmp, 0)
    1818       394712 :          ipack = ipack + 1
    1819       394714 :          packed_data(ipack) = pack_tmp
    1820              :       END DO
    1821        24678 :       IF (Ndata_rep < Ndata) THEN
    1822           16 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    1823              :       END IF
    1824        24678 :    END SUBROUTINE ints2bits_3
    1825              : 
    1826              : ! **************************************************************************************************
    1827              : !> \brief ...
    1828              : !> \param Ndata ...
    1829              : !> \param packed_data ...
    1830              : !> \param full_data ...
    1831              : ! **************************************************************************************************
    1832        99851 :    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        99851 :       ipack = 0
    1843        99851 :       idata = 0
    1844        99851 :       pack_tmp = 0
    1845        99851 :       Ndata_rep = (Ndata/64)*64
    1846        99851 :       DO kdata = 1, Ndata_rep, 64
    1847      1596664 :          idata = idata + 1
    1848      1596664 :          data_tmp = ISHFT(pack_tmp, 3)
    1849      1596664 :          ipack = ipack + 1
    1850      1596664 :          pack_tmp = packed_data(ipack)
    1851      1596664 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    1852      1596664 :          pack_tmp = ISHFT(pack_tmp, -3)
    1853      1596664 :          idata = idata + 1
    1854      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1855      1596664 :          full_data(idata) = data_tmp
    1856      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1857      1596664 :          idata = idata + 1
    1858      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1859      1596664 :          full_data(idata) = data_tmp
    1860      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1861      1596664 :          idata = idata + 1
    1862      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1863      1596664 :          full_data(idata) = data_tmp
    1864      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1865      1596664 :          idata = idata + 1
    1866      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1867      1596664 :          full_data(idata) = data_tmp
    1868      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1869      1596664 :          idata = idata + 1
    1870      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1871      1596664 :          full_data(idata) = data_tmp
    1872      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1873      1596664 :          idata = idata + 1
    1874      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1875      1596664 :          full_data(idata) = data_tmp
    1876      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1877      1596664 :          idata = idata + 1
    1878      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1879      1596664 :          full_data(idata) = data_tmp
    1880      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1881      1596664 :          idata = idata + 1
    1882      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1883      1596664 :          full_data(idata) = data_tmp
    1884      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1885      1596664 :          idata = idata + 1
    1886      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1887      1596664 :          full_data(idata) = data_tmp
    1888      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1889      1596664 :          idata = idata + 1
    1890      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1891      1596664 :          full_data(idata) = data_tmp
    1892      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1893      1596664 :          idata = idata + 1
    1894      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1895      1596664 :          full_data(idata) = data_tmp
    1896      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1897      1596664 :          idata = idata + 1
    1898      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1899      1596664 :          full_data(idata) = data_tmp
    1900      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1901      1596664 :          idata = idata + 1
    1902      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1903      1596664 :          full_data(idata) = data_tmp
    1904      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1905      1596664 :          idata = idata + 1
    1906      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1907      1596664 :          full_data(idata) = data_tmp
    1908      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1909      1596664 :          idata = idata + 1
    1910      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1911      1596664 :          full_data(idata) = data_tmp
    1912      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1913      1596664 :          idata = idata + 1
    1914      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1915      1596664 :          full_data(idata) = data_tmp
    1916      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1917      1596664 :          idata = idata + 1
    1918      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1919      1596664 :          full_data(idata) = data_tmp
    1920      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1921      1596664 :          idata = idata + 1
    1922      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1923      1596664 :          full_data(idata) = data_tmp
    1924      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1925      1596664 :          idata = idata + 1
    1926      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1927      1596664 :          full_data(idata) = data_tmp
    1928      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1929      1596664 :          idata = idata + 1
    1930      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1931      1596664 :          full_data(idata) = data_tmp
    1932      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1933      1596664 :          idata = idata + 1
    1934      1596664 :          data_tmp = ISHFT(pack_tmp, 2)
    1935      1596664 :          ipack = ipack + 1
    1936      1596664 :          pack_tmp = packed_data(ipack)
    1937      1596664 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    1938      1596664 :          pack_tmp = ISHFT(pack_tmp, -2)
    1939      1596664 :          idata = idata + 1
    1940      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1941      1596664 :          full_data(idata) = data_tmp
    1942      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1943      1596664 :          idata = idata + 1
    1944      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1945      1596664 :          full_data(idata) = data_tmp
    1946      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1947      1596664 :          idata = idata + 1
    1948      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1949      1596664 :          full_data(idata) = data_tmp
    1950      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1951      1596664 :          idata = idata + 1
    1952      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1953      1596664 :          full_data(idata) = data_tmp
    1954      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1955      1596664 :          idata = idata + 1
    1956      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1957      1596664 :          full_data(idata) = data_tmp
    1958      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1959      1596664 :          idata = idata + 1
    1960      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1961      1596664 :          full_data(idata) = data_tmp
    1962      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1963      1596664 :          idata = idata + 1
    1964      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1965      1596664 :          full_data(idata) = data_tmp
    1966      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1967      1596664 :          idata = idata + 1
    1968      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1969      1596664 :          full_data(idata) = data_tmp
    1970      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1971      1596664 :          idata = idata + 1
    1972      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1973      1596664 :          full_data(idata) = data_tmp
    1974      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1975      1596664 :          idata = idata + 1
    1976      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1977      1596664 :          full_data(idata) = data_tmp
    1978      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1979      1596664 :          idata = idata + 1
    1980      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1981      1596664 :          full_data(idata) = data_tmp
    1982      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1983      1596664 :          idata = idata + 1
    1984      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1985      1596664 :          full_data(idata) = data_tmp
    1986      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1987      1596664 :          idata = idata + 1
    1988      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1989      1596664 :          full_data(idata) = data_tmp
    1990      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1991      1596664 :          idata = idata + 1
    1992      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1993      1596664 :          full_data(idata) = data_tmp
    1994      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1995      1596664 :          idata = idata + 1
    1996      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    1997      1596664 :          full_data(idata) = data_tmp
    1998      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    1999      1596664 :          idata = idata + 1
    2000      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2001      1596664 :          full_data(idata) = data_tmp
    2002      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2003      1596664 :          idata = idata + 1
    2004      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2005      1596664 :          full_data(idata) = data_tmp
    2006      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2007      1596664 :          idata = idata + 1
    2008      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2009      1596664 :          full_data(idata) = data_tmp
    2010      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2011      1596664 :          idata = idata + 1
    2012      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2013      1596664 :          full_data(idata) = data_tmp
    2014      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2015      1596664 :          idata = idata + 1
    2016      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2017      1596664 :          full_data(idata) = data_tmp
    2018      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2019      1596664 :          idata = idata + 1
    2020      1596664 :          data_tmp = ISHFT(pack_tmp, 1)
    2021      1596664 :          ipack = ipack + 1
    2022      1596664 :          pack_tmp = packed_data(ipack)
    2023      1596664 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    2024      1596664 :          pack_tmp = ISHFT(pack_tmp, -1)
    2025      1596664 :          idata = idata + 1
    2026      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2027      1596664 :          full_data(idata) = data_tmp
    2028      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2029      1596664 :          idata = idata + 1
    2030      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2031      1596664 :          full_data(idata) = data_tmp
    2032      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2033      1596664 :          idata = idata + 1
    2034      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2035      1596664 :          full_data(idata) = data_tmp
    2036      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2037      1596664 :          idata = idata + 1
    2038      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2039      1596664 :          full_data(idata) = data_tmp
    2040      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2041      1596664 :          idata = idata + 1
    2042      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2043      1596664 :          full_data(idata) = data_tmp
    2044      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2045      1596664 :          idata = idata + 1
    2046      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2047      1596664 :          full_data(idata) = data_tmp
    2048      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2049      1596664 :          idata = idata + 1
    2050      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2051      1596664 :          full_data(idata) = data_tmp
    2052      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2053      1596664 :          idata = idata + 1
    2054      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2055      1596664 :          full_data(idata) = data_tmp
    2056      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2057      1596664 :          idata = idata + 1
    2058      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2059      1596664 :          full_data(idata) = data_tmp
    2060      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2061      1596664 :          idata = idata + 1
    2062      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2063      1596664 :          full_data(idata) = data_tmp
    2064      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2065      1596664 :          idata = idata + 1
    2066      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2067      1596664 :          full_data(idata) = data_tmp
    2068      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2069      1596664 :          idata = idata + 1
    2070      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2071      1596664 :          full_data(idata) = data_tmp
    2072      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2073      1596664 :          idata = idata + 1
    2074      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2075      1596664 :          full_data(idata) = data_tmp
    2076      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2077      1596664 :          idata = idata + 1
    2078      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2079      1596664 :          full_data(idata) = data_tmp
    2080      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2081      1596664 :          idata = idata + 1
    2082      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2083      1596664 :          full_data(idata) = data_tmp
    2084      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2085      1596664 :          idata = idata + 1
    2086      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2087      1596664 :          full_data(idata) = data_tmp
    2088      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2089      1596664 :          idata = idata + 1
    2090      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2091      1596664 :          full_data(idata) = data_tmp
    2092      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2093      1596664 :          idata = idata + 1
    2094      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2095      1596664 :          full_data(idata) = data_tmp
    2096      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2097      1596664 :          idata = idata + 1
    2098      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2099      1596664 :          full_data(idata) = data_tmp
    2100      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2101      1596664 :          idata = idata + 1
    2102      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2103      1596664 :          full_data(idata) = data_tmp
    2104      1596664 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2105      1596664 :          idata = idata + 1
    2106      1596664 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2107      1596664 :          full_data(idata) = data_tmp
    2108      1596678 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2109              :       END DO
    2110        99851 :       IF (Ndata_rep < Ndata) THEN
    2111          112 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    2112              :       END IF
    2113        99851 :    END SUBROUTINE bits2ints_3
    2114              : 
    2115              : ! **************************************************************************************************
    2116              : !> \brief ...
    2117              : !> \param Ndata ...
    2118              : !> \param packed_data ...
    2119              : !> \param full_data ...
    2120              : ! **************************************************************************************************
    2121        24783 :    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        24783 :       idata = 0
    2132        24783 :       ipack = 0
    2133        24783 :       Ndata_rep = (Ndata/64)*64
    2134        24783 :       DO kdata = 1, Ndata_rep, 64
    2135       396224 :          pack_tmp = 0
    2136       396224 :          idata = idata + 1
    2137       396224 :          data_tmp = full_data(idata)
    2138       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2139       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2140       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2141       396224 :          idata = idata + 1
    2142       396224 :          data_tmp = full_data(idata)
    2143       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2144       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2145       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2146       396224 :          idata = idata + 1
    2147       396224 :          data_tmp = full_data(idata)
    2148       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2149       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2150       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2151       396224 :          idata = idata + 1
    2152       396224 :          data_tmp = full_data(idata)
    2153       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2154       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2155       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2156       396224 :          idata = idata + 1
    2157       396224 :          data_tmp = full_data(idata)
    2158       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2159       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2160       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2161       396224 :          idata = idata + 1
    2162       396224 :          data_tmp = full_data(idata)
    2163       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2164       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2165       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2166       396224 :          idata = idata + 1
    2167       396224 :          data_tmp = full_data(idata)
    2168       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2169       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2170       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2171       396224 :          idata = idata + 1
    2172       396224 :          data_tmp = full_data(idata)
    2173       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2174       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2175       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2176       396224 :          idata = idata + 1
    2177       396224 :          data_tmp = full_data(idata)
    2178       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2179       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2180       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2181       396224 :          idata = idata + 1
    2182       396224 :          data_tmp = full_data(idata)
    2183       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2184       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2185       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2186       396224 :          idata = idata + 1
    2187       396224 :          data_tmp = full_data(idata)
    2188       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2189       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2190       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2191       396224 :          idata = idata + 1
    2192       396224 :          data_tmp = full_data(idata)
    2193       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2194       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2195       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2196       396224 :          idata = idata + 1
    2197       396224 :          data_tmp = full_data(idata)
    2198       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2199       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2200       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2201       396224 :          idata = idata + 1
    2202       396224 :          data_tmp = full_data(idata)
    2203       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2204       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2205       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2206       396224 :          idata = idata + 1
    2207       396224 :          data_tmp = full_data(idata)
    2208       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2209       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2210       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2211       396224 :          idata = idata + 1
    2212       396224 :          data_tmp = full_data(idata)
    2213       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2214       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2215       396224 :          pack_tmp = ISHFT(pack_tmp, 0)
    2216       396224 :          idata = idata + 1
    2217       396224 :          data_tmp = full_data(idata)
    2218              :          data_tmp = ISHFT(data_tmp, 60)
    2219       396224 :          data_tmp = IAND(data_tmp, mask_left(0))
    2220       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2221       396224 :          ipack = ipack + 1
    2222       396224 :          packed_data(ipack) = pack_tmp
    2223       396224 :          data_tmp = full_data(idata)
    2224       396224 :          pack_tmp = ISHFT(data_tmp, 60)
    2225       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2226       396224 :          idata = idata + 1
    2227       396224 :          data_tmp = full_data(idata)
    2228       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2229       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2230       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2231       396224 :          idata = idata + 1
    2232       396224 :          data_tmp = full_data(idata)
    2233       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2234       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2235       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2236       396224 :          idata = idata + 1
    2237       396224 :          data_tmp = full_data(idata)
    2238       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2239       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2240       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2241       396224 :          idata = idata + 1
    2242       396224 :          data_tmp = full_data(idata)
    2243       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2244       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2245       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2246       396224 :          idata = idata + 1
    2247       396224 :          data_tmp = full_data(idata)
    2248       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2249       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2250       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2251       396224 :          idata = idata + 1
    2252       396224 :          data_tmp = full_data(idata)
    2253       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2254       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2255       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2256       396224 :          idata = idata + 1
    2257       396224 :          data_tmp = full_data(idata)
    2258       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2259       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2260       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2261       396224 :          idata = idata + 1
    2262       396224 :          data_tmp = full_data(idata)
    2263       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2264       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2265       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2266       396224 :          idata = idata + 1
    2267       396224 :          data_tmp = full_data(idata)
    2268       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2269       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2270       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2271       396224 :          idata = idata + 1
    2272       396224 :          data_tmp = full_data(idata)
    2273       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2274       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2275       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2276       396224 :          idata = idata + 1
    2277       396224 :          data_tmp = full_data(idata)
    2278       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2279       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2280       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2281       396224 :          idata = idata + 1
    2282       396224 :          data_tmp = full_data(idata)
    2283       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2284       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2285       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2286       396224 :          idata = idata + 1
    2287       396224 :          data_tmp = full_data(idata)
    2288       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2289       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2290       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2291       396224 :          idata = idata + 1
    2292       396224 :          data_tmp = full_data(idata)
    2293       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2294       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2295       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2296       396224 :          idata = idata + 1
    2297       396224 :          data_tmp = full_data(idata)
    2298       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2299       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2300       396224 :          pack_tmp = ISHFT(pack_tmp, 0)
    2301       396224 :          idata = idata + 1
    2302       396224 :          data_tmp = full_data(idata)
    2303              :          data_tmp = ISHFT(data_tmp, 60)
    2304       396224 :          data_tmp = IAND(data_tmp, mask_left(0))
    2305       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2306       396224 :          ipack = ipack + 1
    2307       396224 :          packed_data(ipack) = pack_tmp
    2308       396224 :          data_tmp = full_data(idata)
    2309       396224 :          pack_tmp = ISHFT(data_tmp, 60)
    2310       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2311       396224 :          idata = idata + 1
    2312       396224 :          data_tmp = full_data(idata)
    2313       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2314       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2315       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2316       396224 :          idata = idata + 1
    2317       396224 :          data_tmp = full_data(idata)
    2318       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2319       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2320       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2321       396224 :          idata = idata + 1
    2322       396224 :          data_tmp = full_data(idata)
    2323       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2324       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2325       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2326       396224 :          idata = idata + 1
    2327       396224 :          data_tmp = full_data(idata)
    2328       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2329       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2330       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2331       396224 :          idata = idata + 1
    2332       396224 :          data_tmp = full_data(idata)
    2333       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2334       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2335       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2336       396224 :          idata = idata + 1
    2337       396224 :          data_tmp = full_data(idata)
    2338       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2339       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2340       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2341       396224 :          idata = idata + 1
    2342       396224 :          data_tmp = full_data(idata)
    2343       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2344       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2345       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2346       396224 :          idata = idata + 1
    2347       396224 :          data_tmp = full_data(idata)
    2348       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2349       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2350       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2351       396224 :          idata = idata + 1
    2352       396224 :          data_tmp = full_data(idata)
    2353       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2354       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2355       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2356       396224 :          idata = idata + 1
    2357       396224 :          data_tmp = full_data(idata)
    2358       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2359       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2360       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2361       396224 :          idata = idata + 1
    2362       396224 :          data_tmp = full_data(idata)
    2363       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2364       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2365       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2366       396224 :          idata = idata + 1
    2367       396224 :          data_tmp = full_data(idata)
    2368       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2369       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2370       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2371       396224 :          idata = idata + 1
    2372       396224 :          data_tmp = full_data(idata)
    2373       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2374       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2375       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2376       396224 :          idata = idata + 1
    2377       396224 :          data_tmp = full_data(idata)
    2378       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2379       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2380       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2381       396224 :          idata = idata + 1
    2382       396224 :          data_tmp = full_data(idata)
    2383       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2384       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2385       396224 :          pack_tmp = ISHFT(pack_tmp, 0)
    2386       396224 :          idata = idata + 1
    2387       396224 :          data_tmp = full_data(idata)
    2388              :          data_tmp = ISHFT(data_tmp, 60)
    2389       396224 :          data_tmp = IAND(data_tmp, mask_left(0))
    2390       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2391       396224 :          ipack = ipack + 1
    2392       396224 :          packed_data(ipack) = pack_tmp
    2393       396224 :          data_tmp = full_data(idata)
    2394       396224 :          pack_tmp = ISHFT(data_tmp, 60)
    2395       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2396       396224 :          idata = idata + 1
    2397       396224 :          data_tmp = full_data(idata)
    2398       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2399       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2400       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2401       396224 :          idata = idata + 1
    2402       396224 :          data_tmp = full_data(idata)
    2403       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2404       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2405       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2406       396224 :          idata = idata + 1
    2407       396224 :          data_tmp = full_data(idata)
    2408       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2409       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2410       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2411       396224 :          idata = idata + 1
    2412       396224 :          data_tmp = full_data(idata)
    2413       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2414       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2415       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2416       396224 :          idata = idata + 1
    2417       396224 :          data_tmp = full_data(idata)
    2418       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2419       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2420       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2421       396224 :          idata = idata + 1
    2422       396224 :          data_tmp = full_data(idata)
    2423       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2424       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2425       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2426       396224 :          idata = idata + 1
    2427       396224 :          data_tmp = full_data(idata)
    2428       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2429       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2430       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2431       396224 :          idata = idata + 1
    2432       396224 :          data_tmp = full_data(idata)
    2433       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2434       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2435       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2436       396224 :          idata = idata + 1
    2437       396224 :          data_tmp = full_data(idata)
    2438       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2439       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2440       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2441       396224 :          idata = idata + 1
    2442       396224 :          data_tmp = full_data(idata)
    2443       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2444       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2445       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2446       396224 :          idata = idata + 1
    2447       396224 :          data_tmp = full_data(idata)
    2448       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2449       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2450       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2451       396224 :          idata = idata + 1
    2452       396224 :          data_tmp = full_data(idata)
    2453       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2454       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2455       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2456       396224 :          idata = idata + 1
    2457       396224 :          data_tmp = full_data(idata)
    2458       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2459       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2460       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2461       396224 :          idata = idata + 1
    2462       396224 :          data_tmp = full_data(idata)
    2463       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2464       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2465       396224 :          pack_tmp = ISHFT(pack_tmp, -4)
    2466       396224 :          idata = idata + 1
    2467       396224 :          data_tmp = full_data(idata)
    2468       396224 :          data_tmp = ISHFT(data_tmp, 60)
    2469       396224 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2470              :          pack_tmp = ISHFT(pack_tmp, 0)
    2471       396224 :          pack_tmp = ISHFT(pack_tmp, 0)
    2472       396224 :          ipack = ipack + 1
    2473       396243 :          packed_data(ipack) = pack_tmp
    2474              :       END DO
    2475        24783 :       IF (Ndata_rep < Ndata) THEN
    2476            0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    2477              :       END IF
    2478        24783 :    END SUBROUTINE ints2bits_4
    2479              : 
    2480              : ! **************************************************************************************************
    2481              : !> \brief ...
    2482              : !> \param Ndata ...
    2483              : !> \param packed_data ...
    2484              : !> \param full_data ...
    2485              : ! **************************************************************************************************
    2486       100666 :    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       100666 :       ipack = 0
    2497       100666 :       idata = 0
    2498       100666 :       pack_tmp = 0
    2499       100666 :       Ndata_rep = (Ndata/64)*64
    2500       100666 :       DO kdata = 1, Ndata_rep, 64
    2501      1608752 :          idata = idata + 1
    2502      1608752 :          data_tmp = ISHFT(pack_tmp, 4)
    2503      1608752 :          ipack = ipack + 1
    2504      1608752 :          pack_tmp = packed_data(ipack)
    2505      1608752 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2506      1608752 :          pack_tmp = ISHFT(pack_tmp, -4)
    2507      1608752 :          idata = idata + 1
    2508      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2509      1608752 :          full_data(idata) = data_tmp
    2510      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2511      1608752 :          idata = idata + 1
    2512      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2513      1608752 :          full_data(idata) = data_tmp
    2514      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2515      1608752 :          idata = idata + 1
    2516      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2517      1608752 :          full_data(idata) = data_tmp
    2518      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2519      1608752 :          idata = idata + 1
    2520      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2521      1608752 :          full_data(idata) = data_tmp
    2522      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2523      1608752 :          idata = idata + 1
    2524      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2525      1608752 :          full_data(idata) = data_tmp
    2526      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2527      1608752 :          idata = idata + 1
    2528      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2529      1608752 :          full_data(idata) = data_tmp
    2530      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2531      1608752 :          idata = idata + 1
    2532      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2533      1608752 :          full_data(idata) = data_tmp
    2534      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2535      1608752 :          idata = idata + 1
    2536      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2537      1608752 :          full_data(idata) = data_tmp
    2538      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2539      1608752 :          idata = idata + 1
    2540      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2541      1608752 :          full_data(idata) = data_tmp
    2542      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2543      1608752 :          idata = idata + 1
    2544      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2545      1608752 :          full_data(idata) = data_tmp
    2546      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2547      1608752 :          idata = idata + 1
    2548      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2549      1608752 :          full_data(idata) = data_tmp
    2550      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2551      1608752 :          idata = idata + 1
    2552      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2553      1608752 :          full_data(idata) = data_tmp
    2554      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2555      1608752 :          idata = idata + 1
    2556      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2557      1608752 :          full_data(idata) = data_tmp
    2558      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2559      1608752 :          idata = idata + 1
    2560      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2561      1608752 :          full_data(idata) = data_tmp
    2562      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2563      1608752 :          idata = idata + 1
    2564      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2565      1608752 :          full_data(idata) = data_tmp
    2566      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2567      1608752 :          idata = idata + 1
    2568      1608752 :          data_tmp = ISHFT(pack_tmp, 4)
    2569      1608752 :          ipack = ipack + 1
    2570      1608752 :          pack_tmp = packed_data(ipack)
    2571      1608752 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2572      1608752 :          pack_tmp = ISHFT(pack_tmp, -4)
    2573      1608752 :          idata = idata + 1
    2574      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2575      1608752 :          full_data(idata) = data_tmp
    2576      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2577      1608752 :          idata = idata + 1
    2578      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2579      1608752 :          full_data(idata) = data_tmp
    2580      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2581      1608752 :          idata = idata + 1
    2582      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2583      1608752 :          full_data(idata) = data_tmp
    2584      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2585      1608752 :          idata = idata + 1
    2586      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2587      1608752 :          full_data(idata) = data_tmp
    2588      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2589      1608752 :          idata = idata + 1
    2590      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2591      1608752 :          full_data(idata) = data_tmp
    2592      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2593      1608752 :          idata = idata + 1
    2594      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2595      1608752 :          full_data(idata) = data_tmp
    2596      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2597      1608752 :          idata = idata + 1
    2598      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2599      1608752 :          full_data(idata) = data_tmp
    2600      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2601      1608752 :          idata = idata + 1
    2602      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2603      1608752 :          full_data(idata) = data_tmp
    2604      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2605      1608752 :          idata = idata + 1
    2606      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2607      1608752 :          full_data(idata) = data_tmp
    2608      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2609      1608752 :          idata = idata + 1
    2610      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2611      1608752 :          full_data(idata) = data_tmp
    2612      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2613      1608752 :          idata = idata + 1
    2614      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2615      1608752 :          full_data(idata) = data_tmp
    2616      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2617      1608752 :          idata = idata + 1
    2618      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2619      1608752 :          full_data(idata) = data_tmp
    2620      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2621      1608752 :          idata = idata + 1
    2622      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2623      1608752 :          full_data(idata) = data_tmp
    2624      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2625      1608752 :          idata = idata + 1
    2626      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2627      1608752 :          full_data(idata) = data_tmp
    2628      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2629      1608752 :          idata = idata + 1
    2630      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2631      1608752 :          full_data(idata) = data_tmp
    2632      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2633      1608752 :          idata = idata + 1
    2634      1608752 :          data_tmp = ISHFT(pack_tmp, 4)
    2635      1608752 :          ipack = ipack + 1
    2636      1608752 :          pack_tmp = packed_data(ipack)
    2637      1608752 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2638      1608752 :          pack_tmp = ISHFT(pack_tmp, -4)
    2639      1608752 :          idata = idata + 1
    2640      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2641      1608752 :          full_data(idata) = data_tmp
    2642      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2643      1608752 :          idata = idata + 1
    2644      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2645      1608752 :          full_data(idata) = data_tmp
    2646      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2647      1608752 :          idata = idata + 1
    2648      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2649      1608752 :          full_data(idata) = data_tmp
    2650      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2651      1608752 :          idata = idata + 1
    2652      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2653      1608752 :          full_data(idata) = data_tmp
    2654      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2655      1608752 :          idata = idata + 1
    2656      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2657      1608752 :          full_data(idata) = data_tmp
    2658      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2659      1608752 :          idata = idata + 1
    2660      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2661      1608752 :          full_data(idata) = data_tmp
    2662      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2663      1608752 :          idata = idata + 1
    2664      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2665      1608752 :          full_data(idata) = data_tmp
    2666      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2667      1608752 :          idata = idata + 1
    2668      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2669      1608752 :          full_data(idata) = data_tmp
    2670      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2671      1608752 :          idata = idata + 1
    2672      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2673      1608752 :          full_data(idata) = data_tmp
    2674      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2675      1608752 :          idata = idata + 1
    2676      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2677      1608752 :          full_data(idata) = data_tmp
    2678      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2679      1608752 :          idata = idata + 1
    2680      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2681      1608752 :          full_data(idata) = data_tmp
    2682      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2683      1608752 :          idata = idata + 1
    2684      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2685      1608752 :          full_data(idata) = data_tmp
    2686      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2687      1608752 :          idata = idata + 1
    2688      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2689      1608752 :          full_data(idata) = data_tmp
    2690      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2691      1608752 :          idata = idata + 1
    2692      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2693      1608752 :          full_data(idata) = data_tmp
    2694      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2695      1608752 :          idata = idata + 1
    2696      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2697      1608752 :          full_data(idata) = data_tmp
    2698      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2699      1608752 :          idata = idata + 1
    2700      1608752 :          data_tmp = ISHFT(pack_tmp, 4)
    2701      1608752 :          ipack = ipack + 1
    2702      1608752 :          pack_tmp = packed_data(ipack)
    2703      1608752 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    2704      1608752 :          pack_tmp = ISHFT(pack_tmp, -4)
    2705      1608752 :          idata = idata + 1
    2706      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2707      1608752 :          full_data(idata) = data_tmp
    2708      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2709      1608752 :          idata = idata + 1
    2710      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2711      1608752 :          full_data(idata) = data_tmp
    2712      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2713      1608752 :          idata = idata + 1
    2714      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2715      1608752 :          full_data(idata) = data_tmp
    2716      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2717      1608752 :          idata = idata + 1
    2718      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2719      1608752 :          full_data(idata) = data_tmp
    2720      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2721      1608752 :          idata = idata + 1
    2722      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2723      1608752 :          full_data(idata) = data_tmp
    2724      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2725      1608752 :          idata = idata + 1
    2726      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2727      1608752 :          full_data(idata) = data_tmp
    2728      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2729      1608752 :          idata = idata + 1
    2730      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2731      1608752 :          full_data(idata) = data_tmp
    2732      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2733      1608752 :          idata = idata + 1
    2734      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2735      1608752 :          full_data(idata) = data_tmp
    2736      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2737      1608752 :          idata = idata + 1
    2738      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2739      1608752 :          full_data(idata) = data_tmp
    2740      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2741      1608752 :          idata = idata + 1
    2742      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2743      1608752 :          full_data(idata) = data_tmp
    2744      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2745      1608752 :          idata = idata + 1
    2746      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2747      1608752 :          full_data(idata) = data_tmp
    2748      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2749      1608752 :          idata = idata + 1
    2750      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2751      1608752 :          full_data(idata) = data_tmp
    2752      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2753      1608752 :          idata = idata + 1
    2754      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2755      1608752 :          full_data(idata) = data_tmp
    2756      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2757      1608752 :          idata = idata + 1
    2758      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2759      1608752 :          full_data(idata) = data_tmp
    2760      1608752 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2761      1608752 :          idata = idata + 1
    2762      1608752 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    2763      1608752 :          full_data(idata) = data_tmp
    2764      1608871 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    2765              :       END DO
    2766       100666 :       IF (Ndata_rep < Ndata) THEN
    2767            0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    2768              :       END IF
    2769       100666 :    END SUBROUTINE bits2ints_4
    2770              : 
    2771              : ! **************************************************************************************************
    2772              : !> \brief ...
    2773              : !> \param Ndata ...
    2774              : !> \param packed_data ...
    2775              : !> \param full_data ...
    2776              : ! **************************************************************************************************
    2777        24667 :    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        24667 :       idata = 0
    2788        24667 :       ipack = 0
    2789        24667 :       Ndata_rep = (Ndata/64)*64
    2790        24667 :       DO kdata = 1, Ndata_rep, 64
    2791       394453 :          pack_tmp = 0
    2792       394453 :          idata = idata + 1
    2793       394453 :          data_tmp = full_data(idata)
    2794       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2795       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2796       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2797       394453 :          idata = idata + 1
    2798       394453 :          data_tmp = full_data(idata)
    2799       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2800       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2801       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2802       394453 :          idata = idata + 1
    2803       394453 :          data_tmp = full_data(idata)
    2804       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2805       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2806       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2807       394453 :          idata = idata + 1
    2808       394453 :          data_tmp = full_data(idata)
    2809       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2810       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2811       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2812       394453 :          idata = idata + 1
    2813       394453 :          data_tmp = full_data(idata)
    2814       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2815       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2816       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2817       394453 :          idata = idata + 1
    2818       394453 :          data_tmp = full_data(idata)
    2819       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2820       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2821       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2822       394453 :          idata = idata + 1
    2823       394453 :          data_tmp = full_data(idata)
    2824       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2825       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2826       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2827       394453 :          idata = idata + 1
    2828       394453 :          data_tmp = full_data(idata)
    2829       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2830       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2831       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2832       394453 :          idata = idata + 1
    2833       394453 :          data_tmp = full_data(idata)
    2834       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2835       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2836       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2837       394453 :          idata = idata + 1
    2838       394453 :          data_tmp = full_data(idata)
    2839       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2840       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2841       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2842       394453 :          idata = idata + 1
    2843       394453 :          data_tmp = full_data(idata)
    2844       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2845       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2846       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2847       394453 :          idata = idata + 1
    2848       394453 :          data_tmp = full_data(idata)
    2849       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2850       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2851       394453 :          pack_tmp = ISHFT(pack_tmp, -4)
    2852       394453 :          idata = idata + 1
    2853       394453 :          data_tmp = full_data(idata)
    2854       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2855       394453 :          data_tmp = IAND(data_tmp, mask_left(4))
    2856       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2857       394453 :          ipack = ipack + 1
    2858       394453 :          packed_data(ipack) = pack_tmp
    2859       394453 :          data_tmp = full_data(idata)
    2860       394453 :          pack_tmp = ISHFT(data_tmp, 63)
    2861       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2862       394453 :          idata = idata + 1
    2863       394453 :          data_tmp = full_data(idata)
    2864       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2865       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2866       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2867       394453 :          idata = idata + 1
    2868       394453 :          data_tmp = full_data(idata)
    2869       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2870       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2871       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2872       394453 :          idata = idata + 1
    2873       394453 :          data_tmp = full_data(idata)
    2874       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2875       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2876       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2877       394453 :          idata = idata + 1
    2878       394453 :          data_tmp = full_data(idata)
    2879       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2880       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2881       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2882       394453 :          idata = idata + 1
    2883       394453 :          data_tmp = full_data(idata)
    2884       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2885       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2886       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2887       394453 :          idata = idata + 1
    2888       394453 :          data_tmp = full_data(idata)
    2889       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2890       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2891       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2892       394453 :          idata = idata + 1
    2893       394453 :          data_tmp = full_data(idata)
    2894       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2895       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2896       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2897       394453 :          idata = idata + 1
    2898       394453 :          data_tmp = full_data(idata)
    2899       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2900       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2901       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2902       394453 :          idata = idata + 1
    2903       394453 :          data_tmp = full_data(idata)
    2904       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2905       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2906       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2907       394453 :          idata = idata + 1
    2908       394453 :          data_tmp = full_data(idata)
    2909       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2910       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2911       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2912       394453 :          idata = idata + 1
    2913       394453 :          data_tmp = full_data(idata)
    2914       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2915       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2916       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2917       394453 :          idata = idata + 1
    2918       394453 :          data_tmp = full_data(idata)
    2919       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2920       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2921       394453 :          pack_tmp = ISHFT(pack_tmp, -3)
    2922       394453 :          idata = idata + 1
    2923       394453 :          data_tmp = full_data(idata)
    2924       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2925       394453 :          data_tmp = IAND(data_tmp, mask_left(3))
    2926       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2927       394453 :          ipack = ipack + 1
    2928       394453 :          packed_data(ipack) = pack_tmp
    2929       394453 :          data_tmp = full_data(idata)
    2930       394453 :          pack_tmp = ISHFT(data_tmp, 62)
    2931       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2932       394453 :          idata = idata + 1
    2933       394453 :          data_tmp = full_data(idata)
    2934       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2935       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2936       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2937       394453 :          idata = idata + 1
    2938       394453 :          data_tmp = full_data(idata)
    2939       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2940       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2941       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2942       394453 :          idata = idata + 1
    2943       394453 :          data_tmp = full_data(idata)
    2944       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2945       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2946       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2947       394453 :          idata = idata + 1
    2948       394453 :          data_tmp = full_data(idata)
    2949       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2950       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2951       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2952       394453 :          idata = idata + 1
    2953       394453 :          data_tmp = full_data(idata)
    2954       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2955       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2956       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2957       394453 :          idata = idata + 1
    2958       394453 :          data_tmp = full_data(idata)
    2959       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2960       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2961       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2962       394453 :          idata = idata + 1
    2963       394453 :          data_tmp = full_data(idata)
    2964       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2965       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2966       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2967       394453 :          idata = idata + 1
    2968       394453 :          data_tmp = full_data(idata)
    2969       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2970       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2971       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2972       394453 :          idata = idata + 1
    2973       394453 :          data_tmp = full_data(idata)
    2974       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2975       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2976       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2977       394453 :          idata = idata + 1
    2978       394453 :          data_tmp = full_data(idata)
    2979       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2980       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2981       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2982       394453 :          idata = idata + 1
    2983       394453 :          data_tmp = full_data(idata)
    2984       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2985       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2986       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    2987       394453 :          idata = idata + 1
    2988       394453 :          data_tmp = full_data(idata)
    2989       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2990       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2991       394453 :          pack_tmp = ISHFT(pack_tmp, -2)
    2992       394453 :          idata = idata + 1
    2993       394453 :          data_tmp = full_data(idata)
    2994       394453 :          data_tmp = ISHFT(data_tmp, 59)
    2995       394453 :          data_tmp = IAND(data_tmp, mask_left(2))
    2996       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    2997       394453 :          ipack = ipack + 1
    2998       394453 :          packed_data(ipack) = pack_tmp
    2999       394453 :          data_tmp = full_data(idata)
    3000       394453 :          pack_tmp = ISHFT(data_tmp, 61)
    3001       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3002       394453 :          idata = idata + 1
    3003       394453 :          data_tmp = full_data(idata)
    3004       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3005       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3006       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3007       394453 :          idata = idata + 1
    3008       394453 :          data_tmp = full_data(idata)
    3009       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3010       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3011       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3012       394453 :          idata = idata + 1
    3013       394453 :          data_tmp = full_data(idata)
    3014       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3015       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3016       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3017       394453 :          idata = idata + 1
    3018       394453 :          data_tmp = full_data(idata)
    3019       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3020       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3021       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3022       394453 :          idata = idata + 1
    3023       394453 :          data_tmp = full_data(idata)
    3024       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3025       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3026       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3027       394453 :          idata = idata + 1
    3028       394453 :          data_tmp = full_data(idata)
    3029       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3030       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3031       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3032       394453 :          idata = idata + 1
    3033       394453 :          data_tmp = full_data(idata)
    3034       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3035       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3036       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3037       394453 :          idata = idata + 1
    3038       394453 :          data_tmp = full_data(idata)
    3039       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3040       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3041       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3042       394453 :          idata = idata + 1
    3043       394453 :          data_tmp = full_data(idata)
    3044       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3045       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3046       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3047       394453 :          idata = idata + 1
    3048       394453 :          data_tmp = full_data(idata)
    3049       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3050       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3051       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3052       394453 :          idata = idata + 1
    3053       394453 :          data_tmp = full_data(idata)
    3054       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3055       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3056       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3057       394453 :          idata = idata + 1
    3058       394453 :          data_tmp = full_data(idata)
    3059       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3060       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3061       394453 :          pack_tmp = ISHFT(pack_tmp, -1)
    3062       394453 :          idata = idata + 1
    3063       394453 :          data_tmp = full_data(idata)
    3064       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3065       394453 :          data_tmp = IAND(data_tmp, mask_left(1))
    3066       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3067       394453 :          ipack = ipack + 1
    3068       394453 :          packed_data(ipack) = pack_tmp
    3069       394453 :          data_tmp = full_data(idata)
    3070       394453 :          pack_tmp = ISHFT(data_tmp, 60)
    3071       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3072       394453 :          idata = idata + 1
    3073       394453 :          data_tmp = full_data(idata)
    3074       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3075       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3076       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3077       394453 :          idata = idata + 1
    3078       394453 :          data_tmp = full_data(idata)
    3079       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3080       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3081       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3082       394453 :          idata = idata + 1
    3083       394453 :          data_tmp = full_data(idata)
    3084       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3085       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3086       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3087       394453 :          idata = idata + 1
    3088       394453 :          data_tmp = full_data(idata)
    3089       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3090       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3091       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3092       394453 :          idata = idata + 1
    3093       394453 :          data_tmp = full_data(idata)
    3094       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3095       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3096       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3097       394453 :          idata = idata + 1
    3098       394453 :          data_tmp = full_data(idata)
    3099       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3100       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3101       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3102       394453 :          idata = idata + 1
    3103       394453 :          data_tmp = full_data(idata)
    3104       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3105       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3106       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3107       394453 :          idata = idata + 1
    3108       394453 :          data_tmp = full_data(idata)
    3109       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3110       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3111       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3112       394453 :          idata = idata + 1
    3113       394453 :          data_tmp = full_data(idata)
    3114       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3115       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3116       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3117       394453 :          idata = idata + 1
    3118       394453 :          data_tmp = full_data(idata)
    3119       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3120       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3121       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3122       394453 :          idata = idata + 1
    3123       394453 :          data_tmp = full_data(idata)
    3124       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3125       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3126       394453 :          pack_tmp = ISHFT(pack_tmp, -5)
    3127       394453 :          idata = idata + 1
    3128       394453 :          data_tmp = full_data(idata)
    3129       394453 :          data_tmp = ISHFT(data_tmp, 59)
    3130       394453 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3131              :          pack_tmp = ISHFT(pack_tmp, 0)
    3132       394453 :          pack_tmp = ISHFT(pack_tmp, 0)
    3133       394453 :          ipack = ipack + 1
    3134       394454 :          packed_data(ipack) = pack_tmp
    3135              :       END DO
    3136        24667 :       IF (Ndata_rep < Ndata) THEN
    3137           22 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    3138              :       END IF
    3139        24667 :    END SUBROUTINE ints2bits_5
    3140              : 
    3141              : ! **************************************************************************************************
    3142              : !> \brief ...
    3143              : !> \param Ndata ...
    3144              : !> \param packed_data ...
    3145              : !> \param full_data ...
    3146              : ! **************************************************************************************************
    3147        99690 :    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        99690 :       ipack = 0
    3158        99690 :       idata = 0
    3159        99690 :       pack_tmp = 0
    3160        99690 :       Ndata_rep = (Ndata/64)*64
    3161        99690 :       DO kdata = 1, Ndata_rep, 64
    3162      1593932 :          idata = idata + 1
    3163      1593932 :          data_tmp = ISHFT(pack_tmp, 5)
    3164      1593932 :          ipack = ipack + 1
    3165      1593932 :          pack_tmp = packed_data(ipack)
    3166      1593932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    3167      1593932 :          pack_tmp = ISHFT(pack_tmp, -5)
    3168      1593932 :          idata = idata + 1
    3169      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3170      1593932 :          full_data(idata) = data_tmp
    3171      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3172      1593932 :          idata = idata + 1
    3173      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3174      1593932 :          full_data(idata) = data_tmp
    3175      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3176      1593932 :          idata = idata + 1
    3177      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3178      1593932 :          full_data(idata) = data_tmp
    3179      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3180      1593932 :          idata = idata + 1
    3181      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3182      1593932 :          full_data(idata) = data_tmp
    3183      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3184      1593932 :          idata = idata + 1
    3185      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3186      1593932 :          full_data(idata) = data_tmp
    3187      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3188      1593932 :          idata = idata + 1
    3189      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3190      1593932 :          full_data(idata) = data_tmp
    3191      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3192      1593932 :          idata = idata + 1
    3193      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3194      1593932 :          full_data(idata) = data_tmp
    3195      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3196      1593932 :          idata = idata + 1
    3197      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3198      1593932 :          full_data(idata) = data_tmp
    3199      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3200      1593932 :          idata = idata + 1
    3201      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3202      1593932 :          full_data(idata) = data_tmp
    3203      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3204      1593932 :          idata = idata + 1
    3205      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3206      1593932 :          full_data(idata) = data_tmp
    3207      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3208      1593932 :          idata = idata + 1
    3209      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3210      1593932 :          full_data(idata) = data_tmp
    3211      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3212      1593932 :          idata = idata + 1
    3213      1593932 :          data_tmp = ISHFT(pack_tmp, 1)
    3214      1593932 :          ipack = ipack + 1
    3215      1593932 :          pack_tmp = packed_data(ipack)
    3216      1593932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    3217      1593932 :          pack_tmp = ISHFT(pack_tmp, -1)
    3218      1593932 :          idata = idata + 1
    3219      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3220      1593932 :          full_data(idata) = data_tmp
    3221      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3222      1593932 :          idata = idata + 1
    3223      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3224      1593932 :          full_data(idata) = data_tmp
    3225      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3226      1593932 :          idata = idata + 1
    3227      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3228      1593932 :          full_data(idata) = data_tmp
    3229      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3230      1593932 :          idata = idata + 1
    3231      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3232      1593932 :          full_data(idata) = data_tmp
    3233      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3234      1593932 :          idata = idata + 1
    3235      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3236      1593932 :          full_data(idata) = data_tmp
    3237      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3238      1593932 :          idata = idata + 1
    3239      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3240      1593932 :          full_data(idata) = data_tmp
    3241      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3242      1593932 :          idata = idata + 1
    3243      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3244      1593932 :          full_data(idata) = data_tmp
    3245      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3246      1593932 :          idata = idata + 1
    3247      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3248      1593932 :          full_data(idata) = data_tmp
    3249      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3250      1593932 :          idata = idata + 1
    3251      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3252      1593932 :          full_data(idata) = data_tmp
    3253      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3254      1593932 :          idata = idata + 1
    3255      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3256      1593932 :          full_data(idata) = data_tmp
    3257      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3258      1593932 :          idata = idata + 1
    3259      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3260      1593932 :          full_data(idata) = data_tmp
    3261      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3262      1593932 :          idata = idata + 1
    3263      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3264      1593932 :          full_data(idata) = data_tmp
    3265      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3266      1593932 :          idata = idata + 1
    3267      1593932 :          data_tmp = ISHFT(pack_tmp, 2)
    3268      1593932 :          ipack = ipack + 1
    3269      1593932 :          pack_tmp = packed_data(ipack)
    3270      1593932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    3271      1593932 :          pack_tmp = ISHFT(pack_tmp, -2)
    3272      1593932 :          idata = idata + 1
    3273      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3274      1593932 :          full_data(idata) = data_tmp
    3275      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3276      1593932 :          idata = idata + 1
    3277      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3278      1593932 :          full_data(idata) = data_tmp
    3279      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3280      1593932 :          idata = idata + 1
    3281      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3282      1593932 :          full_data(idata) = data_tmp
    3283      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3284      1593932 :          idata = idata + 1
    3285      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3286      1593932 :          full_data(idata) = data_tmp
    3287      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3288      1593932 :          idata = idata + 1
    3289      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3290      1593932 :          full_data(idata) = data_tmp
    3291      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3292      1593932 :          idata = idata + 1
    3293      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3294      1593932 :          full_data(idata) = data_tmp
    3295      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3296      1593932 :          idata = idata + 1
    3297      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3298      1593932 :          full_data(idata) = data_tmp
    3299      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3300      1593932 :          idata = idata + 1
    3301      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3302      1593932 :          full_data(idata) = data_tmp
    3303      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3304      1593932 :          idata = idata + 1
    3305      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3306      1593932 :          full_data(idata) = data_tmp
    3307      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3308      1593932 :          idata = idata + 1
    3309      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3310      1593932 :          full_data(idata) = data_tmp
    3311      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3312      1593932 :          idata = idata + 1
    3313      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3314      1593932 :          full_data(idata) = data_tmp
    3315      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3316      1593932 :          idata = idata + 1
    3317      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3318      1593932 :          full_data(idata) = data_tmp
    3319      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3320      1593932 :          idata = idata + 1
    3321      1593932 :          data_tmp = ISHFT(pack_tmp, 3)
    3322      1593932 :          ipack = ipack + 1
    3323      1593932 :          pack_tmp = packed_data(ipack)
    3324      1593932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    3325      1593932 :          pack_tmp = ISHFT(pack_tmp, -3)
    3326      1593932 :          idata = idata + 1
    3327      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3328      1593932 :          full_data(idata) = data_tmp
    3329      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3330      1593932 :          idata = idata + 1
    3331      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3332      1593932 :          full_data(idata) = data_tmp
    3333      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3334      1593932 :          idata = idata + 1
    3335      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3336      1593932 :          full_data(idata) = data_tmp
    3337      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3338      1593932 :          idata = idata + 1
    3339      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3340      1593932 :          full_data(idata) = data_tmp
    3341      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3342      1593932 :          idata = idata + 1
    3343      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3344      1593932 :          full_data(idata) = data_tmp
    3345      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3346      1593932 :          idata = idata + 1
    3347      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3348      1593932 :          full_data(idata) = data_tmp
    3349      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3350      1593932 :          idata = idata + 1
    3351      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3352      1593932 :          full_data(idata) = data_tmp
    3353      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3354      1593932 :          idata = idata + 1
    3355      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3356      1593932 :          full_data(idata) = data_tmp
    3357      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3358      1593932 :          idata = idata + 1
    3359      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3360      1593932 :          full_data(idata) = data_tmp
    3361      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3362      1593932 :          idata = idata + 1
    3363      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3364      1593932 :          full_data(idata) = data_tmp
    3365      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3366      1593932 :          idata = idata + 1
    3367      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3368      1593932 :          full_data(idata) = data_tmp
    3369      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3370      1593932 :          idata = idata + 1
    3371      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3372      1593932 :          full_data(idata) = data_tmp
    3373      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3374      1593932 :          idata = idata + 1
    3375      1593932 :          data_tmp = ISHFT(pack_tmp, 4)
    3376      1593932 :          ipack = ipack + 1
    3377      1593932 :          pack_tmp = packed_data(ipack)
    3378      1593932 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    3379      1593932 :          pack_tmp = ISHFT(pack_tmp, -4)
    3380      1593932 :          idata = idata + 1
    3381      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3382      1593932 :          full_data(idata) = data_tmp
    3383      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3384      1593932 :          idata = idata + 1
    3385      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3386      1593932 :          full_data(idata) = data_tmp
    3387      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3388      1593932 :          idata = idata + 1
    3389      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3390      1593932 :          full_data(idata) = data_tmp
    3391      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3392      1593932 :          idata = idata + 1
    3393      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3394      1593932 :          full_data(idata) = data_tmp
    3395      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3396      1593932 :          idata = idata + 1
    3397      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3398      1593932 :          full_data(idata) = data_tmp
    3399      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3400      1593932 :          idata = idata + 1
    3401      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3402      1593932 :          full_data(idata) = data_tmp
    3403      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3404      1593932 :          idata = idata + 1
    3405      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3406      1593932 :          full_data(idata) = data_tmp
    3407      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3408      1593932 :          idata = idata + 1
    3409      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3410      1593932 :          full_data(idata) = data_tmp
    3411      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3412      1593932 :          idata = idata + 1
    3413      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3414      1593932 :          full_data(idata) = data_tmp
    3415      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3416      1593932 :          idata = idata + 1
    3417      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3418      1593932 :          full_data(idata) = data_tmp
    3419      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3420      1593932 :          idata = idata + 1
    3421      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3422      1593932 :          full_data(idata) = data_tmp
    3423      1593932 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3424      1593932 :          idata = idata + 1
    3425      1593932 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3426      1593932 :          full_data(idata) = data_tmp
    3427      1593939 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3428              :       END DO
    3429        99690 :       IF (Ndata_rep < Ndata) THEN
    3430          104 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    3431              :       END IF
    3432        99690 :    END SUBROUTINE bits2ints_5
    3433              : 
    3434              : ! **************************************************************************************************
    3435              : !> \brief ...
    3436              : !> \param Ndata ...
    3437              : !> \param packed_data ...
    3438              : !> \param full_data ...
    3439              : ! **************************************************************************************************
    3440        53165 :    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        53165 :       idata = 0
    3451        53165 :       ipack = 0
    3452        53165 :       Ndata_rep = (Ndata/64)*64
    3453        53165 :       DO kdata = 1, Ndata_rep, 64
    3454       846866 :          pack_tmp = 0
    3455       846866 :          idata = idata + 1
    3456       846866 :          data_tmp = full_data(idata)
    3457       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3458       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3459       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3460       846866 :          idata = idata + 1
    3461       846866 :          data_tmp = full_data(idata)
    3462       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3463       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3464       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3465       846866 :          idata = idata + 1
    3466       846866 :          data_tmp = full_data(idata)
    3467       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3468       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3469       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3470       846866 :          idata = idata + 1
    3471       846866 :          data_tmp = full_data(idata)
    3472       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3473       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3474       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3475       846866 :          idata = idata + 1
    3476       846866 :          data_tmp = full_data(idata)
    3477       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3478       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3479       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3480       846866 :          idata = idata + 1
    3481       846866 :          data_tmp = full_data(idata)
    3482       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3483       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3484       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3485       846866 :          idata = idata + 1
    3486       846866 :          data_tmp = full_data(idata)
    3487       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3488       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3489       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3490       846866 :          idata = idata + 1
    3491       846866 :          data_tmp = full_data(idata)
    3492       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3493       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3494       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3495       846866 :          idata = idata + 1
    3496       846866 :          data_tmp = full_data(idata)
    3497       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3498       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3499       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3500       846866 :          idata = idata + 1
    3501       846866 :          data_tmp = full_data(idata)
    3502       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3503       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3504       846866 :          pack_tmp = ISHFT(pack_tmp, -4)
    3505       846866 :          idata = idata + 1
    3506       846866 :          data_tmp = full_data(idata)
    3507       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3508       846866 :          data_tmp = IAND(data_tmp, mask_left(4))
    3509       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3510       846866 :          ipack = ipack + 1
    3511       846866 :          packed_data(ipack) = pack_tmp
    3512       846866 :          data_tmp = full_data(idata)
    3513       846866 :          pack_tmp = ISHFT(data_tmp, 62)
    3514       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3515       846866 :          idata = idata + 1
    3516       846866 :          data_tmp = full_data(idata)
    3517       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3518       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3519       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3520       846866 :          idata = idata + 1
    3521       846866 :          data_tmp = full_data(idata)
    3522       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3523       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3524       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3525       846866 :          idata = idata + 1
    3526       846866 :          data_tmp = full_data(idata)
    3527       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3528       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3529       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3530       846866 :          idata = idata + 1
    3531       846866 :          data_tmp = full_data(idata)
    3532       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3533       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3534       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3535       846866 :          idata = idata + 1
    3536       846866 :          data_tmp = full_data(idata)
    3537       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3538       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3539       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3540       846866 :          idata = idata + 1
    3541       846866 :          data_tmp = full_data(idata)
    3542       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3543       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3544       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3545       846866 :          idata = idata + 1
    3546       846866 :          data_tmp = full_data(idata)
    3547       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3548       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3549       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3550       846866 :          idata = idata + 1
    3551       846866 :          data_tmp = full_data(idata)
    3552       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3553       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3554       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3555       846866 :          idata = idata + 1
    3556       846866 :          data_tmp = full_data(idata)
    3557       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3558       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3559       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3560       846866 :          idata = idata + 1
    3561       846866 :          data_tmp = full_data(idata)
    3562       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3563       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3564       846866 :          pack_tmp = ISHFT(pack_tmp, -2)
    3565       846866 :          idata = idata + 1
    3566       846866 :          data_tmp = full_data(idata)
    3567       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3568       846866 :          data_tmp = IAND(data_tmp, mask_left(2))
    3569       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3570       846866 :          ipack = ipack + 1
    3571       846866 :          packed_data(ipack) = pack_tmp
    3572       846866 :          data_tmp = full_data(idata)
    3573       846866 :          pack_tmp = ISHFT(data_tmp, 60)
    3574       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3575       846866 :          idata = idata + 1
    3576       846866 :          data_tmp = full_data(idata)
    3577       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3578       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3579       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3580       846866 :          idata = idata + 1
    3581       846866 :          data_tmp = full_data(idata)
    3582       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3583       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3584       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3585       846866 :          idata = idata + 1
    3586       846866 :          data_tmp = full_data(idata)
    3587       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3588       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3589       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3590       846866 :          idata = idata + 1
    3591       846866 :          data_tmp = full_data(idata)
    3592       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3593       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3594       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3595       846866 :          idata = idata + 1
    3596       846866 :          data_tmp = full_data(idata)
    3597       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3598       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3599       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3600       846866 :          idata = idata + 1
    3601       846866 :          data_tmp = full_data(idata)
    3602       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3603       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3604       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3605       846866 :          idata = idata + 1
    3606       846866 :          data_tmp = full_data(idata)
    3607       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3608       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3609       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3610       846866 :          idata = idata + 1
    3611       846866 :          data_tmp = full_data(idata)
    3612       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3613       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3614       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3615       846866 :          idata = idata + 1
    3616       846866 :          data_tmp = full_data(idata)
    3617       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3618       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3619       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3620       846866 :          idata = idata + 1
    3621       846866 :          data_tmp = full_data(idata)
    3622       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3623       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3624       846866 :          pack_tmp = ISHFT(pack_tmp, 0)
    3625       846866 :          idata = idata + 1
    3626       846866 :          data_tmp = full_data(idata)
    3627              :          data_tmp = ISHFT(data_tmp, 58)
    3628       846866 :          data_tmp = IAND(data_tmp, mask_left(0))
    3629       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3630       846866 :          ipack = ipack + 1
    3631       846866 :          packed_data(ipack) = pack_tmp
    3632       846866 :          data_tmp = full_data(idata)
    3633       846866 :          pack_tmp = ISHFT(data_tmp, 58)
    3634       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3635       846866 :          idata = idata + 1
    3636       846866 :          data_tmp = full_data(idata)
    3637       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3638       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3639       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3640       846866 :          idata = idata + 1
    3641       846866 :          data_tmp = full_data(idata)
    3642       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3643       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3644       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3645       846866 :          idata = idata + 1
    3646       846866 :          data_tmp = full_data(idata)
    3647       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3648       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3649       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3650       846866 :          idata = idata + 1
    3651       846866 :          data_tmp = full_data(idata)
    3652       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3653       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3654       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3655       846866 :          idata = idata + 1
    3656       846866 :          data_tmp = full_data(idata)
    3657       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3658       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3659       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3660       846866 :          idata = idata + 1
    3661       846866 :          data_tmp = full_data(idata)
    3662       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3663       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3664       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3665       846866 :          idata = idata + 1
    3666       846866 :          data_tmp = full_data(idata)
    3667       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3668       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3669       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3670       846866 :          idata = idata + 1
    3671       846866 :          data_tmp = full_data(idata)
    3672       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3673       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3674       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3675       846866 :          idata = idata + 1
    3676       846866 :          data_tmp = full_data(idata)
    3677       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3678       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3679       846866 :          pack_tmp = ISHFT(pack_tmp, -4)
    3680       846866 :          idata = idata + 1
    3681       846866 :          data_tmp = full_data(idata)
    3682       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3683       846866 :          data_tmp = IAND(data_tmp, mask_left(4))
    3684       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3685       846866 :          ipack = ipack + 1
    3686       846866 :          packed_data(ipack) = pack_tmp
    3687       846866 :          data_tmp = full_data(idata)
    3688       846866 :          pack_tmp = ISHFT(data_tmp, 62)
    3689       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3690       846866 :          idata = idata + 1
    3691       846866 :          data_tmp = full_data(idata)
    3692       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3693       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3694       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3695       846866 :          idata = idata + 1
    3696       846866 :          data_tmp = full_data(idata)
    3697       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3698       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3699       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3700       846866 :          idata = idata + 1
    3701       846866 :          data_tmp = full_data(idata)
    3702       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3703       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3704       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3705       846866 :          idata = idata + 1
    3706       846866 :          data_tmp = full_data(idata)
    3707       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3708       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3709       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3710       846866 :          idata = idata + 1
    3711       846866 :          data_tmp = full_data(idata)
    3712       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3713       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3714       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3715       846866 :          idata = idata + 1
    3716       846866 :          data_tmp = full_data(idata)
    3717       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3718       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3719       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3720       846866 :          idata = idata + 1
    3721       846866 :          data_tmp = full_data(idata)
    3722       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3723       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3724       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3725       846866 :          idata = idata + 1
    3726       846866 :          data_tmp = full_data(idata)
    3727       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3728       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3729       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3730       846866 :          idata = idata + 1
    3731       846866 :          data_tmp = full_data(idata)
    3732       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3733       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3734       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3735       846866 :          idata = idata + 1
    3736       846866 :          data_tmp = full_data(idata)
    3737       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3738       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3739       846866 :          pack_tmp = ISHFT(pack_tmp, -2)
    3740       846866 :          idata = idata + 1
    3741       846866 :          data_tmp = full_data(idata)
    3742       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3743       846866 :          data_tmp = IAND(data_tmp, mask_left(2))
    3744       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3745       846866 :          ipack = ipack + 1
    3746       846866 :          packed_data(ipack) = pack_tmp
    3747       846866 :          data_tmp = full_data(idata)
    3748       846866 :          pack_tmp = ISHFT(data_tmp, 60)
    3749       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3750       846866 :          idata = idata + 1
    3751       846866 :          data_tmp = full_data(idata)
    3752       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3753       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3754       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3755       846866 :          idata = idata + 1
    3756       846866 :          data_tmp = full_data(idata)
    3757       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3758       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3759       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3760       846866 :          idata = idata + 1
    3761       846866 :          data_tmp = full_data(idata)
    3762       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3763       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3764       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3765       846866 :          idata = idata + 1
    3766       846866 :          data_tmp = full_data(idata)
    3767       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3768       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3769       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3770       846866 :          idata = idata + 1
    3771       846866 :          data_tmp = full_data(idata)
    3772       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3773       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3774       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3775       846866 :          idata = idata + 1
    3776       846866 :          data_tmp = full_data(idata)
    3777       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3778       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3779       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3780       846866 :          idata = idata + 1
    3781       846866 :          data_tmp = full_data(idata)
    3782       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3783       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3784       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3785       846866 :          idata = idata + 1
    3786       846866 :          data_tmp = full_data(idata)
    3787       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3788       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3789       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3790       846866 :          idata = idata + 1
    3791       846866 :          data_tmp = full_data(idata)
    3792       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3793       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3794       846866 :          pack_tmp = ISHFT(pack_tmp, -6)
    3795       846866 :          idata = idata + 1
    3796       846866 :          data_tmp = full_data(idata)
    3797       846866 :          data_tmp = ISHFT(data_tmp, 58)
    3798       846866 :          pack_tmp = IOR(pack_tmp, data_tmp)
    3799              :          pack_tmp = ISHFT(pack_tmp, 0)
    3800       846866 :          pack_tmp = ISHFT(pack_tmp, 0)
    3801       846866 :          ipack = ipack + 1
    3802       846895 :          packed_data(ipack) = pack_tmp
    3803              :       END DO
    3804        53165 :       IF (Ndata_rep < Ndata) THEN
    3805          444 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    3806              :       END IF
    3807        53165 :    END SUBROUTINE ints2bits_6
    3808              : 
    3809              : ! **************************************************************************************************
    3810              : !> \brief ...
    3811              : !> \param Ndata ...
    3812              : !> \param packed_data ...
    3813              : !> \param full_data ...
    3814              : ! **************************************************************************************************
    3815       254685 :    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       254685 :       ipack = 0
    3826       254685 :       idata = 0
    3827       254685 :       pack_tmp = 0
    3828       254685 :       Ndata_rep = (Ndata/64)*64
    3829       254685 :       DO kdata = 1, Ndata_rep, 64
    3830      4039991 :          idata = idata + 1
    3831      4039991 :          data_tmp = ISHFT(pack_tmp, 6)
    3832      4039991 :          ipack = ipack + 1
    3833      4039991 :          pack_tmp = packed_data(ipack)
    3834      4039991 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    3835      4039991 :          pack_tmp = ISHFT(pack_tmp, -6)
    3836      4039991 :          idata = idata + 1
    3837      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3838      4039991 :          full_data(idata) = data_tmp
    3839      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3840      4039991 :          idata = idata + 1
    3841      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3842      4039991 :          full_data(idata) = data_tmp
    3843      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3844      4039991 :          idata = idata + 1
    3845      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3846      4039991 :          full_data(idata) = data_tmp
    3847      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3848      4039991 :          idata = idata + 1
    3849      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3850      4039991 :          full_data(idata) = data_tmp
    3851      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3852      4039991 :          idata = idata + 1
    3853      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3854      4039991 :          full_data(idata) = data_tmp
    3855      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3856      4039991 :          idata = idata + 1
    3857      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3858      4039991 :          full_data(idata) = data_tmp
    3859      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3860      4039991 :          idata = idata + 1
    3861      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3862      4039991 :          full_data(idata) = data_tmp
    3863      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3864      4039991 :          idata = idata + 1
    3865      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3866      4039991 :          full_data(idata) = data_tmp
    3867      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3868      4039991 :          idata = idata + 1
    3869      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3870      4039991 :          full_data(idata) = data_tmp
    3871      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3872      4039991 :          idata = idata + 1
    3873      4039991 :          data_tmp = ISHFT(pack_tmp, 2)
    3874      4039991 :          ipack = ipack + 1
    3875      4039991 :          pack_tmp = packed_data(ipack)
    3876      4039991 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    3877      4039991 :          pack_tmp = ISHFT(pack_tmp, -2)
    3878      4039991 :          idata = idata + 1
    3879      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3880      4039991 :          full_data(idata) = data_tmp
    3881      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3882      4039991 :          idata = idata + 1
    3883      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3884      4039991 :          full_data(idata) = data_tmp
    3885      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3886      4039991 :          idata = idata + 1
    3887      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3888      4039991 :          full_data(idata) = data_tmp
    3889      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3890      4039991 :          idata = idata + 1
    3891      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3892      4039991 :          full_data(idata) = data_tmp
    3893      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3894      4039991 :          idata = idata + 1
    3895      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3896      4039991 :          full_data(idata) = data_tmp
    3897      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3898      4039991 :          idata = idata + 1
    3899      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3900      4039991 :          full_data(idata) = data_tmp
    3901      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3902      4039991 :          idata = idata + 1
    3903      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3904      4039991 :          full_data(idata) = data_tmp
    3905      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3906      4039991 :          idata = idata + 1
    3907      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3908      4039991 :          full_data(idata) = data_tmp
    3909      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3910      4039991 :          idata = idata + 1
    3911      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3912      4039991 :          full_data(idata) = data_tmp
    3913      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3914      4039991 :          idata = idata + 1
    3915      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3916      4039991 :          full_data(idata) = data_tmp
    3917      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3918      4039991 :          idata = idata + 1
    3919      4039991 :          data_tmp = ISHFT(pack_tmp, 4)
    3920      4039991 :          ipack = ipack + 1
    3921      4039991 :          pack_tmp = packed_data(ipack)
    3922      4039991 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    3923      4039991 :          pack_tmp = ISHFT(pack_tmp, -4)
    3924      4039991 :          idata = idata + 1
    3925      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3926      4039991 :          full_data(idata) = data_tmp
    3927      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3928      4039991 :          idata = idata + 1
    3929      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3930      4039991 :          full_data(idata) = data_tmp
    3931      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3932      4039991 :          idata = idata + 1
    3933      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3934      4039991 :          full_data(idata) = data_tmp
    3935      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3936      4039991 :          idata = idata + 1
    3937      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3938      4039991 :          full_data(idata) = data_tmp
    3939      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3940      4039991 :          idata = idata + 1
    3941      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3942      4039991 :          full_data(idata) = data_tmp
    3943      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3944      4039991 :          idata = idata + 1
    3945      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3946      4039991 :          full_data(idata) = data_tmp
    3947      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3948      4039991 :          idata = idata + 1
    3949      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3950      4039991 :          full_data(idata) = data_tmp
    3951      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3952      4039991 :          idata = idata + 1
    3953      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3954      4039991 :          full_data(idata) = data_tmp
    3955      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3956      4039991 :          idata = idata + 1
    3957      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3958      4039991 :          full_data(idata) = data_tmp
    3959      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3960      4039991 :          idata = idata + 1
    3961      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3962      4039991 :          full_data(idata) = data_tmp
    3963      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3964      4039991 :          idata = idata + 1
    3965      4039991 :          data_tmp = ISHFT(pack_tmp, 6)
    3966      4039991 :          ipack = ipack + 1
    3967      4039991 :          pack_tmp = packed_data(ipack)
    3968      4039991 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    3969      4039991 :          pack_tmp = ISHFT(pack_tmp, -6)
    3970      4039991 :          idata = idata + 1
    3971      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3972      4039991 :          full_data(idata) = data_tmp
    3973      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3974      4039991 :          idata = idata + 1
    3975      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3976      4039991 :          full_data(idata) = data_tmp
    3977      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3978      4039991 :          idata = idata + 1
    3979      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3980      4039991 :          full_data(idata) = data_tmp
    3981      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3982      4039991 :          idata = idata + 1
    3983      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3984      4039991 :          full_data(idata) = data_tmp
    3985      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3986      4039991 :          idata = idata + 1
    3987      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3988      4039991 :          full_data(idata) = data_tmp
    3989      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3990      4039991 :          idata = idata + 1
    3991      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3992      4039991 :          full_data(idata) = data_tmp
    3993      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3994      4039991 :          idata = idata + 1
    3995      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    3996      4039991 :          full_data(idata) = data_tmp
    3997      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    3998      4039991 :          idata = idata + 1
    3999      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4000      4039991 :          full_data(idata) = data_tmp
    4001      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4002      4039991 :          idata = idata + 1
    4003      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4004      4039991 :          full_data(idata) = data_tmp
    4005      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4006      4039991 :          idata = idata + 1
    4007      4039991 :          data_tmp = ISHFT(pack_tmp, 2)
    4008      4039991 :          ipack = ipack + 1
    4009      4039991 :          pack_tmp = packed_data(ipack)
    4010      4039991 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    4011      4039991 :          pack_tmp = ISHFT(pack_tmp, -2)
    4012      4039991 :          idata = idata + 1
    4013      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4014      4039991 :          full_data(idata) = data_tmp
    4015      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4016      4039991 :          idata = idata + 1
    4017      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4018      4039991 :          full_data(idata) = data_tmp
    4019      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4020      4039991 :          idata = idata + 1
    4021      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4022      4039991 :          full_data(idata) = data_tmp
    4023      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4024      4039991 :          idata = idata + 1
    4025      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4026      4039991 :          full_data(idata) = data_tmp
    4027      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4028      4039991 :          idata = idata + 1
    4029      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4030      4039991 :          full_data(idata) = data_tmp
    4031      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4032      4039991 :          idata = idata + 1
    4033      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4034      4039991 :          full_data(idata) = data_tmp
    4035      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4036      4039991 :          idata = idata + 1
    4037      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4038      4039991 :          full_data(idata) = data_tmp
    4039      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4040      4039991 :          idata = idata + 1
    4041      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4042      4039991 :          full_data(idata) = data_tmp
    4043      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4044      4039991 :          idata = idata + 1
    4045      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4046      4039991 :          full_data(idata) = data_tmp
    4047      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4048      4039991 :          idata = idata + 1
    4049      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4050      4039991 :          full_data(idata) = data_tmp
    4051      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4052      4039991 :          idata = idata + 1
    4053      4039991 :          data_tmp = ISHFT(pack_tmp, 4)
    4054      4039991 :          ipack = ipack + 1
    4055      4039991 :          pack_tmp = packed_data(ipack)
    4056      4039991 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    4057      4039991 :          pack_tmp = ISHFT(pack_tmp, -4)
    4058      4039991 :          idata = idata + 1
    4059      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4060      4039991 :          full_data(idata) = data_tmp
    4061      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4062      4039991 :          idata = idata + 1
    4063      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4064      4039991 :          full_data(idata) = data_tmp
    4065      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4066      4039991 :          idata = idata + 1
    4067      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4068      4039991 :          full_data(idata) = data_tmp
    4069      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4070      4039991 :          idata = idata + 1
    4071      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4072      4039991 :          full_data(idata) = data_tmp
    4073      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4074      4039991 :          idata = idata + 1
    4075      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4076      4039991 :          full_data(idata) = data_tmp
    4077      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4078      4039991 :          idata = idata + 1
    4079      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4080      4039991 :          full_data(idata) = data_tmp
    4081      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4082      4039991 :          idata = idata + 1
    4083      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4084      4039991 :          full_data(idata) = data_tmp
    4085      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4086      4039991 :          idata = idata + 1
    4087      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4088      4039991 :          full_data(idata) = data_tmp
    4089      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4090      4039991 :          idata = idata + 1
    4091      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4092      4039991 :          full_data(idata) = data_tmp
    4093      4039991 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4094      4039991 :          idata = idata + 1
    4095      4039991 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4096      4039991 :          full_data(idata) = data_tmp
    4097      4040204 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4098              :       END DO
    4099       254685 :       IF (Ndata_rep < Ndata) THEN
    4100         4114 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    4101              :       END IF
    4102       254685 :    END SUBROUTINE bits2ints_6
    4103              : 
    4104              : ! **************************************************************************************************
    4105              : !> \brief ...
    4106              : !> \param Ndata ...
    4107              : !> \param packed_data ...
    4108              : !> \param full_data ...
    4109              : ! **************************************************************************************************
    4110        24789 :    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        24789 :       idata = 0
    4121        24789 :       ipack = 0
    4122        24789 :       Ndata_rep = (Ndata/64)*64
    4123        24789 :       DO kdata = 1, Ndata_rep, 64
    4124       396082 :          pack_tmp = 0
    4125       396082 :          idata = idata + 1
    4126       396082 :          data_tmp = full_data(idata)
    4127       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4128       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4129       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4130       396082 :          idata = idata + 1
    4131       396082 :          data_tmp = full_data(idata)
    4132       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4133       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4134       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4135       396082 :          idata = idata + 1
    4136       396082 :          data_tmp = full_data(idata)
    4137       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4138       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4139       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4140       396082 :          idata = idata + 1
    4141       396082 :          data_tmp = full_data(idata)
    4142       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4143       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4144       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4145       396082 :          idata = idata + 1
    4146       396082 :          data_tmp = full_data(idata)
    4147       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4148       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4149       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4150       396082 :          idata = idata + 1
    4151       396082 :          data_tmp = full_data(idata)
    4152       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4153       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4154       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4155       396082 :          idata = idata + 1
    4156       396082 :          data_tmp = full_data(idata)
    4157       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4158       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4159       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4160       396082 :          idata = idata + 1
    4161       396082 :          data_tmp = full_data(idata)
    4162       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4163       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4164       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4165       396082 :          idata = idata + 1
    4166       396082 :          data_tmp = full_data(idata)
    4167       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4168       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4169       396082 :          pack_tmp = ISHFT(pack_tmp, -1)
    4170       396082 :          idata = idata + 1
    4171       396082 :          data_tmp = full_data(idata)
    4172       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4173       396082 :          data_tmp = IAND(data_tmp, mask_left(1))
    4174       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4175       396082 :          ipack = ipack + 1
    4176       396082 :          packed_data(ipack) = pack_tmp
    4177       396082 :          data_tmp = full_data(idata)
    4178       396082 :          pack_tmp = ISHFT(data_tmp, 58)
    4179       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4180       396082 :          idata = idata + 1
    4181       396082 :          data_tmp = full_data(idata)
    4182       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4183       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4184       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4185       396082 :          idata = idata + 1
    4186       396082 :          data_tmp = full_data(idata)
    4187       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4188       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4189       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4190       396082 :          idata = idata + 1
    4191       396082 :          data_tmp = full_data(idata)
    4192       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4193       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4194       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4195       396082 :          idata = idata + 1
    4196       396082 :          data_tmp = full_data(idata)
    4197       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4198       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4199       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4200       396082 :          idata = idata + 1
    4201       396082 :          data_tmp = full_data(idata)
    4202       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4203       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4204       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4205       396082 :          idata = idata + 1
    4206       396082 :          data_tmp = full_data(idata)
    4207       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4208       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4209       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4210       396082 :          idata = idata + 1
    4211       396082 :          data_tmp = full_data(idata)
    4212       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4213       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4214       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4215       396082 :          idata = idata + 1
    4216       396082 :          data_tmp = full_data(idata)
    4217       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4218       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4219       396082 :          pack_tmp = ISHFT(pack_tmp, -2)
    4220       396082 :          idata = idata + 1
    4221       396082 :          data_tmp = full_data(idata)
    4222       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4223       396082 :          data_tmp = IAND(data_tmp, mask_left(2))
    4224       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4225       396082 :          ipack = ipack + 1
    4226       396082 :          packed_data(ipack) = pack_tmp
    4227       396082 :          data_tmp = full_data(idata)
    4228       396082 :          pack_tmp = ISHFT(data_tmp, 59)
    4229       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4230       396082 :          idata = idata + 1
    4231       396082 :          data_tmp = full_data(idata)
    4232       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4233       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4234       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4235       396082 :          idata = idata + 1
    4236       396082 :          data_tmp = full_data(idata)
    4237       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4238       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4239       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4240       396082 :          idata = idata + 1
    4241       396082 :          data_tmp = full_data(idata)
    4242       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4243       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4244       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4245       396082 :          idata = idata + 1
    4246       396082 :          data_tmp = full_data(idata)
    4247       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4248       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4249       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4250       396082 :          idata = idata + 1
    4251       396082 :          data_tmp = full_data(idata)
    4252       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4253       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4254       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4255       396082 :          idata = idata + 1
    4256       396082 :          data_tmp = full_data(idata)
    4257       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4258       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4259       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4260       396082 :          idata = idata + 1
    4261       396082 :          data_tmp = full_data(idata)
    4262       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4263       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4264       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4265       396082 :          idata = idata + 1
    4266       396082 :          data_tmp = full_data(idata)
    4267       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4268       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4269       396082 :          pack_tmp = ISHFT(pack_tmp, -3)
    4270       396082 :          idata = idata + 1
    4271       396082 :          data_tmp = full_data(idata)
    4272       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4273       396082 :          data_tmp = IAND(data_tmp, mask_left(3))
    4274       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4275       396082 :          ipack = ipack + 1
    4276       396082 :          packed_data(ipack) = pack_tmp
    4277       396082 :          data_tmp = full_data(idata)
    4278       396082 :          pack_tmp = ISHFT(data_tmp, 60)
    4279       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4280       396082 :          idata = idata + 1
    4281       396082 :          data_tmp = full_data(idata)
    4282       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4283       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4284       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4285       396082 :          idata = idata + 1
    4286       396082 :          data_tmp = full_data(idata)
    4287       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4288       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4289       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4290       396082 :          idata = idata + 1
    4291       396082 :          data_tmp = full_data(idata)
    4292       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4293       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4294       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4295       396082 :          idata = idata + 1
    4296       396082 :          data_tmp = full_data(idata)
    4297       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4298       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4299       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4300       396082 :          idata = idata + 1
    4301       396082 :          data_tmp = full_data(idata)
    4302       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4303       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4304       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4305       396082 :          idata = idata + 1
    4306       396082 :          data_tmp = full_data(idata)
    4307       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4308       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4309       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4310       396082 :          idata = idata + 1
    4311       396082 :          data_tmp = full_data(idata)
    4312       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4313       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4314       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4315       396082 :          idata = idata + 1
    4316       396082 :          data_tmp = full_data(idata)
    4317       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4318       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4319       396082 :          pack_tmp = ISHFT(pack_tmp, -4)
    4320       396082 :          idata = idata + 1
    4321       396082 :          data_tmp = full_data(idata)
    4322       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4323       396082 :          data_tmp = IAND(data_tmp, mask_left(4))
    4324       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4325       396082 :          ipack = ipack + 1
    4326       396082 :          packed_data(ipack) = pack_tmp
    4327       396082 :          data_tmp = full_data(idata)
    4328       396082 :          pack_tmp = ISHFT(data_tmp, 61)
    4329       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4330       396082 :          idata = idata + 1
    4331       396082 :          data_tmp = full_data(idata)
    4332       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4333       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4334       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4335       396082 :          idata = idata + 1
    4336       396082 :          data_tmp = full_data(idata)
    4337       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4338       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4339       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4340       396082 :          idata = idata + 1
    4341       396082 :          data_tmp = full_data(idata)
    4342       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4343       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4344       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4345       396082 :          idata = idata + 1
    4346       396082 :          data_tmp = full_data(idata)
    4347       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4348       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4349       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4350       396082 :          idata = idata + 1
    4351       396082 :          data_tmp = full_data(idata)
    4352       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4353       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4354       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4355       396082 :          idata = idata + 1
    4356       396082 :          data_tmp = full_data(idata)
    4357       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4358       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4359       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4360       396082 :          idata = idata + 1
    4361       396082 :          data_tmp = full_data(idata)
    4362       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4363       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4364       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4365       396082 :          idata = idata + 1
    4366       396082 :          data_tmp = full_data(idata)
    4367       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4368       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4369       396082 :          pack_tmp = ISHFT(pack_tmp, -5)
    4370       396082 :          idata = idata + 1
    4371       396082 :          data_tmp = full_data(idata)
    4372       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4373       396082 :          data_tmp = IAND(data_tmp, mask_left(5))
    4374       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4375       396082 :          ipack = ipack + 1
    4376       396082 :          packed_data(ipack) = pack_tmp
    4377       396082 :          data_tmp = full_data(idata)
    4378       396082 :          pack_tmp = ISHFT(data_tmp, 62)
    4379       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4380       396082 :          idata = idata + 1
    4381       396082 :          data_tmp = full_data(idata)
    4382       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4383       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4384       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4385       396082 :          idata = idata + 1
    4386       396082 :          data_tmp = full_data(idata)
    4387       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4388       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4389       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4390       396082 :          idata = idata + 1
    4391       396082 :          data_tmp = full_data(idata)
    4392       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4393       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4394       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4395       396082 :          idata = idata + 1
    4396       396082 :          data_tmp = full_data(idata)
    4397       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4398       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4399       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4400       396082 :          idata = idata + 1
    4401       396082 :          data_tmp = full_data(idata)
    4402       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4403       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4404       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4405       396082 :          idata = idata + 1
    4406       396082 :          data_tmp = full_data(idata)
    4407       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4408       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4409       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4410       396082 :          idata = idata + 1
    4411       396082 :          data_tmp = full_data(idata)
    4412       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4413       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4414       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4415       396082 :          idata = idata + 1
    4416       396082 :          data_tmp = full_data(idata)
    4417       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4418       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4419       396082 :          pack_tmp = ISHFT(pack_tmp, -6)
    4420       396082 :          idata = idata + 1
    4421       396082 :          data_tmp = full_data(idata)
    4422       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4423       396082 :          data_tmp = IAND(data_tmp, mask_left(6))
    4424       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4425       396082 :          ipack = ipack + 1
    4426       396082 :          packed_data(ipack) = pack_tmp
    4427       396082 :          data_tmp = full_data(idata)
    4428       396082 :          pack_tmp = ISHFT(data_tmp, 63)
    4429       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4430       396082 :          idata = idata + 1
    4431       396082 :          data_tmp = full_data(idata)
    4432       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4433       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4434       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4435       396082 :          idata = idata + 1
    4436       396082 :          data_tmp = full_data(idata)
    4437       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4438       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4439       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4440       396082 :          idata = idata + 1
    4441       396082 :          data_tmp = full_data(idata)
    4442       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4443       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4444       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4445       396082 :          idata = idata + 1
    4446       396082 :          data_tmp = full_data(idata)
    4447       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4448       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4449       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4450       396082 :          idata = idata + 1
    4451       396082 :          data_tmp = full_data(idata)
    4452       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4453       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4454       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4455       396082 :          idata = idata + 1
    4456       396082 :          data_tmp = full_data(idata)
    4457       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4458       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4459       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4460       396082 :          idata = idata + 1
    4461       396082 :          data_tmp = full_data(idata)
    4462       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4463       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4464       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4465       396082 :          idata = idata + 1
    4466       396082 :          data_tmp = full_data(idata)
    4467       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4468       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4469       396082 :          pack_tmp = ISHFT(pack_tmp, -7)
    4470       396082 :          idata = idata + 1
    4471       396082 :          data_tmp = full_data(idata)
    4472       396082 :          data_tmp = ISHFT(data_tmp, 57)
    4473       396082 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4474              :          pack_tmp = ISHFT(pack_tmp, 0)
    4475       396082 :          pack_tmp = ISHFT(pack_tmp, 0)
    4476       396082 :          ipack = ipack + 1
    4477       396084 :          packed_data(ipack) = pack_tmp
    4478              :       END DO
    4479        24789 :       IF (Ndata_rep < Ndata) THEN
    4480           60 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    4481              :       END IF
    4482        24789 :    END SUBROUTINE ints2bits_7
    4483              : 
    4484              : ! **************************************************************************************************
    4485              : !> \brief ...
    4486              : !> \param Ndata ...
    4487              : !> \param packed_data ...
    4488              : !> \param full_data ...
    4489              : ! **************************************************************************************************
    4490       101997 :    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       101997 :       ipack = 0
    4501       101997 :       idata = 0
    4502       101997 :       pack_tmp = 0
    4503       101997 :       Ndata_rep = (Ndata/64)*64
    4504       101997 :       DO kdata = 1, Ndata_rep, 64
    4505      1626543 :          idata = idata + 1
    4506      1626543 :          data_tmp = ISHFT(pack_tmp, 7)
    4507      1626543 :          ipack = ipack + 1
    4508      1626543 :          pack_tmp = packed_data(ipack)
    4509      1626543 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    4510      1626543 :          pack_tmp = ISHFT(pack_tmp, -7)
    4511      1626543 :          idata = idata + 1
    4512      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4513      1626543 :          full_data(idata) = data_tmp
    4514      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4515      1626543 :          idata = idata + 1
    4516      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4517      1626543 :          full_data(idata) = data_tmp
    4518      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4519      1626543 :          idata = idata + 1
    4520      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4521      1626543 :          full_data(idata) = data_tmp
    4522      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4523      1626543 :          idata = idata + 1
    4524      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4525      1626543 :          full_data(idata) = data_tmp
    4526      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4527      1626543 :          idata = idata + 1
    4528      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4529      1626543 :          full_data(idata) = data_tmp
    4530      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4531      1626543 :          idata = idata + 1
    4532      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4533      1626543 :          full_data(idata) = data_tmp
    4534      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4535      1626543 :          idata = idata + 1
    4536      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4537      1626543 :          full_data(idata) = data_tmp
    4538      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4539      1626543 :          idata = idata + 1
    4540      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4541      1626543 :          full_data(idata) = data_tmp
    4542      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4543      1626543 :          idata = idata + 1
    4544      1626543 :          data_tmp = ISHFT(pack_tmp, 6)
    4545      1626543 :          ipack = ipack + 1
    4546      1626543 :          pack_tmp = packed_data(ipack)
    4547      1626543 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    4548      1626543 :          pack_tmp = ISHFT(pack_tmp, -6)
    4549      1626543 :          idata = idata + 1
    4550      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4551      1626543 :          full_data(idata) = data_tmp
    4552      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4553      1626543 :          idata = idata + 1
    4554      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4555      1626543 :          full_data(idata) = data_tmp
    4556      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4557      1626543 :          idata = idata + 1
    4558      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4559      1626543 :          full_data(idata) = data_tmp
    4560      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4561      1626543 :          idata = idata + 1
    4562      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4563      1626543 :          full_data(idata) = data_tmp
    4564      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4565      1626543 :          idata = idata + 1
    4566      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4567      1626543 :          full_data(idata) = data_tmp
    4568      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4569      1626543 :          idata = idata + 1
    4570      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4571      1626543 :          full_data(idata) = data_tmp
    4572      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4573      1626543 :          idata = idata + 1
    4574      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4575      1626543 :          full_data(idata) = data_tmp
    4576      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4577      1626543 :          idata = idata + 1
    4578      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4579      1626543 :          full_data(idata) = data_tmp
    4580      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4581      1626543 :          idata = idata + 1
    4582      1626543 :          data_tmp = ISHFT(pack_tmp, 5)
    4583      1626543 :          ipack = ipack + 1
    4584      1626543 :          pack_tmp = packed_data(ipack)
    4585      1626543 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    4586      1626543 :          pack_tmp = ISHFT(pack_tmp, -5)
    4587      1626543 :          idata = idata + 1
    4588      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4589      1626543 :          full_data(idata) = data_tmp
    4590      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4591      1626543 :          idata = idata + 1
    4592      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4593      1626543 :          full_data(idata) = data_tmp
    4594      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4595      1626543 :          idata = idata + 1
    4596      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4597      1626543 :          full_data(idata) = data_tmp
    4598      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4599      1626543 :          idata = idata + 1
    4600      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4601      1626543 :          full_data(idata) = data_tmp
    4602      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4603      1626543 :          idata = idata + 1
    4604      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4605      1626543 :          full_data(idata) = data_tmp
    4606      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4607      1626543 :          idata = idata + 1
    4608      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4609      1626543 :          full_data(idata) = data_tmp
    4610      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4611      1626543 :          idata = idata + 1
    4612      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4613      1626543 :          full_data(idata) = data_tmp
    4614      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4615      1626543 :          idata = idata + 1
    4616      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4617      1626543 :          full_data(idata) = data_tmp
    4618      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4619      1626543 :          idata = idata + 1
    4620      1626543 :          data_tmp = ISHFT(pack_tmp, 4)
    4621      1626543 :          ipack = ipack + 1
    4622      1626543 :          pack_tmp = packed_data(ipack)
    4623      1626543 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    4624      1626543 :          pack_tmp = ISHFT(pack_tmp, -4)
    4625      1626543 :          idata = idata + 1
    4626      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4627      1626543 :          full_data(idata) = data_tmp
    4628      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4629      1626543 :          idata = idata + 1
    4630      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4631      1626543 :          full_data(idata) = data_tmp
    4632      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4633      1626543 :          idata = idata + 1
    4634      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4635      1626543 :          full_data(idata) = data_tmp
    4636      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4637      1626543 :          idata = idata + 1
    4638      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4639      1626543 :          full_data(idata) = data_tmp
    4640      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4641      1626543 :          idata = idata + 1
    4642      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4643      1626543 :          full_data(idata) = data_tmp
    4644      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4645      1626543 :          idata = idata + 1
    4646      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4647      1626543 :          full_data(idata) = data_tmp
    4648      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4649      1626543 :          idata = idata + 1
    4650      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4651      1626543 :          full_data(idata) = data_tmp
    4652      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4653      1626543 :          idata = idata + 1
    4654      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4655      1626543 :          full_data(idata) = data_tmp
    4656      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4657      1626543 :          idata = idata + 1
    4658      1626543 :          data_tmp = ISHFT(pack_tmp, 3)
    4659      1626543 :          ipack = ipack + 1
    4660      1626543 :          pack_tmp = packed_data(ipack)
    4661      1626543 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    4662      1626543 :          pack_tmp = ISHFT(pack_tmp, -3)
    4663      1626543 :          idata = idata + 1
    4664      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4665      1626543 :          full_data(idata) = data_tmp
    4666      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4667      1626543 :          idata = idata + 1
    4668      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4669      1626543 :          full_data(idata) = data_tmp
    4670      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4671      1626543 :          idata = idata + 1
    4672      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4673      1626543 :          full_data(idata) = data_tmp
    4674      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4675      1626543 :          idata = idata + 1
    4676      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4677      1626543 :          full_data(idata) = data_tmp
    4678      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4679      1626543 :          idata = idata + 1
    4680      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4681      1626543 :          full_data(idata) = data_tmp
    4682      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4683      1626543 :          idata = idata + 1
    4684      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4685      1626543 :          full_data(idata) = data_tmp
    4686      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4687      1626543 :          idata = idata + 1
    4688      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4689      1626543 :          full_data(idata) = data_tmp
    4690      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4691      1626543 :          idata = idata + 1
    4692      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4693      1626543 :          full_data(idata) = data_tmp
    4694      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4695      1626543 :          idata = idata + 1
    4696      1626543 :          data_tmp = ISHFT(pack_tmp, 2)
    4697      1626543 :          ipack = ipack + 1
    4698      1626543 :          pack_tmp = packed_data(ipack)
    4699      1626543 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    4700      1626543 :          pack_tmp = ISHFT(pack_tmp, -2)
    4701      1626543 :          idata = idata + 1
    4702      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4703      1626543 :          full_data(idata) = data_tmp
    4704      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4705      1626543 :          idata = idata + 1
    4706      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4707      1626543 :          full_data(idata) = data_tmp
    4708      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4709      1626543 :          idata = idata + 1
    4710      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4711      1626543 :          full_data(idata) = data_tmp
    4712      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4713      1626543 :          idata = idata + 1
    4714      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4715      1626543 :          full_data(idata) = data_tmp
    4716      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4717      1626543 :          idata = idata + 1
    4718      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4719      1626543 :          full_data(idata) = data_tmp
    4720      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4721      1626543 :          idata = idata + 1
    4722      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4723      1626543 :          full_data(idata) = data_tmp
    4724      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4725      1626543 :          idata = idata + 1
    4726      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4727      1626543 :          full_data(idata) = data_tmp
    4728      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4729      1626543 :          idata = idata + 1
    4730      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4731      1626543 :          full_data(idata) = data_tmp
    4732      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4733      1626543 :          idata = idata + 1
    4734      1626543 :          data_tmp = ISHFT(pack_tmp, 1)
    4735      1626543 :          ipack = ipack + 1
    4736      1626543 :          pack_tmp = packed_data(ipack)
    4737      1626543 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    4738      1626543 :          pack_tmp = ISHFT(pack_tmp, -1)
    4739      1626543 :          idata = idata + 1
    4740      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4741      1626543 :          full_data(idata) = data_tmp
    4742      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4743      1626543 :          idata = idata + 1
    4744      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4745      1626543 :          full_data(idata) = data_tmp
    4746      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4747      1626543 :          idata = idata + 1
    4748      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4749      1626543 :          full_data(idata) = data_tmp
    4750      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4751      1626543 :          idata = idata + 1
    4752      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4753      1626543 :          full_data(idata) = data_tmp
    4754      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4755      1626543 :          idata = idata + 1
    4756      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4757      1626543 :          full_data(idata) = data_tmp
    4758      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4759      1626543 :          idata = idata + 1
    4760      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4761      1626543 :          full_data(idata) = data_tmp
    4762      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4763      1626543 :          idata = idata + 1
    4764      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4765      1626543 :          full_data(idata) = data_tmp
    4766      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4767      1626543 :          idata = idata + 1
    4768      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4769      1626543 :          full_data(idata) = data_tmp
    4770      1626543 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4771      1626543 :          idata = idata + 1
    4772      1626543 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    4773      1626543 :          full_data(idata) = data_tmp
    4774      1626557 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    4775              :       END DO
    4776       101997 :       IF (Ndata_rep < Ndata) THEN
    4777          610 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    4778              :       END IF
    4779       101997 :    END SUBROUTINE bits2ints_7
    4780              : 
    4781              : ! **************************************************************************************************
    4782              : !> \brief ...
    4783              : !> \param Ndata ...
    4784              : !> \param packed_data ...
    4785              : !> \param full_data ...
    4786              : ! **************************************************************************************************
    4787        24779 :    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        24779 :       idata = 0
    4798        24779 :       ipack = 0
    4799        24779 :       Ndata_rep = (Ndata/64)*64
    4800        24779 :       DO kdata = 1, Ndata_rep, 64
    4801       395920 :          pack_tmp = 0
    4802       395920 :          idata = idata + 1
    4803       395920 :          data_tmp = full_data(idata)
    4804       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4805       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4806       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4807       395920 :          idata = idata + 1
    4808       395920 :          data_tmp = full_data(idata)
    4809       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4810       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4811       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4812       395920 :          idata = idata + 1
    4813       395920 :          data_tmp = full_data(idata)
    4814       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4815       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4816       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4817       395920 :          idata = idata + 1
    4818       395920 :          data_tmp = full_data(idata)
    4819       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4820       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4821       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4822       395920 :          idata = idata + 1
    4823       395920 :          data_tmp = full_data(idata)
    4824       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4825       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4826       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4827       395920 :          idata = idata + 1
    4828       395920 :          data_tmp = full_data(idata)
    4829       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4830       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4831       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4832       395920 :          idata = idata + 1
    4833       395920 :          data_tmp = full_data(idata)
    4834       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4835       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4836       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4837       395920 :          idata = idata + 1
    4838       395920 :          data_tmp = full_data(idata)
    4839       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4840       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4841       395920 :          pack_tmp = ISHFT(pack_tmp, 0)
    4842       395920 :          idata = idata + 1
    4843       395920 :          data_tmp = full_data(idata)
    4844              :          data_tmp = ISHFT(data_tmp, 56)
    4845       395920 :          data_tmp = IAND(data_tmp, mask_left(0))
    4846       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4847       395920 :          ipack = ipack + 1
    4848       395920 :          packed_data(ipack) = pack_tmp
    4849       395920 :          data_tmp = full_data(idata)
    4850       395920 :          pack_tmp = ISHFT(data_tmp, 56)
    4851       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4852       395920 :          idata = idata + 1
    4853       395920 :          data_tmp = full_data(idata)
    4854       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4855       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4856       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4857       395920 :          idata = idata + 1
    4858       395920 :          data_tmp = full_data(idata)
    4859       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4860       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4861       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4862       395920 :          idata = idata + 1
    4863       395920 :          data_tmp = full_data(idata)
    4864       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4865       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4866       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4867       395920 :          idata = idata + 1
    4868       395920 :          data_tmp = full_data(idata)
    4869       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4870       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4871       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4872       395920 :          idata = idata + 1
    4873       395920 :          data_tmp = full_data(idata)
    4874       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4875       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4876       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4877       395920 :          idata = idata + 1
    4878       395920 :          data_tmp = full_data(idata)
    4879       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4880       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4881       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4882       395920 :          idata = idata + 1
    4883       395920 :          data_tmp = full_data(idata)
    4884       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4885       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4886       395920 :          pack_tmp = ISHFT(pack_tmp, 0)
    4887       395920 :          idata = idata + 1
    4888       395920 :          data_tmp = full_data(idata)
    4889              :          data_tmp = ISHFT(data_tmp, 56)
    4890       395920 :          data_tmp = IAND(data_tmp, mask_left(0))
    4891       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4892       395920 :          ipack = ipack + 1
    4893       395920 :          packed_data(ipack) = pack_tmp
    4894       395920 :          data_tmp = full_data(idata)
    4895       395920 :          pack_tmp = ISHFT(data_tmp, 56)
    4896       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4897       395920 :          idata = idata + 1
    4898       395920 :          data_tmp = full_data(idata)
    4899       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4900       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4901       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4902       395920 :          idata = idata + 1
    4903       395920 :          data_tmp = full_data(idata)
    4904       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4905       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4906       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4907       395920 :          idata = idata + 1
    4908       395920 :          data_tmp = full_data(idata)
    4909       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4910       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4911       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4912       395920 :          idata = idata + 1
    4913       395920 :          data_tmp = full_data(idata)
    4914       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4915       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4916       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4917       395920 :          idata = idata + 1
    4918       395920 :          data_tmp = full_data(idata)
    4919       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4920       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4921       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4922       395920 :          idata = idata + 1
    4923       395920 :          data_tmp = full_data(idata)
    4924       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4925       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4926       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4927       395920 :          idata = idata + 1
    4928       395920 :          data_tmp = full_data(idata)
    4929       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4930       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4931       395920 :          pack_tmp = ISHFT(pack_tmp, 0)
    4932       395920 :          idata = idata + 1
    4933       395920 :          data_tmp = full_data(idata)
    4934              :          data_tmp = ISHFT(data_tmp, 56)
    4935       395920 :          data_tmp = IAND(data_tmp, mask_left(0))
    4936       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4937       395920 :          ipack = ipack + 1
    4938       395920 :          packed_data(ipack) = pack_tmp
    4939       395920 :          data_tmp = full_data(idata)
    4940       395920 :          pack_tmp = ISHFT(data_tmp, 56)
    4941       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4942       395920 :          idata = idata + 1
    4943       395920 :          data_tmp = full_data(idata)
    4944       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4945       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4946       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4947       395920 :          idata = idata + 1
    4948       395920 :          data_tmp = full_data(idata)
    4949       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4950       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4951       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4952       395920 :          idata = idata + 1
    4953       395920 :          data_tmp = full_data(idata)
    4954       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4955       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4956       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4957       395920 :          idata = idata + 1
    4958       395920 :          data_tmp = full_data(idata)
    4959       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4960       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4961       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4962       395920 :          idata = idata + 1
    4963       395920 :          data_tmp = full_data(idata)
    4964       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4965       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4966       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4967       395920 :          idata = idata + 1
    4968       395920 :          data_tmp = full_data(idata)
    4969       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4970       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4971       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4972       395920 :          idata = idata + 1
    4973       395920 :          data_tmp = full_data(idata)
    4974       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4975       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4976       395920 :          pack_tmp = ISHFT(pack_tmp, 0)
    4977       395920 :          idata = idata + 1
    4978       395920 :          data_tmp = full_data(idata)
    4979              :          data_tmp = ISHFT(data_tmp, 56)
    4980       395920 :          data_tmp = IAND(data_tmp, mask_left(0))
    4981       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4982       395920 :          ipack = ipack + 1
    4983       395920 :          packed_data(ipack) = pack_tmp
    4984       395920 :          data_tmp = full_data(idata)
    4985       395920 :          pack_tmp = ISHFT(data_tmp, 56)
    4986       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4987       395920 :          idata = idata + 1
    4988       395920 :          data_tmp = full_data(idata)
    4989       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4990       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4991       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4992       395920 :          idata = idata + 1
    4993       395920 :          data_tmp = full_data(idata)
    4994       395920 :          data_tmp = ISHFT(data_tmp, 56)
    4995       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    4996       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    4997       395920 :          idata = idata + 1
    4998       395920 :          data_tmp = full_data(idata)
    4999       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5000       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5001       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5002       395920 :          idata = idata + 1
    5003       395920 :          data_tmp = full_data(idata)
    5004       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5005       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5006       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5007       395920 :          idata = idata + 1
    5008       395920 :          data_tmp = full_data(idata)
    5009       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5010       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5011       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5012       395920 :          idata = idata + 1
    5013       395920 :          data_tmp = full_data(idata)
    5014       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5015       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5016       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5017       395920 :          idata = idata + 1
    5018       395920 :          data_tmp = full_data(idata)
    5019       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5020       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5021       395920 :          pack_tmp = ISHFT(pack_tmp, 0)
    5022       395920 :          idata = idata + 1
    5023       395920 :          data_tmp = full_data(idata)
    5024              :          data_tmp = ISHFT(data_tmp, 56)
    5025       395920 :          data_tmp = IAND(data_tmp, mask_left(0))
    5026       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5027       395920 :          ipack = ipack + 1
    5028       395920 :          packed_data(ipack) = pack_tmp
    5029       395920 :          data_tmp = full_data(idata)
    5030       395920 :          pack_tmp = ISHFT(data_tmp, 56)
    5031       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5032       395920 :          idata = idata + 1
    5033       395920 :          data_tmp = full_data(idata)
    5034       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5035       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5036       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5037       395920 :          idata = idata + 1
    5038       395920 :          data_tmp = full_data(idata)
    5039       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5040       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5041       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5042       395920 :          idata = idata + 1
    5043       395920 :          data_tmp = full_data(idata)
    5044       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5045       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5046       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5047       395920 :          idata = idata + 1
    5048       395920 :          data_tmp = full_data(idata)
    5049       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5050       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5051       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5052       395920 :          idata = idata + 1
    5053       395920 :          data_tmp = full_data(idata)
    5054       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5055       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5056       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5057       395920 :          idata = idata + 1
    5058       395920 :          data_tmp = full_data(idata)
    5059       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5060       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5061       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5062       395920 :          idata = idata + 1
    5063       395920 :          data_tmp = full_data(idata)
    5064       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5065       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5066       395920 :          pack_tmp = ISHFT(pack_tmp, 0)
    5067       395920 :          idata = idata + 1
    5068       395920 :          data_tmp = full_data(idata)
    5069              :          data_tmp = ISHFT(data_tmp, 56)
    5070       395920 :          data_tmp = IAND(data_tmp, mask_left(0))
    5071       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5072       395920 :          ipack = ipack + 1
    5073       395920 :          packed_data(ipack) = pack_tmp
    5074       395920 :          data_tmp = full_data(idata)
    5075       395920 :          pack_tmp = ISHFT(data_tmp, 56)
    5076       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5077       395920 :          idata = idata + 1
    5078       395920 :          data_tmp = full_data(idata)
    5079       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5080       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5081       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5082       395920 :          idata = idata + 1
    5083       395920 :          data_tmp = full_data(idata)
    5084       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5085       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5086       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5087       395920 :          idata = idata + 1
    5088       395920 :          data_tmp = full_data(idata)
    5089       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5090       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5091       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5092       395920 :          idata = idata + 1
    5093       395920 :          data_tmp = full_data(idata)
    5094       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5095       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5096       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5097       395920 :          idata = idata + 1
    5098       395920 :          data_tmp = full_data(idata)
    5099       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5100       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5101       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5102       395920 :          idata = idata + 1
    5103       395920 :          data_tmp = full_data(idata)
    5104       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5105       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5106       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5107       395920 :          idata = idata + 1
    5108       395920 :          data_tmp = full_data(idata)
    5109       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5110       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5111       395920 :          pack_tmp = ISHFT(pack_tmp, 0)
    5112       395920 :          idata = idata + 1
    5113       395920 :          data_tmp = full_data(idata)
    5114              :          data_tmp = ISHFT(data_tmp, 56)
    5115       395920 :          data_tmp = IAND(data_tmp, mask_left(0))
    5116       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5117       395920 :          ipack = ipack + 1
    5118       395920 :          packed_data(ipack) = pack_tmp
    5119       395920 :          data_tmp = full_data(idata)
    5120       395920 :          pack_tmp = ISHFT(data_tmp, 56)
    5121       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5122       395920 :          idata = idata + 1
    5123       395920 :          data_tmp = full_data(idata)
    5124       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5125       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5126       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5127       395920 :          idata = idata + 1
    5128       395920 :          data_tmp = full_data(idata)
    5129       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5130       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5131       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5132       395920 :          idata = idata + 1
    5133       395920 :          data_tmp = full_data(idata)
    5134       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5135       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5136       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5137       395920 :          idata = idata + 1
    5138       395920 :          data_tmp = full_data(idata)
    5139       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5140       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5141       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5142       395920 :          idata = idata + 1
    5143       395920 :          data_tmp = full_data(idata)
    5144       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5145       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5146       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5147       395920 :          idata = idata + 1
    5148       395920 :          data_tmp = full_data(idata)
    5149       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5150       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5151       395920 :          pack_tmp = ISHFT(pack_tmp, -8)
    5152       395920 :          idata = idata + 1
    5153       395920 :          data_tmp = full_data(idata)
    5154       395920 :          data_tmp = ISHFT(data_tmp, 56)
    5155       395920 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5156              :          pack_tmp = ISHFT(pack_tmp, 0)
    5157       395920 :          pack_tmp = ISHFT(pack_tmp, 0)
    5158       395920 :          ipack = ipack + 1
    5159       395954 :          packed_data(ipack) = pack_tmp
    5160              :       END DO
    5161        24779 :       IF (Ndata_rep < Ndata) THEN
    5162            0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    5163              :       END IF
    5164        24779 :    END SUBROUTINE ints2bits_8
    5165              : 
    5166              : ! **************************************************************************************************
    5167              : !> \brief ...
    5168              : !> \param Ndata ...
    5169              : !> \param packed_data ...
    5170              : !> \param full_data ...
    5171              : ! **************************************************************************************************
    5172       102054 :    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       102054 :       ipack = 0
    5183       102054 :       idata = 0
    5184       102054 :       pack_tmp = 0
    5185       102054 :       Ndata_rep = (Ndata/64)*64
    5186       102054 :       DO kdata = 1, Ndata_rep, 64
    5187      1627152 :          idata = idata + 1
    5188      1627152 :          data_tmp = ISHFT(pack_tmp, 8)
    5189      1627152 :          ipack = ipack + 1
    5190      1627152 :          pack_tmp = packed_data(ipack)
    5191      1627152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5192      1627152 :          pack_tmp = ISHFT(pack_tmp, -8)
    5193      1627152 :          idata = idata + 1
    5194      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5195      1627152 :          full_data(idata) = data_tmp
    5196      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5197      1627152 :          idata = idata + 1
    5198      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5199      1627152 :          full_data(idata) = data_tmp
    5200      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5201      1627152 :          idata = idata + 1
    5202      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5203      1627152 :          full_data(idata) = data_tmp
    5204      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5205      1627152 :          idata = idata + 1
    5206      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5207      1627152 :          full_data(idata) = data_tmp
    5208      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5209      1627152 :          idata = idata + 1
    5210      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5211      1627152 :          full_data(idata) = data_tmp
    5212      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5213      1627152 :          idata = idata + 1
    5214      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5215      1627152 :          full_data(idata) = data_tmp
    5216      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5217      1627152 :          idata = idata + 1
    5218      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5219      1627152 :          full_data(idata) = data_tmp
    5220      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5221      1627152 :          idata = idata + 1
    5222      1627152 :          data_tmp = ISHFT(pack_tmp, 8)
    5223      1627152 :          ipack = ipack + 1
    5224      1627152 :          pack_tmp = packed_data(ipack)
    5225      1627152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5226      1627152 :          pack_tmp = ISHFT(pack_tmp, -8)
    5227      1627152 :          idata = idata + 1
    5228      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5229      1627152 :          full_data(idata) = data_tmp
    5230      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5231      1627152 :          idata = idata + 1
    5232      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5233      1627152 :          full_data(idata) = data_tmp
    5234      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5235      1627152 :          idata = idata + 1
    5236      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5237      1627152 :          full_data(idata) = data_tmp
    5238      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5239      1627152 :          idata = idata + 1
    5240      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5241      1627152 :          full_data(idata) = data_tmp
    5242      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5243      1627152 :          idata = idata + 1
    5244      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5245      1627152 :          full_data(idata) = data_tmp
    5246      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5247      1627152 :          idata = idata + 1
    5248      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5249      1627152 :          full_data(idata) = data_tmp
    5250      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5251      1627152 :          idata = idata + 1
    5252      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5253      1627152 :          full_data(idata) = data_tmp
    5254      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5255      1627152 :          idata = idata + 1
    5256      1627152 :          data_tmp = ISHFT(pack_tmp, 8)
    5257      1627152 :          ipack = ipack + 1
    5258      1627152 :          pack_tmp = packed_data(ipack)
    5259      1627152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5260      1627152 :          pack_tmp = ISHFT(pack_tmp, -8)
    5261      1627152 :          idata = idata + 1
    5262      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5263      1627152 :          full_data(idata) = data_tmp
    5264      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5265      1627152 :          idata = idata + 1
    5266      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5267      1627152 :          full_data(idata) = data_tmp
    5268      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5269      1627152 :          idata = idata + 1
    5270      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5271      1627152 :          full_data(idata) = data_tmp
    5272      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5273      1627152 :          idata = idata + 1
    5274      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5275      1627152 :          full_data(idata) = data_tmp
    5276      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5277      1627152 :          idata = idata + 1
    5278      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5279      1627152 :          full_data(idata) = data_tmp
    5280      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5281      1627152 :          idata = idata + 1
    5282      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5283      1627152 :          full_data(idata) = data_tmp
    5284      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5285      1627152 :          idata = idata + 1
    5286      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5287      1627152 :          full_data(idata) = data_tmp
    5288      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5289      1627152 :          idata = idata + 1
    5290      1627152 :          data_tmp = ISHFT(pack_tmp, 8)
    5291      1627152 :          ipack = ipack + 1
    5292      1627152 :          pack_tmp = packed_data(ipack)
    5293      1627152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5294      1627152 :          pack_tmp = ISHFT(pack_tmp, -8)
    5295      1627152 :          idata = idata + 1
    5296      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5297      1627152 :          full_data(idata) = data_tmp
    5298      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5299      1627152 :          idata = idata + 1
    5300      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5301      1627152 :          full_data(idata) = data_tmp
    5302      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5303      1627152 :          idata = idata + 1
    5304      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5305      1627152 :          full_data(idata) = data_tmp
    5306      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5307      1627152 :          idata = idata + 1
    5308      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5309      1627152 :          full_data(idata) = data_tmp
    5310      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5311      1627152 :          idata = idata + 1
    5312      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5313      1627152 :          full_data(idata) = data_tmp
    5314      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5315      1627152 :          idata = idata + 1
    5316      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5317      1627152 :          full_data(idata) = data_tmp
    5318      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5319      1627152 :          idata = idata + 1
    5320      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5321      1627152 :          full_data(idata) = data_tmp
    5322      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5323      1627152 :          idata = idata + 1
    5324      1627152 :          data_tmp = ISHFT(pack_tmp, 8)
    5325      1627152 :          ipack = ipack + 1
    5326      1627152 :          pack_tmp = packed_data(ipack)
    5327      1627152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5328      1627152 :          pack_tmp = ISHFT(pack_tmp, -8)
    5329      1627152 :          idata = idata + 1
    5330      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5331      1627152 :          full_data(idata) = data_tmp
    5332      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5333      1627152 :          idata = idata + 1
    5334      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5335      1627152 :          full_data(idata) = data_tmp
    5336      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5337      1627152 :          idata = idata + 1
    5338      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5339      1627152 :          full_data(idata) = data_tmp
    5340      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5341      1627152 :          idata = idata + 1
    5342      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5343      1627152 :          full_data(idata) = data_tmp
    5344      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5345      1627152 :          idata = idata + 1
    5346      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5347      1627152 :          full_data(idata) = data_tmp
    5348      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5349      1627152 :          idata = idata + 1
    5350      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5351      1627152 :          full_data(idata) = data_tmp
    5352      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5353      1627152 :          idata = idata + 1
    5354      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5355      1627152 :          full_data(idata) = data_tmp
    5356      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5357      1627152 :          idata = idata + 1
    5358      1627152 :          data_tmp = ISHFT(pack_tmp, 8)
    5359      1627152 :          ipack = ipack + 1
    5360      1627152 :          pack_tmp = packed_data(ipack)
    5361      1627152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5362      1627152 :          pack_tmp = ISHFT(pack_tmp, -8)
    5363      1627152 :          idata = idata + 1
    5364      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5365      1627152 :          full_data(idata) = data_tmp
    5366      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5367      1627152 :          idata = idata + 1
    5368      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5369      1627152 :          full_data(idata) = data_tmp
    5370      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5371      1627152 :          idata = idata + 1
    5372      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5373      1627152 :          full_data(idata) = data_tmp
    5374      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5375      1627152 :          idata = idata + 1
    5376      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5377      1627152 :          full_data(idata) = data_tmp
    5378      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5379      1627152 :          idata = idata + 1
    5380      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5381      1627152 :          full_data(idata) = data_tmp
    5382      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5383      1627152 :          idata = idata + 1
    5384      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5385      1627152 :          full_data(idata) = data_tmp
    5386      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5387      1627152 :          idata = idata + 1
    5388      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5389      1627152 :          full_data(idata) = data_tmp
    5390      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5391      1627152 :          idata = idata + 1
    5392      1627152 :          data_tmp = ISHFT(pack_tmp, 8)
    5393      1627152 :          ipack = ipack + 1
    5394      1627152 :          pack_tmp = packed_data(ipack)
    5395      1627152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5396      1627152 :          pack_tmp = ISHFT(pack_tmp, -8)
    5397      1627152 :          idata = idata + 1
    5398      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5399      1627152 :          full_data(idata) = data_tmp
    5400      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5401      1627152 :          idata = idata + 1
    5402      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5403      1627152 :          full_data(idata) = data_tmp
    5404      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5405      1627152 :          idata = idata + 1
    5406      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5407      1627152 :          full_data(idata) = data_tmp
    5408      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5409      1627152 :          idata = idata + 1
    5410      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5411      1627152 :          full_data(idata) = data_tmp
    5412      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5413      1627152 :          idata = idata + 1
    5414      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5415      1627152 :          full_data(idata) = data_tmp
    5416      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5417      1627152 :          idata = idata + 1
    5418      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5419      1627152 :          full_data(idata) = data_tmp
    5420      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5421      1627152 :          idata = idata + 1
    5422      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5423      1627152 :          full_data(idata) = data_tmp
    5424      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5425      1627152 :          idata = idata + 1
    5426      1627152 :          data_tmp = ISHFT(pack_tmp, 8)
    5427      1627152 :          ipack = ipack + 1
    5428      1627152 :          pack_tmp = packed_data(ipack)
    5429      1627152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5430      1627152 :          pack_tmp = ISHFT(pack_tmp, -8)
    5431      1627152 :          idata = idata + 1
    5432      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5433      1627152 :          full_data(idata) = data_tmp
    5434      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5435      1627152 :          idata = idata + 1
    5436      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5437      1627152 :          full_data(idata) = data_tmp
    5438      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5439      1627152 :          idata = idata + 1
    5440      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5441      1627152 :          full_data(idata) = data_tmp
    5442      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5443      1627152 :          idata = idata + 1
    5444      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5445      1627152 :          full_data(idata) = data_tmp
    5446      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5447      1627152 :          idata = idata + 1
    5448      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5449      1627152 :          full_data(idata) = data_tmp
    5450      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5451      1627152 :          idata = idata + 1
    5452      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5453      1627152 :          full_data(idata) = data_tmp
    5454      1627152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5455      1627152 :          idata = idata + 1
    5456      1627152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5457      1627152 :          full_data(idata) = data_tmp
    5458      1627509 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5459              :       END DO
    5460       102054 :       IF (Ndata_rep < Ndata) THEN
    5461            0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    5462              :       END IF
    5463       102054 :    END SUBROUTINE bits2ints_8
    5464              : 
    5465              : ! **************************************************************************************************
    5466              : !> \brief ...
    5467              : !> \param Ndata ...
    5468              : !> \param packed_data ...
    5469              : !> \param full_data ...
    5470              : ! **************************************************************************************************
    5471        24736 :    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        24736 :       idata = 0
    5482        24736 :       ipack = 0
    5483        24736 :       Ndata_rep = (Ndata/64)*64
    5484        24736 :       DO kdata = 1, Ndata_rep, 64
    5485       395215 :          pack_tmp = 0
    5486       395215 :          idata = idata + 1
    5487       395215 :          data_tmp = full_data(idata)
    5488       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5489       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5490       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5491       395215 :          idata = idata + 1
    5492       395215 :          data_tmp = full_data(idata)
    5493       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5494       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5495       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5496       395215 :          idata = idata + 1
    5497       395215 :          data_tmp = full_data(idata)
    5498       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5499       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5500       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5501       395215 :          idata = idata + 1
    5502       395215 :          data_tmp = full_data(idata)
    5503       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5504       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5505       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5506       395215 :          idata = idata + 1
    5507       395215 :          data_tmp = full_data(idata)
    5508       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5509       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5510       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5511       395215 :          idata = idata + 1
    5512       395215 :          data_tmp = full_data(idata)
    5513       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5514       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5515       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5516       395215 :          idata = idata + 1
    5517       395215 :          data_tmp = full_data(idata)
    5518       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5519       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5520       395215 :          pack_tmp = ISHFT(pack_tmp, -1)
    5521       395215 :          idata = idata + 1
    5522       395215 :          data_tmp = full_data(idata)
    5523       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5524       395215 :          data_tmp = IAND(data_tmp, mask_left(1))
    5525       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5526       395215 :          ipack = ipack + 1
    5527       395215 :          packed_data(ipack) = pack_tmp
    5528       395215 :          data_tmp = full_data(idata)
    5529       395215 :          pack_tmp = ISHFT(data_tmp, 56)
    5530       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5531       395215 :          idata = idata + 1
    5532       395215 :          data_tmp = full_data(idata)
    5533       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5534       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5535       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5536       395215 :          idata = idata + 1
    5537       395215 :          data_tmp = full_data(idata)
    5538       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5539       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5540       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5541       395215 :          idata = idata + 1
    5542       395215 :          data_tmp = full_data(idata)
    5543       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5544       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5545       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5546       395215 :          idata = idata + 1
    5547       395215 :          data_tmp = full_data(idata)
    5548       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5549       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5550       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5551       395215 :          idata = idata + 1
    5552       395215 :          data_tmp = full_data(idata)
    5553       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5554       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5555       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5556       395215 :          idata = idata + 1
    5557       395215 :          data_tmp = full_data(idata)
    5558       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5559       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5560       395215 :          pack_tmp = ISHFT(pack_tmp, -2)
    5561       395215 :          idata = idata + 1
    5562       395215 :          data_tmp = full_data(idata)
    5563       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5564       395215 :          data_tmp = IAND(data_tmp, mask_left(2))
    5565       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5566       395215 :          ipack = ipack + 1
    5567       395215 :          packed_data(ipack) = pack_tmp
    5568       395215 :          data_tmp = full_data(idata)
    5569       395215 :          pack_tmp = ISHFT(data_tmp, 57)
    5570       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5571       395215 :          idata = idata + 1
    5572       395215 :          data_tmp = full_data(idata)
    5573       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5574       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5575       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5576       395215 :          idata = idata + 1
    5577       395215 :          data_tmp = full_data(idata)
    5578       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5579       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5580       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5581       395215 :          idata = idata + 1
    5582       395215 :          data_tmp = full_data(idata)
    5583       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5584       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5585       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5586       395215 :          idata = idata + 1
    5587       395215 :          data_tmp = full_data(idata)
    5588       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5589       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5590       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5591       395215 :          idata = idata + 1
    5592       395215 :          data_tmp = full_data(idata)
    5593       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5594       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5595       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5596       395215 :          idata = idata + 1
    5597       395215 :          data_tmp = full_data(idata)
    5598       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5599       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5600       395215 :          pack_tmp = ISHFT(pack_tmp, -3)
    5601       395215 :          idata = idata + 1
    5602       395215 :          data_tmp = full_data(idata)
    5603       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5604       395215 :          data_tmp = IAND(data_tmp, mask_left(3))
    5605       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5606       395215 :          ipack = ipack + 1
    5607       395215 :          packed_data(ipack) = pack_tmp
    5608       395215 :          data_tmp = full_data(idata)
    5609       395215 :          pack_tmp = ISHFT(data_tmp, 58)
    5610       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5611       395215 :          idata = idata + 1
    5612       395215 :          data_tmp = full_data(idata)
    5613       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5614       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5615       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5616       395215 :          idata = idata + 1
    5617       395215 :          data_tmp = full_data(idata)
    5618       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5619       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5620       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5621       395215 :          idata = idata + 1
    5622       395215 :          data_tmp = full_data(idata)
    5623       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5624       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5625       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5626       395215 :          idata = idata + 1
    5627       395215 :          data_tmp = full_data(idata)
    5628       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5629       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5630       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5631       395215 :          idata = idata + 1
    5632       395215 :          data_tmp = full_data(idata)
    5633       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5634       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5635       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5636       395215 :          idata = idata + 1
    5637       395215 :          data_tmp = full_data(idata)
    5638       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5639       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5640       395215 :          pack_tmp = ISHFT(pack_tmp, -4)
    5641       395215 :          idata = idata + 1
    5642       395215 :          data_tmp = full_data(idata)
    5643       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5644       395215 :          data_tmp = IAND(data_tmp, mask_left(4))
    5645       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5646       395215 :          ipack = ipack + 1
    5647       395215 :          packed_data(ipack) = pack_tmp
    5648       395215 :          data_tmp = full_data(idata)
    5649       395215 :          pack_tmp = ISHFT(data_tmp, 59)
    5650       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5651       395215 :          idata = idata + 1
    5652       395215 :          data_tmp = full_data(idata)
    5653       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5654       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5655       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5656       395215 :          idata = idata + 1
    5657       395215 :          data_tmp = full_data(idata)
    5658       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5659       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5660       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5661       395215 :          idata = idata + 1
    5662       395215 :          data_tmp = full_data(idata)
    5663       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5664       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5665       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5666       395215 :          idata = idata + 1
    5667       395215 :          data_tmp = full_data(idata)
    5668       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5669       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5670       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5671       395215 :          idata = idata + 1
    5672       395215 :          data_tmp = full_data(idata)
    5673       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5674       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5675       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5676       395215 :          idata = idata + 1
    5677       395215 :          data_tmp = full_data(idata)
    5678       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5679       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5680       395215 :          pack_tmp = ISHFT(pack_tmp, -5)
    5681       395215 :          idata = idata + 1
    5682       395215 :          data_tmp = full_data(idata)
    5683       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5684       395215 :          data_tmp = IAND(data_tmp, mask_left(5))
    5685       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5686       395215 :          ipack = ipack + 1
    5687       395215 :          packed_data(ipack) = pack_tmp
    5688       395215 :          data_tmp = full_data(idata)
    5689       395215 :          pack_tmp = ISHFT(data_tmp, 60)
    5690       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5691       395215 :          idata = idata + 1
    5692       395215 :          data_tmp = full_data(idata)
    5693       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5694       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5695       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5696       395215 :          idata = idata + 1
    5697       395215 :          data_tmp = full_data(idata)
    5698       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5699       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5700       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5701       395215 :          idata = idata + 1
    5702       395215 :          data_tmp = full_data(idata)
    5703       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5704       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5705       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5706       395215 :          idata = idata + 1
    5707       395215 :          data_tmp = full_data(idata)
    5708       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5709       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5710       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5711       395215 :          idata = idata + 1
    5712       395215 :          data_tmp = full_data(idata)
    5713       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5714       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5715       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5716       395215 :          idata = idata + 1
    5717       395215 :          data_tmp = full_data(idata)
    5718       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5719       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5720       395215 :          pack_tmp = ISHFT(pack_tmp, -6)
    5721       395215 :          idata = idata + 1
    5722       395215 :          data_tmp = full_data(idata)
    5723       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5724       395215 :          data_tmp = IAND(data_tmp, mask_left(6))
    5725       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5726       395215 :          ipack = ipack + 1
    5727       395215 :          packed_data(ipack) = pack_tmp
    5728       395215 :          data_tmp = full_data(idata)
    5729       395215 :          pack_tmp = ISHFT(data_tmp, 61)
    5730       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5731       395215 :          idata = idata + 1
    5732       395215 :          data_tmp = full_data(idata)
    5733       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5734       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5735       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5736       395215 :          idata = idata + 1
    5737       395215 :          data_tmp = full_data(idata)
    5738       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5739       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5740       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5741       395215 :          idata = idata + 1
    5742       395215 :          data_tmp = full_data(idata)
    5743       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5744       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5745       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5746       395215 :          idata = idata + 1
    5747       395215 :          data_tmp = full_data(idata)
    5748       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5749       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5750       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5751       395215 :          idata = idata + 1
    5752       395215 :          data_tmp = full_data(idata)
    5753       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5754       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5755       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5756       395215 :          idata = idata + 1
    5757       395215 :          data_tmp = full_data(idata)
    5758       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5759       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5760       395215 :          pack_tmp = ISHFT(pack_tmp, -7)
    5761       395215 :          idata = idata + 1
    5762       395215 :          data_tmp = full_data(idata)
    5763       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5764       395215 :          data_tmp = IAND(data_tmp, mask_left(7))
    5765       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5766       395215 :          ipack = ipack + 1
    5767       395215 :          packed_data(ipack) = pack_tmp
    5768       395215 :          data_tmp = full_data(idata)
    5769       395215 :          pack_tmp = ISHFT(data_tmp, 62)
    5770       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5771       395215 :          idata = idata + 1
    5772       395215 :          data_tmp = full_data(idata)
    5773       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5774       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5775       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5776       395215 :          idata = idata + 1
    5777       395215 :          data_tmp = full_data(idata)
    5778       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5779       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5780       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5781       395215 :          idata = idata + 1
    5782       395215 :          data_tmp = full_data(idata)
    5783       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5784       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5785       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5786       395215 :          idata = idata + 1
    5787       395215 :          data_tmp = full_data(idata)
    5788       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5789       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5790       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5791       395215 :          idata = idata + 1
    5792       395215 :          data_tmp = full_data(idata)
    5793       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5794       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5795       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5796       395215 :          idata = idata + 1
    5797       395215 :          data_tmp = full_data(idata)
    5798       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5799       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5800       395215 :          pack_tmp = ISHFT(pack_tmp, -8)
    5801       395215 :          idata = idata + 1
    5802       395215 :          data_tmp = full_data(idata)
    5803       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5804       395215 :          data_tmp = IAND(data_tmp, mask_left(8))
    5805       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5806       395215 :          ipack = ipack + 1
    5807       395215 :          packed_data(ipack) = pack_tmp
    5808       395215 :          data_tmp = full_data(idata)
    5809       395215 :          pack_tmp = ISHFT(data_tmp, 63)
    5810       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5811       395215 :          idata = idata + 1
    5812       395215 :          data_tmp = full_data(idata)
    5813       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5814       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5815       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5816       395215 :          idata = idata + 1
    5817       395215 :          data_tmp = full_data(idata)
    5818       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5819       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5820       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5821       395215 :          idata = idata + 1
    5822       395215 :          data_tmp = full_data(idata)
    5823       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5824       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5825       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5826       395215 :          idata = idata + 1
    5827       395215 :          data_tmp = full_data(idata)
    5828       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5829       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5830       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5831       395215 :          idata = idata + 1
    5832       395215 :          data_tmp = full_data(idata)
    5833       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5834       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5835       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5836       395215 :          idata = idata + 1
    5837       395215 :          data_tmp = full_data(idata)
    5838       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5839       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5840       395215 :          pack_tmp = ISHFT(pack_tmp, -9)
    5841       395215 :          idata = idata + 1
    5842       395215 :          data_tmp = full_data(idata)
    5843       395215 :          data_tmp = ISHFT(data_tmp, 55)
    5844       395215 :          pack_tmp = IOR(pack_tmp, data_tmp)
    5845              :          pack_tmp = ISHFT(pack_tmp, 0)
    5846       395215 :          pack_tmp = ISHFT(pack_tmp, 0)
    5847       395215 :          ipack = ipack + 1
    5848       395215 :          packed_data(ipack) = pack_tmp
    5849              :       END DO
    5850        24736 :       IF (Ndata_rep < Ndata) THEN
    5851           66 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    5852              :       END IF
    5853        24736 :    END SUBROUTINE ints2bits_9
    5854              : 
    5855              : ! **************************************************************************************************
    5856              : !> \brief ...
    5857              : !> \param Ndata ...
    5858              : !> \param packed_data ...
    5859              : !> \param full_data ...
    5860              : ! **************************************************************************************************
    5861       101368 :    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       101368 :       ipack = 0
    5872       101368 :       idata = 0
    5873       101368 :       pack_tmp = 0
    5874       101368 :       Ndata_rep = (Ndata/64)*64
    5875       101368 :       DO kdata = 1, Ndata_rep, 64
    5876      1616635 :          idata = idata + 1
    5877      1616635 :          data_tmp = ISHFT(pack_tmp, 9)
    5878      1616635 :          ipack = ipack + 1
    5879      1616635 :          pack_tmp = packed_data(ipack)
    5880      1616635 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    5881      1616635 :          pack_tmp = ISHFT(pack_tmp, -9)
    5882      1616635 :          idata = idata + 1
    5883      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5884      1616635 :          full_data(idata) = data_tmp
    5885      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5886      1616635 :          idata = idata + 1
    5887      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5888      1616635 :          full_data(idata) = data_tmp
    5889      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5890      1616635 :          idata = idata + 1
    5891      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5892      1616635 :          full_data(idata) = data_tmp
    5893      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5894      1616635 :          idata = idata + 1
    5895      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5896      1616635 :          full_data(idata) = data_tmp
    5897      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5898      1616635 :          idata = idata + 1
    5899      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5900      1616635 :          full_data(idata) = data_tmp
    5901      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5902      1616635 :          idata = idata + 1
    5903      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5904      1616635 :          full_data(idata) = data_tmp
    5905      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5906      1616635 :          idata = idata + 1
    5907      1616635 :          data_tmp = ISHFT(pack_tmp, 8)
    5908      1616635 :          ipack = ipack + 1
    5909      1616635 :          pack_tmp = packed_data(ipack)
    5910      1616635 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    5911      1616635 :          pack_tmp = ISHFT(pack_tmp, -8)
    5912      1616635 :          idata = idata + 1
    5913      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5914      1616635 :          full_data(idata) = data_tmp
    5915      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5916      1616635 :          idata = idata + 1
    5917      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5918      1616635 :          full_data(idata) = data_tmp
    5919      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5920      1616635 :          idata = idata + 1
    5921      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5922      1616635 :          full_data(idata) = data_tmp
    5923      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5924      1616635 :          idata = idata + 1
    5925      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5926      1616635 :          full_data(idata) = data_tmp
    5927      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5928      1616635 :          idata = idata + 1
    5929      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5930      1616635 :          full_data(idata) = data_tmp
    5931      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5932      1616635 :          idata = idata + 1
    5933      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5934      1616635 :          full_data(idata) = data_tmp
    5935      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5936      1616635 :          idata = idata + 1
    5937      1616635 :          data_tmp = ISHFT(pack_tmp, 7)
    5938      1616635 :          ipack = ipack + 1
    5939      1616635 :          pack_tmp = packed_data(ipack)
    5940      1616635 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    5941      1616635 :          pack_tmp = ISHFT(pack_tmp, -7)
    5942      1616635 :          idata = idata + 1
    5943      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5944      1616635 :          full_data(idata) = data_tmp
    5945      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5946      1616635 :          idata = idata + 1
    5947      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5948      1616635 :          full_data(idata) = data_tmp
    5949      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5950      1616635 :          idata = idata + 1
    5951      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5952      1616635 :          full_data(idata) = data_tmp
    5953      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5954      1616635 :          idata = idata + 1
    5955      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5956      1616635 :          full_data(idata) = data_tmp
    5957      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5958      1616635 :          idata = idata + 1
    5959      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5960      1616635 :          full_data(idata) = data_tmp
    5961      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5962      1616635 :          idata = idata + 1
    5963      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5964      1616635 :          full_data(idata) = data_tmp
    5965      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5966      1616635 :          idata = idata + 1
    5967      1616635 :          data_tmp = ISHFT(pack_tmp, 6)
    5968      1616635 :          ipack = ipack + 1
    5969      1616635 :          pack_tmp = packed_data(ipack)
    5970      1616635 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    5971      1616635 :          pack_tmp = ISHFT(pack_tmp, -6)
    5972      1616635 :          idata = idata + 1
    5973      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5974      1616635 :          full_data(idata) = data_tmp
    5975      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5976      1616635 :          idata = idata + 1
    5977      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5978      1616635 :          full_data(idata) = data_tmp
    5979      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5980      1616635 :          idata = idata + 1
    5981      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5982      1616635 :          full_data(idata) = data_tmp
    5983      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5984      1616635 :          idata = idata + 1
    5985      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5986      1616635 :          full_data(idata) = data_tmp
    5987      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5988      1616635 :          idata = idata + 1
    5989      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5990      1616635 :          full_data(idata) = data_tmp
    5991      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5992      1616635 :          idata = idata + 1
    5993      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    5994      1616635 :          full_data(idata) = data_tmp
    5995      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    5996      1616635 :          idata = idata + 1
    5997      1616635 :          data_tmp = ISHFT(pack_tmp, 5)
    5998      1616635 :          ipack = ipack + 1
    5999      1616635 :          pack_tmp = packed_data(ipack)
    6000      1616635 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    6001      1616635 :          pack_tmp = ISHFT(pack_tmp, -5)
    6002      1616635 :          idata = idata + 1
    6003      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6004      1616635 :          full_data(idata) = data_tmp
    6005      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6006      1616635 :          idata = idata + 1
    6007      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6008      1616635 :          full_data(idata) = data_tmp
    6009      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6010      1616635 :          idata = idata + 1
    6011      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6012      1616635 :          full_data(idata) = data_tmp
    6013      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6014      1616635 :          idata = idata + 1
    6015      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6016      1616635 :          full_data(idata) = data_tmp
    6017      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6018      1616635 :          idata = idata + 1
    6019      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6020      1616635 :          full_data(idata) = data_tmp
    6021      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6022      1616635 :          idata = idata + 1
    6023      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6024      1616635 :          full_data(idata) = data_tmp
    6025      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6026      1616635 :          idata = idata + 1
    6027      1616635 :          data_tmp = ISHFT(pack_tmp, 4)
    6028      1616635 :          ipack = ipack + 1
    6029      1616635 :          pack_tmp = packed_data(ipack)
    6030      1616635 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6031      1616635 :          pack_tmp = ISHFT(pack_tmp, -4)
    6032      1616635 :          idata = idata + 1
    6033      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6034      1616635 :          full_data(idata) = data_tmp
    6035      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6036      1616635 :          idata = idata + 1
    6037      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6038      1616635 :          full_data(idata) = data_tmp
    6039      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6040      1616635 :          idata = idata + 1
    6041      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6042      1616635 :          full_data(idata) = data_tmp
    6043      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6044      1616635 :          idata = idata + 1
    6045      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6046      1616635 :          full_data(idata) = data_tmp
    6047      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6048      1616635 :          idata = idata + 1
    6049      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6050      1616635 :          full_data(idata) = data_tmp
    6051      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6052      1616635 :          idata = idata + 1
    6053      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6054      1616635 :          full_data(idata) = data_tmp
    6055      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6056      1616635 :          idata = idata + 1
    6057      1616635 :          data_tmp = ISHFT(pack_tmp, 3)
    6058      1616635 :          ipack = ipack + 1
    6059      1616635 :          pack_tmp = packed_data(ipack)
    6060      1616635 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    6061      1616635 :          pack_tmp = ISHFT(pack_tmp, -3)
    6062      1616635 :          idata = idata + 1
    6063      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6064      1616635 :          full_data(idata) = data_tmp
    6065      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6066      1616635 :          idata = idata + 1
    6067      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6068      1616635 :          full_data(idata) = data_tmp
    6069      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6070      1616635 :          idata = idata + 1
    6071      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6072      1616635 :          full_data(idata) = data_tmp
    6073      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6074      1616635 :          idata = idata + 1
    6075      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6076      1616635 :          full_data(idata) = data_tmp
    6077      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6078      1616635 :          idata = idata + 1
    6079      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6080      1616635 :          full_data(idata) = data_tmp
    6081      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6082      1616635 :          idata = idata + 1
    6083      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6084      1616635 :          full_data(idata) = data_tmp
    6085      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6086      1616635 :          idata = idata + 1
    6087      1616635 :          data_tmp = ISHFT(pack_tmp, 2)
    6088      1616635 :          ipack = ipack + 1
    6089      1616635 :          pack_tmp = packed_data(ipack)
    6090      1616635 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6091      1616635 :          pack_tmp = ISHFT(pack_tmp, -2)
    6092      1616635 :          idata = idata + 1
    6093      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6094      1616635 :          full_data(idata) = data_tmp
    6095      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6096      1616635 :          idata = idata + 1
    6097      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6098      1616635 :          full_data(idata) = data_tmp
    6099      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6100      1616635 :          idata = idata + 1
    6101      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6102      1616635 :          full_data(idata) = data_tmp
    6103      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6104      1616635 :          idata = idata + 1
    6105      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6106      1616635 :          full_data(idata) = data_tmp
    6107      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6108      1616635 :          idata = idata + 1
    6109      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6110      1616635 :          full_data(idata) = data_tmp
    6111      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6112      1616635 :          idata = idata + 1
    6113      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6114      1616635 :          full_data(idata) = data_tmp
    6115      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6116      1616635 :          idata = idata + 1
    6117      1616635 :          data_tmp = ISHFT(pack_tmp, 1)
    6118      1616635 :          ipack = ipack + 1
    6119      1616635 :          pack_tmp = packed_data(ipack)
    6120      1616635 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    6121      1616635 :          pack_tmp = ISHFT(pack_tmp, -1)
    6122      1616635 :          idata = idata + 1
    6123      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6124      1616635 :          full_data(idata) = data_tmp
    6125      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6126      1616635 :          idata = idata + 1
    6127      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6128      1616635 :          full_data(idata) = data_tmp
    6129      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6130      1616635 :          idata = idata + 1
    6131      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6132      1616635 :          full_data(idata) = data_tmp
    6133      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6134      1616635 :          idata = idata + 1
    6135      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6136      1616635 :          full_data(idata) = data_tmp
    6137      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6138      1616635 :          idata = idata + 1
    6139      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6140      1616635 :          full_data(idata) = data_tmp
    6141      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6142      1616635 :          idata = idata + 1
    6143      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6144      1616635 :          full_data(idata) = data_tmp
    6145      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6146      1616635 :          idata = idata + 1
    6147      1616635 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6148      1616635 :          full_data(idata) = data_tmp
    6149      1616635 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6150              :       END DO
    6151       101368 :       IF (Ndata_rep < Ndata) THEN
    6152          618 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6153              :       END IF
    6154       101368 :    END SUBROUTINE bits2ints_9
    6155              : 
    6156              : ! **************************************************************************************************
    6157              : !> \brief ...
    6158              : !> \param Ndata ...
    6159              : !> \param packed_data ...
    6160              : !> \param full_data ...
    6161              : ! **************************************************************************************************
    6162        51218 :    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        51218 :       idata = 0
    6173        51218 :       ipack = 0
    6174        51218 :       Ndata_rep = (Ndata/64)*64
    6175        51218 :       DO kdata = 1, Ndata_rep, 64
    6176       759410 :          pack_tmp = 0
    6177       759410 :          idata = idata + 1
    6178       759410 :          data_tmp = full_data(idata)
    6179       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6180       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6181       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6182       759410 :          idata = idata + 1
    6183       759410 :          data_tmp = full_data(idata)
    6184       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6185       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6186       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6187       759410 :          idata = idata + 1
    6188       759410 :          data_tmp = full_data(idata)
    6189       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6190       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6191       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6192       759410 :          idata = idata + 1
    6193       759410 :          data_tmp = full_data(idata)
    6194       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6195       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6196       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6197       759410 :          idata = idata + 1
    6198       759410 :          data_tmp = full_data(idata)
    6199       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6200       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6201       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6202       759410 :          idata = idata + 1
    6203       759410 :          data_tmp = full_data(idata)
    6204       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6205       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6206       759410 :          pack_tmp = ISHFT(pack_tmp, -4)
    6207       759410 :          idata = idata + 1
    6208       759410 :          data_tmp = full_data(idata)
    6209       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6210       759410 :          data_tmp = IAND(data_tmp, mask_left(4))
    6211       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6212       759410 :          ipack = ipack + 1
    6213       759410 :          packed_data(ipack) = pack_tmp
    6214       759410 :          data_tmp = full_data(idata)
    6215       759410 :          pack_tmp = ISHFT(data_tmp, 58)
    6216       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6217       759410 :          idata = idata + 1
    6218       759410 :          data_tmp = full_data(idata)
    6219       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6220       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6221       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6222       759410 :          idata = idata + 1
    6223       759410 :          data_tmp = full_data(idata)
    6224       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6225       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6226       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6227       759410 :          idata = idata + 1
    6228       759410 :          data_tmp = full_data(idata)
    6229       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6230       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6231       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6232       759410 :          idata = idata + 1
    6233       759410 :          data_tmp = full_data(idata)
    6234       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6235       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6236       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6237       759410 :          idata = idata + 1
    6238       759410 :          data_tmp = full_data(idata)
    6239       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6240       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6241       759410 :          pack_tmp = ISHFT(pack_tmp, -8)
    6242       759410 :          idata = idata + 1
    6243       759410 :          data_tmp = full_data(idata)
    6244       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6245       759410 :          data_tmp = IAND(data_tmp, mask_left(8))
    6246       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6247       759410 :          ipack = ipack + 1
    6248       759410 :          packed_data(ipack) = pack_tmp
    6249       759410 :          data_tmp = full_data(idata)
    6250       759410 :          pack_tmp = ISHFT(data_tmp, 62)
    6251       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6252       759410 :          idata = idata + 1
    6253       759410 :          data_tmp = full_data(idata)
    6254       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6255       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6256       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6257       759410 :          idata = idata + 1
    6258       759410 :          data_tmp = full_data(idata)
    6259       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6260       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6261       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6262       759410 :          idata = idata + 1
    6263       759410 :          data_tmp = full_data(idata)
    6264       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6265       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6266       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6267       759410 :          idata = idata + 1
    6268       759410 :          data_tmp = full_data(idata)
    6269       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6270       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6271       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6272       759410 :          idata = idata + 1
    6273       759410 :          data_tmp = full_data(idata)
    6274       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6275       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6276       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6277       759410 :          idata = idata + 1
    6278       759410 :          data_tmp = full_data(idata)
    6279       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6280       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6281       759410 :          pack_tmp = ISHFT(pack_tmp, -2)
    6282       759410 :          idata = idata + 1
    6283       759410 :          data_tmp = full_data(idata)
    6284       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6285       759410 :          data_tmp = IAND(data_tmp, mask_left(2))
    6286       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6287       759410 :          ipack = ipack + 1
    6288       759410 :          packed_data(ipack) = pack_tmp
    6289       759410 :          data_tmp = full_data(idata)
    6290       759410 :          pack_tmp = ISHFT(data_tmp, 56)
    6291       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6292       759410 :          idata = idata + 1
    6293       759410 :          data_tmp = full_data(idata)
    6294       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6295       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6296       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6297       759410 :          idata = idata + 1
    6298       759410 :          data_tmp = full_data(idata)
    6299       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6300       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6301       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6302       759410 :          idata = idata + 1
    6303       759410 :          data_tmp = full_data(idata)
    6304       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6305       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6306       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6307       759410 :          idata = idata + 1
    6308       759410 :          data_tmp = full_data(idata)
    6309       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6310       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6311       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6312       759410 :          idata = idata + 1
    6313       759410 :          data_tmp = full_data(idata)
    6314       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6315       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6316       759410 :          pack_tmp = ISHFT(pack_tmp, -6)
    6317       759410 :          idata = idata + 1
    6318       759410 :          data_tmp = full_data(idata)
    6319       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6320       759410 :          data_tmp = IAND(data_tmp, mask_left(6))
    6321       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6322       759410 :          ipack = ipack + 1
    6323       759410 :          packed_data(ipack) = pack_tmp
    6324       759410 :          data_tmp = full_data(idata)
    6325       759410 :          pack_tmp = ISHFT(data_tmp, 60)
    6326       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6327       759410 :          idata = idata + 1
    6328       759410 :          data_tmp = full_data(idata)
    6329       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6330       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6331       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6332       759410 :          idata = idata + 1
    6333       759410 :          data_tmp = full_data(idata)
    6334       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6335       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6336       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6337       759410 :          idata = idata + 1
    6338       759410 :          data_tmp = full_data(idata)
    6339       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6340       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6341       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6342       759410 :          idata = idata + 1
    6343       759410 :          data_tmp = full_data(idata)
    6344       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6345       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6346       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6347       759410 :          idata = idata + 1
    6348       759410 :          data_tmp = full_data(idata)
    6349       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6350       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6351       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6352       759410 :          idata = idata + 1
    6353       759410 :          data_tmp = full_data(idata)
    6354       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6355       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6356       759410 :          pack_tmp = ISHFT(pack_tmp, 0)
    6357       759410 :          idata = idata + 1
    6358       759410 :          data_tmp = full_data(idata)
    6359              :          data_tmp = ISHFT(data_tmp, 54)
    6360       759410 :          data_tmp = IAND(data_tmp, mask_left(0))
    6361       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6362       759410 :          ipack = ipack + 1
    6363       759410 :          packed_data(ipack) = pack_tmp
    6364       759410 :          data_tmp = full_data(idata)
    6365       759410 :          pack_tmp = ISHFT(data_tmp, 54)
    6366       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6367       759410 :          idata = idata + 1
    6368       759410 :          data_tmp = full_data(idata)
    6369       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6370       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6371       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6372       759410 :          idata = idata + 1
    6373       759410 :          data_tmp = full_data(idata)
    6374       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6375       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6376       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6377       759410 :          idata = idata + 1
    6378       759410 :          data_tmp = full_data(idata)
    6379       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6380       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6381       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6382       759410 :          idata = idata + 1
    6383       759410 :          data_tmp = full_data(idata)
    6384       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6385       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6386       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6387       759410 :          idata = idata + 1
    6388       759410 :          data_tmp = full_data(idata)
    6389       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6390       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6391       759410 :          pack_tmp = ISHFT(pack_tmp, -4)
    6392       759410 :          idata = idata + 1
    6393       759410 :          data_tmp = full_data(idata)
    6394       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6395       759410 :          data_tmp = IAND(data_tmp, mask_left(4))
    6396       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6397       759410 :          ipack = ipack + 1
    6398       759410 :          packed_data(ipack) = pack_tmp
    6399       759410 :          data_tmp = full_data(idata)
    6400       759410 :          pack_tmp = ISHFT(data_tmp, 58)
    6401       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6402       759410 :          idata = idata + 1
    6403       759410 :          data_tmp = full_data(idata)
    6404       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6405       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6406       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6407       759410 :          idata = idata + 1
    6408       759410 :          data_tmp = full_data(idata)
    6409       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6410       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6411       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6412       759410 :          idata = idata + 1
    6413       759410 :          data_tmp = full_data(idata)
    6414       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6415       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6416       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6417       759410 :          idata = idata + 1
    6418       759410 :          data_tmp = full_data(idata)
    6419       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6420       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6421       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6422       759410 :          idata = idata + 1
    6423       759410 :          data_tmp = full_data(idata)
    6424       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6425       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6426       759410 :          pack_tmp = ISHFT(pack_tmp, -8)
    6427       759410 :          idata = idata + 1
    6428       759410 :          data_tmp = full_data(idata)
    6429       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6430       759410 :          data_tmp = IAND(data_tmp, mask_left(8))
    6431       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6432       759410 :          ipack = ipack + 1
    6433       759410 :          packed_data(ipack) = pack_tmp
    6434       759410 :          data_tmp = full_data(idata)
    6435       759410 :          pack_tmp = ISHFT(data_tmp, 62)
    6436       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6437       759410 :          idata = idata + 1
    6438       759410 :          data_tmp = full_data(idata)
    6439       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6440       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6441       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6442       759410 :          idata = idata + 1
    6443       759410 :          data_tmp = full_data(idata)
    6444       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6445       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6446       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6447       759410 :          idata = idata + 1
    6448       759410 :          data_tmp = full_data(idata)
    6449       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6450       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6451       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6452       759410 :          idata = idata + 1
    6453       759410 :          data_tmp = full_data(idata)
    6454       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6455       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6456       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6457       759410 :          idata = idata + 1
    6458       759410 :          data_tmp = full_data(idata)
    6459       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6460       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6461       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6462       759410 :          idata = idata + 1
    6463       759410 :          data_tmp = full_data(idata)
    6464       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6465       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6466       759410 :          pack_tmp = ISHFT(pack_tmp, -2)
    6467       759410 :          idata = idata + 1
    6468       759410 :          data_tmp = full_data(idata)
    6469       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6470       759410 :          data_tmp = IAND(data_tmp, mask_left(2))
    6471       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6472       759410 :          ipack = ipack + 1
    6473       759410 :          packed_data(ipack) = pack_tmp
    6474       759410 :          data_tmp = full_data(idata)
    6475       759410 :          pack_tmp = ISHFT(data_tmp, 56)
    6476       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6477       759410 :          idata = idata + 1
    6478       759410 :          data_tmp = full_data(idata)
    6479       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6480       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6481       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6482       759410 :          idata = idata + 1
    6483       759410 :          data_tmp = full_data(idata)
    6484       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6485       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6486       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6487       759410 :          idata = idata + 1
    6488       759410 :          data_tmp = full_data(idata)
    6489       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6490       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6491       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6492       759410 :          idata = idata + 1
    6493       759410 :          data_tmp = full_data(idata)
    6494       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6495       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6496       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6497       759410 :          idata = idata + 1
    6498       759410 :          data_tmp = full_data(idata)
    6499       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6500       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6501       759410 :          pack_tmp = ISHFT(pack_tmp, -6)
    6502       759410 :          idata = idata + 1
    6503       759410 :          data_tmp = full_data(idata)
    6504       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6505       759410 :          data_tmp = IAND(data_tmp, mask_left(6))
    6506       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6507       759410 :          ipack = ipack + 1
    6508       759410 :          packed_data(ipack) = pack_tmp
    6509       759410 :          data_tmp = full_data(idata)
    6510       759410 :          pack_tmp = ISHFT(data_tmp, 60)
    6511       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6512       759410 :          idata = idata + 1
    6513       759410 :          data_tmp = full_data(idata)
    6514       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6515       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6516       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6517       759410 :          idata = idata + 1
    6518       759410 :          data_tmp = full_data(idata)
    6519       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6520       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6521       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6522       759410 :          idata = idata + 1
    6523       759410 :          data_tmp = full_data(idata)
    6524       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6525       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6526       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6527       759410 :          idata = idata + 1
    6528       759410 :          data_tmp = full_data(idata)
    6529       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6530       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6531       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6532       759410 :          idata = idata + 1
    6533       759410 :          data_tmp = full_data(idata)
    6534       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6535       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6536       759410 :          pack_tmp = ISHFT(pack_tmp, -10)
    6537       759410 :          idata = idata + 1
    6538       759410 :          data_tmp = full_data(idata)
    6539       759410 :          data_tmp = ISHFT(data_tmp, 54)
    6540       759410 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6541              :          pack_tmp = ISHFT(pack_tmp, 0)
    6542       759410 :          pack_tmp = ISHFT(pack_tmp, 0)
    6543       759410 :          ipack = ipack + 1
    6544       759775 :          packed_data(ipack) = pack_tmp
    6545              :       END DO
    6546        51218 :       IF (Ndata_rep < Ndata) THEN
    6547         4828 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6548              :       END IF
    6549        51218 :    END SUBROUTINE ints2bits_10
    6550              : 
    6551              : ! **************************************************************************************************
    6552              : !> \brief ...
    6553              : !> \param Ndata ...
    6554              : !> \param packed_data ...
    6555              : !> \param full_data ...
    6556              : ! **************************************************************************************************
    6557       306579 :    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       306579 :       ipack = 0
    6568       306579 :       idata = 0
    6569       306579 :       pack_tmp = 0
    6570       306579 :       Ndata_rep = (Ndata/64)*64
    6571       306579 :       DO kdata = 1, Ndata_rep, 64
    6572      4442478 :          idata = idata + 1
    6573      4442478 :          data_tmp = ISHFT(pack_tmp, 10)
    6574      4442478 :          ipack = ipack + 1
    6575      4442478 :          pack_tmp = packed_data(ipack)
    6576      4442478 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    6577      4442478 :          pack_tmp = ISHFT(pack_tmp, -10)
    6578      4442478 :          idata = idata + 1
    6579      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6580      4442478 :          full_data(idata) = data_tmp
    6581      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6582      4442478 :          idata = idata + 1
    6583      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6584      4442478 :          full_data(idata) = data_tmp
    6585      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6586      4442478 :          idata = idata + 1
    6587      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6588      4442478 :          full_data(idata) = data_tmp
    6589      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6590      4442478 :          idata = idata + 1
    6591      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6592      4442478 :          full_data(idata) = data_tmp
    6593      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6594      4442478 :          idata = idata + 1
    6595      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6596      4442478 :          full_data(idata) = data_tmp
    6597      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6598      4442478 :          idata = idata + 1
    6599      4442478 :          data_tmp = ISHFT(pack_tmp, 6)
    6600      4442478 :          ipack = ipack + 1
    6601      4442478 :          pack_tmp = packed_data(ipack)
    6602      4442478 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    6603      4442478 :          pack_tmp = ISHFT(pack_tmp, -6)
    6604      4442478 :          idata = idata + 1
    6605      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6606      4442478 :          full_data(idata) = data_tmp
    6607      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6608      4442478 :          idata = idata + 1
    6609      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6610      4442478 :          full_data(idata) = data_tmp
    6611      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6612      4442478 :          idata = idata + 1
    6613      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6614      4442478 :          full_data(idata) = data_tmp
    6615      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6616      4442478 :          idata = idata + 1
    6617      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6618      4442478 :          full_data(idata) = data_tmp
    6619      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6620      4442478 :          idata = idata + 1
    6621      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6622      4442478 :          full_data(idata) = data_tmp
    6623      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6624      4442478 :          idata = idata + 1
    6625      4442478 :          data_tmp = ISHFT(pack_tmp, 2)
    6626      4442478 :          ipack = ipack + 1
    6627      4442478 :          pack_tmp = packed_data(ipack)
    6628      4442478 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6629      4442478 :          pack_tmp = ISHFT(pack_tmp, -2)
    6630      4442478 :          idata = idata + 1
    6631      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6632      4442478 :          full_data(idata) = data_tmp
    6633      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6634      4442478 :          idata = idata + 1
    6635      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6636      4442478 :          full_data(idata) = data_tmp
    6637      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6638      4442478 :          idata = idata + 1
    6639      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6640      4442478 :          full_data(idata) = data_tmp
    6641      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6642      4442478 :          idata = idata + 1
    6643      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6644      4442478 :          full_data(idata) = data_tmp
    6645      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6646      4442478 :          idata = idata + 1
    6647      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6648      4442478 :          full_data(idata) = data_tmp
    6649      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6650      4442478 :          idata = idata + 1
    6651      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6652      4442478 :          full_data(idata) = data_tmp
    6653      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6654      4442478 :          idata = idata + 1
    6655      4442478 :          data_tmp = ISHFT(pack_tmp, 8)
    6656      4442478 :          ipack = ipack + 1
    6657      4442478 :          pack_tmp = packed_data(ipack)
    6658      4442478 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    6659      4442478 :          pack_tmp = ISHFT(pack_tmp, -8)
    6660      4442478 :          idata = idata + 1
    6661      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6662      4442478 :          full_data(idata) = data_tmp
    6663      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6664      4442478 :          idata = idata + 1
    6665      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6666      4442478 :          full_data(idata) = data_tmp
    6667      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6668      4442478 :          idata = idata + 1
    6669      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6670      4442478 :          full_data(idata) = data_tmp
    6671      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6672      4442478 :          idata = idata + 1
    6673      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6674      4442478 :          full_data(idata) = data_tmp
    6675      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6676      4442478 :          idata = idata + 1
    6677      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6678      4442478 :          full_data(idata) = data_tmp
    6679      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6680      4442478 :          idata = idata + 1
    6681      4442478 :          data_tmp = ISHFT(pack_tmp, 4)
    6682      4442478 :          ipack = ipack + 1
    6683      4442478 :          pack_tmp = packed_data(ipack)
    6684      4442478 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6685      4442478 :          pack_tmp = ISHFT(pack_tmp, -4)
    6686      4442478 :          idata = idata + 1
    6687      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6688      4442478 :          full_data(idata) = data_tmp
    6689      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6690      4442478 :          idata = idata + 1
    6691      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6692      4442478 :          full_data(idata) = data_tmp
    6693      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6694      4442478 :          idata = idata + 1
    6695      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6696      4442478 :          full_data(idata) = data_tmp
    6697      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6698      4442478 :          idata = idata + 1
    6699      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6700      4442478 :          full_data(idata) = data_tmp
    6701      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6702      4442478 :          idata = idata + 1
    6703      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6704      4442478 :          full_data(idata) = data_tmp
    6705      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6706      4442478 :          idata = idata + 1
    6707      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6708      4442478 :          full_data(idata) = data_tmp
    6709      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6710      4442478 :          idata = idata + 1
    6711      4442478 :          data_tmp = ISHFT(pack_tmp, 10)
    6712      4442478 :          ipack = ipack + 1
    6713      4442478 :          pack_tmp = packed_data(ipack)
    6714      4442478 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    6715      4442478 :          pack_tmp = ISHFT(pack_tmp, -10)
    6716      4442478 :          idata = idata + 1
    6717      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6718      4442478 :          full_data(idata) = data_tmp
    6719      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6720      4442478 :          idata = idata + 1
    6721      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6722      4442478 :          full_data(idata) = data_tmp
    6723      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6724      4442478 :          idata = idata + 1
    6725      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6726      4442478 :          full_data(idata) = data_tmp
    6727      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6728      4442478 :          idata = idata + 1
    6729      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6730      4442478 :          full_data(idata) = data_tmp
    6731      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6732      4442478 :          idata = idata + 1
    6733      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6734      4442478 :          full_data(idata) = data_tmp
    6735      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6736      4442478 :          idata = idata + 1
    6737      4442478 :          data_tmp = ISHFT(pack_tmp, 6)
    6738      4442478 :          ipack = ipack + 1
    6739      4442478 :          pack_tmp = packed_data(ipack)
    6740      4442478 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    6741      4442478 :          pack_tmp = ISHFT(pack_tmp, -6)
    6742      4442478 :          idata = idata + 1
    6743      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6744      4442478 :          full_data(idata) = data_tmp
    6745      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6746      4442478 :          idata = idata + 1
    6747      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6748      4442478 :          full_data(idata) = data_tmp
    6749      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6750      4442478 :          idata = idata + 1
    6751      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6752      4442478 :          full_data(idata) = data_tmp
    6753      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6754      4442478 :          idata = idata + 1
    6755      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6756      4442478 :          full_data(idata) = data_tmp
    6757      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6758      4442478 :          idata = idata + 1
    6759      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6760      4442478 :          full_data(idata) = data_tmp
    6761      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6762      4442478 :          idata = idata + 1
    6763      4442478 :          data_tmp = ISHFT(pack_tmp, 2)
    6764      4442478 :          ipack = ipack + 1
    6765      4442478 :          pack_tmp = packed_data(ipack)
    6766      4442478 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    6767      4442478 :          pack_tmp = ISHFT(pack_tmp, -2)
    6768      4442478 :          idata = idata + 1
    6769      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6770      4442478 :          full_data(idata) = data_tmp
    6771      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6772      4442478 :          idata = idata + 1
    6773      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6774      4442478 :          full_data(idata) = data_tmp
    6775      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6776      4442478 :          idata = idata + 1
    6777      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6778      4442478 :          full_data(idata) = data_tmp
    6779      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6780      4442478 :          idata = idata + 1
    6781      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6782      4442478 :          full_data(idata) = data_tmp
    6783      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6784      4442478 :          idata = idata + 1
    6785      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6786      4442478 :          full_data(idata) = data_tmp
    6787      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6788      4442478 :          idata = idata + 1
    6789      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6790      4442478 :          full_data(idata) = data_tmp
    6791      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6792      4442478 :          idata = idata + 1
    6793      4442478 :          data_tmp = ISHFT(pack_tmp, 8)
    6794      4442478 :          ipack = ipack + 1
    6795      4442478 :          pack_tmp = packed_data(ipack)
    6796      4442478 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    6797      4442478 :          pack_tmp = ISHFT(pack_tmp, -8)
    6798      4442478 :          idata = idata + 1
    6799      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6800      4442478 :          full_data(idata) = data_tmp
    6801      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6802      4442478 :          idata = idata + 1
    6803      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6804      4442478 :          full_data(idata) = data_tmp
    6805      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6806      4442478 :          idata = idata + 1
    6807      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6808      4442478 :          full_data(idata) = data_tmp
    6809      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6810      4442478 :          idata = idata + 1
    6811      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6812      4442478 :          full_data(idata) = data_tmp
    6813      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6814      4442478 :          idata = idata + 1
    6815      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6816      4442478 :          full_data(idata) = data_tmp
    6817      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6818      4442478 :          idata = idata + 1
    6819      4442478 :          data_tmp = ISHFT(pack_tmp, 4)
    6820      4442478 :          ipack = ipack + 1
    6821      4442478 :          pack_tmp = packed_data(ipack)
    6822      4442478 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    6823      4442478 :          pack_tmp = ISHFT(pack_tmp, -4)
    6824      4442478 :          idata = idata + 1
    6825      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6826      4442478 :          full_data(idata) = data_tmp
    6827      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6828      4442478 :          idata = idata + 1
    6829      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6830      4442478 :          full_data(idata) = data_tmp
    6831      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6832      4442478 :          idata = idata + 1
    6833      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6834      4442478 :          full_data(idata) = data_tmp
    6835      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6836      4442478 :          idata = idata + 1
    6837      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6838      4442478 :          full_data(idata) = data_tmp
    6839      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6840      4442478 :          idata = idata + 1
    6841      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6842      4442478 :          full_data(idata) = data_tmp
    6843      4442478 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6844      4442478 :          idata = idata + 1
    6845      4442478 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    6846      4442478 :          full_data(idata) = data_tmp
    6847      4445224 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    6848              :       END DO
    6849       306579 :       IF (Ndata_rep < Ndata) THEN
    6850        37636 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    6851              :       END IF
    6852       306579 :    END SUBROUTINE bits2ints_10
    6853              : 
    6854              : ! **************************************************************************************************
    6855              : !> \brief ...
    6856              : !> \param Ndata ...
    6857              : !> \param packed_data ...
    6858              : !> \param full_data ...
    6859              : ! **************************************************************************************************
    6860        27188 :    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        27188 :       idata = 0
    6871        27188 :       ipack = 0
    6872        27188 :       Ndata_rep = (Ndata/64)*64
    6873        27188 :       DO kdata = 1, Ndata_rep, 64
    6874       428361 :          pack_tmp = 0
    6875       428361 :          idata = idata + 1
    6876       428361 :          data_tmp = full_data(idata)
    6877       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6878       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6879       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6880       428361 :          idata = idata + 1
    6881       428361 :          data_tmp = full_data(idata)
    6882       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6883       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6884       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6885       428361 :          idata = idata + 1
    6886       428361 :          data_tmp = full_data(idata)
    6887       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6888       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6889       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6890       428361 :          idata = idata + 1
    6891       428361 :          data_tmp = full_data(idata)
    6892       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6893       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6894       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6895       428361 :          idata = idata + 1
    6896       428361 :          data_tmp = full_data(idata)
    6897       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6898       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6899       428361 :          pack_tmp = ISHFT(pack_tmp, -9)
    6900       428361 :          idata = idata + 1
    6901       428361 :          data_tmp = full_data(idata)
    6902       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6903       428361 :          data_tmp = IAND(data_tmp, mask_left(9))
    6904       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6905       428361 :          ipack = ipack + 1
    6906       428361 :          packed_data(ipack) = pack_tmp
    6907       428361 :          data_tmp = full_data(idata)
    6908       428361 :          pack_tmp = ISHFT(data_tmp, 62)
    6909       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6910       428361 :          idata = idata + 1
    6911       428361 :          data_tmp = full_data(idata)
    6912       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6913       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6914       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6915       428361 :          idata = idata + 1
    6916       428361 :          data_tmp = full_data(idata)
    6917       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6918       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6919       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6920       428361 :          idata = idata + 1
    6921       428361 :          data_tmp = full_data(idata)
    6922       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6923       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6924       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6925       428361 :          idata = idata + 1
    6926       428361 :          data_tmp = full_data(idata)
    6927       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6928       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6929       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6930       428361 :          idata = idata + 1
    6931       428361 :          data_tmp = full_data(idata)
    6932       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6933       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6934       428361 :          pack_tmp = ISHFT(pack_tmp, -7)
    6935       428361 :          idata = idata + 1
    6936       428361 :          data_tmp = full_data(idata)
    6937       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6938       428361 :          data_tmp = IAND(data_tmp, mask_left(7))
    6939       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6940       428361 :          ipack = ipack + 1
    6941       428361 :          packed_data(ipack) = pack_tmp
    6942       428361 :          data_tmp = full_data(idata)
    6943       428361 :          pack_tmp = ISHFT(data_tmp, 60)
    6944       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6945       428361 :          idata = idata + 1
    6946       428361 :          data_tmp = full_data(idata)
    6947       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6948       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6949       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6950       428361 :          idata = idata + 1
    6951       428361 :          data_tmp = full_data(idata)
    6952       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6953       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6954       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6955       428361 :          idata = idata + 1
    6956       428361 :          data_tmp = full_data(idata)
    6957       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6958       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6959       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6960       428361 :          idata = idata + 1
    6961       428361 :          data_tmp = full_data(idata)
    6962       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6963       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6964       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6965       428361 :          idata = idata + 1
    6966       428361 :          data_tmp = full_data(idata)
    6967       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6968       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6969       428361 :          pack_tmp = ISHFT(pack_tmp, -5)
    6970       428361 :          idata = idata + 1
    6971       428361 :          data_tmp = full_data(idata)
    6972       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6973       428361 :          data_tmp = IAND(data_tmp, mask_left(5))
    6974       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6975       428361 :          ipack = ipack + 1
    6976       428361 :          packed_data(ipack) = pack_tmp
    6977       428361 :          data_tmp = full_data(idata)
    6978       428361 :          pack_tmp = ISHFT(data_tmp, 58)
    6979       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6980       428361 :          idata = idata + 1
    6981       428361 :          data_tmp = full_data(idata)
    6982       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6983       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6984       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6985       428361 :          idata = idata + 1
    6986       428361 :          data_tmp = full_data(idata)
    6987       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6988       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6989       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6990       428361 :          idata = idata + 1
    6991       428361 :          data_tmp = full_data(idata)
    6992       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6993       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6994       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    6995       428361 :          idata = idata + 1
    6996       428361 :          data_tmp = full_data(idata)
    6997       428361 :          data_tmp = ISHFT(data_tmp, 53)
    6998       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    6999       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7000       428361 :          idata = idata + 1
    7001       428361 :          data_tmp = full_data(idata)
    7002       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7003       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7004       428361 :          pack_tmp = ISHFT(pack_tmp, -3)
    7005       428361 :          idata = idata + 1
    7006       428361 :          data_tmp = full_data(idata)
    7007       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7008       428361 :          data_tmp = IAND(data_tmp, mask_left(3))
    7009       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7010       428361 :          ipack = ipack + 1
    7011       428361 :          packed_data(ipack) = pack_tmp
    7012       428361 :          data_tmp = full_data(idata)
    7013       428361 :          pack_tmp = ISHFT(data_tmp, 56)
    7014       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7015       428361 :          idata = idata + 1
    7016       428361 :          data_tmp = full_data(idata)
    7017       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7018       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7019       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7020       428361 :          idata = idata + 1
    7021       428361 :          data_tmp = full_data(idata)
    7022       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7023       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7024       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7025       428361 :          idata = idata + 1
    7026       428361 :          data_tmp = full_data(idata)
    7027       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7028       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7029       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7030       428361 :          idata = idata + 1
    7031       428361 :          data_tmp = full_data(idata)
    7032       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7033       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7034       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7035       428361 :          idata = idata + 1
    7036       428361 :          data_tmp = full_data(idata)
    7037       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7038       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7039       428361 :          pack_tmp = ISHFT(pack_tmp, -1)
    7040       428361 :          idata = idata + 1
    7041       428361 :          data_tmp = full_data(idata)
    7042       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7043       428361 :          data_tmp = IAND(data_tmp, mask_left(1))
    7044       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7045       428361 :          ipack = ipack + 1
    7046       428361 :          packed_data(ipack) = pack_tmp
    7047       428361 :          data_tmp = full_data(idata)
    7048       428361 :          pack_tmp = ISHFT(data_tmp, 54)
    7049       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7050       428361 :          idata = idata + 1
    7051       428361 :          data_tmp = full_data(idata)
    7052       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7053       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7054       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7055       428361 :          idata = idata + 1
    7056       428361 :          data_tmp = full_data(idata)
    7057       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7058       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7059       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7060       428361 :          idata = idata + 1
    7061       428361 :          data_tmp = full_data(idata)
    7062       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7063       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7064       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7065       428361 :          idata = idata + 1
    7066       428361 :          data_tmp = full_data(idata)
    7067       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7068       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7069       428361 :          pack_tmp = ISHFT(pack_tmp, -10)
    7070       428361 :          idata = idata + 1
    7071       428361 :          data_tmp = full_data(idata)
    7072       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7073       428361 :          data_tmp = IAND(data_tmp, mask_left(10))
    7074       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7075       428361 :          ipack = ipack + 1
    7076       428361 :          packed_data(ipack) = pack_tmp
    7077       428361 :          data_tmp = full_data(idata)
    7078       428361 :          pack_tmp = ISHFT(data_tmp, 63)
    7079       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7080       428361 :          idata = idata + 1
    7081       428361 :          data_tmp = full_data(idata)
    7082       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7083       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7084       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7085       428361 :          idata = idata + 1
    7086       428361 :          data_tmp = full_data(idata)
    7087       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7088       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7089       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7090       428361 :          idata = idata + 1
    7091       428361 :          data_tmp = full_data(idata)
    7092       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7093       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7094       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7095       428361 :          idata = idata + 1
    7096       428361 :          data_tmp = full_data(idata)
    7097       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7098       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7099       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7100       428361 :          idata = idata + 1
    7101       428361 :          data_tmp = full_data(idata)
    7102       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7103       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7104       428361 :          pack_tmp = ISHFT(pack_tmp, -8)
    7105       428361 :          idata = idata + 1
    7106       428361 :          data_tmp = full_data(idata)
    7107       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7108       428361 :          data_tmp = IAND(data_tmp, mask_left(8))
    7109       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7110       428361 :          ipack = ipack + 1
    7111       428361 :          packed_data(ipack) = pack_tmp
    7112       428361 :          data_tmp = full_data(idata)
    7113       428361 :          pack_tmp = ISHFT(data_tmp, 61)
    7114       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7115       428361 :          idata = idata + 1
    7116       428361 :          data_tmp = full_data(idata)
    7117       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7118       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7119       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7120       428361 :          idata = idata + 1
    7121       428361 :          data_tmp = full_data(idata)
    7122       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7123       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7124       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7125       428361 :          idata = idata + 1
    7126       428361 :          data_tmp = full_data(idata)
    7127       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7128       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7129       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7130       428361 :          idata = idata + 1
    7131       428361 :          data_tmp = full_data(idata)
    7132       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7133       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7134       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7135       428361 :          idata = idata + 1
    7136       428361 :          data_tmp = full_data(idata)
    7137       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7138       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7139       428361 :          pack_tmp = ISHFT(pack_tmp, -6)
    7140       428361 :          idata = idata + 1
    7141       428361 :          data_tmp = full_data(idata)
    7142       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7143       428361 :          data_tmp = IAND(data_tmp, mask_left(6))
    7144       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7145       428361 :          ipack = ipack + 1
    7146       428361 :          packed_data(ipack) = pack_tmp
    7147       428361 :          data_tmp = full_data(idata)
    7148       428361 :          pack_tmp = ISHFT(data_tmp, 59)
    7149       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7150       428361 :          idata = idata + 1
    7151       428361 :          data_tmp = full_data(idata)
    7152       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7153       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7154       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7155       428361 :          idata = idata + 1
    7156       428361 :          data_tmp = full_data(idata)
    7157       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7158       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7159       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7160       428361 :          idata = idata + 1
    7161       428361 :          data_tmp = full_data(idata)
    7162       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7163       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7164       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7165       428361 :          idata = idata + 1
    7166       428361 :          data_tmp = full_data(idata)
    7167       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7168       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7169       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7170       428361 :          idata = idata + 1
    7171       428361 :          data_tmp = full_data(idata)
    7172       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7173       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7174       428361 :          pack_tmp = ISHFT(pack_tmp, -4)
    7175       428361 :          idata = idata + 1
    7176       428361 :          data_tmp = full_data(idata)
    7177       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7178       428361 :          data_tmp = IAND(data_tmp, mask_left(4))
    7179       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7180       428361 :          ipack = ipack + 1
    7181       428361 :          packed_data(ipack) = pack_tmp
    7182       428361 :          data_tmp = full_data(idata)
    7183       428361 :          pack_tmp = ISHFT(data_tmp, 57)
    7184       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7185       428361 :          idata = idata + 1
    7186       428361 :          data_tmp = full_data(idata)
    7187       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7188       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7189       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7190       428361 :          idata = idata + 1
    7191       428361 :          data_tmp = full_data(idata)
    7192       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7193       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7194       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7195       428361 :          idata = idata + 1
    7196       428361 :          data_tmp = full_data(idata)
    7197       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7198       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7199       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7200       428361 :          idata = idata + 1
    7201       428361 :          data_tmp = full_data(idata)
    7202       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7203       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7204       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7205       428361 :          idata = idata + 1
    7206       428361 :          data_tmp = full_data(idata)
    7207       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7208       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7209       428361 :          pack_tmp = ISHFT(pack_tmp, -2)
    7210       428361 :          idata = idata + 1
    7211       428361 :          data_tmp = full_data(idata)
    7212       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7213       428361 :          data_tmp = IAND(data_tmp, mask_left(2))
    7214       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7215       428361 :          ipack = ipack + 1
    7216       428361 :          packed_data(ipack) = pack_tmp
    7217       428361 :          data_tmp = full_data(idata)
    7218       428361 :          pack_tmp = ISHFT(data_tmp, 55)
    7219       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7220       428361 :          idata = idata + 1
    7221       428361 :          data_tmp = full_data(idata)
    7222       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7223       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7224       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7225       428361 :          idata = idata + 1
    7226       428361 :          data_tmp = full_data(idata)
    7227       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7228       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7229       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7230       428361 :          idata = idata + 1
    7231       428361 :          data_tmp = full_data(idata)
    7232       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7233       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7234       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7235       428361 :          idata = idata + 1
    7236       428361 :          data_tmp = full_data(idata)
    7237       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7238       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7239       428361 :          pack_tmp = ISHFT(pack_tmp, -11)
    7240       428361 :          idata = idata + 1
    7241       428361 :          data_tmp = full_data(idata)
    7242       428361 :          data_tmp = ISHFT(data_tmp, 53)
    7243       428361 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7244              :          pack_tmp = ISHFT(pack_tmp, 0)
    7245       428361 :          pack_tmp = ISHFT(pack_tmp, 0)
    7246       428361 :          ipack = ipack + 1
    7247       428398 :          packed_data(ipack) = pack_tmp
    7248              :       END DO
    7249        27188 :       IF (Ndata_rep < Ndata) THEN
    7250          782 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7251              :       END IF
    7252        27188 :    END SUBROUTINE ints2bits_11
    7253              : 
    7254              : ! **************************************************************************************************
    7255              : !> \brief ...
    7256              : !> \param Ndata ...
    7257              : !> \param packed_data ...
    7258              : !> \param full_data ...
    7259              : ! **************************************************************************************************
    7260       120014 :    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       120014 :       ipack = 0
    7271       120014 :       idata = 0
    7272       120014 :       pack_tmp = 0
    7273       120014 :       Ndata_rep = (Ndata/64)*64
    7274       120014 :       DO kdata = 1, Ndata_rep, 64
    7275      1869904 :          idata = idata + 1
    7276      1869904 :          data_tmp = ISHFT(pack_tmp, 11)
    7277      1869904 :          ipack = ipack + 1
    7278      1869904 :          pack_tmp = packed_data(ipack)
    7279      1869904 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
    7280      1869904 :          pack_tmp = ISHFT(pack_tmp, -11)
    7281      1869904 :          idata = idata + 1
    7282      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7283      1869904 :          full_data(idata) = data_tmp
    7284      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7285      1869904 :          idata = idata + 1
    7286      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7287      1869904 :          full_data(idata) = data_tmp
    7288      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7289      1869904 :          idata = idata + 1
    7290      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7291      1869904 :          full_data(idata) = data_tmp
    7292      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7293      1869904 :          idata = idata + 1
    7294      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7295      1869904 :          full_data(idata) = data_tmp
    7296      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7297      1869904 :          idata = idata + 1
    7298      1869904 :          data_tmp = ISHFT(pack_tmp, 2)
    7299      1869904 :          ipack = ipack + 1
    7300      1869904 :          pack_tmp = packed_data(ipack)
    7301      1869904 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    7302      1869904 :          pack_tmp = ISHFT(pack_tmp, -2)
    7303      1869904 :          idata = idata + 1
    7304      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7305      1869904 :          full_data(idata) = data_tmp
    7306      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7307      1869904 :          idata = idata + 1
    7308      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7309      1869904 :          full_data(idata) = data_tmp
    7310      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7311      1869904 :          idata = idata + 1
    7312      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7313      1869904 :          full_data(idata) = data_tmp
    7314      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7315      1869904 :          idata = idata + 1
    7316      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7317      1869904 :          full_data(idata) = data_tmp
    7318      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7319      1869904 :          idata = idata + 1
    7320      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7321      1869904 :          full_data(idata) = data_tmp
    7322      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7323      1869904 :          idata = idata + 1
    7324      1869904 :          data_tmp = ISHFT(pack_tmp, 4)
    7325      1869904 :          ipack = ipack + 1
    7326      1869904 :          pack_tmp = packed_data(ipack)
    7327      1869904 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    7328      1869904 :          pack_tmp = ISHFT(pack_tmp, -4)
    7329      1869904 :          idata = idata + 1
    7330      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7331      1869904 :          full_data(idata) = data_tmp
    7332      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7333      1869904 :          idata = idata + 1
    7334      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7335      1869904 :          full_data(idata) = data_tmp
    7336      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7337      1869904 :          idata = idata + 1
    7338      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7339      1869904 :          full_data(idata) = data_tmp
    7340      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7341      1869904 :          idata = idata + 1
    7342      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7343      1869904 :          full_data(idata) = data_tmp
    7344      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7345      1869904 :          idata = idata + 1
    7346      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7347      1869904 :          full_data(idata) = data_tmp
    7348      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7349      1869904 :          idata = idata + 1
    7350      1869904 :          data_tmp = ISHFT(pack_tmp, 6)
    7351      1869904 :          ipack = ipack + 1
    7352      1869904 :          pack_tmp = packed_data(ipack)
    7353      1869904 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    7354      1869904 :          pack_tmp = ISHFT(pack_tmp, -6)
    7355      1869904 :          idata = idata + 1
    7356      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7357      1869904 :          full_data(idata) = data_tmp
    7358      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7359      1869904 :          idata = idata + 1
    7360      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7361      1869904 :          full_data(idata) = data_tmp
    7362      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7363      1869904 :          idata = idata + 1
    7364      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7365      1869904 :          full_data(idata) = data_tmp
    7366      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7367      1869904 :          idata = idata + 1
    7368      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7369      1869904 :          full_data(idata) = data_tmp
    7370      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7371      1869904 :          idata = idata + 1
    7372      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7373      1869904 :          full_data(idata) = data_tmp
    7374      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7375      1869904 :          idata = idata + 1
    7376      1869904 :          data_tmp = ISHFT(pack_tmp, 8)
    7377      1869904 :          ipack = ipack + 1
    7378      1869904 :          pack_tmp = packed_data(ipack)
    7379      1869904 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    7380      1869904 :          pack_tmp = ISHFT(pack_tmp, -8)
    7381      1869904 :          idata = idata + 1
    7382      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7383      1869904 :          full_data(idata) = data_tmp
    7384      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7385      1869904 :          idata = idata + 1
    7386      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7387      1869904 :          full_data(idata) = data_tmp
    7388      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7389      1869904 :          idata = idata + 1
    7390      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7391      1869904 :          full_data(idata) = data_tmp
    7392      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7393      1869904 :          idata = idata + 1
    7394      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7395      1869904 :          full_data(idata) = data_tmp
    7396      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7397      1869904 :          idata = idata + 1
    7398      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7399      1869904 :          full_data(idata) = data_tmp
    7400      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7401      1869904 :          idata = idata + 1
    7402      1869904 :          data_tmp = ISHFT(pack_tmp, 10)
    7403      1869904 :          ipack = ipack + 1
    7404      1869904 :          pack_tmp = packed_data(ipack)
    7405      1869904 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    7406      1869904 :          pack_tmp = ISHFT(pack_tmp, -10)
    7407      1869904 :          idata = idata + 1
    7408      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7409      1869904 :          full_data(idata) = data_tmp
    7410      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7411      1869904 :          idata = idata + 1
    7412      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7413      1869904 :          full_data(idata) = data_tmp
    7414      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7415      1869904 :          idata = idata + 1
    7416      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7417      1869904 :          full_data(idata) = data_tmp
    7418      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7419      1869904 :          idata = idata + 1
    7420      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7421      1869904 :          full_data(idata) = data_tmp
    7422      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7423      1869904 :          idata = idata + 1
    7424      1869904 :          data_tmp = ISHFT(pack_tmp, 1)
    7425      1869904 :          ipack = ipack + 1
    7426      1869904 :          pack_tmp = packed_data(ipack)
    7427      1869904 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    7428      1869904 :          pack_tmp = ISHFT(pack_tmp, -1)
    7429      1869904 :          idata = idata + 1
    7430      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7431      1869904 :          full_data(idata) = data_tmp
    7432      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7433      1869904 :          idata = idata + 1
    7434      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7435      1869904 :          full_data(idata) = data_tmp
    7436      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7437      1869904 :          idata = idata + 1
    7438      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7439      1869904 :          full_data(idata) = data_tmp
    7440      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7441      1869904 :          idata = idata + 1
    7442      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7443      1869904 :          full_data(idata) = data_tmp
    7444      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7445      1869904 :          idata = idata + 1
    7446      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7447      1869904 :          full_data(idata) = data_tmp
    7448      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7449      1869904 :          idata = idata + 1
    7450      1869904 :          data_tmp = ISHFT(pack_tmp, 3)
    7451      1869904 :          ipack = ipack + 1
    7452      1869904 :          pack_tmp = packed_data(ipack)
    7453      1869904 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    7454      1869904 :          pack_tmp = ISHFT(pack_tmp, -3)
    7455      1869904 :          idata = idata + 1
    7456      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7457      1869904 :          full_data(idata) = data_tmp
    7458      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7459      1869904 :          idata = idata + 1
    7460      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7461      1869904 :          full_data(idata) = data_tmp
    7462      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7463      1869904 :          idata = idata + 1
    7464      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7465      1869904 :          full_data(idata) = data_tmp
    7466      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7467      1869904 :          idata = idata + 1
    7468      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7469      1869904 :          full_data(idata) = data_tmp
    7470      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7471      1869904 :          idata = idata + 1
    7472      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7473      1869904 :          full_data(idata) = data_tmp
    7474      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7475      1869904 :          idata = idata + 1
    7476      1869904 :          data_tmp = ISHFT(pack_tmp, 5)
    7477      1869904 :          ipack = ipack + 1
    7478      1869904 :          pack_tmp = packed_data(ipack)
    7479      1869904 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    7480      1869904 :          pack_tmp = ISHFT(pack_tmp, -5)
    7481      1869904 :          idata = idata + 1
    7482      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7483      1869904 :          full_data(idata) = data_tmp
    7484      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7485      1869904 :          idata = idata + 1
    7486      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7487      1869904 :          full_data(idata) = data_tmp
    7488      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7489      1869904 :          idata = idata + 1
    7490      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7491      1869904 :          full_data(idata) = data_tmp
    7492      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7493      1869904 :          idata = idata + 1
    7494      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7495      1869904 :          full_data(idata) = data_tmp
    7496      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7497      1869904 :          idata = idata + 1
    7498      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7499      1869904 :          full_data(idata) = data_tmp
    7500      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7501      1869904 :          idata = idata + 1
    7502      1869904 :          data_tmp = ISHFT(pack_tmp, 7)
    7503      1869904 :          ipack = ipack + 1
    7504      1869904 :          pack_tmp = packed_data(ipack)
    7505      1869904 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    7506      1869904 :          pack_tmp = ISHFT(pack_tmp, -7)
    7507      1869904 :          idata = idata + 1
    7508      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7509      1869904 :          full_data(idata) = data_tmp
    7510      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7511      1869904 :          idata = idata + 1
    7512      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7513      1869904 :          full_data(idata) = data_tmp
    7514      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7515      1869904 :          idata = idata + 1
    7516      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7517      1869904 :          full_data(idata) = data_tmp
    7518      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7519      1869904 :          idata = idata + 1
    7520      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7521      1869904 :          full_data(idata) = data_tmp
    7522      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7523      1869904 :          idata = idata + 1
    7524      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7525      1869904 :          full_data(idata) = data_tmp
    7526      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7527      1869904 :          idata = idata + 1
    7528      1869904 :          data_tmp = ISHFT(pack_tmp, 9)
    7529      1869904 :          ipack = ipack + 1
    7530      1869904 :          pack_tmp = packed_data(ipack)
    7531      1869904 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    7532      1869904 :          pack_tmp = ISHFT(pack_tmp, -9)
    7533      1869904 :          idata = idata + 1
    7534      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7535      1869904 :          full_data(idata) = data_tmp
    7536      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7537      1869904 :          idata = idata + 1
    7538      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7539      1869904 :          full_data(idata) = data_tmp
    7540      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7541      1869904 :          idata = idata + 1
    7542      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7543      1869904 :          full_data(idata) = data_tmp
    7544      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7545      1869904 :          idata = idata + 1
    7546      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7547      1869904 :          full_data(idata) = data_tmp
    7548      1869904 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7549      1869904 :          idata = idata + 1
    7550      1869904 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7551      1869904 :          full_data(idata) = data_tmp
    7552      1870185 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7553              :       END DO
    7554       120014 :       IF (Ndata_rep < Ndata) THEN
    7555         5920 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7556              :       END IF
    7557       120014 :    END SUBROUTINE bits2ints_11
    7558              : 
    7559              : ! **************************************************************************************************
    7560              : !> \brief ...
    7561              : !> \param Ndata ...
    7562              : !> \param packed_data ...
    7563              : !> \param full_data ...
    7564              : ! **************************************************************************************************
    7565        27433 :    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        27433 :       idata = 0
    7576        27433 :       ipack = 0
    7577        27433 :       Ndata_rep = (Ndata/64)*64
    7578        27433 :       DO kdata = 1, Ndata_rep, 64
    7579       431125 :          pack_tmp = 0
    7580       431125 :          idata = idata + 1
    7581       431125 :          data_tmp = full_data(idata)
    7582       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7583       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7584       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7585       431125 :          idata = idata + 1
    7586       431125 :          data_tmp = full_data(idata)
    7587       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7588       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7589       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7590       431125 :          idata = idata + 1
    7591       431125 :          data_tmp = full_data(idata)
    7592       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7593       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7594       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7595       431125 :          idata = idata + 1
    7596       431125 :          data_tmp = full_data(idata)
    7597       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7598       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7599       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7600       431125 :          idata = idata + 1
    7601       431125 :          data_tmp = full_data(idata)
    7602       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7603       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7604       431125 :          pack_tmp = ISHFT(pack_tmp, -4)
    7605       431125 :          idata = idata + 1
    7606       431125 :          data_tmp = full_data(idata)
    7607       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7608       431125 :          data_tmp = IAND(data_tmp, mask_left(4))
    7609       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7610       431125 :          ipack = ipack + 1
    7611       431125 :          packed_data(ipack) = pack_tmp
    7612       431125 :          data_tmp = full_data(idata)
    7613       431125 :          pack_tmp = ISHFT(data_tmp, 56)
    7614       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7615       431125 :          idata = idata + 1
    7616       431125 :          data_tmp = full_data(idata)
    7617       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7618       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7619       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7620       431125 :          idata = idata + 1
    7621       431125 :          data_tmp = full_data(idata)
    7622       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7623       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7624       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7625       431125 :          idata = idata + 1
    7626       431125 :          data_tmp = full_data(idata)
    7627       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7628       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7629       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7630       431125 :          idata = idata + 1
    7631       431125 :          data_tmp = full_data(idata)
    7632       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7633       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7634       431125 :          pack_tmp = ISHFT(pack_tmp, -8)
    7635       431125 :          idata = idata + 1
    7636       431125 :          data_tmp = full_data(idata)
    7637       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7638       431125 :          data_tmp = IAND(data_tmp, mask_left(8))
    7639       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7640       431125 :          ipack = ipack + 1
    7641       431125 :          packed_data(ipack) = pack_tmp
    7642       431125 :          data_tmp = full_data(idata)
    7643       431125 :          pack_tmp = ISHFT(data_tmp, 60)
    7644       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7645       431125 :          idata = idata + 1
    7646       431125 :          data_tmp = full_data(idata)
    7647       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7648       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7649       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7650       431125 :          idata = idata + 1
    7651       431125 :          data_tmp = full_data(idata)
    7652       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7653       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7654       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7655       431125 :          idata = idata + 1
    7656       431125 :          data_tmp = full_data(idata)
    7657       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7658       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7659       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7660       431125 :          idata = idata + 1
    7661       431125 :          data_tmp = full_data(idata)
    7662       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7663       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7664       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7665       431125 :          idata = idata + 1
    7666       431125 :          data_tmp = full_data(idata)
    7667       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7668       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7669       431125 :          pack_tmp = ISHFT(pack_tmp, 0)
    7670       431125 :          idata = idata + 1
    7671       431125 :          data_tmp = full_data(idata)
    7672              :          data_tmp = ISHFT(data_tmp, 52)
    7673       431125 :          data_tmp = IAND(data_tmp, mask_left(0))
    7674       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7675       431125 :          ipack = ipack + 1
    7676       431125 :          packed_data(ipack) = pack_tmp
    7677       431125 :          data_tmp = full_data(idata)
    7678       431125 :          pack_tmp = ISHFT(data_tmp, 52)
    7679       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7680       431125 :          idata = idata + 1
    7681       431125 :          data_tmp = full_data(idata)
    7682       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7683       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7684       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7685       431125 :          idata = idata + 1
    7686       431125 :          data_tmp = full_data(idata)
    7687       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7688       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7689       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7690       431125 :          idata = idata + 1
    7691       431125 :          data_tmp = full_data(idata)
    7692       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7693       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7694       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7695       431125 :          idata = idata + 1
    7696       431125 :          data_tmp = full_data(idata)
    7697       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7698       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7699       431125 :          pack_tmp = ISHFT(pack_tmp, -4)
    7700       431125 :          idata = idata + 1
    7701       431125 :          data_tmp = full_data(idata)
    7702       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7703       431125 :          data_tmp = IAND(data_tmp, mask_left(4))
    7704       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7705       431125 :          ipack = ipack + 1
    7706       431125 :          packed_data(ipack) = pack_tmp
    7707       431125 :          data_tmp = full_data(idata)
    7708       431125 :          pack_tmp = ISHFT(data_tmp, 56)
    7709       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7710       431125 :          idata = idata + 1
    7711       431125 :          data_tmp = full_data(idata)
    7712       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7713       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7714       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7715       431125 :          idata = idata + 1
    7716       431125 :          data_tmp = full_data(idata)
    7717       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7718       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7719       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7720       431125 :          idata = idata + 1
    7721       431125 :          data_tmp = full_data(idata)
    7722       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7723       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7724       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7725       431125 :          idata = idata + 1
    7726       431125 :          data_tmp = full_data(idata)
    7727       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7728       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7729       431125 :          pack_tmp = ISHFT(pack_tmp, -8)
    7730       431125 :          idata = idata + 1
    7731       431125 :          data_tmp = full_data(idata)
    7732       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7733       431125 :          data_tmp = IAND(data_tmp, mask_left(8))
    7734       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7735       431125 :          ipack = ipack + 1
    7736       431125 :          packed_data(ipack) = pack_tmp
    7737       431125 :          data_tmp = full_data(idata)
    7738       431125 :          pack_tmp = ISHFT(data_tmp, 60)
    7739       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7740       431125 :          idata = idata + 1
    7741       431125 :          data_tmp = full_data(idata)
    7742       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7743       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7744       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7745       431125 :          idata = idata + 1
    7746       431125 :          data_tmp = full_data(idata)
    7747       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7748       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7749       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7750       431125 :          idata = idata + 1
    7751       431125 :          data_tmp = full_data(idata)
    7752       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7753       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7754       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7755       431125 :          idata = idata + 1
    7756       431125 :          data_tmp = full_data(idata)
    7757       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7758       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7759       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7760       431125 :          idata = idata + 1
    7761       431125 :          data_tmp = full_data(idata)
    7762       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7763       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7764       431125 :          pack_tmp = ISHFT(pack_tmp, 0)
    7765       431125 :          idata = idata + 1
    7766       431125 :          data_tmp = full_data(idata)
    7767              :          data_tmp = ISHFT(data_tmp, 52)
    7768       431125 :          data_tmp = IAND(data_tmp, mask_left(0))
    7769       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7770       431125 :          ipack = ipack + 1
    7771       431125 :          packed_data(ipack) = pack_tmp
    7772       431125 :          data_tmp = full_data(idata)
    7773       431125 :          pack_tmp = ISHFT(data_tmp, 52)
    7774       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7775       431125 :          idata = idata + 1
    7776       431125 :          data_tmp = full_data(idata)
    7777       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7778       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7779       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7780       431125 :          idata = idata + 1
    7781       431125 :          data_tmp = full_data(idata)
    7782       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7783       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7784       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7785       431125 :          idata = idata + 1
    7786       431125 :          data_tmp = full_data(idata)
    7787       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7788       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7789       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7790       431125 :          idata = idata + 1
    7791       431125 :          data_tmp = full_data(idata)
    7792       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7793       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7794       431125 :          pack_tmp = ISHFT(pack_tmp, -4)
    7795       431125 :          idata = idata + 1
    7796       431125 :          data_tmp = full_data(idata)
    7797       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7798       431125 :          data_tmp = IAND(data_tmp, mask_left(4))
    7799       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7800       431125 :          ipack = ipack + 1
    7801       431125 :          packed_data(ipack) = pack_tmp
    7802       431125 :          data_tmp = full_data(idata)
    7803       431125 :          pack_tmp = ISHFT(data_tmp, 56)
    7804       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7805       431125 :          idata = idata + 1
    7806       431125 :          data_tmp = full_data(idata)
    7807       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7808       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7809       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7810       431125 :          idata = idata + 1
    7811       431125 :          data_tmp = full_data(idata)
    7812       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7813       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7814       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7815       431125 :          idata = idata + 1
    7816       431125 :          data_tmp = full_data(idata)
    7817       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7818       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7819       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7820       431125 :          idata = idata + 1
    7821       431125 :          data_tmp = full_data(idata)
    7822       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7823       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7824       431125 :          pack_tmp = ISHFT(pack_tmp, -8)
    7825       431125 :          idata = idata + 1
    7826       431125 :          data_tmp = full_data(idata)
    7827       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7828       431125 :          data_tmp = IAND(data_tmp, mask_left(8))
    7829       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7830       431125 :          ipack = ipack + 1
    7831       431125 :          packed_data(ipack) = pack_tmp
    7832       431125 :          data_tmp = full_data(idata)
    7833       431125 :          pack_tmp = ISHFT(data_tmp, 60)
    7834       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7835       431125 :          idata = idata + 1
    7836       431125 :          data_tmp = full_data(idata)
    7837       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7838       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7839       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7840       431125 :          idata = idata + 1
    7841       431125 :          data_tmp = full_data(idata)
    7842       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7843       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7844       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7845       431125 :          idata = idata + 1
    7846       431125 :          data_tmp = full_data(idata)
    7847       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7848       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7849       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7850       431125 :          idata = idata + 1
    7851       431125 :          data_tmp = full_data(idata)
    7852       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7853       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7854       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7855       431125 :          idata = idata + 1
    7856       431125 :          data_tmp = full_data(idata)
    7857       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7858       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7859       431125 :          pack_tmp = ISHFT(pack_tmp, 0)
    7860       431125 :          idata = idata + 1
    7861       431125 :          data_tmp = full_data(idata)
    7862              :          data_tmp = ISHFT(data_tmp, 52)
    7863       431125 :          data_tmp = IAND(data_tmp, mask_left(0))
    7864       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7865       431125 :          ipack = ipack + 1
    7866       431125 :          packed_data(ipack) = pack_tmp
    7867       431125 :          data_tmp = full_data(idata)
    7868       431125 :          pack_tmp = ISHFT(data_tmp, 52)
    7869       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7870       431125 :          idata = idata + 1
    7871       431125 :          data_tmp = full_data(idata)
    7872       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7873       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7874       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7875       431125 :          idata = idata + 1
    7876       431125 :          data_tmp = full_data(idata)
    7877       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7878       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7879       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7880       431125 :          idata = idata + 1
    7881       431125 :          data_tmp = full_data(idata)
    7882       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7883       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7884       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7885       431125 :          idata = idata + 1
    7886       431125 :          data_tmp = full_data(idata)
    7887       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7888       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7889       431125 :          pack_tmp = ISHFT(pack_tmp, -4)
    7890       431125 :          idata = idata + 1
    7891       431125 :          data_tmp = full_data(idata)
    7892       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7893       431125 :          data_tmp = IAND(data_tmp, mask_left(4))
    7894       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7895       431125 :          ipack = ipack + 1
    7896       431125 :          packed_data(ipack) = pack_tmp
    7897       431125 :          data_tmp = full_data(idata)
    7898       431125 :          pack_tmp = ISHFT(data_tmp, 56)
    7899       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7900       431125 :          idata = idata + 1
    7901       431125 :          data_tmp = full_data(idata)
    7902       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7903       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7904       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7905       431125 :          idata = idata + 1
    7906       431125 :          data_tmp = full_data(idata)
    7907       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7908       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7909       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7910       431125 :          idata = idata + 1
    7911       431125 :          data_tmp = full_data(idata)
    7912       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7913       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7914       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7915       431125 :          idata = idata + 1
    7916       431125 :          data_tmp = full_data(idata)
    7917       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7918       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7919       431125 :          pack_tmp = ISHFT(pack_tmp, -8)
    7920       431125 :          idata = idata + 1
    7921       431125 :          data_tmp = full_data(idata)
    7922       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7923       431125 :          data_tmp = IAND(data_tmp, mask_left(8))
    7924       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7925       431125 :          ipack = ipack + 1
    7926       431125 :          packed_data(ipack) = pack_tmp
    7927       431125 :          data_tmp = full_data(idata)
    7928       431125 :          pack_tmp = ISHFT(data_tmp, 60)
    7929       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7930       431125 :          idata = idata + 1
    7931       431125 :          data_tmp = full_data(idata)
    7932       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7933       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7934       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7935       431125 :          idata = idata + 1
    7936       431125 :          data_tmp = full_data(idata)
    7937       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7938       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7939       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7940       431125 :          idata = idata + 1
    7941       431125 :          data_tmp = full_data(idata)
    7942       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7943       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7944       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7945       431125 :          idata = idata + 1
    7946       431125 :          data_tmp = full_data(idata)
    7947       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7948       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7949       431125 :          pack_tmp = ISHFT(pack_tmp, -12)
    7950       431125 :          idata = idata + 1
    7951       431125 :          data_tmp = full_data(idata)
    7952       431125 :          data_tmp = ISHFT(data_tmp, 52)
    7953       431125 :          pack_tmp = IOR(pack_tmp, data_tmp)
    7954              :          pack_tmp = ISHFT(pack_tmp, 0)
    7955       431125 :          pack_tmp = ISHFT(pack_tmp, 0)
    7956       431125 :          ipack = ipack + 1
    7957       431190 :          packed_data(ipack) = pack_tmp
    7958              :       END DO
    7959        27433 :       IF (Ndata_rep < Ndata) THEN
    7960          918 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    7961              :       END IF
    7962        27433 :    END SUBROUTINE ints2bits_12
    7963              : 
    7964              : ! **************************************************************************************************
    7965              : !> \brief ...
    7966              : !> \param Ndata ...
    7967              : !> \param packed_data ...
    7968              : !> \param full_data ...
    7969              : ! **************************************************************************************************
    7970       121959 :    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       121959 :       ipack = 0
    7981       121959 :       idata = 0
    7982       121959 :       pack_tmp = 0
    7983       121959 :       Ndata_rep = (Ndata/64)*64
    7984       121959 :       DO kdata = 1, Ndata_rep, 64
    7985      1892473 :          idata = idata + 1
    7986      1892473 :          data_tmp = ISHFT(pack_tmp, 12)
    7987      1892473 :          ipack = ipack + 1
    7988      1892473 :          pack_tmp = packed_data(ipack)
    7989      1892473 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    7990      1892473 :          pack_tmp = ISHFT(pack_tmp, -12)
    7991      1892473 :          idata = idata + 1
    7992      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7993      1892473 :          full_data(idata) = data_tmp
    7994      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7995      1892473 :          idata = idata + 1
    7996      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    7997      1892473 :          full_data(idata) = data_tmp
    7998      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    7999      1892473 :          idata = idata + 1
    8000      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8001      1892473 :          full_data(idata) = data_tmp
    8002      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8003      1892473 :          idata = idata + 1
    8004      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8005      1892473 :          full_data(idata) = data_tmp
    8006      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8007      1892473 :          idata = idata + 1
    8008      1892473 :          data_tmp = ISHFT(pack_tmp, 8)
    8009      1892473 :          ipack = ipack + 1
    8010      1892473 :          pack_tmp = packed_data(ipack)
    8011      1892473 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8012      1892473 :          pack_tmp = ISHFT(pack_tmp, -8)
    8013      1892473 :          idata = idata + 1
    8014      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8015      1892473 :          full_data(idata) = data_tmp
    8016      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8017      1892473 :          idata = idata + 1
    8018      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8019      1892473 :          full_data(idata) = data_tmp
    8020      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8021      1892473 :          idata = idata + 1
    8022      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8023      1892473 :          full_data(idata) = data_tmp
    8024      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8025      1892473 :          idata = idata + 1
    8026      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8027      1892473 :          full_data(idata) = data_tmp
    8028      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8029      1892473 :          idata = idata + 1
    8030      1892473 :          data_tmp = ISHFT(pack_tmp, 4)
    8031      1892473 :          ipack = ipack + 1
    8032      1892473 :          pack_tmp = packed_data(ipack)
    8033      1892473 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8034      1892473 :          pack_tmp = ISHFT(pack_tmp, -4)
    8035      1892473 :          idata = idata + 1
    8036      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8037      1892473 :          full_data(idata) = data_tmp
    8038      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8039      1892473 :          idata = idata + 1
    8040      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8041      1892473 :          full_data(idata) = data_tmp
    8042      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8043      1892473 :          idata = idata + 1
    8044      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8045      1892473 :          full_data(idata) = data_tmp
    8046      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8047      1892473 :          idata = idata + 1
    8048      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8049      1892473 :          full_data(idata) = data_tmp
    8050      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8051      1892473 :          idata = idata + 1
    8052      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8053      1892473 :          full_data(idata) = data_tmp
    8054      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8055      1892473 :          idata = idata + 1
    8056      1892473 :          data_tmp = ISHFT(pack_tmp, 12)
    8057      1892473 :          ipack = ipack + 1
    8058      1892473 :          pack_tmp = packed_data(ipack)
    8059      1892473 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8060      1892473 :          pack_tmp = ISHFT(pack_tmp, -12)
    8061      1892473 :          idata = idata + 1
    8062      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8063      1892473 :          full_data(idata) = data_tmp
    8064      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8065      1892473 :          idata = idata + 1
    8066      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8067      1892473 :          full_data(idata) = data_tmp
    8068      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8069      1892473 :          idata = idata + 1
    8070      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8071      1892473 :          full_data(idata) = data_tmp
    8072      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8073      1892473 :          idata = idata + 1
    8074      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8075      1892473 :          full_data(idata) = data_tmp
    8076      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8077      1892473 :          idata = idata + 1
    8078      1892473 :          data_tmp = ISHFT(pack_tmp, 8)
    8079      1892473 :          ipack = ipack + 1
    8080      1892473 :          pack_tmp = packed_data(ipack)
    8081      1892473 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8082      1892473 :          pack_tmp = ISHFT(pack_tmp, -8)
    8083      1892473 :          idata = idata + 1
    8084      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8085      1892473 :          full_data(idata) = data_tmp
    8086      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8087      1892473 :          idata = idata + 1
    8088      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8089      1892473 :          full_data(idata) = data_tmp
    8090      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8091      1892473 :          idata = idata + 1
    8092      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8093      1892473 :          full_data(idata) = data_tmp
    8094      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8095      1892473 :          idata = idata + 1
    8096      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8097      1892473 :          full_data(idata) = data_tmp
    8098      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8099      1892473 :          idata = idata + 1
    8100      1892473 :          data_tmp = ISHFT(pack_tmp, 4)
    8101      1892473 :          ipack = ipack + 1
    8102      1892473 :          pack_tmp = packed_data(ipack)
    8103      1892473 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8104      1892473 :          pack_tmp = ISHFT(pack_tmp, -4)
    8105      1892473 :          idata = idata + 1
    8106      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8107      1892473 :          full_data(idata) = data_tmp
    8108      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8109      1892473 :          idata = idata + 1
    8110      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8111      1892473 :          full_data(idata) = data_tmp
    8112      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8113      1892473 :          idata = idata + 1
    8114      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8115      1892473 :          full_data(idata) = data_tmp
    8116      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8117      1892473 :          idata = idata + 1
    8118      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8119      1892473 :          full_data(idata) = data_tmp
    8120      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8121      1892473 :          idata = idata + 1
    8122      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8123      1892473 :          full_data(idata) = data_tmp
    8124      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8125      1892473 :          idata = idata + 1
    8126      1892473 :          data_tmp = ISHFT(pack_tmp, 12)
    8127      1892473 :          ipack = ipack + 1
    8128      1892473 :          pack_tmp = packed_data(ipack)
    8129      1892473 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8130      1892473 :          pack_tmp = ISHFT(pack_tmp, -12)
    8131      1892473 :          idata = idata + 1
    8132      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8133      1892473 :          full_data(idata) = data_tmp
    8134      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8135      1892473 :          idata = idata + 1
    8136      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8137      1892473 :          full_data(idata) = data_tmp
    8138      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8139      1892473 :          idata = idata + 1
    8140      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8141      1892473 :          full_data(idata) = data_tmp
    8142      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8143      1892473 :          idata = idata + 1
    8144      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8145      1892473 :          full_data(idata) = data_tmp
    8146      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8147      1892473 :          idata = idata + 1
    8148      1892473 :          data_tmp = ISHFT(pack_tmp, 8)
    8149      1892473 :          ipack = ipack + 1
    8150      1892473 :          pack_tmp = packed_data(ipack)
    8151      1892473 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8152      1892473 :          pack_tmp = ISHFT(pack_tmp, -8)
    8153      1892473 :          idata = idata + 1
    8154      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8155      1892473 :          full_data(idata) = data_tmp
    8156      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8157      1892473 :          idata = idata + 1
    8158      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8159      1892473 :          full_data(idata) = data_tmp
    8160      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8161      1892473 :          idata = idata + 1
    8162      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8163      1892473 :          full_data(idata) = data_tmp
    8164      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8165      1892473 :          idata = idata + 1
    8166      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8167      1892473 :          full_data(idata) = data_tmp
    8168      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8169      1892473 :          idata = idata + 1
    8170      1892473 :          data_tmp = ISHFT(pack_tmp, 4)
    8171      1892473 :          ipack = ipack + 1
    8172      1892473 :          pack_tmp = packed_data(ipack)
    8173      1892473 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8174      1892473 :          pack_tmp = ISHFT(pack_tmp, -4)
    8175      1892473 :          idata = idata + 1
    8176      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8177      1892473 :          full_data(idata) = data_tmp
    8178      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8179      1892473 :          idata = idata + 1
    8180      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8181      1892473 :          full_data(idata) = data_tmp
    8182      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8183      1892473 :          idata = idata + 1
    8184      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8185      1892473 :          full_data(idata) = data_tmp
    8186      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8187      1892473 :          idata = idata + 1
    8188      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8189      1892473 :          full_data(idata) = data_tmp
    8190      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8191      1892473 :          idata = idata + 1
    8192      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8193      1892473 :          full_data(idata) = data_tmp
    8194      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8195      1892473 :          idata = idata + 1
    8196      1892473 :          data_tmp = ISHFT(pack_tmp, 12)
    8197      1892473 :          ipack = ipack + 1
    8198      1892473 :          pack_tmp = packed_data(ipack)
    8199      1892473 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8200      1892473 :          pack_tmp = ISHFT(pack_tmp, -12)
    8201      1892473 :          idata = idata + 1
    8202      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8203      1892473 :          full_data(idata) = data_tmp
    8204      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8205      1892473 :          idata = idata + 1
    8206      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8207      1892473 :          full_data(idata) = data_tmp
    8208      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8209      1892473 :          idata = idata + 1
    8210      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8211      1892473 :          full_data(idata) = data_tmp
    8212      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8213      1892473 :          idata = idata + 1
    8214      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8215      1892473 :          full_data(idata) = data_tmp
    8216      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8217      1892473 :          idata = idata + 1
    8218      1892473 :          data_tmp = ISHFT(pack_tmp, 8)
    8219      1892473 :          ipack = ipack + 1
    8220      1892473 :          pack_tmp = packed_data(ipack)
    8221      1892473 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8222      1892473 :          pack_tmp = ISHFT(pack_tmp, -8)
    8223      1892473 :          idata = idata + 1
    8224      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8225      1892473 :          full_data(idata) = data_tmp
    8226      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8227      1892473 :          idata = idata + 1
    8228      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8229      1892473 :          full_data(idata) = data_tmp
    8230      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8231      1892473 :          idata = idata + 1
    8232      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8233      1892473 :          full_data(idata) = data_tmp
    8234      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8235      1892473 :          idata = idata + 1
    8236      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8237      1892473 :          full_data(idata) = data_tmp
    8238      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8239      1892473 :          idata = idata + 1
    8240      1892473 :          data_tmp = ISHFT(pack_tmp, 4)
    8241      1892473 :          ipack = ipack + 1
    8242      1892473 :          pack_tmp = packed_data(ipack)
    8243      1892473 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8244      1892473 :          pack_tmp = ISHFT(pack_tmp, -4)
    8245      1892473 :          idata = idata + 1
    8246      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8247      1892473 :          full_data(idata) = data_tmp
    8248      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8249      1892473 :          idata = idata + 1
    8250      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8251      1892473 :          full_data(idata) = data_tmp
    8252      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8253      1892473 :          idata = idata + 1
    8254      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8255      1892473 :          full_data(idata) = data_tmp
    8256      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8257      1892473 :          idata = idata + 1
    8258      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8259      1892473 :          full_data(idata) = data_tmp
    8260      1892473 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8261      1892473 :          idata = idata + 1
    8262      1892473 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8263      1892473 :          full_data(idata) = data_tmp
    8264      1892960 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8265              :       END DO
    8266       121959 :       IF (Ndata_rep < Ndata) THEN
    8267         6926 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8268              :       END IF
    8269       121959 :    END SUBROUTINE bits2ints_12
    8270              : 
    8271              : ! **************************************************************************************************
    8272              : !> \brief ...
    8273              : !> \param Ndata ...
    8274              : !> \param packed_data ...
    8275              : !> \param full_data ...
    8276              : ! **************************************************************************************************
    8277        28838 :    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        28838 :       idata = 0
    8288        28838 :       ipack = 0
    8289        28838 :       Ndata_rep = (Ndata/64)*64
    8290        28838 :       DO kdata = 1, Ndata_rep, 64
    8291       449152 :          pack_tmp = 0
    8292       449152 :          idata = idata + 1
    8293       449152 :          data_tmp = full_data(idata)
    8294       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8295       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8296       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8297       449152 :          idata = idata + 1
    8298       449152 :          data_tmp = full_data(idata)
    8299       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8300       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8301       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8302       449152 :          idata = idata + 1
    8303       449152 :          data_tmp = full_data(idata)
    8304       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8305       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8306       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8307       449152 :          idata = idata + 1
    8308       449152 :          data_tmp = full_data(idata)
    8309       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8310       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8311       449152 :          pack_tmp = ISHFT(pack_tmp, -12)
    8312       449152 :          idata = idata + 1
    8313       449152 :          data_tmp = full_data(idata)
    8314       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8315       449152 :          data_tmp = IAND(data_tmp, mask_left(12))
    8316       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8317       449152 :          ipack = ipack + 1
    8318       449152 :          packed_data(ipack) = pack_tmp
    8319       449152 :          data_tmp = full_data(idata)
    8320       449152 :          pack_tmp = ISHFT(data_tmp, 63)
    8321       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8322       449152 :          idata = idata + 1
    8323       449152 :          data_tmp = full_data(idata)
    8324       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8325       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8326       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8327       449152 :          idata = idata + 1
    8328       449152 :          data_tmp = full_data(idata)
    8329       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8330       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8331       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8332       449152 :          idata = idata + 1
    8333       449152 :          data_tmp = full_data(idata)
    8334       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8335       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8336       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8337       449152 :          idata = idata + 1
    8338       449152 :          data_tmp = full_data(idata)
    8339       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8340       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8341       449152 :          pack_tmp = ISHFT(pack_tmp, -11)
    8342       449152 :          idata = idata + 1
    8343       449152 :          data_tmp = full_data(idata)
    8344       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8345       449152 :          data_tmp = IAND(data_tmp, mask_left(11))
    8346       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8347       449152 :          ipack = ipack + 1
    8348       449152 :          packed_data(ipack) = pack_tmp
    8349       449152 :          data_tmp = full_data(idata)
    8350       449152 :          pack_tmp = ISHFT(data_tmp, 62)
    8351       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8352       449152 :          idata = idata + 1
    8353       449152 :          data_tmp = full_data(idata)
    8354       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8355       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8356       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8357       449152 :          idata = idata + 1
    8358       449152 :          data_tmp = full_data(idata)
    8359       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8360       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8361       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8362       449152 :          idata = idata + 1
    8363       449152 :          data_tmp = full_data(idata)
    8364       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8365       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8366       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8367       449152 :          idata = idata + 1
    8368       449152 :          data_tmp = full_data(idata)
    8369       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8370       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8371       449152 :          pack_tmp = ISHFT(pack_tmp, -10)
    8372       449152 :          idata = idata + 1
    8373       449152 :          data_tmp = full_data(idata)
    8374       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8375       449152 :          data_tmp = IAND(data_tmp, mask_left(10))
    8376       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8377       449152 :          ipack = ipack + 1
    8378       449152 :          packed_data(ipack) = pack_tmp
    8379       449152 :          data_tmp = full_data(idata)
    8380       449152 :          pack_tmp = ISHFT(data_tmp, 61)
    8381       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8382       449152 :          idata = idata + 1
    8383       449152 :          data_tmp = full_data(idata)
    8384       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8385       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8386       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8387       449152 :          idata = idata + 1
    8388       449152 :          data_tmp = full_data(idata)
    8389       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8390       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8391       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8392       449152 :          idata = idata + 1
    8393       449152 :          data_tmp = full_data(idata)
    8394       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8395       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8396       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8397       449152 :          idata = idata + 1
    8398       449152 :          data_tmp = full_data(idata)
    8399       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8400       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8401       449152 :          pack_tmp = ISHFT(pack_tmp, -9)
    8402       449152 :          idata = idata + 1
    8403       449152 :          data_tmp = full_data(idata)
    8404       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8405       449152 :          data_tmp = IAND(data_tmp, mask_left(9))
    8406       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8407       449152 :          ipack = ipack + 1
    8408       449152 :          packed_data(ipack) = pack_tmp
    8409       449152 :          data_tmp = full_data(idata)
    8410       449152 :          pack_tmp = ISHFT(data_tmp, 60)
    8411       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8412       449152 :          idata = idata + 1
    8413       449152 :          data_tmp = full_data(idata)
    8414       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8415       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8416       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8417       449152 :          idata = idata + 1
    8418       449152 :          data_tmp = full_data(idata)
    8419       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8420       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8421       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8422       449152 :          idata = idata + 1
    8423       449152 :          data_tmp = full_data(idata)
    8424       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8425       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8426       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8427       449152 :          idata = idata + 1
    8428       449152 :          data_tmp = full_data(idata)
    8429       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8430       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8431       449152 :          pack_tmp = ISHFT(pack_tmp, -8)
    8432       449152 :          idata = idata + 1
    8433       449152 :          data_tmp = full_data(idata)
    8434       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8435       449152 :          data_tmp = IAND(data_tmp, mask_left(8))
    8436       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8437       449152 :          ipack = ipack + 1
    8438       449152 :          packed_data(ipack) = pack_tmp
    8439       449152 :          data_tmp = full_data(idata)
    8440       449152 :          pack_tmp = ISHFT(data_tmp, 59)
    8441       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8442       449152 :          idata = idata + 1
    8443       449152 :          data_tmp = full_data(idata)
    8444       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8445       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8446       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8447       449152 :          idata = idata + 1
    8448       449152 :          data_tmp = full_data(idata)
    8449       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8450       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8451       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8452       449152 :          idata = idata + 1
    8453       449152 :          data_tmp = full_data(idata)
    8454       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8455       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8456       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8457       449152 :          idata = idata + 1
    8458       449152 :          data_tmp = full_data(idata)
    8459       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8460       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8461       449152 :          pack_tmp = ISHFT(pack_tmp, -7)
    8462       449152 :          idata = idata + 1
    8463       449152 :          data_tmp = full_data(idata)
    8464       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8465       449152 :          data_tmp = IAND(data_tmp, mask_left(7))
    8466       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8467       449152 :          ipack = ipack + 1
    8468       449152 :          packed_data(ipack) = pack_tmp
    8469       449152 :          data_tmp = full_data(idata)
    8470       449152 :          pack_tmp = ISHFT(data_tmp, 58)
    8471       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8472       449152 :          idata = idata + 1
    8473       449152 :          data_tmp = full_data(idata)
    8474       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8475       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8476       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8477       449152 :          idata = idata + 1
    8478       449152 :          data_tmp = full_data(idata)
    8479       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8480       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8481       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8482       449152 :          idata = idata + 1
    8483       449152 :          data_tmp = full_data(idata)
    8484       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8485       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8486       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8487       449152 :          idata = idata + 1
    8488       449152 :          data_tmp = full_data(idata)
    8489       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8490       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8491       449152 :          pack_tmp = ISHFT(pack_tmp, -6)
    8492       449152 :          idata = idata + 1
    8493       449152 :          data_tmp = full_data(idata)
    8494       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8495       449152 :          data_tmp = IAND(data_tmp, mask_left(6))
    8496       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8497       449152 :          ipack = ipack + 1
    8498       449152 :          packed_data(ipack) = pack_tmp
    8499       449152 :          data_tmp = full_data(idata)
    8500       449152 :          pack_tmp = ISHFT(data_tmp, 57)
    8501       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8502       449152 :          idata = idata + 1
    8503       449152 :          data_tmp = full_data(idata)
    8504       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8505       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8506       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8507       449152 :          idata = idata + 1
    8508       449152 :          data_tmp = full_data(idata)
    8509       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8510       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8511       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8512       449152 :          idata = idata + 1
    8513       449152 :          data_tmp = full_data(idata)
    8514       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8515       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8516       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8517       449152 :          idata = idata + 1
    8518       449152 :          data_tmp = full_data(idata)
    8519       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8520       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8521       449152 :          pack_tmp = ISHFT(pack_tmp, -5)
    8522       449152 :          idata = idata + 1
    8523       449152 :          data_tmp = full_data(idata)
    8524       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8525       449152 :          data_tmp = IAND(data_tmp, mask_left(5))
    8526       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8527       449152 :          ipack = ipack + 1
    8528       449152 :          packed_data(ipack) = pack_tmp
    8529       449152 :          data_tmp = full_data(idata)
    8530       449152 :          pack_tmp = ISHFT(data_tmp, 56)
    8531       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8532       449152 :          idata = idata + 1
    8533       449152 :          data_tmp = full_data(idata)
    8534       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8535       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8536       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8537       449152 :          idata = idata + 1
    8538       449152 :          data_tmp = full_data(idata)
    8539       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8540       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8541       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8542       449152 :          idata = idata + 1
    8543       449152 :          data_tmp = full_data(idata)
    8544       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8545       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8546       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8547       449152 :          idata = idata + 1
    8548       449152 :          data_tmp = full_data(idata)
    8549       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8550       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8551       449152 :          pack_tmp = ISHFT(pack_tmp, -4)
    8552       449152 :          idata = idata + 1
    8553       449152 :          data_tmp = full_data(idata)
    8554       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8555       449152 :          data_tmp = IAND(data_tmp, mask_left(4))
    8556       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8557       449152 :          ipack = ipack + 1
    8558       449152 :          packed_data(ipack) = pack_tmp
    8559       449152 :          data_tmp = full_data(idata)
    8560       449152 :          pack_tmp = ISHFT(data_tmp, 55)
    8561       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8562       449152 :          idata = idata + 1
    8563       449152 :          data_tmp = full_data(idata)
    8564       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8565       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8566       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8567       449152 :          idata = idata + 1
    8568       449152 :          data_tmp = full_data(idata)
    8569       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8570       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8571       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8572       449152 :          idata = idata + 1
    8573       449152 :          data_tmp = full_data(idata)
    8574       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8575       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8576       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8577       449152 :          idata = idata + 1
    8578       449152 :          data_tmp = full_data(idata)
    8579       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8580       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8581       449152 :          pack_tmp = ISHFT(pack_tmp, -3)
    8582       449152 :          idata = idata + 1
    8583       449152 :          data_tmp = full_data(idata)
    8584       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8585       449152 :          data_tmp = IAND(data_tmp, mask_left(3))
    8586       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8587       449152 :          ipack = ipack + 1
    8588       449152 :          packed_data(ipack) = pack_tmp
    8589       449152 :          data_tmp = full_data(idata)
    8590       449152 :          pack_tmp = ISHFT(data_tmp, 54)
    8591       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8592       449152 :          idata = idata + 1
    8593       449152 :          data_tmp = full_data(idata)
    8594       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8595       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8596       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8597       449152 :          idata = idata + 1
    8598       449152 :          data_tmp = full_data(idata)
    8599       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8600       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8601       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8602       449152 :          idata = idata + 1
    8603       449152 :          data_tmp = full_data(idata)
    8604       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8605       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8606       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8607       449152 :          idata = idata + 1
    8608       449152 :          data_tmp = full_data(idata)
    8609       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8610       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8611       449152 :          pack_tmp = ISHFT(pack_tmp, -2)
    8612       449152 :          idata = idata + 1
    8613       449152 :          data_tmp = full_data(idata)
    8614       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8615       449152 :          data_tmp = IAND(data_tmp, mask_left(2))
    8616       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8617       449152 :          ipack = ipack + 1
    8618       449152 :          packed_data(ipack) = pack_tmp
    8619       449152 :          data_tmp = full_data(idata)
    8620       449152 :          pack_tmp = ISHFT(data_tmp, 53)
    8621       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8622       449152 :          idata = idata + 1
    8623       449152 :          data_tmp = full_data(idata)
    8624       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8625       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8626       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8627       449152 :          idata = idata + 1
    8628       449152 :          data_tmp = full_data(idata)
    8629       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8630       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8631       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8632       449152 :          idata = idata + 1
    8633       449152 :          data_tmp = full_data(idata)
    8634       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8635       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8636       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8637       449152 :          idata = idata + 1
    8638       449152 :          data_tmp = full_data(idata)
    8639       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8640       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8641       449152 :          pack_tmp = ISHFT(pack_tmp, -1)
    8642       449152 :          idata = idata + 1
    8643       449152 :          data_tmp = full_data(idata)
    8644       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8645       449152 :          data_tmp = IAND(data_tmp, mask_left(1))
    8646       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8647       449152 :          ipack = ipack + 1
    8648       449152 :          packed_data(ipack) = pack_tmp
    8649       449152 :          data_tmp = full_data(idata)
    8650       449152 :          pack_tmp = ISHFT(data_tmp, 52)
    8651       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8652       449152 :          idata = idata + 1
    8653       449152 :          data_tmp = full_data(idata)
    8654       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8655       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8656       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8657       449152 :          idata = idata + 1
    8658       449152 :          data_tmp = full_data(idata)
    8659       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8660       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8661       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8662       449152 :          idata = idata + 1
    8663       449152 :          data_tmp = full_data(idata)
    8664       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8665       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8666       449152 :          pack_tmp = ISHFT(pack_tmp, -13)
    8667       449152 :          idata = idata + 1
    8668       449152 :          data_tmp = full_data(idata)
    8669       449152 :          data_tmp = ISHFT(data_tmp, 51)
    8670       449152 :          pack_tmp = IOR(pack_tmp, data_tmp)
    8671              :          pack_tmp = ISHFT(pack_tmp, 0)
    8672       449152 :          pack_tmp = ISHFT(pack_tmp, 0)
    8673       449152 :          ipack = ipack + 1
    8674       449222 :          packed_data(ipack) = pack_tmp
    8675              :       END DO
    8676        28838 :       IF (Ndata_rep < Ndata) THEN
    8677         1344 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8678              :       END IF
    8679        28838 :    END SUBROUTINE ints2bits_13
    8680              : 
    8681              : ! **************************************************************************************************
    8682              : !> \brief ...
    8683              : !> \param Ndata ...
    8684              : !> \param packed_data ...
    8685              : !> \param full_data ...
    8686              : ! **************************************************************************************************
    8687       134209 :    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       134209 :       ipack = 0
    8698       134209 :       idata = 0
    8699       134209 :       pack_tmp = 0
    8700       134209 :       Ndata_rep = (Ndata/64)*64
    8701       134209 :       DO kdata = 1, Ndata_rep, 64
    8702      2049311 :          idata = idata + 1
    8703      2049311 :          data_tmp = ISHFT(pack_tmp, 13)
    8704      2049311 :          ipack = ipack + 1
    8705      2049311 :          pack_tmp = packed_data(ipack)
    8706      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
    8707      2049311 :          pack_tmp = ISHFT(pack_tmp, -13)
    8708      2049311 :          idata = idata + 1
    8709      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8710      2049311 :          full_data(idata) = data_tmp
    8711      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8712      2049311 :          idata = idata + 1
    8713      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8714      2049311 :          full_data(idata) = data_tmp
    8715      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8716      2049311 :          idata = idata + 1
    8717      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8718      2049311 :          full_data(idata) = data_tmp
    8719      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8720      2049311 :          idata = idata + 1
    8721      2049311 :          data_tmp = ISHFT(pack_tmp, 1)
    8722      2049311 :          ipack = ipack + 1
    8723      2049311 :          pack_tmp = packed_data(ipack)
    8724      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
    8725      2049311 :          pack_tmp = ISHFT(pack_tmp, -1)
    8726      2049311 :          idata = idata + 1
    8727      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8728      2049311 :          full_data(idata) = data_tmp
    8729      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8730      2049311 :          idata = idata + 1
    8731      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8732      2049311 :          full_data(idata) = data_tmp
    8733      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8734      2049311 :          idata = idata + 1
    8735      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8736      2049311 :          full_data(idata) = data_tmp
    8737      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8738      2049311 :          idata = idata + 1
    8739      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8740      2049311 :          full_data(idata) = data_tmp
    8741      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8742      2049311 :          idata = idata + 1
    8743      2049311 :          data_tmp = ISHFT(pack_tmp, 2)
    8744      2049311 :          ipack = ipack + 1
    8745      2049311 :          pack_tmp = packed_data(ipack)
    8746      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    8747      2049311 :          pack_tmp = ISHFT(pack_tmp, -2)
    8748      2049311 :          idata = idata + 1
    8749      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8750      2049311 :          full_data(idata) = data_tmp
    8751      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8752      2049311 :          idata = idata + 1
    8753      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8754      2049311 :          full_data(idata) = data_tmp
    8755      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8756      2049311 :          idata = idata + 1
    8757      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8758      2049311 :          full_data(idata) = data_tmp
    8759      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8760      2049311 :          idata = idata + 1
    8761      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8762      2049311 :          full_data(idata) = data_tmp
    8763      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8764      2049311 :          idata = idata + 1
    8765      2049311 :          data_tmp = ISHFT(pack_tmp, 3)
    8766      2049311 :          ipack = ipack + 1
    8767      2049311 :          pack_tmp = packed_data(ipack)
    8768      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
    8769      2049311 :          pack_tmp = ISHFT(pack_tmp, -3)
    8770      2049311 :          idata = idata + 1
    8771      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8772      2049311 :          full_data(idata) = data_tmp
    8773      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8774      2049311 :          idata = idata + 1
    8775      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8776      2049311 :          full_data(idata) = data_tmp
    8777      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8778      2049311 :          idata = idata + 1
    8779      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8780      2049311 :          full_data(idata) = data_tmp
    8781      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8782      2049311 :          idata = idata + 1
    8783      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8784      2049311 :          full_data(idata) = data_tmp
    8785      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8786      2049311 :          idata = idata + 1
    8787      2049311 :          data_tmp = ISHFT(pack_tmp, 4)
    8788      2049311 :          ipack = ipack + 1
    8789      2049311 :          pack_tmp = packed_data(ipack)
    8790      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    8791      2049311 :          pack_tmp = ISHFT(pack_tmp, -4)
    8792      2049311 :          idata = idata + 1
    8793      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8794      2049311 :          full_data(idata) = data_tmp
    8795      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8796      2049311 :          idata = idata + 1
    8797      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8798      2049311 :          full_data(idata) = data_tmp
    8799      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8800      2049311 :          idata = idata + 1
    8801      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8802      2049311 :          full_data(idata) = data_tmp
    8803      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8804      2049311 :          idata = idata + 1
    8805      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8806      2049311 :          full_data(idata) = data_tmp
    8807      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8808      2049311 :          idata = idata + 1
    8809      2049311 :          data_tmp = ISHFT(pack_tmp, 5)
    8810      2049311 :          ipack = ipack + 1
    8811      2049311 :          pack_tmp = packed_data(ipack)
    8812      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
    8813      2049311 :          pack_tmp = ISHFT(pack_tmp, -5)
    8814      2049311 :          idata = idata + 1
    8815      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8816      2049311 :          full_data(idata) = data_tmp
    8817      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8818      2049311 :          idata = idata + 1
    8819      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8820      2049311 :          full_data(idata) = data_tmp
    8821      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8822      2049311 :          idata = idata + 1
    8823      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8824      2049311 :          full_data(idata) = data_tmp
    8825      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8826      2049311 :          idata = idata + 1
    8827      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8828      2049311 :          full_data(idata) = data_tmp
    8829      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8830      2049311 :          idata = idata + 1
    8831      2049311 :          data_tmp = ISHFT(pack_tmp, 6)
    8832      2049311 :          ipack = ipack + 1
    8833      2049311 :          pack_tmp = packed_data(ipack)
    8834      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    8835      2049311 :          pack_tmp = ISHFT(pack_tmp, -6)
    8836      2049311 :          idata = idata + 1
    8837      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8838      2049311 :          full_data(idata) = data_tmp
    8839      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8840      2049311 :          idata = idata + 1
    8841      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8842      2049311 :          full_data(idata) = data_tmp
    8843      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8844      2049311 :          idata = idata + 1
    8845      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8846      2049311 :          full_data(idata) = data_tmp
    8847      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8848      2049311 :          idata = idata + 1
    8849      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8850      2049311 :          full_data(idata) = data_tmp
    8851      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8852      2049311 :          idata = idata + 1
    8853      2049311 :          data_tmp = ISHFT(pack_tmp, 7)
    8854      2049311 :          ipack = ipack + 1
    8855      2049311 :          pack_tmp = packed_data(ipack)
    8856      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
    8857      2049311 :          pack_tmp = ISHFT(pack_tmp, -7)
    8858      2049311 :          idata = idata + 1
    8859      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8860      2049311 :          full_data(idata) = data_tmp
    8861      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8862      2049311 :          idata = idata + 1
    8863      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8864      2049311 :          full_data(idata) = data_tmp
    8865      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8866      2049311 :          idata = idata + 1
    8867      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8868      2049311 :          full_data(idata) = data_tmp
    8869      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8870      2049311 :          idata = idata + 1
    8871      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8872      2049311 :          full_data(idata) = data_tmp
    8873      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8874      2049311 :          idata = idata + 1
    8875      2049311 :          data_tmp = ISHFT(pack_tmp, 8)
    8876      2049311 :          ipack = ipack + 1
    8877      2049311 :          pack_tmp = packed_data(ipack)
    8878      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    8879      2049311 :          pack_tmp = ISHFT(pack_tmp, -8)
    8880      2049311 :          idata = idata + 1
    8881      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8882      2049311 :          full_data(idata) = data_tmp
    8883      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8884      2049311 :          idata = idata + 1
    8885      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8886      2049311 :          full_data(idata) = data_tmp
    8887      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8888      2049311 :          idata = idata + 1
    8889      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8890      2049311 :          full_data(idata) = data_tmp
    8891      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8892      2049311 :          idata = idata + 1
    8893      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8894      2049311 :          full_data(idata) = data_tmp
    8895      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8896      2049311 :          idata = idata + 1
    8897      2049311 :          data_tmp = ISHFT(pack_tmp, 9)
    8898      2049311 :          ipack = ipack + 1
    8899      2049311 :          pack_tmp = packed_data(ipack)
    8900      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
    8901      2049311 :          pack_tmp = ISHFT(pack_tmp, -9)
    8902      2049311 :          idata = idata + 1
    8903      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8904      2049311 :          full_data(idata) = data_tmp
    8905      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8906      2049311 :          idata = idata + 1
    8907      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8908      2049311 :          full_data(idata) = data_tmp
    8909      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8910      2049311 :          idata = idata + 1
    8911      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8912      2049311 :          full_data(idata) = data_tmp
    8913      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8914      2049311 :          idata = idata + 1
    8915      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8916      2049311 :          full_data(idata) = data_tmp
    8917      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8918      2049311 :          idata = idata + 1
    8919      2049311 :          data_tmp = ISHFT(pack_tmp, 10)
    8920      2049311 :          ipack = ipack + 1
    8921      2049311 :          pack_tmp = packed_data(ipack)
    8922      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    8923      2049311 :          pack_tmp = ISHFT(pack_tmp, -10)
    8924      2049311 :          idata = idata + 1
    8925      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8926      2049311 :          full_data(idata) = data_tmp
    8927      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8928      2049311 :          idata = idata + 1
    8929      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8930      2049311 :          full_data(idata) = data_tmp
    8931      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8932      2049311 :          idata = idata + 1
    8933      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8934      2049311 :          full_data(idata) = data_tmp
    8935      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8936      2049311 :          idata = idata + 1
    8937      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8938      2049311 :          full_data(idata) = data_tmp
    8939      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8940      2049311 :          idata = idata + 1
    8941      2049311 :          data_tmp = ISHFT(pack_tmp, 11)
    8942      2049311 :          ipack = ipack + 1
    8943      2049311 :          pack_tmp = packed_data(ipack)
    8944      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
    8945      2049311 :          pack_tmp = ISHFT(pack_tmp, -11)
    8946      2049311 :          idata = idata + 1
    8947      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8948      2049311 :          full_data(idata) = data_tmp
    8949      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8950      2049311 :          idata = idata + 1
    8951      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8952      2049311 :          full_data(idata) = data_tmp
    8953      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8954      2049311 :          idata = idata + 1
    8955      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8956      2049311 :          full_data(idata) = data_tmp
    8957      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8958      2049311 :          idata = idata + 1
    8959      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8960      2049311 :          full_data(idata) = data_tmp
    8961      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8962      2049311 :          idata = idata + 1
    8963      2049311 :          data_tmp = ISHFT(pack_tmp, 12)
    8964      2049311 :          ipack = ipack + 1
    8965      2049311 :          pack_tmp = packed_data(ipack)
    8966      2049311 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    8967      2049311 :          pack_tmp = ISHFT(pack_tmp, -12)
    8968      2049311 :          idata = idata + 1
    8969      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8970      2049311 :          full_data(idata) = data_tmp
    8971      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8972      2049311 :          idata = idata + 1
    8973      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8974      2049311 :          full_data(idata) = data_tmp
    8975      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8976      2049311 :          idata = idata + 1
    8977      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8978      2049311 :          full_data(idata) = data_tmp
    8979      2049311 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8980      2049311 :          idata = idata + 1
    8981      2049311 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    8982      2049311 :          full_data(idata) = data_tmp
    8983      2049859 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    8984              :       END DO
    8985       134209 :       IF (Ndata_rep < Ndata) THEN
    8986        10786 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    8987              :       END IF
    8988       134209 :    END SUBROUTINE bits2ints_13
    8989              : 
    8990              : ! **************************************************************************************************
    8991              : !> \brief ...
    8992              : !> \param Ndata ...
    8993              : !> \param packed_data ...
    8994              : !> \param full_data ...
    8995              : ! **************************************************************************************************
    8996        27878 :    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        27878 :       idata = 0
    9007        27878 :       ipack = 0
    9008        27878 :       Ndata_rep = (Ndata/64)*64
    9009        27878 :       DO kdata = 1, Ndata_rep, 64
    9010       435917 :          pack_tmp = 0
    9011       435917 :          idata = idata + 1
    9012       435917 :          data_tmp = full_data(idata)
    9013       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9014       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9015       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9016       435917 :          idata = idata + 1
    9017       435917 :          data_tmp = full_data(idata)
    9018       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9019       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9020       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9021       435917 :          idata = idata + 1
    9022       435917 :          data_tmp = full_data(idata)
    9023       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9024       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9025       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9026       435917 :          idata = idata + 1
    9027       435917 :          data_tmp = full_data(idata)
    9028       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9029       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9030       435917 :          pack_tmp = ISHFT(pack_tmp, -8)
    9031       435917 :          idata = idata + 1
    9032       435917 :          data_tmp = full_data(idata)
    9033       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9034       435917 :          data_tmp = IAND(data_tmp, mask_left(8))
    9035       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9036       435917 :          ipack = ipack + 1
    9037       435917 :          packed_data(ipack) = pack_tmp
    9038       435917 :          data_tmp = full_data(idata)
    9039       435917 :          pack_tmp = ISHFT(data_tmp, 58)
    9040       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9041       435917 :          idata = idata + 1
    9042       435917 :          data_tmp = full_data(idata)
    9043       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9044       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9045       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9046       435917 :          idata = idata + 1
    9047       435917 :          data_tmp = full_data(idata)
    9048       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9049       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9050       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9051       435917 :          idata = idata + 1
    9052       435917 :          data_tmp = full_data(idata)
    9053       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9054       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9055       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9056       435917 :          idata = idata + 1
    9057       435917 :          data_tmp = full_data(idata)
    9058       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9059       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9060       435917 :          pack_tmp = ISHFT(pack_tmp, -2)
    9061       435917 :          idata = idata + 1
    9062       435917 :          data_tmp = full_data(idata)
    9063       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9064       435917 :          data_tmp = IAND(data_tmp, mask_left(2))
    9065       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9066       435917 :          ipack = ipack + 1
    9067       435917 :          packed_data(ipack) = pack_tmp
    9068       435917 :          data_tmp = full_data(idata)
    9069       435917 :          pack_tmp = ISHFT(data_tmp, 52)
    9070       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9071       435917 :          idata = idata + 1
    9072       435917 :          data_tmp = full_data(idata)
    9073       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9074       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9075       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9076       435917 :          idata = idata + 1
    9077       435917 :          data_tmp = full_data(idata)
    9078       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9079       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9080       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9081       435917 :          idata = idata + 1
    9082       435917 :          data_tmp = full_data(idata)
    9083       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9084       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9085       435917 :          pack_tmp = ISHFT(pack_tmp, -10)
    9086       435917 :          idata = idata + 1
    9087       435917 :          data_tmp = full_data(idata)
    9088       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9089       435917 :          data_tmp = IAND(data_tmp, mask_left(10))
    9090       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9091       435917 :          ipack = ipack + 1
    9092       435917 :          packed_data(ipack) = pack_tmp
    9093       435917 :          data_tmp = full_data(idata)
    9094       435917 :          pack_tmp = ISHFT(data_tmp, 60)
    9095       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9096       435917 :          idata = idata + 1
    9097       435917 :          data_tmp = full_data(idata)
    9098       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9099       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9100       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9101       435917 :          idata = idata + 1
    9102       435917 :          data_tmp = full_data(idata)
    9103       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9104       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9105       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9106       435917 :          idata = idata + 1
    9107       435917 :          data_tmp = full_data(idata)
    9108       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9109       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9110       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9111       435917 :          idata = idata + 1
    9112       435917 :          data_tmp = full_data(idata)
    9113       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9114       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9115       435917 :          pack_tmp = ISHFT(pack_tmp, -4)
    9116       435917 :          idata = idata + 1
    9117       435917 :          data_tmp = full_data(idata)
    9118       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9119       435917 :          data_tmp = IAND(data_tmp, mask_left(4))
    9120       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9121       435917 :          ipack = ipack + 1
    9122       435917 :          packed_data(ipack) = pack_tmp
    9123       435917 :          data_tmp = full_data(idata)
    9124       435917 :          pack_tmp = ISHFT(data_tmp, 54)
    9125       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9126       435917 :          idata = idata + 1
    9127       435917 :          data_tmp = full_data(idata)
    9128       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9129       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9130       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9131       435917 :          idata = idata + 1
    9132       435917 :          data_tmp = full_data(idata)
    9133       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9134       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9135       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9136       435917 :          idata = idata + 1
    9137       435917 :          data_tmp = full_data(idata)
    9138       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9139       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9140       435917 :          pack_tmp = ISHFT(pack_tmp, -12)
    9141       435917 :          idata = idata + 1
    9142       435917 :          data_tmp = full_data(idata)
    9143       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9144       435917 :          data_tmp = IAND(data_tmp, mask_left(12))
    9145       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9146       435917 :          ipack = ipack + 1
    9147       435917 :          packed_data(ipack) = pack_tmp
    9148       435917 :          data_tmp = full_data(idata)
    9149       435917 :          pack_tmp = ISHFT(data_tmp, 62)
    9150       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9151       435917 :          idata = idata + 1
    9152       435917 :          data_tmp = full_data(idata)
    9153       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9154       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9155       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9156       435917 :          idata = idata + 1
    9157       435917 :          data_tmp = full_data(idata)
    9158       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9159       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9160       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9161       435917 :          idata = idata + 1
    9162       435917 :          data_tmp = full_data(idata)
    9163       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9164       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9165       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9166       435917 :          idata = idata + 1
    9167       435917 :          data_tmp = full_data(idata)
    9168       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9169       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9170       435917 :          pack_tmp = ISHFT(pack_tmp, -6)
    9171       435917 :          idata = idata + 1
    9172       435917 :          data_tmp = full_data(idata)
    9173       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9174       435917 :          data_tmp = IAND(data_tmp, mask_left(6))
    9175       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9176       435917 :          ipack = ipack + 1
    9177       435917 :          packed_data(ipack) = pack_tmp
    9178       435917 :          data_tmp = full_data(idata)
    9179       435917 :          pack_tmp = ISHFT(data_tmp, 56)
    9180       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9181       435917 :          idata = idata + 1
    9182       435917 :          data_tmp = full_data(idata)
    9183       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9184       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9185       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9186       435917 :          idata = idata + 1
    9187       435917 :          data_tmp = full_data(idata)
    9188       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9189       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9190       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9191       435917 :          idata = idata + 1
    9192       435917 :          data_tmp = full_data(idata)
    9193       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9194       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9195       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9196       435917 :          idata = idata + 1
    9197       435917 :          data_tmp = full_data(idata)
    9198       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9199       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9200       435917 :          pack_tmp = ISHFT(pack_tmp, 0)
    9201       435917 :          idata = idata + 1
    9202       435917 :          data_tmp = full_data(idata)
    9203              :          data_tmp = ISHFT(data_tmp, 50)
    9204       435917 :          data_tmp = IAND(data_tmp, mask_left(0))
    9205       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9206       435917 :          ipack = ipack + 1
    9207       435917 :          packed_data(ipack) = pack_tmp
    9208       435917 :          data_tmp = full_data(idata)
    9209       435917 :          pack_tmp = ISHFT(data_tmp, 50)
    9210       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9211       435917 :          idata = idata + 1
    9212       435917 :          data_tmp = full_data(idata)
    9213       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9214       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9215       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9216       435917 :          idata = idata + 1
    9217       435917 :          data_tmp = full_data(idata)
    9218       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9219       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9220       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9221       435917 :          idata = idata + 1
    9222       435917 :          data_tmp = full_data(idata)
    9223       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9224       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9225       435917 :          pack_tmp = ISHFT(pack_tmp, -8)
    9226       435917 :          idata = idata + 1
    9227       435917 :          data_tmp = full_data(idata)
    9228       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9229       435917 :          data_tmp = IAND(data_tmp, mask_left(8))
    9230       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9231       435917 :          ipack = ipack + 1
    9232       435917 :          packed_data(ipack) = pack_tmp
    9233       435917 :          data_tmp = full_data(idata)
    9234       435917 :          pack_tmp = ISHFT(data_tmp, 58)
    9235       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9236       435917 :          idata = idata + 1
    9237       435917 :          data_tmp = full_data(idata)
    9238       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9239       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9240       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9241       435917 :          idata = idata + 1
    9242       435917 :          data_tmp = full_data(idata)
    9243       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9244       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9245       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9246       435917 :          idata = idata + 1
    9247       435917 :          data_tmp = full_data(idata)
    9248       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9249       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9250       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9251       435917 :          idata = idata + 1
    9252       435917 :          data_tmp = full_data(idata)
    9253       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9254       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9255       435917 :          pack_tmp = ISHFT(pack_tmp, -2)
    9256       435917 :          idata = idata + 1
    9257       435917 :          data_tmp = full_data(idata)
    9258       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9259       435917 :          data_tmp = IAND(data_tmp, mask_left(2))
    9260       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9261       435917 :          ipack = ipack + 1
    9262       435917 :          packed_data(ipack) = pack_tmp
    9263       435917 :          data_tmp = full_data(idata)
    9264       435917 :          pack_tmp = ISHFT(data_tmp, 52)
    9265       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9266       435917 :          idata = idata + 1
    9267       435917 :          data_tmp = full_data(idata)
    9268       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9269       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9270       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9271       435917 :          idata = idata + 1
    9272       435917 :          data_tmp = full_data(idata)
    9273       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9274       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9275       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9276       435917 :          idata = idata + 1
    9277       435917 :          data_tmp = full_data(idata)
    9278       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9279       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9280       435917 :          pack_tmp = ISHFT(pack_tmp, -10)
    9281       435917 :          idata = idata + 1
    9282       435917 :          data_tmp = full_data(idata)
    9283       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9284       435917 :          data_tmp = IAND(data_tmp, mask_left(10))
    9285       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9286       435917 :          ipack = ipack + 1
    9287       435917 :          packed_data(ipack) = pack_tmp
    9288       435917 :          data_tmp = full_data(idata)
    9289       435917 :          pack_tmp = ISHFT(data_tmp, 60)
    9290       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9291       435917 :          idata = idata + 1
    9292       435917 :          data_tmp = full_data(idata)
    9293       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9294       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9295       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9296       435917 :          idata = idata + 1
    9297       435917 :          data_tmp = full_data(idata)
    9298       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9299       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9300       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9301       435917 :          idata = idata + 1
    9302       435917 :          data_tmp = full_data(idata)
    9303       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9304       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9305       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9306       435917 :          idata = idata + 1
    9307       435917 :          data_tmp = full_data(idata)
    9308       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9309       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9310       435917 :          pack_tmp = ISHFT(pack_tmp, -4)
    9311       435917 :          idata = idata + 1
    9312       435917 :          data_tmp = full_data(idata)
    9313       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9314       435917 :          data_tmp = IAND(data_tmp, mask_left(4))
    9315       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9316       435917 :          ipack = ipack + 1
    9317       435917 :          packed_data(ipack) = pack_tmp
    9318       435917 :          data_tmp = full_data(idata)
    9319       435917 :          pack_tmp = ISHFT(data_tmp, 54)
    9320       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9321       435917 :          idata = idata + 1
    9322       435917 :          data_tmp = full_data(idata)
    9323       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9324       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9325       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9326       435917 :          idata = idata + 1
    9327       435917 :          data_tmp = full_data(idata)
    9328       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9329       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9330       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9331       435917 :          idata = idata + 1
    9332       435917 :          data_tmp = full_data(idata)
    9333       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9334       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9335       435917 :          pack_tmp = ISHFT(pack_tmp, -12)
    9336       435917 :          idata = idata + 1
    9337       435917 :          data_tmp = full_data(idata)
    9338       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9339       435917 :          data_tmp = IAND(data_tmp, mask_left(12))
    9340       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9341       435917 :          ipack = ipack + 1
    9342       435917 :          packed_data(ipack) = pack_tmp
    9343       435917 :          data_tmp = full_data(idata)
    9344       435917 :          pack_tmp = ISHFT(data_tmp, 62)
    9345       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9346       435917 :          idata = idata + 1
    9347       435917 :          data_tmp = full_data(idata)
    9348       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9349       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9350       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9351       435917 :          idata = idata + 1
    9352       435917 :          data_tmp = full_data(idata)
    9353       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9354       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9355       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9356       435917 :          idata = idata + 1
    9357       435917 :          data_tmp = full_data(idata)
    9358       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9359       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9360       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9361       435917 :          idata = idata + 1
    9362       435917 :          data_tmp = full_data(idata)
    9363       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9364       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9365       435917 :          pack_tmp = ISHFT(pack_tmp, -6)
    9366       435917 :          idata = idata + 1
    9367       435917 :          data_tmp = full_data(idata)
    9368       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9369       435917 :          data_tmp = IAND(data_tmp, mask_left(6))
    9370       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9371       435917 :          ipack = ipack + 1
    9372       435917 :          packed_data(ipack) = pack_tmp
    9373       435917 :          data_tmp = full_data(idata)
    9374       435917 :          pack_tmp = ISHFT(data_tmp, 56)
    9375       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9376       435917 :          idata = idata + 1
    9377       435917 :          data_tmp = full_data(idata)
    9378       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9379       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9380       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9381       435917 :          idata = idata + 1
    9382       435917 :          data_tmp = full_data(idata)
    9383       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9384       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9385       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9386       435917 :          idata = idata + 1
    9387       435917 :          data_tmp = full_data(idata)
    9388       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9389       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9390       435917 :          pack_tmp = ISHFT(pack_tmp, -14)
    9391       435917 :          idata = idata + 1
    9392       435917 :          data_tmp = full_data(idata)
    9393       435917 :          data_tmp = ISHFT(data_tmp, 50)
    9394       435917 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9395              :          pack_tmp = ISHFT(pack_tmp, 0)
    9396       435917 :          pack_tmp = ISHFT(pack_tmp, 0)
    9397       435917 :          ipack = ipack + 1
    9398       435977 :          packed_data(ipack) = pack_tmp
    9399              :       END DO
    9400        27878 :       IF (Ndata_rep < Ndata) THEN
    9401         1126 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    9402              :       END IF
    9403        27878 :    END SUBROUTINE ints2bits_14
    9404              : 
    9405              : ! **************************************************************************************************
    9406              : !> \brief ...
    9407              : !> \param Ndata ...
    9408              : !> \param packed_data ...
    9409              : !> \param full_data ...
    9410              : ! **************************************************************************************************
    9411       125874 :    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       125874 :       ipack = 0
    9422       125874 :       idata = 0
    9423       125874 :       pack_tmp = 0
    9424       125874 :       Ndata_rep = (Ndata/64)*64
    9425       125874 :       DO kdata = 1, Ndata_rep, 64
    9426      1936172 :          idata = idata + 1
    9427      1936172 :          data_tmp = ISHFT(pack_tmp, 14)
    9428      1936172 :          ipack = ipack + 1
    9429      1936172 :          pack_tmp = packed_data(ipack)
    9430      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
    9431      1936172 :          pack_tmp = ISHFT(pack_tmp, -14)
    9432      1936172 :          idata = idata + 1
    9433      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9434      1936172 :          full_data(idata) = data_tmp
    9435      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9436      1936172 :          idata = idata + 1
    9437      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9438      1936172 :          full_data(idata) = data_tmp
    9439      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9440      1936172 :          idata = idata + 1
    9441      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9442      1936172 :          full_data(idata) = data_tmp
    9443      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9444      1936172 :          idata = idata + 1
    9445      1936172 :          data_tmp = ISHFT(pack_tmp, 6)
    9446      1936172 :          ipack = ipack + 1
    9447      1936172 :          pack_tmp = packed_data(ipack)
    9448      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    9449      1936172 :          pack_tmp = ISHFT(pack_tmp, -6)
    9450      1936172 :          idata = idata + 1
    9451      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9452      1936172 :          full_data(idata) = data_tmp
    9453      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9454      1936172 :          idata = idata + 1
    9455      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9456      1936172 :          full_data(idata) = data_tmp
    9457      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9458      1936172 :          idata = idata + 1
    9459      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9460      1936172 :          full_data(idata) = data_tmp
    9461      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9462      1936172 :          idata = idata + 1
    9463      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9464      1936172 :          full_data(idata) = data_tmp
    9465      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9466      1936172 :          idata = idata + 1
    9467      1936172 :          data_tmp = ISHFT(pack_tmp, 12)
    9468      1936172 :          ipack = ipack + 1
    9469      1936172 :          pack_tmp = packed_data(ipack)
    9470      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    9471      1936172 :          pack_tmp = ISHFT(pack_tmp, -12)
    9472      1936172 :          idata = idata + 1
    9473      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9474      1936172 :          full_data(idata) = data_tmp
    9475      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9476      1936172 :          idata = idata + 1
    9477      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9478      1936172 :          full_data(idata) = data_tmp
    9479      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9480      1936172 :          idata = idata + 1
    9481      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9482      1936172 :          full_data(idata) = data_tmp
    9483      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9484      1936172 :          idata = idata + 1
    9485      1936172 :          data_tmp = ISHFT(pack_tmp, 4)
    9486      1936172 :          ipack = ipack + 1
    9487      1936172 :          pack_tmp = packed_data(ipack)
    9488      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    9489      1936172 :          pack_tmp = ISHFT(pack_tmp, -4)
    9490      1936172 :          idata = idata + 1
    9491      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9492      1936172 :          full_data(idata) = data_tmp
    9493      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9494      1936172 :          idata = idata + 1
    9495      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9496      1936172 :          full_data(idata) = data_tmp
    9497      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9498      1936172 :          idata = idata + 1
    9499      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9500      1936172 :          full_data(idata) = data_tmp
    9501      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9502      1936172 :          idata = idata + 1
    9503      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9504      1936172 :          full_data(idata) = data_tmp
    9505      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9506      1936172 :          idata = idata + 1
    9507      1936172 :          data_tmp = ISHFT(pack_tmp, 10)
    9508      1936172 :          ipack = ipack + 1
    9509      1936172 :          pack_tmp = packed_data(ipack)
    9510      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    9511      1936172 :          pack_tmp = ISHFT(pack_tmp, -10)
    9512      1936172 :          idata = idata + 1
    9513      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9514      1936172 :          full_data(idata) = data_tmp
    9515      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9516      1936172 :          idata = idata + 1
    9517      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9518      1936172 :          full_data(idata) = data_tmp
    9519      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9520      1936172 :          idata = idata + 1
    9521      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9522      1936172 :          full_data(idata) = data_tmp
    9523      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9524      1936172 :          idata = idata + 1
    9525      1936172 :          data_tmp = ISHFT(pack_tmp, 2)
    9526      1936172 :          ipack = ipack + 1
    9527      1936172 :          pack_tmp = packed_data(ipack)
    9528      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    9529      1936172 :          pack_tmp = ISHFT(pack_tmp, -2)
    9530      1936172 :          idata = idata + 1
    9531      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9532      1936172 :          full_data(idata) = data_tmp
    9533      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9534      1936172 :          idata = idata + 1
    9535      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9536      1936172 :          full_data(idata) = data_tmp
    9537      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9538      1936172 :          idata = idata + 1
    9539      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9540      1936172 :          full_data(idata) = data_tmp
    9541      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9542      1936172 :          idata = idata + 1
    9543      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9544      1936172 :          full_data(idata) = data_tmp
    9545      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9546      1936172 :          idata = idata + 1
    9547      1936172 :          data_tmp = ISHFT(pack_tmp, 8)
    9548      1936172 :          ipack = ipack + 1
    9549      1936172 :          pack_tmp = packed_data(ipack)
    9550      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    9551      1936172 :          pack_tmp = ISHFT(pack_tmp, -8)
    9552      1936172 :          idata = idata + 1
    9553      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9554      1936172 :          full_data(idata) = data_tmp
    9555      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9556      1936172 :          idata = idata + 1
    9557      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9558      1936172 :          full_data(idata) = data_tmp
    9559      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9560      1936172 :          idata = idata + 1
    9561      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9562      1936172 :          full_data(idata) = data_tmp
    9563      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9564      1936172 :          idata = idata + 1
    9565      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9566      1936172 :          full_data(idata) = data_tmp
    9567      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9568      1936172 :          idata = idata + 1
    9569      1936172 :          data_tmp = ISHFT(pack_tmp, 14)
    9570      1936172 :          ipack = ipack + 1
    9571      1936172 :          pack_tmp = packed_data(ipack)
    9572      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
    9573      1936172 :          pack_tmp = ISHFT(pack_tmp, -14)
    9574      1936172 :          idata = idata + 1
    9575      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9576      1936172 :          full_data(idata) = data_tmp
    9577      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9578      1936172 :          idata = idata + 1
    9579      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9580      1936172 :          full_data(idata) = data_tmp
    9581      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9582      1936172 :          idata = idata + 1
    9583      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9584      1936172 :          full_data(idata) = data_tmp
    9585      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9586      1936172 :          idata = idata + 1
    9587      1936172 :          data_tmp = ISHFT(pack_tmp, 6)
    9588      1936172 :          ipack = ipack + 1
    9589      1936172 :          pack_tmp = packed_data(ipack)
    9590      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
    9591      1936172 :          pack_tmp = ISHFT(pack_tmp, -6)
    9592      1936172 :          idata = idata + 1
    9593      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9594      1936172 :          full_data(idata) = data_tmp
    9595      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9596      1936172 :          idata = idata + 1
    9597      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9598      1936172 :          full_data(idata) = data_tmp
    9599      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9600      1936172 :          idata = idata + 1
    9601      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9602      1936172 :          full_data(idata) = data_tmp
    9603      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9604      1936172 :          idata = idata + 1
    9605      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9606      1936172 :          full_data(idata) = data_tmp
    9607      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9608      1936172 :          idata = idata + 1
    9609      1936172 :          data_tmp = ISHFT(pack_tmp, 12)
    9610      1936172 :          ipack = ipack + 1
    9611      1936172 :          pack_tmp = packed_data(ipack)
    9612      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
    9613      1936172 :          pack_tmp = ISHFT(pack_tmp, -12)
    9614      1936172 :          idata = idata + 1
    9615      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9616      1936172 :          full_data(idata) = data_tmp
    9617      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9618      1936172 :          idata = idata + 1
    9619      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9620      1936172 :          full_data(idata) = data_tmp
    9621      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9622      1936172 :          idata = idata + 1
    9623      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9624      1936172 :          full_data(idata) = data_tmp
    9625      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9626      1936172 :          idata = idata + 1
    9627      1936172 :          data_tmp = ISHFT(pack_tmp, 4)
    9628      1936172 :          ipack = ipack + 1
    9629      1936172 :          pack_tmp = packed_data(ipack)
    9630      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
    9631      1936172 :          pack_tmp = ISHFT(pack_tmp, -4)
    9632      1936172 :          idata = idata + 1
    9633      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9634      1936172 :          full_data(idata) = data_tmp
    9635      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9636      1936172 :          idata = idata + 1
    9637      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9638      1936172 :          full_data(idata) = data_tmp
    9639      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9640      1936172 :          idata = idata + 1
    9641      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9642      1936172 :          full_data(idata) = data_tmp
    9643      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9644      1936172 :          idata = idata + 1
    9645      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9646      1936172 :          full_data(idata) = data_tmp
    9647      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9648      1936172 :          idata = idata + 1
    9649      1936172 :          data_tmp = ISHFT(pack_tmp, 10)
    9650      1936172 :          ipack = ipack + 1
    9651      1936172 :          pack_tmp = packed_data(ipack)
    9652      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
    9653      1936172 :          pack_tmp = ISHFT(pack_tmp, -10)
    9654      1936172 :          idata = idata + 1
    9655      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9656      1936172 :          full_data(idata) = data_tmp
    9657      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9658      1936172 :          idata = idata + 1
    9659      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9660      1936172 :          full_data(idata) = data_tmp
    9661      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9662      1936172 :          idata = idata + 1
    9663      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9664      1936172 :          full_data(idata) = data_tmp
    9665      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9666      1936172 :          idata = idata + 1
    9667      1936172 :          data_tmp = ISHFT(pack_tmp, 2)
    9668      1936172 :          ipack = ipack + 1
    9669      1936172 :          pack_tmp = packed_data(ipack)
    9670      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
    9671      1936172 :          pack_tmp = ISHFT(pack_tmp, -2)
    9672      1936172 :          idata = idata + 1
    9673      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9674      1936172 :          full_data(idata) = data_tmp
    9675      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9676      1936172 :          idata = idata + 1
    9677      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9678      1936172 :          full_data(idata) = data_tmp
    9679      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9680      1936172 :          idata = idata + 1
    9681      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9682      1936172 :          full_data(idata) = data_tmp
    9683      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9684      1936172 :          idata = idata + 1
    9685      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9686      1936172 :          full_data(idata) = data_tmp
    9687      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9688      1936172 :          idata = idata + 1
    9689      1936172 :          data_tmp = ISHFT(pack_tmp, 8)
    9690      1936172 :          ipack = ipack + 1
    9691      1936172 :          pack_tmp = packed_data(ipack)
    9692      1936172 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
    9693      1936172 :          pack_tmp = ISHFT(pack_tmp, -8)
    9694      1936172 :          idata = idata + 1
    9695      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9696      1936172 :          full_data(idata) = data_tmp
    9697      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9698      1936172 :          idata = idata + 1
    9699      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9700      1936172 :          full_data(idata) = data_tmp
    9701      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9702      1936172 :          idata = idata + 1
    9703      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9704      1936172 :          full_data(idata) = data_tmp
    9705      1936172 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9706      1936172 :          idata = idata + 1
    9707      1936172 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
    9708      1936172 :          full_data(idata) = data_tmp
    9709      1936637 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
    9710              :       END DO
    9711       125874 :       IF (Ndata_rep < Ndata) THEN
    9712         8648 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
    9713              :       END IF
    9714       125874 :    END SUBROUTINE bits2ints_14
    9715              : 
    9716              : ! **************************************************************************************************
    9717              : !> \brief ...
    9718              : !> \param Ndata ...
    9719              : !> \param packed_data ...
    9720              : !> \param full_data ...
    9721              : ! **************************************************************************************************
    9722        28198 :    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        28198 :       idata = 0
    9733        28198 :       ipack = 0
    9734        28198 :       Ndata_rep = (Ndata/64)*64
    9735        28198 :       DO kdata = 1, Ndata_rep, 64
    9736       439472 :          pack_tmp = 0
    9737       439472 :          idata = idata + 1
    9738       439472 :          data_tmp = full_data(idata)
    9739       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9740       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9741       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9742       439472 :          idata = idata + 1
    9743       439472 :          data_tmp = full_data(idata)
    9744       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9745       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9746       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9747       439472 :          idata = idata + 1
    9748       439472 :          data_tmp = full_data(idata)
    9749       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9750       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9751       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9752       439472 :          idata = idata + 1
    9753       439472 :          data_tmp = full_data(idata)
    9754       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9755       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9756       439472 :          pack_tmp = ISHFT(pack_tmp, -4)
    9757       439472 :          idata = idata + 1
    9758       439472 :          data_tmp = full_data(idata)
    9759       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9760       439472 :          data_tmp = IAND(data_tmp, mask_left(4))
    9761       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9762       439472 :          ipack = ipack + 1
    9763       439472 :          packed_data(ipack) = pack_tmp
    9764       439472 :          data_tmp = full_data(idata)
    9765       439472 :          pack_tmp = ISHFT(data_tmp, 53)
    9766       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9767       439472 :          idata = idata + 1
    9768       439472 :          data_tmp = full_data(idata)
    9769       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9770       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9771       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9772       439472 :          idata = idata + 1
    9773       439472 :          data_tmp = full_data(idata)
    9774       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9775       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9776       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9777       439472 :          idata = idata + 1
    9778       439472 :          data_tmp = full_data(idata)
    9779       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9780       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9781       439472 :          pack_tmp = ISHFT(pack_tmp, -8)
    9782       439472 :          idata = idata + 1
    9783       439472 :          data_tmp = full_data(idata)
    9784       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9785       439472 :          data_tmp = IAND(data_tmp, mask_left(8))
    9786       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9787       439472 :          ipack = ipack + 1
    9788       439472 :          packed_data(ipack) = pack_tmp
    9789       439472 :          data_tmp = full_data(idata)
    9790       439472 :          pack_tmp = ISHFT(data_tmp, 57)
    9791       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9792       439472 :          idata = idata + 1
    9793       439472 :          data_tmp = full_data(idata)
    9794       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9795       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9796       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9797       439472 :          idata = idata + 1
    9798       439472 :          data_tmp = full_data(idata)
    9799       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9800       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9801       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9802       439472 :          idata = idata + 1
    9803       439472 :          data_tmp = full_data(idata)
    9804       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9805       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9806       439472 :          pack_tmp = ISHFT(pack_tmp, -12)
    9807       439472 :          idata = idata + 1
    9808       439472 :          data_tmp = full_data(idata)
    9809       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9810       439472 :          data_tmp = IAND(data_tmp, mask_left(12))
    9811       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9812       439472 :          ipack = ipack + 1
    9813       439472 :          packed_data(ipack) = pack_tmp
    9814       439472 :          data_tmp = full_data(idata)
    9815       439472 :          pack_tmp = ISHFT(data_tmp, 61)
    9816       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9817       439472 :          idata = idata + 1
    9818       439472 :          data_tmp = full_data(idata)
    9819       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9820       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9821       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9822       439472 :          idata = idata + 1
    9823       439472 :          data_tmp = full_data(idata)
    9824       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9825       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9826       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9827       439472 :          idata = idata + 1
    9828       439472 :          data_tmp = full_data(idata)
    9829       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9830       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9831       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9832       439472 :          idata = idata + 1
    9833       439472 :          data_tmp = full_data(idata)
    9834       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9835       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9836       439472 :          pack_tmp = ISHFT(pack_tmp, -1)
    9837       439472 :          idata = idata + 1
    9838       439472 :          data_tmp = full_data(idata)
    9839       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9840       439472 :          data_tmp = IAND(data_tmp, mask_left(1))
    9841       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9842       439472 :          ipack = ipack + 1
    9843       439472 :          packed_data(ipack) = pack_tmp
    9844       439472 :          data_tmp = full_data(idata)
    9845       439472 :          pack_tmp = ISHFT(data_tmp, 50)
    9846       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9847       439472 :          idata = idata + 1
    9848       439472 :          data_tmp = full_data(idata)
    9849       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9850       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9851       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9852       439472 :          idata = idata + 1
    9853       439472 :          data_tmp = full_data(idata)
    9854       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9855       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9856       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9857       439472 :          idata = idata + 1
    9858       439472 :          data_tmp = full_data(idata)
    9859       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9860       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9861       439472 :          pack_tmp = ISHFT(pack_tmp, -5)
    9862       439472 :          idata = idata + 1
    9863       439472 :          data_tmp = full_data(idata)
    9864       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9865       439472 :          data_tmp = IAND(data_tmp, mask_left(5))
    9866       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9867       439472 :          ipack = ipack + 1
    9868       439472 :          packed_data(ipack) = pack_tmp
    9869       439472 :          data_tmp = full_data(idata)
    9870       439472 :          pack_tmp = ISHFT(data_tmp, 54)
    9871       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9872       439472 :          idata = idata + 1
    9873       439472 :          data_tmp = full_data(idata)
    9874       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9875       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9876       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9877       439472 :          idata = idata + 1
    9878       439472 :          data_tmp = full_data(idata)
    9879       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9880       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9881       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9882       439472 :          idata = idata + 1
    9883       439472 :          data_tmp = full_data(idata)
    9884       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9885       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9886       439472 :          pack_tmp = ISHFT(pack_tmp, -9)
    9887       439472 :          idata = idata + 1
    9888       439472 :          data_tmp = full_data(idata)
    9889       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9890       439472 :          data_tmp = IAND(data_tmp, mask_left(9))
    9891       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9892       439472 :          ipack = ipack + 1
    9893       439472 :          packed_data(ipack) = pack_tmp
    9894       439472 :          data_tmp = full_data(idata)
    9895       439472 :          pack_tmp = ISHFT(data_tmp, 58)
    9896       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9897       439472 :          idata = idata + 1
    9898       439472 :          data_tmp = full_data(idata)
    9899       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9900       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9901       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9902       439472 :          idata = idata + 1
    9903       439472 :          data_tmp = full_data(idata)
    9904       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9905       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9906       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9907       439472 :          idata = idata + 1
    9908       439472 :          data_tmp = full_data(idata)
    9909       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9910       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9911       439472 :          pack_tmp = ISHFT(pack_tmp, -13)
    9912       439472 :          idata = idata + 1
    9913       439472 :          data_tmp = full_data(idata)
    9914       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9915       439472 :          data_tmp = IAND(data_tmp, mask_left(13))
    9916       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9917       439472 :          ipack = ipack + 1
    9918       439472 :          packed_data(ipack) = pack_tmp
    9919       439472 :          data_tmp = full_data(idata)
    9920       439472 :          pack_tmp = ISHFT(data_tmp, 62)
    9921       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9922       439472 :          idata = idata + 1
    9923       439472 :          data_tmp = full_data(idata)
    9924       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9925       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9926       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9927       439472 :          idata = idata + 1
    9928       439472 :          data_tmp = full_data(idata)
    9929       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9930       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9931       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9932       439472 :          idata = idata + 1
    9933       439472 :          data_tmp = full_data(idata)
    9934       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9935       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9936       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9937       439472 :          idata = idata + 1
    9938       439472 :          data_tmp = full_data(idata)
    9939       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9940       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9941       439472 :          pack_tmp = ISHFT(pack_tmp, -2)
    9942       439472 :          idata = idata + 1
    9943       439472 :          data_tmp = full_data(idata)
    9944       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9945       439472 :          data_tmp = IAND(data_tmp, mask_left(2))
    9946       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9947       439472 :          ipack = ipack + 1
    9948       439472 :          packed_data(ipack) = pack_tmp
    9949       439472 :          data_tmp = full_data(idata)
    9950       439472 :          pack_tmp = ISHFT(data_tmp, 51)
    9951       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9952       439472 :          idata = idata + 1
    9953       439472 :          data_tmp = full_data(idata)
    9954       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9955       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9956       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9957       439472 :          idata = idata + 1
    9958       439472 :          data_tmp = full_data(idata)
    9959       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9960       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9961       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9962       439472 :          idata = idata + 1
    9963       439472 :          data_tmp = full_data(idata)
    9964       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9965       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9966       439472 :          pack_tmp = ISHFT(pack_tmp, -6)
    9967       439472 :          idata = idata + 1
    9968       439472 :          data_tmp = full_data(idata)
    9969       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9970       439472 :          data_tmp = IAND(data_tmp, mask_left(6))
    9971       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9972       439472 :          ipack = ipack + 1
    9973       439472 :          packed_data(ipack) = pack_tmp
    9974       439472 :          data_tmp = full_data(idata)
    9975       439472 :          pack_tmp = ISHFT(data_tmp, 55)
    9976       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9977       439472 :          idata = idata + 1
    9978       439472 :          data_tmp = full_data(idata)
    9979       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9980       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9981       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9982       439472 :          idata = idata + 1
    9983       439472 :          data_tmp = full_data(idata)
    9984       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9985       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9986       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
    9987       439472 :          idata = idata + 1
    9988       439472 :          data_tmp = full_data(idata)
    9989       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9990       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9991       439472 :          pack_tmp = ISHFT(pack_tmp, -10)
    9992       439472 :          idata = idata + 1
    9993       439472 :          data_tmp = full_data(idata)
    9994       439472 :          data_tmp = ISHFT(data_tmp, 49)
    9995       439472 :          data_tmp = IAND(data_tmp, mask_left(10))
    9996       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
    9997       439472 :          ipack = ipack + 1
    9998       439472 :          packed_data(ipack) = pack_tmp
    9999       439472 :          data_tmp = full_data(idata)
   10000       439472 :          pack_tmp = ISHFT(data_tmp, 59)
   10001       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10002       439472 :          idata = idata + 1
   10003       439472 :          data_tmp = full_data(idata)
   10004       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10005       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10006       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10007       439472 :          idata = idata + 1
   10008       439472 :          data_tmp = full_data(idata)
   10009       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10010       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10011       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10012       439472 :          idata = idata + 1
   10013       439472 :          data_tmp = full_data(idata)
   10014       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10015       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10016       439472 :          pack_tmp = ISHFT(pack_tmp, -14)
   10017       439472 :          idata = idata + 1
   10018       439472 :          data_tmp = full_data(idata)
   10019       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10020       439472 :          data_tmp = IAND(data_tmp, mask_left(14))
   10021       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10022       439472 :          ipack = ipack + 1
   10023       439472 :          packed_data(ipack) = pack_tmp
   10024       439472 :          data_tmp = full_data(idata)
   10025       439472 :          pack_tmp = ISHFT(data_tmp, 63)
   10026       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10027       439472 :          idata = idata + 1
   10028       439472 :          data_tmp = full_data(idata)
   10029       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10030       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10031       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10032       439472 :          idata = idata + 1
   10033       439472 :          data_tmp = full_data(idata)
   10034       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10035       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10036       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10037       439472 :          idata = idata + 1
   10038       439472 :          data_tmp = full_data(idata)
   10039       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10040       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10041       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10042       439472 :          idata = idata + 1
   10043       439472 :          data_tmp = full_data(idata)
   10044       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10045       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10046       439472 :          pack_tmp = ISHFT(pack_tmp, -3)
   10047       439472 :          idata = idata + 1
   10048       439472 :          data_tmp = full_data(idata)
   10049       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10050       439472 :          data_tmp = IAND(data_tmp, mask_left(3))
   10051       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10052       439472 :          ipack = ipack + 1
   10053       439472 :          packed_data(ipack) = pack_tmp
   10054       439472 :          data_tmp = full_data(idata)
   10055       439472 :          pack_tmp = ISHFT(data_tmp, 52)
   10056       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10057       439472 :          idata = idata + 1
   10058       439472 :          data_tmp = full_data(idata)
   10059       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10060       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10061       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10062       439472 :          idata = idata + 1
   10063       439472 :          data_tmp = full_data(idata)
   10064       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10065       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10066       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10067       439472 :          idata = idata + 1
   10068       439472 :          data_tmp = full_data(idata)
   10069       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10070       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10071       439472 :          pack_tmp = ISHFT(pack_tmp, -7)
   10072       439472 :          idata = idata + 1
   10073       439472 :          data_tmp = full_data(idata)
   10074       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10075       439472 :          data_tmp = IAND(data_tmp, mask_left(7))
   10076       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10077       439472 :          ipack = ipack + 1
   10078       439472 :          packed_data(ipack) = pack_tmp
   10079       439472 :          data_tmp = full_data(idata)
   10080       439472 :          pack_tmp = ISHFT(data_tmp, 56)
   10081       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10082       439472 :          idata = idata + 1
   10083       439472 :          data_tmp = full_data(idata)
   10084       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10085       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10086       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10087       439472 :          idata = idata + 1
   10088       439472 :          data_tmp = full_data(idata)
   10089       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10090       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10091       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10092       439472 :          idata = idata + 1
   10093       439472 :          data_tmp = full_data(idata)
   10094       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10095       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10096       439472 :          pack_tmp = ISHFT(pack_tmp, -11)
   10097       439472 :          idata = idata + 1
   10098       439472 :          data_tmp = full_data(idata)
   10099       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10100       439472 :          data_tmp = IAND(data_tmp, mask_left(11))
   10101       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10102       439472 :          ipack = ipack + 1
   10103       439472 :          packed_data(ipack) = pack_tmp
   10104       439472 :          data_tmp = full_data(idata)
   10105       439472 :          pack_tmp = ISHFT(data_tmp, 60)
   10106       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10107       439472 :          idata = idata + 1
   10108       439472 :          data_tmp = full_data(idata)
   10109       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10110       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10111       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10112       439472 :          idata = idata + 1
   10113       439472 :          data_tmp = full_data(idata)
   10114       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10115       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10116       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10117       439472 :          idata = idata + 1
   10118       439472 :          data_tmp = full_data(idata)
   10119       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10120       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10121       439472 :          pack_tmp = ISHFT(pack_tmp, -15)
   10122       439472 :          idata = idata + 1
   10123       439472 :          data_tmp = full_data(idata)
   10124       439472 :          data_tmp = ISHFT(data_tmp, 49)
   10125       439472 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10126              :          pack_tmp = ISHFT(pack_tmp, 0)
   10127       439472 :          pack_tmp = ISHFT(pack_tmp, 0)
   10128       439472 :          ipack = ipack + 1
   10129       439555 :          packed_data(ipack) = pack_tmp
   10130              :       END DO
   10131        28198 :       IF (Ndata_rep < Ndata) THEN
   10132         1376 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   10133              :       END IF
   10134        28198 :    END SUBROUTINE ints2bits_15
   10135              : 
   10136              : ! **************************************************************************************************
   10137              : !> \brief ...
   10138              : !> \param Ndata ...
   10139              : !> \param packed_data ...
   10140              : !> \param full_data ...
   10141              : ! **************************************************************************************************
   10142       127993 :    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       127993 :       ipack = 0
   10153       127993 :       idata = 0
   10154       127993 :       pack_tmp = 0
   10155       127993 :       Ndata_rep = (Ndata/64)*64
   10156       127993 :       DO kdata = 1, Ndata_rep, 64
   10157      1957754 :          idata = idata + 1
   10158      1957754 :          data_tmp = ISHFT(pack_tmp, 15)
   10159      1957754 :          ipack = ipack + 1
   10160      1957754 :          pack_tmp = packed_data(ipack)
   10161      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   10162      1957754 :          pack_tmp = ISHFT(pack_tmp, -15)
   10163      1957754 :          idata = idata + 1
   10164      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10165      1957754 :          full_data(idata) = data_tmp
   10166      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10167      1957754 :          idata = idata + 1
   10168      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10169      1957754 :          full_data(idata) = data_tmp
   10170      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10171      1957754 :          idata = idata + 1
   10172      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10173      1957754 :          full_data(idata) = data_tmp
   10174      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10175      1957754 :          idata = idata + 1
   10176      1957754 :          data_tmp = ISHFT(pack_tmp, 11)
   10177      1957754 :          ipack = ipack + 1
   10178      1957754 :          pack_tmp = packed_data(ipack)
   10179      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   10180      1957754 :          pack_tmp = ISHFT(pack_tmp, -11)
   10181      1957754 :          idata = idata + 1
   10182      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10183      1957754 :          full_data(idata) = data_tmp
   10184      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10185      1957754 :          idata = idata + 1
   10186      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10187      1957754 :          full_data(idata) = data_tmp
   10188      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10189      1957754 :          idata = idata + 1
   10190      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10191      1957754 :          full_data(idata) = data_tmp
   10192      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10193      1957754 :          idata = idata + 1
   10194      1957754 :          data_tmp = ISHFT(pack_tmp, 7)
   10195      1957754 :          ipack = ipack + 1
   10196      1957754 :          pack_tmp = packed_data(ipack)
   10197      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   10198      1957754 :          pack_tmp = ISHFT(pack_tmp, -7)
   10199      1957754 :          idata = idata + 1
   10200      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10201      1957754 :          full_data(idata) = data_tmp
   10202      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10203      1957754 :          idata = idata + 1
   10204      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10205      1957754 :          full_data(idata) = data_tmp
   10206      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10207      1957754 :          idata = idata + 1
   10208      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10209      1957754 :          full_data(idata) = data_tmp
   10210      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10211      1957754 :          idata = idata + 1
   10212      1957754 :          data_tmp = ISHFT(pack_tmp, 3)
   10213      1957754 :          ipack = ipack + 1
   10214      1957754 :          pack_tmp = packed_data(ipack)
   10215      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   10216      1957754 :          pack_tmp = ISHFT(pack_tmp, -3)
   10217      1957754 :          idata = idata + 1
   10218      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10219      1957754 :          full_data(idata) = data_tmp
   10220      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10221      1957754 :          idata = idata + 1
   10222      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10223      1957754 :          full_data(idata) = data_tmp
   10224      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10225      1957754 :          idata = idata + 1
   10226      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10227      1957754 :          full_data(idata) = data_tmp
   10228      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10229      1957754 :          idata = idata + 1
   10230      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10231      1957754 :          full_data(idata) = data_tmp
   10232      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10233      1957754 :          idata = idata + 1
   10234      1957754 :          data_tmp = ISHFT(pack_tmp, 14)
   10235      1957754 :          ipack = ipack + 1
   10236      1957754 :          pack_tmp = packed_data(ipack)
   10237      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   10238      1957754 :          pack_tmp = ISHFT(pack_tmp, -14)
   10239      1957754 :          idata = idata + 1
   10240      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10241      1957754 :          full_data(idata) = data_tmp
   10242      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10243      1957754 :          idata = idata + 1
   10244      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10245      1957754 :          full_data(idata) = data_tmp
   10246      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10247      1957754 :          idata = idata + 1
   10248      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10249      1957754 :          full_data(idata) = data_tmp
   10250      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10251      1957754 :          idata = idata + 1
   10252      1957754 :          data_tmp = ISHFT(pack_tmp, 10)
   10253      1957754 :          ipack = ipack + 1
   10254      1957754 :          pack_tmp = packed_data(ipack)
   10255      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   10256      1957754 :          pack_tmp = ISHFT(pack_tmp, -10)
   10257      1957754 :          idata = idata + 1
   10258      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10259      1957754 :          full_data(idata) = data_tmp
   10260      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10261      1957754 :          idata = idata + 1
   10262      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10263      1957754 :          full_data(idata) = data_tmp
   10264      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10265      1957754 :          idata = idata + 1
   10266      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10267      1957754 :          full_data(idata) = data_tmp
   10268      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10269      1957754 :          idata = idata + 1
   10270      1957754 :          data_tmp = ISHFT(pack_tmp, 6)
   10271      1957754 :          ipack = ipack + 1
   10272      1957754 :          pack_tmp = packed_data(ipack)
   10273      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   10274      1957754 :          pack_tmp = ISHFT(pack_tmp, -6)
   10275      1957754 :          idata = idata + 1
   10276      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10277      1957754 :          full_data(idata) = data_tmp
   10278      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10279      1957754 :          idata = idata + 1
   10280      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10281      1957754 :          full_data(idata) = data_tmp
   10282      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10283      1957754 :          idata = idata + 1
   10284      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10285      1957754 :          full_data(idata) = data_tmp
   10286      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10287      1957754 :          idata = idata + 1
   10288      1957754 :          data_tmp = ISHFT(pack_tmp, 2)
   10289      1957754 :          ipack = ipack + 1
   10290      1957754 :          pack_tmp = packed_data(ipack)
   10291      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   10292      1957754 :          pack_tmp = ISHFT(pack_tmp, -2)
   10293      1957754 :          idata = idata + 1
   10294      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10295      1957754 :          full_data(idata) = data_tmp
   10296      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10297      1957754 :          idata = idata + 1
   10298      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10299      1957754 :          full_data(idata) = data_tmp
   10300      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10301      1957754 :          idata = idata + 1
   10302      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10303      1957754 :          full_data(idata) = data_tmp
   10304      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10305      1957754 :          idata = idata + 1
   10306      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10307      1957754 :          full_data(idata) = data_tmp
   10308      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10309      1957754 :          idata = idata + 1
   10310      1957754 :          data_tmp = ISHFT(pack_tmp, 13)
   10311      1957754 :          ipack = ipack + 1
   10312      1957754 :          pack_tmp = packed_data(ipack)
   10313      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   10314      1957754 :          pack_tmp = ISHFT(pack_tmp, -13)
   10315      1957754 :          idata = idata + 1
   10316      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10317      1957754 :          full_data(idata) = data_tmp
   10318      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10319      1957754 :          idata = idata + 1
   10320      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10321      1957754 :          full_data(idata) = data_tmp
   10322      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10323      1957754 :          idata = idata + 1
   10324      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10325      1957754 :          full_data(idata) = data_tmp
   10326      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10327      1957754 :          idata = idata + 1
   10328      1957754 :          data_tmp = ISHFT(pack_tmp, 9)
   10329      1957754 :          ipack = ipack + 1
   10330      1957754 :          pack_tmp = packed_data(ipack)
   10331      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   10332      1957754 :          pack_tmp = ISHFT(pack_tmp, -9)
   10333      1957754 :          idata = idata + 1
   10334      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10335      1957754 :          full_data(idata) = data_tmp
   10336      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10337      1957754 :          idata = idata + 1
   10338      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10339      1957754 :          full_data(idata) = data_tmp
   10340      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10341      1957754 :          idata = idata + 1
   10342      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10343      1957754 :          full_data(idata) = data_tmp
   10344      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10345      1957754 :          idata = idata + 1
   10346      1957754 :          data_tmp = ISHFT(pack_tmp, 5)
   10347      1957754 :          ipack = ipack + 1
   10348      1957754 :          pack_tmp = packed_data(ipack)
   10349      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   10350      1957754 :          pack_tmp = ISHFT(pack_tmp, -5)
   10351      1957754 :          idata = idata + 1
   10352      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10353      1957754 :          full_data(idata) = data_tmp
   10354      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10355      1957754 :          idata = idata + 1
   10356      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10357      1957754 :          full_data(idata) = data_tmp
   10358      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10359      1957754 :          idata = idata + 1
   10360      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10361      1957754 :          full_data(idata) = data_tmp
   10362      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10363      1957754 :          idata = idata + 1
   10364      1957754 :          data_tmp = ISHFT(pack_tmp, 1)
   10365      1957754 :          ipack = ipack + 1
   10366      1957754 :          pack_tmp = packed_data(ipack)
   10367      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   10368      1957754 :          pack_tmp = ISHFT(pack_tmp, -1)
   10369      1957754 :          idata = idata + 1
   10370      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10371      1957754 :          full_data(idata) = data_tmp
   10372      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10373      1957754 :          idata = idata + 1
   10374      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10375      1957754 :          full_data(idata) = data_tmp
   10376      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10377      1957754 :          idata = idata + 1
   10378      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10379      1957754 :          full_data(idata) = data_tmp
   10380      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10381      1957754 :          idata = idata + 1
   10382      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10383      1957754 :          full_data(idata) = data_tmp
   10384      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10385      1957754 :          idata = idata + 1
   10386      1957754 :          data_tmp = ISHFT(pack_tmp, 12)
   10387      1957754 :          ipack = ipack + 1
   10388      1957754 :          pack_tmp = packed_data(ipack)
   10389      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   10390      1957754 :          pack_tmp = ISHFT(pack_tmp, -12)
   10391      1957754 :          idata = idata + 1
   10392      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10393      1957754 :          full_data(idata) = data_tmp
   10394      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10395      1957754 :          idata = idata + 1
   10396      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10397      1957754 :          full_data(idata) = data_tmp
   10398      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10399      1957754 :          idata = idata + 1
   10400      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10401      1957754 :          full_data(idata) = data_tmp
   10402      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10403      1957754 :          idata = idata + 1
   10404      1957754 :          data_tmp = ISHFT(pack_tmp, 8)
   10405      1957754 :          ipack = ipack + 1
   10406      1957754 :          pack_tmp = packed_data(ipack)
   10407      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   10408      1957754 :          pack_tmp = ISHFT(pack_tmp, -8)
   10409      1957754 :          idata = idata + 1
   10410      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10411      1957754 :          full_data(idata) = data_tmp
   10412      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10413      1957754 :          idata = idata + 1
   10414      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10415      1957754 :          full_data(idata) = data_tmp
   10416      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10417      1957754 :          idata = idata + 1
   10418      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10419      1957754 :          full_data(idata) = data_tmp
   10420      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10421      1957754 :          idata = idata + 1
   10422      1957754 :          data_tmp = ISHFT(pack_tmp, 4)
   10423      1957754 :          ipack = ipack + 1
   10424      1957754 :          pack_tmp = packed_data(ipack)
   10425      1957754 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   10426      1957754 :          pack_tmp = ISHFT(pack_tmp, -4)
   10427      1957754 :          idata = idata + 1
   10428      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10429      1957754 :          full_data(idata) = data_tmp
   10430      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10431      1957754 :          idata = idata + 1
   10432      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10433      1957754 :          full_data(idata) = data_tmp
   10434      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10435      1957754 :          idata = idata + 1
   10436      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10437      1957754 :          full_data(idata) = data_tmp
   10438      1957754 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10439      1957754 :          idata = idata + 1
   10440      1957754 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10441      1957754 :          full_data(idata) = data_tmp
   10442      1958391 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10443              :       END DO
   10444       127993 :       IF (Ndata_rep < Ndata) THEN
   10445        10604 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   10446              :       END IF
   10447       127993 :    END SUBROUTINE bits2ints_15
   10448              : 
   10449              : ! **************************************************************************************************
   10450              : !> \brief ...
   10451              : !> \param Ndata ...
   10452              : !> \param packed_data ...
   10453              : !> \param full_data ...
   10454              : ! **************************************************************************************************
   10455        29101 :    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        29101 :       idata = 0
   10466        29101 :       ipack = 0
   10467        29101 :       Ndata_rep = (Ndata/64)*64
   10468        29101 :       DO kdata = 1, Ndata_rep, 64
   10469       451520 :          pack_tmp = 0
   10470       451520 :          idata = idata + 1
   10471       451520 :          data_tmp = full_data(idata)
   10472       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10473       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10474       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10475       451520 :          idata = idata + 1
   10476       451520 :          data_tmp = full_data(idata)
   10477       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10478       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10479       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10480       451520 :          idata = idata + 1
   10481       451520 :          data_tmp = full_data(idata)
   10482       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10483       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10484       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10485       451520 :          idata = idata + 1
   10486       451520 :          data_tmp = full_data(idata)
   10487       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10488       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10489       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10490       451520 :          idata = idata + 1
   10491       451520 :          data_tmp = full_data(idata)
   10492              :          data_tmp = ISHFT(data_tmp, 48)
   10493       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10494       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10495       451520 :          ipack = ipack + 1
   10496       451520 :          packed_data(ipack) = pack_tmp
   10497       451520 :          data_tmp = full_data(idata)
   10498       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10499       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10500       451520 :          idata = idata + 1
   10501       451520 :          data_tmp = full_data(idata)
   10502       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10503       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10504       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10505       451520 :          idata = idata + 1
   10506       451520 :          data_tmp = full_data(idata)
   10507       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10508       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10509       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10510       451520 :          idata = idata + 1
   10511       451520 :          data_tmp = full_data(idata)
   10512       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10513       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10514       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10515       451520 :          idata = idata + 1
   10516       451520 :          data_tmp = full_data(idata)
   10517              :          data_tmp = ISHFT(data_tmp, 48)
   10518       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10519       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10520       451520 :          ipack = ipack + 1
   10521       451520 :          packed_data(ipack) = pack_tmp
   10522       451520 :          data_tmp = full_data(idata)
   10523       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10524       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10525       451520 :          idata = idata + 1
   10526       451520 :          data_tmp = full_data(idata)
   10527       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10528       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10529       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10530       451520 :          idata = idata + 1
   10531       451520 :          data_tmp = full_data(idata)
   10532       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10533       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10534       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10535       451520 :          idata = idata + 1
   10536       451520 :          data_tmp = full_data(idata)
   10537       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10538       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10539       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10540       451520 :          idata = idata + 1
   10541       451520 :          data_tmp = full_data(idata)
   10542              :          data_tmp = ISHFT(data_tmp, 48)
   10543       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10544       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10545       451520 :          ipack = ipack + 1
   10546       451520 :          packed_data(ipack) = pack_tmp
   10547       451520 :          data_tmp = full_data(idata)
   10548       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10549       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10550       451520 :          idata = idata + 1
   10551       451520 :          data_tmp = full_data(idata)
   10552       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10553       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10554       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10555       451520 :          idata = idata + 1
   10556       451520 :          data_tmp = full_data(idata)
   10557       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10558       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10559       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10560       451520 :          idata = idata + 1
   10561       451520 :          data_tmp = full_data(idata)
   10562       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10563       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10564       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10565       451520 :          idata = idata + 1
   10566       451520 :          data_tmp = full_data(idata)
   10567              :          data_tmp = ISHFT(data_tmp, 48)
   10568       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10569       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10570       451520 :          ipack = ipack + 1
   10571       451520 :          packed_data(ipack) = pack_tmp
   10572       451520 :          data_tmp = full_data(idata)
   10573       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10574       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10575       451520 :          idata = idata + 1
   10576       451520 :          data_tmp = full_data(idata)
   10577       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10578       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10579       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10580       451520 :          idata = idata + 1
   10581       451520 :          data_tmp = full_data(idata)
   10582       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10583       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10584       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10585       451520 :          idata = idata + 1
   10586       451520 :          data_tmp = full_data(idata)
   10587       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10588       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10589       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10590       451520 :          idata = idata + 1
   10591       451520 :          data_tmp = full_data(idata)
   10592              :          data_tmp = ISHFT(data_tmp, 48)
   10593       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10594       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10595       451520 :          ipack = ipack + 1
   10596       451520 :          packed_data(ipack) = pack_tmp
   10597       451520 :          data_tmp = full_data(idata)
   10598       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10599       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10600       451520 :          idata = idata + 1
   10601       451520 :          data_tmp = full_data(idata)
   10602       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10603       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10604       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10605       451520 :          idata = idata + 1
   10606       451520 :          data_tmp = full_data(idata)
   10607       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10608       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10609       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10610       451520 :          idata = idata + 1
   10611       451520 :          data_tmp = full_data(idata)
   10612       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10613       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10614       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10615       451520 :          idata = idata + 1
   10616       451520 :          data_tmp = full_data(idata)
   10617              :          data_tmp = ISHFT(data_tmp, 48)
   10618       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10619       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10620       451520 :          ipack = ipack + 1
   10621       451520 :          packed_data(ipack) = pack_tmp
   10622       451520 :          data_tmp = full_data(idata)
   10623       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10624       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10625       451520 :          idata = idata + 1
   10626       451520 :          data_tmp = full_data(idata)
   10627       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10628       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10629       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10630       451520 :          idata = idata + 1
   10631       451520 :          data_tmp = full_data(idata)
   10632       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10633       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10634       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10635       451520 :          idata = idata + 1
   10636       451520 :          data_tmp = full_data(idata)
   10637       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10638       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10639       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10640       451520 :          idata = idata + 1
   10641       451520 :          data_tmp = full_data(idata)
   10642              :          data_tmp = ISHFT(data_tmp, 48)
   10643       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10644       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10645       451520 :          ipack = ipack + 1
   10646       451520 :          packed_data(ipack) = pack_tmp
   10647       451520 :          data_tmp = full_data(idata)
   10648       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10649       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10650       451520 :          idata = idata + 1
   10651       451520 :          data_tmp = full_data(idata)
   10652       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10653       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10654       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10655       451520 :          idata = idata + 1
   10656       451520 :          data_tmp = full_data(idata)
   10657       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10658       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10659       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10660       451520 :          idata = idata + 1
   10661       451520 :          data_tmp = full_data(idata)
   10662       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10663       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10664       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10665       451520 :          idata = idata + 1
   10666       451520 :          data_tmp = full_data(idata)
   10667              :          data_tmp = ISHFT(data_tmp, 48)
   10668       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10669       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10670       451520 :          ipack = ipack + 1
   10671       451520 :          packed_data(ipack) = pack_tmp
   10672       451520 :          data_tmp = full_data(idata)
   10673       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10674       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10675       451520 :          idata = idata + 1
   10676       451520 :          data_tmp = full_data(idata)
   10677       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10678       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10679       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10680       451520 :          idata = idata + 1
   10681       451520 :          data_tmp = full_data(idata)
   10682       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10683       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10684       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10685       451520 :          idata = idata + 1
   10686       451520 :          data_tmp = full_data(idata)
   10687       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10688       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10689       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10690       451520 :          idata = idata + 1
   10691       451520 :          data_tmp = full_data(idata)
   10692              :          data_tmp = ISHFT(data_tmp, 48)
   10693       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10694       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10695       451520 :          ipack = ipack + 1
   10696       451520 :          packed_data(ipack) = pack_tmp
   10697       451520 :          data_tmp = full_data(idata)
   10698       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10699       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10700       451520 :          idata = idata + 1
   10701       451520 :          data_tmp = full_data(idata)
   10702       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10703       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10704       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10705       451520 :          idata = idata + 1
   10706       451520 :          data_tmp = full_data(idata)
   10707       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10708       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10709       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10710       451520 :          idata = idata + 1
   10711       451520 :          data_tmp = full_data(idata)
   10712       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10713       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10714       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10715       451520 :          idata = idata + 1
   10716       451520 :          data_tmp = full_data(idata)
   10717              :          data_tmp = ISHFT(data_tmp, 48)
   10718       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10719       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10720       451520 :          ipack = ipack + 1
   10721       451520 :          packed_data(ipack) = pack_tmp
   10722       451520 :          data_tmp = full_data(idata)
   10723       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10724       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10725       451520 :          idata = idata + 1
   10726       451520 :          data_tmp = full_data(idata)
   10727       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10728       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10729       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10730       451520 :          idata = idata + 1
   10731       451520 :          data_tmp = full_data(idata)
   10732       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10733       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10734       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10735       451520 :          idata = idata + 1
   10736       451520 :          data_tmp = full_data(idata)
   10737       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10738       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10739       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10740       451520 :          idata = idata + 1
   10741       451520 :          data_tmp = full_data(idata)
   10742              :          data_tmp = ISHFT(data_tmp, 48)
   10743       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10744       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10745       451520 :          ipack = ipack + 1
   10746       451520 :          packed_data(ipack) = pack_tmp
   10747       451520 :          data_tmp = full_data(idata)
   10748       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10749       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10750       451520 :          idata = idata + 1
   10751       451520 :          data_tmp = full_data(idata)
   10752       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10753       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10754       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10755       451520 :          idata = idata + 1
   10756       451520 :          data_tmp = full_data(idata)
   10757       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10758       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10759       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10760       451520 :          idata = idata + 1
   10761       451520 :          data_tmp = full_data(idata)
   10762       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10763       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10764       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10765       451520 :          idata = idata + 1
   10766       451520 :          data_tmp = full_data(idata)
   10767              :          data_tmp = ISHFT(data_tmp, 48)
   10768       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10769       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10770       451520 :          ipack = ipack + 1
   10771       451520 :          packed_data(ipack) = pack_tmp
   10772       451520 :          data_tmp = full_data(idata)
   10773       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10774       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10775       451520 :          idata = idata + 1
   10776       451520 :          data_tmp = full_data(idata)
   10777       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10778       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10779       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10780       451520 :          idata = idata + 1
   10781       451520 :          data_tmp = full_data(idata)
   10782       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10783       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10784       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10785       451520 :          idata = idata + 1
   10786       451520 :          data_tmp = full_data(idata)
   10787       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10788       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10789       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10790       451520 :          idata = idata + 1
   10791       451520 :          data_tmp = full_data(idata)
   10792              :          data_tmp = ISHFT(data_tmp, 48)
   10793       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10794       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10795       451520 :          ipack = ipack + 1
   10796       451520 :          packed_data(ipack) = pack_tmp
   10797       451520 :          data_tmp = full_data(idata)
   10798       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10799       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10800       451520 :          idata = idata + 1
   10801       451520 :          data_tmp = full_data(idata)
   10802       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10803       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10804       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10805       451520 :          idata = idata + 1
   10806       451520 :          data_tmp = full_data(idata)
   10807       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10808       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10809       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10810       451520 :          idata = idata + 1
   10811       451520 :          data_tmp = full_data(idata)
   10812       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10813       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10814       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10815       451520 :          idata = idata + 1
   10816       451520 :          data_tmp = full_data(idata)
   10817              :          data_tmp = ISHFT(data_tmp, 48)
   10818       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10819       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10820       451520 :          ipack = ipack + 1
   10821       451520 :          packed_data(ipack) = pack_tmp
   10822       451520 :          data_tmp = full_data(idata)
   10823       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10824       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10825       451520 :          idata = idata + 1
   10826       451520 :          data_tmp = full_data(idata)
   10827       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10828       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10829       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10830       451520 :          idata = idata + 1
   10831       451520 :          data_tmp = full_data(idata)
   10832       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10833       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10834       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10835       451520 :          idata = idata + 1
   10836       451520 :          data_tmp = full_data(idata)
   10837       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10838       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10839       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10840       451520 :          idata = idata + 1
   10841       451520 :          data_tmp = full_data(idata)
   10842              :          data_tmp = ISHFT(data_tmp, 48)
   10843       451520 :          data_tmp = IAND(data_tmp, mask_left(0))
   10844       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10845       451520 :          ipack = ipack + 1
   10846       451520 :          packed_data(ipack) = pack_tmp
   10847       451520 :          data_tmp = full_data(idata)
   10848       451520 :          pack_tmp = ISHFT(data_tmp, 48)
   10849       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10850       451520 :          idata = idata + 1
   10851       451520 :          data_tmp = full_data(idata)
   10852       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10853       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10854       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10855       451520 :          idata = idata + 1
   10856       451520 :          data_tmp = full_data(idata)
   10857       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10858       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10859       451520 :          pack_tmp = ISHFT(pack_tmp, -16)
   10860       451520 :          idata = idata + 1
   10861       451520 :          data_tmp = full_data(idata)
   10862       451520 :          data_tmp = ISHFT(data_tmp, 48)
   10863       451520 :          pack_tmp = IOR(pack_tmp, data_tmp)
   10864              :          pack_tmp = ISHFT(pack_tmp, 0)
   10865       451520 :          pack_tmp = ISHFT(pack_tmp, 0)
   10866       451520 :          ipack = ipack + 1
   10867       452401 :          packed_data(ipack) = pack_tmp
   10868              :       END DO
   10869        29101 :       IF (Ndata_rep < Ndata) THEN
   10870            0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   10871              :       END IF
   10872        29101 :    END SUBROUTINE ints2bits_16
   10873              : 
   10874              : ! **************************************************************************************************
   10875              : !> \brief ...
   10876              : !> \param Ndata ...
   10877              : !> \param packed_data ...
   10878              : !> \param full_data ...
   10879              : ! **************************************************************************************************
   10880       140683 :    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       140683 :       ipack = 0
   10891       140683 :       idata = 0
   10892       140683 :       pack_tmp = 0
   10893       140683 :       Ndata_rep = (Ndata/64)*64
   10894       140683 :       DO kdata = 1, Ndata_rep, 64
   10895      2124768 :          idata = idata + 1
   10896      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   10897      2124768 :          ipack = ipack + 1
   10898      2124768 :          pack_tmp = packed_data(ipack)
   10899      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10900      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   10901      2124768 :          idata = idata + 1
   10902      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10903      2124768 :          full_data(idata) = data_tmp
   10904      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10905      2124768 :          idata = idata + 1
   10906      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10907      2124768 :          full_data(idata) = data_tmp
   10908      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10909      2124768 :          idata = idata + 1
   10910      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10911      2124768 :          full_data(idata) = data_tmp
   10912      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10913      2124768 :          idata = idata + 1
   10914      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   10915      2124768 :          ipack = ipack + 1
   10916      2124768 :          pack_tmp = packed_data(ipack)
   10917      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10918      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   10919      2124768 :          idata = idata + 1
   10920      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10921      2124768 :          full_data(idata) = data_tmp
   10922      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10923      2124768 :          idata = idata + 1
   10924      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10925      2124768 :          full_data(idata) = data_tmp
   10926      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10927      2124768 :          idata = idata + 1
   10928      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10929      2124768 :          full_data(idata) = data_tmp
   10930      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10931      2124768 :          idata = idata + 1
   10932      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   10933      2124768 :          ipack = ipack + 1
   10934      2124768 :          pack_tmp = packed_data(ipack)
   10935      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10936      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   10937      2124768 :          idata = idata + 1
   10938      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10939      2124768 :          full_data(idata) = data_tmp
   10940      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10941      2124768 :          idata = idata + 1
   10942      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10943      2124768 :          full_data(idata) = data_tmp
   10944      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10945      2124768 :          idata = idata + 1
   10946      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10947      2124768 :          full_data(idata) = data_tmp
   10948      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10949      2124768 :          idata = idata + 1
   10950      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   10951      2124768 :          ipack = ipack + 1
   10952      2124768 :          pack_tmp = packed_data(ipack)
   10953      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10954      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   10955      2124768 :          idata = idata + 1
   10956      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10957      2124768 :          full_data(idata) = data_tmp
   10958      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10959      2124768 :          idata = idata + 1
   10960      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10961      2124768 :          full_data(idata) = data_tmp
   10962      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10963      2124768 :          idata = idata + 1
   10964      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10965      2124768 :          full_data(idata) = data_tmp
   10966      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10967      2124768 :          idata = idata + 1
   10968      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   10969      2124768 :          ipack = ipack + 1
   10970      2124768 :          pack_tmp = packed_data(ipack)
   10971      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10972      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   10973      2124768 :          idata = idata + 1
   10974      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10975      2124768 :          full_data(idata) = data_tmp
   10976      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10977      2124768 :          idata = idata + 1
   10978      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10979      2124768 :          full_data(idata) = data_tmp
   10980      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10981      2124768 :          idata = idata + 1
   10982      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10983      2124768 :          full_data(idata) = data_tmp
   10984      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10985      2124768 :          idata = idata + 1
   10986      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   10987      2124768 :          ipack = ipack + 1
   10988      2124768 :          pack_tmp = packed_data(ipack)
   10989      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   10990      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   10991      2124768 :          idata = idata + 1
   10992      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10993      2124768 :          full_data(idata) = data_tmp
   10994      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10995      2124768 :          idata = idata + 1
   10996      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   10997      2124768 :          full_data(idata) = data_tmp
   10998      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   10999      2124768 :          idata = idata + 1
   11000      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11001      2124768 :          full_data(idata) = data_tmp
   11002      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11003      2124768 :          idata = idata + 1
   11004      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   11005      2124768 :          ipack = ipack + 1
   11006      2124768 :          pack_tmp = packed_data(ipack)
   11007      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11008      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   11009      2124768 :          idata = idata + 1
   11010      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11011      2124768 :          full_data(idata) = data_tmp
   11012      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11013      2124768 :          idata = idata + 1
   11014      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11015      2124768 :          full_data(idata) = data_tmp
   11016      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11017      2124768 :          idata = idata + 1
   11018      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11019      2124768 :          full_data(idata) = data_tmp
   11020      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11021      2124768 :          idata = idata + 1
   11022      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   11023      2124768 :          ipack = ipack + 1
   11024      2124768 :          pack_tmp = packed_data(ipack)
   11025      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11026      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   11027      2124768 :          idata = idata + 1
   11028      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11029      2124768 :          full_data(idata) = data_tmp
   11030      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11031      2124768 :          idata = idata + 1
   11032      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11033      2124768 :          full_data(idata) = data_tmp
   11034      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11035      2124768 :          idata = idata + 1
   11036      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11037      2124768 :          full_data(idata) = data_tmp
   11038      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11039      2124768 :          idata = idata + 1
   11040      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   11041      2124768 :          ipack = ipack + 1
   11042      2124768 :          pack_tmp = packed_data(ipack)
   11043      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11044      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   11045      2124768 :          idata = idata + 1
   11046      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11047      2124768 :          full_data(idata) = data_tmp
   11048      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11049      2124768 :          idata = idata + 1
   11050      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11051      2124768 :          full_data(idata) = data_tmp
   11052      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11053      2124768 :          idata = idata + 1
   11054      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11055      2124768 :          full_data(idata) = data_tmp
   11056      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11057      2124768 :          idata = idata + 1
   11058      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   11059      2124768 :          ipack = ipack + 1
   11060      2124768 :          pack_tmp = packed_data(ipack)
   11061      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11062      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   11063      2124768 :          idata = idata + 1
   11064      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11065      2124768 :          full_data(idata) = data_tmp
   11066      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11067      2124768 :          idata = idata + 1
   11068      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11069      2124768 :          full_data(idata) = data_tmp
   11070      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11071      2124768 :          idata = idata + 1
   11072      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11073      2124768 :          full_data(idata) = data_tmp
   11074      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11075      2124768 :          idata = idata + 1
   11076      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   11077      2124768 :          ipack = ipack + 1
   11078      2124768 :          pack_tmp = packed_data(ipack)
   11079      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11080      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   11081      2124768 :          idata = idata + 1
   11082      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11083      2124768 :          full_data(idata) = data_tmp
   11084      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11085      2124768 :          idata = idata + 1
   11086      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11087      2124768 :          full_data(idata) = data_tmp
   11088      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11089      2124768 :          idata = idata + 1
   11090      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11091      2124768 :          full_data(idata) = data_tmp
   11092      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11093      2124768 :          idata = idata + 1
   11094      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   11095      2124768 :          ipack = ipack + 1
   11096      2124768 :          pack_tmp = packed_data(ipack)
   11097      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11098      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   11099      2124768 :          idata = idata + 1
   11100      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11101      2124768 :          full_data(idata) = data_tmp
   11102      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11103      2124768 :          idata = idata + 1
   11104      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11105      2124768 :          full_data(idata) = data_tmp
   11106      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11107      2124768 :          idata = idata + 1
   11108      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11109      2124768 :          full_data(idata) = data_tmp
   11110      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11111      2124768 :          idata = idata + 1
   11112      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   11113      2124768 :          ipack = ipack + 1
   11114      2124768 :          pack_tmp = packed_data(ipack)
   11115      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11116      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   11117      2124768 :          idata = idata + 1
   11118      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11119      2124768 :          full_data(idata) = data_tmp
   11120      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11121      2124768 :          idata = idata + 1
   11122      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11123      2124768 :          full_data(idata) = data_tmp
   11124      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11125      2124768 :          idata = idata + 1
   11126      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11127      2124768 :          full_data(idata) = data_tmp
   11128      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11129      2124768 :          idata = idata + 1
   11130      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   11131      2124768 :          ipack = ipack + 1
   11132      2124768 :          pack_tmp = packed_data(ipack)
   11133      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11134      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   11135      2124768 :          idata = idata + 1
   11136      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11137      2124768 :          full_data(idata) = data_tmp
   11138      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11139      2124768 :          idata = idata + 1
   11140      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11141      2124768 :          full_data(idata) = data_tmp
   11142      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11143      2124768 :          idata = idata + 1
   11144      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11145      2124768 :          full_data(idata) = data_tmp
   11146      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11147      2124768 :          idata = idata + 1
   11148      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   11149      2124768 :          ipack = ipack + 1
   11150      2124768 :          pack_tmp = packed_data(ipack)
   11151      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11152      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   11153      2124768 :          idata = idata + 1
   11154      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11155      2124768 :          full_data(idata) = data_tmp
   11156      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11157      2124768 :          idata = idata + 1
   11158      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11159      2124768 :          full_data(idata) = data_tmp
   11160      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11161      2124768 :          idata = idata + 1
   11162      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11163      2124768 :          full_data(idata) = data_tmp
   11164      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11165      2124768 :          idata = idata + 1
   11166      2124768 :          data_tmp = ISHFT(pack_tmp, 16)
   11167      2124768 :          ipack = ipack + 1
   11168      2124768 :          pack_tmp = packed_data(ipack)
   11169      2124768 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11170      2124768 :          pack_tmp = ISHFT(pack_tmp, -16)
   11171      2124768 :          idata = idata + 1
   11172      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11173      2124768 :          full_data(idata) = data_tmp
   11174      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11175      2124768 :          idata = idata + 1
   11176      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11177      2124768 :          full_data(idata) = data_tmp
   11178      2124768 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11179      2124768 :          idata = idata + 1
   11180      2124768 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11181      2124768 :          full_data(idata) = data_tmp
   11182      2132653 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11183              :       END DO
   11184       140683 :       IF (Ndata_rep < Ndata) THEN
   11185            0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   11186              :       END IF
   11187       140683 :    END SUBROUTINE bits2ints_16
   11188              : 
   11189              : ! **************************************************************************************************
   11190              : !> \brief ...
   11191              : !> \param Ndata ...
   11192              : !> \param packed_data ...
   11193              : !> \param full_data ...
   11194              : ! **************************************************************************************************
   11195        32724 :    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        32724 :       idata = 0
   11206        32724 :       ipack = 0
   11207        32724 :       Ndata_rep = (Ndata/64)*64
   11208        32724 :       DO kdata = 1, Ndata_rep, 64
   11209       495487 :          pack_tmp = 0
   11210       495487 :          idata = idata + 1
   11211       495487 :          data_tmp = full_data(idata)
   11212       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11213       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11214       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11215       495487 :          idata = idata + 1
   11216       495487 :          data_tmp = full_data(idata)
   11217       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11218       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11219       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11220       495487 :          idata = idata + 1
   11221       495487 :          data_tmp = full_data(idata)
   11222       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11223       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11224       495487 :          pack_tmp = ISHFT(pack_tmp, -13)
   11225       495487 :          idata = idata + 1
   11226       495487 :          data_tmp = full_data(idata)
   11227       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11228       495487 :          data_tmp = IAND(data_tmp, mask_left(13))
   11229       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11230       495487 :          ipack = ipack + 1
   11231       495487 :          packed_data(ipack) = pack_tmp
   11232       495487 :          data_tmp = full_data(idata)
   11233       495487 :          pack_tmp = ISHFT(data_tmp, 60)
   11234       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11235       495487 :          idata = idata + 1
   11236       495487 :          data_tmp = full_data(idata)
   11237       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11238       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11239       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11240       495487 :          idata = idata + 1
   11241       495487 :          data_tmp = full_data(idata)
   11242       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11243       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11244       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11245       495487 :          idata = idata + 1
   11246       495487 :          data_tmp = full_data(idata)
   11247       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11248       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11249       495487 :          pack_tmp = ISHFT(pack_tmp, -9)
   11250       495487 :          idata = idata + 1
   11251       495487 :          data_tmp = full_data(idata)
   11252       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11253       495487 :          data_tmp = IAND(data_tmp, mask_left(9))
   11254       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11255       495487 :          ipack = ipack + 1
   11256       495487 :          packed_data(ipack) = pack_tmp
   11257       495487 :          data_tmp = full_data(idata)
   11258       495487 :          pack_tmp = ISHFT(data_tmp, 56)
   11259       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11260       495487 :          idata = idata + 1
   11261       495487 :          data_tmp = full_data(idata)
   11262       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11263       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11264       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11265       495487 :          idata = idata + 1
   11266       495487 :          data_tmp = full_data(idata)
   11267       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11268       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11269       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11270       495487 :          idata = idata + 1
   11271       495487 :          data_tmp = full_data(idata)
   11272       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11273       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11274       495487 :          pack_tmp = ISHFT(pack_tmp, -5)
   11275       495487 :          idata = idata + 1
   11276       495487 :          data_tmp = full_data(idata)
   11277       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11278       495487 :          data_tmp = IAND(data_tmp, mask_left(5))
   11279       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11280       495487 :          ipack = ipack + 1
   11281       495487 :          packed_data(ipack) = pack_tmp
   11282       495487 :          data_tmp = full_data(idata)
   11283       495487 :          pack_tmp = ISHFT(data_tmp, 52)
   11284       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11285       495487 :          idata = idata + 1
   11286       495487 :          data_tmp = full_data(idata)
   11287       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11288       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11289       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11290       495487 :          idata = idata + 1
   11291       495487 :          data_tmp = full_data(idata)
   11292       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11293       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11294       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11295       495487 :          idata = idata + 1
   11296       495487 :          data_tmp = full_data(idata)
   11297       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11298       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11299       495487 :          pack_tmp = ISHFT(pack_tmp, -1)
   11300       495487 :          idata = idata + 1
   11301       495487 :          data_tmp = full_data(idata)
   11302       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11303       495487 :          data_tmp = IAND(data_tmp, mask_left(1))
   11304       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11305       495487 :          ipack = ipack + 1
   11306       495487 :          packed_data(ipack) = pack_tmp
   11307       495487 :          data_tmp = full_data(idata)
   11308       495487 :          pack_tmp = ISHFT(data_tmp, 48)
   11309       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11310       495487 :          idata = idata + 1
   11311       495487 :          data_tmp = full_data(idata)
   11312       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11313       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11314       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11315       495487 :          idata = idata + 1
   11316       495487 :          data_tmp = full_data(idata)
   11317       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11318       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11319       495487 :          pack_tmp = ISHFT(pack_tmp, -14)
   11320       495487 :          idata = idata + 1
   11321       495487 :          data_tmp = full_data(idata)
   11322       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11323       495487 :          data_tmp = IAND(data_tmp, mask_left(14))
   11324       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11325       495487 :          ipack = ipack + 1
   11326       495487 :          packed_data(ipack) = pack_tmp
   11327       495487 :          data_tmp = full_data(idata)
   11328       495487 :          pack_tmp = ISHFT(data_tmp, 61)
   11329       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11330       495487 :          idata = idata + 1
   11331       495487 :          data_tmp = full_data(idata)
   11332       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11333       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11334       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11335       495487 :          idata = idata + 1
   11336       495487 :          data_tmp = full_data(idata)
   11337       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11338       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11339       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11340       495487 :          idata = idata + 1
   11341       495487 :          data_tmp = full_data(idata)
   11342       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11343       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11344       495487 :          pack_tmp = ISHFT(pack_tmp, -10)
   11345       495487 :          idata = idata + 1
   11346       495487 :          data_tmp = full_data(idata)
   11347       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11348       495487 :          data_tmp = IAND(data_tmp, mask_left(10))
   11349       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11350       495487 :          ipack = ipack + 1
   11351       495487 :          packed_data(ipack) = pack_tmp
   11352       495487 :          data_tmp = full_data(idata)
   11353       495487 :          pack_tmp = ISHFT(data_tmp, 57)
   11354       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11355       495487 :          idata = idata + 1
   11356       495487 :          data_tmp = full_data(idata)
   11357       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11358       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11359       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11360       495487 :          idata = idata + 1
   11361       495487 :          data_tmp = full_data(idata)
   11362       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11363       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11364       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11365       495487 :          idata = idata + 1
   11366       495487 :          data_tmp = full_data(idata)
   11367       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11368       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11369       495487 :          pack_tmp = ISHFT(pack_tmp, -6)
   11370       495487 :          idata = idata + 1
   11371       495487 :          data_tmp = full_data(idata)
   11372       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11373       495487 :          data_tmp = IAND(data_tmp, mask_left(6))
   11374       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11375       495487 :          ipack = ipack + 1
   11376       495487 :          packed_data(ipack) = pack_tmp
   11377       495487 :          data_tmp = full_data(idata)
   11378       495487 :          pack_tmp = ISHFT(data_tmp, 53)
   11379       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11380       495487 :          idata = idata + 1
   11381       495487 :          data_tmp = full_data(idata)
   11382       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11383       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11384       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11385       495487 :          idata = idata + 1
   11386       495487 :          data_tmp = full_data(idata)
   11387       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11388       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11389       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11390       495487 :          idata = idata + 1
   11391       495487 :          data_tmp = full_data(idata)
   11392       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11393       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11394       495487 :          pack_tmp = ISHFT(pack_tmp, -2)
   11395       495487 :          idata = idata + 1
   11396       495487 :          data_tmp = full_data(idata)
   11397       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11398       495487 :          data_tmp = IAND(data_tmp, mask_left(2))
   11399       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11400       495487 :          ipack = ipack + 1
   11401       495487 :          packed_data(ipack) = pack_tmp
   11402       495487 :          data_tmp = full_data(idata)
   11403       495487 :          pack_tmp = ISHFT(data_tmp, 49)
   11404       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11405       495487 :          idata = idata + 1
   11406       495487 :          data_tmp = full_data(idata)
   11407       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11408       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11409       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11410       495487 :          idata = idata + 1
   11411       495487 :          data_tmp = full_data(idata)
   11412       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11413       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11414       495487 :          pack_tmp = ISHFT(pack_tmp, -15)
   11415       495487 :          idata = idata + 1
   11416       495487 :          data_tmp = full_data(idata)
   11417       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11418       495487 :          data_tmp = IAND(data_tmp, mask_left(15))
   11419       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11420       495487 :          ipack = ipack + 1
   11421       495487 :          packed_data(ipack) = pack_tmp
   11422       495487 :          data_tmp = full_data(idata)
   11423       495487 :          pack_tmp = ISHFT(data_tmp, 62)
   11424       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11425       495487 :          idata = idata + 1
   11426       495487 :          data_tmp = full_data(idata)
   11427       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11428       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11429       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11430       495487 :          idata = idata + 1
   11431       495487 :          data_tmp = full_data(idata)
   11432       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11433       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11434       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11435       495487 :          idata = idata + 1
   11436       495487 :          data_tmp = full_data(idata)
   11437       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11438       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11439       495487 :          pack_tmp = ISHFT(pack_tmp, -11)
   11440       495487 :          idata = idata + 1
   11441       495487 :          data_tmp = full_data(idata)
   11442       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11443       495487 :          data_tmp = IAND(data_tmp, mask_left(11))
   11444       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11445       495487 :          ipack = ipack + 1
   11446       495487 :          packed_data(ipack) = pack_tmp
   11447       495487 :          data_tmp = full_data(idata)
   11448       495487 :          pack_tmp = ISHFT(data_tmp, 58)
   11449       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11450       495487 :          idata = idata + 1
   11451       495487 :          data_tmp = full_data(idata)
   11452       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11453       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11454       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11455       495487 :          idata = idata + 1
   11456       495487 :          data_tmp = full_data(idata)
   11457       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11458       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11459       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11460       495487 :          idata = idata + 1
   11461       495487 :          data_tmp = full_data(idata)
   11462       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11463       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11464       495487 :          pack_tmp = ISHFT(pack_tmp, -7)
   11465       495487 :          idata = idata + 1
   11466       495487 :          data_tmp = full_data(idata)
   11467       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11468       495487 :          data_tmp = IAND(data_tmp, mask_left(7))
   11469       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11470       495487 :          ipack = ipack + 1
   11471       495487 :          packed_data(ipack) = pack_tmp
   11472       495487 :          data_tmp = full_data(idata)
   11473       495487 :          pack_tmp = ISHFT(data_tmp, 54)
   11474       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11475       495487 :          idata = idata + 1
   11476       495487 :          data_tmp = full_data(idata)
   11477       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11478       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11479       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11480       495487 :          idata = idata + 1
   11481       495487 :          data_tmp = full_data(idata)
   11482       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11483       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11484       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11485       495487 :          idata = idata + 1
   11486       495487 :          data_tmp = full_data(idata)
   11487       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11488       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11489       495487 :          pack_tmp = ISHFT(pack_tmp, -3)
   11490       495487 :          idata = idata + 1
   11491       495487 :          data_tmp = full_data(idata)
   11492       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11493       495487 :          data_tmp = IAND(data_tmp, mask_left(3))
   11494       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11495       495487 :          ipack = ipack + 1
   11496       495487 :          packed_data(ipack) = pack_tmp
   11497       495487 :          data_tmp = full_data(idata)
   11498       495487 :          pack_tmp = ISHFT(data_tmp, 50)
   11499       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11500       495487 :          idata = idata + 1
   11501       495487 :          data_tmp = full_data(idata)
   11502       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11503       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11504       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11505       495487 :          idata = idata + 1
   11506       495487 :          data_tmp = full_data(idata)
   11507       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11508       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11509       495487 :          pack_tmp = ISHFT(pack_tmp, -16)
   11510       495487 :          idata = idata + 1
   11511       495487 :          data_tmp = full_data(idata)
   11512       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11513       495487 :          data_tmp = IAND(data_tmp, mask_left(16))
   11514       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11515       495487 :          ipack = ipack + 1
   11516       495487 :          packed_data(ipack) = pack_tmp
   11517       495487 :          data_tmp = full_data(idata)
   11518       495487 :          pack_tmp = ISHFT(data_tmp, 63)
   11519       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11520       495487 :          idata = idata + 1
   11521       495487 :          data_tmp = full_data(idata)
   11522       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11523       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11524       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11525       495487 :          idata = idata + 1
   11526       495487 :          data_tmp = full_data(idata)
   11527       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11528       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11529       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11530       495487 :          idata = idata + 1
   11531       495487 :          data_tmp = full_data(idata)
   11532       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11533       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11534       495487 :          pack_tmp = ISHFT(pack_tmp, -12)
   11535       495487 :          idata = idata + 1
   11536       495487 :          data_tmp = full_data(idata)
   11537       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11538       495487 :          data_tmp = IAND(data_tmp, mask_left(12))
   11539       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11540       495487 :          ipack = ipack + 1
   11541       495487 :          packed_data(ipack) = pack_tmp
   11542       495487 :          data_tmp = full_data(idata)
   11543       495487 :          pack_tmp = ISHFT(data_tmp, 59)
   11544       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11545       495487 :          idata = idata + 1
   11546       495487 :          data_tmp = full_data(idata)
   11547       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11548       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11549       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11550       495487 :          idata = idata + 1
   11551       495487 :          data_tmp = full_data(idata)
   11552       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11553       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11554       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11555       495487 :          idata = idata + 1
   11556       495487 :          data_tmp = full_data(idata)
   11557       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11558       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11559       495487 :          pack_tmp = ISHFT(pack_tmp, -8)
   11560       495487 :          idata = idata + 1
   11561       495487 :          data_tmp = full_data(idata)
   11562       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11563       495487 :          data_tmp = IAND(data_tmp, mask_left(8))
   11564       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11565       495487 :          ipack = ipack + 1
   11566       495487 :          packed_data(ipack) = pack_tmp
   11567       495487 :          data_tmp = full_data(idata)
   11568       495487 :          pack_tmp = ISHFT(data_tmp, 55)
   11569       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11570       495487 :          idata = idata + 1
   11571       495487 :          data_tmp = full_data(idata)
   11572       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11573       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11574       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11575       495487 :          idata = idata + 1
   11576       495487 :          data_tmp = full_data(idata)
   11577       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11578       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11579       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11580       495487 :          idata = idata + 1
   11581       495487 :          data_tmp = full_data(idata)
   11582       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11583       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11584       495487 :          pack_tmp = ISHFT(pack_tmp, -4)
   11585       495487 :          idata = idata + 1
   11586       495487 :          data_tmp = full_data(idata)
   11587       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11588       495487 :          data_tmp = IAND(data_tmp, mask_left(4))
   11589       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11590       495487 :          ipack = ipack + 1
   11591       495487 :          packed_data(ipack) = pack_tmp
   11592       495487 :          data_tmp = full_data(idata)
   11593       495487 :          pack_tmp = ISHFT(data_tmp, 51)
   11594       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11595       495487 :          idata = idata + 1
   11596       495487 :          data_tmp = full_data(idata)
   11597       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11598       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11599       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11600       495487 :          idata = idata + 1
   11601       495487 :          data_tmp = full_data(idata)
   11602       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11603       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11604       495487 :          pack_tmp = ISHFT(pack_tmp, -17)
   11605       495487 :          idata = idata + 1
   11606       495487 :          data_tmp = full_data(idata)
   11607       495487 :          data_tmp = ISHFT(data_tmp, 47)
   11608       495487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11609              :          pack_tmp = ISHFT(pack_tmp, 0)
   11610       495487 :          pack_tmp = ISHFT(pack_tmp, 0)
   11611       495487 :          ipack = ipack + 1
   11612       495629 :          packed_data(ipack) = pack_tmp
   11613              :       END DO
   11614        32724 :       IF (Ndata_rep < Ndata) THEN
   11615         3202 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   11616              :       END IF
   11617        32724 :    END SUBROUTINE ints2bits_17
   11618              : 
   11619              : ! **************************************************************************************************
   11620              : !> \brief ...
   11621              : !> \param Ndata ...
   11622              : !> \param packed_data ...
   11623              : !> \param full_data ...
   11624              : ! **************************************************************************************************
   11625       167645 :    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       167645 :       ipack = 0
   11636       167645 :       idata = 0
   11637       167645 :       pack_tmp = 0
   11638       167645 :       Ndata_rep = (Ndata/64)*64
   11639       167645 :       DO kdata = 1, Ndata_rep, 64
   11640      2452587 :          idata = idata + 1
   11641      2452587 :          data_tmp = ISHFT(pack_tmp, 17)
   11642      2452587 :          ipack = ipack + 1
   11643      2452587 :          pack_tmp = packed_data(ipack)
   11644      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   11645      2452587 :          pack_tmp = ISHFT(pack_tmp, -17)
   11646      2452587 :          idata = idata + 1
   11647      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11648      2452587 :          full_data(idata) = data_tmp
   11649      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11650      2452587 :          idata = idata + 1
   11651      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11652      2452587 :          full_data(idata) = data_tmp
   11653      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11654      2452587 :          idata = idata + 1
   11655      2452587 :          data_tmp = ISHFT(pack_tmp, 4)
   11656      2452587 :          ipack = ipack + 1
   11657      2452587 :          pack_tmp = packed_data(ipack)
   11658      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   11659      2452587 :          pack_tmp = ISHFT(pack_tmp, -4)
   11660      2452587 :          idata = idata + 1
   11661      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11662      2452587 :          full_data(idata) = data_tmp
   11663      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11664      2452587 :          idata = idata + 1
   11665      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11666      2452587 :          full_data(idata) = data_tmp
   11667      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11668      2452587 :          idata = idata + 1
   11669      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11670      2452587 :          full_data(idata) = data_tmp
   11671      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11672      2452587 :          idata = idata + 1
   11673      2452587 :          data_tmp = ISHFT(pack_tmp, 8)
   11674      2452587 :          ipack = ipack + 1
   11675      2452587 :          pack_tmp = packed_data(ipack)
   11676      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   11677      2452587 :          pack_tmp = ISHFT(pack_tmp, -8)
   11678      2452587 :          idata = idata + 1
   11679      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11680      2452587 :          full_data(idata) = data_tmp
   11681      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11682      2452587 :          idata = idata + 1
   11683      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11684      2452587 :          full_data(idata) = data_tmp
   11685      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11686      2452587 :          idata = idata + 1
   11687      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11688      2452587 :          full_data(idata) = data_tmp
   11689      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11690      2452587 :          idata = idata + 1
   11691      2452587 :          data_tmp = ISHFT(pack_tmp, 12)
   11692      2452587 :          ipack = ipack + 1
   11693      2452587 :          pack_tmp = packed_data(ipack)
   11694      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   11695      2452587 :          pack_tmp = ISHFT(pack_tmp, -12)
   11696      2452587 :          idata = idata + 1
   11697      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11698      2452587 :          full_data(idata) = data_tmp
   11699      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11700      2452587 :          idata = idata + 1
   11701      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11702      2452587 :          full_data(idata) = data_tmp
   11703      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11704      2452587 :          idata = idata + 1
   11705      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11706      2452587 :          full_data(idata) = data_tmp
   11707      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11708      2452587 :          idata = idata + 1
   11709      2452587 :          data_tmp = ISHFT(pack_tmp, 16)
   11710      2452587 :          ipack = ipack + 1
   11711      2452587 :          pack_tmp = packed_data(ipack)
   11712      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   11713      2452587 :          pack_tmp = ISHFT(pack_tmp, -16)
   11714      2452587 :          idata = idata + 1
   11715      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11716      2452587 :          full_data(idata) = data_tmp
   11717      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11718      2452587 :          idata = idata + 1
   11719      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11720      2452587 :          full_data(idata) = data_tmp
   11721      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11722      2452587 :          idata = idata + 1
   11723      2452587 :          data_tmp = ISHFT(pack_tmp, 3)
   11724      2452587 :          ipack = ipack + 1
   11725      2452587 :          pack_tmp = packed_data(ipack)
   11726      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   11727      2452587 :          pack_tmp = ISHFT(pack_tmp, -3)
   11728      2452587 :          idata = idata + 1
   11729      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11730      2452587 :          full_data(idata) = data_tmp
   11731      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11732      2452587 :          idata = idata + 1
   11733      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11734      2452587 :          full_data(idata) = data_tmp
   11735      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11736      2452587 :          idata = idata + 1
   11737      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11738      2452587 :          full_data(idata) = data_tmp
   11739      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11740      2452587 :          idata = idata + 1
   11741      2452587 :          data_tmp = ISHFT(pack_tmp, 7)
   11742      2452587 :          ipack = ipack + 1
   11743      2452587 :          pack_tmp = packed_data(ipack)
   11744      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   11745      2452587 :          pack_tmp = ISHFT(pack_tmp, -7)
   11746      2452587 :          idata = idata + 1
   11747      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11748      2452587 :          full_data(idata) = data_tmp
   11749      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11750      2452587 :          idata = idata + 1
   11751      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11752      2452587 :          full_data(idata) = data_tmp
   11753      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11754      2452587 :          idata = idata + 1
   11755      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11756      2452587 :          full_data(idata) = data_tmp
   11757      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11758      2452587 :          idata = idata + 1
   11759      2452587 :          data_tmp = ISHFT(pack_tmp, 11)
   11760      2452587 :          ipack = ipack + 1
   11761      2452587 :          pack_tmp = packed_data(ipack)
   11762      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   11763      2452587 :          pack_tmp = ISHFT(pack_tmp, -11)
   11764      2452587 :          idata = idata + 1
   11765      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11766      2452587 :          full_data(idata) = data_tmp
   11767      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11768      2452587 :          idata = idata + 1
   11769      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11770      2452587 :          full_data(idata) = data_tmp
   11771      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11772      2452587 :          idata = idata + 1
   11773      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11774      2452587 :          full_data(idata) = data_tmp
   11775      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11776      2452587 :          idata = idata + 1
   11777      2452587 :          data_tmp = ISHFT(pack_tmp, 15)
   11778      2452587 :          ipack = ipack + 1
   11779      2452587 :          pack_tmp = packed_data(ipack)
   11780      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   11781      2452587 :          pack_tmp = ISHFT(pack_tmp, -15)
   11782      2452587 :          idata = idata + 1
   11783      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11784      2452587 :          full_data(idata) = data_tmp
   11785      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11786      2452587 :          idata = idata + 1
   11787      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11788      2452587 :          full_data(idata) = data_tmp
   11789      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11790      2452587 :          idata = idata + 1
   11791      2452587 :          data_tmp = ISHFT(pack_tmp, 2)
   11792      2452587 :          ipack = ipack + 1
   11793      2452587 :          pack_tmp = packed_data(ipack)
   11794      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   11795      2452587 :          pack_tmp = ISHFT(pack_tmp, -2)
   11796      2452587 :          idata = idata + 1
   11797      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11798      2452587 :          full_data(idata) = data_tmp
   11799      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11800      2452587 :          idata = idata + 1
   11801      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11802      2452587 :          full_data(idata) = data_tmp
   11803      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11804      2452587 :          idata = idata + 1
   11805      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11806      2452587 :          full_data(idata) = data_tmp
   11807      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11808      2452587 :          idata = idata + 1
   11809      2452587 :          data_tmp = ISHFT(pack_tmp, 6)
   11810      2452587 :          ipack = ipack + 1
   11811      2452587 :          pack_tmp = packed_data(ipack)
   11812      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   11813      2452587 :          pack_tmp = ISHFT(pack_tmp, -6)
   11814      2452587 :          idata = idata + 1
   11815      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11816      2452587 :          full_data(idata) = data_tmp
   11817      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11818      2452587 :          idata = idata + 1
   11819      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11820      2452587 :          full_data(idata) = data_tmp
   11821      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11822      2452587 :          idata = idata + 1
   11823      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11824      2452587 :          full_data(idata) = data_tmp
   11825      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11826      2452587 :          idata = idata + 1
   11827      2452587 :          data_tmp = ISHFT(pack_tmp, 10)
   11828      2452587 :          ipack = ipack + 1
   11829      2452587 :          pack_tmp = packed_data(ipack)
   11830      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   11831      2452587 :          pack_tmp = ISHFT(pack_tmp, -10)
   11832      2452587 :          idata = idata + 1
   11833      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11834      2452587 :          full_data(idata) = data_tmp
   11835      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11836      2452587 :          idata = idata + 1
   11837      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11838      2452587 :          full_data(idata) = data_tmp
   11839      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11840      2452587 :          idata = idata + 1
   11841      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11842      2452587 :          full_data(idata) = data_tmp
   11843      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11844      2452587 :          idata = idata + 1
   11845      2452587 :          data_tmp = ISHFT(pack_tmp, 14)
   11846      2452587 :          ipack = ipack + 1
   11847      2452587 :          pack_tmp = packed_data(ipack)
   11848      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   11849      2452587 :          pack_tmp = ISHFT(pack_tmp, -14)
   11850      2452587 :          idata = idata + 1
   11851      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11852      2452587 :          full_data(idata) = data_tmp
   11853      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11854      2452587 :          idata = idata + 1
   11855      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11856      2452587 :          full_data(idata) = data_tmp
   11857      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11858      2452587 :          idata = idata + 1
   11859      2452587 :          data_tmp = ISHFT(pack_tmp, 1)
   11860      2452587 :          ipack = ipack + 1
   11861      2452587 :          pack_tmp = packed_data(ipack)
   11862      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   11863      2452587 :          pack_tmp = ISHFT(pack_tmp, -1)
   11864      2452587 :          idata = idata + 1
   11865      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11866      2452587 :          full_data(idata) = data_tmp
   11867      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11868      2452587 :          idata = idata + 1
   11869      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11870      2452587 :          full_data(idata) = data_tmp
   11871      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11872      2452587 :          idata = idata + 1
   11873      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11874      2452587 :          full_data(idata) = data_tmp
   11875      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11876      2452587 :          idata = idata + 1
   11877      2452587 :          data_tmp = ISHFT(pack_tmp, 5)
   11878      2452587 :          ipack = ipack + 1
   11879      2452587 :          pack_tmp = packed_data(ipack)
   11880      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   11881      2452587 :          pack_tmp = ISHFT(pack_tmp, -5)
   11882      2452587 :          idata = idata + 1
   11883      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11884      2452587 :          full_data(idata) = data_tmp
   11885      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11886      2452587 :          idata = idata + 1
   11887      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11888      2452587 :          full_data(idata) = data_tmp
   11889      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11890      2452587 :          idata = idata + 1
   11891      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11892      2452587 :          full_data(idata) = data_tmp
   11893      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11894      2452587 :          idata = idata + 1
   11895      2452587 :          data_tmp = ISHFT(pack_tmp, 9)
   11896      2452587 :          ipack = ipack + 1
   11897      2452587 :          pack_tmp = packed_data(ipack)
   11898      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   11899      2452587 :          pack_tmp = ISHFT(pack_tmp, -9)
   11900      2452587 :          idata = idata + 1
   11901      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11902      2452587 :          full_data(idata) = data_tmp
   11903      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11904      2452587 :          idata = idata + 1
   11905      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11906      2452587 :          full_data(idata) = data_tmp
   11907      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11908      2452587 :          idata = idata + 1
   11909      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11910      2452587 :          full_data(idata) = data_tmp
   11911      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11912      2452587 :          idata = idata + 1
   11913      2452587 :          data_tmp = ISHFT(pack_tmp, 13)
   11914      2452587 :          ipack = ipack + 1
   11915      2452587 :          pack_tmp = packed_data(ipack)
   11916      2452587 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   11917      2452587 :          pack_tmp = ISHFT(pack_tmp, -13)
   11918      2452587 :          idata = idata + 1
   11919      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11920      2452587 :          full_data(idata) = data_tmp
   11921      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11922      2452587 :          idata = idata + 1
   11923      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11924      2452587 :          full_data(idata) = data_tmp
   11925      2452587 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11926      2452587 :          idata = idata + 1
   11927      2452587 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   11928      2452587 :          full_data(idata) = data_tmp
   11929      2453607 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   11930              :       END DO
   11931       167645 :       IF (Ndata_rep < Ndata) THEN
   11932        26218 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   11933              :       END IF
   11934       167645 :    END SUBROUTINE bits2ints_17
   11935              : 
   11936              : ! **************************************************************************************************
   11937              : !> \brief ...
   11938              : !> \param Ndata ...
   11939              : !> \param packed_data ...
   11940              : !> \param full_data ...
   11941              : ! **************************************************************************************************
   11942        33667 :    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        33667 :       idata = 0
   11953        33667 :       ipack = 0
   11954        33667 :       Ndata_rep = (Ndata/64)*64
   11955        33667 :       DO kdata = 1, Ndata_rep, 64
   11956       504808 :          pack_tmp = 0
   11957       504808 :          idata = idata + 1
   11958       504808 :          data_tmp = full_data(idata)
   11959       504808 :          data_tmp = ISHFT(data_tmp, 46)
   11960       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11961       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   11962       504808 :          idata = idata + 1
   11963       504808 :          data_tmp = full_data(idata)
   11964       504808 :          data_tmp = ISHFT(data_tmp, 46)
   11965       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11966       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   11967       504808 :          idata = idata + 1
   11968       504808 :          data_tmp = full_data(idata)
   11969       504808 :          data_tmp = ISHFT(data_tmp, 46)
   11970       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11971       504808 :          pack_tmp = ISHFT(pack_tmp, -10)
   11972       504808 :          idata = idata + 1
   11973       504808 :          data_tmp = full_data(idata)
   11974       504808 :          data_tmp = ISHFT(data_tmp, 46)
   11975       504808 :          data_tmp = IAND(data_tmp, mask_left(10))
   11976       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11977       504808 :          ipack = ipack + 1
   11978       504808 :          packed_data(ipack) = pack_tmp
   11979       504808 :          data_tmp = full_data(idata)
   11980       504808 :          pack_tmp = ISHFT(data_tmp, 56)
   11981       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   11982       504808 :          idata = idata + 1
   11983       504808 :          data_tmp = full_data(idata)
   11984       504808 :          data_tmp = ISHFT(data_tmp, 46)
   11985       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11986       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   11987       504808 :          idata = idata + 1
   11988       504808 :          data_tmp = full_data(idata)
   11989       504808 :          data_tmp = ISHFT(data_tmp, 46)
   11990       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11991       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   11992       504808 :          idata = idata + 1
   11993       504808 :          data_tmp = full_data(idata)
   11994       504808 :          data_tmp = ISHFT(data_tmp, 46)
   11995       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   11996       504808 :          pack_tmp = ISHFT(pack_tmp, -2)
   11997       504808 :          idata = idata + 1
   11998       504808 :          data_tmp = full_data(idata)
   11999       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12000       504808 :          data_tmp = IAND(data_tmp, mask_left(2))
   12001       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12002       504808 :          ipack = ipack + 1
   12003       504808 :          packed_data(ipack) = pack_tmp
   12004       504808 :          data_tmp = full_data(idata)
   12005       504808 :          pack_tmp = ISHFT(data_tmp, 48)
   12006       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12007       504808 :          idata = idata + 1
   12008       504808 :          data_tmp = full_data(idata)
   12009       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12010       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12011       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12012       504808 :          idata = idata + 1
   12013       504808 :          data_tmp = full_data(idata)
   12014       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12015       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12016       504808 :          pack_tmp = ISHFT(pack_tmp, -12)
   12017       504808 :          idata = idata + 1
   12018       504808 :          data_tmp = full_data(idata)
   12019       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12020       504808 :          data_tmp = IAND(data_tmp, mask_left(12))
   12021       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12022       504808 :          ipack = ipack + 1
   12023       504808 :          packed_data(ipack) = pack_tmp
   12024       504808 :          data_tmp = full_data(idata)
   12025       504808 :          pack_tmp = ISHFT(data_tmp, 58)
   12026       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12027       504808 :          idata = idata + 1
   12028       504808 :          data_tmp = full_data(idata)
   12029       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12030       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12031       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12032       504808 :          idata = idata + 1
   12033       504808 :          data_tmp = full_data(idata)
   12034       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12035       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12036       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12037       504808 :          idata = idata + 1
   12038       504808 :          data_tmp = full_data(idata)
   12039       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12040       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12041       504808 :          pack_tmp = ISHFT(pack_tmp, -4)
   12042       504808 :          idata = idata + 1
   12043       504808 :          data_tmp = full_data(idata)
   12044       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12045       504808 :          data_tmp = IAND(data_tmp, mask_left(4))
   12046       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12047       504808 :          ipack = ipack + 1
   12048       504808 :          packed_data(ipack) = pack_tmp
   12049       504808 :          data_tmp = full_data(idata)
   12050       504808 :          pack_tmp = ISHFT(data_tmp, 50)
   12051       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12052       504808 :          idata = idata + 1
   12053       504808 :          data_tmp = full_data(idata)
   12054       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12055       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12056       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12057       504808 :          idata = idata + 1
   12058       504808 :          data_tmp = full_data(idata)
   12059       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12060       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12061       504808 :          pack_tmp = ISHFT(pack_tmp, -14)
   12062       504808 :          idata = idata + 1
   12063       504808 :          data_tmp = full_data(idata)
   12064       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12065       504808 :          data_tmp = IAND(data_tmp, mask_left(14))
   12066       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12067       504808 :          ipack = ipack + 1
   12068       504808 :          packed_data(ipack) = pack_tmp
   12069       504808 :          data_tmp = full_data(idata)
   12070       504808 :          pack_tmp = ISHFT(data_tmp, 60)
   12071       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12072       504808 :          idata = idata + 1
   12073       504808 :          data_tmp = full_data(idata)
   12074       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12075       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12076       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12077       504808 :          idata = idata + 1
   12078       504808 :          data_tmp = full_data(idata)
   12079       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12080       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12081       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12082       504808 :          idata = idata + 1
   12083       504808 :          data_tmp = full_data(idata)
   12084       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12085       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12086       504808 :          pack_tmp = ISHFT(pack_tmp, -6)
   12087       504808 :          idata = idata + 1
   12088       504808 :          data_tmp = full_data(idata)
   12089       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12090       504808 :          data_tmp = IAND(data_tmp, mask_left(6))
   12091       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12092       504808 :          ipack = ipack + 1
   12093       504808 :          packed_data(ipack) = pack_tmp
   12094       504808 :          data_tmp = full_data(idata)
   12095       504808 :          pack_tmp = ISHFT(data_tmp, 52)
   12096       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12097       504808 :          idata = idata + 1
   12098       504808 :          data_tmp = full_data(idata)
   12099       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12100       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12101       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12102       504808 :          idata = idata + 1
   12103       504808 :          data_tmp = full_data(idata)
   12104       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12105       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12106       504808 :          pack_tmp = ISHFT(pack_tmp, -16)
   12107       504808 :          idata = idata + 1
   12108       504808 :          data_tmp = full_data(idata)
   12109       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12110       504808 :          data_tmp = IAND(data_tmp, mask_left(16))
   12111       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12112       504808 :          ipack = ipack + 1
   12113       504808 :          packed_data(ipack) = pack_tmp
   12114       504808 :          data_tmp = full_data(idata)
   12115       504808 :          pack_tmp = ISHFT(data_tmp, 62)
   12116       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12117       504808 :          idata = idata + 1
   12118       504808 :          data_tmp = full_data(idata)
   12119       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12120       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12121       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12122       504808 :          idata = idata + 1
   12123       504808 :          data_tmp = full_data(idata)
   12124       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12125       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12126       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12127       504808 :          idata = idata + 1
   12128       504808 :          data_tmp = full_data(idata)
   12129       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12130       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12131       504808 :          pack_tmp = ISHFT(pack_tmp, -8)
   12132       504808 :          idata = idata + 1
   12133       504808 :          data_tmp = full_data(idata)
   12134       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12135       504808 :          data_tmp = IAND(data_tmp, mask_left(8))
   12136       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12137       504808 :          ipack = ipack + 1
   12138       504808 :          packed_data(ipack) = pack_tmp
   12139       504808 :          data_tmp = full_data(idata)
   12140       504808 :          pack_tmp = ISHFT(data_tmp, 54)
   12141       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12142       504808 :          idata = idata + 1
   12143       504808 :          data_tmp = full_data(idata)
   12144       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12145       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12146       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12147       504808 :          idata = idata + 1
   12148       504808 :          data_tmp = full_data(idata)
   12149       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12150       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12151       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12152       504808 :          idata = idata + 1
   12153       504808 :          data_tmp = full_data(idata)
   12154       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12155       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12156       504808 :          pack_tmp = ISHFT(pack_tmp, 0)
   12157       504808 :          idata = idata + 1
   12158       504808 :          data_tmp = full_data(idata)
   12159              :          data_tmp = ISHFT(data_tmp, 46)
   12160       504808 :          data_tmp = IAND(data_tmp, mask_left(0))
   12161       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12162       504808 :          ipack = ipack + 1
   12163       504808 :          packed_data(ipack) = pack_tmp
   12164       504808 :          data_tmp = full_data(idata)
   12165       504808 :          pack_tmp = ISHFT(data_tmp, 46)
   12166       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12167       504808 :          idata = idata + 1
   12168       504808 :          data_tmp = full_data(idata)
   12169       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12170       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12171       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12172       504808 :          idata = idata + 1
   12173       504808 :          data_tmp = full_data(idata)
   12174       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12175       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12176       504808 :          pack_tmp = ISHFT(pack_tmp, -10)
   12177       504808 :          idata = idata + 1
   12178       504808 :          data_tmp = full_data(idata)
   12179       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12180       504808 :          data_tmp = IAND(data_tmp, mask_left(10))
   12181       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12182       504808 :          ipack = ipack + 1
   12183       504808 :          packed_data(ipack) = pack_tmp
   12184       504808 :          data_tmp = full_data(idata)
   12185       504808 :          pack_tmp = ISHFT(data_tmp, 56)
   12186       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12187       504808 :          idata = idata + 1
   12188       504808 :          data_tmp = full_data(idata)
   12189       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12190       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12191       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12192       504808 :          idata = idata + 1
   12193       504808 :          data_tmp = full_data(idata)
   12194       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12195       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12196       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12197       504808 :          idata = idata + 1
   12198       504808 :          data_tmp = full_data(idata)
   12199       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12200       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12201       504808 :          pack_tmp = ISHFT(pack_tmp, -2)
   12202       504808 :          idata = idata + 1
   12203       504808 :          data_tmp = full_data(idata)
   12204       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12205       504808 :          data_tmp = IAND(data_tmp, mask_left(2))
   12206       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12207       504808 :          ipack = ipack + 1
   12208       504808 :          packed_data(ipack) = pack_tmp
   12209       504808 :          data_tmp = full_data(idata)
   12210       504808 :          pack_tmp = ISHFT(data_tmp, 48)
   12211       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12212       504808 :          idata = idata + 1
   12213       504808 :          data_tmp = full_data(idata)
   12214       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12215       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12216       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12217       504808 :          idata = idata + 1
   12218       504808 :          data_tmp = full_data(idata)
   12219       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12220       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12221       504808 :          pack_tmp = ISHFT(pack_tmp, -12)
   12222       504808 :          idata = idata + 1
   12223       504808 :          data_tmp = full_data(idata)
   12224       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12225       504808 :          data_tmp = IAND(data_tmp, mask_left(12))
   12226       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12227       504808 :          ipack = ipack + 1
   12228       504808 :          packed_data(ipack) = pack_tmp
   12229       504808 :          data_tmp = full_data(idata)
   12230       504808 :          pack_tmp = ISHFT(data_tmp, 58)
   12231       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12232       504808 :          idata = idata + 1
   12233       504808 :          data_tmp = full_data(idata)
   12234       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12235       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12236       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12237       504808 :          idata = idata + 1
   12238       504808 :          data_tmp = full_data(idata)
   12239       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12240       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12241       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12242       504808 :          idata = idata + 1
   12243       504808 :          data_tmp = full_data(idata)
   12244       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12245       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12246       504808 :          pack_tmp = ISHFT(pack_tmp, -4)
   12247       504808 :          idata = idata + 1
   12248       504808 :          data_tmp = full_data(idata)
   12249       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12250       504808 :          data_tmp = IAND(data_tmp, mask_left(4))
   12251       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12252       504808 :          ipack = ipack + 1
   12253       504808 :          packed_data(ipack) = pack_tmp
   12254       504808 :          data_tmp = full_data(idata)
   12255       504808 :          pack_tmp = ISHFT(data_tmp, 50)
   12256       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12257       504808 :          idata = idata + 1
   12258       504808 :          data_tmp = full_data(idata)
   12259       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12260       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12261       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12262       504808 :          idata = idata + 1
   12263       504808 :          data_tmp = full_data(idata)
   12264       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12265       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12266       504808 :          pack_tmp = ISHFT(pack_tmp, -14)
   12267       504808 :          idata = idata + 1
   12268       504808 :          data_tmp = full_data(idata)
   12269       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12270       504808 :          data_tmp = IAND(data_tmp, mask_left(14))
   12271       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12272       504808 :          ipack = ipack + 1
   12273       504808 :          packed_data(ipack) = pack_tmp
   12274       504808 :          data_tmp = full_data(idata)
   12275       504808 :          pack_tmp = ISHFT(data_tmp, 60)
   12276       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12277       504808 :          idata = idata + 1
   12278       504808 :          data_tmp = full_data(idata)
   12279       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12280       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12281       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12282       504808 :          idata = idata + 1
   12283       504808 :          data_tmp = full_data(idata)
   12284       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12285       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12286       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12287       504808 :          idata = idata + 1
   12288       504808 :          data_tmp = full_data(idata)
   12289       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12290       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12291       504808 :          pack_tmp = ISHFT(pack_tmp, -6)
   12292       504808 :          idata = idata + 1
   12293       504808 :          data_tmp = full_data(idata)
   12294       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12295       504808 :          data_tmp = IAND(data_tmp, mask_left(6))
   12296       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12297       504808 :          ipack = ipack + 1
   12298       504808 :          packed_data(ipack) = pack_tmp
   12299       504808 :          data_tmp = full_data(idata)
   12300       504808 :          pack_tmp = ISHFT(data_tmp, 52)
   12301       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12302       504808 :          idata = idata + 1
   12303       504808 :          data_tmp = full_data(idata)
   12304       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12305       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12306       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12307       504808 :          idata = idata + 1
   12308       504808 :          data_tmp = full_data(idata)
   12309       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12310       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12311       504808 :          pack_tmp = ISHFT(pack_tmp, -16)
   12312       504808 :          idata = idata + 1
   12313       504808 :          data_tmp = full_data(idata)
   12314       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12315       504808 :          data_tmp = IAND(data_tmp, mask_left(16))
   12316       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12317       504808 :          ipack = ipack + 1
   12318       504808 :          packed_data(ipack) = pack_tmp
   12319       504808 :          data_tmp = full_data(idata)
   12320       504808 :          pack_tmp = ISHFT(data_tmp, 62)
   12321       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12322       504808 :          idata = idata + 1
   12323       504808 :          data_tmp = full_data(idata)
   12324       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12325       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12326       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12327       504808 :          idata = idata + 1
   12328       504808 :          data_tmp = full_data(idata)
   12329       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12330       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12331       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12332       504808 :          idata = idata + 1
   12333       504808 :          data_tmp = full_data(idata)
   12334       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12335       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12336       504808 :          pack_tmp = ISHFT(pack_tmp, -8)
   12337       504808 :          idata = idata + 1
   12338       504808 :          data_tmp = full_data(idata)
   12339       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12340       504808 :          data_tmp = IAND(data_tmp, mask_left(8))
   12341       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12342       504808 :          ipack = ipack + 1
   12343       504808 :          packed_data(ipack) = pack_tmp
   12344       504808 :          data_tmp = full_data(idata)
   12345       504808 :          pack_tmp = ISHFT(data_tmp, 54)
   12346       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12347       504808 :          idata = idata + 1
   12348       504808 :          data_tmp = full_data(idata)
   12349       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12350       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12351       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12352       504808 :          idata = idata + 1
   12353       504808 :          data_tmp = full_data(idata)
   12354       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12355       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12356       504808 :          pack_tmp = ISHFT(pack_tmp, -18)
   12357       504808 :          idata = idata + 1
   12358       504808 :          data_tmp = full_data(idata)
   12359       504808 :          data_tmp = ISHFT(data_tmp, 46)
   12360       504808 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12361              :          pack_tmp = ISHFT(pack_tmp, 0)
   12362       504808 :          pack_tmp = ISHFT(pack_tmp, 0)
   12363       504808 :          ipack = ipack + 1
   12364       504904 :          packed_data(ipack) = pack_tmp
   12365              :       END DO
   12366        33667 :       IF (Ndata_rep < Ndata) THEN
   12367         3984 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   12368              :       END IF
   12369        33667 :    END SUBROUTINE ints2bits_18
   12370              : 
   12371              : ! **************************************************************************************************
   12372              : !> \brief ...
   12373              : !> \param Ndata ...
   12374              : !> \param packed_data ...
   12375              : !> \param full_data ...
   12376              : ! **************************************************************************************************
   12377       175285 :    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       175285 :       ipack = 0
   12388       175285 :       idata = 0
   12389       175285 :       pack_tmp = 0
   12390       175285 :       Ndata_rep = (Ndata/64)*64
   12391       175285 :       DO kdata = 1, Ndata_rep, 64
   12392      2526457 :          idata = idata + 1
   12393      2526457 :          data_tmp = ISHFT(pack_tmp, 18)
   12394      2526457 :          ipack = ipack + 1
   12395      2526457 :          pack_tmp = packed_data(ipack)
   12396      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   12397      2526457 :          pack_tmp = ISHFT(pack_tmp, -18)
   12398      2526457 :          idata = idata + 1
   12399      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12400      2526457 :          full_data(idata) = data_tmp
   12401      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12402      2526457 :          idata = idata + 1
   12403      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12404      2526457 :          full_data(idata) = data_tmp
   12405      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12406      2526457 :          idata = idata + 1
   12407      2526457 :          data_tmp = ISHFT(pack_tmp, 8)
   12408      2526457 :          ipack = ipack + 1
   12409      2526457 :          pack_tmp = packed_data(ipack)
   12410      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   12411      2526457 :          pack_tmp = ISHFT(pack_tmp, -8)
   12412      2526457 :          idata = idata + 1
   12413      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12414      2526457 :          full_data(idata) = data_tmp
   12415      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12416      2526457 :          idata = idata + 1
   12417      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12418      2526457 :          full_data(idata) = data_tmp
   12419      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12420      2526457 :          idata = idata + 1
   12421      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12422      2526457 :          full_data(idata) = data_tmp
   12423      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12424      2526457 :          idata = idata + 1
   12425      2526457 :          data_tmp = ISHFT(pack_tmp, 16)
   12426      2526457 :          ipack = ipack + 1
   12427      2526457 :          pack_tmp = packed_data(ipack)
   12428      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   12429      2526457 :          pack_tmp = ISHFT(pack_tmp, -16)
   12430      2526457 :          idata = idata + 1
   12431      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12432      2526457 :          full_data(idata) = data_tmp
   12433      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12434      2526457 :          idata = idata + 1
   12435      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12436      2526457 :          full_data(idata) = data_tmp
   12437      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12438      2526457 :          idata = idata + 1
   12439      2526457 :          data_tmp = ISHFT(pack_tmp, 6)
   12440      2526457 :          ipack = ipack + 1
   12441      2526457 :          pack_tmp = packed_data(ipack)
   12442      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   12443      2526457 :          pack_tmp = ISHFT(pack_tmp, -6)
   12444      2526457 :          idata = idata + 1
   12445      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12446      2526457 :          full_data(idata) = data_tmp
   12447      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12448      2526457 :          idata = idata + 1
   12449      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12450      2526457 :          full_data(idata) = data_tmp
   12451      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12452      2526457 :          idata = idata + 1
   12453      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12454      2526457 :          full_data(idata) = data_tmp
   12455      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12456      2526457 :          idata = idata + 1
   12457      2526457 :          data_tmp = ISHFT(pack_tmp, 14)
   12458      2526457 :          ipack = ipack + 1
   12459      2526457 :          pack_tmp = packed_data(ipack)
   12460      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   12461      2526457 :          pack_tmp = ISHFT(pack_tmp, -14)
   12462      2526457 :          idata = idata + 1
   12463      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12464      2526457 :          full_data(idata) = data_tmp
   12465      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12466      2526457 :          idata = idata + 1
   12467      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12468      2526457 :          full_data(idata) = data_tmp
   12469      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12470      2526457 :          idata = idata + 1
   12471      2526457 :          data_tmp = ISHFT(pack_tmp, 4)
   12472      2526457 :          ipack = ipack + 1
   12473      2526457 :          pack_tmp = packed_data(ipack)
   12474      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   12475      2526457 :          pack_tmp = ISHFT(pack_tmp, -4)
   12476      2526457 :          idata = idata + 1
   12477      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12478      2526457 :          full_data(idata) = data_tmp
   12479      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12480      2526457 :          idata = idata + 1
   12481      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12482      2526457 :          full_data(idata) = data_tmp
   12483      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12484      2526457 :          idata = idata + 1
   12485      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12486      2526457 :          full_data(idata) = data_tmp
   12487      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12488      2526457 :          idata = idata + 1
   12489      2526457 :          data_tmp = ISHFT(pack_tmp, 12)
   12490      2526457 :          ipack = ipack + 1
   12491      2526457 :          pack_tmp = packed_data(ipack)
   12492      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   12493      2526457 :          pack_tmp = ISHFT(pack_tmp, -12)
   12494      2526457 :          idata = idata + 1
   12495      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12496      2526457 :          full_data(idata) = data_tmp
   12497      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12498      2526457 :          idata = idata + 1
   12499      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12500      2526457 :          full_data(idata) = data_tmp
   12501      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12502      2526457 :          idata = idata + 1
   12503      2526457 :          data_tmp = ISHFT(pack_tmp, 2)
   12504      2526457 :          ipack = ipack + 1
   12505      2526457 :          pack_tmp = packed_data(ipack)
   12506      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   12507      2526457 :          pack_tmp = ISHFT(pack_tmp, -2)
   12508      2526457 :          idata = idata + 1
   12509      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12510      2526457 :          full_data(idata) = data_tmp
   12511      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12512      2526457 :          idata = idata + 1
   12513      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12514      2526457 :          full_data(idata) = data_tmp
   12515      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12516      2526457 :          idata = idata + 1
   12517      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12518      2526457 :          full_data(idata) = data_tmp
   12519      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12520      2526457 :          idata = idata + 1
   12521      2526457 :          data_tmp = ISHFT(pack_tmp, 10)
   12522      2526457 :          ipack = ipack + 1
   12523      2526457 :          pack_tmp = packed_data(ipack)
   12524      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   12525      2526457 :          pack_tmp = ISHFT(pack_tmp, -10)
   12526      2526457 :          idata = idata + 1
   12527      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12528      2526457 :          full_data(idata) = data_tmp
   12529      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12530      2526457 :          idata = idata + 1
   12531      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12532      2526457 :          full_data(idata) = data_tmp
   12533      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12534      2526457 :          idata = idata + 1
   12535      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12536      2526457 :          full_data(idata) = data_tmp
   12537      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12538      2526457 :          idata = idata + 1
   12539      2526457 :          data_tmp = ISHFT(pack_tmp, 18)
   12540      2526457 :          ipack = ipack + 1
   12541      2526457 :          pack_tmp = packed_data(ipack)
   12542      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   12543      2526457 :          pack_tmp = ISHFT(pack_tmp, -18)
   12544      2526457 :          idata = idata + 1
   12545      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12546      2526457 :          full_data(idata) = data_tmp
   12547      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12548      2526457 :          idata = idata + 1
   12549      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12550      2526457 :          full_data(idata) = data_tmp
   12551      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12552      2526457 :          idata = idata + 1
   12553      2526457 :          data_tmp = ISHFT(pack_tmp, 8)
   12554      2526457 :          ipack = ipack + 1
   12555      2526457 :          pack_tmp = packed_data(ipack)
   12556      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   12557      2526457 :          pack_tmp = ISHFT(pack_tmp, -8)
   12558      2526457 :          idata = idata + 1
   12559      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12560      2526457 :          full_data(idata) = data_tmp
   12561      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12562      2526457 :          idata = idata + 1
   12563      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12564      2526457 :          full_data(idata) = data_tmp
   12565      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12566      2526457 :          idata = idata + 1
   12567      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12568      2526457 :          full_data(idata) = data_tmp
   12569      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12570      2526457 :          idata = idata + 1
   12571      2526457 :          data_tmp = ISHFT(pack_tmp, 16)
   12572      2526457 :          ipack = ipack + 1
   12573      2526457 :          pack_tmp = packed_data(ipack)
   12574      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   12575      2526457 :          pack_tmp = ISHFT(pack_tmp, -16)
   12576      2526457 :          idata = idata + 1
   12577      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12578      2526457 :          full_data(idata) = data_tmp
   12579      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12580      2526457 :          idata = idata + 1
   12581      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12582      2526457 :          full_data(idata) = data_tmp
   12583      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12584      2526457 :          idata = idata + 1
   12585      2526457 :          data_tmp = ISHFT(pack_tmp, 6)
   12586      2526457 :          ipack = ipack + 1
   12587      2526457 :          pack_tmp = packed_data(ipack)
   12588      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   12589      2526457 :          pack_tmp = ISHFT(pack_tmp, -6)
   12590      2526457 :          idata = idata + 1
   12591      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12592      2526457 :          full_data(idata) = data_tmp
   12593      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12594      2526457 :          idata = idata + 1
   12595      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12596      2526457 :          full_data(idata) = data_tmp
   12597      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12598      2526457 :          idata = idata + 1
   12599      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12600      2526457 :          full_data(idata) = data_tmp
   12601      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12602      2526457 :          idata = idata + 1
   12603      2526457 :          data_tmp = ISHFT(pack_tmp, 14)
   12604      2526457 :          ipack = ipack + 1
   12605      2526457 :          pack_tmp = packed_data(ipack)
   12606      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   12607      2526457 :          pack_tmp = ISHFT(pack_tmp, -14)
   12608      2526457 :          idata = idata + 1
   12609      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12610      2526457 :          full_data(idata) = data_tmp
   12611      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12612      2526457 :          idata = idata + 1
   12613      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12614      2526457 :          full_data(idata) = data_tmp
   12615      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12616      2526457 :          idata = idata + 1
   12617      2526457 :          data_tmp = ISHFT(pack_tmp, 4)
   12618      2526457 :          ipack = ipack + 1
   12619      2526457 :          pack_tmp = packed_data(ipack)
   12620      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   12621      2526457 :          pack_tmp = ISHFT(pack_tmp, -4)
   12622      2526457 :          idata = idata + 1
   12623      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12624      2526457 :          full_data(idata) = data_tmp
   12625      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12626      2526457 :          idata = idata + 1
   12627      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12628      2526457 :          full_data(idata) = data_tmp
   12629      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12630      2526457 :          idata = idata + 1
   12631      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12632      2526457 :          full_data(idata) = data_tmp
   12633      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12634      2526457 :          idata = idata + 1
   12635      2526457 :          data_tmp = ISHFT(pack_tmp, 12)
   12636      2526457 :          ipack = ipack + 1
   12637      2526457 :          pack_tmp = packed_data(ipack)
   12638      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   12639      2526457 :          pack_tmp = ISHFT(pack_tmp, -12)
   12640      2526457 :          idata = idata + 1
   12641      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12642      2526457 :          full_data(idata) = data_tmp
   12643      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12644      2526457 :          idata = idata + 1
   12645      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12646      2526457 :          full_data(idata) = data_tmp
   12647      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12648      2526457 :          idata = idata + 1
   12649      2526457 :          data_tmp = ISHFT(pack_tmp, 2)
   12650      2526457 :          ipack = ipack + 1
   12651      2526457 :          pack_tmp = packed_data(ipack)
   12652      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   12653      2526457 :          pack_tmp = ISHFT(pack_tmp, -2)
   12654      2526457 :          idata = idata + 1
   12655      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12656      2526457 :          full_data(idata) = data_tmp
   12657      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12658      2526457 :          idata = idata + 1
   12659      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12660      2526457 :          full_data(idata) = data_tmp
   12661      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12662      2526457 :          idata = idata + 1
   12663      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12664      2526457 :          full_data(idata) = data_tmp
   12665      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12666      2526457 :          idata = idata + 1
   12667      2526457 :          data_tmp = ISHFT(pack_tmp, 10)
   12668      2526457 :          ipack = ipack + 1
   12669      2526457 :          pack_tmp = packed_data(ipack)
   12670      2526457 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   12671      2526457 :          pack_tmp = ISHFT(pack_tmp, -10)
   12672      2526457 :          idata = idata + 1
   12673      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12674      2526457 :          full_data(idata) = data_tmp
   12675      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12676      2526457 :          idata = idata + 1
   12677      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12678      2526457 :          full_data(idata) = data_tmp
   12679      2526457 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12680      2526457 :          idata = idata + 1
   12681      2526457 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   12682      2526457 :          full_data(idata) = data_tmp
   12683      2527200 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   12684              :       END DO
   12685       175285 :       IF (Ndata_rep < Ndata) THEN
   12686        32718 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   12687              :       END IF
   12688       175285 :    END SUBROUTINE bits2ints_18
   12689              : 
   12690              : ! **************************************************************************************************
   12691              : !> \brief ...
   12692              : !> \param Ndata ...
   12693              : !> \param packed_data ...
   12694              : !> \param full_data ...
   12695              : ! **************************************************************************************************
   12696        31324 :    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        31324 :       idata = 0
   12707        31324 :       ipack = 0
   12708        31324 :       Ndata_rep = (Ndata/64)*64
   12709        31324 :       DO kdata = 1, Ndata_rep, 64
   12710       476349 :          pack_tmp = 0
   12711       476349 :          idata = idata + 1
   12712       476349 :          data_tmp = full_data(idata)
   12713       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12714       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12715       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12716       476349 :          idata = idata + 1
   12717       476349 :          data_tmp = full_data(idata)
   12718       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12719       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12720       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12721       476349 :          idata = idata + 1
   12722       476349 :          data_tmp = full_data(idata)
   12723       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12724       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12725       476349 :          pack_tmp = ISHFT(pack_tmp, -7)
   12726       476349 :          idata = idata + 1
   12727       476349 :          data_tmp = full_data(idata)
   12728       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12729       476349 :          data_tmp = IAND(data_tmp, mask_left(7))
   12730       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12731       476349 :          ipack = ipack + 1
   12732       476349 :          packed_data(ipack) = pack_tmp
   12733       476349 :          data_tmp = full_data(idata)
   12734       476349 :          pack_tmp = ISHFT(data_tmp, 52)
   12735       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12736       476349 :          idata = idata + 1
   12737       476349 :          data_tmp = full_data(idata)
   12738       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12739       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12740       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12741       476349 :          idata = idata + 1
   12742       476349 :          data_tmp = full_data(idata)
   12743       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12744       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12745       476349 :          pack_tmp = ISHFT(pack_tmp, -14)
   12746       476349 :          idata = idata + 1
   12747       476349 :          data_tmp = full_data(idata)
   12748       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12749       476349 :          data_tmp = IAND(data_tmp, mask_left(14))
   12750       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12751       476349 :          ipack = ipack + 1
   12752       476349 :          packed_data(ipack) = pack_tmp
   12753       476349 :          data_tmp = full_data(idata)
   12754       476349 :          pack_tmp = ISHFT(data_tmp, 59)
   12755       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12756       476349 :          idata = idata + 1
   12757       476349 :          data_tmp = full_data(idata)
   12758       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12759       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12760       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12761       476349 :          idata = idata + 1
   12762       476349 :          data_tmp = full_data(idata)
   12763       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12764       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12765       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12766       476349 :          idata = idata + 1
   12767       476349 :          data_tmp = full_data(idata)
   12768       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12769       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12770       476349 :          pack_tmp = ISHFT(pack_tmp, -2)
   12771       476349 :          idata = idata + 1
   12772       476349 :          data_tmp = full_data(idata)
   12773       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12774       476349 :          data_tmp = IAND(data_tmp, mask_left(2))
   12775       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12776       476349 :          ipack = ipack + 1
   12777       476349 :          packed_data(ipack) = pack_tmp
   12778       476349 :          data_tmp = full_data(idata)
   12779       476349 :          pack_tmp = ISHFT(data_tmp, 47)
   12780       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12781       476349 :          idata = idata + 1
   12782       476349 :          data_tmp = full_data(idata)
   12783       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12784       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12785       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12786       476349 :          idata = idata + 1
   12787       476349 :          data_tmp = full_data(idata)
   12788       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12789       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12790       476349 :          pack_tmp = ISHFT(pack_tmp, -9)
   12791       476349 :          idata = idata + 1
   12792       476349 :          data_tmp = full_data(idata)
   12793       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12794       476349 :          data_tmp = IAND(data_tmp, mask_left(9))
   12795       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12796       476349 :          ipack = ipack + 1
   12797       476349 :          packed_data(ipack) = pack_tmp
   12798       476349 :          data_tmp = full_data(idata)
   12799       476349 :          pack_tmp = ISHFT(data_tmp, 54)
   12800       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12801       476349 :          idata = idata + 1
   12802       476349 :          data_tmp = full_data(idata)
   12803       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12804       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12805       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12806       476349 :          idata = idata + 1
   12807       476349 :          data_tmp = full_data(idata)
   12808       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12809       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12810       476349 :          pack_tmp = ISHFT(pack_tmp, -16)
   12811       476349 :          idata = idata + 1
   12812       476349 :          data_tmp = full_data(idata)
   12813       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12814       476349 :          data_tmp = IAND(data_tmp, mask_left(16))
   12815       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12816       476349 :          ipack = ipack + 1
   12817       476349 :          packed_data(ipack) = pack_tmp
   12818       476349 :          data_tmp = full_data(idata)
   12819       476349 :          pack_tmp = ISHFT(data_tmp, 61)
   12820       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12821       476349 :          idata = idata + 1
   12822       476349 :          data_tmp = full_data(idata)
   12823       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12824       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12825       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12826       476349 :          idata = idata + 1
   12827       476349 :          data_tmp = full_data(idata)
   12828       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12829       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12830       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12831       476349 :          idata = idata + 1
   12832       476349 :          data_tmp = full_data(idata)
   12833       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12834       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12835       476349 :          pack_tmp = ISHFT(pack_tmp, -4)
   12836       476349 :          idata = idata + 1
   12837       476349 :          data_tmp = full_data(idata)
   12838       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12839       476349 :          data_tmp = IAND(data_tmp, mask_left(4))
   12840       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12841       476349 :          ipack = ipack + 1
   12842       476349 :          packed_data(ipack) = pack_tmp
   12843       476349 :          data_tmp = full_data(idata)
   12844       476349 :          pack_tmp = ISHFT(data_tmp, 49)
   12845       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12846       476349 :          idata = idata + 1
   12847       476349 :          data_tmp = full_data(idata)
   12848       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12849       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12850       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12851       476349 :          idata = idata + 1
   12852       476349 :          data_tmp = full_data(idata)
   12853       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12854       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12855       476349 :          pack_tmp = ISHFT(pack_tmp, -11)
   12856       476349 :          idata = idata + 1
   12857       476349 :          data_tmp = full_data(idata)
   12858       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12859       476349 :          data_tmp = IAND(data_tmp, mask_left(11))
   12860       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12861       476349 :          ipack = ipack + 1
   12862       476349 :          packed_data(ipack) = pack_tmp
   12863       476349 :          data_tmp = full_data(idata)
   12864       476349 :          pack_tmp = ISHFT(data_tmp, 56)
   12865       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12866       476349 :          idata = idata + 1
   12867       476349 :          data_tmp = full_data(idata)
   12868       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12869       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12870       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12871       476349 :          idata = idata + 1
   12872       476349 :          data_tmp = full_data(idata)
   12873       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12874       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12875       476349 :          pack_tmp = ISHFT(pack_tmp, -18)
   12876       476349 :          idata = idata + 1
   12877       476349 :          data_tmp = full_data(idata)
   12878       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12879       476349 :          data_tmp = IAND(data_tmp, mask_left(18))
   12880       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12881       476349 :          ipack = ipack + 1
   12882       476349 :          packed_data(ipack) = pack_tmp
   12883       476349 :          data_tmp = full_data(idata)
   12884       476349 :          pack_tmp = ISHFT(data_tmp, 63)
   12885       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12886       476349 :          idata = idata + 1
   12887       476349 :          data_tmp = full_data(idata)
   12888       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12889       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12890       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12891       476349 :          idata = idata + 1
   12892       476349 :          data_tmp = full_data(idata)
   12893       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12894       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12895       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12896       476349 :          idata = idata + 1
   12897       476349 :          data_tmp = full_data(idata)
   12898       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12899       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12900       476349 :          pack_tmp = ISHFT(pack_tmp, -6)
   12901       476349 :          idata = idata + 1
   12902       476349 :          data_tmp = full_data(idata)
   12903       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12904       476349 :          data_tmp = IAND(data_tmp, mask_left(6))
   12905       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12906       476349 :          ipack = ipack + 1
   12907       476349 :          packed_data(ipack) = pack_tmp
   12908       476349 :          data_tmp = full_data(idata)
   12909       476349 :          pack_tmp = ISHFT(data_tmp, 51)
   12910       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12911       476349 :          idata = idata + 1
   12912       476349 :          data_tmp = full_data(idata)
   12913       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12914       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12915       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12916       476349 :          idata = idata + 1
   12917       476349 :          data_tmp = full_data(idata)
   12918       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12919       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12920       476349 :          pack_tmp = ISHFT(pack_tmp, -13)
   12921       476349 :          idata = idata + 1
   12922       476349 :          data_tmp = full_data(idata)
   12923       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12924       476349 :          data_tmp = IAND(data_tmp, mask_left(13))
   12925       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12926       476349 :          ipack = ipack + 1
   12927       476349 :          packed_data(ipack) = pack_tmp
   12928       476349 :          data_tmp = full_data(idata)
   12929       476349 :          pack_tmp = ISHFT(data_tmp, 58)
   12930       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12931       476349 :          idata = idata + 1
   12932       476349 :          data_tmp = full_data(idata)
   12933       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12934       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12935       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12936       476349 :          idata = idata + 1
   12937       476349 :          data_tmp = full_data(idata)
   12938       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12939       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12940       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12941       476349 :          idata = idata + 1
   12942       476349 :          data_tmp = full_data(idata)
   12943       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12944       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12945       476349 :          pack_tmp = ISHFT(pack_tmp, -1)
   12946       476349 :          idata = idata + 1
   12947       476349 :          data_tmp = full_data(idata)
   12948       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12949       476349 :          data_tmp = IAND(data_tmp, mask_left(1))
   12950       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12951       476349 :          ipack = ipack + 1
   12952       476349 :          packed_data(ipack) = pack_tmp
   12953       476349 :          data_tmp = full_data(idata)
   12954       476349 :          pack_tmp = ISHFT(data_tmp, 46)
   12955       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12956       476349 :          idata = idata + 1
   12957       476349 :          data_tmp = full_data(idata)
   12958       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12959       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12960       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12961       476349 :          idata = idata + 1
   12962       476349 :          data_tmp = full_data(idata)
   12963       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12964       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12965       476349 :          pack_tmp = ISHFT(pack_tmp, -8)
   12966       476349 :          idata = idata + 1
   12967       476349 :          data_tmp = full_data(idata)
   12968       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12969       476349 :          data_tmp = IAND(data_tmp, mask_left(8))
   12970       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12971       476349 :          ipack = ipack + 1
   12972       476349 :          packed_data(ipack) = pack_tmp
   12973       476349 :          data_tmp = full_data(idata)
   12974       476349 :          pack_tmp = ISHFT(data_tmp, 53)
   12975       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12976       476349 :          idata = idata + 1
   12977       476349 :          data_tmp = full_data(idata)
   12978       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12979       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12980       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12981       476349 :          idata = idata + 1
   12982       476349 :          data_tmp = full_data(idata)
   12983       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12984       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12985       476349 :          pack_tmp = ISHFT(pack_tmp, -15)
   12986       476349 :          idata = idata + 1
   12987       476349 :          data_tmp = full_data(idata)
   12988       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12989       476349 :          data_tmp = IAND(data_tmp, mask_left(15))
   12990       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   12991       476349 :          ipack = ipack + 1
   12992       476349 :          packed_data(ipack) = pack_tmp
   12993       476349 :          data_tmp = full_data(idata)
   12994       476349 :          pack_tmp = ISHFT(data_tmp, 60)
   12995       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   12996       476349 :          idata = idata + 1
   12997       476349 :          data_tmp = full_data(idata)
   12998       476349 :          data_tmp = ISHFT(data_tmp, 45)
   12999       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13000       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13001       476349 :          idata = idata + 1
   13002       476349 :          data_tmp = full_data(idata)
   13003       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13004       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13005       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13006       476349 :          idata = idata + 1
   13007       476349 :          data_tmp = full_data(idata)
   13008       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13009       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13010       476349 :          pack_tmp = ISHFT(pack_tmp, -3)
   13011       476349 :          idata = idata + 1
   13012       476349 :          data_tmp = full_data(idata)
   13013       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13014       476349 :          data_tmp = IAND(data_tmp, mask_left(3))
   13015       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13016       476349 :          ipack = ipack + 1
   13017       476349 :          packed_data(ipack) = pack_tmp
   13018       476349 :          data_tmp = full_data(idata)
   13019       476349 :          pack_tmp = ISHFT(data_tmp, 48)
   13020       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13021       476349 :          idata = idata + 1
   13022       476349 :          data_tmp = full_data(idata)
   13023       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13024       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13025       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13026       476349 :          idata = idata + 1
   13027       476349 :          data_tmp = full_data(idata)
   13028       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13029       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13030       476349 :          pack_tmp = ISHFT(pack_tmp, -10)
   13031       476349 :          idata = idata + 1
   13032       476349 :          data_tmp = full_data(idata)
   13033       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13034       476349 :          data_tmp = IAND(data_tmp, mask_left(10))
   13035       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13036       476349 :          ipack = ipack + 1
   13037       476349 :          packed_data(ipack) = pack_tmp
   13038       476349 :          data_tmp = full_data(idata)
   13039       476349 :          pack_tmp = ISHFT(data_tmp, 55)
   13040       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13041       476349 :          idata = idata + 1
   13042       476349 :          data_tmp = full_data(idata)
   13043       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13044       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13045       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13046       476349 :          idata = idata + 1
   13047       476349 :          data_tmp = full_data(idata)
   13048       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13049       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13050       476349 :          pack_tmp = ISHFT(pack_tmp, -17)
   13051       476349 :          idata = idata + 1
   13052       476349 :          data_tmp = full_data(idata)
   13053       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13054       476349 :          data_tmp = IAND(data_tmp, mask_left(17))
   13055       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13056       476349 :          ipack = ipack + 1
   13057       476349 :          packed_data(ipack) = pack_tmp
   13058       476349 :          data_tmp = full_data(idata)
   13059       476349 :          pack_tmp = ISHFT(data_tmp, 62)
   13060       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13061       476349 :          idata = idata + 1
   13062       476349 :          data_tmp = full_data(idata)
   13063       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13064       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13065       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13066       476349 :          idata = idata + 1
   13067       476349 :          data_tmp = full_data(idata)
   13068       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13069       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13070       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13071       476349 :          idata = idata + 1
   13072       476349 :          data_tmp = full_data(idata)
   13073       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13074       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13075       476349 :          pack_tmp = ISHFT(pack_tmp, -5)
   13076       476349 :          idata = idata + 1
   13077       476349 :          data_tmp = full_data(idata)
   13078       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13079       476349 :          data_tmp = IAND(data_tmp, mask_left(5))
   13080       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13081       476349 :          ipack = ipack + 1
   13082       476349 :          packed_data(ipack) = pack_tmp
   13083       476349 :          data_tmp = full_data(idata)
   13084       476349 :          pack_tmp = ISHFT(data_tmp, 50)
   13085       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13086       476349 :          idata = idata + 1
   13087       476349 :          data_tmp = full_data(idata)
   13088       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13089       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13090       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13091       476349 :          idata = idata + 1
   13092       476349 :          data_tmp = full_data(idata)
   13093       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13094       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13095       476349 :          pack_tmp = ISHFT(pack_tmp, -12)
   13096       476349 :          idata = idata + 1
   13097       476349 :          data_tmp = full_data(idata)
   13098       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13099       476349 :          data_tmp = IAND(data_tmp, mask_left(12))
   13100       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13101       476349 :          ipack = ipack + 1
   13102       476349 :          packed_data(ipack) = pack_tmp
   13103       476349 :          data_tmp = full_data(idata)
   13104       476349 :          pack_tmp = ISHFT(data_tmp, 57)
   13105       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13106       476349 :          idata = idata + 1
   13107       476349 :          data_tmp = full_data(idata)
   13108       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13109       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13110       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13111       476349 :          idata = idata + 1
   13112       476349 :          data_tmp = full_data(idata)
   13113       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13114       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13115       476349 :          pack_tmp = ISHFT(pack_tmp, -19)
   13116       476349 :          idata = idata + 1
   13117       476349 :          data_tmp = full_data(idata)
   13118       476349 :          data_tmp = ISHFT(data_tmp, 45)
   13119       476349 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13120              :          pack_tmp = ISHFT(pack_tmp, 0)
   13121       476349 :          pack_tmp = ISHFT(pack_tmp, 0)
   13122       476349 :          ipack = ipack + 1
   13123       476443 :          packed_data(ipack) = pack_tmp
   13124              :       END DO
   13125        31324 :       IF (Ndata_rep < Ndata) THEN
   13126         2822 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13127              :       END IF
   13128        31324 :    END SUBROUTINE ints2bits_19
   13129              : 
   13130              : ! **************************************************************************************************
   13131              : !> \brief ...
   13132              : !> \param Ndata ...
   13133              : !> \param packed_data ...
   13134              : !> \param full_data ...
   13135              : ! **************************************************************************************************
   13136       158468 :    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       158468 :       ipack = 0
   13147       158468 :       idata = 0
   13148       158468 :       pack_tmp = 0
   13149       158468 :       Ndata_rep = (Ndata/64)*64
   13150       158468 :       DO kdata = 1, Ndata_rep, 64
   13151      2325665 :          idata = idata + 1
   13152      2325665 :          data_tmp = ISHFT(pack_tmp, 19)
   13153      2325665 :          ipack = ipack + 1
   13154      2325665 :          pack_tmp = packed_data(ipack)
   13155      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   13156      2325665 :          pack_tmp = ISHFT(pack_tmp, -19)
   13157      2325665 :          idata = idata + 1
   13158      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13159      2325665 :          full_data(idata) = data_tmp
   13160      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13161      2325665 :          idata = idata + 1
   13162      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13163      2325665 :          full_data(idata) = data_tmp
   13164      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13165      2325665 :          idata = idata + 1
   13166      2325665 :          data_tmp = ISHFT(pack_tmp, 12)
   13167      2325665 :          ipack = ipack + 1
   13168      2325665 :          pack_tmp = packed_data(ipack)
   13169      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   13170      2325665 :          pack_tmp = ISHFT(pack_tmp, -12)
   13171      2325665 :          idata = idata + 1
   13172      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13173      2325665 :          full_data(idata) = data_tmp
   13174      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13175      2325665 :          idata = idata + 1
   13176      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13177      2325665 :          full_data(idata) = data_tmp
   13178      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13179      2325665 :          idata = idata + 1
   13180      2325665 :          data_tmp = ISHFT(pack_tmp, 5)
   13181      2325665 :          ipack = ipack + 1
   13182      2325665 :          pack_tmp = packed_data(ipack)
   13183      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   13184      2325665 :          pack_tmp = ISHFT(pack_tmp, -5)
   13185      2325665 :          idata = idata + 1
   13186      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13187      2325665 :          full_data(idata) = data_tmp
   13188      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13189      2325665 :          idata = idata + 1
   13190      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13191      2325665 :          full_data(idata) = data_tmp
   13192      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13193      2325665 :          idata = idata + 1
   13194      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13195      2325665 :          full_data(idata) = data_tmp
   13196      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13197      2325665 :          idata = idata + 1
   13198      2325665 :          data_tmp = ISHFT(pack_tmp, 17)
   13199      2325665 :          ipack = ipack + 1
   13200      2325665 :          pack_tmp = packed_data(ipack)
   13201      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   13202      2325665 :          pack_tmp = ISHFT(pack_tmp, -17)
   13203      2325665 :          idata = idata + 1
   13204      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13205      2325665 :          full_data(idata) = data_tmp
   13206      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13207      2325665 :          idata = idata + 1
   13208      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13209      2325665 :          full_data(idata) = data_tmp
   13210      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13211      2325665 :          idata = idata + 1
   13212      2325665 :          data_tmp = ISHFT(pack_tmp, 10)
   13213      2325665 :          ipack = ipack + 1
   13214      2325665 :          pack_tmp = packed_data(ipack)
   13215      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   13216      2325665 :          pack_tmp = ISHFT(pack_tmp, -10)
   13217      2325665 :          idata = idata + 1
   13218      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13219      2325665 :          full_data(idata) = data_tmp
   13220      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13221      2325665 :          idata = idata + 1
   13222      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13223      2325665 :          full_data(idata) = data_tmp
   13224      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13225      2325665 :          idata = idata + 1
   13226      2325665 :          data_tmp = ISHFT(pack_tmp, 3)
   13227      2325665 :          ipack = ipack + 1
   13228      2325665 :          pack_tmp = packed_data(ipack)
   13229      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   13230      2325665 :          pack_tmp = ISHFT(pack_tmp, -3)
   13231      2325665 :          idata = idata + 1
   13232      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13233      2325665 :          full_data(idata) = data_tmp
   13234      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13235      2325665 :          idata = idata + 1
   13236      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13237      2325665 :          full_data(idata) = data_tmp
   13238      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13239      2325665 :          idata = idata + 1
   13240      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13241      2325665 :          full_data(idata) = data_tmp
   13242      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13243      2325665 :          idata = idata + 1
   13244      2325665 :          data_tmp = ISHFT(pack_tmp, 15)
   13245      2325665 :          ipack = ipack + 1
   13246      2325665 :          pack_tmp = packed_data(ipack)
   13247      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   13248      2325665 :          pack_tmp = ISHFT(pack_tmp, -15)
   13249      2325665 :          idata = idata + 1
   13250      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13251      2325665 :          full_data(idata) = data_tmp
   13252      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13253      2325665 :          idata = idata + 1
   13254      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13255      2325665 :          full_data(idata) = data_tmp
   13256      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13257      2325665 :          idata = idata + 1
   13258      2325665 :          data_tmp = ISHFT(pack_tmp, 8)
   13259      2325665 :          ipack = ipack + 1
   13260      2325665 :          pack_tmp = packed_data(ipack)
   13261      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   13262      2325665 :          pack_tmp = ISHFT(pack_tmp, -8)
   13263      2325665 :          idata = idata + 1
   13264      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13265      2325665 :          full_data(idata) = data_tmp
   13266      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13267      2325665 :          idata = idata + 1
   13268      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13269      2325665 :          full_data(idata) = data_tmp
   13270      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13271      2325665 :          idata = idata + 1
   13272      2325665 :          data_tmp = ISHFT(pack_tmp, 1)
   13273      2325665 :          ipack = ipack + 1
   13274      2325665 :          pack_tmp = packed_data(ipack)
   13275      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   13276      2325665 :          pack_tmp = ISHFT(pack_tmp, -1)
   13277      2325665 :          idata = idata + 1
   13278      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13279      2325665 :          full_data(idata) = data_tmp
   13280      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13281      2325665 :          idata = idata + 1
   13282      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13283      2325665 :          full_data(idata) = data_tmp
   13284      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13285      2325665 :          idata = idata + 1
   13286      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13287      2325665 :          full_data(idata) = data_tmp
   13288      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13289      2325665 :          idata = idata + 1
   13290      2325665 :          data_tmp = ISHFT(pack_tmp, 13)
   13291      2325665 :          ipack = ipack + 1
   13292      2325665 :          pack_tmp = packed_data(ipack)
   13293      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   13294      2325665 :          pack_tmp = ISHFT(pack_tmp, -13)
   13295      2325665 :          idata = idata + 1
   13296      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13297      2325665 :          full_data(idata) = data_tmp
   13298      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13299      2325665 :          idata = idata + 1
   13300      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13301      2325665 :          full_data(idata) = data_tmp
   13302      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13303      2325665 :          idata = idata + 1
   13304      2325665 :          data_tmp = ISHFT(pack_tmp, 6)
   13305      2325665 :          ipack = ipack + 1
   13306      2325665 :          pack_tmp = packed_data(ipack)
   13307      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   13308      2325665 :          pack_tmp = ISHFT(pack_tmp, -6)
   13309      2325665 :          idata = idata + 1
   13310      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13311      2325665 :          full_data(idata) = data_tmp
   13312      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13313      2325665 :          idata = idata + 1
   13314      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13315      2325665 :          full_data(idata) = data_tmp
   13316      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13317      2325665 :          idata = idata + 1
   13318      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13319      2325665 :          full_data(idata) = data_tmp
   13320      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13321      2325665 :          idata = idata + 1
   13322      2325665 :          data_tmp = ISHFT(pack_tmp, 18)
   13323      2325665 :          ipack = ipack + 1
   13324      2325665 :          pack_tmp = packed_data(ipack)
   13325      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   13326      2325665 :          pack_tmp = ISHFT(pack_tmp, -18)
   13327      2325665 :          idata = idata + 1
   13328      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13329      2325665 :          full_data(idata) = data_tmp
   13330      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13331      2325665 :          idata = idata + 1
   13332      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13333      2325665 :          full_data(idata) = data_tmp
   13334      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13335      2325665 :          idata = idata + 1
   13336      2325665 :          data_tmp = ISHFT(pack_tmp, 11)
   13337      2325665 :          ipack = ipack + 1
   13338      2325665 :          pack_tmp = packed_data(ipack)
   13339      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   13340      2325665 :          pack_tmp = ISHFT(pack_tmp, -11)
   13341      2325665 :          idata = idata + 1
   13342      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13343      2325665 :          full_data(idata) = data_tmp
   13344      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13345      2325665 :          idata = idata + 1
   13346      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13347      2325665 :          full_data(idata) = data_tmp
   13348      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13349      2325665 :          idata = idata + 1
   13350      2325665 :          data_tmp = ISHFT(pack_tmp, 4)
   13351      2325665 :          ipack = ipack + 1
   13352      2325665 :          pack_tmp = packed_data(ipack)
   13353      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   13354      2325665 :          pack_tmp = ISHFT(pack_tmp, -4)
   13355      2325665 :          idata = idata + 1
   13356      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13357      2325665 :          full_data(idata) = data_tmp
   13358      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13359      2325665 :          idata = idata + 1
   13360      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13361      2325665 :          full_data(idata) = data_tmp
   13362      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13363      2325665 :          idata = idata + 1
   13364      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13365      2325665 :          full_data(idata) = data_tmp
   13366      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13367      2325665 :          idata = idata + 1
   13368      2325665 :          data_tmp = ISHFT(pack_tmp, 16)
   13369      2325665 :          ipack = ipack + 1
   13370      2325665 :          pack_tmp = packed_data(ipack)
   13371      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   13372      2325665 :          pack_tmp = ISHFT(pack_tmp, -16)
   13373      2325665 :          idata = idata + 1
   13374      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13375      2325665 :          full_data(idata) = data_tmp
   13376      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13377      2325665 :          idata = idata + 1
   13378      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13379      2325665 :          full_data(idata) = data_tmp
   13380      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13381      2325665 :          idata = idata + 1
   13382      2325665 :          data_tmp = ISHFT(pack_tmp, 9)
   13383      2325665 :          ipack = ipack + 1
   13384      2325665 :          pack_tmp = packed_data(ipack)
   13385      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   13386      2325665 :          pack_tmp = ISHFT(pack_tmp, -9)
   13387      2325665 :          idata = idata + 1
   13388      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13389      2325665 :          full_data(idata) = data_tmp
   13390      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13391      2325665 :          idata = idata + 1
   13392      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13393      2325665 :          full_data(idata) = data_tmp
   13394      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13395      2325665 :          idata = idata + 1
   13396      2325665 :          data_tmp = ISHFT(pack_tmp, 2)
   13397      2325665 :          ipack = ipack + 1
   13398      2325665 :          pack_tmp = packed_data(ipack)
   13399      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   13400      2325665 :          pack_tmp = ISHFT(pack_tmp, -2)
   13401      2325665 :          idata = idata + 1
   13402      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13403      2325665 :          full_data(idata) = data_tmp
   13404      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13405      2325665 :          idata = idata + 1
   13406      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13407      2325665 :          full_data(idata) = data_tmp
   13408      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13409      2325665 :          idata = idata + 1
   13410      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13411      2325665 :          full_data(idata) = data_tmp
   13412      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13413      2325665 :          idata = idata + 1
   13414      2325665 :          data_tmp = ISHFT(pack_tmp, 14)
   13415      2325665 :          ipack = ipack + 1
   13416      2325665 :          pack_tmp = packed_data(ipack)
   13417      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   13418      2325665 :          pack_tmp = ISHFT(pack_tmp, -14)
   13419      2325665 :          idata = idata + 1
   13420      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13421      2325665 :          full_data(idata) = data_tmp
   13422      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13423      2325665 :          idata = idata + 1
   13424      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13425      2325665 :          full_data(idata) = data_tmp
   13426      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13427      2325665 :          idata = idata + 1
   13428      2325665 :          data_tmp = ISHFT(pack_tmp, 7)
   13429      2325665 :          ipack = ipack + 1
   13430      2325665 :          pack_tmp = packed_data(ipack)
   13431      2325665 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   13432      2325665 :          pack_tmp = ISHFT(pack_tmp, -7)
   13433      2325665 :          idata = idata + 1
   13434      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13435      2325665 :          full_data(idata) = data_tmp
   13436      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13437      2325665 :          idata = idata + 1
   13438      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13439      2325665 :          full_data(idata) = data_tmp
   13440      2325665 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13441      2325665 :          idata = idata + 1
   13442      2325665 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13443      2325665 :          full_data(idata) = data_tmp
   13444      2326438 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13445              :       END DO
   13446       158468 :       IF (Ndata_rep < Ndata) THEN
   13447        23870 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13448              :       END IF
   13449       158468 :    END SUBROUTINE bits2ints_19
   13450              : 
   13451              : ! **************************************************************************************************
   13452              : !> \brief ...
   13453              : !> \param Ndata ...
   13454              : !> \param packed_data ...
   13455              : !> \param full_data ...
   13456              : ! **************************************************************************************************
   13457        43569 :    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        43569 :       idata = 0
   13468        43569 :       ipack = 0
   13469        43569 :       Ndata_rep = (Ndata/64)*64
   13470        43569 :       DO kdata = 1, Ndata_rep, 64
   13471       621494 :          pack_tmp = 0
   13472       621494 :          idata = idata + 1
   13473       621494 :          data_tmp = full_data(idata)
   13474       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13475       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13476       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13477       621494 :          idata = idata + 1
   13478       621494 :          data_tmp = full_data(idata)
   13479       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13480       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13481       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13482       621494 :          idata = idata + 1
   13483       621494 :          data_tmp = full_data(idata)
   13484       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13485       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13486       621494 :          pack_tmp = ISHFT(pack_tmp, -4)
   13487       621494 :          idata = idata + 1
   13488       621494 :          data_tmp = full_data(idata)
   13489       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13490       621494 :          data_tmp = IAND(data_tmp, mask_left(4))
   13491       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13492       621494 :          ipack = ipack + 1
   13493       621494 :          packed_data(ipack) = pack_tmp
   13494       621494 :          data_tmp = full_data(idata)
   13495       621494 :          pack_tmp = ISHFT(data_tmp, 48)
   13496       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13497       621494 :          idata = idata + 1
   13498       621494 :          data_tmp = full_data(idata)
   13499       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13500       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13501       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13502       621494 :          idata = idata + 1
   13503       621494 :          data_tmp = full_data(idata)
   13504       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13505       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13506       621494 :          pack_tmp = ISHFT(pack_tmp, -8)
   13507       621494 :          idata = idata + 1
   13508       621494 :          data_tmp = full_data(idata)
   13509       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13510       621494 :          data_tmp = IAND(data_tmp, mask_left(8))
   13511       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13512       621494 :          ipack = ipack + 1
   13513       621494 :          packed_data(ipack) = pack_tmp
   13514       621494 :          data_tmp = full_data(idata)
   13515       621494 :          pack_tmp = ISHFT(data_tmp, 52)
   13516       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13517       621494 :          idata = idata + 1
   13518       621494 :          data_tmp = full_data(idata)
   13519       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13520       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13521       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13522       621494 :          idata = idata + 1
   13523       621494 :          data_tmp = full_data(idata)
   13524       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13525       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13526       621494 :          pack_tmp = ISHFT(pack_tmp, -12)
   13527       621494 :          idata = idata + 1
   13528       621494 :          data_tmp = full_data(idata)
   13529       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13530       621494 :          data_tmp = IAND(data_tmp, mask_left(12))
   13531       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13532       621494 :          ipack = ipack + 1
   13533       621494 :          packed_data(ipack) = pack_tmp
   13534       621494 :          data_tmp = full_data(idata)
   13535       621494 :          pack_tmp = ISHFT(data_tmp, 56)
   13536       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13537       621494 :          idata = idata + 1
   13538       621494 :          data_tmp = full_data(idata)
   13539       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13540       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13541       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13542       621494 :          idata = idata + 1
   13543       621494 :          data_tmp = full_data(idata)
   13544       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13545       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13546       621494 :          pack_tmp = ISHFT(pack_tmp, -16)
   13547       621494 :          idata = idata + 1
   13548       621494 :          data_tmp = full_data(idata)
   13549       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13550       621494 :          data_tmp = IAND(data_tmp, mask_left(16))
   13551       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13552       621494 :          ipack = ipack + 1
   13553       621494 :          packed_data(ipack) = pack_tmp
   13554       621494 :          data_tmp = full_data(idata)
   13555       621494 :          pack_tmp = ISHFT(data_tmp, 60)
   13556       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13557       621494 :          idata = idata + 1
   13558       621494 :          data_tmp = full_data(idata)
   13559       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13560       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13561       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13562       621494 :          idata = idata + 1
   13563       621494 :          data_tmp = full_data(idata)
   13564       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13565       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13566       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13567       621494 :          idata = idata + 1
   13568       621494 :          data_tmp = full_data(idata)
   13569       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13570       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13571       621494 :          pack_tmp = ISHFT(pack_tmp, 0)
   13572       621494 :          idata = idata + 1
   13573       621494 :          data_tmp = full_data(idata)
   13574              :          data_tmp = ISHFT(data_tmp, 44)
   13575       621494 :          data_tmp = IAND(data_tmp, mask_left(0))
   13576       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13577       621494 :          ipack = ipack + 1
   13578       621494 :          packed_data(ipack) = pack_tmp
   13579       621494 :          data_tmp = full_data(idata)
   13580       621494 :          pack_tmp = ISHFT(data_tmp, 44)
   13581       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13582       621494 :          idata = idata + 1
   13583       621494 :          data_tmp = full_data(idata)
   13584       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13585       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13586       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13587       621494 :          idata = idata + 1
   13588       621494 :          data_tmp = full_data(idata)
   13589       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13590       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13591       621494 :          pack_tmp = ISHFT(pack_tmp, -4)
   13592       621494 :          idata = idata + 1
   13593       621494 :          data_tmp = full_data(idata)
   13594       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13595       621494 :          data_tmp = IAND(data_tmp, mask_left(4))
   13596       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13597       621494 :          ipack = ipack + 1
   13598       621494 :          packed_data(ipack) = pack_tmp
   13599       621494 :          data_tmp = full_data(idata)
   13600       621494 :          pack_tmp = ISHFT(data_tmp, 48)
   13601       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13602       621494 :          idata = idata + 1
   13603       621494 :          data_tmp = full_data(idata)
   13604       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13605       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13606       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13607       621494 :          idata = idata + 1
   13608       621494 :          data_tmp = full_data(idata)
   13609       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13610       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13611       621494 :          pack_tmp = ISHFT(pack_tmp, -8)
   13612       621494 :          idata = idata + 1
   13613       621494 :          data_tmp = full_data(idata)
   13614       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13615       621494 :          data_tmp = IAND(data_tmp, mask_left(8))
   13616       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13617       621494 :          ipack = ipack + 1
   13618       621494 :          packed_data(ipack) = pack_tmp
   13619       621494 :          data_tmp = full_data(idata)
   13620       621494 :          pack_tmp = ISHFT(data_tmp, 52)
   13621       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13622       621494 :          idata = idata + 1
   13623       621494 :          data_tmp = full_data(idata)
   13624       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13625       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13626       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13627       621494 :          idata = idata + 1
   13628       621494 :          data_tmp = full_data(idata)
   13629       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13630       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13631       621494 :          pack_tmp = ISHFT(pack_tmp, -12)
   13632       621494 :          idata = idata + 1
   13633       621494 :          data_tmp = full_data(idata)
   13634       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13635       621494 :          data_tmp = IAND(data_tmp, mask_left(12))
   13636       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13637       621494 :          ipack = ipack + 1
   13638       621494 :          packed_data(ipack) = pack_tmp
   13639       621494 :          data_tmp = full_data(idata)
   13640       621494 :          pack_tmp = ISHFT(data_tmp, 56)
   13641       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13642       621494 :          idata = idata + 1
   13643       621494 :          data_tmp = full_data(idata)
   13644       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13645       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13646       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13647       621494 :          idata = idata + 1
   13648       621494 :          data_tmp = full_data(idata)
   13649       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13650       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13651       621494 :          pack_tmp = ISHFT(pack_tmp, -16)
   13652       621494 :          idata = idata + 1
   13653       621494 :          data_tmp = full_data(idata)
   13654       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13655       621494 :          data_tmp = IAND(data_tmp, mask_left(16))
   13656       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13657       621494 :          ipack = ipack + 1
   13658       621494 :          packed_data(ipack) = pack_tmp
   13659       621494 :          data_tmp = full_data(idata)
   13660       621494 :          pack_tmp = ISHFT(data_tmp, 60)
   13661       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13662       621494 :          idata = idata + 1
   13663       621494 :          data_tmp = full_data(idata)
   13664       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13665       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13666       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13667       621494 :          idata = idata + 1
   13668       621494 :          data_tmp = full_data(idata)
   13669       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13670       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13671       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13672       621494 :          idata = idata + 1
   13673       621494 :          data_tmp = full_data(idata)
   13674       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13675       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13676       621494 :          pack_tmp = ISHFT(pack_tmp, 0)
   13677       621494 :          idata = idata + 1
   13678       621494 :          data_tmp = full_data(idata)
   13679              :          data_tmp = ISHFT(data_tmp, 44)
   13680       621494 :          data_tmp = IAND(data_tmp, mask_left(0))
   13681       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13682       621494 :          ipack = ipack + 1
   13683       621494 :          packed_data(ipack) = pack_tmp
   13684       621494 :          data_tmp = full_data(idata)
   13685       621494 :          pack_tmp = ISHFT(data_tmp, 44)
   13686       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13687       621494 :          idata = idata + 1
   13688       621494 :          data_tmp = full_data(idata)
   13689       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13690       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13691       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13692       621494 :          idata = idata + 1
   13693       621494 :          data_tmp = full_data(idata)
   13694       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13695       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13696       621494 :          pack_tmp = ISHFT(pack_tmp, -4)
   13697       621494 :          idata = idata + 1
   13698       621494 :          data_tmp = full_data(idata)
   13699       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13700       621494 :          data_tmp = IAND(data_tmp, mask_left(4))
   13701       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13702       621494 :          ipack = ipack + 1
   13703       621494 :          packed_data(ipack) = pack_tmp
   13704       621494 :          data_tmp = full_data(idata)
   13705       621494 :          pack_tmp = ISHFT(data_tmp, 48)
   13706       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13707       621494 :          idata = idata + 1
   13708       621494 :          data_tmp = full_data(idata)
   13709       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13710       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13711       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13712       621494 :          idata = idata + 1
   13713       621494 :          data_tmp = full_data(idata)
   13714       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13715       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13716       621494 :          pack_tmp = ISHFT(pack_tmp, -8)
   13717       621494 :          idata = idata + 1
   13718       621494 :          data_tmp = full_data(idata)
   13719       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13720       621494 :          data_tmp = IAND(data_tmp, mask_left(8))
   13721       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13722       621494 :          ipack = ipack + 1
   13723       621494 :          packed_data(ipack) = pack_tmp
   13724       621494 :          data_tmp = full_data(idata)
   13725       621494 :          pack_tmp = ISHFT(data_tmp, 52)
   13726       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13727       621494 :          idata = idata + 1
   13728       621494 :          data_tmp = full_data(idata)
   13729       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13730       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13731       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13732       621494 :          idata = idata + 1
   13733       621494 :          data_tmp = full_data(idata)
   13734       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13735       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13736       621494 :          pack_tmp = ISHFT(pack_tmp, -12)
   13737       621494 :          idata = idata + 1
   13738       621494 :          data_tmp = full_data(idata)
   13739       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13740       621494 :          data_tmp = IAND(data_tmp, mask_left(12))
   13741       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13742       621494 :          ipack = ipack + 1
   13743       621494 :          packed_data(ipack) = pack_tmp
   13744       621494 :          data_tmp = full_data(idata)
   13745       621494 :          pack_tmp = ISHFT(data_tmp, 56)
   13746       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13747       621494 :          idata = idata + 1
   13748       621494 :          data_tmp = full_data(idata)
   13749       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13750       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13751       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13752       621494 :          idata = idata + 1
   13753       621494 :          data_tmp = full_data(idata)
   13754       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13755       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13756       621494 :          pack_tmp = ISHFT(pack_tmp, -16)
   13757       621494 :          idata = idata + 1
   13758       621494 :          data_tmp = full_data(idata)
   13759       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13760       621494 :          data_tmp = IAND(data_tmp, mask_left(16))
   13761       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13762       621494 :          ipack = ipack + 1
   13763       621494 :          packed_data(ipack) = pack_tmp
   13764       621494 :          data_tmp = full_data(idata)
   13765       621494 :          pack_tmp = ISHFT(data_tmp, 60)
   13766       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13767       621494 :          idata = idata + 1
   13768       621494 :          data_tmp = full_data(idata)
   13769       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13770       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13771       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13772       621494 :          idata = idata + 1
   13773       621494 :          data_tmp = full_data(idata)
   13774       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13775       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13776       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13777       621494 :          idata = idata + 1
   13778       621494 :          data_tmp = full_data(idata)
   13779       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13780       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13781       621494 :          pack_tmp = ISHFT(pack_tmp, 0)
   13782       621494 :          idata = idata + 1
   13783       621494 :          data_tmp = full_data(idata)
   13784              :          data_tmp = ISHFT(data_tmp, 44)
   13785       621494 :          data_tmp = IAND(data_tmp, mask_left(0))
   13786       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13787       621494 :          ipack = ipack + 1
   13788       621494 :          packed_data(ipack) = pack_tmp
   13789       621494 :          data_tmp = full_data(idata)
   13790       621494 :          pack_tmp = ISHFT(data_tmp, 44)
   13791       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13792       621494 :          idata = idata + 1
   13793       621494 :          data_tmp = full_data(idata)
   13794       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13795       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13796       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13797       621494 :          idata = idata + 1
   13798       621494 :          data_tmp = full_data(idata)
   13799       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13800       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13801       621494 :          pack_tmp = ISHFT(pack_tmp, -4)
   13802       621494 :          idata = idata + 1
   13803       621494 :          data_tmp = full_data(idata)
   13804       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13805       621494 :          data_tmp = IAND(data_tmp, mask_left(4))
   13806       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13807       621494 :          ipack = ipack + 1
   13808       621494 :          packed_data(ipack) = pack_tmp
   13809       621494 :          data_tmp = full_data(idata)
   13810       621494 :          pack_tmp = ISHFT(data_tmp, 48)
   13811       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13812       621494 :          idata = idata + 1
   13813       621494 :          data_tmp = full_data(idata)
   13814       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13815       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13816       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13817       621494 :          idata = idata + 1
   13818       621494 :          data_tmp = full_data(idata)
   13819       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13820       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13821       621494 :          pack_tmp = ISHFT(pack_tmp, -8)
   13822       621494 :          idata = idata + 1
   13823       621494 :          data_tmp = full_data(idata)
   13824       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13825       621494 :          data_tmp = IAND(data_tmp, mask_left(8))
   13826       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13827       621494 :          ipack = ipack + 1
   13828       621494 :          packed_data(ipack) = pack_tmp
   13829       621494 :          data_tmp = full_data(idata)
   13830       621494 :          pack_tmp = ISHFT(data_tmp, 52)
   13831       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13832       621494 :          idata = idata + 1
   13833       621494 :          data_tmp = full_data(idata)
   13834       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13835       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13836       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13837       621494 :          idata = idata + 1
   13838       621494 :          data_tmp = full_data(idata)
   13839       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13840       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13841       621494 :          pack_tmp = ISHFT(pack_tmp, -12)
   13842       621494 :          idata = idata + 1
   13843       621494 :          data_tmp = full_data(idata)
   13844       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13845       621494 :          data_tmp = IAND(data_tmp, mask_left(12))
   13846       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13847       621494 :          ipack = ipack + 1
   13848       621494 :          packed_data(ipack) = pack_tmp
   13849       621494 :          data_tmp = full_data(idata)
   13850       621494 :          pack_tmp = ISHFT(data_tmp, 56)
   13851       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13852       621494 :          idata = idata + 1
   13853       621494 :          data_tmp = full_data(idata)
   13854       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13855       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13856       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13857       621494 :          idata = idata + 1
   13858       621494 :          data_tmp = full_data(idata)
   13859       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13860       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13861       621494 :          pack_tmp = ISHFT(pack_tmp, -16)
   13862       621494 :          idata = idata + 1
   13863       621494 :          data_tmp = full_data(idata)
   13864       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13865       621494 :          data_tmp = IAND(data_tmp, mask_left(16))
   13866       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13867       621494 :          ipack = ipack + 1
   13868       621494 :          packed_data(ipack) = pack_tmp
   13869       621494 :          data_tmp = full_data(idata)
   13870       621494 :          pack_tmp = ISHFT(data_tmp, 60)
   13871       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13872       621494 :          idata = idata + 1
   13873       621494 :          data_tmp = full_data(idata)
   13874       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13875       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13876       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13877       621494 :          idata = idata + 1
   13878       621494 :          data_tmp = full_data(idata)
   13879       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13880       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13881       621494 :          pack_tmp = ISHFT(pack_tmp, -20)
   13882       621494 :          idata = idata + 1
   13883       621494 :          data_tmp = full_data(idata)
   13884       621494 :          data_tmp = ISHFT(data_tmp, 44)
   13885       621494 :          pack_tmp = IOR(pack_tmp, data_tmp)
   13886              :          pack_tmp = ISHFT(pack_tmp, 0)
   13887       621494 :          pack_tmp = ISHFT(pack_tmp, 0)
   13888       621494 :          ipack = ipack + 1
   13889       621894 :          packed_data(ipack) = pack_tmp
   13890              :       END DO
   13891        43569 :       IF (Ndata_rep < Ndata) THEN
   13892         7924 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   13893              :       END IF
   13894        43569 :    END SUBROUTINE ints2bits_20
   13895              : 
   13896              : ! **************************************************************************************************
   13897              : !> \brief ...
   13898              : !> \param Ndata ...
   13899              : !> \param packed_data ...
   13900              : !> \param full_data ...
   13901              : ! **************************************************************************************************
   13902       301588 :    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       301588 :       ipack = 0
   13913       301588 :       idata = 0
   13914       301588 :       pack_tmp = 0
   13915       301588 :       Ndata_rep = (Ndata/64)*64
   13916       301588 :       DO kdata = 1, Ndata_rep, 64
   13917      4030336 :          idata = idata + 1
   13918      4030336 :          data_tmp = ISHFT(pack_tmp, 20)
   13919      4030336 :          ipack = ipack + 1
   13920      4030336 :          pack_tmp = packed_data(ipack)
   13921      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   13922      4030336 :          pack_tmp = ISHFT(pack_tmp, -20)
   13923      4030336 :          idata = idata + 1
   13924      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13925      4030336 :          full_data(idata) = data_tmp
   13926      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13927      4030336 :          idata = idata + 1
   13928      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13929      4030336 :          full_data(idata) = data_tmp
   13930      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13931      4030336 :          idata = idata + 1
   13932      4030336 :          data_tmp = ISHFT(pack_tmp, 16)
   13933      4030336 :          ipack = ipack + 1
   13934      4030336 :          pack_tmp = packed_data(ipack)
   13935      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   13936      4030336 :          pack_tmp = ISHFT(pack_tmp, -16)
   13937      4030336 :          idata = idata + 1
   13938      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13939      4030336 :          full_data(idata) = data_tmp
   13940      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13941      4030336 :          idata = idata + 1
   13942      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13943      4030336 :          full_data(idata) = data_tmp
   13944      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13945      4030336 :          idata = idata + 1
   13946      4030336 :          data_tmp = ISHFT(pack_tmp, 12)
   13947      4030336 :          ipack = ipack + 1
   13948      4030336 :          pack_tmp = packed_data(ipack)
   13949      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   13950      4030336 :          pack_tmp = ISHFT(pack_tmp, -12)
   13951      4030336 :          idata = idata + 1
   13952      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13953      4030336 :          full_data(idata) = data_tmp
   13954      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13955      4030336 :          idata = idata + 1
   13956      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13957      4030336 :          full_data(idata) = data_tmp
   13958      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13959      4030336 :          idata = idata + 1
   13960      4030336 :          data_tmp = ISHFT(pack_tmp, 8)
   13961      4030336 :          ipack = ipack + 1
   13962      4030336 :          pack_tmp = packed_data(ipack)
   13963      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   13964      4030336 :          pack_tmp = ISHFT(pack_tmp, -8)
   13965      4030336 :          idata = idata + 1
   13966      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13967      4030336 :          full_data(idata) = data_tmp
   13968      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13969      4030336 :          idata = idata + 1
   13970      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13971      4030336 :          full_data(idata) = data_tmp
   13972      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13973      4030336 :          idata = idata + 1
   13974      4030336 :          data_tmp = ISHFT(pack_tmp, 4)
   13975      4030336 :          ipack = ipack + 1
   13976      4030336 :          pack_tmp = packed_data(ipack)
   13977      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   13978      4030336 :          pack_tmp = ISHFT(pack_tmp, -4)
   13979      4030336 :          idata = idata + 1
   13980      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13981      4030336 :          full_data(idata) = data_tmp
   13982      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13983      4030336 :          idata = idata + 1
   13984      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13985      4030336 :          full_data(idata) = data_tmp
   13986      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13987      4030336 :          idata = idata + 1
   13988      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13989      4030336 :          full_data(idata) = data_tmp
   13990      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   13991      4030336 :          idata = idata + 1
   13992      4030336 :          data_tmp = ISHFT(pack_tmp, 20)
   13993      4030336 :          ipack = ipack + 1
   13994      4030336 :          pack_tmp = packed_data(ipack)
   13995      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   13996      4030336 :          pack_tmp = ISHFT(pack_tmp, -20)
   13997      4030336 :          idata = idata + 1
   13998      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   13999      4030336 :          full_data(idata) = data_tmp
   14000      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14001      4030336 :          idata = idata + 1
   14002      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14003      4030336 :          full_data(idata) = data_tmp
   14004      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14005      4030336 :          idata = idata + 1
   14006      4030336 :          data_tmp = ISHFT(pack_tmp, 16)
   14007      4030336 :          ipack = ipack + 1
   14008      4030336 :          pack_tmp = packed_data(ipack)
   14009      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14010      4030336 :          pack_tmp = ISHFT(pack_tmp, -16)
   14011      4030336 :          idata = idata + 1
   14012      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14013      4030336 :          full_data(idata) = data_tmp
   14014      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14015      4030336 :          idata = idata + 1
   14016      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14017      4030336 :          full_data(idata) = data_tmp
   14018      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14019      4030336 :          idata = idata + 1
   14020      4030336 :          data_tmp = ISHFT(pack_tmp, 12)
   14021      4030336 :          ipack = ipack + 1
   14022      4030336 :          pack_tmp = packed_data(ipack)
   14023      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14024      4030336 :          pack_tmp = ISHFT(pack_tmp, -12)
   14025      4030336 :          idata = idata + 1
   14026      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14027      4030336 :          full_data(idata) = data_tmp
   14028      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14029      4030336 :          idata = idata + 1
   14030      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14031      4030336 :          full_data(idata) = data_tmp
   14032      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14033      4030336 :          idata = idata + 1
   14034      4030336 :          data_tmp = ISHFT(pack_tmp, 8)
   14035      4030336 :          ipack = ipack + 1
   14036      4030336 :          pack_tmp = packed_data(ipack)
   14037      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14038      4030336 :          pack_tmp = ISHFT(pack_tmp, -8)
   14039      4030336 :          idata = idata + 1
   14040      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14041      4030336 :          full_data(idata) = data_tmp
   14042      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14043      4030336 :          idata = idata + 1
   14044      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14045      4030336 :          full_data(idata) = data_tmp
   14046      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14047      4030336 :          idata = idata + 1
   14048      4030336 :          data_tmp = ISHFT(pack_tmp, 4)
   14049      4030336 :          ipack = ipack + 1
   14050      4030336 :          pack_tmp = packed_data(ipack)
   14051      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14052      4030336 :          pack_tmp = ISHFT(pack_tmp, -4)
   14053      4030336 :          idata = idata + 1
   14054      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14055      4030336 :          full_data(idata) = data_tmp
   14056      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14057      4030336 :          idata = idata + 1
   14058      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14059      4030336 :          full_data(idata) = data_tmp
   14060      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14061      4030336 :          idata = idata + 1
   14062      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14063      4030336 :          full_data(idata) = data_tmp
   14064      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14065      4030336 :          idata = idata + 1
   14066      4030336 :          data_tmp = ISHFT(pack_tmp, 20)
   14067      4030336 :          ipack = ipack + 1
   14068      4030336 :          pack_tmp = packed_data(ipack)
   14069      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14070      4030336 :          pack_tmp = ISHFT(pack_tmp, -20)
   14071      4030336 :          idata = idata + 1
   14072      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14073      4030336 :          full_data(idata) = data_tmp
   14074      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14075      4030336 :          idata = idata + 1
   14076      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14077      4030336 :          full_data(idata) = data_tmp
   14078      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14079      4030336 :          idata = idata + 1
   14080      4030336 :          data_tmp = ISHFT(pack_tmp, 16)
   14081      4030336 :          ipack = ipack + 1
   14082      4030336 :          pack_tmp = packed_data(ipack)
   14083      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14084      4030336 :          pack_tmp = ISHFT(pack_tmp, -16)
   14085      4030336 :          idata = idata + 1
   14086      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14087      4030336 :          full_data(idata) = data_tmp
   14088      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14089      4030336 :          idata = idata + 1
   14090      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14091      4030336 :          full_data(idata) = data_tmp
   14092      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14093      4030336 :          idata = idata + 1
   14094      4030336 :          data_tmp = ISHFT(pack_tmp, 12)
   14095      4030336 :          ipack = ipack + 1
   14096      4030336 :          pack_tmp = packed_data(ipack)
   14097      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14098      4030336 :          pack_tmp = ISHFT(pack_tmp, -12)
   14099      4030336 :          idata = idata + 1
   14100      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14101      4030336 :          full_data(idata) = data_tmp
   14102      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14103      4030336 :          idata = idata + 1
   14104      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14105      4030336 :          full_data(idata) = data_tmp
   14106      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14107      4030336 :          idata = idata + 1
   14108      4030336 :          data_tmp = ISHFT(pack_tmp, 8)
   14109      4030336 :          ipack = ipack + 1
   14110      4030336 :          pack_tmp = packed_data(ipack)
   14111      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14112      4030336 :          pack_tmp = ISHFT(pack_tmp, -8)
   14113      4030336 :          idata = idata + 1
   14114      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14115      4030336 :          full_data(idata) = data_tmp
   14116      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14117      4030336 :          idata = idata + 1
   14118      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14119      4030336 :          full_data(idata) = data_tmp
   14120      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14121      4030336 :          idata = idata + 1
   14122      4030336 :          data_tmp = ISHFT(pack_tmp, 4)
   14123      4030336 :          ipack = ipack + 1
   14124      4030336 :          pack_tmp = packed_data(ipack)
   14125      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14126      4030336 :          pack_tmp = ISHFT(pack_tmp, -4)
   14127      4030336 :          idata = idata + 1
   14128      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14129      4030336 :          full_data(idata) = data_tmp
   14130      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14131      4030336 :          idata = idata + 1
   14132      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14133      4030336 :          full_data(idata) = data_tmp
   14134      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14135      4030336 :          idata = idata + 1
   14136      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14137      4030336 :          full_data(idata) = data_tmp
   14138      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14139      4030336 :          idata = idata + 1
   14140      4030336 :          data_tmp = ISHFT(pack_tmp, 20)
   14141      4030336 :          ipack = ipack + 1
   14142      4030336 :          pack_tmp = packed_data(ipack)
   14143      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14144      4030336 :          pack_tmp = ISHFT(pack_tmp, -20)
   14145      4030336 :          idata = idata + 1
   14146      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14147      4030336 :          full_data(idata) = data_tmp
   14148      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14149      4030336 :          idata = idata + 1
   14150      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14151      4030336 :          full_data(idata) = data_tmp
   14152      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14153      4030336 :          idata = idata + 1
   14154      4030336 :          data_tmp = ISHFT(pack_tmp, 16)
   14155      4030336 :          ipack = ipack + 1
   14156      4030336 :          pack_tmp = packed_data(ipack)
   14157      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14158      4030336 :          pack_tmp = ISHFT(pack_tmp, -16)
   14159      4030336 :          idata = idata + 1
   14160      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14161      4030336 :          full_data(idata) = data_tmp
   14162      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14163      4030336 :          idata = idata + 1
   14164      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14165      4030336 :          full_data(idata) = data_tmp
   14166      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14167      4030336 :          idata = idata + 1
   14168      4030336 :          data_tmp = ISHFT(pack_tmp, 12)
   14169      4030336 :          ipack = ipack + 1
   14170      4030336 :          pack_tmp = packed_data(ipack)
   14171      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14172      4030336 :          pack_tmp = ISHFT(pack_tmp, -12)
   14173      4030336 :          idata = idata + 1
   14174      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14175      4030336 :          full_data(idata) = data_tmp
   14176      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14177      4030336 :          idata = idata + 1
   14178      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14179      4030336 :          full_data(idata) = data_tmp
   14180      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14181      4030336 :          idata = idata + 1
   14182      4030336 :          data_tmp = ISHFT(pack_tmp, 8)
   14183      4030336 :          ipack = ipack + 1
   14184      4030336 :          pack_tmp = packed_data(ipack)
   14185      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14186      4030336 :          pack_tmp = ISHFT(pack_tmp, -8)
   14187      4030336 :          idata = idata + 1
   14188      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14189      4030336 :          full_data(idata) = data_tmp
   14190      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14191      4030336 :          idata = idata + 1
   14192      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14193      4030336 :          full_data(idata) = data_tmp
   14194      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14195      4030336 :          idata = idata + 1
   14196      4030336 :          data_tmp = ISHFT(pack_tmp, 4)
   14197      4030336 :          ipack = ipack + 1
   14198      4030336 :          pack_tmp = packed_data(ipack)
   14199      4030336 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14200      4030336 :          pack_tmp = ISHFT(pack_tmp, -4)
   14201      4030336 :          idata = idata + 1
   14202      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14203      4030336 :          full_data(idata) = data_tmp
   14204      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14205      4030336 :          idata = idata + 1
   14206      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14207      4030336 :          full_data(idata) = data_tmp
   14208      4030336 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14209      4030336 :          idata = idata + 1
   14210      4030336 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14211      4030336 :          full_data(idata) = data_tmp
   14212      4034512 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14213              :       END DO
   14214       301588 :       IF (Ndata_rep < Ndata) THEN
   14215        84384 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14216              :       END IF
   14217       301588 :    END SUBROUTINE bits2ints_20
   14218              : 
   14219              : ! **************************************************************************************************
   14220              : !> \brief ...
   14221              : !> \param Ndata ...
   14222              : !> \param packed_data ...
   14223              : !> \param full_data ...
   14224              : ! **************************************************************************************************
   14225        30222 :    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        30222 :       idata = 0
   14236        30222 :       ipack = 0
   14237        30222 :       Ndata_rep = (Ndata/64)*64
   14238        30222 :       DO kdata = 1, Ndata_rep, 64
   14239       460908 :          pack_tmp = 0
   14240       460908 :          idata = idata + 1
   14241       460908 :          data_tmp = full_data(idata)
   14242       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14243       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14244       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14245       460908 :          idata = idata + 1
   14246       460908 :          data_tmp = full_data(idata)
   14247       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14248       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14249       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14250       460908 :          idata = idata + 1
   14251       460908 :          data_tmp = full_data(idata)
   14252       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14253       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14254       460908 :          pack_tmp = ISHFT(pack_tmp, -1)
   14255       460908 :          idata = idata + 1
   14256       460908 :          data_tmp = full_data(idata)
   14257       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14258       460908 :          data_tmp = IAND(data_tmp, mask_left(1))
   14259       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14260       460908 :          ipack = ipack + 1
   14261       460908 :          packed_data(ipack) = pack_tmp
   14262       460908 :          data_tmp = full_data(idata)
   14263       460908 :          pack_tmp = ISHFT(data_tmp, 44)
   14264       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14265       460908 :          idata = idata + 1
   14266       460908 :          data_tmp = full_data(idata)
   14267       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14268       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14269       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14270       460908 :          idata = idata + 1
   14271       460908 :          data_tmp = full_data(idata)
   14272       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14273       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14274       460908 :          pack_tmp = ISHFT(pack_tmp, -2)
   14275       460908 :          idata = idata + 1
   14276       460908 :          data_tmp = full_data(idata)
   14277       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14278       460908 :          data_tmp = IAND(data_tmp, mask_left(2))
   14279       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14280       460908 :          ipack = ipack + 1
   14281       460908 :          packed_data(ipack) = pack_tmp
   14282       460908 :          data_tmp = full_data(idata)
   14283       460908 :          pack_tmp = ISHFT(data_tmp, 45)
   14284       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14285       460908 :          idata = idata + 1
   14286       460908 :          data_tmp = full_data(idata)
   14287       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14288       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14289       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14290       460908 :          idata = idata + 1
   14291       460908 :          data_tmp = full_data(idata)
   14292       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14293       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14294       460908 :          pack_tmp = ISHFT(pack_tmp, -3)
   14295       460908 :          idata = idata + 1
   14296       460908 :          data_tmp = full_data(idata)
   14297       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14298       460908 :          data_tmp = IAND(data_tmp, mask_left(3))
   14299       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14300       460908 :          ipack = ipack + 1
   14301       460908 :          packed_data(ipack) = pack_tmp
   14302       460908 :          data_tmp = full_data(idata)
   14303       460908 :          pack_tmp = ISHFT(data_tmp, 46)
   14304       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14305       460908 :          idata = idata + 1
   14306       460908 :          data_tmp = full_data(idata)
   14307       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14308       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14309       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14310       460908 :          idata = idata + 1
   14311       460908 :          data_tmp = full_data(idata)
   14312       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14313       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14314       460908 :          pack_tmp = ISHFT(pack_tmp, -4)
   14315       460908 :          idata = idata + 1
   14316       460908 :          data_tmp = full_data(idata)
   14317       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14318       460908 :          data_tmp = IAND(data_tmp, mask_left(4))
   14319       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14320       460908 :          ipack = ipack + 1
   14321       460908 :          packed_data(ipack) = pack_tmp
   14322       460908 :          data_tmp = full_data(idata)
   14323       460908 :          pack_tmp = ISHFT(data_tmp, 47)
   14324       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14325       460908 :          idata = idata + 1
   14326       460908 :          data_tmp = full_data(idata)
   14327       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14328       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14329       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14330       460908 :          idata = idata + 1
   14331       460908 :          data_tmp = full_data(idata)
   14332       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14333       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14334       460908 :          pack_tmp = ISHFT(pack_tmp, -5)
   14335       460908 :          idata = idata + 1
   14336       460908 :          data_tmp = full_data(idata)
   14337       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14338       460908 :          data_tmp = IAND(data_tmp, mask_left(5))
   14339       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14340       460908 :          ipack = ipack + 1
   14341       460908 :          packed_data(ipack) = pack_tmp
   14342       460908 :          data_tmp = full_data(idata)
   14343       460908 :          pack_tmp = ISHFT(data_tmp, 48)
   14344       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14345       460908 :          idata = idata + 1
   14346       460908 :          data_tmp = full_data(idata)
   14347       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14348       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14349       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14350       460908 :          idata = idata + 1
   14351       460908 :          data_tmp = full_data(idata)
   14352       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14353       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14354       460908 :          pack_tmp = ISHFT(pack_tmp, -6)
   14355       460908 :          idata = idata + 1
   14356       460908 :          data_tmp = full_data(idata)
   14357       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14358       460908 :          data_tmp = IAND(data_tmp, mask_left(6))
   14359       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14360       460908 :          ipack = ipack + 1
   14361       460908 :          packed_data(ipack) = pack_tmp
   14362       460908 :          data_tmp = full_data(idata)
   14363       460908 :          pack_tmp = ISHFT(data_tmp, 49)
   14364       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14365       460908 :          idata = idata + 1
   14366       460908 :          data_tmp = full_data(idata)
   14367       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14368       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14369       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14370       460908 :          idata = idata + 1
   14371       460908 :          data_tmp = full_data(idata)
   14372       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14373       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14374       460908 :          pack_tmp = ISHFT(pack_tmp, -7)
   14375       460908 :          idata = idata + 1
   14376       460908 :          data_tmp = full_data(idata)
   14377       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14378       460908 :          data_tmp = IAND(data_tmp, mask_left(7))
   14379       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14380       460908 :          ipack = ipack + 1
   14381       460908 :          packed_data(ipack) = pack_tmp
   14382       460908 :          data_tmp = full_data(idata)
   14383       460908 :          pack_tmp = ISHFT(data_tmp, 50)
   14384       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14385       460908 :          idata = idata + 1
   14386       460908 :          data_tmp = full_data(idata)
   14387       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14388       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14389       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14390       460908 :          idata = idata + 1
   14391       460908 :          data_tmp = full_data(idata)
   14392       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14393       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14394       460908 :          pack_tmp = ISHFT(pack_tmp, -8)
   14395       460908 :          idata = idata + 1
   14396       460908 :          data_tmp = full_data(idata)
   14397       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14398       460908 :          data_tmp = IAND(data_tmp, mask_left(8))
   14399       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14400       460908 :          ipack = ipack + 1
   14401       460908 :          packed_data(ipack) = pack_tmp
   14402       460908 :          data_tmp = full_data(idata)
   14403       460908 :          pack_tmp = ISHFT(data_tmp, 51)
   14404       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14405       460908 :          idata = idata + 1
   14406       460908 :          data_tmp = full_data(idata)
   14407       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14408       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14409       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14410       460908 :          idata = idata + 1
   14411       460908 :          data_tmp = full_data(idata)
   14412       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14413       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14414       460908 :          pack_tmp = ISHFT(pack_tmp, -9)
   14415       460908 :          idata = idata + 1
   14416       460908 :          data_tmp = full_data(idata)
   14417       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14418       460908 :          data_tmp = IAND(data_tmp, mask_left(9))
   14419       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14420       460908 :          ipack = ipack + 1
   14421       460908 :          packed_data(ipack) = pack_tmp
   14422       460908 :          data_tmp = full_data(idata)
   14423       460908 :          pack_tmp = ISHFT(data_tmp, 52)
   14424       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14425       460908 :          idata = idata + 1
   14426       460908 :          data_tmp = full_data(idata)
   14427       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14428       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14429       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14430       460908 :          idata = idata + 1
   14431       460908 :          data_tmp = full_data(idata)
   14432       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14433       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14434       460908 :          pack_tmp = ISHFT(pack_tmp, -10)
   14435       460908 :          idata = idata + 1
   14436       460908 :          data_tmp = full_data(idata)
   14437       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14438       460908 :          data_tmp = IAND(data_tmp, mask_left(10))
   14439       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14440       460908 :          ipack = ipack + 1
   14441       460908 :          packed_data(ipack) = pack_tmp
   14442       460908 :          data_tmp = full_data(idata)
   14443       460908 :          pack_tmp = ISHFT(data_tmp, 53)
   14444       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14445       460908 :          idata = idata + 1
   14446       460908 :          data_tmp = full_data(idata)
   14447       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14448       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14449       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14450       460908 :          idata = idata + 1
   14451       460908 :          data_tmp = full_data(idata)
   14452       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14453       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14454       460908 :          pack_tmp = ISHFT(pack_tmp, -11)
   14455       460908 :          idata = idata + 1
   14456       460908 :          data_tmp = full_data(idata)
   14457       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14458       460908 :          data_tmp = IAND(data_tmp, mask_left(11))
   14459       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14460       460908 :          ipack = ipack + 1
   14461       460908 :          packed_data(ipack) = pack_tmp
   14462       460908 :          data_tmp = full_data(idata)
   14463       460908 :          pack_tmp = ISHFT(data_tmp, 54)
   14464       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14465       460908 :          idata = idata + 1
   14466       460908 :          data_tmp = full_data(idata)
   14467       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14468       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14469       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14470       460908 :          idata = idata + 1
   14471       460908 :          data_tmp = full_data(idata)
   14472       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14473       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14474       460908 :          pack_tmp = ISHFT(pack_tmp, -12)
   14475       460908 :          idata = idata + 1
   14476       460908 :          data_tmp = full_data(idata)
   14477       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14478       460908 :          data_tmp = IAND(data_tmp, mask_left(12))
   14479       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14480       460908 :          ipack = ipack + 1
   14481       460908 :          packed_data(ipack) = pack_tmp
   14482       460908 :          data_tmp = full_data(idata)
   14483       460908 :          pack_tmp = ISHFT(data_tmp, 55)
   14484       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14485       460908 :          idata = idata + 1
   14486       460908 :          data_tmp = full_data(idata)
   14487       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14488       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14489       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14490       460908 :          idata = idata + 1
   14491       460908 :          data_tmp = full_data(idata)
   14492       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14493       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14494       460908 :          pack_tmp = ISHFT(pack_tmp, -13)
   14495       460908 :          idata = idata + 1
   14496       460908 :          data_tmp = full_data(idata)
   14497       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14498       460908 :          data_tmp = IAND(data_tmp, mask_left(13))
   14499       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14500       460908 :          ipack = ipack + 1
   14501       460908 :          packed_data(ipack) = pack_tmp
   14502       460908 :          data_tmp = full_data(idata)
   14503       460908 :          pack_tmp = ISHFT(data_tmp, 56)
   14504       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14505       460908 :          idata = idata + 1
   14506       460908 :          data_tmp = full_data(idata)
   14507       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14508       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14509       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14510       460908 :          idata = idata + 1
   14511       460908 :          data_tmp = full_data(idata)
   14512       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14513       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14514       460908 :          pack_tmp = ISHFT(pack_tmp, -14)
   14515       460908 :          idata = idata + 1
   14516       460908 :          data_tmp = full_data(idata)
   14517       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14518       460908 :          data_tmp = IAND(data_tmp, mask_left(14))
   14519       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14520       460908 :          ipack = ipack + 1
   14521       460908 :          packed_data(ipack) = pack_tmp
   14522       460908 :          data_tmp = full_data(idata)
   14523       460908 :          pack_tmp = ISHFT(data_tmp, 57)
   14524       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14525       460908 :          idata = idata + 1
   14526       460908 :          data_tmp = full_data(idata)
   14527       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14528       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14529       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14530       460908 :          idata = idata + 1
   14531       460908 :          data_tmp = full_data(idata)
   14532       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14533       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14534       460908 :          pack_tmp = ISHFT(pack_tmp, -15)
   14535       460908 :          idata = idata + 1
   14536       460908 :          data_tmp = full_data(idata)
   14537       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14538       460908 :          data_tmp = IAND(data_tmp, mask_left(15))
   14539       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14540       460908 :          ipack = ipack + 1
   14541       460908 :          packed_data(ipack) = pack_tmp
   14542       460908 :          data_tmp = full_data(idata)
   14543       460908 :          pack_tmp = ISHFT(data_tmp, 58)
   14544       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14545       460908 :          idata = idata + 1
   14546       460908 :          data_tmp = full_data(idata)
   14547       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14548       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14549       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14550       460908 :          idata = idata + 1
   14551       460908 :          data_tmp = full_data(idata)
   14552       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14553       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14554       460908 :          pack_tmp = ISHFT(pack_tmp, -16)
   14555       460908 :          idata = idata + 1
   14556       460908 :          data_tmp = full_data(idata)
   14557       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14558       460908 :          data_tmp = IAND(data_tmp, mask_left(16))
   14559       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14560       460908 :          ipack = ipack + 1
   14561       460908 :          packed_data(ipack) = pack_tmp
   14562       460908 :          data_tmp = full_data(idata)
   14563       460908 :          pack_tmp = ISHFT(data_tmp, 59)
   14564       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14565       460908 :          idata = idata + 1
   14566       460908 :          data_tmp = full_data(idata)
   14567       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14568       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14569       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14570       460908 :          idata = idata + 1
   14571       460908 :          data_tmp = full_data(idata)
   14572       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14573       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14574       460908 :          pack_tmp = ISHFT(pack_tmp, -17)
   14575       460908 :          idata = idata + 1
   14576       460908 :          data_tmp = full_data(idata)
   14577       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14578       460908 :          data_tmp = IAND(data_tmp, mask_left(17))
   14579       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14580       460908 :          ipack = ipack + 1
   14581       460908 :          packed_data(ipack) = pack_tmp
   14582       460908 :          data_tmp = full_data(idata)
   14583       460908 :          pack_tmp = ISHFT(data_tmp, 60)
   14584       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14585       460908 :          idata = idata + 1
   14586       460908 :          data_tmp = full_data(idata)
   14587       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14588       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14589       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14590       460908 :          idata = idata + 1
   14591       460908 :          data_tmp = full_data(idata)
   14592       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14593       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14594       460908 :          pack_tmp = ISHFT(pack_tmp, -18)
   14595       460908 :          idata = idata + 1
   14596       460908 :          data_tmp = full_data(idata)
   14597       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14598       460908 :          data_tmp = IAND(data_tmp, mask_left(18))
   14599       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14600       460908 :          ipack = ipack + 1
   14601       460908 :          packed_data(ipack) = pack_tmp
   14602       460908 :          data_tmp = full_data(idata)
   14603       460908 :          pack_tmp = ISHFT(data_tmp, 61)
   14604       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14605       460908 :          idata = idata + 1
   14606       460908 :          data_tmp = full_data(idata)
   14607       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14608       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14609       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14610       460908 :          idata = idata + 1
   14611       460908 :          data_tmp = full_data(idata)
   14612       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14613       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14614       460908 :          pack_tmp = ISHFT(pack_tmp, -19)
   14615       460908 :          idata = idata + 1
   14616       460908 :          data_tmp = full_data(idata)
   14617       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14618       460908 :          data_tmp = IAND(data_tmp, mask_left(19))
   14619       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14620       460908 :          ipack = ipack + 1
   14621       460908 :          packed_data(ipack) = pack_tmp
   14622       460908 :          data_tmp = full_data(idata)
   14623       460908 :          pack_tmp = ISHFT(data_tmp, 62)
   14624       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14625       460908 :          idata = idata + 1
   14626       460908 :          data_tmp = full_data(idata)
   14627       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14628       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14629       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14630       460908 :          idata = idata + 1
   14631       460908 :          data_tmp = full_data(idata)
   14632       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14633       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14634       460908 :          pack_tmp = ISHFT(pack_tmp, -20)
   14635       460908 :          idata = idata + 1
   14636       460908 :          data_tmp = full_data(idata)
   14637       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14638       460908 :          data_tmp = IAND(data_tmp, mask_left(20))
   14639       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14640       460908 :          ipack = ipack + 1
   14641       460908 :          packed_data(ipack) = pack_tmp
   14642       460908 :          data_tmp = full_data(idata)
   14643       460908 :          pack_tmp = ISHFT(data_tmp, 63)
   14644       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14645       460908 :          idata = idata + 1
   14646       460908 :          data_tmp = full_data(idata)
   14647       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14648       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14649       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14650       460908 :          idata = idata + 1
   14651       460908 :          data_tmp = full_data(idata)
   14652       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14653       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14654       460908 :          pack_tmp = ISHFT(pack_tmp, -21)
   14655       460908 :          idata = idata + 1
   14656       460908 :          data_tmp = full_data(idata)
   14657       460908 :          data_tmp = ISHFT(data_tmp, 43)
   14658       460908 :          pack_tmp = IOR(pack_tmp, data_tmp)
   14659              :          pack_tmp = ISHFT(pack_tmp, 0)
   14660       460908 :          pack_tmp = ISHFT(pack_tmp, 0)
   14661       460908 :          ipack = ipack + 1
   14662       461269 :          packed_data(ipack) = pack_tmp
   14663              :       END DO
   14664        30222 :       IF (Ndata_rep < Ndata) THEN
   14665         2664 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14666              :       END IF
   14667        30222 :    END SUBROUTINE ints2bits_21
   14668              : 
   14669              : ! **************************************************************************************************
   14670              : !> \brief ...
   14671              : !> \param Ndata ...
   14672              : !> \param packed_data ...
   14673              : !> \param full_data ...
   14674              : ! **************************************************************************************************
   14675       154236 :    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       154236 :       ipack = 0
   14686       154236 :       idata = 0
   14687       154236 :       pack_tmp = 0
   14688       154236 :       Ndata_rep = (Ndata/64)*64
   14689       154236 :       DO kdata = 1, Ndata_rep, 64
   14690      2261209 :          idata = idata + 1
   14691      2261209 :          data_tmp = ISHFT(pack_tmp, 21)
   14692      2261209 :          ipack = ipack + 1
   14693      2261209 :          pack_tmp = packed_data(ipack)
   14694      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   14695      2261209 :          pack_tmp = ISHFT(pack_tmp, -21)
   14696      2261209 :          idata = idata + 1
   14697      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14698      2261209 :          full_data(idata) = data_tmp
   14699      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14700      2261209 :          idata = idata + 1
   14701      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14702      2261209 :          full_data(idata) = data_tmp
   14703      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14704      2261209 :          idata = idata + 1
   14705      2261209 :          data_tmp = ISHFT(pack_tmp, 20)
   14706      2261209 :          ipack = ipack + 1
   14707      2261209 :          pack_tmp = packed_data(ipack)
   14708      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   14709      2261209 :          pack_tmp = ISHFT(pack_tmp, -20)
   14710      2261209 :          idata = idata + 1
   14711      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14712      2261209 :          full_data(idata) = data_tmp
   14713      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14714      2261209 :          idata = idata + 1
   14715      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14716      2261209 :          full_data(idata) = data_tmp
   14717      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14718      2261209 :          idata = idata + 1
   14719      2261209 :          data_tmp = ISHFT(pack_tmp, 19)
   14720      2261209 :          ipack = ipack + 1
   14721      2261209 :          pack_tmp = packed_data(ipack)
   14722      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   14723      2261209 :          pack_tmp = ISHFT(pack_tmp, -19)
   14724      2261209 :          idata = idata + 1
   14725      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14726      2261209 :          full_data(idata) = data_tmp
   14727      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14728      2261209 :          idata = idata + 1
   14729      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14730      2261209 :          full_data(idata) = data_tmp
   14731      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14732      2261209 :          idata = idata + 1
   14733      2261209 :          data_tmp = ISHFT(pack_tmp, 18)
   14734      2261209 :          ipack = ipack + 1
   14735      2261209 :          pack_tmp = packed_data(ipack)
   14736      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   14737      2261209 :          pack_tmp = ISHFT(pack_tmp, -18)
   14738      2261209 :          idata = idata + 1
   14739      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14740      2261209 :          full_data(idata) = data_tmp
   14741      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14742      2261209 :          idata = idata + 1
   14743      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14744      2261209 :          full_data(idata) = data_tmp
   14745      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14746      2261209 :          idata = idata + 1
   14747      2261209 :          data_tmp = ISHFT(pack_tmp, 17)
   14748      2261209 :          ipack = ipack + 1
   14749      2261209 :          pack_tmp = packed_data(ipack)
   14750      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   14751      2261209 :          pack_tmp = ISHFT(pack_tmp, -17)
   14752      2261209 :          idata = idata + 1
   14753      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14754      2261209 :          full_data(idata) = data_tmp
   14755      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14756      2261209 :          idata = idata + 1
   14757      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14758      2261209 :          full_data(idata) = data_tmp
   14759      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14760      2261209 :          idata = idata + 1
   14761      2261209 :          data_tmp = ISHFT(pack_tmp, 16)
   14762      2261209 :          ipack = ipack + 1
   14763      2261209 :          pack_tmp = packed_data(ipack)
   14764      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   14765      2261209 :          pack_tmp = ISHFT(pack_tmp, -16)
   14766      2261209 :          idata = idata + 1
   14767      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14768      2261209 :          full_data(idata) = data_tmp
   14769      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14770      2261209 :          idata = idata + 1
   14771      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14772      2261209 :          full_data(idata) = data_tmp
   14773      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14774      2261209 :          idata = idata + 1
   14775      2261209 :          data_tmp = ISHFT(pack_tmp, 15)
   14776      2261209 :          ipack = ipack + 1
   14777      2261209 :          pack_tmp = packed_data(ipack)
   14778      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   14779      2261209 :          pack_tmp = ISHFT(pack_tmp, -15)
   14780      2261209 :          idata = idata + 1
   14781      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14782      2261209 :          full_data(idata) = data_tmp
   14783      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14784      2261209 :          idata = idata + 1
   14785      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14786      2261209 :          full_data(idata) = data_tmp
   14787      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14788      2261209 :          idata = idata + 1
   14789      2261209 :          data_tmp = ISHFT(pack_tmp, 14)
   14790      2261209 :          ipack = ipack + 1
   14791      2261209 :          pack_tmp = packed_data(ipack)
   14792      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   14793      2261209 :          pack_tmp = ISHFT(pack_tmp, -14)
   14794      2261209 :          idata = idata + 1
   14795      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14796      2261209 :          full_data(idata) = data_tmp
   14797      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14798      2261209 :          idata = idata + 1
   14799      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14800      2261209 :          full_data(idata) = data_tmp
   14801      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14802      2261209 :          idata = idata + 1
   14803      2261209 :          data_tmp = ISHFT(pack_tmp, 13)
   14804      2261209 :          ipack = ipack + 1
   14805      2261209 :          pack_tmp = packed_data(ipack)
   14806      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   14807      2261209 :          pack_tmp = ISHFT(pack_tmp, -13)
   14808      2261209 :          idata = idata + 1
   14809      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14810      2261209 :          full_data(idata) = data_tmp
   14811      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14812      2261209 :          idata = idata + 1
   14813      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14814      2261209 :          full_data(idata) = data_tmp
   14815      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14816      2261209 :          idata = idata + 1
   14817      2261209 :          data_tmp = ISHFT(pack_tmp, 12)
   14818      2261209 :          ipack = ipack + 1
   14819      2261209 :          pack_tmp = packed_data(ipack)
   14820      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   14821      2261209 :          pack_tmp = ISHFT(pack_tmp, -12)
   14822      2261209 :          idata = idata + 1
   14823      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14824      2261209 :          full_data(idata) = data_tmp
   14825      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14826      2261209 :          idata = idata + 1
   14827      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14828      2261209 :          full_data(idata) = data_tmp
   14829      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14830      2261209 :          idata = idata + 1
   14831      2261209 :          data_tmp = ISHFT(pack_tmp, 11)
   14832      2261209 :          ipack = ipack + 1
   14833      2261209 :          pack_tmp = packed_data(ipack)
   14834      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   14835      2261209 :          pack_tmp = ISHFT(pack_tmp, -11)
   14836      2261209 :          idata = idata + 1
   14837      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14838      2261209 :          full_data(idata) = data_tmp
   14839      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14840      2261209 :          idata = idata + 1
   14841      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14842      2261209 :          full_data(idata) = data_tmp
   14843      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14844      2261209 :          idata = idata + 1
   14845      2261209 :          data_tmp = ISHFT(pack_tmp, 10)
   14846      2261209 :          ipack = ipack + 1
   14847      2261209 :          pack_tmp = packed_data(ipack)
   14848      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   14849      2261209 :          pack_tmp = ISHFT(pack_tmp, -10)
   14850      2261209 :          idata = idata + 1
   14851      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14852      2261209 :          full_data(idata) = data_tmp
   14853      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14854      2261209 :          idata = idata + 1
   14855      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14856      2261209 :          full_data(idata) = data_tmp
   14857      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14858      2261209 :          idata = idata + 1
   14859      2261209 :          data_tmp = ISHFT(pack_tmp, 9)
   14860      2261209 :          ipack = ipack + 1
   14861      2261209 :          pack_tmp = packed_data(ipack)
   14862      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   14863      2261209 :          pack_tmp = ISHFT(pack_tmp, -9)
   14864      2261209 :          idata = idata + 1
   14865      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14866      2261209 :          full_data(idata) = data_tmp
   14867      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14868      2261209 :          idata = idata + 1
   14869      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14870      2261209 :          full_data(idata) = data_tmp
   14871      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14872      2261209 :          idata = idata + 1
   14873      2261209 :          data_tmp = ISHFT(pack_tmp, 8)
   14874      2261209 :          ipack = ipack + 1
   14875      2261209 :          pack_tmp = packed_data(ipack)
   14876      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   14877      2261209 :          pack_tmp = ISHFT(pack_tmp, -8)
   14878      2261209 :          idata = idata + 1
   14879      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14880      2261209 :          full_data(idata) = data_tmp
   14881      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14882      2261209 :          idata = idata + 1
   14883      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14884      2261209 :          full_data(idata) = data_tmp
   14885      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14886      2261209 :          idata = idata + 1
   14887      2261209 :          data_tmp = ISHFT(pack_tmp, 7)
   14888      2261209 :          ipack = ipack + 1
   14889      2261209 :          pack_tmp = packed_data(ipack)
   14890      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   14891      2261209 :          pack_tmp = ISHFT(pack_tmp, -7)
   14892      2261209 :          idata = idata + 1
   14893      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14894      2261209 :          full_data(idata) = data_tmp
   14895      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14896      2261209 :          idata = idata + 1
   14897      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14898      2261209 :          full_data(idata) = data_tmp
   14899      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14900      2261209 :          idata = idata + 1
   14901      2261209 :          data_tmp = ISHFT(pack_tmp, 6)
   14902      2261209 :          ipack = ipack + 1
   14903      2261209 :          pack_tmp = packed_data(ipack)
   14904      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   14905      2261209 :          pack_tmp = ISHFT(pack_tmp, -6)
   14906      2261209 :          idata = idata + 1
   14907      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14908      2261209 :          full_data(idata) = data_tmp
   14909      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14910      2261209 :          idata = idata + 1
   14911      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14912      2261209 :          full_data(idata) = data_tmp
   14913      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14914      2261209 :          idata = idata + 1
   14915      2261209 :          data_tmp = ISHFT(pack_tmp, 5)
   14916      2261209 :          ipack = ipack + 1
   14917      2261209 :          pack_tmp = packed_data(ipack)
   14918      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   14919      2261209 :          pack_tmp = ISHFT(pack_tmp, -5)
   14920      2261209 :          idata = idata + 1
   14921      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14922      2261209 :          full_data(idata) = data_tmp
   14923      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14924      2261209 :          idata = idata + 1
   14925      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14926      2261209 :          full_data(idata) = data_tmp
   14927      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14928      2261209 :          idata = idata + 1
   14929      2261209 :          data_tmp = ISHFT(pack_tmp, 4)
   14930      2261209 :          ipack = ipack + 1
   14931      2261209 :          pack_tmp = packed_data(ipack)
   14932      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   14933      2261209 :          pack_tmp = ISHFT(pack_tmp, -4)
   14934      2261209 :          idata = idata + 1
   14935      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14936      2261209 :          full_data(idata) = data_tmp
   14937      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14938      2261209 :          idata = idata + 1
   14939      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14940      2261209 :          full_data(idata) = data_tmp
   14941      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14942      2261209 :          idata = idata + 1
   14943      2261209 :          data_tmp = ISHFT(pack_tmp, 3)
   14944      2261209 :          ipack = ipack + 1
   14945      2261209 :          pack_tmp = packed_data(ipack)
   14946      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   14947      2261209 :          pack_tmp = ISHFT(pack_tmp, -3)
   14948      2261209 :          idata = idata + 1
   14949      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14950      2261209 :          full_data(idata) = data_tmp
   14951      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14952      2261209 :          idata = idata + 1
   14953      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14954      2261209 :          full_data(idata) = data_tmp
   14955      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14956      2261209 :          idata = idata + 1
   14957      2261209 :          data_tmp = ISHFT(pack_tmp, 2)
   14958      2261209 :          ipack = ipack + 1
   14959      2261209 :          pack_tmp = packed_data(ipack)
   14960      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   14961      2261209 :          pack_tmp = ISHFT(pack_tmp, -2)
   14962      2261209 :          idata = idata + 1
   14963      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14964      2261209 :          full_data(idata) = data_tmp
   14965      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14966      2261209 :          idata = idata + 1
   14967      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14968      2261209 :          full_data(idata) = data_tmp
   14969      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14970      2261209 :          idata = idata + 1
   14971      2261209 :          data_tmp = ISHFT(pack_tmp, 1)
   14972      2261209 :          ipack = ipack + 1
   14973      2261209 :          pack_tmp = packed_data(ipack)
   14974      2261209 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   14975      2261209 :          pack_tmp = ISHFT(pack_tmp, -1)
   14976      2261209 :          idata = idata + 1
   14977      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14978      2261209 :          full_data(idata) = data_tmp
   14979      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14980      2261209 :          idata = idata + 1
   14981      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14982      2261209 :          full_data(idata) = data_tmp
   14983      2261209 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14984      2261209 :          idata = idata + 1
   14985      2261209 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   14986      2261209 :          full_data(idata) = data_tmp
   14987      2264697 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   14988              :       END DO
   14989       154236 :       IF (Ndata_rep < Ndata) THEN
   14990        24302 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   14991              :       END IF
   14992       154236 :    END SUBROUTINE bits2ints_21
   14993              : 
   14994              : ! **************************************************************************************************
   14995              : !> \brief ...
   14996              : !> \param Ndata ...
   14997              : !> \param packed_data ...
   14998              : !> \param full_data ...
   14999              : ! **************************************************************************************************
   15000        30037 :    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        30037 :       idata = 0
   15011        30037 :       ipack = 0
   15012        30037 :       Ndata_rep = (Ndata/64)*64
   15013        30037 :       DO kdata = 1, Ndata_rep, 64
   15014       456622 :          pack_tmp = 0
   15015       456622 :          idata = idata + 1
   15016       456622 :          data_tmp = full_data(idata)
   15017       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15018       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15019       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15020       456622 :          idata = idata + 1
   15021       456622 :          data_tmp = full_data(idata)
   15022       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15023       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15024       456622 :          pack_tmp = ISHFT(pack_tmp, -20)
   15025       456622 :          idata = idata + 1
   15026       456622 :          data_tmp = full_data(idata)
   15027       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15028       456622 :          data_tmp = IAND(data_tmp, mask_left(20))
   15029       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15030       456622 :          ipack = ipack + 1
   15031       456622 :          packed_data(ipack) = pack_tmp
   15032       456622 :          data_tmp = full_data(idata)
   15033       456622 :          pack_tmp = ISHFT(data_tmp, 62)
   15034       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15035       456622 :          idata = idata + 1
   15036       456622 :          data_tmp = full_data(idata)
   15037       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15038       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15039       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15040       456622 :          idata = idata + 1
   15041       456622 :          data_tmp = full_data(idata)
   15042       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15043       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15044       456622 :          pack_tmp = ISHFT(pack_tmp, -18)
   15045       456622 :          idata = idata + 1
   15046       456622 :          data_tmp = full_data(idata)
   15047       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15048       456622 :          data_tmp = IAND(data_tmp, mask_left(18))
   15049       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15050       456622 :          ipack = ipack + 1
   15051       456622 :          packed_data(ipack) = pack_tmp
   15052       456622 :          data_tmp = full_data(idata)
   15053       456622 :          pack_tmp = ISHFT(data_tmp, 60)
   15054       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15055       456622 :          idata = idata + 1
   15056       456622 :          data_tmp = full_data(idata)
   15057       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15058       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15059       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15060       456622 :          idata = idata + 1
   15061       456622 :          data_tmp = full_data(idata)
   15062       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15063       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15064       456622 :          pack_tmp = ISHFT(pack_tmp, -16)
   15065       456622 :          idata = idata + 1
   15066       456622 :          data_tmp = full_data(idata)
   15067       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15068       456622 :          data_tmp = IAND(data_tmp, mask_left(16))
   15069       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15070       456622 :          ipack = ipack + 1
   15071       456622 :          packed_data(ipack) = pack_tmp
   15072       456622 :          data_tmp = full_data(idata)
   15073       456622 :          pack_tmp = ISHFT(data_tmp, 58)
   15074       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15075       456622 :          idata = idata + 1
   15076       456622 :          data_tmp = full_data(idata)
   15077       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15078       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15079       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15080       456622 :          idata = idata + 1
   15081       456622 :          data_tmp = full_data(idata)
   15082       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15083       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15084       456622 :          pack_tmp = ISHFT(pack_tmp, -14)
   15085       456622 :          idata = idata + 1
   15086       456622 :          data_tmp = full_data(idata)
   15087       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15088       456622 :          data_tmp = IAND(data_tmp, mask_left(14))
   15089       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15090       456622 :          ipack = ipack + 1
   15091       456622 :          packed_data(ipack) = pack_tmp
   15092       456622 :          data_tmp = full_data(idata)
   15093       456622 :          pack_tmp = ISHFT(data_tmp, 56)
   15094       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15095       456622 :          idata = idata + 1
   15096       456622 :          data_tmp = full_data(idata)
   15097       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15098       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15099       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15100       456622 :          idata = idata + 1
   15101       456622 :          data_tmp = full_data(idata)
   15102       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15103       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15104       456622 :          pack_tmp = ISHFT(pack_tmp, -12)
   15105       456622 :          idata = idata + 1
   15106       456622 :          data_tmp = full_data(idata)
   15107       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15108       456622 :          data_tmp = IAND(data_tmp, mask_left(12))
   15109       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15110       456622 :          ipack = ipack + 1
   15111       456622 :          packed_data(ipack) = pack_tmp
   15112       456622 :          data_tmp = full_data(idata)
   15113       456622 :          pack_tmp = ISHFT(data_tmp, 54)
   15114       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15115       456622 :          idata = idata + 1
   15116       456622 :          data_tmp = full_data(idata)
   15117       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15118       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15119       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15120       456622 :          idata = idata + 1
   15121       456622 :          data_tmp = full_data(idata)
   15122       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15123       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15124       456622 :          pack_tmp = ISHFT(pack_tmp, -10)
   15125       456622 :          idata = idata + 1
   15126       456622 :          data_tmp = full_data(idata)
   15127       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15128       456622 :          data_tmp = IAND(data_tmp, mask_left(10))
   15129       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15130       456622 :          ipack = ipack + 1
   15131       456622 :          packed_data(ipack) = pack_tmp
   15132       456622 :          data_tmp = full_data(idata)
   15133       456622 :          pack_tmp = ISHFT(data_tmp, 52)
   15134       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15135       456622 :          idata = idata + 1
   15136       456622 :          data_tmp = full_data(idata)
   15137       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15138       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15139       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15140       456622 :          idata = idata + 1
   15141       456622 :          data_tmp = full_data(idata)
   15142       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15143       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15144       456622 :          pack_tmp = ISHFT(pack_tmp, -8)
   15145       456622 :          idata = idata + 1
   15146       456622 :          data_tmp = full_data(idata)
   15147       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15148       456622 :          data_tmp = IAND(data_tmp, mask_left(8))
   15149       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15150       456622 :          ipack = ipack + 1
   15151       456622 :          packed_data(ipack) = pack_tmp
   15152       456622 :          data_tmp = full_data(idata)
   15153       456622 :          pack_tmp = ISHFT(data_tmp, 50)
   15154       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15155       456622 :          idata = idata + 1
   15156       456622 :          data_tmp = full_data(idata)
   15157       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15158       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15159       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15160       456622 :          idata = idata + 1
   15161       456622 :          data_tmp = full_data(idata)
   15162       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15163       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15164       456622 :          pack_tmp = ISHFT(pack_tmp, -6)
   15165       456622 :          idata = idata + 1
   15166       456622 :          data_tmp = full_data(idata)
   15167       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15168       456622 :          data_tmp = IAND(data_tmp, mask_left(6))
   15169       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15170       456622 :          ipack = ipack + 1
   15171       456622 :          packed_data(ipack) = pack_tmp
   15172       456622 :          data_tmp = full_data(idata)
   15173       456622 :          pack_tmp = ISHFT(data_tmp, 48)
   15174       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15175       456622 :          idata = idata + 1
   15176       456622 :          data_tmp = full_data(idata)
   15177       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15178       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15179       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15180       456622 :          idata = idata + 1
   15181       456622 :          data_tmp = full_data(idata)
   15182       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15183       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15184       456622 :          pack_tmp = ISHFT(pack_tmp, -4)
   15185       456622 :          idata = idata + 1
   15186       456622 :          data_tmp = full_data(idata)
   15187       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15188       456622 :          data_tmp = IAND(data_tmp, mask_left(4))
   15189       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15190       456622 :          ipack = ipack + 1
   15191       456622 :          packed_data(ipack) = pack_tmp
   15192       456622 :          data_tmp = full_data(idata)
   15193       456622 :          pack_tmp = ISHFT(data_tmp, 46)
   15194       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15195       456622 :          idata = idata + 1
   15196       456622 :          data_tmp = full_data(idata)
   15197       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15198       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15199       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15200       456622 :          idata = idata + 1
   15201       456622 :          data_tmp = full_data(idata)
   15202       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15203       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15204       456622 :          pack_tmp = ISHFT(pack_tmp, -2)
   15205       456622 :          idata = idata + 1
   15206       456622 :          data_tmp = full_data(idata)
   15207       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15208       456622 :          data_tmp = IAND(data_tmp, mask_left(2))
   15209       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15210       456622 :          ipack = ipack + 1
   15211       456622 :          packed_data(ipack) = pack_tmp
   15212       456622 :          data_tmp = full_data(idata)
   15213       456622 :          pack_tmp = ISHFT(data_tmp, 44)
   15214       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15215       456622 :          idata = idata + 1
   15216       456622 :          data_tmp = full_data(idata)
   15217       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15218       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15219       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15220       456622 :          idata = idata + 1
   15221       456622 :          data_tmp = full_data(idata)
   15222       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15223       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15224       456622 :          pack_tmp = ISHFT(pack_tmp, 0)
   15225       456622 :          idata = idata + 1
   15226       456622 :          data_tmp = full_data(idata)
   15227              :          data_tmp = ISHFT(data_tmp, 42)
   15228       456622 :          data_tmp = IAND(data_tmp, mask_left(0))
   15229       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15230       456622 :          ipack = ipack + 1
   15231       456622 :          packed_data(ipack) = pack_tmp
   15232       456622 :          data_tmp = full_data(idata)
   15233       456622 :          pack_tmp = ISHFT(data_tmp, 42)
   15234       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15235       456622 :          idata = idata + 1
   15236       456622 :          data_tmp = full_data(idata)
   15237       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15238       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15239       456622 :          pack_tmp = ISHFT(pack_tmp, -20)
   15240       456622 :          idata = idata + 1
   15241       456622 :          data_tmp = full_data(idata)
   15242       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15243       456622 :          data_tmp = IAND(data_tmp, mask_left(20))
   15244       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15245       456622 :          ipack = ipack + 1
   15246       456622 :          packed_data(ipack) = pack_tmp
   15247       456622 :          data_tmp = full_data(idata)
   15248       456622 :          pack_tmp = ISHFT(data_tmp, 62)
   15249       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15250       456622 :          idata = idata + 1
   15251       456622 :          data_tmp = full_data(idata)
   15252       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15253       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15254       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15255       456622 :          idata = idata + 1
   15256       456622 :          data_tmp = full_data(idata)
   15257       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15258       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15259       456622 :          pack_tmp = ISHFT(pack_tmp, -18)
   15260       456622 :          idata = idata + 1
   15261       456622 :          data_tmp = full_data(idata)
   15262       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15263       456622 :          data_tmp = IAND(data_tmp, mask_left(18))
   15264       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15265       456622 :          ipack = ipack + 1
   15266       456622 :          packed_data(ipack) = pack_tmp
   15267       456622 :          data_tmp = full_data(idata)
   15268       456622 :          pack_tmp = ISHFT(data_tmp, 60)
   15269       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15270       456622 :          idata = idata + 1
   15271       456622 :          data_tmp = full_data(idata)
   15272       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15273       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15274       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15275       456622 :          idata = idata + 1
   15276       456622 :          data_tmp = full_data(idata)
   15277       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15278       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15279       456622 :          pack_tmp = ISHFT(pack_tmp, -16)
   15280       456622 :          idata = idata + 1
   15281       456622 :          data_tmp = full_data(idata)
   15282       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15283       456622 :          data_tmp = IAND(data_tmp, mask_left(16))
   15284       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15285       456622 :          ipack = ipack + 1
   15286       456622 :          packed_data(ipack) = pack_tmp
   15287       456622 :          data_tmp = full_data(idata)
   15288       456622 :          pack_tmp = ISHFT(data_tmp, 58)
   15289       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15290       456622 :          idata = idata + 1
   15291       456622 :          data_tmp = full_data(idata)
   15292       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15293       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15294       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15295       456622 :          idata = idata + 1
   15296       456622 :          data_tmp = full_data(idata)
   15297       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15298       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15299       456622 :          pack_tmp = ISHFT(pack_tmp, -14)
   15300       456622 :          idata = idata + 1
   15301       456622 :          data_tmp = full_data(idata)
   15302       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15303       456622 :          data_tmp = IAND(data_tmp, mask_left(14))
   15304       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15305       456622 :          ipack = ipack + 1
   15306       456622 :          packed_data(ipack) = pack_tmp
   15307       456622 :          data_tmp = full_data(idata)
   15308       456622 :          pack_tmp = ISHFT(data_tmp, 56)
   15309       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15310       456622 :          idata = idata + 1
   15311       456622 :          data_tmp = full_data(idata)
   15312       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15313       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15314       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15315       456622 :          idata = idata + 1
   15316       456622 :          data_tmp = full_data(idata)
   15317       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15318       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15319       456622 :          pack_tmp = ISHFT(pack_tmp, -12)
   15320       456622 :          idata = idata + 1
   15321       456622 :          data_tmp = full_data(idata)
   15322       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15323       456622 :          data_tmp = IAND(data_tmp, mask_left(12))
   15324       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15325       456622 :          ipack = ipack + 1
   15326       456622 :          packed_data(ipack) = pack_tmp
   15327       456622 :          data_tmp = full_data(idata)
   15328       456622 :          pack_tmp = ISHFT(data_tmp, 54)
   15329       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15330       456622 :          idata = idata + 1
   15331       456622 :          data_tmp = full_data(idata)
   15332       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15333       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15334       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15335       456622 :          idata = idata + 1
   15336       456622 :          data_tmp = full_data(idata)
   15337       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15338       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15339       456622 :          pack_tmp = ISHFT(pack_tmp, -10)
   15340       456622 :          idata = idata + 1
   15341       456622 :          data_tmp = full_data(idata)
   15342       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15343       456622 :          data_tmp = IAND(data_tmp, mask_left(10))
   15344       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15345       456622 :          ipack = ipack + 1
   15346       456622 :          packed_data(ipack) = pack_tmp
   15347       456622 :          data_tmp = full_data(idata)
   15348       456622 :          pack_tmp = ISHFT(data_tmp, 52)
   15349       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15350       456622 :          idata = idata + 1
   15351       456622 :          data_tmp = full_data(idata)
   15352       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15353       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15354       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15355       456622 :          idata = idata + 1
   15356       456622 :          data_tmp = full_data(idata)
   15357       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15358       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15359       456622 :          pack_tmp = ISHFT(pack_tmp, -8)
   15360       456622 :          idata = idata + 1
   15361       456622 :          data_tmp = full_data(idata)
   15362       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15363       456622 :          data_tmp = IAND(data_tmp, mask_left(8))
   15364       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15365       456622 :          ipack = ipack + 1
   15366       456622 :          packed_data(ipack) = pack_tmp
   15367       456622 :          data_tmp = full_data(idata)
   15368       456622 :          pack_tmp = ISHFT(data_tmp, 50)
   15369       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15370       456622 :          idata = idata + 1
   15371       456622 :          data_tmp = full_data(idata)
   15372       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15373       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15374       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15375       456622 :          idata = idata + 1
   15376       456622 :          data_tmp = full_data(idata)
   15377       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15378       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15379       456622 :          pack_tmp = ISHFT(pack_tmp, -6)
   15380       456622 :          idata = idata + 1
   15381       456622 :          data_tmp = full_data(idata)
   15382       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15383       456622 :          data_tmp = IAND(data_tmp, mask_left(6))
   15384       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15385       456622 :          ipack = ipack + 1
   15386       456622 :          packed_data(ipack) = pack_tmp
   15387       456622 :          data_tmp = full_data(idata)
   15388       456622 :          pack_tmp = ISHFT(data_tmp, 48)
   15389       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15390       456622 :          idata = idata + 1
   15391       456622 :          data_tmp = full_data(idata)
   15392       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15393       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15394       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15395       456622 :          idata = idata + 1
   15396       456622 :          data_tmp = full_data(idata)
   15397       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15398       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15399       456622 :          pack_tmp = ISHFT(pack_tmp, -4)
   15400       456622 :          idata = idata + 1
   15401       456622 :          data_tmp = full_data(idata)
   15402       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15403       456622 :          data_tmp = IAND(data_tmp, mask_left(4))
   15404       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15405       456622 :          ipack = ipack + 1
   15406       456622 :          packed_data(ipack) = pack_tmp
   15407       456622 :          data_tmp = full_data(idata)
   15408       456622 :          pack_tmp = ISHFT(data_tmp, 46)
   15409       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15410       456622 :          idata = idata + 1
   15411       456622 :          data_tmp = full_data(idata)
   15412       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15413       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15414       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15415       456622 :          idata = idata + 1
   15416       456622 :          data_tmp = full_data(idata)
   15417       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15418       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15419       456622 :          pack_tmp = ISHFT(pack_tmp, -2)
   15420       456622 :          idata = idata + 1
   15421       456622 :          data_tmp = full_data(idata)
   15422       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15423       456622 :          data_tmp = IAND(data_tmp, mask_left(2))
   15424       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15425       456622 :          ipack = ipack + 1
   15426       456622 :          packed_data(ipack) = pack_tmp
   15427       456622 :          data_tmp = full_data(idata)
   15428       456622 :          pack_tmp = ISHFT(data_tmp, 44)
   15429       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15430       456622 :          idata = idata + 1
   15431       456622 :          data_tmp = full_data(idata)
   15432       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15433       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15434       456622 :          pack_tmp = ISHFT(pack_tmp, -22)
   15435       456622 :          idata = idata + 1
   15436       456622 :          data_tmp = full_data(idata)
   15437       456622 :          data_tmp = ISHFT(data_tmp, 42)
   15438       456622 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15439              :          pack_tmp = ISHFT(pack_tmp, 0)
   15440       456622 :          pack_tmp = ISHFT(pack_tmp, 0)
   15441       456622 :          ipack = ipack + 1
   15442       456731 :          packed_data(ipack) = pack_tmp
   15443              :       END DO
   15444        30037 :       IF (Ndata_rep < Ndata) THEN
   15445         2820 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   15446              :       END IF
   15447        30037 :    END SUBROUTINE ints2bits_22
   15448              : 
   15449              : ! **************************************************************************************************
   15450              : !> \brief ...
   15451              : !> \param Ndata ...
   15452              : !> \param packed_data ...
   15453              : !> \param full_data ...
   15454              : ! **************************************************************************************************
   15455       153439 :    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       153439 :       ipack = 0
   15466       153439 :       idata = 0
   15467       153439 :       pack_tmp = 0
   15468       153439 :       Ndata_rep = (Ndata/64)*64
   15469       153439 :       DO kdata = 1, Ndata_rep, 64
   15470      2227173 :          idata = idata + 1
   15471      2227173 :          data_tmp = ISHFT(pack_tmp, 22)
   15472      2227173 :          ipack = ipack + 1
   15473      2227173 :          pack_tmp = packed_data(ipack)
   15474      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   15475      2227173 :          pack_tmp = ISHFT(pack_tmp, -22)
   15476      2227173 :          idata = idata + 1
   15477      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15478      2227173 :          full_data(idata) = data_tmp
   15479      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15480      2227173 :          idata = idata + 1
   15481      2227173 :          data_tmp = ISHFT(pack_tmp, 2)
   15482      2227173 :          ipack = ipack + 1
   15483      2227173 :          pack_tmp = packed_data(ipack)
   15484      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   15485      2227173 :          pack_tmp = ISHFT(pack_tmp, -2)
   15486      2227173 :          idata = idata + 1
   15487      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15488      2227173 :          full_data(idata) = data_tmp
   15489      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15490      2227173 :          idata = idata + 1
   15491      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15492      2227173 :          full_data(idata) = data_tmp
   15493      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15494      2227173 :          idata = idata + 1
   15495      2227173 :          data_tmp = ISHFT(pack_tmp, 4)
   15496      2227173 :          ipack = ipack + 1
   15497      2227173 :          pack_tmp = packed_data(ipack)
   15498      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   15499      2227173 :          pack_tmp = ISHFT(pack_tmp, -4)
   15500      2227173 :          idata = idata + 1
   15501      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15502      2227173 :          full_data(idata) = data_tmp
   15503      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15504      2227173 :          idata = idata + 1
   15505      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15506      2227173 :          full_data(idata) = data_tmp
   15507      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15508      2227173 :          idata = idata + 1
   15509      2227173 :          data_tmp = ISHFT(pack_tmp, 6)
   15510      2227173 :          ipack = ipack + 1
   15511      2227173 :          pack_tmp = packed_data(ipack)
   15512      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   15513      2227173 :          pack_tmp = ISHFT(pack_tmp, -6)
   15514      2227173 :          idata = idata + 1
   15515      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15516      2227173 :          full_data(idata) = data_tmp
   15517      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15518      2227173 :          idata = idata + 1
   15519      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15520      2227173 :          full_data(idata) = data_tmp
   15521      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15522      2227173 :          idata = idata + 1
   15523      2227173 :          data_tmp = ISHFT(pack_tmp, 8)
   15524      2227173 :          ipack = ipack + 1
   15525      2227173 :          pack_tmp = packed_data(ipack)
   15526      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   15527      2227173 :          pack_tmp = ISHFT(pack_tmp, -8)
   15528      2227173 :          idata = idata + 1
   15529      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15530      2227173 :          full_data(idata) = data_tmp
   15531      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15532      2227173 :          idata = idata + 1
   15533      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15534      2227173 :          full_data(idata) = data_tmp
   15535      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15536      2227173 :          idata = idata + 1
   15537      2227173 :          data_tmp = ISHFT(pack_tmp, 10)
   15538      2227173 :          ipack = ipack + 1
   15539      2227173 :          pack_tmp = packed_data(ipack)
   15540      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   15541      2227173 :          pack_tmp = ISHFT(pack_tmp, -10)
   15542      2227173 :          idata = idata + 1
   15543      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15544      2227173 :          full_data(idata) = data_tmp
   15545      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15546      2227173 :          idata = idata + 1
   15547      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15548      2227173 :          full_data(idata) = data_tmp
   15549      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15550      2227173 :          idata = idata + 1
   15551      2227173 :          data_tmp = ISHFT(pack_tmp, 12)
   15552      2227173 :          ipack = ipack + 1
   15553      2227173 :          pack_tmp = packed_data(ipack)
   15554      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   15555      2227173 :          pack_tmp = ISHFT(pack_tmp, -12)
   15556      2227173 :          idata = idata + 1
   15557      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15558      2227173 :          full_data(idata) = data_tmp
   15559      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15560      2227173 :          idata = idata + 1
   15561      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15562      2227173 :          full_data(idata) = data_tmp
   15563      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15564      2227173 :          idata = idata + 1
   15565      2227173 :          data_tmp = ISHFT(pack_tmp, 14)
   15566      2227173 :          ipack = ipack + 1
   15567      2227173 :          pack_tmp = packed_data(ipack)
   15568      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   15569      2227173 :          pack_tmp = ISHFT(pack_tmp, -14)
   15570      2227173 :          idata = idata + 1
   15571      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15572      2227173 :          full_data(idata) = data_tmp
   15573      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15574      2227173 :          idata = idata + 1
   15575      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15576      2227173 :          full_data(idata) = data_tmp
   15577      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15578      2227173 :          idata = idata + 1
   15579      2227173 :          data_tmp = ISHFT(pack_tmp, 16)
   15580      2227173 :          ipack = ipack + 1
   15581      2227173 :          pack_tmp = packed_data(ipack)
   15582      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   15583      2227173 :          pack_tmp = ISHFT(pack_tmp, -16)
   15584      2227173 :          idata = idata + 1
   15585      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15586      2227173 :          full_data(idata) = data_tmp
   15587      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15588      2227173 :          idata = idata + 1
   15589      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15590      2227173 :          full_data(idata) = data_tmp
   15591      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15592      2227173 :          idata = idata + 1
   15593      2227173 :          data_tmp = ISHFT(pack_tmp, 18)
   15594      2227173 :          ipack = ipack + 1
   15595      2227173 :          pack_tmp = packed_data(ipack)
   15596      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   15597      2227173 :          pack_tmp = ISHFT(pack_tmp, -18)
   15598      2227173 :          idata = idata + 1
   15599      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15600      2227173 :          full_data(idata) = data_tmp
   15601      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15602      2227173 :          idata = idata + 1
   15603      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15604      2227173 :          full_data(idata) = data_tmp
   15605      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15606      2227173 :          idata = idata + 1
   15607      2227173 :          data_tmp = ISHFT(pack_tmp, 20)
   15608      2227173 :          ipack = ipack + 1
   15609      2227173 :          pack_tmp = packed_data(ipack)
   15610      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   15611      2227173 :          pack_tmp = ISHFT(pack_tmp, -20)
   15612      2227173 :          idata = idata + 1
   15613      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15614      2227173 :          full_data(idata) = data_tmp
   15615      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15616      2227173 :          idata = idata + 1
   15617      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15618      2227173 :          full_data(idata) = data_tmp
   15619      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15620      2227173 :          idata = idata + 1
   15621      2227173 :          data_tmp = ISHFT(pack_tmp, 22)
   15622      2227173 :          ipack = ipack + 1
   15623      2227173 :          pack_tmp = packed_data(ipack)
   15624      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   15625      2227173 :          pack_tmp = ISHFT(pack_tmp, -22)
   15626      2227173 :          idata = idata + 1
   15627      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15628      2227173 :          full_data(idata) = data_tmp
   15629      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15630      2227173 :          idata = idata + 1
   15631      2227173 :          data_tmp = ISHFT(pack_tmp, 2)
   15632      2227173 :          ipack = ipack + 1
   15633      2227173 :          pack_tmp = packed_data(ipack)
   15634      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   15635      2227173 :          pack_tmp = ISHFT(pack_tmp, -2)
   15636      2227173 :          idata = idata + 1
   15637      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15638      2227173 :          full_data(idata) = data_tmp
   15639      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15640      2227173 :          idata = idata + 1
   15641      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15642      2227173 :          full_data(idata) = data_tmp
   15643      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15644      2227173 :          idata = idata + 1
   15645      2227173 :          data_tmp = ISHFT(pack_tmp, 4)
   15646      2227173 :          ipack = ipack + 1
   15647      2227173 :          pack_tmp = packed_data(ipack)
   15648      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   15649      2227173 :          pack_tmp = ISHFT(pack_tmp, -4)
   15650      2227173 :          idata = idata + 1
   15651      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15652      2227173 :          full_data(idata) = data_tmp
   15653      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15654      2227173 :          idata = idata + 1
   15655      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15656      2227173 :          full_data(idata) = data_tmp
   15657      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15658      2227173 :          idata = idata + 1
   15659      2227173 :          data_tmp = ISHFT(pack_tmp, 6)
   15660      2227173 :          ipack = ipack + 1
   15661      2227173 :          pack_tmp = packed_data(ipack)
   15662      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   15663      2227173 :          pack_tmp = ISHFT(pack_tmp, -6)
   15664      2227173 :          idata = idata + 1
   15665      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15666      2227173 :          full_data(idata) = data_tmp
   15667      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15668      2227173 :          idata = idata + 1
   15669      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15670      2227173 :          full_data(idata) = data_tmp
   15671      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15672      2227173 :          idata = idata + 1
   15673      2227173 :          data_tmp = ISHFT(pack_tmp, 8)
   15674      2227173 :          ipack = ipack + 1
   15675      2227173 :          pack_tmp = packed_data(ipack)
   15676      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   15677      2227173 :          pack_tmp = ISHFT(pack_tmp, -8)
   15678      2227173 :          idata = idata + 1
   15679      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15680      2227173 :          full_data(idata) = data_tmp
   15681      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15682      2227173 :          idata = idata + 1
   15683      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15684      2227173 :          full_data(idata) = data_tmp
   15685      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15686      2227173 :          idata = idata + 1
   15687      2227173 :          data_tmp = ISHFT(pack_tmp, 10)
   15688      2227173 :          ipack = ipack + 1
   15689      2227173 :          pack_tmp = packed_data(ipack)
   15690      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   15691      2227173 :          pack_tmp = ISHFT(pack_tmp, -10)
   15692      2227173 :          idata = idata + 1
   15693      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15694      2227173 :          full_data(idata) = data_tmp
   15695      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15696      2227173 :          idata = idata + 1
   15697      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15698      2227173 :          full_data(idata) = data_tmp
   15699      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15700      2227173 :          idata = idata + 1
   15701      2227173 :          data_tmp = ISHFT(pack_tmp, 12)
   15702      2227173 :          ipack = ipack + 1
   15703      2227173 :          pack_tmp = packed_data(ipack)
   15704      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   15705      2227173 :          pack_tmp = ISHFT(pack_tmp, -12)
   15706      2227173 :          idata = idata + 1
   15707      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15708      2227173 :          full_data(idata) = data_tmp
   15709      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15710      2227173 :          idata = idata + 1
   15711      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15712      2227173 :          full_data(idata) = data_tmp
   15713      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15714      2227173 :          idata = idata + 1
   15715      2227173 :          data_tmp = ISHFT(pack_tmp, 14)
   15716      2227173 :          ipack = ipack + 1
   15717      2227173 :          pack_tmp = packed_data(ipack)
   15718      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   15719      2227173 :          pack_tmp = ISHFT(pack_tmp, -14)
   15720      2227173 :          idata = idata + 1
   15721      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15722      2227173 :          full_data(idata) = data_tmp
   15723      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15724      2227173 :          idata = idata + 1
   15725      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15726      2227173 :          full_data(idata) = data_tmp
   15727      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15728      2227173 :          idata = idata + 1
   15729      2227173 :          data_tmp = ISHFT(pack_tmp, 16)
   15730      2227173 :          ipack = ipack + 1
   15731      2227173 :          pack_tmp = packed_data(ipack)
   15732      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   15733      2227173 :          pack_tmp = ISHFT(pack_tmp, -16)
   15734      2227173 :          idata = idata + 1
   15735      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15736      2227173 :          full_data(idata) = data_tmp
   15737      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15738      2227173 :          idata = idata + 1
   15739      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15740      2227173 :          full_data(idata) = data_tmp
   15741      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15742      2227173 :          idata = idata + 1
   15743      2227173 :          data_tmp = ISHFT(pack_tmp, 18)
   15744      2227173 :          ipack = ipack + 1
   15745      2227173 :          pack_tmp = packed_data(ipack)
   15746      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   15747      2227173 :          pack_tmp = ISHFT(pack_tmp, -18)
   15748      2227173 :          idata = idata + 1
   15749      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15750      2227173 :          full_data(idata) = data_tmp
   15751      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15752      2227173 :          idata = idata + 1
   15753      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15754      2227173 :          full_data(idata) = data_tmp
   15755      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15756      2227173 :          idata = idata + 1
   15757      2227173 :          data_tmp = ISHFT(pack_tmp, 20)
   15758      2227173 :          ipack = ipack + 1
   15759      2227173 :          pack_tmp = packed_data(ipack)
   15760      2227173 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   15761      2227173 :          pack_tmp = ISHFT(pack_tmp, -20)
   15762      2227173 :          idata = idata + 1
   15763      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15764      2227173 :          full_data(idata) = data_tmp
   15765      2227173 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15766      2227173 :          idata = idata + 1
   15767      2227173 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   15768      2227173 :          full_data(idata) = data_tmp
   15769      2227934 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   15770              :       END DO
   15771       153439 :       IF (Ndata_rep < Ndata) THEN
   15772        26806 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   15773              :       END IF
   15774       153439 :    END SUBROUTINE bits2ints_22
   15775              : 
   15776              : ! **************************************************************************************************
   15777              : !> \brief ...
   15778              : !> \param Ndata ...
   15779              : !> \param packed_data ...
   15780              : !> \param full_data ...
   15781              : ! **************************************************************************************************
   15782        74377 :    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        74377 :       idata = 0
   15793        74377 :       ipack = 0
   15794        74377 :       Ndata_rep = (Ndata/64)*64
   15795        74377 :       DO kdata = 1, Ndata_rep, 64
   15796       973984 :          pack_tmp = 0
   15797       973984 :          idata = idata + 1
   15798       973984 :          data_tmp = full_data(idata)
   15799       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15800       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15801       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15802       973984 :          idata = idata + 1
   15803       973984 :          data_tmp = full_data(idata)
   15804       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15805       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15806       973984 :          pack_tmp = ISHFT(pack_tmp, -18)
   15807       973984 :          idata = idata + 1
   15808       973984 :          data_tmp = full_data(idata)
   15809       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15810       973984 :          data_tmp = IAND(data_tmp, mask_left(18))
   15811       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15812       973984 :          ipack = ipack + 1
   15813       973984 :          packed_data(ipack) = pack_tmp
   15814       973984 :          data_tmp = full_data(idata)
   15815       973984 :          pack_tmp = ISHFT(data_tmp, 59)
   15816       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15817       973984 :          idata = idata + 1
   15818       973984 :          data_tmp = full_data(idata)
   15819       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15820       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15821       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15822       973984 :          idata = idata + 1
   15823       973984 :          data_tmp = full_data(idata)
   15824       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15825       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15826       973984 :          pack_tmp = ISHFT(pack_tmp, -13)
   15827       973984 :          idata = idata + 1
   15828       973984 :          data_tmp = full_data(idata)
   15829       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15830       973984 :          data_tmp = IAND(data_tmp, mask_left(13))
   15831       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15832       973984 :          ipack = ipack + 1
   15833       973984 :          packed_data(ipack) = pack_tmp
   15834       973984 :          data_tmp = full_data(idata)
   15835       973984 :          pack_tmp = ISHFT(data_tmp, 54)
   15836       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15837       973984 :          idata = idata + 1
   15838       973984 :          data_tmp = full_data(idata)
   15839       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15840       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15841       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15842       973984 :          idata = idata + 1
   15843       973984 :          data_tmp = full_data(idata)
   15844       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15845       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15846       973984 :          pack_tmp = ISHFT(pack_tmp, -8)
   15847       973984 :          idata = idata + 1
   15848       973984 :          data_tmp = full_data(idata)
   15849       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15850       973984 :          data_tmp = IAND(data_tmp, mask_left(8))
   15851       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15852       973984 :          ipack = ipack + 1
   15853       973984 :          packed_data(ipack) = pack_tmp
   15854       973984 :          data_tmp = full_data(idata)
   15855       973984 :          pack_tmp = ISHFT(data_tmp, 49)
   15856       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15857       973984 :          idata = idata + 1
   15858       973984 :          data_tmp = full_data(idata)
   15859       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15860       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15861       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15862       973984 :          idata = idata + 1
   15863       973984 :          data_tmp = full_data(idata)
   15864       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15865       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15866       973984 :          pack_tmp = ISHFT(pack_tmp, -3)
   15867       973984 :          idata = idata + 1
   15868       973984 :          data_tmp = full_data(idata)
   15869       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15870       973984 :          data_tmp = IAND(data_tmp, mask_left(3))
   15871       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15872       973984 :          ipack = ipack + 1
   15873       973984 :          packed_data(ipack) = pack_tmp
   15874       973984 :          data_tmp = full_data(idata)
   15875       973984 :          pack_tmp = ISHFT(data_tmp, 44)
   15876       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15877       973984 :          idata = idata + 1
   15878       973984 :          data_tmp = full_data(idata)
   15879       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15880       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15881       973984 :          pack_tmp = ISHFT(pack_tmp, -21)
   15882       973984 :          idata = idata + 1
   15883       973984 :          data_tmp = full_data(idata)
   15884       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15885       973984 :          data_tmp = IAND(data_tmp, mask_left(21))
   15886       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15887       973984 :          ipack = ipack + 1
   15888       973984 :          packed_data(ipack) = pack_tmp
   15889       973984 :          data_tmp = full_data(idata)
   15890       973984 :          pack_tmp = ISHFT(data_tmp, 62)
   15891       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15892       973984 :          idata = idata + 1
   15893       973984 :          data_tmp = full_data(idata)
   15894       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15895       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15896       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15897       973984 :          idata = idata + 1
   15898       973984 :          data_tmp = full_data(idata)
   15899       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15900       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15901       973984 :          pack_tmp = ISHFT(pack_tmp, -16)
   15902       973984 :          idata = idata + 1
   15903       973984 :          data_tmp = full_data(idata)
   15904       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15905       973984 :          data_tmp = IAND(data_tmp, mask_left(16))
   15906       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15907       973984 :          ipack = ipack + 1
   15908       973984 :          packed_data(ipack) = pack_tmp
   15909       973984 :          data_tmp = full_data(idata)
   15910       973984 :          pack_tmp = ISHFT(data_tmp, 57)
   15911       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15912       973984 :          idata = idata + 1
   15913       973984 :          data_tmp = full_data(idata)
   15914       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15915       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15916       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15917       973984 :          idata = idata + 1
   15918       973984 :          data_tmp = full_data(idata)
   15919       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15920       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15921       973984 :          pack_tmp = ISHFT(pack_tmp, -11)
   15922       973984 :          idata = idata + 1
   15923       973984 :          data_tmp = full_data(idata)
   15924       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15925       973984 :          data_tmp = IAND(data_tmp, mask_left(11))
   15926       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15927       973984 :          ipack = ipack + 1
   15928       973984 :          packed_data(ipack) = pack_tmp
   15929       973984 :          data_tmp = full_data(idata)
   15930       973984 :          pack_tmp = ISHFT(data_tmp, 52)
   15931       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15932       973984 :          idata = idata + 1
   15933       973984 :          data_tmp = full_data(idata)
   15934       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15935       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15936       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15937       973984 :          idata = idata + 1
   15938       973984 :          data_tmp = full_data(idata)
   15939       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15940       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15941       973984 :          pack_tmp = ISHFT(pack_tmp, -6)
   15942       973984 :          idata = idata + 1
   15943       973984 :          data_tmp = full_data(idata)
   15944       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15945       973984 :          data_tmp = IAND(data_tmp, mask_left(6))
   15946       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15947       973984 :          ipack = ipack + 1
   15948       973984 :          packed_data(ipack) = pack_tmp
   15949       973984 :          data_tmp = full_data(idata)
   15950       973984 :          pack_tmp = ISHFT(data_tmp, 47)
   15951       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15952       973984 :          idata = idata + 1
   15953       973984 :          data_tmp = full_data(idata)
   15954       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15955       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15956       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15957       973984 :          idata = idata + 1
   15958       973984 :          data_tmp = full_data(idata)
   15959       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15960       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15961       973984 :          pack_tmp = ISHFT(pack_tmp, -1)
   15962       973984 :          idata = idata + 1
   15963       973984 :          data_tmp = full_data(idata)
   15964       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15965       973984 :          data_tmp = IAND(data_tmp, mask_left(1))
   15966       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15967       973984 :          ipack = ipack + 1
   15968       973984 :          packed_data(ipack) = pack_tmp
   15969       973984 :          data_tmp = full_data(idata)
   15970       973984 :          pack_tmp = ISHFT(data_tmp, 42)
   15971       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15972       973984 :          idata = idata + 1
   15973       973984 :          data_tmp = full_data(idata)
   15974       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15975       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15976       973984 :          pack_tmp = ISHFT(pack_tmp, -19)
   15977       973984 :          idata = idata + 1
   15978       973984 :          data_tmp = full_data(idata)
   15979       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15980       973984 :          data_tmp = IAND(data_tmp, mask_left(19))
   15981       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15982       973984 :          ipack = ipack + 1
   15983       973984 :          packed_data(ipack) = pack_tmp
   15984       973984 :          data_tmp = full_data(idata)
   15985       973984 :          pack_tmp = ISHFT(data_tmp, 60)
   15986       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15987       973984 :          idata = idata + 1
   15988       973984 :          data_tmp = full_data(idata)
   15989       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15990       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15991       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   15992       973984 :          idata = idata + 1
   15993       973984 :          data_tmp = full_data(idata)
   15994       973984 :          data_tmp = ISHFT(data_tmp, 41)
   15995       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   15996       973984 :          pack_tmp = ISHFT(pack_tmp, -14)
   15997       973984 :          idata = idata + 1
   15998       973984 :          data_tmp = full_data(idata)
   15999       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16000       973984 :          data_tmp = IAND(data_tmp, mask_left(14))
   16001       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16002       973984 :          ipack = ipack + 1
   16003       973984 :          packed_data(ipack) = pack_tmp
   16004       973984 :          data_tmp = full_data(idata)
   16005       973984 :          pack_tmp = ISHFT(data_tmp, 55)
   16006       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16007       973984 :          idata = idata + 1
   16008       973984 :          data_tmp = full_data(idata)
   16009       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16010       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16011       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16012       973984 :          idata = idata + 1
   16013       973984 :          data_tmp = full_data(idata)
   16014       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16015       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16016       973984 :          pack_tmp = ISHFT(pack_tmp, -9)
   16017       973984 :          idata = idata + 1
   16018       973984 :          data_tmp = full_data(idata)
   16019       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16020       973984 :          data_tmp = IAND(data_tmp, mask_left(9))
   16021       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16022       973984 :          ipack = ipack + 1
   16023       973984 :          packed_data(ipack) = pack_tmp
   16024       973984 :          data_tmp = full_data(idata)
   16025       973984 :          pack_tmp = ISHFT(data_tmp, 50)
   16026       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16027       973984 :          idata = idata + 1
   16028       973984 :          data_tmp = full_data(idata)
   16029       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16030       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16031       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16032       973984 :          idata = idata + 1
   16033       973984 :          data_tmp = full_data(idata)
   16034       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16035       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16036       973984 :          pack_tmp = ISHFT(pack_tmp, -4)
   16037       973984 :          idata = idata + 1
   16038       973984 :          data_tmp = full_data(idata)
   16039       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16040       973984 :          data_tmp = IAND(data_tmp, mask_left(4))
   16041       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16042       973984 :          ipack = ipack + 1
   16043       973984 :          packed_data(ipack) = pack_tmp
   16044       973984 :          data_tmp = full_data(idata)
   16045       973984 :          pack_tmp = ISHFT(data_tmp, 45)
   16046       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16047       973984 :          idata = idata + 1
   16048       973984 :          data_tmp = full_data(idata)
   16049       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16050       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16051       973984 :          pack_tmp = ISHFT(pack_tmp, -22)
   16052       973984 :          idata = idata + 1
   16053       973984 :          data_tmp = full_data(idata)
   16054       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16055       973984 :          data_tmp = IAND(data_tmp, mask_left(22))
   16056       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16057       973984 :          ipack = ipack + 1
   16058       973984 :          packed_data(ipack) = pack_tmp
   16059       973984 :          data_tmp = full_data(idata)
   16060       973984 :          pack_tmp = ISHFT(data_tmp, 63)
   16061       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16062       973984 :          idata = idata + 1
   16063       973984 :          data_tmp = full_data(idata)
   16064       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16065       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16066       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16067       973984 :          idata = idata + 1
   16068       973984 :          data_tmp = full_data(idata)
   16069       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16070       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16071       973984 :          pack_tmp = ISHFT(pack_tmp, -17)
   16072       973984 :          idata = idata + 1
   16073       973984 :          data_tmp = full_data(idata)
   16074       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16075       973984 :          data_tmp = IAND(data_tmp, mask_left(17))
   16076       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16077       973984 :          ipack = ipack + 1
   16078       973984 :          packed_data(ipack) = pack_tmp
   16079       973984 :          data_tmp = full_data(idata)
   16080       973984 :          pack_tmp = ISHFT(data_tmp, 58)
   16081       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16082       973984 :          idata = idata + 1
   16083       973984 :          data_tmp = full_data(idata)
   16084       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16085       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16086       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16087       973984 :          idata = idata + 1
   16088       973984 :          data_tmp = full_data(idata)
   16089       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16090       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16091       973984 :          pack_tmp = ISHFT(pack_tmp, -12)
   16092       973984 :          idata = idata + 1
   16093       973984 :          data_tmp = full_data(idata)
   16094       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16095       973984 :          data_tmp = IAND(data_tmp, mask_left(12))
   16096       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16097       973984 :          ipack = ipack + 1
   16098       973984 :          packed_data(ipack) = pack_tmp
   16099       973984 :          data_tmp = full_data(idata)
   16100       973984 :          pack_tmp = ISHFT(data_tmp, 53)
   16101       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16102       973984 :          idata = idata + 1
   16103       973984 :          data_tmp = full_data(idata)
   16104       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16105       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16106       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16107       973984 :          idata = idata + 1
   16108       973984 :          data_tmp = full_data(idata)
   16109       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16110       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16111       973984 :          pack_tmp = ISHFT(pack_tmp, -7)
   16112       973984 :          idata = idata + 1
   16113       973984 :          data_tmp = full_data(idata)
   16114       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16115       973984 :          data_tmp = IAND(data_tmp, mask_left(7))
   16116       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16117       973984 :          ipack = ipack + 1
   16118       973984 :          packed_data(ipack) = pack_tmp
   16119       973984 :          data_tmp = full_data(idata)
   16120       973984 :          pack_tmp = ISHFT(data_tmp, 48)
   16121       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16122       973984 :          idata = idata + 1
   16123       973984 :          data_tmp = full_data(idata)
   16124       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16125       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16126       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16127       973984 :          idata = idata + 1
   16128       973984 :          data_tmp = full_data(idata)
   16129       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16130       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16131       973984 :          pack_tmp = ISHFT(pack_tmp, -2)
   16132       973984 :          idata = idata + 1
   16133       973984 :          data_tmp = full_data(idata)
   16134       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16135       973984 :          data_tmp = IAND(data_tmp, mask_left(2))
   16136       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16137       973984 :          ipack = ipack + 1
   16138       973984 :          packed_data(ipack) = pack_tmp
   16139       973984 :          data_tmp = full_data(idata)
   16140       973984 :          pack_tmp = ISHFT(data_tmp, 43)
   16141       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16142       973984 :          idata = idata + 1
   16143       973984 :          data_tmp = full_data(idata)
   16144       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16145       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16146       973984 :          pack_tmp = ISHFT(pack_tmp, -20)
   16147       973984 :          idata = idata + 1
   16148       973984 :          data_tmp = full_data(idata)
   16149       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16150       973984 :          data_tmp = IAND(data_tmp, mask_left(20))
   16151       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16152       973984 :          ipack = ipack + 1
   16153       973984 :          packed_data(ipack) = pack_tmp
   16154       973984 :          data_tmp = full_data(idata)
   16155       973984 :          pack_tmp = ISHFT(data_tmp, 61)
   16156       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16157       973984 :          idata = idata + 1
   16158       973984 :          data_tmp = full_data(idata)
   16159       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16160       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16161       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16162       973984 :          idata = idata + 1
   16163       973984 :          data_tmp = full_data(idata)
   16164       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16165       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16166       973984 :          pack_tmp = ISHFT(pack_tmp, -15)
   16167       973984 :          idata = idata + 1
   16168       973984 :          data_tmp = full_data(idata)
   16169       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16170       973984 :          data_tmp = IAND(data_tmp, mask_left(15))
   16171       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16172       973984 :          ipack = ipack + 1
   16173       973984 :          packed_data(ipack) = pack_tmp
   16174       973984 :          data_tmp = full_data(idata)
   16175       973984 :          pack_tmp = ISHFT(data_tmp, 56)
   16176       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16177       973984 :          idata = idata + 1
   16178       973984 :          data_tmp = full_data(idata)
   16179       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16180       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16181       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16182       973984 :          idata = idata + 1
   16183       973984 :          data_tmp = full_data(idata)
   16184       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16185       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16186       973984 :          pack_tmp = ISHFT(pack_tmp, -10)
   16187       973984 :          idata = idata + 1
   16188       973984 :          data_tmp = full_data(idata)
   16189       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16190       973984 :          data_tmp = IAND(data_tmp, mask_left(10))
   16191       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16192       973984 :          ipack = ipack + 1
   16193       973984 :          packed_data(ipack) = pack_tmp
   16194       973984 :          data_tmp = full_data(idata)
   16195       973984 :          pack_tmp = ISHFT(data_tmp, 51)
   16196       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16197       973984 :          idata = idata + 1
   16198       973984 :          data_tmp = full_data(idata)
   16199       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16200       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16201       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16202       973984 :          idata = idata + 1
   16203       973984 :          data_tmp = full_data(idata)
   16204       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16205       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16206       973984 :          pack_tmp = ISHFT(pack_tmp, -5)
   16207       973984 :          idata = idata + 1
   16208       973984 :          data_tmp = full_data(idata)
   16209       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16210       973984 :          data_tmp = IAND(data_tmp, mask_left(5))
   16211       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16212       973984 :          ipack = ipack + 1
   16213       973984 :          packed_data(ipack) = pack_tmp
   16214       973984 :          data_tmp = full_data(idata)
   16215       973984 :          pack_tmp = ISHFT(data_tmp, 46)
   16216       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16217       973984 :          idata = idata + 1
   16218       973984 :          data_tmp = full_data(idata)
   16219       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16220       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16221       973984 :          pack_tmp = ISHFT(pack_tmp, -23)
   16222       973984 :          idata = idata + 1
   16223       973984 :          data_tmp = full_data(idata)
   16224       973984 :          data_tmp = ISHFT(data_tmp, 41)
   16225       973984 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16226              :          pack_tmp = ISHFT(pack_tmp, 0)
   16227       973984 :          pack_tmp = ISHFT(pack_tmp, 0)
   16228       973984 :          ipack = ipack + 1
   16229       974640 :          packed_data(ipack) = pack_tmp
   16230              :       END DO
   16231        74377 :       IF (Ndata_rep < Ndata) THEN
   16232        13952 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   16233              :       END IF
   16234        74377 :    END SUBROUTINE ints2bits_23
   16235              : 
   16236              : ! **************************************************************************************************
   16237              : !> \brief ...
   16238              : !> \param Ndata ...
   16239              : !> \param packed_data ...
   16240              : !> \param full_data ...
   16241              : ! **************************************************************************************************
   16242       231496 :    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       231496 :       ipack = 0
   16253       231496 :       idata = 0
   16254       231496 :       pack_tmp = 0
   16255       231496 :       Ndata_rep = (Ndata/64)*64
   16256       231496 :       DO kdata = 1, Ndata_rep, 64
   16257      3134578 :          idata = idata + 1
   16258      3134578 :          data_tmp = ISHFT(pack_tmp, 23)
   16259      3134578 :          ipack = ipack + 1
   16260      3134578 :          pack_tmp = packed_data(ipack)
   16261      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   16262      3134578 :          pack_tmp = ISHFT(pack_tmp, -23)
   16263      3134578 :          idata = idata + 1
   16264      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16265      3134578 :          full_data(idata) = data_tmp
   16266      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16267      3134578 :          idata = idata + 1
   16268      3134578 :          data_tmp = ISHFT(pack_tmp, 5)
   16269      3134578 :          ipack = ipack + 1
   16270      3134578 :          pack_tmp = packed_data(ipack)
   16271      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   16272      3134578 :          pack_tmp = ISHFT(pack_tmp, -5)
   16273      3134578 :          idata = idata + 1
   16274      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16275      3134578 :          full_data(idata) = data_tmp
   16276      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16277      3134578 :          idata = idata + 1
   16278      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16279      3134578 :          full_data(idata) = data_tmp
   16280      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16281      3134578 :          idata = idata + 1
   16282      3134578 :          data_tmp = ISHFT(pack_tmp, 10)
   16283      3134578 :          ipack = ipack + 1
   16284      3134578 :          pack_tmp = packed_data(ipack)
   16285      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   16286      3134578 :          pack_tmp = ISHFT(pack_tmp, -10)
   16287      3134578 :          idata = idata + 1
   16288      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16289      3134578 :          full_data(idata) = data_tmp
   16290      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16291      3134578 :          idata = idata + 1
   16292      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16293      3134578 :          full_data(idata) = data_tmp
   16294      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16295      3134578 :          idata = idata + 1
   16296      3134578 :          data_tmp = ISHFT(pack_tmp, 15)
   16297      3134578 :          ipack = ipack + 1
   16298      3134578 :          pack_tmp = packed_data(ipack)
   16299      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   16300      3134578 :          pack_tmp = ISHFT(pack_tmp, -15)
   16301      3134578 :          idata = idata + 1
   16302      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16303      3134578 :          full_data(idata) = data_tmp
   16304      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16305      3134578 :          idata = idata + 1
   16306      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16307      3134578 :          full_data(idata) = data_tmp
   16308      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16309      3134578 :          idata = idata + 1
   16310      3134578 :          data_tmp = ISHFT(pack_tmp, 20)
   16311      3134578 :          ipack = ipack + 1
   16312      3134578 :          pack_tmp = packed_data(ipack)
   16313      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   16314      3134578 :          pack_tmp = ISHFT(pack_tmp, -20)
   16315      3134578 :          idata = idata + 1
   16316      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16317      3134578 :          full_data(idata) = data_tmp
   16318      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16319      3134578 :          idata = idata + 1
   16320      3134578 :          data_tmp = ISHFT(pack_tmp, 2)
   16321      3134578 :          ipack = ipack + 1
   16322      3134578 :          pack_tmp = packed_data(ipack)
   16323      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   16324      3134578 :          pack_tmp = ISHFT(pack_tmp, -2)
   16325      3134578 :          idata = idata + 1
   16326      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16327      3134578 :          full_data(idata) = data_tmp
   16328      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16329      3134578 :          idata = idata + 1
   16330      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16331      3134578 :          full_data(idata) = data_tmp
   16332      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16333      3134578 :          idata = idata + 1
   16334      3134578 :          data_tmp = ISHFT(pack_tmp, 7)
   16335      3134578 :          ipack = ipack + 1
   16336      3134578 :          pack_tmp = packed_data(ipack)
   16337      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   16338      3134578 :          pack_tmp = ISHFT(pack_tmp, -7)
   16339      3134578 :          idata = idata + 1
   16340      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16341      3134578 :          full_data(idata) = data_tmp
   16342      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16343      3134578 :          idata = idata + 1
   16344      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16345      3134578 :          full_data(idata) = data_tmp
   16346      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16347      3134578 :          idata = idata + 1
   16348      3134578 :          data_tmp = ISHFT(pack_tmp, 12)
   16349      3134578 :          ipack = ipack + 1
   16350      3134578 :          pack_tmp = packed_data(ipack)
   16351      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   16352      3134578 :          pack_tmp = ISHFT(pack_tmp, -12)
   16353      3134578 :          idata = idata + 1
   16354      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16355      3134578 :          full_data(idata) = data_tmp
   16356      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16357      3134578 :          idata = idata + 1
   16358      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16359      3134578 :          full_data(idata) = data_tmp
   16360      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16361      3134578 :          idata = idata + 1
   16362      3134578 :          data_tmp = ISHFT(pack_tmp, 17)
   16363      3134578 :          ipack = ipack + 1
   16364      3134578 :          pack_tmp = packed_data(ipack)
   16365      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   16366      3134578 :          pack_tmp = ISHFT(pack_tmp, -17)
   16367      3134578 :          idata = idata + 1
   16368      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16369      3134578 :          full_data(idata) = data_tmp
   16370      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16371      3134578 :          idata = idata + 1
   16372      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16373      3134578 :          full_data(idata) = data_tmp
   16374      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16375      3134578 :          idata = idata + 1
   16376      3134578 :          data_tmp = ISHFT(pack_tmp, 22)
   16377      3134578 :          ipack = ipack + 1
   16378      3134578 :          pack_tmp = packed_data(ipack)
   16379      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   16380      3134578 :          pack_tmp = ISHFT(pack_tmp, -22)
   16381      3134578 :          idata = idata + 1
   16382      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16383      3134578 :          full_data(idata) = data_tmp
   16384      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16385      3134578 :          idata = idata + 1
   16386      3134578 :          data_tmp = ISHFT(pack_tmp, 4)
   16387      3134578 :          ipack = ipack + 1
   16388      3134578 :          pack_tmp = packed_data(ipack)
   16389      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   16390      3134578 :          pack_tmp = ISHFT(pack_tmp, -4)
   16391      3134578 :          idata = idata + 1
   16392      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16393      3134578 :          full_data(idata) = data_tmp
   16394      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16395      3134578 :          idata = idata + 1
   16396      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16397      3134578 :          full_data(idata) = data_tmp
   16398      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16399      3134578 :          idata = idata + 1
   16400      3134578 :          data_tmp = ISHFT(pack_tmp, 9)
   16401      3134578 :          ipack = ipack + 1
   16402      3134578 :          pack_tmp = packed_data(ipack)
   16403      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   16404      3134578 :          pack_tmp = ISHFT(pack_tmp, -9)
   16405      3134578 :          idata = idata + 1
   16406      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16407      3134578 :          full_data(idata) = data_tmp
   16408      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16409      3134578 :          idata = idata + 1
   16410      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16411      3134578 :          full_data(idata) = data_tmp
   16412      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16413      3134578 :          idata = idata + 1
   16414      3134578 :          data_tmp = ISHFT(pack_tmp, 14)
   16415      3134578 :          ipack = ipack + 1
   16416      3134578 :          pack_tmp = packed_data(ipack)
   16417      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   16418      3134578 :          pack_tmp = ISHFT(pack_tmp, -14)
   16419      3134578 :          idata = idata + 1
   16420      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16421      3134578 :          full_data(idata) = data_tmp
   16422      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16423      3134578 :          idata = idata + 1
   16424      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16425      3134578 :          full_data(idata) = data_tmp
   16426      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16427      3134578 :          idata = idata + 1
   16428      3134578 :          data_tmp = ISHFT(pack_tmp, 19)
   16429      3134578 :          ipack = ipack + 1
   16430      3134578 :          pack_tmp = packed_data(ipack)
   16431      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   16432      3134578 :          pack_tmp = ISHFT(pack_tmp, -19)
   16433      3134578 :          idata = idata + 1
   16434      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16435      3134578 :          full_data(idata) = data_tmp
   16436      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16437      3134578 :          idata = idata + 1
   16438      3134578 :          data_tmp = ISHFT(pack_tmp, 1)
   16439      3134578 :          ipack = ipack + 1
   16440      3134578 :          pack_tmp = packed_data(ipack)
   16441      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   16442      3134578 :          pack_tmp = ISHFT(pack_tmp, -1)
   16443      3134578 :          idata = idata + 1
   16444      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16445      3134578 :          full_data(idata) = data_tmp
   16446      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16447      3134578 :          idata = idata + 1
   16448      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16449      3134578 :          full_data(idata) = data_tmp
   16450      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16451      3134578 :          idata = idata + 1
   16452      3134578 :          data_tmp = ISHFT(pack_tmp, 6)
   16453      3134578 :          ipack = ipack + 1
   16454      3134578 :          pack_tmp = packed_data(ipack)
   16455      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   16456      3134578 :          pack_tmp = ISHFT(pack_tmp, -6)
   16457      3134578 :          idata = idata + 1
   16458      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16459      3134578 :          full_data(idata) = data_tmp
   16460      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16461      3134578 :          idata = idata + 1
   16462      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16463      3134578 :          full_data(idata) = data_tmp
   16464      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16465      3134578 :          idata = idata + 1
   16466      3134578 :          data_tmp = ISHFT(pack_tmp, 11)
   16467      3134578 :          ipack = ipack + 1
   16468      3134578 :          pack_tmp = packed_data(ipack)
   16469      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   16470      3134578 :          pack_tmp = ISHFT(pack_tmp, -11)
   16471      3134578 :          idata = idata + 1
   16472      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16473      3134578 :          full_data(idata) = data_tmp
   16474      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16475      3134578 :          idata = idata + 1
   16476      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16477      3134578 :          full_data(idata) = data_tmp
   16478      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16479      3134578 :          idata = idata + 1
   16480      3134578 :          data_tmp = ISHFT(pack_tmp, 16)
   16481      3134578 :          ipack = ipack + 1
   16482      3134578 :          pack_tmp = packed_data(ipack)
   16483      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   16484      3134578 :          pack_tmp = ISHFT(pack_tmp, -16)
   16485      3134578 :          idata = idata + 1
   16486      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16487      3134578 :          full_data(idata) = data_tmp
   16488      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16489      3134578 :          idata = idata + 1
   16490      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16491      3134578 :          full_data(idata) = data_tmp
   16492      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16493      3134578 :          idata = idata + 1
   16494      3134578 :          data_tmp = ISHFT(pack_tmp, 21)
   16495      3134578 :          ipack = ipack + 1
   16496      3134578 :          pack_tmp = packed_data(ipack)
   16497      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   16498      3134578 :          pack_tmp = ISHFT(pack_tmp, -21)
   16499      3134578 :          idata = idata + 1
   16500      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16501      3134578 :          full_data(idata) = data_tmp
   16502      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16503      3134578 :          idata = idata + 1
   16504      3134578 :          data_tmp = ISHFT(pack_tmp, 3)
   16505      3134578 :          ipack = ipack + 1
   16506      3134578 :          pack_tmp = packed_data(ipack)
   16507      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   16508      3134578 :          pack_tmp = ISHFT(pack_tmp, -3)
   16509      3134578 :          idata = idata + 1
   16510      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16511      3134578 :          full_data(idata) = data_tmp
   16512      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16513      3134578 :          idata = idata + 1
   16514      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16515      3134578 :          full_data(idata) = data_tmp
   16516      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16517      3134578 :          idata = idata + 1
   16518      3134578 :          data_tmp = ISHFT(pack_tmp, 8)
   16519      3134578 :          ipack = ipack + 1
   16520      3134578 :          pack_tmp = packed_data(ipack)
   16521      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   16522      3134578 :          pack_tmp = ISHFT(pack_tmp, -8)
   16523      3134578 :          idata = idata + 1
   16524      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16525      3134578 :          full_data(idata) = data_tmp
   16526      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16527      3134578 :          idata = idata + 1
   16528      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16529      3134578 :          full_data(idata) = data_tmp
   16530      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16531      3134578 :          idata = idata + 1
   16532      3134578 :          data_tmp = ISHFT(pack_tmp, 13)
   16533      3134578 :          ipack = ipack + 1
   16534      3134578 :          pack_tmp = packed_data(ipack)
   16535      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   16536      3134578 :          pack_tmp = ISHFT(pack_tmp, -13)
   16537      3134578 :          idata = idata + 1
   16538      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16539      3134578 :          full_data(idata) = data_tmp
   16540      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16541      3134578 :          idata = idata + 1
   16542      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16543      3134578 :          full_data(idata) = data_tmp
   16544      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16545      3134578 :          idata = idata + 1
   16546      3134578 :          data_tmp = ISHFT(pack_tmp, 18)
   16547      3134578 :          ipack = ipack + 1
   16548      3134578 :          pack_tmp = packed_data(ipack)
   16549      3134578 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   16550      3134578 :          pack_tmp = ISHFT(pack_tmp, -18)
   16551      3134578 :          idata = idata + 1
   16552      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16553      3134578 :          full_data(idata) = data_tmp
   16554      3134578 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16555      3134578 :          idata = idata + 1
   16556      3134578 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   16557      3134578 :          full_data(idata) = data_tmp
   16558      3136202 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   16559              :       END DO
   16560       231496 :       IF (Ndata_rep < Ndata) THEN
   16561        38172 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   16562              :       END IF
   16563       231496 :    END SUBROUTINE bits2ints_23
   16564              : 
   16565              : ! **************************************************************************************************
   16566              : !> \brief ...
   16567              : !> \param Ndata ...
   16568              : !> \param packed_data ...
   16569              : !> \param full_data ...
   16570              : ! **************************************************************************************************
   16571        36912 :    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        36912 :       idata = 0
   16582        36912 :       ipack = 0
   16583        36912 :       Ndata_rep = (Ndata/64)*64
   16584        36912 :       DO kdata = 1, Ndata_rep, 64
   16585       534832 :          pack_tmp = 0
   16586       534832 :          idata = idata + 1
   16587       534832 :          data_tmp = full_data(idata)
   16588       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16589       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16590       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16591       534832 :          idata = idata + 1
   16592       534832 :          data_tmp = full_data(idata)
   16593       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16594       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16595       534832 :          pack_tmp = ISHFT(pack_tmp, -16)
   16596       534832 :          idata = idata + 1
   16597       534832 :          data_tmp = full_data(idata)
   16598       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16599       534832 :          data_tmp = IAND(data_tmp, mask_left(16))
   16600       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16601       534832 :          ipack = ipack + 1
   16602       534832 :          packed_data(ipack) = pack_tmp
   16603       534832 :          data_tmp = full_data(idata)
   16604       534832 :          pack_tmp = ISHFT(data_tmp, 56)
   16605       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16606       534832 :          idata = idata + 1
   16607       534832 :          data_tmp = full_data(idata)
   16608       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16609       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16610       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16611       534832 :          idata = idata + 1
   16612       534832 :          data_tmp = full_data(idata)
   16613       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16614       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16615       534832 :          pack_tmp = ISHFT(pack_tmp, -8)
   16616       534832 :          idata = idata + 1
   16617       534832 :          data_tmp = full_data(idata)
   16618       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16619       534832 :          data_tmp = IAND(data_tmp, mask_left(8))
   16620       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16621       534832 :          ipack = ipack + 1
   16622       534832 :          packed_data(ipack) = pack_tmp
   16623       534832 :          data_tmp = full_data(idata)
   16624       534832 :          pack_tmp = ISHFT(data_tmp, 48)
   16625       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16626       534832 :          idata = idata + 1
   16627       534832 :          data_tmp = full_data(idata)
   16628       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16629       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16630       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16631       534832 :          idata = idata + 1
   16632       534832 :          data_tmp = full_data(idata)
   16633       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16634       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16635       534832 :          pack_tmp = ISHFT(pack_tmp, 0)
   16636       534832 :          idata = idata + 1
   16637       534832 :          data_tmp = full_data(idata)
   16638              :          data_tmp = ISHFT(data_tmp, 40)
   16639       534832 :          data_tmp = IAND(data_tmp, mask_left(0))
   16640       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16641       534832 :          ipack = ipack + 1
   16642       534832 :          packed_data(ipack) = pack_tmp
   16643       534832 :          data_tmp = full_data(idata)
   16644       534832 :          pack_tmp = ISHFT(data_tmp, 40)
   16645       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16646       534832 :          idata = idata + 1
   16647       534832 :          data_tmp = full_data(idata)
   16648       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16649       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16650       534832 :          pack_tmp = ISHFT(pack_tmp, -16)
   16651       534832 :          idata = idata + 1
   16652       534832 :          data_tmp = full_data(idata)
   16653       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16654       534832 :          data_tmp = IAND(data_tmp, mask_left(16))
   16655       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16656       534832 :          ipack = ipack + 1
   16657       534832 :          packed_data(ipack) = pack_tmp
   16658       534832 :          data_tmp = full_data(idata)
   16659       534832 :          pack_tmp = ISHFT(data_tmp, 56)
   16660       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16661       534832 :          idata = idata + 1
   16662       534832 :          data_tmp = full_data(idata)
   16663       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16664       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16665       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16666       534832 :          idata = idata + 1
   16667       534832 :          data_tmp = full_data(idata)
   16668       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16669       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16670       534832 :          pack_tmp = ISHFT(pack_tmp, -8)
   16671       534832 :          idata = idata + 1
   16672       534832 :          data_tmp = full_data(idata)
   16673       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16674       534832 :          data_tmp = IAND(data_tmp, mask_left(8))
   16675       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16676       534832 :          ipack = ipack + 1
   16677       534832 :          packed_data(ipack) = pack_tmp
   16678       534832 :          data_tmp = full_data(idata)
   16679       534832 :          pack_tmp = ISHFT(data_tmp, 48)
   16680       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16681       534832 :          idata = idata + 1
   16682       534832 :          data_tmp = full_data(idata)
   16683       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16684       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16685       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16686       534832 :          idata = idata + 1
   16687       534832 :          data_tmp = full_data(idata)
   16688       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16689       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16690       534832 :          pack_tmp = ISHFT(pack_tmp, 0)
   16691       534832 :          idata = idata + 1
   16692       534832 :          data_tmp = full_data(idata)
   16693              :          data_tmp = ISHFT(data_tmp, 40)
   16694       534832 :          data_tmp = IAND(data_tmp, mask_left(0))
   16695       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16696       534832 :          ipack = ipack + 1
   16697       534832 :          packed_data(ipack) = pack_tmp
   16698       534832 :          data_tmp = full_data(idata)
   16699       534832 :          pack_tmp = ISHFT(data_tmp, 40)
   16700       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16701       534832 :          idata = idata + 1
   16702       534832 :          data_tmp = full_data(idata)
   16703       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16704       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16705       534832 :          pack_tmp = ISHFT(pack_tmp, -16)
   16706       534832 :          idata = idata + 1
   16707       534832 :          data_tmp = full_data(idata)
   16708       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16709       534832 :          data_tmp = IAND(data_tmp, mask_left(16))
   16710       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16711       534832 :          ipack = ipack + 1
   16712       534832 :          packed_data(ipack) = pack_tmp
   16713       534832 :          data_tmp = full_data(idata)
   16714       534832 :          pack_tmp = ISHFT(data_tmp, 56)
   16715       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16716       534832 :          idata = idata + 1
   16717       534832 :          data_tmp = full_data(idata)
   16718       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16719       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16720       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16721       534832 :          idata = idata + 1
   16722       534832 :          data_tmp = full_data(idata)
   16723       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16724       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16725       534832 :          pack_tmp = ISHFT(pack_tmp, -8)
   16726       534832 :          idata = idata + 1
   16727       534832 :          data_tmp = full_data(idata)
   16728       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16729       534832 :          data_tmp = IAND(data_tmp, mask_left(8))
   16730       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16731       534832 :          ipack = ipack + 1
   16732       534832 :          packed_data(ipack) = pack_tmp
   16733       534832 :          data_tmp = full_data(idata)
   16734       534832 :          pack_tmp = ISHFT(data_tmp, 48)
   16735       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16736       534832 :          idata = idata + 1
   16737       534832 :          data_tmp = full_data(idata)
   16738       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16739       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16740       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16741       534832 :          idata = idata + 1
   16742       534832 :          data_tmp = full_data(idata)
   16743       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16744       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16745       534832 :          pack_tmp = ISHFT(pack_tmp, 0)
   16746       534832 :          idata = idata + 1
   16747       534832 :          data_tmp = full_data(idata)
   16748              :          data_tmp = ISHFT(data_tmp, 40)
   16749       534832 :          data_tmp = IAND(data_tmp, mask_left(0))
   16750       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16751       534832 :          ipack = ipack + 1
   16752       534832 :          packed_data(ipack) = pack_tmp
   16753       534832 :          data_tmp = full_data(idata)
   16754       534832 :          pack_tmp = ISHFT(data_tmp, 40)
   16755       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16756       534832 :          idata = idata + 1
   16757       534832 :          data_tmp = full_data(idata)
   16758       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16759       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16760       534832 :          pack_tmp = ISHFT(pack_tmp, -16)
   16761       534832 :          idata = idata + 1
   16762       534832 :          data_tmp = full_data(idata)
   16763       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16764       534832 :          data_tmp = IAND(data_tmp, mask_left(16))
   16765       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16766       534832 :          ipack = ipack + 1
   16767       534832 :          packed_data(ipack) = pack_tmp
   16768       534832 :          data_tmp = full_data(idata)
   16769       534832 :          pack_tmp = ISHFT(data_tmp, 56)
   16770       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16771       534832 :          idata = idata + 1
   16772       534832 :          data_tmp = full_data(idata)
   16773       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16774       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16775       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16776       534832 :          idata = idata + 1
   16777       534832 :          data_tmp = full_data(idata)
   16778       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16779       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16780       534832 :          pack_tmp = ISHFT(pack_tmp, -8)
   16781       534832 :          idata = idata + 1
   16782       534832 :          data_tmp = full_data(idata)
   16783       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16784       534832 :          data_tmp = IAND(data_tmp, mask_left(8))
   16785       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16786       534832 :          ipack = ipack + 1
   16787       534832 :          packed_data(ipack) = pack_tmp
   16788       534832 :          data_tmp = full_data(idata)
   16789       534832 :          pack_tmp = ISHFT(data_tmp, 48)
   16790       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16791       534832 :          idata = idata + 1
   16792       534832 :          data_tmp = full_data(idata)
   16793       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16794       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16795       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16796       534832 :          idata = idata + 1
   16797       534832 :          data_tmp = full_data(idata)
   16798       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16799       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16800       534832 :          pack_tmp = ISHFT(pack_tmp, 0)
   16801       534832 :          idata = idata + 1
   16802       534832 :          data_tmp = full_data(idata)
   16803              :          data_tmp = ISHFT(data_tmp, 40)
   16804       534832 :          data_tmp = IAND(data_tmp, mask_left(0))
   16805       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16806       534832 :          ipack = ipack + 1
   16807       534832 :          packed_data(ipack) = pack_tmp
   16808       534832 :          data_tmp = full_data(idata)
   16809       534832 :          pack_tmp = ISHFT(data_tmp, 40)
   16810       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16811       534832 :          idata = idata + 1
   16812       534832 :          data_tmp = full_data(idata)
   16813       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16814       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16815       534832 :          pack_tmp = ISHFT(pack_tmp, -16)
   16816       534832 :          idata = idata + 1
   16817       534832 :          data_tmp = full_data(idata)
   16818       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16819       534832 :          data_tmp = IAND(data_tmp, mask_left(16))
   16820       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16821       534832 :          ipack = ipack + 1
   16822       534832 :          packed_data(ipack) = pack_tmp
   16823       534832 :          data_tmp = full_data(idata)
   16824       534832 :          pack_tmp = ISHFT(data_tmp, 56)
   16825       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16826       534832 :          idata = idata + 1
   16827       534832 :          data_tmp = full_data(idata)
   16828       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16829       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16830       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16831       534832 :          idata = idata + 1
   16832       534832 :          data_tmp = full_data(idata)
   16833       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16834       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16835       534832 :          pack_tmp = ISHFT(pack_tmp, -8)
   16836       534832 :          idata = idata + 1
   16837       534832 :          data_tmp = full_data(idata)
   16838       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16839       534832 :          data_tmp = IAND(data_tmp, mask_left(8))
   16840       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16841       534832 :          ipack = ipack + 1
   16842       534832 :          packed_data(ipack) = pack_tmp
   16843       534832 :          data_tmp = full_data(idata)
   16844       534832 :          pack_tmp = ISHFT(data_tmp, 48)
   16845       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16846       534832 :          idata = idata + 1
   16847       534832 :          data_tmp = full_data(idata)
   16848       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16849       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16850       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16851       534832 :          idata = idata + 1
   16852       534832 :          data_tmp = full_data(idata)
   16853       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16854       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16855       534832 :          pack_tmp = ISHFT(pack_tmp, 0)
   16856       534832 :          idata = idata + 1
   16857       534832 :          data_tmp = full_data(idata)
   16858              :          data_tmp = ISHFT(data_tmp, 40)
   16859       534832 :          data_tmp = IAND(data_tmp, mask_left(0))
   16860       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16861       534832 :          ipack = ipack + 1
   16862       534832 :          packed_data(ipack) = pack_tmp
   16863       534832 :          data_tmp = full_data(idata)
   16864       534832 :          pack_tmp = ISHFT(data_tmp, 40)
   16865       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16866       534832 :          idata = idata + 1
   16867       534832 :          data_tmp = full_data(idata)
   16868       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16869       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16870       534832 :          pack_tmp = ISHFT(pack_tmp, -16)
   16871       534832 :          idata = idata + 1
   16872       534832 :          data_tmp = full_data(idata)
   16873       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16874       534832 :          data_tmp = IAND(data_tmp, mask_left(16))
   16875       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16876       534832 :          ipack = ipack + 1
   16877       534832 :          packed_data(ipack) = pack_tmp
   16878       534832 :          data_tmp = full_data(idata)
   16879       534832 :          pack_tmp = ISHFT(data_tmp, 56)
   16880       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16881       534832 :          idata = idata + 1
   16882       534832 :          data_tmp = full_data(idata)
   16883       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16884       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16885       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16886       534832 :          idata = idata + 1
   16887       534832 :          data_tmp = full_data(idata)
   16888       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16889       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16890       534832 :          pack_tmp = ISHFT(pack_tmp, -8)
   16891       534832 :          idata = idata + 1
   16892       534832 :          data_tmp = full_data(idata)
   16893       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16894       534832 :          data_tmp = IAND(data_tmp, mask_left(8))
   16895       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16896       534832 :          ipack = ipack + 1
   16897       534832 :          packed_data(ipack) = pack_tmp
   16898       534832 :          data_tmp = full_data(idata)
   16899       534832 :          pack_tmp = ISHFT(data_tmp, 48)
   16900       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16901       534832 :          idata = idata + 1
   16902       534832 :          data_tmp = full_data(idata)
   16903       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16904       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16905       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16906       534832 :          idata = idata + 1
   16907       534832 :          data_tmp = full_data(idata)
   16908       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16909       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16910       534832 :          pack_tmp = ISHFT(pack_tmp, 0)
   16911       534832 :          idata = idata + 1
   16912       534832 :          data_tmp = full_data(idata)
   16913              :          data_tmp = ISHFT(data_tmp, 40)
   16914       534832 :          data_tmp = IAND(data_tmp, mask_left(0))
   16915       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16916       534832 :          ipack = ipack + 1
   16917       534832 :          packed_data(ipack) = pack_tmp
   16918       534832 :          data_tmp = full_data(idata)
   16919       534832 :          pack_tmp = ISHFT(data_tmp, 40)
   16920       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16921       534832 :          idata = idata + 1
   16922       534832 :          data_tmp = full_data(idata)
   16923       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16924       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16925       534832 :          pack_tmp = ISHFT(pack_tmp, -16)
   16926       534832 :          idata = idata + 1
   16927       534832 :          data_tmp = full_data(idata)
   16928       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16929       534832 :          data_tmp = IAND(data_tmp, mask_left(16))
   16930       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16931       534832 :          ipack = ipack + 1
   16932       534832 :          packed_data(ipack) = pack_tmp
   16933       534832 :          data_tmp = full_data(idata)
   16934       534832 :          pack_tmp = ISHFT(data_tmp, 56)
   16935       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16936       534832 :          idata = idata + 1
   16937       534832 :          data_tmp = full_data(idata)
   16938       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16939       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16940       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16941       534832 :          idata = idata + 1
   16942       534832 :          data_tmp = full_data(idata)
   16943       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16944       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16945       534832 :          pack_tmp = ISHFT(pack_tmp, -8)
   16946       534832 :          idata = idata + 1
   16947       534832 :          data_tmp = full_data(idata)
   16948       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16949       534832 :          data_tmp = IAND(data_tmp, mask_left(8))
   16950       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16951       534832 :          ipack = ipack + 1
   16952       534832 :          packed_data(ipack) = pack_tmp
   16953       534832 :          data_tmp = full_data(idata)
   16954       534832 :          pack_tmp = ISHFT(data_tmp, 48)
   16955       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16956       534832 :          idata = idata + 1
   16957       534832 :          data_tmp = full_data(idata)
   16958       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16959       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16960       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16961       534832 :          idata = idata + 1
   16962       534832 :          data_tmp = full_data(idata)
   16963       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16964       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16965       534832 :          pack_tmp = ISHFT(pack_tmp, 0)
   16966       534832 :          idata = idata + 1
   16967       534832 :          data_tmp = full_data(idata)
   16968              :          data_tmp = ISHFT(data_tmp, 40)
   16969       534832 :          data_tmp = IAND(data_tmp, mask_left(0))
   16970       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16971       534832 :          ipack = ipack + 1
   16972       534832 :          packed_data(ipack) = pack_tmp
   16973       534832 :          data_tmp = full_data(idata)
   16974       534832 :          pack_tmp = ISHFT(data_tmp, 40)
   16975       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16976       534832 :          idata = idata + 1
   16977       534832 :          data_tmp = full_data(idata)
   16978       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16979       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16980       534832 :          pack_tmp = ISHFT(pack_tmp, -16)
   16981       534832 :          idata = idata + 1
   16982       534832 :          data_tmp = full_data(idata)
   16983       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16984       534832 :          data_tmp = IAND(data_tmp, mask_left(16))
   16985       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16986       534832 :          ipack = ipack + 1
   16987       534832 :          packed_data(ipack) = pack_tmp
   16988       534832 :          data_tmp = full_data(idata)
   16989       534832 :          pack_tmp = ISHFT(data_tmp, 56)
   16990       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16991       534832 :          idata = idata + 1
   16992       534832 :          data_tmp = full_data(idata)
   16993       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16994       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   16995       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   16996       534832 :          idata = idata + 1
   16997       534832 :          data_tmp = full_data(idata)
   16998       534832 :          data_tmp = ISHFT(data_tmp, 40)
   16999       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17000       534832 :          pack_tmp = ISHFT(pack_tmp, -8)
   17001       534832 :          idata = idata + 1
   17002       534832 :          data_tmp = full_data(idata)
   17003       534832 :          data_tmp = ISHFT(data_tmp, 40)
   17004       534832 :          data_tmp = IAND(data_tmp, mask_left(8))
   17005       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17006       534832 :          ipack = ipack + 1
   17007       534832 :          packed_data(ipack) = pack_tmp
   17008       534832 :          data_tmp = full_data(idata)
   17009       534832 :          pack_tmp = ISHFT(data_tmp, 48)
   17010       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   17011       534832 :          idata = idata + 1
   17012       534832 :          data_tmp = full_data(idata)
   17013       534832 :          data_tmp = ISHFT(data_tmp, 40)
   17014       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17015       534832 :          pack_tmp = ISHFT(pack_tmp, -24)
   17016       534832 :          idata = idata + 1
   17017       534832 :          data_tmp = full_data(idata)
   17018       534832 :          data_tmp = ISHFT(data_tmp, 40)
   17019       534832 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17020              :          pack_tmp = ISHFT(pack_tmp, 0)
   17021       534832 :          pack_tmp = ISHFT(pack_tmp, 0)
   17022       534832 :          ipack = ipack + 1
   17023       535512 :          packed_data(ipack) = pack_tmp
   17024              :       END DO
   17025        36912 :       IF (Ndata_rep < Ndata) THEN
   17026         6560 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17027              :       END IF
   17028        36912 :    END SUBROUTINE ints2bits_24
   17029              : 
   17030              : ! **************************************************************************************************
   17031              : !> \brief ...
   17032              : !> \param Ndata ...
   17033              : !> \param packed_data ...
   17034              : !> \param full_data ...
   17035              : ! **************************************************************************************************
   17036       163883 :    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       163883 :       ipack = 0
   17047       163883 :       idata = 0
   17048       163883 :       pack_tmp = 0
   17049       163883 :       Ndata_rep = (Ndata/64)*64
   17050       163883 :       DO kdata = 1, Ndata_rep, 64
   17051      2322282 :          idata = idata + 1
   17052      2322282 :          data_tmp = ISHFT(pack_tmp, 24)
   17053      2322282 :          ipack = ipack + 1
   17054      2322282 :          pack_tmp = packed_data(ipack)
   17055      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17056      2322282 :          pack_tmp = ISHFT(pack_tmp, -24)
   17057      2322282 :          idata = idata + 1
   17058      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17059      2322282 :          full_data(idata) = data_tmp
   17060      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17061      2322282 :          idata = idata + 1
   17062      2322282 :          data_tmp = ISHFT(pack_tmp, 8)
   17063      2322282 :          ipack = ipack + 1
   17064      2322282 :          pack_tmp = packed_data(ipack)
   17065      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17066      2322282 :          pack_tmp = ISHFT(pack_tmp, -8)
   17067      2322282 :          idata = idata + 1
   17068      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17069      2322282 :          full_data(idata) = data_tmp
   17070      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17071      2322282 :          idata = idata + 1
   17072      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17073      2322282 :          full_data(idata) = data_tmp
   17074      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17075      2322282 :          idata = idata + 1
   17076      2322282 :          data_tmp = ISHFT(pack_tmp, 16)
   17077      2322282 :          ipack = ipack + 1
   17078      2322282 :          pack_tmp = packed_data(ipack)
   17079      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17080      2322282 :          pack_tmp = ISHFT(pack_tmp, -16)
   17081      2322282 :          idata = idata + 1
   17082      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17083      2322282 :          full_data(idata) = data_tmp
   17084      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17085      2322282 :          idata = idata + 1
   17086      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17087      2322282 :          full_data(idata) = data_tmp
   17088      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17089      2322282 :          idata = idata + 1
   17090      2322282 :          data_tmp = ISHFT(pack_tmp, 24)
   17091      2322282 :          ipack = ipack + 1
   17092      2322282 :          pack_tmp = packed_data(ipack)
   17093      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17094      2322282 :          pack_tmp = ISHFT(pack_tmp, -24)
   17095      2322282 :          idata = idata + 1
   17096      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17097      2322282 :          full_data(idata) = data_tmp
   17098      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17099      2322282 :          idata = idata + 1
   17100      2322282 :          data_tmp = ISHFT(pack_tmp, 8)
   17101      2322282 :          ipack = ipack + 1
   17102      2322282 :          pack_tmp = packed_data(ipack)
   17103      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17104      2322282 :          pack_tmp = ISHFT(pack_tmp, -8)
   17105      2322282 :          idata = idata + 1
   17106      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17107      2322282 :          full_data(idata) = data_tmp
   17108      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17109      2322282 :          idata = idata + 1
   17110      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17111      2322282 :          full_data(idata) = data_tmp
   17112      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17113      2322282 :          idata = idata + 1
   17114      2322282 :          data_tmp = ISHFT(pack_tmp, 16)
   17115      2322282 :          ipack = ipack + 1
   17116      2322282 :          pack_tmp = packed_data(ipack)
   17117      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17118      2322282 :          pack_tmp = ISHFT(pack_tmp, -16)
   17119      2322282 :          idata = idata + 1
   17120      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17121      2322282 :          full_data(idata) = data_tmp
   17122      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17123      2322282 :          idata = idata + 1
   17124      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17125      2322282 :          full_data(idata) = data_tmp
   17126      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17127      2322282 :          idata = idata + 1
   17128      2322282 :          data_tmp = ISHFT(pack_tmp, 24)
   17129      2322282 :          ipack = ipack + 1
   17130      2322282 :          pack_tmp = packed_data(ipack)
   17131      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17132      2322282 :          pack_tmp = ISHFT(pack_tmp, -24)
   17133      2322282 :          idata = idata + 1
   17134      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17135      2322282 :          full_data(idata) = data_tmp
   17136      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17137      2322282 :          idata = idata + 1
   17138      2322282 :          data_tmp = ISHFT(pack_tmp, 8)
   17139      2322282 :          ipack = ipack + 1
   17140      2322282 :          pack_tmp = packed_data(ipack)
   17141      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17142      2322282 :          pack_tmp = ISHFT(pack_tmp, -8)
   17143      2322282 :          idata = idata + 1
   17144      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17145      2322282 :          full_data(idata) = data_tmp
   17146      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17147      2322282 :          idata = idata + 1
   17148      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17149      2322282 :          full_data(idata) = data_tmp
   17150      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17151      2322282 :          idata = idata + 1
   17152      2322282 :          data_tmp = ISHFT(pack_tmp, 16)
   17153      2322282 :          ipack = ipack + 1
   17154      2322282 :          pack_tmp = packed_data(ipack)
   17155      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17156      2322282 :          pack_tmp = ISHFT(pack_tmp, -16)
   17157      2322282 :          idata = idata + 1
   17158      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17159      2322282 :          full_data(idata) = data_tmp
   17160      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17161      2322282 :          idata = idata + 1
   17162      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17163      2322282 :          full_data(idata) = data_tmp
   17164      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17165      2322282 :          idata = idata + 1
   17166      2322282 :          data_tmp = ISHFT(pack_tmp, 24)
   17167      2322282 :          ipack = ipack + 1
   17168      2322282 :          pack_tmp = packed_data(ipack)
   17169      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17170      2322282 :          pack_tmp = ISHFT(pack_tmp, -24)
   17171      2322282 :          idata = idata + 1
   17172      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17173      2322282 :          full_data(idata) = data_tmp
   17174      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17175      2322282 :          idata = idata + 1
   17176      2322282 :          data_tmp = ISHFT(pack_tmp, 8)
   17177      2322282 :          ipack = ipack + 1
   17178      2322282 :          pack_tmp = packed_data(ipack)
   17179      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17180      2322282 :          pack_tmp = ISHFT(pack_tmp, -8)
   17181      2322282 :          idata = idata + 1
   17182      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17183      2322282 :          full_data(idata) = data_tmp
   17184      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17185      2322282 :          idata = idata + 1
   17186      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17187      2322282 :          full_data(idata) = data_tmp
   17188      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17189      2322282 :          idata = idata + 1
   17190      2322282 :          data_tmp = ISHFT(pack_tmp, 16)
   17191      2322282 :          ipack = ipack + 1
   17192      2322282 :          pack_tmp = packed_data(ipack)
   17193      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17194      2322282 :          pack_tmp = ISHFT(pack_tmp, -16)
   17195      2322282 :          idata = idata + 1
   17196      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17197      2322282 :          full_data(idata) = data_tmp
   17198      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17199      2322282 :          idata = idata + 1
   17200      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17201      2322282 :          full_data(idata) = data_tmp
   17202      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17203      2322282 :          idata = idata + 1
   17204      2322282 :          data_tmp = ISHFT(pack_tmp, 24)
   17205      2322282 :          ipack = ipack + 1
   17206      2322282 :          pack_tmp = packed_data(ipack)
   17207      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17208      2322282 :          pack_tmp = ISHFT(pack_tmp, -24)
   17209      2322282 :          idata = idata + 1
   17210      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17211      2322282 :          full_data(idata) = data_tmp
   17212      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17213      2322282 :          idata = idata + 1
   17214      2322282 :          data_tmp = ISHFT(pack_tmp, 8)
   17215      2322282 :          ipack = ipack + 1
   17216      2322282 :          pack_tmp = packed_data(ipack)
   17217      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17218      2322282 :          pack_tmp = ISHFT(pack_tmp, -8)
   17219      2322282 :          idata = idata + 1
   17220      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17221      2322282 :          full_data(idata) = data_tmp
   17222      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17223      2322282 :          idata = idata + 1
   17224      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17225      2322282 :          full_data(idata) = data_tmp
   17226      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17227      2322282 :          idata = idata + 1
   17228      2322282 :          data_tmp = ISHFT(pack_tmp, 16)
   17229      2322282 :          ipack = ipack + 1
   17230      2322282 :          pack_tmp = packed_data(ipack)
   17231      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17232      2322282 :          pack_tmp = ISHFT(pack_tmp, -16)
   17233      2322282 :          idata = idata + 1
   17234      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17235      2322282 :          full_data(idata) = data_tmp
   17236      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17237      2322282 :          idata = idata + 1
   17238      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17239      2322282 :          full_data(idata) = data_tmp
   17240      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17241      2322282 :          idata = idata + 1
   17242      2322282 :          data_tmp = ISHFT(pack_tmp, 24)
   17243      2322282 :          ipack = ipack + 1
   17244      2322282 :          pack_tmp = packed_data(ipack)
   17245      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17246      2322282 :          pack_tmp = ISHFT(pack_tmp, -24)
   17247      2322282 :          idata = idata + 1
   17248      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17249      2322282 :          full_data(idata) = data_tmp
   17250      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17251      2322282 :          idata = idata + 1
   17252      2322282 :          data_tmp = ISHFT(pack_tmp, 8)
   17253      2322282 :          ipack = ipack + 1
   17254      2322282 :          pack_tmp = packed_data(ipack)
   17255      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17256      2322282 :          pack_tmp = ISHFT(pack_tmp, -8)
   17257      2322282 :          idata = idata + 1
   17258      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17259      2322282 :          full_data(idata) = data_tmp
   17260      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17261      2322282 :          idata = idata + 1
   17262      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17263      2322282 :          full_data(idata) = data_tmp
   17264      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17265      2322282 :          idata = idata + 1
   17266      2322282 :          data_tmp = ISHFT(pack_tmp, 16)
   17267      2322282 :          ipack = ipack + 1
   17268      2322282 :          pack_tmp = packed_data(ipack)
   17269      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17270      2322282 :          pack_tmp = ISHFT(pack_tmp, -16)
   17271      2322282 :          idata = idata + 1
   17272      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17273      2322282 :          full_data(idata) = data_tmp
   17274      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17275      2322282 :          idata = idata + 1
   17276      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17277      2322282 :          full_data(idata) = data_tmp
   17278      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17279      2322282 :          idata = idata + 1
   17280      2322282 :          data_tmp = ISHFT(pack_tmp, 24)
   17281      2322282 :          ipack = ipack + 1
   17282      2322282 :          pack_tmp = packed_data(ipack)
   17283      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17284      2322282 :          pack_tmp = ISHFT(pack_tmp, -24)
   17285      2322282 :          idata = idata + 1
   17286      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17287      2322282 :          full_data(idata) = data_tmp
   17288      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17289      2322282 :          idata = idata + 1
   17290      2322282 :          data_tmp = ISHFT(pack_tmp, 8)
   17291      2322282 :          ipack = ipack + 1
   17292      2322282 :          pack_tmp = packed_data(ipack)
   17293      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17294      2322282 :          pack_tmp = ISHFT(pack_tmp, -8)
   17295      2322282 :          idata = idata + 1
   17296      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17297      2322282 :          full_data(idata) = data_tmp
   17298      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17299      2322282 :          idata = idata + 1
   17300      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17301      2322282 :          full_data(idata) = data_tmp
   17302      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17303      2322282 :          idata = idata + 1
   17304      2322282 :          data_tmp = ISHFT(pack_tmp, 16)
   17305      2322282 :          ipack = ipack + 1
   17306      2322282 :          pack_tmp = packed_data(ipack)
   17307      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17308      2322282 :          pack_tmp = ISHFT(pack_tmp, -16)
   17309      2322282 :          idata = idata + 1
   17310      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17311      2322282 :          full_data(idata) = data_tmp
   17312      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17313      2322282 :          idata = idata + 1
   17314      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17315      2322282 :          full_data(idata) = data_tmp
   17316      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17317      2322282 :          idata = idata + 1
   17318      2322282 :          data_tmp = ISHFT(pack_tmp, 24)
   17319      2322282 :          ipack = ipack + 1
   17320      2322282 :          pack_tmp = packed_data(ipack)
   17321      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17322      2322282 :          pack_tmp = ISHFT(pack_tmp, -24)
   17323      2322282 :          idata = idata + 1
   17324      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17325      2322282 :          full_data(idata) = data_tmp
   17326      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17327      2322282 :          idata = idata + 1
   17328      2322282 :          data_tmp = ISHFT(pack_tmp, 8)
   17329      2322282 :          ipack = ipack + 1
   17330      2322282 :          pack_tmp = packed_data(ipack)
   17331      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17332      2322282 :          pack_tmp = ISHFT(pack_tmp, -8)
   17333      2322282 :          idata = idata + 1
   17334      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17335      2322282 :          full_data(idata) = data_tmp
   17336      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17337      2322282 :          idata = idata + 1
   17338      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17339      2322282 :          full_data(idata) = data_tmp
   17340      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17341      2322282 :          idata = idata + 1
   17342      2322282 :          data_tmp = ISHFT(pack_tmp, 16)
   17343      2322282 :          ipack = ipack + 1
   17344      2322282 :          pack_tmp = packed_data(ipack)
   17345      2322282 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17346      2322282 :          pack_tmp = ISHFT(pack_tmp, -16)
   17347      2322282 :          idata = idata + 1
   17348      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17349      2322282 :          full_data(idata) = data_tmp
   17350      2322282 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17351      2322282 :          idata = idata + 1
   17352      2322282 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17353      2322282 :          full_data(idata) = data_tmp
   17354      2326079 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17355              :       END DO
   17356       163883 :       IF (Ndata_rep < Ndata) THEN
   17357        35276 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17358              :       END IF
   17359       163883 :    END SUBROUTINE bits2ints_24
   17360              : 
   17361              : ! **************************************************************************************************
   17362              : !> \brief ...
   17363              : !> \param Ndata ...
   17364              : !> \param packed_data ...
   17365              : !> \param full_data ...
   17366              : ! **************************************************************************************************
   17367        38223 :    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        38223 :       idata = 0
   17378        38223 :       ipack = 0
   17379        38223 :       Ndata_rep = (Ndata/64)*64
   17380        38223 :       DO kdata = 1, Ndata_rep, 64
   17381       547002 :          pack_tmp = 0
   17382       547002 :          idata = idata + 1
   17383       547002 :          data_tmp = full_data(idata)
   17384       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17385       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17386       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17387       547002 :          idata = idata + 1
   17388       547002 :          data_tmp = full_data(idata)
   17389       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17390       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17391       547002 :          pack_tmp = ISHFT(pack_tmp, -14)
   17392       547002 :          idata = idata + 1
   17393       547002 :          data_tmp = full_data(idata)
   17394       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17395       547002 :          data_tmp = IAND(data_tmp, mask_left(14))
   17396       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17397       547002 :          ipack = ipack + 1
   17398       547002 :          packed_data(ipack) = pack_tmp
   17399       547002 :          data_tmp = full_data(idata)
   17400       547002 :          pack_tmp = ISHFT(data_tmp, 53)
   17401       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17402       547002 :          idata = idata + 1
   17403       547002 :          data_tmp = full_data(idata)
   17404       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17405       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17406       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17407       547002 :          idata = idata + 1
   17408       547002 :          data_tmp = full_data(idata)
   17409       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17410       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17411       547002 :          pack_tmp = ISHFT(pack_tmp, -3)
   17412       547002 :          idata = idata + 1
   17413       547002 :          data_tmp = full_data(idata)
   17414       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17415       547002 :          data_tmp = IAND(data_tmp, mask_left(3))
   17416       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17417       547002 :          ipack = ipack + 1
   17418       547002 :          packed_data(ipack) = pack_tmp
   17419       547002 :          data_tmp = full_data(idata)
   17420       547002 :          pack_tmp = ISHFT(data_tmp, 42)
   17421       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17422       547002 :          idata = idata + 1
   17423       547002 :          data_tmp = full_data(idata)
   17424       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17425       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17426       547002 :          pack_tmp = ISHFT(pack_tmp, -17)
   17427       547002 :          idata = idata + 1
   17428       547002 :          data_tmp = full_data(idata)
   17429       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17430       547002 :          data_tmp = IAND(data_tmp, mask_left(17))
   17431       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17432       547002 :          ipack = ipack + 1
   17433       547002 :          packed_data(ipack) = pack_tmp
   17434       547002 :          data_tmp = full_data(idata)
   17435       547002 :          pack_tmp = ISHFT(data_tmp, 56)
   17436       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17437       547002 :          idata = idata + 1
   17438       547002 :          data_tmp = full_data(idata)
   17439       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17440       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17441       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17442       547002 :          idata = idata + 1
   17443       547002 :          data_tmp = full_data(idata)
   17444       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17445       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17446       547002 :          pack_tmp = ISHFT(pack_tmp, -6)
   17447       547002 :          idata = idata + 1
   17448       547002 :          data_tmp = full_data(idata)
   17449       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17450       547002 :          data_tmp = IAND(data_tmp, mask_left(6))
   17451       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17452       547002 :          ipack = ipack + 1
   17453       547002 :          packed_data(ipack) = pack_tmp
   17454       547002 :          data_tmp = full_data(idata)
   17455       547002 :          pack_tmp = ISHFT(data_tmp, 45)
   17456       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17457       547002 :          idata = idata + 1
   17458       547002 :          data_tmp = full_data(idata)
   17459       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17460       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17461       547002 :          pack_tmp = ISHFT(pack_tmp, -20)
   17462       547002 :          idata = idata + 1
   17463       547002 :          data_tmp = full_data(idata)
   17464       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17465       547002 :          data_tmp = IAND(data_tmp, mask_left(20))
   17466       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17467       547002 :          ipack = ipack + 1
   17468       547002 :          packed_data(ipack) = pack_tmp
   17469       547002 :          data_tmp = full_data(idata)
   17470       547002 :          pack_tmp = ISHFT(data_tmp, 59)
   17471       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17472       547002 :          idata = idata + 1
   17473       547002 :          data_tmp = full_data(idata)
   17474       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17475       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17476       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17477       547002 :          idata = idata + 1
   17478       547002 :          data_tmp = full_data(idata)
   17479       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17480       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17481       547002 :          pack_tmp = ISHFT(pack_tmp, -9)
   17482       547002 :          idata = idata + 1
   17483       547002 :          data_tmp = full_data(idata)
   17484       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17485       547002 :          data_tmp = IAND(data_tmp, mask_left(9))
   17486       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17487       547002 :          ipack = ipack + 1
   17488       547002 :          packed_data(ipack) = pack_tmp
   17489       547002 :          data_tmp = full_data(idata)
   17490       547002 :          pack_tmp = ISHFT(data_tmp, 48)
   17491       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17492       547002 :          idata = idata + 1
   17493       547002 :          data_tmp = full_data(idata)
   17494       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17495       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17496       547002 :          pack_tmp = ISHFT(pack_tmp, -23)
   17497       547002 :          idata = idata + 1
   17498       547002 :          data_tmp = full_data(idata)
   17499       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17500       547002 :          data_tmp = IAND(data_tmp, mask_left(23))
   17501       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17502       547002 :          ipack = ipack + 1
   17503       547002 :          packed_data(ipack) = pack_tmp
   17504       547002 :          data_tmp = full_data(idata)
   17505       547002 :          pack_tmp = ISHFT(data_tmp, 62)
   17506       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17507       547002 :          idata = idata + 1
   17508       547002 :          data_tmp = full_data(idata)
   17509       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17510       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17511       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17512       547002 :          idata = idata + 1
   17513       547002 :          data_tmp = full_data(idata)
   17514       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17515       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17516       547002 :          pack_tmp = ISHFT(pack_tmp, -12)
   17517       547002 :          idata = idata + 1
   17518       547002 :          data_tmp = full_data(idata)
   17519       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17520       547002 :          data_tmp = IAND(data_tmp, mask_left(12))
   17521       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17522       547002 :          ipack = ipack + 1
   17523       547002 :          packed_data(ipack) = pack_tmp
   17524       547002 :          data_tmp = full_data(idata)
   17525       547002 :          pack_tmp = ISHFT(data_tmp, 51)
   17526       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17527       547002 :          idata = idata + 1
   17528       547002 :          data_tmp = full_data(idata)
   17529       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17530       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17531       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17532       547002 :          idata = idata + 1
   17533       547002 :          data_tmp = full_data(idata)
   17534       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17535       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17536       547002 :          pack_tmp = ISHFT(pack_tmp, -1)
   17537       547002 :          idata = idata + 1
   17538       547002 :          data_tmp = full_data(idata)
   17539       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17540       547002 :          data_tmp = IAND(data_tmp, mask_left(1))
   17541       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17542       547002 :          ipack = ipack + 1
   17543       547002 :          packed_data(ipack) = pack_tmp
   17544       547002 :          data_tmp = full_data(idata)
   17545       547002 :          pack_tmp = ISHFT(data_tmp, 40)
   17546       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17547       547002 :          idata = idata + 1
   17548       547002 :          data_tmp = full_data(idata)
   17549       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17550       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17551       547002 :          pack_tmp = ISHFT(pack_tmp, -15)
   17552       547002 :          idata = idata + 1
   17553       547002 :          data_tmp = full_data(idata)
   17554       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17555       547002 :          data_tmp = IAND(data_tmp, mask_left(15))
   17556       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17557       547002 :          ipack = ipack + 1
   17558       547002 :          packed_data(ipack) = pack_tmp
   17559       547002 :          data_tmp = full_data(idata)
   17560       547002 :          pack_tmp = ISHFT(data_tmp, 54)
   17561       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17562       547002 :          idata = idata + 1
   17563       547002 :          data_tmp = full_data(idata)
   17564       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17565       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17566       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17567       547002 :          idata = idata + 1
   17568       547002 :          data_tmp = full_data(idata)
   17569       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17570       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17571       547002 :          pack_tmp = ISHFT(pack_tmp, -4)
   17572       547002 :          idata = idata + 1
   17573       547002 :          data_tmp = full_data(idata)
   17574       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17575       547002 :          data_tmp = IAND(data_tmp, mask_left(4))
   17576       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17577       547002 :          ipack = ipack + 1
   17578       547002 :          packed_data(ipack) = pack_tmp
   17579       547002 :          data_tmp = full_data(idata)
   17580       547002 :          pack_tmp = ISHFT(data_tmp, 43)
   17581       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17582       547002 :          idata = idata + 1
   17583       547002 :          data_tmp = full_data(idata)
   17584       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17585       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17586       547002 :          pack_tmp = ISHFT(pack_tmp, -18)
   17587       547002 :          idata = idata + 1
   17588       547002 :          data_tmp = full_data(idata)
   17589       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17590       547002 :          data_tmp = IAND(data_tmp, mask_left(18))
   17591       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17592       547002 :          ipack = ipack + 1
   17593       547002 :          packed_data(ipack) = pack_tmp
   17594       547002 :          data_tmp = full_data(idata)
   17595       547002 :          pack_tmp = ISHFT(data_tmp, 57)
   17596       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17597       547002 :          idata = idata + 1
   17598       547002 :          data_tmp = full_data(idata)
   17599       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17600       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17601       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17602       547002 :          idata = idata + 1
   17603       547002 :          data_tmp = full_data(idata)
   17604       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17605       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17606       547002 :          pack_tmp = ISHFT(pack_tmp, -7)
   17607       547002 :          idata = idata + 1
   17608       547002 :          data_tmp = full_data(idata)
   17609       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17610       547002 :          data_tmp = IAND(data_tmp, mask_left(7))
   17611       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17612       547002 :          ipack = ipack + 1
   17613       547002 :          packed_data(ipack) = pack_tmp
   17614       547002 :          data_tmp = full_data(idata)
   17615       547002 :          pack_tmp = ISHFT(data_tmp, 46)
   17616       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17617       547002 :          idata = idata + 1
   17618       547002 :          data_tmp = full_data(idata)
   17619       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17620       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17621       547002 :          pack_tmp = ISHFT(pack_tmp, -21)
   17622       547002 :          idata = idata + 1
   17623       547002 :          data_tmp = full_data(idata)
   17624       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17625       547002 :          data_tmp = IAND(data_tmp, mask_left(21))
   17626       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17627       547002 :          ipack = ipack + 1
   17628       547002 :          packed_data(ipack) = pack_tmp
   17629       547002 :          data_tmp = full_data(idata)
   17630       547002 :          pack_tmp = ISHFT(data_tmp, 60)
   17631       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17632       547002 :          idata = idata + 1
   17633       547002 :          data_tmp = full_data(idata)
   17634       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17635       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17636       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17637       547002 :          idata = idata + 1
   17638       547002 :          data_tmp = full_data(idata)
   17639       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17640       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17641       547002 :          pack_tmp = ISHFT(pack_tmp, -10)
   17642       547002 :          idata = idata + 1
   17643       547002 :          data_tmp = full_data(idata)
   17644       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17645       547002 :          data_tmp = IAND(data_tmp, mask_left(10))
   17646       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17647       547002 :          ipack = ipack + 1
   17648       547002 :          packed_data(ipack) = pack_tmp
   17649       547002 :          data_tmp = full_data(idata)
   17650       547002 :          pack_tmp = ISHFT(data_tmp, 49)
   17651       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17652       547002 :          idata = idata + 1
   17653       547002 :          data_tmp = full_data(idata)
   17654       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17655       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17656       547002 :          pack_tmp = ISHFT(pack_tmp, -24)
   17657       547002 :          idata = idata + 1
   17658       547002 :          data_tmp = full_data(idata)
   17659       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17660       547002 :          data_tmp = IAND(data_tmp, mask_left(24))
   17661       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17662       547002 :          ipack = ipack + 1
   17663       547002 :          packed_data(ipack) = pack_tmp
   17664       547002 :          data_tmp = full_data(idata)
   17665       547002 :          pack_tmp = ISHFT(data_tmp, 63)
   17666       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17667       547002 :          idata = idata + 1
   17668       547002 :          data_tmp = full_data(idata)
   17669       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17670       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17671       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17672       547002 :          idata = idata + 1
   17673       547002 :          data_tmp = full_data(idata)
   17674       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17675       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17676       547002 :          pack_tmp = ISHFT(pack_tmp, -13)
   17677       547002 :          idata = idata + 1
   17678       547002 :          data_tmp = full_data(idata)
   17679       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17680       547002 :          data_tmp = IAND(data_tmp, mask_left(13))
   17681       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17682       547002 :          ipack = ipack + 1
   17683       547002 :          packed_data(ipack) = pack_tmp
   17684       547002 :          data_tmp = full_data(idata)
   17685       547002 :          pack_tmp = ISHFT(data_tmp, 52)
   17686       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17687       547002 :          idata = idata + 1
   17688       547002 :          data_tmp = full_data(idata)
   17689       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17690       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17691       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17692       547002 :          idata = idata + 1
   17693       547002 :          data_tmp = full_data(idata)
   17694       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17695       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17696       547002 :          pack_tmp = ISHFT(pack_tmp, -2)
   17697       547002 :          idata = idata + 1
   17698       547002 :          data_tmp = full_data(idata)
   17699       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17700       547002 :          data_tmp = IAND(data_tmp, mask_left(2))
   17701       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17702       547002 :          ipack = ipack + 1
   17703       547002 :          packed_data(ipack) = pack_tmp
   17704       547002 :          data_tmp = full_data(idata)
   17705       547002 :          pack_tmp = ISHFT(data_tmp, 41)
   17706       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17707       547002 :          idata = idata + 1
   17708       547002 :          data_tmp = full_data(idata)
   17709       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17710       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17711       547002 :          pack_tmp = ISHFT(pack_tmp, -16)
   17712       547002 :          idata = idata + 1
   17713       547002 :          data_tmp = full_data(idata)
   17714       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17715       547002 :          data_tmp = IAND(data_tmp, mask_left(16))
   17716       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17717       547002 :          ipack = ipack + 1
   17718       547002 :          packed_data(ipack) = pack_tmp
   17719       547002 :          data_tmp = full_data(idata)
   17720       547002 :          pack_tmp = ISHFT(data_tmp, 55)
   17721       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17722       547002 :          idata = idata + 1
   17723       547002 :          data_tmp = full_data(idata)
   17724       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17725       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17726       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17727       547002 :          idata = idata + 1
   17728       547002 :          data_tmp = full_data(idata)
   17729       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17730       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17731       547002 :          pack_tmp = ISHFT(pack_tmp, -5)
   17732       547002 :          idata = idata + 1
   17733       547002 :          data_tmp = full_data(idata)
   17734       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17735       547002 :          data_tmp = IAND(data_tmp, mask_left(5))
   17736       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17737       547002 :          ipack = ipack + 1
   17738       547002 :          packed_data(ipack) = pack_tmp
   17739       547002 :          data_tmp = full_data(idata)
   17740       547002 :          pack_tmp = ISHFT(data_tmp, 44)
   17741       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17742       547002 :          idata = idata + 1
   17743       547002 :          data_tmp = full_data(idata)
   17744       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17745       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17746       547002 :          pack_tmp = ISHFT(pack_tmp, -19)
   17747       547002 :          idata = idata + 1
   17748       547002 :          data_tmp = full_data(idata)
   17749       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17750       547002 :          data_tmp = IAND(data_tmp, mask_left(19))
   17751       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17752       547002 :          ipack = ipack + 1
   17753       547002 :          packed_data(ipack) = pack_tmp
   17754       547002 :          data_tmp = full_data(idata)
   17755       547002 :          pack_tmp = ISHFT(data_tmp, 58)
   17756       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17757       547002 :          idata = idata + 1
   17758       547002 :          data_tmp = full_data(idata)
   17759       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17760       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17761       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17762       547002 :          idata = idata + 1
   17763       547002 :          data_tmp = full_data(idata)
   17764       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17765       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17766       547002 :          pack_tmp = ISHFT(pack_tmp, -8)
   17767       547002 :          idata = idata + 1
   17768       547002 :          data_tmp = full_data(idata)
   17769       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17770       547002 :          data_tmp = IAND(data_tmp, mask_left(8))
   17771       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17772       547002 :          ipack = ipack + 1
   17773       547002 :          packed_data(ipack) = pack_tmp
   17774       547002 :          data_tmp = full_data(idata)
   17775       547002 :          pack_tmp = ISHFT(data_tmp, 47)
   17776       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17777       547002 :          idata = idata + 1
   17778       547002 :          data_tmp = full_data(idata)
   17779       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17780       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17781       547002 :          pack_tmp = ISHFT(pack_tmp, -22)
   17782       547002 :          idata = idata + 1
   17783       547002 :          data_tmp = full_data(idata)
   17784       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17785       547002 :          data_tmp = IAND(data_tmp, mask_left(22))
   17786       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17787       547002 :          ipack = ipack + 1
   17788       547002 :          packed_data(ipack) = pack_tmp
   17789       547002 :          data_tmp = full_data(idata)
   17790       547002 :          pack_tmp = ISHFT(data_tmp, 61)
   17791       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17792       547002 :          idata = idata + 1
   17793       547002 :          data_tmp = full_data(idata)
   17794       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17795       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17796       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17797       547002 :          idata = idata + 1
   17798       547002 :          data_tmp = full_data(idata)
   17799       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17800       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17801       547002 :          pack_tmp = ISHFT(pack_tmp, -11)
   17802       547002 :          idata = idata + 1
   17803       547002 :          data_tmp = full_data(idata)
   17804       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17805       547002 :          data_tmp = IAND(data_tmp, mask_left(11))
   17806       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17807       547002 :          ipack = ipack + 1
   17808       547002 :          packed_data(ipack) = pack_tmp
   17809       547002 :          data_tmp = full_data(idata)
   17810       547002 :          pack_tmp = ISHFT(data_tmp, 50)
   17811       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17812       547002 :          idata = idata + 1
   17813       547002 :          data_tmp = full_data(idata)
   17814       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17815       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17816       547002 :          pack_tmp = ISHFT(pack_tmp, -25)
   17817       547002 :          idata = idata + 1
   17818       547002 :          data_tmp = full_data(idata)
   17819       547002 :          data_tmp = ISHFT(data_tmp, 39)
   17820       547002 :          pack_tmp = IOR(pack_tmp, data_tmp)
   17821              :          pack_tmp = ISHFT(pack_tmp, 0)
   17822       547002 :          pack_tmp = ISHFT(pack_tmp, 0)
   17823       547002 :          ipack = ipack + 1
   17824       547127 :          packed_data(ipack) = pack_tmp
   17825              :       END DO
   17826        38223 :       IF (Ndata_rep < Ndata) THEN
   17827         7468 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   17828              :       END IF
   17829        38223 :    END SUBROUTINE ints2bits_25
   17830              : 
   17831              : ! **************************************************************************************************
   17832              : !> \brief ...
   17833              : !> \param Ndata ...
   17834              : !> \param packed_data ...
   17835              : !> \param full_data ...
   17836              : ! **************************************************************************************************
   17837       165302 :    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       165302 :       ipack = 0
   17848       165302 :       idata = 0
   17849       165302 :       pack_tmp = 0
   17850       165302 :       Ndata_rep = (Ndata/64)*64
   17851       165302 :       DO kdata = 1, Ndata_rep, 64
   17852      2333552 :          idata = idata + 1
   17853      2333552 :          data_tmp = ISHFT(pack_tmp, 25)
   17854      2333552 :          ipack = ipack + 1
   17855      2333552 :          pack_tmp = packed_data(ipack)
   17856      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   17857      2333552 :          pack_tmp = ISHFT(pack_tmp, -25)
   17858      2333552 :          idata = idata + 1
   17859      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17860      2333552 :          full_data(idata) = data_tmp
   17861      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17862      2333552 :          idata = idata + 1
   17863      2333552 :          data_tmp = ISHFT(pack_tmp, 11)
   17864      2333552 :          ipack = ipack + 1
   17865      2333552 :          pack_tmp = packed_data(ipack)
   17866      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   17867      2333552 :          pack_tmp = ISHFT(pack_tmp, -11)
   17868      2333552 :          idata = idata + 1
   17869      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17870      2333552 :          full_data(idata) = data_tmp
   17871      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17872      2333552 :          idata = idata + 1
   17873      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17874      2333552 :          full_data(idata) = data_tmp
   17875      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17876      2333552 :          idata = idata + 1
   17877      2333552 :          data_tmp = ISHFT(pack_tmp, 22)
   17878      2333552 :          ipack = ipack + 1
   17879      2333552 :          pack_tmp = packed_data(ipack)
   17880      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   17881      2333552 :          pack_tmp = ISHFT(pack_tmp, -22)
   17882      2333552 :          idata = idata + 1
   17883      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17884      2333552 :          full_data(idata) = data_tmp
   17885      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17886      2333552 :          idata = idata + 1
   17887      2333552 :          data_tmp = ISHFT(pack_tmp, 8)
   17888      2333552 :          ipack = ipack + 1
   17889      2333552 :          pack_tmp = packed_data(ipack)
   17890      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   17891      2333552 :          pack_tmp = ISHFT(pack_tmp, -8)
   17892      2333552 :          idata = idata + 1
   17893      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17894      2333552 :          full_data(idata) = data_tmp
   17895      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17896      2333552 :          idata = idata + 1
   17897      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17898      2333552 :          full_data(idata) = data_tmp
   17899      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17900      2333552 :          idata = idata + 1
   17901      2333552 :          data_tmp = ISHFT(pack_tmp, 19)
   17902      2333552 :          ipack = ipack + 1
   17903      2333552 :          pack_tmp = packed_data(ipack)
   17904      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   17905      2333552 :          pack_tmp = ISHFT(pack_tmp, -19)
   17906      2333552 :          idata = idata + 1
   17907      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17908      2333552 :          full_data(idata) = data_tmp
   17909      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17910      2333552 :          idata = idata + 1
   17911      2333552 :          data_tmp = ISHFT(pack_tmp, 5)
   17912      2333552 :          ipack = ipack + 1
   17913      2333552 :          pack_tmp = packed_data(ipack)
   17914      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   17915      2333552 :          pack_tmp = ISHFT(pack_tmp, -5)
   17916      2333552 :          idata = idata + 1
   17917      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17918      2333552 :          full_data(idata) = data_tmp
   17919      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17920      2333552 :          idata = idata + 1
   17921      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17922      2333552 :          full_data(idata) = data_tmp
   17923      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17924      2333552 :          idata = idata + 1
   17925      2333552 :          data_tmp = ISHFT(pack_tmp, 16)
   17926      2333552 :          ipack = ipack + 1
   17927      2333552 :          pack_tmp = packed_data(ipack)
   17928      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   17929      2333552 :          pack_tmp = ISHFT(pack_tmp, -16)
   17930      2333552 :          idata = idata + 1
   17931      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17932      2333552 :          full_data(idata) = data_tmp
   17933      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17934      2333552 :          idata = idata + 1
   17935      2333552 :          data_tmp = ISHFT(pack_tmp, 2)
   17936      2333552 :          ipack = ipack + 1
   17937      2333552 :          pack_tmp = packed_data(ipack)
   17938      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   17939      2333552 :          pack_tmp = ISHFT(pack_tmp, -2)
   17940      2333552 :          idata = idata + 1
   17941      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17942      2333552 :          full_data(idata) = data_tmp
   17943      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17944      2333552 :          idata = idata + 1
   17945      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17946      2333552 :          full_data(idata) = data_tmp
   17947      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17948      2333552 :          idata = idata + 1
   17949      2333552 :          data_tmp = ISHFT(pack_tmp, 13)
   17950      2333552 :          ipack = ipack + 1
   17951      2333552 :          pack_tmp = packed_data(ipack)
   17952      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   17953      2333552 :          pack_tmp = ISHFT(pack_tmp, -13)
   17954      2333552 :          idata = idata + 1
   17955      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17956      2333552 :          full_data(idata) = data_tmp
   17957      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17958      2333552 :          idata = idata + 1
   17959      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17960      2333552 :          full_data(idata) = data_tmp
   17961      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17962      2333552 :          idata = idata + 1
   17963      2333552 :          data_tmp = ISHFT(pack_tmp, 24)
   17964      2333552 :          ipack = ipack + 1
   17965      2333552 :          pack_tmp = packed_data(ipack)
   17966      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   17967      2333552 :          pack_tmp = ISHFT(pack_tmp, -24)
   17968      2333552 :          idata = idata + 1
   17969      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17970      2333552 :          full_data(idata) = data_tmp
   17971      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17972      2333552 :          idata = idata + 1
   17973      2333552 :          data_tmp = ISHFT(pack_tmp, 10)
   17974      2333552 :          ipack = ipack + 1
   17975      2333552 :          pack_tmp = packed_data(ipack)
   17976      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   17977      2333552 :          pack_tmp = ISHFT(pack_tmp, -10)
   17978      2333552 :          idata = idata + 1
   17979      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17980      2333552 :          full_data(idata) = data_tmp
   17981      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17982      2333552 :          idata = idata + 1
   17983      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17984      2333552 :          full_data(idata) = data_tmp
   17985      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17986      2333552 :          idata = idata + 1
   17987      2333552 :          data_tmp = ISHFT(pack_tmp, 21)
   17988      2333552 :          ipack = ipack + 1
   17989      2333552 :          pack_tmp = packed_data(ipack)
   17990      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   17991      2333552 :          pack_tmp = ISHFT(pack_tmp, -21)
   17992      2333552 :          idata = idata + 1
   17993      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   17994      2333552 :          full_data(idata) = data_tmp
   17995      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   17996      2333552 :          idata = idata + 1
   17997      2333552 :          data_tmp = ISHFT(pack_tmp, 7)
   17998      2333552 :          ipack = ipack + 1
   17999      2333552 :          pack_tmp = packed_data(ipack)
   18000      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   18001      2333552 :          pack_tmp = ISHFT(pack_tmp, -7)
   18002      2333552 :          idata = idata + 1
   18003      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18004      2333552 :          full_data(idata) = data_tmp
   18005      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18006      2333552 :          idata = idata + 1
   18007      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18008      2333552 :          full_data(idata) = data_tmp
   18009      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18010      2333552 :          idata = idata + 1
   18011      2333552 :          data_tmp = ISHFT(pack_tmp, 18)
   18012      2333552 :          ipack = ipack + 1
   18013      2333552 :          pack_tmp = packed_data(ipack)
   18014      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18015      2333552 :          pack_tmp = ISHFT(pack_tmp, -18)
   18016      2333552 :          idata = idata + 1
   18017      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18018      2333552 :          full_data(idata) = data_tmp
   18019      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18020      2333552 :          idata = idata + 1
   18021      2333552 :          data_tmp = ISHFT(pack_tmp, 4)
   18022      2333552 :          ipack = ipack + 1
   18023      2333552 :          pack_tmp = packed_data(ipack)
   18024      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18025      2333552 :          pack_tmp = ISHFT(pack_tmp, -4)
   18026      2333552 :          idata = idata + 1
   18027      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18028      2333552 :          full_data(idata) = data_tmp
   18029      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18030      2333552 :          idata = idata + 1
   18031      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18032      2333552 :          full_data(idata) = data_tmp
   18033      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18034      2333552 :          idata = idata + 1
   18035      2333552 :          data_tmp = ISHFT(pack_tmp, 15)
   18036      2333552 :          ipack = ipack + 1
   18037      2333552 :          pack_tmp = packed_data(ipack)
   18038      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   18039      2333552 :          pack_tmp = ISHFT(pack_tmp, -15)
   18040      2333552 :          idata = idata + 1
   18041      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18042      2333552 :          full_data(idata) = data_tmp
   18043      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18044      2333552 :          idata = idata + 1
   18045      2333552 :          data_tmp = ISHFT(pack_tmp, 1)
   18046      2333552 :          ipack = ipack + 1
   18047      2333552 :          pack_tmp = packed_data(ipack)
   18048      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   18049      2333552 :          pack_tmp = ISHFT(pack_tmp, -1)
   18050      2333552 :          idata = idata + 1
   18051      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18052      2333552 :          full_data(idata) = data_tmp
   18053      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18054      2333552 :          idata = idata + 1
   18055      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18056      2333552 :          full_data(idata) = data_tmp
   18057      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18058      2333552 :          idata = idata + 1
   18059      2333552 :          data_tmp = ISHFT(pack_tmp, 12)
   18060      2333552 :          ipack = ipack + 1
   18061      2333552 :          pack_tmp = packed_data(ipack)
   18062      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18063      2333552 :          pack_tmp = ISHFT(pack_tmp, -12)
   18064      2333552 :          idata = idata + 1
   18065      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18066      2333552 :          full_data(idata) = data_tmp
   18067      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18068      2333552 :          idata = idata + 1
   18069      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18070      2333552 :          full_data(idata) = data_tmp
   18071      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18072      2333552 :          idata = idata + 1
   18073      2333552 :          data_tmp = ISHFT(pack_tmp, 23)
   18074      2333552 :          ipack = ipack + 1
   18075      2333552 :          pack_tmp = packed_data(ipack)
   18076      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   18077      2333552 :          pack_tmp = ISHFT(pack_tmp, -23)
   18078      2333552 :          idata = idata + 1
   18079      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18080      2333552 :          full_data(idata) = data_tmp
   18081      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18082      2333552 :          idata = idata + 1
   18083      2333552 :          data_tmp = ISHFT(pack_tmp, 9)
   18084      2333552 :          ipack = ipack + 1
   18085      2333552 :          pack_tmp = packed_data(ipack)
   18086      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   18087      2333552 :          pack_tmp = ISHFT(pack_tmp, -9)
   18088      2333552 :          idata = idata + 1
   18089      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18090      2333552 :          full_data(idata) = data_tmp
   18091      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18092      2333552 :          idata = idata + 1
   18093      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18094      2333552 :          full_data(idata) = data_tmp
   18095      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18096      2333552 :          idata = idata + 1
   18097      2333552 :          data_tmp = ISHFT(pack_tmp, 20)
   18098      2333552 :          ipack = ipack + 1
   18099      2333552 :          pack_tmp = packed_data(ipack)
   18100      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18101      2333552 :          pack_tmp = ISHFT(pack_tmp, -20)
   18102      2333552 :          idata = idata + 1
   18103      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18104      2333552 :          full_data(idata) = data_tmp
   18105      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18106      2333552 :          idata = idata + 1
   18107      2333552 :          data_tmp = ISHFT(pack_tmp, 6)
   18108      2333552 :          ipack = ipack + 1
   18109      2333552 :          pack_tmp = packed_data(ipack)
   18110      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18111      2333552 :          pack_tmp = ISHFT(pack_tmp, -6)
   18112      2333552 :          idata = idata + 1
   18113      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18114      2333552 :          full_data(idata) = data_tmp
   18115      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18116      2333552 :          idata = idata + 1
   18117      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18118      2333552 :          full_data(idata) = data_tmp
   18119      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18120      2333552 :          idata = idata + 1
   18121      2333552 :          data_tmp = ISHFT(pack_tmp, 17)
   18122      2333552 :          ipack = ipack + 1
   18123      2333552 :          pack_tmp = packed_data(ipack)
   18124      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   18125      2333552 :          pack_tmp = ISHFT(pack_tmp, -17)
   18126      2333552 :          idata = idata + 1
   18127      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18128      2333552 :          full_data(idata) = data_tmp
   18129      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18130      2333552 :          idata = idata + 1
   18131      2333552 :          data_tmp = ISHFT(pack_tmp, 3)
   18132      2333552 :          ipack = ipack + 1
   18133      2333552 :          pack_tmp = packed_data(ipack)
   18134      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   18135      2333552 :          pack_tmp = ISHFT(pack_tmp, -3)
   18136      2333552 :          idata = idata + 1
   18137      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18138      2333552 :          full_data(idata) = data_tmp
   18139      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18140      2333552 :          idata = idata + 1
   18141      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18142      2333552 :          full_data(idata) = data_tmp
   18143      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18144      2333552 :          idata = idata + 1
   18145      2333552 :          data_tmp = ISHFT(pack_tmp, 14)
   18146      2333552 :          ipack = ipack + 1
   18147      2333552 :          pack_tmp = packed_data(ipack)
   18148      2333552 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18149      2333552 :          pack_tmp = ISHFT(pack_tmp, -14)
   18150      2333552 :          idata = idata + 1
   18151      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18152      2333552 :          full_data(idata) = data_tmp
   18153      2333552 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18154      2333552 :          idata = idata + 1
   18155      2333552 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18156      2333552 :          full_data(idata) = data_tmp
   18157      2334146 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18158              :       END DO
   18159       165302 :       IF (Ndata_rep < Ndata) THEN
   18160        36064 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18161              :       END IF
   18162       165302 :    END SUBROUTINE bits2ints_25
   18163              : 
   18164              : ! **************************************************************************************************
   18165              : !> \brief ...
   18166              : !> \param Ndata ...
   18167              : !> \param packed_data ...
   18168              : !> \param full_data ...
   18169              : ! **************************************************************************************************
   18170        30895 :    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        30895 :       idata = 0
   18181        30895 :       ipack = 0
   18182        30895 :       Ndata_rep = (Ndata/64)*64
   18183        30895 :       DO kdata = 1, Ndata_rep, 64
   18184       464487 :          pack_tmp = 0
   18185       464487 :          idata = idata + 1
   18186       464487 :          data_tmp = full_data(idata)
   18187       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18188       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18189       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18190       464487 :          idata = idata + 1
   18191       464487 :          data_tmp = full_data(idata)
   18192       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18193       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18194       464487 :          pack_tmp = ISHFT(pack_tmp, -12)
   18195       464487 :          idata = idata + 1
   18196       464487 :          data_tmp = full_data(idata)
   18197       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18198       464487 :          data_tmp = IAND(data_tmp, mask_left(12))
   18199       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18200       464487 :          ipack = ipack + 1
   18201       464487 :          packed_data(ipack) = pack_tmp
   18202       464487 :          data_tmp = full_data(idata)
   18203       464487 :          pack_tmp = ISHFT(data_tmp, 50)
   18204       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18205       464487 :          idata = idata + 1
   18206       464487 :          data_tmp = full_data(idata)
   18207       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18208       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18209       464487 :          pack_tmp = ISHFT(pack_tmp, -24)
   18210       464487 :          idata = idata + 1
   18211       464487 :          data_tmp = full_data(idata)
   18212       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18213       464487 :          data_tmp = IAND(data_tmp, mask_left(24))
   18214       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18215       464487 :          ipack = ipack + 1
   18216       464487 :          packed_data(ipack) = pack_tmp
   18217       464487 :          data_tmp = full_data(idata)
   18218       464487 :          pack_tmp = ISHFT(data_tmp, 62)
   18219       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18220       464487 :          idata = idata + 1
   18221       464487 :          data_tmp = full_data(idata)
   18222       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18223       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18224       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18225       464487 :          idata = idata + 1
   18226       464487 :          data_tmp = full_data(idata)
   18227       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18228       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18229       464487 :          pack_tmp = ISHFT(pack_tmp, -10)
   18230       464487 :          idata = idata + 1
   18231       464487 :          data_tmp = full_data(idata)
   18232       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18233       464487 :          data_tmp = IAND(data_tmp, mask_left(10))
   18234       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18235       464487 :          ipack = ipack + 1
   18236       464487 :          packed_data(ipack) = pack_tmp
   18237       464487 :          data_tmp = full_data(idata)
   18238       464487 :          pack_tmp = ISHFT(data_tmp, 48)
   18239       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18240       464487 :          idata = idata + 1
   18241       464487 :          data_tmp = full_data(idata)
   18242       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18243       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18244       464487 :          pack_tmp = ISHFT(pack_tmp, -22)
   18245       464487 :          idata = idata + 1
   18246       464487 :          data_tmp = full_data(idata)
   18247       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18248       464487 :          data_tmp = IAND(data_tmp, mask_left(22))
   18249       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18250       464487 :          ipack = ipack + 1
   18251       464487 :          packed_data(ipack) = pack_tmp
   18252       464487 :          data_tmp = full_data(idata)
   18253       464487 :          pack_tmp = ISHFT(data_tmp, 60)
   18254       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18255       464487 :          idata = idata + 1
   18256       464487 :          data_tmp = full_data(idata)
   18257       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18258       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18259       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18260       464487 :          idata = idata + 1
   18261       464487 :          data_tmp = full_data(idata)
   18262       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18263       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18264       464487 :          pack_tmp = ISHFT(pack_tmp, -8)
   18265       464487 :          idata = idata + 1
   18266       464487 :          data_tmp = full_data(idata)
   18267       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18268       464487 :          data_tmp = IAND(data_tmp, mask_left(8))
   18269       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18270       464487 :          ipack = ipack + 1
   18271       464487 :          packed_data(ipack) = pack_tmp
   18272       464487 :          data_tmp = full_data(idata)
   18273       464487 :          pack_tmp = ISHFT(data_tmp, 46)
   18274       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18275       464487 :          idata = idata + 1
   18276       464487 :          data_tmp = full_data(idata)
   18277       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18278       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18279       464487 :          pack_tmp = ISHFT(pack_tmp, -20)
   18280       464487 :          idata = idata + 1
   18281       464487 :          data_tmp = full_data(idata)
   18282       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18283       464487 :          data_tmp = IAND(data_tmp, mask_left(20))
   18284       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18285       464487 :          ipack = ipack + 1
   18286       464487 :          packed_data(ipack) = pack_tmp
   18287       464487 :          data_tmp = full_data(idata)
   18288       464487 :          pack_tmp = ISHFT(data_tmp, 58)
   18289       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18290       464487 :          idata = idata + 1
   18291       464487 :          data_tmp = full_data(idata)
   18292       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18293       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18294       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18295       464487 :          idata = idata + 1
   18296       464487 :          data_tmp = full_data(idata)
   18297       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18298       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18299       464487 :          pack_tmp = ISHFT(pack_tmp, -6)
   18300       464487 :          idata = idata + 1
   18301       464487 :          data_tmp = full_data(idata)
   18302       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18303       464487 :          data_tmp = IAND(data_tmp, mask_left(6))
   18304       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18305       464487 :          ipack = ipack + 1
   18306       464487 :          packed_data(ipack) = pack_tmp
   18307       464487 :          data_tmp = full_data(idata)
   18308       464487 :          pack_tmp = ISHFT(data_tmp, 44)
   18309       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18310       464487 :          idata = idata + 1
   18311       464487 :          data_tmp = full_data(idata)
   18312       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18313       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18314       464487 :          pack_tmp = ISHFT(pack_tmp, -18)
   18315       464487 :          idata = idata + 1
   18316       464487 :          data_tmp = full_data(idata)
   18317       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18318       464487 :          data_tmp = IAND(data_tmp, mask_left(18))
   18319       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18320       464487 :          ipack = ipack + 1
   18321       464487 :          packed_data(ipack) = pack_tmp
   18322       464487 :          data_tmp = full_data(idata)
   18323       464487 :          pack_tmp = ISHFT(data_tmp, 56)
   18324       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18325       464487 :          idata = idata + 1
   18326       464487 :          data_tmp = full_data(idata)
   18327       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18328       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18329       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18330       464487 :          idata = idata + 1
   18331       464487 :          data_tmp = full_data(idata)
   18332       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18333       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18334       464487 :          pack_tmp = ISHFT(pack_tmp, -4)
   18335       464487 :          idata = idata + 1
   18336       464487 :          data_tmp = full_data(idata)
   18337       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18338       464487 :          data_tmp = IAND(data_tmp, mask_left(4))
   18339       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18340       464487 :          ipack = ipack + 1
   18341       464487 :          packed_data(ipack) = pack_tmp
   18342       464487 :          data_tmp = full_data(idata)
   18343       464487 :          pack_tmp = ISHFT(data_tmp, 42)
   18344       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18345       464487 :          idata = idata + 1
   18346       464487 :          data_tmp = full_data(idata)
   18347       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18348       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18349       464487 :          pack_tmp = ISHFT(pack_tmp, -16)
   18350       464487 :          idata = idata + 1
   18351       464487 :          data_tmp = full_data(idata)
   18352       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18353       464487 :          data_tmp = IAND(data_tmp, mask_left(16))
   18354       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18355       464487 :          ipack = ipack + 1
   18356       464487 :          packed_data(ipack) = pack_tmp
   18357       464487 :          data_tmp = full_data(idata)
   18358       464487 :          pack_tmp = ISHFT(data_tmp, 54)
   18359       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18360       464487 :          idata = idata + 1
   18361       464487 :          data_tmp = full_data(idata)
   18362       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18363       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18364       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18365       464487 :          idata = idata + 1
   18366       464487 :          data_tmp = full_data(idata)
   18367       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18368       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18369       464487 :          pack_tmp = ISHFT(pack_tmp, -2)
   18370       464487 :          idata = idata + 1
   18371       464487 :          data_tmp = full_data(idata)
   18372       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18373       464487 :          data_tmp = IAND(data_tmp, mask_left(2))
   18374       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18375       464487 :          ipack = ipack + 1
   18376       464487 :          packed_data(ipack) = pack_tmp
   18377       464487 :          data_tmp = full_data(idata)
   18378       464487 :          pack_tmp = ISHFT(data_tmp, 40)
   18379       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18380       464487 :          idata = idata + 1
   18381       464487 :          data_tmp = full_data(idata)
   18382       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18383       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18384       464487 :          pack_tmp = ISHFT(pack_tmp, -14)
   18385       464487 :          idata = idata + 1
   18386       464487 :          data_tmp = full_data(idata)
   18387       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18388       464487 :          data_tmp = IAND(data_tmp, mask_left(14))
   18389       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18390       464487 :          ipack = ipack + 1
   18391       464487 :          packed_data(ipack) = pack_tmp
   18392       464487 :          data_tmp = full_data(idata)
   18393       464487 :          pack_tmp = ISHFT(data_tmp, 52)
   18394       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18395       464487 :          idata = idata + 1
   18396       464487 :          data_tmp = full_data(idata)
   18397       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18398       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18399       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18400       464487 :          idata = idata + 1
   18401       464487 :          data_tmp = full_data(idata)
   18402       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18403       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18404       464487 :          pack_tmp = ISHFT(pack_tmp, 0)
   18405       464487 :          idata = idata + 1
   18406       464487 :          data_tmp = full_data(idata)
   18407              :          data_tmp = ISHFT(data_tmp, 38)
   18408       464487 :          data_tmp = IAND(data_tmp, mask_left(0))
   18409       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18410       464487 :          ipack = ipack + 1
   18411       464487 :          packed_data(ipack) = pack_tmp
   18412       464487 :          data_tmp = full_data(idata)
   18413       464487 :          pack_tmp = ISHFT(data_tmp, 38)
   18414       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18415       464487 :          idata = idata + 1
   18416       464487 :          data_tmp = full_data(idata)
   18417       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18418       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18419       464487 :          pack_tmp = ISHFT(pack_tmp, -12)
   18420       464487 :          idata = idata + 1
   18421       464487 :          data_tmp = full_data(idata)
   18422       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18423       464487 :          data_tmp = IAND(data_tmp, mask_left(12))
   18424       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18425       464487 :          ipack = ipack + 1
   18426       464487 :          packed_data(ipack) = pack_tmp
   18427       464487 :          data_tmp = full_data(idata)
   18428       464487 :          pack_tmp = ISHFT(data_tmp, 50)
   18429       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18430       464487 :          idata = idata + 1
   18431       464487 :          data_tmp = full_data(idata)
   18432       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18433       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18434       464487 :          pack_tmp = ISHFT(pack_tmp, -24)
   18435       464487 :          idata = idata + 1
   18436       464487 :          data_tmp = full_data(idata)
   18437       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18438       464487 :          data_tmp = IAND(data_tmp, mask_left(24))
   18439       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18440       464487 :          ipack = ipack + 1
   18441       464487 :          packed_data(ipack) = pack_tmp
   18442       464487 :          data_tmp = full_data(idata)
   18443       464487 :          pack_tmp = ISHFT(data_tmp, 62)
   18444       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18445       464487 :          idata = idata + 1
   18446       464487 :          data_tmp = full_data(idata)
   18447       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18448       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18449       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18450       464487 :          idata = idata + 1
   18451       464487 :          data_tmp = full_data(idata)
   18452       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18453       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18454       464487 :          pack_tmp = ISHFT(pack_tmp, -10)
   18455       464487 :          idata = idata + 1
   18456       464487 :          data_tmp = full_data(idata)
   18457       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18458       464487 :          data_tmp = IAND(data_tmp, mask_left(10))
   18459       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18460       464487 :          ipack = ipack + 1
   18461       464487 :          packed_data(ipack) = pack_tmp
   18462       464487 :          data_tmp = full_data(idata)
   18463       464487 :          pack_tmp = ISHFT(data_tmp, 48)
   18464       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18465       464487 :          idata = idata + 1
   18466       464487 :          data_tmp = full_data(idata)
   18467       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18468       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18469       464487 :          pack_tmp = ISHFT(pack_tmp, -22)
   18470       464487 :          idata = idata + 1
   18471       464487 :          data_tmp = full_data(idata)
   18472       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18473       464487 :          data_tmp = IAND(data_tmp, mask_left(22))
   18474       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18475       464487 :          ipack = ipack + 1
   18476       464487 :          packed_data(ipack) = pack_tmp
   18477       464487 :          data_tmp = full_data(idata)
   18478       464487 :          pack_tmp = ISHFT(data_tmp, 60)
   18479       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18480       464487 :          idata = idata + 1
   18481       464487 :          data_tmp = full_data(idata)
   18482       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18483       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18484       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18485       464487 :          idata = idata + 1
   18486       464487 :          data_tmp = full_data(idata)
   18487       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18488       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18489       464487 :          pack_tmp = ISHFT(pack_tmp, -8)
   18490       464487 :          idata = idata + 1
   18491       464487 :          data_tmp = full_data(idata)
   18492       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18493       464487 :          data_tmp = IAND(data_tmp, mask_left(8))
   18494       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18495       464487 :          ipack = ipack + 1
   18496       464487 :          packed_data(ipack) = pack_tmp
   18497       464487 :          data_tmp = full_data(idata)
   18498       464487 :          pack_tmp = ISHFT(data_tmp, 46)
   18499       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18500       464487 :          idata = idata + 1
   18501       464487 :          data_tmp = full_data(idata)
   18502       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18503       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18504       464487 :          pack_tmp = ISHFT(pack_tmp, -20)
   18505       464487 :          idata = idata + 1
   18506       464487 :          data_tmp = full_data(idata)
   18507       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18508       464487 :          data_tmp = IAND(data_tmp, mask_left(20))
   18509       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18510       464487 :          ipack = ipack + 1
   18511       464487 :          packed_data(ipack) = pack_tmp
   18512       464487 :          data_tmp = full_data(idata)
   18513       464487 :          pack_tmp = ISHFT(data_tmp, 58)
   18514       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18515       464487 :          idata = idata + 1
   18516       464487 :          data_tmp = full_data(idata)
   18517       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18518       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18519       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18520       464487 :          idata = idata + 1
   18521       464487 :          data_tmp = full_data(idata)
   18522       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18523       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18524       464487 :          pack_tmp = ISHFT(pack_tmp, -6)
   18525       464487 :          idata = idata + 1
   18526       464487 :          data_tmp = full_data(idata)
   18527       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18528       464487 :          data_tmp = IAND(data_tmp, mask_left(6))
   18529       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18530       464487 :          ipack = ipack + 1
   18531       464487 :          packed_data(ipack) = pack_tmp
   18532       464487 :          data_tmp = full_data(idata)
   18533       464487 :          pack_tmp = ISHFT(data_tmp, 44)
   18534       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18535       464487 :          idata = idata + 1
   18536       464487 :          data_tmp = full_data(idata)
   18537       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18538       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18539       464487 :          pack_tmp = ISHFT(pack_tmp, -18)
   18540       464487 :          idata = idata + 1
   18541       464487 :          data_tmp = full_data(idata)
   18542       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18543       464487 :          data_tmp = IAND(data_tmp, mask_left(18))
   18544       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18545       464487 :          ipack = ipack + 1
   18546       464487 :          packed_data(ipack) = pack_tmp
   18547       464487 :          data_tmp = full_data(idata)
   18548       464487 :          pack_tmp = ISHFT(data_tmp, 56)
   18549       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18550       464487 :          idata = idata + 1
   18551       464487 :          data_tmp = full_data(idata)
   18552       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18553       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18554       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18555       464487 :          idata = idata + 1
   18556       464487 :          data_tmp = full_data(idata)
   18557       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18558       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18559       464487 :          pack_tmp = ISHFT(pack_tmp, -4)
   18560       464487 :          idata = idata + 1
   18561       464487 :          data_tmp = full_data(idata)
   18562       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18563       464487 :          data_tmp = IAND(data_tmp, mask_left(4))
   18564       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18565       464487 :          ipack = ipack + 1
   18566       464487 :          packed_data(ipack) = pack_tmp
   18567       464487 :          data_tmp = full_data(idata)
   18568       464487 :          pack_tmp = ISHFT(data_tmp, 42)
   18569       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18570       464487 :          idata = idata + 1
   18571       464487 :          data_tmp = full_data(idata)
   18572       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18573       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18574       464487 :          pack_tmp = ISHFT(pack_tmp, -16)
   18575       464487 :          idata = idata + 1
   18576       464487 :          data_tmp = full_data(idata)
   18577       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18578       464487 :          data_tmp = IAND(data_tmp, mask_left(16))
   18579       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18580       464487 :          ipack = ipack + 1
   18581       464487 :          packed_data(ipack) = pack_tmp
   18582       464487 :          data_tmp = full_data(idata)
   18583       464487 :          pack_tmp = ISHFT(data_tmp, 54)
   18584       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18585       464487 :          idata = idata + 1
   18586       464487 :          data_tmp = full_data(idata)
   18587       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18588       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18589       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18590       464487 :          idata = idata + 1
   18591       464487 :          data_tmp = full_data(idata)
   18592       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18593       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18594       464487 :          pack_tmp = ISHFT(pack_tmp, -2)
   18595       464487 :          idata = idata + 1
   18596       464487 :          data_tmp = full_data(idata)
   18597       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18598       464487 :          data_tmp = IAND(data_tmp, mask_left(2))
   18599       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18600       464487 :          ipack = ipack + 1
   18601       464487 :          packed_data(ipack) = pack_tmp
   18602       464487 :          data_tmp = full_data(idata)
   18603       464487 :          pack_tmp = ISHFT(data_tmp, 40)
   18604       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18605       464487 :          idata = idata + 1
   18606       464487 :          data_tmp = full_data(idata)
   18607       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18608       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18609       464487 :          pack_tmp = ISHFT(pack_tmp, -14)
   18610       464487 :          idata = idata + 1
   18611       464487 :          data_tmp = full_data(idata)
   18612       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18613       464487 :          data_tmp = IAND(data_tmp, mask_left(14))
   18614       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18615       464487 :          ipack = ipack + 1
   18616       464487 :          packed_data(ipack) = pack_tmp
   18617       464487 :          data_tmp = full_data(idata)
   18618       464487 :          pack_tmp = ISHFT(data_tmp, 52)
   18619       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18620       464487 :          idata = idata + 1
   18621       464487 :          data_tmp = full_data(idata)
   18622       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18623       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18624       464487 :          pack_tmp = ISHFT(pack_tmp, -26)
   18625       464487 :          idata = idata + 1
   18626       464487 :          data_tmp = full_data(idata)
   18627       464487 :          data_tmp = ISHFT(data_tmp, 38)
   18628       464487 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18629              :          pack_tmp = ISHFT(pack_tmp, 0)
   18630       464487 :          pack_tmp = ISHFT(pack_tmp, 0)
   18631       464487 :          ipack = ipack + 1
   18632       464612 :          packed_data(ipack) = pack_tmp
   18633              :       END DO
   18634        30895 :       IF (Ndata_rep < Ndata) THEN
   18635         3442 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18636              :       END IF
   18637        30895 :    END SUBROUTINE ints2bits_26
   18638              : 
   18639              : ! **************************************************************************************************
   18640              : !> \brief ...
   18641              : !> \param Ndata ...
   18642              : !> \param packed_data ...
   18643              : !> \param full_data ...
   18644              : ! **************************************************************************************************
   18645       137284 :    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       137284 :       ipack = 0
   18656       137284 :       idata = 0
   18657       137284 :       pack_tmp = 0
   18658       137284 :       Ndata_rep = (Ndata/64)*64
   18659       137284 :       DO kdata = 1, Ndata_rep, 64
   18660      2014944 :          idata = idata + 1
   18661      2014944 :          data_tmp = ISHFT(pack_tmp, 26)
   18662      2014944 :          ipack = ipack + 1
   18663      2014944 :          pack_tmp = packed_data(ipack)
   18664      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   18665      2014944 :          pack_tmp = ISHFT(pack_tmp, -26)
   18666      2014944 :          idata = idata + 1
   18667      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18668      2014944 :          full_data(idata) = data_tmp
   18669      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18670      2014944 :          idata = idata + 1
   18671      2014944 :          data_tmp = ISHFT(pack_tmp, 14)
   18672      2014944 :          ipack = ipack + 1
   18673      2014944 :          pack_tmp = packed_data(ipack)
   18674      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18675      2014944 :          pack_tmp = ISHFT(pack_tmp, -14)
   18676      2014944 :          idata = idata + 1
   18677      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18678      2014944 :          full_data(idata) = data_tmp
   18679      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18680      2014944 :          idata = idata + 1
   18681      2014944 :          data_tmp = ISHFT(pack_tmp, 2)
   18682      2014944 :          ipack = ipack + 1
   18683      2014944 :          pack_tmp = packed_data(ipack)
   18684      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   18685      2014944 :          pack_tmp = ISHFT(pack_tmp, -2)
   18686      2014944 :          idata = idata + 1
   18687      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18688      2014944 :          full_data(idata) = data_tmp
   18689      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18690      2014944 :          idata = idata + 1
   18691      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18692      2014944 :          full_data(idata) = data_tmp
   18693      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18694      2014944 :          idata = idata + 1
   18695      2014944 :          data_tmp = ISHFT(pack_tmp, 16)
   18696      2014944 :          ipack = ipack + 1
   18697      2014944 :          pack_tmp = packed_data(ipack)
   18698      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   18699      2014944 :          pack_tmp = ISHFT(pack_tmp, -16)
   18700      2014944 :          idata = idata + 1
   18701      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18702      2014944 :          full_data(idata) = data_tmp
   18703      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18704      2014944 :          idata = idata + 1
   18705      2014944 :          data_tmp = ISHFT(pack_tmp, 4)
   18706      2014944 :          ipack = ipack + 1
   18707      2014944 :          pack_tmp = packed_data(ipack)
   18708      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18709      2014944 :          pack_tmp = ISHFT(pack_tmp, -4)
   18710      2014944 :          idata = idata + 1
   18711      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18712      2014944 :          full_data(idata) = data_tmp
   18713      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18714      2014944 :          idata = idata + 1
   18715      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18716      2014944 :          full_data(idata) = data_tmp
   18717      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18718      2014944 :          idata = idata + 1
   18719      2014944 :          data_tmp = ISHFT(pack_tmp, 18)
   18720      2014944 :          ipack = ipack + 1
   18721      2014944 :          pack_tmp = packed_data(ipack)
   18722      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18723      2014944 :          pack_tmp = ISHFT(pack_tmp, -18)
   18724      2014944 :          idata = idata + 1
   18725      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18726      2014944 :          full_data(idata) = data_tmp
   18727      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18728      2014944 :          idata = idata + 1
   18729      2014944 :          data_tmp = ISHFT(pack_tmp, 6)
   18730      2014944 :          ipack = ipack + 1
   18731      2014944 :          pack_tmp = packed_data(ipack)
   18732      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18733      2014944 :          pack_tmp = ISHFT(pack_tmp, -6)
   18734      2014944 :          idata = idata + 1
   18735      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18736      2014944 :          full_data(idata) = data_tmp
   18737      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18738      2014944 :          idata = idata + 1
   18739      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18740      2014944 :          full_data(idata) = data_tmp
   18741      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18742      2014944 :          idata = idata + 1
   18743      2014944 :          data_tmp = ISHFT(pack_tmp, 20)
   18744      2014944 :          ipack = ipack + 1
   18745      2014944 :          pack_tmp = packed_data(ipack)
   18746      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18747      2014944 :          pack_tmp = ISHFT(pack_tmp, -20)
   18748      2014944 :          idata = idata + 1
   18749      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18750      2014944 :          full_data(idata) = data_tmp
   18751      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18752      2014944 :          idata = idata + 1
   18753      2014944 :          data_tmp = ISHFT(pack_tmp, 8)
   18754      2014944 :          ipack = ipack + 1
   18755      2014944 :          pack_tmp = packed_data(ipack)
   18756      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   18757      2014944 :          pack_tmp = ISHFT(pack_tmp, -8)
   18758      2014944 :          idata = idata + 1
   18759      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18760      2014944 :          full_data(idata) = data_tmp
   18761      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18762      2014944 :          idata = idata + 1
   18763      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18764      2014944 :          full_data(idata) = data_tmp
   18765      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18766      2014944 :          idata = idata + 1
   18767      2014944 :          data_tmp = ISHFT(pack_tmp, 22)
   18768      2014944 :          ipack = ipack + 1
   18769      2014944 :          pack_tmp = packed_data(ipack)
   18770      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   18771      2014944 :          pack_tmp = ISHFT(pack_tmp, -22)
   18772      2014944 :          idata = idata + 1
   18773      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18774      2014944 :          full_data(idata) = data_tmp
   18775      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18776      2014944 :          idata = idata + 1
   18777      2014944 :          data_tmp = ISHFT(pack_tmp, 10)
   18778      2014944 :          ipack = ipack + 1
   18779      2014944 :          pack_tmp = packed_data(ipack)
   18780      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   18781      2014944 :          pack_tmp = ISHFT(pack_tmp, -10)
   18782      2014944 :          idata = idata + 1
   18783      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18784      2014944 :          full_data(idata) = data_tmp
   18785      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18786      2014944 :          idata = idata + 1
   18787      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18788      2014944 :          full_data(idata) = data_tmp
   18789      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18790      2014944 :          idata = idata + 1
   18791      2014944 :          data_tmp = ISHFT(pack_tmp, 24)
   18792      2014944 :          ipack = ipack + 1
   18793      2014944 :          pack_tmp = packed_data(ipack)
   18794      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   18795      2014944 :          pack_tmp = ISHFT(pack_tmp, -24)
   18796      2014944 :          idata = idata + 1
   18797      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18798      2014944 :          full_data(idata) = data_tmp
   18799      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18800      2014944 :          idata = idata + 1
   18801      2014944 :          data_tmp = ISHFT(pack_tmp, 12)
   18802      2014944 :          ipack = ipack + 1
   18803      2014944 :          pack_tmp = packed_data(ipack)
   18804      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18805      2014944 :          pack_tmp = ISHFT(pack_tmp, -12)
   18806      2014944 :          idata = idata + 1
   18807      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18808      2014944 :          full_data(idata) = data_tmp
   18809      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18810      2014944 :          idata = idata + 1
   18811      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18812      2014944 :          full_data(idata) = data_tmp
   18813      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18814      2014944 :          idata = idata + 1
   18815      2014944 :          data_tmp = ISHFT(pack_tmp, 26)
   18816      2014944 :          ipack = ipack + 1
   18817      2014944 :          pack_tmp = packed_data(ipack)
   18818      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   18819      2014944 :          pack_tmp = ISHFT(pack_tmp, -26)
   18820      2014944 :          idata = idata + 1
   18821      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18822      2014944 :          full_data(idata) = data_tmp
   18823      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18824      2014944 :          idata = idata + 1
   18825      2014944 :          data_tmp = ISHFT(pack_tmp, 14)
   18826      2014944 :          ipack = ipack + 1
   18827      2014944 :          pack_tmp = packed_data(ipack)
   18828      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   18829      2014944 :          pack_tmp = ISHFT(pack_tmp, -14)
   18830      2014944 :          idata = idata + 1
   18831      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18832      2014944 :          full_data(idata) = data_tmp
   18833      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18834      2014944 :          idata = idata + 1
   18835      2014944 :          data_tmp = ISHFT(pack_tmp, 2)
   18836      2014944 :          ipack = ipack + 1
   18837      2014944 :          pack_tmp = packed_data(ipack)
   18838      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   18839      2014944 :          pack_tmp = ISHFT(pack_tmp, -2)
   18840      2014944 :          idata = idata + 1
   18841      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18842      2014944 :          full_data(idata) = data_tmp
   18843      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18844      2014944 :          idata = idata + 1
   18845      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18846      2014944 :          full_data(idata) = data_tmp
   18847      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18848      2014944 :          idata = idata + 1
   18849      2014944 :          data_tmp = ISHFT(pack_tmp, 16)
   18850      2014944 :          ipack = ipack + 1
   18851      2014944 :          pack_tmp = packed_data(ipack)
   18852      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   18853      2014944 :          pack_tmp = ISHFT(pack_tmp, -16)
   18854      2014944 :          idata = idata + 1
   18855      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18856      2014944 :          full_data(idata) = data_tmp
   18857      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18858      2014944 :          idata = idata + 1
   18859      2014944 :          data_tmp = ISHFT(pack_tmp, 4)
   18860      2014944 :          ipack = ipack + 1
   18861      2014944 :          pack_tmp = packed_data(ipack)
   18862      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   18863      2014944 :          pack_tmp = ISHFT(pack_tmp, -4)
   18864      2014944 :          idata = idata + 1
   18865      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18866      2014944 :          full_data(idata) = data_tmp
   18867      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18868      2014944 :          idata = idata + 1
   18869      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18870      2014944 :          full_data(idata) = data_tmp
   18871      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18872      2014944 :          idata = idata + 1
   18873      2014944 :          data_tmp = ISHFT(pack_tmp, 18)
   18874      2014944 :          ipack = ipack + 1
   18875      2014944 :          pack_tmp = packed_data(ipack)
   18876      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   18877      2014944 :          pack_tmp = ISHFT(pack_tmp, -18)
   18878      2014944 :          idata = idata + 1
   18879      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18880      2014944 :          full_data(idata) = data_tmp
   18881      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18882      2014944 :          idata = idata + 1
   18883      2014944 :          data_tmp = ISHFT(pack_tmp, 6)
   18884      2014944 :          ipack = ipack + 1
   18885      2014944 :          pack_tmp = packed_data(ipack)
   18886      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   18887      2014944 :          pack_tmp = ISHFT(pack_tmp, -6)
   18888      2014944 :          idata = idata + 1
   18889      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18890      2014944 :          full_data(idata) = data_tmp
   18891      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18892      2014944 :          idata = idata + 1
   18893      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18894      2014944 :          full_data(idata) = data_tmp
   18895      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18896      2014944 :          idata = idata + 1
   18897      2014944 :          data_tmp = ISHFT(pack_tmp, 20)
   18898      2014944 :          ipack = ipack + 1
   18899      2014944 :          pack_tmp = packed_data(ipack)
   18900      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   18901      2014944 :          pack_tmp = ISHFT(pack_tmp, -20)
   18902      2014944 :          idata = idata + 1
   18903      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18904      2014944 :          full_data(idata) = data_tmp
   18905      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18906      2014944 :          idata = idata + 1
   18907      2014944 :          data_tmp = ISHFT(pack_tmp, 8)
   18908      2014944 :          ipack = ipack + 1
   18909      2014944 :          pack_tmp = packed_data(ipack)
   18910      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   18911      2014944 :          pack_tmp = ISHFT(pack_tmp, -8)
   18912      2014944 :          idata = idata + 1
   18913      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18914      2014944 :          full_data(idata) = data_tmp
   18915      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18916      2014944 :          idata = idata + 1
   18917      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18918      2014944 :          full_data(idata) = data_tmp
   18919      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18920      2014944 :          idata = idata + 1
   18921      2014944 :          data_tmp = ISHFT(pack_tmp, 22)
   18922      2014944 :          ipack = ipack + 1
   18923      2014944 :          pack_tmp = packed_data(ipack)
   18924      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   18925      2014944 :          pack_tmp = ISHFT(pack_tmp, -22)
   18926      2014944 :          idata = idata + 1
   18927      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18928      2014944 :          full_data(idata) = data_tmp
   18929      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18930      2014944 :          idata = idata + 1
   18931      2014944 :          data_tmp = ISHFT(pack_tmp, 10)
   18932      2014944 :          ipack = ipack + 1
   18933      2014944 :          pack_tmp = packed_data(ipack)
   18934      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   18935      2014944 :          pack_tmp = ISHFT(pack_tmp, -10)
   18936      2014944 :          idata = idata + 1
   18937      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18938      2014944 :          full_data(idata) = data_tmp
   18939      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18940      2014944 :          idata = idata + 1
   18941      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18942      2014944 :          full_data(idata) = data_tmp
   18943      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18944      2014944 :          idata = idata + 1
   18945      2014944 :          data_tmp = ISHFT(pack_tmp, 24)
   18946      2014944 :          ipack = ipack + 1
   18947      2014944 :          pack_tmp = packed_data(ipack)
   18948      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   18949      2014944 :          pack_tmp = ISHFT(pack_tmp, -24)
   18950      2014944 :          idata = idata + 1
   18951      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18952      2014944 :          full_data(idata) = data_tmp
   18953      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18954      2014944 :          idata = idata + 1
   18955      2014944 :          data_tmp = ISHFT(pack_tmp, 12)
   18956      2014944 :          ipack = ipack + 1
   18957      2014944 :          pack_tmp = packed_data(ipack)
   18958      2014944 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   18959      2014944 :          pack_tmp = ISHFT(pack_tmp, -12)
   18960      2014944 :          idata = idata + 1
   18961      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18962      2014944 :          full_data(idata) = data_tmp
   18963      2014944 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18964      2014944 :          idata = idata + 1
   18965      2014944 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   18966      2014944 :          full_data(idata) = data_tmp
   18967      2015456 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   18968              :       END DO
   18969       137284 :       IF (Ndata_rep < Ndata) THEN
   18970        21120 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   18971              :       END IF
   18972       137284 :    END SUBROUTINE bits2ints_26
   18973              : 
   18974              : ! **************************************************************************************************
   18975              : !> \brief ...
   18976              : !> \param Ndata ...
   18977              : !> \param packed_data ...
   18978              : !> \param full_data ...
   18979              : ! **************************************************************************************************
   18980        30487 :    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        30487 :       idata = 0
   18991        30487 :       ipack = 0
   18992        30487 :       Ndata_rep = (Ndata/64)*64
   18993        30487 :       DO kdata = 1, Ndata_rep, 64
   18994       460439 :          pack_tmp = 0
   18995       460439 :          idata = idata + 1
   18996       460439 :          data_tmp = full_data(idata)
   18997       460439 :          data_tmp = ISHFT(data_tmp, 37)
   18998       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   18999       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19000       460439 :          idata = idata + 1
   19001       460439 :          data_tmp = full_data(idata)
   19002       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19003       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19004       460439 :          pack_tmp = ISHFT(pack_tmp, -10)
   19005       460439 :          idata = idata + 1
   19006       460439 :          data_tmp = full_data(idata)
   19007       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19008       460439 :          data_tmp = IAND(data_tmp, mask_left(10))
   19009       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19010       460439 :          ipack = ipack + 1
   19011       460439 :          packed_data(ipack) = pack_tmp
   19012       460439 :          data_tmp = full_data(idata)
   19013       460439 :          pack_tmp = ISHFT(data_tmp, 47)
   19014       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19015       460439 :          idata = idata + 1
   19016       460439 :          data_tmp = full_data(idata)
   19017       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19018       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19019       460439 :          pack_tmp = ISHFT(pack_tmp, -20)
   19020       460439 :          idata = idata + 1
   19021       460439 :          data_tmp = full_data(idata)
   19022       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19023       460439 :          data_tmp = IAND(data_tmp, mask_left(20))
   19024       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19025       460439 :          ipack = ipack + 1
   19026       460439 :          packed_data(ipack) = pack_tmp
   19027       460439 :          data_tmp = full_data(idata)
   19028       460439 :          pack_tmp = ISHFT(data_tmp, 57)
   19029       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19030       460439 :          idata = idata + 1
   19031       460439 :          data_tmp = full_data(idata)
   19032       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19033       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19034       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19035       460439 :          idata = idata + 1
   19036       460439 :          data_tmp = full_data(idata)
   19037       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19038       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19039       460439 :          pack_tmp = ISHFT(pack_tmp, -3)
   19040       460439 :          idata = idata + 1
   19041       460439 :          data_tmp = full_data(idata)
   19042       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19043       460439 :          data_tmp = IAND(data_tmp, mask_left(3))
   19044       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19045       460439 :          ipack = ipack + 1
   19046       460439 :          packed_data(ipack) = pack_tmp
   19047       460439 :          data_tmp = full_data(idata)
   19048       460439 :          pack_tmp = ISHFT(data_tmp, 40)
   19049       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19050       460439 :          idata = idata + 1
   19051       460439 :          data_tmp = full_data(idata)
   19052       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19053       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19054       460439 :          pack_tmp = ISHFT(pack_tmp, -13)
   19055       460439 :          idata = idata + 1
   19056       460439 :          data_tmp = full_data(idata)
   19057       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19058       460439 :          data_tmp = IAND(data_tmp, mask_left(13))
   19059       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19060       460439 :          ipack = ipack + 1
   19061       460439 :          packed_data(ipack) = pack_tmp
   19062       460439 :          data_tmp = full_data(idata)
   19063       460439 :          pack_tmp = ISHFT(data_tmp, 50)
   19064       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19065       460439 :          idata = idata + 1
   19066       460439 :          data_tmp = full_data(idata)
   19067       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19068       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19069       460439 :          pack_tmp = ISHFT(pack_tmp, -23)
   19070       460439 :          idata = idata + 1
   19071       460439 :          data_tmp = full_data(idata)
   19072       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19073       460439 :          data_tmp = IAND(data_tmp, mask_left(23))
   19074       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19075       460439 :          ipack = ipack + 1
   19076       460439 :          packed_data(ipack) = pack_tmp
   19077       460439 :          data_tmp = full_data(idata)
   19078       460439 :          pack_tmp = ISHFT(data_tmp, 60)
   19079       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19080       460439 :          idata = idata + 1
   19081       460439 :          data_tmp = full_data(idata)
   19082       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19083       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19084       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19085       460439 :          idata = idata + 1
   19086       460439 :          data_tmp = full_data(idata)
   19087       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19088       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19089       460439 :          pack_tmp = ISHFT(pack_tmp, -6)
   19090       460439 :          idata = idata + 1
   19091       460439 :          data_tmp = full_data(idata)
   19092       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19093       460439 :          data_tmp = IAND(data_tmp, mask_left(6))
   19094       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19095       460439 :          ipack = ipack + 1
   19096       460439 :          packed_data(ipack) = pack_tmp
   19097       460439 :          data_tmp = full_data(idata)
   19098       460439 :          pack_tmp = ISHFT(data_tmp, 43)
   19099       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19100       460439 :          idata = idata + 1
   19101       460439 :          data_tmp = full_data(idata)
   19102       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19103       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19104       460439 :          pack_tmp = ISHFT(pack_tmp, -16)
   19105       460439 :          idata = idata + 1
   19106       460439 :          data_tmp = full_data(idata)
   19107       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19108       460439 :          data_tmp = IAND(data_tmp, mask_left(16))
   19109       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19110       460439 :          ipack = ipack + 1
   19111       460439 :          packed_data(ipack) = pack_tmp
   19112       460439 :          data_tmp = full_data(idata)
   19113       460439 :          pack_tmp = ISHFT(data_tmp, 53)
   19114       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19115       460439 :          idata = idata + 1
   19116       460439 :          data_tmp = full_data(idata)
   19117       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19118       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19119       460439 :          pack_tmp = ISHFT(pack_tmp, -26)
   19120       460439 :          idata = idata + 1
   19121       460439 :          data_tmp = full_data(idata)
   19122       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19123       460439 :          data_tmp = IAND(data_tmp, mask_left(26))
   19124       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19125       460439 :          ipack = ipack + 1
   19126       460439 :          packed_data(ipack) = pack_tmp
   19127       460439 :          data_tmp = full_data(idata)
   19128       460439 :          pack_tmp = ISHFT(data_tmp, 63)
   19129       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19130       460439 :          idata = idata + 1
   19131       460439 :          data_tmp = full_data(idata)
   19132       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19133       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19134       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19135       460439 :          idata = idata + 1
   19136       460439 :          data_tmp = full_data(idata)
   19137       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19138       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19139       460439 :          pack_tmp = ISHFT(pack_tmp, -9)
   19140       460439 :          idata = idata + 1
   19141       460439 :          data_tmp = full_data(idata)
   19142       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19143       460439 :          data_tmp = IAND(data_tmp, mask_left(9))
   19144       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19145       460439 :          ipack = ipack + 1
   19146       460439 :          packed_data(ipack) = pack_tmp
   19147       460439 :          data_tmp = full_data(idata)
   19148       460439 :          pack_tmp = ISHFT(data_tmp, 46)
   19149       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19150       460439 :          idata = idata + 1
   19151       460439 :          data_tmp = full_data(idata)
   19152       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19153       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19154       460439 :          pack_tmp = ISHFT(pack_tmp, -19)
   19155       460439 :          idata = idata + 1
   19156       460439 :          data_tmp = full_data(idata)
   19157       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19158       460439 :          data_tmp = IAND(data_tmp, mask_left(19))
   19159       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19160       460439 :          ipack = ipack + 1
   19161       460439 :          packed_data(ipack) = pack_tmp
   19162       460439 :          data_tmp = full_data(idata)
   19163       460439 :          pack_tmp = ISHFT(data_tmp, 56)
   19164       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19165       460439 :          idata = idata + 1
   19166       460439 :          data_tmp = full_data(idata)
   19167       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19168       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19169       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19170       460439 :          idata = idata + 1
   19171       460439 :          data_tmp = full_data(idata)
   19172       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19173       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19174       460439 :          pack_tmp = ISHFT(pack_tmp, -2)
   19175       460439 :          idata = idata + 1
   19176       460439 :          data_tmp = full_data(idata)
   19177       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19178       460439 :          data_tmp = IAND(data_tmp, mask_left(2))
   19179       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19180       460439 :          ipack = ipack + 1
   19181       460439 :          packed_data(ipack) = pack_tmp
   19182       460439 :          data_tmp = full_data(idata)
   19183       460439 :          pack_tmp = ISHFT(data_tmp, 39)
   19184       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19185       460439 :          idata = idata + 1
   19186       460439 :          data_tmp = full_data(idata)
   19187       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19188       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19189       460439 :          pack_tmp = ISHFT(pack_tmp, -12)
   19190       460439 :          idata = idata + 1
   19191       460439 :          data_tmp = full_data(idata)
   19192       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19193       460439 :          data_tmp = IAND(data_tmp, mask_left(12))
   19194       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19195       460439 :          ipack = ipack + 1
   19196       460439 :          packed_data(ipack) = pack_tmp
   19197       460439 :          data_tmp = full_data(idata)
   19198       460439 :          pack_tmp = ISHFT(data_tmp, 49)
   19199       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19200       460439 :          idata = idata + 1
   19201       460439 :          data_tmp = full_data(idata)
   19202       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19203       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19204       460439 :          pack_tmp = ISHFT(pack_tmp, -22)
   19205       460439 :          idata = idata + 1
   19206       460439 :          data_tmp = full_data(idata)
   19207       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19208       460439 :          data_tmp = IAND(data_tmp, mask_left(22))
   19209       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19210       460439 :          ipack = ipack + 1
   19211       460439 :          packed_data(ipack) = pack_tmp
   19212       460439 :          data_tmp = full_data(idata)
   19213       460439 :          pack_tmp = ISHFT(data_tmp, 59)
   19214       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19215       460439 :          idata = idata + 1
   19216       460439 :          data_tmp = full_data(idata)
   19217       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19218       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19219       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19220       460439 :          idata = idata + 1
   19221       460439 :          data_tmp = full_data(idata)
   19222       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19223       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19224       460439 :          pack_tmp = ISHFT(pack_tmp, -5)
   19225       460439 :          idata = idata + 1
   19226       460439 :          data_tmp = full_data(idata)
   19227       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19228       460439 :          data_tmp = IAND(data_tmp, mask_left(5))
   19229       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19230       460439 :          ipack = ipack + 1
   19231       460439 :          packed_data(ipack) = pack_tmp
   19232       460439 :          data_tmp = full_data(idata)
   19233       460439 :          pack_tmp = ISHFT(data_tmp, 42)
   19234       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19235       460439 :          idata = idata + 1
   19236       460439 :          data_tmp = full_data(idata)
   19237       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19238       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19239       460439 :          pack_tmp = ISHFT(pack_tmp, -15)
   19240       460439 :          idata = idata + 1
   19241       460439 :          data_tmp = full_data(idata)
   19242       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19243       460439 :          data_tmp = IAND(data_tmp, mask_left(15))
   19244       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19245       460439 :          ipack = ipack + 1
   19246       460439 :          packed_data(ipack) = pack_tmp
   19247       460439 :          data_tmp = full_data(idata)
   19248       460439 :          pack_tmp = ISHFT(data_tmp, 52)
   19249       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19250       460439 :          idata = idata + 1
   19251       460439 :          data_tmp = full_data(idata)
   19252       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19253       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19254       460439 :          pack_tmp = ISHFT(pack_tmp, -25)
   19255       460439 :          idata = idata + 1
   19256       460439 :          data_tmp = full_data(idata)
   19257       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19258       460439 :          data_tmp = IAND(data_tmp, mask_left(25))
   19259       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19260       460439 :          ipack = ipack + 1
   19261       460439 :          packed_data(ipack) = pack_tmp
   19262       460439 :          data_tmp = full_data(idata)
   19263       460439 :          pack_tmp = ISHFT(data_tmp, 62)
   19264       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19265       460439 :          idata = idata + 1
   19266       460439 :          data_tmp = full_data(idata)
   19267       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19268       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19269       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19270       460439 :          idata = idata + 1
   19271       460439 :          data_tmp = full_data(idata)
   19272       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19273       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19274       460439 :          pack_tmp = ISHFT(pack_tmp, -8)
   19275       460439 :          idata = idata + 1
   19276       460439 :          data_tmp = full_data(idata)
   19277       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19278       460439 :          data_tmp = IAND(data_tmp, mask_left(8))
   19279       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19280       460439 :          ipack = ipack + 1
   19281       460439 :          packed_data(ipack) = pack_tmp
   19282       460439 :          data_tmp = full_data(idata)
   19283       460439 :          pack_tmp = ISHFT(data_tmp, 45)
   19284       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19285       460439 :          idata = idata + 1
   19286       460439 :          data_tmp = full_data(idata)
   19287       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19288       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19289       460439 :          pack_tmp = ISHFT(pack_tmp, -18)
   19290       460439 :          idata = idata + 1
   19291       460439 :          data_tmp = full_data(idata)
   19292       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19293       460439 :          data_tmp = IAND(data_tmp, mask_left(18))
   19294       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19295       460439 :          ipack = ipack + 1
   19296       460439 :          packed_data(ipack) = pack_tmp
   19297       460439 :          data_tmp = full_data(idata)
   19298       460439 :          pack_tmp = ISHFT(data_tmp, 55)
   19299       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19300       460439 :          idata = idata + 1
   19301       460439 :          data_tmp = full_data(idata)
   19302       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19303       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19304       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19305       460439 :          idata = idata + 1
   19306       460439 :          data_tmp = full_data(idata)
   19307       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19308       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19309       460439 :          pack_tmp = ISHFT(pack_tmp, -1)
   19310       460439 :          idata = idata + 1
   19311       460439 :          data_tmp = full_data(idata)
   19312       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19313       460439 :          data_tmp = IAND(data_tmp, mask_left(1))
   19314       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19315       460439 :          ipack = ipack + 1
   19316       460439 :          packed_data(ipack) = pack_tmp
   19317       460439 :          data_tmp = full_data(idata)
   19318       460439 :          pack_tmp = ISHFT(data_tmp, 38)
   19319       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19320       460439 :          idata = idata + 1
   19321       460439 :          data_tmp = full_data(idata)
   19322       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19323       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19324       460439 :          pack_tmp = ISHFT(pack_tmp, -11)
   19325       460439 :          idata = idata + 1
   19326       460439 :          data_tmp = full_data(idata)
   19327       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19328       460439 :          data_tmp = IAND(data_tmp, mask_left(11))
   19329       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19330       460439 :          ipack = ipack + 1
   19331       460439 :          packed_data(ipack) = pack_tmp
   19332       460439 :          data_tmp = full_data(idata)
   19333       460439 :          pack_tmp = ISHFT(data_tmp, 48)
   19334       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19335       460439 :          idata = idata + 1
   19336       460439 :          data_tmp = full_data(idata)
   19337       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19338       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19339       460439 :          pack_tmp = ISHFT(pack_tmp, -21)
   19340       460439 :          idata = idata + 1
   19341       460439 :          data_tmp = full_data(idata)
   19342       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19343       460439 :          data_tmp = IAND(data_tmp, mask_left(21))
   19344       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19345       460439 :          ipack = ipack + 1
   19346       460439 :          packed_data(ipack) = pack_tmp
   19347       460439 :          data_tmp = full_data(idata)
   19348       460439 :          pack_tmp = ISHFT(data_tmp, 58)
   19349       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19350       460439 :          idata = idata + 1
   19351       460439 :          data_tmp = full_data(idata)
   19352       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19353       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19354       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19355       460439 :          idata = idata + 1
   19356       460439 :          data_tmp = full_data(idata)
   19357       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19358       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19359       460439 :          pack_tmp = ISHFT(pack_tmp, -4)
   19360       460439 :          idata = idata + 1
   19361       460439 :          data_tmp = full_data(idata)
   19362       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19363       460439 :          data_tmp = IAND(data_tmp, mask_left(4))
   19364       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19365       460439 :          ipack = ipack + 1
   19366       460439 :          packed_data(ipack) = pack_tmp
   19367       460439 :          data_tmp = full_data(idata)
   19368       460439 :          pack_tmp = ISHFT(data_tmp, 41)
   19369       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19370       460439 :          idata = idata + 1
   19371       460439 :          data_tmp = full_data(idata)
   19372       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19373       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19374       460439 :          pack_tmp = ISHFT(pack_tmp, -14)
   19375       460439 :          idata = idata + 1
   19376       460439 :          data_tmp = full_data(idata)
   19377       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19378       460439 :          data_tmp = IAND(data_tmp, mask_left(14))
   19379       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19380       460439 :          ipack = ipack + 1
   19381       460439 :          packed_data(ipack) = pack_tmp
   19382       460439 :          data_tmp = full_data(idata)
   19383       460439 :          pack_tmp = ISHFT(data_tmp, 51)
   19384       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19385       460439 :          idata = idata + 1
   19386       460439 :          data_tmp = full_data(idata)
   19387       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19388       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19389       460439 :          pack_tmp = ISHFT(pack_tmp, -24)
   19390       460439 :          idata = idata + 1
   19391       460439 :          data_tmp = full_data(idata)
   19392       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19393       460439 :          data_tmp = IAND(data_tmp, mask_left(24))
   19394       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19395       460439 :          ipack = ipack + 1
   19396       460439 :          packed_data(ipack) = pack_tmp
   19397       460439 :          data_tmp = full_data(idata)
   19398       460439 :          pack_tmp = ISHFT(data_tmp, 61)
   19399       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19400       460439 :          idata = idata + 1
   19401       460439 :          data_tmp = full_data(idata)
   19402       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19403       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19404       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19405       460439 :          idata = idata + 1
   19406       460439 :          data_tmp = full_data(idata)
   19407       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19408       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19409       460439 :          pack_tmp = ISHFT(pack_tmp, -7)
   19410       460439 :          idata = idata + 1
   19411       460439 :          data_tmp = full_data(idata)
   19412       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19413       460439 :          data_tmp = IAND(data_tmp, mask_left(7))
   19414       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19415       460439 :          ipack = ipack + 1
   19416       460439 :          packed_data(ipack) = pack_tmp
   19417       460439 :          data_tmp = full_data(idata)
   19418       460439 :          pack_tmp = ISHFT(data_tmp, 44)
   19419       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19420       460439 :          idata = idata + 1
   19421       460439 :          data_tmp = full_data(idata)
   19422       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19423       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19424       460439 :          pack_tmp = ISHFT(pack_tmp, -17)
   19425       460439 :          idata = idata + 1
   19426       460439 :          data_tmp = full_data(idata)
   19427       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19428       460439 :          data_tmp = IAND(data_tmp, mask_left(17))
   19429       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19430       460439 :          ipack = ipack + 1
   19431       460439 :          packed_data(ipack) = pack_tmp
   19432       460439 :          data_tmp = full_data(idata)
   19433       460439 :          pack_tmp = ISHFT(data_tmp, 54)
   19434       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19435       460439 :          idata = idata + 1
   19436       460439 :          data_tmp = full_data(idata)
   19437       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19438       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19439       460439 :          pack_tmp = ISHFT(pack_tmp, -27)
   19440       460439 :          idata = idata + 1
   19441       460439 :          data_tmp = full_data(idata)
   19442       460439 :          data_tmp = ISHFT(data_tmp, 37)
   19443       460439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19444              :          pack_tmp = ISHFT(pack_tmp, 0)
   19445       460439 :          pack_tmp = ISHFT(pack_tmp, 0)
   19446       460439 :          ipack = ipack + 1
   19447       460522 :          packed_data(ipack) = pack_tmp
   19448              :       END DO
   19449        30487 :       IF (Ndata_rep < Ndata) THEN
   19450         3218 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   19451              :       END IF
   19452        30487 :    END SUBROUTINE ints2bits_27
   19453              : 
   19454              : ! **************************************************************************************************
   19455              : !> \brief ...
   19456              : !> \param Ndata ...
   19457              : !> \param packed_data ...
   19458              : !> \param full_data ...
   19459              : ! **************************************************************************************************
   19460       138233 :    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       138233 :       ipack = 0
   19471       138233 :       idata = 0
   19472       138233 :       pack_tmp = 0
   19473       138233 :       Ndata_rep = (Ndata/64)*64
   19474       138233 :       DO kdata = 1, Ndata_rep, 64
   19475      2024813 :          idata = idata + 1
   19476      2024813 :          data_tmp = ISHFT(pack_tmp, 27)
   19477      2024813 :          ipack = ipack + 1
   19478      2024813 :          pack_tmp = packed_data(ipack)
   19479      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   19480      2024813 :          pack_tmp = ISHFT(pack_tmp, -27)
   19481      2024813 :          idata = idata + 1
   19482      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19483      2024813 :          full_data(idata) = data_tmp
   19484      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19485      2024813 :          idata = idata + 1
   19486      2024813 :          data_tmp = ISHFT(pack_tmp, 17)
   19487      2024813 :          ipack = ipack + 1
   19488      2024813 :          pack_tmp = packed_data(ipack)
   19489      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   19490      2024813 :          pack_tmp = ISHFT(pack_tmp, -17)
   19491      2024813 :          idata = idata + 1
   19492      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19493      2024813 :          full_data(idata) = data_tmp
   19494      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19495      2024813 :          idata = idata + 1
   19496      2024813 :          data_tmp = ISHFT(pack_tmp, 7)
   19497      2024813 :          ipack = ipack + 1
   19498      2024813 :          pack_tmp = packed_data(ipack)
   19499      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   19500      2024813 :          pack_tmp = ISHFT(pack_tmp, -7)
   19501      2024813 :          idata = idata + 1
   19502      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19503      2024813 :          full_data(idata) = data_tmp
   19504      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19505      2024813 :          idata = idata + 1
   19506      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19507      2024813 :          full_data(idata) = data_tmp
   19508      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19509      2024813 :          idata = idata + 1
   19510      2024813 :          data_tmp = ISHFT(pack_tmp, 24)
   19511      2024813 :          ipack = ipack + 1
   19512      2024813 :          pack_tmp = packed_data(ipack)
   19513      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   19514      2024813 :          pack_tmp = ISHFT(pack_tmp, -24)
   19515      2024813 :          idata = idata + 1
   19516      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19517      2024813 :          full_data(idata) = data_tmp
   19518      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19519      2024813 :          idata = idata + 1
   19520      2024813 :          data_tmp = ISHFT(pack_tmp, 14)
   19521      2024813 :          ipack = ipack + 1
   19522      2024813 :          pack_tmp = packed_data(ipack)
   19523      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   19524      2024813 :          pack_tmp = ISHFT(pack_tmp, -14)
   19525      2024813 :          idata = idata + 1
   19526      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19527      2024813 :          full_data(idata) = data_tmp
   19528      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19529      2024813 :          idata = idata + 1
   19530      2024813 :          data_tmp = ISHFT(pack_tmp, 4)
   19531      2024813 :          ipack = ipack + 1
   19532      2024813 :          pack_tmp = packed_data(ipack)
   19533      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   19534      2024813 :          pack_tmp = ISHFT(pack_tmp, -4)
   19535      2024813 :          idata = idata + 1
   19536      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19537      2024813 :          full_data(idata) = data_tmp
   19538      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19539      2024813 :          idata = idata + 1
   19540      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19541      2024813 :          full_data(idata) = data_tmp
   19542      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19543      2024813 :          idata = idata + 1
   19544      2024813 :          data_tmp = ISHFT(pack_tmp, 21)
   19545      2024813 :          ipack = ipack + 1
   19546      2024813 :          pack_tmp = packed_data(ipack)
   19547      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   19548      2024813 :          pack_tmp = ISHFT(pack_tmp, -21)
   19549      2024813 :          idata = idata + 1
   19550      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19551      2024813 :          full_data(idata) = data_tmp
   19552      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19553      2024813 :          idata = idata + 1
   19554      2024813 :          data_tmp = ISHFT(pack_tmp, 11)
   19555      2024813 :          ipack = ipack + 1
   19556      2024813 :          pack_tmp = packed_data(ipack)
   19557      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   19558      2024813 :          pack_tmp = ISHFT(pack_tmp, -11)
   19559      2024813 :          idata = idata + 1
   19560      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19561      2024813 :          full_data(idata) = data_tmp
   19562      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19563      2024813 :          idata = idata + 1
   19564      2024813 :          data_tmp = ISHFT(pack_tmp, 1)
   19565      2024813 :          ipack = ipack + 1
   19566      2024813 :          pack_tmp = packed_data(ipack)
   19567      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   19568      2024813 :          pack_tmp = ISHFT(pack_tmp, -1)
   19569      2024813 :          idata = idata + 1
   19570      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19571      2024813 :          full_data(idata) = data_tmp
   19572      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19573      2024813 :          idata = idata + 1
   19574      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19575      2024813 :          full_data(idata) = data_tmp
   19576      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19577      2024813 :          idata = idata + 1
   19578      2024813 :          data_tmp = ISHFT(pack_tmp, 18)
   19579      2024813 :          ipack = ipack + 1
   19580      2024813 :          pack_tmp = packed_data(ipack)
   19581      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   19582      2024813 :          pack_tmp = ISHFT(pack_tmp, -18)
   19583      2024813 :          idata = idata + 1
   19584      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19585      2024813 :          full_data(idata) = data_tmp
   19586      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19587      2024813 :          idata = idata + 1
   19588      2024813 :          data_tmp = ISHFT(pack_tmp, 8)
   19589      2024813 :          ipack = ipack + 1
   19590      2024813 :          pack_tmp = packed_data(ipack)
   19591      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   19592      2024813 :          pack_tmp = ISHFT(pack_tmp, -8)
   19593      2024813 :          idata = idata + 1
   19594      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19595      2024813 :          full_data(idata) = data_tmp
   19596      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19597      2024813 :          idata = idata + 1
   19598      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19599      2024813 :          full_data(idata) = data_tmp
   19600      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19601      2024813 :          idata = idata + 1
   19602      2024813 :          data_tmp = ISHFT(pack_tmp, 25)
   19603      2024813 :          ipack = ipack + 1
   19604      2024813 :          pack_tmp = packed_data(ipack)
   19605      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   19606      2024813 :          pack_tmp = ISHFT(pack_tmp, -25)
   19607      2024813 :          idata = idata + 1
   19608      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19609      2024813 :          full_data(idata) = data_tmp
   19610      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19611      2024813 :          idata = idata + 1
   19612      2024813 :          data_tmp = ISHFT(pack_tmp, 15)
   19613      2024813 :          ipack = ipack + 1
   19614      2024813 :          pack_tmp = packed_data(ipack)
   19615      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   19616      2024813 :          pack_tmp = ISHFT(pack_tmp, -15)
   19617      2024813 :          idata = idata + 1
   19618      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19619      2024813 :          full_data(idata) = data_tmp
   19620      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19621      2024813 :          idata = idata + 1
   19622      2024813 :          data_tmp = ISHFT(pack_tmp, 5)
   19623      2024813 :          ipack = ipack + 1
   19624      2024813 :          pack_tmp = packed_data(ipack)
   19625      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   19626      2024813 :          pack_tmp = ISHFT(pack_tmp, -5)
   19627      2024813 :          idata = idata + 1
   19628      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19629      2024813 :          full_data(idata) = data_tmp
   19630      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19631      2024813 :          idata = idata + 1
   19632      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19633      2024813 :          full_data(idata) = data_tmp
   19634      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19635      2024813 :          idata = idata + 1
   19636      2024813 :          data_tmp = ISHFT(pack_tmp, 22)
   19637      2024813 :          ipack = ipack + 1
   19638      2024813 :          pack_tmp = packed_data(ipack)
   19639      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   19640      2024813 :          pack_tmp = ISHFT(pack_tmp, -22)
   19641      2024813 :          idata = idata + 1
   19642      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19643      2024813 :          full_data(idata) = data_tmp
   19644      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19645      2024813 :          idata = idata + 1
   19646      2024813 :          data_tmp = ISHFT(pack_tmp, 12)
   19647      2024813 :          ipack = ipack + 1
   19648      2024813 :          pack_tmp = packed_data(ipack)
   19649      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   19650      2024813 :          pack_tmp = ISHFT(pack_tmp, -12)
   19651      2024813 :          idata = idata + 1
   19652      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19653      2024813 :          full_data(idata) = data_tmp
   19654      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19655      2024813 :          idata = idata + 1
   19656      2024813 :          data_tmp = ISHFT(pack_tmp, 2)
   19657      2024813 :          ipack = ipack + 1
   19658      2024813 :          pack_tmp = packed_data(ipack)
   19659      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   19660      2024813 :          pack_tmp = ISHFT(pack_tmp, -2)
   19661      2024813 :          idata = idata + 1
   19662      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19663      2024813 :          full_data(idata) = data_tmp
   19664      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19665      2024813 :          idata = idata + 1
   19666      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19667      2024813 :          full_data(idata) = data_tmp
   19668      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19669      2024813 :          idata = idata + 1
   19670      2024813 :          data_tmp = ISHFT(pack_tmp, 19)
   19671      2024813 :          ipack = ipack + 1
   19672      2024813 :          pack_tmp = packed_data(ipack)
   19673      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   19674      2024813 :          pack_tmp = ISHFT(pack_tmp, -19)
   19675      2024813 :          idata = idata + 1
   19676      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19677      2024813 :          full_data(idata) = data_tmp
   19678      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19679      2024813 :          idata = idata + 1
   19680      2024813 :          data_tmp = ISHFT(pack_tmp, 9)
   19681      2024813 :          ipack = ipack + 1
   19682      2024813 :          pack_tmp = packed_data(ipack)
   19683      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   19684      2024813 :          pack_tmp = ISHFT(pack_tmp, -9)
   19685      2024813 :          idata = idata + 1
   19686      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19687      2024813 :          full_data(idata) = data_tmp
   19688      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19689      2024813 :          idata = idata + 1
   19690      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19691      2024813 :          full_data(idata) = data_tmp
   19692      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19693      2024813 :          idata = idata + 1
   19694      2024813 :          data_tmp = ISHFT(pack_tmp, 26)
   19695      2024813 :          ipack = ipack + 1
   19696      2024813 :          pack_tmp = packed_data(ipack)
   19697      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   19698      2024813 :          pack_tmp = ISHFT(pack_tmp, -26)
   19699      2024813 :          idata = idata + 1
   19700      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19701      2024813 :          full_data(idata) = data_tmp
   19702      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19703      2024813 :          idata = idata + 1
   19704      2024813 :          data_tmp = ISHFT(pack_tmp, 16)
   19705      2024813 :          ipack = ipack + 1
   19706      2024813 :          pack_tmp = packed_data(ipack)
   19707      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   19708      2024813 :          pack_tmp = ISHFT(pack_tmp, -16)
   19709      2024813 :          idata = idata + 1
   19710      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19711      2024813 :          full_data(idata) = data_tmp
   19712      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19713      2024813 :          idata = idata + 1
   19714      2024813 :          data_tmp = ISHFT(pack_tmp, 6)
   19715      2024813 :          ipack = ipack + 1
   19716      2024813 :          pack_tmp = packed_data(ipack)
   19717      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   19718      2024813 :          pack_tmp = ISHFT(pack_tmp, -6)
   19719      2024813 :          idata = idata + 1
   19720      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19721      2024813 :          full_data(idata) = data_tmp
   19722      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19723      2024813 :          idata = idata + 1
   19724      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19725      2024813 :          full_data(idata) = data_tmp
   19726      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19727      2024813 :          idata = idata + 1
   19728      2024813 :          data_tmp = ISHFT(pack_tmp, 23)
   19729      2024813 :          ipack = ipack + 1
   19730      2024813 :          pack_tmp = packed_data(ipack)
   19731      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   19732      2024813 :          pack_tmp = ISHFT(pack_tmp, -23)
   19733      2024813 :          idata = idata + 1
   19734      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19735      2024813 :          full_data(idata) = data_tmp
   19736      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19737      2024813 :          idata = idata + 1
   19738      2024813 :          data_tmp = ISHFT(pack_tmp, 13)
   19739      2024813 :          ipack = ipack + 1
   19740      2024813 :          pack_tmp = packed_data(ipack)
   19741      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   19742      2024813 :          pack_tmp = ISHFT(pack_tmp, -13)
   19743      2024813 :          idata = idata + 1
   19744      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19745      2024813 :          full_data(idata) = data_tmp
   19746      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19747      2024813 :          idata = idata + 1
   19748      2024813 :          data_tmp = ISHFT(pack_tmp, 3)
   19749      2024813 :          ipack = ipack + 1
   19750      2024813 :          pack_tmp = packed_data(ipack)
   19751      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   19752      2024813 :          pack_tmp = ISHFT(pack_tmp, -3)
   19753      2024813 :          idata = idata + 1
   19754      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19755      2024813 :          full_data(idata) = data_tmp
   19756      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19757      2024813 :          idata = idata + 1
   19758      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19759      2024813 :          full_data(idata) = data_tmp
   19760      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19761      2024813 :          idata = idata + 1
   19762      2024813 :          data_tmp = ISHFT(pack_tmp, 20)
   19763      2024813 :          ipack = ipack + 1
   19764      2024813 :          pack_tmp = packed_data(ipack)
   19765      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   19766      2024813 :          pack_tmp = ISHFT(pack_tmp, -20)
   19767      2024813 :          idata = idata + 1
   19768      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19769      2024813 :          full_data(idata) = data_tmp
   19770      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19771      2024813 :          idata = idata + 1
   19772      2024813 :          data_tmp = ISHFT(pack_tmp, 10)
   19773      2024813 :          ipack = ipack + 1
   19774      2024813 :          pack_tmp = packed_data(ipack)
   19775      2024813 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   19776      2024813 :          pack_tmp = ISHFT(pack_tmp, -10)
   19777      2024813 :          idata = idata + 1
   19778      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19779      2024813 :          full_data(idata) = data_tmp
   19780      2024813 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19781      2024813 :          idata = idata + 1
   19782      2024813 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   19783      2024813 :          full_data(idata) = data_tmp
   19784      2025407 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   19785              :       END DO
   19786       138233 :       IF (Ndata_rep < Ndata) THEN
   19787        21990 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   19788              :       END IF
   19789       138233 :    END SUBROUTINE bits2ints_27
   19790              : 
   19791              : ! **************************************************************************************************
   19792              : !> \brief ...
   19793              : !> \param Ndata ...
   19794              : !> \param packed_data ...
   19795              : !> \param full_data ...
   19796              : ! **************************************************************************************************
   19797        34914 :    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        34914 :       idata = 0
   19808        34914 :       ipack = 0
   19809        34914 :       Ndata_rep = (Ndata/64)*64
   19810        34914 :       DO kdata = 1, Ndata_rep, 64
   19811       504698 :          pack_tmp = 0
   19812       504698 :          idata = idata + 1
   19813       504698 :          data_tmp = full_data(idata)
   19814       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19815       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19816       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19817       504698 :          idata = idata + 1
   19818       504698 :          data_tmp = full_data(idata)
   19819       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19820       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19821       504698 :          pack_tmp = ISHFT(pack_tmp, -8)
   19822       504698 :          idata = idata + 1
   19823       504698 :          data_tmp = full_data(idata)
   19824       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19825       504698 :          data_tmp = IAND(data_tmp, mask_left(8))
   19826       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19827       504698 :          ipack = ipack + 1
   19828       504698 :          packed_data(ipack) = pack_tmp
   19829       504698 :          data_tmp = full_data(idata)
   19830       504698 :          pack_tmp = ISHFT(data_tmp, 44)
   19831       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19832       504698 :          idata = idata + 1
   19833       504698 :          data_tmp = full_data(idata)
   19834       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19835       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19836       504698 :          pack_tmp = ISHFT(pack_tmp, -16)
   19837       504698 :          idata = idata + 1
   19838       504698 :          data_tmp = full_data(idata)
   19839       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19840       504698 :          data_tmp = IAND(data_tmp, mask_left(16))
   19841       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19842       504698 :          ipack = ipack + 1
   19843       504698 :          packed_data(ipack) = pack_tmp
   19844       504698 :          data_tmp = full_data(idata)
   19845       504698 :          pack_tmp = ISHFT(data_tmp, 52)
   19846       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19847       504698 :          idata = idata + 1
   19848       504698 :          data_tmp = full_data(idata)
   19849       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19850       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19851       504698 :          pack_tmp = ISHFT(pack_tmp, -24)
   19852       504698 :          idata = idata + 1
   19853       504698 :          data_tmp = full_data(idata)
   19854       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19855       504698 :          data_tmp = IAND(data_tmp, mask_left(24))
   19856       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19857       504698 :          ipack = ipack + 1
   19858       504698 :          packed_data(ipack) = pack_tmp
   19859       504698 :          data_tmp = full_data(idata)
   19860       504698 :          pack_tmp = ISHFT(data_tmp, 60)
   19861       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19862       504698 :          idata = idata + 1
   19863       504698 :          data_tmp = full_data(idata)
   19864       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19865       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19866       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19867       504698 :          idata = idata + 1
   19868       504698 :          data_tmp = full_data(idata)
   19869       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19870       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19871       504698 :          pack_tmp = ISHFT(pack_tmp, -4)
   19872       504698 :          idata = idata + 1
   19873       504698 :          data_tmp = full_data(idata)
   19874       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19875       504698 :          data_tmp = IAND(data_tmp, mask_left(4))
   19876       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19877       504698 :          ipack = ipack + 1
   19878       504698 :          packed_data(ipack) = pack_tmp
   19879       504698 :          data_tmp = full_data(idata)
   19880       504698 :          pack_tmp = ISHFT(data_tmp, 40)
   19881       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19882       504698 :          idata = idata + 1
   19883       504698 :          data_tmp = full_data(idata)
   19884       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19885       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19886       504698 :          pack_tmp = ISHFT(pack_tmp, -12)
   19887       504698 :          idata = idata + 1
   19888       504698 :          data_tmp = full_data(idata)
   19889       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19890       504698 :          data_tmp = IAND(data_tmp, mask_left(12))
   19891       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19892       504698 :          ipack = ipack + 1
   19893       504698 :          packed_data(ipack) = pack_tmp
   19894       504698 :          data_tmp = full_data(idata)
   19895       504698 :          pack_tmp = ISHFT(data_tmp, 48)
   19896       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19897       504698 :          idata = idata + 1
   19898       504698 :          data_tmp = full_data(idata)
   19899       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19900       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19901       504698 :          pack_tmp = ISHFT(pack_tmp, -20)
   19902       504698 :          idata = idata + 1
   19903       504698 :          data_tmp = full_data(idata)
   19904       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19905       504698 :          data_tmp = IAND(data_tmp, mask_left(20))
   19906       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19907       504698 :          ipack = ipack + 1
   19908       504698 :          packed_data(ipack) = pack_tmp
   19909       504698 :          data_tmp = full_data(idata)
   19910       504698 :          pack_tmp = ISHFT(data_tmp, 56)
   19911       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19912       504698 :          idata = idata + 1
   19913       504698 :          data_tmp = full_data(idata)
   19914       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19915       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19916       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19917       504698 :          idata = idata + 1
   19918       504698 :          data_tmp = full_data(idata)
   19919       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19920       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19921       504698 :          pack_tmp = ISHFT(pack_tmp, 0)
   19922       504698 :          idata = idata + 1
   19923       504698 :          data_tmp = full_data(idata)
   19924              :          data_tmp = ISHFT(data_tmp, 36)
   19925       504698 :          data_tmp = IAND(data_tmp, mask_left(0))
   19926       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19927       504698 :          ipack = ipack + 1
   19928       504698 :          packed_data(ipack) = pack_tmp
   19929       504698 :          data_tmp = full_data(idata)
   19930       504698 :          pack_tmp = ISHFT(data_tmp, 36)
   19931       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19932       504698 :          idata = idata + 1
   19933       504698 :          data_tmp = full_data(idata)
   19934       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19935       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19936       504698 :          pack_tmp = ISHFT(pack_tmp, -8)
   19937       504698 :          idata = idata + 1
   19938       504698 :          data_tmp = full_data(idata)
   19939       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19940       504698 :          data_tmp = IAND(data_tmp, mask_left(8))
   19941       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19942       504698 :          ipack = ipack + 1
   19943       504698 :          packed_data(ipack) = pack_tmp
   19944       504698 :          data_tmp = full_data(idata)
   19945       504698 :          pack_tmp = ISHFT(data_tmp, 44)
   19946       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19947       504698 :          idata = idata + 1
   19948       504698 :          data_tmp = full_data(idata)
   19949       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19950       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19951       504698 :          pack_tmp = ISHFT(pack_tmp, -16)
   19952       504698 :          idata = idata + 1
   19953       504698 :          data_tmp = full_data(idata)
   19954       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19955       504698 :          data_tmp = IAND(data_tmp, mask_left(16))
   19956       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19957       504698 :          ipack = ipack + 1
   19958       504698 :          packed_data(ipack) = pack_tmp
   19959       504698 :          data_tmp = full_data(idata)
   19960       504698 :          pack_tmp = ISHFT(data_tmp, 52)
   19961       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19962       504698 :          idata = idata + 1
   19963       504698 :          data_tmp = full_data(idata)
   19964       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19965       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19966       504698 :          pack_tmp = ISHFT(pack_tmp, -24)
   19967       504698 :          idata = idata + 1
   19968       504698 :          data_tmp = full_data(idata)
   19969       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19970       504698 :          data_tmp = IAND(data_tmp, mask_left(24))
   19971       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19972       504698 :          ipack = ipack + 1
   19973       504698 :          packed_data(ipack) = pack_tmp
   19974       504698 :          data_tmp = full_data(idata)
   19975       504698 :          pack_tmp = ISHFT(data_tmp, 60)
   19976       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19977       504698 :          idata = idata + 1
   19978       504698 :          data_tmp = full_data(idata)
   19979       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19980       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19981       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19982       504698 :          idata = idata + 1
   19983       504698 :          data_tmp = full_data(idata)
   19984       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19985       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19986       504698 :          pack_tmp = ISHFT(pack_tmp, -4)
   19987       504698 :          idata = idata + 1
   19988       504698 :          data_tmp = full_data(idata)
   19989       504698 :          data_tmp = ISHFT(data_tmp, 36)
   19990       504698 :          data_tmp = IAND(data_tmp, mask_left(4))
   19991       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   19992       504698 :          ipack = ipack + 1
   19993       504698 :          packed_data(ipack) = pack_tmp
   19994       504698 :          data_tmp = full_data(idata)
   19995       504698 :          pack_tmp = ISHFT(data_tmp, 40)
   19996       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   19997       504698 :          idata = idata + 1
   19998       504698 :          data_tmp = full_data(idata)
   19999       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20000       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20001       504698 :          pack_tmp = ISHFT(pack_tmp, -12)
   20002       504698 :          idata = idata + 1
   20003       504698 :          data_tmp = full_data(idata)
   20004       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20005       504698 :          data_tmp = IAND(data_tmp, mask_left(12))
   20006       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20007       504698 :          ipack = ipack + 1
   20008       504698 :          packed_data(ipack) = pack_tmp
   20009       504698 :          data_tmp = full_data(idata)
   20010       504698 :          pack_tmp = ISHFT(data_tmp, 48)
   20011       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20012       504698 :          idata = idata + 1
   20013       504698 :          data_tmp = full_data(idata)
   20014       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20015       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20016       504698 :          pack_tmp = ISHFT(pack_tmp, -20)
   20017       504698 :          idata = idata + 1
   20018       504698 :          data_tmp = full_data(idata)
   20019       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20020       504698 :          data_tmp = IAND(data_tmp, mask_left(20))
   20021       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20022       504698 :          ipack = ipack + 1
   20023       504698 :          packed_data(ipack) = pack_tmp
   20024       504698 :          data_tmp = full_data(idata)
   20025       504698 :          pack_tmp = ISHFT(data_tmp, 56)
   20026       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20027       504698 :          idata = idata + 1
   20028       504698 :          data_tmp = full_data(idata)
   20029       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20030       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20031       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20032       504698 :          idata = idata + 1
   20033       504698 :          data_tmp = full_data(idata)
   20034       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20035       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20036       504698 :          pack_tmp = ISHFT(pack_tmp, 0)
   20037       504698 :          idata = idata + 1
   20038       504698 :          data_tmp = full_data(idata)
   20039              :          data_tmp = ISHFT(data_tmp, 36)
   20040       504698 :          data_tmp = IAND(data_tmp, mask_left(0))
   20041       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20042       504698 :          ipack = ipack + 1
   20043       504698 :          packed_data(ipack) = pack_tmp
   20044       504698 :          data_tmp = full_data(idata)
   20045       504698 :          pack_tmp = ISHFT(data_tmp, 36)
   20046       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20047       504698 :          idata = idata + 1
   20048       504698 :          data_tmp = full_data(idata)
   20049       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20050       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20051       504698 :          pack_tmp = ISHFT(pack_tmp, -8)
   20052       504698 :          idata = idata + 1
   20053       504698 :          data_tmp = full_data(idata)
   20054       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20055       504698 :          data_tmp = IAND(data_tmp, mask_left(8))
   20056       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20057       504698 :          ipack = ipack + 1
   20058       504698 :          packed_data(ipack) = pack_tmp
   20059       504698 :          data_tmp = full_data(idata)
   20060       504698 :          pack_tmp = ISHFT(data_tmp, 44)
   20061       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20062       504698 :          idata = idata + 1
   20063       504698 :          data_tmp = full_data(idata)
   20064       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20065       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20066       504698 :          pack_tmp = ISHFT(pack_tmp, -16)
   20067       504698 :          idata = idata + 1
   20068       504698 :          data_tmp = full_data(idata)
   20069       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20070       504698 :          data_tmp = IAND(data_tmp, mask_left(16))
   20071       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20072       504698 :          ipack = ipack + 1
   20073       504698 :          packed_data(ipack) = pack_tmp
   20074       504698 :          data_tmp = full_data(idata)
   20075       504698 :          pack_tmp = ISHFT(data_tmp, 52)
   20076       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20077       504698 :          idata = idata + 1
   20078       504698 :          data_tmp = full_data(idata)
   20079       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20080       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20081       504698 :          pack_tmp = ISHFT(pack_tmp, -24)
   20082       504698 :          idata = idata + 1
   20083       504698 :          data_tmp = full_data(idata)
   20084       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20085       504698 :          data_tmp = IAND(data_tmp, mask_left(24))
   20086       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20087       504698 :          ipack = ipack + 1
   20088       504698 :          packed_data(ipack) = pack_tmp
   20089       504698 :          data_tmp = full_data(idata)
   20090       504698 :          pack_tmp = ISHFT(data_tmp, 60)
   20091       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20092       504698 :          idata = idata + 1
   20093       504698 :          data_tmp = full_data(idata)
   20094       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20095       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20096       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20097       504698 :          idata = idata + 1
   20098       504698 :          data_tmp = full_data(idata)
   20099       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20100       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20101       504698 :          pack_tmp = ISHFT(pack_tmp, -4)
   20102       504698 :          idata = idata + 1
   20103       504698 :          data_tmp = full_data(idata)
   20104       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20105       504698 :          data_tmp = IAND(data_tmp, mask_left(4))
   20106       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20107       504698 :          ipack = ipack + 1
   20108       504698 :          packed_data(ipack) = pack_tmp
   20109       504698 :          data_tmp = full_data(idata)
   20110       504698 :          pack_tmp = ISHFT(data_tmp, 40)
   20111       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20112       504698 :          idata = idata + 1
   20113       504698 :          data_tmp = full_data(idata)
   20114       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20115       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20116       504698 :          pack_tmp = ISHFT(pack_tmp, -12)
   20117       504698 :          idata = idata + 1
   20118       504698 :          data_tmp = full_data(idata)
   20119       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20120       504698 :          data_tmp = IAND(data_tmp, mask_left(12))
   20121       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20122       504698 :          ipack = ipack + 1
   20123       504698 :          packed_data(ipack) = pack_tmp
   20124       504698 :          data_tmp = full_data(idata)
   20125       504698 :          pack_tmp = ISHFT(data_tmp, 48)
   20126       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20127       504698 :          idata = idata + 1
   20128       504698 :          data_tmp = full_data(idata)
   20129       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20130       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20131       504698 :          pack_tmp = ISHFT(pack_tmp, -20)
   20132       504698 :          idata = idata + 1
   20133       504698 :          data_tmp = full_data(idata)
   20134       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20135       504698 :          data_tmp = IAND(data_tmp, mask_left(20))
   20136       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20137       504698 :          ipack = ipack + 1
   20138       504698 :          packed_data(ipack) = pack_tmp
   20139       504698 :          data_tmp = full_data(idata)
   20140       504698 :          pack_tmp = ISHFT(data_tmp, 56)
   20141       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20142       504698 :          idata = idata + 1
   20143       504698 :          data_tmp = full_data(idata)
   20144       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20145       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20146       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20147       504698 :          idata = idata + 1
   20148       504698 :          data_tmp = full_data(idata)
   20149       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20150       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20151       504698 :          pack_tmp = ISHFT(pack_tmp, 0)
   20152       504698 :          idata = idata + 1
   20153       504698 :          data_tmp = full_data(idata)
   20154              :          data_tmp = ISHFT(data_tmp, 36)
   20155       504698 :          data_tmp = IAND(data_tmp, mask_left(0))
   20156       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20157       504698 :          ipack = ipack + 1
   20158       504698 :          packed_data(ipack) = pack_tmp
   20159       504698 :          data_tmp = full_data(idata)
   20160       504698 :          pack_tmp = ISHFT(data_tmp, 36)
   20161       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20162       504698 :          idata = idata + 1
   20163       504698 :          data_tmp = full_data(idata)
   20164       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20165       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20166       504698 :          pack_tmp = ISHFT(pack_tmp, -8)
   20167       504698 :          idata = idata + 1
   20168       504698 :          data_tmp = full_data(idata)
   20169       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20170       504698 :          data_tmp = IAND(data_tmp, mask_left(8))
   20171       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20172       504698 :          ipack = ipack + 1
   20173       504698 :          packed_data(ipack) = pack_tmp
   20174       504698 :          data_tmp = full_data(idata)
   20175       504698 :          pack_tmp = ISHFT(data_tmp, 44)
   20176       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20177       504698 :          idata = idata + 1
   20178       504698 :          data_tmp = full_data(idata)
   20179       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20180       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20181       504698 :          pack_tmp = ISHFT(pack_tmp, -16)
   20182       504698 :          idata = idata + 1
   20183       504698 :          data_tmp = full_data(idata)
   20184       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20185       504698 :          data_tmp = IAND(data_tmp, mask_left(16))
   20186       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20187       504698 :          ipack = ipack + 1
   20188       504698 :          packed_data(ipack) = pack_tmp
   20189       504698 :          data_tmp = full_data(idata)
   20190       504698 :          pack_tmp = ISHFT(data_tmp, 52)
   20191       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20192       504698 :          idata = idata + 1
   20193       504698 :          data_tmp = full_data(idata)
   20194       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20195       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20196       504698 :          pack_tmp = ISHFT(pack_tmp, -24)
   20197       504698 :          idata = idata + 1
   20198       504698 :          data_tmp = full_data(idata)
   20199       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20200       504698 :          data_tmp = IAND(data_tmp, mask_left(24))
   20201       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20202       504698 :          ipack = ipack + 1
   20203       504698 :          packed_data(ipack) = pack_tmp
   20204       504698 :          data_tmp = full_data(idata)
   20205       504698 :          pack_tmp = ISHFT(data_tmp, 60)
   20206       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20207       504698 :          idata = idata + 1
   20208       504698 :          data_tmp = full_data(idata)
   20209       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20210       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20211       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20212       504698 :          idata = idata + 1
   20213       504698 :          data_tmp = full_data(idata)
   20214       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20215       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20216       504698 :          pack_tmp = ISHFT(pack_tmp, -4)
   20217       504698 :          idata = idata + 1
   20218       504698 :          data_tmp = full_data(idata)
   20219       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20220       504698 :          data_tmp = IAND(data_tmp, mask_left(4))
   20221       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20222       504698 :          ipack = ipack + 1
   20223       504698 :          packed_data(ipack) = pack_tmp
   20224       504698 :          data_tmp = full_data(idata)
   20225       504698 :          pack_tmp = ISHFT(data_tmp, 40)
   20226       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20227       504698 :          idata = idata + 1
   20228       504698 :          data_tmp = full_data(idata)
   20229       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20230       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20231       504698 :          pack_tmp = ISHFT(pack_tmp, -12)
   20232       504698 :          idata = idata + 1
   20233       504698 :          data_tmp = full_data(idata)
   20234       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20235       504698 :          data_tmp = IAND(data_tmp, mask_left(12))
   20236       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20237       504698 :          ipack = ipack + 1
   20238       504698 :          packed_data(ipack) = pack_tmp
   20239       504698 :          data_tmp = full_data(idata)
   20240       504698 :          pack_tmp = ISHFT(data_tmp, 48)
   20241       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20242       504698 :          idata = idata + 1
   20243       504698 :          data_tmp = full_data(idata)
   20244       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20245       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20246       504698 :          pack_tmp = ISHFT(pack_tmp, -20)
   20247       504698 :          idata = idata + 1
   20248       504698 :          data_tmp = full_data(idata)
   20249       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20250       504698 :          data_tmp = IAND(data_tmp, mask_left(20))
   20251       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20252       504698 :          ipack = ipack + 1
   20253       504698 :          packed_data(ipack) = pack_tmp
   20254       504698 :          data_tmp = full_data(idata)
   20255       504698 :          pack_tmp = ISHFT(data_tmp, 56)
   20256       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20257       504698 :          idata = idata + 1
   20258       504698 :          data_tmp = full_data(idata)
   20259       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20260       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20261       504698 :          pack_tmp = ISHFT(pack_tmp, -28)
   20262       504698 :          idata = idata + 1
   20263       504698 :          data_tmp = full_data(idata)
   20264       504698 :          data_tmp = ISHFT(data_tmp, 36)
   20265       504698 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20266              :          pack_tmp = ISHFT(pack_tmp, 0)
   20267       504698 :          pack_tmp = ISHFT(pack_tmp, 0)
   20268       504698 :          ipack = ipack + 1
   20269       504807 :          packed_data(ipack) = pack_tmp
   20270              :       END DO
   20271        34914 :       IF (Ndata_rep < Ndata) THEN
   20272         6316 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   20273              :       END IF
   20274        34914 :    END SUBROUTINE ints2bits_28
   20275              : 
   20276              : ! **************************************************************************************************
   20277              : !> \brief ...
   20278              : !> \param Ndata ...
   20279              : !> \param packed_data ...
   20280              : !> \param full_data ...
   20281              : ! **************************************************************************************************
   20282       162275 :    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       162275 :       ipack = 0
   20293       162275 :       idata = 0
   20294       162275 :       pack_tmp = 0
   20295       162275 :       Ndata_rep = (Ndata/64)*64
   20296       162275 :       DO kdata = 1, Ndata_rep, 64
   20297      2278152 :          idata = idata + 1
   20298      2278152 :          data_tmp = ISHFT(pack_tmp, 28)
   20299      2278152 :          ipack = ipack + 1
   20300      2278152 :          pack_tmp = packed_data(ipack)
   20301      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20302      2278152 :          pack_tmp = ISHFT(pack_tmp, -28)
   20303      2278152 :          idata = idata + 1
   20304      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20305      2278152 :          full_data(idata) = data_tmp
   20306      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20307      2278152 :          idata = idata + 1
   20308      2278152 :          data_tmp = ISHFT(pack_tmp, 20)
   20309      2278152 :          ipack = ipack + 1
   20310      2278152 :          pack_tmp = packed_data(ipack)
   20311      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20312      2278152 :          pack_tmp = ISHFT(pack_tmp, -20)
   20313      2278152 :          idata = idata + 1
   20314      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20315      2278152 :          full_data(idata) = data_tmp
   20316      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20317      2278152 :          idata = idata + 1
   20318      2278152 :          data_tmp = ISHFT(pack_tmp, 12)
   20319      2278152 :          ipack = ipack + 1
   20320      2278152 :          pack_tmp = packed_data(ipack)
   20321      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20322      2278152 :          pack_tmp = ISHFT(pack_tmp, -12)
   20323      2278152 :          idata = idata + 1
   20324      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20325      2278152 :          full_data(idata) = data_tmp
   20326      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20327      2278152 :          idata = idata + 1
   20328      2278152 :          data_tmp = ISHFT(pack_tmp, 4)
   20329      2278152 :          ipack = ipack + 1
   20330      2278152 :          pack_tmp = packed_data(ipack)
   20331      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20332      2278152 :          pack_tmp = ISHFT(pack_tmp, -4)
   20333      2278152 :          idata = idata + 1
   20334      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20335      2278152 :          full_data(idata) = data_tmp
   20336      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20337      2278152 :          idata = idata + 1
   20338      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20339      2278152 :          full_data(idata) = data_tmp
   20340      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20341      2278152 :          idata = idata + 1
   20342      2278152 :          data_tmp = ISHFT(pack_tmp, 24)
   20343      2278152 :          ipack = ipack + 1
   20344      2278152 :          pack_tmp = packed_data(ipack)
   20345      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20346      2278152 :          pack_tmp = ISHFT(pack_tmp, -24)
   20347      2278152 :          idata = idata + 1
   20348      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20349      2278152 :          full_data(idata) = data_tmp
   20350      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20351      2278152 :          idata = idata + 1
   20352      2278152 :          data_tmp = ISHFT(pack_tmp, 16)
   20353      2278152 :          ipack = ipack + 1
   20354      2278152 :          pack_tmp = packed_data(ipack)
   20355      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20356      2278152 :          pack_tmp = ISHFT(pack_tmp, -16)
   20357      2278152 :          idata = idata + 1
   20358      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20359      2278152 :          full_data(idata) = data_tmp
   20360      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20361      2278152 :          idata = idata + 1
   20362      2278152 :          data_tmp = ISHFT(pack_tmp, 8)
   20363      2278152 :          ipack = ipack + 1
   20364      2278152 :          pack_tmp = packed_data(ipack)
   20365      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20366      2278152 :          pack_tmp = ISHFT(pack_tmp, -8)
   20367      2278152 :          idata = idata + 1
   20368      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20369      2278152 :          full_data(idata) = data_tmp
   20370      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20371      2278152 :          idata = idata + 1
   20372      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20373      2278152 :          full_data(idata) = data_tmp
   20374      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20375      2278152 :          idata = idata + 1
   20376      2278152 :          data_tmp = ISHFT(pack_tmp, 28)
   20377      2278152 :          ipack = ipack + 1
   20378      2278152 :          pack_tmp = packed_data(ipack)
   20379      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20380      2278152 :          pack_tmp = ISHFT(pack_tmp, -28)
   20381      2278152 :          idata = idata + 1
   20382      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20383      2278152 :          full_data(idata) = data_tmp
   20384      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20385      2278152 :          idata = idata + 1
   20386      2278152 :          data_tmp = ISHFT(pack_tmp, 20)
   20387      2278152 :          ipack = ipack + 1
   20388      2278152 :          pack_tmp = packed_data(ipack)
   20389      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20390      2278152 :          pack_tmp = ISHFT(pack_tmp, -20)
   20391      2278152 :          idata = idata + 1
   20392      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20393      2278152 :          full_data(idata) = data_tmp
   20394      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20395      2278152 :          idata = idata + 1
   20396      2278152 :          data_tmp = ISHFT(pack_tmp, 12)
   20397      2278152 :          ipack = ipack + 1
   20398      2278152 :          pack_tmp = packed_data(ipack)
   20399      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20400      2278152 :          pack_tmp = ISHFT(pack_tmp, -12)
   20401      2278152 :          idata = idata + 1
   20402      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20403      2278152 :          full_data(idata) = data_tmp
   20404      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20405      2278152 :          idata = idata + 1
   20406      2278152 :          data_tmp = ISHFT(pack_tmp, 4)
   20407      2278152 :          ipack = ipack + 1
   20408      2278152 :          pack_tmp = packed_data(ipack)
   20409      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20410      2278152 :          pack_tmp = ISHFT(pack_tmp, -4)
   20411      2278152 :          idata = idata + 1
   20412      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20413      2278152 :          full_data(idata) = data_tmp
   20414      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20415      2278152 :          idata = idata + 1
   20416      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20417      2278152 :          full_data(idata) = data_tmp
   20418      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20419      2278152 :          idata = idata + 1
   20420      2278152 :          data_tmp = ISHFT(pack_tmp, 24)
   20421      2278152 :          ipack = ipack + 1
   20422      2278152 :          pack_tmp = packed_data(ipack)
   20423      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20424      2278152 :          pack_tmp = ISHFT(pack_tmp, -24)
   20425      2278152 :          idata = idata + 1
   20426      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20427      2278152 :          full_data(idata) = data_tmp
   20428      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20429      2278152 :          idata = idata + 1
   20430      2278152 :          data_tmp = ISHFT(pack_tmp, 16)
   20431      2278152 :          ipack = ipack + 1
   20432      2278152 :          pack_tmp = packed_data(ipack)
   20433      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20434      2278152 :          pack_tmp = ISHFT(pack_tmp, -16)
   20435      2278152 :          idata = idata + 1
   20436      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20437      2278152 :          full_data(idata) = data_tmp
   20438      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20439      2278152 :          idata = idata + 1
   20440      2278152 :          data_tmp = ISHFT(pack_tmp, 8)
   20441      2278152 :          ipack = ipack + 1
   20442      2278152 :          pack_tmp = packed_data(ipack)
   20443      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20444      2278152 :          pack_tmp = ISHFT(pack_tmp, -8)
   20445      2278152 :          idata = idata + 1
   20446      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20447      2278152 :          full_data(idata) = data_tmp
   20448      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20449      2278152 :          idata = idata + 1
   20450      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20451      2278152 :          full_data(idata) = data_tmp
   20452      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20453      2278152 :          idata = idata + 1
   20454      2278152 :          data_tmp = ISHFT(pack_tmp, 28)
   20455      2278152 :          ipack = ipack + 1
   20456      2278152 :          pack_tmp = packed_data(ipack)
   20457      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20458      2278152 :          pack_tmp = ISHFT(pack_tmp, -28)
   20459      2278152 :          idata = idata + 1
   20460      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20461      2278152 :          full_data(idata) = data_tmp
   20462      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20463      2278152 :          idata = idata + 1
   20464      2278152 :          data_tmp = ISHFT(pack_tmp, 20)
   20465      2278152 :          ipack = ipack + 1
   20466      2278152 :          pack_tmp = packed_data(ipack)
   20467      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20468      2278152 :          pack_tmp = ISHFT(pack_tmp, -20)
   20469      2278152 :          idata = idata + 1
   20470      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20471      2278152 :          full_data(idata) = data_tmp
   20472      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20473      2278152 :          idata = idata + 1
   20474      2278152 :          data_tmp = ISHFT(pack_tmp, 12)
   20475      2278152 :          ipack = ipack + 1
   20476      2278152 :          pack_tmp = packed_data(ipack)
   20477      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20478      2278152 :          pack_tmp = ISHFT(pack_tmp, -12)
   20479      2278152 :          idata = idata + 1
   20480      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20481      2278152 :          full_data(idata) = data_tmp
   20482      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20483      2278152 :          idata = idata + 1
   20484      2278152 :          data_tmp = ISHFT(pack_tmp, 4)
   20485      2278152 :          ipack = ipack + 1
   20486      2278152 :          pack_tmp = packed_data(ipack)
   20487      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20488      2278152 :          pack_tmp = ISHFT(pack_tmp, -4)
   20489      2278152 :          idata = idata + 1
   20490      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20491      2278152 :          full_data(idata) = data_tmp
   20492      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20493      2278152 :          idata = idata + 1
   20494      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20495      2278152 :          full_data(idata) = data_tmp
   20496      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20497      2278152 :          idata = idata + 1
   20498      2278152 :          data_tmp = ISHFT(pack_tmp, 24)
   20499      2278152 :          ipack = ipack + 1
   20500      2278152 :          pack_tmp = packed_data(ipack)
   20501      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20502      2278152 :          pack_tmp = ISHFT(pack_tmp, -24)
   20503      2278152 :          idata = idata + 1
   20504      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20505      2278152 :          full_data(idata) = data_tmp
   20506      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20507      2278152 :          idata = idata + 1
   20508      2278152 :          data_tmp = ISHFT(pack_tmp, 16)
   20509      2278152 :          ipack = ipack + 1
   20510      2278152 :          pack_tmp = packed_data(ipack)
   20511      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20512      2278152 :          pack_tmp = ISHFT(pack_tmp, -16)
   20513      2278152 :          idata = idata + 1
   20514      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20515      2278152 :          full_data(idata) = data_tmp
   20516      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20517      2278152 :          idata = idata + 1
   20518      2278152 :          data_tmp = ISHFT(pack_tmp, 8)
   20519      2278152 :          ipack = ipack + 1
   20520      2278152 :          pack_tmp = packed_data(ipack)
   20521      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20522      2278152 :          pack_tmp = ISHFT(pack_tmp, -8)
   20523      2278152 :          idata = idata + 1
   20524      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20525      2278152 :          full_data(idata) = data_tmp
   20526      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20527      2278152 :          idata = idata + 1
   20528      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20529      2278152 :          full_data(idata) = data_tmp
   20530      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20531      2278152 :          idata = idata + 1
   20532      2278152 :          data_tmp = ISHFT(pack_tmp, 28)
   20533      2278152 :          ipack = ipack + 1
   20534      2278152 :          pack_tmp = packed_data(ipack)
   20535      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   20536      2278152 :          pack_tmp = ISHFT(pack_tmp, -28)
   20537      2278152 :          idata = idata + 1
   20538      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20539      2278152 :          full_data(idata) = data_tmp
   20540      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20541      2278152 :          idata = idata + 1
   20542      2278152 :          data_tmp = ISHFT(pack_tmp, 20)
   20543      2278152 :          ipack = ipack + 1
   20544      2278152 :          pack_tmp = packed_data(ipack)
   20545      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   20546      2278152 :          pack_tmp = ISHFT(pack_tmp, -20)
   20547      2278152 :          idata = idata + 1
   20548      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20549      2278152 :          full_data(idata) = data_tmp
   20550      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20551      2278152 :          idata = idata + 1
   20552      2278152 :          data_tmp = ISHFT(pack_tmp, 12)
   20553      2278152 :          ipack = ipack + 1
   20554      2278152 :          pack_tmp = packed_data(ipack)
   20555      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   20556      2278152 :          pack_tmp = ISHFT(pack_tmp, -12)
   20557      2278152 :          idata = idata + 1
   20558      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20559      2278152 :          full_data(idata) = data_tmp
   20560      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20561      2278152 :          idata = idata + 1
   20562      2278152 :          data_tmp = ISHFT(pack_tmp, 4)
   20563      2278152 :          ipack = ipack + 1
   20564      2278152 :          pack_tmp = packed_data(ipack)
   20565      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   20566      2278152 :          pack_tmp = ISHFT(pack_tmp, -4)
   20567      2278152 :          idata = idata + 1
   20568      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20569      2278152 :          full_data(idata) = data_tmp
   20570      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20571      2278152 :          idata = idata + 1
   20572      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20573      2278152 :          full_data(idata) = data_tmp
   20574      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20575      2278152 :          idata = idata + 1
   20576      2278152 :          data_tmp = ISHFT(pack_tmp, 24)
   20577      2278152 :          ipack = ipack + 1
   20578      2278152 :          pack_tmp = packed_data(ipack)
   20579      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   20580      2278152 :          pack_tmp = ISHFT(pack_tmp, -24)
   20581      2278152 :          idata = idata + 1
   20582      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20583      2278152 :          full_data(idata) = data_tmp
   20584      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20585      2278152 :          idata = idata + 1
   20586      2278152 :          data_tmp = ISHFT(pack_tmp, 16)
   20587      2278152 :          ipack = ipack + 1
   20588      2278152 :          pack_tmp = packed_data(ipack)
   20589      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   20590      2278152 :          pack_tmp = ISHFT(pack_tmp, -16)
   20591      2278152 :          idata = idata + 1
   20592      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20593      2278152 :          full_data(idata) = data_tmp
   20594      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20595      2278152 :          idata = idata + 1
   20596      2278152 :          data_tmp = ISHFT(pack_tmp, 8)
   20597      2278152 :          ipack = ipack + 1
   20598      2278152 :          pack_tmp = packed_data(ipack)
   20599      2278152 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   20600      2278152 :          pack_tmp = ISHFT(pack_tmp, -8)
   20601      2278152 :          idata = idata + 1
   20602      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20603      2278152 :          full_data(idata) = data_tmp
   20604      2278152 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20605      2278152 :          idata = idata + 1
   20606      2278152 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   20607      2278152 :          full_data(idata) = data_tmp
   20608      2279139 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   20609              :       END DO
   20610       162275 :       IF (Ndata_rep < Ndata) THEN
   20611        37168 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   20612              :       END IF
   20613       162275 :    END SUBROUTINE bits2ints_28
   20614              : 
   20615              : ! **************************************************************************************************
   20616              : !> \brief ...
   20617              : !> \param Ndata ...
   20618              : !> \param packed_data ...
   20619              : !> \param full_data ...
   20620              : ! **************************************************************************************************
   20621        37744 :    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        37744 :       idata = 0
   20632        37744 :       ipack = 0
   20633        37744 :       Ndata_rep = (Ndata/64)*64
   20634        37744 :       DO kdata = 1, Ndata_rep, 64
   20635       535626 :          pack_tmp = 0
   20636       535626 :          idata = idata + 1
   20637       535626 :          data_tmp = full_data(idata)
   20638       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20639       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20640       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20641       535626 :          idata = idata + 1
   20642       535626 :          data_tmp = full_data(idata)
   20643       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20644       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20645       535626 :          pack_tmp = ISHFT(pack_tmp, -6)
   20646       535626 :          idata = idata + 1
   20647       535626 :          data_tmp = full_data(idata)
   20648       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20649       535626 :          data_tmp = IAND(data_tmp, mask_left(6))
   20650       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20651       535626 :          ipack = ipack + 1
   20652       535626 :          packed_data(ipack) = pack_tmp
   20653       535626 :          data_tmp = full_data(idata)
   20654       535626 :          pack_tmp = ISHFT(data_tmp, 41)
   20655       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20656       535626 :          idata = idata + 1
   20657       535626 :          data_tmp = full_data(idata)
   20658       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20659       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20660       535626 :          pack_tmp = ISHFT(pack_tmp, -12)
   20661       535626 :          idata = idata + 1
   20662       535626 :          data_tmp = full_data(idata)
   20663       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20664       535626 :          data_tmp = IAND(data_tmp, mask_left(12))
   20665       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20666       535626 :          ipack = ipack + 1
   20667       535626 :          packed_data(ipack) = pack_tmp
   20668       535626 :          data_tmp = full_data(idata)
   20669       535626 :          pack_tmp = ISHFT(data_tmp, 47)
   20670       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20671       535626 :          idata = idata + 1
   20672       535626 :          data_tmp = full_data(idata)
   20673       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20674       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20675       535626 :          pack_tmp = ISHFT(pack_tmp, -18)
   20676       535626 :          idata = idata + 1
   20677       535626 :          data_tmp = full_data(idata)
   20678       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20679       535626 :          data_tmp = IAND(data_tmp, mask_left(18))
   20680       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20681       535626 :          ipack = ipack + 1
   20682       535626 :          packed_data(ipack) = pack_tmp
   20683       535626 :          data_tmp = full_data(idata)
   20684       535626 :          pack_tmp = ISHFT(data_tmp, 53)
   20685       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20686       535626 :          idata = idata + 1
   20687       535626 :          data_tmp = full_data(idata)
   20688       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20689       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20690       535626 :          pack_tmp = ISHFT(pack_tmp, -24)
   20691       535626 :          idata = idata + 1
   20692       535626 :          data_tmp = full_data(idata)
   20693       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20694       535626 :          data_tmp = IAND(data_tmp, mask_left(24))
   20695       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20696       535626 :          ipack = ipack + 1
   20697       535626 :          packed_data(ipack) = pack_tmp
   20698       535626 :          data_tmp = full_data(idata)
   20699       535626 :          pack_tmp = ISHFT(data_tmp, 59)
   20700       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20701       535626 :          idata = idata + 1
   20702       535626 :          data_tmp = full_data(idata)
   20703       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20704       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20705       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20706       535626 :          idata = idata + 1
   20707       535626 :          data_tmp = full_data(idata)
   20708       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20709       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20710       535626 :          pack_tmp = ISHFT(pack_tmp, -1)
   20711       535626 :          idata = idata + 1
   20712       535626 :          data_tmp = full_data(idata)
   20713       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20714       535626 :          data_tmp = IAND(data_tmp, mask_left(1))
   20715       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20716       535626 :          ipack = ipack + 1
   20717       535626 :          packed_data(ipack) = pack_tmp
   20718       535626 :          data_tmp = full_data(idata)
   20719       535626 :          pack_tmp = ISHFT(data_tmp, 36)
   20720       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20721       535626 :          idata = idata + 1
   20722       535626 :          data_tmp = full_data(idata)
   20723       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20724       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20725       535626 :          pack_tmp = ISHFT(pack_tmp, -7)
   20726       535626 :          idata = idata + 1
   20727       535626 :          data_tmp = full_data(idata)
   20728       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20729       535626 :          data_tmp = IAND(data_tmp, mask_left(7))
   20730       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20731       535626 :          ipack = ipack + 1
   20732       535626 :          packed_data(ipack) = pack_tmp
   20733       535626 :          data_tmp = full_data(idata)
   20734       535626 :          pack_tmp = ISHFT(data_tmp, 42)
   20735       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20736       535626 :          idata = idata + 1
   20737       535626 :          data_tmp = full_data(idata)
   20738       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20739       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20740       535626 :          pack_tmp = ISHFT(pack_tmp, -13)
   20741       535626 :          idata = idata + 1
   20742       535626 :          data_tmp = full_data(idata)
   20743       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20744       535626 :          data_tmp = IAND(data_tmp, mask_left(13))
   20745       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20746       535626 :          ipack = ipack + 1
   20747       535626 :          packed_data(ipack) = pack_tmp
   20748       535626 :          data_tmp = full_data(idata)
   20749       535626 :          pack_tmp = ISHFT(data_tmp, 48)
   20750       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20751       535626 :          idata = idata + 1
   20752       535626 :          data_tmp = full_data(idata)
   20753       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20754       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20755       535626 :          pack_tmp = ISHFT(pack_tmp, -19)
   20756       535626 :          idata = idata + 1
   20757       535626 :          data_tmp = full_data(idata)
   20758       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20759       535626 :          data_tmp = IAND(data_tmp, mask_left(19))
   20760       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20761       535626 :          ipack = ipack + 1
   20762       535626 :          packed_data(ipack) = pack_tmp
   20763       535626 :          data_tmp = full_data(idata)
   20764       535626 :          pack_tmp = ISHFT(data_tmp, 54)
   20765       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20766       535626 :          idata = idata + 1
   20767       535626 :          data_tmp = full_data(idata)
   20768       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20769       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20770       535626 :          pack_tmp = ISHFT(pack_tmp, -25)
   20771       535626 :          idata = idata + 1
   20772       535626 :          data_tmp = full_data(idata)
   20773       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20774       535626 :          data_tmp = IAND(data_tmp, mask_left(25))
   20775       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20776       535626 :          ipack = ipack + 1
   20777       535626 :          packed_data(ipack) = pack_tmp
   20778       535626 :          data_tmp = full_data(idata)
   20779       535626 :          pack_tmp = ISHFT(data_tmp, 60)
   20780       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20781       535626 :          idata = idata + 1
   20782       535626 :          data_tmp = full_data(idata)
   20783       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20784       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20785       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20786       535626 :          idata = idata + 1
   20787       535626 :          data_tmp = full_data(idata)
   20788       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20789       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20790       535626 :          pack_tmp = ISHFT(pack_tmp, -2)
   20791       535626 :          idata = idata + 1
   20792       535626 :          data_tmp = full_data(idata)
   20793       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20794       535626 :          data_tmp = IAND(data_tmp, mask_left(2))
   20795       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20796       535626 :          ipack = ipack + 1
   20797       535626 :          packed_data(ipack) = pack_tmp
   20798       535626 :          data_tmp = full_data(idata)
   20799       535626 :          pack_tmp = ISHFT(data_tmp, 37)
   20800       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20801       535626 :          idata = idata + 1
   20802       535626 :          data_tmp = full_data(idata)
   20803       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20804       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20805       535626 :          pack_tmp = ISHFT(pack_tmp, -8)
   20806       535626 :          idata = idata + 1
   20807       535626 :          data_tmp = full_data(idata)
   20808       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20809       535626 :          data_tmp = IAND(data_tmp, mask_left(8))
   20810       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20811       535626 :          ipack = ipack + 1
   20812       535626 :          packed_data(ipack) = pack_tmp
   20813       535626 :          data_tmp = full_data(idata)
   20814       535626 :          pack_tmp = ISHFT(data_tmp, 43)
   20815       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20816       535626 :          idata = idata + 1
   20817       535626 :          data_tmp = full_data(idata)
   20818       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20819       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20820       535626 :          pack_tmp = ISHFT(pack_tmp, -14)
   20821       535626 :          idata = idata + 1
   20822       535626 :          data_tmp = full_data(idata)
   20823       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20824       535626 :          data_tmp = IAND(data_tmp, mask_left(14))
   20825       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20826       535626 :          ipack = ipack + 1
   20827       535626 :          packed_data(ipack) = pack_tmp
   20828       535626 :          data_tmp = full_data(idata)
   20829       535626 :          pack_tmp = ISHFT(data_tmp, 49)
   20830       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20831       535626 :          idata = idata + 1
   20832       535626 :          data_tmp = full_data(idata)
   20833       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20834       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20835       535626 :          pack_tmp = ISHFT(pack_tmp, -20)
   20836       535626 :          idata = idata + 1
   20837       535626 :          data_tmp = full_data(idata)
   20838       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20839       535626 :          data_tmp = IAND(data_tmp, mask_left(20))
   20840       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20841       535626 :          ipack = ipack + 1
   20842       535626 :          packed_data(ipack) = pack_tmp
   20843       535626 :          data_tmp = full_data(idata)
   20844       535626 :          pack_tmp = ISHFT(data_tmp, 55)
   20845       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20846       535626 :          idata = idata + 1
   20847       535626 :          data_tmp = full_data(idata)
   20848       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20849       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20850       535626 :          pack_tmp = ISHFT(pack_tmp, -26)
   20851       535626 :          idata = idata + 1
   20852       535626 :          data_tmp = full_data(idata)
   20853       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20854       535626 :          data_tmp = IAND(data_tmp, mask_left(26))
   20855       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20856       535626 :          ipack = ipack + 1
   20857       535626 :          packed_data(ipack) = pack_tmp
   20858       535626 :          data_tmp = full_data(idata)
   20859       535626 :          pack_tmp = ISHFT(data_tmp, 61)
   20860       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20861       535626 :          idata = idata + 1
   20862       535626 :          data_tmp = full_data(idata)
   20863       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20864       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20865       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20866       535626 :          idata = idata + 1
   20867       535626 :          data_tmp = full_data(idata)
   20868       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20869       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20870       535626 :          pack_tmp = ISHFT(pack_tmp, -3)
   20871       535626 :          idata = idata + 1
   20872       535626 :          data_tmp = full_data(idata)
   20873       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20874       535626 :          data_tmp = IAND(data_tmp, mask_left(3))
   20875       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20876       535626 :          ipack = ipack + 1
   20877       535626 :          packed_data(ipack) = pack_tmp
   20878       535626 :          data_tmp = full_data(idata)
   20879       535626 :          pack_tmp = ISHFT(data_tmp, 38)
   20880       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20881       535626 :          idata = idata + 1
   20882       535626 :          data_tmp = full_data(idata)
   20883       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20884       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20885       535626 :          pack_tmp = ISHFT(pack_tmp, -9)
   20886       535626 :          idata = idata + 1
   20887       535626 :          data_tmp = full_data(idata)
   20888       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20889       535626 :          data_tmp = IAND(data_tmp, mask_left(9))
   20890       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20891       535626 :          ipack = ipack + 1
   20892       535626 :          packed_data(ipack) = pack_tmp
   20893       535626 :          data_tmp = full_data(idata)
   20894       535626 :          pack_tmp = ISHFT(data_tmp, 44)
   20895       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20896       535626 :          idata = idata + 1
   20897       535626 :          data_tmp = full_data(idata)
   20898       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20899       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20900       535626 :          pack_tmp = ISHFT(pack_tmp, -15)
   20901       535626 :          idata = idata + 1
   20902       535626 :          data_tmp = full_data(idata)
   20903       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20904       535626 :          data_tmp = IAND(data_tmp, mask_left(15))
   20905       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20906       535626 :          ipack = ipack + 1
   20907       535626 :          packed_data(ipack) = pack_tmp
   20908       535626 :          data_tmp = full_data(idata)
   20909       535626 :          pack_tmp = ISHFT(data_tmp, 50)
   20910       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20911       535626 :          idata = idata + 1
   20912       535626 :          data_tmp = full_data(idata)
   20913       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20914       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20915       535626 :          pack_tmp = ISHFT(pack_tmp, -21)
   20916       535626 :          idata = idata + 1
   20917       535626 :          data_tmp = full_data(idata)
   20918       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20919       535626 :          data_tmp = IAND(data_tmp, mask_left(21))
   20920       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20921       535626 :          ipack = ipack + 1
   20922       535626 :          packed_data(ipack) = pack_tmp
   20923       535626 :          data_tmp = full_data(idata)
   20924       535626 :          pack_tmp = ISHFT(data_tmp, 56)
   20925       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20926       535626 :          idata = idata + 1
   20927       535626 :          data_tmp = full_data(idata)
   20928       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20929       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20930       535626 :          pack_tmp = ISHFT(pack_tmp, -27)
   20931       535626 :          idata = idata + 1
   20932       535626 :          data_tmp = full_data(idata)
   20933       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20934       535626 :          data_tmp = IAND(data_tmp, mask_left(27))
   20935       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20936       535626 :          ipack = ipack + 1
   20937       535626 :          packed_data(ipack) = pack_tmp
   20938       535626 :          data_tmp = full_data(idata)
   20939       535626 :          pack_tmp = ISHFT(data_tmp, 62)
   20940       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20941       535626 :          idata = idata + 1
   20942       535626 :          data_tmp = full_data(idata)
   20943       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20944       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20945       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20946       535626 :          idata = idata + 1
   20947       535626 :          data_tmp = full_data(idata)
   20948       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20949       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20950       535626 :          pack_tmp = ISHFT(pack_tmp, -4)
   20951       535626 :          idata = idata + 1
   20952       535626 :          data_tmp = full_data(idata)
   20953       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20954       535626 :          data_tmp = IAND(data_tmp, mask_left(4))
   20955       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20956       535626 :          ipack = ipack + 1
   20957       535626 :          packed_data(ipack) = pack_tmp
   20958       535626 :          data_tmp = full_data(idata)
   20959       535626 :          pack_tmp = ISHFT(data_tmp, 39)
   20960       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20961       535626 :          idata = idata + 1
   20962       535626 :          data_tmp = full_data(idata)
   20963       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20964       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20965       535626 :          pack_tmp = ISHFT(pack_tmp, -10)
   20966       535626 :          idata = idata + 1
   20967       535626 :          data_tmp = full_data(idata)
   20968       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20969       535626 :          data_tmp = IAND(data_tmp, mask_left(10))
   20970       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20971       535626 :          ipack = ipack + 1
   20972       535626 :          packed_data(ipack) = pack_tmp
   20973       535626 :          data_tmp = full_data(idata)
   20974       535626 :          pack_tmp = ISHFT(data_tmp, 45)
   20975       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20976       535626 :          idata = idata + 1
   20977       535626 :          data_tmp = full_data(idata)
   20978       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20979       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20980       535626 :          pack_tmp = ISHFT(pack_tmp, -16)
   20981       535626 :          idata = idata + 1
   20982       535626 :          data_tmp = full_data(idata)
   20983       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20984       535626 :          data_tmp = IAND(data_tmp, mask_left(16))
   20985       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20986       535626 :          ipack = ipack + 1
   20987       535626 :          packed_data(ipack) = pack_tmp
   20988       535626 :          data_tmp = full_data(idata)
   20989       535626 :          pack_tmp = ISHFT(data_tmp, 51)
   20990       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   20991       535626 :          idata = idata + 1
   20992       535626 :          data_tmp = full_data(idata)
   20993       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20994       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   20995       535626 :          pack_tmp = ISHFT(pack_tmp, -22)
   20996       535626 :          idata = idata + 1
   20997       535626 :          data_tmp = full_data(idata)
   20998       535626 :          data_tmp = ISHFT(data_tmp, 35)
   20999       535626 :          data_tmp = IAND(data_tmp, mask_left(22))
   21000       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21001       535626 :          ipack = ipack + 1
   21002       535626 :          packed_data(ipack) = pack_tmp
   21003       535626 :          data_tmp = full_data(idata)
   21004       535626 :          pack_tmp = ISHFT(data_tmp, 57)
   21005       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   21006       535626 :          idata = idata + 1
   21007       535626 :          data_tmp = full_data(idata)
   21008       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21009       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21010       535626 :          pack_tmp = ISHFT(pack_tmp, -28)
   21011       535626 :          idata = idata + 1
   21012       535626 :          data_tmp = full_data(idata)
   21013       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21014       535626 :          data_tmp = IAND(data_tmp, mask_left(28))
   21015       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21016       535626 :          ipack = ipack + 1
   21017       535626 :          packed_data(ipack) = pack_tmp
   21018       535626 :          data_tmp = full_data(idata)
   21019       535626 :          pack_tmp = ISHFT(data_tmp, 63)
   21020       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   21021       535626 :          idata = idata + 1
   21022       535626 :          data_tmp = full_data(idata)
   21023       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21024       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21025       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   21026       535626 :          idata = idata + 1
   21027       535626 :          data_tmp = full_data(idata)
   21028       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21029       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21030       535626 :          pack_tmp = ISHFT(pack_tmp, -5)
   21031       535626 :          idata = idata + 1
   21032       535626 :          data_tmp = full_data(idata)
   21033       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21034       535626 :          data_tmp = IAND(data_tmp, mask_left(5))
   21035       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21036       535626 :          ipack = ipack + 1
   21037       535626 :          packed_data(ipack) = pack_tmp
   21038       535626 :          data_tmp = full_data(idata)
   21039       535626 :          pack_tmp = ISHFT(data_tmp, 40)
   21040       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   21041       535626 :          idata = idata + 1
   21042       535626 :          data_tmp = full_data(idata)
   21043       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21044       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21045       535626 :          pack_tmp = ISHFT(pack_tmp, -11)
   21046       535626 :          idata = idata + 1
   21047       535626 :          data_tmp = full_data(idata)
   21048       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21049       535626 :          data_tmp = IAND(data_tmp, mask_left(11))
   21050       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21051       535626 :          ipack = ipack + 1
   21052       535626 :          packed_data(ipack) = pack_tmp
   21053       535626 :          data_tmp = full_data(idata)
   21054       535626 :          pack_tmp = ISHFT(data_tmp, 46)
   21055       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   21056       535626 :          idata = idata + 1
   21057       535626 :          data_tmp = full_data(idata)
   21058       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21059       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21060       535626 :          pack_tmp = ISHFT(pack_tmp, -17)
   21061       535626 :          idata = idata + 1
   21062       535626 :          data_tmp = full_data(idata)
   21063       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21064       535626 :          data_tmp = IAND(data_tmp, mask_left(17))
   21065       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21066       535626 :          ipack = ipack + 1
   21067       535626 :          packed_data(ipack) = pack_tmp
   21068       535626 :          data_tmp = full_data(idata)
   21069       535626 :          pack_tmp = ISHFT(data_tmp, 52)
   21070       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   21071       535626 :          idata = idata + 1
   21072       535626 :          data_tmp = full_data(idata)
   21073       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21074       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21075       535626 :          pack_tmp = ISHFT(pack_tmp, -23)
   21076       535626 :          idata = idata + 1
   21077       535626 :          data_tmp = full_data(idata)
   21078       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21079       535626 :          data_tmp = IAND(data_tmp, mask_left(23))
   21080       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21081       535626 :          ipack = ipack + 1
   21082       535626 :          packed_data(ipack) = pack_tmp
   21083       535626 :          data_tmp = full_data(idata)
   21084       535626 :          pack_tmp = ISHFT(data_tmp, 58)
   21085       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   21086       535626 :          idata = idata + 1
   21087       535626 :          data_tmp = full_data(idata)
   21088       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21089       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21090       535626 :          pack_tmp = ISHFT(pack_tmp, -29)
   21091       535626 :          idata = idata + 1
   21092       535626 :          data_tmp = full_data(idata)
   21093       535626 :          data_tmp = ISHFT(data_tmp, 35)
   21094       535626 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21095              :          pack_tmp = ISHFT(pack_tmp, 0)
   21096       535626 :          pack_tmp = ISHFT(pack_tmp, 0)
   21097       535626 :          ipack = ipack + 1
   21098       536037 :          packed_data(ipack) = pack_tmp
   21099              :       END DO
   21100        37744 :       IF (Ndata_rep < Ndata) THEN
   21101         7948 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21102              :       END IF
   21103        37744 :    END SUBROUTINE ints2bits_29
   21104              : 
   21105              : ! **************************************************************************************************
   21106              : !> \brief ...
   21107              : !> \param Ndata ...
   21108              : !> \param packed_data ...
   21109              : !> \param full_data ...
   21110              : ! **************************************************************************************************
   21111       182665 :    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       182665 :       ipack = 0
   21122       182665 :       idata = 0
   21123       182665 :       pack_tmp = 0
   21124       182665 :       Ndata_rep = (Ndata/64)*64
   21125       182665 :       DO kdata = 1, Ndata_rep, 64
   21126      2499466 :          idata = idata + 1
   21127      2499466 :          data_tmp = ISHFT(pack_tmp, 29)
   21128      2499466 :          ipack = ipack + 1
   21129      2499466 :          pack_tmp = packed_data(ipack)
   21130      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   21131      2499466 :          pack_tmp = ISHFT(pack_tmp, -29)
   21132      2499466 :          idata = idata + 1
   21133      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21134      2499466 :          full_data(idata) = data_tmp
   21135      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21136      2499466 :          idata = idata + 1
   21137      2499466 :          data_tmp = ISHFT(pack_tmp, 23)
   21138      2499466 :          ipack = ipack + 1
   21139      2499466 :          pack_tmp = packed_data(ipack)
   21140      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   21141      2499466 :          pack_tmp = ISHFT(pack_tmp, -23)
   21142      2499466 :          idata = idata + 1
   21143      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21144      2499466 :          full_data(idata) = data_tmp
   21145      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21146      2499466 :          idata = idata + 1
   21147      2499466 :          data_tmp = ISHFT(pack_tmp, 17)
   21148      2499466 :          ipack = ipack + 1
   21149      2499466 :          pack_tmp = packed_data(ipack)
   21150      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   21151      2499466 :          pack_tmp = ISHFT(pack_tmp, -17)
   21152      2499466 :          idata = idata + 1
   21153      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21154      2499466 :          full_data(idata) = data_tmp
   21155      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21156      2499466 :          idata = idata + 1
   21157      2499466 :          data_tmp = ISHFT(pack_tmp, 11)
   21158      2499466 :          ipack = ipack + 1
   21159      2499466 :          pack_tmp = packed_data(ipack)
   21160      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   21161      2499466 :          pack_tmp = ISHFT(pack_tmp, -11)
   21162      2499466 :          idata = idata + 1
   21163      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21164      2499466 :          full_data(idata) = data_tmp
   21165      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21166      2499466 :          idata = idata + 1
   21167      2499466 :          data_tmp = ISHFT(pack_tmp, 5)
   21168      2499466 :          ipack = ipack + 1
   21169      2499466 :          pack_tmp = packed_data(ipack)
   21170      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   21171      2499466 :          pack_tmp = ISHFT(pack_tmp, -5)
   21172      2499466 :          idata = idata + 1
   21173      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21174      2499466 :          full_data(idata) = data_tmp
   21175      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21176      2499466 :          idata = idata + 1
   21177      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21178      2499466 :          full_data(idata) = data_tmp
   21179      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21180      2499466 :          idata = idata + 1
   21181      2499466 :          data_tmp = ISHFT(pack_tmp, 28)
   21182      2499466 :          ipack = ipack + 1
   21183      2499466 :          pack_tmp = packed_data(ipack)
   21184      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   21185      2499466 :          pack_tmp = ISHFT(pack_tmp, -28)
   21186      2499466 :          idata = idata + 1
   21187      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21188      2499466 :          full_data(idata) = data_tmp
   21189      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21190      2499466 :          idata = idata + 1
   21191      2499466 :          data_tmp = ISHFT(pack_tmp, 22)
   21192      2499466 :          ipack = ipack + 1
   21193      2499466 :          pack_tmp = packed_data(ipack)
   21194      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   21195      2499466 :          pack_tmp = ISHFT(pack_tmp, -22)
   21196      2499466 :          idata = idata + 1
   21197      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21198      2499466 :          full_data(idata) = data_tmp
   21199      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21200      2499466 :          idata = idata + 1
   21201      2499466 :          data_tmp = ISHFT(pack_tmp, 16)
   21202      2499466 :          ipack = ipack + 1
   21203      2499466 :          pack_tmp = packed_data(ipack)
   21204      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   21205      2499466 :          pack_tmp = ISHFT(pack_tmp, -16)
   21206      2499466 :          idata = idata + 1
   21207      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21208      2499466 :          full_data(idata) = data_tmp
   21209      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21210      2499466 :          idata = idata + 1
   21211      2499466 :          data_tmp = ISHFT(pack_tmp, 10)
   21212      2499466 :          ipack = ipack + 1
   21213      2499466 :          pack_tmp = packed_data(ipack)
   21214      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   21215      2499466 :          pack_tmp = ISHFT(pack_tmp, -10)
   21216      2499466 :          idata = idata + 1
   21217      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21218      2499466 :          full_data(idata) = data_tmp
   21219      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21220      2499466 :          idata = idata + 1
   21221      2499466 :          data_tmp = ISHFT(pack_tmp, 4)
   21222      2499466 :          ipack = ipack + 1
   21223      2499466 :          pack_tmp = packed_data(ipack)
   21224      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   21225      2499466 :          pack_tmp = ISHFT(pack_tmp, -4)
   21226      2499466 :          idata = idata + 1
   21227      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21228      2499466 :          full_data(idata) = data_tmp
   21229      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21230      2499466 :          idata = idata + 1
   21231      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21232      2499466 :          full_data(idata) = data_tmp
   21233      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21234      2499466 :          idata = idata + 1
   21235      2499466 :          data_tmp = ISHFT(pack_tmp, 27)
   21236      2499466 :          ipack = ipack + 1
   21237      2499466 :          pack_tmp = packed_data(ipack)
   21238      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   21239      2499466 :          pack_tmp = ISHFT(pack_tmp, -27)
   21240      2499466 :          idata = idata + 1
   21241      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21242      2499466 :          full_data(idata) = data_tmp
   21243      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21244      2499466 :          idata = idata + 1
   21245      2499466 :          data_tmp = ISHFT(pack_tmp, 21)
   21246      2499466 :          ipack = ipack + 1
   21247      2499466 :          pack_tmp = packed_data(ipack)
   21248      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   21249      2499466 :          pack_tmp = ISHFT(pack_tmp, -21)
   21250      2499466 :          idata = idata + 1
   21251      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21252      2499466 :          full_data(idata) = data_tmp
   21253      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21254      2499466 :          idata = idata + 1
   21255      2499466 :          data_tmp = ISHFT(pack_tmp, 15)
   21256      2499466 :          ipack = ipack + 1
   21257      2499466 :          pack_tmp = packed_data(ipack)
   21258      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   21259      2499466 :          pack_tmp = ISHFT(pack_tmp, -15)
   21260      2499466 :          idata = idata + 1
   21261      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21262      2499466 :          full_data(idata) = data_tmp
   21263      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21264      2499466 :          idata = idata + 1
   21265      2499466 :          data_tmp = ISHFT(pack_tmp, 9)
   21266      2499466 :          ipack = ipack + 1
   21267      2499466 :          pack_tmp = packed_data(ipack)
   21268      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   21269      2499466 :          pack_tmp = ISHFT(pack_tmp, -9)
   21270      2499466 :          idata = idata + 1
   21271      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21272      2499466 :          full_data(idata) = data_tmp
   21273      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21274      2499466 :          idata = idata + 1
   21275      2499466 :          data_tmp = ISHFT(pack_tmp, 3)
   21276      2499466 :          ipack = ipack + 1
   21277      2499466 :          pack_tmp = packed_data(ipack)
   21278      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   21279      2499466 :          pack_tmp = ISHFT(pack_tmp, -3)
   21280      2499466 :          idata = idata + 1
   21281      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21282      2499466 :          full_data(idata) = data_tmp
   21283      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21284      2499466 :          idata = idata + 1
   21285      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21286      2499466 :          full_data(idata) = data_tmp
   21287      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21288      2499466 :          idata = idata + 1
   21289      2499466 :          data_tmp = ISHFT(pack_tmp, 26)
   21290      2499466 :          ipack = ipack + 1
   21291      2499466 :          pack_tmp = packed_data(ipack)
   21292      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   21293      2499466 :          pack_tmp = ISHFT(pack_tmp, -26)
   21294      2499466 :          idata = idata + 1
   21295      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21296      2499466 :          full_data(idata) = data_tmp
   21297      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21298      2499466 :          idata = idata + 1
   21299      2499466 :          data_tmp = ISHFT(pack_tmp, 20)
   21300      2499466 :          ipack = ipack + 1
   21301      2499466 :          pack_tmp = packed_data(ipack)
   21302      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   21303      2499466 :          pack_tmp = ISHFT(pack_tmp, -20)
   21304      2499466 :          idata = idata + 1
   21305      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21306      2499466 :          full_data(idata) = data_tmp
   21307      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21308      2499466 :          idata = idata + 1
   21309      2499466 :          data_tmp = ISHFT(pack_tmp, 14)
   21310      2499466 :          ipack = ipack + 1
   21311      2499466 :          pack_tmp = packed_data(ipack)
   21312      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   21313      2499466 :          pack_tmp = ISHFT(pack_tmp, -14)
   21314      2499466 :          idata = idata + 1
   21315      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21316      2499466 :          full_data(idata) = data_tmp
   21317      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21318      2499466 :          idata = idata + 1
   21319      2499466 :          data_tmp = ISHFT(pack_tmp, 8)
   21320      2499466 :          ipack = ipack + 1
   21321      2499466 :          pack_tmp = packed_data(ipack)
   21322      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   21323      2499466 :          pack_tmp = ISHFT(pack_tmp, -8)
   21324      2499466 :          idata = idata + 1
   21325      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21326      2499466 :          full_data(idata) = data_tmp
   21327      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21328      2499466 :          idata = idata + 1
   21329      2499466 :          data_tmp = ISHFT(pack_tmp, 2)
   21330      2499466 :          ipack = ipack + 1
   21331      2499466 :          pack_tmp = packed_data(ipack)
   21332      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   21333      2499466 :          pack_tmp = ISHFT(pack_tmp, -2)
   21334      2499466 :          idata = idata + 1
   21335      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21336      2499466 :          full_data(idata) = data_tmp
   21337      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21338      2499466 :          idata = idata + 1
   21339      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21340      2499466 :          full_data(idata) = data_tmp
   21341      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21342      2499466 :          idata = idata + 1
   21343      2499466 :          data_tmp = ISHFT(pack_tmp, 25)
   21344      2499466 :          ipack = ipack + 1
   21345      2499466 :          pack_tmp = packed_data(ipack)
   21346      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   21347      2499466 :          pack_tmp = ISHFT(pack_tmp, -25)
   21348      2499466 :          idata = idata + 1
   21349      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21350      2499466 :          full_data(idata) = data_tmp
   21351      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21352      2499466 :          idata = idata + 1
   21353      2499466 :          data_tmp = ISHFT(pack_tmp, 19)
   21354      2499466 :          ipack = ipack + 1
   21355      2499466 :          pack_tmp = packed_data(ipack)
   21356      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   21357      2499466 :          pack_tmp = ISHFT(pack_tmp, -19)
   21358      2499466 :          idata = idata + 1
   21359      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21360      2499466 :          full_data(idata) = data_tmp
   21361      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21362      2499466 :          idata = idata + 1
   21363      2499466 :          data_tmp = ISHFT(pack_tmp, 13)
   21364      2499466 :          ipack = ipack + 1
   21365      2499466 :          pack_tmp = packed_data(ipack)
   21366      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   21367      2499466 :          pack_tmp = ISHFT(pack_tmp, -13)
   21368      2499466 :          idata = idata + 1
   21369      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21370      2499466 :          full_data(idata) = data_tmp
   21371      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21372      2499466 :          idata = idata + 1
   21373      2499466 :          data_tmp = ISHFT(pack_tmp, 7)
   21374      2499466 :          ipack = ipack + 1
   21375      2499466 :          pack_tmp = packed_data(ipack)
   21376      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   21377      2499466 :          pack_tmp = ISHFT(pack_tmp, -7)
   21378      2499466 :          idata = idata + 1
   21379      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21380      2499466 :          full_data(idata) = data_tmp
   21381      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21382      2499466 :          idata = idata + 1
   21383      2499466 :          data_tmp = ISHFT(pack_tmp, 1)
   21384      2499466 :          ipack = ipack + 1
   21385      2499466 :          pack_tmp = packed_data(ipack)
   21386      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   21387      2499466 :          pack_tmp = ISHFT(pack_tmp, -1)
   21388      2499466 :          idata = idata + 1
   21389      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21390      2499466 :          full_data(idata) = data_tmp
   21391      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21392      2499466 :          idata = idata + 1
   21393      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21394      2499466 :          full_data(idata) = data_tmp
   21395      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21396      2499466 :          idata = idata + 1
   21397      2499466 :          data_tmp = ISHFT(pack_tmp, 24)
   21398      2499466 :          ipack = ipack + 1
   21399      2499466 :          pack_tmp = packed_data(ipack)
   21400      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   21401      2499466 :          pack_tmp = ISHFT(pack_tmp, -24)
   21402      2499466 :          idata = idata + 1
   21403      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21404      2499466 :          full_data(idata) = data_tmp
   21405      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21406      2499466 :          idata = idata + 1
   21407      2499466 :          data_tmp = ISHFT(pack_tmp, 18)
   21408      2499466 :          ipack = ipack + 1
   21409      2499466 :          pack_tmp = packed_data(ipack)
   21410      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   21411      2499466 :          pack_tmp = ISHFT(pack_tmp, -18)
   21412      2499466 :          idata = idata + 1
   21413      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21414      2499466 :          full_data(idata) = data_tmp
   21415      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21416      2499466 :          idata = idata + 1
   21417      2499466 :          data_tmp = ISHFT(pack_tmp, 12)
   21418      2499466 :          ipack = ipack + 1
   21419      2499466 :          pack_tmp = packed_data(ipack)
   21420      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   21421      2499466 :          pack_tmp = ISHFT(pack_tmp, -12)
   21422      2499466 :          idata = idata + 1
   21423      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21424      2499466 :          full_data(idata) = data_tmp
   21425      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21426      2499466 :          idata = idata + 1
   21427      2499466 :          data_tmp = ISHFT(pack_tmp, 6)
   21428      2499466 :          ipack = ipack + 1
   21429      2499466 :          pack_tmp = packed_data(ipack)
   21430      2499466 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   21431      2499466 :          pack_tmp = ISHFT(pack_tmp, -6)
   21432      2499466 :          idata = idata + 1
   21433      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21434      2499466 :          full_data(idata) = data_tmp
   21435      2499466 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21436      2499466 :          idata = idata + 1
   21437      2499466 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21438      2499466 :          full_data(idata) = data_tmp
   21439      2501977 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21440              :       END DO
   21441       182665 :       IF (Ndata_rep < Ndata) THEN
   21442        49004 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21443              :       END IF
   21444       182665 :    END SUBROUTINE bits2ints_29
   21445              : 
   21446              : ! **************************************************************************************************
   21447              : !> \brief ...
   21448              : !> \param Ndata ...
   21449              : !> \param packed_data ...
   21450              : !> \param full_data ...
   21451              : ! **************************************************************************************************
   21452        45259 :    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        45259 :       idata = 0
   21463        45259 :       ipack = 0
   21464        45259 :       Ndata_rep = (Ndata/64)*64
   21465        45259 :       DO kdata = 1, Ndata_rep, 64
   21466       613236 :          pack_tmp = 0
   21467       613236 :          idata = idata + 1
   21468       613236 :          data_tmp = full_data(idata)
   21469       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21470       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21471       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21472       613236 :          idata = idata + 1
   21473       613236 :          data_tmp = full_data(idata)
   21474       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21475       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21476       613236 :          pack_tmp = ISHFT(pack_tmp, -4)
   21477       613236 :          idata = idata + 1
   21478       613236 :          data_tmp = full_data(idata)
   21479       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21480       613236 :          data_tmp = IAND(data_tmp, mask_left(4))
   21481       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21482       613236 :          ipack = ipack + 1
   21483       613236 :          packed_data(ipack) = pack_tmp
   21484       613236 :          data_tmp = full_data(idata)
   21485       613236 :          pack_tmp = ISHFT(data_tmp, 38)
   21486       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21487       613236 :          idata = idata + 1
   21488       613236 :          data_tmp = full_data(idata)
   21489       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21490       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21491       613236 :          pack_tmp = ISHFT(pack_tmp, -8)
   21492       613236 :          idata = idata + 1
   21493       613236 :          data_tmp = full_data(idata)
   21494       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21495       613236 :          data_tmp = IAND(data_tmp, mask_left(8))
   21496       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21497       613236 :          ipack = ipack + 1
   21498       613236 :          packed_data(ipack) = pack_tmp
   21499       613236 :          data_tmp = full_data(idata)
   21500       613236 :          pack_tmp = ISHFT(data_tmp, 42)
   21501       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21502       613236 :          idata = idata + 1
   21503       613236 :          data_tmp = full_data(idata)
   21504       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21505       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21506       613236 :          pack_tmp = ISHFT(pack_tmp, -12)
   21507       613236 :          idata = idata + 1
   21508       613236 :          data_tmp = full_data(idata)
   21509       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21510       613236 :          data_tmp = IAND(data_tmp, mask_left(12))
   21511       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21512       613236 :          ipack = ipack + 1
   21513       613236 :          packed_data(ipack) = pack_tmp
   21514       613236 :          data_tmp = full_data(idata)
   21515       613236 :          pack_tmp = ISHFT(data_tmp, 46)
   21516       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21517       613236 :          idata = idata + 1
   21518       613236 :          data_tmp = full_data(idata)
   21519       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21520       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21521       613236 :          pack_tmp = ISHFT(pack_tmp, -16)
   21522       613236 :          idata = idata + 1
   21523       613236 :          data_tmp = full_data(idata)
   21524       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21525       613236 :          data_tmp = IAND(data_tmp, mask_left(16))
   21526       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21527       613236 :          ipack = ipack + 1
   21528       613236 :          packed_data(ipack) = pack_tmp
   21529       613236 :          data_tmp = full_data(idata)
   21530       613236 :          pack_tmp = ISHFT(data_tmp, 50)
   21531       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21532       613236 :          idata = idata + 1
   21533       613236 :          data_tmp = full_data(idata)
   21534       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21535       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21536       613236 :          pack_tmp = ISHFT(pack_tmp, -20)
   21537       613236 :          idata = idata + 1
   21538       613236 :          data_tmp = full_data(idata)
   21539       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21540       613236 :          data_tmp = IAND(data_tmp, mask_left(20))
   21541       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21542       613236 :          ipack = ipack + 1
   21543       613236 :          packed_data(ipack) = pack_tmp
   21544       613236 :          data_tmp = full_data(idata)
   21545       613236 :          pack_tmp = ISHFT(data_tmp, 54)
   21546       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21547       613236 :          idata = idata + 1
   21548       613236 :          data_tmp = full_data(idata)
   21549       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21550       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21551       613236 :          pack_tmp = ISHFT(pack_tmp, -24)
   21552       613236 :          idata = idata + 1
   21553       613236 :          data_tmp = full_data(idata)
   21554       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21555       613236 :          data_tmp = IAND(data_tmp, mask_left(24))
   21556       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21557       613236 :          ipack = ipack + 1
   21558       613236 :          packed_data(ipack) = pack_tmp
   21559       613236 :          data_tmp = full_data(idata)
   21560       613236 :          pack_tmp = ISHFT(data_tmp, 58)
   21561       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21562       613236 :          idata = idata + 1
   21563       613236 :          data_tmp = full_data(idata)
   21564       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21565       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21566       613236 :          pack_tmp = ISHFT(pack_tmp, -28)
   21567       613236 :          idata = idata + 1
   21568       613236 :          data_tmp = full_data(idata)
   21569       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21570       613236 :          data_tmp = IAND(data_tmp, mask_left(28))
   21571       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21572       613236 :          ipack = ipack + 1
   21573       613236 :          packed_data(ipack) = pack_tmp
   21574       613236 :          data_tmp = full_data(idata)
   21575       613236 :          pack_tmp = ISHFT(data_tmp, 62)
   21576       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21577       613236 :          idata = idata + 1
   21578       613236 :          data_tmp = full_data(idata)
   21579       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21580       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21581       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21582       613236 :          idata = idata + 1
   21583       613236 :          data_tmp = full_data(idata)
   21584       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21585       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21586       613236 :          pack_tmp = ISHFT(pack_tmp, -2)
   21587       613236 :          idata = idata + 1
   21588       613236 :          data_tmp = full_data(idata)
   21589       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21590       613236 :          data_tmp = IAND(data_tmp, mask_left(2))
   21591       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21592       613236 :          ipack = ipack + 1
   21593       613236 :          packed_data(ipack) = pack_tmp
   21594       613236 :          data_tmp = full_data(idata)
   21595       613236 :          pack_tmp = ISHFT(data_tmp, 36)
   21596       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21597       613236 :          idata = idata + 1
   21598       613236 :          data_tmp = full_data(idata)
   21599       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21600       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21601       613236 :          pack_tmp = ISHFT(pack_tmp, -6)
   21602       613236 :          idata = idata + 1
   21603       613236 :          data_tmp = full_data(idata)
   21604       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21605       613236 :          data_tmp = IAND(data_tmp, mask_left(6))
   21606       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21607       613236 :          ipack = ipack + 1
   21608       613236 :          packed_data(ipack) = pack_tmp
   21609       613236 :          data_tmp = full_data(idata)
   21610       613236 :          pack_tmp = ISHFT(data_tmp, 40)
   21611       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21612       613236 :          idata = idata + 1
   21613       613236 :          data_tmp = full_data(idata)
   21614       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21615       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21616       613236 :          pack_tmp = ISHFT(pack_tmp, -10)
   21617       613236 :          idata = idata + 1
   21618       613236 :          data_tmp = full_data(idata)
   21619       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21620       613236 :          data_tmp = IAND(data_tmp, mask_left(10))
   21621       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21622       613236 :          ipack = ipack + 1
   21623       613236 :          packed_data(ipack) = pack_tmp
   21624       613236 :          data_tmp = full_data(idata)
   21625       613236 :          pack_tmp = ISHFT(data_tmp, 44)
   21626       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21627       613236 :          idata = idata + 1
   21628       613236 :          data_tmp = full_data(idata)
   21629       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21630       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21631       613236 :          pack_tmp = ISHFT(pack_tmp, -14)
   21632       613236 :          idata = idata + 1
   21633       613236 :          data_tmp = full_data(idata)
   21634       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21635       613236 :          data_tmp = IAND(data_tmp, mask_left(14))
   21636       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21637       613236 :          ipack = ipack + 1
   21638       613236 :          packed_data(ipack) = pack_tmp
   21639       613236 :          data_tmp = full_data(idata)
   21640       613236 :          pack_tmp = ISHFT(data_tmp, 48)
   21641       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21642       613236 :          idata = idata + 1
   21643       613236 :          data_tmp = full_data(idata)
   21644       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21645       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21646       613236 :          pack_tmp = ISHFT(pack_tmp, -18)
   21647       613236 :          idata = idata + 1
   21648       613236 :          data_tmp = full_data(idata)
   21649       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21650       613236 :          data_tmp = IAND(data_tmp, mask_left(18))
   21651       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21652       613236 :          ipack = ipack + 1
   21653       613236 :          packed_data(ipack) = pack_tmp
   21654       613236 :          data_tmp = full_data(idata)
   21655       613236 :          pack_tmp = ISHFT(data_tmp, 52)
   21656       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21657       613236 :          idata = idata + 1
   21658       613236 :          data_tmp = full_data(idata)
   21659       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21660       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21661       613236 :          pack_tmp = ISHFT(pack_tmp, -22)
   21662       613236 :          idata = idata + 1
   21663       613236 :          data_tmp = full_data(idata)
   21664       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21665       613236 :          data_tmp = IAND(data_tmp, mask_left(22))
   21666       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21667       613236 :          ipack = ipack + 1
   21668       613236 :          packed_data(ipack) = pack_tmp
   21669       613236 :          data_tmp = full_data(idata)
   21670       613236 :          pack_tmp = ISHFT(data_tmp, 56)
   21671       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21672       613236 :          idata = idata + 1
   21673       613236 :          data_tmp = full_data(idata)
   21674       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21675       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21676       613236 :          pack_tmp = ISHFT(pack_tmp, -26)
   21677       613236 :          idata = idata + 1
   21678       613236 :          data_tmp = full_data(idata)
   21679       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21680       613236 :          data_tmp = IAND(data_tmp, mask_left(26))
   21681       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21682       613236 :          ipack = ipack + 1
   21683       613236 :          packed_data(ipack) = pack_tmp
   21684       613236 :          data_tmp = full_data(idata)
   21685       613236 :          pack_tmp = ISHFT(data_tmp, 60)
   21686       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21687       613236 :          idata = idata + 1
   21688       613236 :          data_tmp = full_data(idata)
   21689       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21690       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21691       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21692       613236 :          idata = idata + 1
   21693       613236 :          data_tmp = full_data(idata)
   21694       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21695       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21696       613236 :          pack_tmp = ISHFT(pack_tmp, 0)
   21697       613236 :          idata = idata + 1
   21698       613236 :          data_tmp = full_data(idata)
   21699              :          data_tmp = ISHFT(data_tmp, 34)
   21700       613236 :          data_tmp = IAND(data_tmp, mask_left(0))
   21701       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21702       613236 :          ipack = ipack + 1
   21703       613236 :          packed_data(ipack) = pack_tmp
   21704       613236 :          data_tmp = full_data(idata)
   21705       613236 :          pack_tmp = ISHFT(data_tmp, 34)
   21706       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21707       613236 :          idata = idata + 1
   21708       613236 :          data_tmp = full_data(idata)
   21709       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21710       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21711       613236 :          pack_tmp = ISHFT(pack_tmp, -4)
   21712       613236 :          idata = idata + 1
   21713       613236 :          data_tmp = full_data(idata)
   21714       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21715       613236 :          data_tmp = IAND(data_tmp, mask_left(4))
   21716       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21717       613236 :          ipack = ipack + 1
   21718       613236 :          packed_data(ipack) = pack_tmp
   21719       613236 :          data_tmp = full_data(idata)
   21720       613236 :          pack_tmp = ISHFT(data_tmp, 38)
   21721       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21722       613236 :          idata = idata + 1
   21723       613236 :          data_tmp = full_data(idata)
   21724       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21725       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21726       613236 :          pack_tmp = ISHFT(pack_tmp, -8)
   21727       613236 :          idata = idata + 1
   21728       613236 :          data_tmp = full_data(idata)
   21729       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21730       613236 :          data_tmp = IAND(data_tmp, mask_left(8))
   21731       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21732       613236 :          ipack = ipack + 1
   21733       613236 :          packed_data(ipack) = pack_tmp
   21734       613236 :          data_tmp = full_data(idata)
   21735       613236 :          pack_tmp = ISHFT(data_tmp, 42)
   21736       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21737       613236 :          idata = idata + 1
   21738       613236 :          data_tmp = full_data(idata)
   21739       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21740       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21741       613236 :          pack_tmp = ISHFT(pack_tmp, -12)
   21742       613236 :          idata = idata + 1
   21743       613236 :          data_tmp = full_data(idata)
   21744       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21745       613236 :          data_tmp = IAND(data_tmp, mask_left(12))
   21746       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21747       613236 :          ipack = ipack + 1
   21748       613236 :          packed_data(ipack) = pack_tmp
   21749       613236 :          data_tmp = full_data(idata)
   21750       613236 :          pack_tmp = ISHFT(data_tmp, 46)
   21751       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21752       613236 :          idata = idata + 1
   21753       613236 :          data_tmp = full_data(idata)
   21754       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21755       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21756       613236 :          pack_tmp = ISHFT(pack_tmp, -16)
   21757       613236 :          idata = idata + 1
   21758       613236 :          data_tmp = full_data(idata)
   21759       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21760       613236 :          data_tmp = IAND(data_tmp, mask_left(16))
   21761       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21762       613236 :          ipack = ipack + 1
   21763       613236 :          packed_data(ipack) = pack_tmp
   21764       613236 :          data_tmp = full_data(idata)
   21765       613236 :          pack_tmp = ISHFT(data_tmp, 50)
   21766       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21767       613236 :          idata = idata + 1
   21768       613236 :          data_tmp = full_data(idata)
   21769       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21770       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21771       613236 :          pack_tmp = ISHFT(pack_tmp, -20)
   21772       613236 :          idata = idata + 1
   21773       613236 :          data_tmp = full_data(idata)
   21774       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21775       613236 :          data_tmp = IAND(data_tmp, mask_left(20))
   21776       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21777       613236 :          ipack = ipack + 1
   21778       613236 :          packed_data(ipack) = pack_tmp
   21779       613236 :          data_tmp = full_data(idata)
   21780       613236 :          pack_tmp = ISHFT(data_tmp, 54)
   21781       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21782       613236 :          idata = idata + 1
   21783       613236 :          data_tmp = full_data(idata)
   21784       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21785       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21786       613236 :          pack_tmp = ISHFT(pack_tmp, -24)
   21787       613236 :          idata = idata + 1
   21788       613236 :          data_tmp = full_data(idata)
   21789       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21790       613236 :          data_tmp = IAND(data_tmp, mask_left(24))
   21791       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21792       613236 :          ipack = ipack + 1
   21793       613236 :          packed_data(ipack) = pack_tmp
   21794       613236 :          data_tmp = full_data(idata)
   21795       613236 :          pack_tmp = ISHFT(data_tmp, 58)
   21796       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21797       613236 :          idata = idata + 1
   21798       613236 :          data_tmp = full_data(idata)
   21799       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21800       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21801       613236 :          pack_tmp = ISHFT(pack_tmp, -28)
   21802       613236 :          idata = idata + 1
   21803       613236 :          data_tmp = full_data(idata)
   21804       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21805       613236 :          data_tmp = IAND(data_tmp, mask_left(28))
   21806       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21807       613236 :          ipack = ipack + 1
   21808       613236 :          packed_data(ipack) = pack_tmp
   21809       613236 :          data_tmp = full_data(idata)
   21810       613236 :          pack_tmp = ISHFT(data_tmp, 62)
   21811       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21812       613236 :          idata = idata + 1
   21813       613236 :          data_tmp = full_data(idata)
   21814       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21815       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21816       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21817       613236 :          idata = idata + 1
   21818       613236 :          data_tmp = full_data(idata)
   21819       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21820       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21821       613236 :          pack_tmp = ISHFT(pack_tmp, -2)
   21822       613236 :          idata = idata + 1
   21823       613236 :          data_tmp = full_data(idata)
   21824       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21825       613236 :          data_tmp = IAND(data_tmp, mask_left(2))
   21826       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21827       613236 :          ipack = ipack + 1
   21828       613236 :          packed_data(ipack) = pack_tmp
   21829       613236 :          data_tmp = full_data(idata)
   21830       613236 :          pack_tmp = ISHFT(data_tmp, 36)
   21831       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21832       613236 :          idata = idata + 1
   21833       613236 :          data_tmp = full_data(idata)
   21834       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21835       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21836       613236 :          pack_tmp = ISHFT(pack_tmp, -6)
   21837       613236 :          idata = idata + 1
   21838       613236 :          data_tmp = full_data(idata)
   21839       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21840       613236 :          data_tmp = IAND(data_tmp, mask_left(6))
   21841       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21842       613236 :          ipack = ipack + 1
   21843       613236 :          packed_data(ipack) = pack_tmp
   21844       613236 :          data_tmp = full_data(idata)
   21845       613236 :          pack_tmp = ISHFT(data_tmp, 40)
   21846       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21847       613236 :          idata = idata + 1
   21848       613236 :          data_tmp = full_data(idata)
   21849       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21850       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21851       613236 :          pack_tmp = ISHFT(pack_tmp, -10)
   21852       613236 :          idata = idata + 1
   21853       613236 :          data_tmp = full_data(idata)
   21854       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21855       613236 :          data_tmp = IAND(data_tmp, mask_left(10))
   21856       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21857       613236 :          ipack = ipack + 1
   21858       613236 :          packed_data(ipack) = pack_tmp
   21859       613236 :          data_tmp = full_data(idata)
   21860       613236 :          pack_tmp = ISHFT(data_tmp, 44)
   21861       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21862       613236 :          idata = idata + 1
   21863       613236 :          data_tmp = full_data(idata)
   21864       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21865       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21866       613236 :          pack_tmp = ISHFT(pack_tmp, -14)
   21867       613236 :          idata = idata + 1
   21868       613236 :          data_tmp = full_data(idata)
   21869       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21870       613236 :          data_tmp = IAND(data_tmp, mask_left(14))
   21871       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21872       613236 :          ipack = ipack + 1
   21873       613236 :          packed_data(ipack) = pack_tmp
   21874       613236 :          data_tmp = full_data(idata)
   21875       613236 :          pack_tmp = ISHFT(data_tmp, 48)
   21876       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21877       613236 :          idata = idata + 1
   21878       613236 :          data_tmp = full_data(idata)
   21879       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21880       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21881       613236 :          pack_tmp = ISHFT(pack_tmp, -18)
   21882       613236 :          idata = idata + 1
   21883       613236 :          data_tmp = full_data(idata)
   21884       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21885       613236 :          data_tmp = IAND(data_tmp, mask_left(18))
   21886       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21887       613236 :          ipack = ipack + 1
   21888       613236 :          packed_data(ipack) = pack_tmp
   21889       613236 :          data_tmp = full_data(idata)
   21890       613236 :          pack_tmp = ISHFT(data_tmp, 52)
   21891       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21892       613236 :          idata = idata + 1
   21893       613236 :          data_tmp = full_data(idata)
   21894       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21895       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21896       613236 :          pack_tmp = ISHFT(pack_tmp, -22)
   21897       613236 :          idata = idata + 1
   21898       613236 :          data_tmp = full_data(idata)
   21899       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21900       613236 :          data_tmp = IAND(data_tmp, mask_left(22))
   21901       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21902       613236 :          ipack = ipack + 1
   21903       613236 :          packed_data(ipack) = pack_tmp
   21904       613236 :          data_tmp = full_data(idata)
   21905       613236 :          pack_tmp = ISHFT(data_tmp, 56)
   21906       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21907       613236 :          idata = idata + 1
   21908       613236 :          data_tmp = full_data(idata)
   21909       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21910       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21911       613236 :          pack_tmp = ISHFT(pack_tmp, -26)
   21912       613236 :          idata = idata + 1
   21913       613236 :          data_tmp = full_data(idata)
   21914       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21915       613236 :          data_tmp = IAND(data_tmp, mask_left(26))
   21916       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21917       613236 :          ipack = ipack + 1
   21918       613236 :          packed_data(ipack) = pack_tmp
   21919       613236 :          data_tmp = full_data(idata)
   21920       613236 :          pack_tmp = ISHFT(data_tmp, 60)
   21921       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21922       613236 :          idata = idata + 1
   21923       613236 :          data_tmp = full_data(idata)
   21924       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21925       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21926       613236 :          pack_tmp = ISHFT(pack_tmp, -30)
   21927       613236 :          idata = idata + 1
   21928       613236 :          data_tmp = full_data(idata)
   21929       613236 :          data_tmp = ISHFT(data_tmp, 34)
   21930       613236 :          pack_tmp = IOR(pack_tmp, data_tmp)
   21931              :          pack_tmp = ISHFT(pack_tmp, 0)
   21932       613236 :          pack_tmp = ISHFT(pack_tmp, 0)
   21933       613236 :          ipack = ipack + 1
   21934       613511 :          packed_data(ipack) = pack_tmp
   21935              :       END DO
   21936        45259 :       IF (Ndata_rep < Ndata) THEN
   21937        13048 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   21938              :       END IF
   21939        45259 :    END SUBROUTINE ints2bits_30
   21940              : 
   21941              : ! **************************************************************************************************
   21942              : !> \brief ...
   21943              : !> \param Ndata ...
   21944              : !> \param packed_data ...
   21945              : !> \param full_data ...
   21946              : ! **************************************************************************************************
   21947       237740 :    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       237740 :       ipack = 0
   21958       237740 :       idata = 0
   21959       237740 :       pack_tmp = 0
   21960       237740 :       Ndata_rep = (Ndata/64)*64
   21961       237740 :       DO kdata = 1, Ndata_rep, 64
   21962      3068760 :          idata = idata + 1
   21963      3068760 :          data_tmp = ISHFT(pack_tmp, 30)
   21964      3068760 :          ipack = ipack + 1
   21965      3068760 :          pack_tmp = packed_data(ipack)
   21966      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   21967      3068760 :          pack_tmp = ISHFT(pack_tmp, -30)
   21968      3068760 :          idata = idata + 1
   21969      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21970      3068760 :          full_data(idata) = data_tmp
   21971      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21972      3068760 :          idata = idata + 1
   21973      3068760 :          data_tmp = ISHFT(pack_tmp, 26)
   21974      3068760 :          ipack = ipack + 1
   21975      3068760 :          pack_tmp = packed_data(ipack)
   21976      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   21977      3068760 :          pack_tmp = ISHFT(pack_tmp, -26)
   21978      3068760 :          idata = idata + 1
   21979      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21980      3068760 :          full_data(idata) = data_tmp
   21981      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21982      3068760 :          idata = idata + 1
   21983      3068760 :          data_tmp = ISHFT(pack_tmp, 22)
   21984      3068760 :          ipack = ipack + 1
   21985      3068760 :          pack_tmp = packed_data(ipack)
   21986      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   21987      3068760 :          pack_tmp = ISHFT(pack_tmp, -22)
   21988      3068760 :          idata = idata + 1
   21989      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   21990      3068760 :          full_data(idata) = data_tmp
   21991      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   21992      3068760 :          idata = idata + 1
   21993      3068760 :          data_tmp = ISHFT(pack_tmp, 18)
   21994      3068760 :          ipack = ipack + 1
   21995      3068760 :          pack_tmp = packed_data(ipack)
   21996      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   21997      3068760 :          pack_tmp = ISHFT(pack_tmp, -18)
   21998      3068760 :          idata = idata + 1
   21999      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22000      3068760 :          full_data(idata) = data_tmp
   22001      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22002      3068760 :          idata = idata + 1
   22003      3068760 :          data_tmp = ISHFT(pack_tmp, 14)
   22004      3068760 :          ipack = ipack + 1
   22005      3068760 :          pack_tmp = packed_data(ipack)
   22006      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   22007      3068760 :          pack_tmp = ISHFT(pack_tmp, -14)
   22008      3068760 :          idata = idata + 1
   22009      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22010      3068760 :          full_data(idata) = data_tmp
   22011      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22012      3068760 :          idata = idata + 1
   22013      3068760 :          data_tmp = ISHFT(pack_tmp, 10)
   22014      3068760 :          ipack = ipack + 1
   22015      3068760 :          pack_tmp = packed_data(ipack)
   22016      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   22017      3068760 :          pack_tmp = ISHFT(pack_tmp, -10)
   22018      3068760 :          idata = idata + 1
   22019      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22020      3068760 :          full_data(idata) = data_tmp
   22021      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22022      3068760 :          idata = idata + 1
   22023      3068760 :          data_tmp = ISHFT(pack_tmp, 6)
   22024      3068760 :          ipack = ipack + 1
   22025      3068760 :          pack_tmp = packed_data(ipack)
   22026      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   22027      3068760 :          pack_tmp = ISHFT(pack_tmp, -6)
   22028      3068760 :          idata = idata + 1
   22029      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22030      3068760 :          full_data(idata) = data_tmp
   22031      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22032      3068760 :          idata = idata + 1
   22033      3068760 :          data_tmp = ISHFT(pack_tmp, 2)
   22034      3068760 :          ipack = ipack + 1
   22035      3068760 :          pack_tmp = packed_data(ipack)
   22036      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   22037      3068760 :          pack_tmp = ISHFT(pack_tmp, -2)
   22038      3068760 :          idata = idata + 1
   22039      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22040      3068760 :          full_data(idata) = data_tmp
   22041      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22042      3068760 :          idata = idata + 1
   22043      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22044      3068760 :          full_data(idata) = data_tmp
   22045      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22046      3068760 :          idata = idata + 1
   22047      3068760 :          data_tmp = ISHFT(pack_tmp, 28)
   22048      3068760 :          ipack = ipack + 1
   22049      3068760 :          pack_tmp = packed_data(ipack)
   22050      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22051      3068760 :          pack_tmp = ISHFT(pack_tmp, -28)
   22052      3068760 :          idata = idata + 1
   22053      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22054      3068760 :          full_data(idata) = data_tmp
   22055      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22056      3068760 :          idata = idata + 1
   22057      3068760 :          data_tmp = ISHFT(pack_tmp, 24)
   22058      3068760 :          ipack = ipack + 1
   22059      3068760 :          pack_tmp = packed_data(ipack)
   22060      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   22061      3068760 :          pack_tmp = ISHFT(pack_tmp, -24)
   22062      3068760 :          idata = idata + 1
   22063      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22064      3068760 :          full_data(idata) = data_tmp
   22065      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22066      3068760 :          idata = idata + 1
   22067      3068760 :          data_tmp = ISHFT(pack_tmp, 20)
   22068      3068760 :          ipack = ipack + 1
   22069      3068760 :          pack_tmp = packed_data(ipack)
   22070      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   22071      3068760 :          pack_tmp = ISHFT(pack_tmp, -20)
   22072      3068760 :          idata = idata + 1
   22073      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22074      3068760 :          full_data(idata) = data_tmp
   22075      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22076      3068760 :          idata = idata + 1
   22077      3068760 :          data_tmp = ISHFT(pack_tmp, 16)
   22078      3068760 :          ipack = ipack + 1
   22079      3068760 :          pack_tmp = packed_data(ipack)
   22080      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   22081      3068760 :          pack_tmp = ISHFT(pack_tmp, -16)
   22082      3068760 :          idata = idata + 1
   22083      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22084      3068760 :          full_data(idata) = data_tmp
   22085      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22086      3068760 :          idata = idata + 1
   22087      3068760 :          data_tmp = ISHFT(pack_tmp, 12)
   22088      3068760 :          ipack = ipack + 1
   22089      3068760 :          pack_tmp = packed_data(ipack)
   22090      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   22091      3068760 :          pack_tmp = ISHFT(pack_tmp, -12)
   22092      3068760 :          idata = idata + 1
   22093      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22094      3068760 :          full_data(idata) = data_tmp
   22095      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22096      3068760 :          idata = idata + 1
   22097      3068760 :          data_tmp = ISHFT(pack_tmp, 8)
   22098      3068760 :          ipack = ipack + 1
   22099      3068760 :          pack_tmp = packed_data(ipack)
   22100      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   22101      3068760 :          pack_tmp = ISHFT(pack_tmp, -8)
   22102      3068760 :          idata = idata + 1
   22103      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22104      3068760 :          full_data(idata) = data_tmp
   22105      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22106      3068760 :          idata = idata + 1
   22107      3068760 :          data_tmp = ISHFT(pack_tmp, 4)
   22108      3068760 :          ipack = ipack + 1
   22109      3068760 :          pack_tmp = packed_data(ipack)
   22110      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   22111      3068760 :          pack_tmp = ISHFT(pack_tmp, -4)
   22112      3068760 :          idata = idata + 1
   22113      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22114      3068760 :          full_data(idata) = data_tmp
   22115      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22116      3068760 :          idata = idata + 1
   22117      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22118      3068760 :          full_data(idata) = data_tmp
   22119      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22120      3068760 :          idata = idata + 1
   22121      3068760 :          data_tmp = ISHFT(pack_tmp, 30)
   22122      3068760 :          ipack = ipack + 1
   22123      3068760 :          pack_tmp = packed_data(ipack)
   22124      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   22125      3068760 :          pack_tmp = ISHFT(pack_tmp, -30)
   22126      3068760 :          idata = idata + 1
   22127      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22128      3068760 :          full_data(idata) = data_tmp
   22129      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22130      3068760 :          idata = idata + 1
   22131      3068760 :          data_tmp = ISHFT(pack_tmp, 26)
   22132      3068760 :          ipack = ipack + 1
   22133      3068760 :          pack_tmp = packed_data(ipack)
   22134      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   22135      3068760 :          pack_tmp = ISHFT(pack_tmp, -26)
   22136      3068760 :          idata = idata + 1
   22137      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22138      3068760 :          full_data(idata) = data_tmp
   22139      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22140      3068760 :          idata = idata + 1
   22141      3068760 :          data_tmp = ISHFT(pack_tmp, 22)
   22142      3068760 :          ipack = ipack + 1
   22143      3068760 :          pack_tmp = packed_data(ipack)
   22144      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   22145      3068760 :          pack_tmp = ISHFT(pack_tmp, -22)
   22146      3068760 :          idata = idata + 1
   22147      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22148      3068760 :          full_data(idata) = data_tmp
   22149      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22150      3068760 :          idata = idata + 1
   22151      3068760 :          data_tmp = ISHFT(pack_tmp, 18)
   22152      3068760 :          ipack = ipack + 1
   22153      3068760 :          pack_tmp = packed_data(ipack)
   22154      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   22155      3068760 :          pack_tmp = ISHFT(pack_tmp, -18)
   22156      3068760 :          idata = idata + 1
   22157      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22158      3068760 :          full_data(idata) = data_tmp
   22159      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22160      3068760 :          idata = idata + 1
   22161      3068760 :          data_tmp = ISHFT(pack_tmp, 14)
   22162      3068760 :          ipack = ipack + 1
   22163      3068760 :          pack_tmp = packed_data(ipack)
   22164      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   22165      3068760 :          pack_tmp = ISHFT(pack_tmp, -14)
   22166      3068760 :          idata = idata + 1
   22167      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22168      3068760 :          full_data(idata) = data_tmp
   22169      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22170      3068760 :          idata = idata + 1
   22171      3068760 :          data_tmp = ISHFT(pack_tmp, 10)
   22172      3068760 :          ipack = ipack + 1
   22173      3068760 :          pack_tmp = packed_data(ipack)
   22174      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   22175      3068760 :          pack_tmp = ISHFT(pack_tmp, -10)
   22176      3068760 :          idata = idata + 1
   22177      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22178      3068760 :          full_data(idata) = data_tmp
   22179      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22180      3068760 :          idata = idata + 1
   22181      3068760 :          data_tmp = ISHFT(pack_tmp, 6)
   22182      3068760 :          ipack = ipack + 1
   22183      3068760 :          pack_tmp = packed_data(ipack)
   22184      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   22185      3068760 :          pack_tmp = ISHFT(pack_tmp, -6)
   22186      3068760 :          idata = idata + 1
   22187      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22188      3068760 :          full_data(idata) = data_tmp
   22189      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22190      3068760 :          idata = idata + 1
   22191      3068760 :          data_tmp = ISHFT(pack_tmp, 2)
   22192      3068760 :          ipack = ipack + 1
   22193      3068760 :          pack_tmp = packed_data(ipack)
   22194      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   22195      3068760 :          pack_tmp = ISHFT(pack_tmp, -2)
   22196      3068760 :          idata = idata + 1
   22197      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22198      3068760 :          full_data(idata) = data_tmp
   22199      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22200      3068760 :          idata = idata + 1
   22201      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22202      3068760 :          full_data(idata) = data_tmp
   22203      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22204      3068760 :          idata = idata + 1
   22205      3068760 :          data_tmp = ISHFT(pack_tmp, 28)
   22206      3068760 :          ipack = ipack + 1
   22207      3068760 :          pack_tmp = packed_data(ipack)
   22208      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22209      3068760 :          pack_tmp = ISHFT(pack_tmp, -28)
   22210      3068760 :          idata = idata + 1
   22211      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22212      3068760 :          full_data(idata) = data_tmp
   22213      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22214      3068760 :          idata = idata + 1
   22215      3068760 :          data_tmp = ISHFT(pack_tmp, 24)
   22216      3068760 :          ipack = ipack + 1
   22217      3068760 :          pack_tmp = packed_data(ipack)
   22218      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   22219      3068760 :          pack_tmp = ISHFT(pack_tmp, -24)
   22220      3068760 :          idata = idata + 1
   22221      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22222      3068760 :          full_data(idata) = data_tmp
   22223      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22224      3068760 :          idata = idata + 1
   22225      3068760 :          data_tmp = ISHFT(pack_tmp, 20)
   22226      3068760 :          ipack = ipack + 1
   22227      3068760 :          pack_tmp = packed_data(ipack)
   22228      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   22229      3068760 :          pack_tmp = ISHFT(pack_tmp, -20)
   22230      3068760 :          idata = idata + 1
   22231      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22232      3068760 :          full_data(idata) = data_tmp
   22233      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22234      3068760 :          idata = idata + 1
   22235      3068760 :          data_tmp = ISHFT(pack_tmp, 16)
   22236      3068760 :          ipack = ipack + 1
   22237      3068760 :          pack_tmp = packed_data(ipack)
   22238      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   22239      3068760 :          pack_tmp = ISHFT(pack_tmp, -16)
   22240      3068760 :          idata = idata + 1
   22241      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22242      3068760 :          full_data(idata) = data_tmp
   22243      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22244      3068760 :          idata = idata + 1
   22245      3068760 :          data_tmp = ISHFT(pack_tmp, 12)
   22246      3068760 :          ipack = ipack + 1
   22247      3068760 :          pack_tmp = packed_data(ipack)
   22248      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   22249      3068760 :          pack_tmp = ISHFT(pack_tmp, -12)
   22250      3068760 :          idata = idata + 1
   22251      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22252      3068760 :          full_data(idata) = data_tmp
   22253      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22254      3068760 :          idata = idata + 1
   22255      3068760 :          data_tmp = ISHFT(pack_tmp, 8)
   22256      3068760 :          ipack = ipack + 1
   22257      3068760 :          pack_tmp = packed_data(ipack)
   22258      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   22259      3068760 :          pack_tmp = ISHFT(pack_tmp, -8)
   22260      3068760 :          idata = idata + 1
   22261      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22262      3068760 :          full_data(idata) = data_tmp
   22263      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22264      3068760 :          idata = idata + 1
   22265      3068760 :          data_tmp = ISHFT(pack_tmp, 4)
   22266      3068760 :          ipack = ipack + 1
   22267      3068760 :          pack_tmp = packed_data(ipack)
   22268      3068760 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   22269      3068760 :          pack_tmp = ISHFT(pack_tmp, -4)
   22270      3068760 :          idata = idata + 1
   22271      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22272      3068760 :          full_data(idata) = data_tmp
   22273      3068760 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22274      3068760 :          idata = idata + 1
   22275      3068760 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22276      3068760 :          full_data(idata) = data_tmp
   22277      3071134 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22278              :       END DO
   22279       237740 :       IF (Ndata_rep < Ndata) THEN
   22280        86480 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   22281              :       END IF
   22282       237740 :    END SUBROUTINE bits2ints_30
   22283              : 
   22284              : ! **************************************************************************************************
   22285              : !> \brief ...
   22286              : !> \param Ndata ...
   22287              : !> \param packed_data ...
   22288              : !> \param full_data ...
   22289              : ! **************************************************************************************************
   22290        46706 :    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        46706 :       idata = 0
   22301        46706 :       ipack = 0
   22302        46706 :       Ndata_rep = (Ndata/64)*64
   22303        46706 :       DO kdata = 1, Ndata_rep, 64
   22304       627922 :          pack_tmp = 0
   22305       627922 :          idata = idata + 1
   22306       627922 :          data_tmp = full_data(idata)
   22307       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22308       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22309       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22310       627922 :          idata = idata + 1
   22311       627922 :          data_tmp = full_data(idata)
   22312       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22313       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22314       627922 :          pack_tmp = ISHFT(pack_tmp, -2)
   22315       627922 :          idata = idata + 1
   22316       627922 :          data_tmp = full_data(idata)
   22317       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22318       627922 :          data_tmp = IAND(data_tmp, mask_left(2))
   22319       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22320       627922 :          ipack = ipack + 1
   22321       627922 :          packed_data(ipack) = pack_tmp
   22322       627922 :          data_tmp = full_data(idata)
   22323       627922 :          pack_tmp = ISHFT(data_tmp, 35)
   22324       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22325       627922 :          idata = idata + 1
   22326       627922 :          data_tmp = full_data(idata)
   22327       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22328       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22329       627922 :          pack_tmp = ISHFT(pack_tmp, -4)
   22330       627922 :          idata = idata + 1
   22331       627922 :          data_tmp = full_data(idata)
   22332       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22333       627922 :          data_tmp = IAND(data_tmp, mask_left(4))
   22334       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22335       627922 :          ipack = ipack + 1
   22336       627922 :          packed_data(ipack) = pack_tmp
   22337       627922 :          data_tmp = full_data(idata)
   22338       627922 :          pack_tmp = ISHFT(data_tmp, 37)
   22339       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22340       627922 :          idata = idata + 1
   22341       627922 :          data_tmp = full_data(idata)
   22342       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22343       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22344       627922 :          pack_tmp = ISHFT(pack_tmp, -6)
   22345       627922 :          idata = idata + 1
   22346       627922 :          data_tmp = full_data(idata)
   22347       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22348       627922 :          data_tmp = IAND(data_tmp, mask_left(6))
   22349       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22350       627922 :          ipack = ipack + 1
   22351       627922 :          packed_data(ipack) = pack_tmp
   22352       627922 :          data_tmp = full_data(idata)
   22353       627922 :          pack_tmp = ISHFT(data_tmp, 39)
   22354       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22355       627922 :          idata = idata + 1
   22356       627922 :          data_tmp = full_data(idata)
   22357       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22358       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22359       627922 :          pack_tmp = ISHFT(pack_tmp, -8)
   22360       627922 :          idata = idata + 1
   22361       627922 :          data_tmp = full_data(idata)
   22362       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22363       627922 :          data_tmp = IAND(data_tmp, mask_left(8))
   22364       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22365       627922 :          ipack = ipack + 1
   22366       627922 :          packed_data(ipack) = pack_tmp
   22367       627922 :          data_tmp = full_data(idata)
   22368       627922 :          pack_tmp = ISHFT(data_tmp, 41)
   22369       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22370       627922 :          idata = idata + 1
   22371       627922 :          data_tmp = full_data(idata)
   22372       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22373       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22374       627922 :          pack_tmp = ISHFT(pack_tmp, -10)
   22375       627922 :          idata = idata + 1
   22376       627922 :          data_tmp = full_data(idata)
   22377       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22378       627922 :          data_tmp = IAND(data_tmp, mask_left(10))
   22379       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22380       627922 :          ipack = ipack + 1
   22381       627922 :          packed_data(ipack) = pack_tmp
   22382       627922 :          data_tmp = full_data(idata)
   22383       627922 :          pack_tmp = ISHFT(data_tmp, 43)
   22384       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22385       627922 :          idata = idata + 1
   22386       627922 :          data_tmp = full_data(idata)
   22387       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22388       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22389       627922 :          pack_tmp = ISHFT(pack_tmp, -12)
   22390       627922 :          idata = idata + 1
   22391       627922 :          data_tmp = full_data(idata)
   22392       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22393       627922 :          data_tmp = IAND(data_tmp, mask_left(12))
   22394       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22395       627922 :          ipack = ipack + 1
   22396       627922 :          packed_data(ipack) = pack_tmp
   22397       627922 :          data_tmp = full_data(idata)
   22398       627922 :          pack_tmp = ISHFT(data_tmp, 45)
   22399       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22400       627922 :          idata = idata + 1
   22401       627922 :          data_tmp = full_data(idata)
   22402       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22403       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22404       627922 :          pack_tmp = ISHFT(pack_tmp, -14)
   22405       627922 :          idata = idata + 1
   22406       627922 :          data_tmp = full_data(idata)
   22407       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22408       627922 :          data_tmp = IAND(data_tmp, mask_left(14))
   22409       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22410       627922 :          ipack = ipack + 1
   22411       627922 :          packed_data(ipack) = pack_tmp
   22412       627922 :          data_tmp = full_data(idata)
   22413       627922 :          pack_tmp = ISHFT(data_tmp, 47)
   22414       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22415       627922 :          idata = idata + 1
   22416       627922 :          data_tmp = full_data(idata)
   22417       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22418       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22419       627922 :          pack_tmp = ISHFT(pack_tmp, -16)
   22420       627922 :          idata = idata + 1
   22421       627922 :          data_tmp = full_data(idata)
   22422       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22423       627922 :          data_tmp = IAND(data_tmp, mask_left(16))
   22424       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22425       627922 :          ipack = ipack + 1
   22426       627922 :          packed_data(ipack) = pack_tmp
   22427       627922 :          data_tmp = full_data(idata)
   22428       627922 :          pack_tmp = ISHFT(data_tmp, 49)
   22429       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22430       627922 :          idata = idata + 1
   22431       627922 :          data_tmp = full_data(idata)
   22432       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22433       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22434       627922 :          pack_tmp = ISHFT(pack_tmp, -18)
   22435       627922 :          idata = idata + 1
   22436       627922 :          data_tmp = full_data(idata)
   22437       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22438       627922 :          data_tmp = IAND(data_tmp, mask_left(18))
   22439       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22440       627922 :          ipack = ipack + 1
   22441       627922 :          packed_data(ipack) = pack_tmp
   22442       627922 :          data_tmp = full_data(idata)
   22443       627922 :          pack_tmp = ISHFT(data_tmp, 51)
   22444       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22445       627922 :          idata = idata + 1
   22446       627922 :          data_tmp = full_data(idata)
   22447       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22448       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22449       627922 :          pack_tmp = ISHFT(pack_tmp, -20)
   22450       627922 :          idata = idata + 1
   22451       627922 :          data_tmp = full_data(idata)
   22452       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22453       627922 :          data_tmp = IAND(data_tmp, mask_left(20))
   22454       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22455       627922 :          ipack = ipack + 1
   22456       627922 :          packed_data(ipack) = pack_tmp
   22457       627922 :          data_tmp = full_data(idata)
   22458       627922 :          pack_tmp = ISHFT(data_tmp, 53)
   22459       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22460       627922 :          idata = idata + 1
   22461       627922 :          data_tmp = full_data(idata)
   22462       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22463       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22464       627922 :          pack_tmp = ISHFT(pack_tmp, -22)
   22465       627922 :          idata = idata + 1
   22466       627922 :          data_tmp = full_data(idata)
   22467       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22468       627922 :          data_tmp = IAND(data_tmp, mask_left(22))
   22469       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22470       627922 :          ipack = ipack + 1
   22471       627922 :          packed_data(ipack) = pack_tmp
   22472       627922 :          data_tmp = full_data(idata)
   22473       627922 :          pack_tmp = ISHFT(data_tmp, 55)
   22474       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22475       627922 :          idata = idata + 1
   22476       627922 :          data_tmp = full_data(idata)
   22477       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22478       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22479       627922 :          pack_tmp = ISHFT(pack_tmp, -24)
   22480       627922 :          idata = idata + 1
   22481       627922 :          data_tmp = full_data(idata)
   22482       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22483       627922 :          data_tmp = IAND(data_tmp, mask_left(24))
   22484       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22485       627922 :          ipack = ipack + 1
   22486       627922 :          packed_data(ipack) = pack_tmp
   22487       627922 :          data_tmp = full_data(idata)
   22488       627922 :          pack_tmp = ISHFT(data_tmp, 57)
   22489       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22490       627922 :          idata = idata + 1
   22491       627922 :          data_tmp = full_data(idata)
   22492       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22493       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22494       627922 :          pack_tmp = ISHFT(pack_tmp, -26)
   22495       627922 :          idata = idata + 1
   22496       627922 :          data_tmp = full_data(idata)
   22497       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22498       627922 :          data_tmp = IAND(data_tmp, mask_left(26))
   22499       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22500       627922 :          ipack = ipack + 1
   22501       627922 :          packed_data(ipack) = pack_tmp
   22502       627922 :          data_tmp = full_data(idata)
   22503       627922 :          pack_tmp = ISHFT(data_tmp, 59)
   22504       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22505       627922 :          idata = idata + 1
   22506       627922 :          data_tmp = full_data(idata)
   22507       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22508       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22509       627922 :          pack_tmp = ISHFT(pack_tmp, -28)
   22510       627922 :          idata = idata + 1
   22511       627922 :          data_tmp = full_data(idata)
   22512       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22513       627922 :          data_tmp = IAND(data_tmp, mask_left(28))
   22514       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22515       627922 :          ipack = ipack + 1
   22516       627922 :          packed_data(ipack) = pack_tmp
   22517       627922 :          data_tmp = full_data(idata)
   22518       627922 :          pack_tmp = ISHFT(data_tmp, 61)
   22519       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22520       627922 :          idata = idata + 1
   22521       627922 :          data_tmp = full_data(idata)
   22522       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22523       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22524       627922 :          pack_tmp = ISHFT(pack_tmp, -30)
   22525       627922 :          idata = idata + 1
   22526       627922 :          data_tmp = full_data(idata)
   22527       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22528       627922 :          data_tmp = IAND(data_tmp, mask_left(30))
   22529       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22530       627922 :          ipack = ipack + 1
   22531       627922 :          packed_data(ipack) = pack_tmp
   22532       627922 :          data_tmp = full_data(idata)
   22533       627922 :          pack_tmp = ISHFT(data_tmp, 63)
   22534       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22535       627922 :          idata = idata + 1
   22536       627922 :          data_tmp = full_data(idata)
   22537       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22538       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22539       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22540       627922 :          idata = idata + 1
   22541       627922 :          data_tmp = full_data(idata)
   22542       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22543       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22544       627922 :          pack_tmp = ISHFT(pack_tmp, -1)
   22545       627922 :          idata = idata + 1
   22546       627922 :          data_tmp = full_data(idata)
   22547       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22548       627922 :          data_tmp = IAND(data_tmp, mask_left(1))
   22549       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22550       627922 :          ipack = ipack + 1
   22551       627922 :          packed_data(ipack) = pack_tmp
   22552       627922 :          data_tmp = full_data(idata)
   22553       627922 :          pack_tmp = ISHFT(data_tmp, 34)
   22554       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22555       627922 :          idata = idata + 1
   22556       627922 :          data_tmp = full_data(idata)
   22557       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22558       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22559       627922 :          pack_tmp = ISHFT(pack_tmp, -3)
   22560       627922 :          idata = idata + 1
   22561       627922 :          data_tmp = full_data(idata)
   22562       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22563       627922 :          data_tmp = IAND(data_tmp, mask_left(3))
   22564       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22565       627922 :          ipack = ipack + 1
   22566       627922 :          packed_data(ipack) = pack_tmp
   22567       627922 :          data_tmp = full_data(idata)
   22568       627922 :          pack_tmp = ISHFT(data_tmp, 36)
   22569       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22570       627922 :          idata = idata + 1
   22571       627922 :          data_tmp = full_data(idata)
   22572       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22573       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22574       627922 :          pack_tmp = ISHFT(pack_tmp, -5)
   22575       627922 :          idata = idata + 1
   22576       627922 :          data_tmp = full_data(idata)
   22577       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22578       627922 :          data_tmp = IAND(data_tmp, mask_left(5))
   22579       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22580       627922 :          ipack = ipack + 1
   22581       627922 :          packed_data(ipack) = pack_tmp
   22582       627922 :          data_tmp = full_data(idata)
   22583       627922 :          pack_tmp = ISHFT(data_tmp, 38)
   22584       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22585       627922 :          idata = idata + 1
   22586       627922 :          data_tmp = full_data(idata)
   22587       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22588       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22589       627922 :          pack_tmp = ISHFT(pack_tmp, -7)
   22590       627922 :          idata = idata + 1
   22591       627922 :          data_tmp = full_data(idata)
   22592       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22593       627922 :          data_tmp = IAND(data_tmp, mask_left(7))
   22594       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22595       627922 :          ipack = ipack + 1
   22596       627922 :          packed_data(ipack) = pack_tmp
   22597       627922 :          data_tmp = full_data(idata)
   22598       627922 :          pack_tmp = ISHFT(data_tmp, 40)
   22599       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22600       627922 :          idata = idata + 1
   22601       627922 :          data_tmp = full_data(idata)
   22602       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22603       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22604       627922 :          pack_tmp = ISHFT(pack_tmp, -9)
   22605       627922 :          idata = idata + 1
   22606       627922 :          data_tmp = full_data(idata)
   22607       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22608       627922 :          data_tmp = IAND(data_tmp, mask_left(9))
   22609       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22610       627922 :          ipack = ipack + 1
   22611       627922 :          packed_data(ipack) = pack_tmp
   22612       627922 :          data_tmp = full_data(idata)
   22613       627922 :          pack_tmp = ISHFT(data_tmp, 42)
   22614       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22615       627922 :          idata = idata + 1
   22616       627922 :          data_tmp = full_data(idata)
   22617       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22618       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22619       627922 :          pack_tmp = ISHFT(pack_tmp, -11)
   22620       627922 :          idata = idata + 1
   22621       627922 :          data_tmp = full_data(idata)
   22622       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22623       627922 :          data_tmp = IAND(data_tmp, mask_left(11))
   22624       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22625       627922 :          ipack = ipack + 1
   22626       627922 :          packed_data(ipack) = pack_tmp
   22627       627922 :          data_tmp = full_data(idata)
   22628       627922 :          pack_tmp = ISHFT(data_tmp, 44)
   22629       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22630       627922 :          idata = idata + 1
   22631       627922 :          data_tmp = full_data(idata)
   22632       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22633       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22634       627922 :          pack_tmp = ISHFT(pack_tmp, -13)
   22635       627922 :          idata = idata + 1
   22636       627922 :          data_tmp = full_data(idata)
   22637       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22638       627922 :          data_tmp = IAND(data_tmp, mask_left(13))
   22639       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22640       627922 :          ipack = ipack + 1
   22641       627922 :          packed_data(ipack) = pack_tmp
   22642       627922 :          data_tmp = full_data(idata)
   22643       627922 :          pack_tmp = ISHFT(data_tmp, 46)
   22644       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22645       627922 :          idata = idata + 1
   22646       627922 :          data_tmp = full_data(idata)
   22647       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22648       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22649       627922 :          pack_tmp = ISHFT(pack_tmp, -15)
   22650       627922 :          idata = idata + 1
   22651       627922 :          data_tmp = full_data(idata)
   22652       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22653       627922 :          data_tmp = IAND(data_tmp, mask_left(15))
   22654       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22655       627922 :          ipack = ipack + 1
   22656       627922 :          packed_data(ipack) = pack_tmp
   22657       627922 :          data_tmp = full_data(idata)
   22658       627922 :          pack_tmp = ISHFT(data_tmp, 48)
   22659       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22660       627922 :          idata = idata + 1
   22661       627922 :          data_tmp = full_data(idata)
   22662       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22663       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22664       627922 :          pack_tmp = ISHFT(pack_tmp, -17)
   22665       627922 :          idata = idata + 1
   22666       627922 :          data_tmp = full_data(idata)
   22667       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22668       627922 :          data_tmp = IAND(data_tmp, mask_left(17))
   22669       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22670       627922 :          ipack = ipack + 1
   22671       627922 :          packed_data(ipack) = pack_tmp
   22672       627922 :          data_tmp = full_data(idata)
   22673       627922 :          pack_tmp = ISHFT(data_tmp, 50)
   22674       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22675       627922 :          idata = idata + 1
   22676       627922 :          data_tmp = full_data(idata)
   22677       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22678       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22679       627922 :          pack_tmp = ISHFT(pack_tmp, -19)
   22680       627922 :          idata = idata + 1
   22681       627922 :          data_tmp = full_data(idata)
   22682       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22683       627922 :          data_tmp = IAND(data_tmp, mask_left(19))
   22684       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22685       627922 :          ipack = ipack + 1
   22686       627922 :          packed_data(ipack) = pack_tmp
   22687       627922 :          data_tmp = full_data(idata)
   22688       627922 :          pack_tmp = ISHFT(data_tmp, 52)
   22689       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22690       627922 :          idata = idata + 1
   22691       627922 :          data_tmp = full_data(idata)
   22692       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22693       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22694       627922 :          pack_tmp = ISHFT(pack_tmp, -21)
   22695       627922 :          idata = idata + 1
   22696       627922 :          data_tmp = full_data(idata)
   22697       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22698       627922 :          data_tmp = IAND(data_tmp, mask_left(21))
   22699       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22700       627922 :          ipack = ipack + 1
   22701       627922 :          packed_data(ipack) = pack_tmp
   22702       627922 :          data_tmp = full_data(idata)
   22703       627922 :          pack_tmp = ISHFT(data_tmp, 54)
   22704       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22705       627922 :          idata = idata + 1
   22706       627922 :          data_tmp = full_data(idata)
   22707       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22708       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22709       627922 :          pack_tmp = ISHFT(pack_tmp, -23)
   22710       627922 :          idata = idata + 1
   22711       627922 :          data_tmp = full_data(idata)
   22712       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22713       627922 :          data_tmp = IAND(data_tmp, mask_left(23))
   22714       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22715       627922 :          ipack = ipack + 1
   22716       627922 :          packed_data(ipack) = pack_tmp
   22717       627922 :          data_tmp = full_data(idata)
   22718       627922 :          pack_tmp = ISHFT(data_tmp, 56)
   22719       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22720       627922 :          idata = idata + 1
   22721       627922 :          data_tmp = full_data(idata)
   22722       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22723       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22724       627922 :          pack_tmp = ISHFT(pack_tmp, -25)
   22725       627922 :          idata = idata + 1
   22726       627922 :          data_tmp = full_data(idata)
   22727       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22728       627922 :          data_tmp = IAND(data_tmp, mask_left(25))
   22729       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22730       627922 :          ipack = ipack + 1
   22731       627922 :          packed_data(ipack) = pack_tmp
   22732       627922 :          data_tmp = full_data(idata)
   22733       627922 :          pack_tmp = ISHFT(data_tmp, 58)
   22734       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22735       627922 :          idata = idata + 1
   22736       627922 :          data_tmp = full_data(idata)
   22737       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22738       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22739       627922 :          pack_tmp = ISHFT(pack_tmp, -27)
   22740       627922 :          idata = idata + 1
   22741       627922 :          data_tmp = full_data(idata)
   22742       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22743       627922 :          data_tmp = IAND(data_tmp, mask_left(27))
   22744       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22745       627922 :          ipack = ipack + 1
   22746       627922 :          packed_data(ipack) = pack_tmp
   22747       627922 :          data_tmp = full_data(idata)
   22748       627922 :          pack_tmp = ISHFT(data_tmp, 60)
   22749       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22750       627922 :          idata = idata + 1
   22751       627922 :          data_tmp = full_data(idata)
   22752       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22753       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22754       627922 :          pack_tmp = ISHFT(pack_tmp, -29)
   22755       627922 :          idata = idata + 1
   22756       627922 :          data_tmp = full_data(idata)
   22757       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22758       627922 :          data_tmp = IAND(data_tmp, mask_left(29))
   22759       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22760       627922 :          ipack = ipack + 1
   22761       627922 :          packed_data(ipack) = pack_tmp
   22762       627922 :          data_tmp = full_data(idata)
   22763       627922 :          pack_tmp = ISHFT(data_tmp, 62)
   22764       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22765       627922 :          idata = idata + 1
   22766       627922 :          data_tmp = full_data(idata)
   22767       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22768       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22769       627922 :          pack_tmp = ISHFT(pack_tmp, -31)
   22770       627922 :          idata = idata + 1
   22771       627922 :          data_tmp = full_data(idata)
   22772       627922 :          data_tmp = ISHFT(data_tmp, 33)
   22773       627922 :          pack_tmp = IOR(pack_tmp, data_tmp)
   22774              :          pack_tmp = ISHFT(pack_tmp, 0)
   22775       627922 :          pack_tmp = ISHFT(pack_tmp, 0)
   22776       627922 :          ipack = ipack + 1
   22777       628082 :          packed_data(ipack) = pack_tmp
   22778              :       END DO
   22779        46706 :       IF (Ndata_rep < Ndata) THEN
   22780        14044 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   22781              :       END IF
   22782        46706 :    END SUBROUTINE ints2bits_31
   22783              : 
   22784              : ! **************************************************************************************************
   22785              : !> \brief ...
   22786              : !> \param Ndata ...
   22787              : !> \param packed_data ...
   22788              : !> \param full_data ...
   22789              : ! **************************************************************************************************
   22790       294882 :    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       294882 :       ipack = 0
   22801       294882 :       idata = 0
   22802       294882 :       pack_tmp = 0
   22803       294882 :       Ndata_rep = (Ndata/64)*64
   22804       294882 :       DO kdata = 1, Ndata_rep, 64
   22805      3659522 :          idata = idata + 1
   22806      3659522 :          data_tmp = ISHFT(pack_tmp, 31)
   22807      3659522 :          ipack = ipack + 1
   22808      3659522 :          pack_tmp = packed_data(ipack)
   22809      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   22810      3659522 :          pack_tmp = ISHFT(pack_tmp, -31)
   22811      3659522 :          idata = idata + 1
   22812      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22813      3659522 :          full_data(idata) = data_tmp
   22814      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22815      3659522 :          idata = idata + 1
   22816      3659522 :          data_tmp = ISHFT(pack_tmp, 29)
   22817      3659522 :          ipack = ipack + 1
   22818      3659522 :          pack_tmp = packed_data(ipack)
   22819      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   22820      3659522 :          pack_tmp = ISHFT(pack_tmp, -29)
   22821      3659522 :          idata = idata + 1
   22822      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22823      3659522 :          full_data(idata) = data_tmp
   22824      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22825      3659522 :          idata = idata + 1
   22826      3659522 :          data_tmp = ISHFT(pack_tmp, 27)
   22827      3659522 :          ipack = ipack + 1
   22828      3659522 :          pack_tmp = packed_data(ipack)
   22829      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   22830      3659522 :          pack_tmp = ISHFT(pack_tmp, -27)
   22831      3659522 :          idata = idata + 1
   22832      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22833      3659522 :          full_data(idata) = data_tmp
   22834      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22835      3659522 :          idata = idata + 1
   22836      3659522 :          data_tmp = ISHFT(pack_tmp, 25)
   22837      3659522 :          ipack = ipack + 1
   22838      3659522 :          pack_tmp = packed_data(ipack)
   22839      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   22840      3659522 :          pack_tmp = ISHFT(pack_tmp, -25)
   22841      3659522 :          idata = idata + 1
   22842      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22843      3659522 :          full_data(idata) = data_tmp
   22844      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22845      3659522 :          idata = idata + 1
   22846      3659522 :          data_tmp = ISHFT(pack_tmp, 23)
   22847      3659522 :          ipack = ipack + 1
   22848      3659522 :          pack_tmp = packed_data(ipack)
   22849      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   22850      3659522 :          pack_tmp = ISHFT(pack_tmp, -23)
   22851      3659522 :          idata = idata + 1
   22852      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22853      3659522 :          full_data(idata) = data_tmp
   22854      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22855      3659522 :          idata = idata + 1
   22856      3659522 :          data_tmp = ISHFT(pack_tmp, 21)
   22857      3659522 :          ipack = ipack + 1
   22858      3659522 :          pack_tmp = packed_data(ipack)
   22859      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   22860      3659522 :          pack_tmp = ISHFT(pack_tmp, -21)
   22861      3659522 :          idata = idata + 1
   22862      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22863      3659522 :          full_data(idata) = data_tmp
   22864      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22865      3659522 :          idata = idata + 1
   22866      3659522 :          data_tmp = ISHFT(pack_tmp, 19)
   22867      3659522 :          ipack = ipack + 1
   22868      3659522 :          pack_tmp = packed_data(ipack)
   22869      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   22870      3659522 :          pack_tmp = ISHFT(pack_tmp, -19)
   22871      3659522 :          idata = idata + 1
   22872      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22873      3659522 :          full_data(idata) = data_tmp
   22874      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22875      3659522 :          idata = idata + 1
   22876      3659522 :          data_tmp = ISHFT(pack_tmp, 17)
   22877      3659522 :          ipack = ipack + 1
   22878      3659522 :          pack_tmp = packed_data(ipack)
   22879      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   22880      3659522 :          pack_tmp = ISHFT(pack_tmp, -17)
   22881      3659522 :          idata = idata + 1
   22882      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22883      3659522 :          full_data(idata) = data_tmp
   22884      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22885      3659522 :          idata = idata + 1
   22886      3659522 :          data_tmp = ISHFT(pack_tmp, 15)
   22887      3659522 :          ipack = ipack + 1
   22888      3659522 :          pack_tmp = packed_data(ipack)
   22889      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   22890      3659522 :          pack_tmp = ISHFT(pack_tmp, -15)
   22891      3659522 :          idata = idata + 1
   22892      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22893      3659522 :          full_data(idata) = data_tmp
   22894      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22895      3659522 :          idata = idata + 1
   22896      3659522 :          data_tmp = ISHFT(pack_tmp, 13)
   22897      3659522 :          ipack = ipack + 1
   22898      3659522 :          pack_tmp = packed_data(ipack)
   22899      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   22900      3659522 :          pack_tmp = ISHFT(pack_tmp, -13)
   22901      3659522 :          idata = idata + 1
   22902      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22903      3659522 :          full_data(idata) = data_tmp
   22904      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22905      3659522 :          idata = idata + 1
   22906      3659522 :          data_tmp = ISHFT(pack_tmp, 11)
   22907      3659522 :          ipack = ipack + 1
   22908      3659522 :          pack_tmp = packed_data(ipack)
   22909      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   22910      3659522 :          pack_tmp = ISHFT(pack_tmp, -11)
   22911      3659522 :          idata = idata + 1
   22912      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22913      3659522 :          full_data(idata) = data_tmp
   22914      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22915      3659522 :          idata = idata + 1
   22916      3659522 :          data_tmp = ISHFT(pack_tmp, 9)
   22917      3659522 :          ipack = ipack + 1
   22918      3659522 :          pack_tmp = packed_data(ipack)
   22919      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   22920      3659522 :          pack_tmp = ISHFT(pack_tmp, -9)
   22921      3659522 :          idata = idata + 1
   22922      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22923      3659522 :          full_data(idata) = data_tmp
   22924      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22925      3659522 :          idata = idata + 1
   22926      3659522 :          data_tmp = ISHFT(pack_tmp, 7)
   22927      3659522 :          ipack = ipack + 1
   22928      3659522 :          pack_tmp = packed_data(ipack)
   22929      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   22930      3659522 :          pack_tmp = ISHFT(pack_tmp, -7)
   22931      3659522 :          idata = idata + 1
   22932      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22933      3659522 :          full_data(idata) = data_tmp
   22934      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22935      3659522 :          idata = idata + 1
   22936      3659522 :          data_tmp = ISHFT(pack_tmp, 5)
   22937      3659522 :          ipack = ipack + 1
   22938      3659522 :          pack_tmp = packed_data(ipack)
   22939      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   22940      3659522 :          pack_tmp = ISHFT(pack_tmp, -5)
   22941      3659522 :          idata = idata + 1
   22942      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22943      3659522 :          full_data(idata) = data_tmp
   22944      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22945      3659522 :          idata = idata + 1
   22946      3659522 :          data_tmp = ISHFT(pack_tmp, 3)
   22947      3659522 :          ipack = ipack + 1
   22948      3659522 :          pack_tmp = packed_data(ipack)
   22949      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   22950      3659522 :          pack_tmp = ISHFT(pack_tmp, -3)
   22951      3659522 :          idata = idata + 1
   22952      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22953      3659522 :          full_data(idata) = data_tmp
   22954      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22955      3659522 :          idata = idata + 1
   22956      3659522 :          data_tmp = ISHFT(pack_tmp, 1)
   22957      3659522 :          ipack = ipack + 1
   22958      3659522 :          pack_tmp = packed_data(ipack)
   22959      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   22960      3659522 :          pack_tmp = ISHFT(pack_tmp, -1)
   22961      3659522 :          idata = idata + 1
   22962      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22963      3659522 :          full_data(idata) = data_tmp
   22964      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22965      3659522 :          idata = idata + 1
   22966      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22967      3659522 :          full_data(idata) = data_tmp
   22968      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22969      3659522 :          idata = idata + 1
   22970      3659522 :          data_tmp = ISHFT(pack_tmp, 30)
   22971      3659522 :          ipack = ipack + 1
   22972      3659522 :          pack_tmp = packed_data(ipack)
   22973      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   22974      3659522 :          pack_tmp = ISHFT(pack_tmp, -30)
   22975      3659522 :          idata = idata + 1
   22976      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22977      3659522 :          full_data(idata) = data_tmp
   22978      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22979      3659522 :          idata = idata + 1
   22980      3659522 :          data_tmp = ISHFT(pack_tmp, 28)
   22981      3659522 :          ipack = ipack + 1
   22982      3659522 :          pack_tmp = packed_data(ipack)
   22983      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   22984      3659522 :          pack_tmp = ISHFT(pack_tmp, -28)
   22985      3659522 :          idata = idata + 1
   22986      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22987      3659522 :          full_data(idata) = data_tmp
   22988      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22989      3659522 :          idata = idata + 1
   22990      3659522 :          data_tmp = ISHFT(pack_tmp, 26)
   22991      3659522 :          ipack = ipack + 1
   22992      3659522 :          pack_tmp = packed_data(ipack)
   22993      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   22994      3659522 :          pack_tmp = ISHFT(pack_tmp, -26)
   22995      3659522 :          idata = idata + 1
   22996      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   22997      3659522 :          full_data(idata) = data_tmp
   22998      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   22999      3659522 :          idata = idata + 1
   23000      3659522 :          data_tmp = ISHFT(pack_tmp, 24)
   23001      3659522 :          ipack = ipack + 1
   23002      3659522 :          pack_tmp = packed_data(ipack)
   23003      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   23004      3659522 :          pack_tmp = ISHFT(pack_tmp, -24)
   23005      3659522 :          idata = idata + 1
   23006      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23007      3659522 :          full_data(idata) = data_tmp
   23008      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23009      3659522 :          idata = idata + 1
   23010      3659522 :          data_tmp = ISHFT(pack_tmp, 22)
   23011      3659522 :          ipack = ipack + 1
   23012      3659522 :          pack_tmp = packed_data(ipack)
   23013      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   23014      3659522 :          pack_tmp = ISHFT(pack_tmp, -22)
   23015      3659522 :          idata = idata + 1
   23016      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23017      3659522 :          full_data(idata) = data_tmp
   23018      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23019      3659522 :          idata = idata + 1
   23020      3659522 :          data_tmp = ISHFT(pack_tmp, 20)
   23021      3659522 :          ipack = ipack + 1
   23022      3659522 :          pack_tmp = packed_data(ipack)
   23023      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   23024      3659522 :          pack_tmp = ISHFT(pack_tmp, -20)
   23025      3659522 :          idata = idata + 1
   23026      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23027      3659522 :          full_data(idata) = data_tmp
   23028      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23029      3659522 :          idata = idata + 1
   23030      3659522 :          data_tmp = ISHFT(pack_tmp, 18)
   23031      3659522 :          ipack = ipack + 1
   23032      3659522 :          pack_tmp = packed_data(ipack)
   23033      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   23034      3659522 :          pack_tmp = ISHFT(pack_tmp, -18)
   23035      3659522 :          idata = idata + 1
   23036      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23037      3659522 :          full_data(idata) = data_tmp
   23038      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23039      3659522 :          idata = idata + 1
   23040      3659522 :          data_tmp = ISHFT(pack_tmp, 16)
   23041      3659522 :          ipack = ipack + 1
   23042      3659522 :          pack_tmp = packed_data(ipack)
   23043      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   23044      3659522 :          pack_tmp = ISHFT(pack_tmp, -16)
   23045      3659522 :          idata = idata + 1
   23046      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23047      3659522 :          full_data(idata) = data_tmp
   23048      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23049      3659522 :          idata = idata + 1
   23050      3659522 :          data_tmp = ISHFT(pack_tmp, 14)
   23051      3659522 :          ipack = ipack + 1
   23052      3659522 :          pack_tmp = packed_data(ipack)
   23053      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   23054      3659522 :          pack_tmp = ISHFT(pack_tmp, -14)
   23055      3659522 :          idata = idata + 1
   23056      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23057      3659522 :          full_data(idata) = data_tmp
   23058      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23059      3659522 :          idata = idata + 1
   23060      3659522 :          data_tmp = ISHFT(pack_tmp, 12)
   23061      3659522 :          ipack = ipack + 1
   23062      3659522 :          pack_tmp = packed_data(ipack)
   23063      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   23064      3659522 :          pack_tmp = ISHFT(pack_tmp, -12)
   23065      3659522 :          idata = idata + 1
   23066      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23067      3659522 :          full_data(idata) = data_tmp
   23068      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23069      3659522 :          idata = idata + 1
   23070      3659522 :          data_tmp = ISHFT(pack_tmp, 10)
   23071      3659522 :          ipack = ipack + 1
   23072      3659522 :          pack_tmp = packed_data(ipack)
   23073      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   23074      3659522 :          pack_tmp = ISHFT(pack_tmp, -10)
   23075      3659522 :          idata = idata + 1
   23076      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23077      3659522 :          full_data(idata) = data_tmp
   23078      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23079      3659522 :          idata = idata + 1
   23080      3659522 :          data_tmp = ISHFT(pack_tmp, 8)
   23081      3659522 :          ipack = ipack + 1
   23082      3659522 :          pack_tmp = packed_data(ipack)
   23083      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   23084      3659522 :          pack_tmp = ISHFT(pack_tmp, -8)
   23085      3659522 :          idata = idata + 1
   23086      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23087      3659522 :          full_data(idata) = data_tmp
   23088      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23089      3659522 :          idata = idata + 1
   23090      3659522 :          data_tmp = ISHFT(pack_tmp, 6)
   23091      3659522 :          ipack = ipack + 1
   23092      3659522 :          pack_tmp = packed_data(ipack)
   23093      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   23094      3659522 :          pack_tmp = ISHFT(pack_tmp, -6)
   23095      3659522 :          idata = idata + 1
   23096      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23097      3659522 :          full_data(idata) = data_tmp
   23098      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23099      3659522 :          idata = idata + 1
   23100      3659522 :          data_tmp = ISHFT(pack_tmp, 4)
   23101      3659522 :          ipack = ipack + 1
   23102      3659522 :          pack_tmp = packed_data(ipack)
   23103      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   23104      3659522 :          pack_tmp = ISHFT(pack_tmp, -4)
   23105      3659522 :          idata = idata + 1
   23106      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23107      3659522 :          full_data(idata) = data_tmp
   23108      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23109      3659522 :          idata = idata + 1
   23110      3659522 :          data_tmp = ISHFT(pack_tmp, 2)
   23111      3659522 :          ipack = ipack + 1
   23112      3659522 :          pack_tmp = packed_data(ipack)
   23113      3659522 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   23114      3659522 :          pack_tmp = ISHFT(pack_tmp, -2)
   23115      3659522 :          idata = idata + 1
   23116      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23117      3659522 :          full_data(idata) = data_tmp
   23118      3659522 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23119      3659522 :          idata = idata + 1
   23120      3659522 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23121      3659522 :          full_data(idata) = data_tmp
   23122      3661652 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23123              :       END DO
   23124       294882 :       IF (Ndata_rep < Ndata) THEN
   23125       124540 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   23126              :       END IF
   23127       294882 :    END SUBROUTINE bits2ints_31
   23128              : 
   23129              : ! **************************************************************************************************
   23130              : !> \brief ...
   23131              : !> \param Ndata ...
   23132              : !> \param packed_data ...
   23133              : !> \param full_data ...
   23134              : ! **************************************************************************************************
   23135        55688 :    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        55688 :       idata = 0
   23146        55688 :       ipack = 0
   23147        55688 :       Ndata_rep = (Ndata/64)*64
   23148        55688 :       DO kdata = 1, Ndata_rep, 64
   23149       717712 :          pack_tmp = 0
   23150       717712 :          idata = idata + 1
   23151       717712 :          data_tmp = full_data(idata)
   23152       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23153       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23154       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23155       717712 :          idata = idata + 1
   23156       717712 :          data_tmp = full_data(idata)
   23157       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23158       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23159       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23160       717712 :          idata = idata + 1
   23161       717712 :          data_tmp = full_data(idata)
   23162              :          data_tmp = ISHFT(data_tmp, 32)
   23163       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23164       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23165       717712 :          ipack = ipack + 1
   23166       717712 :          packed_data(ipack) = pack_tmp
   23167       717712 :          data_tmp = full_data(idata)
   23168       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23169       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23170       717712 :          idata = idata + 1
   23171       717712 :          data_tmp = full_data(idata)
   23172       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23173       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23174       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23175       717712 :          idata = idata + 1
   23176       717712 :          data_tmp = full_data(idata)
   23177              :          data_tmp = ISHFT(data_tmp, 32)
   23178       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23179       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23180       717712 :          ipack = ipack + 1
   23181       717712 :          packed_data(ipack) = pack_tmp
   23182       717712 :          data_tmp = full_data(idata)
   23183       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23184       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23185       717712 :          idata = idata + 1
   23186       717712 :          data_tmp = full_data(idata)
   23187       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23188       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23189       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23190       717712 :          idata = idata + 1
   23191       717712 :          data_tmp = full_data(idata)
   23192              :          data_tmp = ISHFT(data_tmp, 32)
   23193       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23194       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23195       717712 :          ipack = ipack + 1
   23196       717712 :          packed_data(ipack) = pack_tmp
   23197       717712 :          data_tmp = full_data(idata)
   23198       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23199       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23200       717712 :          idata = idata + 1
   23201       717712 :          data_tmp = full_data(idata)
   23202       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23203       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23204       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23205       717712 :          idata = idata + 1
   23206       717712 :          data_tmp = full_data(idata)
   23207              :          data_tmp = ISHFT(data_tmp, 32)
   23208       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23209       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23210       717712 :          ipack = ipack + 1
   23211       717712 :          packed_data(ipack) = pack_tmp
   23212       717712 :          data_tmp = full_data(idata)
   23213       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23214       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23215       717712 :          idata = idata + 1
   23216       717712 :          data_tmp = full_data(idata)
   23217       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23218       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23219       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23220       717712 :          idata = idata + 1
   23221       717712 :          data_tmp = full_data(idata)
   23222              :          data_tmp = ISHFT(data_tmp, 32)
   23223       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23224       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23225       717712 :          ipack = ipack + 1
   23226       717712 :          packed_data(ipack) = pack_tmp
   23227       717712 :          data_tmp = full_data(idata)
   23228       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23229       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23230       717712 :          idata = idata + 1
   23231       717712 :          data_tmp = full_data(idata)
   23232       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23233       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23234       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23235       717712 :          idata = idata + 1
   23236       717712 :          data_tmp = full_data(idata)
   23237              :          data_tmp = ISHFT(data_tmp, 32)
   23238       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23239       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23240       717712 :          ipack = ipack + 1
   23241       717712 :          packed_data(ipack) = pack_tmp
   23242       717712 :          data_tmp = full_data(idata)
   23243       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23244       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23245       717712 :          idata = idata + 1
   23246       717712 :          data_tmp = full_data(idata)
   23247       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23248       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23249       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23250       717712 :          idata = idata + 1
   23251       717712 :          data_tmp = full_data(idata)
   23252              :          data_tmp = ISHFT(data_tmp, 32)
   23253       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23254       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23255       717712 :          ipack = ipack + 1
   23256       717712 :          packed_data(ipack) = pack_tmp
   23257       717712 :          data_tmp = full_data(idata)
   23258       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23259       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23260       717712 :          idata = idata + 1
   23261       717712 :          data_tmp = full_data(idata)
   23262       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23263       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23264       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23265       717712 :          idata = idata + 1
   23266       717712 :          data_tmp = full_data(idata)
   23267              :          data_tmp = ISHFT(data_tmp, 32)
   23268       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23269       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23270       717712 :          ipack = ipack + 1
   23271       717712 :          packed_data(ipack) = pack_tmp
   23272       717712 :          data_tmp = full_data(idata)
   23273       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23274       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23275       717712 :          idata = idata + 1
   23276       717712 :          data_tmp = full_data(idata)
   23277       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23278       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23279       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23280       717712 :          idata = idata + 1
   23281       717712 :          data_tmp = full_data(idata)
   23282              :          data_tmp = ISHFT(data_tmp, 32)
   23283       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23284       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23285       717712 :          ipack = ipack + 1
   23286       717712 :          packed_data(ipack) = pack_tmp
   23287       717712 :          data_tmp = full_data(idata)
   23288       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23289       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23290       717712 :          idata = idata + 1
   23291       717712 :          data_tmp = full_data(idata)
   23292       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23293       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23294       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23295       717712 :          idata = idata + 1
   23296       717712 :          data_tmp = full_data(idata)
   23297              :          data_tmp = ISHFT(data_tmp, 32)
   23298       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23299       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23300       717712 :          ipack = ipack + 1
   23301       717712 :          packed_data(ipack) = pack_tmp
   23302       717712 :          data_tmp = full_data(idata)
   23303       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23304       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23305       717712 :          idata = idata + 1
   23306       717712 :          data_tmp = full_data(idata)
   23307       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23308       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23309       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23310       717712 :          idata = idata + 1
   23311       717712 :          data_tmp = full_data(idata)
   23312              :          data_tmp = ISHFT(data_tmp, 32)
   23313       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23314       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23315       717712 :          ipack = ipack + 1
   23316       717712 :          packed_data(ipack) = pack_tmp
   23317       717712 :          data_tmp = full_data(idata)
   23318       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23319       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23320       717712 :          idata = idata + 1
   23321       717712 :          data_tmp = full_data(idata)
   23322       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23323       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23324       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23325       717712 :          idata = idata + 1
   23326       717712 :          data_tmp = full_data(idata)
   23327              :          data_tmp = ISHFT(data_tmp, 32)
   23328       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23329       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23330       717712 :          ipack = ipack + 1
   23331       717712 :          packed_data(ipack) = pack_tmp
   23332       717712 :          data_tmp = full_data(idata)
   23333       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23334       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23335       717712 :          idata = idata + 1
   23336       717712 :          data_tmp = full_data(idata)
   23337       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23338       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23339       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23340       717712 :          idata = idata + 1
   23341       717712 :          data_tmp = full_data(idata)
   23342              :          data_tmp = ISHFT(data_tmp, 32)
   23343       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23344       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23345       717712 :          ipack = ipack + 1
   23346       717712 :          packed_data(ipack) = pack_tmp
   23347       717712 :          data_tmp = full_data(idata)
   23348       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23349       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23350       717712 :          idata = idata + 1
   23351       717712 :          data_tmp = full_data(idata)
   23352       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23353       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23354       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23355       717712 :          idata = idata + 1
   23356       717712 :          data_tmp = full_data(idata)
   23357              :          data_tmp = ISHFT(data_tmp, 32)
   23358       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23359       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23360       717712 :          ipack = ipack + 1
   23361       717712 :          packed_data(ipack) = pack_tmp
   23362       717712 :          data_tmp = full_data(idata)
   23363       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23364       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23365       717712 :          idata = idata + 1
   23366       717712 :          data_tmp = full_data(idata)
   23367       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23368       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23369       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23370       717712 :          idata = idata + 1
   23371       717712 :          data_tmp = full_data(idata)
   23372              :          data_tmp = ISHFT(data_tmp, 32)
   23373       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23374       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23375       717712 :          ipack = ipack + 1
   23376       717712 :          packed_data(ipack) = pack_tmp
   23377       717712 :          data_tmp = full_data(idata)
   23378       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23379       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23380       717712 :          idata = idata + 1
   23381       717712 :          data_tmp = full_data(idata)
   23382       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23383       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23384       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23385       717712 :          idata = idata + 1
   23386       717712 :          data_tmp = full_data(idata)
   23387              :          data_tmp = ISHFT(data_tmp, 32)
   23388       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23389       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23390       717712 :          ipack = ipack + 1
   23391       717712 :          packed_data(ipack) = pack_tmp
   23392       717712 :          data_tmp = full_data(idata)
   23393       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23394       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23395       717712 :          idata = idata + 1
   23396       717712 :          data_tmp = full_data(idata)
   23397       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23398       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23399       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23400       717712 :          idata = idata + 1
   23401       717712 :          data_tmp = full_data(idata)
   23402              :          data_tmp = ISHFT(data_tmp, 32)
   23403       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23404       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23405       717712 :          ipack = ipack + 1
   23406       717712 :          packed_data(ipack) = pack_tmp
   23407       717712 :          data_tmp = full_data(idata)
   23408       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23409       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23410       717712 :          idata = idata + 1
   23411       717712 :          data_tmp = full_data(idata)
   23412       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23413       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23414       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23415       717712 :          idata = idata + 1
   23416       717712 :          data_tmp = full_data(idata)
   23417              :          data_tmp = ISHFT(data_tmp, 32)
   23418       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23419       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23420       717712 :          ipack = ipack + 1
   23421       717712 :          packed_data(ipack) = pack_tmp
   23422       717712 :          data_tmp = full_data(idata)
   23423       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23424       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23425       717712 :          idata = idata + 1
   23426       717712 :          data_tmp = full_data(idata)
   23427       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23428       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23429       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23430       717712 :          idata = idata + 1
   23431       717712 :          data_tmp = full_data(idata)
   23432              :          data_tmp = ISHFT(data_tmp, 32)
   23433       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23434       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23435       717712 :          ipack = ipack + 1
   23436       717712 :          packed_data(ipack) = pack_tmp
   23437       717712 :          data_tmp = full_data(idata)
   23438       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23439       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23440       717712 :          idata = idata + 1
   23441       717712 :          data_tmp = full_data(idata)
   23442       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23443       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23444       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23445       717712 :          idata = idata + 1
   23446       717712 :          data_tmp = full_data(idata)
   23447              :          data_tmp = ISHFT(data_tmp, 32)
   23448       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23449       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23450       717712 :          ipack = ipack + 1
   23451       717712 :          packed_data(ipack) = pack_tmp
   23452       717712 :          data_tmp = full_data(idata)
   23453       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23454       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23455       717712 :          idata = idata + 1
   23456       717712 :          data_tmp = full_data(idata)
   23457       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23458       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23459       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23460       717712 :          idata = idata + 1
   23461       717712 :          data_tmp = full_data(idata)
   23462              :          data_tmp = ISHFT(data_tmp, 32)
   23463       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23464       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23465       717712 :          ipack = ipack + 1
   23466       717712 :          packed_data(ipack) = pack_tmp
   23467       717712 :          data_tmp = full_data(idata)
   23468       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23469       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23470       717712 :          idata = idata + 1
   23471       717712 :          data_tmp = full_data(idata)
   23472       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23473       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23474       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23475       717712 :          idata = idata + 1
   23476       717712 :          data_tmp = full_data(idata)
   23477              :          data_tmp = ISHFT(data_tmp, 32)
   23478       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23479       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23480       717712 :          ipack = ipack + 1
   23481       717712 :          packed_data(ipack) = pack_tmp
   23482       717712 :          data_tmp = full_data(idata)
   23483       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23484       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23485       717712 :          idata = idata + 1
   23486       717712 :          data_tmp = full_data(idata)
   23487       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23488       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23489       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23490       717712 :          idata = idata + 1
   23491       717712 :          data_tmp = full_data(idata)
   23492              :          data_tmp = ISHFT(data_tmp, 32)
   23493       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23494       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23495       717712 :          ipack = ipack + 1
   23496       717712 :          packed_data(ipack) = pack_tmp
   23497       717712 :          data_tmp = full_data(idata)
   23498       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23499       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23500       717712 :          idata = idata + 1
   23501       717712 :          data_tmp = full_data(idata)
   23502       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23503       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23504       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23505       717712 :          idata = idata + 1
   23506       717712 :          data_tmp = full_data(idata)
   23507              :          data_tmp = ISHFT(data_tmp, 32)
   23508       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23509       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23510       717712 :          ipack = ipack + 1
   23511       717712 :          packed_data(ipack) = pack_tmp
   23512       717712 :          data_tmp = full_data(idata)
   23513       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23514       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23515       717712 :          idata = idata + 1
   23516       717712 :          data_tmp = full_data(idata)
   23517       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23518       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23519       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23520       717712 :          idata = idata + 1
   23521       717712 :          data_tmp = full_data(idata)
   23522              :          data_tmp = ISHFT(data_tmp, 32)
   23523       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23524       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23525       717712 :          ipack = ipack + 1
   23526       717712 :          packed_data(ipack) = pack_tmp
   23527       717712 :          data_tmp = full_data(idata)
   23528       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23529       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23530       717712 :          idata = idata + 1
   23531       717712 :          data_tmp = full_data(idata)
   23532       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23533       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23534       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23535       717712 :          idata = idata + 1
   23536       717712 :          data_tmp = full_data(idata)
   23537              :          data_tmp = ISHFT(data_tmp, 32)
   23538       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23539       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23540       717712 :          ipack = ipack + 1
   23541       717712 :          packed_data(ipack) = pack_tmp
   23542       717712 :          data_tmp = full_data(idata)
   23543       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23544       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23545       717712 :          idata = idata + 1
   23546       717712 :          data_tmp = full_data(idata)
   23547       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23548       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23549       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23550       717712 :          idata = idata + 1
   23551       717712 :          data_tmp = full_data(idata)
   23552              :          data_tmp = ISHFT(data_tmp, 32)
   23553       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23554       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23555       717712 :          ipack = ipack + 1
   23556       717712 :          packed_data(ipack) = pack_tmp
   23557       717712 :          data_tmp = full_data(idata)
   23558       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23559       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23560       717712 :          idata = idata + 1
   23561       717712 :          data_tmp = full_data(idata)
   23562       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23563       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23564       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23565       717712 :          idata = idata + 1
   23566       717712 :          data_tmp = full_data(idata)
   23567              :          data_tmp = ISHFT(data_tmp, 32)
   23568       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23569       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23570       717712 :          ipack = ipack + 1
   23571       717712 :          packed_data(ipack) = pack_tmp
   23572       717712 :          data_tmp = full_data(idata)
   23573       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23574       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23575       717712 :          idata = idata + 1
   23576       717712 :          data_tmp = full_data(idata)
   23577       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23578       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23579       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23580       717712 :          idata = idata + 1
   23581       717712 :          data_tmp = full_data(idata)
   23582              :          data_tmp = ISHFT(data_tmp, 32)
   23583       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23584       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23585       717712 :          ipack = ipack + 1
   23586       717712 :          packed_data(ipack) = pack_tmp
   23587       717712 :          data_tmp = full_data(idata)
   23588       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23589       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23590       717712 :          idata = idata + 1
   23591       717712 :          data_tmp = full_data(idata)
   23592       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23593       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23594       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23595       717712 :          idata = idata + 1
   23596       717712 :          data_tmp = full_data(idata)
   23597              :          data_tmp = ISHFT(data_tmp, 32)
   23598       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23599       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23600       717712 :          ipack = ipack + 1
   23601       717712 :          packed_data(ipack) = pack_tmp
   23602       717712 :          data_tmp = full_data(idata)
   23603       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23604       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23605       717712 :          idata = idata + 1
   23606       717712 :          data_tmp = full_data(idata)
   23607       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23608       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23609       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23610       717712 :          idata = idata + 1
   23611       717712 :          data_tmp = full_data(idata)
   23612              :          data_tmp = ISHFT(data_tmp, 32)
   23613       717712 :          data_tmp = IAND(data_tmp, mask_left(0))
   23614       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23615       717712 :          ipack = ipack + 1
   23616       717712 :          packed_data(ipack) = pack_tmp
   23617       717712 :          data_tmp = full_data(idata)
   23618       717712 :          pack_tmp = ISHFT(data_tmp, 32)
   23619       717712 :          pack_tmp = ISHFT(pack_tmp, -32)
   23620       717712 :          idata = idata + 1
   23621       717712 :          data_tmp = full_data(idata)
   23622       717712 :          data_tmp = ISHFT(data_tmp, 32)
   23623       717712 :          pack_tmp = IOR(pack_tmp, data_tmp)
   23624              :          pack_tmp = ISHFT(pack_tmp, 0)
   23625       717712 :          pack_tmp = ISHFT(pack_tmp, 0)
   23626       717712 :          ipack = ipack + 1
   23627       728543 :          packed_data(ipack) = pack_tmp
   23628              :       END DO
   23629        55688 :       IF (Ndata_rep < Ndata) THEN
   23630            0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   23631              :       END IF
   23632        55688 :    END SUBROUTINE ints2bits_32
   23633              : 
   23634              : ! **************************************************************************************************
   23635              : !> \brief ...
   23636              : !> \param Ndata ...
   23637              : !> \param packed_data ...
   23638              : !> \param full_data ...
   23639              : ! **************************************************************************************************
   23640       375620 :    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       375620 :       ipack = 0
   23651       375620 :       idata = 0
   23652       375620 :       pack_tmp = 0
   23653       375620 :       Ndata_rep = (Ndata/64)*64
   23654       375620 :       DO kdata = 1, Ndata_rep, 64
   23655      4474400 :          idata = idata + 1
   23656      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23657      4474400 :          ipack = ipack + 1
   23658      4474400 :          pack_tmp = packed_data(ipack)
   23659      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23660      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23661      4474400 :          idata = idata + 1
   23662      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23663      4474400 :          full_data(idata) = data_tmp
   23664      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23665      4474400 :          idata = idata + 1
   23666      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23667      4474400 :          ipack = ipack + 1
   23668      4474400 :          pack_tmp = packed_data(ipack)
   23669      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23670      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23671      4474400 :          idata = idata + 1
   23672      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23673      4474400 :          full_data(idata) = data_tmp
   23674      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23675      4474400 :          idata = idata + 1
   23676      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23677      4474400 :          ipack = ipack + 1
   23678      4474400 :          pack_tmp = packed_data(ipack)
   23679      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23680      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23681      4474400 :          idata = idata + 1
   23682      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23683      4474400 :          full_data(idata) = data_tmp
   23684      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23685      4474400 :          idata = idata + 1
   23686      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23687      4474400 :          ipack = ipack + 1
   23688      4474400 :          pack_tmp = packed_data(ipack)
   23689      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23690      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23691      4474400 :          idata = idata + 1
   23692      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23693      4474400 :          full_data(idata) = data_tmp
   23694      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23695      4474400 :          idata = idata + 1
   23696      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23697      4474400 :          ipack = ipack + 1
   23698      4474400 :          pack_tmp = packed_data(ipack)
   23699      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23700      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23701      4474400 :          idata = idata + 1
   23702      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23703      4474400 :          full_data(idata) = data_tmp
   23704      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23705      4474400 :          idata = idata + 1
   23706      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23707      4474400 :          ipack = ipack + 1
   23708      4474400 :          pack_tmp = packed_data(ipack)
   23709      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23710      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23711      4474400 :          idata = idata + 1
   23712      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23713      4474400 :          full_data(idata) = data_tmp
   23714      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23715      4474400 :          idata = idata + 1
   23716      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23717      4474400 :          ipack = ipack + 1
   23718      4474400 :          pack_tmp = packed_data(ipack)
   23719      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23720      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23721      4474400 :          idata = idata + 1
   23722      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23723      4474400 :          full_data(idata) = data_tmp
   23724      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23725      4474400 :          idata = idata + 1
   23726      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23727      4474400 :          ipack = ipack + 1
   23728      4474400 :          pack_tmp = packed_data(ipack)
   23729      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23730      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23731      4474400 :          idata = idata + 1
   23732      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23733      4474400 :          full_data(idata) = data_tmp
   23734      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23735      4474400 :          idata = idata + 1
   23736      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23737      4474400 :          ipack = ipack + 1
   23738      4474400 :          pack_tmp = packed_data(ipack)
   23739      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23740      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23741      4474400 :          idata = idata + 1
   23742      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23743      4474400 :          full_data(idata) = data_tmp
   23744      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23745      4474400 :          idata = idata + 1
   23746      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23747      4474400 :          ipack = ipack + 1
   23748      4474400 :          pack_tmp = packed_data(ipack)
   23749      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23750      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23751      4474400 :          idata = idata + 1
   23752      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23753      4474400 :          full_data(idata) = data_tmp
   23754      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23755      4474400 :          idata = idata + 1
   23756      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23757      4474400 :          ipack = ipack + 1
   23758      4474400 :          pack_tmp = packed_data(ipack)
   23759      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23760      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23761      4474400 :          idata = idata + 1
   23762      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23763      4474400 :          full_data(idata) = data_tmp
   23764      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23765      4474400 :          idata = idata + 1
   23766      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23767      4474400 :          ipack = ipack + 1
   23768      4474400 :          pack_tmp = packed_data(ipack)
   23769      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23770      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23771      4474400 :          idata = idata + 1
   23772      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23773      4474400 :          full_data(idata) = data_tmp
   23774      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23775      4474400 :          idata = idata + 1
   23776      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23777      4474400 :          ipack = ipack + 1
   23778      4474400 :          pack_tmp = packed_data(ipack)
   23779      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23780      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23781      4474400 :          idata = idata + 1
   23782      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23783      4474400 :          full_data(idata) = data_tmp
   23784      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23785      4474400 :          idata = idata + 1
   23786      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23787      4474400 :          ipack = ipack + 1
   23788      4474400 :          pack_tmp = packed_data(ipack)
   23789      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23790      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23791      4474400 :          idata = idata + 1
   23792      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23793      4474400 :          full_data(idata) = data_tmp
   23794      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23795      4474400 :          idata = idata + 1
   23796      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23797      4474400 :          ipack = ipack + 1
   23798      4474400 :          pack_tmp = packed_data(ipack)
   23799      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23800      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23801      4474400 :          idata = idata + 1
   23802      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23803      4474400 :          full_data(idata) = data_tmp
   23804      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23805      4474400 :          idata = idata + 1
   23806      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23807      4474400 :          ipack = ipack + 1
   23808      4474400 :          pack_tmp = packed_data(ipack)
   23809      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23810      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23811      4474400 :          idata = idata + 1
   23812      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23813      4474400 :          full_data(idata) = data_tmp
   23814      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23815      4474400 :          idata = idata + 1
   23816      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23817      4474400 :          ipack = ipack + 1
   23818      4474400 :          pack_tmp = packed_data(ipack)
   23819      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23820      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23821      4474400 :          idata = idata + 1
   23822      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23823      4474400 :          full_data(idata) = data_tmp
   23824      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23825      4474400 :          idata = idata + 1
   23826      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23827      4474400 :          ipack = ipack + 1
   23828      4474400 :          pack_tmp = packed_data(ipack)
   23829      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23830      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23831      4474400 :          idata = idata + 1
   23832      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23833      4474400 :          full_data(idata) = data_tmp
   23834      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23835      4474400 :          idata = idata + 1
   23836      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23837      4474400 :          ipack = ipack + 1
   23838      4474400 :          pack_tmp = packed_data(ipack)
   23839      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23840      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23841      4474400 :          idata = idata + 1
   23842      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23843      4474400 :          full_data(idata) = data_tmp
   23844      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23845      4474400 :          idata = idata + 1
   23846      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23847      4474400 :          ipack = ipack + 1
   23848      4474400 :          pack_tmp = packed_data(ipack)
   23849      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23850      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23851      4474400 :          idata = idata + 1
   23852      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23853      4474400 :          full_data(idata) = data_tmp
   23854      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23855      4474400 :          idata = idata + 1
   23856      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23857      4474400 :          ipack = ipack + 1
   23858      4474400 :          pack_tmp = packed_data(ipack)
   23859      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23860      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23861      4474400 :          idata = idata + 1
   23862      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23863      4474400 :          full_data(idata) = data_tmp
   23864      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23865      4474400 :          idata = idata + 1
   23866      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23867      4474400 :          ipack = ipack + 1
   23868      4474400 :          pack_tmp = packed_data(ipack)
   23869      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23870      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23871      4474400 :          idata = idata + 1
   23872      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23873      4474400 :          full_data(idata) = data_tmp
   23874      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23875      4474400 :          idata = idata + 1
   23876      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23877      4474400 :          ipack = ipack + 1
   23878      4474400 :          pack_tmp = packed_data(ipack)
   23879      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23880      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23881      4474400 :          idata = idata + 1
   23882      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23883      4474400 :          full_data(idata) = data_tmp
   23884      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23885      4474400 :          idata = idata + 1
   23886      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23887      4474400 :          ipack = ipack + 1
   23888      4474400 :          pack_tmp = packed_data(ipack)
   23889      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23890      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23891      4474400 :          idata = idata + 1
   23892      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23893      4474400 :          full_data(idata) = data_tmp
   23894      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23895      4474400 :          idata = idata + 1
   23896      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23897      4474400 :          ipack = ipack + 1
   23898      4474400 :          pack_tmp = packed_data(ipack)
   23899      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23900      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23901      4474400 :          idata = idata + 1
   23902      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23903      4474400 :          full_data(idata) = data_tmp
   23904      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23905      4474400 :          idata = idata + 1
   23906      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23907      4474400 :          ipack = ipack + 1
   23908      4474400 :          pack_tmp = packed_data(ipack)
   23909      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23910      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23911      4474400 :          idata = idata + 1
   23912      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23913      4474400 :          full_data(idata) = data_tmp
   23914      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23915      4474400 :          idata = idata + 1
   23916      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23917      4474400 :          ipack = ipack + 1
   23918      4474400 :          pack_tmp = packed_data(ipack)
   23919      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23920      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23921      4474400 :          idata = idata + 1
   23922      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23923      4474400 :          full_data(idata) = data_tmp
   23924      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23925      4474400 :          idata = idata + 1
   23926      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23927      4474400 :          ipack = ipack + 1
   23928      4474400 :          pack_tmp = packed_data(ipack)
   23929      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23930      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23931      4474400 :          idata = idata + 1
   23932      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23933      4474400 :          full_data(idata) = data_tmp
   23934      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23935      4474400 :          idata = idata + 1
   23936      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23937      4474400 :          ipack = ipack + 1
   23938      4474400 :          pack_tmp = packed_data(ipack)
   23939      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23940      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23941      4474400 :          idata = idata + 1
   23942      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23943      4474400 :          full_data(idata) = data_tmp
   23944      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23945      4474400 :          idata = idata + 1
   23946      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23947      4474400 :          ipack = ipack + 1
   23948      4474400 :          pack_tmp = packed_data(ipack)
   23949      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23950      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23951      4474400 :          idata = idata + 1
   23952      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23953      4474400 :          full_data(idata) = data_tmp
   23954      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23955      4474400 :          idata = idata + 1
   23956      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23957      4474400 :          ipack = ipack + 1
   23958      4474400 :          pack_tmp = packed_data(ipack)
   23959      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23960      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23961      4474400 :          idata = idata + 1
   23962      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23963      4474400 :          full_data(idata) = data_tmp
   23964      4474400 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23965      4474400 :          idata = idata + 1
   23966      4474400 :          data_tmp = ISHFT(pack_tmp, 32)
   23967      4474400 :          ipack = ipack + 1
   23968      4474400 :          pack_tmp = packed_data(ipack)
   23969      4474400 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   23970      4474400 :          pack_tmp = ISHFT(pack_tmp, -32)
   23971      4474400 :          idata = idata + 1
   23972      4474400 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   23973      4474400 :          full_data(idata) = data_tmp
   23974      4570370 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   23975              :       END DO
   23976       375620 :       IF (Ndata_rep < Ndata) THEN
   23977            0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   23978              :       END IF
   23979       375620 :    END SUBROUTINE bits2ints_32
   23980              : 
   23981              : ! **************************************************************************************************
   23982              : !> \brief ...
   23983              : !> \param Ndata ...
   23984              : !> \param packed_data ...
   23985              : !> \param full_data ...
   23986              : ! **************************************************************************************************
   23987        55545 :    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        55545 :       idata = 0
   23998        55545 :       ipack = 0
   23999        55545 :       Ndata_rep = (Ndata/64)*64
   24000        55545 :       DO kdata = 1, Ndata_rep, 64
   24001       703029 :          pack_tmp = 0
   24002       703029 :          idata = idata + 1
   24003       703029 :          data_tmp = full_data(idata)
   24004       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24005       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24006       703029 :          pack_tmp = ISHFT(pack_tmp, -31)
   24007       703029 :          idata = idata + 1
   24008       703029 :          data_tmp = full_data(idata)
   24009       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24010       703029 :          data_tmp = IAND(data_tmp, mask_left(31))
   24011       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24012       703029 :          ipack = ipack + 1
   24013       703029 :          packed_data(ipack) = pack_tmp
   24014       703029 :          data_tmp = full_data(idata)
   24015       703029 :          pack_tmp = ISHFT(data_tmp, 62)
   24016       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24017       703029 :          idata = idata + 1
   24018       703029 :          data_tmp = full_data(idata)
   24019       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24020       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24021       703029 :          pack_tmp = ISHFT(pack_tmp, -29)
   24022       703029 :          idata = idata + 1
   24023       703029 :          data_tmp = full_data(idata)
   24024       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24025       703029 :          data_tmp = IAND(data_tmp, mask_left(29))
   24026       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24027       703029 :          ipack = ipack + 1
   24028       703029 :          packed_data(ipack) = pack_tmp
   24029       703029 :          data_tmp = full_data(idata)
   24030       703029 :          pack_tmp = ISHFT(data_tmp, 60)
   24031       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24032       703029 :          idata = idata + 1
   24033       703029 :          data_tmp = full_data(idata)
   24034       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24035       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24036       703029 :          pack_tmp = ISHFT(pack_tmp, -27)
   24037       703029 :          idata = idata + 1
   24038       703029 :          data_tmp = full_data(idata)
   24039       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24040       703029 :          data_tmp = IAND(data_tmp, mask_left(27))
   24041       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24042       703029 :          ipack = ipack + 1
   24043       703029 :          packed_data(ipack) = pack_tmp
   24044       703029 :          data_tmp = full_data(idata)
   24045       703029 :          pack_tmp = ISHFT(data_tmp, 58)
   24046       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24047       703029 :          idata = idata + 1
   24048       703029 :          data_tmp = full_data(idata)
   24049       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24050       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24051       703029 :          pack_tmp = ISHFT(pack_tmp, -25)
   24052       703029 :          idata = idata + 1
   24053       703029 :          data_tmp = full_data(idata)
   24054       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24055       703029 :          data_tmp = IAND(data_tmp, mask_left(25))
   24056       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24057       703029 :          ipack = ipack + 1
   24058       703029 :          packed_data(ipack) = pack_tmp
   24059       703029 :          data_tmp = full_data(idata)
   24060       703029 :          pack_tmp = ISHFT(data_tmp, 56)
   24061       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24062       703029 :          idata = idata + 1
   24063       703029 :          data_tmp = full_data(idata)
   24064       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24065       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24066       703029 :          pack_tmp = ISHFT(pack_tmp, -23)
   24067       703029 :          idata = idata + 1
   24068       703029 :          data_tmp = full_data(idata)
   24069       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24070       703029 :          data_tmp = IAND(data_tmp, mask_left(23))
   24071       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24072       703029 :          ipack = ipack + 1
   24073       703029 :          packed_data(ipack) = pack_tmp
   24074       703029 :          data_tmp = full_data(idata)
   24075       703029 :          pack_tmp = ISHFT(data_tmp, 54)
   24076       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24077       703029 :          idata = idata + 1
   24078       703029 :          data_tmp = full_data(idata)
   24079       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24080       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24081       703029 :          pack_tmp = ISHFT(pack_tmp, -21)
   24082       703029 :          idata = idata + 1
   24083       703029 :          data_tmp = full_data(idata)
   24084       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24085       703029 :          data_tmp = IAND(data_tmp, mask_left(21))
   24086       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24087       703029 :          ipack = ipack + 1
   24088       703029 :          packed_data(ipack) = pack_tmp
   24089       703029 :          data_tmp = full_data(idata)
   24090       703029 :          pack_tmp = ISHFT(data_tmp, 52)
   24091       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24092       703029 :          idata = idata + 1
   24093       703029 :          data_tmp = full_data(idata)
   24094       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24095       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24096       703029 :          pack_tmp = ISHFT(pack_tmp, -19)
   24097       703029 :          idata = idata + 1
   24098       703029 :          data_tmp = full_data(idata)
   24099       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24100       703029 :          data_tmp = IAND(data_tmp, mask_left(19))
   24101       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24102       703029 :          ipack = ipack + 1
   24103       703029 :          packed_data(ipack) = pack_tmp
   24104       703029 :          data_tmp = full_data(idata)
   24105       703029 :          pack_tmp = ISHFT(data_tmp, 50)
   24106       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24107       703029 :          idata = idata + 1
   24108       703029 :          data_tmp = full_data(idata)
   24109       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24110       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24111       703029 :          pack_tmp = ISHFT(pack_tmp, -17)
   24112       703029 :          idata = idata + 1
   24113       703029 :          data_tmp = full_data(idata)
   24114       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24115       703029 :          data_tmp = IAND(data_tmp, mask_left(17))
   24116       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24117       703029 :          ipack = ipack + 1
   24118       703029 :          packed_data(ipack) = pack_tmp
   24119       703029 :          data_tmp = full_data(idata)
   24120       703029 :          pack_tmp = ISHFT(data_tmp, 48)
   24121       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24122       703029 :          idata = idata + 1
   24123       703029 :          data_tmp = full_data(idata)
   24124       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24125       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24126       703029 :          pack_tmp = ISHFT(pack_tmp, -15)
   24127       703029 :          idata = idata + 1
   24128       703029 :          data_tmp = full_data(idata)
   24129       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24130       703029 :          data_tmp = IAND(data_tmp, mask_left(15))
   24131       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24132       703029 :          ipack = ipack + 1
   24133       703029 :          packed_data(ipack) = pack_tmp
   24134       703029 :          data_tmp = full_data(idata)
   24135       703029 :          pack_tmp = ISHFT(data_tmp, 46)
   24136       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24137       703029 :          idata = idata + 1
   24138       703029 :          data_tmp = full_data(idata)
   24139       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24140       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24141       703029 :          pack_tmp = ISHFT(pack_tmp, -13)
   24142       703029 :          idata = idata + 1
   24143       703029 :          data_tmp = full_data(idata)
   24144       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24145       703029 :          data_tmp = IAND(data_tmp, mask_left(13))
   24146       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24147       703029 :          ipack = ipack + 1
   24148       703029 :          packed_data(ipack) = pack_tmp
   24149       703029 :          data_tmp = full_data(idata)
   24150       703029 :          pack_tmp = ISHFT(data_tmp, 44)
   24151       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24152       703029 :          idata = idata + 1
   24153       703029 :          data_tmp = full_data(idata)
   24154       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24155       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24156       703029 :          pack_tmp = ISHFT(pack_tmp, -11)
   24157       703029 :          idata = idata + 1
   24158       703029 :          data_tmp = full_data(idata)
   24159       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24160       703029 :          data_tmp = IAND(data_tmp, mask_left(11))
   24161       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24162       703029 :          ipack = ipack + 1
   24163       703029 :          packed_data(ipack) = pack_tmp
   24164       703029 :          data_tmp = full_data(idata)
   24165       703029 :          pack_tmp = ISHFT(data_tmp, 42)
   24166       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24167       703029 :          idata = idata + 1
   24168       703029 :          data_tmp = full_data(idata)
   24169       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24170       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24171       703029 :          pack_tmp = ISHFT(pack_tmp, -9)
   24172       703029 :          idata = idata + 1
   24173       703029 :          data_tmp = full_data(idata)
   24174       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24175       703029 :          data_tmp = IAND(data_tmp, mask_left(9))
   24176       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24177       703029 :          ipack = ipack + 1
   24178       703029 :          packed_data(ipack) = pack_tmp
   24179       703029 :          data_tmp = full_data(idata)
   24180       703029 :          pack_tmp = ISHFT(data_tmp, 40)
   24181       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24182       703029 :          idata = idata + 1
   24183       703029 :          data_tmp = full_data(idata)
   24184       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24185       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24186       703029 :          pack_tmp = ISHFT(pack_tmp, -7)
   24187       703029 :          idata = idata + 1
   24188       703029 :          data_tmp = full_data(idata)
   24189       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24190       703029 :          data_tmp = IAND(data_tmp, mask_left(7))
   24191       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24192       703029 :          ipack = ipack + 1
   24193       703029 :          packed_data(ipack) = pack_tmp
   24194       703029 :          data_tmp = full_data(idata)
   24195       703029 :          pack_tmp = ISHFT(data_tmp, 38)
   24196       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24197       703029 :          idata = idata + 1
   24198       703029 :          data_tmp = full_data(idata)
   24199       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24200       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24201       703029 :          pack_tmp = ISHFT(pack_tmp, -5)
   24202       703029 :          idata = idata + 1
   24203       703029 :          data_tmp = full_data(idata)
   24204       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24205       703029 :          data_tmp = IAND(data_tmp, mask_left(5))
   24206       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24207       703029 :          ipack = ipack + 1
   24208       703029 :          packed_data(ipack) = pack_tmp
   24209       703029 :          data_tmp = full_data(idata)
   24210       703029 :          pack_tmp = ISHFT(data_tmp, 36)
   24211       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24212       703029 :          idata = idata + 1
   24213       703029 :          data_tmp = full_data(idata)
   24214       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24215       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24216       703029 :          pack_tmp = ISHFT(pack_tmp, -3)
   24217       703029 :          idata = idata + 1
   24218       703029 :          data_tmp = full_data(idata)
   24219       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24220       703029 :          data_tmp = IAND(data_tmp, mask_left(3))
   24221       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24222       703029 :          ipack = ipack + 1
   24223       703029 :          packed_data(ipack) = pack_tmp
   24224       703029 :          data_tmp = full_data(idata)
   24225       703029 :          pack_tmp = ISHFT(data_tmp, 34)
   24226       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24227       703029 :          idata = idata + 1
   24228       703029 :          data_tmp = full_data(idata)
   24229       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24230       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24231       703029 :          pack_tmp = ISHFT(pack_tmp, -1)
   24232       703029 :          idata = idata + 1
   24233       703029 :          data_tmp = full_data(idata)
   24234       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24235       703029 :          data_tmp = IAND(data_tmp, mask_left(1))
   24236       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24237       703029 :          ipack = ipack + 1
   24238       703029 :          packed_data(ipack) = pack_tmp
   24239       703029 :          data_tmp = full_data(idata)
   24240       703029 :          pack_tmp = ISHFT(data_tmp, 32)
   24241       703029 :          pack_tmp = ISHFT(pack_tmp, -32)
   24242       703029 :          idata = idata + 1
   24243       703029 :          data_tmp = full_data(idata)
   24244       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24245       703029 :          data_tmp = IAND(data_tmp, mask_left(32))
   24246       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24247       703029 :          ipack = ipack + 1
   24248       703029 :          packed_data(ipack) = pack_tmp
   24249       703029 :          data_tmp = full_data(idata)
   24250       703029 :          pack_tmp = ISHFT(data_tmp, 63)
   24251       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24252       703029 :          idata = idata + 1
   24253       703029 :          data_tmp = full_data(idata)
   24254       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24255       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24256       703029 :          pack_tmp = ISHFT(pack_tmp, -30)
   24257       703029 :          idata = idata + 1
   24258       703029 :          data_tmp = full_data(idata)
   24259       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24260       703029 :          data_tmp = IAND(data_tmp, mask_left(30))
   24261       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24262       703029 :          ipack = ipack + 1
   24263       703029 :          packed_data(ipack) = pack_tmp
   24264       703029 :          data_tmp = full_data(idata)
   24265       703029 :          pack_tmp = ISHFT(data_tmp, 61)
   24266       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24267       703029 :          idata = idata + 1
   24268       703029 :          data_tmp = full_data(idata)
   24269       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24270       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24271       703029 :          pack_tmp = ISHFT(pack_tmp, -28)
   24272       703029 :          idata = idata + 1
   24273       703029 :          data_tmp = full_data(idata)
   24274       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24275       703029 :          data_tmp = IAND(data_tmp, mask_left(28))
   24276       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24277       703029 :          ipack = ipack + 1
   24278       703029 :          packed_data(ipack) = pack_tmp
   24279       703029 :          data_tmp = full_data(idata)
   24280       703029 :          pack_tmp = ISHFT(data_tmp, 59)
   24281       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24282       703029 :          idata = idata + 1
   24283       703029 :          data_tmp = full_data(idata)
   24284       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24285       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24286       703029 :          pack_tmp = ISHFT(pack_tmp, -26)
   24287       703029 :          idata = idata + 1
   24288       703029 :          data_tmp = full_data(idata)
   24289       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24290       703029 :          data_tmp = IAND(data_tmp, mask_left(26))
   24291       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24292       703029 :          ipack = ipack + 1
   24293       703029 :          packed_data(ipack) = pack_tmp
   24294       703029 :          data_tmp = full_data(idata)
   24295       703029 :          pack_tmp = ISHFT(data_tmp, 57)
   24296       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24297       703029 :          idata = idata + 1
   24298       703029 :          data_tmp = full_data(idata)
   24299       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24300       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24301       703029 :          pack_tmp = ISHFT(pack_tmp, -24)
   24302       703029 :          idata = idata + 1
   24303       703029 :          data_tmp = full_data(idata)
   24304       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24305       703029 :          data_tmp = IAND(data_tmp, mask_left(24))
   24306       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24307       703029 :          ipack = ipack + 1
   24308       703029 :          packed_data(ipack) = pack_tmp
   24309       703029 :          data_tmp = full_data(idata)
   24310       703029 :          pack_tmp = ISHFT(data_tmp, 55)
   24311       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24312       703029 :          idata = idata + 1
   24313       703029 :          data_tmp = full_data(idata)
   24314       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24315       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24316       703029 :          pack_tmp = ISHFT(pack_tmp, -22)
   24317       703029 :          idata = idata + 1
   24318       703029 :          data_tmp = full_data(idata)
   24319       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24320       703029 :          data_tmp = IAND(data_tmp, mask_left(22))
   24321       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24322       703029 :          ipack = ipack + 1
   24323       703029 :          packed_data(ipack) = pack_tmp
   24324       703029 :          data_tmp = full_data(idata)
   24325       703029 :          pack_tmp = ISHFT(data_tmp, 53)
   24326       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24327       703029 :          idata = idata + 1
   24328       703029 :          data_tmp = full_data(idata)
   24329       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24330       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24331       703029 :          pack_tmp = ISHFT(pack_tmp, -20)
   24332       703029 :          idata = idata + 1
   24333       703029 :          data_tmp = full_data(idata)
   24334       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24335       703029 :          data_tmp = IAND(data_tmp, mask_left(20))
   24336       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24337       703029 :          ipack = ipack + 1
   24338       703029 :          packed_data(ipack) = pack_tmp
   24339       703029 :          data_tmp = full_data(idata)
   24340       703029 :          pack_tmp = ISHFT(data_tmp, 51)
   24341       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24342       703029 :          idata = idata + 1
   24343       703029 :          data_tmp = full_data(idata)
   24344       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24345       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24346       703029 :          pack_tmp = ISHFT(pack_tmp, -18)
   24347       703029 :          idata = idata + 1
   24348       703029 :          data_tmp = full_data(idata)
   24349       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24350       703029 :          data_tmp = IAND(data_tmp, mask_left(18))
   24351       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24352       703029 :          ipack = ipack + 1
   24353       703029 :          packed_data(ipack) = pack_tmp
   24354       703029 :          data_tmp = full_data(idata)
   24355       703029 :          pack_tmp = ISHFT(data_tmp, 49)
   24356       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24357       703029 :          idata = idata + 1
   24358       703029 :          data_tmp = full_data(idata)
   24359       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24360       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24361       703029 :          pack_tmp = ISHFT(pack_tmp, -16)
   24362       703029 :          idata = idata + 1
   24363       703029 :          data_tmp = full_data(idata)
   24364       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24365       703029 :          data_tmp = IAND(data_tmp, mask_left(16))
   24366       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24367       703029 :          ipack = ipack + 1
   24368       703029 :          packed_data(ipack) = pack_tmp
   24369       703029 :          data_tmp = full_data(idata)
   24370       703029 :          pack_tmp = ISHFT(data_tmp, 47)
   24371       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24372       703029 :          idata = idata + 1
   24373       703029 :          data_tmp = full_data(idata)
   24374       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24375       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24376       703029 :          pack_tmp = ISHFT(pack_tmp, -14)
   24377       703029 :          idata = idata + 1
   24378       703029 :          data_tmp = full_data(idata)
   24379       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24380       703029 :          data_tmp = IAND(data_tmp, mask_left(14))
   24381       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24382       703029 :          ipack = ipack + 1
   24383       703029 :          packed_data(ipack) = pack_tmp
   24384       703029 :          data_tmp = full_data(idata)
   24385       703029 :          pack_tmp = ISHFT(data_tmp, 45)
   24386       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24387       703029 :          idata = idata + 1
   24388       703029 :          data_tmp = full_data(idata)
   24389       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24390       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24391       703029 :          pack_tmp = ISHFT(pack_tmp, -12)
   24392       703029 :          idata = idata + 1
   24393       703029 :          data_tmp = full_data(idata)
   24394       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24395       703029 :          data_tmp = IAND(data_tmp, mask_left(12))
   24396       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24397       703029 :          ipack = ipack + 1
   24398       703029 :          packed_data(ipack) = pack_tmp
   24399       703029 :          data_tmp = full_data(idata)
   24400       703029 :          pack_tmp = ISHFT(data_tmp, 43)
   24401       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24402       703029 :          idata = idata + 1
   24403       703029 :          data_tmp = full_data(idata)
   24404       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24405       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24406       703029 :          pack_tmp = ISHFT(pack_tmp, -10)
   24407       703029 :          idata = idata + 1
   24408       703029 :          data_tmp = full_data(idata)
   24409       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24410       703029 :          data_tmp = IAND(data_tmp, mask_left(10))
   24411       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24412       703029 :          ipack = ipack + 1
   24413       703029 :          packed_data(ipack) = pack_tmp
   24414       703029 :          data_tmp = full_data(idata)
   24415       703029 :          pack_tmp = ISHFT(data_tmp, 41)
   24416       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24417       703029 :          idata = idata + 1
   24418       703029 :          data_tmp = full_data(idata)
   24419       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24420       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24421       703029 :          pack_tmp = ISHFT(pack_tmp, -8)
   24422       703029 :          idata = idata + 1
   24423       703029 :          data_tmp = full_data(idata)
   24424       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24425       703029 :          data_tmp = IAND(data_tmp, mask_left(8))
   24426       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24427       703029 :          ipack = ipack + 1
   24428       703029 :          packed_data(ipack) = pack_tmp
   24429       703029 :          data_tmp = full_data(idata)
   24430       703029 :          pack_tmp = ISHFT(data_tmp, 39)
   24431       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24432       703029 :          idata = idata + 1
   24433       703029 :          data_tmp = full_data(idata)
   24434       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24435       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24436       703029 :          pack_tmp = ISHFT(pack_tmp, -6)
   24437       703029 :          idata = idata + 1
   24438       703029 :          data_tmp = full_data(idata)
   24439       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24440       703029 :          data_tmp = IAND(data_tmp, mask_left(6))
   24441       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24442       703029 :          ipack = ipack + 1
   24443       703029 :          packed_data(ipack) = pack_tmp
   24444       703029 :          data_tmp = full_data(idata)
   24445       703029 :          pack_tmp = ISHFT(data_tmp, 37)
   24446       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24447       703029 :          idata = idata + 1
   24448       703029 :          data_tmp = full_data(idata)
   24449       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24450       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24451       703029 :          pack_tmp = ISHFT(pack_tmp, -4)
   24452       703029 :          idata = idata + 1
   24453       703029 :          data_tmp = full_data(idata)
   24454       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24455       703029 :          data_tmp = IAND(data_tmp, mask_left(4))
   24456       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24457       703029 :          ipack = ipack + 1
   24458       703029 :          packed_data(ipack) = pack_tmp
   24459       703029 :          data_tmp = full_data(idata)
   24460       703029 :          pack_tmp = ISHFT(data_tmp, 35)
   24461       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24462       703029 :          idata = idata + 1
   24463       703029 :          data_tmp = full_data(idata)
   24464       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24465       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24466       703029 :          pack_tmp = ISHFT(pack_tmp, -2)
   24467       703029 :          idata = idata + 1
   24468       703029 :          data_tmp = full_data(idata)
   24469       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24470       703029 :          data_tmp = IAND(data_tmp, mask_left(2))
   24471       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24472       703029 :          ipack = ipack + 1
   24473       703029 :          packed_data(ipack) = pack_tmp
   24474       703029 :          data_tmp = full_data(idata)
   24475       703029 :          pack_tmp = ISHFT(data_tmp, 33)
   24476       703029 :          pack_tmp = ISHFT(pack_tmp, -33)
   24477       703029 :          idata = idata + 1
   24478       703029 :          data_tmp = full_data(idata)
   24479       703029 :          data_tmp = ISHFT(data_tmp, 31)
   24480       703029 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24481              :          pack_tmp = ISHFT(pack_tmp, 0)
   24482       703029 :          pack_tmp = ISHFT(pack_tmp, 0)
   24483       703029 :          ipack = ipack + 1
   24484       706163 :          packed_data(ipack) = pack_tmp
   24485              :       END DO
   24486        55545 :       IF (Ndata_rep < Ndata) THEN
   24487        21846 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   24488              :       END IF
   24489        55545 :    END SUBROUTINE ints2bits_33
   24490              : 
   24491              : ! **************************************************************************************************
   24492              : !> \brief ...
   24493              : !> \param Ndata ...
   24494              : !> \param packed_data ...
   24495              : !> \param full_data ...
   24496              : ! **************************************************************************************************
   24497       277566 :    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       277566 :       ipack = 0
   24508       277566 :       idata = 0
   24509       277566 :       pack_tmp = 0
   24510       277566 :       Ndata_rep = (Ndata/64)*64
   24511       277566 :       DO kdata = 1, Ndata_rep, 64
   24512      3360621 :          idata = idata + 1
   24513      3360621 :          data_tmp = ISHFT(pack_tmp, 33)
   24514      3360621 :          ipack = ipack + 1
   24515      3360621 :          pack_tmp = packed_data(ipack)
   24516      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   24517      3360621 :          pack_tmp = ISHFT(pack_tmp, -33)
   24518      3360621 :          idata = idata + 1
   24519      3360621 :          data_tmp = ISHFT(pack_tmp, 2)
   24520      3360621 :          ipack = ipack + 1
   24521      3360621 :          pack_tmp = packed_data(ipack)
   24522      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   24523      3360621 :          pack_tmp = ISHFT(pack_tmp, -2)
   24524      3360621 :          idata = idata + 1
   24525      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24526      3360621 :          full_data(idata) = data_tmp
   24527      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24528      3360621 :          idata = idata + 1
   24529      3360621 :          data_tmp = ISHFT(pack_tmp, 4)
   24530      3360621 :          ipack = ipack + 1
   24531      3360621 :          pack_tmp = packed_data(ipack)
   24532      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   24533      3360621 :          pack_tmp = ISHFT(pack_tmp, -4)
   24534      3360621 :          idata = idata + 1
   24535      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24536      3360621 :          full_data(idata) = data_tmp
   24537      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24538      3360621 :          idata = idata + 1
   24539      3360621 :          data_tmp = ISHFT(pack_tmp, 6)
   24540      3360621 :          ipack = ipack + 1
   24541      3360621 :          pack_tmp = packed_data(ipack)
   24542      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   24543      3360621 :          pack_tmp = ISHFT(pack_tmp, -6)
   24544      3360621 :          idata = idata + 1
   24545      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24546      3360621 :          full_data(idata) = data_tmp
   24547      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24548      3360621 :          idata = idata + 1
   24549      3360621 :          data_tmp = ISHFT(pack_tmp, 8)
   24550      3360621 :          ipack = ipack + 1
   24551      3360621 :          pack_tmp = packed_data(ipack)
   24552      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   24553      3360621 :          pack_tmp = ISHFT(pack_tmp, -8)
   24554      3360621 :          idata = idata + 1
   24555      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24556      3360621 :          full_data(idata) = data_tmp
   24557      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24558      3360621 :          idata = idata + 1
   24559      3360621 :          data_tmp = ISHFT(pack_tmp, 10)
   24560      3360621 :          ipack = ipack + 1
   24561      3360621 :          pack_tmp = packed_data(ipack)
   24562      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   24563      3360621 :          pack_tmp = ISHFT(pack_tmp, -10)
   24564      3360621 :          idata = idata + 1
   24565      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24566      3360621 :          full_data(idata) = data_tmp
   24567      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24568      3360621 :          idata = idata + 1
   24569      3360621 :          data_tmp = ISHFT(pack_tmp, 12)
   24570      3360621 :          ipack = ipack + 1
   24571      3360621 :          pack_tmp = packed_data(ipack)
   24572      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   24573      3360621 :          pack_tmp = ISHFT(pack_tmp, -12)
   24574      3360621 :          idata = idata + 1
   24575      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24576      3360621 :          full_data(idata) = data_tmp
   24577      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24578      3360621 :          idata = idata + 1
   24579      3360621 :          data_tmp = ISHFT(pack_tmp, 14)
   24580      3360621 :          ipack = ipack + 1
   24581      3360621 :          pack_tmp = packed_data(ipack)
   24582      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   24583      3360621 :          pack_tmp = ISHFT(pack_tmp, -14)
   24584      3360621 :          idata = idata + 1
   24585      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24586      3360621 :          full_data(idata) = data_tmp
   24587      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24588      3360621 :          idata = idata + 1
   24589      3360621 :          data_tmp = ISHFT(pack_tmp, 16)
   24590      3360621 :          ipack = ipack + 1
   24591      3360621 :          pack_tmp = packed_data(ipack)
   24592      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   24593      3360621 :          pack_tmp = ISHFT(pack_tmp, -16)
   24594      3360621 :          idata = idata + 1
   24595      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24596      3360621 :          full_data(idata) = data_tmp
   24597      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24598      3360621 :          idata = idata + 1
   24599      3360621 :          data_tmp = ISHFT(pack_tmp, 18)
   24600      3360621 :          ipack = ipack + 1
   24601      3360621 :          pack_tmp = packed_data(ipack)
   24602      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   24603      3360621 :          pack_tmp = ISHFT(pack_tmp, -18)
   24604      3360621 :          idata = idata + 1
   24605      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24606      3360621 :          full_data(idata) = data_tmp
   24607      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24608      3360621 :          idata = idata + 1
   24609      3360621 :          data_tmp = ISHFT(pack_tmp, 20)
   24610      3360621 :          ipack = ipack + 1
   24611      3360621 :          pack_tmp = packed_data(ipack)
   24612      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   24613      3360621 :          pack_tmp = ISHFT(pack_tmp, -20)
   24614      3360621 :          idata = idata + 1
   24615      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24616      3360621 :          full_data(idata) = data_tmp
   24617      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24618      3360621 :          idata = idata + 1
   24619      3360621 :          data_tmp = ISHFT(pack_tmp, 22)
   24620      3360621 :          ipack = ipack + 1
   24621      3360621 :          pack_tmp = packed_data(ipack)
   24622      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   24623      3360621 :          pack_tmp = ISHFT(pack_tmp, -22)
   24624      3360621 :          idata = idata + 1
   24625      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24626      3360621 :          full_data(idata) = data_tmp
   24627      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24628      3360621 :          idata = idata + 1
   24629      3360621 :          data_tmp = ISHFT(pack_tmp, 24)
   24630      3360621 :          ipack = ipack + 1
   24631      3360621 :          pack_tmp = packed_data(ipack)
   24632      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   24633      3360621 :          pack_tmp = ISHFT(pack_tmp, -24)
   24634      3360621 :          idata = idata + 1
   24635      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24636      3360621 :          full_data(idata) = data_tmp
   24637      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24638      3360621 :          idata = idata + 1
   24639      3360621 :          data_tmp = ISHFT(pack_tmp, 26)
   24640      3360621 :          ipack = ipack + 1
   24641      3360621 :          pack_tmp = packed_data(ipack)
   24642      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   24643      3360621 :          pack_tmp = ISHFT(pack_tmp, -26)
   24644      3360621 :          idata = idata + 1
   24645      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24646      3360621 :          full_data(idata) = data_tmp
   24647      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24648      3360621 :          idata = idata + 1
   24649      3360621 :          data_tmp = ISHFT(pack_tmp, 28)
   24650      3360621 :          ipack = ipack + 1
   24651      3360621 :          pack_tmp = packed_data(ipack)
   24652      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   24653      3360621 :          pack_tmp = ISHFT(pack_tmp, -28)
   24654      3360621 :          idata = idata + 1
   24655      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24656      3360621 :          full_data(idata) = data_tmp
   24657      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24658      3360621 :          idata = idata + 1
   24659      3360621 :          data_tmp = ISHFT(pack_tmp, 30)
   24660      3360621 :          ipack = ipack + 1
   24661      3360621 :          pack_tmp = packed_data(ipack)
   24662      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   24663      3360621 :          pack_tmp = ISHFT(pack_tmp, -30)
   24664      3360621 :          idata = idata + 1
   24665      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24666      3360621 :          full_data(idata) = data_tmp
   24667      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24668      3360621 :          idata = idata + 1
   24669      3360621 :          data_tmp = ISHFT(pack_tmp, 32)
   24670      3360621 :          ipack = ipack + 1
   24671      3360621 :          pack_tmp = packed_data(ipack)
   24672      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   24673      3360621 :          pack_tmp = ISHFT(pack_tmp, -32)
   24674      3360621 :          idata = idata + 1
   24675      3360621 :          data_tmp = ISHFT(pack_tmp, 1)
   24676      3360621 :          ipack = ipack + 1
   24677      3360621 :          pack_tmp = packed_data(ipack)
   24678      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   24679      3360621 :          pack_tmp = ISHFT(pack_tmp, -1)
   24680      3360621 :          idata = idata + 1
   24681      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24682      3360621 :          full_data(idata) = data_tmp
   24683      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24684      3360621 :          idata = idata + 1
   24685      3360621 :          data_tmp = ISHFT(pack_tmp, 3)
   24686      3360621 :          ipack = ipack + 1
   24687      3360621 :          pack_tmp = packed_data(ipack)
   24688      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   24689      3360621 :          pack_tmp = ISHFT(pack_tmp, -3)
   24690      3360621 :          idata = idata + 1
   24691      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24692      3360621 :          full_data(idata) = data_tmp
   24693      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24694      3360621 :          idata = idata + 1
   24695      3360621 :          data_tmp = ISHFT(pack_tmp, 5)
   24696      3360621 :          ipack = ipack + 1
   24697      3360621 :          pack_tmp = packed_data(ipack)
   24698      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   24699      3360621 :          pack_tmp = ISHFT(pack_tmp, -5)
   24700      3360621 :          idata = idata + 1
   24701      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24702      3360621 :          full_data(idata) = data_tmp
   24703      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24704      3360621 :          idata = idata + 1
   24705      3360621 :          data_tmp = ISHFT(pack_tmp, 7)
   24706      3360621 :          ipack = ipack + 1
   24707      3360621 :          pack_tmp = packed_data(ipack)
   24708      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   24709      3360621 :          pack_tmp = ISHFT(pack_tmp, -7)
   24710      3360621 :          idata = idata + 1
   24711      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24712      3360621 :          full_data(idata) = data_tmp
   24713      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24714      3360621 :          idata = idata + 1
   24715      3360621 :          data_tmp = ISHFT(pack_tmp, 9)
   24716      3360621 :          ipack = ipack + 1
   24717      3360621 :          pack_tmp = packed_data(ipack)
   24718      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   24719      3360621 :          pack_tmp = ISHFT(pack_tmp, -9)
   24720      3360621 :          idata = idata + 1
   24721      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24722      3360621 :          full_data(idata) = data_tmp
   24723      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24724      3360621 :          idata = idata + 1
   24725      3360621 :          data_tmp = ISHFT(pack_tmp, 11)
   24726      3360621 :          ipack = ipack + 1
   24727      3360621 :          pack_tmp = packed_data(ipack)
   24728      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   24729      3360621 :          pack_tmp = ISHFT(pack_tmp, -11)
   24730      3360621 :          idata = idata + 1
   24731      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24732      3360621 :          full_data(idata) = data_tmp
   24733      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24734      3360621 :          idata = idata + 1
   24735      3360621 :          data_tmp = ISHFT(pack_tmp, 13)
   24736      3360621 :          ipack = ipack + 1
   24737      3360621 :          pack_tmp = packed_data(ipack)
   24738      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   24739      3360621 :          pack_tmp = ISHFT(pack_tmp, -13)
   24740      3360621 :          idata = idata + 1
   24741      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24742      3360621 :          full_data(idata) = data_tmp
   24743      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24744      3360621 :          idata = idata + 1
   24745      3360621 :          data_tmp = ISHFT(pack_tmp, 15)
   24746      3360621 :          ipack = ipack + 1
   24747      3360621 :          pack_tmp = packed_data(ipack)
   24748      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   24749      3360621 :          pack_tmp = ISHFT(pack_tmp, -15)
   24750      3360621 :          idata = idata + 1
   24751      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24752      3360621 :          full_data(idata) = data_tmp
   24753      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24754      3360621 :          idata = idata + 1
   24755      3360621 :          data_tmp = ISHFT(pack_tmp, 17)
   24756      3360621 :          ipack = ipack + 1
   24757      3360621 :          pack_tmp = packed_data(ipack)
   24758      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   24759      3360621 :          pack_tmp = ISHFT(pack_tmp, -17)
   24760      3360621 :          idata = idata + 1
   24761      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24762      3360621 :          full_data(idata) = data_tmp
   24763      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24764      3360621 :          idata = idata + 1
   24765      3360621 :          data_tmp = ISHFT(pack_tmp, 19)
   24766      3360621 :          ipack = ipack + 1
   24767      3360621 :          pack_tmp = packed_data(ipack)
   24768      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   24769      3360621 :          pack_tmp = ISHFT(pack_tmp, -19)
   24770      3360621 :          idata = idata + 1
   24771      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24772      3360621 :          full_data(idata) = data_tmp
   24773      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24774      3360621 :          idata = idata + 1
   24775      3360621 :          data_tmp = ISHFT(pack_tmp, 21)
   24776      3360621 :          ipack = ipack + 1
   24777      3360621 :          pack_tmp = packed_data(ipack)
   24778      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   24779      3360621 :          pack_tmp = ISHFT(pack_tmp, -21)
   24780      3360621 :          idata = idata + 1
   24781      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24782      3360621 :          full_data(idata) = data_tmp
   24783      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24784      3360621 :          idata = idata + 1
   24785      3360621 :          data_tmp = ISHFT(pack_tmp, 23)
   24786      3360621 :          ipack = ipack + 1
   24787      3360621 :          pack_tmp = packed_data(ipack)
   24788      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   24789      3360621 :          pack_tmp = ISHFT(pack_tmp, -23)
   24790      3360621 :          idata = idata + 1
   24791      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24792      3360621 :          full_data(idata) = data_tmp
   24793      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24794      3360621 :          idata = idata + 1
   24795      3360621 :          data_tmp = ISHFT(pack_tmp, 25)
   24796      3360621 :          ipack = ipack + 1
   24797      3360621 :          pack_tmp = packed_data(ipack)
   24798      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   24799      3360621 :          pack_tmp = ISHFT(pack_tmp, -25)
   24800      3360621 :          idata = idata + 1
   24801      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24802      3360621 :          full_data(idata) = data_tmp
   24803      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24804      3360621 :          idata = idata + 1
   24805      3360621 :          data_tmp = ISHFT(pack_tmp, 27)
   24806      3360621 :          ipack = ipack + 1
   24807      3360621 :          pack_tmp = packed_data(ipack)
   24808      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   24809      3360621 :          pack_tmp = ISHFT(pack_tmp, -27)
   24810      3360621 :          idata = idata + 1
   24811      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24812      3360621 :          full_data(idata) = data_tmp
   24813      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24814      3360621 :          idata = idata + 1
   24815      3360621 :          data_tmp = ISHFT(pack_tmp, 29)
   24816      3360621 :          ipack = ipack + 1
   24817      3360621 :          pack_tmp = packed_data(ipack)
   24818      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   24819      3360621 :          pack_tmp = ISHFT(pack_tmp, -29)
   24820      3360621 :          idata = idata + 1
   24821      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24822      3360621 :          full_data(idata) = data_tmp
   24823      3360621 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24824      3360621 :          idata = idata + 1
   24825      3360621 :          data_tmp = ISHFT(pack_tmp, 31)
   24826      3360621 :          ipack = ipack + 1
   24827      3360621 :          pack_tmp = packed_data(ipack)
   24828      3360621 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   24829      3360621 :          pack_tmp = ISHFT(pack_tmp, -31)
   24830      3360621 :          idata = idata + 1
   24831      3360621 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   24832      3360621 :          full_data(idata) = data_tmp
   24833      3379537 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   24834              :       END DO
   24835       277566 :       IF (Ndata_rep < Ndata) THEN
   24836       127110 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   24837              :       END IF
   24838       277566 :    END SUBROUTINE bits2ints_33
   24839              : 
   24840              : ! **************************************************************************************************
   24841              : !> \brief ...
   24842              : !> \param Ndata ...
   24843              : !> \param packed_data ...
   24844              : !> \param full_data ...
   24845              : ! **************************************************************************************************
   24846        48637 :    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        48637 :       idata = 0
   24857        48637 :       ipack = 0
   24858        48637 :       Ndata_rep = (Ndata/64)*64
   24859        48637 :       DO kdata = 1, Ndata_rep, 64
   24860       633175 :          pack_tmp = 0
   24861       633175 :          idata = idata + 1
   24862       633175 :          data_tmp = full_data(idata)
   24863       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24864       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24865       633175 :          pack_tmp = ISHFT(pack_tmp, -30)
   24866       633175 :          idata = idata + 1
   24867       633175 :          data_tmp = full_data(idata)
   24868       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24869       633175 :          data_tmp = IAND(data_tmp, mask_left(30))
   24870       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24871       633175 :          ipack = ipack + 1
   24872       633175 :          packed_data(ipack) = pack_tmp
   24873       633175 :          data_tmp = full_data(idata)
   24874       633175 :          pack_tmp = ISHFT(data_tmp, 60)
   24875       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   24876       633175 :          idata = idata + 1
   24877       633175 :          data_tmp = full_data(idata)
   24878       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24879       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24880       633175 :          pack_tmp = ISHFT(pack_tmp, -26)
   24881       633175 :          idata = idata + 1
   24882       633175 :          data_tmp = full_data(idata)
   24883       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24884       633175 :          data_tmp = IAND(data_tmp, mask_left(26))
   24885       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24886       633175 :          ipack = ipack + 1
   24887       633175 :          packed_data(ipack) = pack_tmp
   24888       633175 :          data_tmp = full_data(idata)
   24889       633175 :          pack_tmp = ISHFT(data_tmp, 56)
   24890       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   24891       633175 :          idata = idata + 1
   24892       633175 :          data_tmp = full_data(idata)
   24893       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24894       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24895       633175 :          pack_tmp = ISHFT(pack_tmp, -22)
   24896       633175 :          idata = idata + 1
   24897       633175 :          data_tmp = full_data(idata)
   24898       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24899       633175 :          data_tmp = IAND(data_tmp, mask_left(22))
   24900       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24901       633175 :          ipack = ipack + 1
   24902       633175 :          packed_data(ipack) = pack_tmp
   24903       633175 :          data_tmp = full_data(idata)
   24904       633175 :          pack_tmp = ISHFT(data_tmp, 52)
   24905       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   24906       633175 :          idata = idata + 1
   24907       633175 :          data_tmp = full_data(idata)
   24908       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24909       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24910       633175 :          pack_tmp = ISHFT(pack_tmp, -18)
   24911       633175 :          idata = idata + 1
   24912       633175 :          data_tmp = full_data(idata)
   24913       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24914       633175 :          data_tmp = IAND(data_tmp, mask_left(18))
   24915       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24916       633175 :          ipack = ipack + 1
   24917       633175 :          packed_data(ipack) = pack_tmp
   24918       633175 :          data_tmp = full_data(idata)
   24919       633175 :          pack_tmp = ISHFT(data_tmp, 48)
   24920       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   24921       633175 :          idata = idata + 1
   24922       633175 :          data_tmp = full_data(idata)
   24923       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24924       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24925       633175 :          pack_tmp = ISHFT(pack_tmp, -14)
   24926       633175 :          idata = idata + 1
   24927       633175 :          data_tmp = full_data(idata)
   24928       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24929       633175 :          data_tmp = IAND(data_tmp, mask_left(14))
   24930       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24931       633175 :          ipack = ipack + 1
   24932       633175 :          packed_data(ipack) = pack_tmp
   24933       633175 :          data_tmp = full_data(idata)
   24934       633175 :          pack_tmp = ISHFT(data_tmp, 44)
   24935       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   24936       633175 :          idata = idata + 1
   24937       633175 :          data_tmp = full_data(idata)
   24938       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24939       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24940       633175 :          pack_tmp = ISHFT(pack_tmp, -10)
   24941       633175 :          idata = idata + 1
   24942       633175 :          data_tmp = full_data(idata)
   24943       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24944       633175 :          data_tmp = IAND(data_tmp, mask_left(10))
   24945       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24946       633175 :          ipack = ipack + 1
   24947       633175 :          packed_data(ipack) = pack_tmp
   24948       633175 :          data_tmp = full_data(idata)
   24949       633175 :          pack_tmp = ISHFT(data_tmp, 40)
   24950       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   24951       633175 :          idata = idata + 1
   24952       633175 :          data_tmp = full_data(idata)
   24953       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24954       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24955       633175 :          pack_tmp = ISHFT(pack_tmp, -6)
   24956       633175 :          idata = idata + 1
   24957       633175 :          data_tmp = full_data(idata)
   24958       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24959       633175 :          data_tmp = IAND(data_tmp, mask_left(6))
   24960       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24961       633175 :          ipack = ipack + 1
   24962       633175 :          packed_data(ipack) = pack_tmp
   24963       633175 :          data_tmp = full_data(idata)
   24964       633175 :          pack_tmp = ISHFT(data_tmp, 36)
   24965       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   24966       633175 :          idata = idata + 1
   24967       633175 :          data_tmp = full_data(idata)
   24968       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24969       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24970       633175 :          pack_tmp = ISHFT(pack_tmp, -2)
   24971       633175 :          idata = idata + 1
   24972       633175 :          data_tmp = full_data(idata)
   24973       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24974       633175 :          data_tmp = IAND(data_tmp, mask_left(2))
   24975       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24976       633175 :          ipack = ipack + 1
   24977       633175 :          packed_data(ipack) = pack_tmp
   24978       633175 :          data_tmp = full_data(idata)
   24979       633175 :          pack_tmp = ISHFT(data_tmp, 32)
   24980       633175 :          pack_tmp = ISHFT(pack_tmp, -32)
   24981       633175 :          idata = idata + 1
   24982       633175 :          data_tmp = full_data(idata)
   24983       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24984       633175 :          data_tmp = IAND(data_tmp, mask_left(32))
   24985       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24986       633175 :          ipack = ipack + 1
   24987       633175 :          packed_data(ipack) = pack_tmp
   24988       633175 :          data_tmp = full_data(idata)
   24989       633175 :          pack_tmp = ISHFT(data_tmp, 62)
   24990       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   24991       633175 :          idata = idata + 1
   24992       633175 :          data_tmp = full_data(idata)
   24993       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24994       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   24995       633175 :          pack_tmp = ISHFT(pack_tmp, -28)
   24996       633175 :          idata = idata + 1
   24997       633175 :          data_tmp = full_data(idata)
   24998       633175 :          data_tmp = ISHFT(data_tmp, 30)
   24999       633175 :          data_tmp = IAND(data_tmp, mask_left(28))
   25000       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25001       633175 :          ipack = ipack + 1
   25002       633175 :          packed_data(ipack) = pack_tmp
   25003       633175 :          data_tmp = full_data(idata)
   25004       633175 :          pack_tmp = ISHFT(data_tmp, 58)
   25005       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25006       633175 :          idata = idata + 1
   25007       633175 :          data_tmp = full_data(idata)
   25008       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25009       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25010       633175 :          pack_tmp = ISHFT(pack_tmp, -24)
   25011       633175 :          idata = idata + 1
   25012       633175 :          data_tmp = full_data(idata)
   25013       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25014       633175 :          data_tmp = IAND(data_tmp, mask_left(24))
   25015       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25016       633175 :          ipack = ipack + 1
   25017       633175 :          packed_data(ipack) = pack_tmp
   25018       633175 :          data_tmp = full_data(idata)
   25019       633175 :          pack_tmp = ISHFT(data_tmp, 54)
   25020       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25021       633175 :          idata = idata + 1
   25022       633175 :          data_tmp = full_data(idata)
   25023       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25024       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25025       633175 :          pack_tmp = ISHFT(pack_tmp, -20)
   25026       633175 :          idata = idata + 1
   25027       633175 :          data_tmp = full_data(idata)
   25028       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25029       633175 :          data_tmp = IAND(data_tmp, mask_left(20))
   25030       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25031       633175 :          ipack = ipack + 1
   25032       633175 :          packed_data(ipack) = pack_tmp
   25033       633175 :          data_tmp = full_data(idata)
   25034       633175 :          pack_tmp = ISHFT(data_tmp, 50)
   25035       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25036       633175 :          idata = idata + 1
   25037       633175 :          data_tmp = full_data(idata)
   25038       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25039       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25040       633175 :          pack_tmp = ISHFT(pack_tmp, -16)
   25041       633175 :          idata = idata + 1
   25042       633175 :          data_tmp = full_data(idata)
   25043       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25044       633175 :          data_tmp = IAND(data_tmp, mask_left(16))
   25045       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25046       633175 :          ipack = ipack + 1
   25047       633175 :          packed_data(ipack) = pack_tmp
   25048       633175 :          data_tmp = full_data(idata)
   25049       633175 :          pack_tmp = ISHFT(data_tmp, 46)
   25050       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25051       633175 :          idata = idata + 1
   25052       633175 :          data_tmp = full_data(idata)
   25053       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25054       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25055       633175 :          pack_tmp = ISHFT(pack_tmp, -12)
   25056       633175 :          idata = idata + 1
   25057       633175 :          data_tmp = full_data(idata)
   25058       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25059       633175 :          data_tmp = IAND(data_tmp, mask_left(12))
   25060       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25061       633175 :          ipack = ipack + 1
   25062       633175 :          packed_data(ipack) = pack_tmp
   25063       633175 :          data_tmp = full_data(idata)
   25064       633175 :          pack_tmp = ISHFT(data_tmp, 42)
   25065       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25066       633175 :          idata = idata + 1
   25067       633175 :          data_tmp = full_data(idata)
   25068       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25069       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25070       633175 :          pack_tmp = ISHFT(pack_tmp, -8)
   25071       633175 :          idata = idata + 1
   25072       633175 :          data_tmp = full_data(idata)
   25073       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25074       633175 :          data_tmp = IAND(data_tmp, mask_left(8))
   25075       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25076       633175 :          ipack = ipack + 1
   25077       633175 :          packed_data(ipack) = pack_tmp
   25078       633175 :          data_tmp = full_data(idata)
   25079       633175 :          pack_tmp = ISHFT(data_tmp, 38)
   25080       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25081       633175 :          idata = idata + 1
   25082       633175 :          data_tmp = full_data(idata)
   25083       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25084       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25085       633175 :          pack_tmp = ISHFT(pack_tmp, -4)
   25086       633175 :          idata = idata + 1
   25087       633175 :          data_tmp = full_data(idata)
   25088       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25089       633175 :          data_tmp = IAND(data_tmp, mask_left(4))
   25090       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25091       633175 :          ipack = ipack + 1
   25092       633175 :          packed_data(ipack) = pack_tmp
   25093       633175 :          data_tmp = full_data(idata)
   25094       633175 :          pack_tmp = ISHFT(data_tmp, 34)
   25095       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25096       633175 :          idata = idata + 1
   25097       633175 :          data_tmp = full_data(idata)
   25098       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25099       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25100       633175 :          pack_tmp = ISHFT(pack_tmp, 0)
   25101       633175 :          idata = idata + 1
   25102       633175 :          data_tmp = full_data(idata)
   25103              :          data_tmp = ISHFT(data_tmp, 30)
   25104       633175 :          data_tmp = IAND(data_tmp, mask_left(0))
   25105       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25106       633175 :          ipack = ipack + 1
   25107       633175 :          packed_data(ipack) = pack_tmp
   25108       633175 :          data_tmp = full_data(idata)
   25109       633175 :          pack_tmp = ISHFT(data_tmp, 30)
   25110       633175 :          pack_tmp = ISHFT(pack_tmp, -30)
   25111       633175 :          idata = idata + 1
   25112       633175 :          data_tmp = full_data(idata)
   25113       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25114       633175 :          data_tmp = IAND(data_tmp, mask_left(30))
   25115       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25116       633175 :          ipack = ipack + 1
   25117       633175 :          packed_data(ipack) = pack_tmp
   25118       633175 :          data_tmp = full_data(idata)
   25119       633175 :          pack_tmp = ISHFT(data_tmp, 60)
   25120       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25121       633175 :          idata = idata + 1
   25122       633175 :          data_tmp = full_data(idata)
   25123       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25124       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25125       633175 :          pack_tmp = ISHFT(pack_tmp, -26)
   25126       633175 :          idata = idata + 1
   25127       633175 :          data_tmp = full_data(idata)
   25128       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25129       633175 :          data_tmp = IAND(data_tmp, mask_left(26))
   25130       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25131       633175 :          ipack = ipack + 1
   25132       633175 :          packed_data(ipack) = pack_tmp
   25133       633175 :          data_tmp = full_data(idata)
   25134       633175 :          pack_tmp = ISHFT(data_tmp, 56)
   25135       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25136       633175 :          idata = idata + 1
   25137       633175 :          data_tmp = full_data(idata)
   25138       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25139       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25140       633175 :          pack_tmp = ISHFT(pack_tmp, -22)
   25141       633175 :          idata = idata + 1
   25142       633175 :          data_tmp = full_data(idata)
   25143       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25144       633175 :          data_tmp = IAND(data_tmp, mask_left(22))
   25145       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25146       633175 :          ipack = ipack + 1
   25147       633175 :          packed_data(ipack) = pack_tmp
   25148       633175 :          data_tmp = full_data(idata)
   25149       633175 :          pack_tmp = ISHFT(data_tmp, 52)
   25150       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25151       633175 :          idata = idata + 1
   25152       633175 :          data_tmp = full_data(idata)
   25153       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25154       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25155       633175 :          pack_tmp = ISHFT(pack_tmp, -18)
   25156       633175 :          idata = idata + 1
   25157       633175 :          data_tmp = full_data(idata)
   25158       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25159       633175 :          data_tmp = IAND(data_tmp, mask_left(18))
   25160       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25161       633175 :          ipack = ipack + 1
   25162       633175 :          packed_data(ipack) = pack_tmp
   25163       633175 :          data_tmp = full_data(idata)
   25164       633175 :          pack_tmp = ISHFT(data_tmp, 48)
   25165       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25166       633175 :          idata = idata + 1
   25167       633175 :          data_tmp = full_data(idata)
   25168       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25169       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25170       633175 :          pack_tmp = ISHFT(pack_tmp, -14)
   25171       633175 :          idata = idata + 1
   25172       633175 :          data_tmp = full_data(idata)
   25173       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25174       633175 :          data_tmp = IAND(data_tmp, mask_left(14))
   25175       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25176       633175 :          ipack = ipack + 1
   25177       633175 :          packed_data(ipack) = pack_tmp
   25178       633175 :          data_tmp = full_data(idata)
   25179       633175 :          pack_tmp = ISHFT(data_tmp, 44)
   25180       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25181       633175 :          idata = idata + 1
   25182       633175 :          data_tmp = full_data(idata)
   25183       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25184       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25185       633175 :          pack_tmp = ISHFT(pack_tmp, -10)
   25186       633175 :          idata = idata + 1
   25187       633175 :          data_tmp = full_data(idata)
   25188       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25189       633175 :          data_tmp = IAND(data_tmp, mask_left(10))
   25190       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25191       633175 :          ipack = ipack + 1
   25192       633175 :          packed_data(ipack) = pack_tmp
   25193       633175 :          data_tmp = full_data(idata)
   25194       633175 :          pack_tmp = ISHFT(data_tmp, 40)
   25195       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25196       633175 :          idata = idata + 1
   25197       633175 :          data_tmp = full_data(idata)
   25198       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25199       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25200       633175 :          pack_tmp = ISHFT(pack_tmp, -6)
   25201       633175 :          idata = idata + 1
   25202       633175 :          data_tmp = full_data(idata)
   25203       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25204       633175 :          data_tmp = IAND(data_tmp, mask_left(6))
   25205       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25206       633175 :          ipack = ipack + 1
   25207       633175 :          packed_data(ipack) = pack_tmp
   25208       633175 :          data_tmp = full_data(idata)
   25209       633175 :          pack_tmp = ISHFT(data_tmp, 36)
   25210       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25211       633175 :          idata = idata + 1
   25212       633175 :          data_tmp = full_data(idata)
   25213       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25214       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25215       633175 :          pack_tmp = ISHFT(pack_tmp, -2)
   25216       633175 :          idata = idata + 1
   25217       633175 :          data_tmp = full_data(idata)
   25218       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25219       633175 :          data_tmp = IAND(data_tmp, mask_left(2))
   25220       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25221       633175 :          ipack = ipack + 1
   25222       633175 :          packed_data(ipack) = pack_tmp
   25223       633175 :          data_tmp = full_data(idata)
   25224       633175 :          pack_tmp = ISHFT(data_tmp, 32)
   25225       633175 :          pack_tmp = ISHFT(pack_tmp, -32)
   25226       633175 :          idata = idata + 1
   25227       633175 :          data_tmp = full_data(idata)
   25228       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25229       633175 :          data_tmp = IAND(data_tmp, mask_left(32))
   25230       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25231       633175 :          ipack = ipack + 1
   25232       633175 :          packed_data(ipack) = pack_tmp
   25233       633175 :          data_tmp = full_data(idata)
   25234       633175 :          pack_tmp = ISHFT(data_tmp, 62)
   25235       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25236       633175 :          idata = idata + 1
   25237       633175 :          data_tmp = full_data(idata)
   25238       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25239       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25240       633175 :          pack_tmp = ISHFT(pack_tmp, -28)
   25241       633175 :          idata = idata + 1
   25242       633175 :          data_tmp = full_data(idata)
   25243       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25244       633175 :          data_tmp = IAND(data_tmp, mask_left(28))
   25245       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25246       633175 :          ipack = ipack + 1
   25247       633175 :          packed_data(ipack) = pack_tmp
   25248       633175 :          data_tmp = full_data(idata)
   25249       633175 :          pack_tmp = ISHFT(data_tmp, 58)
   25250       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25251       633175 :          idata = idata + 1
   25252       633175 :          data_tmp = full_data(idata)
   25253       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25254       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25255       633175 :          pack_tmp = ISHFT(pack_tmp, -24)
   25256       633175 :          idata = idata + 1
   25257       633175 :          data_tmp = full_data(idata)
   25258       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25259       633175 :          data_tmp = IAND(data_tmp, mask_left(24))
   25260       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25261       633175 :          ipack = ipack + 1
   25262       633175 :          packed_data(ipack) = pack_tmp
   25263       633175 :          data_tmp = full_data(idata)
   25264       633175 :          pack_tmp = ISHFT(data_tmp, 54)
   25265       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25266       633175 :          idata = idata + 1
   25267       633175 :          data_tmp = full_data(idata)
   25268       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25269       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25270       633175 :          pack_tmp = ISHFT(pack_tmp, -20)
   25271       633175 :          idata = idata + 1
   25272       633175 :          data_tmp = full_data(idata)
   25273       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25274       633175 :          data_tmp = IAND(data_tmp, mask_left(20))
   25275       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25276       633175 :          ipack = ipack + 1
   25277       633175 :          packed_data(ipack) = pack_tmp
   25278       633175 :          data_tmp = full_data(idata)
   25279       633175 :          pack_tmp = ISHFT(data_tmp, 50)
   25280       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25281       633175 :          idata = idata + 1
   25282       633175 :          data_tmp = full_data(idata)
   25283       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25284       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25285       633175 :          pack_tmp = ISHFT(pack_tmp, -16)
   25286       633175 :          idata = idata + 1
   25287       633175 :          data_tmp = full_data(idata)
   25288       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25289       633175 :          data_tmp = IAND(data_tmp, mask_left(16))
   25290       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25291       633175 :          ipack = ipack + 1
   25292       633175 :          packed_data(ipack) = pack_tmp
   25293       633175 :          data_tmp = full_data(idata)
   25294       633175 :          pack_tmp = ISHFT(data_tmp, 46)
   25295       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25296       633175 :          idata = idata + 1
   25297       633175 :          data_tmp = full_data(idata)
   25298       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25299       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25300       633175 :          pack_tmp = ISHFT(pack_tmp, -12)
   25301       633175 :          idata = idata + 1
   25302       633175 :          data_tmp = full_data(idata)
   25303       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25304       633175 :          data_tmp = IAND(data_tmp, mask_left(12))
   25305       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25306       633175 :          ipack = ipack + 1
   25307       633175 :          packed_data(ipack) = pack_tmp
   25308       633175 :          data_tmp = full_data(idata)
   25309       633175 :          pack_tmp = ISHFT(data_tmp, 42)
   25310       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25311       633175 :          idata = idata + 1
   25312       633175 :          data_tmp = full_data(idata)
   25313       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25314       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25315       633175 :          pack_tmp = ISHFT(pack_tmp, -8)
   25316       633175 :          idata = idata + 1
   25317       633175 :          data_tmp = full_data(idata)
   25318       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25319       633175 :          data_tmp = IAND(data_tmp, mask_left(8))
   25320       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25321       633175 :          ipack = ipack + 1
   25322       633175 :          packed_data(ipack) = pack_tmp
   25323       633175 :          data_tmp = full_data(idata)
   25324       633175 :          pack_tmp = ISHFT(data_tmp, 38)
   25325       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25326       633175 :          idata = idata + 1
   25327       633175 :          data_tmp = full_data(idata)
   25328       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25329       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25330       633175 :          pack_tmp = ISHFT(pack_tmp, -4)
   25331       633175 :          idata = idata + 1
   25332       633175 :          data_tmp = full_data(idata)
   25333       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25334       633175 :          data_tmp = IAND(data_tmp, mask_left(4))
   25335       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25336       633175 :          ipack = ipack + 1
   25337       633175 :          packed_data(ipack) = pack_tmp
   25338       633175 :          data_tmp = full_data(idata)
   25339       633175 :          pack_tmp = ISHFT(data_tmp, 34)
   25340       633175 :          pack_tmp = ISHFT(pack_tmp, -34)
   25341       633175 :          idata = idata + 1
   25342       633175 :          data_tmp = full_data(idata)
   25343       633175 :          data_tmp = ISHFT(data_tmp, 30)
   25344       633175 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25345              :          pack_tmp = ISHFT(pack_tmp, 0)
   25346       633175 :          pack_tmp = ISHFT(pack_tmp, 0)
   25347       633175 :          ipack = ipack + 1
   25348       633445 :          packed_data(ipack) = pack_tmp
   25349              :       END DO
   25350        48637 :       IF (Ndata_rep < Ndata) THEN
   25351        16818 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   25352              :       END IF
   25353        48637 :    END SUBROUTINE ints2bits_34
   25354              : 
   25355              : ! **************************************************************************************************
   25356              : !> \brief ...
   25357              : !> \param Ndata ...
   25358              : !> \param packed_data ...
   25359              : !> \param full_data ...
   25360              : ! **************************************************************************************************
   25361       226916 :    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       226916 :       ipack = 0
   25372       226916 :       idata = 0
   25373       226916 :       pack_tmp = 0
   25374       226916 :       Ndata_rep = (Ndata/64)*64
   25375       226916 :       DO kdata = 1, Ndata_rep, 64
   25376      2851217 :          idata = idata + 1
   25377      2851217 :          data_tmp = ISHFT(pack_tmp, 34)
   25378      2851217 :          ipack = ipack + 1
   25379      2851217 :          pack_tmp = packed_data(ipack)
   25380      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   25381      2851217 :          pack_tmp = ISHFT(pack_tmp, -34)
   25382      2851217 :          idata = idata + 1
   25383      2851217 :          data_tmp = ISHFT(pack_tmp, 4)
   25384      2851217 :          ipack = ipack + 1
   25385      2851217 :          pack_tmp = packed_data(ipack)
   25386      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   25387      2851217 :          pack_tmp = ISHFT(pack_tmp, -4)
   25388      2851217 :          idata = idata + 1
   25389      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25390      2851217 :          full_data(idata) = data_tmp
   25391      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25392      2851217 :          idata = idata + 1
   25393      2851217 :          data_tmp = ISHFT(pack_tmp, 8)
   25394      2851217 :          ipack = ipack + 1
   25395      2851217 :          pack_tmp = packed_data(ipack)
   25396      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   25397      2851217 :          pack_tmp = ISHFT(pack_tmp, -8)
   25398      2851217 :          idata = idata + 1
   25399      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25400      2851217 :          full_data(idata) = data_tmp
   25401      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25402      2851217 :          idata = idata + 1
   25403      2851217 :          data_tmp = ISHFT(pack_tmp, 12)
   25404      2851217 :          ipack = ipack + 1
   25405      2851217 :          pack_tmp = packed_data(ipack)
   25406      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   25407      2851217 :          pack_tmp = ISHFT(pack_tmp, -12)
   25408      2851217 :          idata = idata + 1
   25409      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25410      2851217 :          full_data(idata) = data_tmp
   25411      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25412      2851217 :          idata = idata + 1
   25413      2851217 :          data_tmp = ISHFT(pack_tmp, 16)
   25414      2851217 :          ipack = ipack + 1
   25415      2851217 :          pack_tmp = packed_data(ipack)
   25416      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   25417      2851217 :          pack_tmp = ISHFT(pack_tmp, -16)
   25418      2851217 :          idata = idata + 1
   25419      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25420      2851217 :          full_data(idata) = data_tmp
   25421      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25422      2851217 :          idata = idata + 1
   25423      2851217 :          data_tmp = ISHFT(pack_tmp, 20)
   25424      2851217 :          ipack = ipack + 1
   25425      2851217 :          pack_tmp = packed_data(ipack)
   25426      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   25427      2851217 :          pack_tmp = ISHFT(pack_tmp, -20)
   25428      2851217 :          idata = idata + 1
   25429      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25430      2851217 :          full_data(idata) = data_tmp
   25431      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25432      2851217 :          idata = idata + 1
   25433      2851217 :          data_tmp = ISHFT(pack_tmp, 24)
   25434      2851217 :          ipack = ipack + 1
   25435      2851217 :          pack_tmp = packed_data(ipack)
   25436      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   25437      2851217 :          pack_tmp = ISHFT(pack_tmp, -24)
   25438      2851217 :          idata = idata + 1
   25439      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25440      2851217 :          full_data(idata) = data_tmp
   25441      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25442      2851217 :          idata = idata + 1
   25443      2851217 :          data_tmp = ISHFT(pack_tmp, 28)
   25444      2851217 :          ipack = ipack + 1
   25445      2851217 :          pack_tmp = packed_data(ipack)
   25446      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   25447      2851217 :          pack_tmp = ISHFT(pack_tmp, -28)
   25448      2851217 :          idata = idata + 1
   25449      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25450      2851217 :          full_data(idata) = data_tmp
   25451      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25452      2851217 :          idata = idata + 1
   25453      2851217 :          data_tmp = ISHFT(pack_tmp, 32)
   25454      2851217 :          ipack = ipack + 1
   25455      2851217 :          pack_tmp = packed_data(ipack)
   25456      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   25457      2851217 :          pack_tmp = ISHFT(pack_tmp, -32)
   25458      2851217 :          idata = idata + 1
   25459      2851217 :          data_tmp = ISHFT(pack_tmp, 2)
   25460      2851217 :          ipack = ipack + 1
   25461      2851217 :          pack_tmp = packed_data(ipack)
   25462      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   25463      2851217 :          pack_tmp = ISHFT(pack_tmp, -2)
   25464      2851217 :          idata = idata + 1
   25465      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25466      2851217 :          full_data(idata) = data_tmp
   25467      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25468      2851217 :          idata = idata + 1
   25469      2851217 :          data_tmp = ISHFT(pack_tmp, 6)
   25470      2851217 :          ipack = ipack + 1
   25471      2851217 :          pack_tmp = packed_data(ipack)
   25472      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   25473      2851217 :          pack_tmp = ISHFT(pack_tmp, -6)
   25474      2851217 :          idata = idata + 1
   25475      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25476      2851217 :          full_data(idata) = data_tmp
   25477      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25478      2851217 :          idata = idata + 1
   25479      2851217 :          data_tmp = ISHFT(pack_tmp, 10)
   25480      2851217 :          ipack = ipack + 1
   25481      2851217 :          pack_tmp = packed_data(ipack)
   25482      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   25483      2851217 :          pack_tmp = ISHFT(pack_tmp, -10)
   25484      2851217 :          idata = idata + 1
   25485      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25486      2851217 :          full_data(idata) = data_tmp
   25487      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25488      2851217 :          idata = idata + 1
   25489      2851217 :          data_tmp = ISHFT(pack_tmp, 14)
   25490      2851217 :          ipack = ipack + 1
   25491      2851217 :          pack_tmp = packed_data(ipack)
   25492      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   25493      2851217 :          pack_tmp = ISHFT(pack_tmp, -14)
   25494      2851217 :          idata = idata + 1
   25495      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25496      2851217 :          full_data(idata) = data_tmp
   25497      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25498      2851217 :          idata = idata + 1
   25499      2851217 :          data_tmp = ISHFT(pack_tmp, 18)
   25500      2851217 :          ipack = ipack + 1
   25501      2851217 :          pack_tmp = packed_data(ipack)
   25502      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   25503      2851217 :          pack_tmp = ISHFT(pack_tmp, -18)
   25504      2851217 :          idata = idata + 1
   25505      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25506      2851217 :          full_data(idata) = data_tmp
   25507      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25508      2851217 :          idata = idata + 1
   25509      2851217 :          data_tmp = ISHFT(pack_tmp, 22)
   25510      2851217 :          ipack = ipack + 1
   25511      2851217 :          pack_tmp = packed_data(ipack)
   25512      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   25513      2851217 :          pack_tmp = ISHFT(pack_tmp, -22)
   25514      2851217 :          idata = idata + 1
   25515      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25516      2851217 :          full_data(idata) = data_tmp
   25517      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25518      2851217 :          idata = idata + 1
   25519      2851217 :          data_tmp = ISHFT(pack_tmp, 26)
   25520      2851217 :          ipack = ipack + 1
   25521      2851217 :          pack_tmp = packed_data(ipack)
   25522      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   25523      2851217 :          pack_tmp = ISHFT(pack_tmp, -26)
   25524      2851217 :          idata = idata + 1
   25525      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25526      2851217 :          full_data(idata) = data_tmp
   25527      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25528      2851217 :          idata = idata + 1
   25529      2851217 :          data_tmp = ISHFT(pack_tmp, 30)
   25530      2851217 :          ipack = ipack + 1
   25531      2851217 :          pack_tmp = packed_data(ipack)
   25532      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   25533      2851217 :          pack_tmp = ISHFT(pack_tmp, -30)
   25534      2851217 :          idata = idata + 1
   25535      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25536      2851217 :          full_data(idata) = data_tmp
   25537      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25538      2851217 :          idata = idata + 1
   25539      2851217 :          data_tmp = ISHFT(pack_tmp, 34)
   25540      2851217 :          ipack = ipack + 1
   25541      2851217 :          pack_tmp = packed_data(ipack)
   25542      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   25543      2851217 :          pack_tmp = ISHFT(pack_tmp, -34)
   25544      2851217 :          idata = idata + 1
   25545      2851217 :          data_tmp = ISHFT(pack_tmp, 4)
   25546      2851217 :          ipack = ipack + 1
   25547      2851217 :          pack_tmp = packed_data(ipack)
   25548      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   25549      2851217 :          pack_tmp = ISHFT(pack_tmp, -4)
   25550      2851217 :          idata = idata + 1
   25551      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25552      2851217 :          full_data(idata) = data_tmp
   25553      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25554      2851217 :          idata = idata + 1
   25555      2851217 :          data_tmp = ISHFT(pack_tmp, 8)
   25556      2851217 :          ipack = ipack + 1
   25557      2851217 :          pack_tmp = packed_data(ipack)
   25558      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   25559      2851217 :          pack_tmp = ISHFT(pack_tmp, -8)
   25560      2851217 :          idata = idata + 1
   25561      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25562      2851217 :          full_data(idata) = data_tmp
   25563      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25564      2851217 :          idata = idata + 1
   25565      2851217 :          data_tmp = ISHFT(pack_tmp, 12)
   25566      2851217 :          ipack = ipack + 1
   25567      2851217 :          pack_tmp = packed_data(ipack)
   25568      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   25569      2851217 :          pack_tmp = ISHFT(pack_tmp, -12)
   25570      2851217 :          idata = idata + 1
   25571      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25572      2851217 :          full_data(idata) = data_tmp
   25573      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25574      2851217 :          idata = idata + 1
   25575      2851217 :          data_tmp = ISHFT(pack_tmp, 16)
   25576      2851217 :          ipack = ipack + 1
   25577      2851217 :          pack_tmp = packed_data(ipack)
   25578      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   25579      2851217 :          pack_tmp = ISHFT(pack_tmp, -16)
   25580      2851217 :          idata = idata + 1
   25581      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25582      2851217 :          full_data(idata) = data_tmp
   25583      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25584      2851217 :          idata = idata + 1
   25585      2851217 :          data_tmp = ISHFT(pack_tmp, 20)
   25586      2851217 :          ipack = ipack + 1
   25587      2851217 :          pack_tmp = packed_data(ipack)
   25588      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   25589      2851217 :          pack_tmp = ISHFT(pack_tmp, -20)
   25590      2851217 :          idata = idata + 1
   25591      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25592      2851217 :          full_data(idata) = data_tmp
   25593      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25594      2851217 :          idata = idata + 1
   25595      2851217 :          data_tmp = ISHFT(pack_tmp, 24)
   25596      2851217 :          ipack = ipack + 1
   25597      2851217 :          pack_tmp = packed_data(ipack)
   25598      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   25599      2851217 :          pack_tmp = ISHFT(pack_tmp, -24)
   25600      2851217 :          idata = idata + 1
   25601      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25602      2851217 :          full_data(idata) = data_tmp
   25603      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25604      2851217 :          idata = idata + 1
   25605      2851217 :          data_tmp = ISHFT(pack_tmp, 28)
   25606      2851217 :          ipack = ipack + 1
   25607      2851217 :          pack_tmp = packed_data(ipack)
   25608      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   25609      2851217 :          pack_tmp = ISHFT(pack_tmp, -28)
   25610      2851217 :          idata = idata + 1
   25611      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25612      2851217 :          full_data(idata) = data_tmp
   25613      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25614      2851217 :          idata = idata + 1
   25615      2851217 :          data_tmp = ISHFT(pack_tmp, 32)
   25616      2851217 :          ipack = ipack + 1
   25617      2851217 :          pack_tmp = packed_data(ipack)
   25618      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   25619      2851217 :          pack_tmp = ISHFT(pack_tmp, -32)
   25620      2851217 :          idata = idata + 1
   25621      2851217 :          data_tmp = ISHFT(pack_tmp, 2)
   25622      2851217 :          ipack = ipack + 1
   25623      2851217 :          pack_tmp = packed_data(ipack)
   25624      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   25625      2851217 :          pack_tmp = ISHFT(pack_tmp, -2)
   25626      2851217 :          idata = idata + 1
   25627      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25628      2851217 :          full_data(idata) = data_tmp
   25629      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25630      2851217 :          idata = idata + 1
   25631      2851217 :          data_tmp = ISHFT(pack_tmp, 6)
   25632      2851217 :          ipack = ipack + 1
   25633      2851217 :          pack_tmp = packed_data(ipack)
   25634      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   25635      2851217 :          pack_tmp = ISHFT(pack_tmp, -6)
   25636      2851217 :          idata = idata + 1
   25637      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25638      2851217 :          full_data(idata) = data_tmp
   25639      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25640      2851217 :          idata = idata + 1
   25641      2851217 :          data_tmp = ISHFT(pack_tmp, 10)
   25642      2851217 :          ipack = ipack + 1
   25643      2851217 :          pack_tmp = packed_data(ipack)
   25644      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   25645      2851217 :          pack_tmp = ISHFT(pack_tmp, -10)
   25646      2851217 :          idata = idata + 1
   25647      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25648      2851217 :          full_data(idata) = data_tmp
   25649      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25650      2851217 :          idata = idata + 1
   25651      2851217 :          data_tmp = ISHFT(pack_tmp, 14)
   25652      2851217 :          ipack = ipack + 1
   25653      2851217 :          pack_tmp = packed_data(ipack)
   25654      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   25655      2851217 :          pack_tmp = ISHFT(pack_tmp, -14)
   25656      2851217 :          idata = idata + 1
   25657      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25658      2851217 :          full_data(idata) = data_tmp
   25659      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25660      2851217 :          idata = idata + 1
   25661      2851217 :          data_tmp = ISHFT(pack_tmp, 18)
   25662      2851217 :          ipack = ipack + 1
   25663      2851217 :          pack_tmp = packed_data(ipack)
   25664      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   25665      2851217 :          pack_tmp = ISHFT(pack_tmp, -18)
   25666      2851217 :          idata = idata + 1
   25667      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25668      2851217 :          full_data(idata) = data_tmp
   25669      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25670      2851217 :          idata = idata + 1
   25671      2851217 :          data_tmp = ISHFT(pack_tmp, 22)
   25672      2851217 :          ipack = ipack + 1
   25673      2851217 :          pack_tmp = packed_data(ipack)
   25674      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   25675      2851217 :          pack_tmp = ISHFT(pack_tmp, -22)
   25676      2851217 :          idata = idata + 1
   25677      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25678      2851217 :          full_data(idata) = data_tmp
   25679      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25680      2851217 :          idata = idata + 1
   25681      2851217 :          data_tmp = ISHFT(pack_tmp, 26)
   25682      2851217 :          ipack = ipack + 1
   25683      2851217 :          pack_tmp = packed_data(ipack)
   25684      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   25685      2851217 :          pack_tmp = ISHFT(pack_tmp, -26)
   25686      2851217 :          idata = idata + 1
   25687      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25688      2851217 :          full_data(idata) = data_tmp
   25689      2851217 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25690      2851217 :          idata = idata + 1
   25691      2851217 :          data_tmp = ISHFT(pack_tmp, 30)
   25692      2851217 :          ipack = ipack + 1
   25693      2851217 :          pack_tmp = packed_data(ipack)
   25694      2851217 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   25695      2851217 :          pack_tmp = ISHFT(pack_tmp, -30)
   25696      2851217 :          idata = idata + 1
   25697      2851217 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   25698      2851217 :          full_data(idata) = data_tmp
   25699      2852406 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   25700              :       END DO
   25701       226916 :       IF (Ndata_rep < Ndata) THEN
   25702        90398 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   25703              :       END IF
   25704       226916 :    END SUBROUTINE bits2ints_34
   25705              : 
   25706              : ! **************************************************************************************************
   25707              : !> \brief ...
   25708              : !> \param Ndata ...
   25709              : !> \param packed_data ...
   25710              : !> \param full_data ...
   25711              : ! **************************************************************************************************
   25712        49942 :    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        49942 :       idata = 0
   25723        49942 :       ipack = 0
   25724        49942 :       Ndata_rep = (Ndata/64)*64
   25725        49942 :       DO kdata = 1, Ndata_rep, 64
   25726       637120 :          pack_tmp = 0
   25727       637120 :          idata = idata + 1
   25728       637120 :          data_tmp = full_data(idata)
   25729       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25730       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25731       637120 :          pack_tmp = ISHFT(pack_tmp, -29)
   25732       637120 :          idata = idata + 1
   25733       637120 :          data_tmp = full_data(idata)
   25734       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25735       637120 :          data_tmp = IAND(data_tmp, mask_left(29))
   25736       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25737       637120 :          ipack = ipack + 1
   25738       637120 :          packed_data(ipack) = pack_tmp
   25739       637120 :          data_tmp = full_data(idata)
   25740       637120 :          pack_tmp = ISHFT(data_tmp, 58)
   25741       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25742       637120 :          idata = idata + 1
   25743       637120 :          data_tmp = full_data(idata)
   25744       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25745       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25746       637120 :          pack_tmp = ISHFT(pack_tmp, -23)
   25747       637120 :          idata = idata + 1
   25748       637120 :          data_tmp = full_data(idata)
   25749       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25750       637120 :          data_tmp = IAND(data_tmp, mask_left(23))
   25751       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25752       637120 :          ipack = ipack + 1
   25753       637120 :          packed_data(ipack) = pack_tmp
   25754       637120 :          data_tmp = full_data(idata)
   25755       637120 :          pack_tmp = ISHFT(data_tmp, 52)
   25756       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25757       637120 :          idata = idata + 1
   25758       637120 :          data_tmp = full_data(idata)
   25759       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25760       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25761       637120 :          pack_tmp = ISHFT(pack_tmp, -17)
   25762       637120 :          idata = idata + 1
   25763       637120 :          data_tmp = full_data(idata)
   25764       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25765       637120 :          data_tmp = IAND(data_tmp, mask_left(17))
   25766       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25767       637120 :          ipack = ipack + 1
   25768       637120 :          packed_data(ipack) = pack_tmp
   25769       637120 :          data_tmp = full_data(idata)
   25770       637120 :          pack_tmp = ISHFT(data_tmp, 46)
   25771       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25772       637120 :          idata = idata + 1
   25773       637120 :          data_tmp = full_data(idata)
   25774       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25775       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25776       637120 :          pack_tmp = ISHFT(pack_tmp, -11)
   25777       637120 :          idata = idata + 1
   25778       637120 :          data_tmp = full_data(idata)
   25779       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25780       637120 :          data_tmp = IAND(data_tmp, mask_left(11))
   25781       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25782       637120 :          ipack = ipack + 1
   25783       637120 :          packed_data(ipack) = pack_tmp
   25784       637120 :          data_tmp = full_data(idata)
   25785       637120 :          pack_tmp = ISHFT(data_tmp, 40)
   25786       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25787       637120 :          idata = idata + 1
   25788       637120 :          data_tmp = full_data(idata)
   25789       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25790       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25791       637120 :          pack_tmp = ISHFT(pack_tmp, -5)
   25792       637120 :          idata = idata + 1
   25793       637120 :          data_tmp = full_data(idata)
   25794       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25795       637120 :          data_tmp = IAND(data_tmp, mask_left(5))
   25796       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25797       637120 :          ipack = ipack + 1
   25798       637120 :          packed_data(ipack) = pack_tmp
   25799       637120 :          data_tmp = full_data(idata)
   25800       637120 :          pack_tmp = ISHFT(data_tmp, 34)
   25801       637120 :          pack_tmp = ISHFT(pack_tmp, -34)
   25802       637120 :          idata = idata + 1
   25803       637120 :          data_tmp = full_data(idata)
   25804       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25805       637120 :          data_tmp = IAND(data_tmp, mask_left(34))
   25806       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25807       637120 :          ipack = ipack + 1
   25808       637120 :          packed_data(ipack) = pack_tmp
   25809       637120 :          data_tmp = full_data(idata)
   25810       637120 :          pack_tmp = ISHFT(data_tmp, 63)
   25811       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25812       637120 :          idata = idata + 1
   25813       637120 :          data_tmp = full_data(idata)
   25814       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25815       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25816       637120 :          pack_tmp = ISHFT(pack_tmp, -28)
   25817       637120 :          idata = idata + 1
   25818       637120 :          data_tmp = full_data(idata)
   25819       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25820       637120 :          data_tmp = IAND(data_tmp, mask_left(28))
   25821       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25822       637120 :          ipack = ipack + 1
   25823       637120 :          packed_data(ipack) = pack_tmp
   25824       637120 :          data_tmp = full_data(idata)
   25825       637120 :          pack_tmp = ISHFT(data_tmp, 57)
   25826       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25827       637120 :          idata = idata + 1
   25828       637120 :          data_tmp = full_data(idata)
   25829       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25830       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25831       637120 :          pack_tmp = ISHFT(pack_tmp, -22)
   25832       637120 :          idata = idata + 1
   25833       637120 :          data_tmp = full_data(idata)
   25834       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25835       637120 :          data_tmp = IAND(data_tmp, mask_left(22))
   25836       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25837       637120 :          ipack = ipack + 1
   25838       637120 :          packed_data(ipack) = pack_tmp
   25839       637120 :          data_tmp = full_data(idata)
   25840       637120 :          pack_tmp = ISHFT(data_tmp, 51)
   25841       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25842       637120 :          idata = idata + 1
   25843       637120 :          data_tmp = full_data(idata)
   25844       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25845       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25846       637120 :          pack_tmp = ISHFT(pack_tmp, -16)
   25847       637120 :          idata = idata + 1
   25848       637120 :          data_tmp = full_data(idata)
   25849       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25850       637120 :          data_tmp = IAND(data_tmp, mask_left(16))
   25851       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25852       637120 :          ipack = ipack + 1
   25853       637120 :          packed_data(ipack) = pack_tmp
   25854       637120 :          data_tmp = full_data(idata)
   25855       637120 :          pack_tmp = ISHFT(data_tmp, 45)
   25856       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25857       637120 :          idata = idata + 1
   25858       637120 :          data_tmp = full_data(idata)
   25859       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25860       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25861       637120 :          pack_tmp = ISHFT(pack_tmp, -10)
   25862       637120 :          idata = idata + 1
   25863       637120 :          data_tmp = full_data(idata)
   25864       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25865       637120 :          data_tmp = IAND(data_tmp, mask_left(10))
   25866       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25867       637120 :          ipack = ipack + 1
   25868       637120 :          packed_data(ipack) = pack_tmp
   25869       637120 :          data_tmp = full_data(idata)
   25870       637120 :          pack_tmp = ISHFT(data_tmp, 39)
   25871       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25872       637120 :          idata = idata + 1
   25873       637120 :          data_tmp = full_data(idata)
   25874       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25875       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25876       637120 :          pack_tmp = ISHFT(pack_tmp, -4)
   25877       637120 :          idata = idata + 1
   25878       637120 :          data_tmp = full_data(idata)
   25879       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25880       637120 :          data_tmp = IAND(data_tmp, mask_left(4))
   25881       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25882       637120 :          ipack = ipack + 1
   25883       637120 :          packed_data(ipack) = pack_tmp
   25884       637120 :          data_tmp = full_data(idata)
   25885       637120 :          pack_tmp = ISHFT(data_tmp, 33)
   25886       637120 :          pack_tmp = ISHFT(pack_tmp, -33)
   25887       637120 :          idata = idata + 1
   25888       637120 :          data_tmp = full_data(idata)
   25889       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25890       637120 :          data_tmp = IAND(data_tmp, mask_left(33))
   25891       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25892       637120 :          ipack = ipack + 1
   25893       637120 :          packed_data(ipack) = pack_tmp
   25894       637120 :          data_tmp = full_data(idata)
   25895       637120 :          pack_tmp = ISHFT(data_tmp, 62)
   25896       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25897       637120 :          idata = idata + 1
   25898       637120 :          data_tmp = full_data(idata)
   25899       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25900       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25901       637120 :          pack_tmp = ISHFT(pack_tmp, -27)
   25902       637120 :          idata = idata + 1
   25903       637120 :          data_tmp = full_data(idata)
   25904       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25905       637120 :          data_tmp = IAND(data_tmp, mask_left(27))
   25906       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25907       637120 :          ipack = ipack + 1
   25908       637120 :          packed_data(ipack) = pack_tmp
   25909       637120 :          data_tmp = full_data(idata)
   25910       637120 :          pack_tmp = ISHFT(data_tmp, 56)
   25911       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25912       637120 :          idata = idata + 1
   25913       637120 :          data_tmp = full_data(idata)
   25914       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25915       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25916       637120 :          pack_tmp = ISHFT(pack_tmp, -21)
   25917       637120 :          idata = idata + 1
   25918       637120 :          data_tmp = full_data(idata)
   25919       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25920       637120 :          data_tmp = IAND(data_tmp, mask_left(21))
   25921       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25922       637120 :          ipack = ipack + 1
   25923       637120 :          packed_data(ipack) = pack_tmp
   25924       637120 :          data_tmp = full_data(idata)
   25925       637120 :          pack_tmp = ISHFT(data_tmp, 50)
   25926       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25927       637120 :          idata = idata + 1
   25928       637120 :          data_tmp = full_data(idata)
   25929       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25930       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25931       637120 :          pack_tmp = ISHFT(pack_tmp, -15)
   25932       637120 :          idata = idata + 1
   25933       637120 :          data_tmp = full_data(idata)
   25934       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25935       637120 :          data_tmp = IAND(data_tmp, mask_left(15))
   25936       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25937       637120 :          ipack = ipack + 1
   25938       637120 :          packed_data(ipack) = pack_tmp
   25939       637120 :          data_tmp = full_data(idata)
   25940       637120 :          pack_tmp = ISHFT(data_tmp, 44)
   25941       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25942       637120 :          idata = idata + 1
   25943       637120 :          data_tmp = full_data(idata)
   25944       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25945       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25946       637120 :          pack_tmp = ISHFT(pack_tmp, -9)
   25947       637120 :          idata = idata + 1
   25948       637120 :          data_tmp = full_data(idata)
   25949       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25950       637120 :          data_tmp = IAND(data_tmp, mask_left(9))
   25951       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25952       637120 :          ipack = ipack + 1
   25953       637120 :          packed_data(ipack) = pack_tmp
   25954       637120 :          data_tmp = full_data(idata)
   25955       637120 :          pack_tmp = ISHFT(data_tmp, 38)
   25956       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25957       637120 :          idata = idata + 1
   25958       637120 :          data_tmp = full_data(idata)
   25959       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25960       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25961       637120 :          pack_tmp = ISHFT(pack_tmp, -3)
   25962       637120 :          idata = idata + 1
   25963       637120 :          data_tmp = full_data(idata)
   25964       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25965       637120 :          data_tmp = IAND(data_tmp, mask_left(3))
   25966       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25967       637120 :          ipack = ipack + 1
   25968       637120 :          packed_data(ipack) = pack_tmp
   25969       637120 :          data_tmp = full_data(idata)
   25970       637120 :          pack_tmp = ISHFT(data_tmp, 32)
   25971       637120 :          pack_tmp = ISHFT(pack_tmp, -32)
   25972       637120 :          idata = idata + 1
   25973       637120 :          data_tmp = full_data(idata)
   25974       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25975       637120 :          data_tmp = IAND(data_tmp, mask_left(32))
   25976       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25977       637120 :          ipack = ipack + 1
   25978       637120 :          packed_data(ipack) = pack_tmp
   25979       637120 :          data_tmp = full_data(idata)
   25980       637120 :          pack_tmp = ISHFT(data_tmp, 61)
   25981       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25982       637120 :          idata = idata + 1
   25983       637120 :          data_tmp = full_data(idata)
   25984       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25985       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25986       637120 :          pack_tmp = ISHFT(pack_tmp, -26)
   25987       637120 :          idata = idata + 1
   25988       637120 :          data_tmp = full_data(idata)
   25989       637120 :          data_tmp = ISHFT(data_tmp, 29)
   25990       637120 :          data_tmp = IAND(data_tmp, mask_left(26))
   25991       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   25992       637120 :          ipack = ipack + 1
   25993       637120 :          packed_data(ipack) = pack_tmp
   25994       637120 :          data_tmp = full_data(idata)
   25995       637120 :          pack_tmp = ISHFT(data_tmp, 55)
   25996       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   25997       637120 :          idata = idata + 1
   25998       637120 :          data_tmp = full_data(idata)
   25999       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26000       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26001       637120 :          pack_tmp = ISHFT(pack_tmp, -20)
   26002       637120 :          idata = idata + 1
   26003       637120 :          data_tmp = full_data(idata)
   26004       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26005       637120 :          data_tmp = IAND(data_tmp, mask_left(20))
   26006       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26007       637120 :          ipack = ipack + 1
   26008       637120 :          packed_data(ipack) = pack_tmp
   26009       637120 :          data_tmp = full_data(idata)
   26010       637120 :          pack_tmp = ISHFT(data_tmp, 49)
   26011       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26012       637120 :          idata = idata + 1
   26013       637120 :          data_tmp = full_data(idata)
   26014       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26015       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26016       637120 :          pack_tmp = ISHFT(pack_tmp, -14)
   26017       637120 :          idata = idata + 1
   26018       637120 :          data_tmp = full_data(idata)
   26019       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26020       637120 :          data_tmp = IAND(data_tmp, mask_left(14))
   26021       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26022       637120 :          ipack = ipack + 1
   26023       637120 :          packed_data(ipack) = pack_tmp
   26024       637120 :          data_tmp = full_data(idata)
   26025       637120 :          pack_tmp = ISHFT(data_tmp, 43)
   26026       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26027       637120 :          idata = idata + 1
   26028       637120 :          data_tmp = full_data(idata)
   26029       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26030       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26031       637120 :          pack_tmp = ISHFT(pack_tmp, -8)
   26032       637120 :          idata = idata + 1
   26033       637120 :          data_tmp = full_data(idata)
   26034       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26035       637120 :          data_tmp = IAND(data_tmp, mask_left(8))
   26036       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26037       637120 :          ipack = ipack + 1
   26038       637120 :          packed_data(ipack) = pack_tmp
   26039       637120 :          data_tmp = full_data(idata)
   26040       637120 :          pack_tmp = ISHFT(data_tmp, 37)
   26041       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26042       637120 :          idata = idata + 1
   26043       637120 :          data_tmp = full_data(idata)
   26044       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26045       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26046       637120 :          pack_tmp = ISHFT(pack_tmp, -2)
   26047       637120 :          idata = idata + 1
   26048       637120 :          data_tmp = full_data(idata)
   26049       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26050       637120 :          data_tmp = IAND(data_tmp, mask_left(2))
   26051       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26052       637120 :          ipack = ipack + 1
   26053       637120 :          packed_data(ipack) = pack_tmp
   26054       637120 :          data_tmp = full_data(idata)
   26055       637120 :          pack_tmp = ISHFT(data_tmp, 31)
   26056       637120 :          pack_tmp = ISHFT(pack_tmp, -31)
   26057       637120 :          idata = idata + 1
   26058       637120 :          data_tmp = full_data(idata)
   26059       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26060       637120 :          data_tmp = IAND(data_tmp, mask_left(31))
   26061       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26062       637120 :          ipack = ipack + 1
   26063       637120 :          packed_data(ipack) = pack_tmp
   26064       637120 :          data_tmp = full_data(idata)
   26065       637120 :          pack_tmp = ISHFT(data_tmp, 60)
   26066       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26067       637120 :          idata = idata + 1
   26068       637120 :          data_tmp = full_data(idata)
   26069       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26070       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26071       637120 :          pack_tmp = ISHFT(pack_tmp, -25)
   26072       637120 :          idata = idata + 1
   26073       637120 :          data_tmp = full_data(idata)
   26074       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26075       637120 :          data_tmp = IAND(data_tmp, mask_left(25))
   26076       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26077       637120 :          ipack = ipack + 1
   26078       637120 :          packed_data(ipack) = pack_tmp
   26079       637120 :          data_tmp = full_data(idata)
   26080       637120 :          pack_tmp = ISHFT(data_tmp, 54)
   26081       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26082       637120 :          idata = idata + 1
   26083       637120 :          data_tmp = full_data(idata)
   26084       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26085       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26086       637120 :          pack_tmp = ISHFT(pack_tmp, -19)
   26087       637120 :          idata = idata + 1
   26088       637120 :          data_tmp = full_data(idata)
   26089       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26090       637120 :          data_tmp = IAND(data_tmp, mask_left(19))
   26091       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26092       637120 :          ipack = ipack + 1
   26093       637120 :          packed_data(ipack) = pack_tmp
   26094       637120 :          data_tmp = full_data(idata)
   26095       637120 :          pack_tmp = ISHFT(data_tmp, 48)
   26096       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26097       637120 :          idata = idata + 1
   26098       637120 :          data_tmp = full_data(idata)
   26099       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26100       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26101       637120 :          pack_tmp = ISHFT(pack_tmp, -13)
   26102       637120 :          idata = idata + 1
   26103       637120 :          data_tmp = full_data(idata)
   26104       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26105       637120 :          data_tmp = IAND(data_tmp, mask_left(13))
   26106       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26107       637120 :          ipack = ipack + 1
   26108       637120 :          packed_data(ipack) = pack_tmp
   26109       637120 :          data_tmp = full_data(idata)
   26110       637120 :          pack_tmp = ISHFT(data_tmp, 42)
   26111       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26112       637120 :          idata = idata + 1
   26113       637120 :          data_tmp = full_data(idata)
   26114       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26115       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26116       637120 :          pack_tmp = ISHFT(pack_tmp, -7)
   26117       637120 :          idata = idata + 1
   26118       637120 :          data_tmp = full_data(idata)
   26119       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26120       637120 :          data_tmp = IAND(data_tmp, mask_left(7))
   26121       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26122       637120 :          ipack = ipack + 1
   26123       637120 :          packed_data(ipack) = pack_tmp
   26124       637120 :          data_tmp = full_data(idata)
   26125       637120 :          pack_tmp = ISHFT(data_tmp, 36)
   26126       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26127       637120 :          idata = idata + 1
   26128       637120 :          data_tmp = full_data(idata)
   26129       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26130       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26131       637120 :          pack_tmp = ISHFT(pack_tmp, -1)
   26132       637120 :          idata = idata + 1
   26133       637120 :          data_tmp = full_data(idata)
   26134       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26135       637120 :          data_tmp = IAND(data_tmp, mask_left(1))
   26136       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26137       637120 :          ipack = ipack + 1
   26138       637120 :          packed_data(ipack) = pack_tmp
   26139       637120 :          data_tmp = full_data(idata)
   26140       637120 :          pack_tmp = ISHFT(data_tmp, 30)
   26141       637120 :          pack_tmp = ISHFT(pack_tmp, -30)
   26142       637120 :          idata = idata + 1
   26143       637120 :          data_tmp = full_data(idata)
   26144       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26145       637120 :          data_tmp = IAND(data_tmp, mask_left(30))
   26146       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26147       637120 :          ipack = ipack + 1
   26148       637120 :          packed_data(ipack) = pack_tmp
   26149       637120 :          data_tmp = full_data(idata)
   26150       637120 :          pack_tmp = ISHFT(data_tmp, 59)
   26151       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26152       637120 :          idata = idata + 1
   26153       637120 :          data_tmp = full_data(idata)
   26154       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26155       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26156       637120 :          pack_tmp = ISHFT(pack_tmp, -24)
   26157       637120 :          idata = idata + 1
   26158       637120 :          data_tmp = full_data(idata)
   26159       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26160       637120 :          data_tmp = IAND(data_tmp, mask_left(24))
   26161       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26162       637120 :          ipack = ipack + 1
   26163       637120 :          packed_data(ipack) = pack_tmp
   26164       637120 :          data_tmp = full_data(idata)
   26165       637120 :          pack_tmp = ISHFT(data_tmp, 53)
   26166       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26167       637120 :          idata = idata + 1
   26168       637120 :          data_tmp = full_data(idata)
   26169       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26170       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26171       637120 :          pack_tmp = ISHFT(pack_tmp, -18)
   26172       637120 :          idata = idata + 1
   26173       637120 :          data_tmp = full_data(idata)
   26174       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26175       637120 :          data_tmp = IAND(data_tmp, mask_left(18))
   26176       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26177       637120 :          ipack = ipack + 1
   26178       637120 :          packed_data(ipack) = pack_tmp
   26179       637120 :          data_tmp = full_data(idata)
   26180       637120 :          pack_tmp = ISHFT(data_tmp, 47)
   26181       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26182       637120 :          idata = idata + 1
   26183       637120 :          data_tmp = full_data(idata)
   26184       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26185       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26186       637120 :          pack_tmp = ISHFT(pack_tmp, -12)
   26187       637120 :          idata = idata + 1
   26188       637120 :          data_tmp = full_data(idata)
   26189       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26190       637120 :          data_tmp = IAND(data_tmp, mask_left(12))
   26191       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26192       637120 :          ipack = ipack + 1
   26193       637120 :          packed_data(ipack) = pack_tmp
   26194       637120 :          data_tmp = full_data(idata)
   26195       637120 :          pack_tmp = ISHFT(data_tmp, 41)
   26196       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26197       637120 :          idata = idata + 1
   26198       637120 :          data_tmp = full_data(idata)
   26199       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26200       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26201       637120 :          pack_tmp = ISHFT(pack_tmp, -6)
   26202       637120 :          idata = idata + 1
   26203       637120 :          data_tmp = full_data(idata)
   26204       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26205       637120 :          data_tmp = IAND(data_tmp, mask_left(6))
   26206       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26207       637120 :          ipack = ipack + 1
   26208       637120 :          packed_data(ipack) = pack_tmp
   26209       637120 :          data_tmp = full_data(idata)
   26210       637120 :          pack_tmp = ISHFT(data_tmp, 35)
   26211       637120 :          pack_tmp = ISHFT(pack_tmp, -35)
   26212       637120 :          idata = idata + 1
   26213       637120 :          data_tmp = full_data(idata)
   26214       637120 :          data_tmp = ISHFT(data_tmp, 29)
   26215       637120 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26216              :          pack_tmp = ISHFT(pack_tmp, 0)
   26217       637120 :          pack_tmp = ISHFT(pack_tmp, 0)
   26218       637120 :          ipack = ipack + 1
   26219       637672 :          packed_data(ipack) = pack_tmp
   26220              :       END DO
   26221        49942 :       IF (Ndata_rep < Ndata) THEN
   26222        18848 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   26223              :       END IF
   26224        49942 :    END SUBROUTINE ints2bits_35
   26225              : 
   26226              : ! **************************************************************************************************
   26227              : !> \brief ...
   26228              : !> \param Ndata ...
   26229              : !> \param packed_data ...
   26230              : !> \param full_data ...
   26231              : ! **************************************************************************************************
   26232       235202 :    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       235202 :       ipack = 0
   26243       235202 :       idata = 0
   26244       235202 :       pack_tmp = 0
   26245       235202 :       Ndata_rep = (Ndata/64)*64
   26246       235202 :       DO kdata = 1, Ndata_rep, 64
   26247      2902402 :          idata = idata + 1
   26248      2902402 :          data_tmp = ISHFT(pack_tmp, 35)
   26249      2902402 :          ipack = ipack + 1
   26250      2902402 :          pack_tmp = packed_data(ipack)
   26251      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   26252      2902402 :          pack_tmp = ISHFT(pack_tmp, -35)
   26253      2902402 :          idata = idata + 1
   26254      2902402 :          data_tmp = ISHFT(pack_tmp, 6)
   26255      2902402 :          ipack = ipack + 1
   26256      2902402 :          pack_tmp = packed_data(ipack)
   26257      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   26258      2902402 :          pack_tmp = ISHFT(pack_tmp, -6)
   26259      2902402 :          idata = idata + 1
   26260      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26261      2902402 :          full_data(idata) = data_tmp
   26262      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26263      2902402 :          idata = idata + 1
   26264      2902402 :          data_tmp = ISHFT(pack_tmp, 12)
   26265      2902402 :          ipack = ipack + 1
   26266      2902402 :          pack_tmp = packed_data(ipack)
   26267      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   26268      2902402 :          pack_tmp = ISHFT(pack_tmp, -12)
   26269      2902402 :          idata = idata + 1
   26270      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26271      2902402 :          full_data(idata) = data_tmp
   26272      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26273      2902402 :          idata = idata + 1
   26274      2902402 :          data_tmp = ISHFT(pack_tmp, 18)
   26275      2902402 :          ipack = ipack + 1
   26276      2902402 :          pack_tmp = packed_data(ipack)
   26277      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   26278      2902402 :          pack_tmp = ISHFT(pack_tmp, -18)
   26279      2902402 :          idata = idata + 1
   26280      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26281      2902402 :          full_data(idata) = data_tmp
   26282      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26283      2902402 :          idata = idata + 1
   26284      2902402 :          data_tmp = ISHFT(pack_tmp, 24)
   26285      2902402 :          ipack = ipack + 1
   26286      2902402 :          pack_tmp = packed_data(ipack)
   26287      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   26288      2902402 :          pack_tmp = ISHFT(pack_tmp, -24)
   26289      2902402 :          idata = idata + 1
   26290      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26291      2902402 :          full_data(idata) = data_tmp
   26292      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26293      2902402 :          idata = idata + 1
   26294      2902402 :          data_tmp = ISHFT(pack_tmp, 30)
   26295      2902402 :          ipack = ipack + 1
   26296      2902402 :          pack_tmp = packed_data(ipack)
   26297      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   26298      2902402 :          pack_tmp = ISHFT(pack_tmp, -30)
   26299      2902402 :          idata = idata + 1
   26300      2902402 :          data_tmp = ISHFT(pack_tmp, 1)
   26301      2902402 :          ipack = ipack + 1
   26302      2902402 :          pack_tmp = packed_data(ipack)
   26303      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   26304      2902402 :          pack_tmp = ISHFT(pack_tmp, -1)
   26305      2902402 :          idata = idata + 1
   26306      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26307      2902402 :          full_data(idata) = data_tmp
   26308      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26309      2902402 :          idata = idata + 1
   26310      2902402 :          data_tmp = ISHFT(pack_tmp, 7)
   26311      2902402 :          ipack = ipack + 1
   26312      2902402 :          pack_tmp = packed_data(ipack)
   26313      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   26314      2902402 :          pack_tmp = ISHFT(pack_tmp, -7)
   26315      2902402 :          idata = idata + 1
   26316      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26317      2902402 :          full_data(idata) = data_tmp
   26318      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26319      2902402 :          idata = idata + 1
   26320      2902402 :          data_tmp = ISHFT(pack_tmp, 13)
   26321      2902402 :          ipack = ipack + 1
   26322      2902402 :          pack_tmp = packed_data(ipack)
   26323      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   26324      2902402 :          pack_tmp = ISHFT(pack_tmp, -13)
   26325      2902402 :          idata = idata + 1
   26326      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26327      2902402 :          full_data(idata) = data_tmp
   26328      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26329      2902402 :          idata = idata + 1
   26330      2902402 :          data_tmp = ISHFT(pack_tmp, 19)
   26331      2902402 :          ipack = ipack + 1
   26332      2902402 :          pack_tmp = packed_data(ipack)
   26333      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   26334      2902402 :          pack_tmp = ISHFT(pack_tmp, -19)
   26335      2902402 :          idata = idata + 1
   26336      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26337      2902402 :          full_data(idata) = data_tmp
   26338      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26339      2902402 :          idata = idata + 1
   26340      2902402 :          data_tmp = ISHFT(pack_tmp, 25)
   26341      2902402 :          ipack = ipack + 1
   26342      2902402 :          pack_tmp = packed_data(ipack)
   26343      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   26344      2902402 :          pack_tmp = ISHFT(pack_tmp, -25)
   26345      2902402 :          idata = idata + 1
   26346      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26347      2902402 :          full_data(idata) = data_tmp
   26348      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26349      2902402 :          idata = idata + 1
   26350      2902402 :          data_tmp = ISHFT(pack_tmp, 31)
   26351      2902402 :          ipack = ipack + 1
   26352      2902402 :          pack_tmp = packed_data(ipack)
   26353      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   26354      2902402 :          pack_tmp = ISHFT(pack_tmp, -31)
   26355      2902402 :          idata = idata + 1
   26356      2902402 :          data_tmp = ISHFT(pack_tmp, 2)
   26357      2902402 :          ipack = ipack + 1
   26358      2902402 :          pack_tmp = packed_data(ipack)
   26359      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   26360      2902402 :          pack_tmp = ISHFT(pack_tmp, -2)
   26361      2902402 :          idata = idata + 1
   26362      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26363      2902402 :          full_data(idata) = data_tmp
   26364      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26365      2902402 :          idata = idata + 1
   26366      2902402 :          data_tmp = ISHFT(pack_tmp, 8)
   26367      2902402 :          ipack = ipack + 1
   26368      2902402 :          pack_tmp = packed_data(ipack)
   26369      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   26370      2902402 :          pack_tmp = ISHFT(pack_tmp, -8)
   26371      2902402 :          idata = idata + 1
   26372      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26373      2902402 :          full_data(idata) = data_tmp
   26374      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26375      2902402 :          idata = idata + 1
   26376      2902402 :          data_tmp = ISHFT(pack_tmp, 14)
   26377      2902402 :          ipack = ipack + 1
   26378      2902402 :          pack_tmp = packed_data(ipack)
   26379      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   26380      2902402 :          pack_tmp = ISHFT(pack_tmp, -14)
   26381      2902402 :          idata = idata + 1
   26382      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26383      2902402 :          full_data(idata) = data_tmp
   26384      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26385      2902402 :          idata = idata + 1
   26386      2902402 :          data_tmp = ISHFT(pack_tmp, 20)
   26387      2902402 :          ipack = ipack + 1
   26388      2902402 :          pack_tmp = packed_data(ipack)
   26389      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   26390      2902402 :          pack_tmp = ISHFT(pack_tmp, -20)
   26391      2902402 :          idata = idata + 1
   26392      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26393      2902402 :          full_data(idata) = data_tmp
   26394      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26395      2902402 :          idata = idata + 1
   26396      2902402 :          data_tmp = ISHFT(pack_tmp, 26)
   26397      2902402 :          ipack = ipack + 1
   26398      2902402 :          pack_tmp = packed_data(ipack)
   26399      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   26400      2902402 :          pack_tmp = ISHFT(pack_tmp, -26)
   26401      2902402 :          idata = idata + 1
   26402      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26403      2902402 :          full_data(idata) = data_tmp
   26404      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26405      2902402 :          idata = idata + 1
   26406      2902402 :          data_tmp = ISHFT(pack_tmp, 32)
   26407      2902402 :          ipack = ipack + 1
   26408      2902402 :          pack_tmp = packed_data(ipack)
   26409      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   26410      2902402 :          pack_tmp = ISHFT(pack_tmp, -32)
   26411      2902402 :          idata = idata + 1
   26412      2902402 :          data_tmp = ISHFT(pack_tmp, 3)
   26413      2902402 :          ipack = ipack + 1
   26414      2902402 :          pack_tmp = packed_data(ipack)
   26415      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   26416      2902402 :          pack_tmp = ISHFT(pack_tmp, -3)
   26417      2902402 :          idata = idata + 1
   26418      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26419      2902402 :          full_data(idata) = data_tmp
   26420      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26421      2902402 :          idata = idata + 1
   26422      2902402 :          data_tmp = ISHFT(pack_tmp, 9)
   26423      2902402 :          ipack = ipack + 1
   26424      2902402 :          pack_tmp = packed_data(ipack)
   26425      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   26426      2902402 :          pack_tmp = ISHFT(pack_tmp, -9)
   26427      2902402 :          idata = idata + 1
   26428      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26429      2902402 :          full_data(idata) = data_tmp
   26430      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26431      2902402 :          idata = idata + 1
   26432      2902402 :          data_tmp = ISHFT(pack_tmp, 15)
   26433      2902402 :          ipack = ipack + 1
   26434      2902402 :          pack_tmp = packed_data(ipack)
   26435      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   26436      2902402 :          pack_tmp = ISHFT(pack_tmp, -15)
   26437      2902402 :          idata = idata + 1
   26438      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26439      2902402 :          full_data(idata) = data_tmp
   26440      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26441      2902402 :          idata = idata + 1
   26442      2902402 :          data_tmp = ISHFT(pack_tmp, 21)
   26443      2902402 :          ipack = ipack + 1
   26444      2902402 :          pack_tmp = packed_data(ipack)
   26445      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   26446      2902402 :          pack_tmp = ISHFT(pack_tmp, -21)
   26447      2902402 :          idata = idata + 1
   26448      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26449      2902402 :          full_data(idata) = data_tmp
   26450      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26451      2902402 :          idata = idata + 1
   26452      2902402 :          data_tmp = ISHFT(pack_tmp, 27)
   26453      2902402 :          ipack = ipack + 1
   26454      2902402 :          pack_tmp = packed_data(ipack)
   26455      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   26456      2902402 :          pack_tmp = ISHFT(pack_tmp, -27)
   26457      2902402 :          idata = idata + 1
   26458      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26459      2902402 :          full_data(idata) = data_tmp
   26460      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26461      2902402 :          idata = idata + 1
   26462      2902402 :          data_tmp = ISHFT(pack_tmp, 33)
   26463      2902402 :          ipack = ipack + 1
   26464      2902402 :          pack_tmp = packed_data(ipack)
   26465      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   26466      2902402 :          pack_tmp = ISHFT(pack_tmp, -33)
   26467      2902402 :          idata = idata + 1
   26468      2902402 :          data_tmp = ISHFT(pack_tmp, 4)
   26469      2902402 :          ipack = ipack + 1
   26470      2902402 :          pack_tmp = packed_data(ipack)
   26471      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   26472      2902402 :          pack_tmp = ISHFT(pack_tmp, -4)
   26473      2902402 :          idata = idata + 1
   26474      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26475      2902402 :          full_data(idata) = data_tmp
   26476      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26477      2902402 :          idata = idata + 1
   26478      2902402 :          data_tmp = ISHFT(pack_tmp, 10)
   26479      2902402 :          ipack = ipack + 1
   26480      2902402 :          pack_tmp = packed_data(ipack)
   26481      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   26482      2902402 :          pack_tmp = ISHFT(pack_tmp, -10)
   26483      2902402 :          idata = idata + 1
   26484      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26485      2902402 :          full_data(idata) = data_tmp
   26486      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26487      2902402 :          idata = idata + 1
   26488      2902402 :          data_tmp = ISHFT(pack_tmp, 16)
   26489      2902402 :          ipack = ipack + 1
   26490      2902402 :          pack_tmp = packed_data(ipack)
   26491      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   26492      2902402 :          pack_tmp = ISHFT(pack_tmp, -16)
   26493      2902402 :          idata = idata + 1
   26494      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26495      2902402 :          full_data(idata) = data_tmp
   26496      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26497      2902402 :          idata = idata + 1
   26498      2902402 :          data_tmp = ISHFT(pack_tmp, 22)
   26499      2902402 :          ipack = ipack + 1
   26500      2902402 :          pack_tmp = packed_data(ipack)
   26501      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   26502      2902402 :          pack_tmp = ISHFT(pack_tmp, -22)
   26503      2902402 :          idata = idata + 1
   26504      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26505      2902402 :          full_data(idata) = data_tmp
   26506      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26507      2902402 :          idata = idata + 1
   26508      2902402 :          data_tmp = ISHFT(pack_tmp, 28)
   26509      2902402 :          ipack = ipack + 1
   26510      2902402 :          pack_tmp = packed_data(ipack)
   26511      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   26512      2902402 :          pack_tmp = ISHFT(pack_tmp, -28)
   26513      2902402 :          idata = idata + 1
   26514      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26515      2902402 :          full_data(idata) = data_tmp
   26516      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26517      2902402 :          idata = idata + 1
   26518      2902402 :          data_tmp = ISHFT(pack_tmp, 34)
   26519      2902402 :          ipack = ipack + 1
   26520      2902402 :          pack_tmp = packed_data(ipack)
   26521      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   26522      2902402 :          pack_tmp = ISHFT(pack_tmp, -34)
   26523      2902402 :          idata = idata + 1
   26524      2902402 :          data_tmp = ISHFT(pack_tmp, 5)
   26525      2902402 :          ipack = ipack + 1
   26526      2902402 :          pack_tmp = packed_data(ipack)
   26527      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   26528      2902402 :          pack_tmp = ISHFT(pack_tmp, -5)
   26529      2902402 :          idata = idata + 1
   26530      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26531      2902402 :          full_data(idata) = data_tmp
   26532      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26533      2902402 :          idata = idata + 1
   26534      2902402 :          data_tmp = ISHFT(pack_tmp, 11)
   26535      2902402 :          ipack = ipack + 1
   26536      2902402 :          pack_tmp = packed_data(ipack)
   26537      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   26538      2902402 :          pack_tmp = ISHFT(pack_tmp, -11)
   26539      2902402 :          idata = idata + 1
   26540      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26541      2902402 :          full_data(idata) = data_tmp
   26542      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26543      2902402 :          idata = idata + 1
   26544      2902402 :          data_tmp = ISHFT(pack_tmp, 17)
   26545      2902402 :          ipack = ipack + 1
   26546      2902402 :          pack_tmp = packed_data(ipack)
   26547      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   26548      2902402 :          pack_tmp = ISHFT(pack_tmp, -17)
   26549      2902402 :          idata = idata + 1
   26550      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26551      2902402 :          full_data(idata) = data_tmp
   26552      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26553      2902402 :          idata = idata + 1
   26554      2902402 :          data_tmp = ISHFT(pack_tmp, 23)
   26555      2902402 :          ipack = ipack + 1
   26556      2902402 :          pack_tmp = packed_data(ipack)
   26557      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   26558      2902402 :          pack_tmp = ISHFT(pack_tmp, -23)
   26559      2902402 :          idata = idata + 1
   26560      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26561      2902402 :          full_data(idata) = data_tmp
   26562      2902402 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26563      2902402 :          idata = idata + 1
   26564      2902402 :          data_tmp = ISHFT(pack_tmp, 29)
   26565      2902402 :          ipack = ipack + 1
   26566      2902402 :          pack_tmp = packed_data(ipack)
   26567      2902402 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   26568      2902402 :          pack_tmp = ISHFT(pack_tmp, -29)
   26569      2902402 :          idata = idata + 1
   26570      2902402 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   26571      2902402 :          full_data(idata) = data_tmp
   26572      2904787 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   26573              :       END DO
   26574       235202 :       IF (Ndata_rep < Ndata) THEN
   26575       100220 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   26576              :       END IF
   26577       235202 :    END SUBROUTINE bits2ints_35
   26578              : 
   26579              : ! **************************************************************************************************
   26580              : !> \brief ...
   26581              : !> \param Ndata ...
   26582              : !> \param packed_data ...
   26583              : !> \param full_data ...
   26584              : ! **************************************************************************************************
   26585        51671 :    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        51671 :       idata = 0
   26596        51671 :       ipack = 0
   26597        51671 :       Ndata_rep = (Ndata/64)*64
   26598        51671 :       DO kdata = 1, Ndata_rep, 64
   26599       654458 :          pack_tmp = 0
   26600       654458 :          idata = idata + 1
   26601       654458 :          data_tmp = full_data(idata)
   26602       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26603       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26604       654458 :          pack_tmp = ISHFT(pack_tmp, -28)
   26605       654458 :          idata = idata + 1
   26606       654458 :          data_tmp = full_data(idata)
   26607       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26608       654458 :          data_tmp = IAND(data_tmp, mask_left(28))
   26609       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26610       654458 :          ipack = ipack + 1
   26611       654458 :          packed_data(ipack) = pack_tmp
   26612       654458 :          data_tmp = full_data(idata)
   26613       654458 :          pack_tmp = ISHFT(data_tmp, 56)
   26614       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26615       654458 :          idata = idata + 1
   26616       654458 :          data_tmp = full_data(idata)
   26617       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26618       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26619       654458 :          pack_tmp = ISHFT(pack_tmp, -20)
   26620       654458 :          idata = idata + 1
   26621       654458 :          data_tmp = full_data(idata)
   26622       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26623       654458 :          data_tmp = IAND(data_tmp, mask_left(20))
   26624       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26625       654458 :          ipack = ipack + 1
   26626       654458 :          packed_data(ipack) = pack_tmp
   26627       654458 :          data_tmp = full_data(idata)
   26628       654458 :          pack_tmp = ISHFT(data_tmp, 48)
   26629       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26630       654458 :          idata = idata + 1
   26631       654458 :          data_tmp = full_data(idata)
   26632       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26633       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26634       654458 :          pack_tmp = ISHFT(pack_tmp, -12)
   26635       654458 :          idata = idata + 1
   26636       654458 :          data_tmp = full_data(idata)
   26637       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26638       654458 :          data_tmp = IAND(data_tmp, mask_left(12))
   26639       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26640       654458 :          ipack = ipack + 1
   26641       654458 :          packed_data(ipack) = pack_tmp
   26642       654458 :          data_tmp = full_data(idata)
   26643       654458 :          pack_tmp = ISHFT(data_tmp, 40)
   26644       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26645       654458 :          idata = idata + 1
   26646       654458 :          data_tmp = full_data(idata)
   26647       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26648       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26649       654458 :          pack_tmp = ISHFT(pack_tmp, -4)
   26650       654458 :          idata = idata + 1
   26651       654458 :          data_tmp = full_data(idata)
   26652       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26653       654458 :          data_tmp = IAND(data_tmp, mask_left(4))
   26654       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26655       654458 :          ipack = ipack + 1
   26656       654458 :          packed_data(ipack) = pack_tmp
   26657       654458 :          data_tmp = full_data(idata)
   26658       654458 :          pack_tmp = ISHFT(data_tmp, 32)
   26659       654458 :          pack_tmp = ISHFT(pack_tmp, -32)
   26660       654458 :          idata = idata + 1
   26661       654458 :          data_tmp = full_data(idata)
   26662       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26663       654458 :          data_tmp = IAND(data_tmp, mask_left(32))
   26664       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26665       654458 :          ipack = ipack + 1
   26666       654458 :          packed_data(ipack) = pack_tmp
   26667       654458 :          data_tmp = full_data(idata)
   26668       654458 :          pack_tmp = ISHFT(data_tmp, 60)
   26669       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26670       654458 :          idata = idata + 1
   26671       654458 :          data_tmp = full_data(idata)
   26672       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26673       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26674       654458 :          pack_tmp = ISHFT(pack_tmp, -24)
   26675       654458 :          idata = idata + 1
   26676       654458 :          data_tmp = full_data(idata)
   26677       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26678       654458 :          data_tmp = IAND(data_tmp, mask_left(24))
   26679       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26680       654458 :          ipack = ipack + 1
   26681       654458 :          packed_data(ipack) = pack_tmp
   26682       654458 :          data_tmp = full_data(idata)
   26683       654458 :          pack_tmp = ISHFT(data_tmp, 52)
   26684       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26685       654458 :          idata = idata + 1
   26686       654458 :          data_tmp = full_data(idata)
   26687       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26688       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26689       654458 :          pack_tmp = ISHFT(pack_tmp, -16)
   26690       654458 :          idata = idata + 1
   26691       654458 :          data_tmp = full_data(idata)
   26692       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26693       654458 :          data_tmp = IAND(data_tmp, mask_left(16))
   26694       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26695       654458 :          ipack = ipack + 1
   26696       654458 :          packed_data(ipack) = pack_tmp
   26697       654458 :          data_tmp = full_data(idata)
   26698       654458 :          pack_tmp = ISHFT(data_tmp, 44)
   26699       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26700       654458 :          idata = idata + 1
   26701       654458 :          data_tmp = full_data(idata)
   26702       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26703       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26704       654458 :          pack_tmp = ISHFT(pack_tmp, -8)
   26705       654458 :          idata = idata + 1
   26706       654458 :          data_tmp = full_data(idata)
   26707       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26708       654458 :          data_tmp = IAND(data_tmp, mask_left(8))
   26709       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26710       654458 :          ipack = ipack + 1
   26711       654458 :          packed_data(ipack) = pack_tmp
   26712       654458 :          data_tmp = full_data(idata)
   26713       654458 :          pack_tmp = ISHFT(data_tmp, 36)
   26714       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26715       654458 :          idata = idata + 1
   26716       654458 :          data_tmp = full_data(idata)
   26717       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26718       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26719       654458 :          pack_tmp = ISHFT(pack_tmp, 0)
   26720       654458 :          idata = idata + 1
   26721       654458 :          data_tmp = full_data(idata)
   26722              :          data_tmp = ISHFT(data_tmp, 28)
   26723       654458 :          data_tmp = IAND(data_tmp, mask_left(0))
   26724       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26725       654458 :          ipack = ipack + 1
   26726       654458 :          packed_data(ipack) = pack_tmp
   26727       654458 :          data_tmp = full_data(idata)
   26728       654458 :          pack_tmp = ISHFT(data_tmp, 28)
   26729       654458 :          pack_tmp = ISHFT(pack_tmp, -28)
   26730       654458 :          idata = idata + 1
   26731       654458 :          data_tmp = full_data(idata)
   26732       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26733       654458 :          data_tmp = IAND(data_tmp, mask_left(28))
   26734       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26735       654458 :          ipack = ipack + 1
   26736       654458 :          packed_data(ipack) = pack_tmp
   26737       654458 :          data_tmp = full_data(idata)
   26738       654458 :          pack_tmp = ISHFT(data_tmp, 56)
   26739       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26740       654458 :          idata = idata + 1
   26741       654458 :          data_tmp = full_data(idata)
   26742       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26743       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26744       654458 :          pack_tmp = ISHFT(pack_tmp, -20)
   26745       654458 :          idata = idata + 1
   26746       654458 :          data_tmp = full_data(idata)
   26747       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26748       654458 :          data_tmp = IAND(data_tmp, mask_left(20))
   26749       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26750       654458 :          ipack = ipack + 1
   26751       654458 :          packed_data(ipack) = pack_tmp
   26752       654458 :          data_tmp = full_data(idata)
   26753       654458 :          pack_tmp = ISHFT(data_tmp, 48)
   26754       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26755       654458 :          idata = idata + 1
   26756       654458 :          data_tmp = full_data(idata)
   26757       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26758       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26759       654458 :          pack_tmp = ISHFT(pack_tmp, -12)
   26760       654458 :          idata = idata + 1
   26761       654458 :          data_tmp = full_data(idata)
   26762       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26763       654458 :          data_tmp = IAND(data_tmp, mask_left(12))
   26764       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26765       654458 :          ipack = ipack + 1
   26766       654458 :          packed_data(ipack) = pack_tmp
   26767       654458 :          data_tmp = full_data(idata)
   26768       654458 :          pack_tmp = ISHFT(data_tmp, 40)
   26769       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26770       654458 :          idata = idata + 1
   26771       654458 :          data_tmp = full_data(idata)
   26772       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26773       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26774       654458 :          pack_tmp = ISHFT(pack_tmp, -4)
   26775       654458 :          idata = idata + 1
   26776       654458 :          data_tmp = full_data(idata)
   26777       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26778       654458 :          data_tmp = IAND(data_tmp, mask_left(4))
   26779       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26780       654458 :          ipack = ipack + 1
   26781       654458 :          packed_data(ipack) = pack_tmp
   26782       654458 :          data_tmp = full_data(idata)
   26783       654458 :          pack_tmp = ISHFT(data_tmp, 32)
   26784       654458 :          pack_tmp = ISHFT(pack_tmp, -32)
   26785       654458 :          idata = idata + 1
   26786       654458 :          data_tmp = full_data(idata)
   26787       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26788       654458 :          data_tmp = IAND(data_tmp, mask_left(32))
   26789       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26790       654458 :          ipack = ipack + 1
   26791       654458 :          packed_data(ipack) = pack_tmp
   26792       654458 :          data_tmp = full_data(idata)
   26793       654458 :          pack_tmp = ISHFT(data_tmp, 60)
   26794       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26795       654458 :          idata = idata + 1
   26796       654458 :          data_tmp = full_data(idata)
   26797       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26798       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26799       654458 :          pack_tmp = ISHFT(pack_tmp, -24)
   26800       654458 :          idata = idata + 1
   26801       654458 :          data_tmp = full_data(idata)
   26802       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26803       654458 :          data_tmp = IAND(data_tmp, mask_left(24))
   26804       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26805       654458 :          ipack = ipack + 1
   26806       654458 :          packed_data(ipack) = pack_tmp
   26807       654458 :          data_tmp = full_data(idata)
   26808       654458 :          pack_tmp = ISHFT(data_tmp, 52)
   26809       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26810       654458 :          idata = idata + 1
   26811       654458 :          data_tmp = full_data(idata)
   26812       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26813       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26814       654458 :          pack_tmp = ISHFT(pack_tmp, -16)
   26815       654458 :          idata = idata + 1
   26816       654458 :          data_tmp = full_data(idata)
   26817       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26818       654458 :          data_tmp = IAND(data_tmp, mask_left(16))
   26819       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26820       654458 :          ipack = ipack + 1
   26821       654458 :          packed_data(ipack) = pack_tmp
   26822       654458 :          data_tmp = full_data(idata)
   26823       654458 :          pack_tmp = ISHFT(data_tmp, 44)
   26824       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26825       654458 :          idata = idata + 1
   26826       654458 :          data_tmp = full_data(idata)
   26827       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26828       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26829       654458 :          pack_tmp = ISHFT(pack_tmp, -8)
   26830       654458 :          idata = idata + 1
   26831       654458 :          data_tmp = full_data(idata)
   26832       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26833       654458 :          data_tmp = IAND(data_tmp, mask_left(8))
   26834       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26835       654458 :          ipack = ipack + 1
   26836       654458 :          packed_data(ipack) = pack_tmp
   26837       654458 :          data_tmp = full_data(idata)
   26838       654458 :          pack_tmp = ISHFT(data_tmp, 36)
   26839       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26840       654458 :          idata = idata + 1
   26841       654458 :          data_tmp = full_data(idata)
   26842       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26843       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26844       654458 :          pack_tmp = ISHFT(pack_tmp, 0)
   26845       654458 :          idata = idata + 1
   26846       654458 :          data_tmp = full_data(idata)
   26847              :          data_tmp = ISHFT(data_tmp, 28)
   26848       654458 :          data_tmp = IAND(data_tmp, mask_left(0))
   26849       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26850       654458 :          ipack = ipack + 1
   26851       654458 :          packed_data(ipack) = pack_tmp
   26852       654458 :          data_tmp = full_data(idata)
   26853       654458 :          pack_tmp = ISHFT(data_tmp, 28)
   26854       654458 :          pack_tmp = ISHFT(pack_tmp, -28)
   26855       654458 :          idata = idata + 1
   26856       654458 :          data_tmp = full_data(idata)
   26857       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26858       654458 :          data_tmp = IAND(data_tmp, mask_left(28))
   26859       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26860       654458 :          ipack = ipack + 1
   26861       654458 :          packed_data(ipack) = pack_tmp
   26862       654458 :          data_tmp = full_data(idata)
   26863       654458 :          pack_tmp = ISHFT(data_tmp, 56)
   26864       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26865       654458 :          idata = idata + 1
   26866       654458 :          data_tmp = full_data(idata)
   26867       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26868       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26869       654458 :          pack_tmp = ISHFT(pack_tmp, -20)
   26870       654458 :          idata = idata + 1
   26871       654458 :          data_tmp = full_data(idata)
   26872       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26873       654458 :          data_tmp = IAND(data_tmp, mask_left(20))
   26874       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26875       654458 :          ipack = ipack + 1
   26876       654458 :          packed_data(ipack) = pack_tmp
   26877       654458 :          data_tmp = full_data(idata)
   26878       654458 :          pack_tmp = ISHFT(data_tmp, 48)
   26879       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26880       654458 :          idata = idata + 1
   26881       654458 :          data_tmp = full_data(idata)
   26882       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26883       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26884       654458 :          pack_tmp = ISHFT(pack_tmp, -12)
   26885       654458 :          idata = idata + 1
   26886       654458 :          data_tmp = full_data(idata)
   26887       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26888       654458 :          data_tmp = IAND(data_tmp, mask_left(12))
   26889       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26890       654458 :          ipack = ipack + 1
   26891       654458 :          packed_data(ipack) = pack_tmp
   26892       654458 :          data_tmp = full_data(idata)
   26893       654458 :          pack_tmp = ISHFT(data_tmp, 40)
   26894       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26895       654458 :          idata = idata + 1
   26896       654458 :          data_tmp = full_data(idata)
   26897       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26898       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26899       654458 :          pack_tmp = ISHFT(pack_tmp, -4)
   26900       654458 :          idata = idata + 1
   26901       654458 :          data_tmp = full_data(idata)
   26902       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26903       654458 :          data_tmp = IAND(data_tmp, mask_left(4))
   26904       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26905       654458 :          ipack = ipack + 1
   26906       654458 :          packed_data(ipack) = pack_tmp
   26907       654458 :          data_tmp = full_data(idata)
   26908       654458 :          pack_tmp = ISHFT(data_tmp, 32)
   26909       654458 :          pack_tmp = ISHFT(pack_tmp, -32)
   26910       654458 :          idata = idata + 1
   26911       654458 :          data_tmp = full_data(idata)
   26912       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26913       654458 :          data_tmp = IAND(data_tmp, mask_left(32))
   26914       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26915       654458 :          ipack = ipack + 1
   26916       654458 :          packed_data(ipack) = pack_tmp
   26917       654458 :          data_tmp = full_data(idata)
   26918       654458 :          pack_tmp = ISHFT(data_tmp, 60)
   26919       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26920       654458 :          idata = idata + 1
   26921       654458 :          data_tmp = full_data(idata)
   26922       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26923       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26924       654458 :          pack_tmp = ISHFT(pack_tmp, -24)
   26925       654458 :          idata = idata + 1
   26926       654458 :          data_tmp = full_data(idata)
   26927       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26928       654458 :          data_tmp = IAND(data_tmp, mask_left(24))
   26929       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26930       654458 :          ipack = ipack + 1
   26931       654458 :          packed_data(ipack) = pack_tmp
   26932       654458 :          data_tmp = full_data(idata)
   26933       654458 :          pack_tmp = ISHFT(data_tmp, 52)
   26934       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26935       654458 :          idata = idata + 1
   26936       654458 :          data_tmp = full_data(idata)
   26937       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26938       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26939       654458 :          pack_tmp = ISHFT(pack_tmp, -16)
   26940       654458 :          idata = idata + 1
   26941       654458 :          data_tmp = full_data(idata)
   26942       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26943       654458 :          data_tmp = IAND(data_tmp, mask_left(16))
   26944       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26945       654458 :          ipack = ipack + 1
   26946       654458 :          packed_data(ipack) = pack_tmp
   26947       654458 :          data_tmp = full_data(idata)
   26948       654458 :          pack_tmp = ISHFT(data_tmp, 44)
   26949       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26950       654458 :          idata = idata + 1
   26951       654458 :          data_tmp = full_data(idata)
   26952       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26953       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26954       654458 :          pack_tmp = ISHFT(pack_tmp, -8)
   26955       654458 :          idata = idata + 1
   26956       654458 :          data_tmp = full_data(idata)
   26957       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26958       654458 :          data_tmp = IAND(data_tmp, mask_left(8))
   26959       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26960       654458 :          ipack = ipack + 1
   26961       654458 :          packed_data(ipack) = pack_tmp
   26962       654458 :          data_tmp = full_data(idata)
   26963       654458 :          pack_tmp = ISHFT(data_tmp, 36)
   26964       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26965       654458 :          idata = idata + 1
   26966       654458 :          data_tmp = full_data(idata)
   26967       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26968       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26969       654458 :          pack_tmp = ISHFT(pack_tmp, 0)
   26970       654458 :          idata = idata + 1
   26971       654458 :          data_tmp = full_data(idata)
   26972              :          data_tmp = ISHFT(data_tmp, 28)
   26973       654458 :          data_tmp = IAND(data_tmp, mask_left(0))
   26974       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26975       654458 :          ipack = ipack + 1
   26976       654458 :          packed_data(ipack) = pack_tmp
   26977       654458 :          data_tmp = full_data(idata)
   26978       654458 :          pack_tmp = ISHFT(data_tmp, 28)
   26979       654458 :          pack_tmp = ISHFT(pack_tmp, -28)
   26980       654458 :          idata = idata + 1
   26981       654458 :          data_tmp = full_data(idata)
   26982       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26983       654458 :          data_tmp = IAND(data_tmp, mask_left(28))
   26984       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26985       654458 :          ipack = ipack + 1
   26986       654458 :          packed_data(ipack) = pack_tmp
   26987       654458 :          data_tmp = full_data(idata)
   26988       654458 :          pack_tmp = ISHFT(data_tmp, 56)
   26989       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   26990       654458 :          idata = idata + 1
   26991       654458 :          data_tmp = full_data(idata)
   26992       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26993       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   26994       654458 :          pack_tmp = ISHFT(pack_tmp, -20)
   26995       654458 :          idata = idata + 1
   26996       654458 :          data_tmp = full_data(idata)
   26997       654458 :          data_tmp = ISHFT(data_tmp, 28)
   26998       654458 :          data_tmp = IAND(data_tmp, mask_left(20))
   26999       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27000       654458 :          ipack = ipack + 1
   27001       654458 :          packed_data(ipack) = pack_tmp
   27002       654458 :          data_tmp = full_data(idata)
   27003       654458 :          pack_tmp = ISHFT(data_tmp, 48)
   27004       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   27005       654458 :          idata = idata + 1
   27006       654458 :          data_tmp = full_data(idata)
   27007       654458 :          data_tmp = ISHFT(data_tmp, 28)
   27008       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27009       654458 :          pack_tmp = ISHFT(pack_tmp, -12)
   27010       654458 :          idata = idata + 1
   27011       654458 :          data_tmp = full_data(idata)
   27012       654458 :          data_tmp = ISHFT(data_tmp, 28)
   27013       654458 :          data_tmp = IAND(data_tmp, mask_left(12))
   27014       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27015       654458 :          ipack = ipack + 1
   27016       654458 :          packed_data(ipack) = pack_tmp
   27017       654458 :          data_tmp = full_data(idata)
   27018       654458 :          pack_tmp = ISHFT(data_tmp, 40)
   27019       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   27020       654458 :          idata = idata + 1
   27021       654458 :          data_tmp = full_data(idata)
   27022       654458 :          data_tmp = ISHFT(data_tmp, 28)
   27023       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27024       654458 :          pack_tmp = ISHFT(pack_tmp, -4)
   27025       654458 :          idata = idata + 1
   27026       654458 :          data_tmp = full_data(idata)
   27027       654458 :          data_tmp = ISHFT(data_tmp, 28)
   27028       654458 :          data_tmp = IAND(data_tmp, mask_left(4))
   27029       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27030       654458 :          ipack = ipack + 1
   27031       654458 :          packed_data(ipack) = pack_tmp
   27032       654458 :          data_tmp = full_data(idata)
   27033       654458 :          pack_tmp = ISHFT(data_tmp, 32)
   27034       654458 :          pack_tmp = ISHFT(pack_tmp, -32)
   27035       654458 :          idata = idata + 1
   27036       654458 :          data_tmp = full_data(idata)
   27037       654458 :          data_tmp = ISHFT(data_tmp, 28)
   27038       654458 :          data_tmp = IAND(data_tmp, mask_left(32))
   27039       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27040       654458 :          ipack = ipack + 1
   27041       654458 :          packed_data(ipack) = pack_tmp
   27042       654458 :          data_tmp = full_data(idata)
   27043       654458 :          pack_tmp = ISHFT(data_tmp, 60)
   27044       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   27045       654458 :          idata = idata + 1
   27046       654458 :          data_tmp = full_data(idata)
   27047       654458 :          data_tmp = ISHFT(data_tmp, 28)
   27048       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27049       654458 :          pack_tmp = ISHFT(pack_tmp, -24)
   27050       654458 :          idata = idata + 1
   27051       654458 :          data_tmp = full_data(idata)
   27052       654458 :          data_tmp = ISHFT(data_tmp, 28)
   27053       654458 :          data_tmp = IAND(data_tmp, mask_left(24))
   27054       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27055       654458 :          ipack = ipack + 1
   27056       654458 :          packed_data(ipack) = pack_tmp
   27057       654458 :          data_tmp = full_data(idata)
   27058       654458 :          pack_tmp = ISHFT(data_tmp, 52)
   27059       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   27060       654458 :          idata = idata + 1
   27061       654458 :          data_tmp = full_data(idata)
   27062       654458 :          data_tmp = ISHFT(data_tmp, 28)
   27063       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27064       654458 :          pack_tmp = ISHFT(pack_tmp, -16)
   27065       654458 :          idata = idata + 1
   27066       654458 :          data_tmp = full_data(idata)
   27067       654458 :          data_tmp = ISHFT(data_tmp, 28)
   27068       654458 :          data_tmp = IAND(data_tmp, mask_left(16))
   27069       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27070       654458 :          ipack = ipack + 1
   27071       654458 :          packed_data(ipack) = pack_tmp
   27072       654458 :          data_tmp = full_data(idata)
   27073       654458 :          pack_tmp = ISHFT(data_tmp, 44)
   27074       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   27075       654458 :          idata = idata + 1
   27076       654458 :          data_tmp = full_data(idata)
   27077       654458 :          data_tmp = ISHFT(data_tmp, 28)
   27078       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27079       654458 :          pack_tmp = ISHFT(pack_tmp, -8)
   27080       654458 :          idata = idata + 1
   27081       654458 :          data_tmp = full_data(idata)
   27082       654458 :          data_tmp = ISHFT(data_tmp, 28)
   27083       654458 :          data_tmp = IAND(data_tmp, mask_left(8))
   27084       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27085       654458 :          ipack = ipack + 1
   27086       654458 :          packed_data(ipack) = pack_tmp
   27087       654458 :          data_tmp = full_data(idata)
   27088       654458 :          pack_tmp = ISHFT(data_tmp, 36)
   27089       654458 :          pack_tmp = ISHFT(pack_tmp, -36)
   27090       654458 :          idata = idata + 1
   27091       654458 :          data_tmp = full_data(idata)
   27092       654458 :          data_tmp = ISHFT(data_tmp, 28)
   27093       654458 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27094              :          pack_tmp = ISHFT(pack_tmp, 0)
   27095       654458 :          pack_tmp = ISHFT(pack_tmp, 0)
   27096       654458 :          ipack = ipack + 1
   27097       654834 :          packed_data(ipack) = pack_tmp
   27098              :       END DO
   27099        51671 :       IF (Ndata_rep < Ndata) THEN
   27100        20268 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27101              :       END IF
   27102        51671 :    END SUBROUTINE ints2bits_36
   27103              : 
   27104              : ! **************************************************************************************************
   27105              : !> \brief ...
   27106              : !> \param Ndata ...
   27107              : !> \param packed_data ...
   27108              : !> \param full_data ...
   27109              : ! **************************************************************************************************
   27110       184779 :    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       184779 :       ipack = 0
   27121       184779 :       idata = 0
   27122       184779 :       pack_tmp = 0
   27123       184779 :       Ndata_rep = (Ndata/64)*64
   27124       184779 :       DO kdata = 1, Ndata_rep, 64
   27125      2409625 :          idata = idata + 1
   27126      2409625 :          data_tmp = ISHFT(pack_tmp, 36)
   27127      2409625 :          ipack = ipack + 1
   27128      2409625 :          pack_tmp = packed_data(ipack)
   27129      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27130      2409625 :          pack_tmp = ISHFT(pack_tmp, -36)
   27131      2409625 :          idata = idata + 1
   27132      2409625 :          data_tmp = ISHFT(pack_tmp, 8)
   27133      2409625 :          ipack = ipack + 1
   27134      2409625 :          pack_tmp = packed_data(ipack)
   27135      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27136      2409625 :          pack_tmp = ISHFT(pack_tmp, -8)
   27137      2409625 :          idata = idata + 1
   27138      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27139      2409625 :          full_data(idata) = data_tmp
   27140      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27141      2409625 :          idata = idata + 1
   27142      2409625 :          data_tmp = ISHFT(pack_tmp, 16)
   27143      2409625 :          ipack = ipack + 1
   27144      2409625 :          pack_tmp = packed_data(ipack)
   27145      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27146      2409625 :          pack_tmp = ISHFT(pack_tmp, -16)
   27147      2409625 :          idata = idata + 1
   27148      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27149      2409625 :          full_data(idata) = data_tmp
   27150      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27151      2409625 :          idata = idata + 1
   27152      2409625 :          data_tmp = ISHFT(pack_tmp, 24)
   27153      2409625 :          ipack = ipack + 1
   27154      2409625 :          pack_tmp = packed_data(ipack)
   27155      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27156      2409625 :          pack_tmp = ISHFT(pack_tmp, -24)
   27157      2409625 :          idata = idata + 1
   27158      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27159      2409625 :          full_data(idata) = data_tmp
   27160      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27161      2409625 :          idata = idata + 1
   27162      2409625 :          data_tmp = ISHFT(pack_tmp, 32)
   27163      2409625 :          ipack = ipack + 1
   27164      2409625 :          pack_tmp = packed_data(ipack)
   27165      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27166      2409625 :          pack_tmp = ISHFT(pack_tmp, -32)
   27167      2409625 :          idata = idata + 1
   27168      2409625 :          data_tmp = ISHFT(pack_tmp, 4)
   27169      2409625 :          ipack = ipack + 1
   27170      2409625 :          pack_tmp = packed_data(ipack)
   27171      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27172      2409625 :          pack_tmp = ISHFT(pack_tmp, -4)
   27173      2409625 :          idata = idata + 1
   27174      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27175      2409625 :          full_data(idata) = data_tmp
   27176      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27177      2409625 :          idata = idata + 1
   27178      2409625 :          data_tmp = ISHFT(pack_tmp, 12)
   27179      2409625 :          ipack = ipack + 1
   27180      2409625 :          pack_tmp = packed_data(ipack)
   27181      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27182      2409625 :          pack_tmp = ISHFT(pack_tmp, -12)
   27183      2409625 :          idata = idata + 1
   27184      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27185      2409625 :          full_data(idata) = data_tmp
   27186      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27187      2409625 :          idata = idata + 1
   27188      2409625 :          data_tmp = ISHFT(pack_tmp, 20)
   27189      2409625 :          ipack = ipack + 1
   27190      2409625 :          pack_tmp = packed_data(ipack)
   27191      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27192      2409625 :          pack_tmp = ISHFT(pack_tmp, -20)
   27193      2409625 :          idata = idata + 1
   27194      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27195      2409625 :          full_data(idata) = data_tmp
   27196      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27197      2409625 :          idata = idata + 1
   27198      2409625 :          data_tmp = ISHFT(pack_tmp, 28)
   27199      2409625 :          ipack = ipack + 1
   27200      2409625 :          pack_tmp = packed_data(ipack)
   27201      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27202      2409625 :          pack_tmp = ISHFT(pack_tmp, -28)
   27203      2409625 :          idata = idata + 1
   27204      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27205      2409625 :          full_data(idata) = data_tmp
   27206      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27207      2409625 :          idata = idata + 1
   27208      2409625 :          data_tmp = ISHFT(pack_tmp, 36)
   27209      2409625 :          ipack = ipack + 1
   27210      2409625 :          pack_tmp = packed_data(ipack)
   27211      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27212      2409625 :          pack_tmp = ISHFT(pack_tmp, -36)
   27213      2409625 :          idata = idata + 1
   27214      2409625 :          data_tmp = ISHFT(pack_tmp, 8)
   27215      2409625 :          ipack = ipack + 1
   27216      2409625 :          pack_tmp = packed_data(ipack)
   27217      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27218      2409625 :          pack_tmp = ISHFT(pack_tmp, -8)
   27219      2409625 :          idata = idata + 1
   27220      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27221      2409625 :          full_data(idata) = data_tmp
   27222      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27223      2409625 :          idata = idata + 1
   27224      2409625 :          data_tmp = ISHFT(pack_tmp, 16)
   27225      2409625 :          ipack = ipack + 1
   27226      2409625 :          pack_tmp = packed_data(ipack)
   27227      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27228      2409625 :          pack_tmp = ISHFT(pack_tmp, -16)
   27229      2409625 :          idata = idata + 1
   27230      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27231      2409625 :          full_data(idata) = data_tmp
   27232      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27233      2409625 :          idata = idata + 1
   27234      2409625 :          data_tmp = ISHFT(pack_tmp, 24)
   27235      2409625 :          ipack = ipack + 1
   27236      2409625 :          pack_tmp = packed_data(ipack)
   27237      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27238      2409625 :          pack_tmp = ISHFT(pack_tmp, -24)
   27239      2409625 :          idata = idata + 1
   27240      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27241      2409625 :          full_data(idata) = data_tmp
   27242      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27243      2409625 :          idata = idata + 1
   27244      2409625 :          data_tmp = ISHFT(pack_tmp, 32)
   27245      2409625 :          ipack = ipack + 1
   27246      2409625 :          pack_tmp = packed_data(ipack)
   27247      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27248      2409625 :          pack_tmp = ISHFT(pack_tmp, -32)
   27249      2409625 :          idata = idata + 1
   27250      2409625 :          data_tmp = ISHFT(pack_tmp, 4)
   27251      2409625 :          ipack = ipack + 1
   27252      2409625 :          pack_tmp = packed_data(ipack)
   27253      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27254      2409625 :          pack_tmp = ISHFT(pack_tmp, -4)
   27255      2409625 :          idata = idata + 1
   27256      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27257      2409625 :          full_data(idata) = data_tmp
   27258      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27259      2409625 :          idata = idata + 1
   27260      2409625 :          data_tmp = ISHFT(pack_tmp, 12)
   27261      2409625 :          ipack = ipack + 1
   27262      2409625 :          pack_tmp = packed_data(ipack)
   27263      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27264      2409625 :          pack_tmp = ISHFT(pack_tmp, -12)
   27265      2409625 :          idata = idata + 1
   27266      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27267      2409625 :          full_data(idata) = data_tmp
   27268      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27269      2409625 :          idata = idata + 1
   27270      2409625 :          data_tmp = ISHFT(pack_tmp, 20)
   27271      2409625 :          ipack = ipack + 1
   27272      2409625 :          pack_tmp = packed_data(ipack)
   27273      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27274      2409625 :          pack_tmp = ISHFT(pack_tmp, -20)
   27275      2409625 :          idata = idata + 1
   27276      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27277      2409625 :          full_data(idata) = data_tmp
   27278      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27279      2409625 :          idata = idata + 1
   27280      2409625 :          data_tmp = ISHFT(pack_tmp, 28)
   27281      2409625 :          ipack = ipack + 1
   27282      2409625 :          pack_tmp = packed_data(ipack)
   27283      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27284      2409625 :          pack_tmp = ISHFT(pack_tmp, -28)
   27285      2409625 :          idata = idata + 1
   27286      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27287      2409625 :          full_data(idata) = data_tmp
   27288      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27289      2409625 :          idata = idata + 1
   27290      2409625 :          data_tmp = ISHFT(pack_tmp, 36)
   27291      2409625 :          ipack = ipack + 1
   27292      2409625 :          pack_tmp = packed_data(ipack)
   27293      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27294      2409625 :          pack_tmp = ISHFT(pack_tmp, -36)
   27295      2409625 :          idata = idata + 1
   27296      2409625 :          data_tmp = ISHFT(pack_tmp, 8)
   27297      2409625 :          ipack = ipack + 1
   27298      2409625 :          pack_tmp = packed_data(ipack)
   27299      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27300      2409625 :          pack_tmp = ISHFT(pack_tmp, -8)
   27301      2409625 :          idata = idata + 1
   27302      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27303      2409625 :          full_data(idata) = data_tmp
   27304      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27305      2409625 :          idata = idata + 1
   27306      2409625 :          data_tmp = ISHFT(pack_tmp, 16)
   27307      2409625 :          ipack = ipack + 1
   27308      2409625 :          pack_tmp = packed_data(ipack)
   27309      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27310      2409625 :          pack_tmp = ISHFT(pack_tmp, -16)
   27311      2409625 :          idata = idata + 1
   27312      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27313      2409625 :          full_data(idata) = data_tmp
   27314      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27315      2409625 :          idata = idata + 1
   27316      2409625 :          data_tmp = ISHFT(pack_tmp, 24)
   27317      2409625 :          ipack = ipack + 1
   27318      2409625 :          pack_tmp = packed_data(ipack)
   27319      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27320      2409625 :          pack_tmp = ISHFT(pack_tmp, -24)
   27321      2409625 :          idata = idata + 1
   27322      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27323      2409625 :          full_data(idata) = data_tmp
   27324      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27325      2409625 :          idata = idata + 1
   27326      2409625 :          data_tmp = ISHFT(pack_tmp, 32)
   27327      2409625 :          ipack = ipack + 1
   27328      2409625 :          pack_tmp = packed_data(ipack)
   27329      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27330      2409625 :          pack_tmp = ISHFT(pack_tmp, -32)
   27331      2409625 :          idata = idata + 1
   27332      2409625 :          data_tmp = ISHFT(pack_tmp, 4)
   27333      2409625 :          ipack = ipack + 1
   27334      2409625 :          pack_tmp = packed_data(ipack)
   27335      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27336      2409625 :          pack_tmp = ISHFT(pack_tmp, -4)
   27337      2409625 :          idata = idata + 1
   27338      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27339      2409625 :          full_data(idata) = data_tmp
   27340      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27341      2409625 :          idata = idata + 1
   27342      2409625 :          data_tmp = ISHFT(pack_tmp, 12)
   27343      2409625 :          ipack = ipack + 1
   27344      2409625 :          pack_tmp = packed_data(ipack)
   27345      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27346      2409625 :          pack_tmp = ISHFT(pack_tmp, -12)
   27347      2409625 :          idata = idata + 1
   27348      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27349      2409625 :          full_data(idata) = data_tmp
   27350      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27351      2409625 :          idata = idata + 1
   27352      2409625 :          data_tmp = ISHFT(pack_tmp, 20)
   27353      2409625 :          ipack = ipack + 1
   27354      2409625 :          pack_tmp = packed_data(ipack)
   27355      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27356      2409625 :          pack_tmp = ISHFT(pack_tmp, -20)
   27357      2409625 :          idata = idata + 1
   27358      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27359      2409625 :          full_data(idata) = data_tmp
   27360      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27361      2409625 :          idata = idata + 1
   27362      2409625 :          data_tmp = ISHFT(pack_tmp, 28)
   27363      2409625 :          ipack = ipack + 1
   27364      2409625 :          pack_tmp = packed_data(ipack)
   27365      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27366      2409625 :          pack_tmp = ISHFT(pack_tmp, -28)
   27367      2409625 :          idata = idata + 1
   27368      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27369      2409625 :          full_data(idata) = data_tmp
   27370      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27371      2409625 :          idata = idata + 1
   27372      2409625 :          data_tmp = ISHFT(pack_tmp, 36)
   27373      2409625 :          ipack = ipack + 1
   27374      2409625 :          pack_tmp = packed_data(ipack)
   27375      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   27376      2409625 :          pack_tmp = ISHFT(pack_tmp, -36)
   27377      2409625 :          idata = idata + 1
   27378      2409625 :          data_tmp = ISHFT(pack_tmp, 8)
   27379      2409625 :          ipack = ipack + 1
   27380      2409625 :          pack_tmp = packed_data(ipack)
   27381      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   27382      2409625 :          pack_tmp = ISHFT(pack_tmp, -8)
   27383      2409625 :          idata = idata + 1
   27384      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27385      2409625 :          full_data(idata) = data_tmp
   27386      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27387      2409625 :          idata = idata + 1
   27388      2409625 :          data_tmp = ISHFT(pack_tmp, 16)
   27389      2409625 :          ipack = ipack + 1
   27390      2409625 :          pack_tmp = packed_data(ipack)
   27391      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   27392      2409625 :          pack_tmp = ISHFT(pack_tmp, -16)
   27393      2409625 :          idata = idata + 1
   27394      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27395      2409625 :          full_data(idata) = data_tmp
   27396      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27397      2409625 :          idata = idata + 1
   27398      2409625 :          data_tmp = ISHFT(pack_tmp, 24)
   27399      2409625 :          ipack = ipack + 1
   27400      2409625 :          pack_tmp = packed_data(ipack)
   27401      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   27402      2409625 :          pack_tmp = ISHFT(pack_tmp, -24)
   27403      2409625 :          idata = idata + 1
   27404      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27405      2409625 :          full_data(idata) = data_tmp
   27406      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27407      2409625 :          idata = idata + 1
   27408      2409625 :          data_tmp = ISHFT(pack_tmp, 32)
   27409      2409625 :          ipack = ipack + 1
   27410      2409625 :          pack_tmp = packed_data(ipack)
   27411      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   27412      2409625 :          pack_tmp = ISHFT(pack_tmp, -32)
   27413      2409625 :          idata = idata + 1
   27414      2409625 :          data_tmp = ISHFT(pack_tmp, 4)
   27415      2409625 :          ipack = ipack + 1
   27416      2409625 :          pack_tmp = packed_data(ipack)
   27417      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   27418      2409625 :          pack_tmp = ISHFT(pack_tmp, -4)
   27419      2409625 :          idata = idata + 1
   27420      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27421      2409625 :          full_data(idata) = data_tmp
   27422      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27423      2409625 :          idata = idata + 1
   27424      2409625 :          data_tmp = ISHFT(pack_tmp, 12)
   27425      2409625 :          ipack = ipack + 1
   27426      2409625 :          pack_tmp = packed_data(ipack)
   27427      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   27428      2409625 :          pack_tmp = ISHFT(pack_tmp, -12)
   27429      2409625 :          idata = idata + 1
   27430      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27431      2409625 :          full_data(idata) = data_tmp
   27432      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27433      2409625 :          idata = idata + 1
   27434      2409625 :          data_tmp = ISHFT(pack_tmp, 20)
   27435      2409625 :          ipack = ipack + 1
   27436      2409625 :          pack_tmp = packed_data(ipack)
   27437      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   27438      2409625 :          pack_tmp = ISHFT(pack_tmp, -20)
   27439      2409625 :          idata = idata + 1
   27440      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27441      2409625 :          full_data(idata) = data_tmp
   27442      2409625 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27443      2409625 :          idata = idata + 1
   27444      2409625 :          data_tmp = ISHFT(pack_tmp, 28)
   27445      2409625 :          ipack = ipack + 1
   27446      2409625 :          pack_tmp = packed_data(ipack)
   27447      2409625 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   27448      2409625 :          pack_tmp = ISHFT(pack_tmp, -28)
   27449      2409625 :          idata = idata + 1
   27450      2409625 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   27451      2409625 :          full_data(idata) = data_tmp
   27452      2411203 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   27453              :       END DO
   27454       184779 :       IF (Ndata_rep < Ndata) THEN
   27455        64334 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27456              :       END IF
   27457       184779 :    END SUBROUTINE bits2ints_36
   27458              : 
   27459              : ! **************************************************************************************************
   27460              : !> \brief ...
   27461              : !> \param Ndata ...
   27462              : !> \param packed_data ...
   27463              : !> \param full_data ...
   27464              : ! **************************************************************************************************
   27465        42183 :    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        42183 :       idata = 0
   27476        42183 :       ipack = 0
   27477        42183 :       Ndata_rep = (Ndata/64)*64
   27478        42183 :       DO kdata = 1, Ndata_rep, 64
   27479       561152 :          pack_tmp = 0
   27480       561152 :          idata = idata + 1
   27481       561152 :          data_tmp = full_data(idata)
   27482       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27483       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27484       561152 :          pack_tmp = ISHFT(pack_tmp, -27)
   27485       561152 :          idata = idata + 1
   27486       561152 :          data_tmp = full_data(idata)
   27487       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27488       561152 :          data_tmp = IAND(data_tmp, mask_left(27))
   27489       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27490       561152 :          ipack = ipack + 1
   27491       561152 :          packed_data(ipack) = pack_tmp
   27492       561152 :          data_tmp = full_data(idata)
   27493       561152 :          pack_tmp = ISHFT(data_tmp, 54)
   27494       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27495       561152 :          idata = idata + 1
   27496       561152 :          data_tmp = full_data(idata)
   27497       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27498       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27499       561152 :          pack_tmp = ISHFT(pack_tmp, -17)
   27500       561152 :          idata = idata + 1
   27501       561152 :          data_tmp = full_data(idata)
   27502       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27503       561152 :          data_tmp = IAND(data_tmp, mask_left(17))
   27504       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27505       561152 :          ipack = ipack + 1
   27506       561152 :          packed_data(ipack) = pack_tmp
   27507       561152 :          data_tmp = full_data(idata)
   27508       561152 :          pack_tmp = ISHFT(data_tmp, 44)
   27509       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27510       561152 :          idata = idata + 1
   27511       561152 :          data_tmp = full_data(idata)
   27512       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27513       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27514       561152 :          pack_tmp = ISHFT(pack_tmp, -7)
   27515       561152 :          idata = idata + 1
   27516       561152 :          data_tmp = full_data(idata)
   27517       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27518       561152 :          data_tmp = IAND(data_tmp, mask_left(7))
   27519       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27520       561152 :          ipack = ipack + 1
   27521       561152 :          packed_data(ipack) = pack_tmp
   27522       561152 :          data_tmp = full_data(idata)
   27523       561152 :          pack_tmp = ISHFT(data_tmp, 34)
   27524       561152 :          pack_tmp = ISHFT(pack_tmp, -34)
   27525       561152 :          idata = idata + 1
   27526       561152 :          data_tmp = full_data(idata)
   27527       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27528       561152 :          data_tmp = IAND(data_tmp, mask_left(34))
   27529       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27530       561152 :          ipack = ipack + 1
   27531       561152 :          packed_data(ipack) = pack_tmp
   27532       561152 :          data_tmp = full_data(idata)
   27533       561152 :          pack_tmp = ISHFT(data_tmp, 61)
   27534       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27535       561152 :          idata = idata + 1
   27536       561152 :          data_tmp = full_data(idata)
   27537       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27538       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27539       561152 :          pack_tmp = ISHFT(pack_tmp, -24)
   27540       561152 :          idata = idata + 1
   27541       561152 :          data_tmp = full_data(idata)
   27542       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27543       561152 :          data_tmp = IAND(data_tmp, mask_left(24))
   27544       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27545       561152 :          ipack = ipack + 1
   27546       561152 :          packed_data(ipack) = pack_tmp
   27547       561152 :          data_tmp = full_data(idata)
   27548       561152 :          pack_tmp = ISHFT(data_tmp, 51)
   27549       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27550       561152 :          idata = idata + 1
   27551       561152 :          data_tmp = full_data(idata)
   27552       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27553       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27554       561152 :          pack_tmp = ISHFT(pack_tmp, -14)
   27555       561152 :          idata = idata + 1
   27556       561152 :          data_tmp = full_data(idata)
   27557       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27558       561152 :          data_tmp = IAND(data_tmp, mask_left(14))
   27559       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27560       561152 :          ipack = ipack + 1
   27561       561152 :          packed_data(ipack) = pack_tmp
   27562       561152 :          data_tmp = full_data(idata)
   27563       561152 :          pack_tmp = ISHFT(data_tmp, 41)
   27564       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27565       561152 :          idata = idata + 1
   27566       561152 :          data_tmp = full_data(idata)
   27567       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27568       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27569       561152 :          pack_tmp = ISHFT(pack_tmp, -4)
   27570       561152 :          idata = idata + 1
   27571       561152 :          data_tmp = full_data(idata)
   27572       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27573       561152 :          data_tmp = IAND(data_tmp, mask_left(4))
   27574       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27575       561152 :          ipack = ipack + 1
   27576       561152 :          packed_data(ipack) = pack_tmp
   27577       561152 :          data_tmp = full_data(idata)
   27578       561152 :          pack_tmp = ISHFT(data_tmp, 31)
   27579       561152 :          pack_tmp = ISHFT(pack_tmp, -31)
   27580       561152 :          idata = idata + 1
   27581       561152 :          data_tmp = full_data(idata)
   27582       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27583       561152 :          data_tmp = IAND(data_tmp, mask_left(31))
   27584       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27585       561152 :          ipack = ipack + 1
   27586       561152 :          packed_data(ipack) = pack_tmp
   27587       561152 :          data_tmp = full_data(idata)
   27588       561152 :          pack_tmp = ISHFT(data_tmp, 58)
   27589       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27590       561152 :          idata = idata + 1
   27591       561152 :          data_tmp = full_data(idata)
   27592       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27593       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27594       561152 :          pack_tmp = ISHFT(pack_tmp, -21)
   27595       561152 :          idata = idata + 1
   27596       561152 :          data_tmp = full_data(idata)
   27597       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27598       561152 :          data_tmp = IAND(data_tmp, mask_left(21))
   27599       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27600       561152 :          ipack = ipack + 1
   27601       561152 :          packed_data(ipack) = pack_tmp
   27602       561152 :          data_tmp = full_data(idata)
   27603       561152 :          pack_tmp = ISHFT(data_tmp, 48)
   27604       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27605       561152 :          idata = idata + 1
   27606       561152 :          data_tmp = full_data(idata)
   27607       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27608       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27609       561152 :          pack_tmp = ISHFT(pack_tmp, -11)
   27610       561152 :          idata = idata + 1
   27611       561152 :          data_tmp = full_data(idata)
   27612       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27613       561152 :          data_tmp = IAND(data_tmp, mask_left(11))
   27614       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27615       561152 :          ipack = ipack + 1
   27616       561152 :          packed_data(ipack) = pack_tmp
   27617       561152 :          data_tmp = full_data(idata)
   27618       561152 :          pack_tmp = ISHFT(data_tmp, 38)
   27619       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27620       561152 :          idata = idata + 1
   27621       561152 :          data_tmp = full_data(idata)
   27622       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27623       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27624       561152 :          pack_tmp = ISHFT(pack_tmp, -1)
   27625       561152 :          idata = idata + 1
   27626       561152 :          data_tmp = full_data(idata)
   27627       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27628       561152 :          data_tmp = IAND(data_tmp, mask_left(1))
   27629       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27630       561152 :          ipack = ipack + 1
   27631       561152 :          packed_data(ipack) = pack_tmp
   27632       561152 :          data_tmp = full_data(idata)
   27633       561152 :          pack_tmp = ISHFT(data_tmp, 28)
   27634       561152 :          pack_tmp = ISHFT(pack_tmp, -28)
   27635       561152 :          idata = idata + 1
   27636       561152 :          data_tmp = full_data(idata)
   27637       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27638       561152 :          data_tmp = IAND(data_tmp, mask_left(28))
   27639       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27640       561152 :          ipack = ipack + 1
   27641       561152 :          packed_data(ipack) = pack_tmp
   27642       561152 :          data_tmp = full_data(idata)
   27643       561152 :          pack_tmp = ISHFT(data_tmp, 55)
   27644       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27645       561152 :          idata = idata + 1
   27646       561152 :          data_tmp = full_data(idata)
   27647       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27648       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27649       561152 :          pack_tmp = ISHFT(pack_tmp, -18)
   27650       561152 :          idata = idata + 1
   27651       561152 :          data_tmp = full_data(idata)
   27652       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27653       561152 :          data_tmp = IAND(data_tmp, mask_left(18))
   27654       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27655       561152 :          ipack = ipack + 1
   27656       561152 :          packed_data(ipack) = pack_tmp
   27657       561152 :          data_tmp = full_data(idata)
   27658       561152 :          pack_tmp = ISHFT(data_tmp, 45)
   27659       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27660       561152 :          idata = idata + 1
   27661       561152 :          data_tmp = full_data(idata)
   27662       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27663       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27664       561152 :          pack_tmp = ISHFT(pack_tmp, -8)
   27665       561152 :          idata = idata + 1
   27666       561152 :          data_tmp = full_data(idata)
   27667       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27668       561152 :          data_tmp = IAND(data_tmp, mask_left(8))
   27669       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27670       561152 :          ipack = ipack + 1
   27671       561152 :          packed_data(ipack) = pack_tmp
   27672       561152 :          data_tmp = full_data(idata)
   27673       561152 :          pack_tmp = ISHFT(data_tmp, 35)
   27674       561152 :          pack_tmp = ISHFT(pack_tmp, -35)
   27675       561152 :          idata = idata + 1
   27676       561152 :          data_tmp = full_data(idata)
   27677       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27678       561152 :          data_tmp = IAND(data_tmp, mask_left(35))
   27679       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27680       561152 :          ipack = ipack + 1
   27681       561152 :          packed_data(ipack) = pack_tmp
   27682       561152 :          data_tmp = full_data(idata)
   27683       561152 :          pack_tmp = ISHFT(data_tmp, 62)
   27684       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27685       561152 :          idata = idata + 1
   27686       561152 :          data_tmp = full_data(idata)
   27687       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27688       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27689       561152 :          pack_tmp = ISHFT(pack_tmp, -25)
   27690       561152 :          idata = idata + 1
   27691       561152 :          data_tmp = full_data(idata)
   27692       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27693       561152 :          data_tmp = IAND(data_tmp, mask_left(25))
   27694       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27695       561152 :          ipack = ipack + 1
   27696       561152 :          packed_data(ipack) = pack_tmp
   27697       561152 :          data_tmp = full_data(idata)
   27698       561152 :          pack_tmp = ISHFT(data_tmp, 52)
   27699       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27700       561152 :          idata = idata + 1
   27701       561152 :          data_tmp = full_data(idata)
   27702       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27703       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27704       561152 :          pack_tmp = ISHFT(pack_tmp, -15)
   27705       561152 :          idata = idata + 1
   27706       561152 :          data_tmp = full_data(idata)
   27707       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27708       561152 :          data_tmp = IAND(data_tmp, mask_left(15))
   27709       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27710       561152 :          ipack = ipack + 1
   27711       561152 :          packed_data(ipack) = pack_tmp
   27712       561152 :          data_tmp = full_data(idata)
   27713       561152 :          pack_tmp = ISHFT(data_tmp, 42)
   27714       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27715       561152 :          idata = idata + 1
   27716       561152 :          data_tmp = full_data(idata)
   27717       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27718       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27719       561152 :          pack_tmp = ISHFT(pack_tmp, -5)
   27720       561152 :          idata = idata + 1
   27721       561152 :          data_tmp = full_data(idata)
   27722       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27723       561152 :          data_tmp = IAND(data_tmp, mask_left(5))
   27724       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27725       561152 :          ipack = ipack + 1
   27726       561152 :          packed_data(ipack) = pack_tmp
   27727       561152 :          data_tmp = full_data(idata)
   27728       561152 :          pack_tmp = ISHFT(data_tmp, 32)
   27729       561152 :          pack_tmp = ISHFT(pack_tmp, -32)
   27730       561152 :          idata = idata + 1
   27731       561152 :          data_tmp = full_data(idata)
   27732       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27733       561152 :          data_tmp = IAND(data_tmp, mask_left(32))
   27734       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27735       561152 :          ipack = ipack + 1
   27736       561152 :          packed_data(ipack) = pack_tmp
   27737       561152 :          data_tmp = full_data(idata)
   27738       561152 :          pack_tmp = ISHFT(data_tmp, 59)
   27739       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27740       561152 :          idata = idata + 1
   27741       561152 :          data_tmp = full_data(idata)
   27742       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27743       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27744       561152 :          pack_tmp = ISHFT(pack_tmp, -22)
   27745       561152 :          idata = idata + 1
   27746       561152 :          data_tmp = full_data(idata)
   27747       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27748       561152 :          data_tmp = IAND(data_tmp, mask_left(22))
   27749       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27750       561152 :          ipack = ipack + 1
   27751       561152 :          packed_data(ipack) = pack_tmp
   27752       561152 :          data_tmp = full_data(idata)
   27753       561152 :          pack_tmp = ISHFT(data_tmp, 49)
   27754       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27755       561152 :          idata = idata + 1
   27756       561152 :          data_tmp = full_data(idata)
   27757       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27758       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27759       561152 :          pack_tmp = ISHFT(pack_tmp, -12)
   27760       561152 :          idata = idata + 1
   27761       561152 :          data_tmp = full_data(idata)
   27762       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27763       561152 :          data_tmp = IAND(data_tmp, mask_left(12))
   27764       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27765       561152 :          ipack = ipack + 1
   27766       561152 :          packed_data(ipack) = pack_tmp
   27767       561152 :          data_tmp = full_data(idata)
   27768       561152 :          pack_tmp = ISHFT(data_tmp, 39)
   27769       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27770       561152 :          idata = idata + 1
   27771       561152 :          data_tmp = full_data(idata)
   27772       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27773       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27774       561152 :          pack_tmp = ISHFT(pack_tmp, -2)
   27775       561152 :          idata = idata + 1
   27776       561152 :          data_tmp = full_data(idata)
   27777       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27778       561152 :          data_tmp = IAND(data_tmp, mask_left(2))
   27779       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27780       561152 :          ipack = ipack + 1
   27781       561152 :          packed_data(ipack) = pack_tmp
   27782       561152 :          data_tmp = full_data(idata)
   27783       561152 :          pack_tmp = ISHFT(data_tmp, 29)
   27784       561152 :          pack_tmp = ISHFT(pack_tmp, -29)
   27785       561152 :          idata = idata + 1
   27786       561152 :          data_tmp = full_data(idata)
   27787       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27788       561152 :          data_tmp = IAND(data_tmp, mask_left(29))
   27789       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27790       561152 :          ipack = ipack + 1
   27791       561152 :          packed_data(ipack) = pack_tmp
   27792       561152 :          data_tmp = full_data(idata)
   27793       561152 :          pack_tmp = ISHFT(data_tmp, 56)
   27794       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27795       561152 :          idata = idata + 1
   27796       561152 :          data_tmp = full_data(idata)
   27797       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27798       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27799       561152 :          pack_tmp = ISHFT(pack_tmp, -19)
   27800       561152 :          idata = idata + 1
   27801       561152 :          data_tmp = full_data(idata)
   27802       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27803       561152 :          data_tmp = IAND(data_tmp, mask_left(19))
   27804       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27805       561152 :          ipack = ipack + 1
   27806       561152 :          packed_data(ipack) = pack_tmp
   27807       561152 :          data_tmp = full_data(idata)
   27808       561152 :          pack_tmp = ISHFT(data_tmp, 46)
   27809       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27810       561152 :          idata = idata + 1
   27811       561152 :          data_tmp = full_data(idata)
   27812       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27813       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27814       561152 :          pack_tmp = ISHFT(pack_tmp, -9)
   27815       561152 :          idata = idata + 1
   27816       561152 :          data_tmp = full_data(idata)
   27817       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27818       561152 :          data_tmp = IAND(data_tmp, mask_left(9))
   27819       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27820       561152 :          ipack = ipack + 1
   27821       561152 :          packed_data(ipack) = pack_tmp
   27822       561152 :          data_tmp = full_data(idata)
   27823       561152 :          pack_tmp = ISHFT(data_tmp, 36)
   27824       561152 :          pack_tmp = ISHFT(pack_tmp, -36)
   27825       561152 :          idata = idata + 1
   27826       561152 :          data_tmp = full_data(idata)
   27827       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27828       561152 :          data_tmp = IAND(data_tmp, mask_left(36))
   27829       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27830       561152 :          ipack = ipack + 1
   27831       561152 :          packed_data(ipack) = pack_tmp
   27832       561152 :          data_tmp = full_data(idata)
   27833       561152 :          pack_tmp = ISHFT(data_tmp, 63)
   27834       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27835       561152 :          idata = idata + 1
   27836       561152 :          data_tmp = full_data(idata)
   27837       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27838       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27839       561152 :          pack_tmp = ISHFT(pack_tmp, -26)
   27840       561152 :          idata = idata + 1
   27841       561152 :          data_tmp = full_data(idata)
   27842       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27843       561152 :          data_tmp = IAND(data_tmp, mask_left(26))
   27844       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27845       561152 :          ipack = ipack + 1
   27846       561152 :          packed_data(ipack) = pack_tmp
   27847       561152 :          data_tmp = full_data(idata)
   27848       561152 :          pack_tmp = ISHFT(data_tmp, 53)
   27849       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27850       561152 :          idata = idata + 1
   27851       561152 :          data_tmp = full_data(idata)
   27852       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27853       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27854       561152 :          pack_tmp = ISHFT(pack_tmp, -16)
   27855       561152 :          idata = idata + 1
   27856       561152 :          data_tmp = full_data(idata)
   27857       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27858       561152 :          data_tmp = IAND(data_tmp, mask_left(16))
   27859       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27860       561152 :          ipack = ipack + 1
   27861       561152 :          packed_data(ipack) = pack_tmp
   27862       561152 :          data_tmp = full_data(idata)
   27863       561152 :          pack_tmp = ISHFT(data_tmp, 43)
   27864       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27865       561152 :          idata = idata + 1
   27866       561152 :          data_tmp = full_data(idata)
   27867       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27868       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27869       561152 :          pack_tmp = ISHFT(pack_tmp, -6)
   27870       561152 :          idata = idata + 1
   27871       561152 :          data_tmp = full_data(idata)
   27872       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27873       561152 :          data_tmp = IAND(data_tmp, mask_left(6))
   27874       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27875       561152 :          ipack = ipack + 1
   27876       561152 :          packed_data(ipack) = pack_tmp
   27877       561152 :          data_tmp = full_data(idata)
   27878       561152 :          pack_tmp = ISHFT(data_tmp, 33)
   27879       561152 :          pack_tmp = ISHFT(pack_tmp, -33)
   27880       561152 :          idata = idata + 1
   27881       561152 :          data_tmp = full_data(idata)
   27882       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27883       561152 :          data_tmp = IAND(data_tmp, mask_left(33))
   27884       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27885       561152 :          ipack = ipack + 1
   27886       561152 :          packed_data(ipack) = pack_tmp
   27887       561152 :          data_tmp = full_data(idata)
   27888       561152 :          pack_tmp = ISHFT(data_tmp, 60)
   27889       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27890       561152 :          idata = idata + 1
   27891       561152 :          data_tmp = full_data(idata)
   27892       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27893       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27894       561152 :          pack_tmp = ISHFT(pack_tmp, -23)
   27895       561152 :          idata = idata + 1
   27896       561152 :          data_tmp = full_data(idata)
   27897       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27898       561152 :          data_tmp = IAND(data_tmp, mask_left(23))
   27899       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27900       561152 :          ipack = ipack + 1
   27901       561152 :          packed_data(ipack) = pack_tmp
   27902       561152 :          data_tmp = full_data(idata)
   27903       561152 :          pack_tmp = ISHFT(data_tmp, 50)
   27904       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27905       561152 :          idata = idata + 1
   27906       561152 :          data_tmp = full_data(idata)
   27907       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27908       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27909       561152 :          pack_tmp = ISHFT(pack_tmp, -13)
   27910       561152 :          idata = idata + 1
   27911       561152 :          data_tmp = full_data(idata)
   27912       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27913       561152 :          data_tmp = IAND(data_tmp, mask_left(13))
   27914       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27915       561152 :          ipack = ipack + 1
   27916       561152 :          packed_data(ipack) = pack_tmp
   27917       561152 :          data_tmp = full_data(idata)
   27918       561152 :          pack_tmp = ISHFT(data_tmp, 40)
   27919       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27920       561152 :          idata = idata + 1
   27921       561152 :          data_tmp = full_data(idata)
   27922       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27923       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27924       561152 :          pack_tmp = ISHFT(pack_tmp, -3)
   27925       561152 :          idata = idata + 1
   27926       561152 :          data_tmp = full_data(idata)
   27927       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27928       561152 :          data_tmp = IAND(data_tmp, mask_left(3))
   27929       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27930       561152 :          ipack = ipack + 1
   27931       561152 :          packed_data(ipack) = pack_tmp
   27932       561152 :          data_tmp = full_data(idata)
   27933       561152 :          pack_tmp = ISHFT(data_tmp, 30)
   27934       561152 :          pack_tmp = ISHFT(pack_tmp, -30)
   27935       561152 :          idata = idata + 1
   27936       561152 :          data_tmp = full_data(idata)
   27937       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27938       561152 :          data_tmp = IAND(data_tmp, mask_left(30))
   27939       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27940       561152 :          ipack = ipack + 1
   27941       561152 :          packed_data(ipack) = pack_tmp
   27942       561152 :          data_tmp = full_data(idata)
   27943       561152 :          pack_tmp = ISHFT(data_tmp, 57)
   27944       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27945       561152 :          idata = idata + 1
   27946       561152 :          data_tmp = full_data(idata)
   27947       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27948       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27949       561152 :          pack_tmp = ISHFT(pack_tmp, -20)
   27950       561152 :          idata = idata + 1
   27951       561152 :          data_tmp = full_data(idata)
   27952       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27953       561152 :          data_tmp = IAND(data_tmp, mask_left(20))
   27954       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27955       561152 :          ipack = ipack + 1
   27956       561152 :          packed_data(ipack) = pack_tmp
   27957       561152 :          data_tmp = full_data(idata)
   27958       561152 :          pack_tmp = ISHFT(data_tmp, 47)
   27959       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27960       561152 :          idata = idata + 1
   27961       561152 :          data_tmp = full_data(idata)
   27962       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27963       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27964       561152 :          pack_tmp = ISHFT(pack_tmp, -10)
   27965       561152 :          idata = idata + 1
   27966       561152 :          data_tmp = full_data(idata)
   27967       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27968       561152 :          data_tmp = IAND(data_tmp, mask_left(10))
   27969       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27970       561152 :          ipack = ipack + 1
   27971       561152 :          packed_data(ipack) = pack_tmp
   27972       561152 :          data_tmp = full_data(idata)
   27973       561152 :          pack_tmp = ISHFT(data_tmp, 37)
   27974       561152 :          pack_tmp = ISHFT(pack_tmp, -37)
   27975       561152 :          idata = idata + 1
   27976       561152 :          data_tmp = full_data(idata)
   27977       561152 :          data_tmp = ISHFT(data_tmp, 27)
   27978       561152 :          pack_tmp = IOR(pack_tmp, data_tmp)
   27979              :          pack_tmp = ISHFT(pack_tmp, 0)
   27980       561152 :          pack_tmp = ISHFT(pack_tmp, 0)
   27981       561152 :          ipack = ipack + 1
   27982       561295 :          packed_data(ipack) = pack_tmp
   27983              :       END DO
   27984        42183 :       IF (Ndata_rep < Ndata) THEN
   27985        13344 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   27986              :       END IF
   27987        42183 :    END SUBROUTINE ints2bits_37
   27988              : 
   27989              : ! **************************************************************************************************
   27990              : !> \brief ...
   27991              : !> \param Ndata ...
   27992              : !> \param packed_data ...
   27993              : !> \param full_data ...
   27994              : ! **************************************************************************************************
   27995       164321 :    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       164321 :       ipack = 0
   28006       164321 :       idata = 0
   28007       164321 :       pack_tmp = 0
   28008       164321 :       Ndata_rep = (Ndata/64)*64
   28009       164321 :       DO kdata = 1, Ndata_rep, 64
   28010      2194603 :          idata = idata + 1
   28011      2194603 :          data_tmp = ISHFT(pack_tmp, 37)
   28012      2194603 :          ipack = ipack + 1
   28013      2194603 :          pack_tmp = packed_data(ipack)
   28014      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   28015      2194603 :          pack_tmp = ISHFT(pack_tmp, -37)
   28016      2194603 :          idata = idata + 1
   28017      2194603 :          data_tmp = ISHFT(pack_tmp, 10)
   28018      2194603 :          ipack = ipack + 1
   28019      2194603 :          pack_tmp = packed_data(ipack)
   28020      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   28021      2194603 :          pack_tmp = ISHFT(pack_tmp, -10)
   28022      2194603 :          idata = idata + 1
   28023      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28024      2194603 :          full_data(idata) = data_tmp
   28025      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28026      2194603 :          idata = idata + 1
   28027      2194603 :          data_tmp = ISHFT(pack_tmp, 20)
   28028      2194603 :          ipack = ipack + 1
   28029      2194603 :          pack_tmp = packed_data(ipack)
   28030      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   28031      2194603 :          pack_tmp = ISHFT(pack_tmp, -20)
   28032      2194603 :          idata = idata + 1
   28033      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28034      2194603 :          full_data(idata) = data_tmp
   28035      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28036      2194603 :          idata = idata + 1
   28037      2194603 :          data_tmp = ISHFT(pack_tmp, 30)
   28038      2194603 :          ipack = ipack + 1
   28039      2194603 :          pack_tmp = packed_data(ipack)
   28040      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   28041      2194603 :          pack_tmp = ISHFT(pack_tmp, -30)
   28042      2194603 :          idata = idata + 1
   28043      2194603 :          data_tmp = ISHFT(pack_tmp, 3)
   28044      2194603 :          ipack = ipack + 1
   28045      2194603 :          pack_tmp = packed_data(ipack)
   28046      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   28047      2194603 :          pack_tmp = ISHFT(pack_tmp, -3)
   28048      2194603 :          idata = idata + 1
   28049      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28050      2194603 :          full_data(idata) = data_tmp
   28051      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28052      2194603 :          idata = idata + 1
   28053      2194603 :          data_tmp = ISHFT(pack_tmp, 13)
   28054      2194603 :          ipack = ipack + 1
   28055      2194603 :          pack_tmp = packed_data(ipack)
   28056      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   28057      2194603 :          pack_tmp = ISHFT(pack_tmp, -13)
   28058      2194603 :          idata = idata + 1
   28059      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28060      2194603 :          full_data(idata) = data_tmp
   28061      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28062      2194603 :          idata = idata + 1
   28063      2194603 :          data_tmp = ISHFT(pack_tmp, 23)
   28064      2194603 :          ipack = ipack + 1
   28065      2194603 :          pack_tmp = packed_data(ipack)
   28066      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   28067      2194603 :          pack_tmp = ISHFT(pack_tmp, -23)
   28068      2194603 :          idata = idata + 1
   28069      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28070      2194603 :          full_data(idata) = data_tmp
   28071      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28072      2194603 :          idata = idata + 1
   28073      2194603 :          data_tmp = ISHFT(pack_tmp, 33)
   28074      2194603 :          ipack = ipack + 1
   28075      2194603 :          pack_tmp = packed_data(ipack)
   28076      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   28077      2194603 :          pack_tmp = ISHFT(pack_tmp, -33)
   28078      2194603 :          idata = idata + 1
   28079      2194603 :          data_tmp = ISHFT(pack_tmp, 6)
   28080      2194603 :          ipack = ipack + 1
   28081      2194603 :          pack_tmp = packed_data(ipack)
   28082      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   28083      2194603 :          pack_tmp = ISHFT(pack_tmp, -6)
   28084      2194603 :          idata = idata + 1
   28085      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28086      2194603 :          full_data(idata) = data_tmp
   28087      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28088      2194603 :          idata = idata + 1
   28089      2194603 :          data_tmp = ISHFT(pack_tmp, 16)
   28090      2194603 :          ipack = ipack + 1
   28091      2194603 :          pack_tmp = packed_data(ipack)
   28092      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   28093      2194603 :          pack_tmp = ISHFT(pack_tmp, -16)
   28094      2194603 :          idata = idata + 1
   28095      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28096      2194603 :          full_data(idata) = data_tmp
   28097      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28098      2194603 :          idata = idata + 1
   28099      2194603 :          data_tmp = ISHFT(pack_tmp, 26)
   28100      2194603 :          ipack = ipack + 1
   28101      2194603 :          pack_tmp = packed_data(ipack)
   28102      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   28103      2194603 :          pack_tmp = ISHFT(pack_tmp, -26)
   28104      2194603 :          idata = idata + 1
   28105      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28106      2194603 :          full_data(idata) = data_tmp
   28107      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28108      2194603 :          idata = idata + 1
   28109      2194603 :          data_tmp = ISHFT(pack_tmp, 36)
   28110      2194603 :          ipack = ipack + 1
   28111      2194603 :          pack_tmp = packed_data(ipack)
   28112      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   28113      2194603 :          pack_tmp = ISHFT(pack_tmp, -36)
   28114      2194603 :          idata = idata + 1
   28115      2194603 :          data_tmp = ISHFT(pack_tmp, 9)
   28116      2194603 :          ipack = ipack + 1
   28117      2194603 :          pack_tmp = packed_data(ipack)
   28118      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   28119      2194603 :          pack_tmp = ISHFT(pack_tmp, -9)
   28120      2194603 :          idata = idata + 1
   28121      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28122      2194603 :          full_data(idata) = data_tmp
   28123      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28124      2194603 :          idata = idata + 1
   28125      2194603 :          data_tmp = ISHFT(pack_tmp, 19)
   28126      2194603 :          ipack = ipack + 1
   28127      2194603 :          pack_tmp = packed_data(ipack)
   28128      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   28129      2194603 :          pack_tmp = ISHFT(pack_tmp, -19)
   28130      2194603 :          idata = idata + 1
   28131      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28132      2194603 :          full_data(idata) = data_tmp
   28133      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28134      2194603 :          idata = idata + 1
   28135      2194603 :          data_tmp = ISHFT(pack_tmp, 29)
   28136      2194603 :          ipack = ipack + 1
   28137      2194603 :          pack_tmp = packed_data(ipack)
   28138      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   28139      2194603 :          pack_tmp = ISHFT(pack_tmp, -29)
   28140      2194603 :          idata = idata + 1
   28141      2194603 :          data_tmp = ISHFT(pack_tmp, 2)
   28142      2194603 :          ipack = ipack + 1
   28143      2194603 :          pack_tmp = packed_data(ipack)
   28144      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   28145      2194603 :          pack_tmp = ISHFT(pack_tmp, -2)
   28146      2194603 :          idata = idata + 1
   28147      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28148      2194603 :          full_data(idata) = data_tmp
   28149      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28150      2194603 :          idata = idata + 1
   28151      2194603 :          data_tmp = ISHFT(pack_tmp, 12)
   28152      2194603 :          ipack = ipack + 1
   28153      2194603 :          pack_tmp = packed_data(ipack)
   28154      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   28155      2194603 :          pack_tmp = ISHFT(pack_tmp, -12)
   28156      2194603 :          idata = idata + 1
   28157      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28158      2194603 :          full_data(idata) = data_tmp
   28159      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28160      2194603 :          idata = idata + 1
   28161      2194603 :          data_tmp = ISHFT(pack_tmp, 22)
   28162      2194603 :          ipack = ipack + 1
   28163      2194603 :          pack_tmp = packed_data(ipack)
   28164      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   28165      2194603 :          pack_tmp = ISHFT(pack_tmp, -22)
   28166      2194603 :          idata = idata + 1
   28167      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28168      2194603 :          full_data(idata) = data_tmp
   28169      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28170      2194603 :          idata = idata + 1
   28171      2194603 :          data_tmp = ISHFT(pack_tmp, 32)
   28172      2194603 :          ipack = ipack + 1
   28173      2194603 :          pack_tmp = packed_data(ipack)
   28174      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   28175      2194603 :          pack_tmp = ISHFT(pack_tmp, -32)
   28176      2194603 :          idata = idata + 1
   28177      2194603 :          data_tmp = ISHFT(pack_tmp, 5)
   28178      2194603 :          ipack = ipack + 1
   28179      2194603 :          pack_tmp = packed_data(ipack)
   28180      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   28181      2194603 :          pack_tmp = ISHFT(pack_tmp, -5)
   28182      2194603 :          idata = idata + 1
   28183      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28184      2194603 :          full_data(idata) = data_tmp
   28185      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28186      2194603 :          idata = idata + 1
   28187      2194603 :          data_tmp = ISHFT(pack_tmp, 15)
   28188      2194603 :          ipack = ipack + 1
   28189      2194603 :          pack_tmp = packed_data(ipack)
   28190      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   28191      2194603 :          pack_tmp = ISHFT(pack_tmp, -15)
   28192      2194603 :          idata = idata + 1
   28193      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28194      2194603 :          full_data(idata) = data_tmp
   28195      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28196      2194603 :          idata = idata + 1
   28197      2194603 :          data_tmp = ISHFT(pack_tmp, 25)
   28198      2194603 :          ipack = ipack + 1
   28199      2194603 :          pack_tmp = packed_data(ipack)
   28200      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   28201      2194603 :          pack_tmp = ISHFT(pack_tmp, -25)
   28202      2194603 :          idata = idata + 1
   28203      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28204      2194603 :          full_data(idata) = data_tmp
   28205      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28206      2194603 :          idata = idata + 1
   28207      2194603 :          data_tmp = ISHFT(pack_tmp, 35)
   28208      2194603 :          ipack = ipack + 1
   28209      2194603 :          pack_tmp = packed_data(ipack)
   28210      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   28211      2194603 :          pack_tmp = ISHFT(pack_tmp, -35)
   28212      2194603 :          idata = idata + 1
   28213      2194603 :          data_tmp = ISHFT(pack_tmp, 8)
   28214      2194603 :          ipack = ipack + 1
   28215      2194603 :          pack_tmp = packed_data(ipack)
   28216      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   28217      2194603 :          pack_tmp = ISHFT(pack_tmp, -8)
   28218      2194603 :          idata = idata + 1
   28219      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28220      2194603 :          full_data(idata) = data_tmp
   28221      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28222      2194603 :          idata = idata + 1
   28223      2194603 :          data_tmp = ISHFT(pack_tmp, 18)
   28224      2194603 :          ipack = ipack + 1
   28225      2194603 :          pack_tmp = packed_data(ipack)
   28226      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   28227      2194603 :          pack_tmp = ISHFT(pack_tmp, -18)
   28228      2194603 :          idata = idata + 1
   28229      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28230      2194603 :          full_data(idata) = data_tmp
   28231      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28232      2194603 :          idata = idata + 1
   28233      2194603 :          data_tmp = ISHFT(pack_tmp, 28)
   28234      2194603 :          ipack = ipack + 1
   28235      2194603 :          pack_tmp = packed_data(ipack)
   28236      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   28237      2194603 :          pack_tmp = ISHFT(pack_tmp, -28)
   28238      2194603 :          idata = idata + 1
   28239      2194603 :          data_tmp = ISHFT(pack_tmp, 1)
   28240      2194603 :          ipack = ipack + 1
   28241      2194603 :          pack_tmp = packed_data(ipack)
   28242      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   28243      2194603 :          pack_tmp = ISHFT(pack_tmp, -1)
   28244      2194603 :          idata = idata + 1
   28245      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28246      2194603 :          full_data(idata) = data_tmp
   28247      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28248      2194603 :          idata = idata + 1
   28249      2194603 :          data_tmp = ISHFT(pack_tmp, 11)
   28250      2194603 :          ipack = ipack + 1
   28251      2194603 :          pack_tmp = packed_data(ipack)
   28252      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   28253      2194603 :          pack_tmp = ISHFT(pack_tmp, -11)
   28254      2194603 :          idata = idata + 1
   28255      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28256      2194603 :          full_data(idata) = data_tmp
   28257      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28258      2194603 :          idata = idata + 1
   28259      2194603 :          data_tmp = ISHFT(pack_tmp, 21)
   28260      2194603 :          ipack = ipack + 1
   28261      2194603 :          pack_tmp = packed_data(ipack)
   28262      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   28263      2194603 :          pack_tmp = ISHFT(pack_tmp, -21)
   28264      2194603 :          idata = idata + 1
   28265      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28266      2194603 :          full_data(idata) = data_tmp
   28267      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28268      2194603 :          idata = idata + 1
   28269      2194603 :          data_tmp = ISHFT(pack_tmp, 31)
   28270      2194603 :          ipack = ipack + 1
   28271      2194603 :          pack_tmp = packed_data(ipack)
   28272      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   28273      2194603 :          pack_tmp = ISHFT(pack_tmp, -31)
   28274      2194603 :          idata = idata + 1
   28275      2194603 :          data_tmp = ISHFT(pack_tmp, 4)
   28276      2194603 :          ipack = ipack + 1
   28277      2194603 :          pack_tmp = packed_data(ipack)
   28278      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   28279      2194603 :          pack_tmp = ISHFT(pack_tmp, -4)
   28280      2194603 :          idata = idata + 1
   28281      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28282      2194603 :          full_data(idata) = data_tmp
   28283      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28284      2194603 :          idata = idata + 1
   28285      2194603 :          data_tmp = ISHFT(pack_tmp, 14)
   28286      2194603 :          ipack = ipack + 1
   28287      2194603 :          pack_tmp = packed_data(ipack)
   28288      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   28289      2194603 :          pack_tmp = ISHFT(pack_tmp, -14)
   28290      2194603 :          idata = idata + 1
   28291      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28292      2194603 :          full_data(idata) = data_tmp
   28293      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28294      2194603 :          idata = idata + 1
   28295      2194603 :          data_tmp = ISHFT(pack_tmp, 24)
   28296      2194603 :          ipack = ipack + 1
   28297      2194603 :          pack_tmp = packed_data(ipack)
   28298      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   28299      2194603 :          pack_tmp = ISHFT(pack_tmp, -24)
   28300      2194603 :          idata = idata + 1
   28301      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28302      2194603 :          full_data(idata) = data_tmp
   28303      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28304      2194603 :          idata = idata + 1
   28305      2194603 :          data_tmp = ISHFT(pack_tmp, 34)
   28306      2194603 :          ipack = ipack + 1
   28307      2194603 :          pack_tmp = packed_data(ipack)
   28308      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   28309      2194603 :          pack_tmp = ISHFT(pack_tmp, -34)
   28310      2194603 :          idata = idata + 1
   28311      2194603 :          data_tmp = ISHFT(pack_tmp, 7)
   28312      2194603 :          ipack = ipack + 1
   28313      2194603 :          pack_tmp = packed_data(ipack)
   28314      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   28315      2194603 :          pack_tmp = ISHFT(pack_tmp, -7)
   28316      2194603 :          idata = idata + 1
   28317      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28318      2194603 :          full_data(idata) = data_tmp
   28319      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28320      2194603 :          idata = idata + 1
   28321      2194603 :          data_tmp = ISHFT(pack_tmp, 17)
   28322      2194603 :          ipack = ipack + 1
   28323      2194603 :          pack_tmp = packed_data(ipack)
   28324      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   28325      2194603 :          pack_tmp = ISHFT(pack_tmp, -17)
   28326      2194603 :          idata = idata + 1
   28327      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28328      2194603 :          full_data(idata) = data_tmp
   28329      2194603 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28330      2194603 :          idata = idata + 1
   28331      2194603 :          data_tmp = ISHFT(pack_tmp, 27)
   28332      2194603 :          ipack = ipack + 1
   28333      2194603 :          pack_tmp = packed_data(ipack)
   28334      2194603 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   28335      2194603 :          pack_tmp = ISHFT(pack_tmp, -27)
   28336      2194603 :          idata = idata + 1
   28337      2194603 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28338      2194603 :          full_data(idata) = data_tmp
   28339      2194858 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28340              :       END DO
   28341       164321 :       IF (Ndata_rep < Ndata) THEN
   28342        51050 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   28343              :       END IF
   28344       164321 :    END SUBROUTINE bits2ints_37
   28345              : 
   28346              : ! **************************************************************************************************
   28347              : !> \brief ...
   28348              : !> \param Ndata ...
   28349              : !> \param packed_data ...
   28350              : !> \param full_data ...
   28351              : ! **************************************************************************************************
   28352        39731 :    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        39731 :       idata = 0
   28363        39731 :       ipack = 0
   28364        39731 :       Ndata_rep = (Ndata/64)*64
   28365        39731 :       DO kdata = 1, Ndata_rep, 64
   28366       536684 :          pack_tmp = 0
   28367       536684 :          idata = idata + 1
   28368       536684 :          data_tmp = full_data(idata)
   28369       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28370       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28371       536684 :          pack_tmp = ISHFT(pack_tmp, -26)
   28372       536684 :          idata = idata + 1
   28373       536684 :          data_tmp = full_data(idata)
   28374       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28375       536684 :          data_tmp = IAND(data_tmp, mask_left(26))
   28376       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28377       536684 :          ipack = ipack + 1
   28378       536684 :          packed_data(ipack) = pack_tmp
   28379       536684 :          data_tmp = full_data(idata)
   28380       536684 :          pack_tmp = ISHFT(data_tmp, 52)
   28381       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28382       536684 :          idata = idata + 1
   28383       536684 :          data_tmp = full_data(idata)
   28384       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28385       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28386       536684 :          pack_tmp = ISHFT(pack_tmp, -14)
   28387       536684 :          idata = idata + 1
   28388       536684 :          data_tmp = full_data(idata)
   28389       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28390       536684 :          data_tmp = IAND(data_tmp, mask_left(14))
   28391       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28392       536684 :          ipack = ipack + 1
   28393       536684 :          packed_data(ipack) = pack_tmp
   28394       536684 :          data_tmp = full_data(idata)
   28395       536684 :          pack_tmp = ISHFT(data_tmp, 40)
   28396       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28397       536684 :          idata = idata + 1
   28398       536684 :          data_tmp = full_data(idata)
   28399       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28400       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28401       536684 :          pack_tmp = ISHFT(pack_tmp, -2)
   28402       536684 :          idata = idata + 1
   28403       536684 :          data_tmp = full_data(idata)
   28404       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28405       536684 :          data_tmp = IAND(data_tmp, mask_left(2))
   28406       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28407       536684 :          ipack = ipack + 1
   28408       536684 :          packed_data(ipack) = pack_tmp
   28409       536684 :          data_tmp = full_data(idata)
   28410       536684 :          pack_tmp = ISHFT(data_tmp, 28)
   28411       536684 :          pack_tmp = ISHFT(pack_tmp, -28)
   28412       536684 :          idata = idata + 1
   28413       536684 :          data_tmp = full_data(idata)
   28414       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28415       536684 :          data_tmp = IAND(data_tmp, mask_left(28))
   28416       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28417       536684 :          ipack = ipack + 1
   28418       536684 :          packed_data(ipack) = pack_tmp
   28419       536684 :          data_tmp = full_data(idata)
   28420       536684 :          pack_tmp = ISHFT(data_tmp, 54)
   28421       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28422       536684 :          idata = idata + 1
   28423       536684 :          data_tmp = full_data(idata)
   28424       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28425       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28426       536684 :          pack_tmp = ISHFT(pack_tmp, -16)
   28427       536684 :          idata = idata + 1
   28428       536684 :          data_tmp = full_data(idata)
   28429       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28430       536684 :          data_tmp = IAND(data_tmp, mask_left(16))
   28431       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28432       536684 :          ipack = ipack + 1
   28433       536684 :          packed_data(ipack) = pack_tmp
   28434       536684 :          data_tmp = full_data(idata)
   28435       536684 :          pack_tmp = ISHFT(data_tmp, 42)
   28436       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28437       536684 :          idata = idata + 1
   28438       536684 :          data_tmp = full_data(idata)
   28439       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28440       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28441       536684 :          pack_tmp = ISHFT(pack_tmp, -4)
   28442       536684 :          idata = idata + 1
   28443       536684 :          data_tmp = full_data(idata)
   28444       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28445       536684 :          data_tmp = IAND(data_tmp, mask_left(4))
   28446       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28447       536684 :          ipack = ipack + 1
   28448       536684 :          packed_data(ipack) = pack_tmp
   28449       536684 :          data_tmp = full_data(idata)
   28450       536684 :          pack_tmp = ISHFT(data_tmp, 30)
   28451       536684 :          pack_tmp = ISHFT(pack_tmp, -30)
   28452       536684 :          idata = idata + 1
   28453       536684 :          data_tmp = full_data(idata)
   28454       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28455       536684 :          data_tmp = IAND(data_tmp, mask_left(30))
   28456       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28457       536684 :          ipack = ipack + 1
   28458       536684 :          packed_data(ipack) = pack_tmp
   28459       536684 :          data_tmp = full_data(idata)
   28460       536684 :          pack_tmp = ISHFT(data_tmp, 56)
   28461       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28462       536684 :          idata = idata + 1
   28463       536684 :          data_tmp = full_data(idata)
   28464       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28465       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28466       536684 :          pack_tmp = ISHFT(pack_tmp, -18)
   28467       536684 :          idata = idata + 1
   28468       536684 :          data_tmp = full_data(idata)
   28469       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28470       536684 :          data_tmp = IAND(data_tmp, mask_left(18))
   28471       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28472       536684 :          ipack = ipack + 1
   28473       536684 :          packed_data(ipack) = pack_tmp
   28474       536684 :          data_tmp = full_data(idata)
   28475       536684 :          pack_tmp = ISHFT(data_tmp, 44)
   28476       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28477       536684 :          idata = idata + 1
   28478       536684 :          data_tmp = full_data(idata)
   28479       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28480       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28481       536684 :          pack_tmp = ISHFT(pack_tmp, -6)
   28482       536684 :          idata = idata + 1
   28483       536684 :          data_tmp = full_data(idata)
   28484       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28485       536684 :          data_tmp = IAND(data_tmp, mask_left(6))
   28486       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28487       536684 :          ipack = ipack + 1
   28488       536684 :          packed_data(ipack) = pack_tmp
   28489       536684 :          data_tmp = full_data(idata)
   28490       536684 :          pack_tmp = ISHFT(data_tmp, 32)
   28491       536684 :          pack_tmp = ISHFT(pack_tmp, -32)
   28492       536684 :          idata = idata + 1
   28493       536684 :          data_tmp = full_data(idata)
   28494       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28495       536684 :          data_tmp = IAND(data_tmp, mask_left(32))
   28496       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28497       536684 :          ipack = ipack + 1
   28498       536684 :          packed_data(ipack) = pack_tmp
   28499       536684 :          data_tmp = full_data(idata)
   28500       536684 :          pack_tmp = ISHFT(data_tmp, 58)
   28501       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28502       536684 :          idata = idata + 1
   28503       536684 :          data_tmp = full_data(idata)
   28504       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28505       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28506       536684 :          pack_tmp = ISHFT(pack_tmp, -20)
   28507       536684 :          idata = idata + 1
   28508       536684 :          data_tmp = full_data(idata)
   28509       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28510       536684 :          data_tmp = IAND(data_tmp, mask_left(20))
   28511       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28512       536684 :          ipack = ipack + 1
   28513       536684 :          packed_data(ipack) = pack_tmp
   28514       536684 :          data_tmp = full_data(idata)
   28515       536684 :          pack_tmp = ISHFT(data_tmp, 46)
   28516       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28517       536684 :          idata = idata + 1
   28518       536684 :          data_tmp = full_data(idata)
   28519       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28520       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28521       536684 :          pack_tmp = ISHFT(pack_tmp, -8)
   28522       536684 :          idata = idata + 1
   28523       536684 :          data_tmp = full_data(idata)
   28524       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28525       536684 :          data_tmp = IAND(data_tmp, mask_left(8))
   28526       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28527       536684 :          ipack = ipack + 1
   28528       536684 :          packed_data(ipack) = pack_tmp
   28529       536684 :          data_tmp = full_data(idata)
   28530       536684 :          pack_tmp = ISHFT(data_tmp, 34)
   28531       536684 :          pack_tmp = ISHFT(pack_tmp, -34)
   28532       536684 :          idata = idata + 1
   28533       536684 :          data_tmp = full_data(idata)
   28534       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28535       536684 :          data_tmp = IAND(data_tmp, mask_left(34))
   28536       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28537       536684 :          ipack = ipack + 1
   28538       536684 :          packed_data(ipack) = pack_tmp
   28539       536684 :          data_tmp = full_data(idata)
   28540       536684 :          pack_tmp = ISHFT(data_tmp, 60)
   28541       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28542       536684 :          idata = idata + 1
   28543       536684 :          data_tmp = full_data(idata)
   28544       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28545       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28546       536684 :          pack_tmp = ISHFT(pack_tmp, -22)
   28547       536684 :          idata = idata + 1
   28548       536684 :          data_tmp = full_data(idata)
   28549       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28550       536684 :          data_tmp = IAND(data_tmp, mask_left(22))
   28551       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28552       536684 :          ipack = ipack + 1
   28553       536684 :          packed_data(ipack) = pack_tmp
   28554       536684 :          data_tmp = full_data(idata)
   28555       536684 :          pack_tmp = ISHFT(data_tmp, 48)
   28556       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28557       536684 :          idata = idata + 1
   28558       536684 :          data_tmp = full_data(idata)
   28559       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28560       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28561       536684 :          pack_tmp = ISHFT(pack_tmp, -10)
   28562       536684 :          idata = idata + 1
   28563       536684 :          data_tmp = full_data(idata)
   28564       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28565       536684 :          data_tmp = IAND(data_tmp, mask_left(10))
   28566       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28567       536684 :          ipack = ipack + 1
   28568       536684 :          packed_data(ipack) = pack_tmp
   28569       536684 :          data_tmp = full_data(idata)
   28570       536684 :          pack_tmp = ISHFT(data_tmp, 36)
   28571       536684 :          pack_tmp = ISHFT(pack_tmp, -36)
   28572       536684 :          idata = idata + 1
   28573       536684 :          data_tmp = full_data(idata)
   28574       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28575       536684 :          data_tmp = IAND(data_tmp, mask_left(36))
   28576       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28577       536684 :          ipack = ipack + 1
   28578       536684 :          packed_data(ipack) = pack_tmp
   28579       536684 :          data_tmp = full_data(idata)
   28580       536684 :          pack_tmp = ISHFT(data_tmp, 62)
   28581       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28582       536684 :          idata = idata + 1
   28583       536684 :          data_tmp = full_data(idata)
   28584       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28585       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28586       536684 :          pack_tmp = ISHFT(pack_tmp, -24)
   28587       536684 :          idata = idata + 1
   28588       536684 :          data_tmp = full_data(idata)
   28589       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28590       536684 :          data_tmp = IAND(data_tmp, mask_left(24))
   28591       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28592       536684 :          ipack = ipack + 1
   28593       536684 :          packed_data(ipack) = pack_tmp
   28594       536684 :          data_tmp = full_data(idata)
   28595       536684 :          pack_tmp = ISHFT(data_tmp, 50)
   28596       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28597       536684 :          idata = idata + 1
   28598       536684 :          data_tmp = full_data(idata)
   28599       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28600       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28601       536684 :          pack_tmp = ISHFT(pack_tmp, -12)
   28602       536684 :          idata = idata + 1
   28603       536684 :          data_tmp = full_data(idata)
   28604       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28605       536684 :          data_tmp = IAND(data_tmp, mask_left(12))
   28606       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28607       536684 :          ipack = ipack + 1
   28608       536684 :          packed_data(ipack) = pack_tmp
   28609       536684 :          data_tmp = full_data(idata)
   28610       536684 :          pack_tmp = ISHFT(data_tmp, 38)
   28611       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28612       536684 :          idata = idata + 1
   28613       536684 :          data_tmp = full_data(idata)
   28614       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28615       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28616       536684 :          pack_tmp = ISHFT(pack_tmp, 0)
   28617       536684 :          idata = idata + 1
   28618       536684 :          data_tmp = full_data(idata)
   28619              :          data_tmp = ISHFT(data_tmp, 26)
   28620       536684 :          data_tmp = IAND(data_tmp, mask_left(0))
   28621       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28622       536684 :          ipack = ipack + 1
   28623       536684 :          packed_data(ipack) = pack_tmp
   28624       536684 :          data_tmp = full_data(idata)
   28625       536684 :          pack_tmp = ISHFT(data_tmp, 26)
   28626       536684 :          pack_tmp = ISHFT(pack_tmp, -26)
   28627       536684 :          idata = idata + 1
   28628       536684 :          data_tmp = full_data(idata)
   28629       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28630       536684 :          data_tmp = IAND(data_tmp, mask_left(26))
   28631       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28632       536684 :          ipack = ipack + 1
   28633       536684 :          packed_data(ipack) = pack_tmp
   28634       536684 :          data_tmp = full_data(idata)
   28635       536684 :          pack_tmp = ISHFT(data_tmp, 52)
   28636       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28637       536684 :          idata = idata + 1
   28638       536684 :          data_tmp = full_data(idata)
   28639       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28640       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28641       536684 :          pack_tmp = ISHFT(pack_tmp, -14)
   28642       536684 :          idata = idata + 1
   28643       536684 :          data_tmp = full_data(idata)
   28644       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28645       536684 :          data_tmp = IAND(data_tmp, mask_left(14))
   28646       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28647       536684 :          ipack = ipack + 1
   28648       536684 :          packed_data(ipack) = pack_tmp
   28649       536684 :          data_tmp = full_data(idata)
   28650       536684 :          pack_tmp = ISHFT(data_tmp, 40)
   28651       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28652       536684 :          idata = idata + 1
   28653       536684 :          data_tmp = full_data(idata)
   28654       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28655       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28656       536684 :          pack_tmp = ISHFT(pack_tmp, -2)
   28657       536684 :          idata = idata + 1
   28658       536684 :          data_tmp = full_data(idata)
   28659       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28660       536684 :          data_tmp = IAND(data_tmp, mask_left(2))
   28661       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28662       536684 :          ipack = ipack + 1
   28663       536684 :          packed_data(ipack) = pack_tmp
   28664       536684 :          data_tmp = full_data(idata)
   28665       536684 :          pack_tmp = ISHFT(data_tmp, 28)
   28666       536684 :          pack_tmp = ISHFT(pack_tmp, -28)
   28667       536684 :          idata = idata + 1
   28668       536684 :          data_tmp = full_data(idata)
   28669       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28670       536684 :          data_tmp = IAND(data_tmp, mask_left(28))
   28671       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28672       536684 :          ipack = ipack + 1
   28673       536684 :          packed_data(ipack) = pack_tmp
   28674       536684 :          data_tmp = full_data(idata)
   28675       536684 :          pack_tmp = ISHFT(data_tmp, 54)
   28676       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28677       536684 :          idata = idata + 1
   28678       536684 :          data_tmp = full_data(idata)
   28679       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28680       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28681       536684 :          pack_tmp = ISHFT(pack_tmp, -16)
   28682       536684 :          idata = idata + 1
   28683       536684 :          data_tmp = full_data(idata)
   28684       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28685       536684 :          data_tmp = IAND(data_tmp, mask_left(16))
   28686       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28687       536684 :          ipack = ipack + 1
   28688       536684 :          packed_data(ipack) = pack_tmp
   28689       536684 :          data_tmp = full_data(idata)
   28690       536684 :          pack_tmp = ISHFT(data_tmp, 42)
   28691       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28692       536684 :          idata = idata + 1
   28693       536684 :          data_tmp = full_data(idata)
   28694       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28695       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28696       536684 :          pack_tmp = ISHFT(pack_tmp, -4)
   28697       536684 :          idata = idata + 1
   28698       536684 :          data_tmp = full_data(idata)
   28699       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28700       536684 :          data_tmp = IAND(data_tmp, mask_left(4))
   28701       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28702       536684 :          ipack = ipack + 1
   28703       536684 :          packed_data(ipack) = pack_tmp
   28704       536684 :          data_tmp = full_data(idata)
   28705       536684 :          pack_tmp = ISHFT(data_tmp, 30)
   28706       536684 :          pack_tmp = ISHFT(pack_tmp, -30)
   28707       536684 :          idata = idata + 1
   28708       536684 :          data_tmp = full_data(idata)
   28709       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28710       536684 :          data_tmp = IAND(data_tmp, mask_left(30))
   28711       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28712       536684 :          ipack = ipack + 1
   28713       536684 :          packed_data(ipack) = pack_tmp
   28714       536684 :          data_tmp = full_data(idata)
   28715       536684 :          pack_tmp = ISHFT(data_tmp, 56)
   28716       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28717       536684 :          idata = idata + 1
   28718       536684 :          data_tmp = full_data(idata)
   28719       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28720       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28721       536684 :          pack_tmp = ISHFT(pack_tmp, -18)
   28722       536684 :          idata = idata + 1
   28723       536684 :          data_tmp = full_data(idata)
   28724       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28725       536684 :          data_tmp = IAND(data_tmp, mask_left(18))
   28726       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28727       536684 :          ipack = ipack + 1
   28728       536684 :          packed_data(ipack) = pack_tmp
   28729       536684 :          data_tmp = full_data(idata)
   28730       536684 :          pack_tmp = ISHFT(data_tmp, 44)
   28731       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28732       536684 :          idata = idata + 1
   28733       536684 :          data_tmp = full_data(idata)
   28734       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28735       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28736       536684 :          pack_tmp = ISHFT(pack_tmp, -6)
   28737       536684 :          idata = idata + 1
   28738       536684 :          data_tmp = full_data(idata)
   28739       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28740       536684 :          data_tmp = IAND(data_tmp, mask_left(6))
   28741       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28742       536684 :          ipack = ipack + 1
   28743       536684 :          packed_data(ipack) = pack_tmp
   28744       536684 :          data_tmp = full_data(idata)
   28745       536684 :          pack_tmp = ISHFT(data_tmp, 32)
   28746       536684 :          pack_tmp = ISHFT(pack_tmp, -32)
   28747       536684 :          idata = idata + 1
   28748       536684 :          data_tmp = full_data(idata)
   28749       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28750       536684 :          data_tmp = IAND(data_tmp, mask_left(32))
   28751       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28752       536684 :          ipack = ipack + 1
   28753       536684 :          packed_data(ipack) = pack_tmp
   28754       536684 :          data_tmp = full_data(idata)
   28755       536684 :          pack_tmp = ISHFT(data_tmp, 58)
   28756       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28757       536684 :          idata = idata + 1
   28758       536684 :          data_tmp = full_data(idata)
   28759       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28760       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28761       536684 :          pack_tmp = ISHFT(pack_tmp, -20)
   28762       536684 :          idata = idata + 1
   28763       536684 :          data_tmp = full_data(idata)
   28764       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28765       536684 :          data_tmp = IAND(data_tmp, mask_left(20))
   28766       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28767       536684 :          ipack = ipack + 1
   28768       536684 :          packed_data(ipack) = pack_tmp
   28769       536684 :          data_tmp = full_data(idata)
   28770       536684 :          pack_tmp = ISHFT(data_tmp, 46)
   28771       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28772       536684 :          idata = idata + 1
   28773       536684 :          data_tmp = full_data(idata)
   28774       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28775       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28776       536684 :          pack_tmp = ISHFT(pack_tmp, -8)
   28777       536684 :          idata = idata + 1
   28778       536684 :          data_tmp = full_data(idata)
   28779       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28780       536684 :          data_tmp = IAND(data_tmp, mask_left(8))
   28781       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28782       536684 :          ipack = ipack + 1
   28783       536684 :          packed_data(ipack) = pack_tmp
   28784       536684 :          data_tmp = full_data(idata)
   28785       536684 :          pack_tmp = ISHFT(data_tmp, 34)
   28786       536684 :          pack_tmp = ISHFT(pack_tmp, -34)
   28787       536684 :          idata = idata + 1
   28788       536684 :          data_tmp = full_data(idata)
   28789       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28790       536684 :          data_tmp = IAND(data_tmp, mask_left(34))
   28791       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28792       536684 :          ipack = ipack + 1
   28793       536684 :          packed_data(ipack) = pack_tmp
   28794       536684 :          data_tmp = full_data(idata)
   28795       536684 :          pack_tmp = ISHFT(data_tmp, 60)
   28796       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28797       536684 :          idata = idata + 1
   28798       536684 :          data_tmp = full_data(idata)
   28799       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28800       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28801       536684 :          pack_tmp = ISHFT(pack_tmp, -22)
   28802       536684 :          idata = idata + 1
   28803       536684 :          data_tmp = full_data(idata)
   28804       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28805       536684 :          data_tmp = IAND(data_tmp, mask_left(22))
   28806       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28807       536684 :          ipack = ipack + 1
   28808       536684 :          packed_data(ipack) = pack_tmp
   28809       536684 :          data_tmp = full_data(idata)
   28810       536684 :          pack_tmp = ISHFT(data_tmp, 48)
   28811       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28812       536684 :          idata = idata + 1
   28813       536684 :          data_tmp = full_data(idata)
   28814       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28815       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28816       536684 :          pack_tmp = ISHFT(pack_tmp, -10)
   28817       536684 :          idata = idata + 1
   28818       536684 :          data_tmp = full_data(idata)
   28819       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28820       536684 :          data_tmp = IAND(data_tmp, mask_left(10))
   28821       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28822       536684 :          ipack = ipack + 1
   28823       536684 :          packed_data(ipack) = pack_tmp
   28824       536684 :          data_tmp = full_data(idata)
   28825       536684 :          pack_tmp = ISHFT(data_tmp, 36)
   28826       536684 :          pack_tmp = ISHFT(pack_tmp, -36)
   28827       536684 :          idata = idata + 1
   28828       536684 :          data_tmp = full_data(idata)
   28829       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28830       536684 :          data_tmp = IAND(data_tmp, mask_left(36))
   28831       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28832       536684 :          ipack = ipack + 1
   28833       536684 :          packed_data(ipack) = pack_tmp
   28834       536684 :          data_tmp = full_data(idata)
   28835       536684 :          pack_tmp = ISHFT(data_tmp, 62)
   28836       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28837       536684 :          idata = idata + 1
   28838       536684 :          data_tmp = full_data(idata)
   28839       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28840       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28841       536684 :          pack_tmp = ISHFT(pack_tmp, -24)
   28842       536684 :          idata = idata + 1
   28843       536684 :          data_tmp = full_data(idata)
   28844       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28845       536684 :          data_tmp = IAND(data_tmp, mask_left(24))
   28846       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28847       536684 :          ipack = ipack + 1
   28848       536684 :          packed_data(ipack) = pack_tmp
   28849       536684 :          data_tmp = full_data(idata)
   28850       536684 :          pack_tmp = ISHFT(data_tmp, 50)
   28851       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28852       536684 :          idata = idata + 1
   28853       536684 :          data_tmp = full_data(idata)
   28854       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28855       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28856       536684 :          pack_tmp = ISHFT(pack_tmp, -12)
   28857       536684 :          idata = idata + 1
   28858       536684 :          data_tmp = full_data(idata)
   28859       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28860       536684 :          data_tmp = IAND(data_tmp, mask_left(12))
   28861       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28862       536684 :          ipack = ipack + 1
   28863       536684 :          packed_data(ipack) = pack_tmp
   28864       536684 :          data_tmp = full_data(idata)
   28865       536684 :          pack_tmp = ISHFT(data_tmp, 38)
   28866       536684 :          pack_tmp = ISHFT(pack_tmp, -38)
   28867       536684 :          idata = idata + 1
   28868       536684 :          data_tmp = full_data(idata)
   28869       536684 :          data_tmp = ISHFT(data_tmp, 26)
   28870       536684 :          pack_tmp = IOR(pack_tmp, data_tmp)
   28871              :          pack_tmp = ISHFT(pack_tmp, 0)
   28872       536684 :          pack_tmp = ISHFT(pack_tmp, 0)
   28873       536684 :          ipack = ipack + 1
   28874       537238 :          packed_data(ipack) = pack_tmp
   28875              :       END DO
   28876        39731 :       IF (Ndata_rep < Ndata) THEN
   28877        11432 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   28878              :       END IF
   28879        39731 :    END SUBROUTINE ints2bits_38
   28880              : 
   28881              : ! **************************************************************************************************
   28882              : !> \brief ...
   28883              : !> \param Ndata ...
   28884              : !> \param packed_data ...
   28885              : !> \param full_data ...
   28886              : ! **************************************************************************************************
   28887       184015 :    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       184015 :       ipack = 0
   28898       184015 :       idata = 0
   28899       184015 :       pack_tmp = 0
   28900       184015 :       Ndata_rep = (Ndata/64)*64
   28901       184015 :       DO kdata = 1, Ndata_rep, 64
   28902      2393558 :          idata = idata + 1
   28903      2393558 :          data_tmp = ISHFT(pack_tmp, 38)
   28904      2393558 :          ipack = ipack + 1
   28905      2393558 :          pack_tmp = packed_data(ipack)
   28906      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   28907      2393558 :          pack_tmp = ISHFT(pack_tmp, -38)
   28908      2393558 :          idata = idata + 1
   28909      2393558 :          data_tmp = ISHFT(pack_tmp, 12)
   28910      2393558 :          ipack = ipack + 1
   28911      2393558 :          pack_tmp = packed_data(ipack)
   28912      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   28913      2393558 :          pack_tmp = ISHFT(pack_tmp, -12)
   28914      2393558 :          idata = idata + 1
   28915      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28916      2393558 :          full_data(idata) = data_tmp
   28917      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28918      2393558 :          idata = idata + 1
   28919      2393558 :          data_tmp = ISHFT(pack_tmp, 24)
   28920      2393558 :          ipack = ipack + 1
   28921      2393558 :          pack_tmp = packed_data(ipack)
   28922      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   28923      2393558 :          pack_tmp = ISHFT(pack_tmp, -24)
   28924      2393558 :          idata = idata + 1
   28925      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28926      2393558 :          full_data(idata) = data_tmp
   28927      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28928      2393558 :          idata = idata + 1
   28929      2393558 :          data_tmp = ISHFT(pack_tmp, 36)
   28930      2393558 :          ipack = ipack + 1
   28931      2393558 :          pack_tmp = packed_data(ipack)
   28932      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   28933      2393558 :          pack_tmp = ISHFT(pack_tmp, -36)
   28934      2393558 :          idata = idata + 1
   28935      2393558 :          data_tmp = ISHFT(pack_tmp, 10)
   28936      2393558 :          ipack = ipack + 1
   28937      2393558 :          pack_tmp = packed_data(ipack)
   28938      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   28939      2393558 :          pack_tmp = ISHFT(pack_tmp, -10)
   28940      2393558 :          idata = idata + 1
   28941      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28942      2393558 :          full_data(idata) = data_tmp
   28943      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28944      2393558 :          idata = idata + 1
   28945      2393558 :          data_tmp = ISHFT(pack_tmp, 22)
   28946      2393558 :          ipack = ipack + 1
   28947      2393558 :          pack_tmp = packed_data(ipack)
   28948      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   28949      2393558 :          pack_tmp = ISHFT(pack_tmp, -22)
   28950      2393558 :          idata = idata + 1
   28951      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28952      2393558 :          full_data(idata) = data_tmp
   28953      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28954      2393558 :          idata = idata + 1
   28955      2393558 :          data_tmp = ISHFT(pack_tmp, 34)
   28956      2393558 :          ipack = ipack + 1
   28957      2393558 :          pack_tmp = packed_data(ipack)
   28958      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   28959      2393558 :          pack_tmp = ISHFT(pack_tmp, -34)
   28960      2393558 :          idata = idata + 1
   28961      2393558 :          data_tmp = ISHFT(pack_tmp, 8)
   28962      2393558 :          ipack = ipack + 1
   28963      2393558 :          pack_tmp = packed_data(ipack)
   28964      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   28965      2393558 :          pack_tmp = ISHFT(pack_tmp, -8)
   28966      2393558 :          idata = idata + 1
   28967      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28968      2393558 :          full_data(idata) = data_tmp
   28969      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28970      2393558 :          idata = idata + 1
   28971      2393558 :          data_tmp = ISHFT(pack_tmp, 20)
   28972      2393558 :          ipack = ipack + 1
   28973      2393558 :          pack_tmp = packed_data(ipack)
   28974      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   28975      2393558 :          pack_tmp = ISHFT(pack_tmp, -20)
   28976      2393558 :          idata = idata + 1
   28977      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28978      2393558 :          full_data(idata) = data_tmp
   28979      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28980      2393558 :          idata = idata + 1
   28981      2393558 :          data_tmp = ISHFT(pack_tmp, 32)
   28982      2393558 :          ipack = ipack + 1
   28983      2393558 :          pack_tmp = packed_data(ipack)
   28984      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   28985      2393558 :          pack_tmp = ISHFT(pack_tmp, -32)
   28986      2393558 :          idata = idata + 1
   28987      2393558 :          data_tmp = ISHFT(pack_tmp, 6)
   28988      2393558 :          ipack = ipack + 1
   28989      2393558 :          pack_tmp = packed_data(ipack)
   28990      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   28991      2393558 :          pack_tmp = ISHFT(pack_tmp, -6)
   28992      2393558 :          idata = idata + 1
   28993      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   28994      2393558 :          full_data(idata) = data_tmp
   28995      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   28996      2393558 :          idata = idata + 1
   28997      2393558 :          data_tmp = ISHFT(pack_tmp, 18)
   28998      2393558 :          ipack = ipack + 1
   28999      2393558 :          pack_tmp = packed_data(ipack)
   29000      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29001      2393558 :          pack_tmp = ISHFT(pack_tmp, -18)
   29002      2393558 :          idata = idata + 1
   29003      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29004      2393558 :          full_data(idata) = data_tmp
   29005      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29006      2393558 :          idata = idata + 1
   29007      2393558 :          data_tmp = ISHFT(pack_tmp, 30)
   29008      2393558 :          ipack = ipack + 1
   29009      2393558 :          pack_tmp = packed_data(ipack)
   29010      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   29011      2393558 :          pack_tmp = ISHFT(pack_tmp, -30)
   29012      2393558 :          idata = idata + 1
   29013      2393558 :          data_tmp = ISHFT(pack_tmp, 4)
   29014      2393558 :          ipack = ipack + 1
   29015      2393558 :          pack_tmp = packed_data(ipack)
   29016      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29017      2393558 :          pack_tmp = ISHFT(pack_tmp, -4)
   29018      2393558 :          idata = idata + 1
   29019      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29020      2393558 :          full_data(idata) = data_tmp
   29021      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29022      2393558 :          idata = idata + 1
   29023      2393558 :          data_tmp = ISHFT(pack_tmp, 16)
   29024      2393558 :          ipack = ipack + 1
   29025      2393558 :          pack_tmp = packed_data(ipack)
   29026      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   29027      2393558 :          pack_tmp = ISHFT(pack_tmp, -16)
   29028      2393558 :          idata = idata + 1
   29029      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29030      2393558 :          full_data(idata) = data_tmp
   29031      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29032      2393558 :          idata = idata + 1
   29033      2393558 :          data_tmp = ISHFT(pack_tmp, 28)
   29034      2393558 :          ipack = ipack + 1
   29035      2393558 :          pack_tmp = packed_data(ipack)
   29036      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29037      2393558 :          pack_tmp = ISHFT(pack_tmp, -28)
   29038      2393558 :          idata = idata + 1
   29039      2393558 :          data_tmp = ISHFT(pack_tmp, 2)
   29040      2393558 :          ipack = ipack + 1
   29041      2393558 :          pack_tmp = packed_data(ipack)
   29042      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   29043      2393558 :          pack_tmp = ISHFT(pack_tmp, -2)
   29044      2393558 :          idata = idata + 1
   29045      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29046      2393558 :          full_data(idata) = data_tmp
   29047      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29048      2393558 :          idata = idata + 1
   29049      2393558 :          data_tmp = ISHFT(pack_tmp, 14)
   29050      2393558 :          ipack = ipack + 1
   29051      2393558 :          pack_tmp = packed_data(ipack)
   29052      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29053      2393558 :          pack_tmp = ISHFT(pack_tmp, -14)
   29054      2393558 :          idata = idata + 1
   29055      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29056      2393558 :          full_data(idata) = data_tmp
   29057      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29058      2393558 :          idata = idata + 1
   29059      2393558 :          data_tmp = ISHFT(pack_tmp, 26)
   29060      2393558 :          ipack = ipack + 1
   29061      2393558 :          pack_tmp = packed_data(ipack)
   29062      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29063      2393558 :          pack_tmp = ISHFT(pack_tmp, -26)
   29064      2393558 :          idata = idata + 1
   29065      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29066      2393558 :          full_data(idata) = data_tmp
   29067      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29068      2393558 :          idata = idata + 1
   29069      2393558 :          data_tmp = ISHFT(pack_tmp, 38)
   29070      2393558 :          ipack = ipack + 1
   29071      2393558 :          pack_tmp = packed_data(ipack)
   29072      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   29073      2393558 :          pack_tmp = ISHFT(pack_tmp, -38)
   29074      2393558 :          idata = idata + 1
   29075      2393558 :          data_tmp = ISHFT(pack_tmp, 12)
   29076      2393558 :          ipack = ipack + 1
   29077      2393558 :          pack_tmp = packed_data(ipack)
   29078      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   29079      2393558 :          pack_tmp = ISHFT(pack_tmp, -12)
   29080      2393558 :          idata = idata + 1
   29081      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29082      2393558 :          full_data(idata) = data_tmp
   29083      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29084      2393558 :          idata = idata + 1
   29085      2393558 :          data_tmp = ISHFT(pack_tmp, 24)
   29086      2393558 :          ipack = ipack + 1
   29087      2393558 :          pack_tmp = packed_data(ipack)
   29088      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   29089      2393558 :          pack_tmp = ISHFT(pack_tmp, -24)
   29090      2393558 :          idata = idata + 1
   29091      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29092      2393558 :          full_data(idata) = data_tmp
   29093      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29094      2393558 :          idata = idata + 1
   29095      2393558 :          data_tmp = ISHFT(pack_tmp, 36)
   29096      2393558 :          ipack = ipack + 1
   29097      2393558 :          pack_tmp = packed_data(ipack)
   29098      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   29099      2393558 :          pack_tmp = ISHFT(pack_tmp, -36)
   29100      2393558 :          idata = idata + 1
   29101      2393558 :          data_tmp = ISHFT(pack_tmp, 10)
   29102      2393558 :          ipack = ipack + 1
   29103      2393558 :          pack_tmp = packed_data(ipack)
   29104      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   29105      2393558 :          pack_tmp = ISHFT(pack_tmp, -10)
   29106      2393558 :          idata = idata + 1
   29107      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29108      2393558 :          full_data(idata) = data_tmp
   29109      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29110      2393558 :          idata = idata + 1
   29111      2393558 :          data_tmp = ISHFT(pack_tmp, 22)
   29112      2393558 :          ipack = ipack + 1
   29113      2393558 :          pack_tmp = packed_data(ipack)
   29114      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   29115      2393558 :          pack_tmp = ISHFT(pack_tmp, -22)
   29116      2393558 :          idata = idata + 1
   29117      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29118      2393558 :          full_data(idata) = data_tmp
   29119      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29120      2393558 :          idata = idata + 1
   29121      2393558 :          data_tmp = ISHFT(pack_tmp, 34)
   29122      2393558 :          ipack = ipack + 1
   29123      2393558 :          pack_tmp = packed_data(ipack)
   29124      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   29125      2393558 :          pack_tmp = ISHFT(pack_tmp, -34)
   29126      2393558 :          idata = idata + 1
   29127      2393558 :          data_tmp = ISHFT(pack_tmp, 8)
   29128      2393558 :          ipack = ipack + 1
   29129      2393558 :          pack_tmp = packed_data(ipack)
   29130      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   29131      2393558 :          pack_tmp = ISHFT(pack_tmp, -8)
   29132      2393558 :          idata = idata + 1
   29133      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29134      2393558 :          full_data(idata) = data_tmp
   29135      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29136      2393558 :          idata = idata + 1
   29137      2393558 :          data_tmp = ISHFT(pack_tmp, 20)
   29138      2393558 :          ipack = ipack + 1
   29139      2393558 :          pack_tmp = packed_data(ipack)
   29140      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   29141      2393558 :          pack_tmp = ISHFT(pack_tmp, -20)
   29142      2393558 :          idata = idata + 1
   29143      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29144      2393558 :          full_data(idata) = data_tmp
   29145      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29146      2393558 :          idata = idata + 1
   29147      2393558 :          data_tmp = ISHFT(pack_tmp, 32)
   29148      2393558 :          ipack = ipack + 1
   29149      2393558 :          pack_tmp = packed_data(ipack)
   29150      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   29151      2393558 :          pack_tmp = ISHFT(pack_tmp, -32)
   29152      2393558 :          idata = idata + 1
   29153      2393558 :          data_tmp = ISHFT(pack_tmp, 6)
   29154      2393558 :          ipack = ipack + 1
   29155      2393558 :          pack_tmp = packed_data(ipack)
   29156      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   29157      2393558 :          pack_tmp = ISHFT(pack_tmp, -6)
   29158      2393558 :          idata = idata + 1
   29159      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29160      2393558 :          full_data(idata) = data_tmp
   29161      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29162      2393558 :          idata = idata + 1
   29163      2393558 :          data_tmp = ISHFT(pack_tmp, 18)
   29164      2393558 :          ipack = ipack + 1
   29165      2393558 :          pack_tmp = packed_data(ipack)
   29166      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29167      2393558 :          pack_tmp = ISHFT(pack_tmp, -18)
   29168      2393558 :          idata = idata + 1
   29169      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29170      2393558 :          full_data(idata) = data_tmp
   29171      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29172      2393558 :          idata = idata + 1
   29173      2393558 :          data_tmp = ISHFT(pack_tmp, 30)
   29174      2393558 :          ipack = ipack + 1
   29175      2393558 :          pack_tmp = packed_data(ipack)
   29176      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   29177      2393558 :          pack_tmp = ISHFT(pack_tmp, -30)
   29178      2393558 :          idata = idata + 1
   29179      2393558 :          data_tmp = ISHFT(pack_tmp, 4)
   29180      2393558 :          ipack = ipack + 1
   29181      2393558 :          pack_tmp = packed_data(ipack)
   29182      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29183      2393558 :          pack_tmp = ISHFT(pack_tmp, -4)
   29184      2393558 :          idata = idata + 1
   29185      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29186      2393558 :          full_data(idata) = data_tmp
   29187      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29188      2393558 :          idata = idata + 1
   29189      2393558 :          data_tmp = ISHFT(pack_tmp, 16)
   29190      2393558 :          ipack = ipack + 1
   29191      2393558 :          pack_tmp = packed_data(ipack)
   29192      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   29193      2393558 :          pack_tmp = ISHFT(pack_tmp, -16)
   29194      2393558 :          idata = idata + 1
   29195      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29196      2393558 :          full_data(idata) = data_tmp
   29197      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29198      2393558 :          idata = idata + 1
   29199      2393558 :          data_tmp = ISHFT(pack_tmp, 28)
   29200      2393558 :          ipack = ipack + 1
   29201      2393558 :          pack_tmp = packed_data(ipack)
   29202      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29203      2393558 :          pack_tmp = ISHFT(pack_tmp, -28)
   29204      2393558 :          idata = idata + 1
   29205      2393558 :          data_tmp = ISHFT(pack_tmp, 2)
   29206      2393558 :          ipack = ipack + 1
   29207      2393558 :          pack_tmp = packed_data(ipack)
   29208      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   29209      2393558 :          pack_tmp = ISHFT(pack_tmp, -2)
   29210      2393558 :          idata = idata + 1
   29211      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29212      2393558 :          full_data(idata) = data_tmp
   29213      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29214      2393558 :          idata = idata + 1
   29215      2393558 :          data_tmp = ISHFT(pack_tmp, 14)
   29216      2393558 :          ipack = ipack + 1
   29217      2393558 :          pack_tmp = packed_data(ipack)
   29218      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29219      2393558 :          pack_tmp = ISHFT(pack_tmp, -14)
   29220      2393558 :          idata = idata + 1
   29221      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29222      2393558 :          full_data(idata) = data_tmp
   29223      2393558 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29224      2393558 :          idata = idata + 1
   29225      2393558 :          data_tmp = ISHFT(pack_tmp, 26)
   29226      2393558 :          ipack = ipack + 1
   29227      2393558 :          pack_tmp = packed_data(ipack)
   29228      2393558 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29229      2393558 :          pack_tmp = ISHFT(pack_tmp, -26)
   29230      2393558 :          idata = idata + 1
   29231      2393558 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29232      2393558 :          full_data(idata) = data_tmp
   29233      2397278 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29234              :       END DO
   29235       184015 :       IF (Ndata_rep < Ndata) THEN
   29236        64148 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   29237              :       END IF
   29238       184015 :    END SUBROUTINE bits2ints_38
   29239              : 
   29240              : ! **************************************************************************************************
   29241              : !> \brief ...
   29242              : !> \param Ndata ...
   29243              : !> \param packed_data ...
   29244              : !> \param full_data ...
   29245              : ! **************************************************************************************************
   29246        38172 :    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        38172 :       idata = 0
   29257        38172 :       ipack = 0
   29258        38172 :       Ndata_rep = (Ndata/64)*64
   29259        38172 :       DO kdata = 1, Ndata_rep, 64
   29260       517439 :          pack_tmp = 0
   29261       517439 :          idata = idata + 1
   29262       517439 :          data_tmp = full_data(idata)
   29263       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29264       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29265       517439 :          pack_tmp = ISHFT(pack_tmp, -25)
   29266       517439 :          idata = idata + 1
   29267       517439 :          data_tmp = full_data(idata)
   29268       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29269       517439 :          data_tmp = IAND(data_tmp, mask_left(25))
   29270       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29271       517439 :          ipack = ipack + 1
   29272       517439 :          packed_data(ipack) = pack_tmp
   29273       517439 :          data_tmp = full_data(idata)
   29274       517439 :          pack_tmp = ISHFT(data_tmp, 50)
   29275       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29276       517439 :          idata = idata + 1
   29277       517439 :          data_tmp = full_data(idata)
   29278       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29279       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29280       517439 :          pack_tmp = ISHFT(pack_tmp, -11)
   29281       517439 :          idata = idata + 1
   29282       517439 :          data_tmp = full_data(idata)
   29283       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29284       517439 :          data_tmp = IAND(data_tmp, mask_left(11))
   29285       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29286       517439 :          ipack = ipack + 1
   29287       517439 :          packed_data(ipack) = pack_tmp
   29288       517439 :          data_tmp = full_data(idata)
   29289       517439 :          pack_tmp = ISHFT(data_tmp, 36)
   29290       517439 :          pack_tmp = ISHFT(pack_tmp, -36)
   29291       517439 :          idata = idata + 1
   29292       517439 :          data_tmp = full_data(idata)
   29293       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29294       517439 :          data_tmp = IAND(data_tmp, mask_left(36))
   29295       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29296       517439 :          ipack = ipack + 1
   29297       517439 :          packed_data(ipack) = pack_tmp
   29298       517439 :          data_tmp = full_data(idata)
   29299       517439 :          pack_tmp = ISHFT(data_tmp, 61)
   29300       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29301       517439 :          idata = idata + 1
   29302       517439 :          data_tmp = full_data(idata)
   29303       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29304       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29305       517439 :          pack_tmp = ISHFT(pack_tmp, -22)
   29306       517439 :          idata = idata + 1
   29307       517439 :          data_tmp = full_data(idata)
   29308       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29309       517439 :          data_tmp = IAND(data_tmp, mask_left(22))
   29310       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29311       517439 :          ipack = ipack + 1
   29312       517439 :          packed_data(ipack) = pack_tmp
   29313       517439 :          data_tmp = full_data(idata)
   29314       517439 :          pack_tmp = ISHFT(data_tmp, 47)
   29315       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29316       517439 :          idata = idata + 1
   29317       517439 :          data_tmp = full_data(idata)
   29318       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29319       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29320       517439 :          pack_tmp = ISHFT(pack_tmp, -8)
   29321       517439 :          idata = idata + 1
   29322       517439 :          data_tmp = full_data(idata)
   29323       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29324       517439 :          data_tmp = IAND(data_tmp, mask_left(8))
   29325       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29326       517439 :          ipack = ipack + 1
   29327       517439 :          packed_data(ipack) = pack_tmp
   29328       517439 :          data_tmp = full_data(idata)
   29329       517439 :          pack_tmp = ISHFT(data_tmp, 33)
   29330       517439 :          pack_tmp = ISHFT(pack_tmp, -33)
   29331       517439 :          idata = idata + 1
   29332       517439 :          data_tmp = full_data(idata)
   29333       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29334       517439 :          data_tmp = IAND(data_tmp, mask_left(33))
   29335       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29336       517439 :          ipack = ipack + 1
   29337       517439 :          packed_data(ipack) = pack_tmp
   29338       517439 :          data_tmp = full_data(idata)
   29339       517439 :          pack_tmp = ISHFT(data_tmp, 58)
   29340       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29341       517439 :          idata = idata + 1
   29342       517439 :          data_tmp = full_data(idata)
   29343       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29344       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29345       517439 :          pack_tmp = ISHFT(pack_tmp, -19)
   29346       517439 :          idata = idata + 1
   29347       517439 :          data_tmp = full_data(idata)
   29348       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29349       517439 :          data_tmp = IAND(data_tmp, mask_left(19))
   29350       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29351       517439 :          ipack = ipack + 1
   29352       517439 :          packed_data(ipack) = pack_tmp
   29353       517439 :          data_tmp = full_data(idata)
   29354       517439 :          pack_tmp = ISHFT(data_tmp, 44)
   29355       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29356       517439 :          idata = idata + 1
   29357       517439 :          data_tmp = full_data(idata)
   29358       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29359       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29360       517439 :          pack_tmp = ISHFT(pack_tmp, -5)
   29361       517439 :          idata = idata + 1
   29362       517439 :          data_tmp = full_data(idata)
   29363       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29364       517439 :          data_tmp = IAND(data_tmp, mask_left(5))
   29365       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29366       517439 :          ipack = ipack + 1
   29367       517439 :          packed_data(ipack) = pack_tmp
   29368       517439 :          data_tmp = full_data(idata)
   29369       517439 :          pack_tmp = ISHFT(data_tmp, 30)
   29370       517439 :          pack_tmp = ISHFT(pack_tmp, -30)
   29371       517439 :          idata = idata + 1
   29372       517439 :          data_tmp = full_data(idata)
   29373       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29374       517439 :          data_tmp = IAND(data_tmp, mask_left(30))
   29375       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29376       517439 :          ipack = ipack + 1
   29377       517439 :          packed_data(ipack) = pack_tmp
   29378       517439 :          data_tmp = full_data(idata)
   29379       517439 :          pack_tmp = ISHFT(data_tmp, 55)
   29380       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29381       517439 :          idata = idata + 1
   29382       517439 :          data_tmp = full_data(idata)
   29383       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29384       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29385       517439 :          pack_tmp = ISHFT(pack_tmp, -16)
   29386       517439 :          idata = idata + 1
   29387       517439 :          data_tmp = full_data(idata)
   29388       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29389       517439 :          data_tmp = IAND(data_tmp, mask_left(16))
   29390       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29391       517439 :          ipack = ipack + 1
   29392       517439 :          packed_data(ipack) = pack_tmp
   29393       517439 :          data_tmp = full_data(idata)
   29394       517439 :          pack_tmp = ISHFT(data_tmp, 41)
   29395       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29396       517439 :          idata = idata + 1
   29397       517439 :          data_tmp = full_data(idata)
   29398       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29399       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29400       517439 :          pack_tmp = ISHFT(pack_tmp, -2)
   29401       517439 :          idata = idata + 1
   29402       517439 :          data_tmp = full_data(idata)
   29403       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29404       517439 :          data_tmp = IAND(data_tmp, mask_left(2))
   29405       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29406       517439 :          ipack = ipack + 1
   29407       517439 :          packed_data(ipack) = pack_tmp
   29408       517439 :          data_tmp = full_data(idata)
   29409       517439 :          pack_tmp = ISHFT(data_tmp, 27)
   29410       517439 :          pack_tmp = ISHFT(pack_tmp, -27)
   29411       517439 :          idata = idata + 1
   29412       517439 :          data_tmp = full_data(idata)
   29413       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29414       517439 :          data_tmp = IAND(data_tmp, mask_left(27))
   29415       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29416       517439 :          ipack = ipack + 1
   29417       517439 :          packed_data(ipack) = pack_tmp
   29418       517439 :          data_tmp = full_data(idata)
   29419       517439 :          pack_tmp = ISHFT(data_tmp, 52)
   29420       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29421       517439 :          idata = idata + 1
   29422       517439 :          data_tmp = full_data(idata)
   29423       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29424       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29425       517439 :          pack_tmp = ISHFT(pack_tmp, -13)
   29426       517439 :          idata = idata + 1
   29427       517439 :          data_tmp = full_data(idata)
   29428       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29429       517439 :          data_tmp = IAND(data_tmp, mask_left(13))
   29430       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29431       517439 :          ipack = ipack + 1
   29432       517439 :          packed_data(ipack) = pack_tmp
   29433       517439 :          data_tmp = full_data(idata)
   29434       517439 :          pack_tmp = ISHFT(data_tmp, 38)
   29435       517439 :          pack_tmp = ISHFT(pack_tmp, -38)
   29436       517439 :          idata = idata + 1
   29437       517439 :          data_tmp = full_data(idata)
   29438       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29439       517439 :          data_tmp = IAND(data_tmp, mask_left(38))
   29440       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29441       517439 :          ipack = ipack + 1
   29442       517439 :          packed_data(ipack) = pack_tmp
   29443       517439 :          data_tmp = full_data(idata)
   29444       517439 :          pack_tmp = ISHFT(data_tmp, 63)
   29445       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29446       517439 :          idata = idata + 1
   29447       517439 :          data_tmp = full_data(idata)
   29448       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29449       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29450       517439 :          pack_tmp = ISHFT(pack_tmp, -24)
   29451       517439 :          idata = idata + 1
   29452       517439 :          data_tmp = full_data(idata)
   29453       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29454       517439 :          data_tmp = IAND(data_tmp, mask_left(24))
   29455       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29456       517439 :          ipack = ipack + 1
   29457       517439 :          packed_data(ipack) = pack_tmp
   29458       517439 :          data_tmp = full_data(idata)
   29459       517439 :          pack_tmp = ISHFT(data_tmp, 49)
   29460       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29461       517439 :          idata = idata + 1
   29462       517439 :          data_tmp = full_data(idata)
   29463       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29464       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29465       517439 :          pack_tmp = ISHFT(pack_tmp, -10)
   29466       517439 :          idata = idata + 1
   29467       517439 :          data_tmp = full_data(idata)
   29468       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29469       517439 :          data_tmp = IAND(data_tmp, mask_left(10))
   29470       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29471       517439 :          ipack = ipack + 1
   29472       517439 :          packed_data(ipack) = pack_tmp
   29473       517439 :          data_tmp = full_data(idata)
   29474       517439 :          pack_tmp = ISHFT(data_tmp, 35)
   29475       517439 :          pack_tmp = ISHFT(pack_tmp, -35)
   29476       517439 :          idata = idata + 1
   29477       517439 :          data_tmp = full_data(idata)
   29478       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29479       517439 :          data_tmp = IAND(data_tmp, mask_left(35))
   29480       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29481       517439 :          ipack = ipack + 1
   29482       517439 :          packed_data(ipack) = pack_tmp
   29483       517439 :          data_tmp = full_data(idata)
   29484       517439 :          pack_tmp = ISHFT(data_tmp, 60)
   29485       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29486       517439 :          idata = idata + 1
   29487       517439 :          data_tmp = full_data(idata)
   29488       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29489       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29490       517439 :          pack_tmp = ISHFT(pack_tmp, -21)
   29491       517439 :          idata = idata + 1
   29492       517439 :          data_tmp = full_data(idata)
   29493       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29494       517439 :          data_tmp = IAND(data_tmp, mask_left(21))
   29495       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29496       517439 :          ipack = ipack + 1
   29497       517439 :          packed_data(ipack) = pack_tmp
   29498       517439 :          data_tmp = full_data(idata)
   29499       517439 :          pack_tmp = ISHFT(data_tmp, 46)
   29500       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29501       517439 :          idata = idata + 1
   29502       517439 :          data_tmp = full_data(idata)
   29503       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29504       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29505       517439 :          pack_tmp = ISHFT(pack_tmp, -7)
   29506       517439 :          idata = idata + 1
   29507       517439 :          data_tmp = full_data(idata)
   29508       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29509       517439 :          data_tmp = IAND(data_tmp, mask_left(7))
   29510       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29511       517439 :          ipack = ipack + 1
   29512       517439 :          packed_data(ipack) = pack_tmp
   29513       517439 :          data_tmp = full_data(idata)
   29514       517439 :          pack_tmp = ISHFT(data_tmp, 32)
   29515       517439 :          pack_tmp = ISHFT(pack_tmp, -32)
   29516       517439 :          idata = idata + 1
   29517       517439 :          data_tmp = full_data(idata)
   29518       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29519       517439 :          data_tmp = IAND(data_tmp, mask_left(32))
   29520       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29521       517439 :          ipack = ipack + 1
   29522       517439 :          packed_data(ipack) = pack_tmp
   29523       517439 :          data_tmp = full_data(idata)
   29524       517439 :          pack_tmp = ISHFT(data_tmp, 57)
   29525       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29526       517439 :          idata = idata + 1
   29527       517439 :          data_tmp = full_data(idata)
   29528       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29529       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29530       517439 :          pack_tmp = ISHFT(pack_tmp, -18)
   29531       517439 :          idata = idata + 1
   29532       517439 :          data_tmp = full_data(idata)
   29533       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29534       517439 :          data_tmp = IAND(data_tmp, mask_left(18))
   29535       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29536       517439 :          ipack = ipack + 1
   29537       517439 :          packed_data(ipack) = pack_tmp
   29538       517439 :          data_tmp = full_data(idata)
   29539       517439 :          pack_tmp = ISHFT(data_tmp, 43)
   29540       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29541       517439 :          idata = idata + 1
   29542       517439 :          data_tmp = full_data(idata)
   29543       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29544       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29545       517439 :          pack_tmp = ISHFT(pack_tmp, -4)
   29546       517439 :          idata = idata + 1
   29547       517439 :          data_tmp = full_data(idata)
   29548       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29549       517439 :          data_tmp = IAND(data_tmp, mask_left(4))
   29550       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29551       517439 :          ipack = ipack + 1
   29552       517439 :          packed_data(ipack) = pack_tmp
   29553       517439 :          data_tmp = full_data(idata)
   29554       517439 :          pack_tmp = ISHFT(data_tmp, 29)
   29555       517439 :          pack_tmp = ISHFT(pack_tmp, -29)
   29556       517439 :          idata = idata + 1
   29557       517439 :          data_tmp = full_data(idata)
   29558       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29559       517439 :          data_tmp = IAND(data_tmp, mask_left(29))
   29560       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29561       517439 :          ipack = ipack + 1
   29562       517439 :          packed_data(ipack) = pack_tmp
   29563       517439 :          data_tmp = full_data(idata)
   29564       517439 :          pack_tmp = ISHFT(data_tmp, 54)
   29565       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29566       517439 :          idata = idata + 1
   29567       517439 :          data_tmp = full_data(idata)
   29568       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29569       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29570       517439 :          pack_tmp = ISHFT(pack_tmp, -15)
   29571       517439 :          idata = idata + 1
   29572       517439 :          data_tmp = full_data(idata)
   29573       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29574       517439 :          data_tmp = IAND(data_tmp, mask_left(15))
   29575       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29576       517439 :          ipack = ipack + 1
   29577       517439 :          packed_data(ipack) = pack_tmp
   29578       517439 :          data_tmp = full_data(idata)
   29579       517439 :          pack_tmp = ISHFT(data_tmp, 40)
   29580       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29581       517439 :          idata = idata + 1
   29582       517439 :          data_tmp = full_data(idata)
   29583       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29584       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29585       517439 :          pack_tmp = ISHFT(pack_tmp, -1)
   29586       517439 :          idata = idata + 1
   29587       517439 :          data_tmp = full_data(idata)
   29588       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29589       517439 :          data_tmp = IAND(data_tmp, mask_left(1))
   29590       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29591       517439 :          ipack = ipack + 1
   29592       517439 :          packed_data(ipack) = pack_tmp
   29593       517439 :          data_tmp = full_data(idata)
   29594       517439 :          pack_tmp = ISHFT(data_tmp, 26)
   29595       517439 :          pack_tmp = ISHFT(pack_tmp, -26)
   29596       517439 :          idata = idata + 1
   29597       517439 :          data_tmp = full_data(idata)
   29598       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29599       517439 :          data_tmp = IAND(data_tmp, mask_left(26))
   29600       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29601       517439 :          ipack = ipack + 1
   29602       517439 :          packed_data(ipack) = pack_tmp
   29603       517439 :          data_tmp = full_data(idata)
   29604       517439 :          pack_tmp = ISHFT(data_tmp, 51)
   29605       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29606       517439 :          idata = idata + 1
   29607       517439 :          data_tmp = full_data(idata)
   29608       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29609       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29610       517439 :          pack_tmp = ISHFT(pack_tmp, -12)
   29611       517439 :          idata = idata + 1
   29612       517439 :          data_tmp = full_data(idata)
   29613       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29614       517439 :          data_tmp = IAND(data_tmp, mask_left(12))
   29615       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29616       517439 :          ipack = ipack + 1
   29617       517439 :          packed_data(ipack) = pack_tmp
   29618       517439 :          data_tmp = full_data(idata)
   29619       517439 :          pack_tmp = ISHFT(data_tmp, 37)
   29620       517439 :          pack_tmp = ISHFT(pack_tmp, -37)
   29621       517439 :          idata = idata + 1
   29622       517439 :          data_tmp = full_data(idata)
   29623       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29624       517439 :          data_tmp = IAND(data_tmp, mask_left(37))
   29625       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29626       517439 :          ipack = ipack + 1
   29627       517439 :          packed_data(ipack) = pack_tmp
   29628       517439 :          data_tmp = full_data(idata)
   29629       517439 :          pack_tmp = ISHFT(data_tmp, 62)
   29630       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29631       517439 :          idata = idata + 1
   29632       517439 :          data_tmp = full_data(idata)
   29633       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29634       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29635       517439 :          pack_tmp = ISHFT(pack_tmp, -23)
   29636       517439 :          idata = idata + 1
   29637       517439 :          data_tmp = full_data(idata)
   29638       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29639       517439 :          data_tmp = IAND(data_tmp, mask_left(23))
   29640       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29641       517439 :          ipack = ipack + 1
   29642       517439 :          packed_data(ipack) = pack_tmp
   29643       517439 :          data_tmp = full_data(idata)
   29644       517439 :          pack_tmp = ISHFT(data_tmp, 48)
   29645       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29646       517439 :          idata = idata + 1
   29647       517439 :          data_tmp = full_data(idata)
   29648       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29649       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29650       517439 :          pack_tmp = ISHFT(pack_tmp, -9)
   29651       517439 :          idata = idata + 1
   29652       517439 :          data_tmp = full_data(idata)
   29653       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29654       517439 :          data_tmp = IAND(data_tmp, mask_left(9))
   29655       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29656       517439 :          ipack = ipack + 1
   29657       517439 :          packed_data(ipack) = pack_tmp
   29658       517439 :          data_tmp = full_data(idata)
   29659       517439 :          pack_tmp = ISHFT(data_tmp, 34)
   29660       517439 :          pack_tmp = ISHFT(pack_tmp, -34)
   29661       517439 :          idata = idata + 1
   29662       517439 :          data_tmp = full_data(idata)
   29663       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29664       517439 :          data_tmp = IAND(data_tmp, mask_left(34))
   29665       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29666       517439 :          ipack = ipack + 1
   29667       517439 :          packed_data(ipack) = pack_tmp
   29668       517439 :          data_tmp = full_data(idata)
   29669       517439 :          pack_tmp = ISHFT(data_tmp, 59)
   29670       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29671       517439 :          idata = idata + 1
   29672       517439 :          data_tmp = full_data(idata)
   29673       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29674       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29675       517439 :          pack_tmp = ISHFT(pack_tmp, -20)
   29676       517439 :          idata = idata + 1
   29677       517439 :          data_tmp = full_data(idata)
   29678       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29679       517439 :          data_tmp = IAND(data_tmp, mask_left(20))
   29680       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29681       517439 :          ipack = ipack + 1
   29682       517439 :          packed_data(ipack) = pack_tmp
   29683       517439 :          data_tmp = full_data(idata)
   29684       517439 :          pack_tmp = ISHFT(data_tmp, 45)
   29685       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29686       517439 :          idata = idata + 1
   29687       517439 :          data_tmp = full_data(idata)
   29688       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29689       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29690       517439 :          pack_tmp = ISHFT(pack_tmp, -6)
   29691       517439 :          idata = idata + 1
   29692       517439 :          data_tmp = full_data(idata)
   29693       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29694       517439 :          data_tmp = IAND(data_tmp, mask_left(6))
   29695       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29696       517439 :          ipack = ipack + 1
   29697       517439 :          packed_data(ipack) = pack_tmp
   29698       517439 :          data_tmp = full_data(idata)
   29699       517439 :          pack_tmp = ISHFT(data_tmp, 31)
   29700       517439 :          pack_tmp = ISHFT(pack_tmp, -31)
   29701       517439 :          idata = idata + 1
   29702       517439 :          data_tmp = full_data(idata)
   29703       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29704       517439 :          data_tmp = IAND(data_tmp, mask_left(31))
   29705       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29706       517439 :          ipack = ipack + 1
   29707       517439 :          packed_data(ipack) = pack_tmp
   29708       517439 :          data_tmp = full_data(idata)
   29709       517439 :          pack_tmp = ISHFT(data_tmp, 56)
   29710       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29711       517439 :          idata = idata + 1
   29712       517439 :          data_tmp = full_data(idata)
   29713       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29714       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29715       517439 :          pack_tmp = ISHFT(pack_tmp, -17)
   29716       517439 :          idata = idata + 1
   29717       517439 :          data_tmp = full_data(idata)
   29718       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29719       517439 :          data_tmp = IAND(data_tmp, mask_left(17))
   29720       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29721       517439 :          ipack = ipack + 1
   29722       517439 :          packed_data(ipack) = pack_tmp
   29723       517439 :          data_tmp = full_data(idata)
   29724       517439 :          pack_tmp = ISHFT(data_tmp, 42)
   29725       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29726       517439 :          idata = idata + 1
   29727       517439 :          data_tmp = full_data(idata)
   29728       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29729       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29730       517439 :          pack_tmp = ISHFT(pack_tmp, -3)
   29731       517439 :          idata = idata + 1
   29732       517439 :          data_tmp = full_data(idata)
   29733       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29734       517439 :          data_tmp = IAND(data_tmp, mask_left(3))
   29735       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29736       517439 :          ipack = ipack + 1
   29737       517439 :          packed_data(ipack) = pack_tmp
   29738       517439 :          data_tmp = full_data(idata)
   29739       517439 :          pack_tmp = ISHFT(data_tmp, 28)
   29740       517439 :          pack_tmp = ISHFT(pack_tmp, -28)
   29741       517439 :          idata = idata + 1
   29742       517439 :          data_tmp = full_data(idata)
   29743       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29744       517439 :          data_tmp = IAND(data_tmp, mask_left(28))
   29745       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29746       517439 :          ipack = ipack + 1
   29747       517439 :          packed_data(ipack) = pack_tmp
   29748       517439 :          data_tmp = full_data(idata)
   29749       517439 :          pack_tmp = ISHFT(data_tmp, 53)
   29750       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29751       517439 :          idata = idata + 1
   29752       517439 :          data_tmp = full_data(idata)
   29753       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29754       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29755       517439 :          pack_tmp = ISHFT(pack_tmp, -14)
   29756       517439 :          idata = idata + 1
   29757       517439 :          data_tmp = full_data(idata)
   29758       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29759       517439 :          data_tmp = IAND(data_tmp, mask_left(14))
   29760       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29761       517439 :          ipack = ipack + 1
   29762       517439 :          packed_data(ipack) = pack_tmp
   29763       517439 :          data_tmp = full_data(idata)
   29764       517439 :          pack_tmp = ISHFT(data_tmp, 39)
   29765       517439 :          pack_tmp = ISHFT(pack_tmp, -39)
   29766       517439 :          idata = idata + 1
   29767       517439 :          data_tmp = full_data(idata)
   29768       517439 :          data_tmp = ISHFT(data_tmp, 25)
   29769       517439 :          pack_tmp = IOR(pack_tmp, data_tmp)
   29770              :          pack_tmp = ISHFT(pack_tmp, 0)
   29771       517439 :          pack_tmp = ISHFT(pack_tmp, 0)
   29772       517439 :          ipack = ipack + 1
   29773       517759 :          packed_data(ipack) = pack_tmp
   29774              :       END DO
   29775        38172 :       IF (Ndata_rep < Ndata) THEN
   29776        10978 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   29777              :       END IF
   29778        38172 :    END SUBROUTINE ints2bits_39
   29779              : 
   29780              : ! **************************************************************************************************
   29781              : !> \brief ...
   29782              : !> \param Ndata ...
   29783              : !> \param packed_data ...
   29784              : !> \param full_data ...
   29785              : ! **************************************************************************************************
   29786       144913 :    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       144913 :       ipack = 0
   29797       144913 :       idata = 0
   29798       144913 :       pack_tmp = 0
   29799       144913 :       Ndata_rep = (Ndata/64)*64
   29800       144913 :       DO kdata = 1, Ndata_rep, 64
   29801      1997104 :          idata = idata + 1
   29802      1997104 :          data_tmp = ISHFT(pack_tmp, 39)
   29803      1997104 :          ipack = ipack + 1
   29804      1997104 :          pack_tmp = packed_data(ipack)
   29805      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   29806      1997104 :          pack_tmp = ISHFT(pack_tmp, -39)
   29807      1997104 :          idata = idata + 1
   29808      1997104 :          data_tmp = ISHFT(pack_tmp, 14)
   29809      1997104 :          ipack = ipack + 1
   29810      1997104 :          pack_tmp = packed_data(ipack)
   29811      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   29812      1997104 :          pack_tmp = ISHFT(pack_tmp, -14)
   29813      1997104 :          idata = idata + 1
   29814      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29815      1997104 :          full_data(idata) = data_tmp
   29816      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29817      1997104 :          idata = idata + 1
   29818      1997104 :          data_tmp = ISHFT(pack_tmp, 28)
   29819      1997104 :          ipack = ipack + 1
   29820      1997104 :          pack_tmp = packed_data(ipack)
   29821      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   29822      1997104 :          pack_tmp = ISHFT(pack_tmp, -28)
   29823      1997104 :          idata = idata + 1
   29824      1997104 :          data_tmp = ISHFT(pack_tmp, 3)
   29825      1997104 :          ipack = ipack + 1
   29826      1997104 :          pack_tmp = packed_data(ipack)
   29827      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   29828      1997104 :          pack_tmp = ISHFT(pack_tmp, -3)
   29829      1997104 :          idata = idata + 1
   29830      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29831      1997104 :          full_data(idata) = data_tmp
   29832      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29833      1997104 :          idata = idata + 1
   29834      1997104 :          data_tmp = ISHFT(pack_tmp, 17)
   29835      1997104 :          ipack = ipack + 1
   29836      1997104 :          pack_tmp = packed_data(ipack)
   29837      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   29838      1997104 :          pack_tmp = ISHFT(pack_tmp, -17)
   29839      1997104 :          idata = idata + 1
   29840      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29841      1997104 :          full_data(idata) = data_tmp
   29842      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29843      1997104 :          idata = idata + 1
   29844      1997104 :          data_tmp = ISHFT(pack_tmp, 31)
   29845      1997104 :          ipack = ipack + 1
   29846      1997104 :          pack_tmp = packed_data(ipack)
   29847      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   29848      1997104 :          pack_tmp = ISHFT(pack_tmp, -31)
   29849      1997104 :          idata = idata + 1
   29850      1997104 :          data_tmp = ISHFT(pack_tmp, 6)
   29851      1997104 :          ipack = ipack + 1
   29852      1997104 :          pack_tmp = packed_data(ipack)
   29853      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   29854      1997104 :          pack_tmp = ISHFT(pack_tmp, -6)
   29855      1997104 :          idata = idata + 1
   29856      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29857      1997104 :          full_data(idata) = data_tmp
   29858      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29859      1997104 :          idata = idata + 1
   29860      1997104 :          data_tmp = ISHFT(pack_tmp, 20)
   29861      1997104 :          ipack = ipack + 1
   29862      1997104 :          pack_tmp = packed_data(ipack)
   29863      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   29864      1997104 :          pack_tmp = ISHFT(pack_tmp, -20)
   29865      1997104 :          idata = idata + 1
   29866      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29867      1997104 :          full_data(idata) = data_tmp
   29868      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29869      1997104 :          idata = idata + 1
   29870      1997104 :          data_tmp = ISHFT(pack_tmp, 34)
   29871      1997104 :          ipack = ipack + 1
   29872      1997104 :          pack_tmp = packed_data(ipack)
   29873      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   29874      1997104 :          pack_tmp = ISHFT(pack_tmp, -34)
   29875      1997104 :          idata = idata + 1
   29876      1997104 :          data_tmp = ISHFT(pack_tmp, 9)
   29877      1997104 :          ipack = ipack + 1
   29878      1997104 :          pack_tmp = packed_data(ipack)
   29879      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   29880      1997104 :          pack_tmp = ISHFT(pack_tmp, -9)
   29881      1997104 :          idata = idata + 1
   29882      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29883      1997104 :          full_data(idata) = data_tmp
   29884      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29885      1997104 :          idata = idata + 1
   29886      1997104 :          data_tmp = ISHFT(pack_tmp, 23)
   29887      1997104 :          ipack = ipack + 1
   29888      1997104 :          pack_tmp = packed_data(ipack)
   29889      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   29890      1997104 :          pack_tmp = ISHFT(pack_tmp, -23)
   29891      1997104 :          idata = idata + 1
   29892      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29893      1997104 :          full_data(idata) = data_tmp
   29894      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29895      1997104 :          idata = idata + 1
   29896      1997104 :          data_tmp = ISHFT(pack_tmp, 37)
   29897      1997104 :          ipack = ipack + 1
   29898      1997104 :          pack_tmp = packed_data(ipack)
   29899      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   29900      1997104 :          pack_tmp = ISHFT(pack_tmp, -37)
   29901      1997104 :          idata = idata + 1
   29902      1997104 :          data_tmp = ISHFT(pack_tmp, 12)
   29903      1997104 :          ipack = ipack + 1
   29904      1997104 :          pack_tmp = packed_data(ipack)
   29905      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   29906      1997104 :          pack_tmp = ISHFT(pack_tmp, -12)
   29907      1997104 :          idata = idata + 1
   29908      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29909      1997104 :          full_data(idata) = data_tmp
   29910      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29911      1997104 :          idata = idata + 1
   29912      1997104 :          data_tmp = ISHFT(pack_tmp, 26)
   29913      1997104 :          ipack = ipack + 1
   29914      1997104 :          pack_tmp = packed_data(ipack)
   29915      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   29916      1997104 :          pack_tmp = ISHFT(pack_tmp, -26)
   29917      1997104 :          idata = idata + 1
   29918      1997104 :          data_tmp = ISHFT(pack_tmp, 1)
   29919      1997104 :          ipack = ipack + 1
   29920      1997104 :          pack_tmp = packed_data(ipack)
   29921      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   29922      1997104 :          pack_tmp = ISHFT(pack_tmp, -1)
   29923      1997104 :          idata = idata + 1
   29924      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29925      1997104 :          full_data(idata) = data_tmp
   29926      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29927      1997104 :          idata = idata + 1
   29928      1997104 :          data_tmp = ISHFT(pack_tmp, 15)
   29929      1997104 :          ipack = ipack + 1
   29930      1997104 :          pack_tmp = packed_data(ipack)
   29931      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   29932      1997104 :          pack_tmp = ISHFT(pack_tmp, -15)
   29933      1997104 :          idata = idata + 1
   29934      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29935      1997104 :          full_data(idata) = data_tmp
   29936      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29937      1997104 :          idata = idata + 1
   29938      1997104 :          data_tmp = ISHFT(pack_tmp, 29)
   29939      1997104 :          ipack = ipack + 1
   29940      1997104 :          pack_tmp = packed_data(ipack)
   29941      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   29942      1997104 :          pack_tmp = ISHFT(pack_tmp, -29)
   29943      1997104 :          idata = idata + 1
   29944      1997104 :          data_tmp = ISHFT(pack_tmp, 4)
   29945      1997104 :          ipack = ipack + 1
   29946      1997104 :          pack_tmp = packed_data(ipack)
   29947      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   29948      1997104 :          pack_tmp = ISHFT(pack_tmp, -4)
   29949      1997104 :          idata = idata + 1
   29950      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29951      1997104 :          full_data(idata) = data_tmp
   29952      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29953      1997104 :          idata = idata + 1
   29954      1997104 :          data_tmp = ISHFT(pack_tmp, 18)
   29955      1997104 :          ipack = ipack + 1
   29956      1997104 :          pack_tmp = packed_data(ipack)
   29957      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   29958      1997104 :          pack_tmp = ISHFT(pack_tmp, -18)
   29959      1997104 :          idata = idata + 1
   29960      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29961      1997104 :          full_data(idata) = data_tmp
   29962      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29963      1997104 :          idata = idata + 1
   29964      1997104 :          data_tmp = ISHFT(pack_tmp, 32)
   29965      1997104 :          ipack = ipack + 1
   29966      1997104 :          pack_tmp = packed_data(ipack)
   29967      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   29968      1997104 :          pack_tmp = ISHFT(pack_tmp, -32)
   29969      1997104 :          idata = idata + 1
   29970      1997104 :          data_tmp = ISHFT(pack_tmp, 7)
   29971      1997104 :          ipack = ipack + 1
   29972      1997104 :          pack_tmp = packed_data(ipack)
   29973      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   29974      1997104 :          pack_tmp = ISHFT(pack_tmp, -7)
   29975      1997104 :          idata = idata + 1
   29976      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29977      1997104 :          full_data(idata) = data_tmp
   29978      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29979      1997104 :          idata = idata + 1
   29980      1997104 :          data_tmp = ISHFT(pack_tmp, 21)
   29981      1997104 :          ipack = ipack + 1
   29982      1997104 :          pack_tmp = packed_data(ipack)
   29983      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   29984      1997104 :          pack_tmp = ISHFT(pack_tmp, -21)
   29985      1997104 :          idata = idata + 1
   29986      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   29987      1997104 :          full_data(idata) = data_tmp
   29988      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   29989      1997104 :          idata = idata + 1
   29990      1997104 :          data_tmp = ISHFT(pack_tmp, 35)
   29991      1997104 :          ipack = ipack + 1
   29992      1997104 :          pack_tmp = packed_data(ipack)
   29993      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   29994      1997104 :          pack_tmp = ISHFT(pack_tmp, -35)
   29995      1997104 :          idata = idata + 1
   29996      1997104 :          data_tmp = ISHFT(pack_tmp, 10)
   29997      1997104 :          ipack = ipack + 1
   29998      1997104 :          pack_tmp = packed_data(ipack)
   29999      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   30000      1997104 :          pack_tmp = ISHFT(pack_tmp, -10)
   30001      1997104 :          idata = idata + 1
   30002      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30003      1997104 :          full_data(idata) = data_tmp
   30004      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30005      1997104 :          idata = idata + 1
   30006      1997104 :          data_tmp = ISHFT(pack_tmp, 24)
   30007      1997104 :          ipack = ipack + 1
   30008      1997104 :          pack_tmp = packed_data(ipack)
   30009      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30010      1997104 :          pack_tmp = ISHFT(pack_tmp, -24)
   30011      1997104 :          idata = idata + 1
   30012      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30013      1997104 :          full_data(idata) = data_tmp
   30014      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30015      1997104 :          idata = idata + 1
   30016      1997104 :          data_tmp = ISHFT(pack_tmp, 38)
   30017      1997104 :          ipack = ipack + 1
   30018      1997104 :          pack_tmp = packed_data(ipack)
   30019      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   30020      1997104 :          pack_tmp = ISHFT(pack_tmp, -38)
   30021      1997104 :          idata = idata + 1
   30022      1997104 :          data_tmp = ISHFT(pack_tmp, 13)
   30023      1997104 :          ipack = ipack + 1
   30024      1997104 :          pack_tmp = packed_data(ipack)
   30025      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   30026      1997104 :          pack_tmp = ISHFT(pack_tmp, -13)
   30027      1997104 :          idata = idata + 1
   30028      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30029      1997104 :          full_data(idata) = data_tmp
   30030      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30031      1997104 :          idata = idata + 1
   30032      1997104 :          data_tmp = ISHFT(pack_tmp, 27)
   30033      1997104 :          ipack = ipack + 1
   30034      1997104 :          pack_tmp = packed_data(ipack)
   30035      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   30036      1997104 :          pack_tmp = ISHFT(pack_tmp, -27)
   30037      1997104 :          idata = idata + 1
   30038      1997104 :          data_tmp = ISHFT(pack_tmp, 2)
   30039      1997104 :          ipack = ipack + 1
   30040      1997104 :          pack_tmp = packed_data(ipack)
   30041      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   30042      1997104 :          pack_tmp = ISHFT(pack_tmp, -2)
   30043      1997104 :          idata = idata + 1
   30044      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30045      1997104 :          full_data(idata) = data_tmp
   30046      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30047      1997104 :          idata = idata + 1
   30048      1997104 :          data_tmp = ISHFT(pack_tmp, 16)
   30049      1997104 :          ipack = ipack + 1
   30050      1997104 :          pack_tmp = packed_data(ipack)
   30051      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30052      1997104 :          pack_tmp = ISHFT(pack_tmp, -16)
   30053      1997104 :          idata = idata + 1
   30054      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30055      1997104 :          full_data(idata) = data_tmp
   30056      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30057      1997104 :          idata = idata + 1
   30058      1997104 :          data_tmp = ISHFT(pack_tmp, 30)
   30059      1997104 :          ipack = ipack + 1
   30060      1997104 :          pack_tmp = packed_data(ipack)
   30061      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   30062      1997104 :          pack_tmp = ISHFT(pack_tmp, -30)
   30063      1997104 :          idata = idata + 1
   30064      1997104 :          data_tmp = ISHFT(pack_tmp, 5)
   30065      1997104 :          ipack = ipack + 1
   30066      1997104 :          pack_tmp = packed_data(ipack)
   30067      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   30068      1997104 :          pack_tmp = ISHFT(pack_tmp, -5)
   30069      1997104 :          idata = idata + 1
   30070      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30071      1997104 :          full_data(idata) = data_tmp
   30072      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30073      1997104 :          idata = idata + 1
   30074      1997104 :          data_tmp = ISHFT(pack_tmp, 19)
   30075      1997104 :          ipack = ipack + 1
   30076      1997104 :          pack_tmp = packed_data(ipack)
   30077      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   30078      1997104 :          pack_tmp = ISHFT(pack_tmp, -19)
   30079      1997104 :          idata = idata + 1
   30080      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30081      1997104 :          full_data(idata) = data_tmp
   30082      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30083      1997104 :          idata = idata + 1
   30084      1997104 :          data_tmp = ISHFT(pack_tmp, 33)
   30085      1997104 :          ipack = ipack + 1
   30086      1997104 :          pack_tmp = packed_data(ipack)
   30087      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   30088      1997104 :          pack_tmp = ISHFT(pack_tmp, -33)
   30089      1997104 :          idata = idata + 1
   30090      1997104 :          data_tmp = ISHFT(pack_tmp, 8)
   30091      1997104 :          ipack = ipack + 1
   30092      1997104 :          pack_tmp = packed_data(ipack)
   30093      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30094      1997104 :          pack_tmp = ISHFT(pack_tmp, -8)
   30095      1997104 :          idata = idata + 1
   30096      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30097      1997104 :          full_data(idata) = data_tmp
   30098      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30099      1997104 :          idata = idata + 1
   30100      1997104 :          data_tmp = ISHFT(pack_tmp, 22)
   30101      1997104 :          ipack = ipack + 1
   30102      1997104 :          pack_tmp = packed_data(ipack)
   30103      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   30104      1997104 :          pack_tmp = ISHFT(pack_tmp, -22)
   30105      1997104 :          idata = idata + 1
   30106      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30107      1997104 :          full_data(idata) = data_tmp
   30108      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30109      1997104 :          idata = idata + 1
   30110      1997104 :          data_tmp = ISHFT(pack_tmp, 36)
   30111      1997104 :          ipack = ipack + 1
   30112      1997104 :          pack_tmp = packed_data(ipack)
   30113      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   30114      1997104 :          pack_tmp = ISHFT(pack_tmp, -36)
   30115      1997104 :          idata = idata + 1
   30116      1997104 :          data_tmp = ISHFT(pack_tmp, 11)
   30117      1997104 :          ipack = ipack + 1
   30118      1997104 :          pack_tmp = packed_data(ipack)
   30119      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   30120      1997104 :          pack_tmp = ISHFT(pack_tmp, -11)
   30121      1997104 :          idata = idata + 1
   30122      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30123      1997104 :          full_data(idata) = data_tmp
   30124      1997104 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30125      1997104 :          idata = idata + 1
   30126      1997104 :          data_tmp = ISHFT(pack_tmp, 25)
   30127      1997104 :          ipack = ipack + 1
   30128      1997104 :          pack_tmp = packed_data(ipack)
   30129      1997104 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   30130      1997104 :          pack_tmp = ISHFT(pack_tmp, -25)
   30131      1997104 :          idata = idata + 1
   30132      1997104 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30133      1997104 :          full_data(idata) = data_tmp
   30134      1997680 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30135              :       END DO
   30136       144913 :       IF (Ndata_rep < Ndata) THEN
   30137        37824 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   30138              :       END IF
   30139       144913 :    END SUBROUTINE bits2ints_39
   30140              : 
   30141              : ! **************************************************************************************************
   30142              : !> \brief ...
   30143              : !> \param Ndata ...
   30144              : !> \param packed_data ...
   30145              : !> \param full_data ...
   30146              : ! **************************************************************************************************
   30147        40425 :    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        40425 :       idata = 0
   30158        40425 :       ipack = 0
   30159        40425 :       Ndata_rep = (Ndata/64)*64
   30160        40425 :       DO kdata = 1, Ndata_rep, 64
   30161       539654 :          pack_tmp = 0
   30162       539654 :          idata = idata + 1
   30163       539654 :          data_tmp = full_data(idata)
   30164       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30165       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30166       539654 :          pack_tmp = ISHFT(pack_tmp, -24)
   30167       539654 :          idata = idata + 1
   30168       539654 :          data_tmp = full_data(idata)
   30169       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30170       539654 :          data_tmp = IAND(data_tmp, mask_left(24))
   30171       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30172       539654 :          ipack = ipack + 1
   30173       539654 :          packed_data(ipack) = pack_tmp
   30174       539654 :          data_tmp = full_data(idata)
   30175       539654 :          pack_tmp = ISHFT(data_tmp, 48)
   30176       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30177       539654 :          idata = idata + 1
   30178       539654 :          data_tmp = full_data(idata)
   30179       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30180       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30181       539654 :          pack_tmp = ISHFT(pack_tmp, -8)
   30182       539654 :          idata = idata + 1
   30183       539654 :          data_tmp = full_data(idata)
   30184       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30185       539654 :          data_tmp = IAND(data_tmp, mask_left(8))
   30186       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30187       539654 :          ipack = ipack + 1
   30188       539654 :          packed_data(ipack) = pack_tmp
   30189       539654 :          data_tmp = full_data(idata)
   30190       539654 :          pack_tmp = ISHFT(data_tmp, 32)
   30191       539654 :          pack_tmp = ISHFT(pack_tmp, -32)
   30192       539654 :          idata = idata + 1
   30193       539654 :          data_tmp = full_data(idata)
   30194       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30195       539654 :          data_tmp = IAND(data_tmp, mask_left(32))
   30196       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30197       539654 :          ipack = ipack + 1
   30198       539654 :          packed_data(ipack) = pack_tmp
   30199       539654 :          data_tmp = full_data(idata)
   30200       539654 :          pack_tmp = ISHFT(data_tmp, 56)
   30201       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30202       539654 :          idata = idata + 1
   30203       539654 :          data_tmp = full_data(idata)
   30204       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30205       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30206       539654 :          pack_tmp = ISHFT(pack_tmp, -16)
   30207       539654 :          idata = idata + 1
   30208       539654 :          data_tmp = full_data(idata)
   30209       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30210       539654 :          data_tmp = IAND(data_tmp, mask_left(16))
   30211       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30212       539654 :          ipack = ipack + 1
   30213       539654 :          packed_data(ipack) = pack_tmp
   30214       539654 :          data_tmp = full_data(idata)
   30215       539654 :          pack_tmp = ISHFT(data_tmp, 40)
   30216       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30217       539654 :          idata = idata + 1
   30218       539654 :          data_tmp = full_data(idata)
   30219       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30220       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30221       539654 :          pack_tmp = ISHFT(pack_tmp, 0)
   30222       539654 :          idata = idata + 1
   30223       539654 :          data_tmp = full_data(idata)
   30224              :          data_tmp = ISHFT(data_tmp, 24)
   30225       539654 :          data_tmp = IAND(data_tmp, mask_left(0))
   30226       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30227       539654 :          ipack = ipack + 1
   30228       539654 :          packed_data(ipack) = pack_tmp
   30229       539654 :          data_tmp = full_data(idata)
   30230       539654 :          pack_tmp = ISHFT(data_tmp, 24)
   30231       539654 :          pack_tmp = ISHFT(pack_tmp, -24)
   30232       539654 :          idata = idata + 1
   30233       539654 :          data_tmp = full_data(idata)
   30234       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30235       539654 :          data_tmp = IAND(data_tmp, mask_left(24))
   30236       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30237       539654 :          ipack = ipack + 1
   30238       539654 :          packed_data(ipack) = pack_tmp
   30239       539654 :          data_tmp = full_data(idata)
   30240       539654 :          pack_tmp = ISHFT(data_tmp, 48)
   30241       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30242       539654 :          idata = idata + 1
   30243       539654 :          data_tmp = full_data(idata)
   30244       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30245       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30246       539654 :          pack_tmp = ISHFT(pack_tmp, -8)
   30247       539654 :          idata = idata + 1
   30248       539654 :          data_tmp = full_data(idata)
   30249       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30250       539654 :          data_tmp = IAND(data_tmp, mask_left(8))
   30251       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30252       539654 :          ipack = ipack + 1
   30253       539654 :          packed_data(ipack) = pack_tmp
   30254       539654 :          data_tmp = full_data(idata)
   30255       539654 :          pack_tmp = ISHFT(data_tmp, 32)
   30256       539654 :          pack_tmp = ISHFT(pack_tmp, -32)
   30257       539654 :          idata = idata + 1
   30258       539654 :          data_tmp = full_data(idata)
   30259       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30260       539654 :          data_tmp = IAND(data_tmp, mask_left(32))
   30261       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30262       539654 :          ipack = ipack + 1
   30263       539654 :          packed_data(ipack) = pack_tmp
   30264       539654 :          data_tmp = full_data(idata)
   30265       539654 :          pack_tmp = ISHFT(data_tmp, 56)
   30266       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30267       539654 :          idata = idata + 1
   30268       539654 :          data_tmp = full_data(idata)
   30269       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30270       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30271       539654 :          pack_tmp = ISHFT(pack_tmp, -16)
   30272       539654 :          idata = idata + 1
   30273       539654 :          data_tmp = full_data(idata)
   30274       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30275       539654 :          data_tmp = IAND(data_tmp, mask_left(16))
   30276       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30277       539654 :          ipack = ipack + 1
   30278       539654 :          packed_data(ipack) = pack_tmp
   30279       539654 :          data_tmp = full_data(idata)
   30280       539654 :          pack_tmp = ISHFT(data_tmp, 40)
   30281       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30282       539654 :          idata = idata + 1
   30283       539654 :          data_tmp = full_data(idata)
   30284       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30285       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30286       539654 :          pack_tmp = ISHFT(pack_tmp, 0)
   30287       539654 :          idata = idata + 1
   30288       539654 :          data_tmp = full_data(idata)
   30289              :          data_tmp = ISHFT(data_tmp, 24)
   30290       539654 :          data_tmp = IAND(data_tmp, mask_left(0))
   30291       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30292       539654 :          ipack = ipack + 1
   30293       539654 :          packed_data(ipack) = pack_tmp
   30294       539654 :          data_tmp = full_data(idata)
   30295       539654 :          pack_tmp = ISHFT(data_tmp, 24)
   30296       539654 :          pack_tmp = ISHFT(pack_tmp, -24)
   30297       539654 :          idata = idata + 1
   30298       539654 :          data_tmp = full_data(idata)
   30299       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30300       539654 :          data_tmp = IAND(data_tmp, mask_left(24))
   30301       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30302       539654 :          ipack = ipack + 1
   30303       539654 :          packed_data(ipack) = pack_tmp
   30304       539654 :          data_tmp = full_data(idata)
   30305       539654 :          pack_tmp = ISHFT(data_tmp, 48)
   30306       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30307       539654 :          idata = idata + 1
   30308       539654 :          data_tmp = full_data(idata)
   30309       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30310       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30311       539654 :          pack_tmp = ISHFT(pack_tmp, -8)
   30312       539654 :          idata = idata + 1
   30313       539654 :          data_tmp = full_data(idata)
   30314       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30315       539654 :          data_tmp = IAND(data_tmp, mask_left(8))
   30316       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30317       539654 :          ipack = ipack + 1
   30318       539654 :          packed_data(ipack) = pack_tmp
   30319       539654 :          data_tmp = full_data(idata)
   30320       539654 :          pack_tmp = ISHFT(data_tmp, 32)
   30321       539654 :          pack_tmp = ISHFT(pack_tmp, -32)
   30322       539654 :          idata = idata + 1
   30323       539654 :          data_tmp = full_data(idata)
   30324       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30325       539654 :          data_tmp = IAND(data_tmp, mask_left(32))
   30326       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30327       539654 :          ipack = ipack + 1
   30328       539654 :          packed_data(ipack) = pack_tmp
   30329       539654 :          data_tmp = full_data(idata)
   30330       539654 :          pack_tmp = ISHFT(data_tmp, 56)
   30331       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30332       539654 :          idata = idata + 1
   30333       539654 :          data_tmp = full_data(idata)
   30334       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30335       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30336       539654 :          pack_tmp = ISHFT(pack_tmp, -16)
   30337       539654 :          idata = idata + 1
   30338       539654 :          data_tmp = full_data(idata)
   30339       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30340       539654 :          data_tmp = IAND(data_tmp, mask_left(16))
   30341       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30342       539654 :          ipack = ipack + 1
   30343       539654 :          packed_data(ipack) = pack_tmp
   30344       539654 :          data_tmp = full_data(idata)
   30345       539654 :          pack_tmp = ISHFT(data_tmp, 40)
   30346       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30347       539654 :          idata = idata + 1
   30348       539654 :          data_tmp = full_data(idata)
   30349       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30350       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30351       539654 :          pack_tmp = ISHFT(pack_tmp, 0)
   30352       539654 :          idata = idata + 1
   30353       539654 :          data_tmp = full_data(idata)
   30354              :          data_tmp = ISHFT(data_tmp, 24)
   30355       539654 :          data_tmp = IAND(data_tmp, mask_left(0))
   30356       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30357       539654 :          ipack = ipack + 1
   30358       539654 :          packed_data(ipack) = pack_tmp
   30359       539654 :          data_tmp = full_data(idata)
   30360       539654 :          pack_tmp = ISHFT(data_tmp, 24)
   30361       539654 :          pack_tmp = ISHFT(pack_tmp, -24)
   30362       539654 :          idata = idata + 1
   30363       539654 :          data_tmp = full_data(idata)
   30364       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30365       539654 :          data_tmp = IAND(data_tmp, mask_left(24))
   30366       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30367       539654 :          ipack = ipack + 1
   30368       539654 :          packed_data(ipack) = pack_tmp
   30369       539654 :          data_tmp = full_data(idata)
   30370       539654 :          pack_tmp = ISHFT(data_tmp, 48)
   30371       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30372       539654 :          idata = idata + 1
   30373       539654 :          data_tmp = full_data(idata)
   30374       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30375       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30376       539654 :          pack_tmp = ISHFT(pack_tmp, -8)
   30377       539654 :          idata = idata + 1
   30378       539654 :          data_tmp = full_data(idata)
   30379       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30380       539654 :          data_tmp = IAND(data_tmp, mask_left(8))
   30381       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30382       539654 :          ipack = ipack + 1
   30383       539654 :          packed_data(ipack) = pack_tmp
   30384       539654 :          data_tmp = full_data(idata)
   30385       539654 :          pack_tmp = ISHFT(data_tmp, 32)
   30386       539654 :          pack_tmp = ISHFT(pack_tmp, -32)
   30387       539654 :          idata = idata + 1
   30388       539654 :          data_tmp = full_data(idata)
   30389       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30390       539654 :          data_tmp = IAND(data_tmp, mask_left(32))
   30391       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30392       539654 :          ipack = ipack + 1
   30393       539654 :          packed_data(ipack) = pack_tmp
   30394       539654 :          data_tmp = full_data(idata)
   30395       539654 :          pack_tmp = ISHFT(data_tmp, 56)
   30396       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30397       539654 :          idata = idata + 1
   30398       539654 :          data_tmp = full_data(idata)
   30399       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30400       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30401       539654 :          pack_tmp = ISHFT(pack_tmp, -16)
   30402       539654 :          idata = idata + 1
   30403       539654 :          data_tmp = full_data(idata)
   30404       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30405       539654 :          data_tmp = IAND(data_tmp, mask_left(16))
   30406       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30407       539654 :          ipack = ipack + 1
   30408       539654 :          packed_data(ipack) = pack_tmp
   30409       539654 :          data_tmp = full_data(idata)
   30410       539654 :          pack_tmp = ISHFT(data_tmp, 40)
   30411       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30412       539654 :          idata = idata + 1
   30413       539654 :          data_tmp = full_data(idata)
   30414       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30415       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30416       539654 :          pack_tmp = ISHFT(pack_tmp, 0)
   30417       539654 :          idata = idata + 1
   30418       539654 :          data_tmp = full_data(idata)
   30419              :          data_tmp = ISHFT(data_tmp, 24)
   30420       539654 :          data_tmp = IAND(data_tmp, mask_left(0))
   30421       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30422       539654 :          ipack = ipack + 1
   30423       539654 :          packed_data(ipack) = pack_tmp
   30424       539654 :          data_tmp = full_data(idata)
   30425       539654 :          pack_tmp = ISHFT(data_tmp, 24)
   30426       539654 :          pack_tmp = ISHFT(pack_tmp, -24)
   30427       539654 :          idata = idata + 1
   30428       539654 :          data_tmp = full_data(idata)
   30429       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30430       539654 :          data_tmp = IAND(data_tmp, mask_left(24))
   30431       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30432       539654 :          ipack = ipack + 1
   30433       539654 :          packed_data(ipack) = pack_tmp
   30434       539654 :          data_tmp = full_data(idata)
   30435       539654 :          pack_tmp = ISHFT(data_tmp, 48)
   30436       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30437       539654 :          idata = idata + 1
   30438       539654 :          data_tmp = full_data(idata)
   30439       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30440       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30441       539654 :          pack_tmp = ISHFT(pack_tmp, -8)
   30442       539654 :          idata = idata + 1
   30443       539654 :          data_tmp = full_data(idata)
   30444       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30445       539654 :          data_tmp = IAND(data_tmp, mask_left(8))
   30446       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30447       539654 :          ipack = ipack + 1
   30448       539654 :          packed_data(ipack) = pack_tmp
   30449       539654 :          data_tmp = full_data(idata)
   30450       539654 :          pack_tmp = ISHFT(data_tmp, 32)
   30451       539654 :          pack_tmp = ISHFT(pack_tmp, -32)
   30452       539654 :          idata = idata + 1
   30453       539654 :          data_tmp = full_data(idata)
   30454       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30455       539654 :          data_tmp = IAND(data_tmp, mask_left(32))
   30456       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30457       539654 :          ipack = ipack + 1
   30458       539654 :          packed_data(ipack) = pack_tmp
   30459       539654 :          data_tmp = full_data(idata)
   30460       539654 :          pack_tmp = ISHFT(data_tmp, 56)
   30461       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30462       539654 :          idata = idata + 1
   30463       539654 :          data_tmp = full_data(idata)
   30464       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30465       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30466       539654 :          pack_tmp = ISHFT(pack_tmp, -16)
   30467       539654 :          idata = idata + 1
   30468       539654 :          data_tmp = full_data(idata)
   30469       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30470       539654 :          data_tmp = IAND(data_tmp, mask_left(16))
   30471       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30472       539654 :          ipack = ipack + 1
   30473       539654 :          packed_data(ipack) = pack_tmp
   30474       539654 :          data_tmp = full_data(idata)
   30475       539654 :          pack_tmp = ISHFT(data_tmp, 40)
   30476       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30477       539654 :          idata = idata + 1
   30478       539654 :          data_tmp = full_data(idata)
   30479       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30480       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30481       539654 :          pack_tmp = ISHFT(pack_tmp, 0)
   30482       539654 :          idata = idata + 1
   30483       539654 :          data_tmp = full_data(idata)
   30484              :          data_tmp = ISHFT(data_tmp, 24)
   30485       539654 :          data_tmp = IAND(data_tmp, mask_left(0))
   30486       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30487       539654 :          ipack = ipack + 1
   30488       539654 :          packed_data(ipack) = pack_tmp
   30489       539654 :          data_tmp = full_data(idata)
   30490       539654 :          pack_tmp = ISHFT(data_tmp, 24)
   30491       539654 :          pack_tmp = ISHFT(pack_tmp, -24)
   30492       539654 :          idata = idata + 1
   30493       539654 :          data_tmp = full_data(idata)
   30494       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30495       539654 :          data_tmp = IAND(data_tmp, mask_left(24))
   30496       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30497       539654 :          ipack = ipack + 1
   30498       539654 :          packed_data(ipack) = pack_tmp
   30499       539654 :          data_tmp = full_data(idata)
   30500       539654 :          pack_tmp = ISHFT(data_tmp, 48)
   30501       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30502       539654 :          idata = idata + 1
   30503       539654 :          data_tmp = full_data(idata)
   30504       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30505       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30506       539654 :          pack_tmp = ISHFT(pack_tmp, -8)
   30507       539654 :          idata = idata + 1
   30508       539654 :          data_tmp = full_data(idata)
   30509       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30510       539654 :          data_tmp = IAND(data_tmp, mask_left(8))
   30511       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30512       539654 :          ipack = ipack + 1
   30513       539654 :          packed_data(ipack) = pack_tmp
   30514       539654 :          data_tmp = full_data(idata)
   30515       539654 :          pack_tmp = ISHFT(data_tmp, 32)
   30516       539654 :          pack_tmp = ISHFT(pack_tmp, -32)
   30517       539654 :          idata = idata + 1
   30518       539654 :          data_tmp = full_data(idata)
   30519       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30520       539654 :          data_tmp = IAND(data_tmp, mask_left(32))
   30521       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30522       539654 :          ipack = ipack + 1
   30523       539654 :          packed_data(ipack) = pack_tmp
   30524       539654 :          data_tmp = full_data(idata)
   30525       539654 :          pack_tmp = ISHFT(data_tmp, 56)
   30526       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30527       539654 :          idata = idata + 1
   30528       539654 :          data_tmp = full_data(idata)
   30529       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30530       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30531       539654 :          pack_tmp = ISHFT(pack_tmp, -16)
   30532       539654 :          idata = idata + 1
   30533       539654 :          data_tmp = full_data(idata)
   30534       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30535       539654 :          data_tmp = IAND(data_tmp, mask_left(16))
   30536       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30537       539654 :          ipack = ipack + 1
   30538       539654 :          packed_data(ipack) = pack_tmp
   30539       539654 :          data_tmp = full_data(idata)
   30540       539654 :          pack_tmp = ISHFT(data_tmp, 40)
   30541       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30542       539654 :          idata = idata + 1
   30543       539654 :          data_tmp = full_data(idata)
   30544       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30545       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30546       539654 :          pack_tmp = ISHFT(pack_tmp, 0)
   30547       539654 :          idata = idata + 1
   30548       539654 :          data_tmp = full_data(idata)
   30549              :          data_tmp = ISHFT(data_tmp, 24)
   30550       539654 :          data_tmp = IAND(data_tmp, mask_left(0))
   30551       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30552       539654 :          ipack = ipack + 1
   30553       539654 :          packed_data(ipack) = pack_tmp
   30554       539654 :          data_tmp = full_data(idata)
   30555       539654 :          pack_tmp = ISHFT(data_tmp, 24)
   30556       539654 :          pack_tmp = ISHFT(pack_tmp, -24)
   30557       539654 :          idata = idata + 1
   30558       539654 :          data_tmp = full_data(idata)
   30559       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30560       539654 :          data_tmp = IAND(data_tmp, mask_left(24))
   30561       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30562       539654 :          ipack = ipack + 1
   30563       539654 :          packed_data(ipack) = pack_tmp
   30564       539654 :          data_tmp = full_data(idata)
   30565       539654 :          pack_tmp = ISHFT(data_tmp, 48)
   30566       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30567       539654 :          idata = idata + 1
   30568       539654 :          data_tmp = full_data(idata)
   30569       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30570       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30571       539654 :          pack_tmp = ISHFT(pack_tmp, -8)
   30572       539654 :          idata = idata + 1
   30573       539654 :          data_tmp = full_data(idata)
   30574       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30575       539654 :          data_tmp = IAND(data_tmp, mask_left(8))
   30576       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30577       539654 :          ipack = ipack + 1
   30578       539654 :          packed_data(ipack) = pack_tmp
   30579       539654 :          data_tmp = full_data(idata)
   30580       539654 :          pack_tmp = ISHFT(data_tmp, 32)
   30581       539654 :          pack_tmp = ISHFT(pack_tmp, -32)
   30582       539654 :          idata = idata + 1
   30583       539654 :          data_tmp = full_data(idata)
   30584       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30585       539654 :          data_tmp = IAND(data_tmp, mask_left(32))
   30586       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30587       539654 :          ipack = ipack + 1
   30588       539654 :          packed_data(ipack) = pack_tmp
   30589       539654 :          data_tmp = full_data(idata)
   30590       539654 :          pack_tmp = ISHFT(data_tmp, 56)
   30591       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30592       539654 :          idata = idata + 1
   30593       539654 :          data_tmp = full_data(idata)
   30594       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30595       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30596       539654 :          pack_tmp = ISHFT(pack_tmp, -16)
   30597       539654 :          idata = idata + 1
   30598       539654 :          data_tmp = full_data(idata)
   30599       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30600       539654 :          data_tmp = IAND(data_tmp, mask_left(16))
   30601       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30602       539654 :          ipack = ipack + 1
   30603       539654 :          packed_data(ipack) = pack_tmp
   30604       539654 :          data_tmp = full_data(idata)
   30605       539654 :          pack_tmp = ISHFT(data_tmp, 40)
   30606       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30607       539654 :          idata = idata + 1
   30608       539654 :          data_tmp = full_data(idata)
   30609       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30610       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30611       539654 :          pack_tmp = ISHFT(pack_tmp, 0)
   30612       539654 :          idata = idata + 1
   30613       539654 :          data_tmp = full_data(idata)
   30614              :          data_tmp = ISHFT(data_tmp, 24)
   30615       539654 :          data_tmp = IAND(data_tmp, mask_left(0))
   30616       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30617       539654 :          ipack = ipack + 1
   30618       539654 :          packed_data(ipack) = pack_tmp
   30619       539654 :          data_tmp = full_data(idata)
   30620       539654 :          pack_tmp = ISHFT(data_tmp, 24)
   30621       539654 :          pack_tmp = ISHFT(pack_tmp, -24)
   30622       539654 :          idata = idata + 1
   30623       539654 :          data_tmp = full_data(idata)
   30624       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30625       539654 :          data_tmp = IAND(data_tmp, mask_left(24))
   30626       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30627       539654 :          ipack = ipack + 1
   30628       539654 :          packed_data(ipack) = pack_tmp
   30629       539654 :          data_tmp = full_data(idata)
   30630       539654 :          pack_tmp = ISHFT(data_tmp, 48)
   30631       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30632       539654 :          idata = idata + 1
   30633       539654 :          data_tmp = full_data(idata)
   30634       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30635       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30636       539654 :          pack_tmp = ISHFT(pack_tmp, -8)
   30637       539654 :          idata = idata + 1
   30638       539654 :          data_tmp = full_data(idata)
   30639       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30640       539654 :          data_tmp = IAND(data_tmp, mask_left(8))
   30641       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30642       539654 :          ipack = ipack + 1
   30643       539654 :          packed_data(ipack) = pack_tmp
   30644       539654 :          data_tmp = full_data(idata)
   30645       539654 :          pack_tmp = ISHFT(data_tmp, 32)
   30646       539654 :          pack_tmp = ISHFT(pack_tmp, -32)
   30647       539654 :          idata = idata + 1
   30648       539654 :          data_tmp = full_data(idata)
   30649       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30650       539654 :          data_tmp = IAND(data_tmp, mask_left(32))
   30651       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30652       539654 :          ipack = ipack + 1
   30653       539654 :          packed_data(ipack) = pack_tmp
   30654       539654 :          data_tmp = full_data(idata)
   30655       539654 :          pack_tmp = ISHFT(data_tmp, 56)
   30656       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30657       539654 :          idata = idata + 1
   30658       539654 :          data_tmp = full_data(idata)
   30659       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30660       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30661       539654 :          pack_tmp = ISHFT(pack_tmp, -16)
   30662       539654 :          idata = idata + 1
   30663       539654 :          data_tmp = full_data(idata)
   30664       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30665       539654 :          data_tmp = IAND(data_tmp, mask_left(16))
   30666       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30667       539654 :          ipack = ipack + 1
   30668       539654 :          packed_data(ipack) = pack_tmp
   30669       539654 :          data_tmp = full_data(idata)
   30670       539654 :          pack_tmp = ISHFT(data_tmp, 40)
   30671       539654 :          pack_tmp = ISHFT(pack_tmp, -40)
   30672       539654 :          idata = idata + 1
   30673       539654 :          data_tmp = full_data(idata)
   30674       539654 :          data_tmp = ISHFT(data_tmp, 24)
   30675       539654 :          pack_tmp = IOR(pack_tmp, data_tmp)
   30676              :          pack_tmp = ISHFT(pack_tmp, 0)
   30677       539654 :          pack_tmp = ISHFT(pack_tmp, 0)
   30678       539654 :          ipack = ipack + 1
   30679       540590 :          packed_data(ipack) = pack_tmp
   30680              :       END DO
   30681        40425 :       IF (Ndata_rep < Ndata) THEN
   30682        11988 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   30683              :       END IF
   30684        40425 :    END SUBROUTINE ints2bits_40
   30685              : 
   30686              : ! **************************************************************************************************
   30687              : !> \brief ...
   30688              : !> \param Ndata ...
   30689              : !> \param packed_data ...
   30690              : !> \param full_data ...
   30691              : ! **************************************************************************************************
   30692       153704 :    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       153704 :       ipack = 0
   30703       153704 :       idata = 0
   30704       153704 :       pack_tmp = 0
   30705       153704 :       Ndata_rep = (Ndata/64)*64
   30706       153704 :       DO kdata = 1, Ndata_rep, 64
   30707      2083026 :          idata = idata + 1
   30708      2083026 :          data_tmp = ISHFT(pack_tmp, 40)
   30709      2083026 :          ipack = ipack + 1
   30710      2083026 :          pack_tmp = packed_data(ipack)
   30711      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30712      2083026 :          pack_tmp = ISHFT(pack_tmp, -40)
   30713      2083026 :          idata = idata + 1
   30714      2083026 :          data_tmp = ISHFT(pack_tmp, 16)
   30715      2083026 :          ipack = ipack + 1
   30716      2083026 :          pack_tmp = packed_data(ipack)
   30717      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30718      2083026 :          pack_tmp = ISHFT(pack_tmp, -16)
   30719      2083026 :          idata = idata + 1
   30720      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30721      2083026 :          full_data(idata) = data_tmp
   30722      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30723      2083026 :          idata = idata + 1
   30724      2083026 :          data_tmp = ISHFT(pack_tmp, 32)
   30725      2083026 :          ipack = ipack + 1
   30726      2083026 :          pack_tmp = packed_data(ipack)
   30727      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30728      2083026 :          pack_tmp = ISHFT(pack_tmp, -32)
   30729      2083026 :          idata = idata + 1
   30730      2083026 :          data_tmp = ISHFT(pack_tmp, 8)
   30731      2083026 :          ipack = ipack + 1
   30732      2083026 :          pack_tmp = packed_data(ipack)
   30733      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30734      2083026 :          pack_tmp = ISHFT(pack_tmp, -8)
   30735      2083026 :          idata = idata + 1
   30736      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30737      2083026 :          full_data(idata) = data_tmp
   30738      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30739      2083026 :          idata = idata + 1
   30740      2083026 :          data_tmp = ISHFT(pack_tmp, 24)
   30741      2083026 :          ipack = ipack + 1
   30742      2083026 :          pack_tmp = packed_data(ipack)
   30743      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30744      2083026 :          pack_tmp = ISHFT(pack_tmp, -24)
   30745      2083026 :          idata = idata + 1
   30746      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30747      2083026 :          full_data(idata) = data_tmp
   30748      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30749      2083026 :          idata = idata + 1
   30750      2083026 :          data_tmp = ISHFT(pack_tmp, 40)
   30751      2083026 :          ipack = ipack + 1
   30752      2083026 :          pack_tmp = packed_data(ipack)
   30753      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30754      2083026 :          pack_tmp = ISHFT(pack_tmp, -40)
   30755      2083026 :          idata = idata + 1
   30756      2083026 :          data_tmp = ISHFT(pack_tmp, 16)
   30757      2083026 :          ipack = ipack + 1
   30758      2083026 :          pack_tmp = packed_data(ipack)
   30759      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30760      2083026 :          pack_tmp = ISHFT(pack_tmp, -16)
   30761      2083026 :          idata = idata + 1
   30762      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30763      2083026 :          full_data(idata) = data_tmp
   30764      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30765      2083026 :          idata = idata + 1
   30766      2083026 :          data_tmp = ISHFT(pack_tmp, 32)
   30767      2083026 :          ipack = ipack + 1
   30768      2083026 :          pack_tmp = packed_data(ipack)
   30769      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30770      2083026 :          pack_tmp = ISHFT(pack_tmp, -32)
   30771      2083026 :          idata = idata + 1
   30772      2083026 :          data_tmp = ISHFT(pack_tmp, 8)
   30773      2083026 :          ipack = ipack + 1
   30774      2083026 :          pack_tmp = packed_data(ipack)
   30775      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30776      2083026 :          pack_tmp = ISHFT(pack_tmp, -8)
   30777      2083026 :          idata = idata + 1
   30778      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30779      2083026 :          full_data(idata) = data_tmp
   30780      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30781      2083026 :          idata = idata + 1
   30782      2083026 :          data_tmp = ISHFT(pack_tmp, 24)
   30783      2083026 :          ipack = ipack + 1
   30784      2083026 :          pack_tmp = packed_data(ipack)
   30785      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30786      2083026 :          pack_tmp = ISHFT(pack_tmp, -24)
   30787      2083026 :          idata = idata + 1
   30788      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30789      2083026 :          full_data(idata) = data_tmp
   30790      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30791      2083026 :          idata = idata + 1
   30792      2083026 :          data_tmp = ISHFT(pack_tmp, 40)
   30793      2083026 :          ipack = ipack + 1
   30794      2083026 :          pack_tmp = packed_data(ipack)
   30795      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30796      2083026 :          pack_tmp = ISHFT(pack_tmp, -40)
   30797      2083026 :          idata = idata + 1
   30798      2083026 :          data_tmp = ISHFT(pack_tmp, 16)
   30799      2083026 :          ipack = ipack + 1
   30800      2083026 :          pack_tmp = packed_data(ipack)
   30801      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30802      2083026 :          pack_tmp = ISHFT(pack_tmp, -16)
   30803      2083026 :          idata = idata + 1
   30804      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30805      2083026 :          full_data(idata) = data_tmp
   30806      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30807      2083026 :          idata = idata + 1
   30808      2083026 :          data_tmp = ISHFT(pack_tmp, 32)
   30809      2083026 :          ipack = ipack + 1
   30810      2083026 :          pack_tmp = packed_data(ipack)
   30811      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30812      2083026 :          pack_tmp = ISHFT(pack_tmp, -32)
   30813      2083026 :          idata = idata + 1
   30814      2083026 :          data_tmp = ISHFT(pack_tmp, 8)
   30815      2083026 :          ipack = ipack + 1
   30816      2083026 :          pack_tmp = packed_data(ipack)
   30817      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30818      2083026 :          pack_tmp = ISHFT(pack_tmp, -8)
   30819      2083026 :          idata = idata + 1
   30820      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30821      2083026 :          full_data(idata) = data_tmp
   30822      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30823      2083026 :          idata = idata + 1
   30824      2083026 :          data_tmp = ISHFT(pack_tmp, 24)
   30825      2083026 :          ipack = ipack + 1
   30826      2083026 :          pack_tmp = packed_data(ipack)
   30827      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30828      2083026 :          pack_tmp = ISHFT(pack_tmp, -24)
   30829      2083026 :          idata = idata + 1
   30830      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30831      2083026 :          full_data(idata) = data_tmp
   30832      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30833      2083026 :          idata = idata + 1
   30834      2083026 :          data_tmp = ISHFT(pack_tmp, 40)
   30835      2083026 :          ipack = ipack + 1
   30836      2083026 :          pack_tmp = packed_data(ipack)
   30837      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30838      2083026 :          pack_tmp = ISHFT(pack_tmp, -40)
   30839      2083026 :          idata = idata + 1
   30840      2083026 :          data_tmp = ISHFT(pack_tmp, 16)
   30841      2083026 :          ipack = ipack + 1
   30842      2083026 :          pack_tmp = packed_data(ipack)
   30843      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30844      2083026 :          pack_tmp = ISHFT(pack_tmp, -16)
   30845      2083026 :          idata = idata + 1
   30846      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30847      2083026 :          full_data(idata) = data_tmp
   30848      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30849      2083026 :          idata = idata + 1
   30850      2083026 :          data_tmp = ISHFT(pack_tmp, 32)
   30851      2083026 :          ipack = ipack + 1
   30852      2083026 :          pack_tmp = packed_data(ipack)
   30853      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30854      2083026 :          pack_tmp = ISHFT(pack_tmp, -32)
   30855      2083026 :          idata = idata + 1
   30856      2083026 :          data_tmp = ISHFT(pack_tmp, 8)
   30857      2083026 :          ipack = ipack + 1
   30858      2083026 :          pack_tmp = packed_data(ipack)
   30859      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30860      2083026 :          pack_tmp = ISHFT(pack_tmp, -8)
   30861      2083026 :          idata = idata + 1
   30862      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30863      2083026 :          full_data(idata) = data_tmp
   30864      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30865      2083026 :          idata = idata + 1
   30866      2083026 :          data_tmp = ISHFT(pack_tmp, 24)
   30867      2083026 :          ipack = ipack + 1
   30868      2083026 :          pack_tmp = packed_data(ipack)
   30869      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30870      2083026 :          pack_tmp = ISHFT(pack_tmp, -24)
   30871      2083026 :          idata = idata + 1
   30872      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30873      2083026 :          full_data(idata) = data_tmp
   30874      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30875      2083026 :          idata = idata + 1
   30876      2083026 :          data_tmp = ISHFT(pack_tmp, 40)
   30877      2083026 :          ipack = ipack + 1
   30878      2083026 :          pack_tmp = packed_data(ipack)
   30879      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30880      2083026 :          pack_tmp = ISHFT(pack_tmp, -40)
   30881      2083026 :          idata = idata + 1
   30882      2083026 :          data_tmp = ISHFT(pack_tmp, 16)
   30883      2083026 :          ipack = ipack + 1
   30884      2083026 :          pack_tmp = packed_data(ipack)
   30885      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30886      2083026 :          pack_tmp = ISHFT(pack_tmp, -16)
   30887      2083026 :          idata = idata + 1
   30888      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30889      2083026 :          full_data(idata) = data_tmp
   30890      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30891      2083026 :          idata = idata + 1
   30892      2083026 :          data_tmp = ISHFT(pack_tmp, 32)
   30893      2083026 :          ipack = ipack + 1
   30894      2083026 :          pack_tmp = packed_data(ipack)
   30895      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30896      2083026 :          pack_tmp = ISHFT(pack_tmp, -32)
   30897      2083026 :          idata = idata + 1
   30898      2083026 :          data_tmp = ISHFT(pack_tmp, 8)
   30899      2083026 :          ipack = ipack + 1
   30900      2083026 :          pack_tmp = packed_data(ipack)
   30901      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30902      2083026 :          pack_tmp = ISHFT(pack_tmp, -8)
   30903      2083026 :          idata = idata + 1
   30904      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30905      2083026 :          full_data(idata) = data_tmp
   30906      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30907      2083026 :          idata = idata + 1
   30908      2083026 :          data_tmp = ISHFT(pack_tmp, 24)
   30909      2083026 :          ipack = ipack + 1
   30910      2083026 :          pack_tmp = packed_data(ipack)
   30911      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30912      2083026 :          pack_tmp = ISHFT(pack_tmp, -24)
   30913      2083026 :          idata = idata + 1
   30914      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30915      2083026 :          full_data(idata) = data_tmp
   30916      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30917      2083026 :          idata = idata + 1
   30918      2083026 :          data_tmp = ISHFT(pack_tmp, 40)
   30919      2083026 :          ipack = ipack + 1
   30920      2083026 :          pack_tmp = packed_data(ipack)
   30921      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30922      2083026 :          pack_tmp = ISHFT(pack_tmp, -40)
   30923      2083026 :          idata = idata + 1
   30924      2083026 :          data_tmp = ISHFT(pack_tmp, 16)
   30925      2083026 :          ipack = ipack + 1
   30926      2083026 :          pack_tmp = packed_data(ipack)
   30927      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30928      2083026 :          pack_tmp = ISHFT(pack_tmp, -16)
   30929      2083026 :          idata = idata + 1
   30930      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30931      2083026 :          full_data(idata) = data_tmp
   30932      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30933      2083026 :          idata = idata + 1
   30934      2083026 :          data_tmp = ISHFT(pack_tmp, 32)
   30935      2083026 :          ipack = ipack + 1
   30936      2083026 :          pack_tmp = packed_data(ipack)
   30937      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30938      2083026 :          pack_tmp = ISHFT(pack_tmp, -32)
   30939      2083026 :          idata = idata + 1
   30940      2083026 :          data_tmp = ISHFT(pack_tmp, 8)
   30941      2083026 :          ipack = ipack + 1
   30942      2083026 :          pack_tmp = packed_data(ipack)
   30943      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30944      2083026 :          pack_tmp = ISHFT(pack_tmp, -8)
   30945      2083026 :          idata = idata + 1
   30946      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30947      2083026 :          full_data(idata) = data_tmp
   30948      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30949      2083026 :          idata = idata + 1
   30950      2083026 :          data_tmp = ISHFT(pack_tmp, 24)
   30951      2083026 :          ipack = ipack + 1
   30952      2083026 :          pack_tmp = packed_data(ipack)
   30953      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30954      2083026 :          pack_tmp = ISHFT(pack_tmp, -24)
   30955      2083026 :          idata = idata + 1
   30956      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30957      2083026 :          full_data(idata) = data_tmp
   30958      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30959      2083026 :          idata = idata + 1
   30960      2083026 :          data_tmp = ISHFT(pack_tmp, 40)
   30961      2083026 :          ipack = ipack + 1
   30962      2083026 :          pack_tmp = packed_data(ipack)
   30963      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   30964      2083026 :          pack_tmp = ISHFT(pack_tmp, -40)
   30965      2083026 :          idata = idata + 1
   30966      2083026 :          data_tmp = ISHFT(pack_tmp, 16)
   30967      2083026 :          ipack = ipack + 1
   30968      2083026 :          pack_tmp = packed_data(ipack)
   30969      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   30970      2083026 :          pack_tmp = ISHFT(pack_tmp, -16)
   30971      2083026 :          idata = idata + 1
   30972      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30973      2083026 :          full_data(idata) = data_tmp
   30974      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30975      2083026 :          idata = idata + 1
   30976      2083026 :          data_tmp = ISHFT(pack_tmp, 32)
   30977      2083026 :          ipack = ipack + 1
   30978      2083026 :          pack_tmp = packed_data(ipack)
   30979      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   30980      2083026 :          pack_tmp = ISHFT(pack_tmp, -32)
   30981      2083026 :          idata = idata + 1
   30982      2083026 :          data_tmp = ISHFT(pack_tmp, 8)
   30983      2083026 :          ipack = ipack + 1
   30984      2083026 :          pack_tmp = packed_data(ipack)
   30985      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   30986      2083026 :          pack_tmp = ISHFT(pack_tmp, -8)
   30987      2083026 :          idata = idata + 1
   30988      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30989      2083026 :          full_data(idata) = data_tmp
   30990      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   30991      2083026 :          idata = idata + 1
   30992      2083026 :          data_tmp = ISHFT(pack_tmp, 24)
   30993      2083026 :          ipack = ipack + 1
   30994      2083026 :          pack_tmp = packed_data(ipack)
   30995      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   30996      2083026 :          pack_tmp = ISHFT(pack_tmp, -24)
   30997      2083026 :          idata = idata + 1
   30998      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   30999      2083026 :          full_data(idata) = data_tmp
   31000      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31001      2083026 :          idata = idata + 1
   31002      2083026 :          data_tmp = ISHFT(pack_tmp, 40)
   31003      2083026 :          ipack = ipack + 1
   31004      2083026 :          pack_tmp = packed_data(ipack)
   31005      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   31006      2083026 :          pack_tmp = ISHFT(pack_tmp, -40)
   31007      2083026 :          idata = idata + 1
   31008      2083026 :          data_tmp = ISHFT(pack_tmp, 16)
   31009      2083026 :          ipack = ipack + 1
   31010      2083026 :          pack_tmp = packed_data(ipack)
   31011      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   31012      2083026 :          pack_tmp = ISHFT(pack_tmp, -16)
   31013      2083026 :          idata = idata + 1
   31014      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31015      2083026 :          full_data(idata) = data_tmp
   31016      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31017      2083026 :          idata = idata + 1
   31018      2083026 :          data_tmp = ISHFT(pack_tmp, 32)
   31019      2083026 :          ipack = ipack + 1
   31020      2083026 :          pack_tmp = packed_data(ipack)
   31021      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   31022      2083026 :          pack_tmp = ISHFT(pack_tmp, -32)
   31023      2083026 :          idata = idata + 1
   31024      2083026 :          data_tmp = ISHFT(pack_tmp, 8)
   31025      2083026 :          ipack = ipack + 1
   31026      2083026 :          pack_tmp = packed_data(ipack)
   31027      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   31028      2083026 :          pack_tmp = ISHFT(pack_tmp, -8)
   31029      2083026 :          idata = idata + 1
   31030      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31031      2083026 :          full_data(idata) = data_tmp
   31032      2083026 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31033      2083026 :          idata = idata + 1
   31034      2083026 :          data_tmp = ISHFT(pack_tmp, 24)
   31035      2083026 :          ipack = ipack + 1
   31036      2083026 :          pack_tmp = packed_data(ipack)
   31037      2083026 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   31038      2083026 :          pack_tmp = ISHFT(pack_tmp, -24)
   31039      2083026 :          idata = idata + 1
   31040      2083026 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31041      2083026 :          full_data(idata) = data_tmp
   31042      2084843 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31043              :       END DO
   31044       153704 :       IF (Ndata_rep < Ndata) THEN
   31045        43164 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31046              :       END IF
   31047       153704 :    END SUBROUTINE bits2ints_40
   31048              : 
   31049              : ! **************************************************************************************************
   31050              : !> \brief ...
   31051              : !> \param Ndata ...
   31052              : !> \param packed_data ...
   31053              : !> \param full_data ...
   31054              : ! **************************************************************************************************
   31055        33145 :    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        33145 :       idata = 0
   31066        33145 :       ipack = 0
   31067        33145 :       Ndata_rep = (Ndata/64)*64
   31068        33145 :       DO kdata = 1, Ndata_rep, 64
   31069       470138 :          pack_tmp = 0
   31070       470138 :          idata = idata + 1
   31071       470138 :          data_tmp = full_data(idata)
   31072       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31073       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31074       470138 :          pack_tmp = ISHFT(pack_tmp, -23)
   31075       470138 :          idata = idata + 1
   31076       470138 :          data_tmp = full_data(idata)
   31077       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31078       470138 :          data_tmp = IAND(data_tmp, mask_left(23))
   31079       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31080       470138 :          ipack = ipack + 1
   31081       470138 :          packed_data(ipack) = pack_tmp
   31082       470138 :          data_tmp = full_data(idata)
   31083       470138 :          pack_tmp = ISHFT(data_tmp, 46)
   31084       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31085       470138 :          idata = idata + 1
   31086       470138 :          data_tmp = full_data(idata)
   31087       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31088       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31089       470138 :          pack_tmp = ISHFT(pack_tmp, -5)
   31090       470138 :          idata = idata + 1
   31091       470138 :          data_tmp = full_data(idata)
   31092       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31093       470138 :          data_tmp = IAND(data_tmp, mask_left(5))
   31094       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31095       470138 :          ipack = ipack + 1
   31096       470138 :          packed_data(ipack) = pack_tmp
   31097       470138 :          data_tmp = full_data(idata)
   31098       470138 :          pack_tmp = ISHFT(data_tmp, 28)
   31099       470138 :          pack_tmp = ISHFT(pack_tmp, -28)
   31100       470138 :          idata = idata + 1
   31101       470138 :          data_tmp = full_data(idata)
   31102       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31103       470138 :          data_tmp = IAND(data_tmp, mask_left(28))
   31104       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31105       470138 :          ipack = ipack + 1
   31106       470138 :          packed_data(ipack) = pack_tmp
   31107       470138 :          data_tmp = full_data(idata)
   31108       470138 :          pack_tmp = ISHFT(data_tmp, 51)
   31109       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31110       470138 :          idata = idata + 1
   31111       470138 :          data_tmp = full_data(idata)
   31112       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31113       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31114       470138 :          pack_tmp = ISHFT(pack_tmp, -10)
   31115       470138 :          idata = idata + 1
   31116       470138 :          data_tmp = full_data(idata)
   31117       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31118       470138 :          data_tmp = IAND(data_tmp, mask_left(10))
   31119       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31120       470138 :          ipack = ipack + 1
   31121       470138 :          packed_data(ipack) = pack_tmp
   31122       470138 :          data_tmp = full_data(idata)
   31123       470138 :          pack_tmp = ISHFT(data_tmp, 33)
   31124       470138 :          pack_tmp = ISHFT(pack_tmp, -33)
   31125       470138 :          idata = idata + 1
   31126       470138 :          data_tmp = full_data(idata)
   31127       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31128       470138 :          data_tmp = IAND(data_tmp, mask_left(33))
   31129       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31130       470138 :          ipack = ipack + 1
   31131       470138 :          packed_data(ipack) = pack_tmp
   31132       470138 :          data_tmp = full_data(idata)
   31133       470138 :          pack_tmp = ISHFT(data_tmp, 56)
   31134       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31135       470138 :          idata = idata + 1
   31136       470138 :          data_tmp = full_data(idata)
   31137       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31138       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31139       470138 :          pack_tmp = ISHFT(pack_tmp, -15)
   31140       470138 :          idata = idata + 1
   31141       470138 :          data_tmp = full_data(idata)
   31142       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31143       470138 :          data_tmp = IAND(data_tmp, mask_left(15))
   31144       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31145       470138 :          ipack = ipack + 1
   31146       470138 :          packed_data(ipack) = pack_tmp
   31147       470138 :          data_tmp = full_data(idata)
   31148       470138 :          pack_tmp = ISHFT(data_tmp, 38)
   31149       470138 :          pack_tmp = ISHFT(pack_tmp, -38)
   31150       470138 :          idata = idata + 1
   31151       470138 :          data_tmp = full_data(idata)
   31152       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31153       470138 :          data_tmp = IAND(data_tmp, mask_left(38))
   31154       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31155       470138 :          ipack = ipack + 1
   31156       470138 :          packed_data(ipack) = pack_tmp
   31157       470138 :          data_tmp = full_data(idata)
   31158       470138 :          pack_tmp = ISHFT(data_tmp, 61)
   31159       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31160       470138 :          idata = idata + 1
   31161       470138 :          data_tmp = full_data(idata)
   31162       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31163       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31164       470138 :          pack_tmp = ISHFT(pack_tmp, -20)
   31165       470138 :          idata = idata + 1
   31166       470138 :          data_tmp = full_data(idata)
   31167       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31168       470138 :          data_tmp = IAND(data_tmp, mask_left(20))
   31169       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31170       470138 :          ipack = ipack + 1
   31171       470138 :          packed_data(ipack) = pack_tmp
   31172       470138 :          data_tmp = full_data(idata)
   31173       470138 :          pack_tmp = ISHFT(data_tmp, 43)
   31174       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31175       470138 :          idata = idata + 1
   31176       470138 :          data_tmp = full_data(idata)
   31177       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31178       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31179       470138 :          pack_tmp = ISHFT(pack_tmp, -2)
   31180       470138 :          idata = idata + 1
   31181       470138 :          data_tmp = full_data(idata)
   31182       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31183       470138 :          data_tmp = IAND(data_tmp, mask_left(2))
   31184       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31185       470138 :          ipack = ipack + 1
   31186       470138 :          packed_data(ipack) = pack_tmp
   31187       470138 :          data_tmp = full_data(idata)
   31188       470138 :          pack_tmp = ISHFT(data_tmp, 25)
   31189       470138 :          pack_tmp = ISHFT(pack_tmp, -25)
   31190       470138 :          idata = idata + 1
   31191       470138 :          data_tmp = full_data(idata)
   31192       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31193       470138 :          data_tmp = IAND(data_tmp, mask_left(25))
   31194       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31195       470138 :          ipack = ipack + 1
   31196       470138 :          packed_data(ipack) = pack_tmp
   31197       470138 :          data_tmp = full_data(idata)
   31198       470138 :          pack_tmp = ISHFT(data_tmp, 48)
   31199       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31200       470138 :          idata = idata + 1
   31201       470138 :          data_tmp = full_data(idata)
   31202       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31203       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31204       470138 :          pack_tmp = ISHFT(pack_tmp, -7)
   31205       470138 :          idata = idata + 1
   31206       470138 :          data_tmp = full_data(idata)
   31207       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31208       470138 :          data_tmp = IAND(data_tmp, mask_left(7))
   31209       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31210       470138 :          ipack = ipack + 1
   31211       470138 :          packed_data(ipack) = pack_tmp
   31212       470138 :          data_tmp = full_data(idata)
   31213       470138 :          pack_tmp = ISHFT(data_tmp, 30)
   31214       470138 :          pack_tmp = ISHFT(pack_tmp, -30)
   31215       470138 :          idata = idata + 1
   31216       470138 :          data_tmp = full_data(idata)
   31217       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31218       470138 :          data_tmp = IAND(data_tmp, mask_left(30))
   31219       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31220       470138 :          ipack = ipack + 1
   31221       470138 :          packed_data(ipack) = pack_tmp
   31222       470138 :          data_tmp = full_data(idata)
   31223       470138 :          pack_tmp = ISHFT(data_tmp, 53)
   31224       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31225       470138 :          idata = idata + 1
   31226       470138 :          data_tmp = full_data(idata)
   31227       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31228       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31229       470138 :          pack_tmp = ISHFT(pack_tmp, -12)
   31230       470138 :          idata = idata + 1
   31231       470138 :          data_tmp = full_data(idata)
   31232       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31233       470138 :          data_tmp = IAND(data_tmp, mask_left(12))
   31234       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31235       470138 :          ipack = ipack + 1
   31236       470138 :          packed_data(ipack) = pack_tmp
   31237       470138 :          data_tmp = full_data(idata)
   31238       470138 :          pack_tmp = ISHFT(data_tmp, 35)
   31239       470138 :          pack_tmp = ISHFT(pack_tmp, -35)
   31240       470138 :          idata = idata + 1
   31241       470138 :          data_tmp = full_data(idata)
   31242       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31243       470138 :          data_tmp = IAND(data_tmp, mask_left(35))
   31244       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31245       470138 :          ipack = ipack + 1
   31246       470138 :          packed_data(ipack) = pack_tmp
   31247       470138 :          data_tmp = full_data(idata)
   31248       470138 :          pack_tmp = ISHFT(data_tmp, 58)
   31249       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31250       470138 :          idata = idata + 1
   31251       470138 :          data_tmp = full_data(idata)
   31252       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31253       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31254       470138 :          pack_tmp = ISHFT(pack_tmp, -17)
   31255       470138 :          idata = idata + 1
   31256       470138 :          data_tmp = full_data(idata)
   31257       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31258       470138 :          data_tmp = IAND(data_tmp, mask_left(17))
   31259       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31260       470138 :          ipack = ipack + 1
   31261       470138 :          packed_data(ipack) = pack_tmp
   31262       470138 :          data_tmp = full_data(idata)
   31263       470138 :          pack_tmp = ISHFT(data_tmp, 40)
   31264       470138 :          pack_tmp = ISHFT(pack_tmp, -40)
   31265       470138 :          idata = idata + 1
   31266       470138 :          data_tmp = full_data(idata)
   31267       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31268       470138 :          data_tmp = IAND(data_tmp, mask_left(40))
   31269       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31270       470138 :          ipack = ipack + 1
   31271       470138 :          packed_data(ipack) = pack_tmp
   31272       470138 :          data_tmp = full_data(idata)
   31273       470138 :          pack_tmp = ISHFT(data_tmp, 63)
   31274       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31275       470138 :          idata = idata + 1
   31276       470138 :          data_tmp = full_data(idata)
   31277       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31278       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31279       470138 :          pack_tmp = ISHFT(pack_tmp, -22)
   31280       470138 :          idata = idata + 1
   31281       470138 :          data_tmp = full_data(idata)
   31282       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31283       470138 :          data_tmp = IAND(data_tmp, mask_left(22))
   31284       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31285       470138 :          ipack = ipack + 1
   31286       470138 :          packed_data(ipack) = pack_tmp
   31287       470138 :          data_tmp = full_data(idata)
   31288       470138 :          pack_tmp = ISHFT(data_tmp, 45)
   31289       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31290       470138 :          idata = idata + 1
   31291       470138 :          data_tmp = full_data(idata)
   31292       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31293       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31294       470138 :          pack_tmp = ISHFT(pack_tmp, -4)
   31295       470138 :          idata = idata + 1
   31296       470138 :          data_tmp = full_data(idata)
   31297       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31298       470138 :          data_tmp = IAND(data_tmp, mask_left(4))
   31299       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31300       470138 :          ipack = ipack + 1
   31301       470138 :          packed_data(ipack) = pack_tmp
   31302       470138 :          data_tmp = full_data(idata)
   31303       470138 :          pack_tmp = ISHFT(data_tmp, 27)
   31304       470138 :          pack_tmp = ISHFT(pack_tmp, -27)
   31305       470138 :          idata = idata + 1
   31306       470138 :          data_tmp = full_data(idata)
   31307       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31308       470138 :          data_tmp = IAND(data_tmp, mask_left(27))
   31309       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31310       470138 :          ipack = ipack + 1
   31311       470138 :          packed_data(ipack) = pack_tmp
   31312       470138 :          data_tmp = full_data(idata)
   31313       470138 :          pack_tmp = ISHFT(data_tmp, 50)
   31314       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31315       470138 :          idata = idata + 1
   31316       470138 :          data_tmp = full_data(idata)
   31317       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31318       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31319       470138 :          pack_tmp = ISHFT(pack_tmp, -9)
   31320       470138 :          idata = idata + 1
   31321       470138 :          data_tmp = full_data(idata)
   31322       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31323       470138 :          data_tmp = IAND(data_tmp, mask_left(9))
   31324       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31325       470138 :          ipack = ipack + 1
   31326       470138 :          packed_data(ipack) = pack_tmp
   31327       470138 :          data_tmp = full_data(idata)
   31328       470138 :          pack_tmp = ISHFT(data_tmp, 32)
   31329       470138 :          pack_tmp = ISHFT(pack_tmp, -32)
   31330       470138 :          idata = idata + 1
   31331       470138 :          data_tmp = full_data(idata)
   31332       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31333       470138 :          data_tmp = IAND(data_tmp, mask_left(32))
   31334       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31335       470138 :          ipack = ipack + 1
   31336       470138 :          packed_data(ipack) = pack_tmp
   31337       470138 :          data_tmp = full_data(idata)
   31338       470138 :          pack_tmp = ISHFT(data_tmp, 55)
   31339       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31340       470138 :          idata = idata + 1
   31341       470138 :          data_tmp = full_data(idata)
   31342       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31343       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31344       470138 :          pack_tmp = ISHFT(pack_tmp, -14)
   31345       470138 :          idata = idata + 1
   31346       470138 :          data_tmp = full_data(idata)
   31347       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31348       470138 :          data_tmp = IAND(data_tmp, mask_left(14))
   31349       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31350       470138 :          ipack = ipack + 1
   31351       470138 :          packed_data(ipack) = pack_tmp
   31352       470138 :          data_tmp = full_data(idata)
   31353       470138 :          pack_tmp = ISHFT(data_tmp, 37)
   31354       470138 :          pack_tmp = ISHFT(pack_tmp, -37)
   31355       470138 :          idata = idata + 1
   31356       470138 :          data_tmp = full_data(idata)
   31357       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31358       470138 :          data_tmp = IAND(data_tmp, mask_left(37))
   31359       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31360       470138 :          ipack = ipack + 1
   31361       470138 :          packed_data(ipack) = pack_tmp
   31362       470138 :          data_tmp = full_data(idata)
   31363       470138 :          pack_tmp = ISHFT(data_tmp, 60)
   31364       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31365       470138 :          idata = idata + 1
   31366       470138 :          data_tmp = full_data(idata)
   31367       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31368       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31369       470138 :          pack_tmp = ISHFT(pack_tmp, -19)
   31370       470138 :          idata = idata + 1
   31371       470138 :          data_tmp = full_data(idata)
   31372       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31373       470138 :          data_tmp = IAND(data_tmp, mask_left(19))
   31374       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31375       470138 :          ipack = ipack + 1
   31376       470138 :          packed_data(ipack) = pack_tmp
   31377       470138 :          data_tmp = full_data(idata)
   31378       470138 :          pack_tmp = ISHFT(data_tmp, 42)
   31379       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31380       470138 :          idata = idata + 1
   31381       470138 :          data_tmp = full_data(idata)
   31382       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31383       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31384       470138 :          pack_tmp = ISHFT(pack_tmp, -1)
   31385       470138 :          idata = idata + 1
   31386       470138 :          data_tmp = full_data(idata)
   31387       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31388       470138 :          data_tmp = IAND(data_tmp, mask_left(1))
   31389       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31390       470138 :          ipack = ipack + 1
   31391       470138 :          packed_data(ipack) = pack_tmp
   31392       470138 :          data_tmp = full_data(idata)
   31393       470138 :          pack_tmp = ISHFT(data_tmp, 24)
   31394       470138 :          pack_tmp = ISHFT(pack_tmp, -24)
   31395       470138 :          idata = idata + 1
   31396       470138 :          data_tmp = full_data(idata)
   31397       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31398       470138 :          data_tmp = IAND(data_tmp, mask_left(24))
   31399       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31400       470138 :          ipack = ipack + 1
   31401       470138 :          packed_data(ipack) = pack_tmp
   31402       470138 :          data_tmp = full_data(idata)
   31403       470138 :          pack_tmp = ISHFT(data_tmp, 47)
   31404       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31405       470138 :          idata = idata + 1
   31406       470138 :          data_tmp = full_data(idata)
   31407       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31408       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31409       470138 :          pack_tmp = ISHFT(pack_tmp, -6)
   31410       470138 :          idata = idata + 1
   31411       470138 :          data_tmp = full_data(idata)
   31412       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31413       470138 :          data_tmp = IAND(data_tmp, mask_left(6))
   31414       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31415       470138 :          ipack = ipack + 1
   31416       470138 :          packed_data(ipack) = pack_tmp
   31417       470138 :          data_tmp = full_data(idata)
   31418       470138 :          pack_tmp = ISHFT(data_tmp, 29)
   31419       470138 :          pack_tmp = ISHFT(pack_tmp, -29)
   31420       470138 :          idata = idata + 1
   31421       470138 :          data_tmp = full_data(idata)
   31422       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31423       470138 :          data_tmp = IAND(data_tmp, mask_left(29))
   31424       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31425       470138 :          ipack = ipack + 1
   31426       470138 :          packed_data(ipack) = pack_tmp
   31427       470138 :          data_tmp = full_data(idata)
   31428       470138 :          pack_tmp = ISHFT(data_tmp, 52)
   31429       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31430       470138 :          idata = idata + 1
   31431       470138 :          data_tmp = full_data(idata)
   31432       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31433       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31434       470138 :          pack_tmp = ISHFT(pack_tmp, -11)
   31435       470138 :          idata = idata + 1
   31436       470138 :          data_tmp = full_data(idata)
   31437       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31438       470138 :          data_tmp = IAND(data_tmp, mask_left(11))
   31439       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31440       470138 :          ipack = ipack + 1
   31441       470138 :          packed_data(ipack) = pack_tmp
   31442       470138 :          data_tmp = full_data(idata)
   31443       470138 :          pack_tmp = ISHFT(data_tmp, 34)
   31444       470138 :          pack_tmp = ISHFT(pack_tmp, -34)
   31445       470138 :          idata = idata + 1
   31446       470138 :          data_tmp = full_data(idata)
   31447       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31448       470138 :          data_tmp = IAND(data_tmp, mask_left(34))
   31449       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31450       470138 :          ipack = ipack + 1
   31451       470138 :          packed_data(ipack) = pack_tmp
   31452       470138 :          data_tmp = full_data(idata)
   31453       470138 :          pack_tmp = ISHFT(data_tmp, 57)
   31454       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31455       470138 :          idata = idata + 1
   31456       470138 :          data_tmp = full_data(idata)
   31457       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31458       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31459       470138 :          pack_tmp = ISHFT(pack_tmp, -16)
   31460       470138 :          idata = idata + 1
   31461       470138 :          data_tmp = full_data(idata)
   31462       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31463       470138 :          data_tmp = IAND(data_tmp, mask_left(16))
   31464       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31465       470138 :          ipack = ipack + 1
   31466       470138 :          packed_data(ipack) = pack_tmp
   31467       470138 :          data_tmp = full_data(idata)
   31468       470138 :          pack_tmp = ISHFT(data_tmp, 39)
   31469       470138 :          pack_tmp = ISHFT(pack_tmp, -39)
   31470       470138 :          idata = idata + 1
   31471       470138 :          data_tmp = full_data(idata)
   31472       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31473       470138 :          data_tmp = IAND(data_tmp, mask_left(39))
   31474       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31475       470138 :          ipack = ipack + 1
   31476       470138 :          packed_data(ipack) = pack_tmp
   31477       470138 :          data_tmp = full_data(idata)
   31478       470138 :          pack_tmp = ISHFT(data_tmp, 62)
   31479       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31480       470138 :          idata = idata + 1
   31481       470138 :          data_tmp = full_data(idata)
   31482       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31483       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31484       470138 :          pack_tmp = ISHFT(pack_tmp, -21)
   31485       470138 :          idata = idata + 1
   31486       470138 :          data_tmp = full_data(idata)
   31487       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31488       470138 :          data_tmp = IAND(data_tmp, mask_left(21))
   31489       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31490       470138 :          ipack = ipack + 1
   31491       470138 :          packed_data(ipack) = pack_tmp
   31492       470138 :          data_tmp = full_data(idata)
   31493       470138 :          pack_tmp = ISHFT(data_tmp, 44)
   31494       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31495       470138 :          idata = idata + 1
   31496       470138 :          data_tmp = full_data(idata)
   31497       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31498       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31499       470138 :          pack_tmp = ISHFT(pack_tmp, -3)
   31500       470138 :          idata = idata + 1
   31501       470138 :          data_tmp = full_data(idata)
   31502       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31503       470138 :          data_tmp = IAND(data_tmp, mask_left(3))
   31504       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31505       470138 :          ipack = ipack + 1
   31506       470138 :          packed_data(ipack) = pack_tmp
   31507       470138 :          data_tmp = full_data(idata)
   31508       470138 :          pack_tmp = ISHFT(data_tmp, 26)
   31509       470138 :          pack_tmp = ISHFT(pack_tmp, -26)
   31510       470138 :          idata = idata + 1
   31511       470138 :          data_tmp = full_data(idata)
   31512       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31513       470138 :          data_tmp = IAND(data_tmp, mask_left(26))
   31514       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31515       470138 :          ipack = ipack + 1
   31516       470138 :          packed_data(ipack) = pack_tmp
   31517       470138 :          data_tmp = full_data(idata)
   31518       470138 :          pack_tmp = ISHFT(data_tmp, 49)
   31519       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31520       470138 :          idata = idata + 1
   31521       470138 :          data_tmp = full_data(idata)
   31522       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31523       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31524       470138 :          pack_tmp = ISHFT(pack_tmp, -8)
   31525       470138 :          idata = idata + 1
   31526       470138 :          data_tmp = full_data(idata)
   31527       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31528       470138 :          data_tmp = IAND(data_tmp, mask_left(8))
   31529       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31530       470138 :          ipack = ipack + 1
   31531       470138 :          packed_data(ipack) = pack_tmp
   31532       470138 :          data_tmp = full_data(idata)
   31533       470138 :          pack_tmp = ISHFT(data_tmp, 31)
   31534       470138 :          pack_tmp = ISHFT(pack_tmp, -31)
   31535       470138 :          idata = idata + 1
   31536       470138 :          data_tmp = full_data(idata)
   31537       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31538       470138 :          data_tmp = IAND(data_tmp, mask_left(31))
   31539       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31540       470138 :          ipack = ipack + 1
   31541       470138 :          packed_data(ipack) = pack_tmp
   31542       470138 :          data_tmp = full_data(idata)
   31543       470138 :          pack_tmp = ISHFT(data_tmp, 54)
   31544       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31545       470138 :          idata = idata + 1
   31546       470138 :          data_tmp = full_data(idata)
   31547       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31548       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31549       470138 :          pack_tmp = ISHFT(pack_tmp, -13)
   31550       470138 :          idata = idata + 1
   31551       470138 :          data_tmp = full_data(idata)
   31552       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31553       470138 :          data_tmp = IAND(data_tmp, mask_left(13))
   31554       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31555       470138 :          ipack = ipack + 1
   31556       470138 :          packed_data(ipack) = pack_tmp
   31557       470138 :          data_tmp = full_data(idata)
   31558       470138 :          pack_tmp = ISHFT(data_tmp, 36)
   31559       470138 :          pack_tmp = ISHFT(pack_tmp, -36)
   31560       470138 :          idata = idata + 1
   31561       470138 :          data_tmp = full_data(idata)
   31562       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31563       470138 :          data_tmp = IAND(data_tmp, mask_left(36))
   31564       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31565       470138 :          ipack = ipack + 1
   31566       470138 :          packed_data(ipack) = pack_tmp
   31567       470138 :          data_tmp = full_data(idata)
   31568       470138 :          pack_tmp = ISHFT(data_tmp, 59)
   31569       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31570       470138 :          idata = idata + 1
   31571       470138 :          data_tmp = full_data(idata)
   31572       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31573       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31574       470138 :          pack_tmp = ISHFT(pack_tmp, -18)
   31575       470138 :          idata = idata + 1
   31576       470138 :          data_tmp = full_data(idata)
   31577       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31578       470138 :          data_tmp = IAND(data_tmp, mask_left(18))
   31579       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31580       470138 :          ipack = ipack + 1
   31581       470138 :          packed_data(ipack) = pack_tmp
   31582       470138 :          data_tmp = full_data(idata)
   31583       470138 :          pack_tmp = ISHFT(data_tmp, 41)
   31584       470138 :          pack_tmp = ISHFT(pack_tmp, -41)
   31585       470138 :          idata = idata + 1
   31586       470138 :          data_tmp = full_data(idata)
   31587       470138 :          data_tmp = ISHFT(data_tmp, 23)
   31588       470138 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31589              :          pack_tmp = ISHFT(pack_tmp, 0)
   31590       470138 :          pack_tmp = ISHFT(pack_tmp, 0)
   31591       470138 :          ipack = ipack + 1
   31592       470375 :          packed_data(ipack) = pack_tmp
   31593              :       END DO
   31594        33145 :       IF (Ndata_rep < Ndata) THEN
   31595         6988 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31596              :       END IF
   31597        33145 :    END SUBROUTINE ints2bits_41
   31598              : 
   31599              : ! **************************************************************************************************
   31600              : !> \brief ...
   31601              : !> \param Ndata ...
   31602              : !> \param packed_data ...
   31603              : !> \param full_data ...
   31604              : ! **************************************************************************************************
   31605       146424 :    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       146424 :       ipack = 0
   31616       146424 :       idata = 0
   31617       146424 :       pack_tmp = 0
   31618       146424 :       Ndata_rep = (Ndata/64)*64
   31619       146424 :       DO kdata = 1, Ndata_rep, 64
   31620      2012895 :          idata = idata + 1
   31621      2012895 :          data_tmp = ISHFT(pack_tmp, 41)
   31622      2012895 :          ipack = ipack + 1
   31623      2012895 :          pack_tmp = packed_data(ipack)
   31624      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   31625      2012895 :          pack_tmp = ISHFT(pack_tmp, -41)
   31626      2012895 :          idata = idata + 1
   31627      2012895 :          data_tmp = ISHFT(pack_tmp, 18)
   31628      2012895 :          ipack = ipack + 1
   31629      2012895 :          pack_tmp = packed_data(ipack)
   31630      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   31631      2012895 :          pack_tmp = ISHFT(pack_tmp, -18)
   31632      2012895 :          idata = idata + 1
   31633      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31634      2012895 :          full_data(idata) = data_tmp
   31635      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31636      2012895 :          idata = idata + 1
   31637      2012895 :          data_tmp = ISHFT(pack_tmp, 36)
   31638      2012895 :          ipack = ipack + 1
   31639      2012895 :          pack_tmp = packed_data(ipack)
   31640      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   31641      2012895 :          pack_tmp = ISHFT(pack_tmp, -36)
   31642      2012895 :          idata = idata + 1
   31643      2012895 :          data_tmp = ISHFT(pack_tmp, 13)
   31644      2012895 :          ipack = ipack + 1
   31645      2012895 :          pack_tmp = packed_data(ipack)
   31646      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   31647      2012895 :          pack_tmp = ISHFT(pack_tmp, -13)
   31648      2012895 :          idata = idata + 1
   31649      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31650      2012895 :          full_data(idata) = data_tmp
   31651      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31652      2012895 :          idata = idata + 1
   31653      2012895 :          data_tmp = ISHFT(pack_tmp, 31)
   31654      2012895 :          ipack = ipack + 1
   31655      2012895 :          pack_tmp = packed_data(ipack)
   31656      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   31657      2012895 :          pack_tmp = ISHFT(pack_tmp, -31)
   31658      2012895 :          idata = idata + 1
   31659      2012895 :          data_tmp = ISHFT(pack_tmp, 8)
   31660      2012895 :          ipack = ipack + 1
   31661      2012895 :          pack_tmp = packed_data(ipack)
   31662      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   31663      2012895 :          pack_tmp = ISHFT(pack_tmp, -8)
   31664      2012895 :          idata = idata + 1
   31665      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31666      2012895 :          full_data(idata) = data_tmp
   31667      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31668      2012895 :          idata = idata + 1
   31669      2012895 :          data_tmp = ISHFT(pack_tmp, 26)
   31670      2012895 :          ipack = ipack + 1
   31671      2012895 :          pack_tmp = packed_data(ipack)
   31672      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   31673      2012895 :          pack_tmp = ISHFT(pack_tmp, -26)
   31674      2012895 :          idata = idata + 1
   31675      2012895 :          data_tmp = ISHFT(pack_tmp, 3)
   31676      2012895 :          ipack = ipack + 1
   31677      2012895 :          pack_tmp = packed_data(ipack)
   31678      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   31679      2012895 :          pack_tmp = ISHFT(pack_tmp, -3)
   31680      2012895 :          idata = idata + 1
   31681      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31682      2012895 :          full_data(idata) = data_tmp
   31683      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31684      2012895 :          idata = idata + 1
   31685      2012895 :          data_tmp = ISHFT(pack_tmp, 21)
   31686      2012895 :          ipack = ipack + 1
   31687      2012895 :          pack_tmp = packed_data(ipack)
   31688      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   31689      2012895 :          pack_tmp = ISHFT(pack_tmp, -21)
   31690      2012895 :          idata = idata + 1
   31691      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31692      2012895 :          full_data(idata) = data_tmp
   31693      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31694      2012895 :          idata = idata + 1
   31695      2012895 :          data_tmp = ISHFT(pack_tmp, 39)
   31696      2012895 :          ipack = ipack + 1
   31697      2012895 :          pack_tmp = packed_data(ipack)
   31698      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   31699      2012895 :          pack_tmp = ISHFT(pack_tmp, -39)
   31700      2012895 :          idata = idata + 1
   31701      2012895 :          data_tmp = ISHFT(pack_tmp, 16)
   31702      2012895 :          ipack = ipack + 1
   31703      2012895 :          pack_tmp = packed_data(ipack)
   31704      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   31705      2012895 :          pack_tmp = ISHFT(pack_tmp, -16)
   31706      2012895 :          idata = idata + 1
   31707      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31708      2012895 :          full_data(idata) = data_tmp
   31709      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31710      2012895 :          idata = idata + 1
   31711      2012895 :          data_tmp = ISHFT(pack_tmp, 34)
   31712      2012895 :          ipack = ipack + 1
   31713      2012895 :          pack_tmp = packed_data(ipack)
   31714      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   31715      2012895 :          pack_tmp = ISHFT(pack_tmp, -34)
   31716      2012895 :          idata = idata + 1
   31717      2012895 :          data_tmp = ISHFT(pack_tmp, 11)
   31718      2012895 :          ipack = ipack + 1
   31719      2012895 :          pack_tmp = packed_data(ipack)
   31720      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   31721      2012895 :          pack_tmp = ISHFT(pack_tmp, -11)
   31722      2012895 :          idata = idata + 1
   31723      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31724      2012895 :          full_data(idata) = data_tmp
   31725      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31726      2012895 :          idata = idata + 1
   31727      2012895 :          data_tmp = ISHFT(pack_tmp, 29)
   31728      2012895 :          ipack = ipack + 1
   31729      2012895 :          pack_tmp = packed_data(ipack)
   31730      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   31731      2012895 :          pack_tmp = ISHFT(pack_tmp, -29)
   31732      2012895 :          idata = idata + 1
   31733      2012895 :          data_tmp = ISHFT(pack_tmp, 6)
   31734      2012895 :          ipack = ipack + 1
   31735      2012895 :          pack_tmp = packed_data(ipack)
   31736      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   31737      2012895 :          pack_tmp = ISHFT(pack_tmp, -6)
   31738      2012895 :          idata = idata + 1
   31739      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31740      2012895 :          full_data(idata) = data_tmp
   31741      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31742      2012895 :          idata = idata + 1
   31743      2012895 :          data_tmp = ISHFT(pack_tmp, 24)
   31744      2012895 :          ipack = ipack + 1
   31745      2012895 :          pack_tmp = packed_data(ipack)
   31746      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   31747      2012895 :          pack_tmp = ISHFT(pack_tmp, -24)
   31748      2012895 :          idata = idata + 1
   31749      2012895 :          data_tmp = ISHFT(pack_tmp, 1)
   31750      2012895 :          ipack = ipack + 1
   31751      2012895 :          pack_tmp = packed_data(ipack)
   31752      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   31753      2012895 :          pack_tmp = ISHFT(pack_tmp, -1)
   31754      2012895 :          idata = idata + 1
   31755      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31756      2012895 :          full_data(idata) = data_tmp
   31757      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31758      2012895 :          idata = idata + 1
   31759      2012895 :          data_tmp = ISHFT(pack_tmp, 19)
   31760      2012895 :          ipack = ipack + 1
   31761      2012895 :          pack_tmp = packed_data(ipack)
   31762      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   31763      2012895 :          pack_tmp = ISHFT(pack_tmp, -19)
   31764      2012895 :          idata = idata + 1
   31765      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31766      2012895 :          full_data(idata) = data_tmp
   31767      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31768      2012895 :          idata = idata + 1
   31769      2012895 :          data_tmp = ISHFT(pack_tmp, 37)
   31770      2012895 :          ipack = ipack + 1
   31771      2012895 :          pack_tmp = packed_data(ipack)
   31772      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   31773      2012895 :          pack_tmp = ISHFT(pack_tmp, -37)
   31774      2012895 :          idata = idata + 1
   31775      2012895 :          data_tmp = ISHFT(pack_tmp, 14)
   31776      2012895 :          ipack = ipack + 1
   31777      2012895 :          pack_tmp = packed_data(ipack)
   31778      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   31779      2012895 :          pack_tmp = ISHFT(pack_tmp, -14)
   31780      2012895 :          idata = idata + 1
   31781      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31782      2012895 :          full_data(idata) = data_tmp
   31783      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31784      2012895 :          idata = idata + 1
   31785      2012895 :          data_tmp = ISHFT(pack_tmp, 32)
   31786      2012895 :          ipack = ipack + 1
   31787      2012895 :          pack_tmp = packed_data(ipack)
   31788      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   31789      2012895 :          pack_tmp = ISHFT(pack_tmp, -32)
   31790      2012895 :          idata = idata + 1
   31791      2012895 :          data_tmp = ISHFT(pack_tmp, 9)
   31792      2012895 :          ipack = ipack + 1
   31793      2012895 :          pack_tmp = packed_data(ipack)
   31794      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   31795      2012895 :          pack_tmp = ISHFT(pack_tmp, -9)
   31796      2012895 :          idata = idata + 1
   31797      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31798      2012895 :          full_data(idata) = data_tmp
   31799      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31800      2012895 :          idata = idata + 1
   31801      2012895 :          data_tmp = ISHFT(pack_tmp, 27)
   31802      2012895 :          ipack = ipack + 1
   31803      2012895 :          pack_tmp = packed_data(ipack)
   31804      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   31805      2012895 :          pack_tmp = ISHFT(pack_tmp, -27)
   31806      2012895 :          idata = idata + 1
   31807      2012895 :          data_tmp = ISHFT(pack_tmp, 4)
   31808      2012895 :          ipack = ipack + 1
   31809      2012895 :          pack_tmp = packed_data(ipack)
   31810      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   31811      2012895 :          pack_tmp = ISHFT(pack_tmp, -4)
   31812      2012895 :          idata = idata + 1
   31813      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31814      2012895 :          full_data(idata) = data_tmp
   31815      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31816      2012895 :          idata = idata + 1
   31817      2012895 :          data_tmp = ISHFT(pack_tmp, 22)
   31818      2012895 :          ipack = ipack + 1
   31819      2012895 :          pack_tmp = packed_data(ipack)
   31820      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   31821      2012895 :          pack_tmp = ISHFT(pack_tmp, -22)
   31822      2012895 :          idata = idata + 1
   31823      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31824      2012895 :          full_data(idata) = data_tmp
   31825      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31826      2012895 :          idata = idata + 1
   31827      2012895 :          data_tmp = ISHFT(pack_tmp, 40)
   31828      2012895 :          ipack = ipack + 1
   31829      2012895 :          pack_tmp = packed_data(ipack)
   31830      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   31831      2012895 :          pack_tmp = ISHFT(pack_tmp, -40)
   31832      2012895 :          idata = idata + 1
   31833      2012895 :          data_tmp = ISHFT(pack_tmp, 17)
   31834      2012895 :          ipack = ipack + 1
   31835      2012895 :          pack_tmp = packed_data(ipack)
   31836      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   31837      2012895 :          pack_tmp = ISHFT(pack_tmp, -17)
   31838      2012895 :          idata = idata + 1
   31839      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31840      2012895 :          full_data(idata) = data_tmp
   31841      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31842      2012895 :          idata = idata + 1
   31843      2012895 :          data_tmp = ISHFT(pack_tmp, 35)
   31844      2012895 :          ipack = ipack + 1
   31845      2012895 :          pack_tmp = packed_data(ipack)
   31846      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   31847      2012895 :          pack_tmp = ISHFT(pack_tmp, -35)
   31848      2012895 :          idata = idata + 1
   31849      2012895 :          data_tmp = ISHFT(pack_tmp, 12)
   31850      2012895 :          ipack = ipack + 1
   31851      2012895 :          pack_tmp = packed_data(ipack)
   31852      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   31853      2012895 :          pack_tmp = ISHFT(pack_tmp, -12)
   31854      2012895 :          idata = idata + 1
   31855      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31856      2012895 :          full_data(idata) = data_tmp
   31857      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31858      2012895 :          idata = idata + 1
   31859      2012895 :          data_tmp = ISHFT(pack_tmp, 30)
   31860      2012895 :          ipack = ipack + 1
   31861      2012895 :          pack_tmp = packed_data(ipack)
   31862      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   31863      2012895 :          pack_tmp = ISHFT(pack_tmp, -30)
   31864      2012895 :          idata = idata + 1
   31865      2012895 :          data_tmp = ISHFT(pack_tmp, 7)
   31866      2012895 :          ipack = ipack + 1
   31867      2012895 :          pack_tmp = packed_data(ipack)
   31868      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   31869      2012895 :          pack_tmp = ISHFT(pack_tmp, -7)
   31870      2012895 :          idata = idata + 1
   31871      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31872      2012895 :          full_data(idata) = data_tmp
   31873      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31874      2012895 :          idata = idata + 1
   31875      2012895 :          data_tmp = ISHFT(pack_tmp, 25)
   31876      2012895 :          ipack = ipack + 1
   31877      2012895 :          pack_tmp = packed_data(ipack)
   31878      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   31879      2012895 :          pack_tmp = ISHFT(pack_tmp, -25)
   31880      2012895 :          idata = idata + 1
   31881      2012895 :          data_tmp = ISHFT(pack_tmp, 2)
   31882      2012895 :          ipack = ipack + 1
   31883      2012895 :          pack_tmp = packed_data(ipack)
   31884      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   31885      2012895 :          pack_tmp = ISHFT(pack_tmp, -2)
   31886      2012895 :          idata = idata + 1
   31887      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31888      2012895 :          full_data(idata) = data_tmp
   31889      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31890      2012895 :          idata = idata + 1
   31891      2012895 :          data_tmp = ISHFT(pack_tmp, 20)
   31892      2012895 :          ipack = ipack + 1
   31893      2012895 :          pack_tmp = packed_data(ipack)
   31894      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   31895      2012895 :          pack_tmp = ISHFT(pack_tmp, -20)
   31896      2012895 :          idata = idata + 1
   31897      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31898      2012895 :          full_data(idata) = data_tmp
   31899      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31900      2012895 :          idata = idata + 1
   31901      2012895 :          data_tmp = ISHFT(pack_tmp, 38)
   31902      2012895 :          ipack = ipack + 1
   31903      2012895 :          pack_tmp = packed_data(ipack)
   31904      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   31905      2012895 :          pack_tmp = ISHFT(pack_tmp, -38)
   31906      2012895 :          idata = idata + 1
   31907      2012895 :          data_tmp = ISHFT(pack_tmp, 15)
   31908      2012895 :          ipack = ipack + 1
   31909      2012895 :          pack_tmp = packed_data(ipack)
   31910      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   31911      2012895 :          pack_tmp = ISHFT(pack_tmp, -15)
   31912      2012895 :          idata = idata + 1
   31913      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31914      2012895 :          full_data(idata) = data_tmp
   31915      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31916      2012895 :          idata = idata + 1
   31917      2012895 :          data_tmp = ISHFT(pack_tmp, 33)
   31918      2012895 :          ipack = ipack + 1
   31919      2012895 :          pack_tmp = packed_data(ipack)
   31920      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   31921      2012895 :          pack_tmp = ISHFT(pack_tmp, -33)
   31922      2012895 :          idata = idata + 1
   31923      2012895 :          data_tmp = ISHFT(pack_tmp, 10)
   31924      2012895 :          ipack = ipack + 1
   31925      2012895 :          pack_tmp = packed_data(ipack)
   31926      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   31927      2012895 :          pack_tmp = ISHFT(pack_tmp, -10)
   31928      2012895 :          idata = idata + 1
   31929      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31930      2012895 :          full_data(idata) = data_tmp
   31931      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31932      2012895 :          idata = idata + 1
   31933      2012895 :          data_tmp = ISHFT(pack_tmp, 28)
   31934      2012895 :          ipack = ipack + 1
   31935      2012895 :          pack_tmp = packed_data(ipack)
   31936      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   31937      2012895 :          pack_tmp = ISHFT(pack_tmp, -28)
   31938      2012895 :          idata = idata + 1
   31939      2012895 :          data_tmp = ISHFT(pack_tmp, 5)
   31940      2012895 :          ipack = ipack + 1
   31941      2012895 :          pack_tmp = packed_data(ipack)
   31942      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   31943      2012895 :          pack_tmp = ISHFT(pack_tmp, -5)
   31944      2012895 :          idata = idata + 1
   31945      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31946      2012895 :          full_data(idata) = data_tmp
   31947      2012895 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31948      2012895 :          idata = idata + 1
   31949      2012895 :          data_tmp = ISHFT(pack_tmp, 23)
   31950      2012895 :          ipack = ipack + 1
   31951      2012895 :          pack_tmp = packed_data(ipack)
   31952      2012895 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   31953      2012895 :          pack_tmp = ISHFT(pack_tmp, -23)
   31954      2012895 :          idata = idata + 1
   31955      2012895 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   31956      2012895 :          full_data(idata) = data_tmp
   31957      2013708 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   31958              :       END DO
   31959       146424 :       IF (Ndata_rep < Ndata) THEN
   31960        38402 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   31961              :       END IF
   31962       146424 :    END SUBROUTINE bits2ints_41
   31963              : 
   31964              : ! **************************************************************************************************
   31965              : !> \brief ...
   31966              : !> \param Ndata ...
   31967              : !> \param packed_data ...
   31968              : !> \param full_data ...
   31969              : ! **************************************************************************************************
   31970        27342 :    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        27342 :       idata = 0
   31981        27342 :       ipack = 0
   31982        27342 :       Ndata_rep = (Ndata/64)*64
   31983        27342 :       DO kdata = 1, Ndata_rep, 64
   31984       416375 :          pack_tmp = 0
   31985       416375 :          idata = idata + 1
   31986       416375 :          data_tmp = full_data(idata)
   31987       416375 :          data_tmp = ISHFT(data_tmp, 22)
   31988       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31989       416375 :          pack_tmp = ISHFT(pack_tmp, -22)
   31990       416375 :          idata = idata + 1
   31991       416375 :          data_tmp = full_data(idata)
   31992       416375 :          data_tmp = ISHFT(data_tmp, 22)
   31993       416375 :          data_tmp = IAND(data_tmp, mask_left(22))
   31994       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   31995       416375 :          ipack = ipack + 1
   31996       416375 :          packed_data(ipack) = pack_tmp
   31997       416375 :          data_tmp = full_data(idata)
   31998       416375 :          pack_tmp = ISHFT(data_tmp, 44)
   31999       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32000       416375 :          idata = idata + 1
   32001       416375 :          data_tmp = full_data(idata)
   32002       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32003       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32004       416375 :          pack_tmp = ISHFT(pack_tmp, -2)
   32005       416375 :          idata = idata + 1
   32006       416375 :          data_tmp = full_data(idata)
   32007       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32008       416375 :          data_tmp = IAND(data_tmp, mask_left(2))
   32009       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32010       416375 :          ipack = ipack + 1
   32011       416375 :          packed_data(ipack) = pack_tmp
   32012       416375 :          data_tmp = full_data(idata)
   32013       416375 :          pack_tmp = ISHFT(data_tmp, 24)
   32014       416375 :          pack_tmp = ISHFT(pack_tmp, -24)
   32015       416375 :          idata = idata + 1
   32016       416375 :          data_tmp = full_data(idata)
   32017       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32018       416375 :          data_tmp = IAND(data_tmp, mask_left(24))
   32019       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32020       416375 :          ipack = ipack + 1
   32021       416375 :          packed_data(ipack) = pack_tmp
   32022       416375 :          data_tmp = full_data(idata)
   32023       416375 :          pack_tmp = ISHFT(data_tmp, 46)
   32024       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32025       416375 :          idata = idata + 1
   32026       416375 :          data_tmp = full_data(idata)
   32027       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32028       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32029       416375 :          pack_tmp = ISHFT(pack_tmp, -4)
   32030       416375 :          idata = idata + 1
   32031       416375 :          data_tmp = full_data(idata)
   32032       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32033       416375 :          data_tmp = IAND(data_tmp, mask_left(4))
   32034       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32035       416375 :          ipack = ipack + 1
   32036       416375 :          packed_data(ipack) = pack_tmp
   32037       416375 :          data_tmp = full_data(idata)
   32038       416375 :          pack_tmp = ISHFT(data_tmp, 26)
   32039       416375 :          pack_tmp = ISHFT(pack_tmp, -26)
   32040       416375 :          idata = idata + 1
   32041       416375 :          data_tmp = full_data(idata)
   32042       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32043       416375 :          data_tmp = IAND(data_tmp, mask_left(26))
   32044       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32045       416375 :          ipack = ipack + 1
   32046       416375 :          packed_data(ipack) = pack_tmp
   32047       416375 :          data_tmp = full_data(idata)
   32048       416375 :          pack_tmp = ISHFT(data_tmp, 48)
   32049       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32050       416375 :          idata = idata + 1
   32051       416375 :          data_tmp = full_data(idata)
   32052       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32053       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32054       416375 :          pack_tmp = ISHFT(pack_tmp, -6)
   32055       416375 :          idata = idata + 1
   32056       416375 :          data_tmp = full_data(idata)
   32057       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32058       416375 :          data_tmp = IAND(data_tmp, mask_left(6))
   32059       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32060       416375 :          ipack = ipack + 1
   32061       416375 :          packed_data(ipack) = pack_tmp
   32062       416375 :          data_tmp = full_data(idata)
   32063       416375 :          pack_tmp = ISHFT(data_tmp, 28)
   32064       416375 :          pack_tmp = ISHFT(pack_tmp, -28)
   32065       416375 :          idata = idata + 1
   32066       416375 :          data_tmp = full_data(idata)
   32067       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32068       416375 :          data_tmp = IAND(data_tmp, mask_left(28))
   32069       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32070       416375 :          ipack = ipack + 1
   32071       416375 :          packed_data(ipack) = pack_tmp
   32072       416375 :          data_tmp = full_data(idata)
   32073       416375 :          pack_tmp = ISHFT(data_tmp, 50)
   32074       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32075       416375 :          idata = idata + 1
   32076       416375 :          data_tmp = full_data(idata)
   32077       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32078       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32079       416375 :          pack_tmp = ISHFT(pack_tmp, -8)
   32080       416375 :          idata = idata + 1
   32081       416375 :          data_tmp = full_data(idata)
   32082       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32083       416375 :          data_tmp = IAND(data_tmp, mask_left(8))
   32084       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32085       416375 :          ipack = ipack + 1
   32086       416375 :          packed_data(ipack) = pack_tmp
   32087       416375 :          data_tmp = full_data(idata)
   32088       416375 :          pack_tmp = ISHFT(data_tmp, 30)
   32089       416375 :          pack_tmp = ISHFT(pack_tmp, -30)
   32090       416375 :          idata = idata + 1
   32091       416375 :          data_tmp = full_data(idata)
   32092       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32093       416375 :          data_tmp = IAND(data_tmp, mask_left(30))
   32094       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32095       416375 :          ipack = ipack + 1
   32096       416375 :          packed_data(ipack) = pack_tmp
   32097       416375 :          data_tmp = full_data(idata)
   32098       416375 :          pack_tmp = ISHFT(data_tmp, 52)
   32099       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32100       416375 :          idata = idata + 1
   32101       416375 :          data_tmp = full_data(idata)
   32102       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32103       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32104       416375 :          pack_tmp = ISHFT(pack_tmp, -10)
   32105       416375 :          idata = idata + 1
   32106       416375 :          data_tmp = full_data(idata)
   32107       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32108       416375 :          data_tmp = IAND(data_tmp, mask_left(10))
   32109       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32110       416375 :          ipack = ipack + 1
   32111       416375 :          packed_data(ipack) = pack_tmp
   32112       416375 :          data_tmp = full_data(idata)
   32113       416375 :          pack_tmp = ISHFT(data_tmp, 32)
   32114       416375 :          pack_tmp = ISHFT(pack_tmp, -32)
   32115       416375 :          idata = idata + 1
   32116       416375 :          data_tmp = full_data(idata)
   32117       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32118       416375 :          data_tmp = IAND(data_tmp, mask_left(32))
   32119       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32120       416375 :          ipack = ipack + 1
   32121       416375 :          packed_data(ipack) = pack_tmp
   32122       416375 :          data_tmp = full_data(idata)
   32123       416375 :          pack_tmp = ISHFT(data_tmp, 54)
   32124       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32125       416375 :          idata = idata + 1
   32126       416375 :          data_tmp = full_data(idata)
   32127       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32128       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32129       416375 :          pack_tmp = ISHFT(pack_tmp, -12)
   32130       416375 :          idata = idata + 1
   32131       416375 :          data_tmp = full_data(idata)
   32132       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32133       416375 :          data_tmp = IAND(data_tmp, mask_left(12))
   32134       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32135       416375 :          ipack = ipack + 1
   32136       416375 :          packed_data(ipack) = pack_tmp
   32137       416375 :          data_tmp = full_data(idata)
   32138       416375 :          pack_tmp = ISHFT(data_tmp, 34)
   32139       416375 :          pack_tmp = ISHFT(pack_tmp, -34)
   32140       416375 :          idata = idata + 1
   32141       416375 :          data_tmp = full_data(idata)
   32142       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32143       416375 :          data_tmp = IAND(data_tmp, mask_left(34))
   32144       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32145       416375 :          ipack = ipack + 1
   32146       416375 :          packed_data(ipack) = pack_tmp
   32147       416375 :          data_tmp = full_data(idata)
   32148       416375 :          pack_tmp = ISHFT(data_tmp, 56)
   32149       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32150       416375 :          idata = idata + 1
   32151       416375 :          data_tmp = full_data(idata)
   32152       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32153       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32154       416375 :          pack_tmp = ISHFT(pack_tmp, -14)
   32155       416375 :          idata = idata + 1
   32156       416375 :          data_tmp = full_data(idata)
   32157       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32158       416375 :          data_tmp = IAND(data_tmp, mask_left(14))
   32159       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32160       416375 :          ipack = ipack + 1
   32161       416375 :          packed_data(ipack) = pack_tmp
   32162       416375 :          data_tmp = full_data(idata)
   32163       416375 :          pack_tmp = ISHFT(data_tmp, 36)
   32164       416375 :          pack_tmp = ISHFT(pack_tmp, -36)
   32165       416375 :          idata = idata + 1
   32166       416375 :          data_tmp = full_data(idata)
   32167       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32168       416375 :          data_tmp = IAND(data_tmp, mask_left(36))
   32169       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32170       416375 :          ipack = ipack + 1
   32171       416375 :          packed_data(ipack) = pack_tmp
   32172       416375 :          data_tmp = full_data(idata)
   32173       416375 :          pack_tmp = ISHFT(data_tmp, 58)
   32174       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32175       416375 :          idata = idata + 1
   32176       416375 :          data_tmp = full_data(idata)
   32177       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32178       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32179       416375 :          pack_tmp = ISHFT(pack_tmp, -16)
   32180       416375 :          idata = idata + 1
   32181       416375 :          data_tmp = full_data(idata)
   32182       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32183       416375 :          data_tmp = IAND(data_tmp, mask_left(16))
   32184       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32185       416375 :          ipack = ipack + 1
   32186       416375 :          packed_data(ipack) = pack_tmp
   32187       416375 :          data_tmp = full_data(idata)
   32188       416375 :          pack_tmp = ISHFT(data_tmp, 38)
   32189       416375 :          pack_tmp = ISHFT(pack_tmp, -38)
   32190       416375 :          idata = idata + 1
   32191       416375 :          data_tmp = full_data(idata)
   32192       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32193       416375 :          data_tmp = IAND(data_tmp, mask_left(38))
   32194       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32195       416375 :          ipack = ipack + 1
   32196       416375 :          packed_data(ipack) = pack_tmp
   32197       416375 :          data_tmp = full_data(idata)
   32198       416375 :          pack_tmp = ISHFT(data_tmp, 60)
   32199       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32200       416375 :          idata = idata + 1
   32201       416375 :          data_tmp = full_data(idata)
   32202       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32203       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32204       416375 :          pack_tmp = ISHFT(pack_tmp, -18)
   32205       416375 :          idata = idata + 1
   32206       416375 :          data_tmp = full_data(idata)
   32207       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32208       416375 :          data_tmp = IAND(data_tmp, mask_left(18))
   32209       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32210       416375 :          ipack = ipack + 1
   32211       416375 :          packed_data(ipack) = pack_tmp
   32212       416375 :          data_tmp = full_data(idata)
   32213       416375 :          pack_tmp = ISHFT(data_tmp, 40)
   32214       416375 :          pack_tmp = ISHFT(pack_tmp, -40)
   32215       416375 :          idata = idata + 1
   32216       416375 :          data_tmp = full_data(idata)
   32217       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32218       416375 :          data_tmp = IAND(data_tmp, mask_left(40))
   32219       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32220       416375 :          ipack = ipack + 1
   32221       416375 :          packed_data(ipack) = pack_tmp
   32222       416375 :          data_tmp = full_data(idata)
   32223       416375 :          pack_tmp = ISHFT(data_tmp, 62)
   32224       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32225       416375 :          idata = idata + 1
   32226       416375 :          data_tmp = full_data(idata)
   32227       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32228       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32229       416375 :          pack_tmp = ISHFT(pack_tmp, -20)
   32230       416375 :          idata = idata + 1
   32231       416375 :          data_tmp = full_data(idata)
   32232       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32233       416375 :          data_tmp = IAND(data_tmp, mask_left(20))
   32234       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32235       416375 :          ipack = ipack + 1
   32236       416375 :          packed_data(ipack) = pack_tmp
   32237       416375 :          data_tmp = full_data(idata)
   32238       416375 :          pack_tmp = ISHFT(data_tmp, 42)
   32239       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32240       416375 :          idata = idata + 1
   32241       416375 :          data_tmp = full_data(idata)
   32242       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32243       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32244       416375 :          pack_tmp = ISHFT(pack_tmp, 0)
   32245       416375 :          idata = idata + 1
   32246       416375 :          data_tmp = full_data(idata)
   32247              :          data_tmp = ISHFT(data_tmp, 22)
   32248       416375 :          data_tmp = IAND(data_tmp, mask_left(0))
   32249       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32250       416375 :          ipack = ipack + 1
   32251       416375 :          packed_data(ipack) = pack_tmp
   32252       416375 :          data_tmp = full_data(idata)
   32253       416375 :          pack_tmp = ISHFT(data_tmp, 22)
   32254       416375 :          pack_tmp = ISHFT(pack_tmp, -22)
   32255       416375 :          idata = idata + 1
   32256       416375 :          data_tmp = full_data(idata)
   32257       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32258       416375 :          data_tmp = IAND(data_tmp, mask_left(22))
   32259       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32260       416375 :          ipack = ipack + 1
   32261       416375 :          packed_data(ipack) = pack_tmp
   32262       416375 :          data_tmp = full_data(idata)
   32263       416375 :          pack_tmp = ISHFT(data_tmp, 44)
   32264       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32265       416375 :          idata = idata + 1
   32266       416375 :          data_tmp = full_data(idata)
   32267       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32268       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32269       416375 :          pack_tmp = ISHFT(pack_tmp, -2)
   32270       416375 :          idata = idata + 1
   32271       416375 :          data_tmp = full_data(idata)
   32272       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32273       416375 :          data_tmp = IAND(data_tmp, mask_left(2))
   32274       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32275       416375 :          ipack = ipack + 1
   32276       416375 :          packed_data(ipack) = pack_tmp
   32277       416375 :          data_tmp = full_data(idata)
   32278       416375 :          pack_tmp = ISHFT(data_tmp, 24)
   32279       416375 :          pack_tmp = ISHFT(pack_tmp, -24)
   32280       416375 :          idata = idata + 1
   32281       416375 :          data_tmp = full_data(idata)
   32282       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32283       416375 :          data_tmp = IAND(data_tmp, mask_left(24))
   32284       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32285       416375 :          ipack = ipack + 1
   32286       416375 :          packed_data(ipack) = pack_tmp
   32287       416375 :          data_tmp = full_data(idata)
   32288       416375 :          pack_tmp = ISHFT(data_tmp, 46)
   32289       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32290       416375 :          idata = idata + 1
   32291       416375 :          data_tmp = full_data(idata)
   32292       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32293       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32294       416375 :          pack_tmp = ISHFT(pack_tmp, -4)
   32295       416375 :          idata = idata + 1
   32296       416375 :          data_tmp = full_data(idata)
   32297       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32298       416375 :          data_tmp = IAND(data_tmp, mask_left(4))
   32299       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32300       416375 :          ipack = ipack + 1
   32301       416375 :          packed_data(ipack) = pack_tmp
   32302       416375 :          data_tmp = full_data(idata)
   32303       416375 :          pack_tmp = ISHFT(data_tmp, 26)
   32304       416375 :          pack_tmp = ISHFT(pack_tmp, -26)
   32305       416375 :          idata = idata + 1
   32306       416375 :          data_tmp = full_data(idata)
   32307       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32308       416375 :          data_tmp = IAND(data_tmp, mask_left(26))
   32309       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32310       416375 :          ipack = ipack + 1
   32311       416375 :          packed_data(ipack) = pack_tmp
   32312       416375 :          data_tmp = full_data(idata)
   32313       416375 :          pack_tmp = ISHFT(data_tmp, 48)
   32314       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32315       416375 :          idata = idata + 1
   32316       416375 :          data_tmp = full_data(idata)
   32317       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32318       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32319       416375 :          pack_tmp = ISHFT(pack_tmp, -6)
   32320       416375 :          idata = idata + 1
   32321       416375 :          data_tmp = full_data(idata)
   32322       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32323       416375 :          data_tmp = IAND(data_tmp, mask_left(6))
   32324       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32325       416375 :          ipack = ipack + 1
   32326       416375 :          packed_data(ipack) = pack_tmp
   32327       416375 :          data_tmp = full_data(idata)
   32328       416375 :          pack_tmp = ISHFT(data_tmp, 28)
   32329       416375 :          pack_tmp = ISHFT(pack_tmp, -28)
   32330       416375 :          idata = idata + 1
   32331       416375 :          data_tmp = full_data(idata)
   32332       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32333       416375 :          data_tmp = IAND(data_tmp, mask_left(28))
   32334       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32335       416375 :          ipack = ipack + 1
   32336       416375 :          packed_data(ipack) = pack_tmp
   32337       416375 :          data_tmp = full_data(idata)
   32338       416375 :          pack_tmp = ISHFT(data_tmp, 50)
   32339       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32340       416375 :          idata = idata + 1
   32341       416375 :          data_tmp = full_data(idata)
   32342       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32343       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32344       416375 :          pack_tmp = ISHFT(pack_tmp, -8)
   32345       416375 :          idata = idata + 1
   32346       416375 :          data_tmp = full_data(idata)
   32347       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32348       416375 :          data_tmp = IAND(data_tmp, mask_left(8))
   32349       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32350       416375 :          ipack = ipack + 1
   32351       416375 :          packed_data(ipack) = pack_tmp
   32352       416375 :          data_tmp = full_data(idata)
   32353       416375 :          pack_tmp = ISHFT(data_tmp, 30)
   32354       416375 :          pack_tmp = ISHFT(pack_tmp, -30)
   32355       416375 :          idata = idata + 1
   32356       416375 :          data_tmp = full_data(idata)
   32357       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32358       416375 :          data_tmp = IAND(data_tmp, mask_left(30))
   32359       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32360       416375 :          ipack = ipack + 1
   32361       416375 :          packed_data(ipack) = pack_tmp
   32362       416375 :          data_tmp = full_data(idata)
   32363       416375 :          pack_tmp = ISHFT(data_tmp, 52)
   32364       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32365       416375 :          idata = idata + 1
   32366       416375 :          data_tmp = full_data(idata)
   32367       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32368       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32369       416375 :          pack_tmp = ISHFT(pack_tmp, -10)
   32370       416375 :          idata = idata + 1
   32371       416375 :          data_tmp = full_data(idata)
   32372       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32373       416375 :          data_tmp = IAND(data_tmp, mask_left(10))
   32374       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32375       416375 :          ipack = ipack + 1
   32376       416375 :          packed_data(ipack) = pack_tmp
   32377       416375 :          data_tmp = full_data(idata)
   32378       416375 :          pack_tmp = ISHFT(data_tmp, 32)
   32379       416375 :          pack_tmp = ISHFT(pack_tmp, -32)
   32380       416375 :          idata = idata + 1
   32381       416375 :          data_tmp = full_data(idata)
   32382       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32383       416375 :          data_tmp = IAND(data_tmp, mask_left(32))
   32384       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32385       416375 :          ipack = ipack + 1
   32386       416375 :          packed_data(ipack) = pack_tmp
   32387       416375 :          data_tmp = full_data(idata)
   32388       416375 :          pack_tmp = ISHFT(data_tmp, 54)
   32389       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32390       416375 :          idata = idata + 1
   32391       416375 :          data_tmp = full_data(idata)
   32392       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32393       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32394       416375 :          pack_tmp = ISHFT(pack_tmp, -12)
   32395       416375 :          idata = idata + 1
   32396       416375 :          data_tmp = full_data(idata)
   32397       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32398       416375 :          data_tmp = IAND(data_tmp, mask_left(12))
   32399       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32400       416375 :          ipack = ipack + 1
   32401       416375 :          packed_data(ipack) = pack_tmp
   32402       416375 :          data_tmp = full_data(idata)
   32403       416375 :          pack_tmp = ISHFT(data_tmp, 34)
   32404       416375 :          pack_tmp = ISHFT(pack_tmp, -34)
   32405       416375 :          idata = idata + 1
   32406       416375 :          data_tmp = full_data(idata)
   32407       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32408       416375 :          data_tmp = IAND(data_tmp, mask_left(34))
   32409       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32410       416375 :          ipack = ipack + 1
   32411       416375 :          packed_data(ipack) = pack_tmp
   32412       416375 :          data_tmp = full_data(idata)
   32413       416375 :          pack_tmp = ISHFT(data_tmp, 56)
   32414       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32415       416375 :          idata = idata + 1
   32416       416375 :          data_tmp = full_data(idata)
   32417       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32418       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32419       416375 :          pack_tmp = ISHFT(pack_tmp, -14)
   32420       416375 :          idata = idata + 1
   32421       416375 :          data_tmp = full_data(idata)
   32422       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32423       416375 :          data_tmp = IAND(data_tmp, mask_left(14))
   32424       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32425       416375 :          ipack = ipack + 1
   32426       416375 :          packed_data(ipack) = pack_tmp
   32427       416375 :          data_tmp = full_data(idata)
   32428       416375 :          pack_tmp = ISHFT(data_tmp, 36)
   32429       416375 :          pack_tmp = ISHFT(pack_tmp, -36)
   32430       416375 :          idata = idata + 1
   32431       416375 :          data_tmp = full_data(idata)
   32432       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32433       416375 :          data_tmp = IAND(data_tmp, mask_left(36))
   32434       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32435       416375 :          ipack = ipack + 1
   32436       416375 :          packed_data(ipack) = pack_tmp
   32437       416375 :          data_tmp = full_data(idata)
   32438       416375 :          pack_tmp = ISHFT(data_tmp, 58)
   32439       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32440       416375 :          idata = idata + 1
   32441       416375 :          data_tmp = full_data(idata)
   32442       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32443       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32444       416375 :          pack_tmp = ISHFT(pack_tmp, -16)
   32445       416375 :          idata = idata + 1
   32446       416375 :          data_tmp = full_data(idata)
   32447       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32448       416375 :          data_tmp = IAND(data_tmp, mask_left(16))
   32449       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32450       416375 :          ipack = ipack + 1
   32451       416375 :          packed_data(ipack) = pack_tmp
   32452       416375 :          data_tmp = full_data(idata)
   32453       416375 :          pack_tmp = ISHFT(data_tmp, 38)
   32454       416375 :          pack_tmp = ISHFT(pack_tmp, -38)
   32455       416375 :          idata = idata + 1
   32456       416375 :          data_tmp = full_data(idata)
   32457       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32458       416375 :          data_tmp = IAND(data_tmp, mask_left(38))
   32459       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32460       416375 :          ipack = ipack + 1
   32461       416375 :          packed_data(ipack) = pack_tmp
   32462       416375 :          data_tmp = full_data(idata)
   32463       416375 :          pack_tmp = ISHFT(data_tmp, 60)
   32464       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32465       416375 :          idata = idata + 1
   32466       416375 :          data_tmp = full_data(idata)
   32467       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32468       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32469       416375 :          pack_tmp = ISHFT(pack_tmp, -18)
   32470       416375 :          idata = idata + 1
   32471       416375 :          data_tmp = full_data(idata)
   32472       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32473       416375 :          data_tmp = IAND(data_tmp, mask_left(18))
   32474       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32475       416375 :          ipack = ipack + 1
   32476       416375 :          packed_data(ipack) = pack_tmp
   32477       416375 :          data_tmp = full_data(idata)
   32478       416375 :          pack_tmp = ISHFT(data_tmp, 40)
   32479       416375 :          pack_tmp = ISHFT(pack_tmp, -40)
   32480       416375 :          idata = idata + 1
   32481       416375 :          data_tmp = full_data(idata)
   32482       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32483       416375 :          data_tmp = IAND(data_tmp, mask_left(40))
   32484       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32485       416375 :          ipack = ipack + 1
   32486       416375 :          packed_data(ipack) = pack_tmp
   32487       416375 :          data_tmp = full_data(idata)
   32488       416375 :          pack_tmp = ISHFT(data_tmp, 62)
   32489       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32490       416375 :          idata = idata + 1
   32491       416375 :          data_tmp = full_data(idata)
   32492       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32493       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32494       416375 :          pack_tmp = ISHFT(pack_tmp, -20)
   32495       416375 :          idata = idata + 1
   32496       416375 :          data_tmp = full_data(idata)
   32497       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32498       416375 :          data_tmp = IAND(data_tmp, mask_left(20))
   32499       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32500       416375 :          ipack = ipack + 1
   32501       416375 :          packed_data(ipack) = pack_tmp
   32502       416375 :          data_tmp = full_data(idata)
   32503       416375 :          pack_tmp = ISHFT(data_tmp, 42)
   32504       416375 :          pack_tmp = ISHFT(pack_tmp, -42)
   32505       416375 :          idata = idata + 1
   32506       416375 :          data_tmp = full_data(idata)
   32507       416375 :          data_tmp = ISHFT(data_tmp, 22)
   32508       416375 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32509              :          pack_tmp = ISHFT(pack_tmp, 0)
   32510       416375 :          pack_tmp = ISHFT(pack_tmp, 0)
   32511       416375 :          ipack = ipack + 1
   32512       416598 :          packed_data(ipack) = pack_tmp
   32513              :       END DO
   32514        27342 :       IF (Ndata_rep < Ndata) THEN
   32515         2482 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   32516              :       END IF
   32517        27342 :    END SUBROUTINE ints2bits_42
   32518              : 
   32519              : ! **************************************************************************************************
   32520              : !> \brief ...
   32521              : !> \param Ndata ...
   32522              : !> \param packed_data ...
   32523              : !> \param full_data ...
   32524              : ! **************************************************************************************************
   32525       121260 :    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       121260 :       ipack = 0
   32536       121260 :       idata = 0
   32537       121260 :       pack_tmp = 0
   32538       121260 :       Ndata_rep = (Ndata/64)*64
   32539       121260 :       DO kdata = 1, Ndata_rep, 64
   32540      1782689 :          idata = idata + 1
   32541      1782689 :          data_tmp = ISHFT(pack_tmp, 42)
   32542      1782689 :          ipack = ipack + 1
   32543      1782689 :          pack_tmp = packed_data(ipack)
   32544      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   32545      1782689 :          pack_tmp = ISHFT(pack_tmp, -42)
   32546      1782689 :          idata = idata + 1
   32547      1782689 :          data_tmp = ISHFT(pack_tmp, 20)
   32548      1782689 :          ipack = ipack + 1
   32549      1782689 :          pack_tmp = packed_data(ipack)
   32550      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   32551      1782689 :          pack_tmp = ISHFT(pack_tmp, -20)
   32552      1782689 :          idata = idata + 1
   32553      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32554      1782689 :          full_data(idata) = data_tmp
   32555      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32556      1782689 :          idata = idata + 1
   32557      1782689 :          data_tmp = ISHFT(pack_tmp, 40)
   32558      1782689 :          ipack = ipack + 1
   32559      1782689 :          pack_tmp = packed_data(ipack)
   32560      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   32561      1782689 :          pack_tmp = ISHFT(pack_tmp, -40)
   32562      1782689 :          idata = idata + 1
   32563      1782689 :          data_tmp = ISHFT(pack_tmp, 18)
   32564      1782689 :          ipack = ipack + 1
   32565      1782689 :          pack_tmp = packed_data(ipack)
   32566      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   32567      1782689 :          pack_tmp = ISHFT(pack_tmp, -18)
   32568      1782689 :          idata = idata + 1
   32569      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32570      1782689 :          full_data(idata) = data_tmp
   32571      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32572      1782689 :          idata = idata + 1
   32573      1782689 :          data_tmp = ISHFT(pack_tmp, 38)
   32574      1782689 :          ipack = ipack + 1
   32575      1782689 :          pack_tmp = packed_data(ipack)
   32576      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   32577      1782689 :          pack_tmp = ISHFT(pack_tmp, -38)
   32578      1782689 :          idata = idata + 1
   32579      1782689 :          data_tmp = ISHFT(pack_tmp, 16)
   32580      1782689 :          ipack = ipack + 1
   32581      1782689 :          pack_tmp = packed_data(ipack)
   32582      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   32583      1782689 :          pack_tmp = ISHFT(pack_tmp, -16)
   32584      1782689 :          idata = idata + 1
   32585      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32586      1782689 :          full_data(idata) = data_tmp
   32587      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32588      1782689 :          idata = idata + 1
   32589      1782689 :          data_tmp = ISHFT(pack_tmp, 36)
   32590      1782689 :          ipack = ipack + 1
   32591      1782689 :          pack_tmp = packed_data(ipack)
   32592      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   32593      1782689 :          pack_tmp = ISHFT(pack_tmp, -36)
   32594      1782689 :          idata = idata + 1
   32595      1782689 :          data_tmp = ISHFT(pack_tmp, 14)
   32596      1782689 :          ipack = ipack + 1
   32597      1782689 :          pack_tmp = packed_data(ipack)
   32598      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   32599      1782689 :          pack_tmp = ISHFT(pack_tmp, -14)
   32600      1782689 :          idata = idata + 1
   32601      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32602      1782689 :          full_data(idata) = data_tmp
   32603      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32604      1782689 :          idata = idata + 1
   32605      1782689 :          data_tmp = ISHFT(pack_tmp, 34)
   32606      1782689 :          ipack = ipack + 1
   32607      1782689 :          pack_tmp = packed_data(ipack)
   32608      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   32609      1782689 :          pack_tmp = ISHFT(pack_tmp, -34)
   32610      1782689 :          idata = idata + 1
   32611      1782689 :          data_tmp = ISHFT(pack_tmp, 12)
   32612      1782689 :          ipack = ipack + 1
   32613      1782689 :          pack_tmp = packed_data(ipack)
   32614      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   32615      1782689 :          pack_tmp = ISHFT(pack_tmp, -12)
   32616      1782689 :          idata = idata + 1
   32617      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32618      1782689 :          full_data(idata) = data_tmp
   32619      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32620      1782689 :          idata = idata + 1
   32621      1782689 :          data_tmp = ISHFT(pack_tmp, 32)
   32622      1782689 :          ipack = ipack + 1
   32623      1782689 :          pack_tmp = packed_data(ipack)
   32624      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   32625      1782689 :          pack_tmp = ISHFT(pack_tmp, -32)
   32626      1782689 :          idata = idata + 1
   32627      1782689 :          data_tmp = ISHFT(pack_tmp, 10)
   32628      1782689 :          ipack = ipack + 1
   32629      1782689 :          pack_tmp = packed_data(ipack)
   32630      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   32631      1782689 :          pack_tmp = ISHFT(pack_tmp, -10)
   32632      1782689 :          idata = idata + 1
   32633      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32634      1782689 :          full_data(idata) = data_tmp
   32635      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32636      1782689 :          idata = idata + 1
   32637      1782689 :          data_tmp = ISHFT(pack_tmp, 30)
   32638      1782689 :          ipack = ipack + 1
   32639      1782689 :          pack_tmp = packed_data(ipack)
   32640      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   32641      1782689 :          pack_tmp = ISHFT(pack_tmp, -30)
   32642      1782689 :          idata = idata + 1
   32643      1782689 :          data_tmp = ISHFT(pack_tmp, 8)
   32644      1782689 :          ipack = ipack + 1
   32645      1782689 :          pack_tmp = packed_data(ipack)
   32646      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   32647      1782689 :          pack_tmp = ISHFT(pack_tmp, -8)
   32648      1782689 :          idata = idata + 1
   32649      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32650      1782689 :          full_data(idata) = data_tmp
   32651      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32652      1782689 :          idata = idata + 1
   32653      1782689 :          data_tmp = ISHFT(pack_tmp, 28)
   32654      1782689 :          ipack = ipack + 1
   32655      1782689 :          pack_tmp = packed_data(ipack)
   32656      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   32657      1782689 :          pack_tmp = ISHFT(pack_tmp, -28)
   32658      1782689 :          idata = idata + 1
   32659      1782689 :          data_tmp = ISHFT(pack_tmp, 6)
   32660      1782689 :          ipack = ipack + 1
   32661      1782689 :          pack_tmp = packed_data(ipack)
   32662      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   32663      1782689 :          pack_tmp = ISHFT(pack_tmp, -6)
   32664      1782689 :          idata = idata + 1
   32665      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32666      1782689 :          full_data(idata) = data_tmp
   32667      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32668      1782689 :          idata = idata + 1
   32669      1782689 :          data_tmp = ISHFT(pack_tmp, 26)
   32670      1782689 :          ipack = ipack + 1
   32671      1782689 :          pack_tmp = packed_data(ipack)
   32672      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   32673      1782689 :          pack_tmp = ISHFT(pack_tmp, -26)
   32674      1782689 :          idata = idata + 1
   32675      1782689 :          data_tmp = ISHFT(pack_tmp, 4)
   32676      1782689 :          ipack = ipack + 1
   32677      1782689 :          pack_tmp = packed_data(ipack)
   32678      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   32679      1782689 :          pack_tmp = ISHFT(pack_tmp, -4)
   32680      1782689 :          idata = idata + 1
   32681      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32682      1782689 :          full_data(idata) = data_tmp
   32683      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32684      1782689 :          idata = idata + 1
   32685      1782689 :          data_tmp = ISHFT(pack_tmp, 24)
   32686      1782689 :          ipack = ipack + 1
   32687      1782689 :          pack_tmp = packed_data(ipack)
   32688      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   32689      1782689 :          pack_tmp = ISHFT(pack_tmp, -24)
   32690      1782689 :          idata = idata + 1
   32691      1782689 :          data_tmp = ISHFT(pack_tmp, 2)
   32692      1782689 :          ipack = ipack + 1
   32693      1782689 :          pack_tmp = packed_data(ipack)
   32694      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   32695      1782689 :          pack_tmp = ISHFT(pack_tmp, -2)
   32696      1782689 :          idata = idata + 1
   32697      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32698      1782689 :          full_data(idata) = data_tmp
   32699      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32700      1782689 :          idata = idata + 1
   32701      1782689 :          data_tmp = ISHFT(pack_tmp, 22)
   32702      1782689 :          ipack = ipack + 1
   32703      1782689 :          pack_tmp = packed_data(ipack)
   32704      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   32705      1782689 :          pack_tmp = ISHFT(pack_tmp, -22)
   32706      1782689 :          idata = idata + 1
   32707      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32708      1782689 :          full_data(idata) = data_tmp
   32709      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32710      1782689 :          idata = idata + 1
   32711      1782689 :          data_tmp = ISHFT(pack_tmp, 42)
   32712      1782689 :          ipack = ipack + 1
   32713      1782689 :          pack_tmp = packed_data(ipack)
   32714      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   32715      1782689 :          pack_tmp = ISHFT(pack_tmp, -42)
   32716      1782689 :          idata = idata + 1
   32717      1782689 :          data_tmp = ISHFT(pack_tmp, 20)
   32718      1782689 :          ipack = ipack + 1
   32719      1782689 :          pack_tmp = packed_data(ipack)
   32720      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   32721      1782689 :          pack_tmp = ISHFT(pack_tmp, -20)
   32722      1782689 :          idata = idata + 1
   32723      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32724      1782689 :          full_data(idata) = data_tmp
   32725      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32726      1782689 :          idata = idata + 1
   32727      1782689 :          data_tmp = ISHFT(pack_tmp, 40)
   32728      1782689 :          ipack = ipack + 1
   32729      1782689 :          pack_tmp = packed_data(ipack)
   32730      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   32731      1782689 :          pack_tmp = ISHFT(pack_tmp, -40)
   32732      1782689 :          idata = idata + 1
   32733      1782689 :          data_tmp = ISHFT(pack_tmp, 18)
   32734      1782689 :          ipack = ipack + 1
   32735      1782689 :          pack_tmp = packed_data(ipack)
   32736      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   32737      1782689 :          pack_tmp = ISHFT(pack_tmp, -18)
   32738      1782689 :          idata = idata + 1
   32739      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32740      1782689 :          full_data(idata) = data_tmp
   32741      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32742      1782689 :          idata = idata + 1
   32743      1782689 :          data_tmp = ISHFT(pack_tmp, 38)
   32744      1782689 :          ipack = ipack + 1
   32745      1782689 :          pack_tmp = packed_data(ipack)
   32746      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   32747      1782689 :          pack_tmp = ISHFT(pack_tmp, -38)
   32748      1782689 :          idata = idata + 1
   32749      1782689 :          data_tmp = ISHFT(pack_tmp, 16)
   32750      1782689 :          ipack = ipack + 1
   32751      1782689 :          pack_tmp = packed_data(ipack)
   32752      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   32753      1782689 :          pack_tmp = ISHFT(pack_tmp, -16)
   32754      1782689 :          idata = idata + 1
   32755      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32756      1782689 :          full_data(idata) = data_tmp
   32757      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32758      1782689 :          idata = idata + 1
   32759      1782689 :          data_tmp = ISHFT(pack_tmp, 36)
   32760      1782689 :          ipack = ipack + 1
   32761      1782689 :          pack_tmp = packed_data(ipack)
   32762      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   32763      1782689 :          pack_tmp = ISHFT(pack_tmp, -36)
   32764      1782689 :          idata = idata + 1
   32765      1782689 :          data_tmp = ISHFT(pack_tmp, 14)
   32766      1782689 :          ipack = ipack + 1
   32767      1782689 :          pack_tmp = packed_data(ipack)
   32768      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   32769      1782689 :          pack_tmp = ISHFT(pack_tmp, -14)
   32770      1782689 :          idata = idata + 1
   32771      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32772      1782689 :          full_data(idata) = data_tmp
   32773      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32774      1782689 :          idata = idata + 1
   32775      1782689 :          data_tmp = ISHFT(pack_tmp, 34)
   32776      1782689 :          ipack = ipack + 1
   32777      1782689 :          pack_tmp = packed_data(ipack)
   32778      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   32779      1782689 :          pack_tmp = ISHFT(pack_tmp, -34)
   32780      1782689 :          idata = idata + 1
   32781      1782689 :          data_tmp = ISHFT(pack_tmp, 12)
   32782      1782689 :          ipack = ipack + 1
   32783      1782689 :          pack_tmp = packed_data(ipack)
   32784      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   32785      1782689 :          pack_tmp = ISHFT(pack_tmp, -12)
   32786      1782689 :          idata = idata + 1
   32787      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32788      1782689 :          full_data(idata) = data_tmp
   32789      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32790      1782689 :          idata = idata + 1
   32791      1782689 :          data_tmp = ISHFT(pack_tmp, 32)
   32792      1782689 :          ipack = ipack + 1
   32793      1782689 :          pack_tmp = packed_data(ipack)
   32794      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   32795      1782689 :          pack_tmp = ISHFT(pack_tmp, -32)
   32796      1782689 :          idata = idata + 1
   32797      1782689 :          data_tmp = ISHFT(pack_tmp, 10)
   32798      1782689 :          ipack = ipack + 1
   32799      1782689 :          pack_tmp = packed_data(ipack)
   32800      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   32801      1782689 :          pack_tmp = ISHFT(pack_tmp, -10)
   32802      1782689 :          idata = idata + 1
   32803      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32804      1782689 :          full_data(idata) = data_tmp
   32805      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32806      1782689 :          idata = idata + 1
   32807      1782689 :          data_tmp = ISHFT(pack_tmp, 30)
   32808      1782689 :          ipack = ipack + 1
   32809      1782689 :          pack_tmp = packed_data(ipack)
   32810      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   32811      1782689 :          pack_tmp = ISHFT(pack_tmp, -30)
   32812      1782689 :          idata = idata + 1
   32813      1782689 :          data_tmp = ISHFT(pack_tmp, 8)
   32814      1782689 :          ipack = ipack + 1
   32815      1782689 :          pack_tmp = packed_data(ipack)
   32816      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   32817      1782689 :          pack_tmp = ISHFT(pack_tmp, -8)
   32818      1782689 :          idata = idata + 1
   32819      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32820      1782689 :          full_data(idata) = data_tmp
   32821      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32822      1782689 :          idata = idata + 1
   32823      1782689 :          data_tmp = ISHFT(pack_tmp, 28)
   32824      1782689 :          ipack = ipack + 1
   32825      1782689 :          pack_tmp = packed_data(ipack)
   32826      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   32827      1782689 :          pack_tmp = ISHFT(pack_tmp, -28)
   32828      1782689 :          idata = idata + 1
   32829      1782689 :          data_tmp = ISHFT(pack_tmp, 6)
   32830      1782689 :          ipack = ipack + 1
   32831      1782689 :          pack_tmp = packed_data(ipack)
   32832      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   32833      1782689 :          pack_tmp = ISHFT(pack_tmp, -6)
   32834      1782689 :          idata = idata + 1
   32835      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32836      1782689 :          full_data(idata) = data_tmp
   32837      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32838      1782689 :          idata = idata + 1
   32839      1782689 :          data_tmp = ISHFT(pack_tmp, 26)
   32840      1782689 :          ipack = ipack + 1
   32841      1782689 :          pack_tmp = packed_data(ipack)
   32842      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   32843      1782689 :          pack_tmp = ISHFT(pack_tmp, -26)
   32844      1782689 :          idata = idata + 1
   32845      1782689 :          data_tmp = ISHFT(pack_tmp, 4)
   32846      1782689 :          ipack = ipack + 1
   32847      1782689 :          pack_tmp = packed_data(ipack)
   32848      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   32849      1782689 :          pack_tmp = ISHFT(pack_tmp, -4)
   32850      1782689 :          idata = idata + 1
   32851      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32852      1782689 :          full_data(idata) = data_tmp
   32853      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32854      1782689 :          idata = idata + 1
   32855      1782689 :          data_tmp = ISHFT(pack_tmp, 24)
   32856      1782689 :          ipack = ipack + 1
   32857      1782689 :          pack_tmp = packed_data(ipack)
   32858      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   32859      1782689 :          pack_tmp = ISHFT(pack_tmp, -24)
   32860      1782689 :          idata = idata + 1
   32861      1782689 :          data_tmp = ISHFT(pack_tmp, 2)
   32862      1782689 :          ipack = ipack + 1
   32863      1782689 :          pack_tmp = packed_data(ipack)
   32864      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   32865      1782689 :          pack_tmp = ISHFT(pack_tmp, -2)
   32866      1782689 :          idata = idata + 1
   32867      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32868      1782689 :          full_data(idata) = data_tmp
   32869      1782689 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32870      1782689 :          idata = idata + 1
   32871      1782689 :          data_tmp = ISHFT(pack_tmp, 22)
   32872      1782689 :          ipack = ipack + 1
   32873      1782689 :          pack_tmp = packed_data(ipack)
   32874      1782689 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   32875      1782689 :          pack_tmp = ISHFT(pack_tmp, -22)
   32876      1782689 :          idata = idata + 1
   32877      1782689 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   32878      1782689 :          full_data(idata) = data_tmp
   32879      1784450 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   32880              :       END DO
   32881       121260 :       IF (Ndata_rep < Ndata) THEN
   32882        18526 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   32883              :       END IF
   32884       121260 :    END SUBROUTINE bits2ints_42
   32885              : 
   32886              : ! **************************************************************************************************
   32887              : !> \brief ...
   32888              : !> \param Ndata ...
   32889              : !> \param packed_data ...
   32890              : !> \param full_data ...
   32891              : ! **************************************************************************************************
   32892        27134 :    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        27134 :       idata = 0
   32903        27134 :       ipack = 0
   32904        27134 :       Ndata_rep = (Ndata/64)*64
   32905        27134 :       DO kdata = 1, Ndata_rep, 64
   32906       412384 :          pack_tmp = 0
   32907       412384 :          idata = idata + 1
   32908       412384 :          data_tmp = full_data(idata)
   32909       412384 :          data_tmp = ISHFT(data_tmp, 21)
   32910       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32911       412384 :          pack_tmp = ISHFT(pack_tmp, -21)
   32912       412384 :          idata = idata + 1
   32913       412384 :          data_tmp = full_data(idata)
   32914       412384 :          data_tmp = ISHFT(data_tmp, 21)
   32915       412384 :          data_tmp = IAND(data_tmp, mask_left(21))
   32916       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32917       412384 :          ipack = ipack + 1
   32918       412384 :          packed_data(ipack) = pack_tmp
   32919       412384 :          data_tmp = full_data(idata)
   32920       412384 :          pack_tmp = ISHFT(data_tmp, 42)
   32921       412384 :          pack_tmp = ISHFT(pack_tmp, -42)
   32922       412384 :          idata = idata + 1
   32923       412384 :          data_tmp = full_data(idata)
   32924       412384 :          data_tmp = ISHFT(data_tmp, 21)
   32925       412384 :          data_tmp = IAND(data_tmp, mask_left(42))
   32926       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32927       412384 :          ipack = ipack + 1
   32928       412384 :          packed_data(ipack) = pack_tmp
   32929       412384 :          data_tmp = full_data(idata)
   32930       412384 :          pack_tmp = ISHFT(data_tmp, 63)
   32931       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   32932       412384 :          idata = idata + 1
   32933       412384 :          data_tmp = full_data(idata)
   32934       412384 :          data_tmp = ISHFT(data_tmp, 21)
   32935       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32936       412384 :          pack_tmp = ISHFT(pack_tmp, -20)
   32937       412384 :          idata = idata + 1
   32938       412384 :          data_tmp = full_data(idata)
   32939       412384 :          data_tmp = ISHFT(data_tmp, 21)
   32940       412384 :          data_tmp = IAND(data_tmp, mask_left(20))
   32941       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32942       412384 :          ipack = ipack + 1
   32943       412384 :          packed_data(ipack) = pack_tmp
   32944       412384 :          data_tmp = full_data(idata)
   32945       412384 :          pack_tmp = ISHFT(data_tmp, 41)
   32946       412384 :          pack_tmp = ISHFT(pack_tmp, -41)
   32947       412384 :          idata = idata + 1
   32948       412384 :          data_tmp = full_data(idata)
   32949       412384 :          data_tmp = ISHFT(data_tmp, 21)
   32950       412384 :          data_tmp = IAND(data_tmp, mask_left(41))
   32951       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32952       412384 :          ipack = ipack + 1
   32953       412384 :          packed_data(ipack) = pack_tmp
   32954       412384 :          data_tmp = full_data(idata)
   32955       412384 :          pack_tmp = ISHFT(data_tmp, 62)
   32956       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   32957       412384 :          idata = idata + 1
   32958       412384 :          data_tmp = full_data(idata)
   32959       412384 :          data_tmp = ISHFT(data_tmp, 21)
   32960       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32961       412384 :          pack_tmp = ISHFT(pack_tmp, -19)
   32962       412384 :          idata = idata + 1
   32963       412384 :          data_tmp = full_data(idata)
   32964       412384 :          data_tmp = ISHFT(data_tmp, 21)
   32965       412384 :          data_tmp = IAND(data_tmp, mask_left(19))
   32966       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32967       412384 :          ipack = ipack + 1
   32968       412384 :          packed_data(ipack) = pack_tmp
   32969       412384 :          data_tmp = full_data(idata)
   32970       412384 :          pack_tmp = ISHFT(data_tmp, 40)
   32971       412384 :          pack_tmp = ISHFT(pack_tmp, -40)
   32972       412384 :          idata = idata + 1
   32973       412384 :          data_tmp = full_data(idata)
   32974       412384 :          data_tmp = ISHFT(data_tmp, 21)
   32975       412384 :          data_tmp = IAND(data_tmp, mask_left(40))
   32976       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32977       412384 :          ipack = ipack + 1
   32978       412384 :          packed_data(ipack) = pack_tmp
   32979       412384 :          data_tmp = full_data(idata)
   32980       412384 :          pack_tmp = ISHFT(data_tmp, 61)
   32981       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   32982       412384 :          idata = idata + 1
   32983       412384 :          data_tmp = full_data(idata)
   32984       412384 :          data_tmp = ISHFT(data_tmp, 21)
   32985       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32986       412384 :          pack_tmp = ISHFT(pack_tmp, -18)
   32987       412384 :          idata = idata + 1
   32988       412384 :          data_tmp = full_data(idata)
   32989       412384 :          data_tmp = ISHFT(data_tmp, 21)
   32990       412384 :          data_tmp = IAND(data_tmp, mask_left(18))
   32991       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   32992       412384 :          ipack = ipack + 1
   32993       412384 :          packed_data(ipack) = pack_tmp
   32994       412384 :          data_tmp = full_data(idata)
   32995       412384 :          pack_tmp = ISHFT(data_tmp, 39)
   32996       412384 :          pack_tmp = ISHFT(pack_tmp, -39)
   32997       412384 :          idata = idata + 1
   32998       412384 :          data_tmp = full_data(idata)
   32999       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33000       412384 :          data_tmp = IAND(data_tmp, mask_left(39))
   33001       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33002       412384 :          ipack = ipack + 1
   33003       412384 :          packed_data(ipack) = pack_tmp
   33004       412384 :          data_tmp = full_data(idata)
   33005       412384 :          pack_tmp = ISHFT(data_tmp, 60)
   33006       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33007       412384 :          idata = idata + 1
   33008       412384 :          data_tmp = full_data(idata)
   33009       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33010       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33011       412384 :          pack_tmp = ISHFT(pack_tmp, -17)
   33012       412384 :          idata = idata + 1
   33013       412384 :          data_tmp = full_data(idata)
   33014       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33015       412384 :          data_tmp = IAND(data_tmp, mask_left(17))
   33016       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33017       412384 :          ipack = ipack + 1
   33018       412384 :          packed_data(ipack) = pack_tmp
   33019       412384 :          data_tmp = full_data(idata)
   33020       412384 :          pack_tmp = ISHFT(data_tmp, 38)
   33021       412384 :          pack_tmp = ISHFT(pack_tmp, -38)
   33022       412384 :          idata = idata + 1
   33023       412384 :          data_tmp = full_data(idata)
   33024       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33025       412384 :          data_tmp = IAND(data_tmp, mask_left(38))
   33026       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33027       412384 :          ipack = ipack + 1
   33028       412384 :          packed_data(ipack) = pack_tmp
   33029       412384 :          data_tmp = full_data(idata)
   33030       412384 :          pack_tmp = ISHFT(data_tmp, 59)
   33031       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33032       412384 :          idata = idata + 1
   33033       412384 :          data_tmp = full_data(idata)
   33034       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33035       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33036       412384 :          pack_tmp = ISHFT(pack_tmp, -16)
   33037       412384 :          idata = idata + 1
   33038       412384 :          data_tmp = full_data(idata)
   33039       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33040       412384 :          data_tmp = IAND(data_tmp, mask_left(16))
   33041       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33042       412384 :          ipack = ipack + 1
   33043       412384 :          packed_data(ipack) = pack_tmp
   33044       412384 :          data_tmp = full_data(idata)
   33045       412384 :          pack_tmp = ISHFT(data_tmp, 37)
   33046       412384 :          pack_tmp = ISHFT(pack_tmp, -37)
   33047       412384 :          idata = idata + 1
   33048       412384 :          data_tmp = full_data(idata)
   33049       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33050       412384 :          data_tmp = IAND(data_tmp, mask_left(37))
   33051       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33052       412384 :          ipack = ipack + 1
   33053       412384 :          packed_data(ipack) = pack_tmp
   33054       412384 :          data_tmp = full_data(idata)
   33055       412384 :          pack_tmp = ISHFT(data_tmp, 58)
   33056       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33057       412384 :          idata = idata + 1
   33058       412384 :          data_tmp = full_data(idata)
   33059       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33060       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33061       412384 :          pack_tmp = ISHFT(pack_tmp, -15)
   33062       412384 :          idata = idata + 1
   33063       412384 :          data_tmp = full_data(idata)
   33064       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33065       412384 :          data_tmp = IAND(data_tmp, mask_left(15))
   33066       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33067       412384 :          ipack = ipack + 1
   33068       412384 :          packed_data(ipack) = pack_tmp
   33069       412384 :          data_tmp = full_data(idata)
   33070       412384 :          pack_tmp = ISHFT(data_tmp, 36)
   33071       412384 :          pack_tmp = ISHFT(pack_tmp, -36)
   33072       412384 :          idata = idata + 1
   33073       412384 :          data_tmp = full_data(idata)
   33074       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33075       412384 :          data_tmp = IAND(data_tmp, mask_left(36))
   33076       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33077       412384 :          ipack = ipack + 1
   33078       412384 :          packed_data(ipack) = pack_tmp
   33079       412384 :          data_tmp = full_data(idata)
   33080       412384 :          pack_tmp = ISHFT(data_tmp, 57)
   33081       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33082       412384 :          idata = idata + 1
   33083       412384 :          data_tmp = full_data(idata)
   33084       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33085       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33086       412384 :          pack_tmp = ISHFT(pack_tmp, -14)
   33087       412384 :          idata = idata + 1
   33088       412384 :          data_tmp = full_data(idata)
   33089       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33090       412384 :          data_tmp = IAND(data_tmp, mask_left(14))
   33091       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33092       412384 :          ipack = ipack + 1
   33093       412384 :          packed_data(ipack) = pack_tmp
   33094       412384 :          data_tmp = full_data(idata)
   33095       412384 :          pack_tmp = ISHFT(data_tmp, 35)
   33096       412384 :          pack_tmp = ISHFT(pack_tmp, -35)
   33097       412384 :          idata = idata + 1
   33098       412384 :          data_tmp = full_data(idata)
   33099       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33100       412384 :          data_tmp = IAND(data_tmp, mask_left(35))
   33101       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33102       412384 :          ipack = ipack + 1
   33103       412384 :          packed_data(ipack) = pack_tmp
   33104       412384 :          data_tmp = full_data(idata)
   33105       412384 :          pack_tmp = ISHFT(data_tmp, 56)
   33106       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33107       412384 :          idata = idata + 1
   33108       412384 :          data_tmp = full_data(idata)
   33109       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33110       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33111       412384 :          pack_tmp = ISHFT(pack_tmp, -13)
   33112       412384 :          idata = idata + 1
   33113       412384 :          data_tmp = full_data(idata)
   33114       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33115       412384 :          data_tmp = IAND(data_tmp, mask_left(13))
   33116       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33117       412384 :          ipack = ipack + 1
   33118       412384 :          packed_data(ipack) = pack_tmp
   33119       412384 :          data_tmp = full_data(idata)
   33120       412384 :          pack_tmp = ISHFT(data_tmp, 34)
   33121       412384 :          pack_tmp = ISHFT(pack_tmp, -34)
   33122       412384 :          idata = idata + 1
   33123       412384 :          data_tmp = full_data(idata)
   33124       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33125       412384 :          data_tmp = IAND(data_tmp, mask_left(34))
   33126       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33127       412384 :          ipack = ipack + 1
   33128       412384 :          packed_data(ipack) = pack_tmp
   33129       412384 :          data_tmp = full_data(idata)
   33130       412384 :          pack_tmp = ISHFT(data_tmp, 55)
   33131       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33132       412384 :          idata = idata + 1
   33133       412384 :          data_tmp = full_data(idata)
   33134       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33135       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33136       412384 :          pack_tmp = ISHFT(pack_tmp, -12)
   33137       412384 :          idata = idata + 1
   33138       412384 :          data_tmp = full_data(idata)
   33139       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33140       412384 :          data_tmp = IAND(data_tmp, mask_left(12))
   33141       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33142       412384 :          ipack = ipack + 1
   33143       412384 :          packed_data(ipack) = pack_tmp
   33144       412384 :          data_tmp = full_data(idata)
   33145       412384 :          pack_tmp = ISHFT(data_tmp, 33)
   33146       412384 :          pack_tmp = ISHFT(pack_tmp, -33)
   33147       412384 :          idata = idata + 1
   33148       412384 :          data_tmp = full_data(idata)
   33149       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33150       412384 :          data_tmp = IAND(data_tmp, mask_left(33))
   33151       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33152       412384 :          ipack = ipack + 1
   33153       412384 :          packed_data(ipack) = pack_tmp
   33154       412384 :          data_tmp = full_data(idata)
   33155       412384 :          pack_tmp = ISHFT(data_tmp, 54)
   33156       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33157       412384 :          idata = idata + 1
   33158       412384 :          data_tmp = full_data(idata)
   33159       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33160       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33161       412384 :          pack_tmp = ISHFT(pack_tmp, -11)
   33162       412384 :          idata = idata + 1
   33163       412384 :          data_tmp = full_data(idata)
   33164       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33165       412384 :          data_tmp = IAND(data_tmp, mask_left(11))
   33166       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33167       412384 :          ipack = ipack + 1
   33168       412384 :          packed_data(ipack) = pack_tmp
   33169       412384 :          data_tmp = full_data(idata)
   33170       412384 :          pack_tmp = ISHFT(data_tmp, 32)
   33171       412384 :          pack_tmp = ISHFT(pack_tmp, -32)
   33172       412384 :          idata = idata + 1
   33173       412384 :          data_tmp = full_data(idata)
   33174       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33175       412384 :          data_tmp = IAND(data_tmp, mask_left(32))
   33176       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33177       412384 :          ipack = ipack + 1
   33178       412384 :          packed_data(ipack) = pack_tmp
   33179       412384 :          data_tmp = full_data(idata)
   33180       412384 :          pack_tmp = ISHFT(data_tmp, 53)
   33181       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33182       412384 :          idata = idata + 1
   33183       412384 :          data_tmp = full_data(idata)
   33184       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33185       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33186       412384 :          pack_tmp = ISHFT(pack_tmp, -10)
   33187       412384 :          idata = idata + 1
   33188       412384 :          data_tmp = full_data(idata)
   33189       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33190       412384 :          data_tmp = IAND(data_tmp, mask_left(10))
   33191       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33192       412384 :          ipack = ipack + 1
   33193       412384 :          packed_data(ipack) = pack_tmp
   33194       412384 :          data_tmp = full_data(idata)
   33195       412384 :          pack_tmp = ISHFT(data_tmp, 31)
   33196       412384 :          pack_tmp = ISHFT(pack_tmp, -31)
   33197       412384 :          idata = idata + 1
   33198       412384 :          data_tmp = full_data(idata)
   33199       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33200       412384 :          data_tmp = IAND(data_tmp, mask_left(31))
   33201       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33202       412384 :          ipack = ipack + 1
   33203       412384 :          packed_data(ipack) = pack_tmp
   33204       412384 :          data_tmp = full_data(idata)
   33205       412384 :          pack_tmp = ISHFT(data_tmp, 52)
   33206       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33207       412384 :          idata = idata + 1
   33208       412384 :          data_tmp = full_data(idata)
   33209       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33210       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33211       412384 :          pack_tmp = ISHFT(pack_tmp, -9)
   33212       412384 :          idata = idata + 1
   33213       412384 :          data_tmp = full_data(idata)
   33214       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33215       412384 :          data_tmp = IAND(data_tmp, mask_left(9))
   33216       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33217       412384 :          ipack = ipack + 1
   33218       412384 :          packed_data(ipack) = pack_tmp
   33219       412384 :          data_tmp = full_data(idata)
   33220       412384 :          pack_tmp = ISHFT(data_tmp, 30)
   33221       412384 :          pack_tmp = ISHFT(pack_tmp, -30)
   33222       412384 :          idata = idata + 1
   33223       412384 :          data_tmp = full_data(idata)
   33224       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33225       412384 :          data_tmp = IAND(data_tmp, mask_left(30))
   33226       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33227       412384 :          ipack = ipack + 1
   33228       412384 :          packed_data(ipack) = pack_tmp
   33229       412384 :          data_tmp = full_data(idata)
   33230       412384 :          pack_tmp = ISHFT(data_tmp, 51)
   33231       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33232       412384 :          idata = idata + 1
   33233       412384 :          data_tmp = full_data(idata)
   33234       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33235       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33236       412384 :          pack_tmp = ISHFT(pack_tmp, -8)
   33237       412384 :          idata = idata + 1
   33238       412384 :          data_tmp = full_data(idata)
   33239       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33240       412384 :          data_tmp = IAND(data_tmp, mask_left(8))
   33241       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33242       412384 :          ipack = ipack + 1
   33243       412384 :          packed_data(ipack) = pack_tmp
   33244       412384 :          data_tmp = full_data(idata)
   33245       412384 :          pack_tmp = ISHFT(data_tmp, 29)
   33246       412384 :          pack_tmp = ISHFT(pack_tmp, -29)
   33247       412384 :          idata = idata + 1
   33248       412384 :          data_tmp = full_data(idata)
   33249       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33250       412384 :          data_tmp = IAND(data_tmp, mask_left(29))
   33251       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33252       412384 :          ipack = ipack + 1
   33253       412384 :          packed_data(ipack) = pack_tmp
   33254       412384 :          data_tmp = full_data(idata)
   33255       412384 :          pack_tmp = ISHFT(data_tmp, 50)
   33256       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33257       412384 :          idata = idata + 1
   33258       412384 :          data_tmp = full_data(idata)
   33259       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33260       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33261       412384 :          pack_tmp = ISHFT(pack_tmp, -7)
   33262       412384 :          idata = idata + 1
   33263       412384 :          data_tmp = full_data(idata)
   33264       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33265       412384 :          data_tmp = IAND(data_tmp, mask_left(7))
   33266       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33267       412384 :          ipack = ipack + 1
   33268       412384 :          packed_data(ipack) = pack_tmp
   33269       412384 :          data_tmp = full_data(idata)
   33270       412384 :          pack_tmp = ISHFT(data_tmp, 28)
   33271       412384 :          pack_tmp = ISHFT(pack_tmp, -28)
   33272       412384 :          idata = idata + 1
   33273       412384 :          data_tmp = full_data(idata)
   33274       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33275       412384 :          data_tmp = IAND(data_tmp, mask_left(28))
   33276       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33277       412384 :          ipack = ipack + 1
   33278       412384 :          packed_data(ipack) = pack_tmp
   33279       412384 :          data_tmp = full_data(idata)
   33280       412384 :          pack_tmp = ISHFT(data_tmp, 49)
   33281       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33282       412384 :          idata = idata + 1
   33283       412384 :          data_tmp = full_data(idata)
   33284       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33285       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33286       412384 :          pack_tmp = ISHFT(pack_tmp, -6)
   33287       412384 :          idata = idata + 1
   33288       412384 :          data_tmp = full_data(idata)
   33289       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33290       412384 :          data_tmp = IAND(data_tmp, mask_left(6))
   33291       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33292       412384 :          ipack = ipack + 1
   33293       412384 :          packed_data(ipack) = pack_tmp
   33294       412384 :          data_tmp = full_data(idata)
   33295       412384 :          pack_tmp = ISHFT(data_tmp, 27)
   33296       412384 :          pack_tmp = ISHFT(pack_tmp, -27)
   33297       412384 :          idata = idata + 1
   33298       412384 :          data_tmp = full_data(idata)
   33299       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33300       412384 :          data_tmp = IAND(data_tmp, mask_left(27))
   33301       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33302       412384 :          ipack = ipack + 1
   33303       412384 :          packed_data(ipack) = pack_tmp
   33304       412384 :          data_tmp = full_data(idata)
   33305       412384 :          pack_tmp = ISHFT(data_tmp, 48)
   33306       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33307       412384 :          idata = idata + 1
   33308       412384 :          data_tmp = full_data(idata)
   33309       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33310       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33311       412384 :          pack_tmp = ISHFT(pack_tmp, -5)
   33312       412384 :          idata = idata + 1
   33313       412384 :          data_tmp = full_data(idata)
   33314       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33315       412384 :          data_tmp = IAND(data_tmp, mask_left(5))
   33316       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33317       412384 :          ipack = ipack + 1
   33318       412384 :          packed_data(ipack) = pack_tmp
   33319       412384 :          data_tmp = full_data(idata)
   33320       412384 :          pack_tmp = ISHFT(data_tmp, 26)
   33321       412384 :          pack_tmp = ISHFT(pack_tmp, -26)
   33322       412384 :          idata = idata + 1
   33323       412384 :          data_tmp = full_data(idata)
   33324       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33325       412384 :          data_tmp = IAND(data_tmp, mask_left(26))
   33326       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33327       412384 :          ipack = ipack + 1
   33328       412384 :          packed_data(ipack) = pack_tmp
   33329       412384 :          data_tmp = full_data(idata)
   33330       412384 :          pack_tmp = ISHFT(data_tmp, 47)
   33331       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33332       412384 :          idata = idata + 1
   33333       412384 :          data_tmp = full_data(idata)
   33334       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33335       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33336       412384 :          pack_tmp = ISHFT(pack_tmp, -4)
   33337       412384 :          idata = idata + 1
   33338       412384 :          data_tmp = full_data(idata)
   33339       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33340       412384 :          data_tmp = IAND(data_tmp, mask_left(4))
   33341       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33342       412384 :          ipack = ipack + 1
   33343       412384 :          packed_data(ipack) = pack_tmp
   33344       412384 :          data_tmp = full_data(idata)
   33345       412384 :          pack_tmp = ISHFT(data_tmp, 25)
   33346       412384 :          pack_tmp = ISHFT(pack_tmp, -25)
   33347       412384 :          idata = idata + 1
   33348       412384 :          data_tmp = full_data(idata)
   33349       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33350       412384 :          data_tmp = IAND(data_tmp, mask_left(25))
   33351       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33352       412384 :          ipack = ipack + 1
   33353       412384 :          packed_data(ipack) = pack_tmp
   33354       412384 :          data_tmp = full_data(idata)
   33355       412384 :          pack_tmp = ISHFT(data_tmp, 46)
   33356       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33357       412384 :          idata = idata + 1
   33358       412384 :          data_tmp = full_data(idata)
   33359       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33360       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33361       412384 :          pack_tmp = ISHFT(pack_tmp, -3)
   33362       412384 :          idata = idata + 1
   33363       412384 :          data_tmp = full_data(idata)
   33364       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33365       412384 :          data_tmp = IAND(data_tmp, mask_left(3))
   33366       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33367       412384 :          ipack = ipack + 1
   33368       412384 :          packed_data(ipack) = pack_tmp
   33369       412384 :          data_tmp = full_data(idata)
   33370       412384 :          pack_tmp = ISHFT(data_tmp, 24)
   33371       412384 :          pack_tmp = ISHFT(pack_tmp, -24)
   33372       412384 :          idata = idata + 1
   33373       412384 :          data_tmp = full_data(idata)
   33374       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33375       412384 :          data_tmp = IAND(data_tmp, mask_left(24))
   33376       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33377       412384 :          ipack = ipack + 1
   33378       412384 :          packed_data(ipack) = pack_tmp
   33379       412384 :          data_tmp = full_data(idata)
   33380       412384 :          pack_tmp = ISHFT(data_tmp, 45)
   33381       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33382       412384 :          idata = idata + 1
   33383       412384 :          data_tmp = full_data(idata)
   33384       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33385       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33386       412384 :          pack_tmp = ISHFT(pack_tmp, -2)
   33387       412384 :          idata = idata + 1
   33388       412384 :          data_tmp = full_data(idata)
   33389       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33390       412384 :          data_tmp = IAND(data_tmp, mask_left(2))
   33391       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33392       412384 :          ipack = ipack + 1
   33393       412384 :          packed_data(ipack) = pack_tmp
   33394       412384 :          data_tmp = full_data(idata)
   33395       412384 :          pack_tmp = ISHFT(data_tmp, 23)
   33396       412384 :          pack_tmp = ISHFT(pack_tmp, -23)
   33397       412384 :          idata = idata + 1
   33398       412384 :          data_tmp = full_data(idata)
   33399       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33400       412384 :          data_tmp = IAND(data_tmp, mask_left(23))
   33401       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33402       412384 :          ipack = ipack + 1
   33403       412384 :          packed_data(ipack) = pack_tmp
   33404       412384 :          data_tmp = full_data(idata)
   33405       412384 :          pack_tmp = ISHFT(data_tmp, 44)
   33406       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33407       412384 :          idata = idata + 1
   33408       412384 :          data_tmp = full_data(idata)
   33409       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33410       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33411       412384 :          pack_tmp = ISHFT(pack_tmp, -1)
   33412       412384 :          idata = idata + 1
   33413       412384 :          data_tmp = full_data(idata)
   33414       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33415       412384 :          data_tmp = IAND(data_tmp, mask_left(1))
   33416       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33417       412384 :          ipack = ipack + 1
   33418       412384 :          packed_data(ipack) = pack_tmp
   33419       412384 :          data_tmp = full_data(idata)
   33420       412384 :          pack_tmp = ISHFT(data_tmp, 22)
   33421       412384 :          pack_tmp = ISHFT(pack_tmp, -22)
   33422       412384 :          idata = idata + 1
   33423       412384 :          data_tmp = full_data(idata)
   33424       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33425       412384 :          data_tmp = IAND(data_tmp, mask_left(22))
   33426       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33427       412384 :          ipack = ipack + 1
   33428       412384 :          packed_data(ipack) = pack_tmp
   33429       412384 :          data_tmp = full_data(idata)
   33430       412384 :          pack_tmp = ISHFT(data_tmp, 43)
   33431       412384 :          pack_tmp = ISHFT(pack_tmp, -43)
   33432       412384 :          idata = idata + 1
   33433       412384 :          data_tmp = full_data(idata)
   33434       412384 :          data_tmp = ISHFT(data_tmp, 21)
   33435       412384 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33436              :          pack_tmp = ISHFT(pack_tmp, 0)
   33437       412384 :          pack_tmp = ISHFT(pack_tmp, 0)
   33438       412384 :          ipack = ipack + 1
   33439       412699 :          packed_data(ipack) = pack_tmp
   33440              :       END DO
   33441        27134 :       IF (Ndata_rep < Ndata) THEN
   33442         2560 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   33443              :       END IF
   33444        27134 :    END SUBROUTINE ints2bits_43
   33445              : 
   33446              : ! **************************************************************************************************
   33447              : !> \brief ...
   33448              : !> \param Ndata ...
   33449              : !> \param packed_data ...
   33450              : !> \param full_data ...
   33451              : ! **************************************************************************************************
   33452       119661 :    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       119661 :       ipack = 0
   33463       119661 :       idata = 0
   33464       119661 :       pack_tmp = 0
   33465       119661 :       Ndata_rep = (Ndata/64)*64
   33466       119661 :       DO kdata = 1, Ndata_rep, 64
   33467      1754198 :          idata = idata + 1
   33468      1754198 :          data_tmp = ISHFT(pack_tmp, 43)
   33469      1754198 :          ipack = ipack + 1
   33470      1754198 :          pack_tmp = packed_data(ipack)
   33471      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   33472      1754198 :          pack_tmp = ISHFT(pack_tmp, -43)
   33473      1754198 :          idata = idata + 1
   33474      1754198 :          data_tmp = ISHFT(pack_tmp, 22)
   33475      1754198 :          ipack = ipack + 1
   33476      1754198 :          pack_tmp = packed_data(ipack)
   33477      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   33478      1754198 :          pack_tmp = ISHFT(pack_tmp, -22)
   33479      1754198 :          idata = idata + 1
   33480      1754198 :          data_tmp = ISHFT(pack_tmp, 1)
   33481      1754198 :          ipack = ipack + 1
   33482      1754198 :          pack_tmp = packed_data(ipack)
   33483      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   33484      1754198 :          pack_tmp = ISHFT(pack_tmp, -1)
   33485      1754198 :          idata = idata + 1
   33486      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33487      1754198 :          full_data(idata) = data_tmp
   33488      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33489      1754198 :          idata = idata + 1
   33490      1754198 :          data_tmp = ISHFT(pack_tmp, 23)
   33491      1754198 :          ipack = ipack + 1
   33492      1754198 :          pack_tmp = packed_data(ipack)
   33493      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   33494      1754198 :          pack_tmp = ISHFT(pack_tmp, -23)
   33495      1754198 :          idata = idata + 1
   33496      1754198 :          data_tmp = ISHFT(pack_tmp, 2)
   33497      1754198 :          ipack = ipack + 1
   33498      1754198 :          pack_tmp = packed_data(ipack)
   33499      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   33500      1754198 :          pack_tmp = ISHFT(pack_tmp, -2)
   33501      1754198 :          idata = idata + 1
   33502      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33503      1754198 :          full_data(idata) = data_tmp
   33504      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33505      1754198 :          idata = idata + 1
   33506      1754198 :          data_tmp = ISHFT(pack_tmp, 24)
   33507      1754198 :          ipack = ipack + 1
   33508      1754198 :          pack_tmp = packed_data(ipack)
   33509      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   33510      1754198 :          pack_tmp = ISHFT(pack_tmp, -24)
   33511      1754198 :          idata = idata + 1
   33512      1754198 :          data_tmp = ISHFT(pack_tmp, 3)
   33513      1754198 :          ipack = ipack + 1
   33514      1754198 :          pack_tmp = packed_data(ipack)
   33515      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   33516      1754198 :          pack_tmp = ISHFT(pack_tmp, -3)
   33517      1754198 :          idata = idata + 1
   33518      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33519      1754198 :          full_data(idata) = data_tmp
   33520      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33521      1754198 :          idata = idata + 1
   33522      1754198 :          data_tmp = ISHFT(pack_tmp, 25)
   33523      1754198 :          ipack = ipack + 1
   33524      1754198 :          pack_tmp = packed_data(ipack)
   33525      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   33526      1754198 :          pack_tmp = ISHFT(pack_tmp, -25)
   33527      1754198 :          idata = idata + 1
   33528      1754198 :          data_tmp = ISHFT(pack_tmp, 4)
   33529      1754198 :          ipack = ipack + 1
   33530      1754198 :          pack_tmp = packed_data(ipack)
   33531      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   33532      1754198 :          pack_tmp = ISHFT(pack_tmp, -4)
   33533      1754198 :          idata = idata + 1
   33534      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33535      1754198 :          full_data(idata) = data_tmp
   33536      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33537      1754198 :          idata = idata + 1
   33538      1754198 :          data_tmp = ISHFT(pack_tmp, 26)
   33539      1754198 :          ipack = ipack + 1
   33540      1754198 :          pack_tmp = packed_data(ipack)
   33541      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   33542      1754198 :          pack_tmp = ISHFT(pack_tmp, -26)
   33543      1754198 :          idata = idata + 1
   33544      1754198 :          data_tmp = ISHFT(pack_tmp, 5)
   33545      1754198 :          ipack = ipack + 1
   33546      1754198 :          pack_tmp = packed_data(ipack)
   33547      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   33548      1754198 :          pack_tmp = ISHFT(pack_tmp, -5)
   33549      1754198 :          idata = idata + 1
   33550      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33551      1754198 :          full_data(idata) = data_tmp
   33552      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33553      1754198 :          idata = idata + 1
   33554      1754198 :          data_tmp = ISHFT(pack_tmp, 27)
   33555      1754198 :          ipack = ipack + 1
   33556      1754198 :          pack_tmp = packed_data(ipack)
   33557      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   33558      1754198 :          pack_tmp = ISHFT(pack_tmp, -27)
   33559      1754198 :          idata = idata + 1
   33560      1754198 :          data_tmp = ISHFT(pack_tmp, 6)
   33561      1754198 :          ipack = ipack + 1
   33562      1754198 :          pack_tmp = packed_data(ipack)
   33563      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   33564      1754198 :          pack_tmp = ISHFT(pack_tmp, -6)
   33565      1754198 :          idata = idata + 1
   33566      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33567      1754198 :          full_data(idata) = data_tmp
   33568      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33569      1754198 :          idata = idata + 1
   33570      1754198 :          data_tmp = ISHFT(pack_tmp, 28)
   33571      1754198 :          ipack = ipack + 1
   33572      1754198 :          pack_tmp = packed_data(ipack)
   33573      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   33574      1754198 :          pack_tmp = ISHFT(pack_tmp, -28)
   33575      1754198 :          idata = idata + 1
   33576      1754198 :          data_tmp = ISHFT(pack_tmp, 7)
   33577      1754198 :          ipack = ipack + 1
   33578      1754198 :          pack_tmp = packed_data(ipack)
   33579      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   33580      1754198 :          pack_tmp = ISHFT(pack_tmp, -7)
   33581      1754198 :          idata = idata + 1
   33582      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33583      1754198 :          full_data(idata) = data_tmp
   33584      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33585      1754198 :          idata = idata + 1
   33586      1754198 :          data_tmp = ISHFT(pack_tmp, 29)
   33587      1754198 :          ipack = ipack + 1
   33588      1754198 :          pack_tmp = packed_data(ipack)
   33589      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   33590      1754198 :          pack_tmp = ISHFT(pack_tmp, -29)
   33591      1754198 :          idata = idata + 1
   33592      1754198 :          data_tmp = ISHFT(pack_tmp, 8)
   33593      1754198 :          ipack = ipack + 1
   33594      1754198 :          pack_tmp = packed_data(ipack)
   33595      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   33596      1754198 :          pack_tmp = ISHFT(pack_tmp, -8)
   33597      1754198 :          idata = idata + 1
   33598      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33599      1754198 :          full_data(idata) = data_tmp
   33600      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33601      1754198 :          idata = idata + 1
   33602      1754198 :          data_tmp = ISHFT(pack_tmp, 30)
   33603      1754198 :          ipack = ipack + 1
   33604      1754198 :          pack_tmp = packed_data(ipack)
   33605      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   33606      1754198 :          pack_tmp = ISHFT(pack_tmp, -30)
   33607      1754198 :          idata = idata + 1
   33608      1754198 :          data_tmp = ISHFT(pack_tmp, 9)
   33609      1754198 :          ipack = ipack + 1
   33610      1754198 :          pack_tmp = packed_data(ipack)
   33611      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   33612      1754198 :          pack_tmp = ISHFT(pack_tmp, -9)
   33613      1754198 :          idata = idata + 1
   33614      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33615      1754198 :          full_data(idata) = data_tmp
   33616      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33617      1754198 :          idata = idata + 1
   33618      1754198 :          data_tmp = ISHFT(pack_tmp, 31)
   33619      1754198 :          ipack = ipack + 1
   33620      1754198 :          pack_tmp = packed_data(ipack)
   33621      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   33622      1754198 :          pack_tmp = ISHFT(pack_tmp, -31)
   33623      1754198 :          idata = idata + 1
   33624      1754198 :          data_tmp = ISHFT(pack_tmp, 10)
   33625      1754198 :          ipack = ipack + 1
   33626      1754198 :          pack_tmp = packed_data(ipack)
   33627      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   33628      1754198 :          pack_tmp = ISHFT(pack_tmp, -10)
   33629      1754198 :          idata = idata + 1
   33630      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33631      1754198 :          full_data(idata) = data_tmp
   33632      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33633      1754198 :          idata = idata + 1
   33634      1754198 :          data_tmp = ISHFT(pack_tmp, 32)
   33635      1754198 :          ipack = ipack + 1
   33636      1754198 :          pack_tmp = packed_data(ipack)
   33637      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   33638      1754198 :          pack_tmp = ISHFT(pack_tmp, -32)
   33639      1754198 :          idata = idata + 1
   33640      1754198 :          data_tmp = ISHFT(pack_tmp, 11)
   33641      1754198 :          ipack = ipack + 1
   33642      1754198 :          pack_tmp = packed_data(ipack)
   33643      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   33644      1754198 :          pack_tmp = ISHFT(pack_tmp, -11)
   33645      1754198 :          idata = idata + 1
   33646      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33647      1754198 :          full_data(idata) = data_tmp
   33648      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33649      1754198 :          idata = idata + 1
   33650      1754198 :          data_tmp = ISHFT(pack_tmp, 33)
   33651      1754198 :          ipack = ipack + 1
   33652      1754198 :          pack_tmp = packed_data(ipack)
   33653      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   33654      1754198 :          pack_tmp = ISHFT(pack_tmp, -33)
   33655      1754198 :          idata = idata + 1
   33656      1754198 :          data_tmp = ISHFT(pack_tmp, 12)
   33657      1754198 :          ipack = ipack + 1
   33658      1754198 :          pack_tmp = packed_data(ipack)
   33659      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   33660      1754198 :          pack_tmp = ISHFT(pack_tmp, -12)
   33661      1754198 :          idata = idata + 1
   33662      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33663      1754198 :          full_data(idata) = data_tmp
   33664      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33665      1754198 :          idata = idata + 1
   33666      1754198 :          data_tmp = ISHFT(pack_tmp, 34)
   33667      1754198 :          ipack = ipack + 1
   33668      1754198 :          pack_tmp = packed_data(ipack)
   33669      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   33670      1754198 :          pack_tmp = ISHFT(pack_tmp, -34)
   33671      1754198 :          idata = idata + 1
   33672      1754198 :          data_tmp = ISHFT(pack_tmp, 13)
   33673      1754198 :          ipack = ipack + 1
   33674      1754198 :          pack_tmp = packed_data(ipack)
   33675      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   33676      1754198 :          pack_tmp = ISHFT(pack_tmp, -13)
   33677      1754198 :          idata = idata + 1
   33678      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33679      1754198 :          full_data(idata) = data_tmp
   33680      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33681      1754198 :          idata = idata + 1
   33682      1754198 :          data_tmp = ISHFT(pack_tmp, 35)
   33683      1754198 :          ipack = ipack + 1
   33684      1754198 :          pack_tmp = packed_data(ipack)
   33685      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   33686      1754198 :          pack_tmp = ISHFT(pack_tmp, -35)
   33687      1754198 :          idata = idata + 1
   33688      1754198 :          data_tmp = ISHFT(pack_tmp, 14)
   33689      1754198 :          ipack = ipack + 1
   33690      1754198 :          pack_tmp = packed_data(ipack)
   33691      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   33692      1754198 :          pack_tmp = ISHFT(pack_tmp, -14)
   33693      1754198 :          idata = idata + 1
   33694      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33695      1754198 :          full_data(idata) = data_tmp
   33696      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33697      1754198 :          idata = idata + 1
   33698      1754198 :          data_tmp = ISHFT(pack_tmp, 36)
   33699      1754198 :          ipack = ipack + 1
   33700      1754198 :          pack_tmp = packed_data(ipack)
   33701      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   33702      1754198 :          pack_tmp = ISHFT(pack_tmp, -36)
   33703      1754198 :          idata = idata + 1
   33704      1754198 :          data_tmp = ISHFT(pack_tmp, 15)
   33705      1754198 :          ipack = ipack + 1
   33706      1754198 :          pack_tmp = packed_data(ipack)
   33707      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   33708      1754198 :          pack_tmp = ISHFT(pack_tmp, -15)
   33709      1754198 :          idata = idata + 1
   33710      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33711      1754198 :          full_data(idata) = data_tmp
   33712      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33713      1754198 :          idata = idata + 1
   33714      1754198 :          data_tmp = ISHFT(pack_tmp, 37)
   33715      1754198 :          ipack = ipack + 1
   33716      1754198 :          pack_tmp = packed_data(ipack)
   33717      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   33718      1754198 :          pack_tmp = ISHFT(pack_tmp, -37)
   33719      1754198 :          idata = idata + 1
   33720      1754198 :          data_tmp = ISHFT(pack_tmp, 16)
   33721      1754198 :          ipack = ipack + 1
   33722      1754198 :          pack_tmp = packed_data(ipack)
   33723      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   33724      1754198 :          pack_tmp = ISHFT(pack_tmp, -16)
   33725      1754198 :          idata = idata + 1
   33726      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33727      1754198 :          full_data(idata) = data_tmp
   33728      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33729      1754198 :          idata = idata + 1
   33730      1754198 :          data_tmp = ISHFT(pack_tmp, 38)
   33731      1754198 :          ipack = ipack + 1
   33732      1754198 :          pack_tmp = packed_data(ipack)
   33733      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   33734      1754198 :          pack_tmp = ISHFT(pack_tmp, -38)
   33735      1754198 :          idata = idata + 1
   33736      1754198 :          data_tmp = ISHFT(pack_tmp, 17)
   33737      1754198 :          ipack = ipack + 1
   33738      1754198 :          pack_tmp = packed_data(ipack)
   33739      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   33740      1754198 :          pack_tmp = ISHFT(pack_tmp, -17)
   33741      1754198 :          idata = idata + 1
   33742      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33743      1754198 :          full_data(idata) = data_tmp
   33744      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33745      1754198 :          idata = idata + 1
   33746      1754198 :          data_tmp = ISHFT(pack_tmp, 39)
   33747      1754198 :          ipack = ipack + 1
   33748      1754198 :          pack_tmp = packed_data(ipack)
   33749      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   33750      1754198 :          pack_tmp = ISHFT(pack_tmp, -39)
   33751      1754198 :          idata = idata + 1
   33752      1754198 :          data_tmp = ISHFT(pack_tmp, 18)
   33753      1754198 :          ipack = ipack + 1
   33754      1754198 :          pack_tmp = packed_data(ipack)
   33755      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   33756      1754198 :          pack_tmp = ISHFT(pack_tmp, -18)
   33757      1754198 :          idata = idata + 1
   33758      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33759      1754198 :          full_data(idata) = data_tmp
   33760      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33761      1754198 :          idata = idata + 1
   33762      1754198 :          data_tmp = ISHFT(pack_tmp, 40)
   33763      1754198 :          ipack = ipack + 1
   33764      1754198 :          pack_tmp = packed_data(ipack)
   33765      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   33766      1754198 :          pack_tmp = ISHFT(pack_tmp, -40)
   33767      1754198 :          idata = idata + 1
   33768      1754198 :          data_tmp = ISHFT(pack_tmp, 19)
   33769      1754198 :          ipack = ipack + 1
   33770      1754198 :          pack_tmp = packed_data(ipack)
   33771      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   33772      1754198 :          pack_tmp = ISHFT(pack_tmp, -19)
   33773      1754198 :          idata = idata + 1
   33774      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33775      1754198 :          full_data(idata) = data_tmp
   33776      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33777      1754198 :          idata = idata + 1
   33778      1754198 :          data_tmp = ISHFT(pack_tmp, 41)
   33779      1754198 :          ipack = ipack + 1
   33780      1754198 :          pack_tmp = packed_data(ipack)
   33781      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   33782      1754198 :          pack_tmp = ISHFT(pack_tmp, -41)
   33783      1754198 :          idata = idata + 1
   33784      1754198 :          data_tmp = ISHFT(pack_tmp, 20)
   33785      1754198 :          ipack = ipack + 1
   33786      1754198 :          pack_tmp = packed_data(ipack)
   33787      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   33788      1754198 :          pack_tmp = ISHFT(pack_tmp, -20)
   33789      1754198 :          idata = idata + 1
   33790      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33791      1754198 :          full_data(idata) = data_tmp
   33792      1754198 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33793      1754198 :          idata = idata + 1
   33794      1754198 :          data_tmp = ISHFT(pack_tmp, 42)
   33795      1754198 :          ipack = ipack + 1
   33796      1754198 :          pack_tmp = packed_data(ipack)
   33797      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   33798      1754198 :          pack_tmp = ISHFT(pack_tmp, -42)
   33799      1754198 :          idata = idata + 1
   33800      1754198 :          data_tmp = ISHFT(pack_tmp, 21)
   33801      1754198 :          ipack = ipack + 1
   33802      1754198 :          pack_tmp = packed_data(ipack)
   33803      1754198 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   33804      1754198 :          pack_tmp = ISHFT(pack_tmp, -21)
   33805      1754198 :          idata = idata + 1
   33806      1754198 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   33807      1754198 :          full_data(idata) = data_tmp
   33808      1756723 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   33809              :       END DO
   33810       119661 :       IF (Ndata_rep < Ndata) THEN
   33811        18868 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   33812              :       END IF
   33813       119661 :    END SUBROUTINE bits2ints_43
   33814              : 
   33815              : ! **************************************************************************************************
   33816              : !> \brief ...
   33817              : !> \param Ndata ...
   33818              : !> \param packed_data ...
   33819              : !> \param full_data ...
   33820              : ! **************************************************************************************************
   33821        28263 :    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        28263 :       idata = 0
   33832        28263 :       ipack = 0
   33833        28263 :       Ndata_rep = (Ndata/64)*64
   33834        28263 :       DO kdata = 1, Ndata_rep, 64
   33835       421608 :          pack_tmp = 0
   33836       421608 :          idata = idata + 1
   33837       421608 :          data_tmp = full_data(idata)
   33838       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33839       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33840       421608 :          pack_tmp = ISHFT(pack_tmp, -20)
   33841       421608 :          idata = idata + 1
   33842       421608 :          data_tmp = full_data(idata)
   33843       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33844       421608 :          data_tmp = IAND(data_tmp, mask_left(20))
   33845       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33846       421608 :          ipack = ipack + 1
   33847       421608 :          packed_data(ipack) = pack_tmp
   33848       421608 :          data_tmp = full_data(idata)
   33849       421608 :          pack_tmp = ISHFT(data_tmp, 40)
   33850       421608 :          pack_tmp = ISHFT(pack_tmp, -40)
   33851       421608 :          idata = idata + 1
   33852       421608 :          data_tmp = full_data(idata)
   33853       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33854       421608 :          data_tmp = IAND(data_tmp, mask_left(40))
   33855       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33856       421608 :          ipack = ipack + 1
   33857       421608 :          packed_data(ipack) = pack_tmp
   33858       421608 :          data_tmp = full_data(idata)
   33859       421608 :          pack_tmp = ISHFT(data_tmp, 60)
   33860       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   33861       421608 :          idata = idata + 1
   33862       421608 :          data_tmp = full_data(idata)
   33863       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33864       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33865       421608 :          pack_tmp = ISHFT(pack_tmp, -16)
   33866       421608 :          idata = idata + 1
   33867       421608 :          data_tmp = full_data(idata)
   33868       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33869       421608 :          data_tmp = IAND(data_tmp, mask_left(16))
   33870       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33871       421608 :          ipack = ipack + 1
   33872       421608 :          packed_data(ipack) = pack_tmp
   33873       421608 :          data_tmp = full_data(idata)
   33874       421608 :          pack_tmp = ISHFT(data_tmp, 36)
   33875       421608 :          pack_tmp = ISHFT(pack_tmp, -36)
   33876       421608 :          idata = idata + 1
   33877       421608 :          data_tmp = full_data(idata)
   33878       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33879       421608 :          data_tmp = IAND(data_tmp, mask_left(36))
   33880       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33881       421608 :          ipack = ipack + 1
   33882       421608 :          packed_data(ipack) = pack_tmp
   33883       421608 :          data_tmp = full_data(idata)
   33884       421608 :          pack_tmp = ISHFT(data_tmp, 56)
   33885       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   33886       421608 :          idata = idata + 1
   33887       421608 :          data_tmp = full_data(idata)
   33888       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33889       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33890       421608 :          pack_tmp = ISHFT(pack_tmp, -12)
   33891       421608 :          idata = idata + 1
   33892       421608 :          data_tmp = full_data(idata)
   33893       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33894       421608 :          data_tmp = IAND(data_tmp, mask_left(12))
   33895       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33896       421608 :          ipack = ipack + 1
   33897       421608 :          packed_data(ipack) = pack_tmp
   33898       421608 :          data_tmp = full_data(idata)
   33899       421608 :          pack_tmp = ISHFT(data_tmp, 32)
   33900       421608 :          pack_tmp = ISHFT(pack_tmp, -32)
   33901       421608 :          idata = idata + 1
   33902       421608 :          data_tmp = full_data(idata)
   33903       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33904       421608 :          data_tmp = IAND(data_tmp, mask_left(32))
   33905       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33906       421608 :          ipack = ipack + 1
   33907       421608 :          packed_data(ipack) = pack_tmp
   33908       421608 :          data_tmp = full_data(idata)
   33909       421608 :          pack_tmp = ISHFT(data_tmp, 52)
   33910       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   33911       421608 :          idata = idata + 1
   33912       421608 :          data_tmp = full_data(idata)
   33913       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33914       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33915       421608 :          pack_tmp = ISHFT(pack_tmp, -8)
   33916       421608 :          idata = idata + 1
   33917       421608 :          data_tmp = full_data(idata)
   33918       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33919       421608 :          data_tmp = IAND(data_tmp, mask_left(8))
   33920       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33921       421608 :          ipack = ipack + 1
   33922       421608 :          packed_data(ipack) = pack_tmp
   33923       421608 :          data_tmp = full_data(idata)
   33924       421608 :          pack_tmp = ISHFT(data_tmp, 28)
   33925       421608 :          pack_tmp = ISHFT(pack_tmp, -28)
   33926       421608 :          idata = idata + 1
   33927       421608 :          data_tmp = full_data(idata)
   33928       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33929       421608 :          data_tmp = IAND(data_tmp, mask_left(28))
   33930       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33931       421608 :          ipack = ipack + 1
   33932       421608 :          packed_data(ipack) = pack_tmp
   33933       421608 :          data_tmp = full_data(idata)
   33934       421608 :          pack_tmp = ISHFT(data_tmp, 48)
   33935       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   33936       421608 :          idata = idata + 1
   33937       421608 :          data_tmp = full_data(idata)
   33938       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33939       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33940       421608 :          pack_tmp = ISHFT(pack_tmp, -4)
   33941       421608 :          idata = idata + 1
   33942       421608 :          data_tmp = full_data(idata)
   33943       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33944       421608 :          data_tmp = IAND(data_tmp, mask_left(4))
   33945       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33946       421608 :          ipack = ipack + 1
   33947       421608 :          packed_data(ipack) = pack_tmp
   33948       421608 :          data_tmp = full_data(idata)
   33949       421608 :          pack_tmp = ISHFT(data_tmp, 24)
   33950       421608 :          pack_tmp = ISHFT(pack_tmp, -24)
   33951       421608 :          idata = idata + 1
   33952       421608 :          data_tmp = full_data(idata)
   33953       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33954       421608 :          data_tmp = IAND(data_tmp, mask_left(24))
   33955       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33956       421608 :          ipack = ipack + 1
   33957       421608 :          packed_data(ipack) = pack_tmp
   33958       421608 :          data_tmp = full_data(idata)
   33959       421608 :          pack_tmp = ISHFT(data_tmp, 44)
   33960       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   33961       421608 :          idata = idata + 1
   33962       421608 :          data_tmp = full_data(idata)
   33963       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33964       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33965       421608 :          pack_tmp = ISHFT(pack_tmp, 0)
   33966       421608 :          idata = idata + 1
   33967       421608 :          data_tmp = full_data(idata)
   33968              :          data_tmp = ISHFT(data_tmp, 20)
   33969       421608 :          data_tmp = IAND(data_tmp, mask_left(0))
   33970       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33971       421608 :          ipack = ipack + 1
   33972       421608 :          packed_data(ipack) = pack_tmp
   33973       421608 :          data_tmp = full_data(idata)
   33974       421608 :          pack_tmp = ISHFT(data_tmp, 20)
   33975       421608 :          pack_tmp = ISHFT(pack_tmp, -20)
   33976       421608 :          idata = idata + 1
   33977       421608 :          data_tmp = full_data(idata)
   33978       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33979       421608 :          data_tmp = IAND(data_tmp, mask_left(20))
   33980       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33981       421608 :          ipack = ipack + 1
   33982       421608 :          packed_data(ipack) = pack_tmp
   33983       421608 :          data_tmp = full_data(idata)
   33984       421608 :          pack_tmp = ISHFT(data_tmp, 40)
   33985       421608 :          pack_tmp = ISHFT(pack_tmp, -40)
   33986       421608 :          idata = idata + 1
   33987       421608 :          data_tmp = full_data(idata)
   33988       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33989       421608 :          data_tmp = IAND(data_tmp, mask_left(40))
   33990       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   33991       421608 :          ipack = ipack + 1
   33992       421608 :          packed_data(ipack) = pack_tmp
   33993       421608 :          data_tmp = full_data(idata)
   33994       421608 :          pack_tmp = ISHFT(data_tmp, 60)
   33995       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   33996       421608 :          idata = idata + 1
   33997       421608 :          data_tmp = full_data(idata)
   33998       421608 :          data_tmp = ISHFT(data_tmp, 20)
   33999       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34000       421608 :          pack_tmp = ISHFT(pack_tmp, -16)
   34001       421608 :          idata = idata + 1
   34002       421608 :          data_tmp = full_data(idata)
   34003       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34004       421608 :          data_tmp = IAND(data_tmp, mask_left(16))
   34005       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34006       421608 :          ipack = ipack + 1
   34007       421608 :          packed_data(ipack) = pack_tmp
   34008       421608 :          data_tmp = full_data(idata)
   34009       421608 :          pack_tmp = ISHFT(data_tmp, 36)
   34010       421608 :          pack_tmp = ISHFT(pack_tmp, -36)
   34011       421608 :          idata = idata + 1
   34012       421608 :          data_tmp = full_data(idata)
   34013       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34014       421608 :          data_tmp = IAND(data_tmp, mask_left(36))
   34015       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34016       421608 :          ipack = ipack + 1
   34017       421608 :          packed_data(ipack) = pack_tmp
   34018       421608 :          data_tmp = full_data(idata)
   34019       421608 :          pack_tmp = ISHFT(data_tmp, 56)
   34020       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34021       421608 :          idata = idata + 1
   34022       421608 :          data_tmp = full_data(idata)
   34023       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34024       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34025       421608 :          pack_tmp = ISHFT(pack_tmp, -12)
   34026       421608 :          idata = idata + 1
   34027       421608 :          data_tmp = full_data(idata)
   34028       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34029       421608 :          data_tmp = IAND(data_tmp, mask_left(12))
   34030       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34031       421608 :          ipack = ipack + 1
   34032       421608 :          packed_data(ipack) = pack_tmp
   34033       421608 :          data_tmp = full_data(idata)
   34034       421608 :          pack_tmp = ISHFT(data_tmp, 32)
   34035       421608 :          pack_tmp = ISHFT(pack_tmp, -32)
   34036       421608 :          idata = idata + 1
   34037       421608 :          data_tmp = full_data(idata)
   34038       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34039       421608 :          data_tmp = IAND(data_tmp, mask_left(32))
   34040       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34041       421608 :          ipack = ipack + 1
   34042       421608 :          packed_data(ipack) = pack_tmp
   34043       421608 :          data_tmp = full_data(idata)
   34044       421608 :          pack_tmp = ISHFT(data_tmp, 52)
   34045       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34046       421608 :          idata = idata + 1
   34047       421608 :          data_tmp = full_data(idata)
   34048       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34049       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34050       421608 :          pack_tmp = ISHFT(pack_tmp, -8)
   34051       421608 :          idata = idata + 1
   34052       421608 :          data_tmp = full_data(idata)
   34053       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34054       421608 :          data_tmp = IAND(data_tmp, mask_left(8))
   34055       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34056       421608 :          ipack = ipack + 1
   34057       421608 :          packed_data(ipack) = pack_tmp
   34058       421608 :          data_tmp = full_data(idata)
   34059       421608 :          pack_tmp = ISHFT(data_tmp, 28)
   34060       421608 :          pack_tmp = ISHFT(pack_tmp, -28)
   34061       421608 :          idata = idata + 1
   34062       421608 :          data_tmp = full_data(idata)
   34063       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34064       421608 :          data_tmp = IAND(data_tmp, mask_left(28))
   34065       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34066       421608 :          ipack = ipack + 1
   34067       421608 :          packed_data(ipack) = pack_tmp
   34068       421608 :          data_tmp = full_data(idata)
   34069       421608 :          pack_tmp = ISHFT(data_tmp, 48)
   34070       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34071       421608 :          idata = idata + 1
   34072       421608 :          data_tmp = full_data(idata)
   34073       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34074       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34075       421608 :          pack_tmp = ISHFT(pack_tmp, -4)
   34076       421608 :          idata = idata + 1
   34077       421608 :          data_tmp = full_data(idata)
   34078       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34079       421608 :          data_tmp = IAND(data_tmp, mask_left(4))
   34080       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34081       421608 :          ipack = ipack + 1
   34082       421608 :          packed_data(ipack) = pack_tmp
   34083       421608 :          data_tmp = full_data(idata)
   34084       421608 :          pack_tmp = ISHFT(data_tmp, 24)
   34085       421608 :          pack_tmp = ISHFT(pack_tmp, -24)
   34086       421608 :          idata = idata + 1
   34087       421608 :          data_tmp = full_data(idata)
   34088       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34089       421608 :          data_tmp = IAND(data_tmp, mask_left(24))
   34090       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34091       421608 :          ipack = ipack + 1
   34092       421608 :          packed_data(ipack) = pack_tmp
   34093       421608 :          data_tmp = full_data(idata)
   34094       421608 :          pack_tmp = ISHFT(data_tmp, 44)
   34095       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34096       421608 :          idata = idata + 1
   34097       421608 :          data_tmp = full_data(idata)
   34098       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34099       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34100       421608 :          pack_tmp = ISHFT(pack_tmp, 0)
   34101       421608 :          idata = idata + 1
   34102       421608 :          data_tmp = full_data(idata)
   34103              :          data_tmp = ISHFT(data_tmp, 20)
   34104       421608 :          data_tmp = IAND(data_tmp, mask_left(0))
   34105       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34106       421608 :          ipack = ipack + 1
   34107       421608 :          packed_data(ipack) = pack_tmp
   34108       421608 :          data_tmp = full_data(idata)
   34109       421608 :          pack_tmp = ISHFT(data_tmp, 20)
   34110       421608 :          pack_tmp = ISHFT(pack_tmp, -20)
   34111       421608 :          idata = idata + 1
   34112       421608 :          data_tmp = full_data(idata)
   34113       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34114       421608 :          data_tmp = IAND(data_tmp, mask_left(20))
   34115       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34116       421608 :          ipack = ipack + 1
   34117       421608 :          packed_data(ipack) = pack_tmp
   34118       421608 :          data_tmp = full_data(idata)
   34119       421608 :          pack_tmp = ISHFT(data_tmp, 40)
   34120       421608 :          pack_tmp = ISHFT(pack_tmp, -40)
   34121       421608 :          idata = idata + 1
   34122       421608 :          data_tmp = full_data(idata)
   34123       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34124       421608 :          data_tmp = IAND(data_tmp, mask_left(40))
   34125       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34126       421608 :          ipack = ipack + 1
   34127       421608 :          packed_data(ipack) = pack_tmp
   34128       421608 :          data_tmp = full_data(idata)
   34129       421608 :          pack_tmp = ISHFT(data_tmp, 60)
   34130       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34131       421608 :          idata = idata + 1
   34132       421608 :          data_tmp = full_data(idata)
   34133       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34134       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34135       421608 :          pack_tmp = ISHFT(pack_tmp, -16)
   34136       421608 :          idata = idata + 1
   34137       421608 :          data_tmp = full_data(idata)
   34138       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34139       421608 :          data_tmp = IAND(data_tmp, mask_left(16))
   34140       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34141       421608 :          ipack = ipack + 1
   34142       421608 :          packed_data(ipack) = pack_tmp
   34143       421608 :          data_tmp = full_data(idata)
   34144       421608 :          pack_tmp = ISHFT(data_tmp, 36)
   34145       421608 :          pack_tmp = ISHFT(pack_tmp, -36)
   34146       421608 :          idata = idata + 1
   34147       421608 :          data_tmp = full_data(idata)
   34148       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34149       421608 :          data_tmp = IAND(data_tmp, mask_left(36))
   34150       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34151       421608 :          ipack = ipack + 1
   34152       421608 :          packed_data(ipack) = pack_tmp
   34153       421608 :          data_tmp = full_data(idata)
   34154       421608 :          pack_tmp = ISHFT(data_tmp, 56)
   34155       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34156       421608 :          idata = idata + 1
   34157       421608 :          data_tmp = full_data(idata)
   34158       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34159       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34160       421608 :          pack_tmp = ISHFT(pack_tmp, -12)
   34161       421608 :          idata = idata + 1
   34162       421608 :          data_tmp = full_data(idata)
   34163       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34164       421608 :          data_tmp = IAND(data_tmp, mask_left(12))
   34165       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34166       421608 :          ipack = ipack + 1
   34167       421608 :          packed_data(ipack) = pack_tmp
   34168       421608 :          data_tmp = full_data(idata)
   34169       421608 :          pack_tmp = ISHFT(data_tmp, 32)
   34170       421608 :          pack_tmp = ISHFT(pack_tmp, -32)
   34171       421608 :          idata = idata + 1
   34172       421608 :          data_tmp = full_data(idata)
   34173       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34174       421608 :          data_tmp = IAND(data_tmp, mask_left(32))
   34175       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34176       421608 :          ipack = ipack + 1
   34177       421608 :          packed_data(ipack) = pack_tmp
   34178       421608 :          data_tmp = full_data(idata)
   34179       421608 :          pack_tmp = ISHFT(data_tmp, 52)
   34180       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34181       421608 :          idata = idata + 1
   34182       421608 :          data_tmp = full_data(idata)
   34183       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34184       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34185       421608 :          pack_tmp = ISHFT(pack_tmp, -8)
   34186       421608 :          idata = idata + 1
   34187       421608 :          data_tmp = full_data(idata)
   34188       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34189       421608 :          data_tmp = IAND(data_tmp, mask_left(8))
   34190       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34191       421608 :          ipack = ipack + 1
   34192       421608 :          packed_data(ipack) = pack_tmp
   34193       421608 :          data_tmp = full_data(idata)
   34194       421608 :          pack_tmp = ISHFT(data_tmp, 28)
   34195       421608 :          pack_tmp = ISHFT(pack_tmp, -28)
   34196       421608 :          idata = idata + 1
   34197       421608 :          data_tmp = full_data(idata)
   34198       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34199       421608 :          data_tmp = IAND(data_tmp, mask_left(28))
   34200       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34201       421608 :          ipack = ipack + 1
   34202       421608 :          packed_data(ipack) = pack_tmp
   34203       421608 :          data_tmp = full_data(idata)
   34204       421608 :          pack_tmp = ISHFT(data_tmp, 48)
   34205       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34206       421608 :          idata = idata + 1
   34207       421608 :          data_tmp = full_data(idata)
   34208       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34209       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34210       421608 :          pack_tmp = ISHFT(pack_tmp, -4)
   34211       421608 :          idata = idata + 1
   34212       421608 :          data_tmp = full_data(idata)
   34213       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34214       421608 :          data_tmp = IAND(data_tmp, mask_left(4))
   34215       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34216       421608 :          ipack = ipack + 1
   34217       421608 :          packed_data(ipack) = pack_tmp
   34218       421608 :          data_tmp = full_data(idata)
   34219       421608 :          pack_tmp = ISHFT(data_tmp, 24)
   34220       421608 :          pack_tmp = ISHFT(pack_tmp, -24)
   34221       421608 :          idata = idata + 1
   34222       421608 :          data_tmp = full_data(idata)
   34223       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34224       421608 :          data_tmp = IAND(data_tmp, mask_left(24))
   34225       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34226       421608 :          ipack = ipack + 1
   34227       421608 :          packed_data(ipack) = pack_tmp
   34228       421608 :          data_tmp = full_data(idata)
   34229       421608 :          pack_tmp = ISHFT(data_tmp, 44)
   34230       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34231       421608 :          idata = idata + 1
   34232       421608 :          data_tmp = full_data(idata)
   34233       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34234       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34235       421608 :          pack_tmp = ISHFT(pack_tmp, 0)
   34236       421608 :          idata = idata + 1
   34237       421608 :          data_tmp = full_data(idata)
   34238              :          data_tmp = ISHFT(data_tmp, 20)
   34239       421608 :          data_tmp = IAND(data_tmp, mask_left(0))
   34240       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34241       421608 :          ipack = ipack + 1
   34242       421608 :          packed_data(ipack) = pack_tmp
   34243       421608 :          data_tmp = full_data(idata)
   34244       421608 :          pack_tmp = ISHFT(data_tmp, 20)
   34245       421608 :          pack_tmp = ISHFT(pack_tmp, -20)
   34246       421608 :          idata = idata + 1
   34247       421608 :          data_tmp = full_data(idata)
   34248       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34249       421608 :          data_tmp = IAND(data_tmp, mask_left(20))
   34250       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34251       421608 :          ipack = ipack + 1
   34252       421608 :          packed_data(ipack) = pack_tmp
   34253       421608 :          data_tmp = full_data(idata)
   34254       421608 :          pack_tmp = ISHFT(data_tmp, 40)
   34255       421608 :          pack_tmp = ISHFT(pack_tmp, -40)
   34256       421608 :          idata = idata + 1
   34257       421608 :          data_tmp = full_data(idata)
   34258       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34259       421608 :          data_tmp = IAND(data_tmp, mask_left(40))
   34260       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34261       421608 :          ipack = ipack + 1
   34262       421608 :          packed_data(ipack) = pack_tmp
   34263       421608 :          data_tmp = full_data(idata)
   34264       421608 :          pack_tmp = ISHFT(data_tmp, 60)
   34265       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34266       421608 :          idata = idata + 1
   34267       421608 :          data_tmp = full_data(idata)
   34268       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34269       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34270       421608 :          pack_tmp = ISHFT(pack_tmp, -16)
   34271       421608 :          idata = idata + 1
   34272       421608 :          data_tmp = full_data(idata)
   34273       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34274       421608 :          data_tmp = IAND(data_tmp, mask_left(16))
   34275       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34276       421608 :          ipack = ipack + 1
   34277       421608 :          packed_data(ipack) = pack_tmp
   34278       421608 :          data_tmp = full_data(idata)
   34279       421608 :          pack_tmp = ISHFT(data_tmp, 36)
   34280       421608 :          pack_tmp = ISHFT(pack_tmp, -36)
   34281       421608 :          idata = idata + 1
   34282       421608 :          data_tmp = full_data(idata)
   34283       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34284       421608 :          data_tmp = IAND(data_tmp, mask_left(36))
   34285       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34286       421608 :          ipack = ipack + 1
   34287       421608 :          packed_data(ipack) = pack_tmp
   34288       421608 :          data_tmp = full_data(idata)
   34289       421608 :          pack_tmp = ISHFT(data_tmp, 56)
   34290       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34291       421608 :          idata = idata + 1
   34292       421608 :          data_tmp = full_data(idata)
   34293       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34294       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34295       421608 :          pack_tmp = ISHFT(pack_tmp, -12)
   34296       421608 :          idata = idata + 1
   34297       421608 :          data_tmp = full_data(idata)
   34298       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34299       421608 :          data_tmp = IAND(data_tmp, mask_left(12))
   34300       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34301       421608 :          ipack = ipack + 1
   34302       421608 :          packed_data(ipack) = pack_tmp
   34303       421608 :          data_tmp = full_data(idata)
   34304       421608 :          pack_tmp = ISHFT(data_tmp, 32)
   34305       421608 :          pack_tmp = ISHFT(pack_tmp, -32)
   34306       421608 :          idata = idata + 1
   34307       421608 :          data_tmp = full_data(idata)
   34308       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34309       421608 :          data_tmp = IAND(data_tmp, mask_left(32))
   34310       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34311       421608 :          ipack = ipack + 1
   34312       421608 :          packed_data(ipack) = pack_tmp
   34313       421608 :          data_tmp = full_data(idata)
   34314       421608 :          pack_tmp = ISHFT(data_tmp, 52)
   34315       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34316       421608 :          idata = idata + 1
   34317       421608 :          data_tmp = full_data(idata)
   34318       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34319       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34320       421608 :          pack_tmp = ISHFT(pack_tmp, -8)
   34321       421608 :          idata = idata + 1
   34322       421608 :          data_tmp = full_data(idata)
   34323       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34324       421608 :          data_tmp = IAND(data_tmp, mask_left(8))
   34325       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34326       421608 :          ipack = ipack + 1
   34327       421608 :          packed_data(ipack) = pack_tmp
   34328       421608 :          data_tmp = full_data(idata)
   34329       421608 :          pack_tmp = ISHFT(data_tmp, 28)
   34330       421608 :          pack_tmp = ISHFT(pack_tmp, -28)
   34331       421608 :          idata = idata + 1
   34332       421608 :          data_tmp = full_data(idata)
   34333       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34334       421608 :          data_tmp = IAND(data_tmp, mask_left(28))
   34335       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34336       421608 :          ipack = ipack + 1
   34337       421608 :          packed_data(ipack) = pack_tmp
   34338       421608 :          data_tmp = full_data(idata)
   34339       421608 :          pack_tmp = ISHFT(data_tmp, 48)
   34340       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34341       421608 :          idata = idata + 1
   34342       421608 :          data_tmp = full_data(idata)
   34343       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34344       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34345       421608 :          pack_tmp = ISHFT(pack_tmp, -4)
   34346       421608 :          idata = idata + 1
   34347       421608 :          data_tmp = full_data(idata)
   34348       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34349       421608 :          data_tmp = IAND(data_tmp, mask_left(4))
   34350       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34351       421608 :          ipack = ipack + 1
   34352       421608 :          packed_data(ipack) = pack_tmp
   34353       421608 :          data_tmp = full_data(idata)
   34354       421608 :          pack_tmp = ISHFT(data_tmp, 24)
   34355       421608 :          pack_tmp = ISHFT(pack_tmp, -24)
   34356       421608 :          idata = idata + 1
   34357       421608 :          data_tmp = full_data(idata)
   34358       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34359       421608 :          data_tmp = IAND(data_tmp, mask_left(24))
   34360       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34361       421608 :          ipack = ipack + 1
   34362       421608 :          packed_data(ipack) = pack_tmp
   34363       421608 :          data_tmp = full_data(idata)
   34364       421608 :          pack_tmp = ISHFT(data_tmp, 44)
   34365       421608 :          pack_tmp = ISHFT(pack_tmp, -44)
   34366       421608 :          idata = idata + 1
   34367       421608 :          data_tmp = full_data(idata)
   34368       421608 :          data_tmp = ISHFT(data_tmp, 20)
   34369       421608 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34370              :          pack_tmp = ISHFT(pack_tmp, 0)
   34371       421608 :          pack_tmp = ISHFT(pack_tmp, 0)
   34372       421608 :          ipack = ipack + 1
   34373       421621 :          packed_data(ipack) = pack_tmp
   34374              :       END DO
   34375        28263 :       IF (Ndata_rep < Ndata) THEN
   34376         3600 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   34377              :       END IF
   34378        28263 :    END SUBROUTINE ints2bits_44
   34379              : 
   34380              : ! **************************************************************************************************
   34381              : !> \brief ...
   34382              : !> \param Ndata ...
   34383              : !> \param packed_data ...
   34384              : !> \param full_data ...
   34385              : ! **************************************************************************************************
   34386       126227 :    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       126227 :       ipack = 0
   34397       126227 :       idata = 0
   34398       126227 :       pack_tmp = 0
   34399       126227 :       Ndata_rep = (Ndata/64)*64
   34400       126227 :       DO kdata = 1, Ndata_rep, 64
   34401      1814323 :          idata = idata + 1
   34402      1814323 :          data_tmp = ISHFT(pack_tmp, 44)
   34403      1814323 :          ipack = ipack + 1
   34404      1814323 :          pack_tmp = packed_data(ipack)
   34405      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34406      1814323 :          pack_tmp = ISHFT(pack_tmp, -44)
   34407      1814323 :          idata = idata + 1
   34408      1814323 :          data_tmp = ISHFT(pack_tmp, 24)
   34409      1814323 :          ipack = ipack + 1
   34410      1814323 :          pack_tmp = packed_data(ipack)
   34411      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34412      1814323 :          pack_tmp = ISHFT(pack_tmp, -24)
   34413      1814323 :          idata = idata + 1
   34414      1814323 :          data_tmp = ISHFT(pack_tmp, 4)
   34415      1814323 :          ipack = ipack + 1
   34416      1814323 :          pack_tmp = packed_data(ipack)
   34417      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34418      1814323 :          pack_tmp = ISHFT(pack_tmp, -4)
   34419      1814323 :          idata = idata + 1
   34420      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34421      1814323 :          full_data(idata) = data_tmp
   34422      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34423      1814323 :          idata = idata + 1
   34424      1814323 :          data_tmp = ISHFT(pack_tmp, 28)
   34425      1814323 :          ipack = ipack + 1
   34426      1814323 :          pack_tmp = packed_data(ipack)
   34427      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34428      1814323 :          pack_tmp = ISHFT(pack_tmp, -28)
   34429      1814323 :          idata = idata + 1
   34430      1814323 :          data_tmp = ISHFT(pack_tmp, 8)
   34431      1814323 :          ipack = ipack + 1
   34432      1814323 :          pack_tmp = packed_data(ipack)
   34433      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34434      1814323 :          pack_tmp = ISHFT(pack_tmp, -8)
   34435      1814323 :          idata = idata + 1
   34436      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34437      1814323 :          full_data(idata) = data_tmp
   34438      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34439      1814323 :          idata = idata + 1
   34440      1814323 :          data_tmp = ISHFT(pack_tmp, 32)
   34441      1814323 :          ipack = ipack + 1
   34442      1814323 :          pack_tmp = packed_data(ipack)
   34443      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34444      1814323 :          pack_tmp = ISHFT(pack_tmp, -32)
   34445      1814323 :          idata = idata + 1
   34446      1814323 :          data_tmp = ISHFT(pack_tmp, 12)
   34447      1814323 :          ipack = ipack + 1
   34448      1814323 :          pack_tmp = packed_data(ipack)
   34449      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34450      1814323 :          pack_tmp = ISHFT(pack_tmp, -12)
   34451      1814323 :          idata = idata + 1
   34452      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34453      1814323 :          full_data(idata) = data_tmp
   34454      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34455      1814323 :          idata = idata + 1
   34456      1814323 :          data_tmp = ISHFT(pack_tmp, 36)
   34457      1814323 :          ipack = ipack + 1
   34458      1814323 :          pack_tmp = packed_data(ipack)
   34459      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34460      1814323 :          pack_tmp = ISHFT(pack_tmp, -36)
   34461      1814323 :          idata = idata + 1
   34462      1814323 :          data_tmp = ISHFT(pack_tmp, 16)
   34463      1814323 :          ipack = ipack + 1
   34464      1814323 :          pack_tmp = packed_data(ipack)
   34465      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34466      1814323 :          pack_tmp = ISHFT(pack_tmp, -16)
   34467      1814323 :          idata = idata + 1
   34468      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34469      1814323 :          full_data(idata) = data_tmp
   34470      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34471      1814323 :          idata = idata + 1
   34472      1814323 :          data_tmp = ISHFT(pack_tmp, 40)
   34473      1814323 :          ipack = ipack + 1
   34474      1814323 :          pack_tmp = packed_data(ipack)
   34475      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34476      1814323 :          pack_tmp = ISHFT(pack_tmp, -40)
   34477      1814323 :          idata = idata + 1
   34478      1814323 :          data_tmp = ISHFT(pack_tmp, 20)
   34479      1814323 :          ipack = ipack + 1
   34480      1814323 :          pack_tmp = packed_data(ipack)
   34481      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34482      1814323 :          pack_tmp = ISHFT(pack_tmp, -20)
   34483      1814323 :          idata = idata + 1
   34484      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34485      1814323 :          full_data(idata) = data_tmp
   34486      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34487      1814323 :          idata = idata + 1
   34488      1814323 :          data_tmp = ISHFT(pack_tmp, 44)
   34489      1814323 :          ipack = ipack + 1
   34490      1814323 :          pack_tmp = packed_data(ipack)
   34491      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34492      1814323 :          pack_tmp = ISHFT(pack_tmp, -44)
   34493      1814323 :          idata = idata + 1
   34494      1814323 :          data_tmp = ISHFT(pack_tmp, 24)
   34495      1814323 :          ipack = ipack + 1
   34496      1814323 :          pack_tmp = packed_data(ipack)
   34497      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34498      1814323 :          pack_tmp = ISHFT(pack_tmp, -24)
   34499      1814323 :          idata = idata + 1
   34500      1814323 :          data_tmp = ISHFT(pack_tmp, 4)
   34501      1814323 :          ipack = ipack + 1
   34502      1814323 :          pack_tmp = packed_data(ipack)
   34503      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34504      1814323 :          pack_tmp = ISHFT(pack_tmp, -4)
   34505      1814323 :          idata = idata + 1
   34506      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34507      1814323 :          full_data(idata) = data_tmp
   34508      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34509      1814323 :          idata = idata + 1
   34510      1814323 :          data_tmp = ISHFT(pack_tmp, 28)
   34511      1814323 :          ipack = ipack + 1
   34512      1814323 :          pack_tmp = packed_data(ipack)
   34513      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34514      1814323 :          pack_tmp = ISHFT(pack_tmp, -28)
   34515      1814323 :          idata = idata + 1
   34516      1814323 :          data_tmp = ISHFT(pack_tmp, 8)
   34517      1814323 :          ipack = ipack + 1
   34518      1814323 :          pack_tmp = packed_data(ipack)
   34519      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34520      1814323 :          pack_tmp = ISHFT(pack_tmp, -8)
   34521      1814323 :          idata = idata + 1
   34522      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34523      1814323 :          full_data(idata) = data_tmp
   34524      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34525      1814323 :          idata = idata + 1
   34526      1814323 :          data_tmp = ISHFT(pack_tmp, 32)
   34527      1814323 :          ipack = ipack + 1
   34528      1814323 :          pack_tmp = packed_data(ipack)
   34529      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34530      1814323 :          pack_tmp = ISHFT(pack_tmp, -32)
   34531      1814323 :          idata = idata + 1
   34532      1814323 :          data_tmp = ISHFT(pack_tmp, 12)
   34533      1814323 :          ipack = ipack + 1
   34534      1814323 :          pack_tmp = packed_data(ipack)
   34535      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34536      1814323 :          pack_tmp = ISHFT(pack_tmp, -12)
   34537      1814323 :          idata = idata + 1
   34538      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34539      1814323 :          full_data(idata) = data_tmp
   34540      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34541      1814323 :          idata = idata + 1
   34542      1814323 :          data_tmp = ISHFT(pack_tmp, 36)
   34543      1814323 :          ipack = ipack + 1
   34544      1814323 :          pack_tmp = packed_data(ipack)
   34545      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34546      1814323 :          pack_tmp = ISHFT(pack_tmp, -36)
   34547      1814323 :          idata = idata + 1
   34548      1814323 :          data_tmp = ISHFT(pack_tmp, 16)
   34549      1814323 :          ipack = ipack + 1
   34550      1814323 :          pack_tmp = packed_data(ipack)
   34551      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34552      1814323 :          pack_tmp = ISHFT(pack_tmp, -16)
   34553      1814323 :          idata = idata + 1
   34554      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34555      1814323 :          full_data(idata) = data_tmp
   34556      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34557      1814323 :          idata = idata + 1
   34558      1814323 :          data_tmp = ISHFT(pack_tmp, 40)
   34559      1814323 :          ipack = ipack + 1
   34560      1814323 :          pack_tmp = packed_data(ipack)
   34561      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34562      1814323 :          pack_tmp = ISHFT(pack_tmp, -40)
   34563      1814323 :          idata = idata + 1
   34564      1814323 :          data_tmp = ISHFT(pack_tmp, 20)
   34565      1814323 :          ipack = ipack + 1
   34566      1814323 :          pack_tmp = packed_data(ipack)
   34567      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34568      1814323 :          pack_tmp = ISHFT(pack_tmp, -20)
   34569      1814323 :          idata = idata + 1
   34570      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34571      1814323 :          full_data(idata) = data_tmp
   34572      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34573      1814323 :          idata = idata + 1
   34574      1814323 :          data_tmp = ISHFT(pack_tmp, 44)
   34575      1814323 :          ipack = ipack + 1
   34576      1814323 :          pack_tmp = packed_data(ipack)
   34577      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34578      1814323 :          pack_tmp = ISHFT(pack_tmp, -44)
   34579      1814323 :          idata = idata + 1
   34580      1814323 :          data_tmp = ISHFT(pack_tmp, 24)
   34581      1814323 :          ipack = ipack + 1
   34582      1814323 :          pack_tmp = packed_data(ipack)
   34583      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34584      1814323 :          pack_tmp = ISHFT(pack_tmp, -24)
   34585      1814323 :          idata = idata + 1
   34586      1814323 :          data_tmp = ISHFT(pack_tmp, 4)
   34587      1814323 :          ipack = ipack + 1
   34588      1814323 :          pack_tmp = packed_data(ipack)
   34589      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34590      1814323 :          pack_tmp = ISHFT(pack_tmp, -4)
   34591      1814323 :          idata = idata + 1
   34592      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34593      1814323 :          full_data(idata) = data_tmp
   34594      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34595      1814323 :          idata = idata + 1
   34596      1814323 :          data_tmp = ISHFT(pack_tmp, 28)
   34597      1814323 :          ipack = ipack + 1
   34598      1814323 :          pack_tmp = packed_data(ipack)
   34599      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34600      1814323 :          pack_tmp = ISHFT(pack_tmp, -28)
   34601      1814323 :          idata = idata + 1
   34602      1814323 :          data_tmp = ISHFT(pack_tmp, 8)
   34603      1814323 :          ipack = ipack + 1
   34604      1814323 :          pack_tmp = packed_data(ipack)
   34605      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34606      1814323 :          pack_tmp = ISHFT(pack_tmp, -8)
   34607      1814323 :          idata = idata + 1
   34608      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34609      1814323 :          full_data(idata) = data_tmp
   34610      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34611      1814323 :          idata = idata + 1
   34612      1814323 :          data_tmp = ISHFT(pack_tmp, 32)
   34613      1814323 :          ipack = ipack + 1
   34614      1814323 :          pack_tmp = packed_data(ipack)
   34615      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34616      1814323 :          pack_tmp = ISHFT(pack_tmp, -32)
   34617      1814323 :          idata = idata + 1
   34618      1814323 :          data_tmp = ISHFT(pack_tmp, 12)
   34619      1814323 :          ipack = ipack + 1
   34620      1814323 :          pack_tmp = packed_data(ipack)
   34621      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34622      1814323 :          pack_tmp = ISHFT(pack_tmp, -12)
   34623      1814323 :          idata = idata + 1
   34624      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34625      1814323 :          full_data(idata) = data_tmp
   34626      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34627      1814323 :          idata = idata + 1
   34628      1814323 :          data_tmp = ISHFT(pack_tmp, 36)
   34629      1814323 :          ipack = ipack + 1
   34630      1814323 :          pack_tmp = packed_data(ipack)
   34631      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34632      1814323 :          pack_tmp = ISHFT(pack_tmp, -36)
   34633      1814323 :          idata = idata + 1
   34634      1814323 :          data_tmp = ISHFT(pack_tmp, 16)
   34635      1814323 :          ipack = ipack + 1
   34636      1814323 :          pack_tmp = packed_data(ipack)
   34637      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34638      1814323 :          pack_tmp = ISHFT(pack_tmp, -16)
   34639      1814323 :          idata = idata + 1
   34640      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34641      1814323 :          full_data(idata) = data_tmp
   34642      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34643      1814323 :          idata = idata + 1
   34644      1814323 :          data_tmp = ISHFT(pack_tmp, 40)
   34645      1814323 :          ipack = ipack + 1
   34646      1814323 :          pack_tmp = packed_data(ipack)
   34647      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34648      1814323 :          pack_tmp = ISHFT(pack_tmp, -40)
   34649      1814323 :          idata = idata + 1
   34650      1814323 :          data_tmp = ISHFT(pack_tmp, 20)
   34651      1814323 :          ipack = ipack + 1
   34652      1814323 :          pack_tmp = packed_data(ipack)
   34653      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34654      1814323 :          pack_tmp = ISHFT(pack_tmp, -20)
   34655      1814323 :          idata = idata + 1
   34656      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34657      1814323 :          full_data(idata) = data_tmp
   34658      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34659      1814323 :          idata = idata + 1
   34660      1814323 :          data_tmp = ISHFT(pack_tmp, 44)
   34661      1814323 :          ipack = ipack + 1
   34662      1814323 :          pack_tmp = packed_data(ipack)
   34663      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   34664      1814323 :          pack_tmp = ISHFT(pack_tmp, -44)
   34665      1814323 :          idata = idata + 1
   34666      1814323 :          data_tmp = ISHFT(pack_tmp, 24)
   34667      1814323 :          ipack = ipack + 1
   34668      1814323 :          pack_tmp = packed_data(ipack)
   34669      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   34670      1814323 :          pack_tmp = ISHFT(pack_tmp, -24)
   34671      1814323 :          idata = idata + 1
   34672      1814323 :          data_tmp = ISHFT(pack_tmp, 4)
   34673      1814323 :          ipack = ipack + 1
   34674      1814323 :          pack_tmp = packed_data(ipack)
   34675      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   34676      1814323 :          pack_tmp = ISHFT(pack_tmp, -4)
   34677      1814323 :          idata = idata + 1
   34678      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34679      1814323 :          full_data(idata) = data_tmp
   34680      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34681      1814323 :          idata = idata + 1
   34682      1814323 :          data_tmp = ISHFT(pack_tmp, 28)
   34683      1814323 :          ipack = ipack + 1
   34684      1814323 :          pack_tmp = packed_data(ipack)
   34685      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   34686      1814323 :          pack_tmp = ISHFT(pack_tmp, -28)
   34687      1814323 :          idata = idata + 1
   34688      1814323 :          data_tmp = ISHFT(pack_tmp, 8)
   34689      1814323 :          ipack = ipack + 1
   34690      1814323 :          pack_tmp = packed_data(ipack)
   34691      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   34692      1814323 :          pack_tmp = ISHFT(pack_tmp, -8)
   34693      1814323 :          idata = idata + 1
   34694      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34695      1814323 :          full_data(idata) = data_tmp
   34696      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34697      1814323 :          idata = idata + 1
   34698      1814323 :          data_tmp = ISHFT(pack_tmp, 32)
   34699      1814323 :          ipack = ipack + 1
   34700      1814323 :          pack_tmp = packed_data(ipack)
   34701      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   34702      1814323 :          pack_tmp = ISHFT(pack_tmp, -32)
   34703      1814323 :          idata = idata + 1
   34704      1814323 :          data_tmp = ISHFT(pack_tmp, 12)
   34705      1814323 :          ipack = ipack + 1
   34706      1814323 :          pack_tmp = packed_data(ipack)
   34707      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   34708      1814323 :          pack_tmp = ISHFT(pack_tmp, -12)
   34709      1814323 :          idata = idata + 1
   34710      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34711      1814323 :          full_data(idata) = data_tmp
   34712      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34713      1814323 :          idata = idata + 1
   34714      1814323 :          data_tmp = ISHFT(pack_tmp, 36)
   34715      1814323 :          ipack = ipack + 1
   34716      1814323 :          pack_tmp = packed_data(ipack)
   34717      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   34718      1814323 :          pack_tmp = ISHFT(pack_tmp, -36)
   34719      1814323 :          idata = idata + 1
   34720      1814323 :          data_tmp = ISHFT(pack_tmp, 16)
   34721      1814323 :          ipack = ipack + 1
   34722      1814323 :          pack_tmp = packed_data(ipack)
   34723      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   34724      1814323 :          pack_tmp = ISHFT(pack_tmp, -16)
   34725      1814323 :          idata = idata + 1
   34726      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34727      1814323 :          full_data(idata) = data_tmp
   34728      1814323 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34729      1814323 :          idata = idata + 1
   34730      1814323 :          data_tmp = ISHFT(pack_tmp, 40)
   34731      1814323 :          ipack = ipack + 1
   34732      1814323 :          pack_tmp = packed_data(ipack)
   34733      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   34734      1814323 :          pack_tmp = ISHFT(pack_tmp, -40)
   34735      1814323 :          idata = idata + 1
   34736      1814323 :          data_tmp = ISHFT(pack_tmp, 20)
   34737      1814323 :          ipack = ipack + 1
   34738      1814323 :          pack_tmp = packed_data(ipack)
   34739      1814323 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   34740      1814323 :          pack_tmp = ISHFT(pack_tmp, -20)
   34741      1814323 :          idata = idata + 1
   34742      1814323 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   34743      1814323 :          full_data(idata) = data_tmp
   34744      1814575 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   34745              :       END DO
   34746       126227 :       IF (Ndata_rep < Ndata) THEN
   34747        24154 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   34748              :       END IF
   34749       126227 :    END SUBROUTINE bits2ints_44
   34750              : 
   34751              : ! **************************************************************************************************
   34752              : !> \brief ...
   34753              : !> \param Ndata ...
   34754              : !> \param packed_data ...
   34755              : !> \param full_data ...
   34756              : ! **************************************************************************************************
   34757        29902 :    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        29902 :       idata = 0
   34768        29902 :       ipack = 0
   34769        29902 :       Ndata_rep = (Ndata/64)*64
   34770        29902 :       DO kdata = 1, Ndata_rep, 64
   34771       436102 :          pack_tmp = 0
   34772       436102 :          idata = idata + 1
   34773       436102 :          data_tmp = full_data(idata)
   34774       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34775       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34776       436102 :          pack_tmp = ISHFT(pack_tmp, -19)
   34777       436102 :          idata = idata + 1
   34778       436102 :          data_tmp = full_data(idata)
   34779       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34780       436102 :          data_tmp = IAND(data_tmp, mask_left(19))
   34781       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34782       436102 :          ipack = ipack + 1
   34783       436102 :          packed_data(ipack) = pack_tmp
   34784       436102 :          data_tmp = full_data(idata)
   34785       436102 :          pack_tmp = ISHFT(data_tmp, 38)
   34786       436102 :          pack_tmp = ISHFT(pack_tmp, -38)
   34787       436102 :          idata = idata + 1
   34788       436102 :          data_tmp = full_data(idata)
   34789       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34790       436102 :          data_tmp = IAND(data_tmp, mask_left(38))
   34791       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34792       436102 :          ipack = ipack + 1
   34793       436102 :          packed_data(ipack) = pack_tmp
   34794       436102 :          data_tmp = full_data(idata)
   34795       436102 :          pack_tmp = ISHFT(data_tmp, 57)
   34796       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   34797       436102 :          idata = idata + 1
   34798       436102 :          data_tmp = full_data(idata)
   34799       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34800       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34801       436102 :          pack_tmp = ISHFT(pack_tmp, -12)
   34802       436102 :          idata = idata + 1
   34803       436102 :          data_tmp = full_data(idata)
   34804       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34805       436102 :          data_tmp = IAND(data_tmp, mask_left(12))
   34806       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34807       436102 :          ipack = ipack + 1
   34808       436102 :          packed_data(ipack) = pack_tmp
   34809       436102 :          data_tmp = full_data(idata)
   34810       436102 :          pack_tmp = ISHFT(data_tmp, 31)
   34811       436102 :          pack_tmp = ISHFT(pack_tmp, -31)
   34812       436102 :          idata = idata + 1
   34813       436102 :          data_tmp = full_data(idata)
   34814       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34815       436102 :          data_tmp = IAND(data_tmp, mask_left(31))
   34816       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34817       436102 :          ipack = ipack + 1
   34818       436102 :          packed_data(ipack) = pack_tmp
   34819       436102 :          data_tmp = full_data(idata)
   34820       436102 :          pack_tmp = ISHFT(data_tmp, 50)
   34821       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   34822       436102 :          idata = idata + 1
   34823       436102 :          data_tmp = full_data(idata)
   34824       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34825       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34826       436102 :          pack_tmp = ISHFT(pack_tmp, -5)
   34827       436102 :          idata = idata + 1
   34828       436102 :          data_tmp = full_data(idata)
   34829       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34830       436102 :          data_tmp = IAND(data_tmp, mask_left(5))
   34831       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34832       436102 :          ipack = ipack + 1
   34833       436102 :          packed_data(ipack) = pack_tmp
   34834       436102 :          data_tmp = full_data(idata)
   34835       436102 :          pack_tmp = ISHFT(data_tmp, 24)
   34836       436102 :          pack_tmp = ISHFT(pack_tmp, -24)
   34837       436102 :          idata = idata + 1
   34838       436102 :          data_tmp = full_data(idata)
   34839       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34840       436102 :          data_tmp = IAND(data_tmp, mask_left(24))
   34841       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34842       436102 :          ipack = ipack + 1
   34843       436102 :          packed_data(ipack) = pack_tmp
   34844       436102 :          data_tmp = full_data(idata)
   34845       436102 :          pack_tmp = ISHFT(data_tmp, 43)
   34846       436102 :          pack_tmp = ISHFT(pack_tmp, -43)
   34847       436102 :          idata = idata + 1
   34848       436102 :          data_tmp = full_data(idata)
   34849       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34850       436102 :          data_tmp = IAND(data_tmp, mask_left(43))
   34851       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34852       436102 :          ipack = ipack + 1
   34853       436102 :          packed_data(ipack) = pack_tmp
   34854       436102 :          data_tmp = full_data(idata)
   34855       436102 :          pack_tmp = ISHFT(data_tmp, 62)
   34856       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   34857       436102 :          idata = idata + 1
   34858       436102 :          data_tmp = full_data(idata)
   34859       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34860       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34861       436102 :          pack_tmp = ISHFT(pack_tmp, -17)
   34862       436102 :          idata = idata + 1
   34863       436102 :          data_tmp = full_data(idata)
   34864       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34865       436102 :          data_tmp = IAND(data_tmp, mask_left(17))
   34866       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34867       436102 :          ipack = ipack + 1
   34868       436102 :          packed_data(ipack) = pack_tmp
   34869       436102 :          data_tmp = full_data(idata)
   34870       436102 :          pack_tmp = ISHFT(data_tmp, 36)
   34871       436102 :          pack_tmp = ISHFT(pack_tmp, -36)
   34872       436102 :          idata = idata + 1
   34873       436102 :          data_tmp = full_data(idata)
   34874       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34875       436102 :          data_tmp = IAND(data_tmp, mask_left(36))
   34876       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34877       436102 :          ipack = ipack + 1
   34878       436102 :          packed_data(ipack) = pack_tmp
   34879       436102 :          data_tmp = full_data(idata)
   34880       436102 :          pack_tmp = ISHFT(data_tmp, 55)
   34881       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   34882       436102 :          idata = idata + 1
   34883       436102 :          data_tmp = full_data(idata)
   34884       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34885       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34886       436102 :          pack_tmp = ISHFT(pack_tmp, -10)
   34887       436102 :          idata = idata + 1
   34888       436102 :          data_tmp = full_data(idata)
   34889       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34890       436102 :          data_tmp = IAND(data_tmp, mask_left(10))
   34891       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34892       436102 :          ipack = ipack + 1
   34893       436102 :          packed_data(ipack) = pack_tmp
   34894       436102 :          data_tmp = full_data(idata)
   34895       436102 :          pack_tmp = ISHFT(data_tmp, 29)
   34896       436102 :          pack_tmp = ISHFT(pack_tmp, -29)
   34897       436102 :          idata = idata + 1
   34898       436102 :          data_tmp = full_data(idata)
   34899       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34900       436102 :          data_tmp = IAND(data_tmp, mask_left(29))
   34901       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34902       436102 :          ipack = ipack + 1
   34903       436102 :          packed_data(ipack) = pack_tmp
   34904       436102 :          data_tmp = full_data(idata)
   34905       436102 :          pack_tmp = ISHFT(data_tmp, 48)
   34906       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   34907       436102 :          idata = idata + 1
   34908       436102 :          data_tmp = full_data(idata)
   34909       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34910       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34911       436102 :          pack_tmp = ISHFT(pack_tmp, -3)
   34912       436102 :          idata = idata + 1
   34913       436102 :          data_tmp = full_data(idata)
   34914       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34915       436102 :          data_tmp = IAND(data_tmp, mask_left(3))
   34916       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34917       436102 :          ipack = ipack + 1
   34918       436102 :          packed_data(ipack) = pack_tmp
   34919       436102 :          data_tmp = full_data(idata)
   34920       436102 :          pack_tmp = ISHFT(data_tmp, 22)
   34921       436102 :          pack_tmp = ISHFT(pack_tmp, -22)
   34922       436102 :          idata = idata + 1
   34923       436102 :          data_tmp = full_data(idata)
   34924       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34925       436102 :          data_tmp = IAND(data_tmp, mask_left(22))
   34926       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34927       436102 :          ipack = ipack + 1
   34928       436102 :          packed_data(ipack) = pack_tmp
   34929       436102 :          data_tmp = full_data(idata)
   34930       436102 :          pack_tmp = ISHFT(data_tmp, 41)
   34931       436102 :          pack_tmp = ISHFT(pack_tmp, -41)
   34932       436102 :          idata = idata + 1
   34933       436102 :          data_tmp = full_data(idata)
   34934       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34935       436102 :          data_tmp = IAND(data_tmp, mask_left(41))
   34936       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34937       436102 :          ipack = ipack + 1
   34938       436102 :          packed_data(ipack) = pack_tmp
   34939       436102 :          data_tmp = full_data(idata)
   34940       436102 :          pack_tmp = ISHFT(data_tmp, 60)
   34941       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   34942       436102 :          idata = idata + 1
   34943       436102 :          data_tmp = full_data(idata)
   34944       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34945       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34946       436102 :          pack_tmp = ISHFT(pack_tmp, -15)
   34947       436102 :          idata = idata + 1
   34948       436102 :          data_tmp = full_data(idata)
   34949       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34950       436102 :          data_tmp = IAND(data_tmp, mask_left(15))
   34951       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34952       436102 :          ipack = ipack + 1
   34953       436102 :          packed_data(ipack) = pack_tmp
   34954       436102 :          data_tmp = full_data(idata)
   34955       436102 :          pack_tmp = ISHFT(data_tmp, 34)
   34956       436102 :          pack_tmp = ISHFT(pack_tmp, -34)
   34957       436102 :          idata = idata + 1
   34958       436102 :          data_tmp = full_data(idata)
   34959       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34960       436102 :          data_tmp = IAND(data_tmp, mask_left(34))
   34961       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34962       436102 :          ipack = ipack + 1
   34963       436102 :          packed_data(ipack) = pack_tmp
   34964       436102 :          data_tmp = full_data(idata)
   34965       436102 :          pack_tmp = ISHFT(data_tmp, 53)
   34966       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   34967       436102 :          idata = idata + 1
   34968       436102 :          data_tmp = full_data(idata)
   34969       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34970       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34971       436102 :          pack_tmp = ISHFT(pack_tmp, -8)
   34972       436102 :          idata = idata + 1
   34973       436102 :          data_tmp = full_data(idata)
   34974       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34975       436102 :          data_tmp = IAND(data_tmp, mask_left(8))
   34976       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34977       436102 :          ipack = ipack + 1
   34978       436102 :          packed_data(ipack) = pack_tmp
   34979       436102 :          data_tmp = full_data(idata)
   34980       436102 :          pack_tmp = ISHFT(data_tmp, 27)
   34981       436102 :          pack_tmp = ISHFT(pack_tmp, -27)
   34982       436102 :          idata = idata + 1
   34983       436102 :          data_tmp = full_data(idata)
   34984       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34985       436102 :          data_tmp = IAND(data_tmp, mask_left(27))
   34986       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34987       436102 :          ipack = ipack + 1
   34988       436102 :          packed_data(ipack) = pack_tmp
   34989       436102 :          data_tmp = full_data(idata)
   34990       436102 :          pack_tmp = ISHFT(data_tmp, 46)
   34991       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   34992       436102 :          idata = idata + 1
   34993       436102 :          data_tmp = full_data(idata)
   34994       436102 :          data_tmp = ISHFT(data_tmp, 19)
   34995       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   34996       436102 :          pack_tmp = ISHFT(pack_tmp, -1)
   34997       436102 :          idata = idata + 1
   34998       436102 :          data_tmp = full_data(idata)
   34999       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35000       436102 :          data_tmp = IAND(data_tmp, mask_left(1))
   35001       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35002       436102 :          ipack = ipack + 1
   35003       436102 :          packed_data(ipack) = pack_tmp
   35004       436102 :          data_tmp = full_data(idata)
   35005       436102 :          pack_tmp = ISHFT(data_tmp, 20)
   35006       436102 :          pack_tmp = ISHFT(pack_tmp, -20)
   35007       436102 :          idata = idata + 1
   35008       436102 :          data_tmp = full_data(idata)
   35009       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35010       436102 :          data_tmp = IAND(data_tmp, mask_left(20))
   35011       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35012       436102 :          ipack = ipack + 1
   35013       436102 :          packed_data(ipack) = pack_tmp
   35014       436102 :          data_tmp = full_data(idata)
   35015       436102 :          pack_tmp = ISHFT(data_tmp, 39)
   35016       436102 :          pack_tmp = ISHFT(pack_tmp, -39)
   35017       436102 :          idata = idata + 1
   35018       436102 :          data_tmp = full_data(idata)
   35019       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35020       436102 :          data_tmp = IAND(data_tmp, mask_left(39))
   35021       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35022       436102 :          ipack = ipack + 1
   35023       436102 :          packed_data(ipack) = pack_tmp
   35024       436102 :          data_tmp = full_data(idata)
   35025       436102 :          pack_tmp = ISHFT(data_tmp, 58)
   35026       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   35027       436102 :          idata = idata + 1
   35028       436102 :          data_tmp = full_data(idata)
   35029       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35030       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35031       436102 :          pack_tmp = ISHFT(pack_tmp, -13)
   35032       436102 :          idata = idata + 1
   35033       436102 :          data_tmp = full_data(idata)
   35034       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35035       436102 :          data_tmp = IAND(data_tmp, mask_left(13))
   35036       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35037       436102 :          ipack = ipack + 1
   35038       436102 :          packed_data(ipack) = pack_tmp
   35039       436102 :          data_tmp = full_data(idata)
   35040       436102 :          pack_tmp = ISHFT(data_tmp, 32)
   35041       436102 :          pack_tmp = ISHFT(pack_tmp, -32)
   35042       436102 :          idata = idata + 1
   35043       436102 :          data_tmp = full_data(idata)
   35044       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35045       436102 :          data_tmp = IAND(data_tmp, mask_left(32))
   35046       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35047       436102 :          ipack = ipack + 1
   35048       436102 :          packed_data(ipack) = pack_tmp
   35049       436102 :          data_tmp = full_data(idata)
   35050       436102 :          pack_tmp = ISHFT(data_tmp, 51)
   35051       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   35052       436102 :          idata = idata + 1
   35053       436102 :          data_tmp = full_data(idata)
   35054       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35055       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35056       436102 :          pack_tmp = ISHFT(pack_tmp, -6)
   35057       436102 :          idata = idata + 1
   35058       436102 :          data_tmp = full_data(idata)
   35059       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35060       436102 :          data_tmp = IAND(data_tmp, mask_left(6))
   35061       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35062       436102 :          ipack = ipack + 1
   35063       436102 :          packed_data(ipack) = pack_tmp
   35064       436102 :          data_tmp = full_data(idata)
   35065       436102 :          pack_tmp = ISHFT(data_tmp, 25)
   35066       436102 :          pack_tmp = ISHFT(pack_tmp, -25)
   35067       436102 :          idata = idata + 1
   35068       436102 :          data_tmp = full_data(idata)
   35069       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35070       436102 :          data_tmp = IAND(data_tmp, mask_left(25))
   35071       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35072       436102 :          ipack = ipack + 1
   35073       436102 :          packed_data(ipack) = pack_tmp
   35074       436102 :          data_tmp = full_data(idata)
   35075       436102 :          pack_tmp = ISHFT(data_tmp, 44)
   35076       436102 :          pack_tmp = ISHFT(pack_tmp, -44)
   35077       436102 :          idata = idata + 1
   35078       436102 :          data_tmp = full_data(idata)
   35079       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35080       436102 :          data_tmp = IAND(data_tmp, mask_left(44))
   35081       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35082       436102 :          ipack = ipack + 1
   35083       436102 :          packed_data(ipack) = pack_tmp
   35084       436102 :          data_tmp = full_data(idata)
   35085       436102 :          pack_tmp = ISHFT(data_tmp, 63)
   35086       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   35087       436102 :          idata = idata + 1
   35088       436102 :          data_tmp = full_data(idata)
   35089       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35090       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35091       436102 :          pack_tmp = ISHFT(pack_tmp, -18)
   35092       436102 :          idata = idata + 1
   35093       436102 :          data_tmp = full_data(idata)
   35094       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35095       436102 :          data_tmp = IAND(data_tmp, mask_left(18))
   35096       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35097       436102 :          ipack = ipack + 1
   35098       436102 :          packed_data(ipack) = pack_tmp
   35099       436102 :          data_tmp = full_data(idata)
   35100       436102 :          pack_tmp = ISHFT(data_tmp, 37)
   35101       436102 :          pack_tmp = ISHFT(pack_tmp, -37)
   35102       436102 :          idata = idata + 1
   35103       436102 :          data_tmp = full_data(idata)
   35104       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35105       436102 :          data_tmp = IAND(data_tmp, mask_left(37))
   35106       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35107       436102 :          ipack = ipack + 1
   35108       436102 :          packed_data(ipack) = pack_tmp
   35109       436102 :          data_tmp = full_data(idata)
   35110       436102 :          pack_tmp = ISHFT(data_tmp, 56)
   35111       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   35112       436102 :          idata = idata + 1
   35113       436102 :          data_tmp = full_data(idata)
   35114       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35115       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35116       436102 :          pack_tmp = ISHFT(pack_tmp, -11)
   35117       436102 :          idata = idata + 1
   35118       436102 :          data_tmp = full_data(idata)
   35119       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35120       436102 :          data_tmp = IAND(data_tmp, mask_left(11))
   35121       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35122       436102 :          ipack = ipack + 1
   35123       436102 :          packed_data(ipack) = pack_tmp
   35124       436102 :          data_tmp = full_data(idata)
   35125       436102 :          pack_tmp = ISHFT(data_tmp, 30)
   35126       436102 :          pack_tmp = ISHFT(pack_tmp, -30)
   35127       436102 :          idata = idata + 1
   35128       436102 :          data_tmp = full_data(idata)
   35129       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35130       436102 :          data_tmp = IAND(data_tmp, mask_left(30))
   35131       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35132       436102 :          ipack = ipack + 1
   35133       436102 :          packed_data(ipack) = pack_tmp
   35134       436102 :          data_tmp = full_data(idata)
   35135       436102 :          pack_tmp = ISHFT(data_tmp, 49)
   35136       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   35137       436102 :          idata = idata + 1
   35138       436102 :          data_tmp = full_data(idata)
   35139       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35140       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35141       436102 :          pack_tmp = ISHFT(pack_tmp, -4)
   35142       436102 :          idata = idata + 1
   35143       436102 :          data_tmp = full_data(idata)
   35144       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35145       436102 :          data_tmp = IAND(data_tmp, mask_left(4))
   35146       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35147       436102 :          ipack = ipack + 1
   35148       436102 :          packed_data(ipack) = pack_tmp
   35149       436102 :          data_tmp = full_data(idata)
   35150       436102 :          pack_tmp = ISHFT(data_tmp, 23)
   35151       436102 :          pack_tmp = ISHFT(pack_tmp, -23)
   35152       436102 :          idata = idata + 1
   35153       436102 :          data_tmp = full_data(idata)
   35154       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35155       436102 :          data_tmp = IAND(data_tmp, mask_left(23))
   35156       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35157       436102 :          ipack = ipack + 1
   35158       436102 :          packed_data(ipack) = pack_tmp
   35159       436102 :          data_tmp = full_data(idata)
   35160       436102 :          pack_tmp = ISHFT(data_tmp, 42)
   35161       436102 :          pack_tmp = ISHFT(pack_tmp, -42)
   35162       436102 :          idata = idata + 1
   35163       436102 :          data_tmp = full_data(idata)
   35164       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35165       436102 :          data_tmp = IAND(data_tmp, mask_left(42))
   35166       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35167       436102 :          ipack = ipack + 1
   35168       436102 :          packed_data(ipack) = pack_tmp
   35169       436102 :          data_tmp = full_data(idata)
   35170       436102 :          pack_tmp = ISHFT(data_tmp, 61)
   35171       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   35172       436102 :          idata = idata + 1
   35173       436102 :          data_tmp = full_data(idata)
   35174       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35175       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35176       436102 :          pack_tmp = ISHFT(pack_tmp, -16)
   35177       436102 :          idata = idata + 1
   35178       436102 :          data_tmp = full_data(idata)
   35179       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35180       436102 :          data_tmp = IAND(data_tmp, mask_left(16))
   35181       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35182       436102 :          ipack = ipack + 1
   35183       436102 :          packed_data(ipack) = pack_tmp
   35184       436102 :          data_tmp = full_data(idata)
   35185       436102 :          pack_tmp = ISHFT(data_tmp, 35)
   35186       436102 :          pack_tmp = ISHFT(pack_tmp, -35)
   35187       436102 :          idata = idata + 1
   35188       436102 :          data_tmp = full_data(idata)
   35189       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35190       436102 :          data_tmp = IAND(data_tmp, mask_left(35))
   35191       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35192       436102 :          ipack = ipack + 1
   35193       436102 :          packed_data(ipack) = pack_tmp
   35194       436102 :          data_tmp = full_data(idata)
   35195       436102 :          pack_tmp = ISHFT(data_tmp, 54)
   35196       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   35197       436102 :          idata = idata + 1
   35198       436102 :          data_tmp = full_data(idata)
   35199       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35200       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35201       436102 :          pack_tmp = ISHFT(pack_tmp, -9)
   35202       436102 :          idata = idata + 1
   35203       436102 :          data_tmp = full_data(idata)
   35204       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35205       436102 :          data_tmp = IAND(data_tmp, mask_left(9))
   35206       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35207       436102 :          ipack = ipack + 1
   35208       436102 :          packed_data(ipack) = pack_tmp
   35209       436102 :          data_tmp = full_data(idata)
   35210       436102 :          pack_tmp = ISHFT(data_tmp, 28)
   35211       436102 :          pack_tmp = ISHFT(pack_tmp, -28)
   35212       436102 :          idata = idata + 1
   35213       436102 :          data_tmp = full_data(idata)
   35214       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35215       436102 :          data_tmp = IAND(data_tmp, mask_left(28))
   35216       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35217       436102 :          ipack = ipack + 1
   35218       436102 :          packed_data(ipack) = pack_tmp
   35219       436102 :          data_tmp = full_data(idata)
   35220       436102 :          pack_tmp = ISHFT(data_tmp, 47)
   35221       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   35222       436102 :          idata = idata + 1
   35223       436102 :          data_tmp = full_data(idata)
   35224       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35225       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35226       436102 :          pack_tmp = ISHFT(pack_tmp, -2)
   35227       436102 :          idata = idata + 1
   35228       436102 :          data_tmp = full_data(idata)
   35229       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35230       436102 :          data_tmp = IAND(data_tmp, mask_left(2))
   35231       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35232       436102 :          ipack = ipack + 1
   35233       436102 :          packed_data(ipack) = pack_tmp
   35234       436102 :          data_tmp = full_data(idata)
   35235       436102 :          pack_tmp = ISHFT(data_tmp, 21)
   35236       436102 :          pack_tmp = ISHFT(pack_tmp, -21)
   35237       436102 :          idata = idata + 1
   35238       436102 :          data_tmp = full_data(idata)
   35239       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35240       436102 :          data_tmp = IAND(data_tmp, mask_left(21))
   35241       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35242       436102 :          ipack = ipack + 1
   35243       436102 :          packed_data(ipack) = pack_tmp
   35244       436102 :          data_tmp = full_data(idata)
   35245       436102 :          pack_tmp = ISHFT(data_tmp, 40)
   35246       436102 :          pack_tmp = ISHFT(pack_tmp, -40)
   35247       436102 :          idata = idata + 1
   35248       436102 :          data_tmp = full_data(idata)
   35249       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35250       436102 :          data_tmp = IAND(data_tmp, mask_left(40))
   35251       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35252       436102 :          ipack = ipack + 1
   35253       436102 :          packed_data(ipack) = pack_tmp
   35254       436102 :          data_tmp = full_data(idata)
   35255       436102 :          pack_tmp = ISHFT(data_tmp, 59)
   35256       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   35257       436102 :          idata = idata + 1
   35258       436102 :          data_tmp = full_data(idata)
   35259       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35260       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35261       436102 :          pack_tmp = ISHFT(pack_tmp, -14)
   35262       436102 :          idata = idata + 1
   35263       436102 :          data_tmp = full_data(idata)
   35264       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35265       436102 :          data_tmp = IAND(data_tmp, mask_left(14))
   35266       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35267       436102 :          ipack = ipack + 1
   35268       436102 :          packed_data(ipack) = pack_tmp
   35269       436102 :          data_tmp = full_data(idata)
   35270       436102 :          pack_tmp = ISHFT(data_tmp, 33)
   35271       436102 :          pack_tmp = ISHFT(pack_tmp, -33)
   35272       436102 :          idata = idata + 1
   35273       436102 :          data_tmp = full_data(idata)
   35274       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35275       436102 :          data_tmp = IAND(data_tmp, mask_left(33))
   35276       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35277       436102 :          ipack = ipack + 1
   35278       436102 :          packed_data(ipack) = pack_tmp
   35279       436102 :          data_tmp = full_data(idata)
   35280       436102 :          pack_tmp = ISHFT(data_tmp, 52)
   35281       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   35282       436102 :          idata = idata + 1
   35283       436102 :          data_tmp = full_data(idata)
   35284       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35285       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35286       436102 :          pack_tmp = ISHFT(pack_tmp, -7)
   35287       436102 :          idata = idata + 1
   35288       436102 :          data_tmp = full_data(idata)
   35289       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35290       436102 :          data_tmp = IAND(data_tmp, mask_left(7))
   35291       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35292       436102 :          ipack = ipack + 1
   35293       436102 :          packed_data(ipack) = pack_tmp
   35294       436102 :          data_tmp = full_data(idata)
   35295       436102 :          pack_tmp = ISHFT(data_tmp, 26)
   35296       436102 :          pack_tmp = ISHFT(pack_tmp, -26)
   35297       436102 :          idata = idata + 1
   35298       436102 :          data_tmp = full_data(idata)
   35299       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35300       436102 :          data_tmp = IAND(data_tmp, mask_left(26))
   35301       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35302       436102 :          ipack = ipack + 1
   35303       436102 :          packed_data(ipack) = pack_tmp
   35304       436102 :          data_tmp = full_data(idata)
   35305       436102 :          pack_tmp = ISHFT(data_tmp, 45)
   35306       436102 :          pack_tmp = ISHFT(pack_tmp, -45)
   35307       436102 :          idata = idata + 1
   35308       436102 :          data_tmp = full_data(idata)
   35309       436102 :          data_tmp = ISHFT(data_tmp, 19)
   35310       436102 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35311              :          pack_tmp = ISHFT(pack_tmp, 0)
   35312       436102 :          pack_tmp = ISHFT(pack_tmp, 0)
   35313       436102 :          ipack = ipack + 1
   35314       436153 :          packed_data(ipack) = pack_tmp
   35315              :       END DO
   35316        29902 :       IF (Ndata_rep < Ndata) THEN
   35317         4980 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   35318              :       END IF
   35319        29902 :    END SUBROUTINE ints2bits_45
   35320              : 
   35321              : ! **************************************************************************************************
   35322              : !> \brief ...
   35323              : !> \param Ndata ...
   35324              : !> \param packed_data ...
   35325              : !> \param full_data ...
   35326              : ! **************************************************************************************************
   35327       135031 :    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       135031 :       ipack = 0
   35338       135031 :       idata = 0
   35339       135031 :       pack_tmp = 0
   35340       135031 :       Ndata_rep = (Ndata/64)*64
   35341       135031 :       DO kdata = 1, Ndata_rep, 64
   35342      1894242 :          idata = idata + 1
   35343      1894242 :          data_tmp = ISHFT(pack_tmp, 45)
   35344      1894242 :          ipack = ipack + 1
   35345      1894242 :          pack_tmp = packed_data(ipack)
   35346      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   35347      1894242 :          pack_tmp = ISHFT(pack_tmp, -45)
   35348      1894242 :          idata = idata + 1
   35349      1894242 :          data_tmp = ISHFT(pack_tmp, 26)
   35350      1894242 :          ipack = ipack + 1
   35351      1894242 :          pack_tmp = packed_data(ipack)
   35352      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   35353      1894242 :          pack_tmp = ISHFT(pack_tmp, -26)
   35354      1894242 :          idata = idata + 1
   35355      1894242 :          data_tmp = ISHFT(pack_tmp, 7)
   35356      1894242 :          ipack = ipack + 1
   35357      1894242 :          pack_tmp = packed_data(ipack)
   35358      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   35359      1894242 :          pack_tmp = ISHFT(pack_tmp, -7)
   35360      1894242 :          idata = idata + 1
   35361      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35362      1894242 :          full_data(idata) = data_tmp
   35363      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35364      1894242 :          idata = idata + 1
   35365      1894242 :          data_tmp = ISHFT(pack_tmp, 33)
   35366      1894242 :          ipack = ipack + 1
   35367      1894242 :          pack_tmp = packed_data(ipack)
   35368      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   35369      1894242 :          pack_tmp = ISHFT(pack_tmp, -33)
   35370      1894242 :          idata = idata + 1
   35371      1894242 :          data_tmp = ISHFT(pack_tmp, 14)
   35372      1894242 :          ipack = ipack + 1
   35373      1894242 :          pack_tmp = packed_data(ipack)
   35374      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   35375      1894242 :          pack_tmp = ISHFT(pack_tmp, -14)
   35376      1894242 :          idata = idata + 1
   35377      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35378      1894242 :          full_data(idata) = data_tmp
   35379      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35380      1894242 :          idata = idata + 1
   35381      1894242 :          data_tmp = ISHFT(pack_tmp, 40)
   35382      1894242 :          ipack = ipack + 1
   35383      1894242 :          pack_tmp = packed_data(ipack)
   35384      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   35385      1894242 :          pack_tmp = ISHFT(pack_tmp, -40)
   35386      1894242 :          idata = idata + 1
   35387      1894242 :          data_tmp = ISHFT(pack_tmp, 21)
   35388      1894242 :          ipack = ipack + 1
   35389      1894242 :          pack_tmp = packed_data(ipack)
   35390      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   35391      1894242 :          pack_tmp = ISHFT(pack_tmp, -21)
   35392      1894242 :          idata = idata + 1
   35393      1894242 :          data_tmp = ISHFT(pack_tmp, 2)
   35394      1894242 :          ipack = ipack + 1
   35395      1894242 :          pack_tmp = packed_data(ipack)
   35396      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   35397      1894242 :          pack_tmp = ISHFT(pack_tmp, -2)
   35398      1894242 :          idata = idata + 1
   35399      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35400      1894242 :          full_data(idata) = data_tmp
   35401      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35402      1894242 :          idata = idata + 1
   35403      1894242 :          data_tmp = ISHFT(pack_tmp, 28)
   35404      1894242 :          ipack = ipack + 1
   35405      1894242 :          pack_tmp = packed_data(ipack)
   35406      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   35407      1894242 :          pack_tmp = ISHFT(pack_tmp, -28)
   35408      1894242 :          idata = idata + 1
   35409      1894242 :          data_tmp = ISHFT(pack_tmp, 9)
   35410      1894242 :          ipack = ipack + 1
   35411      1894242 :          pack_tmp = packed_data(ipack)
   35412      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   35413      1894242 :          pack_tmp = ISHFT(pack_tmp, -9)
   35414      1894242 :          idata = idata + 1
   35415      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35416      1894242 :          full_data(idata) = data_tmp
   35417      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35418      1894242 :          idata = idata + 1
   35419      1894242 :          data_tmp = ISHFT(pack_tmp, 35)
   35420      1894242 :          ipack = ipack + 1
   35421      1894242 :          pack_tmp = packed_data(ipack)
   35422      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   35423      1894242 :          pack_tmp = ISHFT(pack_tmp, -35)
   35424      1894242 :          idata = idata + 1
   35425      1894242 :          data_tmp = ISHFT(pack_tmp, 16)
   35426      1894242 :          ipack = ipack + 1
   35427      1894242 :          pack_tmp = packed_data(ipack)
   35428      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   35429      1894242 :          pack_tmp = ISHFT(pack_tmp, -16)
   35430      1894242 :          idata = idata + 1
   35431      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35432      1894242 :          full_data(idata) = data_tmp
   35433      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35434      1894242 :          idata = idata + 1
   35435      1894242 :          data_tmp = ISHFT(pack_tmp, 42)
   35436      1894242 :          ipack = ipack + 1
   35437      1894242 :          pack_tmp = packed_data(ipack)
   35438      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   35439      1894242 :          pack_tmp = ISHFT(pack_tmp, -42)
   35440      1894242 :          idata = idata + 1
   35441      1894242 :          data_tmp = ISHFT(pack_tmp, 23)
   35442      1894242 :          ipack = ipack + 1
   35443      1894242 :          pack_tmp = packed_data(ipack)
   35444      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   35445      1894242 :          pack_tmp = ISHFT(pack_tmp, -23)
   35446      1894242 :          idata = idata + 1
   35447      1894242 :          data_tmp = ISHFT(pack_tmp, 4)
   35448      1894242 :          ipack = ipack + 1
   35449      1894242 :          pack_tmp = packed_data(ipack)
   35450      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   35451      1894242 :          pack_tmp = ISHFT(pack_tmp, -4)
   35452      1894242 :          idata = idata + 1
   35453      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35454      1894242 :          full_data(idata) = data_tmp
   35455      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35456      1894242 :          idata = idata + 1
   35457      1894242 :          data_tmp = ISHFT(pack_tmp, 30)
   35458      1894242 :          ipack = ipack + 1
   35459      1894242 :          pack_tmp = packed_data(ipack)
   35460      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   35461      1894242 :          pack_tmp = ISHFT(pack_tmp, -30)
   35462      1894242 :          idata = idata + 1
   35463      1894242 :          data_tmp = ISHFT(pack_tmp, 11)
   35464      1894242 :          ipack = ipack + 1
   35465      1894242 :          pack_tmp = packed_data(ipack)
   35466      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   35467      1894242 :          pack_tmp = ISHFT(pack_tmp, -11)
   35468      1894242 :          idata = idata + 1
   35469      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35470      1894242 :          full_data(idata) = data_tmp
   35471      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35472      1894242 :          idata = idata + 1
   35473      1894242 :          data_tmp = ISHFT(pack_tmp, 37)
   35474      1894242 :          ipack = ipack + 1
   35475      1894242 :          pack_tmp = packed_data(ipack)
   35476      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   35477      1894242 :          pack_tmp = ISHFT(pack_tmp, -37)
   35478      1894242 :          idata = idata + 1
   35479      1894242 :          data_tmp = ISHFT(pack_tmp, 18)
   35480      1894242 :          ipack = ipack + 1
   35481      1894242 :          pack_tmp = packed_data(ipack)
   35482      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   35483      1894242 :          pack_tmp = ISHFT(pack_tmp, -18)
   35484      1894242 :          idata = idata + 1
   35485      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35486      1894242 :          full_data(idata) = data_tmp
   35487      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35488      1894242 :          idata = idata + 1
   35489      1894242 :          data_tmp = ISHFT(pack_tmp, 44)
   35490      1894242 :          ipack = ipack + 1
   35491      1894242 :          pack_tmp = packed_data(ipack)
   35492      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   35493      1894242 :          pack_tmp = ISHFT(pack_tmp, -44)
   35494      1894242 :          idata = idata + 1
   35495      1894242 :          data_tmp = ISHFT(pack_tmp, 25)
   35496      1894242 :          ipack = ipack + 1
   35497      1894242 :          pack_tmp = packed_data(ipack)
   35498      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   35499      1894242 :          pack_tmp = ISHFT(pack_tmp, -25)
   35500      1894242 :          idata = idata + 1
   35501      1894242 :          data_tmp = ISHFT(pack_tmp, 6)
   35502      1894242 :          ipack = ipack + 1
   35503      1894242 :          pack_tmp = packed_data(ipack)
   35504      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   35505      1894242 :          pack_tmp = ISHFT(pack_tmp, -6)
   35506      1894242 :          idata = idata + 1
   35507      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35508      1894242 :          full_data(idata) = data_tmp
   35509      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35510      1894242 :          idata = idata + 1
   35511      1894242 :          data_tmp = ISHFT(pack_tmp, 32)
   35512      1894242 :          ipack = ipack + 1
   35513      1894242 :          pack_tmp = packed_data(ipack)
   35514      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   35515      1894242 :          pack_tmp = ISHFT(pack_tmp, -32)
   35516      1894242 :          idata = idata + 1
   35517      1894242 :          data_tmp = ISHFT(pack_tmp, 13)
   35518      1894242 :          ipack = ipack + 1
   35519      1894242 :          pack_tmp = packed_data(ipack)
   35520      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   35521      1894242 :          pack_tmp = ISHFT(pack_tmp, -13)
   35522      1894242 :          idata = idata + 1
   35523      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35524      1894242 :          full_data(idata) = data_tmp
   35525      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35526      1894242 :          idata = idata + 1
   35527      1894242 :          data_tmp = ISHFT(pack_tmp, 39)
   35528      1894242 :          ipack = ipack + 1
   35529      1894242 :          pack_tmp = packed_data(ipack)
   35530      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   35531      1894242 :          pack_tmp = ISHFT(pack_tmp, -39)
   35532      1894242 :          idata = idata + 1
   35533      1894242 :          data_tmp = ISHFT(pack_tmp, 20)
   35534      1894242 :          ipack = ipack + 1
   35535      1894242 :          pack_tmp = packed_data(ipack)
   35536      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   35537      1894242 :          pack_tmp = ISHFT(pack_tmp, -20)
   35538      1894242 :          idata = idata + 1
   35539      1894242 :          data_tmp = ISHFT(pack_tmp, 1)
   35540      1894242 :          ipack = ipack + 1
   35541      1894242 :          pack_tmp = packed_data(ipack)
   35542      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   35543      1894242 :          pack_tmp = ISHFT(pack_tmp, -1)
   35544      1894242 :          idata = idata + 1
   35545      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35546      1894242 :          full_data(idata) = data_tmp
   35547      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35548      1894242 :          idata = idata + 1
   35549      1894242 :          data_tmp = ISHFT(pack_tmp, 27)
   35550      1894242 :          ipack = ipack + 1
   35551      1894242 :          pack_tmp = packed_data(ipack)
   35552      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   35553      1894242 :          pack_tmp = ISHFT(pack_tmp, -27)
   35554      1894242 :          idata = idata + 1
   35555      1894242 :          data_tmp = ISHFT(pack_tmp, 8)
   35556      1894242 :          ipack = ipack + 1
   35557      1894242 :          pack_tmp = packed_data(ipack)
   35558      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   35559      1894242 :          pack_tmp = ISHFT(pack_tmp, -8)
   35560      1894242 :          idata = idata + 1
   35561      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35562      1894242 :          full_data(idata) = data_tmp
   35563      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35564      1894242 :          idata = idata + 1
   35565      1894242 :          data_tmp = ISHFT(pack_tmp, 34)
   35566      1894242 :          ipack = ipack + 1
   35567      1894242 :          pack_tmp = packed_data(ipack)
   35568      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   35569      1894242 :          pack_tmp = ISHFT(pack_tmp, -34)
   35570      1894242 :          idata = idata + 1
   35571      1894242 :          data_tmp = ISHFT(pack_tmp, 15)
   35572      1894242 :          ipack = ipack + 1
   35573      1894242 :          pack_tmp = packed_data(ipack)
   35574      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   35575      1894242 :          pack_tmp = ISHFT(pack_tmp, -15)
   35576      1894242 :          idata = idata + 1
   35577      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35578      1894242 :          full_data(idata) = data_tmp
   35579      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35580      1894242 :          idata = idata + 1
   35581      1894242 :          data_tmp = ISHFT(pack_tmp, 41)
   35582      1894242 :          ipack = ipack + 1
   35583      1894242 :          pack_tmp = packed_data(ipack)
   35584      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   35585      1894242 :          pack_tmp = ISHFT(pack_tmp, -41)
   35586      1894242 :          idata = idata + 1
   35587      1894242 :          data_tmp = ISHFT(pack_tmp, 22)
   35588      1894242 :          ipack = ipack + 1
   35589      1894242 :          pack_tmp = packed_data(ipack)
   35590      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   35591      1894242 :          pack_tmp = ISHFT(pack_tmp, -22)
   35592      1894242 :          idata = idata + 1
   35593      1894242 :          data_tmp = ISHFT(pack_tmp, 3)
   35594      1894242 :          ipack = ipack + 1
   35595      1894242 :          pack_tmp = packed_data(ipack)
   35596      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   35597      1894242 :          pack_tmp = ISHFT(pack_tmp, -3)
   35598      1894242 :          idata = idata + 1
   35599      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35600      1894242 :          full_data(idata) = data_tmp
   35601      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35602      1894242 :          idata = idata + 1
   35603      1894242 :          data_tmp = ISHFT(pack_tmp, 29)
   35604      1894242 :          ipack = ipack + 1
   35605      1894242 :          pack_tmp = packed_data(ipack)
   35606      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   35607      1894242 :          pack_tmp = ISHFT(pack_tmp, -29)
   35608      1894242 :          idata = idata + 1
   35609      1894242 :          data_tmp = ISHFT(pack_tmp, 10)
   35610      1894242 :          ipack = ipack + 1
   35611      1894242 :          pack_tmp = packed_data(ipack)
   35612      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   35613      1894242 :          pack_tmp = ISHFT(pack_tmp, -10)
   35614      1894242 :          idata = idata + 1
   35615      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35616      1894242 :          full_data(idata) = data_tmp
   35617      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35618      1894242 :          idata = idata + 1
   35619      1894242 :          data_tmp = ISHFT(pack_tmp, 36)
   35620      1894242 :          ipack = ipack + 1
   35621      1894242 :          pack_tmp = packed_data(ipack)
   35622      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   35623      1894242 :          pack_tmp = ISHFT(pack_tmp, -36)
   35624      1894242 :          idata = idata + 1
   35625      1894242 :          data_tmp = ISHFT(pack_tmp, 17)
   35626      1894242 :          ipack = ipack + 1
   35627      1894242 :          pack_tmp = packed_data(ipack)
   35628      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   35629      1894242 :          pack_tmp = ISHFT(pack_tmp, -17)
   35630      1894242 :          idata = idata + 1
   35631      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35632      1894242 :          full_data(idata) = data_tmp
   35633      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35634      1894242 :          idata = idata + 1
   35635      1894242 :          data_tmp = ISHFT(pack_tmp, 43)
   35636      1894242 :          ipack = ipack + 1
   35637      1894242 :          pack_tmp = packed_data(ipack)
   35638      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   35639      1894242 :          pack_tmp = ISHFT(pack_tmp, -43)
   35640      1894242 :          idata = idata + 1
   35641      1894242 :          data_tmp = ISHFT(pack_tmp, 24)
   35642      1894242 :          ipack = ipack + 1
   35643      1894242 :          pack_tmp = packed_data(ipack)
   35644      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   35645      1894242 :          pack_tmp = ISHFT(pack_tmp, -24)
   35646      1894242 :          idata = idata + 1
   35647      1894242 :          data_tmp = ISHFT(pack_tmp, 5)
   35648      1894242 :          ipack = ipack + 1
   35649      1894242 :          pack_tmp = packed_data(ipack)
   35650      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   35651      1894242 :          pack_tmp = ISHFT(pack_tmp, -5)
   35652      1894242 :          idata = idata + 1
   35653      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35654      1894242 :          full_data(idata) = data_tmp
   35655      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35656      1894242 :          idata = idata + 1
   35657      1894242 :          data_tmp = ISHFT(pack_tmp, 31)
   35658      1894242 :          ipack = ipack + 1
   35659      1894242 :          pack_tmp = packed_data(ipack)
   35660      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   35661      1894242 :          pack_tmp = ISHFT(pack_tmp, -31)
   35662      1894242 :          idata = idata + 1
   35663      1894242 :          data_tmp = ISHFT(pack_tmp, 12)
   35664      1894242 :          ipack = ipack + 1
   35665      1894242 :          pack_tmp = packed_data(ipack)
   35666      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   35667      1894242 :          pack_tmp = ISHFT(pack_tmp, -12)
   35668      1894242 :          idata = idata + 1
   35669      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35670      1894242 :          full_data(idata) = data_tmp
   35671      1894242 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35672      1894242 :          idata = idata + 1
   35673      1894242 :          data_tmp = ISHFT(pack_tmp, 38)
   35674      1894242 :          ipack = ipack + 1
   35675      1894242 :          pack_tmp = packed_data(ipack)
   35676      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   35677      1894242 :          pack_tmp = ISHFT(pack_tmp, -38)
   35678      1894242 :          idata = idata + 1
   35679      1894242 :          data_tmp = ISHFT(pack_tmp, 19)
   35680      1894242 :          ipack = ipack + 1
   35681      1894242 :          pack_tmp = packed_data(ipack)
   35682      1894242 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   35683      1894242 :          pack_tmp = ISHFT(pack_tmp, -19)
   35684      1894242 :          idata = idata + 1
   35685      1894242 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   35686      1894242 :          full_data(idata) = data_tmp
   35687      1895218 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   35688              :       END DO
   35689       135031 :       IF (Ndata_rep < Ndata) THEN
   35690        31324 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   35691              :       END IF
   35692       135031 :    END SUBROUTINE bits2ints_45
   35693              : 
   35694              : ! **************************************************************************************************
   35695              : !> \brief ...
   35696              : !> \param Ndata ...
   35697              : !> \param packed_data ...
   35698              : !> \param full_data ...
   35699              : ! **************************************************************************************************
   35700        29430 :    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        29430 :       idata = 0
   35711        29430 :       ipack = 0
   35712        29430 :       Ndata_rep = (Ndata/64)*64
   35713        29430 :       DO kdata = 1, Ndata_rep, 64
   35714       431215 :          pack_tmp = 0
   35715       431215 :          idata = idata + 1
   35716       431215 :          data_tmp = full_data(idata)
   35717       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35718       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35719       431215 :          pack_tmp = ISHFT(pack_tmp, -18)
   35720       431215 :          idata = idata + 1
   35721       431215 :          data_tmp = full_data(idata)
   35722       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35723       431215 :          data_tmp = IAND(data_tmp, mask_left(18))
   35724       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35725       431215 :          ipack = ipack + 1
   35726       431215 :          packed_data(ipack) = pack_tmp
   35727       431215 :          data_tmp = full_data(idata)
   35728       431215 :          pack_tmp = ISHFT(data_tmp, 36)
   35729       431215 :          pack_tmp = ISHFT(pack_tmp, -36)
   35730       431215 :          idata = idata + 1
   35731       431215 :          data_tmp = full_data(idata)
   35732       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35733       431215 :          data_tmp = IAND(data_tmp, mask_left(36))
   35734       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35735       431215 :          ipack = ipack + 1
   35736       431215 :          packed_data(ipack) = pack_tmp
   35737       431215 :          data_tmp = full_data(idata)
   35738       431215 :          pack_tmp = ISHFT(data_tmp, 54)
   35739       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   35740       431215 :          idata = idata + 1
   35741       431215 :          data_tmp = full_data(idata)
   35742       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35743       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35744       431215 :          pack_tmp = ISHFT(pack_tmp, -8)
   35745       431215 :          idata = idata + 1
   35746       431215 :          data_tmp = full_data(idata)
   35747       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35748       431215 :          data_tmp = IAND(data_tmp, mask_left(8))
   35749       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35750       431215 :          ipack = ipack + 1
   35751       431215 :          packed_data(ipack) = pack_tmp
   35752       431215 :          data_tmp = full_data(idata)
   35753       431215 :          pack_tmp = ISHFT(data_tmp, 26)
   35754       431215 :          pack_tmp = ISHFT(pack_tmp, -26)
   35755       431215 :          idata = idata + 1
   35756       431215 :          data_tmp = full_data(idata)
   35757       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35758       431215 :          data_tmp = IAND(data_tmp, mask_left(26))
   35759       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35760       431215 :          ipack = ipack + 1
   35761       431215 :          packed_data(ipack) = pack_tmp
   35762       431215 :          data_tmp = full_data(idata)
   35763       431215 :          pack_tmp = ISHFT(data_tmp, 44)
   35764       431215 :          pack_tmp = ISHFT(pack_tmp, -44)
   35765       431215 :          idata = idata + 1
   35766       431215 :          data_tmp = full_data(idata)
   35767       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35768       431215 :          data_tmp = IAND(data_tmp, mask_left(44))
   35769       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35770       431215 :          ipack = ipack + 1
   35771       431215 :          packed_data(ipack) = pack_tmp
   35772       431215 :          data_tmp = full_data(idata)
   35773       431215 :          pack_tmp = ISHFT(data_tmp, 62)
   35774       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   35775       431215 :          idata = idata + 1
   35776       431215 :          data_tmp = full_data(idata)
   35777       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35778       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35779       431215 :          pack_tmp = ISHFT(pack_tmp, -16)
   35780       431215 :          idata = idata + 1
   35781       431215 :          data_tmp = full_data(idata)
   35782       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35783       431215 :          data_tmp = IAND(data_tmp, mask_left(16))
   35784       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35785       431215 :          ipack = ipack + 1
   35786       431215 :          packed_data(ipack) = pack_tmp
   35787       431215 :          data_tmp = full_data(idata)
   35788       431215 :          pack_tmp = ISHFT(data_tmp, 34)
   35789       431215 :          pack_tmp = ISHFT(pack_tmp, -34)
   35790       431215 :          idata = idata + 1
   35791       431215 :          data_tmp = full_data(idata)
   35792       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35793       431215 :          data_tmp = IAND(data_tmp, mask_left(34))
   35794       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35795       431215 :          ipack = ipack + 1
   35796       431215 :          packed_data(ipack) = pack_tmp
   35797       431215 :          data_tmp = full_data(idata)
   35798       431215 :          pack_tmp = ISHFT(data_tmp, 52)
   35799       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   35800       431215 :          idata = idata + 1
   35801       431215 :          data_tmp = full_data(idata)
   35802       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35803       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35804       431215 :          pack_tmp = ISHFT(pack_tmp, -6)
   35805       431215 :          idata = idata + 1
   35806       431215 :          data_tmp = full_data(idata)
   35807       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35808       431215 :          data_tmp = IAND(data_tmp, mask_left(6))
   35809       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35810       431215 :          ipack = ipack + 1
   35811       431215 :          packed_data(ipack) = pack_tmp
   35812       431215 :          data_tmp = full_data(idata)
   35813       431215 :          pack_tmp = ISHFT(data_tmp, 24)
   35814       431215 :          pack_tmp = ISHFT(pack_tmp, -24)
   35815       431215 :          idata = idata + 1
   35816       431215 :          data_tmp = full_data(idata)
   35817       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35818       431215 :          data_tmp = IAND(data_tmp, mask_left(24))
   35819       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35820       431215 :          ipack = ipack + 1
   35821       431215 :          packed_data(ipack) = pack_tmp
   35822       431215 :          data_tmp = full_data(idata)
   35823       431215 :          pack_tmp = ISHFT(data_tmp, 42)
   35824       431215 :          pack_tmp = ISHFT(pack_tmp, -42)
   35825       431215 :          idata = idata + 1
   35826       431215 :          data_tmp = full_data(idata)
   35827       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35828       431215 :          data_tmp = IAND(data_tmp, mask_left(42))
   35829       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35830       431215 :          ipack = ipack + 1
   35831       431215 :          packed_data(ipack) = pack_tmp
   35832       431215 :          data_tmp = full_data(idata)
   35833       431215 :          pack_tmp = ISHFT(data_tmp, 60)
   35834       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   35835       431215 :          idata = idata + 1
   35836       431215 :          data_tmp = full_data(idata)
   35837       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35838       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35839       431215 :          pack_tmp = ISHFT(pack_tmp, -14)
   35840       431215 :          idata = idata + 1
   35841       431215 :          data_tmp = full_data(idata)
   35842       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35843       431215 :          data_tmp = IAND(data_tmp, mask_left(14))
   35844       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35845       431215 :          ipack = ipack + 1
   35846       431215 :          packed_data(ipack) = pack_tmp
   35847       431215 :          data_tmp = full_data(idata)
   35848       431215 :          pack_tmp = ISHFT(data_tmp, 32)
   35849       431215 :          pack_tmp = ISHFT(pack_tmp, -32)
   35850       431215 :          idata = idata + 1
   35851       431215 :          data_tmp = full_data(idata)
   35852       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35853       431215 :          data_tmp = IAND(data_tmp, mask_left(32))
   35854       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35855       431215 :          ipack = ipack + 1
   35856       431215 :          packed_data(ipack) = pack_tmp
   35857       431215 :          data_tmp = full_data(idata)
   35858       431215 :          pack_tmp = ISHFT(data_tmp, 50)
   35859       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   35860       431215 :          idata = idata + 1
   35861       431215 :          data_tmp = full_data(idata)
   35862       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35863       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35864       431215 :          pack_tmp = ISHFT(pack_tmp, -4)
   35865       431215 :          idata = idata + 1
   35866       431215 :          data_tmp = full_data(idata)
   35867       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35868       431215 :          data_tmp = IAND(data_tmp, mask_left(4))
   35869       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35870       431215 :          ipack = ipack + 1
   35871       431215 :          packed_data(ipack) = pack_tmp
   35872       431215 :          data_tmp = full_data(idata)
   35873       431215 :          pack_tmp = ISHFT(data_tmp, 22)
   35874       431215 :          pack_tmp = ISHFT(pack_tmp, -22)
   35875       431215 :          idata = idata + 1
   35876       431215 :          data_tmp = full_data(idata)
   35877       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35878       431215 :          data_tmp = IAND(data_tmp, mask_left(22))
   35879       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35880       431215 :          ipack = ipack + 1
   35881       431215 :          packed_data(ipack) = pack_tmp
   35882       431215 :          data_tmp = full_data(idata)
   35883       431215 :          pack_tmp = ISHFT(data_tmp, 40)
   35884       431215 :          pack_tmp = ISHFT(pack_tmp, -40)
   35885       431215 :          idata = idata + 1
   35886       431215 :          data_tmp = full_data(idata)
   35887       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35888       431215 :          data_tmp = IAND(data_tmp, mask_left(40))
   35889       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35890       431215 :          ipack = ipack + 1
   35891       431215 :          packed_data(ipack) = pack_tmp
   35892       431215 :          data_tmp = full_data(idata)
   35893       431215 :          pack_tmp = ISHFT(data_tmp, 58)
   35894       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   35895       431215 :          idata = idata + 1
   35896       431215 :          data_tmp = full_data(idata)
   35897       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35898       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35899       431215 :          pack_tmp = ISHFT(pack_tmp, -12)
   35900       431215 :          idata = idata + 1
   35901       431215 :          data_tmp = full_data(idata)
   35902       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35903       431215 :          data_tmp = IAND(data_tmp, mask_left(12))
   35904       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35905       431215 :          ipack = ipack + 1
   35906       431215 :          packed_data(ipack) = pack_tmp
   35907       431215 :          data_tmp = full_data(idata)
   35908       431215 :          pack_tmp = ISHFT(data_tmp, 30)
   35909       431215 :          pack_tmp = ISHFT(pack_tmp, -30)
   35910       431215 :          idata = idata + 1
   35911       431215 :          data_tmp = full_data(idata)
   35912       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35913       431215 :          data_tmp = IAND(data_tmp, mask_left(30))
   35914       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35915       431215 :          ipack = ipack + 1
   35916       431215 :          packed_data(ipack) = pack_tmp
   35917       431215 :          data_tmp = full_data(idata)
   35918       431215 :          pack_tmp = ISHFT(data_tmp, 48)
   35919       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   35920       431215 :          idata = idata + 1
   35921       431215 :          data_tmp = full_data(idata)
   35922       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35923       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35924       431215 :          pack_tmp = ISHFT(pack_tmp, -2)
   35925       431215 :          idata = idata + 1
   35926       431215 :          data_tmp = full_data(idata)
   35927       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35928       431215 :          data_tmp = IAND(data_tmp, mask_left(2))
   35929       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35930       431215 :          ipack = ipack + 1
   35931       431215 :          packed_data(ipack) = pack_tmp
   35932       431215 :          data_tmp = full_data(idata)
   35933       431215 :          pack_tmp = ISHFT(data_tmp, 20)
   35934       431215 :          pack_tmp = ISHFT(pack_tmp, -20)
   35935       431215 :          idata = idata + 1
   35936       431215 :          data_tmp = full_data(idata)
   35937       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35938       431215 :          data_tmp = IAND(data_tmp, mask_left(20))
   35939       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35940       431215 :          ipack = ipack + 1
   35941       431215 :          packed_data(ipack) = pack_tmp
   35942       431215 :          data_tmp = full_data(idata)
   35943       431215 :          pack_tmp = ISHFT(data_tmp, 38)
   35944       431215 :          pack_tmp = ISHFT(pack_tmp, -38)
   35945       431215 :          idata = idata + 1
   35946       431215 :          data_tmp = full_data(idata)
   35947       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35948       431215 :          data_tmp = IAND(data_tmp, mask_left(38))
   35949       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35950       431215 :          ipack = ipack + 1
   35951       431215 :          packed_data(ipack) = pack_tmp
   35952       431215 :          data_tmp = full_data(idata)
   35953       431215 :          pack_tmp = ISHFT(data_tmp, 56)
   35954       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   35955       431215 :          idata = idata + 1
   35956       431215 :          data_tmp = full_data(idata)
   35957       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35958       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35959       431215 :          pack_tmp = ISHFT(pack_tmp, -10)
   35960       431215 :          idata = idata + 1
   35961       431215 :          data_tmp = full_data(idata)
   35962       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35963       431215 :          data_tmp = IAND(data_tmp, mask_left(10))
   35964       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35965       431215 :          ipack = ipack + 1
   35966       431215 :          packed_data(ipack) = pack_tmp
   35967       431215 :          data_tmp = full_data(idata)
   35968       431215 :          pack_tmp = ISHFT(data_tmp, 28)
   35969       431215 :          pack_tmp = ISHFT(pack_tmp, -28)
   35970       431215 :          idata = idata + 1
   35971       431215 :          data_tmp = full_data(idata)
   35972       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35973       431215 :          data_tmp = IAND(data_tmp, mask_left(28))
   35974       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35975       431215 :          ipack = ipack + 1
   35976       431215 :          packed_data(ipack) = pack_tmp
   35977       431215 :          data_tmp = full_data(idata)
   35978       431215 :          pack_tmp = ISHFT(data_tmp, 46)
   35979       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   35980       431215 :          idata = idata + 1
   35981       431215 :          data_tmp = full_data(idata)
   35982       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35983       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35984       431215 :          pack_tmp = ISHFT(pack_tmp, 0)
   35985       431215 :          idata = idata + 1
   35986       431215 :          data_tmp = full_data(idata)
   35987              :          data_tmp = ISHFT(data_tmp, 18)
   35988       431215 :          data_tmp = IAND(data_tmp, mask_left(0))
   35989       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   35990       431215 :          ipack = ipack + 1
   35991       431215 :          packed_data(ipack) = pack_tmp
   35992       431215 :          data_tmp = full_data(idata)
   35993       431215 :          pack_tmp = ISHFT(data_tmp, 18)
   35994       431215 :          pack_tmp = ISHFT(pack_tmp, -18)
   35995       431215 :          idata = idata + 1
   35996       431215 :          data_tmp = full_data(idata)
   35997       431215 :          data_tmp = ISHFT(data_tmp, 18)
   35998       431215 :          data_tmp = IAND(data_tmp, mask_left(18))
   35999       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36000       431215 :          ipack = ipack + 1
   36001       431215 :          packed_data(ipack) = pack_tmp
   36002       431215 :          data_tmp = full_data(idata)
   36003       431215 :          pack_tmp = ISHFT(data_tmp, 36)
   36004       431215 :          pack_tmp = ISHFT(pack_tmp, -36)
   36005       431215 :          idata = idata + 1
   36006       431215 :          data_tmp = full_data(idata)
   36007       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36008       431215 :          data_tmp = IAND(data_tmp, mask_left(36))
   36009       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36010       431215 :          ipack = ipack + 1
   36011       431215 :          packed_data(ipack) = pack_tmp
   36012       431215 :          data_tmp = full_data(idata)
   36013       431215 :          pack_tmp = ISHFT(data_tmp, 54)
   36014       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   36015       431215 :          idata = idata + 1
   36016       431215 :          data_tmp = full_data(idata)
   36017       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36018       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36019       431215 :          pack_tmp = ISHFT(pack_tmp, -8)
   36020       431215 :          idata = idata + 1
   36021       431215 :          data_tmp = full_data(idata)
   36022       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36023       431215 :          data_tmp = IAND(data_tmp, mask_left(8))
   36024       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36025       431215 :          ipack = ipack + 1
   36026       431215 :          packed_data(ipack) = pack_tmp
   36027       431215 :          data_tmp = full_data(idata)
   36028       431215 :          pack_tmp = ISHFT(data_tmp, 26)
   36029       431215 :          pack_tmp = ISHFT(pack_tmp, -26)
   36030       431215 :          idata = idata + 1
   36031       431215 :          data_tmp = full_data(idata)
   36032       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36033       431215 :          data_tmp = IAND(data_tmp, mask_left(26))
   36034       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36035       431215 :          ipack = ipack + 1
   36036       431215 :          packed_data(ipack) = pack_tmp
   36037       431215 :          data_tmp = full_data(idata)
   36038       431215 :          pack_tmp = ISHFT(data_tmp, 44)
   36039       431215 :          pack_tmp = ISHFT(pack_tmp, -44)
   36040       431215 :          idata = idata + 1
   36041       431215 :          data_tmp = full_data(idata)
   36042       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36043       431215 :          data_tmp = IAND(data_tmp, mask_left(44))
   36044       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36045       431215 :          ipack = ipack + 1
   36046       431215 :          packed_data(ipack) = pack_tmp
   36047       431215 :          data_tmp = full_data(idata)
   36048       431215 :          pack_tmp = ISHFT(data_tmp, 62)
   36049       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   36050       431215 :          idata = idata + 1
   36051       431215 :          data_tmp = full_data(idata)
   36052       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36053       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36054       431215 :          pack_tmp = ISHFT(pack_tmp, -16)
   36055       431215 :          idata = idata + 1
   36056       431215 :          data_tmp = full_data(idata)
   36057       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36058       431215 :          data_tmp = IAND(data_tmp, mask_left(16))
   36059       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36060       431215 :          ipack = ipack + 1
   36061       431215 :          packed_data(ipack) = pack_tmp
   36062       431215 :          data_tmp = full_data(idata)
   36063       431215 :          pack_tmp = ISHFT(data_tmp, 34)
   36064       431215 :          pack_tmp = ISHFT(pack_tmp, -34)
   36065       431215 :          idata = idata + 1
   36066       431215 :          data_tmp = full_data(idata)
   36067       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36068       431215 :          data_tmp = IAND(data_tmp, mask_left(34))
   36069       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36070       431215 :          ipack = ipack + 1
   36071       431215 :          packed_data(ipack) = pack_tmp
   36072       431215 :          data_tmp = full_data(idata)
   36073       431215 :          pack_tmp = ISHFT(data_tmp, 52)
   36074       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   36075       431215 :          idata = idata + 1
   36076       431215 :          data_tmp = full_data(idata)
   36077       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36078       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36079       431215 :          pack_tmp = ISHFT(pack_tmp, -6)
   36080       431215 :          idata = idata + 1
   36081       431215 :          data_tmp = full_data(idata)
   36082       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36083       431215 :          data_tmp = IAND(data_tmp, mask_left(6))
   36084       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36085       431215 :          ipack = ipack + 1
   36086       431215 :          packed_data(ipack) = pack_tmp
   36087       431215 :          data_tmp = full_data(idata)
   36088       431215 :          pack_tmp = ISHFT(data_tmp, 24)
   36089       431215 :          pack_tmp = ISHFT(pack_tmp, -24)
   36090       431215 :          idata = idata + 1
   36091       431215 :          data_tmp = full_data(idata)
   36092       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36093       431215 :          data_tmp = IAND(data_tmp, mask_left(24))
   36094       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36095       431215 :          ipack = ipack + 1
   36096       431215 :          packed_data(ipack) = pack_tmp
   36097       431215 :          data_tmp = full_data(idata)
   36098       431215 :          pack_tmp = ISHFT(data_tmp, 42)
   36099       431215 :          pack_tmp = ISHFT(pack_tmp, -42)
   36100       431215 :          idata = idata + 1
   36101       431215 :          data_tmp = full_data(idata)
   36102       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36103       431215 :          data_tmp = IAND(data_tmp, mask_left(42))
   36104       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36105       431215 :          ipack = ipack + 1
   36106       431215 :          packed_data(ipack) = pack_tmp
   36107       431215 :          data_tmp = full_data(idata)
   36108       431215 :          pack_tmp = ISHFT(data_tmp, 60)
   36109       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   36110       431215 :          idata = idata + 1
   36111       431215 :          data_tmp = full_data(idata)
   36112       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36113       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36114       431215 :          pack_tmp = ISHFT(pack_tmp, -14)
   36115       431215 :          idata = idata + 1
   36116       431215 :          data_tmp = full_data(idata)
   36117       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36118       431215 :          data_tmp = IAND(data_tmp, mask_left(14))
   36119       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36120       431215 :          ipack = ipack + 1
   36121       431215 :          packed_data(ipack) = pack_tmp
   36122       431215 :          data_tmp = full_data(idata)
   36123       431215 :          pack_tmp = ISHFT(data_tmp, 32)
   36124       431215 :          pack_tmp = ISHFT(pack_tmp, -32)
   36125       431215 :          idata = idata + 1
   36126       431215 :          data_tmp = full_data(idata)
   36127       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36128       431215 :          data_tmp = IAND(data_tmp, mask_left(32))
   36129       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36130       431215 :          ipack = ipack + 1
   36131       431215 :          packed_data(ipack) = pack_tmp
   36132       431215 :          data_tmp = full_data(idata)
   36133       431215 :          pack_tmp = ISHFT(data_tmp, 50)
   36134       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   36135       431215 :          idata = idata + 1
   36136       431215 :          data_tmp = full_data(idata)
   36137       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36138       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36139       431215 :          pack_tmp = ISHFT(pack_tmp, -4)
   36140       431215 :          idata = idata + 1
   36141       431215 :          data_tmp = full_data(idata)
   36142       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36143       431215 :          data_tmp = IAND(data_tmp, mask_left(4))
   36144       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36145       431215 :          ipack = ipack + 1
   36146       431215 :          packed_data(ipack) = pack_tmp
   36147       431215 :          data_tmp = full_data(idata)
   36148       431215 :          pack_tmp = ISHFT(data_tmp, 22)
   36149       431215 :          pack_tmp = ISHFT(pack_tmp, -22)
   36150       431215 :          idata = idata + 1
   36151       431215 :          data_tmp = full_data(idata)
   36152       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36153       431215 :          data_tmp = IAND(data_tmp, mask_left(22))
   36154       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36155       431215 :          ipack = ipack + 1
   36156       431215 :          packed_data(ipack) = pack_tmp
   36157       431215 :          data_tmp = full_data(idata)
   36158       431215 :          pack_tmp = ISHFT(data_tmp, 40)
   36159       431215 :          pack_tmp = ISHFT(pack_tmp, -40)
   36160       431215 :          idata = idata + 1
   36161       431215 :          data_tmp = full_data(idata)
   36162       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36163       431215 :          data_tmp = IAND(data_tmp, mask_left(40))
   36164       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36165       431215 :          ipack = ipack + 1
   36166       431215 :          packed_data(ipack) = pack_tmp
   36167       431215 :          data_tmp = full_data(idata)
   36168       431215 :          pack_tmp = ISHFT(data_tmp, 58)
   36169       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   36170       431215 :          idata = idata + 1
   36171       431215 :          data_tmp = full_data(idata)
   36172       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36173       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36174       431215 :          pack_tmp = ISHFT(pack_tmp, -12)
   36175       431215 :          idata = idata + 1
   36176       431215 :          data_tmp = full_data(idata)
   36177       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36178       431215 :          data_tmp = IAND(data_tmp, mask_left(12))
   36179       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36180       431215 :          ipack = ipack + 1
   36181       431215 :          packed_data(ipack) = pack_tmp
   36182       431215 :          data_tmp = full_data(idata)
   36183       431215 :          pack_tmp = ISHFT(data_tmp, 30)
   36184       431215 :          pack_tmp = ISHFT(pack_tmp, -30)
   36185       431215 :          idata = idata + 1
   36186       431215 :          data_tmp = full_data(idata)
   36187       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36188       431215 :          data_tmp = IAND(data_tmp, mask_left(30))
   36189       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36190       431215 :          ipack = ipack + 1
   36191       431215 :          packed_data(ipack) = pack_tmp
   36192       431215 :          data_tmp = full_data(idata)
   36193       431215 :          pack_tmp = ISHFT(data_tmp, 48)
   36194       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   36195       431215 :          idata = idata + 1
   36196       431215 :          data_tmp = full_data(idata)
   36197       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36198       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36199       431215 :          pack_tmp = ISHFT(pack_tmp, -2)
   36200       431215 :          idata = idata + 1
   36201       431215 :          data_tmp = full_data(idata)
   36202       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36203       431215 :          data_tmp = IAND(data_tmp, mask_left(2))
   36204       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36205       431215 :          ipack = ipack + 1
   36206       431215 :          packed_data(ipack) = pack_tmp
   36207       431215 :          data_tmp = full_data(idata)
   36208       431215 :          pack_tmp = ISHFT(data_tmp, 20)
   36209       431215 :          pack_tmp = ISHFT(pack_tmp, -20)
   36210       431215 :          idata = idata + 1
   36211       431215 :          data_tmp = full_data(idata)
   36212       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36213       431215 :          data_tmp = IAND(data_tmp, mask_left(20))
   36214       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36215       431215 :          ipack = ipack + 1
   36216       431215 :          packed_data(ipack) = pack_tmp
   36217       431215 :          data_tmp = full_data(idata)
   36218       431215 :          pack_tmp = ISHFT(data_tmp, 38)
   36219       431215 :          pack_tmp = ISHFT(pack_tmp, -38)
   36220       431215 :          idata = idata + 1
   36221       431215 :          data_tmp = full_data(idata)
   36222       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36223       431215 :          data_tmp = IAND(data_tmp, mask_left(38))
   36224       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36225       431215 :          ipack = ipack + 1
   36226       431215 :          packed_data(ipack) = pack_tmp
   36227       431215 :          data_tmp = full_data(idata)
   36228       431215 :          pack_tmp = ISHFT(data_tmp, 56)
   36229       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   36230       431215 :          idata = idata + 1
   36231       431215 :          data_tmp = full_data(idata)
   36232       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36233       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36234       431215 :          pack_tmp = ISHFT(pack_tmp, -10)
   36235       431215 :          idata = idata + 1
   36236       431215 :          data_tmp = full_data(idata)
   36237       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36238       431215 :          data_tmp = IAND(data_tmp, mask_left(10))
   36239       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36240       431215 :          ipack = ipack + 1
   36241       431215 :          packed_data(ipack) = pack_tmp
   36242       431215 :          data_tmp = full_data(idata)
   36243       431215 :          pack_tmp = ISHFT(data_tmp, 28)
   36244       431215 :          pack_tmp = ISHFT(pack_tmp, -28)
   36245       431215 :          idata = idata + 1
   36246       431215 :          data_tmp = full_data(idata)
   36247       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36248       431215 :          data_tmp = IAND(data_tmp, mask_left(28))
   36249       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36250       431215 :          ipack = ipack + 1
   36251       431215 :          packed_data(ipack) = pack_tmp
   36252       431215 :          data_tmp = full_data(idata)
   36253       431215 :          pack_tmp = ISHFT(data_tmp, 46)
   36254       431215 :          pack_tmp = ISHFT(pack_tmp, -46)
   36255       431215 :          idata = idata + 1
   36256       431215 :          data_tmp = full_data(idata)
   36257       431215 :          data_tmp = ISHFT(data_tmp, 18)
   36258       431215 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36259              :          pack_tmp = ISHFT(pack_tmp, 0)
   36260       431215 :          pack_tmp = ISHFT(pack_tmp, 0)
   36261       431215 :          ipack = ipack + 1
   36262       431260 :          packed_data(ipack) = pack_tmp
   36263              :       END DO
   36264        29430 :       IF (Ndata_rep < Ndata) THEN
   36265         4546 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   36266              :       END IF
   36267        29430 :    END SUBROUTINE ints2bits_46
   36268              : 
   36269              : ! **************************************************************************************************
   36270              : !> \brief ...
   36271              : !> \param Ndata ...
   36272              : !> \param packed_data ...
   36273              : !> \param full_data ...
   36274              : ! **************************************************************************************************
   36275       122973 :    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       122973 :       ipack = 0
   36286       122973 :       idata = 0
   36287       122973 :       pack_tmp = 0
   36288       122973 :       Ndata_rep = (Ndata/64)*64
   36289       122973 :       DO kdata = 1, Ndata_rep, 64
   36290      1781827 :          idata = idata + 1
   36291      1781827 :          data_tmp = ISHFT(pack_tmp, 46)
   36292      1781827 :          ipack = ipack + 1
   36293      1781827 :          pack_tmp = packed_data(ipack)
   36294      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   36295      1781827 :          pack_tmp = ISHFT(pack_tmp, -46)
   36296      1781827 :          idata = idata + 1
   36297      1781827 :          data_tmp = ISHFT(pack_tmp, 28)
   36298      1781827 :          ipack = ipack + 1
   36299      1781827 :          pack_tmp = packed_data(ipack)
   36300      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   36301      1781827 :          pack_tmp = ISHFT(pack_tmp, -28)
   36302      1781827 :          idata = idata + 1
   36303      1781827 :          data_tmp = ISHFT(pack_tmp, 10)
   36304      1781827 :          ipack = ipack + 1
   36305      1781827 :          pack_tmp = packed_data(ipack)
   36306      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   36307      1781827 :          pack_tmp = ISHFT(pack_tmp, -10)
   36308      1781827 :          idata = idata + 1
   36309      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36310      1781827 :          full_data(idata) = data_tmp
   36311      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36312      1781827 :          idata = idata + 1
   36313      1781827 :          data_tmp = ISHFT(pack_tmp, 38)
   36314      1781827 :          ipack = ipack + 1
   36315      1781827 :          pack_tmp = packed_data(ipack)
   36316      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   36317      1781827 :          pack_tmp = ISHFT(pack_tmp, -38)
   36318      1781827 :          idata = idata + 1
   36319      1781827 :          data_tmp = ISHFT(pack_tmp, 20)
   36320      1781827 :          ipack = ipack + 1
   36321      1781827 :          pack_tmp = packed_data(ipack)
   36322      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   36323      1781827 :          pack_tmp = ISHFT(pack_tmp, -20)
   36324      1781827 :          idata = idata + 1
   36325      1781827 :          data_tmp = ISHFT(pack_tmp, 2)
   36326      1781827 :          ipack = ipack + 1
   36327      1781827 :          pack_tmp = packed_data(ipack)
   36328      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   36329      1781827 :          pack_tmp = ISHFT(pack_tmp, -2)
   36330      1781827 :          idata = idata + 1
   36331      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36332      1781827 :          full_data(idata) = data_tmp
   36333      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36334      1781827 :          idata = idata + 1
   36335      1781827 :          data_tmp = ISHFT(pack_tmp, 30)
   36336      1781827 :          ipack = ipack + 1
   36337      1781827 :          pack_tmp = packed_data(ipack)
   36338      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   36339      1781827 :          pack_tmp = ISHFT(pack_tmp, -30)
   36340      1781827 :          idata = idata + 1
   36341      1781827 :          data_tmp = ISHFT(pack_tmp, 12)
   36342      1781827 :          ipack = ipack + 1
   36343      1781827 :          pack_tmp = packed_data(ipack)
   36344      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   36345      1781827 :          pack_tmp = ISHFT(pack_tmp, -12)
   36346      1781827 :          idata = idata + 1
   36347      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36348      1781827 :          full_data(idata) = data_tmp
   36349      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36350      1781827 :          idata = idata + 1
   36351      1781827 :          data_tmp = ISHFT(pack_tmp, 40)
   36352      1781827 :          ipack = ipack + 1
   36353      1781827 :          pack_tmp = packed_data(ipack)
   36354      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   36355      1781827 :          pack_tmp = ISHFT(pack_tmp, -40)
   36356      1781827 :          idata = idata + 1
   36357      1781827 :          data_tmp = ISHFT(pack_tmp, 22)
   36358      1781827 :          ipack = ipack + 1
   36359      1781827 :          pack_tmp = packed_data(ipack)
   36360      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   36361      1781827 :          pack_tmp = ISHFT(pack_tmp, -22)
   36362      1781827 :          idata = idata + 1
   36363      1781827 :          data_tmp = ISHFT(pack_tmp, 4)
   36364      1781827 :          ipack = ipack + 1
   36365      1781827 :          pack_tmp = packed_data(ipack)
   36366      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   36367      1781827 :          pack_tmp = ISHFT(pack_tmp, -4)
   36368      1781827 :          idata = idata + 1
   36369      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36370      1781827 :          full_data(idata) = data_tmp
   36371      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36372      1781827 :          idata = idata + 1
   36373      1781827 :          data_tmp = ISHFT(pack_tmp, 32)
   36374      1781827 :          ipack = ipack + 1
   36375      1781827 :          pack_tmp = packed_data(ipack)
   36376      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   36377      1781827 :          pack_tmp = ISHFT(pack_tmp, -32)
   36378      1781827 :          idata = idata + 1
   36379      1781827 :          data_tmp = ISHFT(pack_tmp, 14)
   36380      1781827 :          ipack = ipack + 1
   36381      1781827 :          pack_tmp = packed_data(ipack)
   36382      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   36383      1781827 :          pack_tmp = ISHFT(pack_tmp, -14)
   36384      1781827 :          idata = idata + 1
   36385      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36386      1781827 :          full_data(idata) = data_tmp
   36387      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36388      1781827 :          idata = idata + 1
   36389      1781827 :          data_tmp = ISHFT(pack_tmp, 42)
   36390      1781827 :          ipack = ipack + 1
   36391      1781827 :          pack_tmp = packed_data(ipack)
   36392      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   36393      1781827 :          pack_tmp = ISHFT(pack_tmp, -42)
   36394      1781827 :          idata = idata + 1
   36395      1781827 :          data_tmp = ISHFT(pack_tmp, 24)
   36396      1781827 :          ipack = ipack + 1
   36397      1781827 :          pack_tmp = packed_data(ipack)
   36398      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   36399      1781827 :          pack_tmp = ISHFT(pack_tmp, -24)
   36400      1781827 :          idata = idata + 1
   36401      1781827 :          data_tmp = ISHFT(pack_tmp, 6)
   36402      1781827 :          ipack = ipack + 1
   36403      1781827 :          pack_tmp = packed_data(ipack)
   36404      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   36405      1781827 :          pack_tmp = ISHFT(pack_tmp, -6)
   36406      1781827 :          idata = idata + 1
   36407      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36408      1781827 :          full_data(idata) = data_tmp
   36409      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36410      1781827 :          idata = idata + 1
   36411      1781827 :          data_tmp = ISHFT(pack_tmp, 34)
   36412      1781827 :          ipack = ipack + 1
   36413      1781827 :          pack_tmp = packed_data(ipack)
   36414      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   36415      1781827 :          pack_tmp = ISHFT(pack_tmp, -34)
   36416      1781827 :          idata = idata + 1
   36417      1781827 :          data_tmp = ISHFT(pack_tmp, 16)
   36418      1781827 :          ipack = ipack + 1
   36419      1781827 :          pack_tmp = packed_data(ipack)
   36420      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   36421      1781827 :          pack_tmp = ISHFT(pack_tmp, -16)
   36422      1781827 :          idata = idata + 1
   36423      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36424      1781827 :          full_data(idata) = data_tmp
   36425      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36426      1781827 :          idata = idata + 1
   36427      1781827 :          data_tmp = ISHFT(pack_tmp, 44)
   36428      1781827 :          ipack = ipack + 1
   36429      1781827 :          pack_tmp = packed_data(ipack)
   36430      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   36431      1781827 :          pack_tmp = ISHFT(pack_tmp, -44)
   36432      1781827 :          idata = idata + 1
   36433      1781827 :          data_tmp = ISHFT(pack_tmp, 26)
   36434      1781827 :          ipack = ipack + 1
   36435      1781827 :          pack_tmp = packed_data(ipack)
   36436      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   36437      1781827 :          pack_tmp = ISHFT(pack_tmp, -26)
   36438      1781827 :          idata = idata + 1
   36439      1781827 :          data_tmp = ISHFT(pack_tmp, 8)
   36440      1781827 :          ipack = ipack + 1
   36441      1781827 :          pack_tmp = packed_data(ipack)
   36442      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   36443      1781827 :          pack_tmp = ISHFT(pack_tmp, -8)
   36444      1781827 :          idata = idata + 1
   36445      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36446      1781827 :          full_data(idata) = data_tmp
   36447      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36448      1781827 :          idata = idata + 1
   36449      1781827 :          data_tmp = ISHFT(pack_tmp, 36)
   36450      1781827 :          ipack = ipack + 1
   36451      1781827 :          pack_tmp = packed_data(ipack)
   36452      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   36453      1781827 :          pack_tmp = ISHFT(pack_tmp, -36)
   36454      1781827 :          idata = idata + 1
   36455      1781827 :          data_tmp = ISHFT(pack_tmp, 18)
   36456      1781827 :          ipack = ipack + 1
   36457      1781827 :          pack_tmp = packed_data(ipack)
   36458      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   36459      1781827 :          pack_tmp = ISHFT(pack_tmp, -18)
   36460      1781827 :          idata = idata + 1
   36461      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36462      1781827 :          full_data(idata) = data_tmp
   36463      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36464      1781827 :          idata = idata + 1
   36465      1781827 :          data_tmp = ISHFT(pack_tmp, 46)
   36466      1781827 :          ipack = ipack + 1
   36467      1781827 :          pack_tmp = packed_data(ipack)
   36468      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   36469      1781827 :          pack_tmp = ISHFT(pack_tmp, -46)
   36470      1781827 :          idata = idata + 1
   36471      1781827 :          data_tmp = ISHFT(pack_tmp, 28)
   36472      1781827 :          ipack = ipack + 1
   36473      1781827 :          pack_tmp = packed_data(ipack)
   36474      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   36475      1781827 :          pack_tmp = ISHFT(pack_tmp, -28)
   36476      1781827 :          idata = idata + 1
   36477      1781827 :          data_tmp = ISHFT(pack_tmp, 10)
   36478      1781827 :          ipack = ipack + 1
   36479      1781827 :          pack_tmp = packed_data(ipack)
   36480      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   36481      1781827 :          pack_tmp = ISHFT(pack_tmp, -10)
   36482      1781827 :          idata = idata + 1
   36483      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36484      1781827 :          full_data(idata) = data_tmp
   36485      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36486      1781827 :          idata = idata + 1
   36487      1781827 :          data_tmp = ISHFT(pack_tmp, 38)
   36488      1781827 :          ipack = ipack + 1
   36489      1781827 :          pack_tmp = packed_data(ipack)
   36490      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   36491      1781827 :          pack_tmp = ISHFT(pack_tmp, -38)
   36492      1781827 :          idata = idata + 1
   36493      1781827 :          data_tmp = ISHFT(pack_tmp, 20)
   36494      1781827 :          ipack = ipack + 1
   36495      1781827 :          pack_tmp = packed_data(ipack)
   36496      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   36497      1781827 :          pack_tmp = ISHFT(pack_tmp, -20)
   36498      1781827 :          idata = idata + 1
   36499      1781827 :          data_tmp = ISHFT(pack_tmp, 2)
   36500      1781827 :          ipack = ipack + 1
   36501      1781827 :          pack_tmp = packed_data(ipack)
   36502      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   36503      1781827 :          pack_tmp = ISHFT(pack_tmp, -2)
   36504      1781827 :          idata = idata + 1
   36505      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36506      1781827 :          full_data(idata) = data_tmp
   36507      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36508      1781827 :          idata = idata + 1
   36509      1781827 :          data_tmp = ISHFT(pack_tmp, 30)
   36510      1781827 :          ipack = ipack + 1
   36511      1781827 :          pack_tmp = packed_data(ipack)
   36512      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   36513      1781827 :          pack_tmp = ISHFT(pack_tmp, -30)
   36514      1781827 :          idata = idata + 1
   36515      1781827 :          data_tmp = ISHFT(pack_tmp, 12)
   36516      1781827 :          ipack = ipack + 1
   36517      1781827 :          pack_tmp = packed_data(ipack)
   36518      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   36519      1781827 :          pack_tmp = ISHFT(pack_tmp, -12)
   36520      1781827 :          idata = idata + 1
   36521      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36522      1781827 :          full_data(idata) = data_tmp
   36523      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36524      1781827 :          idata = idata + 1
   36525      1781827 :          data_tmp = ISHFT(pack_tmp, 40)
   36526      1781827 :          ipack = ipack + 1
   36527      1781827 :          pack_tmp = packed_data(ipack)
   36528      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   36529      1781827 :          pack_tmp = ISHFT(pack_tmp, -40)
   36530      1781827 :          idata = idata + 1
   36531      1781827 :          data_tmp = ISHFT(pack_tmp, 22)
   36532      1781827 :          ipack = ipack + 1
   36533      1781827 :          pack_tmp = packed_data(ipack)
   36534      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   36535      1781827 :          pack_tmp = ISHFT(pack_tmp, -22)
   36536      1781827 :          idata = idata + 1
   36537      1781827 :          data_tmp = ISHFT(pack_tmp, 4)
   36538      1781827 :          ipack = ipack + 1
   36539      1781827 :          pack_tmp = packed_data(ipack)
   36540      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   36541      1781827 :          pack_tmp = ISHFT(pack_tmp, -4)
   36542      1781827 :          idata = idata + 1
   36543      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36544      1781827 :          full_data(idata) = data_tmp
   36545      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36546      1781827 :          idata = idata + 1
   36547      1781827 :          data_tmp = ISHFT(pack_tmp, 32)
   36548      1781827 :          ipack = ipack + 1
   36549      1781827 :          pack_tmp = packed_data(ipack)
   36550      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   36551      1781827 :          pack_tmp = ISHFT(pack_tmp, -32)
   36552      1781827 :          idata = idata + 1
   36553      1781827 :          data_tmp = ISHFT(pack_tmp, 14)
   36554      1781827 :          ipack = ipack + 1
   36555      1781827 :          pack_tmp = packed_data(ipack)
   36556      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   36557      1781827 :          pack_tmp = ISHFT(pack_tmp, -14)
   36558      1781827 :          idata = idata + 1
   36559      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36560      1781827 :          full_data(idata) = data_tmp
   36561      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36562      1781827 :          idata = idata + 1
   36563      1781827 :          data_tmp = ISHFT(pack_tmp, 42)
   36564      1781827 :          ipack = ipack + 1
   36565      1781827 :          pack_tmp = packed_data(ipack)
   36566      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   36567      1781827 :          pack_tmp = ISHFT(pack_tmp, -42)
   36568      1781827 :          idata = idata + 1
   36569      1781827 :          data_tmp = ISHFT(pack_tmp, 24)
   36570      1781827 :          ipack = ipack + 1
   36571      1781827 :          pack_tmp = packed_data(ipack)
   36572      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   36573      1781827 :          pack_tmp = ISHFT(pack_tmp, -24)
   36574      1781827 :          idata = idata + 1
   36575      1781827 :          data_tmp = ISHFT(pack_tmp, 6)
   36576      1781827 :          ipack = ipack + 1
   36577      1781827 :          pack_tmp = packed_data(ipack)
   36578      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   36579      1781827 :          pack_tmp = ISHFT(pack_tmp, -6)
   36580      1781827 :          idata = idata + 1
   36581      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36582      1781827 :          full_data(idata) = data_tmp
   36583      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36584      1781827 :          idata = idata + 1
   36585      1781827 :          data_tmp = ISHFT(pack_tmp, 34)
   36586      1781827 :          ipack = ipack + 1
   36587      1781827 :          pack_tmp = packed_data(ipack)
   36588      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   36589      1781827 :          pack_tmp = ISHFT(pack_tmp, -34)
   36590      1781827 :          idata = idata + 1
   36591      1781827 :          data_tmp = ISHFT(pack_tmp, 16)
   36592      1781827 :          ipack = ipack + 1
   36593      1781827 :          pack_tmp = packed_data(ipack)
   36594      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   36595      1781827 :          pack_tmp = ISHFT(pack_tmp, -16)
   36596      1781827 :          idata = idata + 1
   36597      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36598      1781827 :          full_data(idata) = data_tmp
   36599      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36600      1781827 :          idata = idata + 1
   36601      1781827 :          data_tmp = ISHFT(pack_tmp, 44)
   36602      1781827 :          ipack = ipack + 1
   36603      1781827 :          pack_tmp = packed_data(ipack)
   36604      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   36605      1781827 :          pack_tmp = ISHFT(pack_tmp, -44)
   36606      1781827 :          idata = idata + 1
   36607      1781827 :          data_tmp = ISHFT(pack_tmp, 26)
   36608      1781827 :          ipack = ipack + 1
   36609      1781827 :          pack_tmp = packed_data(ipack)
   36610      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   36611      1781827 :          pack_tmp = ISHFT(pack_tmp, -26)
   36612      1781827 :          idata = idata + 1
   36613      1781827 :          data_tmp = ISHFT(pack_tmp, 8)
   36614      1781827 :          ipack = ipack + 1
   36615      1781827 :          pack_tmp = packed_data(ipack)
   36616      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   36617      1781827 :          pack_tmp = ISHFT(pack_tmp, -8)
   36618      1781827 :          idata = idata + 1
   36619      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36620      1781827 :          full_data(idata) = data_tmp
   36621      1781827 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36622      1781827 :          idata = idata + 1
   36623      1781827 :          data_tmp = ISHFT(pack_tmp, 36)
   36624      1781827 :          ipack = ipack + 1
   36625      1781827 :          pack_tmp = packed_data(ipack)
   36626      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   36627      1781827 :          pack_tmp = ISHFT(pack_tmp, -36)
   36628      1781827 :          idata = idata + 1
   36629      1781827 :          data_tmp = ISHFT(pack_tmp, 18)
   36630      1781827 :          ipack = ipack + 1
   36631      1781827 :          pack_tmp = packed_data(ipack)
   36632      1781827 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   36633      1781827 :          pack_tmp = ISHFT(pack_tmp, -18)
   36634      1781827 :          idata = idata + 1
   36635      1781827 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   36636      1781827 :          full_data(idata) = data_tmp
   36637      1782273 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   36638              :       END DO
   36639       122973 :       IF (Ndata_rep < Ndata) THEN
   36640        20474 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   36641              :       END IF
   36642       122973 :    END SUBROUTINE bits2ints_46
   36643              : 
   36644              : ! **************************************************************************************************
   36645              : !> \brief ...
   36646              : !> \param Ndata ...
   36647              : !> \param packed_data ...
   36648              : !> \param full_data ...
   36649              : ! **************************************************************************************************
   36650        26862 :    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        26862 :       idata = 0
   36661        26862 :       ipack = 0
   36662        26862 :       Ndata_rep = (Ndata/64)*64
   36663        26862 :       DO kdata = 1, Ndata_rep, 64
   36664       410667 :          pack_tmp = 0
   36665       410667 :          idata = idata + 1
   36666       410667 :          data_tmp = full_data(idata)
   36667       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36668       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36669       410667 :          pack_tmp = ISHFT(pack_tmp, -17)
   36670       410667 :          idata = idata + 1
   36671       410667 :          data_tmp = full_data(idata)
   36672       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36673       410667 :          data_tmp = IAND(data_tmp, mask_left(17))
   36674       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36675       410667 :          ipack = ipack + 1
   36676       410667 :          packed_data(ipack) = pack_tmp
   36677       410667 :          data_tmp = full_data(idata)
   36678       410667 :          pack_tmp = ISHFT(data_tmp, 34)
   36679       410667 :          pack_tmp = ISHFT(pack_tmp, -34)
   36680       410667 :          idata = idata + 1
   36681       410667 :          data_tmp = full_data(idata)
   36682       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36683       410667 :          data_tmp = IAND(data_tmp, mask_left(34))
   36684       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36685       410667 :          ipack = ipack + 1
   36686       410667 :          packed_data(ipack) = pack_tmp
   36687       410667 :          data_tmp = full_data(idata)
   36688       410667 :          pack_tmp = ISHFT(data_tmp, 51)
   36689       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   36690       410667 :          idata = idata + 1
   36691       410667 :          data_tmp = full_data(idata)
   36692       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36693       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36694       410667 :          pack_tmp = ISHFT(pack_tmp, -4)
   36695       410667 :          idata = idata + 1
   36696       410667 :          data_tmp = full_data(idata)
   36697       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36698       410667 :          data_tmp = IAND(data_tmp, mask_left(4))
   36699       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36700       410667 :          ipack = ipack + 1
   36701       410667 :          packed_data(ipack) = pack_tmp
   36702       410667 :          data_tmp = full_data(idata)
   36703       410667 :          pack_tmp = ISHFT(data_tmp, 21)
   36704       410667 :          pack_tmp = ISHFT(pack_tmp, -21)
   36705       410667 :          idata = idata + 1
   36706       410667 :          data_tmp = full_data(idata)
   36707       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36708       410667 :          data_tmp = IAND(data_tmp, mask_left(21))
   36709       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36710       410667 :          ipack = ipack + 1
   36711       410667 :          packed_data(ipack) = pack_tmp
   36712       410667 :          data_tmp = full_data(idata)
   36713       410667 :          pack_tmp = ISHFT(data_tmp, 38)
   36714       410667 :          pack_tmp = ISHFT(pack_tmp, -38)
   36715       410667 :          idata = idata + 1
   36716       410667 :          data_tmp = full_data(idata)
   36717       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36718       410667 :          data_tmp = IAND(data_tmp, mask_left(38))
   36719       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36720       410667 :          ipack = ipack + 1
   36721       410667 :          packed_data(ipack) = pack_tmp
   36722       410667 :          data_tmp = full_data(idata)
   36723       410667 :          pack_tmp = ISHFT(data_tmp, 55)
   36724       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   36725       410667 :          idata = idata + 1
   36726       410667 :          data_tmp = full_data(idata)
   36727       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36728       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36729       410667 :          pack_tmp = ISHFT(pack_tmp, -8)
   36730       410667 :          idata = idata + 1
   36731       410667 :          data_tmp = full_data(idata)
   36732       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36733       410667 :          data_tmp = IAND(data_tmp, mask_left(8))
   36734       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36735       410667 :          ipack = ipack + 1
   36736       410667 :          packed_data(ipack) = pack_tmp
   36737       410667 :          data_tmp = full_data(idata)
   36738       410667 :          pack_tmp = ISHFT(data_tmp, 25)
   36739       410667 :          pack_tmp = ISHFT(pack_tmp, -25)
   36740       410667 :          idata = idata + 1
   36741       410667 :          data_tmp = full_data(idata)
   36742       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36743       410667 :          data_tmp = IAND(data_tmp, mask_left(25))
   36744       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36745       410667 :          ipack = ipack + 1
   36746       410667 :          packed_data(ipack) = pack_tmp
   36747       410667 :          data_tmp = full_data(idata)
   36748       410667 :          pack_tmp = ISHFT(data_tmp, 42)
   36749       410667 :          pack_tmp = ISHFT(pack_tmp, -42)
   36750       410667 :          idata = idata + 1
   36751       410667 :          data_tmp = full_data(idata)
   36752       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36753       410667 :          data_tmp = IAND(data_tmp, mask_left(42))
   36754       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36755       410667 :          ipack = ipack + 1
   36756       410667 :          packed_data(ipack) = pack_tmp
   36757       410667 :          data_tmp = full_data(idata)
   36758       410667 :          pack_tmp = ISHFT(data_tmp, 59)
   36759       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   36760       410667 :          idata = idata + 1
   36761       410667 :          data_tmp = full_data(idata)
   36762       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36763       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36764       410667 :          pack_tmp = ISHFT(pack_tmp, -12)
   36765       410667 :          idata = idata + 1
   36766       410667 :          data_tmp = full_data(idata)
   36767       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36768       410667 :          data_tmp = IAND(data_tmp, mask_left(12))
   36769       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36770       410667 :          ipack = ipack + 1
   36771       410667 :          packed_data(ipack) = pack_tmp
   36772       410667 :          data_tmp = full_data(idata)
   36773       410667 :          pack_tmp = ISHFT(data_tmp, 29)
   36774       410667 :          pack_tmp = ISHFT(pack_tmp, -29)
   36775       410667 :          idata = idata + 1
   36776       410667 :          data_tmp = full_data(idata)
   36777       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36778       410667 :          data_tmp = IAND(data_tmp, mask_left(29))
   36779       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36780       410667 :          ipack = ipack + 1
   36781       410667 :          packed_data(ipack) = pack_tmp
   36782       410667 :          data_tmp = full_data(idata)
   36783       410667 :          pack_tmp = ISHFT(data_tmp, 46)
   36784       410667 :          pack_tmp = ISHFT(pack_tmp, -46)
   36785       410667 :          idata = idata + 1
   36786       410667 :          data_tmp = full_data(idata)
   36787       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36788       410667 :          data_tmp = IAND(data_tmp, mask_left(46))
   36789       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36790       410667 :          ipack = ipack + 1
   36791       410667 :          packed_data(ipack) = pack_tmp
   36792       410667 :          data_tmp = full_data(idata)
   36793       410667 :          pack_tmp = ISHFT(data_tmp, 63)
   36794       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   36795       410667 :          idata = idata + 1
   36796       410667 :          data_tmp = full_data(idata)
   36797       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36798       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36799       410667 :          pack_tmp = ISHFT(pack_tmp, -16)
   36800       410667 :          idata = idata + 1
   36801       410667 :          data_tmp = full_data(idata)
   36802       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36803       410667 :          data_tmp = IAND(data_tmp, mask_left(16))
   36804       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36805       410667 :          ipack = ipack + 1
   36806       410667 :          packed_data(ipack) = pack_tmp
   36807       410667 :          data_tmp = full_data(idata)
   36808       410667 :          pack_tmp = ISHFT(data_tmp, 33)
   36809       410667 :          pack_tmp = ISHFT(pack_tmp, -33)
   36810       410667 :          idata = idata + 1
   36811       410667 :          data_tmp = full_data(idata)
   36812       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36813       410667 :          data_tmp = IAND(data_tmp, mask_left(33))
   36814       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36815       410667 :          ipack = ipack + 1
   36816       410667 :          packed_data(ipack) = pack_tmp
   36817       410667 :          data_tmp = full_data(idata)
   36818       410667 :          pack_tmp = ISHFT(data_tmp, 50)
   36819       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   36820       410667 :          idata = idata + 1
   36821       410667 :          data_tmp = full_data(idata)
   36822       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36823       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36824       410667 :          pack_tmp = ISHFT(pack_tmp, -3)
   36825       410667 :          idata = idata + 1
   36826       410667 :          data_tmp = full_data(idata)
   36827       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36828       410667 :          data_tmp = IAND(data_tmp, mask_left(3))
   36829       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36830       410667 :          ipack = ipack + 1
   36831       410667 :          packed_data(ipack) = pack_tmp
   36832       410667 :          data_tmp = full_data(idata)
   36833       410667 :          pack_tmp = ISHFT(data_tmp, 20)
   36834       410667 :          pack_tmp = ISHFT(pack_tmp, -20)
   36835       410667 :          idata = idata + 1
   36836       410667 :          data_tmp = full_data(idata)
   36837       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36838       410667 :          data_tmp = IAND(data_tmp, mask_left(20))
   36839       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36840       410667 :          ipack = ipack + 1
   36841       410667 :          packed_data(ipack) = pack_tmp
   36842       410667 :          data_tmp = full_data(idata)
   36843       410667 :          pack_tmp = ISHFT(data_tmp, 37)
   36844       410667 :          pack_tmp = ISHFT(pack_tmp, -37)
   36845       410667 :          idata = idata + 1
   36846       410667 :          data_tmp = full_data(idata)
   36847       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36848       410667 :          data_tmp = IAND(data_tmp, mask_left(37))
   36849       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36850       410667 :          ipack = ipack + 1
   36851       410667 :          packed_data(ipack) = pack_tmp
   36852       410667 :          data_tmp = full_data(idata)
   36853       410667 :          pack_tmp = ISHFT(data_tmp, 54)
   36854       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   36855       410667 :          idata = idata + 1
   36856       410667 :          data_tmp = full_data(idata)
   36857       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36858       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36859       410667 :          pack_tmp = ISHFT(pack_tmp, -7)
   36860       410667 :          idata = idata + 1
   36861       410667 :          data_tmp = full_data(idata)
   36862       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36863       410667 :          data_tmp = IAND(data_tmp, mask_left(7))
   36864       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36865       410667 :          ipack = ipack + 1
   36866       410667 :          packed_data(ipack) = pack_tmp
   36867       410667 :          data_tmp = full_data(idata)
   36868       410667 :          pack_tmp = ISHFT(data_tmp, 24)
   36869       410667 :          pack_tmp = ISHFT(pack_tmp, -24)
   36870       410667 :          idata = idata + 1
   36871       410667 :          data_tmp = full_data(idata)
   36872       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36873       410667 :          data_tmp = IAND(data_tmp, mask_left(24))
   36874       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36875       410667 :          ipack = ipack + 1
   36876       410667 :          packed_data(ipack) = pack_tmp
   36877       410667 :          data_tmp = full_data(idata)
   36878       410667 :          pack_tmp = ISHFT(data_tmp, 41)
   36879       410667 :          pack_tmp = ISHFT(pack_tmp, -41)
   36880       410667 :          idata = idata + 1
   36881       410667 :          data_tmp = full_data(idata)
   36882       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36883       410667 :          data_tmp = IAND(data_tmp, mask_left(41))
   36884       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36885       410667 :          ipack = ipack + 1
   36886       410667 :          packed_data(ipack) = pack_tmp
   36887       410667 :          data_tmp = full_data(idata)
   36888       410667 :          pack_tmp = ISHFT(data_tmp, 58)
   36889       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   36890       410667 :          idata = idata + 1
   36891       410667 :          data_tmp = full_data(idata)
   36892       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36893       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36894       410667 :          pack_tmp = ISHFT(pack_tmp, -11)
   36895       410667 :          idata = idata + 1
   36896       410667 :          data_tmp = full_data(idata)
   36897       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36898       410667 :          data_tmp = IAND(data_tmp, mask_left(11))
   36899       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36900       410667 :          ipack = ipack + 1
   36901       410667 :          packed_data(ipack) = pack_tmp
   36902       410667 :          data_tmp = full_data(idata)
   36903       410667 :          pack_tmp = ISHFT(data_tmp, 28)
   36904       410667 :          pack_tmp = ISHFT(pack_tmp, -28)
   36905       410667 :          idata = idata + 1
   36906       410667 :          data_tmp = full_data(idata)
   36907       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36908       410667 :          data_tmp = IAND(data_tmp, mask_left(28))
   36909       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36910       410667 :          ipack = ipack + 1
   36911       410667 :          packed_data(ipack) = pack_tmp
   36912       410667 :          data_tmp = full_data(idata)
   36913       410667 :          pack_tmp = ISHFT(data_tmp, 45)
   36914       410667 :          pack_tmp = ISHFT(pack_tmp, -45)
   36915       410667 :          idata = idata + 1
   36916       410667 :          data_tmp = full_data(idata)
   36917       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36918       410667 :          data_tmp = IAND(data_tmp, mask_left(45))
   36919       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36920       410667 :          ipack = ipack + 1
   36921       410667 :          packed_data(ipack) = pack_tmp
   36922       410667 :          data_tmp = full_data(idata)
   36923       410667 :          pack_tmp = ISHFT(data_tmp, 62)
   36924       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   36925       410667 :          idata = idata + 1
   36926       410667 :          data_tmp = full_data(idata)
   36927       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36928       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36929       410667 :          pack_tmp = ISHFT(pack_tmp, -15)
   36930       410667 :          idata = idata + 1
   36931       410667 :          data_tmp = full_data(idata)
   36932       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36933       410667 :          data_tmp = IAND(data_tmp, mask_left(15))
   36934       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36935       410667 :          ipack = ipack + 1
   36936       410667 :          packed_data(ipack) = pack_tmp
   36937       410667 :          data_tmp = full_data(idata)
   36938       410667 :          pack_tmp = ISHFT(data_tmp, 32)
   36939       410667 :          pack_tmp = ISHFT(pack_tmp, -32)
   36940       410667 :          idata = idata + 1
   36941       410667 :          data_tmp = full_data(idata)
   36942       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36943       410667 :          data_tmp = IAND(data_tmp, mask_left(32))
   36944       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36945       410667 :          ipack = ipack + 1
   36946       410667 :          packed_data(ipack) = pack_tmp
   36947       410667 :          data_tmp = full_data(idata)
   36948       410667 :          pack_tmp = ISHFT(data_tmp, 49)
   36949       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   36950       410667 :          idata = idata + 1
   36951       410667 :          data_tmp = full_data(idata)
   36952       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36953       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36954       410667 :          pack_tmp = ISHFT(pack_tmp, -2)
   36955       410667 :          idata = idata + 1
   36956       410667 :          data_tmp = full_data(idata)
   36957       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36958       410667 :          data_tmp = IAND(data_tmp, mask_left(2))
   36959       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36960       410667 :          ipack = ipack + 1
   36961       410667 :          packed_data(ipack) = pack_tmp
   36962       410667 :          data_tmp = full_data(idata)
   36963       410667 :          pack_tmp = ISHFT(data_tmp, 19)
   36964       410667 :          pack_tmp = ISHFT(pack_tmp, -19)
   36965       410667 :          idata = idata + 1
   36966       410667 :          data_tmp = full_data(idata)
   36967       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36968       410667 :          data_tmp = IAND(data_tmp, mask_left(19))
   36969       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36970       410667 :          ipack = ipack + 1
   36971       410667 :          packed_data(ipack) = pack_tmp
   36972       410667 :          data_tmp = full_data(idata)
   36973       410667 :          pack_tmp = ISHFT(data_tmp, 36)
   36974       410667 :          pack_tmp = ISHFT(pack_tmp, -36)
   36975       410667 :          idata = idata + 1
   36976       410667 :          data_tmp = full_data(idata)
   36977       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36978       410667 :          data_tmp = IAND(data_tmp, mask_left(36))
   36979       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36980       410667 :          ipack = ipack + 1
   36981       410667 :          packed_data(ipack) = pack_tmp
   36982       410667 :          data_tmp = full_data(idata)
   36983       410667 :          pack_tmp = ISHFT(data_tmp, 53)
   36984       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   36985       410667 :          idata = idata + 1
   36986       410667 :          data_tmp = full_data(idata)
   36987       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36988       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36989       410667 :          pack_tmp = ISHFT(pack_tmp, -6)
   36990       410667 :          idata = idata + 1
   36991       410667 :          data_tmp = full_data(idata)
   36992       410667 :          data_tmp = ISHFT(data_tmp, 17)
   36993       410667 :          data_tmp = IAND(data_tmp, mask_left(6))
   36994       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   36995       410667 :          ipack = ipack + 1
   36996       410667 :          packed_data(ipack) = pack_tmp
   36997       410667 :          data_tmp = full_data(idata)
   36998       410667 :          pack_tmp = ISHFT(data_tmp, 23)
   36999       410667 :          pack_tmp = ISHFT(pack_tmp, -23)
   37000       410667 :          idata = idata + 1
   37001       410667 :          data_tmp = full_data(idata)
   37002       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37003       410667 :          data_tmp = IAND(data_tmp, mask_left(23))
   37004       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37005       410667 :          ipack = ipack + 1
   37006       410667 :          packed_data(ipack) = pack_tmp
   37007       410667 :          data_tmp = full_data(idata)
   37008       410667 :          pack_tmp = ISHFT(data_tmp, 40)
   37009       410667 :          pack_tmp = ISHFT(pack_tmp, -40)
   37010       410667 :          idata = idata + 1
   37011       410667 :          data_tmp = full_data(idata)
   37012       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37013       410667 :          data_tmp = IAND(data_tmp, mask_left(40))
   37014       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37015       410667 :          ipack = ipack + 1
   37016       410667 :          packed_data(ipack) = pack_tmp
   37017       410667 :          data_tmp = full_data(idata)
   37018       410667 :          pack_tmp = ISHFT(data_tmp, 57)
   37019       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   37020       410667 :          idata = idata + 1
   37021       410667 :          data_tmp = full_data(idata)
   37022       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37023       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37024       410667 :          pack_tmp = ISHFT(pack_tmp, -10)
   37025       410667 :          idata = idata + 1
   37026       410667 :          data_tmp = full_data(idata)
   37027       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37028       410667 :          data_tmp = IAND(data_tmp, mask_left(10))
   37029       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37030       410667 :          ipack = ipack + 1
   37031       410667 :          packed_data(ipack) = pack_tmp
   37032       410667 :          data_tmp = full_data(idata)
   37033       410667 :          pack_tmp = ISHFT(data_tmp, 27)
   37034       410667 :          pack_tmp = ISHFT(pack_tmp, -27)
   37035       410667 :          idata = idata + 1
   37036       410667 :          data_tmp = full_data(idata)
   37037       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37038       410667 :          data_tmp = IAND(data_tmp, mask_left(27))
   37039       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37040       410667 :          ipack = ipack + 1
   37041       410667 :          packed_data(ipack) = pack_tmp
   37042       410667 :          data_tmp = full_data(idata)
   37043       410667 :          pack_tmp = ISHFT(data_tmp, 44)
   37044       410667 :          pack_tmp = ISHFT(pack_tmp, -44)
   37045       410667 :          idata = idata + 1
   37046       410667 :          data_tmp = full_data(idata)
   37047       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37048       410667 :          data_tmp = IAND(data_tmp, mask_left(44))
   37049       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37050       410667 :          ipack = ipack + 1
   37051       410667 :          packed_data(ipack) = pack_tmp
   37052       410667 :          data_tmp = full_data(idata)
   37053       410667 :          pack_tmp = ISHFT(data_tmp, 61)
   37054       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   37055       410667 :          idata = idata + 1
   37056       410667 :          data_tmp = full_data(idata)
   37057       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37058       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37059       410667 :          pack_tmp = ISHFT(pack_tmp, -14)
   37060       410667 :          idata = idata + 1
   37061       410667 :          data_tmp = full_data(idata)
   37062       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37063       410667 :          data_tmp = IAND(data_tmp, mask_left(14))
   37064       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37065       410667 :          ipack = ipack + 1
   37066       410667 :          packed_data(ipack) = pack_tmp
   37067       410667 :          data_tmp = full_data(idata)
   37068       410667 :          pack_tmp = ISHFT(data_tmp, 31)
   37069       410667 :          pack_tmp = ISHFT(pack_tmp, -31)
   37070       410667 :          idata = idata + 1
   37071       410667 :          data_tmp = full_data(idata)
   37072       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37073       410667 :          data_tmp = IAND(data_tmp, mask_left(31))
   37074       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37075       410667 :          ipack = ipack + 1
   37076       410667 :          packed_data(ipack) = pack_tmp
   37077       410667 :          data_tmp = full_data(idata)
   37078       410667 :          pack_tmp = ISHFT(data_tmp, 48)
   37079       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   37080       410667 :          idata = idata + 1
   37081       410667 :          data_tmp = full_data(idata)
   37082       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37083       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37084       410667 :          pack_tmp = ISHFT(pack_tmp, -1)
   37085       410667 :          idata = idata + 1
   37086       410667 :          data_tmp = full_data(idata)
   37087       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37088       410667 :          data_tmp = IAND(data_tmp, mask_left(1))
   37089       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37090       410667 :          ipack = ipack + 1
   37091       410667 :          packed_data(ipack) = pack_tmp
   37092       410667 :          data_tmp = full_data(idata)
   37093       410667 :          pack_tmp = ISHFT(data_tmp, 18)
   37094       410667 :          pack_tmp = ISHFT(pack_tmp, -18)
   37095       410667 :          idata = idata + 1
   37096       410667 :          data_tmp = full_data(idata)
   37097       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37098       410667 :          data_tmp = IAND(data_tmp, mask_left(18))
   37099       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37100       410667 :          ipack = ipack + 1
   37101       410667 :          packed_data(ipack) = pack_tmp
   37102       410667 :          data_tmp = full_data(idata)
   37103       410667 :          pack_tmp = ISHFT(data_tmp, 35)
   37104       410667 :          pack_tmp = ISHFT(pack_tmp, -35)
   37105       410667 :          idata = idata + 1
   37106       410667 :          data_tmp = full_data(idata)
   37107       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37108       410667 :          data_tmp = IAND(data_tmp, mask_left(35))
   37109       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37110       410667 :          ipack = ipack + 1
   37111       410667 :          packed_data(ipack) = pack_tmp
   37112       410667 :          data_tmp = full_data(idata)
   37113       410667 :          pack_tmp = ISHFT(data_tmp, 52)
   37114       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   37115       410667 :          idata = idata + 1
   37116       410667 :          data_tmp = full_data(idata)
   37117       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37118       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37119       410667 :          pack_tmp = ISHFT(pack_tmp, -5)
   37120       410667 :          idata = idata + 1
   37121       410667 :          data_tmp = full_data(idata)
   37122       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37123       410667 :          data_tmp = IAND(data_tmp, mask_left(5))
   37124       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37125       410667 :          ipack = ipack + 1
   37126       410667 :          packed_data(ipack) = pack_tmp
   37127       410667 :          data_tmp = full_data(idata)
   37128       410667 :          pack_tmp = ISHFT(data_tmp, 22)
   37129       410667 :          pack_tmp = ISHFT(pack_tmp, -22)
   37130       410667 :          idata = idata + 1
   37131       410667 :          data_tmp = full_data(idata)
   37132       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37133       410667 :          data_tmp = IAND(data_tmp, mask_left(22))
   37134       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37135       410667 :          ipack = ipack + 1
   37136       410667 :          packed_data(ipack) = pack_tmp
   37137       410667 :          data_tmp = full_data(idata)
   37138       410667 :          pack_tmp = ISHFT(data_tmp, 39)
   37139       410667 :          pack_tmp = ISHFT(pack_tmp, -39)
   37140       410667 :          idata = idata + 1
   37141       410667 :          data_tmp = full_data(idata)
   37142       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37143       410667 :          data_tmp = IAND(data_tmp, mask_left(39))
   37144       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37145       410667 :          ipack = ipack + 1
   37146       410667 :          packed_data(ipack) = pack_tmp
   37147       410667 :          data_tmp = full_data(idata)
   37148       410667 :          pack_tmp = ISHFT(data_tmp, 56)
   37149       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   37150       410667 :          idata = idata + 1
   37151       410667 :          data_tmp = full_data(idata)
   37152       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37153       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37154       410667 :          pack_tmp = ISHFT(pack_tmp, -9)
   37155       410667 :          idata = idata + 1
   37156       410667 :          data_tmp = full_data(idata)
   37157       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37158       410667 :          data_tmp = IAND(data_tmp, mask_left(9))
   37159       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37160       410667 :          ipack = ipack + 1
   37161       410667 :          packed_data(ipack) = pack_tmp
   37162       410667 :          data_tmp = full_data(idata)
   37163       410667 :          pack_tmp = ISHFT(data_tmp, 26)
   37164       410667 :          pack_tmp = ISHFT(pack_tmp, -26)
   37165       410667 :          idata = idata + 1
   37166       410667 :          data_tmp = full_data(idata)
   37167       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37168       410667 :          data_tmp = IAND(data_tmp, mask_left(26))
   37169       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37170       410667 :          ipack = ipack + 1
   37171       410667 :          packed_data(ipack) = pack_tmp
   37172       410667 :          data_tmp = full_data(idata)
   37173       410667 :          pack_tmp = ISHFT(data_tmp, 43)
   37174       410667 :          pack_tmp = ISHFT(pack_tmp, -43)
   37175       410667 :          idata = idata + 1
   37176       410667 :          data_tmp = full_data(idata)
   37177       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37178       410667 :          data_tmp = IAND(data_tmp, mask_left(43))
   37179       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37180       410667 :          ipack = ipack + 1
   37181       410667 :          packed_data(ipack) = pack_tmp
   37182       410667 :          data_tmp = full_data(idata)
   37183       410667 :          pack_tmp = ISHFT(data_tmp, 60)
   37184       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   37185       410667 :          idata = idata + 1
   37186       410667 :          data_tmp = full_data(idata)
   37187       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37188       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37189       410667 :          pack_tmp = ISHFT(pack_tmp, -13)
   37190       410667 :          idata = idata + 1
   37191       410667 :          data_tmp = full_data(idata)
   37192       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37193       410667 :          data_tmp = IAND(data_tmp, mask_left(13))
   37194       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37195       410667 :          ipack = ipack + 1
   37196       410667 :          packed_data(ipack) = pack_tmp
   37197       410667 :          data_tmp = full_data(idata)
   37198       410667 :          pack_tmp = ISHFT(data_tmp, 30)
   37199       410667 :          pack_tmp = ISHFT(pack_tmp, -30)
   37200       410667 :          idata = idata + 1
   37201       410667 :          data_tmp = full_data(idata)
   37202       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37203       410667 :          data_tmp = IAND(data_tmp, mask_left(30))
   37204       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37205       410667 :          ipack = ipack + 1
   37206       410667 :          packed_data(ipack) = pack_tmp
   37207       410667 :          data_tmp = full_data(idata)
   37208       410667 :          pack_tmp = ISHFT(data_tmp, 47)
   37209       410667 :          pack_tmp = ISHFT(pack_tmp, -47)
   37210       410667 :          idata = idata + 1
   37211       410667 :          data_tmp = full_data(idata)
   37212       410667 :          data_tmp = ISHFT(data_tmp, 17)
   37213       410667 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37214              :          pack_tmp = ISHFT(pack_tmp, 0)
   37215       410667 :          pack_tmp = ISHFT(pack_tmp, 0)
   37216       410667 :          ipack = ipack + 1
   37217       410671 :          packed_data(ipack) = pack_tmp
   37218              :       END DO
   37219        26862 :       IF (Ndata_rep < Ndata) THEN
   37220         2250 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   37221              :       END IF
   37222        26862 :    END SUBROUTINE ints2bits_47
   37223              : 
   37224              : ! **************************************************************************************************
   37225              : !> \brief ...
   37226              : !> \param Ndata ...
   37227              : !> \param packed_data ...
   37228              : !> \param full_data ...
   37229              : ! **************************************************************************************************
   37230       117617 :    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       117617 :       ipack = 0
   37241       117617 :       idata = 0
   37242       117617 :       pack_tmp = 0
   37243       117617 :       Ndata_rep = (Ndata/64)*64
   37244       117617 :       DO kdata = 1, Ndata_rep, 64
   37245      1736454 :          idata = idata + 1
   37246      1736454 :          data_tmp = ISHFT(pack_tmp, 47)
   37247      1736454 :          ipack = ipack + 1
   37248      1736454 :          pack_tmp = packed_data(ipack)
   37249      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   37250      1736454 :          pack_tmp = ISHFT(pack_tmp, -47)
   37251      1736454 :          idata = idata + 1
   37252      1736454 :          data_tmp = ISHFT(pack_tmp, 30)
   37253      1736454 :          ipack = ipack + 1
   37254      1736454 :          pack_tmp = packed_data(ipack)
   37255      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   37256      1736454 :          pack_tmp = ISHFT(pack_tmp, -30)
   37257      1736454 :          idata = idata + 1
   37258      1736454 :          data_tmp = ISHFT(pack_tmp, 13)
   37259      1736454 :          ipack = ipack + 1
   37260      1736454 :          pack_tmp = packed_data(ipack)
   37261      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   37262      1736454 :          pack_tmp = ISHFT(pack_tmp, -13)
   37263      1736454 :          idata = idata + 1
   37264      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37265      1736454 :          full_data(idata) = data_tmp
   37266      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37267      1736454 :          idata = idata + 1
   37268      1736454 :          data_tmp = ISHFT(pack_tmp, 43)
   37269      1736454 :          ipack = ipack + 1
   37270      1736454 :          pack_tmp = packed_data(ipack)
   37271      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   37272      1736454 :          pack_tmp = ISHFT(pack_tmp, -43)
   37273      1736454 :          idata = idata + 1
   37274      1736454 :          data_tmp = ISHFT(pack_tmp, 26)
   37275      1736454 :          ipack = ipack + 1
   37276      1736454 :          pack_tmp = packed_data(ipack)
   37277      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   37278      1736454 :          pack_tmp = ISHFT(pack_tmp, -26)
   37279      1736454 :          idata = idata + 1
   37280      1736454 :          data_tmp = ISHFT(pack_tmp, 9)
   37281      1736454 :          ipack = ipack + 1
   37282      1736454 :          pack_tmp = packed_data(ipack)
   37283      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   37284      1736454 :          pack_tmp = ISHFT(pack_tmp, -9)
   37285      1736454 :          idata = idata + 1
   37286      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37287      1736454 :          full_data(idata) = data_tmp
   37288      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37289      1736454 :          idata = idata + 1
   37290      1736454 :          data_tmp = ISHFT(pack_tmp, 39)
   37291      1736454 :          ipack = ipack + 1
   37292      1736454 :          pack_tmp = packed_data(ipack)
   37293      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   37294      1736454 :          pack_tmp = ISHFT(pack_tmp, -39)
   37295      1736454 :          idata = idata + 1
   37296      1736454 :          data_tmp = ISHFT(pack_tmp, 22)
   37297      1736454 :          ipack = ipack + 1
   37298      1736454 :          pack_tmp = packed_data(ipack)
   37299      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   37300      1736454 :          pack_tmp = ISHFT(pack_tmp, -22)
   37301      1736454 :          idata = idata + 1
   37302      1736454 :          data_tmp = ISHFT(pack_tmp, 5)
   37303      1736454 :          ipack = ipack + 1
   37304      1736454 :          pack_tmp = packed_data(ipack)
   37305      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   37306      1736454 :          pack_tmp = ISHFT(pack_tmp, -5)
   37307      1736454 :          idata = idata + 1
   37308      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37309      1736454 :          full_data(idata) = data_tmp
   37310      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37311      1736454 :          idata = idata + 1
   37312      1736454 :          data_tmp = ISHFT(pack_tmp, 35)
   37313      1736454 :          ipack = ipack + 1
   37314      1736454 :          pack_tmp = packed_data(ipack)
   37315      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   37316      1736454 :          pack_tmp = ISHFT(pack_tmp, -35)
   37317      1736454 :          idata = idata + 1
   37318      1736454 :          data_tmp = ISHFT(pack_tmp, 18)
   37319      1736454 :          ipack = ipack + 1
   37320      1736454 :          pack_tmp = packed_data(ipack)
   37321      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   37322      1736454 :          pack_tmp = ISHFT(pack_tmp, -18)
   37323      1736454 :          idata = idata + 1
   37324      1736454 :          data_tmp = ISHFT(pack_tmp, 1)
   37325      1736454 :          ipack = ipack + 1
   37326      1736454 :          pack_tmp = packed_data(ipack)
   37327      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   37328      1736454 :          pack_tmp = ISHFT(pack_tmp, -1)
   37329      1736454 :          idata = idata + 1
   37330      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37331      1736454 :          full_data(idata) = data_tmp
   37332      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37333      1736454 :          idata = idata + 1
   37334      1736454 :          data_tmp = ISHFT(pack_tmp, 31)
   37335      1736454 :          ipack = ipack + 1
   37336      1736454 :          pack_tmp = packed_data(ipack)
   37337      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   37338      1736454 :          pack_tmp = ISHFT(pack_tmp, -31)
   37339      1736454 :          idata = idata + 1
   37340      1736454 :          data_tmp = ISHFT(pack_tmp, 14)
   37341      1736454 :          ipack = ipack + 1
   37342      1736454 :          pack_tmp = packed_data(ipack)
   37343      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   37344      1736454 :          pack_tmp = ISHFT(pack_tmp, -14)
   37345      1736454 :          idata = idata + 1
   37346      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37347      1736454 :          full_data(idata) = data_tmp
   37348      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37349      1736454 :          idata = idata + 1
   37350      1736454 :          data_tmp = ISHFT(pack_tmp, 44)
   37351      1736454 :          ipack = ipack + 1
   37352      1736454 :          pack_tmp = packed_data(ipack)
   37353      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   37354      1736454 :          pack_tmp = ISHFT(pack_tmp, -44)
   37355      1736454 :          idata = idata + 1
   37356      1736454 :          data_tmp = ISHFT(pack_tmp, 27)
   37357      1736454 :          ipack = ipack + 1
   37358      1736454 :          pack_tmp = packed_data(ipack)
   37359      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   37360      1736454 :          pack_tmp = ISHFT(pack_tmp, -27)
   37361      1736454 :          idata = idata + 1
   37362      1736454 :          data_tmp = ISHFT(pack_tmp, 10)
   37363      1736454 :          ipack = ipack + 1
   37364      1736454 :          pack_tmp = packed_data(ipack)
   37365      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   37366      1736454 :          pack_tmp = ISHFT(pack_tmp, -10)
   37367      1736454 :          idata = idata + 1
   37368      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37369      1736454 :          full_data(idata) = data_tmp
   37370      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37371      1736454 :          idata = idata + 1
   37372      1736454 :          data_tmp = ISHFT(pack_tmp, 40)
   37373      1736454 :          ipack = ipack + 1
   37374      1736454 :          pack_tmp = packed_data(ipack)
   37375      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   37376      1736454 :          pack_tmp = ISHFT(pack_tmp, -40)
   37377      1736454 :          idata = idata + 1
   37378      1736454 :          data_tmp = ISHFT(pack_tmp, 23)
   37379      1736454 :          ipack = ipack + 1
   37380      1736454 :          pack_tmp = packed_data(ipack)
   37381      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   37382      1736454 :          pack_tmp = ISHFT(pack_tmp, -23)
   37383      1736454 :          idata = idata + 1
   37384      1736454 :          data_tmp = ISHFT(pack_tmp, 6)
   37385      1736454 :          ipack = ipack + 1
   37386      1736454 :          pack_tmp = packed_data(ipack)
   37387      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   37388      1736454 :          pack_tmp = ISHFT(pack_tmp, -6)
   37389      1736454 :          idata = idata + 1
   37390      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37391      1736454 :          full_data(idata) = data_tmp
   37392      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37393      1736454 :          idata = idata + 1
   37394      1736454 :          data_tmp = ISHFT(pack_tmp, 36)
   37395      1736454 :          ipack = ipack + 1
   37396      1736454 :          pack_tmp = packed_data(ipack)
   37397      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   37398      1736454 :          pack_tmp = ISHFT(pack_tmp, -36)
   37399      1736454 :          idata = idata + 1
   37400      1736454 :          data_tmp = ISHFT(pack_tmp, 19)
   37401      1736454 :          ipack = ipack + 1
   37402      1736454 :          pack_tmp = packed_data(ipack)
   37403      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   37404      1736454 :          pack_tmp = ISHFT(pack_tmp, -19)
   37405      1736454 :          idata = idata + 1
   37406      1736454 :          data_tmp = ISHFT(pack_tmp, 2)
   37407      1736454 :          ipack = ipack + 1
   37408      1736454 :          pack_tmp = packed_data(ipack)
   37409      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   37410      1736454 :          pack_tmp = ISHFT(pack_tmp, -2)
   37411      1736454 :          idata = idata + 1
   37412      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37413      1736454 :          full_data(idata) = data_tmp
   37414      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37415      1736454 :          idata = idata + 1
   37416      1736454 :          data_tmp = ISHFT(pack_tmp, 32)
   37417      1736454 :          ipack = ipack + 1
   37418      1736454 :          pack_tmp = packed_data(ipack)
   37419      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   37420      1736454 :          pack_tmp = ISHFT(pack_tmp, -32)
   37421      1736454 :          idata = idata + 1
   37422      1736454 :          data_tmp = ISHFT(pack_tmp, 15)
   37423      1736454 :          ipack = ipack + 1
   37424      1736454 :          pack_tmp = packed_data(ipack)
   37425      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   37426      1736454 :          pack_tmp = ISHFT(pack_tmp, -15)
   37427      1736454 :          idata = idata + 1
   37428      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37429      1736454 :          full_data(idata) = data_tmp
   37430      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37431      1736454 :          idata = idata + 1
   37432      1736454 :          data_tmp = ISHFT(pack_tmp, 45)
   37433      1736454 :          ipack = ipack + 1
   37434      1736454 :          pack_tmp = packed_data(ipack)
   37435      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   37436      1736454 :          pack_tmp = ISHFT(pack_tmp, -45)
   37437      1736454 :          idata = idata + 1
   37438      1736454 :          data_tmp = ISHFT(pack_tmp, 28)
   37439      1736454 :          ipack = ipack + 1
   37440      1736454 :          pack_tmp = packed_data(ipack)
   37441      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   37442      1736454 :          pack_tmp = ISHFT(pack_tmp, -28)
   37443      1736454 :          idata = idata + 1
   37444      1736454 :          data_tmp = ISHFT(pack_tmp, 11)
   37445      1736454 :          ipack = ipack + 1
   37446      1736454 :          pack_tmp = packed_data(ipack)
   37447      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   37448      1736454 :          pack_tmp = ISHFT(pack_tmp, -11)
   37449      1736454 :          idata = idata + 1
   37450      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37451      1736454 :          full_data(idata) = data_tmp
   37452      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37453      1736454 :          idata = idata + 1
   37454      1736454 :          data_tmp = ISHFT(pack_tmp, 41)
   37455      1736454 :          ipack = ipack + 1
   37456      1736454 :          pack_tmp = packed_data(ipack)
   37457      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   37458      1736454 :          pack_tmp = ISHFT(pack_tmp, -41)
   37459      1736454 :          idata = idata + 1
   37460      1736454 :          data_tmp = ISHFT(pack_tmp, 24)
   37461      1736454 :          ipack = ipack + 1
   37462      1736454 :          pack_tmp = packed_data(ipack)
   37463      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   37464      1736454 :          pack_tmp = ISHFT(pack_tmp, -24)
   37465      1736454 :          idata = idata + 1
   37466      1736454 :          data_tmp = ISHFT(pack_tmp, 7)
   37467      1736454 :          ipack = ipack + 1
   37468      1736454 :          pack_tmp = packed_data(ipack)
   37469      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   37470      1736454 :          pack_tmp = ISHFT(pack_tmp, -7)
   37471      1736454 :          idata = idata + 1
   37472      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37473      1736454 :          full_data(idata) = data_tmp
   37474      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37475      1736454 :          idata = idata + 1
   37476      1736454 :          data_tmp = ISHFT(pack_tmp, 37)
   37477      1736454 :          ipack = ipack + 1
   37478      1736454 :          pack_tmp = packed_data(ipack)
   37479      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   37480      1736454 :          pack_tmp = ISHFT(pack_tmp, -37)
   37481      1736454 :          idata = idata + 1
   37482      1736454 :          data_tmp = ISHFT(pack_tmp, 20)
   37483      1736454 :          ipack = ipack + 1
   37484      1736454 :          pack_tmp = packed_data(ipack)
   37485      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   37486      1736454 :          pack_tmp = ISHFT(pack_tmp, -20)
   37487      1736454 :          idata = idata + 1
   37488      1736454 :          data_tmp = ISHFT(pack_tmp, 3)
   37489      1736454 :          ipack = ipack + 1
   37490      1736454 :          pack_tmp = packed_data(ipack)
   37491      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   37492      1736454 :          pack_tmp = ISHFT(pack_tmp, -3)
   37493      1736454 :          idata = idata + 1
   37494      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37495      1736454 :          full_data(idata) = data_tmp
   37496      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37497      1736454 :          idata = idata + 1
   37498      1736454 :          data_tmp = ISHFT(pack_tmp, 33)
   37499      1736454 :          ipack = ipack + 1
   37500      1736454 :          pack_tmp = packed_data(ipack)
   37501      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   37502      1736454 :          pack_tmp = ISHFT(pack_tmp, -33)
   37503      1736454 :          idata = idata + 1
   37504      1736454 :          data_tmp = ISHFT(pack_tmp, 16)
   37505      1736454 :          ipack = ipack + 1
   37506      1736454 :          pack_tmp = packed_data(ipack)
   37507      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   37508      1736454 :          pack_tmp = ISHFT(pack_tmp, -16)
   37509      1736454 :          idata = idata + 1
   37510      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37511      1736454 :          full_data(idata) = data_tmp
   37512      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37513      1736454 :          idata = idata + 1
   37514      1736454 :          data_tmp = ISHFT(pack_tmp, 46)
   37515      1736454 :          ipack = ipack + 1
   37516      1736454 :          pack_tmp = packed_data(ipack)
   37517      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   37518      1736454 :          pack_tmp = ISHFT(pack_tmp, -46)
   37519      1736454 :          idata = idata + 1
   37520      1736454 :          data_tmp = ISHFT(pack_tmp, 29)
   37521      1736454 :          ipack = ipack + 1
   37522      1736454 :          pack_tmp = packed_data(ipack)
   37523      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   37524      1736454 :          pack_tmp = ISHFT(pack_tmp, -29)
   37525      1736454 :          idata = idata + 1
   37526      1736454 :          data_tmp = ISHFT(pack_tmp, 12)
   37527      1736454 :          ipack = ipack + 1
   37528      1736454 :          pack_tmp = packed_data(ipack)
   37529      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   37530      1736454 :          pack_tmp = ISHFT(pack_tmp, -12)
   37531      1736454 :          idata = idata + 1
   37532      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37533      1736454 :          full_data(idata) = data_tmp
   37534      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37535      1736454 :          idata = idata + 1
   37536      1736454 :          data_tmp = ISHFT(pack_tmp, 42)
   37537      1736454 :          ipack = ipack + 1
   37538      1736454 :          pack_tmp = packed_data(ipack)
   37539      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   37540      1736454 :          pack_tmp = ISHFT(pack_tmp, -42)
   37541      1736454 :          idata = idata + 1
   37542      1736454 :          data_tmp = ISHFT(pack_tmp, 25)
   37543      1736454 :          ipack = ipack + 1
   37544      1736454 :          pack_tmp = packed_data(ipack)
   37545      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   37546      1736454 :          pack_tmp = ISHFT(pack_tmp, -25)
   37547      1736454 :          idata = idata + 1
   37548      1736454 :          data_tmp = ISHFT(pack_tmp, 8)
   37549      1736454 :          ipack = ipack + 1
   37550      1736454 :          pack_tmp = packed_data(ipack)
   37551      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   37552      1736454 :          pack_tmp = ISHFT(pack_tmp, -8)
   37553      1736454 :          idata = idata + 1
   37554      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37555      1736454 :          full_data(idata) = data_tmp
   37556      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37557      1736454 :          idata = idata + 1
   37558      1736454 :          data_tmp = ISHFT(pack_tmp, 38)
   37559      1736454 :          ipack = ipack + 1
   37560      1736454 :          pack_tmp = packed_data(ipack)
   37561      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   37562      1736454 :          pack_tmp = ISHFT(pack_tmp, -38)
   37563      1736454 :          idata = idata + 1
   37564      1736454 :          data_tmp = ISHFT(pack_tmp, 21)
   37565      1736454 :          ipack = ipack + 1
   37566      1736454 :          pack_tmp = packed_data(ipack)
   37567      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   37568      1736454 :          pack_tmp = ISHFT(pack_tmp, -21)
   37569      1736454 :          idata = idata + 1
   37570      1736454 :          data_tmp = ISHFT(pack_tmp, 4)
   37571      1736454 :          ipack = ipack + 1
   37572      1736454 :          pack_tmp = packed_data(ipack)
   37573      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   37574      1736454 :          pack_tmp = ISHFT(pack_tmp, -4)
   37575      1736454 :          idata = idata + 1
   37576      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37577      1736454 :          full_data(idata) = data_tmp
   37578      1736454 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37579      1736454 :          idata = idata + 1
   37580      1736454 :          data_tmp = ISHFT(pack_tmp, 34)
   37581      1736454 :          ipack = ipack + 1
   37582      1736454 :          pack_tmp = packed_data(ipack)
   37583      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   37584      1736454 :          pack_tmp = ISHFT(pack_tmp, -34)
   37585      1736454 :          idata = idata + 1
   37586      1736454 :          data_tmp = ISHFT(pack_tmp, 17)
   37587      1736454 :          ipack = ipack + 1
   37588      1736454 :          pack_tmp = packed_data(ipack)
   37589      1736454 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   37590      1736454 :          pack_tmp = ISHFT(pack_tmp, -17)
   37591      1736454 :          idata = idata + 1
   37592      1736454 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   37593      1736454 :          full_data(idata) = data_tmp
   37594      1736534 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   37595              :       END DO
   37596       117617 :       IF (Ndata_rep < Ndata) THEN
   37597        17108 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   37598              :       END IF
   37599       117617 :    END SUBROUTINE bits2ints_47
   37600              : 
   37601              : ! **************************************************************************************************
   37602              : !> \brief ...
   37603              : !> \param Ndata ...
   37604              : !> \param packed_data ...
   37605              : !> \param full_data ...
   37606              : ! **************************************************************************************************
   37607        27429 :    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        27429 :       idata = 0
   37618        27429 :       ipack = 0
   37619        27429 :       Ndata_rep = (Ndata/64)*64
   37620        27429 :       DO kdata = 1, Ndata_rep, 64
   37621       414180 :          pack_tmp = 0
   37622       414180 :          idata = idata + 1
   37623       414180 :          data_tmp = full_data(idata)
   37624       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37625       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37626       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   37627       414180 :          idata = idata + 1
   37628       414180 :          data_tmp = full_data(idata)
   37629       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37630       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   37631       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37632       414180 :          ipack = ipack + 1
   37633       414180 :          packed_data(ipack) = pack_tmp
   37634       414180 :          data_tmp = full_data(idata)
   37635       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   37636       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   37637       414180 :          idata = idata + 1
   37638       414180 :          data_tmp = full_data(idata)
   37639       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37640       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   37641       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37642       414180 :          ipack = ipack + 1
   37643       414180 :          packed_data(ipack) = pack_tmp
   37644       414180 :          data_tmp = full_data(idata)
   37645       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   37646       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   37647       414180 :          idata = idata + 1
   37648       414180 :          data_tmp = full_data(idata)
   37649       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37650       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37651       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   37652       414180 :          idata = idata + 1
   37653       414180 :          data_tmp = full_data(idata)
   37654              :          data_tmp = ISHFT(data_tmp, 16)
   37655       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   37656       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37657       414180 :          ipack = ipack + 1
   37658       414180 :          packed_data(ipack) = pack_tmp
   37659       414180 :          data_tmp = full_data(idata)
   37660       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   37661       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   37662       414180 :          idata = idata + 1
   37663       414180 :          data_tmp = full_data(idata)
   37664       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37665       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   37666       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37667       414180 :          ipack = ipack + 1
   37668       414180 :          packed_data(ipack) = pack_tmp
   37669       414180 :          data_tmp = full_data(idata)
   37670       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   37671       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   37672       414180 :          idata = idata + 1
   37673       414180 :          data_tmp = full_data(idata)
   37674       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37675       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   37676       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37677       414180 :          ipack = ipack + 1
   37678       414180 :          packed_data(ipack) = pack_tmp
   37679       414180 :          data_tmp = full_data(idata)
   37680       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   37681       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   37682       414180 :          idata = idata + 1
   37683       414180 :          data_tmp = full_data(idata)
   37684       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37685       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37686       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   37687       414180 :          idata = idata + 1
   37688       414180 :          data_tmp = full_data(idata)
   37689              :          data_tmp = ISHFT(data_tmp, 16)
   37690       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   37691       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37692       414180 :          ipack = ipack + 1
   37693       414180 :          packed_data(ipack) = pack_tmp
   37694       414180 :          data_tmp = full_data(idata)
   37695       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   37696       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   37697       414180 :          idata = idata + 1
   37698       414180 :          data_tmp = full_data(idata)
   37699       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37700       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   37701       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37702       414180 :          ipack = ipack + 1
   37703       414180 :          packed_data(ipack) = pack_tmp
   37704       414180 :          data_tmp = full_data(idata)
   37705       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   37706       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   37707       414180 :          idata = idata + 1
   37708       414180 :          data_tmp = full_data(idata)
   37709       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37710       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   37711       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37712       414180 :          ipack = ipack + 1
   37713       414180 :          packed_data(ipack) = pack_tmp
   37714       414180 :          data_tmp = full_data(idata)
   37715       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   37716       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   37717       414180 :          idata = idata + 1
   37718       414180 :          data_tmp = full_data(idata)
   37719       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37720       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37721       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   37722       414180 :          idata = idata + 1
   37723       414180 :          data_tmp = full_data(idata)
   37724              :          data_tmp = ISHFT(data_tmp, 16)
   37725       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   37726       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37727       414180 :          ipack = ipack + 1
   37728       414180 :          packed_data(ipack) = pack_tmp
   37729       414180 :          data_tmp = full_data(idata)
   37730       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   37731       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   37732       414180 :          idata = idata + 1
   37733       414180 :          data_tmp = full_data(idata)
   37734       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37735       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   37736       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37737       414180 :          ipack = ipack + 1
   37738       414180 :          packed_data(ipack) = pack_tmp
   37739       414180 :          data_tmp = full_data(idata)
   37740       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   37741       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   37742       414180 :          idata = idata + 1
   37743       414180 :          data_tmp = full_data(idata)
   37744       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37745       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   37746       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37747       414180 :          ipack = ipack + 1
   37748       414180 :          packed_data(ipack) = pack_tmp
   37749       414180 :          data_tmp = full_data(idata)
   37750       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   37751       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   37752       414180 :          idata = idata + 1
   37753       414180 :          data_tmp = full_data(idata)
   37754       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37755       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37756       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   37757       414180 :          idata = idata + 1
   37758       414180 :          data_tmp = full_data(idata)
   37759              :          data_tmp = ISHFT(data_tmp, 16)
   37760       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   37761       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37762       414180 :          ipack = ipack + 1
   37763       414180 :          packed_data(ipack) = pack_tmp
   37764       414180 :          data_tmp = full_data(idata)
   37765       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   37766       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   37767       414180 :          idata = idata + 1
   37768       414180 :          data_tmp = full_data(idata)
   37769       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37770       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   37771       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37772       414180 :          ipack = ipack + 1
   37773       414180 :          packed_data(ipack) = pack_tmp
   37774       414180 :          data_tmp = full_data(idata)
   37775       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   37776       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   37777       414180 :          idata = idata + 1
   37778       414180 :          data_tmp = full_data(idata)
   37779       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37780       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   37781       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37782       414180 :          ipack = ipack + 1
   37783       414180 :          packed_data(ipack) = pack_tmp
   37784       414180 :          data_tmp = full_data(idata)
   37785       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   37786       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   37787       414180 :          idata = idata + 1
   37788       414180 :          data_tmp = full_data(idata)
   37789       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37790       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37791       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   37792       414180 :          idata = idata + 1
   37793       414180 :          data_tmp = full_data(idata)
   37794              :          data_tmp = ISHFT(data_tmp, 16)
   37795       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   37796       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37797       414180 :          ipack = ipack + 1
   37798       414180 :          packed_data(ipack) = pack_tmp
   37799       414180 :          data_tmp = full_data(idata)
   37800       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   37801       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   37802       414180 :          idata = idata + 1
   37803       414180 :          data_tmp = full_data(idata)
   37804       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37805       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   37806       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37807       414180 :          ipack = ipack + 1
   37808       414180 :          packed_data(ipack) = pack_tmp
   37809       414180 :          data_tmp = full_data(idata)
   37810       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   37811       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   37812       414180 :          idata = idata + 1
   37813       414180 :          data_tmp = full_data(idata)
   37814       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37815       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   37816       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37817       414180 :          ipack = ipack + 1
   37818       414180 :          packed_data(ipack) = pack_tmp
   37819       414180 :          data_tmp = full_data(idata)
   37820       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   37821       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   37822       414180 :          idata = idata + 1
   37823       414180 :          data_tmp = full_data(idata)
   37824       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37825       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37826       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   37827       414180 :          idata = idata + 1
   37828       414180 :          data_tmp = full_data(idata)
   37829              :          data_tmp = ISHFT(data_tmp, 16)
   37830       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   37831       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37832       414180 :          ipack = ipack + 1
   37833       414180 :          packed_data(ipack) = pack_tmp
   37834       414180 :          data_tmp = full_data(idata)
   37835       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   37836       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   37837       414180 :          idata = idata + 1
   37838       414180 :          data_tmp = full_data(idata)
   37839       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37840       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   37841       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37842       414180 :          ipack = ipack + 1
   37843       414180 :          packed_data(ipack) = pack_tmp
   37844       414180 :          data_tmp = full_data(idata)
   37845       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   37846       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   37847       414180 :          idata = idata + 1
   37848       414180 :          data_tmp = full_data(idata)
   37849       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37850       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   37851       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37852       414180 :          ipack = ipack + 1
   37853       414180 :          packed_data(ipack) = pack_tmp
   37854       414180 :          data_tmp = full_data(idata)
   37855       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   37856       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   37857       414180 :          idata = idata + 1
   37858       414180 :          data_tmp = full_data(idata)
   37859       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37860       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37861       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   37862       414180 :          idata = idata + 1
   37863       414180 :          data_tmp = full_data(idata)
   37864              :          data_tmp = ISHFT(data_tmp, 16)
   37865       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   37866       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37867       414180 :          ipack = ipack + 1
   37868       414180 :          packed_data(ipack) = pack_tmp
   37869       414180 :          data_tmp = full_data(idata)
   37870       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   37871       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   37872       414180 :          idata = idata + 1
   37873       414180 :          data_tmp = full_data(idata)
   37874       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37875       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   37876       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37877       414180 :          ipack = ipack + 1
   37878       414180 :          packed_data(ipack) = pack_tmp
   37879       414180 :          data_tmp = full_data(idata)
   37880       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   37881       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   37882       414180 :          idata = idata + 1
   37883       414180 :          data_tmp = full_data(idata)
   37884       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37885       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   37886       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37887       414180 :          ipack = ipack + 1
   37888       414180 :          packed_data(ipack) = pack_tmp
   37889       414180 :          data_tmp = full_data(idata)
   37890       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   37891       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   37892       414180 :          idata = idata + 1
   37893       414180 :          data_tmp = full_data(idata)
   37894       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37895       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37896       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   37897       414180 :          idata = idata + 1
   37898       414180 :          data_tmp = full_data(idata)
   37899              :          data_tmp = ISHFT(data_tmp, 16)
   37900       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   37901       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37902       414180 :          ipack = ipack + 1
   37903       414180 :          packed_data(ipack) = pack_tmp
   37904       414180 :          data_tmp = full_data(idata)
   37905       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   37906       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   37907       414180 :          idata = idata + 1
   37908       414180 :          data_tmp = full_data(idata)
   37909       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37910       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   37911       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37912       414180 :          ipack = ipack + 1
   37913       414180 :          packed_data(ipack) = pack_tmp
   37914       414180 :          data_tmp = full_data(idata)
   37915       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   37916       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   37917       414180 :          idata = idata + 1
   37918       414180 :          data_tmp = full_data(idata)
   37919       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37920       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   37921       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37922       414180 :          ipack = ipack + 1
   37923       414180 :          packed_data(ipack) = pack_tmp
   37924       414180 :          data_tmp = full_data(idata)
   37925       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   37926       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   37927       414180 :          idata = idata + 1
   37928       414180 :          data_tmp = full_data(idata)
   37929       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37930       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37931       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   37932       414180 :          idata = idata + 1
   37933       414180 :          data_tmp = full_data(idata)
   37934              :          data_tmp = ISHFT(data_tmp, 16)
   37935       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   37936       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37937       414180 :          ipack = ipack + 1
   37938       414180 :          packed_data(ipack) = pack_tmp
   37939       414180 :          data_tmp = full_data(idata)
   37940       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   37941       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   37942       414180 :          idata = idata + 1
   37943       414180 :          data_tmp = full_data(idata)
   37944       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37945       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   37946       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37947       414180 :          ipack = ipack + 1
   37948       414180 :          packed_data(ipack) = pack_tmp
   37949       414180 :          data_tmp = full_data(idata)
   37950       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   37951       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   37952       414180 :          idata = idata + 1
   37953       414180 :          data_tmp = full_data(idata)
   37954       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37955       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   37956       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37957       414180 :          ipack = ipack + 1
   37958       414180 :          packed_data(ipack) = pack_tmp
   37959       414180 :          data_tmp = full_data(idata)
   37960       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   37961       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   37962       414180 :          idata = idata + 1
   37963       414180 :          data_tmp = full_data(idata)
   37964       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37965       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37966       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   37967       414180 :          idata = idata + 1
   37968       414180 :          data_tmp = full_data(idata)
   37969              :          data_tmp = ISHFT(data_tmp, 16)
   37970       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   37971       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37972       414180 :          ipack = ipack + 1
   37973       414180 :          packed_data(ipack) = pack_tmp
   37974       414180 :          data_tmp = full_data(idata)
   37975       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   37976       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   37977       414180 :          idata = idata + 1
   37978       414180 :          data_tmp = full_data(idata)
   37979       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37980       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   37981       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37982       414180 :          ipack = ipack + 1
   37983       414180 :          packed_data(ipack) = pack_tmp
   37984       414180 :          data_tmp = full_data(idata)
   37985       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   37986       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   37987       414180 :          idata = idata + 1
   37988       414180 :          data_tmp = full_data(idata)
   37989       414180 :          data_tmp = ISHFT(data_tmp, 16)
   37990       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   37991       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   37992       414180 :          ipack = ipack + 1
   37993       414180 :          packed_data(ipack) = pack_tmp
   37994       414180 :          data_tmp = full_data(idata)
   37995       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   37996       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   37997       414180 :          idata = idata + 1
   37998       414180 :          data_tmp = full_data(idata)
   37999       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38000       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38001       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   38002       414180 :          idata = idata + 1
   38003       414180 :          data_tmp = full_data(idata)
   38004              :          data_tmp = ISHFT(data_tmp, 16)
   38005       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   38006       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38007       414180 :          ipack = ipack + 1
   38008       414180 :          packed_data(ipack) = pack_tmp
   38009       414180 :          data_tmp = full_data(idata)
   38010       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   38011       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   38012       414180 :          idata = idata + 1
   38013       414180 :          data_tmp = full_data(idata)
   38014       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38015       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   38016       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38017       414180 :          ipack = ipack + 1
   38018       414180 :          packed_data(ipack) = pack_tmp
   38019       414180 :          data_tmp = full_data(idata)
   38020       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   38021       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   38022       414180 :          idata = idata + 1
   38023       414180 :          data_tmp = full_data(idata)
   38024       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38025       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   38026       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38027       414180 :          ipack = ipack + 1
   38028       414180 :          packed_data(ipack) = pack_tmp
   38029       414180 :          data_tmp = full_data(idata)
   38030       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   38031       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   38032       414180 :          idata = idata + 1
   38033       414180 :          data_tmp = full_data(idata)
   38034       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38035       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38036       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   38037       414180 :          idata = idata + 1
   38038       414180 :          data_tmp = full_data(idata)
   38039              :          data_tmp = ISHFT(data_tmp, 16)
   38040       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   38041       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38042       414180 :          ipack = ipack + 1
   38043       414180 :          packed_data(ipack) = pack_tmp
   38044       414180 :          data_tmp = full_data(idata)
   38045       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   38046       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   38047       414180 :          idata = idata + 1
   38048       414180 :          data_tmp = full_data(idata)
   38049       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38050       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   38051       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38052       414180 :          ipack = ipack + 1
   38053       414180 :          packed_data(ipack) = pack_tmp
   38054       414180 :          data_tmp = full_data(idata)
   38055       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   38056       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   38057       414180 :          idata = idata + 1
   38058       414180 :          data_tmp = full_data(idata)
   38059       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38060       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   38061       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38062       414180 :          ipack = ipack + 1
   38063       414180 :          packed_data(ipack) = pack_tmp
   38064       414180 :          data_tmp = full_data(idata)
   38065       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   38066       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   38067       414180 :          idata = idata + 1
   38068       414180 :          data_tmp = full_data(idata)
   38069       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38070       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38071       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   38072       414180 :          idata = idata + 1
   38073       414180 :          data_tmp = full_data(idata)
   38074              :          data_tmp = ISHFT(data_tmp, 16)
   38075       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   38076       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38077       414180 :          ipack = ipack + 1
   38078       414180 :          packed_data(ipack) = pack_tmp
   38079       414180 :          data_tmp = full_data(idata)
   38080       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   38081       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   38082       414180 :          idata = idata + 1
   38083       414180 :          data_tmp = full_data(idata)
   38084       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38085       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   38086       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38087       414180 :          ipack = ipack + 1
   38088       414180 :          packed_data(ipack) = pack_tmp
   38089       414180 :          data_tmp = full_data(idata)
   38090       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   38091       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   38092       414180 :          idata = idata + 1
   38093       414180 :          data_tmp = full_data(idata)
   38094       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38095       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   38096       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38097       414180 :          ipack = ipack + 1
   38098       414180 :          packed_data(ipack) = pack_tmp
   38099       414180 :          data_tmp = full_data(idata)
   38100       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   38101       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   38102       414180 :          idata = idata + 1
   38103       414180 :          data_tmp = full_data(idata)
   38104       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38105       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38106       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   38107       414180 :          idata = idata + 1
   38108       414180 :          data_tmp = full_data(idata)
   38109              :          data_tmp = ISHFT(data_tmp, 16)
   38110       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   38111       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38112       414180 :          ipack = ipack + 1
   38113       414180 :          packed_data(ipack) = pack_tmp
   38114       414180 :          data_tmp = full_data(idata)
   38115       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   38116       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   38117       414180 :          idata = idata + 1
   38118       414180 :          data_tmp = full_data(idata)
   38119       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38120       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   38121       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38122       414180 :          ipack = ipack + 1
   38123       414180 :          packed_data(ipack) = pack_tmp
   38124       414180 :          data_tmp = full_data(idata)
   38125       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   38126       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   38127       414180 :          idata = idata + 1
   38128       414180 :          data_tmp = full_data(idata)
   38129       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38130       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   38131       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38132       414180 :          ipack = ipack + 1
   38133       414180 :          packed_data(ipack) = pack_tmp
   38134       414180 :          data_tmp = full_data(idata)
   38135       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   38136       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   38137       414180 :          idata = idata + 1
   38138       414180 :          data_tmp = full_data(idata)
   38139       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38140       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38141       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   38142       414180 :          idata = idata + 1
   38143       414180 :          data_tmp = full_data(idata)
   38144              :          data_tmp = ISHFT(data_tmp, 16)
   38145       414180 :          data_tmp = IAND(data_tmp, mask_left(0))
   38146       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38147       414180 :          ipack = ipack + 1
   38148       414180 :          packed_data(ipack) = pack_tmp
   38149       414180 :          data_tmp = full_data(idata)
   38150       414180 :          pack_tmp = ISHFT(data_tmp, 16)
   38151       414180 :          pack_tmp = ISHFT(pack_tmp, -16)
   38152       414180 :          idata = idata + 1
   38153       414180 :          data_tmp = full_data(idata)
   38154       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38155       414180 :          data_tmp = IAND(data_tmp, mask_left(16))
   38156       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38157       414180 :          ipack = ipack + 1
   38158       414180 :          packed_data(ipack) = pack_tmp
   38159       414180 :          data_tmp = full_data(idata)
   38160       414180 :          pack_tmp = ISHFT(data_tmp, 32)
   38161       414180 :          pack_tmp = ISHFT(pack_tmp, -32)
   38162       414180 :          idata = idata + 1
   38163       414180 :          data_tmp = full_data(idata)
   38164       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38165       414180 :          data_tmp = IAND(data_tmp, mask_left(32))
   38166       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38167       414180 :          ipack = ipack + 1
   38168       414180 :          packed_data(ipack) = pack_tmp
   38169       414180 :          data_tmp = full_data(idata)
   38170       414180 :          pack_tmp = ISHFT(data_tmp, 48)
   38171       414180 :          pack_tmp = ISHFT(pack_tmp, -48)
   38172       414180 :          idata = idata + 1
   38173       414180 :          data_tmp = full_data(idata)
   38174       414180 :          data_tmp = ISHFT(data_tmp, 16)
   38175       414180 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38176              :          pack_tmp = ISHFT(pack_tmp, 0)
   38177       414180 :          pack_tmp = ISHFT(pack_tmp, 0)
   38178       414180 :          ipack = ipack + 1
   38179       414414 :          packed_data(ipack) = pack_tmp
   38180              :       END DO
   38181        27429 :       IF (Ndata_rep < Ndata) THEN
   38182         2904 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   38183              :       END IF
   38184        27429 :    END SUBROUTINE ints2bits_48
   38185              : 
   38186              : ! **************************************************************************************************
   38187              : !> \brief ...
   38188              : !> \param Ndata ...
   38189              : !> \param packed_data ...
   38190              : !> \param full_data ...
   38191              : ! **************************************************************************************************
   38192       115334 :    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       115334 :       ipack = 0
   38203       115334 :       idata = 0
   38204       115334 :       pack_tmp = 0
   38205       115334 :       Ndata_rep = (Ndata/64)*64
   38206       115334 :       DO kdata = 1, Ndata_rep, 64
   38207      1710619 :          idata = idata + 1
   38208      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38209      1710619 :          ipack = ipack + 1
   38210      1710619 :          pack_tmp = packed_data(ipack)
   38211      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38212      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38213      1710619 :          idata = idata + 1
   38214      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38215      1710619 :          ipack = ipack + 1
   38216      1710619 :          pack_tmp = packed_data(ipack)
   38217      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38218      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38219      1710619 :          idata = idata + 1
   38220      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38221      1710619 :          ipack = ipack + 1
   38222      1710619 :          pack_tmp = packed_data(ipack)
   38223      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38224      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38225      1710619 :          idata = idata + 1
   38226      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38227      1710619 :          full_data(idata) = data_tmp
   38228      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38229      1710619 :          idata = idata + 1
   38230      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38231      1710619 :          ipack = ipack + 1
   38232      1710619 :          pack_tmp = packed_data(ipack)
   38233      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38234      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38235      1710619 :          idata = idata + 1
   38236      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38237      1710619 :          ipack = ipack + 1
   38238      1710619 :          pack_tmp = packed_data(ipack)
   38239      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38240      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38241      1710619 :          idata = idata + 1
   38242      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38243      1710619 :          ipack = ipack + 1
   38244      1710619 :          pack_tmp = packed_data(ipack)
   38245      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38246      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38247      1710619 :          idata = idata + 1
   38248      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38249      1710619 :          full_data(idata) = data_tmp
   38250      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38251      1710619 :          idata = idata + 1
   38252      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38253      1710619 :          ipack = ipack + 1
   38254      1710619 :          pack_tmp = packed_data(ipack)
   38255      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38256      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38257      1710619 :          idata = idata + 1
   38258      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38259      1710619 :          ipack = ipack + 1
   38260      1710619 :          pack_tmp = packed_data(ipack)
   38261      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38262      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38263      1710619 :          idata = idata + 1
   38264      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38265      1710619 :          ipack = ipack + 1
   38266      1710619 :          pack_tmp = packed_data(ipack)
   38267      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38268      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38269      1710619 :          idata = idata + 1
   38270      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38271      1710619 :          full_data(idata) = data_tmp
   38272      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38273      1710619 :          idata = idata + 1
   38274      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38275      1710619 :          ipack = ipack + 1
   38276      1710619 :          pack_tmp = packed_data(ipack)
   38277      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38278      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38279      1710619 :          idata = idata + 1
   38280      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38281      1710619 :          ipack = ipack + 1
   38282      1710619 :          pack_tmp = packed_data(ipack)
   38283      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38284      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38285      1710619 :          idata = idata + 1
   38286      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38287      1710619 :          ipack = ipack + 1
   38288      1710619 :          pack_tmp = packed_data(ipack)
   38289      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38290      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38291      1710619 :          idata = idata + 1
   38292      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38293      1710619 :          full_data(idata) = data_tmp
   38294      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38295      1710619 :          idata = idata + 1
   38296      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38297      1710619 :          ipack = ipack + 1
   38298      1710619 :          pack_tmp = packed_data(ipack)
   38299      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38300      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38301      1710619 :          idata = idata + 1
   38302      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38303      1710619 :          ipack = ipack + 1
   38304      1710619 :          pack_tmp = packed_data(ipack)
   38305      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38306      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38307      1710619 :          idata = idata + 1
   38308      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38309      1710619 :          ipack = ipack + 1
   38310      1710619 :          pack_tmp = packed_data(ipack)
   38311      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38312      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38313      1710619 :          idata = idata + 1
   38314      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38315      1710619 :          full_data(idata) = data_tmp
   38316      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38317      1710619 :          idata = idata + 1
   38318      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38319      1710619 :          ipack = ipack + 1
   38320      1710619 :          pack_tmp = packed_data(ipack)
   38321      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38322      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38323      1710619 :          idata = idata + 1
   38324      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38325      1710619 :          ipack = ipack + 1
   38326      1710619 :          pack_tmp = packed_data(ipack)
   38327      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38328      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38329      1710619 :          idata = idata + 1
   38330      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38331      1710619 :          ipack = ipack + 1
   38332      1710619 :          pack_tmp = packed_data(ipack)
   38333      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38334      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38335      1710619 :          idata = idata + 1
   38336      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38337      1710619 :          full_data(idata) = data_tmp
   38338      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38339      1710619 :          idata = idata + 1
   38340      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38341      1710619 :          ipack = ipack + 1
   38342      1710619 :          pack_tmp = packed_data(ipack)
   38343      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38344      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38345      1710619 :          idata = idata + 1
   38346      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38347      1710619 :          ipack = ipack + 1
   38348      1710619 :          pack_tmp = packed_data(ipack)
   38349      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38350      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38351      1710619 :          idata = idata + 1
   38352      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38353      1710619 :          ipack = ipack + 1
   38354      1710619 :          pack_tmp = packed_data(ipack)
   38355      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38356      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38357      1710619 :          idata = idata + 1
   38358      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38359      1710619 :          full_data(idata) = data_tmp
   38360      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38361      1710619 :          idata = idata + 1
   38362      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38363      1710619 :          ipack = ipack + 1
   38364      1710619 :          pack_tmp = packed_data(ipack)
   38365      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38366      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38367      1710619 :          idata = idata + 1
   38368      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38369      1710619 :          ipack = ipack + 1
   38370      1710619 :          pack_tmp = packed_data(ipack)
   38371      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38372      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38373      1710619 :          idata = idata + 1
   38374      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38375      1710619 :          ipack = ipack + 1
   38376      1710619 :          pack_tmp = packed_data(ipack)
   38377      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38378      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38379      1710619 :          idata = idata + 1
   38380      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38381      1710619 :          full_data(idata) = data_tmp
   38382      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38383      1710619 :          idata = idata + 1
   38384      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38385      1710619 :          ipack = ipack + 1
   38386      1710619 :          pack_tmp = packed_data(ipack)
   38387      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38388      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38389      1710619 :          idata = idata + 1
   38390      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38391      1710619 :          ipack = ipack + 1
   38392      1710619 :          pack_tmp = packed_data(ipack)
   38393      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38394      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38395      1710619 :          idata = idata + 1
   38396      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38397      1710619 :          ipack = ipack + 1
   38398      1710619 :          pack_tmp = packed_data(ipack)
   38399      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38400      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38401      1710619 :          idata = idata + 1
   38402      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38403      1710619 :          full_data(idata) = data_tmp
   38404      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38405      1710619 :          idata = idata + 1
   38406      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38407      1710619 :          ipack = ipack + 1
   38408      1710619 :          pack_tmp = packed_data(ipack)
   38409      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38410      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38411      1710619 :          idata = idata + 1
   38412      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38413      1710619 :          ipack = ipack + 1
   38414      1710619 :          pack_tmp = packed_data(ipack)
   38415      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38416      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38417      1710619 :          idata = idata + 1
   38418      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38419      1710619 :          ipack = ipack + 1
   38420      1710619 :          pack_tmp = packed_data(ipack)
   38421      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38422      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38423      1710619 :          idata = idata + 1
   38424      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38425      1710619 :          full_data(idata) = data_tmp
   38426      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38427      1710619 :          idata = idata + 1
   38428      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38429      1710619 :          ipack = ipack + 1
   38430      1710619 :          pack_tmp = packed_data(ipack)
   38431      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38432      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38433      1710619 :          idata = idata + 1
   38434      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38435      1710619 :          ipack = ipack + 1
   38436      1710619 :          pack_tmp = packed_data(ipack)
   38437      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38438      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38439      1710619 :          idata = idata + 1
   38440      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38441      1710619 :          ipack = ipack + 1
   38442      1710619 :          pack_tmp = packed_data(ipack)
   38443      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38444      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38445      1710619 :          idata = idata + 1
   38446      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38447      1710619 :          full_data(idata) = data_tmp
   38448      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38449      1710619 :          idata = idata + 1
   38450      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38451      1710619 :          ipack = ipack + 1
   38452      1710619 :          pack_tmp = packed_data(ipack)
   38453      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38454      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38455      1710619 :          idata = idata + 1
   38456      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38457      1710619 :          ipack = ipack + 1
   38458      1710619 :          pack_tmp = packed_data(ipack)
   38459      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38460      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38461      1710619 :          idata = idata + 1
   38462      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38463      1710619 :          ipack = ipack + 1
   38464      1710619 :          pack_tmp = packed_data(ipack)
   38465      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38466      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38467      1710619 :          idata = idata + 1
   38468      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38469      1710619 :          full_data(idata) = data_tmp
   38470      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38471      1710619 :          idata = idata + 1
   38472      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38473      1710619 :          ipack = ipack + 1
   38474      1710619 :          pack_tmp = packed_data(ipack)
   38475      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38476      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38477      1710619 :          idata = idata + 1
   38478      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38479      1710619 :          ipack = ipack + 1
   38480      1710619 :          pack_tmp = packed_data(ipack)
   38481      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38482      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38483      1710619 :          idata = idata + 1
   38484      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38485      1710619 :          ipack = ipack + 1
   38486      1710619 :          pack_tmp = packed_data(ipack)
   38487      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38488      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38489      1710619 :          idata = idata + 1
   38490      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38491      1710619 :          full_data(idata) = data_tmp
   38492      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38493      1710619 :          idata = idata + 1
   38494      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38495      1710619 :          ipack = ipack + 1
   38496      1710619 :          pack_tmp = packed_data(ipack)
   38497      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38498      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38499      1710619 :          idata = idata + 1
   38500      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38501      1710619 :          ipack = ipack + 1
   38502      1710619 :          pack_tmp = packed_data(ipack)
   38503      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38504      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38505      1710619 :          idata = idata + 1
   38506      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38507      1710619 :          ipack = ipack + 1
   38508      1710619 :          pack_tmp = packed_data(ipack)
   38509      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38510      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38511      1710619 :          idata = idata + 1
   38512      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38513      1710619 :          full_data(idata) = data_tmp
   38514      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38515      1710619 :          idata = idata + 1
   38516      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38517      1710619 :          ipack = ipack + 1
   38518      1710619 :          pack_tmp = packed_data(ipack)
   38519      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38520      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38521      1710619 :          idata = idata + 1
   38522      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38523      1710619 :          ipack = ipack + 1
   38524      1710619 :          pack_tmp = packed_data(ipack)
   38525      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38526      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38527      1710619 :          idata = idata + 1
   38528      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38529      1710619 :          ipack = ipack + 1
   38530      1710619 :          pack_tmp = packed_data(ipack)
   38531      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38532      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38533      1710619 :          idata = idata + 1
   38534      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38535      1710619 :          full_data(idata) = data_tmp
   38536      1710619 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38537      1710619 :          idata = idata + 1
   38538      1710619 :          data_tmp = ISHFT(pack_tmp, 48)
   38539      1710619 :          ipack = ipack + 1
   38540      1710619 :          pack_tmp = packed_data(ipack)
   38541      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   38542      1710619 :          pack_tmp = ISHFT(pack_tmp, -48)
   38543      1710619 :          idata = idata + 1
   38544      1710619 :          data_tmp = ISHFT(pack_tmp, 32)
   38545      1710619 :          ipack = ipack + 1
   38546      1710619 :          pack_tmp = packed_data(ipack)
   38547      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   38548      1710619 :          pack_tmp = ISHFT(pack_tmp, -32)
   38549      1710619 :          idata = idata + 1
   38550      1710619 :          data_tmp = ISHFT(pack_tmp, 16)
   38551      1710619 :          ipack = ipack + 1
   38552      1710619 :          pack_tmp = packed_data(ipack)
   38553      1710619 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   38554      1710619 :          pack_tmp = ISHFT(pack_tmp, -16)
   38555      1710619 :          idata = idata + 1
   38556      1710619 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   38557      1710619 :          full_data(idata) = data_tmp
   38558      1712184 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   38559              :       END DO
   38560       115334 :       IF (Ndata_rep < Ndata) THEN
   38561        15850 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   38562              :       END IF
   38563       115334 :    END SUBROUTINE bits2ints_48
   38564              : 
   38565              : ! **************************************************************************************************
   38566              : !> \brief ...
   38567              : !> \param Ndata ...
   38568              : !> \param packed_data ...
   38569              : !> \param full_data ...
   38570              : ! **************************************************************************************************
   38571        26288 :    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        26288 :       idata = 0
   38582        26288 :       ipack = 0
   38583        26288 :       Ndata_rep = (Ndata/64)*64
   38584        26288 :       DO kdata = 1, Ndata_rep, 64
   38585       405325 :          pack_tmp = 0
   38586       405325 :          idata = idata + 1
   38587       405325 :          data_tmp = full_data(idata)
   38588       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38589       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38590       405325 :          pack_tmp = ISHFT(pack_tmp, -15)
   38591       405325 :          idata = idata + 1
   38592       405325 :          data_tmp = full_data(idata)
   38593       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38594       405325 :          data_tmp = IAND(data_tmp, mask_left(15))
   38595       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38596       405325 :          ipack = ipack + 1
   38597       405325 :          packed_data(ipack) = pack_tmp
   38598       405325 :          data_tmp = full_data(idata)
   38599       405325 :          pack_tmp = ISHFT(data_tmp, 30)
   38600       405325 :          pack_tmp = ISHFT(pack_tmp, -30)
   38601       405325 :          idata = idata + 1
   38602       405325 :          data_tmp = full_data(idata)
   38603       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38604       405325 :          data_tmp = IAND(data_tmp, mask_left(30))
   38605       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38606       405325 :          ipack = ipack + 1
   38607       405325 :          packed_data(ipack) = pack_tmp
   38608       405325 :          data_tmp = full_data(idata)
   38609       405325 :          pack_tmp = ISHFT(data_tmp, 45)
   38610       405325 :          pack_tmp = ISHFT(pack_tmp, -45)
   38611       405325 :          idata = idata + 1
   38612       405325 :          data_tmp = full_data(idata)
   38613       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38614       405325 :          data_tmp = IAND(data_tmp, mask_left(45))
   38615       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38616       405325 :          ipack = ipack + 1
   38617       405325 :          packed_data(ipack) = pack_tmp
   38618       405325 :          data_tmp = full_data(idata)
   38619       405325 :          pack_tmp = ISHFT(data_tmp, 60)
   38620       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   38621       405325 :          idata = idata + 1
   38622       405325 :          data_tmp = full_data(idata)
   38623       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38624       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38625       405325 :          pack_tmp = ISHFT(pack_tmp, -11)
   38626       405325 :          idata = idata + 1
   38627       405325 :          data_tmp = full_data(idata)
   38628       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38629       405325 :          data_tmp = IAND(data_tmp, mask_left(11))
   38630       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38631       405325 :          ipack = ipack + 1
   38632       405325 :          packed_data(ipack) = pack_tmp
   38633       405325 :          data_tmp = full_data(idata)
   38634       405325 :          pack_tmp = ISHFT(data_tmp, 26)
   38635       405325 :          pack_tmp = ISHFT(pack_tmp, -26)
   38636       405325 :          idata = idata + 1
   38637       405325 :          data_tmp = full_data(idata)
   38638       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38639       405325 :          data_tmp = IAND(data_tmp, mask_left(26))
   38640       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38641       405325 :          ipack = ipack + 1
   38642       405325 :          packed_data(ipack) = pack_tmp
   38643       405325 :          data_tmp = full_data(idata)
   38644       405325 :          pack_tmp = ISHFT(data_tmp, 41)
   38645       405325 :          pack_tmp = ISHFT(pack_tmp, -41)
   38646       405325 :          idata = idata + 1
   38647       405325 :          data_tmp = full_data(idata)
   38648       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38649       405325 :          data_tmp = IAND(data_tmp, mask_left(41))
   38650       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38651       405325 :          ipack = ipack + 1
   38652       405325 :          packed_data(ipack) = pack_tmp
   38653       405325 :          data_tmp = full_data(idata)
   38654       405325 :          pack_tmp = ISHFT(data_tmp, 56)
   38655       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   38656       405325 :          idata = idata + 1
   38657       405325 :          data_tmp = full_data(idata)
   38658       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38659       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38660       405325 :          pack_tmp = ISHFT(pack_tmp, -7)
   38661       405325 :          idata = idata + 1
   38662       405325 :          data_tmp = full_data(idata)
   38663       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38664       405325 :          data_tmp = IAND(data_tmp, mask_left(7))
   38665       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38666       405325 :          ipack = ipack + 1
   38667       405325 :          packed_data(ipack) = pack_tmp
   38668       405325 :          data_tmp = full_data(idata)
   38669       405325 :          pack_tmp = ISHFT(data_tmp, 22)
   38670       405325 :          pack_tmp = ISHFT(pack_tmp, -22)
   38671       405325 :          idata = idata + 1
   38672       405325 :          data_tmp = full_data(idata)
   38673       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38674       405325 :          data_tmp = IAND(data_tmp, mask_left(22))
   38675       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38676       405325 :          ipack = ipack + 1
   38677       405325 :          packed_data(ipack) = pack_tmp
   38678       405325 :          data_tmp = full_data(idata)
   38679       405325 :          pack_tmp = ISHFT(data_tmp, 37)
   38680       405325 :          pack_tmp = ISHFT(pack_tmp, -37)
   38681       405325 :          idata = idata + 1
   38682       405325 :          data_tmp = full_data(idata)
   38683       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38684       405325 :          data_tmp = IAND(data_tmp, mask_left(37))
   38685       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38686       405325 :          ipack = ipack + 1
   38687       405325 :          packed_data(ipack) = pack_tmp
   38688       405325 :          data_tmp = full_data(idata)
   38689       405325 :          pack_tmp = ISHFT(data_tmp, 52)
   38690       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   38691       405325 :          idata = idata + 1
   38692       405325 :          data_tmp = full_data(idata)
   38693       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38694       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38695       405325 :          pack_tmp = ISHFT(pack_tmp, -3)
   38696       405325 :          idata = idata + 1
   38697       405325 :          data_tmp = full_data(idata)
   38698       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38699       405325 :          data_tmp = IAND(data_tmp, mask_left(3))
   38700       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38701       405325 :          ipack = ipack + 1
   38702       405325 :          packed_data(ipack) = pack_tmp
   38703       405325 :          data_tmp = full_data(idata)
   38704       405325 :          pack_tmp = ISHFT(data_tmp, 18)
   38705       405325 :          pack_tmp = ISHFT(pack_tmp, -18)
   38706       405325 :          idata = idata + 1
   38707       405325 :          data_tmp = full_data(idata)
   38708       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38709       405325 :          data_tmp = IAND(data_tmp, mask_left(18))
   38710       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38711       405325 :          ipack = ipack + 1
   38712       405325 :          packed_data(ipack) = pack_tmp
   38713       405325 :          data_tmp = full_data(idata)
   38714       405325 :          pack_tmp = ISHFT(data_tmp, 33)
   38715       405325 :          pack_tmp = ISHFT(pack_tmp, -33)
   38716       405325 :          idata = idata + 1
   38717       405325 :          data_tmp = full_data(idata)
   38718       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38719       405325 :          data_tmp = IAND(data_tmp, mask_left(33))
   38720       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38721       405325 :          ipack = ipack + 1
   38722       405325 :          packed_data(ipack) = pack_tmp
   38723       405325 :          data_tmp = full_data(idata)
   38724       405325 :          pack_tmp = ISHFT(data_tmp, 48)
   38725       405325 :          pack_tmp = ISHFT(pack_tmp, -48)
   38726       405325 :          idata = idata + 1
   38727       405325 :          data_tmp = full_data(idata)
   38728       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38729       405325 :          data_tmp = IAND(data_tmp, mask_left(48))
   38730       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38731       405325 :          ipack = ipack + 1
   38732       405325 :          packed_data(ipack) = pack_tmp
   38733       405325 :          data_tmp = full_data(idata)
   38734       405325 :          pack_tmp = ISHFT(data_tmp, 63)
   38735       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   38736       405325 :          idata = idata + 1
   38737       405325 :          data_tmp = full_data(idata)
   38738       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38739       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38740       405325 :          pack_tmp = ISHFT(pack_tmp, -14)
   38741       405325 :          idata = idata + 1
   38742       405325 :          data_tmp = full_data(idata)
   38743       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38744       405325 :          data_tmp = IAND(data_tmp, mask_left(14))
   38745       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38746       405325 :          ipack = ipack + 1
   38747       405325 :          packed_data(ipack) = pack_tmp
   38748       405325 :          data_tmp = full_data(idata)
   38749       405325 :          pack_tmp = ISHFT(data_tmp, 29)
   38750       405325 :          pack_tmp = ISHFT(pack_tmp, -29)
   38751       405325 :          idata = idata + 1
   38752       405325 :          data_tmp = full_data(idata)
   38753       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38754       405325 :          data_tmp = IAND(data_tmp, mask_left(29))
   38755       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38756       405325 :          ipack = ipack + 1
   38757       405325 :          packed_data(ipack) = pack_tmp
   38758       405325 :          data_tmp = full_data(idata)
   38759       405325 :          pack_tmp = ISHFT(data_tmp, 44)
   38760       405325 :          pack_tmp = ISHFT(pack_tmp, -44)
   38761       405325 :          idata = idata + 1
   38762       405325 :          data_tmp = full_data(idata)
   38763       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38764       405325 :          data_tmp = IAND(data_tmp, mask_left(44))
   38765       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38766       405325 :          ipack = ipack + 1
   38767       405325 :          packed_data(ipack) = pack_tmp
   38768       405325 :          data_tmp = full_data(idata)
   38769       405325 :          pack_tmp = ISHFT(data_tmp, 59)
   38770       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   38771       405325 :          idata = idata + 1
   38772       405325 :          data_tmp = full_data(idata)
   38773       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38774       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38775       405325 :          pack_tmp = ISHFT(pack_tmp, -10)
   38776       405325 :          idata = idata + 1
   38777       405325 :          data_tmp = full_data(idata)
   38778       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38779       405325 :          data_tmp = IAND(data_tmp, mask_left(10))
   38780       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38781       405325 :          ipack = ipack + 1
   38782       405325 :          packed_data(ipack) = pack_tmp
   38783       405325 :          data_tmp = full_data(idata)
   38784       405325 :          pack_tmp = ISHFT(data_tmp, 25)
   38785       405325 :          pack_tmp = ISHFT(pack_tmp, -25)
   38786       405325 :          idata = idata + 1
   38787       405325 :          data_tmp = full_data(idata)
   38788       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38789       405325 :          data_tmp = IAND(data_tmp, mask_left(25))
   38790       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38791       405325 :          ipack = ipack + 1
   38792       405325 :          packed_data(ipack) = pack_tmp
   38793       405325 :          data_tmp = full_data(idata)
   38794       405325 :          pack_tmp = ISHFT(data_tmp, 40)
   38795       405325 :          pack_tmp = ISHFT(pack_tmp, -40)
   38796       405325 :          idata = idata + 1
   38797       405325 :          data_tmp = full_data(idata)
   38798       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38799       405325 :          data_tmp = IAND(data_tmp, mask_left(40))
   38800       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38801       405325 :          ipack = ipack + 1
   38802       405325 :          packed_data(ipack) = pack_tmp
   38803       405325 :          data_tmp = full_data(idata)
   38804       405325 :          pack_tmp = ISHFT(data_tmp, 55)
   38805       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   38806       405325 :          idata = idata + 1
   38807       405325 :          data_tmp = full_data(idata)
   38808       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38809       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38810       405325 :          pack_tmp = ISHFT(pack_tmp, -6)
   38811       405325 :          idata = idata + 1
   38812       405325 :          data_tmp = full_data(idata)
   38813       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38814       405325 :          data_tmp = IAND(data_tmp, mask_left(6))
   38815       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38816       405325 :          ipack = ipack + 1
   38817       405325 :          packed_data(ipack) = pack_tmp
   38818       405325 :          data_tmp = full_data(idata)
   38819       405325 :          pack_tmp = ISHFT(data_tmp, 21)
   38820       405325 :          pack_tmp = ISHFT(pack_tmp, -21)
   38821       405325 :          idata = idata + 1
   38822       405325 :          data_tmp = full_data(idata)
   38823       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38824       405325 :          data_tmp = IAND(data_tmp, mask_left(21))
   38825       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38826       405325 :          ipack = ipack + 1
   38827       405325 :          packed_data(ipack) = pack_tmp
   38828       405325 :          data_tmp = full_data(idata)
   38829       405325 :          pack_tmp = ISHFT(data_tmp, 36)
   38830       405325 :          pack_tmp = ISHFT(pack_tmp, -36)
   38831       405325 :          idata = idata + 1
   38832       405325 :          data_tmp = full_data(idata)
   38833       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38834       405325 :          data_tmp = IAND(data_tmp, mask_left(36))
   38835       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38836       405325 :          ipack = ipack + 1
   38837       405325 :          packed_data(ipack) = pack_tmp
   38838       405325 :          data_tmp = full_data(idata)
   38839       405325 :          pack_tmp = ISHFT(data_tmp, 51)
   38840       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   38841       405325 :          idata = idata + 1
   38842       405325 :          data_tmp = full_data(idata)
   38843       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38844       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38845       405325 :          pack_tmp = ISHFT(pack_tmp, -2)
   38846       405325 :          idata = idata + 1
   38847       405325 :          data_tmp = full_data(idata)
   38848       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38849       405325 :          data_tmp = IAND(data_tmp, mask_left(2))
   38850       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38851       405325 :          ipack = ipack + 1
   38852       405325 :          packed_data(ipack) = pack_tmp
   38853       405325 :          data_tmp = full_data(idata)
   38854       405325 :          pack_tmp = ISHFT(data_tmp, 17)
   38855       405325 :          pack_tmp = ISHFT(pack_tmp, -17)
   38856       405325 :          idata = idata + 1
   38857       405325 :          data_tmp = full_data(idata)
   38858       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38859       405325 :          data_tmp = IAND(data_tmp, mask_left(17))
   38860       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38861       405325 :          ipack = ipack + 1
   38862       405325 :          packed_data(ipack) = pack_tmp
   38863       405325 :          data_tmp = full_data(idata)
   38864       405325 :          pack_tmp = ISHFT(data_tmp, 32)
   38865       405325 :          pack_tmp = ISHFT(pack_tmp, -32)
   38866       405325 :          idata = idata + 1
   38867       405325 :          data_tmp = full_data(idata)
   38868       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38869       405325 :          data_tmp = IAND(data_tmp, mask_left(32))
   38870       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38871       405325 :          ipack = ipack + 1
   38872       405325 :          packed_data(ipack) = pack_tmp
   38873       405325 :          data_tmp = full_data(idata)
   38874       405325 :          pack_tmp = ISHFT(data_tmp, 47)
   38875       405325 :          pack_tmp = ISHFT(pack_tmp, -47)
   38876       405325 :          idata = idata + 1
   38877       405325 :          data_tmp = full_data(idata)
   38878       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38879       405325 :          data_tmp = IAND(data_tmp, mask_left(47))
   38880       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38881       405325 :          ipack = ipack + 1
   38882       405325 :          packed_data(ipack) = pack_tmp
   38883       405325 :          data_tmp = full_data(idata)
   38884       405325 :          pack_tmp = ISHFT(data_tmp, 62)
   38885       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   38886       405325 :          idata = idata + 1
   38887       405325 :          data_tmp = full_data(idata)
   38888       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38889       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38890       405325 :          pack_tmp = ISHFT(pack_tmp, -13)
   38891       405325 :          idata = idata + 1
   38892       405325 :          data_tmp = full_data(idata)
   38893       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38894       405325 :          data_tmp = IAND(data_tmp, mask_left(13))
   38895       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38896       405325 :          ipack = ipack + 1
   38897       405325 :          packed_data(ipack) = pack_tmp
   38898       405325 :          data_tmp = full_data(idata)
   38899       405325 :          pack_tmp = ISHFT(data_tmp, 28)
   38900       405325 :          pack_tmp = ISHFT(pack_tmp, -28)
   38901       405325 :          idata = idata + 1
   38902       405325 :          data_tmp = full_data(idata)
   38903       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38904       405325 :          data_tmp = IAND(data_tmp, mask_left(28))
   38905       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38906       405325 :          ipack = ipack + 1
   38907       405325 :          packed_data(ipack) = pack_tmp
   38908       405325 :          data_tmp = full_data(idata)
   38909       405325 :          pack_tmp = ISHFT(data_tmp, 43)
   38910       405325 :          pack_tmp = ISHFT(pack_tmp, -43)
   38911       405325 :          idata = idata + 1
   38912       405325 :          data_tmp = full_data(idata)
   38913       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38914       405325 :          data_tmp = IAND(data_tmp, mask_left(43))
   38915       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38916       405325 :          ipack = ipack + 1
   38917       405325 :          packed_data(ipack) = pack_tmp
   38918       405325 :          data_tmp = full_data(idata)
   38919       405325 :          pack_tmp = ISHFT(data_tmp, 58)
   38920       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   38921       405325 :          idata = idata + 1
   38922       405325 :          data_tmp = full_data(idata)
   38923       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38924       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38925       405325 :          pack_tmp = ISHFT(pack_tmp, -9)
   38926       405325 :          idata = idata + 1
   38927       405325 :          data_tmp = full_data(idata)
   38928       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38929       405325 :          data_tmp = IAND(data_tmp, mask_left(9))
   38930       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38931       405325 :          ipack = ipack + 1
   38932       405325 :          packed_data(ipack) = pack_tmp
   38933       405325 :          data_tmp = full_data(idata)
   38934       405325 :          pack_tmp = ISHFT(data_tmp, 24)
   38935       405325 :          pack_tmp = ISHFT(pack_tmp, -24)
   38936       405325 :          idata = idata + 1
   38937       405325 :          data_tmp = full_data(idata)
   38938       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38939       405325 :          data_tmp = IAND(data_tmp, mask_left(24))
   38940       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38941       405325 :          ipack = ipack + 1
   38942       405325 :          packed_data(ipack) = pack_tmp
   38943       405325 :          data_tmp = full_data(idata)
   38944       405325 :          pack_tmp = ISHFT(data_tmp, 39)
   38945       405325 :          pack_tmp = ISHFT(pack_tmp, -39)
   38946       405325 :          idata = idata + 1
   38947       405325 :          data_tmp = full_data(idata)
   38948       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38949       405325 :          data_tmp = IAND(data_tmp, mask_left(39))
   38950       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38951       405325 :          ipack = ipack + 1
   38952       405325 :          packed_data(ipack) = pack_tmp
   38953       405325 :          data_tmp = full_data(idata)
   38954       405325 :          pack_tmp = ISHFT(data_tmp, 54)
   38955       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   38956       405325 :          idata = idata + 1
   38957       405325 :          data_tmp = full_data(idata)
   38958       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38959       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38960       405325 :          pack_tmp = ISHFT(pack_tmp, -5)
   38961       405325 :          idata = idata + 1
   38962       405325 :          data_tmp = full_data(idata)
   38963       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38964       405325 :          data_tmp = IAND(data_tmp, mask_left(5))
   38965       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38966       405325 :          ipack = ipack + 1
   38967       405325 :          packed_data(ipack) = pack_tmp
   38968       405325 :          data_tmp = full_data(idata)
   38969       405325 :          pack_tmp = ISHFT(data_tmp, 20)
   38970       405325 :          pack_tmp = ISHFT(pack_tmp, -20)
   38971       405325 :          idata = idata + 1
   38972       405325 :          data_tmp = full_data(idata)
   38973       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38974       405325 :          data_tmp = IAND(data_tmp, mask_left(20))
   38975       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38976       405325 :          ipack = ipack + 1
   38977       405325 :          packed_data(ipack) = pack_tmp
   38978       405325 :          data_tmp = full_data(idata)
   38979       405325 :          pack_tmp = ISHFT(data_tmp, 35)
   38980       405325 :          pack_tmp = ISHFT(pack_tmp, -35)
   38981       405325 :          idata = idata + 1
   38982       405325 :          data_tmp = full_data(idata)
   38983       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38984       405325 :          data_tmp = IAND(data_tmp, mask_left(35))
   38985       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38986       405325 :          ipack = ipack + 1
   38987       405325 :          packed_data(ipack) = pack_tmp
   38988       405325 :          data_tmp = full_data(idata)
   38989       405325 :          pack_tmp = ISHFT(data_tmp, 50)
   38990       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   38991       405325 :          idata = idata + 1
   38992       405325 :          data_tmp = full_data(idata)
   38993       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38994       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   38995       405325 :          pack_tmp = ISHFT(pack_tmp, -1)
   38996       405325 :          idata = idata + 1
   38997       405325 :          data_tmp = full_data(idata)
   38998       405325 :          data_tmp = ISHFT(data_tmp, 15)
   38999       405325 :          data_tmp = IAND(data_tmp, mask_left(1))
   39000       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39001       405325 :          ipack = ipack + 1
   39002       405325 :          packed_data(ipack) = pack_tmp
   39003       405325 :          data_tmp = full_data(idata)
   39004       405325 :          pack_tmp = ISHFT(data_tmp, 16)
   39005       405325 :          pack_tmp = ISHFT(pack_tmp, -16)
   39006       405325 :          idata = idata + 1
   39007       405325 :          data_tmp = full_data(idata)
   39008       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39009       405325 :          data_tmp = IAND(data_tmp, mask_left(16))
   39010       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39011       405325 :          ipack = ipack + 1
   39012       405325 :          packed_data(ipack) = pack_tmp
   39013       405325 :          data_tmp = full_data(idata)
   39014       405325 :          pack_tmp = ISHFT(data_tmp, 31)
   39015       405325 :          pack_tmp = ISHFT(pack_tmp, -31)
   39016       405325 :          idata = idata + 1
   39017       405325 :          data_tmp = full_data(idata)
   39018       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39019       405325 :          data_tmp = IAND(data_tmp, mask_left(31))
   39020       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39021       405325 :          ipack = ipack + 1
   39022       405325 :          packed_data(ipack) = pack_tmp
   39023       405325 :          data_tmp = full_data(idata)
   39024       405325 :          pack_tmp = ISHFT(data_tmp, 46)
   39025       405325 :          pack_tmp = ISHFT(pack_tmp, -46)
   39026       405325 :          idata = idata + 1
   39027       405325 :          data_tmp = full_data(idata)
   39028       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39029       405325 :          data_tmp = IAND(data_tmp, mask_left(46))
   39030       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39031       405325 :          ipack = ipack + 1
   39032       405325 :          packed_data(ipack) = pack_tmp
   39033       405325 :          data_tmp = full_data(idata)
   39034       405325 :          pack_tmp = ISHFT(data_tmp, 61)
   39035       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   39036       405325 :          idata = idata + 1
   39037       405325 :          data_tmp = full_data(idata)
   39038       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39039       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39040       405325 :          pack_tmp = ISHFT(pack_tmp, -12)
   39041       405325 :          idata = idata + 1
   39042       405325 :          data_tmp = full_data(idata)
   39043       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39044       405325 :          data_tmp = IAND(data_tmp, mask_left(12))
   39045       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39046       405325 :          ipack = ipack + 1
   39047       405325 :          packed_data(ipack) = pack_tmp
   39048       405325 :          data_tmp = full_data(idata)
   39049       405325 :          pack_tmp = ISHFT(data_tmp, 27)
   39050       405325 :          pack_tmp = ISHFT(pack_tmp, -27)
   39051       405325 :          idata = idata + 1
   39052       405325 :          data_tmp = full_data(idata)
   39053       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39054       405325 :          data_tmp = IAND(data_tmp, mask_left(27))
   39055       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39056       405325 :          ipack = ipack + 1
   39057       405325 :          packed_data(ipack) = pack_tmp
   39058       405325 :          data_tmp = full_data(idata)
   39059       405325 :          pack_tmp = ISHFT(data_tmp, 42)
   39060       405325 :          pack_tmp = ISHFT(pack_tmp, -42)
   39061       405325 :          idata = idata + 1
   39062       405325 :          data_tmp = full_data(idata)
   39063       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39064       405325 :          data_tmp = IAND(data_tmp, mask_left(42))
   39065       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39066       405325 :          ipack = ipack + 1
   39067       405325 :          packed_data(ipack) = pack_tmp
   39068       405325 :          data_tmp = full_data(idata)
   39069       405325 :          pack_tmp = ISHFT(data_tmp, 57)
   39070       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   39071       405325 :          idata = idata + 1
   39072       405325 :          data_tmp = full_data(idata)
   39073       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39074       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39075       405325 :          pack_tmp = ISHFT(pack_tmp, -8)
   39076       405325 :          idata = idata + 1
   39077       405325 :          data_tmp = full_data(idata)
   39078       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39079       405325 :          data_tmp = IAND(data_tmp, mask_left(8))
   39080       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39081       405325 :          ipack = ipack + 1
   39082       405325 :          packed_data(ipack) = pack_tmp
   39083       405325 :          data_tmp = full_data(idata)
   39084       405325 :          pack_tmp = ISHFT(data_tmp, 23)
   39085       405325 :          pack_tmp = ISHFT(pack_tmp, -23)
   39086       405325 :          idata = idata + 1
   39087       405325 :          data_tmp = full_data(idata)
   39088       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39089       405325 :          data_tmp = IAND(data_tmp, mask_left(23))
   39090       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39091       405325 :          ipack = ipack + 1
   39092       405325 :          packed_data(ipack) = pack_tmp
   39093       405325 :          data_tmp = full_data(idata)
   39094       405325 :          pack_tmp = ISHFT(data_tmp, 38)
   39095       405325 :          pack_tmp = ISHFT(pack_tmp, -38)
   39096       405325 :          idata = idata + 1
   39097       405325 :          data_tmp = full_data(idata)
   39098       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39099       405325 :          data_tmp = IAND(data_tmp, mask_left(38))
   39100       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39101       405325 :          ipack = ipack + 1
   39102       405325 :          packed_data(ipack) = pack_tmp
   39103       405325 :          data_tmp = full_data(idata)
   39104       405325 :          pack_tmp = ISHFT(data_tmp, 53)
   39105       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   39106       405325 :          idata = idata + 1
   39107       405325 :          data_tmp = full_data(idata)
   39108       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39109       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39110       405325 :          pack_tmp = ISHFT(pack_tmp, -4)
   39111       405325 :          idata = idata + 1
   39112       405325 :          data_tmp = full_data(idata)
   39113       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39114       405325 :          data_tmp = IAND(data_tmp, mask_left(4))
   39115       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39116       405325 :          ipack = ipack + 1
   39117       405325 :          packed_data(ipack) = pack_tmp
   39118       405325 :          data_tmp = full_data(idata)
   39119       405325 :          pack_tmp = ISHFT(data_tmp, 19)
   39120       405325 :          pack_tmp = ISHFT(pack_tmp, -19)
   39121       405325 :          idata = idata + 1
   39122       405325 :          data_tmp = full_data(idata)
   39123       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39124       405325 :          data_tmp = IAND(data_tmp, mask_left(19))
   39125       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39126       405325 :          ipack = ipack + 1
   39127       405325 :          packed_data(ipack) = pack_tmp
   39128       405325 :          data_tmp = full_data(idata)
   39129       405325 :          pack_tmp = ISHFT(data_tmp, 34)
   39130       405325 :          pack_tmp = ISHFT(pack_tmp, -34)
   39131       405325 :          idata = idata + 1
   39132       405325 :          data_tmp = full_data(idata)
   39133       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39134       405325 :          data_tmp = IAND(data_tmp, mask_left(34))
   39135       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39136       405325 :          ipack = ipack + 1
   39137       405325 :          packed_data(ipack) = pack_tmp
   39138       405325 :          data_tmp = full_data(idata)
   39139       405325 :          pack_tmp = ISHFT(data_tmp, 49)
   39140       405325 :          pack_tmp = ISHFT(pack_tmp, -49)
   39141       405325 :          idata = idata + 1
   39142       405325 :          data_tmp = full_data(idata)
   39143       405325 :          data_tmp = ISHFT(data_tmp, 15)
   39144       405325 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39145              :          pack_tmp = ISHFT(pack_tmp, 0)
   39146       405325 :          pack_tmp = ISHFT(pack_tmp, 0)
   39147       405325 :          ipack = ipack + 1
   39148       405329 :          packed_data(ipack) = pack_tmp
   39149              :       END DO
   39150        26288 :       IF (Ndata_rep < Ndata) THEN
   39151         1798 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   39152              :       END IF
   39153        26288 :    END SUBROUTINE ints2bits_49
   39154              : 
   39155              : ! **************************************************************************************************
   39156              : !> \brief ...
   39157              : !> \param Ndata ...
   39158              : !> \param packed_data ...
   39159              : !> \param full_data ...
   39160              : ! **************************************************************************************************
   39161       104755 :    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       104755 :       ipack = 0
   39172       104755 :       idata = 0
   39173       104755 :       pack_tmp = 0
   39174       104755 :       Ndata_rep = (Ndata/64)*64
   39175       104755 :       DO kdata = 1, Ndata_rep, 64
   39176      1624145 :          idata = idata + 1
   39177      1624145 :          data_tmp = ISHFT(pack_tmp, 49)
   39178      1624145 :          ipack = ipack + 1
   39179      1624145 :          pack_tmp = packed_data(ipack)
   39180      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   39181      1624145 :          pack_tmp = ISHFT(pack_tmp, -49)
   39182      1624145 :          idata = idata + 1
   39183      1624145 :          data_tmp = ISHFT(pack_tmp, 34)
   39184      1624145 :          ipack = ipack + 1
   39185      1624145 :          pack_tmp = packed_data(ipack)
   39186      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   39187      1624145 :          pack_tmp = ISHFT(pack_tmp, -34)
   39188      1624145 :          idata = idata + 1
   39189      1624145 :          data_tmp = ISHFT(pack_tmp, 19)
   39190      1624145 :          ipack = ipack + 1
   39191      1624145 :          pack_tmp = packed_data(ipack)
   39192      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   39193      1624145 :          pack_tmp = ISHFT(pack_tmp, -19)
   39194      1624145 :          idata = idata + 1
   39195      1624145 :          data_tmp = ISHFT(pack_tmp, 4)
   39196      1624145 :          ipack = ipack + 1
   39197      1624145 :          pack_tmp = packed_data(ipack)
   39198      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   39199      1624145 :          pack_tmp = ISHFT(pack_tmp, -4)
   39200      1624145 :          idata = idata + 1
   39201      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39202      1624145 :          full_data(idata) = data_tmp
   39203      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39204      1624145 :          idata = idata + 1
   39205      1624145 :          data_tmp = ISHFT(pack_tmp, 38)
   39206      1624145 :          ipack = ipack + 1
   39207      1624145 :          pack_tmp = packed_data(ipack)
   39208      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   39209      1624145 :          pack_tmp = ISHFT(pack_tmp, -38)
   39210      1624145 :          idata = idata + 1
   39211      1624145 :          data_tmp = ISHFT(pack_tmp, 23)
   39212      1624145 :          ipack = ipack + 1
   39213      1624145 :          pack_tmp = packed_data(ipack)
   39214      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   39215      1624145 :          pack_tmp = ISHFT(pack_tmp, -23)
   39216      1624145 :          idata = idata + 1
   39217      1624145 :          data_tmp = ISHFT(pack_tmp, 8)
   39218      1624145 :          ipack = ipack + 1
   39219      1624145 :          pack_tmp = packed_data(ipack)
   39220      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   39221      1624145 :          pack_tmp = ISHFT(pack_tmp, -8)
   39222      1624145 :          idata = idata + 1
   39223      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39224      1624145 :          full_data(idata) = data_tmp
   39225      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39226      1624145 :          idata = idata + 1
   39227      1624145 :          data_tmp = ISHFT(pack_tmp, 42)
   39228      1624145 :          ipack = ipack + 1
   39229      1624145 :          pack_tmp = packed_data(ipack)
   39230      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   39231      1624145 :          pack_tmp = ISHFT(pack_tmp, -42)
   39232      1624145 :          idata = idata + 1
   39233      1624145 :          data_tmp = ISHFT(pack_tmp, 27)
   39234      1624145 :          ipack = ipack + 1
   39235      1624145 :          pack_tmp = packed_data(ipack)
   39236      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   39237      1624145 :          pack_tmp = ISHFT(pack_tmp, -27)
   39238      1624145 :          idata = idata + 1
   39239      1624145 :          data_tmp = ISHFT(pack_tmp, 12)
   39240      1624145 :          ipack = ipack + 1
   39241      1624145 :          pack_tmp = packed_data(ipack)
   39242      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   39243      1624145 :          pack_tmp = ISHFT(pack_tmp, -12)
   39244      1624145 :          idata = idata + 1
   39245      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39246      1624145 :          full_data(idata) = data_tmp
   39247      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39248      1624145 :          idata = idata + 1
   39249      1624145 :          data_tmp = ISHFT(pack_tmp, 46)
   39250      1624145 :          ipack = ipack + 1
   39251      1624145 :          pack_tmp = packed_data(ipack)
   39252      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   39253      1624145 :          pack_tmp = ISHFT(pack_tmp, -46)
   39254      1624145 :          idata = idata + 1
   39255      1624145 :          data_tmp = ISHFT(pack_tmp, 31)
   39256      1624145 :          ipack = ipack + 1
   39257      1624145 :          pack_tmp = packed_data(ipack)
   39258      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   39259      1624145 :          pack_tmp = ISHFT(pack_tmp, -31)
   39260      1624145 :          idata = idata + 1
   39261      1624145 :          data_tmp = ISHFT(pack_tmp, 16)
   39262      1624145 :          ipack = ipack + 1
   39263      1624145 :          pack_tmp = packed_data(ipack)
   39264      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   39265      1624145 :          pack_tmp = ISHFT(pack_tmp, -16)
   39266      1624145 :          idata = idata + 1
   39267      1624145 :          data_tmp = ISHFT(pack_tmp, 1)
   39268      1624145 :          ipack = ipack + 1
   39269      1624145 :          pack_tmp = packed_data(ipack)
   39270      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   39271      1624145 :          pack_tmp = ISHFT(pack_tmp, -1)
   39272      1624145 :          idata = idata + 1
   39273      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39274      1624145 :          full_data(idata) = data_tmp
   39275      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39276      1624145 :          idata = idata + 1
   39277      1624145 :          data_tmp = ISHFT(pack_tmp, 35)
   39278      1624145 :          ipack = ipack + 1
   39279      1624145 :          pack_tmp = packed_data(ipack)
   39280      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   39281      1624145 :          pack_tmp = ISHFT(pack_tmp, -35)
   39282      1624145 :          idata = idata + 1
   39283      1624145 :          data_tmp = ISHFT(pack_tmp, 20)
   39284      1624145 :          ipack = ipack + 1
   39285      1624145 :          pack_tmp = packed_data(ipack)
   39286      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   39287      1624145 :          pack_tmp = ISHFT(pack_tmp, -20)
   39288      1624145 :          idata = idata + 1
   39289      1624145 :          data_tmp = ISHFT(pack_tmp, 5)
   39290      1624145 :          ipack = ipack + 1
   39291      1624145 :          pack_tmp = packed_data(ipack)
   39292      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   39293      1624145 :          pack_tmp = ISHFT(pack_tmp, -5)
   39294      1624145 :          idata = idata + 1
   39295      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39296      1624145 :          full_data(idata) = data_tmp
   39297      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39298      1624145 :          idata = idata + 1
   39299      1624145 :          data_tmp = ISHFT(pack_tmp, 39)
   39300      1624145 :          ipack = ipack + 1
   39301      1624145 :          pack_tmp = packed_data(ipack)
   39302      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   39303      1624145 :          pack_tmp = ISHFT(pack_tmp, -39)
   39304      1624145 :          idata = idata + 1
   39305      1624145 :          data_tmp = ISHFT(pack_tmp, 24)
   39306      1624145 :          ipack = ipack + 1
   39307      1624145 :          pack_tmp = packed_data(ipack)
   39308      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   39309      1624145 :          pack_tmp = ISHFT(pack_tmp, -24)
   39310      1624145 :          idata = idata + 1
   39311      1624145 :          data_tmp = ISHFT(pack_tmp, 9)
   39312      1624145 :          ipack = ipack + 1
   39313      1624145 :          pack_tmp = packed_data(ipack)
   39314      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   39315      1624145 :          pack_tmp = ISHFT(pack_tmp, -9)
   39316      1624145 :          idata = idata + 1
   39317      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39318      1624145 :          full_data(idata) = data_tmp
   39319      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39320      1624145 :          idata = idata + 1
   39321      1624145 :          data_tmp = ISHFT(pack_tmp, 43)
   39322      1624145 :          ipack = ipack + 1
   39323      1624145 :          pack_tmp = packed_data(ipack)
   39324      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   39325      1624145 :          pack_tmp = ISHFT(pack_tmp, -43)
   39326      1624145 :          idata = idata + 1
   39327      1624145 :          data_tmp = ISHFT(pack_tmp, 28)
   39328      1624145 :          ipack = ipack + 1
   39329      1624145 :          pack_tmp = packed_data(ipack)
   39330      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   39331      1624145 :          pack_tmp = ISHFT(pack_tmp, -28)
   39332      1624145 :          idata = idata + 1
   39333      1624145 :          data_tmp = ISHFT(pack_tmp, 13)
   39334      1624145 :          ipack = ipack + 1
   39335      1624145 :          pack_tmp = packed_data(ipack)
   39336      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   39337      1624145 :          pack_tmp = ISHFT(pack_tmp, -13)
   39338      1624145 :          idata = idata + 1
   39339      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39340      1624145 :          full_data(idata) = data_tmp
   39341      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39342      1624145 :          idata = idata + 1
   39343      1624145 :          data_tmp = ISHFT(pack_tmp, 47)
   39344      1624145 :          ipack = ipack + 1
   39345      1624145 :          pack_tmp = packed_data(ipack)
   39346      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   39347      1624145 :          pack_tmp = ISHFT(pack_tmp, -47)
   39348      1624145 :          idata = idata + 1
   39349      1624145 :          data_tmp = ISHFT(pack_tmp, 32)
   39350      1624145 :          ipack = ipack + 1
   39351      1624145 :          pack_tmp = packed_data(ipack)
   39352      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   39353      1624145 :          pack_tmp = ISHFT(pack_tmp, -32)
   39354      1624145 :          idata = idata + 1
   39355      1624145 :          data_tmp = ISHFT(pack_tmp, 17)
   39356      1624145 :          ipack = ipack + 1
   39357      1624145 :          pack_tmp = packed_data(ipack)
   39358      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   39359      1624145 :          pack_tmp = ISHFT(pack_tmp, -17)
   39360      1624145 :          idata = idata + 1
   39361      1624145 :          data_tmp = ISHFT(pack_tmp, 2)
   39362      1624145 :          ipack = ipack + 1
   39363      1624145 :          pack_tmp = packed_data(ipack)
   39364      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   39365      1624145 :          pack_tmp = ISHFT(pack_tmp, -2)
   39366      1624145 :          idata = idata + 1
   39367      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39368      1624145 :          full_data(idata) = data_tmp
   39369      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39370      1624145 :          idata = idata + 1
   39371      1624145 :          data_tmp = ISHFT(pack_tmp, 36)
   39372      1624145 :          ipack = ipack + 1
   39373      1624145 :          pack_tmp = packed_data(ipack)
   39374      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   39375      1624145 :          pack_tmp = ISHFT(pack_tmp, -36)
   39376      1624145 :          idata = idata + 1
   39377      1624145 :          data_tmp = ISHFT(pack_tmp, 21)
   39378      1624145 :          ipack = ipack + 1
   39379      1624145 :          pack_tmp = packed_data(ipack)
   39380      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   39381      1624145 :          pack_tmp = ISHFT(pack_tmp, -21)
   39382      1624145 :          idata = idata + 1
   39383      1624145 :          data_tmp = ISHFT(pack_tmp, 6)
   39384      1624145 :          ipack = ipack + 1
   39385      1624145 :          pack_tmp = packed_data(ipack)
   39386      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   39387      1624145 :          pack_tmp = ISHFT(pack_tmp, -6)
   39388      1624145 :          idata = idata + 1
   39389      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39390      1624145 :          full_data(idata) = data_tmp
   39391      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39392      1624145 :          idata = idata + 1
   39393      1624145 :          data_tmp = ISHFT(pack_tmp, 40)
   39394      1624145 :          ipack = ipack + 1
   39395      1624145 :          pack_tmp = packed_data(ipack)
   39396      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   39397      1624145 :          pack_tmp = ISHFT(pack_tmp, -40)
   39398      1624145 :          idata = idata + 1
   39399      1624145 :          data_tmp = ISHFT(pack_tmp, 25)
   39400      1624145 :          ipack = ipack + 1
   39401      1624145 :          pack_tmp = packed_data(ipack)
   39402      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   39403      1624145 :          pack_tmp = ISHFT(pack_tmp, -25)
   39404      1624145 :          idata = idata + 1
   39405      1624145 :          data_tmp = ISHFT(pack_tmp, 10)
   39406      1624145 :          ipack = ipack + 1
   39407      1624145 :          pack_tmp = packed_data(ipack)
   39408      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   39409      1624145 :          pack_tmp = ISHFT(pack_tmp, -10)
   39410      1624145 :          idata = idata + 1
   39411      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39412      1624145 :          full_data(idata) = data_tmp
   39413      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39414      1624145 :          idata = idata + 1
   39415      1624145 :          data_tmp = ISHFT(pack_tmp, 44)
   39416      1624145 :          ipack = ipack + 1
   39417      1624145 :          pack_tmp = packed_data(ipack)
   39418      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   39419      1624145 :          pack_tmp = ISHFT(pack_tmp, -44)
   39420      1624145 :          idata = idata + 1
   39421      1624145 :          data_tmp = ISHFT(pack_tmp, 29)
   39422      1624145 :          ipack = ipack + 1
   39423      1624145 :          pack_tmp = packed_data(ipack)
   39424      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   39425      1624145 :          pack_tmp = ISHFT(pack_tmp, -29)
   39426      1624145 :          idata = idata + 1
   39427      1624145 :          data_tmp = ISHFT(pack_tmp, 14)
   39428      1624145 :          ipack = ipack + 1
   39429      1624145 :          pack_tmp = packed_data(ipack)
   39430      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   39431      1624145 :          pack_tmp = ISHFT(pack_tmp, -14)
   39432      1624145 :          idata = idata + 1
   39433      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39434      1624145 :          full_data(idata) = data_tmp
   39435      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39436      1624145 :          idata = idata + 1
   39437      1624145 :          data_tmp = ISHFT(pack_tmp, 48)
   39438      1624145 :          ipack = ipack + 1
   39439      1624145 :          pack_tmp = packed_data(ipack)
   39440      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   39441      1624145 :          pack_tmp = ISHFT(pack_tmp, -48)
   39442      1624145 :          idata = idata + 1
   39443      1624145 :          data_tmp = ISHFT(pack_tmp, 33)
   39444      1624145 :          ipack = ipack + 1
   39445      1624145 :          pack_tmp = packed_data(ipack)
   39446      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   39447      1624145 :          pack_tmp = ISHFT(pack_tmp, -33)
   39448      1624145 :          idata = idata + 1
   39449      1624145 :          data_tmp = ISHFT(pack_tmp, 18)
   39450      1624145 :          ipack = ipack + 1
   39451      1624145 :          pack_tmp = packed_data(ipack)
   39452      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   39453      1624145 :          pack_tmp = ISHFT(pack_tmp, -18)
   39454      1624145 :          idata = idata + 1
   39455      1624145 :          data_tmp = ISHFT(pack_tmp, 3)
   39456      1624145 :          ipack = ipack + 1
   39457      1624145 :          pack_tmp = packed_data(ipack)
   39458      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   39459      1624145 :          pack_tmp = ISHFT(pack_tmp, -3)
   39460      1624145 :          idata = idata + 1
   39461      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39462      1624145 :          full_data(idata) = data_tmp
   39463      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39464      1624145 :          idata = idata + 1
   39465      1624145 :          data_tmp = ISHFT(pack_tmp, 37)
   39466      1624145 :          ipack = ipack + 1
   39467      1624145 :          pack_tmp = packed_data(ipack)
   39468      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   39469      1624145 :          pack_tmp = ISHFT(pack_tmp, -37)
   39470      1624145 :          idata = idata + 1
   39471      1624145 :          data_tmp = ISHFT(pack_tmp, 22)
   39472      1624145 :          ipack = ipack + 1
   39473      1624145 :          pack_tmp = packed_data(ipack)
   39474      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   39475      1624145 :          pack_tmp = ISHFT(pack_tmp, -22)
   39476      1624145 :          idata = idata + 1
   39477      1624145 :          data_tmp = ISHFT(pack_tmp, 7)
   39478      1624145 :          ipack = ipack + 1
   39479      1624145 :          pack_tmp = packed_data(ipack)
   39480      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   39481      1624145 :          pack_tmp = ISHFT(pack_tmp, -7)
   39482      1624145 :          idata = idata + 1
   39483      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39484      1624145 :          full_data(idata) = data_tmp
   39485      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39486      1624145 :          idata = idata + 1
   39487      1624145 :          data_tmp = ISHFT(pack_tmp, 41)
   39488      1624145 :          ipack = ipack + 1
   39489      1624145 :          pack_tmp = packed_data(ipack)
   39490      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   39491      1624145 :          pack_tmp = ISHFT(pack_tmp, -41)
   39492      1624145 :          idata = idata + 1
   39493      1624145 :          data_tmp = ISHFT(pack_tmp, 26)
   39494      1624145 :          ipack = ipack + 1
   39495      1624145 :          pack_tmp = packed_data(ipack)
   39496      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   39497      1624145 :          pack_tmp = ISHFT(pack_tmp, -26)
   39498      1624145 :          idata = idata + 1
   39499      1624145 :          data_tmp = ISHFT(pack_tmp, 11)
   39500      1624145 :          ipack = ipack + 1
   39501      1624145 :          pack_tmp = packed_data(ipack)
   39502      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   39503      1624145 :          pack_tmp = ISHFT(pack_tmp, -11)
   39504      1624145 :          idata = idata + 1
   39505      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39506      1624145 :          full_data(idata) = data_tmp
   39507      1624145 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39508      1624145 :          idata = idata + 1
   39509      1624145 :          data_tmp = ISHFT(pack_tmp, 45)
   39510      1624145 :          ipack = ipack + 1
   39511      1624145 :          pack_tmp = packed_data(ipack)
   39512      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   39513      1624145 :          pack_tmp = ISHFT(pack_tmp, -45)
   39514      1624145 :          idata = idata + 1
   39515      1624145 :          data_tmp = ISHFT(pack_tmp, 30)
   39516      1624145 :          ipack = ipack + 1
   39517      1624145 :          pack_tmp = packed_data(ipack)
   39518      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   39519      1624145 :          pack_tmp = ISHFT(pack_tmp, -30)
   39520      1624145 :          idata = idata + 1
   39521      1624145 :          data_tmp = ISHFT(pack_tmp, 15)
   39522      1624145 :          ipack = ipack + 1
   39523      1624145 :          pack_tmp = packed_data(ipack)
   39524      1624145 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   39525      1624145 :          pack_tmp = ISHFT(pack_tmp, -15)
   39526      1624145 :          idata = idata + 1
   39527      1624145 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   39528      1624145 :          full_data(idata) = data_tmp
   39529      1624161 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   39530              :       END DO
   39531       104755 :       IF (Ndata_rep < Ndata) THEN
   39532         6110 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   39533              :       END IF
   39534       104755 :    END SUBROUTINE bits2ints_49
   39535              : 
   39536              : ! **************************************************************************************************
   39537              : !> \brief ...
   39538              : !> \param Ndata ...
   39539              : !> \param packed_data ...
   39540              : !> \param full_data ...
   39541              : ! **************************************************************************************************
   39542        25866 :    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        25866 :       idata = 0
   39553        25866 :       ipack = 0
   39554        25866 :       Ndata_rep = (Ndata/64)*64
   39555        25866 :       DO kdata = 1, Ndata_rep, 64
   39556       401871 :          pack_tmp = 0
   39557       401871 :          idata = idata + 1
   39558       401871 :          data_tmp = full_data(idata)
   39559       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39560       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39561       401871 :          pack_tmp = ISHFT(pack_tmp, -14)
   39562       401871 :          idata = idata + 1
   39563       401871 :          data_tmp = full_data(idata)
   39564       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39565       401871 :          data_tmp = IAND(data_tmp, mask_left(14))
   39566       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39567       401871 :          ipack = ipack + 1
   39568       401871 :          packed_data(ipack) = pack_tmp
   39569       401871 :          data_tmp = full_data(idata)
   39570       401871 :          pack_tmp = ISHFT(data_tmp, 28)
   39571       401871 :          pack_tmp = ISHFT(pack_tmp, -28)
   39572       401871 :          idata = idata + 1
   39573       401871 :          data_tmp = full_data(idata)
   39574       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39575       401871 :          data_tmp = IAND(data_tmp, mask_left(28))
   39576       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39577       401871 :          ipack = ipack + 1
   39578       401871 :          packed_data(ipack) = pack_tmp
   39579       401871 :          data_tmp = full_data(idata)
   39580       401871 :          pack_tmp = ISHFT(data_tmp, 42)
   39581       401871 :          pack_tmp = ISHFT(pack_tmp, -42)
   39582       401871 :          idata = idata + 1
   39583       401871 :          data_tmp = full_data(idata)
   39584       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39585       401871 :          data_tmp = IAND(data_tmp, mask_left(42))
   39586       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39587       401871 :          ipack = ipack + 1
   39588       401871 :          packed_data(ipack) = pack_tmp
   39589       401871 :          data_tmp = full_data(idata)
   39590       401871 :          pack_tmp = ISHFT(data_tmp, 56)
   39591       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   39592       401871 :          idata = idata + 1
   39593       401871 :          data_tmp = full_data(idata)
   39594       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39595       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39596       401871 :          pack_tmp = ISHFT(pack_tmp, -6)
   39597       401871 :          idata = idata + 1
   39598       401871 :          data_tmp = full_data(idata)
   39599       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39600       401871 :          data_tmp = IAND(data_tmp, mask_left(6))
   39601       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39602       401871 :          ipack = ipack + 1
   39603       401871 :          packed_data(ipack) = pack_tmp
   39604       401871 :          data_tmp = full_data(idata)
   39605       401871 :          pack_tmp = ISHFT(data_tmp, 20)
   39606       401871 :          pack_tmp = ISHFT(pack_tmp, -20)
   39607       401871 :          idata = idata + 1
   39608       401871 :          data_tmp = full_data(idata)
   39609       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39610       401871 :          data_tmp = IAND(data_tmp, mask_left(20))
   39611       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39612       401871 :          ipack = ipack + 1
   39613       401871 :          packed_data(ipack) = pack_tmp
   39614       401871 :          data_tmp = full_data(idata)
   39615       401871 :          pack_tmp = ISHFT(data_tmp, 34)
   39616       401871 :          pack_tmp = ISHFT(pack_tmp, -34)
   39617       401871 :          idata = idata + 1
   39618       401871 :          data_tmp = full_data(idata)
   39619       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39620       401871 :          data_tmp = IAND(data_tmp, mask_left(34))
   39621       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39622       401871 :          ipack = ipack + 1
   39623       401871 :          packed_data(ipack) = pack_tmp
   39624       401871 :          data_tmp = full_data(idata)
   39625       401871 :          pack_tmp = ISHFT(data_tmp, 48)
   39626       401871 :          pack_tmp = ISHFT(pack_tmp, -48)
   39627       401871 :          idata = idata + 1
   39628       401871 :          data_tmp = full_data(idata)
   39629       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39630       401871 :          data_tmp = IAND(data_tmp, mask_left(48))
   39631       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39632       401871 :          ipack = ipack + 1
   39633       401871 :          packed_data(ipack) = pack_tmp
   39634       401871 :          data_tmp = full_data(idata)
   39635       401871 :          pack_tmp = ISHFT(data_tmp, 62)
   39636       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   39637       401871 :          idata = idata + 1
   39638       401871 :          data_tmp = full_data(idata)
   39639       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39640       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39641       401871 :          pack_tmp = ISHFT(pack_tmp, -12)
   39642       401871 :          idata = idata + 1
   39643       401871 :          data_tmp = full_data(idata)
   39644       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39645       401871 :          data_tmp = IAND(data_tmp, mask_left(12))
   39646       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39647       401871 :          ipack = ipack + 1
   39648       401871 :          packed_data(ipack) = pack_tmp
   39649       401871 :          data_tmp = full_data(idata)
   39650       401871 :          pack_tmp = ISHFT(data_tmp, 26)
   39651       401871 :          pack_tmp = ISHFT(pack_tmp, -26)
   39652       401871 :          idata = idata + 1
   39653       401871 :          data_tmp = full_data(idata)
   39654       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39655       401871 :          data_tmp = IAND(data_tmp, mask_left(26))
   39656       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39657       401871 :          ipack = ipack + 1
   39658       401871 :          packed_data(ipack) = pack_tmp
   39659       401871 :          data_tmp = full_data(idata)
   39660       401871 :          pack_tmp = ISHFT(data_tmp, 40)
   39661       401871 :          pack_tmp = ISHFT(pack_tmp, -40)
   39662       401871 :          idata = idata + 1
   39663       401871 :          data_tmp = full_data(idata)
   39664       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39665       401871 :          data_tmp = IAND(data_tmp, mask_left(40))
   39666       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39667       401871 :          ipack = ipack + 1
   39668       401871 :          packed_data(ipack) = pack_tmp
   39669       401871 :          data_tmp = full_data(idata)
   39670       401871 :          pack_tmp = ISHFT(data_tmp, 54)
   39671       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   39672       401871 :          idata = idata + 1
   39673       401871 :          data_tmp = full_data(idata)
   39674       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39675       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39676       401871 :          pack_tmp = ISHFT(pack_tmp, -4)
   39677       401871 :          idata = idata + 1
   39678       401871 :          data_tmp = full_data(idata)
   39679       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39680       401871 :          data_tmp = IAND(data_tmp, mask_left(4))
   39681       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39682       401871 :          ipack = ipack + 1
   39683       401871 :          packed_data(ipack) = pack_tmp
   39684       401871 :          data_tmp = full_data(idata)
   39685       401871 :          pack_tmp = ISHFT(data_tmp, 18)
   39686       401871 :          pack_tmp = ISHFT(pack_tmp, -18)
   39687       401871 :          idata = idata + 1
   39688       401871 :          data_tmp = full_data(idata)
   39689       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39690       401871 :          data_tmp = IAND(data_tmp, mask_left(18))
   39691       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39692       401871 :          ipack = ipack + 1
   39693       401871 :          packed_data(ipack) = pack_tmp
   39694       401871 :          data_tmp = full_data(idata)
   39695       401871 :          pack_tmp = ISHFT(data_tmp, 32)
   39696       401871 :          pack_tmp = ISHFT(pack_tmp, -32)
   39697       401871 :          idata = idata + 1
   39698       401871 :          data_tmp = full_data(idata)
   39699       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39700       401871 :          data_tmp = IAND(data_tmp, mask_left(32))
   39701       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39702       401871 :          ipack = ipack + 1
   39703       401871 :          packed_data(ipack) = pack_tmp
   39704       401871 :          data_tmp = full_data(idata)
   39705       401871 :          pack_tmp = ISHFT(data_tmp, 46)
   39706       401871 :          pack_tmp = ISHFT(pack_tmp, -46)
   39707       401871 :          idata = idata + 1
   39708       401871 :          data_tmp = full_data(idata)
   39709       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39710       401871 :          data_tmp = IAND(data_tmp, mask_left(46))
   39711       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39712       401871 :          ipack = ipack + 1
   39713       401871 :          packed_data(ipack) = pack_tmp
   39714       401871 :          data_tmp = full_data(idata)
   39715       401871 :          pack_tmp = ISHFT(data_tmp, 60)
   39716       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   39717       401871 :          idata = idata + 1
   39718       401871 :          data_tmp = full_data(idata)
   39719       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39720       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39721       401871 :          pack_tmp = ISHFT(pack_tmp, -10)
   39722       401871 :          idata = idata + 1
   39723       401871 :          data_tmp = full_data(idata)
   39724       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39725       401871 :          data_tmp = IAND(data_tmp, mask_left(10))
   39726       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39727       401871 :          ipack = ipack + 1
   39728       401871 :          packed_data(ipack) = pack_tmp
   39729       401871 :          data_tmp = full_data(idata)
   39730       401871 :          pack_tmp = ISHFT(data_tmp, 24)
   39731       401871 :          pack_tmp = ISHFT(pack_tmp, -24)
   39732       401871 :          idata = idata + 1
   39733       401871 :          data_tmp = full_data(idata)
   39734       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39735       401871 :          data_tmp = IAND(data_tmp, mask_left(24))
   39736       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39737       401871 :          ipack = ipack + 1
   39738       401871 :          packed_data(ipack) = pack_tmp
   39739       401871 :          data_tmp = full_data(idata)
   39740       401871 :          pack_tmp = ISHFT(data_tmp, 38)
   39741       401871 :          pack_tmp = ISHFT(pack_tmp, -38)
   39742       401871 :          idata = idata + 1
   39743       401871 :          data_tmp = full_data(idata)
   39744       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39745       401871 :          data_tmp = IAND(data_tmp, mask_left(38))
   39746       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39747       401871 :          ipack = ipack + 1
   39748       401871 :          packed_data(ipack) = pack_tmp
   39749       401871 :          data_tmp = full_data(idata)
   39750       401871 :          pack_tmp = ISHFT(data_tmp, 52)
   39751       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   39752       401871 :          idata = idata + 1
   39753       401871 :          data_tmp = full_data(idata)
   39754       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39755       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39756       401871 :          pack_tmp = ISHFT(pack_tmp, -2)
   39757       401871 :          idata = idata + 1
   39758       401871 :          data_tmp = full_data(idata)
   39759       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39760       401871 :          data_tmp = IAND(data_tmp, mask_left(2))
   39761       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39762       401871 :          ipack = ipack + 1
   39763       401871 :          packed_data(ipack) = pack_tmp
   39764       401871 :          data_tmp = full_data(idata)
   39765       401871 :          pack_tmp = ISHFT(data_tmp, 16)
   39766       401871 :          pack_tmp = ISHFT(pack_tmp, -16)
   39767       401871 :          idata = idata + 1
   39768       401871 :          data_tmp = full_data(idata)
   39769       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39770       401871 :          data_tmp = IAND(data_tmp, mask_left(16))
   39771       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39772       401871 :          ipack = ipack + 1
   39773       401871 :          packed_data(ipack) = pack_tmp
   39774       401871 :          data_tmp = full_data(idata)
   39775       401871 :          pack_tmp = ISHFT(data_tmp, 30)
   39776       401871 :          pack_tmp = ISHFT(pack_tmp, -30)
   39777       401871 :          idata = idata + 1
   39778       401871 :          data_tmp = full_data(idata)
   39779       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39780       401871 :          data_tmp = IAND(data_tmp, mask_left(30))
   39781       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39782       401871 :          ipack = ipack + 1
   39783       401871 :          packed_data(ipack) = pack_tmp
   39784       401871 :          data_tmp = full_data(idata)
   39785       401871 :          pack_tmp = ISHFT(data_tmp, 44)
   39786       401871 :          pack_tmp = ISHFT(pack_tmp, -44)
   39787       401871 :          idata = idata + 1
   39788       401871 :          data_tmp = full_data(idata)
   39789       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39790       401871 :          data_tmp = IAND(data_tmp, mask_left(44))
   39791       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39792       401871 :          ipack = ipack + 1
   39793       401871 :          packed_data(ipack) = pack_tmp
   39794       401871 :          data_tmp = full_data(idata)
   39795       401871 :          pack_tmp = ISHFT(data_tmp, 58)
   39796       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   39797       401871 :          idata = idata + 1
   39798       401871 :          data_tmp = full_data(idata)
   39799       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39800       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39801       401871 :          pack_tmp = ISHFT(pack_tmp, -8)
   39802       401871 :          idata = idata + 1
   39803       401871 :          data_tmp = full_data(idata)
   39804       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39805       401871 :          data_tmp = IAND(data_tmp, mask_left(8))
   39806       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39807       401871 :          ipack = ipack + 1
   39808       401871 :          packed_data(ipack) = pack_tmp
   39809       401871 :          data_tmp = full_data(idata)
   39810       401871 :          pack_tmp = ISHFT(data_tmp, 22)
   39811       401871 :          pack_tmp = ISHFT(pack_tmp, -22)
   39812       401871 :          idata = idata + 1
   39813       401871 :          data_tmp = full_data(idata)
   39814       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39815       401871 :          data_tmp = IAND(data_tmp, mask_left(22))
   39816       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39817       401871 :          ipack = ipack + 1
   39818       401871 :          packed_data(ipack) = pack_tmp
   39819       401871 :          data_tmp = full_data(idata)
   39820       401871 :          pack_tmp = ISHFT(data_tmp, 36)
   39821       401871 :          pack_tmp = ISHFT(pack_tmp, -36)
   39822       401871 :          idata = idata + 1
   39823       401871 :          data_tmp = full_data(idata)
   39824       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39825       401871 :          data_tmp = IAND(data_tmp, mask_left(36))
   39826       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39827       401871 :          ipack = ipack + 1
   39828       401871 :          packed_data(ipack) = pack_tmp
   39829       401871 :          data_tmp = full_data(idata)
   39830       401871 :          pack_tmp = ISHFT(data_tmp, 50)
   39831       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   39832       401871 :          idata = idata + 1
   39833       401871 :          data_tmp = full_data(idata)
   39834       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39835       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39836       401871 :          pack_tmp = ISHFT(pack_tmp, 0)
   39837       401871 :          idata = idata + 1
   39838       401871 :          data_tmp = full_data(idata)
   39839              :          data_tmp = ISHFT(data_tmp, 14)
   39840       401871 :          data_tmp = IAND(data_tmp, mask_left(0))
   39841       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39842       401871 :          ipack = ipack + 1
   39843       401871 :          packed_data(ipack) = pack_tmp
   39844       401871 :          data_tmp = full_data(idata)
   39845       401871 :          pack_tmp = ISHFT(data_tmp, 14)
   39846       401871 :          pack_tmp = ISHFT(pack_tmp, -14)
   39847       401871 :          idata = idata + 1
   39848       401871 :          data_tmp = full_data(idata)
   39849       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39850       401871 :          data_tmp = IAND(data_tmp, mask_left(14))
   39851       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39852       401871 :          ipack = ipack + 1
   39853       401871 :          packed_data(ipack) = pack_tmp
   39854       401871 :          data_tmp = full_data(idata)
   39855       401871 :          pack_tmp = ISHFT(data_tmp, 28)
   39856       401871 :          pack_tmp = ISHFT(pack_tmp, -28)
   39857       401871 :          idata = idata + 1
   39858       401871 :          data_tmp = full_data(idata)
   39859       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39860       401871 :          data_tmp = IAND(data_tmp, mask_left(28))
   39861       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39862       401871 :          ipack = ipack + 1
   39863       401871 :          packed_data(ipack) = pack_tmp
   39864       401871 :          data_tmp = full_data(idata)
   39865       401871 :          pack_tmp = ISHFT(data_tmp, 42)
   39866       401871 :          pack_tmp = ISHFT(pack_tmp, -42)
   39867       401871 :          idata = idata + 1
   39868       401871 :          data_tmp = full_data(idata)
   39869       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39870       401871 :          data_tmp = IAND(data_tmp, mask_left(42))
   39871       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39872       401871 :          ipack = ipack + 1
   39873       401871 :          packed_data(ipack) = pack_tmp
   39874       401871 :          data_tmp = full_data(idata)
   39875       401871 :          pack_tmp = ISHFT(data_tmp, 56)
   39876       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   39877       401871 :          idata = idata + 1
   39878       401871 :          data_tmp = full_data(idata)
   39879       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39880       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39881       401871 :          pack_tmp = ISHFT(pack_tmp, -6)
   39882       401871 :          idata = idata + 1
   39883       401871 :          data_tmp = full_data(idata)
   39884       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39885       401871 :          data_tmp = IAND(data_tmp, mask_left(6))
   39886       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39887       401871 :          ipack = ipack + 1
   39888       401871 :          packed_data(ipack) = pack_tmp
   39889       401871 :          data_tmp = full_data(idata)
   39890       401871 :          pack_tmp = ISHFT(data_tmp, 20)
   39891       401871 :          pack_tmp = ISHFT(pack_tmp, -20)
   39892       401871 :          idata = idata + 1
   39893       401871 :          data_tmp = full_data(idata)
   39894       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39895       401871 :          data_tmp = IAND(data_tmp, mask_left(20))
   39896       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39897       401871 :          ipack = ipack + 1
   39898       401871 :          packed_data(ipack) = pack_tmp
   39899       401871 :          data_tmp = full_data(idata)
   39900       401871 :          pack_tmp = ISHFT(data_tmp, 34)
   39901       401871 :          pack_tmp = ISHFT(pack_tmp, -34)
   39902       401871 :          idata = idata + 1
   39903       401871 :          data_tmp = full_data(idata)
   39904       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39905       401871 :          data_tmp = IAND(data_tmp, mask_left(34))
   39906       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39907       401871 :          ipack = ipack + 1
   39908       401871 :          packed_data(ipack) = pack_tmp
   39909       401871 :          data_tmp = full_data(idata)
   39910       401871 :          pack_tmp = ISHFT(data_tmp, 48)
   39911       401871 :          pack_tmp = ISHFT(pack_tmp, -48)
   39912       401871 :          idata = idata + 1
   39913       401871 :          data_tmp = full_data(idata)
   39914       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39915       401871 :          data_tmp = IAND(data_tmp, mask_left(48))
   39916       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39917       401871 :          ipack = ipack + 1
   39918       401871 :          packed_data(ipack) = pack_tmp
   39919       401871 :          data_tmp = full_data(idata)
   39920       401871 :          pack_tmp = ISHFT(data_tmp, 62)
   39921       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   39922       401871 :          idata = idata + 1
   39923       401871 :          data_tmp = full_data(idata)
   39924       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39925       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39926       401871 :          pack_tmp = ISHFT(pack_tmp, -12)
   39927       401871 :          idata = idata + 1
   39928       401871 :          data_tmp = full_data(idata)
   39929       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39930       401871 :          data_tmp = IAND(data_tmp, mask_left(12))
   39931       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39932       401871 :          ipack = ipack + 1
   39933       401871 :          packed_data(ipack) = pack_tmp
   39934       401871 :          data_tmp = full_data(idata)
   39935       401871 :          pack_tmp = ISHFT(data_tmp, 26)
   39936       401871 :          pack_tmp = ISHFT(pack_tmp, -26)
   39937       401871 :          idata = idata + 1
   39938       401871 :          data_tmp = full_data(idata)
   39939       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39940       401871 :          data_tmp = IAND(data_tmp, mask_left(26))
   39941       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39942       401871 :          ipack = ipack + 1
   39943       401871 :          packed_data(ipack) = pack_tmp
   39944       401871 :          data_tmp = full_data(idata)
   39945       401871 :          pack_tmp = ISHFT(data_tmp, 40)
   39946       401871 :          pack_tmp = ISHFT(pack_tmp, -40)
   39947       401871 :          idata = idata + 1
   39948       401871 :          data_tmp = full_data(idata)
   39949       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39950       401871 :          data_tmp = IAND(data_tmp, mask_left(40))
   39951       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39952       401871 :          ipack = ipack + 1
   39953       401871 :          packed_data(ipack) = pack_tmp
   39954       401871 :          data_tmp = full_data(idata)
   39955       401871 :          pack_tmp = ISHFT(data_tmp, 54)
   39956       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   39957       401871 :          idata = idata + 1
   39958       401871 :          data_tmp = full_data(idata)
   39959       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39960       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39961       401871 :          pack_tmp = ISHFT(pack_tmp, -4)
   39962       401871 :          idata = idata + 1
   39963       401871 :          data_tmp = full_data(idata)
   39964       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39965       401871 :          data_tmp = IAND(data_tmp, mask_left(4))
   39966       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39967       401871 :          ipack = ipack + 1
   39968       401871 :          packed_data(ipack) = pack_tmp
   39969       401871 :          data_tmp = full_data(idata)
   39970       401871 :          pack_tmp = ISHFT(data_tmp, 18)
   39971       401871 :          pack_tmp = ISHFT(pack_tmp, -18)
   39972       401871 :          idata = idata + 1
   39973       401871 :          data_tmp = full_data(idata)
   39974       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39975       401871 :          data_tmp = IAND(data_tmp, mask_left(18))
   39976       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39977       401871 :          ipack = ipack + 1
   39978       401871 :          packed_data(ipack) = pack_tmp
   39979       401871 :          data_tmp = full_data(idata)
   39980       401871 :          pack_tmp = ISHFT(data_tmp, 32)
   39981       401871 :          pack_tmp = ISHFT(pack_tmp, -32)
   39982       401871 :          idata = idata + 1
   39983       401871 :          data_tmp = full_data(idata)
   39984       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39985       401871 :          data_tmp = IAND(data_tmp, mask_left(32))
   39986       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39987       401871 :          ipack = ipack + 1
   39988       401871 :          packed_data(ipack) = pack_tmp
   39989       401871 :          data_tmp = full_data(idata)
   39990       401871 :          pack_tmp = ISHFT(data_tmp, 46)
   39991       401871 :          pack_tmp = ISHFT(pack_tmp, -46)
   39992       401871 :          idata = idata + 1
   39993       401871 :          data_tmp = full_data(idata)
   39994       401871 :          data_tmp = ISHFT(data_tmp, 14)
   39995       401871 :          data_tmp = IAND(data_tmp, mask_left(46))
   39996       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   39997       401871 :          ipack = ipack + 1
   39998       401871 :          packed_data(ipack) = pack_tmp
   39999       401871 :          data_tmp = full_data(idata)
   40000       401871 :          pack_tmp = ISHFT(data_tmp, 60)
   40001       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   40002       401871 :          idata = idata + 1
   40003       401871 :          data_tmp = full_data(idata)
   40004       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40005       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40006       401871 :          pack_tmp = ISHFT(pack_tmp, -10)
   40007       401871 :          idata = idata + 1
   40008       401871 :          data_tmp = full_data(idata)
   40009       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40010       401871 :          data_tmp = IAND(data_tmp, mask_left(10))
   40011       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40012       401871 :          ipack = ipack + 1
   40013       401871 :          packed_data(ipack) = pack_tmp
   40014       401871 :          data_tmp = full_data(idata)
   40015       401871 :          pack_tmp = ISHFT(data_tmp, 24)
   40016       401871 :          pack_tmp = ISHFT(pack_tmp, -24)
   40017       401871 :          idata = idata + 1
   40018       401871 :          data_tmp = full_data(idata)
   40019       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40020       401871 :          data_tmp = IAND(data_tmp, mask_left(24))
   40021       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40022       401871 :          ipack = ipack + 1
   40023       401871 :          packed_data(ipack) = pack_tmp
   40024       401871 :          data_tmp = full_data(idata)
   40025       401871 :          pack_tmp = ISHFT(data_tmp, 38)
   40026       401871 :          pack_tmp = ISHFT(pack_tmp, -38)
   40027       401871 :          idata = idata + 1
   40028       401871 :          data_tmp = full_data(idata)
   40029       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40030       401871 :          data_tmp = IAND(data_tmp, mask_left(38))
   40031       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40032       401871 :          ipack = ipack + 1
   40033       401871 :          packed_data(ipack) = pack_tmp
   40034       401871 :          data_tmp = full_data(idata)
   40035       401871 :          pack_tmp = ISHFT(data_tmp, 52)
   40036       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   40037       401871 :          idata = idata + 1
   40038       401871 :          data_tmp = full_data(idata)
   40039       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40040       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40041       401871 :          pack_tmp = ISHFT(pack_tmp, -2)
   40042       401871 :          idata = idata + 1
   40043       401871 :          data_tmp = full_data(idata)
   40044       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40045       401871 :          data_tmp = IAND(data_tmp, mask_left(2))
   40046       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40047       401871 :          ipack = ipack + 1
   40048       401871 :          packed_data(ipack) = pack_tmp
   40049       401871 :          data_tmp = full_data(idata)
   40050       401871 :          pack_tmp = ISHFT(data_tmp, 16)
   40051       401871 :          pack_tmp = ISHFT(pack_tmp, -16)
   40052       401871 :          idata = idata + 1
   40053       401871 :          data_tmp = full_data(idata)
   40054       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40055       401871 :          data_tmp = IAND(data_tmp, mask_left(16))
   40056       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40057       401871 :          ipack = ipack + 1
   40058       401871 :          packed_data(ipack) = pack_tmp
   40059       401871 :          data_tmp = full_data(idata)
   40060       401871 :          pack_tmp = ISHFT(data_tmp, 30)
   40061       401871 :          pack_tmp = ISHFT(pack_tmp, -30)
   40062       401871 :          idata = idata + 1
   40063       401871 :          data_tmp = full_data(idata)
   40064       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40065       401871 :          data_tmp = IAND(data_tmp, mask_left(30))
   40066       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40067       401871 :          ipack = ipack + 1
   40068       401871 :          packed_data(ipack) = pack_tmp
   40069       401871 :          data_tmp = full_data(idata)
   40070       401871 :          pack_tmp = ISHFT(data_tmp, 44)
   40071       401871 :          pack_tmp = ISHFT(pack_tmp, -44)
   40072       401871 :          idata = idata + 1
   40073       401871 :          data_tmp = full_data(idata)
   40074       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40075       401871 :          data_tmp = IAND(data_tmp, mask_left(44))
   40076       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40077       401871 :          ipack = ipack + 1
   40078       401871 :          packed_data(ipack) = pack_tmp
   40079       401871 :          data_tmp = full_data(idata)
   40080       401871 :          pack_tmp = ISHFT(data_tmp, 58)
   40081       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   40082       401871 :          idata = idata + 1
   40083       401871 :          data_tmp = full_data(idata)
   40084       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40085       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40086       401871 :          pack_tmp = ISHFT(pack_tmp, -8)
   40087       401871 :          idata = idata + 1
   40088       401871 :          data_tmp = full_data(idata)
   40089       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40090       401871 :          data_tmp = IAND(data_tmp, mask_left(8))
   40091       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40092       401871 :          ipack = ipack + 1
   40093       401871 :          packed_data(ipack) = pack_tmp
   40094       401871 :          data_tmp = full_data(idata)
   40095       401871 :          pack_tmp = ISHFT(data_tmp, 22)
   40096       401871 :          pack_tmp = ISHFT(pack_tmp, -22)
   40097       401871 :          idata = idata + 1
   40098       401871 :          data_tmp = full_data(idata)
   40099       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40100       401871 :          data_tmp = IAND(data_tmp, mask_left(22))
   40101       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40102       401871 :          ipack = ipack + 1
   40103       401871 :          packed_data(ipack) = pack_tmp
   40104       401871 :          data_tmp = full_data(idata)
   40105       401871 :          pack_tmp = ISHFT(data_tmp, 36)
   40106       401871 :          pack_tmp = ISHFT(pack_tmp, -36)
   40107       401871 :          idata = idata + 1
   40108       401871 :          data_tmp = full_data(idata)
   40109       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40110       401871 :          data_tmp = IAND(data_tmp, mask_left(36))
   40111       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40112       401871 :          ipack = ipack + 1
   40113       401871 :          packed_data(ipack) = pack_tmp
   40114       401871 :          data_tmp = full_data(idata)
   40115       401871 :          pack_tmp = ISHFT(data_tmp, 50)
   40116       401871 :          pack_tmp = ISHFT(pack_tmp, -50)
   40117       401871 :          idata = idata + 1
   40118       401871 :          data_tmp = full_data(idata)
   40119       401871 :          data_tmp = ISHFT(data_tmp, 14)
   40120       401871 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40121              :          pack_tmp = ISHFT(pack_tmp, 0)
   40122       401871 :          pack_tmp = ISHFT(pack_tmp, 0)
   40123       401871 :          ipack = ipack + 1
   40124       401879 :          packed_data(ipack) = pack_tmp
   40125              :       END DO
   40126        25866 :       IF (Ndata_rep < Ndata) THEN
   40127         1410 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   40128              :       END IF
   40129        25866 :    END SUBROUTINE ints2bits_50
   40130              : 
   40131              : ! **************************************************************************************************
   40132              : !> \brief ...
   40133              : !> \param Ndata ...
   40134              : !> \param packed_data ...
   40135              : !> \param full_data ...
   40136              : ! **************************************************************************************************
   40137       102867 :    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       102867 :       ipack = 0
   40148       102867 :       idata = 0
   40149       102867 :       pack_tmp = 0
   40150       102867 :       Ndata_rep = (Ndata/64)*64
   40151       102867 :       DO kdata = 1, Ndata_rep, 64
   40152      1608965 :          idata = idata + 1
   40153      1608965 :          data_tmp = ISHFT(pack_tmp, 50)
   40154      1608965 :          ipack = ipack + 1
   40155      1608965 :          pack_tmp = packed_data(ipack)
   40156      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   40157      1608965 :          pack_tmp = ISHFT(pack_tmp, -50)
   40158      1608965 :          idata = idata + 1
   40159      1608965 :          data_tmp = ISHFT(pack_tmp, 36)
   40160      1608965 :          ipack = ipack + 1
   40161      1608965 :          pack_tmp = packed_data(ipack)
   40162      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   40163      1608965 :          pack_tmp = ISHFT(pack_tmp, -36)
   40164      1608965 :          idata = idata + 1
   40165      1608965 :          data_tmp = ISHFT(pack_tmp, 22)
   40166      1608965 :          ipack = ipack + 1
   40167      1608965 :          pack_tmp = packed_data(ipack)
   40168      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   40169      1608965 :          pack_tmp = ISHFT(pack_tmp, -22)
   40170      1608965 :          idata = idata + 1
   40171      1608965 :          data_tmp = ISHFT(pack_tmp, 8)
   40172      1608965 :          ipack = ipack + 1
   40173      1608965 :          pack_tmp = packed_data(ipack)
   40174      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   40175      1608965 :          pack_tmp = ISHFT(pack_tmp, -8)
   40176      1608965 :          idata = idata + 1
   40177      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40178      1608965 :          full_data(idata) = data_tmp
   40179      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40180      1608965 :          idata = idata + 1
   40181      1608965 :          data_tmp = ISHFT(pack_tmp, 44)
   40182      1608965 :          ipack = ipack + 1
   40183      1608965 :          pack_tmp = packed_data(ipack)
   40184      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   40185      1608965 :          pack_tmp = ISHFT(pack_tmp, -44)
   40186      1608965 :          idata = idata + 1
   40187      1608965 :          data_tmp = ISHFT(pack_tmp, 30)
   40188      1608965 :          ipack = ipack + 1
   40189      1608965 :          pack_tmp = packed_data(ipack)
   40190      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   40191      1608965 :          pack_tmp = ISHFT(pack_tmp, -30)
   40192      1608965 :          idata = idata + 1
   40193      1608965 :          data_tmp = ISHFT(pack_tmp, 16)
   40194      1608965 :          ipack = ipack + 1
   40195      1608965 :          pack_tmp = packed_data(ipack)
   40196      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   40197      1608965 :          pack_tmp = ISHFT(pack_tmp, -16)
   40198      1608965 :          idata = idata + 1
   40199      1608965 :          data_tmp = ISHFT(pack_tmp, 2)
   40200      1608965 :          ipack = ipack + 1
   40201      1608965 :          pack_tmp = packed_data(ipack)
   40202      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   40203      1608965 :          pack_tmp = ISHFT(pack_tmp, -2)
   40204      1608965 :          idata = idata + 1
   40205      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40206      1608965 :          full_data(idata) = data_tmp
   40207      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40208      1608965 :          idata = idata + 1
   40209      1608965 :          data_tmp = ISHFT(pack_tmp, 38)
   40210      1608965 :          ipack = ipack + 1
   40211      1608965 :          pack_tmp = packed_data(ipack)
   40212      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   40213      1608965 :          pack_tmp = ISHFT(pack_tmp, -38)
   40214      1608965 :          idata = idata + 1
   40215      1608965 :          data_tmp = ISHFT(pack_tmp, 24)
   40216      1608965 :          ipack = ipack + 1
   40217      1608965 :          pack_tmp = packed_data(ipack)
   40218      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   40219      1608965 :          pack_tmp = ISHFT(pack_tmp, -24)
   40220      1608965 :          idata = idata + 1
   40221      1608965 :          data_tmp = ISHFT(pack_tmp, 10)
   40222      1608965 :          ipack = ipack + 1
   40223      1608965 :          pack_tmp = packed_data(ipack)
   40224      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   40225      1608965 :          pack_tmp = ISHFT(pack_tmp, -10)
   40226      1608965 :          idata = idata + 1
   40227      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40228      1608965 :          full_data(idata) = data_tmp
   40229      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40230      1608965 :          idata = idata + 1
   40231      1608965 :          data_tmp = ISHFT(pack_tmp, 46)
   40232      1608965 :          ipack = ipack + 1
   40233      1608965 :          pack_tmp = packed_data(ipack)
   40234      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   40235      1608965 :          pack_tmp = ISHFT(pack_tmp, -46)
   40236      1608965 :          idata = idata + 1
   40237      1608965 :          data_tmp = ISHFT(pack_tmp, 32)
   40238      1608965 :          ipack = ipack + 1
   40239      1608965 :          pack_tmp = packed_data(ipack)
   40240      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   40241      1608965 :          pack_tmp = ISHFT(pack_tmp, -32)
   40242      1608965 :          idata = idata + 1
   40243      1608965 :          data_tmp = ISHFT(pack_tmp, 18)
   40244      1608965 :          ipack = ipack + 1
   40245      1608965 :          pack_tmp = packed_data(ipack)
   40246      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   40247      1608965 :          pack_tmp = ISHFT(pack_tmp, -18)
   40248      1608965 :          idata = idata + 1
   40249      1608965 :          data_tmp = ISHFT(pack_tmp, 4)
   40250      1608965 :          ipack = ipack + 1
   40251      1608965 :          pack_tmp = packed_data(ipack)
   40252      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   40253      1608965 :          pack_tmp = ISHFT(pack_tmp, -4)
   40254      1608965 :          idata = idata + 1
   40255      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40256      1608965 :          full_data(idata) = data_tmp
   40257      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40258      1608965 :          idata = idata + 1
   40259      1608965 :          data_tmp = ISHFT(pack_tmp, 40)
   40260      1608965 :          ipack = ipack + 1
   40261      1608965 :          pack_tmp = packed_data(ipack)
   40262      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   40263      1608965 :          pack_tmp = ISHFT(pack_tmp, -40)
   40264      1608965 :          idata = idata + 1
   40265      1608965 :          data_tmp = ISHFT(pack_tmp, 26)
   40266      1608965 :          ipack = ipack + 1
   40267      1608965 :          pack_tmp = packed_data(ipack)
   40268      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   40269      1608965 :          pack_tmp = ISHFT(pack_tmp, -26)
   40270      1608965 :          idata = idata + 1
   40271      1608965 :          data_tmp = ISHFT(pack_tmp, 12)
   40272      1608965 :          ipack = ipack + 1
   40273      1608965 :          pack_tmp = packed_data(ipack)
   40274      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   40275      1608965 :          pack_tmp = ISHFT(pack_tmp, -12)
   40276      1608965 :          idata = idata + 1
   40277      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40278      1608965 :          full_data(idata) = data_tmp
   40279      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40280      1608965 :          idata = idata + 1
   40281      1608965 :          data_tmp = ISHFT(pack_tmp, 48)
   40282      1608965 :          ipack = ipack + 1
   40283      1608965 :          pack_tmp = packed_data(ipack)
   40284      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   40285      1608965 :          pack_tmp = ISHFT(pack_tmp, -48)
   40286      1608965 :          idata = idata + 1
   40287      1608965 :          data_tmp = ISHFT(pack_tmp, 34)
   40288      1608965 :          ipack = ipack + 1
   40289      1608965 :          pack_tmp = packed_data(ipack)
   40290      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   40291      1608965 :          pack_tmp = ISHFT(pack_tmp, -34)
   40292      1608965 :          idata = idata + 1
   40293      1608965 :          data_tmp = ISHFT(pack_tmp, 20)
   40294      1608965 :          ipack = ipack + 1
   40295      1608965 :          pack_tmp = packed_data(ipack)
   40296      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   40297      1608965 :          pack_tmp = ISHFT(pack_tmp, -20)
   40298      1608965 :          idata = idata + 1
   40299      1608965 :          data_tmp = ISHFT(pack_tmp, 6)
   40300      1608965 :          ipack = ipack + 1
   40301      1608965 :          pack_tmp = packed_data(ipack)
   40302      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   40303      1608965 :          pack_tmp = ISHFT(pack_tmp, -6)
   40304      1608965 :          idata = idata + 1
   40305      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40306      1608965 :          full_data(idata) = data_tmp
   40307      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40308      1608965 :          idata = idata + 1
   40309      1608965 :          data_tmp = ISHFT(pack_tmp, 42)
   40310      1608965 :          ipack = ipack + 1
   40311      1608965 :          pack_tmp = packed_data(ipack)
   40312      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   40313      1608965 :          pack_tmp = ISHFT(pack_tmp, -42)
   40314      1608965 :          idata = idata + 1
   40315      1608965 :          data_tmp = ISHFT(pack_tmp, 28)
   40316      1608965 :          ipack = ipack + 1
   40317      1608965 :          pack_tmp = packed_data(ipack)
   40318      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   40319      1608965 :          pack_tmp = ISHFT(pack_tmp, -28)
   40320      1608965 :          idata = idata + 1
   40321      1608965 :          data_tmp = ISHFT(pack_tmp, 14)
   40322      1608965 :          ipack = ipack + 1
   40323      1608965 :          pack_tmp = packed_data(ipack)
   40324      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   40325      1608965 :          pack_tmp = ISHFT(pack_tmp, -14)
   40326      1608965 :          idata = idata + 1
   40327      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40328      1608965 :          full_data(idata) = data_tmp
   40329      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40330      1608965 :          idata = idata + 1
   40331      1608965 :          data_tmp = ISHFT(pack_tmp, 50)
   40332      1608965 :          ipack = ipack + 1
   40333      1608965 :          pack_tmp = packed_data(ipack)
   40334      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   40335      1608965 :          pack_tmp = ISHFT(pack_tmp, -50)
   40336      1608965 :          idata = idata + 1
   40337      1608965 :          data_tmp = ISHFT(pack_tmp, 36)
   40338      1608965 :          ipack = ipack + 1
   40339      1608965 :          pack_tmp = packed_data(ipack)
   40340      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   40341      1608965 :          pack_tmp = ISHFT(pack_tmp, -36)
   40342      1608965 :          idata = idata + 1
   40343      1608965 :          data_tmp = ISHFT(pack_tmp, 22)
   40344      1608965 :          ipack = ipack + 1
   40345      1608965 :          pack_tmp = packed_data(ipack)
   40346      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   40347      1608965 :          pack_tmp = ISHFT(pack_tmp, -22)
   40348      1608965 :          idata = idata + 1
   40349      1608965 :          data_tmp = ISHFT(pack_tmp, 8)
   40350      1608965 :          ipack = ipack + 1
   40351      1608965 :          pack_tmp = packed_data(ipack)
   40352      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   40353      1608965 :          pack_tmp = ISHFT(pack_tmp, -8)
   40354      1608965 :          idata = idata + 1
   40355      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40356      1608965 :          full_data(idata) = data_tmp
   40357      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40358      1608965 :          idata = idata + 1
   40359      1608965 :          data_tmp = ISHFT(pack_tmp, 44)
   40360      1608965 :          ipack = ipack + 1
   40361      1608965 :          pack_tmp = packed_data(ipack)
   40362      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   40363      1608965 :          pack_tmp = ISHFT(pack_tmp, -44)
   40364      1608965 :          idata = idata + 1
   40365      1608965 :          data_tmp = ISHFT(pack_tmp, 30)
   40366      1608965 :          ipack = ipack + 1
   40367      1608965 :          pack_tmp = packed_data(ipack)
   40368      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   40369      1608965 :          pack_tmp = ISHFT(pack_tmp, -30)
   40370      1608965 :          idata = idata + 1
   40371      1608965 :          data_tmp = ISHFT(pack_tmp, 16)
   40372      1608965 :          ipack = ipack + 1
   40373      1608965 :          pack_tmp = packed_data(ipack)
   40374      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   40375      1608965 :          pack_tmp = ISHFT(pack_tmp, -16)
   40376      1608965 :          idata = idata + 1
   40377      1608965 :          data_tmp = ISHFT(pack_tmp, 2)
   40378      1608965 :          ipack = ipack + 1
   40379      1608965 :          pack_tmp = packed_data(ipack)
   40380      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   40381      1608965 :          pack_tmp = ISHFT(pack_tmp, -2)
   40382      1608965 :          idata = idata + 1
   40383      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40384      1608965 :          full_data(idata) = data_tmp
   40385      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40386      1608965 :          idata = idata + 1
   40387      1608965 :          data_tmp = ISHFT(pack_tmp, 38)
   40388      1608965 :          ipack = ipack + 1
   40389      1608965 :          pack_tmp = packed_data(ipack)
   40390      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   40391      1608965 :          pack_tmp = ISHFT(pack_tmp, -38)
   40392      1608965 :          idata = idata + 1
   40393      1608965 :          data_tmp = ISHFT(pack_tmp, 24)
   40394      1608965 :          ipack = ipack + 1
   40395      1608965 :          pack_tmp = packed_data(ipack)
   40396      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   40397      1608965 :          pack_tmp = ISHFT(pack_tmp, -24)
   40398      1608965 :          idata = idata + 1
   40399      1608965 :          data_tmp = ISHFT(pack_tmp, 10)
   40400      1608965 :          ipack = ipack + 1
   40401      1608965 :          pack_tmp = packed_data(ipack)
   40402      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   40403      1608965 :          pack_tmp = ISHFT(pack_tmp, -10)
   40404      1608965 :          idata = idata + 1
   40405      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40406      1608965 :          full_data(idata) = data_tmp
   40407      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40408      1608965 :          idata = idata + 1
   40409      1608965 :          data_tmp = ISHFT(pack_tmp, 46)
   40410      1608965 :          ipack = ipack + 1
   40411      1608965 :          pack_tmp = packed_data(ipack)
   40412      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   40413      1608965 :          pack_tmp = ISHFT(pack_tmp, -46)
   40414      1608965 :          idata = idata + 1
   40415      1608965 :          data_tmp = ISHFT(pack_tmp, 32)
   40416      1608965 :          ipack = ipack + 1
   40417      1608965 :          pack_tmp = packed_data(ipack)
   40418      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   40419      1608965 :          pack_tmp = ISHFT(pack_tmp, -32)
   40420      1608965 :          idata = idata + 1
   40421      1608965 :          data_tmp = ISHFT(pack_tmp, 18)
   40422      1608965 :          ipack = ipack + 1
   40423      1608965 :          pack_tmp = packed_data(ipack)
   40424      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   40425      1608965 :          pack_tmp = ISHFT(pack_tmp, -18)
   40426      1608965 :          idata = idata + 1
   40427      1608965 :          data_tmp = ISHFT(pack_tmp, 4)
   40428      1608965 :          ipack = ipack + 1
   40429      1608965 :          pack_tmp = packed_data(ipack)
   40430      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   40431      1608965 :          pack_tmp = ISHFT(pack_tmp, -4)
   40432      1608965 :          idata = idata + 1
   40433      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40434      1608965 :          full_data(idata) = data_tmp
   40435      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40436      1608965 :          idata = idata + 1
   40437      1608965 :          data_tmp = ISHFT(pack_tmp, 40)
   40438      1608965 :          ipack = ipack + 1
   40439      1608965 :          pack_tmp = packed_data(ipack)
   40440      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   40441      1608965 :          pack_tmp = ISHFT(pack_tmp, -40)
   40442      1608965 :          idata = idata + 1
   40443      1608965 :          data_tmp = ISHFT(pack_tmp, 26)
   40444      1608965 :          ipack = ipack + 1
   40445      1608965 :          pack_tmp = packed_data(ipack)
   40446      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   40447      1608965 :          pack_tmp = ISHFT(pack_tmp, -26)
   40448      1608965 :          idata = idata + 1
   40449      1608965 :          data_tmp = ISHFT(pack_tmp, 12)
   40450      1608965 :          ipack = ipack + 1
   40451      1608965 :          pack_tmp = packed_data(ipack)
   40452      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   40453      1608965 :          pack_tmp = ISHFT(pack_tmp, -12)
   40454      1608965 :          idata = idata + 1
   40455      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40456      1608965 :          full_data(idata) = data_tmp
   40457      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40458      1608965 :          idata = idata + 1
   40459      1608965 :          data_tmp = ISHFT(pack_tmp, 48)
   40460      1608965 :          ipack = ipack + 1
   40461      1608965 :          pack_tmp = packed_data(ipack)
   40462      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   40463      1608965 :          pack_tmp = ISHFT(pack_tmp, -48)
   40464      1608965 :          idata = idata + 1
   40465      1608965 :          data_tmp = ISHFT(pack_tmp, 34)
   40466      1608965 :          ipack = ipack + 1
   40467      1608965 :          pack_tmp = packed_data(ipack)
   40468      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   40469      1608965 :          pack_tmp = ISHFT(pack_tmp, -34)
   40470      1608965 :          idata = idata + 1
   40471      1608965 :          data_tmp = ISHFT(pack_tmp, 20)
   40472      1608965 :          ipack = ipack + 1
   40473      1608965 :          pack_tmp = packed_data(ipack)
   40474      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   40475      1608965 :          pack_tmp = ISHFT(pack_tmp, -20)
   40476      1608965 :          idata = idata + 1
   40477      1608965 :          data_tmp = ISHFT(pack_tmp, 6)
   40478      1608965 :          ipack = ipack + 1
   40479      1608965 :          pack_tmp = packed_data(ipack)
   40480      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   40481      1608965 :          pack_tmp = ISHFT(pack_tmp, -6)
   40482      1608965 :          idata = idata + 1
   40483      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40484      1608965 :          full_data(idata) = data_tmp
   40485      1608965 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40486      1608965 :          idata = idata + 1
   40487      1608965 :          data_tmp = ISHFT(pack_tmp, 42)
   40488      1608965 :          ipack = ipack + 1
   40489      1608965 :          pack_tmp = packed_data(ipack)
   40490      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   40491      1608965 :          pack_tmp = ISHFT(pack_tmp, -42)
   40492      1608965 :          idata = idata + 1
   40493      1608965 :          data_tmp = ISHFT(pack_tmp, 28)
   40494      1608965 :          ipack = ipack + 1
   40495      1608965 :          pack_tmp = packed_data(ipack)
   40496      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   40497      1608965 :          pack_tmp = ISHFT(pack_tmp, -28)
   40498      1608965 :          idata = idata + 1
   40499      1608965 :          data_tmp = ISHFT(pack_tmp, 14)
   40500      1608965 :          ipack = ipack + 1
   40501      1608965 :          pack_tmp = packed_data(ipack)
   40502      1608965 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   40503      1608965 :          pack_tmp = ISHFT(pack_tmp, -14)
   40504      1608965 :          idata = idata + 1
   40505      1608965 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   40506      1608965 :          full_data(idata) = data_tmp
   40507      1608981 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   40508              :       END DO
   40509       102867 :       IF (Ndata_rep < Ndata) THEN
   40510         4342 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   40511              :       END IF
   40512       102867 :    END SUBROUTINE bits2ints_50
   40513              : 
   40514              : ! **************************************************************************************************
   40515              : !> \brief ...
   40516              : !> \param Ndata ...
   40517              : !> \param packed_data ...
   40518              : !> \param full_data ...
   40519              : ! **************************************************************************************************
   40520        24916 :    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        24916 :       idata = 0
   40531        24916 :       ipack = 0
   40532        24916 :       Ndata_rep = (Ndata/64)*64
   40533        24916 :       DO kdata = 1, Ndata_rep, 64
   40534       394950 :          pack_tmp = 0
   40535       394950 :          idata = idata + 1
   40536       394950 :          data_tmp = full_data(idata)
   40537       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40538       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40539       394950 :          pack_tmp = ISHFT(pack_tmp, -13)
   40540       394950 :          idata = idata + 1
   40541       394950 :          data_tmp = full_data(idata)
   40542       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40543       394950 :          data_tmp = IAND(data_tmp, mask_left(13))
   40544       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40545       394950 :          ipack = ipack + 1
   40546       394950 :          packed_data(ipack) = pack_tmp
   40547       394950 :          data_tmp = full_data(idata)
   40548       394950 :          pack_tmp = ISHFT(data_tmp, 26)
   40549       394950 :          pack_tmp = ISHFT(pack_tmp, -26)
   40550       394950 :          idata = idata + 1
   40551       394950 :          data_tmp = full_data(idata)
   40552       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40553       394950 :          data_tmp = IAND(data_tmp, mask_left(26))
   40554       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40555       394950 :          ipack = ipack + 1
   40556       394950 :          packed_data(ipack) = pack_tmp
   40557       394950 :          data_tmp = full_data(idata)
   40558       394950 :          pack_tmp = ISHFT(data_tmp, 39)
   40559       394950 :          pack_tmp = ISHFT(pack_tmp, -39)
   40560       394950 :          idata = idata + 1
   40561       394950 :          data_tmp = full_data(idata)
   40562       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40563       394950 :          data_tmp = IAND(data_tmp, mask_left(39))
   40564       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40565       394950 :          ipack = ipack + 1
   40566       394950 :          packed_data(ipack) = pack_tmp
   40567       394950 :          data_tmp = full_data(idata)
   40568       394950 :          pack_tmp = ISHFT(data_tmp, 52)
   40569       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   40570       394950 :          idata = idata + 1
   40571       394950 :          data_tmp = full_data(idata)
   40572       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40573       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40574       394950 :          pack_tmp = ISHFT(pack_tmp, -1)
   40575       394950 :          idata = idata + 1
   40576       394950 :          data_tmp = full_data(idata)
   40577       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40578       394950 :          data_tmp = IAND(data_tmp, mask_left(1))
   40579       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40580       394950 :          ipack = ipack + 1
   40581       394950 :          packed_data(ipack) = pack_tmp
   40582       394950 :          data_tmp = full_data(idata)
   40583       394950 :          pack_tmp = ISHFT(data_tmp, 14)
   40584       394950 :          pack_tmp = ISHFT(pack_tmp, -14)
   40585       394950 :          idata = idata + 1
   40586       394950 :          data_tmp = full_data(idata)
   40587       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40588       394950 :          data_tmp = IAND(data_tmp, mask_left(14))
   40589       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40590       394950 :          ipack = ipack + 1
   40591       394950 :          packed_data(ipack) = pack_tmp
   40592       394950 :          data_tmp = full_data(idata)
   40593       394950 :          pack_tmp = ISHFT(data_tmp, 27)
   40594       394950 :          pack_tmp = ISHFT(pack_tmp, -27)
   40595       394950 :          idata = idata + 1
   40596       394950 :          data_tmp = full_data(idata)
   40597       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40598       394950 :          data_tmp = IAND(data_tmp, mask_left(27))
   40599       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40600       394950 :          ipack = ipack + 1
   40601       394950 :          packed_data(ipack) = pack_tmp
   40602       394950 :          data_tmp = full_data(idata)
   40603       394950 :          pack_tmp = ISHFT(data_tmp, 40)
   40604       394950 :          pack_tmp = ISHFT(pack_tmp, -40)
   40605       394950 :          idata = idata + 1
   40606       394950 :          data_tmp = full_data(idata)
   40607       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40608       394950 :          data_tmp = IAND(data_tmp, mask_left(40))
   40609       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40610       394950 :          ipack = ipack + 1
   40611       394950 :          packed_data(ipack) = pack_tmp
   40612       394950 :          data_tmp = full_data(idata)
   40613       394950 :          pack_tmp = ISHFT(data_tmp, 53)
   40614       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   40615       394950 :          idata = idata + 1
   40616       394950 :          data_tmp = full_data(idata)
   40617       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40618       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40619       394950 :          pack_tmp = ISHFT(pack_tmp, -2)
   40620       394950 :          idata = idata + 1
   40621       394950 :          data_tmp = full_data(idata)
   40622       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40623       394950 :          data_tmp = IAND(data_tmp, mask_left(2))
   40624       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40625       394950 :          ipack = ipack + 1
   40626       394950 :          packed_data(ipack) = pack_tmp
   40627       394950 :          data_tmp = full_data(idata)
   40628       394950 :          pack_tmp = ISHFT(data_tmp, 15)
   40629       394950 :          pack_tmp = ISHFT(pack_tmp, -15)
   40630       394950 :          idata = idata + 1
   40631       394950 :          data_tmp = full_data(idata)
   40632       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40633       394950 :          data_tmp = IAND(data_tmp, mask_left(15))
   40634       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40635       394950 :          ipack = ipack + 1
   40636       394950 :          packed_data(ipack) = pack_tmp
   40637       394950 :          data_tmp = full_data(idata)
   40638       394950 :          pack_tmp = ISHFT(data_tmp, 28)
   40639       394950 :          pack_tmp = ISHFT(pack_tmp, -28)
   40640       394950 :          idata = idata + 1
   40641       394950 :          data_tmp = full_data(idata)
   40642       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40643       394950 :          data_tmp = IAND(data_tmp, mask_left(28))
   40644       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40645       394950 :          ipack = ipack + 1
   40646       394950 :          packed_data(ipack) = pack_tmp
   40647       394950 :          data_tmp = full_data(idata)
   40648       394950 :          pack_tmp = ISHFT(data_tmp, 41)
   40649       394950 :          pack_tmp = ISHFT(pack_tmp, -41)
   40650       394950 :          idata = idata + 1
   40651       394950 :          data_tmp = full_data(idata)
   40652       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40653       394950 :          data_tmp = IAND(data_tmp, mask_left(41))
   40654       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40655       394950 :          ipack = ipack + 1
   40656       394950 :          packed_data(ipack) = pack_tmp
   40657       394950 :          data_tmp = full_data(idata)
   40658       394950 :          pack_tmp = ISHFT(data_tmp, 54)
   40659       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   40660       394950 :          idata = idata + 1
   40661       394950 :          data_tmp = full_data(idata)
   40662       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40663       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40664       394950 :          pack_tmp = ISHFT(pack_tmp, -3)
   40665       394950 :          idata = idata + 1
   40666       394950 :          data_tmp = full_data(idata)
   40667       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40668       394950 :          data_tmp = IAND(data_tmp, mask_left(3))
   40669       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40670       394950 :          ipack = ipack + 1
   40671       394950 :          packed_data(ipack) = pack_tmp
   40672       394950 :          data_tmp = full_data(idata)
   40673       394950 :          pack_tmp = ISHFT(data_tmp, 16)
   40674       394950 :          pack_tmp = ISHFT(pack_tmp, -16)
   40675       394950 :          idata = idata + 1
   40676       394950 :          data_tmp = full_data(idata)
   40677       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40678       394950 :          data_tmp = IAND(data_tmp, mask_left(16))
   40679       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40680       394950 :          ipack = ipack + 1
   40681       394950 :          packed_data(ipack) = pack_tmp
   40682       394950 :          data_tmp = full_data(idata)
   40683       394950 :          pack_tmp = ISHFT(data_tmp, 29)
   40684       394950 :          pack_tmp = ISHFT(pack_tmp, -29)
   40685       394950 :          idata = idata + 1
   40686       394950 :          data_tmp = full_data(idata)
   40687       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40688       394950 :          data_tmp = IAND(data_tmp, mask_left(29))
   40689       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40690       394950 :          ipack = ipack + 1
   40691       394950 :          packed_data(ipack) = pack_tmp
   40692       394950 :          data_tmp = full_data(idata)
   40693       394950 :          pack_tmp = ISHFT(data_tmp, 42)
   40694       394950 :          pack_tmp = ISHFT(pack_tmp, -42)
   40695       394950 :          idata = idata + 1
   40696       394950 :          data_tmp = full_data(idata)
   40697       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40698       394950 :          data_tmp = IAND(data_tmp, mask_left(42))
   40699       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40700       394950 :          ipack = ipack + 1
   40701       394950 :          packed_data(ipack) = pack_tmp
   40702       394950 :          data_tmp = full_data(idata)
   40703       394950 :          pack_tmp = ISHFT(data_tmp, 55)
   40704       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   40705       394950 :          idata = idata + 1
   40706       394950 :          data_tmp = full_data(idata)
   40707       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40708       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40709       394950 :          pack_tmp = ISHFT(pack_tmp, -4)
   40710       394950 :          idata = idata + 1
   40711       394950 :          data_tmp = full_data(idata)
   40712       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40713       394950 :          data_tmp = IAND(data_tmp, mask_left(4))
   40714       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40715       394950 :          ipack = ipack + 1
   40716       394950 :          packed_data(ipack) = pack_tmp
   40717       394950 :          data_tmp = full_data(idata)
   40718       394950 :          pack_tmp = ISHFT(data_tmp, 17)
   40719       394950 :          pack_tmp = ISHFT(pack_tmp, -17)
   40720       394950 :          idata = idata + 1
   40721       394950 :          data_tmp = full_data(idata)
   40722       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40723       394950 :          data_tmp = IAND(data_tmp, mask_left(17))
   40724       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40725       394950 :          ipack = ipack + 1
   40726       394950 :          packed_data(ipack) = pack_tmp
   40727       394950 :          data_tmp = full_data(idata)
   40728       394950 :          pack_tmp = ISHFT(data_tmp, 30)
   40729       394950 :          pack_tmp = ISHFT(pack_tmp, -30)
   40730       394950 :          idata = idata + 1
   40731       394950 :          data_tmp = full_data(idata)
   40732       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40733       394950 :          data_tmp = IAND(data_tmp, mask_left(30))
   40734       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40735       394950 :          ipack = ipack + 1
   40736       394950 :          packed_data(ipack) = pack_tmp
   40737       394950 :          data_tmp = full_data(idata)
   40738       394950 :          pack_tmp = ISHFT(data_tmp, 43)
   40739       394950 :          pack_tmp = ISHFT(pack_tmp, -43)
   40740       394950 :          idata = idata + 1
   40741       394950 :          data_tmp = full_data(idata)
   40742       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40743       394950 :          data_tmp = IAND(data_tmp, mask_left(43))
   40744       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40745       394950 :          ipack = ipack + 1
   40746       394950 :          packed_data(ipack) = pack_tmp
   40747       394950 :          data_tmp = full_data(idata)
   40748       394950 :          pack_tmp = ISHFT(data_tmp, 56)
   40749       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   40750       394950 :          idata = idata + 1
   40751       394950 :          data_tmp = full_data(idata)
   40752       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40753       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40754       394950 :          pack_tmp = ISHFT(pack_tmp, -5)
   40755       394950 :          idata = idata + 1
   40756       394950 :          data_tmp = full_data(idata)
   40757       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40758       394950 :          data_tmp = IAND(data_tmp, mask_left(5))
   40759       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40760       394950 :          ipack = ipack + 1
   40761       394950 :          packed_data(ipack) = pack_tmp
   40762       394950 :          data_tmp = full_data(idata)
   40763       394950 :          pack_tmp = ISHFT(data_tmp, 18)
   40764       394950 :          pack_tmp = ISHFT(pack_tmp, -18)
   40765       394950 :          idata = idata + 1
   40766       394950 :          data_tmp = full_data(idata)
   40767       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40768       394950 :          data_tmp = IAND(data_tmp, mask_left(18))
   40769       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40770       394950 :          ipack = ipack + 1
   40771       394950 :          packed_data(ipack) = pack_tmp
   40772       394950 :          data_tmp = full_data(idata)
   40773       394950 :          pack_tmp = ISHFT(data_tmp, 31)
   40774       394950 :          pack_tmp = ISHFT(pack_tmp, -31)
   40775       394950 :          idata = idata + 1
   40776       394950 :          data_tmp = full_data(idata)
   40777       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40778       394950 :          data_tmp = IAND(data_tmp, mask_left(31))
   40779       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40780       394950 :          ipack = ipack + 1
   40781       394950 :          packed_data(ipack) = pack_tmp
   40782       394950 :          data_tmp = full_data(idata)
   40783       394950 :          pack_tmp = ISHFT(data_tmp, 44)
   40784       394950 :          pack_tmp = ISHFT(pack_tmp, -44)
   40785       394950 :          idata = idata + 1
   40786       394950 :          data_tmp = full_data(idata)
   40787       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40788       394950 :          data_tmp = IAND(data_tmp, mask_left(44))
   40789       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40790       394950 :          ipack = ipack + 1
   40791       394950 :          packed_data(ipack) = pack_tmp
   40792       394950 :          data_tmp = full_data(idata)
   40793       394950 :          pack_tmp = ISHFT(data_tmp, 57)
   40794       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   40795       394950 :          idata = idata + 1
   40796       394950 :          data_tmp = full_data(idata)
   40797       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40798       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40799       394950 :          pack_tmp = ISHFT(pack_tmp, -6)
   40800       394950 :          idata = idata + 1
   40801       394950 :          data_tmp = full_data(idata)
   40802       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40803       394950 :          data_tmp = IAND(data_tmp, mask_left(6))
   40804       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40805       394950 :          ipack = ipack + 1
   40806       394950 :          packed_data(ipack) = pack_tmp
   40807       394950 :          data_tmp = full_data(idata)
   40808       394950 :          pack_tmp = ISHFT(data_tmp, 19)
   40809       394950 :          pack_tmp = ISHFT(pack_tmp, -19)
   40810       394950 :          idata = idata + 1
   40811       394950 :          data_tmp = full_data(idata)
   40812       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40813       394950 :          data_tmp = IAND(data_tmp, mask_left(19))
   40814       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40815       394950 :          ipack = ipack + 1
   40816       394950 :          packed_data(ipack) = pack_tmp
   40817       394950 :          data_tmp = full_data(idata)
   40818       394950 :          pack_tmp = ISHFT(data_tmp, 32)
   40819       394950 :          pack_tmp = ISHFT(pack_tmp, -32)
   40820       394950 :          idata = idata + 1
   40821       394950 :          data_tmp = full_data(idata)
   40822       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40823       394950 :          data_tmp = IAND(data_tmp, mask_left(32))
   40824       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40825       394950 :          ipack = ipack + 1
   40826       394950 :          packed_data(ipack) = pack_tmp
   40827       394950 :          data_tmp = full_data(idata)
   40828       394950 :          pack_tmp = ISHFT(data_tmp, 45)
   40829       394950 :          pack_tmp = ISHFT(pack_tmp, -45)
   40830       394950 :          idata = idata + 1
   40831       394950 :          data_tmp = full_data(idata)
   40832       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40833       394950 :          data_tmp = IAND(data_tmp, mask_left(45))
   40834       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40835       394950 :          ipack = ipack + 1
   40836       394950 :          packed_data(ipack) = pack_tmp
   40837       394950 :          data_tmp = full_data(idata)
   40838       394950 :          pack_tmp = ISHFT(data_tmp, 58)
   40839       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   40840       394950 :          idata = idata + 1
   40841       394950 :          data_tmp = full_data(idata)
   40842       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40843       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40844       394950 :          pack_tmp = ISHFT(pack_tmp, -7)
   40845       394950 :          idata = idata + 1
   40846       394950 :          data_tmp = full_data(idata)
   40847       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40848       394950 :          data_tmp = IAND(data_tmp, mask_left(7))
   40849       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40850       394950 :          ipack = ipack + 1
   40851       394950 :          packed_data(ipack) = pack_tmp
   40852       394950 :          data_tmp = full_data(idata)
   40853       394950 :          pack_tmp = ISHFT(data_tmp, 20)
   40854       394950 :          pack_tmp = ISHFT(pack_tmp, -20)
   40855       394950 :          idata = idata + 1
   40856       394950 :          data_tmp = full_data(idata)
   40857       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40858       394950 :          data_tmp = IAND(data_tmp, mask_left(20))
   40859       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40860       394950 :          ipack = ipack + 1
   40861       394950 :          packed_data(ipack) = pack_tmp
   40862       394950 :          data_tmp = full_data(idata)
   40863       394950 :          pack_tmp = ISHFT(data_tmp, 33)
   40864       394950 :          pack_tmp = ISHFT(pack_tmp, -33)
   40865       394950 :          idata = idata + 1
   40866       394950 :          data_tmp = full_data(idata)
   40867       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40868       394950 :          data_tmp = IAND(data_tmp, mask_left(33))
   40869       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40870       394950 :          ipack = ipack + 1
   40871       394950 :          packed_data(ipack) = pack_tmp
   40872       394950 :          data_tmp = full_data(idata)
   40873       394950 :          pack_tmp = ISHFT(data_tmp, 46)
   40874       394950 :          pack_tmp = ISHFT(pack_tmp, -46)
   40875       394950 :          idata = idata + 1
   40876       394950 :          data_tmp = full_data(idata)
   40877       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40878       394950 :          data_tmp = IAND(data_tmp, mask_left(46))
   40879       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40880       394950 :          ipack = ipack + 1
   40881       394950 :          packed_data(ipack) = pack_tmp
   40882       394950 :          data_tmp = full_data(idata)
   40883       394950 :          pack_tmp = ISHFT(data_tmp, 59)
   40884       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   40885       394950 :          idata = idata + 1
   40886       394950 :          data_tmp = full_data(idata)
   40887       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40888       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40889       394950 :          pack_tmp = ISHFT(pack_tmp, -8)
   40890       394950 :          idata = idata + 1
   40891       394950 :          data_tmp = full_data(idata)
   40892       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40893       394950 :          data_tmp = IAND(data_tmp, mask_left(8))
   40894       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40895       394950 :          ipack = ipack + 1
   40896       394950 :          packed_data(ipack) = pack_tmp
   40897       394950 :          data_tmp = full_data(idata)
   40898       394950 :          pack_tmp = ISHFT(data_tmp, 21)
   40899       394950 :          pack_tmp = ISHFT(pack_tmp, -21)
   40900       394950 :          idata = idata + 1
   40901       394950 :          data_tmp = full_data(idata)
   40902       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40903       394950 :          data_tmp = IAND(data_tmp, mask_left(21))
   40904       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40905       394950 :          ipack = ipack + 1
   40906       394950 :          packed_data(ipack) = pack_tmp
   40907       394950 :          data_tmp = full_data(idata)
   40908       394950 :          pack_tmp = ISHFT(data_tmp, 34)
   40909       394950 :          pack_tmp = ISHFT(pack_tmp, -34)
   40910       394950 :          idata = idata + 1
   40911       394950 :          data_tmp = full_data(idata)
   40912       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40913       394950 :          data_tmp = IAND(data_tmp, mask_left(34))
   40914       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40915       394950 :          ipack = ipack + 1
   40916       394950 :          packed_data(ipack) = pack_tmp
   40917       394950 :          data_tmp = full_data(idata)
   40918       394950 :          pack_tmp = ISHFT(data_tmp, 47)
   40919       394950 :          pack_tmp = ISHFT(pack_tmp, -47)
   40920       394950 :          idata = idata + 1
   40921       394950 :          data_tmp = full_data(idata)
   40922       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40923       394950 :          data_tmp = IAND(data_tmp, mask_left(47))
   40924       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40925       394950 :          ipack = ipack + 1
   40926       394950 :          packed_data(ipack) = pack_tmp
   40927       394950 :          data_tmp = full_data(idata)
   40928       394950 :          pack_tmp = ISHFT(data_tmp, 60)
   40929       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   40930       394950 :          idata = idata + 1
   40931       394950 :          data_tmp = full_data(idata)
   40932       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40933       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40934       394950 :          pack_tmp = ISHFT(pack_tmp, -9)
   40935       394950 :          idata = idata + 1
   40936       394950 :          data_tmp = full_data(idata)
   40937       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40938       394950 :          data_tmp = IAND(data_tmp, mask_left(9))
   40939       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40940       394950 :          ipack = ipack + 1
   40941       394950 :          packed_data(ipack) = pack_tmp
   40942       394950 :          data_tmp = full_data(idata)
   40943       394950 :          pack_tmp = ISHFT(data_tmp, 22)
   40944       394950 :          pack_tmp = ISHFT(pack_tmp, -22)
   40945       394950 :          idata = idata + 1
   40946       394950 :          data_tmp = full_data(idata)
   40947       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40948       394950 :          data_tmp = IAND(data_tmp, mask_left(22))
   40949       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40950       394950 :          ipack = ipack + 1
   40951       394950 :          packed_data(ipack) = pack_tmp
   40952       394950 :          data_tmp = full_data(idata)
   40953       394950 :          pack_tmp = ISHFT(data_tmp, 35)
   40954       394950 :          pack_tmp = ISHFT(pack_tmp, -35)
   40955       394950 :          idata = idata + 1
   40956       394950 :          data_tmp = full_data(idata)
   40957       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40958       394950 :          data_tmp = IAND(data_tmp, mask_left(35))
   40959       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40960       394950 :          ipack = ipack + 1
   40961       394950 :          packed_data(ipack) = pack_tmp
   40962       394950 :          data_tmp = full_data(idata)
   40963       394950 :          pack_tmp = ISHFT(data_tmp, 48)
   40964       394950 :          pack_tmp = ISHFT(pack_tmp, -48)
   40965       394950 :          idata = idata + 1
   40966       394950 :          data_tmp = full_data(idata)
   40967       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40968       394950 :          data_tmp = IAND(data_tmp, mask_left(48))
   40969       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40970       394950 :          ipack = ipack + 1
   40971       394950 :          packed_data(ipack) = pack_tmp
   40972       394950 :          data_tmp = full_data(idata)
   40973       394950 :          pack_tmp = ISHFT(data_tmp, 61)
   40974       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   40975       394950 :          idata = idata + 1
   40976       394950 :          data_tmp = full_data(idata)
   40977       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40978       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40979       394950 :          pack_tmp = ISHFT(pack_tmp, -10)
   40980       394950 :          idata = idata + 1
   40981       394950 :          data_tmp = full_data(idata)
   40982       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40983       394950 :          data_tmp = IAND(data_tmp, mask_left(10))
   40984       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40985       394950 :          ipack = ipack + 1
   40986       394950 :          packed_data(ipack) = pack_tmp
   40987       394950 :          data_tmp = full_data(idata)
   40988       394950 :          pack_tmp = ISHFT(data_tmp, 23)
   40989       394950 :          pack_tmp = ISHFT(pack_tmp, -23)
   40990       394950 :          idata = idata + 1
   40991       394950 :          data_tmp = full_data(idata)
   40992       394950 :          data_tmp = ISHFT(data_tmp, 13)
   40993       394950 :          data_tmp = IAND(data_tmp, mask_left(23))
   40994       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   40995       394950 :          ipack = ipack + 1
   40996       394950 :          packed_data(ipack) = pack_tmp
   40997       394950 :          data_tmp = full_data(idata)
   40998       394950 :          pack_tmp = ISHFT(data_tmp, 36)
   40999       394950 :          pack_tmp = ISHFT(pack_tmp, -36)
   41000       394950 :          idata = idata + 1
   41001       394950 :          data_tmp = full_data(idata)
   41002       394950 :          data_tmp = ISHFT(data_tmp, 13)
   41003       394950 :          data_tmp = IAND(data_tmp, mask_left(36))
   41004       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41005       394950 :          ipack = ipack + 1
   41006       394950 :          packed_data(ipack) = pack_tmp
   41007       394950 :          data_tmp = full_data(idata)
   41008       394950 :          pack_tmp = ISHFT(data_tmp, 49)
   41009       394950 :          pack_tmp = ISHFT(pack_tmp, -49)
   41010       394950 :          idata = idata + 1
   41011       394950 :          data_tmp = full_data(idata)
   41012       394950 :          data_tmp = ISHFT(data_tmp, 13)
   41013       394950 :          data_tmp = IAND(data_tmp, mask_left(49))
   41014       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41015       394950 :          ipack = ipack + 1
   41016       394950 :          packed_data(ipack) = pack_tmp
   41017       394950 :          data_tmp = full_data(idata)
   41018       394950 :          pack_tmp = ISHFT(data_tmp, 62)
   41019       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   41020       394950 :          idata = idata + 1
   41021       394950 :          data_tmp = full_data(idata)
   41022       394950 :          data_tmp = ISHFT(data_tmp, 13)
   41023       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41024       394950 :          pack_tmp = ISHFT(pack_tmp, -11)
   41025       394950 :          idata = idata + 1
   41026       394950 :          data_tmp = full_data(idata)
   41027       394950 :          data_tmp = ISHFT(data_tmp, 13)
   41028       394950 :          data_tmp = IAND(data_tmp, mask_left(11))
   41029       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41030       394950 :          ipack = ipack + 1
   41031       394950 :          packed_data(ipack) = pack_tmp
   41032       394950 :          data_tmp = full_data(idata)
   41033       394950 :          pack_tmp = ISHFT(data_tmp, 24)
   41034       394950 :          pack_tmp = ISHFT(pack_tmp, -24)
   41035       394950 :          idata = idata + 1
   41036       394950 :          data_tmp = full_data(idata)
   41037       394950 :          data_tmp = ISHFT(data_tmp, 13)
   41038       394950 :          data_tmp = IAND(data_tmp, mask_left(24))
   41039       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41040       394950 :          ipack = ipack + 1
   41041       394950 :          packed_data(ipack) = pack_tmp
   41042       394950 :          data_tmp = full_data(idata)
   41043       394950 :          pack_tmp = ISHFT(data_tmp, 37)
   41044       394950 :          pack_tmp = ISHFT(pack_tmp, -37)
   41045       394950 :          idata = idata + 1
   41046       394950 :          data_tmp = full_data(idata)
   41047       394950 :          data_tmp = ISHFT(data_tmp, 13)
   41048       394950 :          data_tmp = IAND(data_tmp, mask_left(37))
   41049       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41050       394950 :          ipack = ipack + 1
   41051       394950 :          packed_data(ipack) = pack_tmp
   41052       394950 :          data_tmp = full_data(idata)
   41053       394950 :          pack_tmp = ISHFT(data_tmp, 50)
   41054       394950 :          pack_tmp = ISHFT(pack_tmp, -50)
   41055       394950 :          idata = idata + 1
   41056       394950 :          data_tmp = full_data(idata)
   41057       394950 :          data_tmp = ISHFT(data_tmp, 13)
   41058       394950 :          data_tmp = IAND(data_tmp, mask_left(50))
   41059       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41060       394950 :          ipack = ipack + 1
   41061       394950 :          packed_data(ipack) = pack_tmp
   41062       394950 :          data_tmp = full_data(idata)
   41063       394950 :          pack_tmp = ISHFT(data_tmp, 63)
   41064       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   41065       394950 :          idata = idata + 1
   41066       394950 :          data_tmp = full_data(idata)
   41067       394950 :          data_tmp = ISHFT(data_tmp, 13)
   41068       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41069       394950 :          pack_tmp = ISHFT(pack_tmp, -12)
   41070       394950 :          idata = idata + 1
   41071       394950 :          data_tmp = full_data(idata)
   41072       394950 :          data_tmp = ISHFT(data_tmp, 13)
   41073       394950 :          data_tmp = IAND(data_tmp, mask_left(12))
   41074       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41075       394950 :          ipack = ipack + 1
   41076       394950 :          packed_data(ipack) = pack_tmp
   41077       394950 :          data_tmp = full_data(idata)
   41078       394950 :          pack_tmp = ISHFT(data_tmp, 25)
   41079       394950 :          pack_tmp = ISHFT(pack_tmp, -25)
   41080       394950 :          idata = idata + 1
   41081       394950 :          data_tmp = full_data(idata)
   41082       394950 :          data_tmp = ISHFT(data_tmp, 13)
   41083       394950 :          data_tmp = IAND(data_tmp, mask_left(25))
   41084       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41085       394950 :          ipack = ipack + 1
   41086       394950 :          packed_data(ipack) = pack_tmp
   41087       394950 :          data_tmp = full_data(idata)
   41088       394950 :          pack_tmp = ISHFT(data_tmp, 38)
   41089       394950 :          pack_tmp = ISHFT(pack_tmp, -38)
   41090       394950 :          idata = idata + 1
   41091       394950 :          data_tmp = full_data(idata)
   41092       394950 :          data_tmp = ISHFT(data_tmp, 13)
   41093       394950 :          data_tmp = IAND(data_tmp, mask_left(38))
   41094       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41095       394950 :          ipack = ipack + 1
   41096       394950 :          packed_data(ipack) = pack_tmp
   41097       394950 :          data_tmp = full_data(idata)
   41098       394950 :          pack_tmp = ISHFT(data_tmp, 51)
   41099       394950 :          pack_tmp = ISHFT(pack_tmp, -51)
   41100       394950 :          idata = idata + 1
   41101       394950 :          data_tmp = full_data(idata)
   41102       394950 :          data_tmp = ISHFT(data_tmp, 13)
   41103       394950 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41104              :          pack_tmp = ISHFT(pack_tmp, 0)
   41105       394950 :          pack_tmp = ISHFT(pack_tmp, 0)
   41106       394950 :          ipack = ipack + 1
   41107       394994 :          packed_data(ipack) = pack_tmp
   41108              :       END DO
   41109        24916 :       IF (Ndata_rep < Ndata) THEN
   41110          436 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   41111              :       END IF
   41112        24916 :    END SUBROUTINE ints2bits_51
   41113              : 
   41114              : ! **************************************************************************************************
   41115              : !> \brief ...
   41116              : !> \param Ndata ...
   41117              : !> \param packed_data ...
   41118              : !> \param full_data ...
   41119              : ! **************************************************************************************************
   41120       101545 :    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       101545 :       ipack = 0
   41131       101545 :       idata = 0
   41132       101545 :       pack_tmp = 0
   41133       101545 :       Ndata_rep = (Ndata/64)*64
   41134       101545 :       DO kdata = 1, Ndata_rep, 64
   41135      1601362 :          idata = idata + 1
   41136      1601362 :          data_tmp = ISHFT(pack_tmp, 51)
   41137      1601362 :          ipack = ipack + 1
   41138      1601362 :          pack_tmp = packed_data(ipack)
   41139      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   41140      1601362 :          pack_tmp = ISHFT(pack_tmp, -51)
   41141      1601362 :          idata = idata + 1
   41142      1601362 :          data_tmp = ISHFT(pack_tmp, 38)
   41143      1601362 :          ipack = ipack + 1
   41144      1601362 :          pack_tmp = packed_data(ipack)
   41145      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   41146      1601362 :          pack_tmp = ISHFT(pack_tmp, -38)
   41147      1601362 :          idata = idata + 1
   41148      1601362 :          data_tmp = ISHFT(pack_tmp, 25)
   41149      1601362 :          ipack = ipack + 1
   41150      1601362 :          pack_tmp = packed_data(ipack)
   41151      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   41152      1601362 :          pack_tmp = ISHFT(pack_tmp, -25)
   41153      1601362 :          idata = idata + 1
   41154      1601362 :          data_tmp = ISHFT(pack_tmp, 12)
   41155      1601362 :          ipack = ipack + 1
   41156      1601362 :          pack_tmp = packed_data(ipack)
   41157      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   41158      1601362 :          pack_tmp = ISHFT(pack_tmp, -12)
   41159      1601362 :          idata = idata + 1
   41160      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41161      1601362 :          full_data(idata) = data_tmp
   41162      1601362 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41163      1601362 :          idata = idata + 1
   41164      1601362 :          data_tmp = ISHFT(pack_tmp, 50)
   41165      1601362 :          ipack = ipack + 1
   41166      1601362 :          pack_tmp = packed_data(ipack)
   41167      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   41168      1601362 :          pack_tmp = ISHFT(pack_tmp, -50)
   41169      1601362 :          idata = idata + 1
   41170      1601362 :          data_tmp = ISHFT(pack_tmp, 37)
   41171      1601362 :          ipack = ipack + 1
   41172      1601362 :          pack_tmp = packed_data(ipack)
   41173      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   41174      1601362 :          pack_tmp = ISHFT(pack_tmp, -37)
   41175      1601362 :          idata = idata + 1
   41176      1601362 :          data_tmp = ISHFT(pack_tmp, 24)
   41177      1601362 :          ipack = ipack + 1
   41178      1601362 :          pack_tmp = packed_data(ipack)
   41179      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   41180      1601362 :          pack_tmp = ISHFT(pack_tmp, -24)
   41181      1601362 :          idata = idata + 1
   41182      1601362 :          data_tmp = ISHFT(pack_tmp, 11)
   41183      1601362 :          ipack = ipack + 1
   41184      1601362 :          pack_tmp = packed_data(ipack)
   41185      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   41186      1601362 :          pack_tmp = ISHFT(pack_tmp, -11)
   41187      1601362 :          idata = idata + 1
   41188      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41189      1601362 :          full_data(idata) = data_tmp
   41190      1601362 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41191      1601362 :          idata = idata + 1
   41192      1601362 :          data_tmp = ISHFT(pack_tmp, 49)
   41193      1601362 :          ipack = ipack + 1
   41194      1601362 :          pack_tmp = packed_data(ipack)
   41195      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   41196      1601362 :          pack_tmp = ISHFT(pack_tmp, -49)
   41197      1601362 :          idata = idata + 1
   41198      1601362 :          data_tmp = ISHFT(pack_tmp, 36)
   41199      1601362 :          ipack = ipack + 1
   41200      1601362 :          pack_tmp = packed_data(ipack)
   41201      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   41202      1601362 :          pack_tmp = ISHFT(pack_tmp, -36)
   41203      1601362 :          idata = idata + 1
   41204      1601362 :          data_tmp = ISHFT(pack_tmp, 23)
   41205      1601362 :          ipack = ipack + 1
   41206      1601362 :          pack_tmp = packed_data(ipack)
   41207      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   41208      1601362 :          pack_tmp = ISHFT(pack_tmp, -23)
   41209      1601362 :          idata = idata + 1
   41210      1601362 :          data_tmp = ISHFT(pack_tmp, 10)
   41211      1601362 :          ipack = ipack + 1
   41212      1601362 :          pack_tmp = packed_data(ipack)
   41213      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   41214      1601362 :          pack_tmp = ISHFT(pack_tmp, -10)
   41215      1601362 :          idata = idata + 1
   41216      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41217      1601362 :          full_data(idata) = data_tmp
   41218      1601362 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41219      1601362 :          idata = idata + 1
   41220      1601362 :          data_tmp = ISHFT(pack_tmp, 48)
   41221      1601362 :          ipack = ipack + 1
   41222      1601362 :          pack_tmp = packed_data(ipack)
   41223      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   41224      1601362 :          pack_tmp = ISHFT(pack_tmp, -48)
   41225      1601362 :          idata = idata + 1
   41226      1601362 :          data_tmp = ISHFT(pack_tmp, 35)
   41227      1601362 :          ipack = ipack + 1
   41228      1601362 :          pack_tmp = packed_data(ipack)
   41229      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   41230      1601362 :          pack_tmp = ISHFT(pack_tmp, -35)
   41231      1601362 :          idata = idata + 1
   41232      1601362 :          data_tmp = ISHFT(pack_tmp, 22)
   41233      1601362 :          ipack = ipack + 1
   41234      1601362 :          pack_tmp = packed_data(ipack)
   41235      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   41236      1601362 :          pack_tmp = ISHFT(pack_tmp, -22)
   41237      1601362 :          idata = idata + 1
   41238      1601362 :          data_tmp = ISHFT(pack_tmp, 9)
   41239      1601362 :          ipack = ipack + 1
   41240      1601362 :          pack_tmp = packed_data(ipack)
   41241      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   41242      1601362 :          pack_tmp = ISHFT(pack_tmp, -9)
   41243      1601362 :          idata = idata + 1
   41244      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41245      1601362 :          full_data(idata) = data_tmp
   41246      1601362 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41247      1601362 :          idata = idata + 1
   41248      1601362 :          data_tmp = ISHFT(pack_tmp, 47)
   41249      1601362 :          ipack = ipack + 1
   41250      1601362 :          pack_tmp = packed_data(ipack)
   41251      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   41252      1601362 :          pack_tmp = ISHFT(pack_tmp, -47)
   41253      1601362 :          idata = idata + 1
   41254      1601362 :          data_tmp = ISHFT(pack_tmp, 34)
   41255      1601362 :          ipack = ipack + 1
   41256      1601362 :          pack_tmp = packed_data(ipack)
   41257      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   41258      1601362 :          pack_tmp = ISHFT(pack_tmp, -34)
   41259      1601362 :          idata = idata + 1
   41260      1601362 :          data_tmp = ISHFT(pack_tmp, 21)
   41261      1601362 :          ipack = ipack + 1
   41262      1601362 :          pack_tmp = packed_data(ipack)
   41263      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   41264      1601362 :          pack_tmp = ISHFT(pack_tmp, -21)
   41265      1601362 :          idata = idata + 1
   41266      1601362 :          data_tmp = ISHFT(pack_tmp, 8)
   41267      1601362 :          ipack = ipack + 1
   41268      1601362 :          pack_tmp = packed_data(ipack)
   41269      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   41270      1601362 :          pack_tmp = ISHFT(pack_tmp, -8)
   41271      1601362 :          idata = idata + 1
   41272      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41273      1601362 :          full_data(idata) = data_tmp
   41274      1601362 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41275      1601362 :          idata = idata + 1
   41276      1601362 :          data_tmp = ISHFT(pack_tmp, 46)
   41277      1601362 :          ipack = ipack + 1
   41278      1601362 :          pack_tmp = packed_data(ipack)
   41279      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   41280      1601362 :          pack_tmp = ISHFT(pack_tmp, -46)
   41281      1601362 :          idata = idata + 1
   41282      1601362 :          data_tmp = ISHFT(pack_tmp, 33)
   41283      1601362 :          ipack = ipack + 1
   41284      1601362 :          pack_tmp = packed_data(ipack)
   41285      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   41286      1601362 :          pack_tmp = ISHFT(pack_tmp, -33)
   41287      1601362 :          idata = idata + 1
   41288      1601362 :          data_tmp = ISHFT(pack_tmp, 20)
   41289      1601362 :          ipack = ipack + 1
   41290      1601362 :          pack_tmp = packed_data(ipack)
   41291      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   41292      1601362 :          pack_tmp = ISHFT(pack_tmp, -20)
   41293      1601362 :          idata = idata + 1
   41294      1601362 :          data_tmp = ISHFT(pack_tmp, 7)
   41295      1601362 :          ipack = ipack + 1
   41296      1601362 :          pack_tmp = packed_data(ipack)
   41297      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   41298      1601362 :          pack_tmp = ISHFT(pack_tmp, -7)
   41299      1601362 :          idata = idata + 1
   41300      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41301      1601362 :          full_data(idata) = data_tmp
   41302      1601362 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41303      1601362 :          idata = idata + 1
   41304      1601362 :          data_tmp = ISHFT(pack_tmp, 45)
   41305      1601362 :          ipack = ipack + 1
   41306      1601362 :          pack_tmp = packed_data(ipack)
   41307      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   41308      1601362 :          pack_tmp = ISHFT(pack_tmp, -45)
   41309      1601362 :          idata = idata + 1
   41310      1601362 :          data_tmp = ISHFT(pack_tmp, 32)
   41311      1601362 :          ipack = ipack + 1
   41312      1601362 :          pack_tmp = packed_data(ipack)
   41313      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   41314      1601362 :          pack_tmp = ISHFT(pack_tmp, -32)
   41315      1601362 :          idata = idata + 1
   41316      1601362 :          data_tmp = ISHFT(pack_tmp, 19)
   41317      1601362 :          ipack = ipack + 1
   41318      1601362 :          pack_tmp = packed_data(ipack)
   41319      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   41320      1601362 :          pack_tmp = ISHFT(pack_tmp, -19)
   41321      1601362 :          idata = idata + 1
   41322      1601362 :          data_tmp = ISHFT(pack_tmp, 6)
   41323      1601362 :          ipack = ipack + 1
   41324      1601362 :          pack_tmp = packed_data(ipack)
   41325      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   41326      1601362 :          pack_tmp = ISHFT(pack_tmp, -6)
   41327      1601362 :          idata = idata + 1
   41328      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41329      1601362 :          full_data(idata) = data_tmp
   41330      1601362 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41331      1601362 :          idata = idata + 1
   41332      1601362 :          data_tmp = ISHFT(pack_tmp, 44)
   41333      1601362 :          ipack = ipack + 1
   41334      1601362 :          pack_tmp = packed_data(ipack)
   41335      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   41336      1601362 :          pack_tmp = ISHFT(pack_tmp, -44)
   41337      1601362 :          idata = idata + 1
   41338      1601362 :          data_tmp = ISHFT(pack_tmp, 31)
   41339      1601362 :          ipack = ipack + 1
   41340      1601362 :          pack_tmp = packed_data(ipack)
   41341      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   41342      1601362 :          pack_tmp = ISHFT(pack_tmp, -31)
   41343      1601362 :          idata = idata + 1
   41344      1601362 :          data_tmp = ISHFT(pack_tmp, 18)
   41345      1601362 :          ipack = ipack + 1
   41346      1601362 :          pack_tmp = packed_data(ipack)
   41347      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   41348      1601362 :          pack_tmp = ISHFT(pack_tmp, -18)
   41349      1601362 :          idata = idata + 1
   41350      1601362 :          data_tmp = ISHFT(pack_tmp, 5)
   41351      1601362 :          ipack = ipack + 1
   41352      1601362 :          pack_tmp = packed_data(ipack)
   41353      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   41354      1601362 :          pack_tmp = ISHFT(pack_tmp, -5)
   41355      1601362 :          idata = idata + 1
   41356      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41357      1601362 :          full_data(idata) = data_tmp
   41358      1601362 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41359      1601362 :          idata = idata + 1
   41360      1601362 :          data_tmp = ISHFT(pack_tmp, 43)
   41361      1601362 :          ipack = ipack + 1
   41362      1601362 :          pack_tmp = packed_data(ipack)
   41363      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   41364      1601362 :          pack_tmp = ISHFT(pack_tmp, -43)
   41365      1601362 :          idata = idata + 1
   41366      1601362 :          data_tmp = ISHFT(pack_tmp, 30)
   41367      1601362 :          ipack = ipack + 1
   41368      1601362 :          pack_tmp = packed_data(ipack)
   41369      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   41370      1601362 :          pack_tmp = ISHFT(pack_tmp, -30)
   41371      1601362 :          idata = idata + 1
   41372      1601362 :          data_tmp = ISHFT(pack_tmp, 17)
   41373      1601362 :          ipack = ipack + 1
   41374      1601362 :          pack_tmp = packed_data(ipack)
   41375      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   41376      1601362 :          pack_tmp = ISHFT(pack_tmp, -17)
   41377      1601362 :          idata = idata + 1
   41378      1601362 :          data_tmp = ISHFT(pack_tmp, 4)
   41379      1601362 :          ipack = ipack + 1
   41380      1601362 :          pack_tmp = packed_data(ipack)
   41381      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   41382      1601362 :          pack_tmp = ISHFT(pack_tmp, -4)
   41383      1601362 :          idata = idata + 1
   41384      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41385      1601362 :          full_data(idata) = data_tmp
   41386      1601362 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41387      1601362 :          idata = idata + 1
   41388      1601362 :          data_tmp = ISHFT(pack_tmp, 42)
   41389      1601362 :          ipack = ipack + 1
   41390      1601362 :          pack_tmp = packed_data(ipack)
   41391      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   41392      1601362 :          pack_tmp = ISHFT(pack_tmp, -42)
   41393      1601362 :          idata = idata + 1
   41394      1601362 :          data_tmp = ISHFT(pack_tmp, 29)
   41395      1601362 :          ipack = ipack + 1
   41396      1601362 :          pack_tmp = packed_data(ipack)
   41397      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   41398      1601362 :          pack_tmp = ISHFT(pack_tmp, -29)
   41399      1601362 :          idata = idata + 1
   41400      1601362 :          data_tmp = ISHFT(pack_tmp, 16)
   41401      1601362 :          ipack = ipack + 1
   41402      1601362 :          pack_tmp = packed_data(ipack)
   41403      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   41404      1601362 :          pack_tmp = ISHFT(pack_tmp, -16)
   41405      1601362 :          idata = idata + 1
   41406      1601362 :          data_tmp = ISHFT(pack_tmp, 3)
   41407      1601362 :          ipack = ipack + 1
   41408      1601362 :          pack_tmp = packed_data(ipack)
   41409      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   41410      1601362 :          pack_tmp = ISHFT(pack_tmp, -3)
   41411      1601362 :          idata = idata + 1
   41412      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41413      1601362 :          full_data(idata) = data_tmp
   41414      1601362 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41415      1601362 :          idata = idata + 1
   41416      1601362 :          data_tmp = ISHFT(pack_tmp, 41)
   41417      1601362 :          ipack = ipack + 1
   41418      1601362 :          pack_tmp = packed_data(ipack)
   41419      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   41420      1601362 :          pack_tmp = ISHFT(pack_tmp, -41)
   41421      1601362 :          idata = idata + 1
   41422      1601362 :          data_tmp = ISHFT(pack_tmp, 28)
   41423      1601362 :          ipack = ipack + 1
   41424      1601362 :          pack_tmp = packed_data(ipack)
   41425      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   41426      1601362 :          pack_tmp = ISHFT(pack_tmp, -28)
   41427      1601362 :          idata = idata + 1
   41428      1601362 :          data_tmp = ISHFT(pack_tmp, 15)
   41429      1601362 :          ipack = ipack + 1
   41430      1601362 :          pack_tmp = packed_data(ipack)
   41431      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   41432      1601362 :          pack_tmp = ISHFT(pack_tmp, -15)
   41433      1601362 :          idata = idata + 1
   41434      1601362 :          data_tmp = ISHFT(pack_tmp, 2)
   41435      1601362 :          ipack = ipack + 1
   41436      1601362 :          pack_tmp = packed_data(ipack)
   41437      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   41438      1601362 :          pack_tmp = ISHFT(pack_tmp, -2)
   41439      1601362 :          idata = idata + 1
   41440      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41441      1601362 :          full_data(idata) = data_tmp
   41442      1601362 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41443      1601362 :          idata = idata + 1
   41444      1601362 :          data_tmp = ISHFT(pack_tmp, 40)
   41445      1601362 :          ipack = ipack + 1
   41446      1601362 :          pack_tmp = packed_data(ipack)
   41447      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   41448      1601362 :          pack_tmp = ISHFT(pack_tmp, -40)
   41449      1601362 :          idata = idata + 1
   41450      1601362 :          data_tmp = ISHFT(pack_tmp, 27)
   41451      1601362 :          ipack = ipack + 1
   41452      1601362 :          pack_tmp = packed_data(ipack)
   41453      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   41454      1601362 :          pack_tmp = ISHFT(pack_tmp, -27)
   41455      1601362 :          idata = idata + 1
   41456      1601362 :          data_tmp = ISHFT(pack_tmp, 14)
   41457      1601362 :          ipack = ipack + 1
   41458      1601362 :          pack_tmp = packed_data(ipack)
   41459      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   41460      1601362 :          pack_tmp = ISHFT(pack_tmp, -14)
   41461      1601362 :          idata = idata + 1
   41462      1601362 :          data_tmp = ISHFT(pack_tmp, 1)
   41463      1601362 :          ipack = ipack + 1
   41464      1601362 :          pack_tmp = packed_data(ipack)
   41465      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   41466      1601362 :          pack_tmp = ISHFT(pack_tmp, -1)
   41467      1601362 :          idata = idata + 1
   41468      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41469      1601362 :          full_data(idata) = data_tmp
   41470      1601362 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41471      1601362 :          idata = idata + 1
   41472      1601362 :          data_tmp = ISHFT(pack_tmp, 39)
   41473      1601362 :          ipack = ipack + 1
   41474      1601362 :          pack_tmp = packed_data(ipack)
   41475      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   41476      1601362 :          pack_tmp = ISHFT(pack_tmp, -39)
   41477      1601362 :          idata = idata + 1
   41478      1601362 :          data_tmp = ISHFT(pack_tmp, 26)
   41479      1601362 :          ipack = ipack + 1
   41480      1601362 :          pack_tmp = packed_data(ipack)
   41481      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   41482      1601362 :          pack_tmp = ISHFT(pack_tmp, -26)
   41483      1601362 :          idata = idata + 1
   41484      1601362 :          data_tmp = ISHFT(pack_tmp, 13)
   41485      1601362 :          ipack = ipack + 1
   41486      1601362 :          pack_tmp = packed_data(ipack)
   41487      1601362 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   41488      1601362 :          pack_tmp = ISHFT(pack_tmp, -13)
   41489      1601362 :          idata = idata + 1
   41490      1601362 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   41491      1601362 :          full_data(idata) = data_tmp
   41492      1601686 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   41493              :       END DO
   41494       101545 :       IF (Ndata_rep < Ndata) THEN
   41495         2748 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   41496              :       END IF
   41497       101545 :    END SUBROUTINE bits2ints_51
   41498              : 
   41499              : ! **************************************************************************************************
   41500              : !> \brief ...
   41501              : !> \param Ndata ...
   41502              : !> \param packed_data ...
   41503              : !> \param full_data ...
   41504              : ! **************************************************************************************************
   41505        24942 :    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        24942 :       idata = 0
   41516        24942 :       ipack = 0
   41517        24942 :       Ndata_rep = (Ndata/64)*64
   41518        24942 :       DO kdata = 1, Ndata_rep, 64
   41519       395128 :          pack_tmp = 0
   41520       395128 :          idata = idata + 1
   41521       395128 :          data_tmp = full_data(idata)
   41522       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41523       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41524       395128 :          pack_tmp = ISHFT(pack_tmp, -12)
   41525       395128 :          idata = idata + 1
   41526       395128 :          data_tmp = full_data(idata)
   41527       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41528       395128 :          data_tmp = IAND(data_tmp, mask_left(12))
   41529       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41530       395128 :          ipack = ipack + 1
   41531       395128 :          packed_data(ipack) = pack_tmp
   41532       395128 :          data_tmp = full_data(idata)
   41533       395128 :          pack_tmp = ISHFT(data_tmp, 24)
   41534       395128 :          pack_tmp = ISHFT(pack_tmp, -24)
   41535       395128 :          idata = idata + 1
   41536       395128 :          data_tmp = full_data(idata)
   41537       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41538       395128 :          data_tmp = IAND(data_tmp, mask_left(24))
   41539       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41540       395128 :          ipack = ipack + 1
   41541       395128 :          packed_data(ipack) = pack_tmp
   41542       395128 :          data_tmp = full_data(idata)
   41543       395128 :          pack_tmp = ISHFT(data_tmp, 36)
   41544       395128 :          pack_tmp = ISHFT(pack_tmp, -36)
   41545       395128 :          idata = idata + 1
   41546       395128 :          data_tmp = full_data(idata)
   41547       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41548       395128 :          data_tmp = IAND(data_tmp, mask_left(36))
   41549       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41550       395128 :          ipack = ipack + 1
   41551       395128 :          packed_data(ipack) = pack_tmp
   41552       395128 :          data_tmp = full_data(idata)
   41553       395128 :          pack_tmp = ISHFT(data_tmp, 48)
   41554       395128 :          pack_tmp = ISHFT(pack_tmp, -48)
   41555       395128 :          idata = idata + 1
   41556       395128 :          data_tmp = full_data(idata)
   41557       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41558       395128 :          data_tmp = IAND(data_tmp, mask_left(48))
   41559       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41560       395128 :          ipack = ipack + 1
   41561       395128 :          packed_data(ipack) = pack_tmp
   41562       395128 :          data_tmp = full_data(idata)
   41563       395128 :          pack_tmp = ISHFT(data_tmp, 60)
   41564       395128 :          pack_tmp = ISHFT(pack_tmp, -52)
   41565       395128 :          idata = idata + 1
   41566       395128 :          data_tmp = full_data(idata)
   41567       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41568       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41569       395128 :          pack_tmp = ISHFT(pack_tmp, -8)
   41570       395128 :          idata = idata + 1
   41571       395128 :          data_tmp = full_data(idata)
   41572       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41573       395128 :          data_tmp = IAND(data_tmp, mask_left(8))
   41574       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41575       395128 :          ipack = ipack + 1
   41576       395128 :          packed_data(ipack) = pack_tmp
   41577       395128 :          data_tmp = full_data(idata)
   41578       395128 :          pack_tmp = ISHFT(data_tmp, 20)
   41579       395128 :          pack_tmp = ISHFT(pack_tmp, -20)
   41580       395128 :          idata = idata + 1
   41581       395128 :          data_tmp = full_data(idata)
   41582       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41583       395128 :          data_tmp = IAND(data_tmp, mask_left(20))
   41584       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41585       395128 :          ipack = ipack + 1
   41586       395128 :          packed_data(ipack) = pack_tmp
   41587       395128 :          data_tmp = full_data(idata)
   41588       395128 :          pack_tmp = ISHFT(data_tmp, 32)
   41589       395128 :          pack_tmp = ISHFT(pack_tmp, -32)
   41590       395128 :          idata = idata + 1
   41591       395128 :          data_tmp = full_data(idata)
   41592       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41593       395128 :          data_tmp = IAND(data_tmp, mask_left(32))
   41594       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41595       395128 :          ipack = ipack + 1
   41596       395128 :          packed_data(ipack) = pack_tmp
   41597       395128 :          data_tmp = full_data(idata)
   41598       395128 :          pack_tmp = ISHFT(data_tmp, 44)
   41599       395128 :          pack_tmp = ISHFT(pack_tmp, -44)
   41600       395128 :          idata = idata + 1
   41601       395128 :          data_tmp = full_data(idata)
   41602       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41603       395128 :          data_tmp = IAND(data_tmp, mask_left(44))
   41604       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41605       395128 :          ipack = ipack + 1
   41606       395128 :          packed_data(ipack) = pack_tmp
   41607       395128 :          data_tmp = full_data(idata)
   41608       395128 :          pack_tmp = ISHFT(data_tmp, 56)
   41609       395128 :          pack_tmp = ISHFT(pack_tmp, -52)
   41610       395128 :          idata = idata + 1
   41611       395128 :          data_tmp = full_data(idata)
   41612       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41613       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41614       395128 :          pack_tmp = ISHFT(pack_tmp, -4)
   41615       395128 :          idata = idata + 1
   41616       395128 :          data_tmp = full_data(idata)
   41617       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41618       395128 :          data_tmp = IAND(data_tmp, mask_left(4))
   41619       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41620       395128 :          ipack = ipack + 1
   41621       395128 :          packed_data(ipack) = pack_tmp
   41622       395128 :          data_tmp = full_data(idata)
   41623       395128 :          pack_tmp = ISHFT(data_tmp, 16)
   41624       395128 :          pack_tmp = ISHFT(pack_tmp, -16)
   41625       395128 :          idata = idata + 1
   41626       395128 :          data_tmp = full_data(idata)
   41627       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41628       395128 :          data_tmp = IAND(data_tmp, mask_left(16))
   41629       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41630       395128 :          ipack = ipack + 1
   41631       395128 :          packed_data(ipack) = pack_tmp
   41632       395128 :          data_tmp = full_data(idata)
   41633       395128 :          pack_tmp = ISHFT(data_tmp, 28)
   41634       395128 :          pack_tmp = ISHFT(pack_tmp, -28)
   41635       395128 :          idata = idata + 1
   41636       395128 :          data_tmp = full_data(idata)
   41637       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41638       395128 :          data_tmp = IAND(data_tmp, mask_left(28))
   41639       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41640       395128 :          ipack = ipack + 1
   41641       395128 :          packed_data(ipack) = pack_tmp
   41642       395128 :          data_tmp = full_data(idata)
   41643       395128 :          pack_tmp = ISHFT(data_tmp, 40)
   41644       395128 :          pack_tmp = ISHFT(pack_tmp, -40)
   41645       395128 :          idata = idata + 1
   41646       395128 :          data_tmp = full_data(idata)
   41647       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41648       395128 :          data_tmp = IAND(data_tmp, mask_left(40))
   41649       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41650       395128 :          ipack = ipack + 1
   41651       395128 :          packed_data(ipack) = pack_tmp
   41652       395128 :          data_tmp = full_data(idata)
   41653       395128 :          pack_tmp = ISHFT(data_tmp, 52)
   41654       395128 :          pack_tmp = ISHFT(pack_tmp, -52)
   41655       395128 :          idata = idata + 1
   41656       395128 :          data_tmp = full_data(idata)
   41657       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41658       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41659       395128 :          pack_tmp = ISHFT(pack_tmp, 0)
   41660       395128 :          idata = idata + 1
   41661       395128 :          data_tmp = full_data(idata)
   41662              :          data_tmp = ISHFT(data_tmp, 12)
   41663       395128 :          data_tmp = IAND(data_tmp, mask_left(0))
   41664       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41665       395128 :          ipack = ipack + 1
   41666       395128 :          packed_data(ipack) = pack_tmp
   41667       395128 :          data_tmp = full_data(idata)
   41668       395128 :          pack_tmp = ISHFT(data_tmp, 12)
   41669       395128 :          pack_tmp = ISHFT(pack_tmp, -12)
   41670       395128 :          idata = idata + 1
   41671       395128 :          data_tmp = full_data(idata)
   41672       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41673       395128 :          data_tmp = IAND(data_tmp, mask_left(12))
   41674       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41675       395128 :          ipack = ipack + 1
   41676       395128 :          packed_data(ipack) = pack_tmp
   41677       395128 :          data_tmp = full_data(idata)
   41678       395128 :          pack_tmp = ISHFT(data_tmp, 24)
   41679       395128 :          pack_tmp = ISHFT(pack_tmp, -24)
   41680       395128 :          idata = idata + 1
   41681       395128 :          data_tmp = full_data(idata)
   41682       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41683       395128 :          data_tmp = IAND(data_tmp, mask_left(24))
   41684       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41685       395128 :          ipack = ipack + 1
   41686       395128 :          packed_data(ipack) = pack_tmp
   41687       395128 :          data_tmp = full_data(idata)
   41688       395128 :          pack_tmp = ISHFT(data_tmp, 36)
   41689       395128 :          pack_tmp = ISHFT(pack_tmp, -36)
   41690       395128 :          idata = idata + 1
   41691       395128 :          data_tmp = full_data(idata)
   41692       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41693       395128 :          data_tmp = IAND(data_tmp, mask_left(36))
   41694       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41695       395128 :          ipack = ipack + 1
   41696       395128 :          packed_data(ipack) = pack_tmp
   41697       395128 :          data_tmp = full_data(idata)
   41698       395128 :          pack_tmp = ISHFT(data_tmp, 48)
   41699       395128 :          pack_tmp = ISHFT(pack_tmp, -48)
   41700       395128 :          idata = idata + 1
   41701       395128 :          data_tmp = full_data(idata)
   41702       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41703       395128 :          data_tmp = IAND(data_tmp, mask_left(48))
   41704       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41705       395128 :          ipack = ipack + 1
   41706       395128 :          packed_data(ipack) = pack_tmp
   41707       395128 :          data_tmp = full_data(idata)
   41708       395128 :          pack_tmp = ISHFT(data_tmp, 60)
   41709       395128 :          pack_tmp = ISHFT(pack_tmp, -52)
   41710       395128 :          idata = idata + 1
   41711       395128 :          data_tmp = full_data(idata)
   41712       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41713       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41714       395128 :          pack_tmp = ISHFT(pack_tmp, -8)
   41715       395128 :          idata = idata + 1
   41716       395128 :          data_tmp = full_data(idata)
   41717       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41718       395128 :          data_tmp = IAND(data_tmp, mask_left(8))
   41719       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41720       395128 :          ipack = ipack + 1
   41721       395128 :          packed_data(ipack) = pack_tmp
   41722       395128 :          data_tmp = full_data(idata)
   41723       395128 :          pack_tmp = ISHFT(data_tmp, 20)
   41724       395128 :          pack_tmp = ISHFT(pack_tmp, -20)
   41725       395128 :          idata = idata + 1
   41726       395128 :          data_tmp = full_data(idata)
   41727       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41728       395128 :          data_tmp = IAND(data_tmp, mask_left(20))
   41729       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41730       395128 :          ipack = ipack + 1
   41731       395128 :          packed_data(ipack) = pack_tmp
   41732       395128 :          data_tmp = full_data(idata)
   41733       395128 :          pack_tmp = ISHFT(data_tmp, 32)
   41734       395128 :          pack_tmp = ISHFT(pack_tmp, -32)
   41735       395128 :          idata = idata + 1
   41736       395128 :          data_tmp = full_data(idata)
   41737       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41738       395128 :          data_tmp = IAND(data_tmp, mask_left(32))
   41739       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41740       395128 :          ipack = ipack + 1
   41741       395128 :          packed_data(ipack) = pack_tmp
   41742       395128 :          data_tmp = full_data(idata)
   41743       395128 :          pack_tmp = ISHFT(data_tmp, 44)
   41744       395128 :          pack_tmp = ISHFT(pack_tmp, -44)
   41745       395128 :          idata = idata + 1
   41746       395128 :          data_tmp = full_data(idata)
   41747       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41748       395128 :          data_tmp = IAND(data_tmp, mask_left(44))
   41749       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41750       395128 :          ipack = ipack + 1
   41751       395128 :          packed_data(ipack) = pack_tmp
   41752       395128 :          data_tmp = full_data(idata)
   41753       395128 :          pack_tmp = ISHFT(data_tmp, 56)
   41754       395128 :          pack_tmp = ISHFT(pack_tmp, -52)
   41755       395128 :          idata = idata + 1
   41756       395128 :          data_tmp = full_data(idata)
   41757       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41758       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41759       395128 :          pack_tmp = ISHFT(pack_tmp, -4)
   41760       395128 :          idata = idata + 1
   41761       395128 :          data_tmp = full_data(idata)
   41762       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41763       395128 :          data_tmp = IAND(data_tmp, mask_left(4))
   41764       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41765       395128 :          ipack = ipack + 1
   41766       395128 :          packed_data(ipack) = pack_tmp
   41767       395128 :          data_tmp = full_data(idata)
   41768       395128 :          pack_tmp = ISHFT(data_tmp, 16)
   41769       395128 :          pack_tmp = ISHFT(pack_tmp, -16)
   41770       395128 :          idata = idata + 1
   41771       395128 :          data_tmp = full_data(idata)
   41772       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41773       395128 :          data_tmp = IAND(data_tmp, mask_left(16))
   41774       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41775       395128 :          ipack = ipack + 1
   41776       395128 :          packed_data(ipack) = pack_tmp
   41777       395128 :          data_tmp = full_data(idata)
   41778       395128 :          pack_tmp = ISHFT(data_tmp, 28)
   41779       395128 :          pack_tmp = ISHFT(pack_tmp, -28)
   41780       395128 :          idata = idata + 1
   41781       395128 :          data_tmp = full_data(idata)
   41782       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41783       395128 :          data_tmp = IAND(data_tmp, mask_left(28))
   41784       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41785       395128 :          ipack = ipack + 1
   41786       395128 :          packed_data(ipack) = pack_tmp
   41787       395128 :          data_tmp = full_data(idata)
   41788       395128 :          pack_tmp = ISHFT(data_tmp, 40)
   41789       395128 :          pack_tmp = ISHFT(pack_tmp, -40)
   41790       395128 :          idata = idata + 1
   41791       395128 :          data_tmp = full_data(idata)
   41792       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41793       395128 :          data_tmp = IAND(data_tmp, mask_left(40))
   41794       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41795       395128 :          ipack = ipack + 1
   41796       395128 :          packed_data(ipack) = pack_tmp
   41797       395128 :          data_tmp = full_data(idata)
   41798       395128 :          pack_tmp = ISHFT(data_tmp, 52)
   41799       395128 :          pack_tmp = ISHFT(pack_tmp, -52)
   41800       395128 :          idata = idata + 1
   41801       395128 :          data_tmp = full_data(idata)
   41802       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41803       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41804       395128 :          pack_tmp = ISHFT(pack_tmp, 0)
   41805       395128 :          idata = idata + 1
   41806       395128 :          data_tmp = full_data(idata)
   41807              :          data_tmp = ISHFT(data_tmp, 12)
   41808       395128 :          data_tmp = IAND(data_tmp, mask_left(0))
   41809       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41810       395128 :          ipack = ipack + 1
   41811       395128 :          packed_data(ipack) = pack_tmp
   41812       395128 :          data_tmp = full_data(idata)
   41813       395128 :          pack_tmp = ISHFT(data_tmp, 12)
   41814       395128 :          pack_tmp = ISHFT(pack_tmp, -12)
   41815       395128 :          idata = idata + 1
   41816       395128 :          data_tmp = full_data(idata)
   41817       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41818       395128 :          data_tmp = IAND(data_tmp, mask_left(12))
   41819       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41820       395128 :          ipack = ipack + 1
   41821       395128 :          packed_data(ipack) = pack_tmp
   41822       395128 :          data_tmp = full_data(idata)
   41823       395128 :          pack_tmp = ISHFT(data_tmp, 24)
   41824       395128 :          pack_tmp = ISHFT(pack_tmp, -24)
   41825       395128 :          idata = idata + 1
   41826       395128 :          data_tmp = full_data(idata)
   41827       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41828       395128 :          data_tmp = IAND(data_tmp, mask_left(24))
   41829       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41830       395128 :          ipack = ipack + 1
   41831       395128 :          packed_data(ipack) = pack_tmp
   41832       395128 :          data_tmp = full_data(idata)
   41833       395128 :          pack_tmp = ISHFT(data_tmp, 36)
   41834       395128 :          pack_tmp = ISHFT(pack_tmp, -36)
   41835       395128 :          idata = idata + 1
   41836       395128 :          data_tmp = full_data(idata)
   41837       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41838       395128 :          data_tmp = IAND(data_tmp, mask_left(36))
   41839       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41840       395128 :          ipack = ipack + 1
   41841       395128 :          packed_data(ipack) = pack_tmp
   41842       395128 :          data_tmp = full_data(idata)
   41843       395128 :          pack_tmp = ISHFT(data_tmp, 48)
   41844       395128 :          pack_tmp = ISHFT(pack_tmp, -48)
   41845       395128 :          idata = idata + 1
   41846       395128 :          data_tmp = full_data(idata)
   41847       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41848       395128 :          data_tmp = IAND(data_tmp, mask_left(48))
   41849       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41850       395128 :          ipack = ipack + 1
   41851       395128 :          packed_data(ipack) = pack_tmp
   41852       395128 :          data_tmp = full_data(idata)
   41853       395128 :          pack_tmp = ISHFT(data_tmp, 60)
   41854       395128 :          pack_tmp = ISHFT(pack_tmp, -52)
   41855       395128 :          idata = idata + 1
   41856       395128 :          data_tmp = full_data(idata)
   41857       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41858       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41859       395128 :          pack_tmp = ISHFT(pack_tmp, -8)
   41860       395128 :          idata = idata + 1
   41861       395128 :          data_tmp = full_data(idata)
   41862       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41863       395128 :          data_tmp = IAND(data_tmp, mask_left(8))
   41864       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41865       395128 :          ipack = ipack + 1
   41866       395128 :          packed_data(ipack) = pack_tmp
   41867       395128 :          data_tmp = full_data(idata)
   41868       395128 :          pack_tmp = ISHFT(data_tmp, 20)
   41869       395128 :          pack_tmp = ISHFT(pack_tmp, -20)
   41870       395128 :          idata = idata + 1
   41871       395128 :          data_tmp = full_data(idata)
   41872       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41873       395128 :          data_tmp = IAND(data_tmp, mask_left(20))
   41874       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41875       395128 :          ipack = ipack + 1
   41876       395128 :          packed_data(ipack) = pack_tmp
   41877       395128 :          data_tmp = full_data(idata)
   41878       395128 :          pack_tmp = ISHFT(data_tmp, 32)
   41879       395128 :          pack_tmp = ISHFT(pack_tmp, -32)
   41880       395128 :          idata = idata + 1
   41881       395128 :          data_tmp = full_data(idata)
   41882       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41883       395128 :          data_tmp = IAND(data_tmp, mask_left(32))
   41884       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41885       395128 :          ipack = ipack + 1
   41886       395128 :          packed_data(ipack) = pack_tmp
   41887       395128 :          data_tmp = full_data(idata)
   41888       395128 :          pack_tmp = ISHFT(data_tmp, 44)
   41889       395128 :          pack_tmp = ISHFT(pack_tmp, -44)
   41890       395128 :          idata = idata + 1
   41891       395128 :          data_tmp = full_data(idata)
   41892       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41893       395128 :          data_tmp = IAND(data_tmp, mask_left(44))
   41894       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41895       395128 :          ipack = ipack + 1
   41896       395128 :          packed_data(ipack) = pack_tmp
   41897       395128 :          data_tmp = full_data(idata)
   41898       395128 :          pack_tmp = ISHFT(data_tmp, 56)
   41899       395128 :          pack_tmp = ISHFT(pack_tmp, -52)
   41900       395128 :          idata = idata + 1
   41901       395128 :          data_tmp = full_data(idata)
   41902       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41903       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41904       395128 :          pack_tmp = ISHFT(pack_tmp, -4)
   41905       395128 :          idata = idata + 1
   41906       395128 :          data_tmp = full_data(idata)
   41907       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41908       395128 :          data_tmp = IAND(data_tmp, mask_left(4))
   41909       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41910       395128 :          ipack = ipack + 1
   41911       395128 :          packed_data(ipack) = pack_tmp
   41912       395128 :          data_tmp = full_data(idata)
   41913       395128 :          pack_tmp = ISHFT(data_tmp, 16)
   41914       395128 :          pack_tmp = ISHFT(pack_tmp, -16)
   41915       395128 :          idata = idata + 1
   41916       395128 :          data_tmp = full_data(idata)
   41917       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41918       395128 :          data_tmp = IAND(data_tmp, mask_left(16))
   41919       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41920       395128 :          ipack = ipack + 1
   41921       395128 :          packed_data(ipack) = pack_tmp
   41922       395128 :          data_tmp = full_data(idata)
   41923       395128 :          pack_tmp = ISHFT(data_tmp, 28)
   41924       395128 :          pack_tmp = ISHFT(pack_tmp, -28)
   41925       395128 :          idata = idata + 1
   41926       395128 :          data_tmp = full_data(idata)
   41927       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41928       395128 :          data_tmp = IAND(data_tmp, mask_left(28))
   41929       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41930       395128 :          ipack = ipack + 1
   41931       395128 :          packed_data(ipack) = pack_tmp
   41932       395128 :          data_tmp = full_data(idata)
   41933       395128 :          pack_tmp = ISHFT(data_tmp, 40)
   41934       395128 :          pack_tmp = ISHFT(pack_tmp, -40)
   41935       395128 :          idata = idata + 1
   41936       395128 :          data_tmp = full_data(idata)
   41937       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41938       395128 :          data_tmp = IAND(data_tmp, mask_left(40))
   41939       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41940       395128 :          ipack = ipack + 1
   41941       395128 :          packed_data(ipack) = pack_tmp
   41942       395128 :          data_tmp = full_data(idata)
   41943       395128 :          pack_tmp = ISHFT(data_tmp, 52)
   41944       395128 :          pack_tmp = ISHFT(pack_tmp, -52)
   41945       395128 :          idata = idata + 1
   41946       395128 :          data_tmp = full_data(idata)
   41947       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41948       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41949       395128 :          pack_tmp = ISHFT(pack_tmp, 0)
   41950       395128 :          idata = idata + 1
   41951       395128 :          data_tmp = full_data(idata)
   41952              :          data_tmp = ISHFT(data_tmp, 12)
   41953       395128 :          data_tmp = IAND(data_tmp, mask_left(0))
   41954       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41955       395128 :          ipack = ipack + 1
   41956       395128 :          packed_data(ipack) = pack_tmp
   41957       395128 :          data_tmp = full_data(idata)
   41958       395128 :          pack_tmp = ISHFT(data_tmp, 12)
   41959       395128 :          pack_tmp = ISHFT(pack_tmp, -12)
   41960       395128 :          idata = idata + 1
   41961       395128 :          data_tmp = full_data(idata)
   41962       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41963       395128 :          data_tmp = IAND(data_tmp, mask_left(12))
   41964       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41965       395128 :          ipack = ipack + 1
   41966       395128 :          packed_data(ipack) = pack_tmp
   41967       395128 :          data_tmp = full_data(idata)
   41968       395128 :          pack_tmp = ISHFT(data_tmp, 24)
   41969       395128 :          pack_tmp = ISHFT(pack_tmp, -24)
   41970       395128 :          idata = idata + 1
   41971       395128 :          data_tmp = full_data(idata)
   41972       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41973       395128 :          data_tmp = IAND(data_tmp, mask_left(24))
   41974       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41975       395128 :          ipack = ipack + 1
   41976       395128 :          packed_data(ipack) = pack_tmp
   41977       395128 :          data_tmp = full_data(idata)
   41978       395128 :          pack_tmp = ISHFT(data_tmp, 36)
   41979       395128 :          pack_tmp = ISHFT(pack_tmp, -36)
   41980       395128 :          idata = idata + 1
   41981       395128 :          data_tmp = full_data(idata)
   41982       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41983       395128 :          data_tmp = IAND(data_tmp, mask_left(36))
   41984       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41985       395128 :          ipack = ipack + 1
   41986       395128 :          packed_data(ipack) = pack_tmp
   41987       395128 :          data_tmp = full_data(idata)
   41988       395128 :          pack_tmp = ISHFT(data_tmp, 48)
   41989       395128 :          pack_tmp = ISHFT(pack_tmp, -48)
   41990       395128 :          idata = idata + 1
   41991       395128 :          data_tmp = full_data(idata)
   41992       395128 :          data_tmp = ISHFT(data_tmp, 12)
   41993       395128 :          data_tmp = IAND(data_tmp, mask_left(48))
   41994       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   41995       395128 :          ipack = ipack + 1
   41996       395128 :          packed_data(ipack) = pack_tmp
   41997       395128 :          data_tmp = full_data(idata)
   41998       395128 :          pack_tmp = ISHFT(data_tmp, 60)
   41999       395128 :          pack_tmp = ISHFT(pack_tmp, -52)
   42000       395128 :          idata = idata + 1
   42001       395128 :          data_tmp = full_data(idata)
   42002       395128 :          data_tmp = ISHFT(data_tmp, 12)
   42003       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42004       395128 :          pack_tmp = ISHFT(pack_tmp, -8)
   42005       395128 :          idata = idata + 1
   42006       395128 :          data_tmp = full_data(idata)
   42007       395128 :          data_tmp = ISHFT(data_tmp, 12)
   42008       395128 :          data_tmp = IAND(data_tmp, mask_left(8))
   42009       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42010       395128 :          ipack = ipack + 1
   42011       395128 :          packed_data(ipack) = pack_tmp
   42012       395128 :          data_tmp = full_data(idata)
   42013       395128 :          pack_tmp = ISHFT(data_tmp, 20)
   42014       395128 :          pack_tmp = ISHFT(pack_tmp, -20)
   42015       395128 :          idata = idata + 1
   42016       395128 :          data_tmp = full_data(idata)
   42017       395128 :          data_tmp = ISHFT(data_tmp, 12)
   42018       395128 :          data_tmp = IAND(data_tmp, mask_left(20))
   42019       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42020       395128 :          ipack = ipack + 1
   42021       395128 :          packed_data(ipack) = pack_tmp
   42022       395128 :          data_tmp = full_data(idata)
   42023       395128 :          pack_tmp = ISHFT(data_tmp, 32)
   42024       395128 :          pack_tmp = ISHFT(pack_tmp, -32)
   42025       395128 :          idata = idata + 1
   42026       395128 :          data_tmp = full_data(idata)
   42027       395128 :          data_tmp = ISHFT(data_tmp, 12)
   42028       395128 :          data_tmp = IAND(data_tmp, mask_left(32))
   42029       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42030       395128 :          ipack = ipack + 1
   42031       395128 :          packed_data(ipack) = pack_tmp
   42032       395128 :          data_tmp = full_data(idata)
   42033       395128 :          pack_tmp = ISHFT(data_tmp, 44)
   42034       395128 :          pack_tmp = ISHFT(pack_tmp, -44)
   42035       395128 :          idata = idata + 1
   42036       395128 :          data_tmp = full_data(idata)
   42037       395128 :          data_tmp = ISHFT(data_tmp, 12)
   42038       395128 :          data_tmp = IAND(data_tmp, mask_left(44))
   42039       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42040       395128 :          ipack = ipack + 1
   42041       395128 :          packed_data(ipack) = pack_tmp
   42042       395128 :          data_tmp = full_data(idata)
   42043       395128 :          pack_tmp = ISHFT(data_tmp, 56)
   42044       395128 :          pack_tmp = ISHFT(pack_tmp, -52)
   42045       395128 :          idata = idata + 1
   42046       395128 :          data_tmp = full_data(idata)
   42047       395128 :          data_tmp = ISHFT(data_tmp, 12)
   42048       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42049       395128 :          pack_tmp = ISHFT(pack_tmp, -4)
   42050       395128 :          idata = idata + 1
   42051       395128 :          data_tmp = full_data(idata)
   42052       395128 :          data_tmp = ISHFT(data_tmp, 12)
   42053       395128 :          data_tmp = IAND(data_tmp, mask_left(4))
   42054       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42055       395128 :          ipack = ipack + 1
   42056       395128 :          packed_data(ipack) = pack_tmp
   42057       395128 :          data_tmp = full_data(idata)
   42058       395128 :          pack_tmp = ISHFT(data_tmp, 16)
   42059       395128 :          pack_tmp = ISHFT(pack_tmp, -16)
   42060       395128 :          idata = idata + 1
   42061       395128 :          data_tmp = full_data(idata)
   42062       395128 :          data_tmp = ISHFT(data_tmp, 12)
   42063       395128 :          data_tmp = IAND(data_tmp, mask_left(16))
   42064       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42065       395128 :          ipack = ipack + 1
   42066       395128 :          packed_data(ipack) = pack_tmp
   42067       395128 :          data_tmp = full_data(idata)
   42068       395128 :          pack_tmp = ISHFT(data_tmp, 28)
   42069       395128 :          pack_tmp = ISHFT(pack_tmp, -28)
   42070       395128 :          idata = idata + 1
   42071       395128 :          data_tmp = full_data(idata)
   42072       395128 :          data_tmp = ISHFT(data_tmp, 12)
   42073       395128 :          data_tmp = IAND(data_tmp, mask_left(28))
   42074       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42075       395128 :          ipack = ipack + 1
   42076       395128 :          packed_data(ipack) = pack_tmp
   42077       395128 :          data_tmp = full_data(idata)
   42078       395128 :          pack_tmp = ISHFT(data_tmp, 40)
   42079       395128 :          pack_tmp = ISHFT(pack_tmp, -40)
   42080       395128 :          idata = idata + 1
   42081       395128 :          data_tmp = full_data(idata)
   42082       395128 :          data_tmp = ISHFT(data_tmp, 12)
   42083       395128 :          data_tmp = IAND(data_tmp, mask_left(40))
   42084       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42085       395128 :          ipack = ipack + 1
   42086       395128 :          packed_data(ipack) = pack_tmp
   42087       395128 :          data_tmp = full_data(idata)
   42088       395128 :          pack_tmp = ISHFT(data_tmp, 52)
   42089       395128 :          pack_tmp = ISHFT(pack_tmp, -52)
   42090       395128 :          idata = idata + 1
   42091       395128 :          data_tmp = full_data(idata)
   42092       395128 :          data_tmp = ISHFT(data_tmp, 12)
   42093       395128 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42094              :          pack_tmp = ISHFT(pack_tmp, 0)
   42095       395128 :          pack_tmp = ISHFT(pack_tmp, 0)
   42096       395128 :          ipack = ipack + 1
   42097       395138 :          packed_data(ipack) = pack_tmp
   42098              :       END DO
   42099        24942 :       IF (Ndata_rep < Ndata) THEN
   42100          464 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   42101              :       END IF
   42102        24942 :    END SUBROUTINE ints2bits_52
   42103              : 
   42104              : ! **************************************************************************************************
   42105              : !> \brief ...
   42106              : !> \param Ndata ...
   42107              : !> \param packed_data ...
   42108              : !> \param full_data ...
   42109              : ! **************************************************************************************************
   42110       103477 :    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       103477 :       ipack = 0
   42121       103477 :       idata = 0
   42122       103477 :       pack_tmp = 0
   42123       103477 :       Ndata_rep = (Ndata/64)*64
   42124       103477 :       DO kdata = 1, Ndata_rep, 64
   42125      1615784 :          idata = idata + 1
   42126      1615784 :          data_tmp = ISHFT(pack_tmp, 52)
   42127      1615784 :          ipack = ipack + 1
   42128      1615784 :          pack_tmp = packed_data(ipack)
   42129      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42130      1615784 :          pack_tmp = ISHFT(pack_tmp, -52)
   42131      1615784 :          idata = idata + 1
   42132      1615784 :          data_tmp = ISHFT(pack_tmp, 40)
   42133      1615784 :          ipack = ipack + 1
   42134      1615784 :          pack_tmp = packed_data(ipack)
   42135      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42136      1615784 :          pack_tmp = ISHFT(pack_tmp, -40)
   42137      1615784 :          idata = idata + 1
   42138      1615784 :          data_tmp = ISHFT(pack_tmp, 28)
   42139      1615784 :          ipack = ipack + 1
   42140      1615784 :          pack_tmp = packed_data(ipack)
   42141      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42142      1615784 :          pack_tmp = ISHFT(pack_tmp, -28)
   42143      1615784 :          idata = idata + 1
   42144      1615784 :          data_tmp = ISHFT(pack_tmp, 16)
   42145      1615784 :          ipack = ipack + 1
   42146      1615784 :          pack_tmp = packed_data(ipack)
   42147      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42148      1615784 :          pack_tmp = ISHFT(pack_tmp, -16)
   42149      1615784 :          idata = idata + 1
   42150      1615784 :          data_tmp = ISHFT(pack_tmp, 4)
   42151      1615784 :          ipack = ipack + 1
   42152      1615784 :          pack_tmp = packed_data(ipack)
   42153      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42154      1615784 :          pack_tmp = ISHFT(pack_tmp, -4)
   42155      1615784 :          idata = idata + 1
   42156      1615784 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42157      1615784 :          full_data(idata) = data_tmp
   42158      1615784 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42159      1615784 :          idata = idata + 1
   42160      1615784 :          data_tmp = ISHFT(pack_tmp, 44)
   42161      1615784 :          ipack = ipack + 1
   42162      1615784 :          pack_tmp = packed_data(ipack)
   42163      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42164      1615784 :          pack_tmp = ISHFT(pack_tmp, -44)
   42165      1615784 :          idata = idata + 1
   42166      1615784 :          data_tmp = ISHFT(pack_tmp, 32)
   42167      1615784 :          ipack = ipack + 1
   42168      1615784 :          pack_tmp = packed_data(ipack)
   42169      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42170      1615784 :          pack_tmp = ISHFT(pack_tmp, -32)
   42171      1615784 :          idata = idata + 1
   42172      1615784 :          data_tmp = ISHFT(pack_tmp, 20)
   42173      1615784 :          ipack = ipack + 1
   42174      1615784 :          pack_tmp = packed_data(ipack)
   42175      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42176      1615784 :          pack_tmp = ISHFT(pack_tmp, -20)
   42177      1615784 :          idata = idata + 1
   42178      1615784 :          data_tmp = ISHFT(pack_tmp, 8)
   42179      1615784 :          ipack = ipack + 1
   42180      1615784 :          pack_tmp = packed_data(ipack)
   42181      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42182      1615784 :          pack_tmp = ISHFT(pack_tmp, -8)
   42183      1615784 :          idata = idata + 1
   42184      1615784 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42185      1615784 :          full_data(idata) = data_tmp
   42186      1615784 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42187      1615784 :          idata = idata + 1
   42188      1615784 :          data_tmp = ISHFT(pack_tmp, 48)
   42189      1615784 :          ipack = ipack + 1
   42190      1615784 :          pack_tmp = packed_data(ipack)
   42191      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42192      1615784 :          pack_tmp = ISHFT(pack_tmp, -48)
   42193      1615784 :          idata = idata + 1
   42194      1615784 :          data_tmp = ISHFT(pack_tmp, 36)
   42195      1615784 :          ipack = ipack + 1
   42196      1615784 :          pack_tmp = packed_data(ipack)
   42197      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42198      1615784 :          pack_tmp = ISHFT(pack_tmp, -36)
   42199      1615784 :          idata = idata + 1
   42200      1615784 :          data_tmp = ISHFT(pack_tmp, 24)
   42201      1615784 :          ipack = ipack + 1
   42202      1615784 :          pack_tmp = packed_data(ipack)
   42203      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42204      1615784 :          pack_tmp = ISHFT(pack_tmp, -24)
   42205      1615784 :          idata = idata + 1
   42206      1615784 :          data_tmp = ISHFT(pack_tmp, 12)
   42207      1615784 :          ipack = ipack + 1
   42208      1615784 :          pack_tmp = packed_data(ipack)
   42209      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42210      1615784 :          pack_tmp = ISHFT(pack_tmp, -12)
   42211      1615784 :          idata = idata + 1
   42212      1615784 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42213      1615784 :          full_data(idata) = data_tmp
   42214      1615784 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42215      1615784 :          idata = idata + 1
   42216      1615784 :          data_tmp = ISHFT(pack_tmp, 52)
   42217      1615784 :          ipack = ipack + 1
   42218      1615784 :          pack_tmp = packed_data(ipack)
   42219      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42220      1615784 :          pack_tmp = ISHFT(pack_tmp, -52)
   42221      1615784 :          idata = idata + 1
   42222      1615784 :          data_tmp = ISHFT(pack_tmp, 40)
   42223      1615784 :          ipack = ipack + 1
   42224      1615784 :          pack_tmp = packed_data(ipack)
   42225      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42226      1615784 :          pack_tmp = ISHFT(pack_tmp, -40)
   42227      1615784 :          idata = idata + 1
   42228      1615784 :          data_tmp = ISHFT(pack_tmp, 28)
   42229      1615784 :          ipack = ipack + 1
   42230      1615784 :          pack_tmp = packed_data(ipack)
   42231      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42232      1615784 :          pack_tmp = ISHFT(pack_tmp, -28)
   42233      1615784 :          idata = idata + 1
   42234      1615784 :          data_tmp = ISHFT(pack_tmp, 16)
   42235      1615784 :          ipack = ipack + 1
   42236      1615784 :          pack_tmp = packed_data(ipack)
   42237      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42238      1615784 :          pack_tmp = ISHFT(pack_tmp, -16)
   42239      1615784 :          idata = idata + 1
   42240      1615784 :          data_tmp = ISHFT(pack_tmp, 4)
   42241      1615784 :          ipack = ipack + 1
   42242      1615784 :          pack_tmp = packed_data(ipack)
   42243      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42244      1615784 :          pack_tmp = ISHFT(pack_tmp, -4)
   42245      1615784 :          idata = idata + 1
   42246      1615784 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42247      1615784 :          full_data(idata) = data_tmp
   42248      1615784 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42249      1615784 :          idata = idata + 1
   42250      1615784 :          data_tmp = ISHFT(pack_tmp, 44)
   42251      1615784 :          ipack = ipack + 1
   42252      1615784 :          pack_tmp = packed_data(ipack)
   42253      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42254      1615784 :          pack_tmp = ISHFT(pack_tmp, -44)
   42255      1615784 :          idata = idata + 1
   42256      1615784 :          data_tmp = ISHFT(pack_tmp, 32)
   42257      1615784 :          ipack = ipack + 1
   42258      1615784 :          pack_tmp = packed_data(ipack)
   42259      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42260      1615784 :          pack_tmp = ISHFT(pack_tmp, -32)
   42261      1615784 :          idata = idata + 1
   42262      1615784 :          data_tmp = ISHFT(pack_tmp, 20)
   42263      1615784 :          ipack = ipack + 1
   42264      1615784 :          pack_tmp = packed_data(ipack)
   42265      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42266      1615784 :          pack_tmp = ISHFT(pack_tmp, -20)
   42267      1615784 :          idata = idata + 1
   42268      1615784 :          data_tmp = ISHFT(pack_tmp, 8)
   42269      1615784 :          ipack = ipack + 1
   42270      1615784 :          pack_tmp = packed_data(ipack)
   42271      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42272      1615784 :          pack_tmp = ISHFT(pack_tmp, -8)
   42273      1615784 :          idata = idata + 1
   42274      1615784 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42275      1615784 :          full_data(idata) = data_tmp
   42276      1615784 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42277      1615784 :          idata = idata + 1
   42278      1615784 :          data_tmp = ISHFT(pack_tmp, 48)
   42279      1615784 :          ipack = ipack + 1
   42280      1615784 :          pack_tmp = packed_data(ipack)
   42281      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42282      1615784 :          pack_tmp = ISHFT(pack_tmp, -48)
   42283      1615784 :          idata = idata + 1
   42284      1615784 :          data_tmp = ISHFT(pack_tmp, 36)
   42285      1615784 :          ipack = ipack + 1
   42286      1615784 :          pack_tmp = packed_data(ipack)
   42287      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42288      1615784 :          pack_tmp = ISHFT(pack_tmp, -36)
   42289      1615784 :          idata = idata + 1
   42290      1615784 :          data_tmp = ISHFT(pack_tmp, 24)
   42291      1615784 :          ipack = ipack + 1
   42292      1615784 :          pack_tmp = packed_data(ipack)
   42293      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42294      1615784 :          pack_tmp = ISHFT(pack_tmp, -24)
   42295      1615784 :          idata = idata + 1
   42296      1615784 :          data_tmp = ISHFT(pack_tmp, 12)
   42297      1615784 :          ipack = ipack + 1
   42298      1615784 :          pack_tmp = packed_data(ipack)
   42299      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42300      1615784 :          pack_tmp = ISHFT(pack_tmp, -12)
   42301      1615784 :          idata = idata + 1
   42302      1615784 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42303      1615784 :          full_data(idata) = data_tmp
   42304      1615784 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42305      1615784 :          idata = idata + 1
   42306      1615784 :          data_tmp = ISHFT(pack_tmp, 52)
   42307      1615784 :          ipack = ipack + 1
   42308      1615784 :          pack_tmp = packed_data(ipack)
   42309      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42310      1615784 :          pack_tmp = ISHFT(pack_tmp, -52)
   42311      1615784 :          idata = idata + 1
   42312      1615784 :          data_tmp = ISHFT(pack_tmp, 40)
   42313      1615784 :          ipack = ipack + 1
   42314      1615784 :          pack_tmp = packed_data(ipack)
   42315      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42316      1615784 :          pack_tmp = ISHFT(pack_tmp, -40)
   42317      1615784 :          idata = idata + 1
   42318      1615784 :          data_tmp = ISHFT(pack_tmp, 28)
   42319      1615784 :          ipack = ipack + 1
   42320      1615784 :          pack_tmp = packed_data(ipack)
   42321      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42322      1615784 :          pack_tmp = ISHFT(pack_tmp, -28)
   42323      1615784 :          idata = idata + 1
   42324      1615784 :          data_tmp = ISHFT(pack_tmp, 16)
   42325      1615784 :          ipack = ipack + 1
   42326      1615784 :          pack_tmp = packed_data(ipack)
   42327      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42328      1615784 :          pack_tmp = ISHFT(pack_tmp, -16)
   42329      1615784 :          idata = idata + 1
   42330      1615784 :          data_tmp = ISHFT(pack_tmp, 4)
   42331      1615784 :          ipack = ipack + 1
   42332      1615784 :          pack_tmp = packed_data(ipack)
   42333      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42334      1615784 :          pack_tmp = ISHFT(pack_tmp, -4)
   42335      1615784 :          idata = idata + 1
   42336      1615784 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42337      1615784 :          full_data(idata) = data_tmp
   42338      1615784 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42339      1615784 :          idata = idata + 1
   42340      1615784 :          data_tmp = ISHFT(pack_tmp, 44)
   42341      1615784 :          ipack = ipack + 1
   42342      1615784 :          pack_tmp = packed_data(ipack)
   42343      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42344      1615784 :          pack_tmp = ISHFT(pack_tmp, -44)
   42345      1615784 :          idata = idata + 1
   42346      1615784 :          data_tmp = ISHFT(pack_tmp, 32)
   42347      1615784 :          ipack = ipack + 1
   42348      1615784 :          pack_tmp = packed_data(ipack)
   42349      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42350      1615784 :          pack_tmp = ISHFT(pack_tmp, -32)
   42351      1615784 :          idata = idata + 1
   42352      1615784 :          data_tmp = ISHFT(pack_tmp, 20)
   42353      1615784 :          ipack = ipack + 1
   42354      1615784 :          pack_tmp = packed_data(ipack)
   42355      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42356      1615784 :          pack_tmp = ISHFT(pack_tmp, -20)
   42357      1615784 :          idata = idata + 1
   42358      1615784 :          data_tmp = ISHFT(pack_tmp, 8)
   42359      1615784 :          ipack = ipack + 1
   42360      1615784 :          pack_tmp = packed_data(ipack)
   42361      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42362      1615784 :          pack_tmp = ISHFT(pack_tmp, -8)
   42363      1615784 :          idata = idata + 1
   42364      1615784 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42365      1615784 :          full_data(idata) = data_tmp
   42366      1615784 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42367      1615784 :          idata = idata + 1
   42368      1615784 :          data_tmp = ISHFT(pack_tmp, 48)
   42369      1615784 :          ipack = ipack + 1
   42370      1615784 :          pack_tmp = packed_data(ipack)
   42371      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42372      1615784 :          pack_tmp = ISHFT(pack_tmp, -48)
   42373      1615784 :          idata = idata + 1
   42374      1615784 :          data_tmp = ISHFT(pack_tmp, 36)
   42375      1615784 :          ipack = ipack + 1
   42376      1615784 :          pack_tmp = packed_data(ipack)
   42377      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42378      1615784 :          pack_tmp = ISHFT(pack_tmp, -36)
   42379      1615784 :          idata = idata + 1
   42380      1615784 :          data_tmp = ISHFT(pack_tmp, 24)
   42381      1615784 :          ipack = ipack + 1
   42382      1615784 :          pack_tmp = packed_data(ipack)
   42383      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42384      1615784 :          pack_tmp = ISHFT(pack_tmp, -24)
   42385      1615784 :          idata = idata + 1
   42386      1615784 :          data_tmp = ISHFT(pack_tmp, 12)
   42387      1615784 :          ipack = ipack + 1
   42388      1615784 :          pack_tmp = packed_data(ipack)
   42389      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42390      1615784 :          pack_tmp = ISHFT(pack_tmp, -12)
   42391      1615784 :          idata = idata + 1
   42392      1615784 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42393      1615784 :          full_data(idata) = data_tmp
   42394      1615784 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42395      1615784 :          idata = idata + 1
   42396      1615784 :          data_tmp = ISHFT(pack_tmp, 52)
   42397      1615784 :          ipack = ipack + 1
   42398      1615784 :          pack_tmp = packed_data(ipack)
   42399      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   42400      1615784 :          pack_tmp = ISHFT(pack_tmp, -52)
   42401      1615784 :          idata = idata + 1
   42402      1615784 :          data_tmp = ISHFT(pack_tmp, 40)
   42403      1615784 :          ipack = ipack + 1
   42404      1615784 :          pack_tmp = packed_data(ipack)
   42405      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   42406      1615784 :          pack_tmp = ISHFT(pack_tmp, -40)
   42407      1615784 :          idata = idata + 1
   42408      1615784 :          data_tmp = ISHFT(pack_tmp, 28)
   42409      1615784 :          ipack = ipack + 1
   42410      1615784 :          pack_tmp = packed_data(ipack)
   42411      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   42412      1615784 :          pack_tmp = ISHFT(pack_tmp, -28)
   42413      1615784 :          idata = idata + 1
   42414      1615784 :          data_tmp = ISHFT(pack_tmp, 16)
   42415      1615784 :          ipack = ipack + 1
   42416      1615784 :          pack_tmp = packed_data(ipack)
   42417      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   42418      1615784 :          pack_tmp = ISHFT(pack_tmp, -16)
   42419      1615784 :          idata = idata + 1
   42420      1615784 :          data_tmp = ISHFT(pack_tmp, 4)
   42421      1615784 :          ipack = ipack + 1
   42422      1615784 :          pack_tmp = packed_data(ipack)
   42423      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   42424      1615784 :          pack_tmp = ISHFT(pack_tmp, -4)
   42425      1615784 :          idata = idata + 1
   42426      1615784 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42427      1615784 :          full_data(idata) = data_tmp
   42428      1615784 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42429      1615784 :          idata = idata + 1
   42430      1615784 :          data_tmp = ISHFT(pack_tmp, 44)
   42431      1615784 :          ipack = ipack + 1
   42432      1615784 :          pack_tmp = packed_data(ipack)
   42433      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   42434      1615784 :          pack_tmp = ISHFT(pack_tmp, -44)
   42435      1615784 :          idata = idata + 1
   42436      1615784 :          data_tmp = ISHFT(pack_tmp, 32)
   42437      1615784 :          ipack = ipack + 1
   42438      1615784 :          pack_tmp = packed_data(ipack)
   42439      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   42440      1615784 :          pack_tmp = ISHFT(pack_tmp, -32)
   42441      1615784 :          idata = idata + 1
   42442      1615784 :          data_tmp = ISHFT(pack_tmp, 20)
   42443      1615784 :          ipack = ipack + 1
   42444      1615784 :          pack_tmp = packed_data(ipack)
   42445      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   42446      1615784 :          pack_tmp = ISHFT(pack_tmp, -20)
   42447      1615784 :          idata = idata + 1
   42448      1615784 :          data_tmp = ISHFT(pack_tmp, 8)
   42449      1615784 :          ipack = ipack + 1
   42450      1615784 :          pack_tmp = packed_data(ipack)
   42451      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   42452      1615784 :          pack_tmp = ISHFT(pack_tmp, -8)
   42453      1615784 :          idata = idata + 1
   42454      1615784 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42455      1615784 :          full_data(idata) = data_tmp
   42456      1615784 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42457      1615784 :          idata = idata + 1
   42458      1615784 :          data_tmp = ISHFT(pack_tmp, 48)
   42459      1615784 :          ipack = ipack + 1
   42460      1615784 :          pack_tmp = packed_data(ipack)
   42461      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   42462      1615784 :          pack_tmp = ISHFT(pack_tmp, -48)
   42463      1615784 :          idata = idata + 1
   42464      1615784 :          data_tmp = ISHFT(pack_tmp, 36)
   42465      1615784 :          ipack = ipack + 1
   42466      1615784 :          pack_tmp = packed_data(ipack)
   42467      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   42468      1615784 :          pack_tmp = ISHFT(pack_tmp, -36)
   42469      1615784 :          idata = idata + 1
   42470      1615784 :          data_tmp = ISHFT(pack_tmp, 24)
   42471      1615784 :          ipack = ipack + 1
   42472      1615784 :          pack_tmp = packed_data(ipack)
   42473      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   42474      1615784 :          pack_tmp = ISHFT(pack_tmp, -24)
   42475      1615784 :          idata = idata + 1
   42476      1615784 :          data_tmp = ISHFT(pack_tmp, 12)
   42477      1615784 :          ipack = ipack + 1
   42478      1615784 :          pack_tmp = packed_data(ipack)
   42479      1615784 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   42480      1615784 :          pack_tmp = ISHFT(pack_tmp, -12)
   42481      1615784 :          idata = idata + 1
   42482      1615784 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   42483      1615784 :          full_data(idata) = data_tmp
   42484      1615804 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   42485              :       END DO
   42486       103477 :       IF (Ndata_rep < Ndata) THEN
   42487         4688 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   42488              :       END IF
   42489       103477 :    END SUBROUTINE bits2ints_52
   42490              : 
   42491              : ! **************************************************************************************************
   42492              : !> \brief ...
   42493              : !> \param Ndata ...
   42494              : !> \param packed_data ...
   42495              : !> \param full_data ...
   42496              : ! **************************************************************************************************
   42497        24932 :    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        24932 :       idata = 0
   42508        24932 :       ipack = 0
   42509        24932 :       Ndata_rep = (Ndata/64)*64
   42510        24932 :       DO kdata = 1, Ndata_rep, 64
   42511       394968 :          pack_tmp = 0
   42512       394968 :          idata = idata + 1
   42513       394968 :          data_tmp = full_data(idata)
   42514       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42515       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42516       394968 :          pack_tmp = ISHFT(pack_tmp, -11)
   42517       394968 :          idata = idata + 1
   42518       394968 :          data_tmp = full_data(idata)
   42519       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42520       394968 :          data_tmp = IAND(data_tmp, mask_left(11))
   42521       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42522       394968 :          ipack = ipack + 1
   42523       394968 :          packed_data(ipack) = pack_tmp
   42524       394968 :          data_tmp = full_data(idata)
   42525       394968 :          pack_tmp = ISHFT(data_tmp, 22)
   42526       394968 :          pack_tmp = ISHFT(pack_tmp, -22)
   42527       394968 :          idata = idata + 1
   42528       394968 :          data_tmp = full_data(idata)
   42529       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42530       394968 :          data_tmp = IAND(data_tmp, mask_left(22))
   42531       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42532       394968 :          ipack = ipack + 1
   42533       394968 :          packed_data(ipack) = pack_tmp
   42534       394968 :          data_tmp = full_data(idata)
   42535       394968 :          pack_tmp = ISHFT(data_tmp, 33)
   42536       394968 :          pack_tmp = ISHFT(pack_tmp, -33)
   42537       394968 :          idata = idata + 1
   42538       394968 :          data_tmp = full_data(idata)
   42539       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42540       394968 :          data_tmp = IAND(data_tmp, mask_left(33))
   42541       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42542       394968 :          ipack = ipack + 1
   42543       394968 :          packed_data(ipack) = pack_tmp
   42544       394968 :          data_tmp = full_data(idata)
   42545       394968 :          pack_tmp = ISHFT(data_tmp, 44)
   42546       394968 :          pack_tmp = ISHFT(pack_tmp, -44)
   42547       394968 :          idata = idata + 1
   42548       394968 :          data_tmp = full_data(idata)
   42549       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42550       394968 :          data_tmp = IAND(data_tmp, mask_left(44))
   42551       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42552       394968 :          ipack = ipack + 1
   42553       394968 :          packed_data(ipack) = pack_tmp
   42554       394968 :          data_tmp = full_data(idata)
   42555       394968 :          pack_tmp = ISHFT(data_tmp, 55)
   42556       394968 :          pack_tmp = ISHFT(pack_tmp, -53)
   42557       394968 :          idata = idata + 1
   42558       394968 :          data_tmp = full_data(idata)
   42559       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42560       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42561       394968 :          pack_tmp = ISHFT(pack_tmp, -2)
   42562       394968 :          idata = idata + 1
   42563       394968 :          data_tmp = full_data(idata)
   42564       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42565       394968 :          data_tmp = IAND(data_tmp, mask_left(2))
   42566       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42567       394968 :          ipack = ipack + 1
   42568       394968 :          packed_data(ipack) = pack_tmp
   42569       394968 :          data_tmp = full_data(idata)
   42570       394968 :          pack_tmp = ISHFT(data_tmp, 13)
   42571       394968 :          pack_tmp = ISHFT(pack_tmp, -13)
   42572       394968 :          idata = idata + 1
   42573       394968 :          data_tmp = full_data(idata)
   42574       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42575       394968 :          data_tmp = IAND(data_tmp, mask_left(13))
   42576       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42577       394968 :          ipack = ipack + 1
   42578       394968 :          packed_data(ipack) = pack_tmp
   42579       394968 :          data_tmp = full_data(idata)
   42580       394968 :          pack_tmp = ISHFT(data_tmp, 24)
   42581       394968 :          pack_tmp = ISHFT(pack_tmp, -24)
   42582       394968 :          idata = idata + 1
   42583       394968 :          data_tmp = full_data(idata)
   42584       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42585       394968 :          data_tmp = IAND(data_tmp, mask_left(24))
   42586       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42587       394968 :          ipack = ipack + 1
   42588       394968 :          packed_data(ipack) = pack_tmp
   42589       394968 :          data_tmp = full_data(idata)
   42590       394968 :          pack_tmp = ISHFT(data_tmp, 35)
   42591       394968 :          pack_tmp = ISHFT(pack_tmp, -35)
   42592       394968 :          idata = idata + 1
   42593       394968 :          data_tmp = full_data(idata)
   42594       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42595       394968 :          data_tmp = IAND(data_tmp, mask_left(35))
   42596       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42597       394968 :          ipack = ipack + 1
   42598       394968 :          packed_data(ipack) = pack_tmp
   42599       394968 :          data_tmp = full_data(idata)
   42600       394968 :          pack_tmp = ISHFT(data_tmp, 46)
   42601       394968 :          pack_tmp = ISHFT(pack_tmp, -46)
   42602       394968 :          idata = idata + 1
   42603       394968 :          data_tmp = full_data(idata)
   42604       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42605       394968 :          data_tmp = IAND(data_tmp, mask_left(46))
   42606       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42607       394968 :          ipack = ipack + 1
   42608       394968 :          packed_data(ipack) = pack_tmp
   42609       394968 :          data_tmp = full_data(idata)
   42610       394968 :          pack_tmp = ISHFT(data_tmp, 57)
   42611       394968 :          pack_tmp = ISHFT(pack_tmp, -53)
   42612       394968 :          idata = idata + 1
   42613       394968 :          data_tmp = full_data(idata)
   42614       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42615       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42616       394968 :          pack_tmp = ISHFT(pack_tmp, -4)
   42617       394968 :          idata = idata + 1
   42618       394968 :          data_tmp = full_data(idata)
   42619       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42620       394968 :          data_tmp = IAND(data_tmp, mask_left(4))
   42621       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42622       394968 :          ipack = ipack + 1
   42623       394968 :          packed_data(ipack) = pack_tmp
   42624       394968 :          data_tmp = full_data(idata)
   42625       394968 :          pack_tmp = ISHFT(data_tmp, 15)
   42626       394968 :          pack_tmp = ISHFT(pack_tmp, -15)
   42627       394968 :          idata = idata + 1
   42628       394968 :          data_tmp = full_data(idata)
   42629       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42630       394968 :          data_tmp = IAND(data_tmp, mask_left(15))
   42631       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42632       394968 :          ipack = ipack + 1
   42633       394968 :          packed_data(ipack) = pack_tmp
   42634       394968 :          data_tmp = full_data(idata)
   42635       394968 :          pack_tmp = ISHFT(data_tmp, 26)
   42636       394968 :          pack_tmp = ISHFT(pack_tmp, -26)
   42637       394968 :          idata = idata + 1
   42638       394968 :          data_tmp = full_data(idata)
   42639       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42640       394968 :          data_tmp = IAND(data_tmp, mask_left(26))
   42641       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42642       394968 :          ipack = ipack + 1
   42643       394968 :          packed_data(ipack) = pack_tmp
   42644       394968 :          data_tmp = full_data(idata)
   42645       394968 :          pack_tmp = ISHFT(data_tmp, 37)
   42646       394968 :          pack_tmp = ISHFT(pack_tmp, -37)
   42647       394968 :          idata = idata + 1
   42648       394968 :          data_tmp = full_data(idata)
   42649       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42650       394968 :          data_tmp = IAND(data_tmp, mask_left(37))
   42651       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42652       394968 :          ipack = ipack + 1
   42653       394968 :          packed_data(ipack) = pack_tmp
   42654       394968 :          data_tmp = full_data(idata)
   42655       394968 :          pack_tmp = ISHFT(data_tmp, 48)
   42656       394968 :          pack_tmp = ISHFT(pack_tmp, -48)
   42657       394968 :          idata = idata + 1
   42658       394968 :          data_tmp = full_data(idata)
   42659       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42660       394968 :          data_tmp = IAND(data_tmp, mask_left(48))
   42661       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42662       394968 :          ipack = ipack + 1
   42663       394968 :          packed_data(ipack) = pack_tmp
   42664       394968 :          data_tmp = full_data(idata)
   42665       394968 :          pack_tmp = ISHFT(data_tmp, 59)
   42666       394968 :          pack_tmp = ISHFT(pack_tmp, -53)
   42667       394968 :          idata = idata + 1
   42668       394968 :          data_tmp = full_data(idata)
   42669       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42670       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42671       394968 :          pack_tmp = ISHFT(pack_tmp, -6)
   42672       394968 :          idata = idata + 1
   42673       394968 :          data_tmp = full_data(idata)
   42674       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42675       394968 :          data_tmp = IAND(data_tmp, mask_left(6))
   42676       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42677       394968 :          ipack = ipack + 1
   42678       394968 :          packed_data(ipack) = pack_tmp
   42679       394968 :          data_tmp = full_data(idata)
   42680       394968 :          pack_tmp = ISHFT(data_tmp, 17)
   42681       394968 :          pack_tmp = ISHFT(pack_tmp, -17)
   42682       394968 :          idata = idata + 1
   42683       394968 :          data_tmp = full_data(idata)
   42684       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42685       394968 :          data_tmp = IAND(data_tmp, mask_left(17))
   42686       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42687       394968 :          ipack = ipack + 1
   42688       394968 :          packed_data(ipack) = pack_tmp
   42689       394968 :          data_tmp = full_data(idata)
   42690       394968 :          pack_tmp = ISHFT(data_tmp, 28)
   42691       394968 :          pack_tmp = ISHFT(pack_tmp, -28)
   42692       394968 :          idata = idata + 1
   42693       394968 :          data_tmp = full_data(idata)
   42694       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42695       394968 :          data_tmp = IAND(data_tmp, mask_left(28))
   42696       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42697       394968 :          ipack = ipack + 1
   42698       394968 :          packed_data(ipack) = pack_tmp
   42699       394968 :          data_tmp = full_data(idata)
   42700       394968 :          pack_tmp = ISHFT(data_tmp, 39)
   42701       394968 :          pack_tmp = ISHFT(pack_tmp, -39)
   42702       394968 :          idata = idata + 1
   42703       394968 :          data_tmp = full_data(idata)
   42704       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42705       394968 :          data_tmp = IAND(data_tmp, mask_left(39))
   42706       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42707       394968 :          ipack = ipack + 1
   42708       394968 :          packed_data(ipack) = pack_tmp
   42709       394968 :          data_tmp = full_data(idata)
   42710       394968 :          pack_tmp = ISHFT(data_tmp, 50)
   42711       394968 :          pack_tmp = ISHFT(pack_tmp, -50)
   42712       394968 :          idata = idata + 1
   42713       394968 :          data_tmp = full_data(idata)
   42714       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42715       394968 :          data_tmp = IAND(data_tmp, mask_left(50))
   42716       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42717       394968 :          ipack = ipack + 1
   42718       394968 :          packed_data(ipack) = pack_tmp
   42719       394968 :          data_tmp = full_data(idata)
   42720       394968 :          pack_tmp = ISHFT(data_tmp, 61)
   42721       394968 :          pack_tmp = ISHFT(pack_tmp, -53)
   42722       394968 :          idata = idata + 1
   42723       394968 :          data_tmp = full_data(idata)
   42724       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42725       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42726       394968 :          pack_tmp = ISHFT(pack_tmp, -8)
   42727       394968 :          idata = idata + 1
   42728       394968 :          data_tmp = full_data(idata)
   42729       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42730       394968 :          data_tmp = IAND(data_tmp, mask_left(8))
   42731       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42732       394968 :          ipack = ipack + 1
   42733       394968 :          packed_data(ipack) = pack_tmp
   42734       394968 :          data_tmp = full_data(idata)
   42735       394968 :          pack_tmp = ISHFT(data_tmp, 19)
   42736       394968 :          pack_tmp = ISHFT(pack_tmp, -19)
   42737       394968 :          idata = idata + 1
   42738       394968 :          data_tmp = full_data(idata)
   42739       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42740       394968 :          data_tmp = IAND(data_tmp, mask_left(19))
   42741       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42742       394968 :          ipack = ipack + 1
   42743       394968 :          packed_data(ipack) = pack_tmp
   42744       394968 :          data_tmp = full_data(idata)
   42745       394968 :          pack_tmp = ISHFT(data_tmp, 30)
   42746       394968 :          pack_tmp = ISHFT(pack_tmp, -30)
   42747       394968 :          idata = idata + 1
   42748       394968 :          data_tmp = full_data(idata)
   42749       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42750       394968 :          data_tmp = IAND(data_tmp, mask_left(30))
   42751       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42752       394968 :          ipack = ipack + 1
   42753       394968 :          packed_data(ipack) = pack_tmp
   42754       394968 :          data_tmp = full_data(idata)
   42755       394968 :          pack_tmp = ISHFT(data_tmp, 41)
   42756       394968 :          pack_tmp = ISHFT(pack_tmp, -41)
   42757       394968 :          idata = idata + 1
   42758       394968 :          data_tmp = full_data(idata)
   42759       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42760       394968 :          data_tmp = IAND(data_tmp, mask_left(41))
   42761       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42762       394968 :          ipack = ipack + 1
   42763       394968 :          packed_data(ipack) = pack_tmp
   42764       394968 :          data_tmp = full_data(idata)
   42765       394968 :          pack_tmp = ISHFT(data_tmp, 52)
   42766       394968 :          pack_tmp = ISHFT(pack_tmp, -52)
   42767       394968 :          idata = idata + 1
   42768       394968 :          data_tmp = full_data(idata)
   42769       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42770       394968 :          data_tmp = IAND(data_tmp, mask_left(52))
   42771       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42772       394968 :          ipack = ipack + 1
   42773       394968 :          packed_data(ipack) = pack_tmp
   42774       394968 :          data_tmp = full_data(idata)
   42775       394968 :          pack_tmp = ISHFT(data_tmp, 63)
   42776       394968 :          pack_tmp = ISHFT(pack_tmp, -53)
   42777       394968 :          idata = idata + 1
   42778       394968 :          data_tmp = full_data(idata)
   42779       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42780       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42781       394968 :          pack_tmp = ISHFT(pack_tmp, -10)
   42782       394968 :          idata = idata + 1
   42783       394968 :          data_tmp = full_data(idata)
   42784       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42785       394968 :          data_tmp = IAND(data_tmp, mask_left(10))
   42786       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42787       394968 :          ipack = ipack + 1
   42788       394968 :          packed_data(ipack) = pack_tmp
   42789       394968 :          data_tmp = full_data(idata)
   42790       394968 :          pack_tmp = ISHFT(data_tmp, 21)
   42791       394968 :          pack_tmp = ISHFT(pack_tmp, -21)
   42792       394968 :          idata = idata + 1
   42793       394968 :          data_tmp = full_data(idata)
   42794       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42795       394968 :          data_tmp = IAND(data_tmp, mask_left(21))
   42796       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42797       394968 :          ipack = ipack + 1
   42798       394968 :          packed_data(ipack) = pack_tmp
   42799       394968 :          data_tmp = full_data(idata)
   42800       394968 :          pack_tmp = ISHFT(data_tmp, 32)
   42801       394968 :          pack_tmp = ISHFT(pack_tmp, -32)
   42802       394968 :          idata = idata + 1
   42803       394968 :          data_tmp = full_data(idata)
   42804       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42805       394968 :          data_tmp = IAND(data_tmp, mask_left(32))
   42806       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42807       394968 :          ipack = ipack + 1
   42808       394968 :          packed_data(ipack) = pack_tmp
   42809       394968 :          data_tmp = full_data(idata)
   42810       394968 :          pack_tmp = ISHFT(data_tmp, 43)
   42811       394968 :          pack_tmp = ISHFT(pack_tmp, -43)
   42812       394968 :          idata = idata + 1
   42813       394968 :          data_tmp = full_data(idata)
   42814       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42815       394968 :          data_tmp = IAND(data_tmp, mask_left(43))
   42816       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42817       394968 :          ipack = ipack + 1
   42818       394968 :          packed_data(ipack) = pack_tmp
   42819       394968 :          data_tmp = full_data(idata)
   42820       394968 :          pack_tmp = ISHFT(data_tmp, 54)
   42821       394968 :          pack_tmp = ISHFT(pack_tmp, -53)
   42822       394968 :          idata = idata + 1
   42823       394968 :          data_tmp = full_data(idata)
   42824       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42825       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42826       394968 :          pack_tmp = ISHFT(pack_tmp, -1)
   42827       394968 :          idata = idata + 1
   42828       394968 :          data_tmp = full_data(idata)
   42829       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42830       394968 :          data_tmp = IAND(data_tmp, mask_left(1))
   42831       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42832       394968 :          ipack = ipack + 1
   42833       394968 :          packed_data(ipack) = pack_tmp
   42834       394968 :          data_tmp = full_data(idata)
   42835       394968 :          pack_tmp = ISHFT(data_tmp, 12)
   42836       394968 :          pack_tmp = ISHFT(pack_tmp, -12)
   42837       394968 :          idata = idata + 1
   42838       394968 :          data_tmp = full_data(idata)
   42839       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42840       394968 :          data_tmp = IAND(data_tmp, mask_left(12))
   42841       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42842       394968 :          ipack = ipack + 1
   42843       394968 :          packed_data(ipack) = pack_tmp
   42844       394968 :          data_tmp = full_data(idata)
   42845       394968 :          pack_tmp = ISHFT(data_tmp, 23)
   42846       394968 :          pack_tmp = ISHFT(pack_tmp, -23)
   42847       394968 :          idata = idata + 1
   42848       394968 :          data_tmp = full_data(idata)
   42849       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42850       394968 :          data_tmp = IAND(data_tmp, mask_left(23))
   42851       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42852       394968 :          ipack = ipack + 1
   42853       394968 :          packed_data(ipack) = pack_tmp
   42854       394968 :          data_tmp = full_data(idata)
   42855       394968 :          pack_tmp = ISHFT(data_tmp, 34)
   42856       394968 :          pack_tmp = ISHFT(pack_tmp, -34)
   42857       394968 :          idata = idata + 1
   42858       394968 :          data_tmp = full_data(idata)
   42859       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42860       394968 :          data_tmp = IAND(data_tmp, mask_left(34))
   42861       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42862       394968 :          ipack = ipack + 1
   42863       394968 :          packed_data(ipack) = pack_tmp
   42864       394968 :          data_tmp = full_data(idata)
   42865       394968 :          pack_tmp = ISHFT(data_tmp, 45)
   42866       394968 :          pack_tmp = ISHFT(pack_tmp, -45)
   42867       394968 :          idata = idata + 1
   42868       394968 :          data_tmp = full_data(idata)
   42869       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42870       394968 :          data_tmp = IAND(data_tmp, mask_left(45))
   42871       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42872       394968 :          ipack = ipack + 1
   42873       394968 :          packed_data(ipack) = pack_tmp
   42874       394968 :          data_tmp = full_data(idata)
   42875       394968 :          pack_tmp = ISHFT(data_tmp, 56)
   42876       394968 :          pack_tmp = ISHFT(pack_tmp, -53)
   42877       394968 :          idata = idata + 1
   42878       394968 :          data_tmp = full_data(idata)
   42879       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42880       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42881       394968 :          pack_tmp = ISHFT(pack_tmp, -3)
   42882       394968 :          idata = idata + 1
   42883       394968 :          data_tmp = full_data(idata)
   42884       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42885       394968 :          data_tmp = IAND(data_tmp, mask_left(3))
   42886       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42887       394968 :          ipack = ipack + 1
   42888       394968 :          packed_data(ipack) = pack_tmp
   42889       394968 :          data_tmp = full_data(idata)
   42890       394968 :          pack_tmp = ISHFT(data_tmp, 14)
   42891       394968 :          pack_tmp = ISHFT(pack_tmp, -14)
   42892       394968 :          idata = idata + 1
   42893       394968 :          data_tmp = full_data(idata)
   42894       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42895       394968 :          data_tmp = IAND(data_tmp, mask_left(14))
   42896       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42897       394968 :          ipack = ipack + 1
   42898       394968 :          packed_data(ipack) = pack_tmp
   42899       394968 :          data_tmp = full_data(idata)
   42900       394968 :          pack_tmp = ISHFT(data_tmp, 25)
   42901       394968 :          pack_tmp = ISHFT(pack_tmp, -25)
   42902       394968 :          idata = idata + 1
   42903       394968 :          data_tmp = full_data(idata)
   42904       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42905       394968 :          data_tmp = IAND(data_tmp, mask_left(25))
   42906       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42907       394968 :          ipack = ipack + 1
   42908       394968 :          packed_data(ipack) = pack_tmp
   42909       394968 :          data_tmp = full_data(idata)
   42910       394968 :          pack_tmp = ISHFT(data_tmp, 36)
   42911       394968 :          pack_tmp = ISHFT(pack_tmp, -36)
   42912       394968 :          idata = idata + 1
   42913       394968 :          data_tmp = full_data(idata)
   42914       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42915       394968 :          data_tmp = IAND(data_tmp, mask_left(36))
   42916       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42917       394968 :          ipack = ipack + 1
   42918       394968 :          packed_data(ipack) = pack_tmp
   42919       394968 :          data_tmp = full_data(idata)
   42920       394968 :          pack_tmp = ISHFT(data_tmp, 47)
   42921       394968 :          pack_tmp = ISHFT(pack_tmp, -47)
   42922       394968 :          idata = idata + 1
   42923       394968 :          data_tmp = full_data(idata)
   42924       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42925       394968 :          data_tmp = IAND(data_tmp, mask_left(47))
   42926       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42927       394968 :          ipack = ipack + 1
   42928       394968 :          packed_data(ipack) = pack_tmp
   42929       394968 :          data_tmp = full_data(idata)
   42930       394968 :          pack_tmp = ISHFT(data_tmp, 58)
   42931       394968 :          pack_tmp = ISHFT(pack_tmp, -53)
   42932       394968 :          idata = idata + 1
   42933       394968 :          data_tmp = full_data(idata)
   42934       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42935       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42936       394968 :          pack_tmp = ISHFT(pack_tmp, -5)
   42937       394968 :          idata = idata + 1
   42938       394968 :          data_tmp = full_data(idata)
   42939       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42940       394968 :          data_tmp = IAND(data_tmp, mask_left(5))
   42941       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42942       394968 :          ipack = ipack + 1
   42943       394968 :          packed_data(ipack) = pack_tmp
   42944       394968 :          data_tmp = full_data(idata)
   42945       394968 :          pack_tmp = ISHFT(data_tmp, 16)
   42946       394968 :          pack_tmp = ISHFT(pack_tmp, -16)
   42947       394968 :          idata = idata + 1
   42948       394968 :          data_tmp = full_data(idata)
   42949       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42950       394968 :          data_tmp = IAND(data_tmp, mask_left(16))
   42951       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42952       394968 :          ipack = ipack + 1
   42953       394968 :          packed_data(ipack) = pack_tmp
   42954       394968 :          data_tmp = full_data(idata)
   42955       394968 :          pack_tmp = ISHFT(data_tmp, 27)
   42956       394968 :          pack_tmp = ISHFT(pack_tmp, -27)
   42957       394968 :          idata = idata + 1
   42958       394968 :          data_tmp = full_data(idata)
   42959       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42960       394968 :          data_tmp = IAND(data_tmp, mask_left(27))
   42961       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42962       394968 :          ipack = ipack + 1
   42963       394968 :          packed_data(ipack) = pack_tmp
   42964       394968 :          data_tmp = full_data(idata)
   42965       394968 :          pack_tmp = ISHFT(data_tmp, 38)
   42966       394968 :          pack_tmp = ISHFT(pack_tmp, -38)
   42967       394968 :          idata = idata + 1
   42968       394968 :          data_tmp = full_data(idata)
   42969       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42970       394968 :          data_tmp = IAND(data_tmp, mask_left(38))
   42971       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42972       394968 :          ipack = ipack + 1
   42973       394968 :          packed_data(ipack) = pack_tmp
   42974       394968 :          data_tmp = full_data(idata)
   42975       394968 :          pack_tmp = ISHFT(data_tmp, 49)
   42976       394968 :          pack_tmp = ISHFT(pack_tmp, -49)
   42977       394968 :          idata = idata + 1
   42978       394968 :          data_tmp = full_data(idata)
   42979       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42980       394968 :          data_tmp = IAND(data_tmp, mask_left(49))
   42981       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42982       394968 :          ipack = ipack + 1
   42983       394968 :          packed_data(ipack) = pack_tmp
   42984       394968 :          data_tmp = full_data(idata)
   42985       394968 :          pack_tmp = ISHFT(data_tmp, 60)
   42986       394968 :          pack_tmp = ISHFT(pack_tmp, -53)
   42987       394968 :          idata = idata + 1
   42988       394968 :          data_tmp = full_data(idata)
   42989       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42990       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42991       394968 :          pack_tmp = ISHFT(pack_tmp, -7)
   42992       394968 :          idata = idata + 1
   42993       394968 :          data_tmp = full_data(idata)
   42994       394968 :          data_tmp = ISHFT(data_tmp, 11)
   42995       394968 :          data_tmp = IAND(data_tmp, mask_left(7))
   42996       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   42997       394968 :          ipack = ipack + 1
   42998       394968 :          packed_data(ipack) = pack_tmp
   42999       394968 :          data_tmp = full_data(idata)
   43000       394968 :          pack_tmp = ISHFT(data_tmp, 18)
   43001       394968 :          pack_tmp = ISHFT(pack_tmp, -18)
   43002       394968 :          idata = idata + 1
   43003       394968 :          data_tmp = full_data(idata)
   43004       394968 :          data_tmp = ISHFT(data_tmp, 11)
   43005       394968 :          data_tmp = IAND(data_tmp, mask_left(18))
   43006       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43007       394968 :          ipack = ipack + 1
   43008       394968 :          packed_data(ipack) = pack_tmp
   43009       394968 :          data_tmp = full_data(idata)
   43010       394968 :          pack_tmp = ISHFT(data_tmp, 29)
   43011       394968 :          pack_tmp = ISHFT(pack_tmp, -29)
   43012       394968 :          idata = idata + 1
   43013       394968 :          data_tmp = full_data(idata)
   43014       394968 :          data_tmp = ISHFT(data_tmp, 11)
   43015       394968 :          data_tmp = IAND(data_tmp, mask_left(29))
   43016       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43017       394968 :          ipack = ipack + 1
   43018       394968 :          packed_data(ipack) = pack_tmp
   43019       394968 :          data_tmp = full_data(idata)
   43020       394968 :          pack_tmp = ISHFT(data_tmp, 40)
   43021       394968 :          pack_tmp = ISHFT(pack_tmp, -40)
   43022       394968 :          idata = idata + 1
   43023       394968 :          data_tmp = full_data(idata)
   43024       394968 :          data_tmp = ISHFT(data_tmp, 11)
   43025       394968 :          data_tmp = IAND(data_tmp, mask_left(40))
   43026       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43027       394968 :          ipack = ipack + 1
   43028       394968 :          packed_data(ipack) = pack_tmp
   43029       394968 :          data_tmp = full_data(idata)
   43030       394968 :          pack_tmp = ISHFT(data_tmp, 51)
   43031       394968 :          pack_tmp = ISHFT(pack_tmp, -51)
   43032       394968 :          idata = idata + 1
   43033       394968 :          data_tmp = full_data(idata)
   43034       394968 :          data_tmp = ISHFT(data_tmp, 11)
   43035       394968 :          data_tmp = IAND(data_tmp, mask_left(51))
   43036       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43037       394968 :          ipack = ipack + 1
   43038       394968 :          packed_data(ipack) = pack_tmp
   43039       394968 :          data_tmp = full_data(idata)
   43040       394968 :          pack_tmp = ISHFT(data_tmp, 62)
   43041       394968 :          pack_tmp = ISHFT(pack_tmp, -53)
   43042       394968 :          idata = idata + 1
   43043       394968 :          data_tmp = full_data(idata)
   43044       394968 :          data_tmp = ISHFT(data_tmp, 11)
   43045       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43046       394968 :          pack_tmp = ISHFT(pack_tmp, -9)
   43047       394968 :          idata = idata + 1
   43048       394968 :          data_tmp = full_data(idata)
   43049       394968 :          data_tmp = ISHFT(data_tmp, 11)
   43050       394968 :          data_tmp = IAND(data_tmp, mask_left(9))
   43051       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43052       394968 :          ipack = ipack + 1
   43053       394968 :          packed_data(ipack) = pack_tmp
   43054       394968 :          data_tmp = full_data(idata)
   43055       394968 :          pack_tmp = ISHFT(data_tmp, 20)
   43056       394968 :          pack_tmp = ISHFT(pack_tmp, -20)
   43057       394968 :          idata = idata + 1
   43058       394968 :          data_tmp = full_data(idata)
   43059       394968 :          data_tmp = ISHFT(data_tmp, 11)
   43060       394968 :          data_tmp = IAND(data_tmp, mask_left(20))
   43061       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43062       394968 :          ipack = ipack + 1
   43063       394968 :          packed_data(ipack) = pack_tmp
   43064       394968 :          data_tmp = full_data(idata)
   43065       394968 :          pack_tmp = ISHFT(data_tmp, 31)
   43066       394968 :          pack_tmp = ISHFT(pack_tmp, -31)
   43067       394968 :          idata = idata + 1
   43068       394968 :          data_tmp = full_data(idata)
   43069       394968 :          data_tmp = ISHFT(data_tmp, 11)
   43070       394968 :          data_tmp = IAND(data_tmp, mask_left(31))
   43071       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43072       394968 :          ipack = ipack + 1
   43073       394968 :          packed_data(ipack) = pack_tmp
   43074       394968 :          data_tmp = full_data(idata)
   43075       394968 :          pack_tmp = ISHFT(data_tmp, 42)
   43076       394968 :          pack_tmp = ISHFT(pack_tmp, -42)
   43077       394968 :          idata = idata + 1
   43078       394968 :          data_tmp = full_data(idata)
   43079       394968 :          data_tmp = ISHFT(data_tmp, 11)
   43080       394968 :          data_tmp = IAND(data_tmp, mask_left(42))
   43081       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43082       394968 :          ipack = ipack + 1
   43083       394968 :          packed_data(ipack) = pack_tmp
   43084       394968 :          data_tmp = full_data(idata)
   43085       394968 :          pack_tmp = ISHFT(data_tmp, 53)
   43086       394968 :          pack_tmp = ISHFT(pack_tmp, -53)
   43087       394968 :          idata = idata + 1
   43088       394968 :          data_tmp = full_data(idata)
   43089       394968 :          data_tmp = ISHFT(data_tmp, 11)
   43090       394968 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43091              :          pack_tmp = ISHFT(pack_tmp, 0)
   43092       394968 :          pack_tmp = ISHFT(pack_tmp, 0)
   43093       394968 :          ipack = ipack + 1
   43094       394988 :          packed_data(ipack) = pack_tmp
   43095              :       END DO
   43096        24932 :       IF (Ndata_rep < Ndata) THEN
   43097          464 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   43098              :       END IF
   43099        24932 :    END SUBROUTINE ints2bits_53
   43100              : 
   43101              : ! **************************************************************************************************
   43102              : !> \brief ...
   43103              : !> \param Ndata ...
   43104              : !> \param packed_data ...
   43105              : !> \param full_data ...
   43106              : ! **************************************************************************************************
   43107       111123 :    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       111123 :       ipack = 0
   43118       111123 :       idata = 0
   43119       111123 :       pack_tmp = 0
   43120       111123 :       Ndata_rep = (Ndata/64)*64
   43121       111123 :       DO kdata = 1, Ndata_rep, 64
   43122      1679980 :          idata = idata + 1
   43123      1679980 :          data_tmp = ISHFT(pack_tmp, 53)
   43124      1679980 :          ipack = ipack + 1
   43125      1679980 :          pack_tmp = packed_data(ipack)
   43126      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   43127      1679980 :          pack_tmp = ISHFT(pack_tmp, -53)
   43128      1679980 :          idata = idata + 1
   43129      1679980 :          data_tmp = ISHFT(pack_tmp, 42)
   43130      1679980 :          ipack = ipack + 1
   43131      1679980 :          pack_tmp = packed_data(ipack)
   43132      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   43133      1679980 :          pack_tmp = ISHFT(pack_tmp, -42)
   43134      1679980 :          idata = idata + 1
   43135      1679980 :          data_tmp = ISHFT(pack_tmp, 31)
   43136      1679980 :          ipack = ipack + 1
   43137      1679980 :          pack_tmp = packed_data(ipack)
   43138      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   43139      1679980 :          pack_tmp = ISHFT(pack_tmp, -31)
   43140      1679980 :          idata = idata + 1
   43141      1679980 :          data_tmp = ISHFT(pack_tmp, 20)
   43142      1679980 :          ipack = ipack + 1
   43143      1679980 :          pack_tmp = packed_data(ipack)
   43144      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   43145      1679980 :          pack_tmp = ISHFT(pack_tmp, -20)
   43146      1679980 :          idata = idata + 1
   43147      1679980 :          data_tmp = ISHFT(pack_tmp, 9)
   43148      1679980 :          ipack = ipack + 1
   43149      1679980 :          pack_tmp = packed_data(ipack)
   43150      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   43151      1679980 :          pack_tmp = ISHFT(pack_tmp, -9)
   43152      1679980 :          idata = idata + 1
   43153      1679980 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43154      1679980 :          full_data(idata) = data_tmp
   43155      1679980 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43156      1679980 :          idata = idata + 1
   43157      1679980 :          data_tmp = ISHFT(pack_tmp, 51)
   43158      1679980 :          ipack = ipack + 1
   43159      1679980 :          pack_tmp = packed_data(ipack)
   43160      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   43161      1679980 :          pack_tmp = ISHFT(pack_tmp, -51)
   43162      1679980 :          idata = idata + 1
   43163      1679980 :          data_tmp = ISHFT(pack_tmp, 40)
   43164      1679980 :          ipack = ipack + 1
   43165      1679980 :          pack_tmp = packed_data(ipack)
   43166      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   43167      1679980 :          pack_tmp = ISHFT(pack_tmp, -40)
   43168      1679980 :          idata = idata + 1
   43169      1679980 :          data_tmp = ISHFT(pack_tmp, 29)
   43170      1679980 :          ipack = ipack + 1
   43171      1679980 :          pack_tmp = packed_data(ipack)
   43172      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   43173      1679980 :          pack_tmp = ISHFT(pack_tmp, -29)
   43174      1679980 :          idata = idata + 1
   43175      1679980 :          data_tmp = ISHFT(pack_tmp, 18)
   43176      1679980 :          ipack = ipack + 1
   43177      1679980 :          pack_tmp = packed_data(ipack)
   43178      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   43179      1679980 :          pack_tmp = ISHFT(pack_tmp, -18)
   43180      1679980 :          idata = idata + 1
   43181      1679980 :          data_tmp = ISHFT(pack_tmp, 7)
   43182      1679980 :          ipack = ipack + 1
   43183      1679980 :          pack_tmp = packed_data(ipack)
   43184      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   43185      1679980 :          pack_tmp = ISHFT(pack_tmp, -7)
   43186      1679980 :          idata = idata + 1
   43187      1679980 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43188      1679980 :          full_data(idata) = data_tmp
   43189      1679980 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43190      1679980 :          idata = idata + 1
   43191      1679980 :          data_tmp = ISHFT(pack_tmp, 49)
   43192      1679980 :          ipack = ipack + 1
   43193      1679980 :          pack_tmp = packed_data(ipack)
   43194      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   43195      1679980 :          pack_tmp = ISHFT(pack_tmp, -49)
   43196      1679980 :          idata = idata + 1
   43197      1679980 :          data_tmp = ISHFT(pack_tmp, 38)
   43198      1679980 :          ipack = ipack + 1
   43199      1679980 :          pack_tmp = packed_data(ipack)
   43200      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   43201      1679980 :          pack_tmp = ISHFT(pack_tmp, -38)
   43202      1679980 :          idata = idata + 1
   43203      1679980 :          data_tmp = ISHFT(pack_tmp, 27)
   43204      1679980 :          ipack = ipack + 1
   43205      1679980 :          pack_tmp = packed_data(ipack)
   43206      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   43207      1679980 :          pack_tmp = ISHFT(pack_tmp, -27)
   43208      1679980 :          idata = idata + 1
   43209      1679980 :          data_tmp = ISHFT(pack_tmp, 16)
   43210      1679980 :          ipack = ipack + 1
   43211      1679980 :          pack_tmp = packed_data(ipack)
   43212      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   43213      1679980 :          pack_tmp = ISHFT(pack_tmp, -16)
   43214      1679980 :          idata = idata + 1
   43215      1679980 :          data_tmp = ISHFT(pack_tmp, 5)
   43216      1679980 :          ipack = ipack + 1
   43217      1679980 :          pack_tmp = packed_data(ipack)
   43218      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   43219      1679980 :          pack_tmp = ISHFT(pack_tmp, -5)
   43220      1679980 :          idata = idata + 1
   43221      1679980 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43222      1679980 :          full_data(idata) = data_tmp
   43223      1679980 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43224      1679980 :          idata = idata + 1
   43225      1679980 :          data_tmp = ISHFT(pack_tmp, 47)
   43226      1679980 :          ipack = ipack + 1
   43227      1679980 :          pack_tmp = packed_data(ipack)
   43228      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   43229      1679980 :          pack_tmp = ISHFT(pack_tmp, -47)
   43230      1679980 :          idata = idata + 1
   43231      1679980 :          data_tmp = ISHFT(pack_tmp, 36)
   43232      1679980 :          ipack = ipack + 1
   43233      1679980 :          pack_tmp = packed_data(ipack)
   43234      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   43235      1679980 :          pack_tmp = ISHFT(pack_tmp, -36)
   43236      1679980 :          idata = idata + 1
   43237      1679980 :          data_tmp = ISHFT(pack_tmp, 25)
   43238      1679980 :          ipack = ipack + 1
   43239      1679980 :          pack_tmp = packed_data(ipack)
   43240      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   43241      1679980 :          pack_tmp = ISHFT(pack_tmp, -25)
   43242      1679980 :          idata = idata + 1
   43243      1679980 :          data_tmp = ISHFT(pack_tmp, 14)
   43244      1679980 :          ipack = ipack + 1
   43245      1679980 :          pack_tmp = packed_data(ipack)
   43246      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   43247      1679980 :          pack_tmp = ISHFT(pack_tmp, -14)
   43248      1679980 :          idata = idata + 1
   43249      1679980 :          data_tmp = ISHFT(pack_tmp, 3)
   43250      1679980 :          ipack = ipack + 1
   43251      1679980 :          pack_tmp = packed_data(ipack)
   43252      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   43253      1679980 :          pack_tmp = ISHFT(pack_tmp, -3)
   43254      1679980 :          idata = idata + 1
   43255      1679980 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43256      1679980 :          full_data(idata) = data_tmp
   43257      1679980 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43258      1679980 :          idata = idata + 1
   43259      1679980 :          data_tmp = ISHFT(pack_tmp, 45)
   43260      1679980 :          ipack = ipack + 1
   43261      1679980 :          pack_tmp = packed_data(ipack)
   43262      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   43263      1679980 :          pack_tmp = ISHFT(pack_tmp, -45)
   43264      1679980 :          idata = idata + 1
   43265      1679980 :          data_tmp = ISHFT(pack_tmp, 34)
   43266      1679980 :          ipack = ipack + 1
   43267      1679980 :          pack_tmp = packed_data(ipack)
   43268      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   43269      1679980 :          pack_tmp = ISHFT(pack_tmp, -34)
   43270      1679980 :          idata = idata + 1
   43271      1679980 :          data_tmp = ISHFT(pack_tmp, 23)
   43272      1679980 :          ipack = ipack + 1
   43273      1679980 :          pack_tmp = packed_data(ipack)
   43274      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   43275      1679980 :          pack_tmp = ISHFT(pack_tmp, -23)
   43276      1679980 :          idata = idata + 1
   43277      1679980 :          data_tmp = ISHFT(pack_tmp, 12)
   43278      1679980 :          ipack = ipack + 1
   43279      1679980 :          pack_tmp = packed_data(ipack)
   43280      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   43281      1679980 :          pack_tmp = ISHFT(pack_tmp, -12)
   43282      1679980 :          idata = idata + 1
   43283      1679980 :          data_tmp = ISHFT(pack_tmp, 1)
   43284      1679980 :          ipack = ipack + 1
   43285      1679980 :          pack_tmp = packed_data(ipack)
   43286      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   43287      1679980 :          pack_tmp = ISHFT(pack_tmp, -1)
   43288      1679980 :          idata = idata + 1
   43289      1679980 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43290      1679980 :          full_data(idata) = data_tmp
   43291      1679980 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43292      1679980 :          idata = idata + 1
   43293      1679980 :          data_tmp = ISHFT(pack_tmp, 43)
   43294      1679980 :          ipack = ipack + 1
   43295      1679980 :          pack_tmp = packed_data(ipack)
   43296      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   43297      1679980 :          pack_tmp = ISHFT(pack_tmp, -43)
   43298      1679980 :          idata = idata + 1
   43299      1679980 :          data_tmp = ISHFT(pack_tmp, 32)
   43300      1679980 :          ipack = ipack + 1
   43301      1679980 :          pack_tmp = packed_data(ipack)
   43302      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   43303      1679980 :          pack_tmp = ISHFT(pack_tmp, -32)
   43304      1679980 :          idata = idata + 1
   43305      1679980 :          data_tmp = ISHFT(pack_tmp, 21)
   43306      1679980 :          ipack = ipack + 1
   43307      1679980 :          pack_tmp = packed_data(ipack)
   43308      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   43309      1679980 :          pack_tmp = ISHFT(pack_tmp, -21)
   43310      1679980 :          idata = idata + 1
   43311      1679980 :          data_tmp = ISHFT(pack_tmp, 10)
   43312      1679980 :          ipack = ipack + 1
   43313      1679980 :          pack_tmp = packed_data(ipack)
   43314      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   43315      1679980 :          pack_tmp = ISHFT(pack_tmp, -10)
   43316      1679980 :          idata = idata + 1
   43317      1679980 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43318      1679980 :          full_data(idata) = data_tmp
   43319      1679980 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43320      1679980 :          idata = idata + 1
   43321      1679980 :          data_tmp = ISHFT(pack_tmp, 52)
   43322      1679980 :          ipack = ipack + 1
   43323      1679980 :          pack_tmp = packed_data(ipack)
   43324      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   43325      1679980 :          pack_tmp = ISHFT(pack_tmp, -52)
   43326      1679980 :          idata = idata + 1
   43327      1679980 :          data_tmp = ISHFT(pack_tmp, 41)
   43328      1679980 :          ipack = ipack + 1
   43329      1679980 :          pack_tmp = packed_data(ipack)
   43330      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   43331      1679980 :          pack_tmp = ISHFT(pack_tmp, -41)
   43332      1679980 :          idata = idata + 1
   43333      1679980 :          data_tmp = ISHFT(pack_tmp, 30)
   43334      1679980 :          ipack = ipack + 1
   43335      1679980 :          pack_tmp = packed_data(ipack)
   43336      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   43337      1679980 :          pack_tmp = ISHFT(pack_tmp, -30)
   43338      1679980 :          idata = idata + 1
   43339      1679980 :          data_tmp = ISHFT(pack_tmp, 19)
   43340      1679980 :          ipack = ipack + 1
   43341      1679980 :          pack_tmp = packed_data(ipack)
   43342      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   43343      1679980 :          pack_tmp = ISHFT(pack_tmp, -19)
   43344      1679980 :          idata = idata + 1
   43345      1679980 :          data_tmp = ISHFT(pack_tmp, 8)
   43346      1679980 :          ipack = ipack + 1
   43347      1679980 :          pack_tmp = packed_data(ipack)
   43348      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   43349      1679980 :          pack_tmp = ISHFT(pack_tmp, -8)
   43350      1679980 :          idata = idata + 1
   43351      1679980 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43352      1679980 :          full_data(idata) = data_tmp
   43353      1679980 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43354      1679980 :          idata = idata + 1
   43355      1679980 :          data_tmp = ISHFT(pack_tmp, 50)
   43356      1679980 :          ipack = ipack + 1
   43357      1679980 :          pack_tmp = packed_data(ipack)
   43358      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   43359      1679980 :          pack_tmp = ISHFT(pack_tmp, -50)
   43360      1679980 :          idata = idata + 1
   43361      1679980 :          data_tmp = ISHFT(pack_tmp, 39)
   43362      1679980 :          ipack = ipack + 1
   43363      1679980 :          pack_tmp = packed_data(ipack)
   43364      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   43365      1679980 :          pack_tmp = ISHFT(pack_tmp, -39)
   43366      1679980 :          idata = idata + 1
   43367      1679980 :          data_tmp = ISHFT(pack_tmp, 28)
   43368      1679980 :          ipack = ipack + 1
   43369      1679980 :          pack_tmp = packed_data(ipack)
   43370      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   43371      1679980 :          pack_tmp = ISHFT(pack_tmp, -28)
   43372      1679980 :          idata = idata + 1
   43373      1679980 :          data_tmp = ISHFT(pack_tmp, 17)
   43374      1679980 :          ipack = ipack + 1
   43375      1679980 :          pack_tmp = packed_data(ipack)
   43376      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   43377      1679980 :          pack_tmp = ISHFT(pack_tmp, -17)
   43378      1679980 :          idata = idata + 1
   43379      1679980 :          data_tmp = ISHFT(pack_tmp, 6)
   43380      1679980 :          ipack = ipack + 1
   43381      1679980 :          pack_tmp = packed_data(ipack)
   43382      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   43383      1679980 :          pack_tmp = ISHFT(pack_tmp, -6)
   43384      1679980 :          idata = idata + 1
   43385      1679980 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43386      1679980 :          full_data(idata) = data_tmp
   43387      1679980 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43388      1679980 :          idata = idata + 1
   43389      1679980 :          data_tmp = ISHFT(pack_tmp, 48)
   43390      1679980 :          ipack = ipack + 1
   43391      1679980 :          pack_tmp = packed_data(ipack)
   43392      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   43393      1679980 :          pack_tmp = ISHFT(pack_tmp, -48)
   43394      1679980 :          idata = idata + 1
   43395      1679980 :          data_tmp = ISHFT(pack_tmp, 37)
   43396      1679980 :          ipack = ipack + 1
   43397      1679980 :          pack_tmp = packed_data(ipack)
   43398      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   43399      1679980 :          pack_tmp = ISHFT(pack_tmp, -37)
   43400      1679980 :          idata = idata + 1
   43401      1679980 :          data_tmp = ISHFT(pack_tmp, 26)
   43402      1679980 :          ipack = ipack + 1
   43403      1679980 :          pack_tmp = packed_data(ipack)
   43404      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   43405      1679980 :          pack_tmp = ISHFT(pack_tmp, -26)
   43406      1679980 :          idata = idata + 1
   43407      1679980 :          data_tmp = ISHFT(pack_tmp, 15)
   43408      1679980 :          ipack = ipack + 1
   43409      1679980 :          pack_tmp = packed_data(ipack)
   43410      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   43411      1679980 :          pack_tmp = ISHFT(pack_tmp, -15)
   43412      1679980 :          idata = idata + 1
   43413      1679980 :          data_tmp = ISHFT(pack_tmp, 4)
   43414      1679980 :          ipack = ipack + 1
   43415      1679980 :          pack_tmp = packed_data(ipack)
   43416      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   43417      1679980 :          pack_tmp = ISHFT(pack_tmp, -4)
   43418      1679980 :          idata = idata + 1
   43419      1679980 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43420      1679980 :          full_data(idata) = data_tmp
   43421      1679980 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43422      1679980 :          idata = idata + 1
   43423      1679980 :          data_tmp = ISHFT(pack_tmp, 46)
   43424      1679980 :          ipack = ipack + 1
   43425      1679980 :          pack_tmp = packed_data(ipack)
   43426      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   43427      1679980 :          pack_tmp = ISHFT(pack_tmp, -46)
   43428      1679980 :          idata = idata + 1
   43429      1679980 :          data_tmp = ISHFT(pack_tmp, 35)
   43430      1679980 :          ipack = ipack + 1
   43431      1679980 :          pack_tmp = packed_data(ipack)
   43432      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   43433      1679980 :          pack_tmp = ISHFT(pack_tmp, -35)
   43434      1679980 :          idata = idata + 1
   43435      1679980 :          data_tmp = ISHFT(pack_tmp, 24)
   43436      1679980 :          ipack = ipack + 1
   43437      1679980 :          pack_tmp = packed_data(ipack)
   43438      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   43439      1679980 :          pack_tmp = ISHFT(pack_tmp, -24)
   43440      1679980 :          idata = idata + 1
   43441      1679980 :          data_tmp = ISHFT(pack_tmp, 13)
   43442      1679980 :          ipack = ipack + 1
   43443      1679980 :          pack_tmp = packed_data(ipack)
   43444      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   43445      1679980 :          pack_tmp = ISHFT(pack_tmp, -13)
   43446      1679980 :          idata = idata + 1
   43447      1679980 :          data_tmp = ISHFT(pack_tmp, 2)
   43448      1679980 :          ipack = ipack + 1
   43449      1679980 :          pack_tmp = packed_data(ipack)
   43450      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   43451      1679980 :          pack_tmp = ISHFT(pack_tmp, -2)
   43452      1679980 :          idata = idata + 1
   43453      1679980 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43454      1679980 :          full_data(idata) = data_tmp
   43455      1679980 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43456      1679980 :          idata = idata + 1
   43457      1679980 :          data_tmp = ISHFT(pack_tmp, 44)
   43458      1679980 :          ipack = ipack + 1
   43459      1679980 :          pack_tmp = packed_data(ipack)
   43460      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   43461      1679980 :          pack_tmp = ISHFT(pack_tmp, -44)
   43462      1679980 :          idata = idata + 1
   43463      1679980 :          data_tmp = ISHFT(pack_tmp, 33)
   43464      1679980 :          ipack = ipack + 1
   43465      1679980 :          pack_tmp = packed_data(ipack)
   43466      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   43467      1679980 :          pack_tmp = ISHFT(pack_tmp, -33)
   43468      1679980 :          idata = idata + 1
   43469      1679980 :          data_tmp = ISHFT(pack_tmp, 22)
   43470      1679980 :          ipack = ipack + 1
   43471      1679980 :          pack_tmp = packed_data(ipack)
   43472      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   43473      1679980 :          pack_tmp = ISHFT(pack_tmp, -22)
   43474      1679980 :          idata = idata + 1
   43475      1679980 :          data_tmp = ISHFT(pack_tmp, 11)
   43476      1679980 :          ipack = ipack + 1
   43477      1679980 :          pack_tmp = packed_data(ipack)
   43478      1679980 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   43479      1679980 :          pack_tmp = ISHFT(pack_tmp, -11)
   43480      1679980 :          idata = idata + 1
   43481      1679980 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   43482      1679980 :          full_data(idata) = data_tmp
   43483      1680370 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   43484              :       END DO
   43485       111123 :       IF (Ndata_rep < Ndata) THEN
   43486        11528 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   43487              :       END IF
   43488       111123 :    END SUBROUTINE bits2ints_53
   43489              : 
   43490              : ! **************************************************************************************************
   43491              : !> \brief ...
   43492              : !> \param Ndata ...
   43493              : !> \param packed_data ...
   43494              : !> \param full_data ...
   43495              : ! **************************************************************************************************
   43496        24810 :    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        24810 :       idata = 0
   43507        24810 :       ipack = 0
   43508        24810 :       Ndata_rep = (Ndata/64)*64
   43509        24810 :       DO kdata = 1, Ndata_rep, 64
   43510       393934 :          pack_tmp = 0
   43511       393934 :          idata = idata + 1
   43512       393934 :          data_tmp = full_data(idata)
   43513       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43514       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43515       393934 :          pack_tmp = ISHFT(pack_tmp, -10)
   43516       393934 :          idata = idata + 1
   43517       393934 :          data_tmp = full_data(idata)
   43518       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43519       393934 :          data_tmp = IAND(data_tmp, mask_left(10))
   43520       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43521       393934 :          ipack = ipack + 1
   43522       393934 :          packed_data(ipack) = pack_tmp
   43523       393934 :          data_tmp = full_data(idata)
   43524       393934 :          pack_tmp = ISHFT(data_tmp, 20)
   43525       393934 :          pack_tmp = ISHFT(pack_tmp, -20)
   43526       393934 :          idata = idata + 1
   43527       393934 :          data_tmp = full_data(idata)
   43528       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43529       393934 :          data_tmp = IAND(data_tmp, mask_left(20))
   43530       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43531       393934 :          ipack = ipack + 1
   43532       393934 :          packed_data(ipack) = pack_tmp
   43533       393934 :          data_tmp = full_data(idata)
   43534       393934 :          pack_tmp = ISHFT(data_tmp, 30)
   43535       393934 :          pack_tmp = ISHFT(pack_tmp, -30)
   43536       393934 :          idata = idata + 1
   43537       393934 :          data_tmp = full_data(idata)
   43538       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43539       393934 :          data_tmp = IAND(data_tmp, mask_left(30))
   43540       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43541       393934 :          ipack = ipack + 1
   43542       393934 :          packed_data(ipack) = pack_tmp
   43543       393934 :          data_tmp = full_data(idata)
   43544       393934 :          pack_tmp = ISHFT(data_tmp, 40)
   43545       393934 :          pack_tmp = ISHFT(pack_tmp, -40)
   43546       393934 :          idata = idata + 1
   43547       393934 :          data_tmp = full_data(idata)
   43548       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43549       393934 :          data_tmp = IAND(data_tmp, mask_left(40))
   43550       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43551       393934 :          ipack = ipack + 1
   43552       393934 :          packed_data(ipack) = pack_tmp
   43553       393934 :          data_tmp = full_data(idata)
   43554       393934 :          pack_tmp = ISHFT(data_tmp, 50)
   43555       393934 :          pack_tmp = ISHFT(pack_tmp, -50)
   43556       393934 :          idata = idata + 1
   43557       393934 :          data_tmp = full_data(idata)
   43558       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43559       393934 :          data_tmp = IAND(data_tmp, mask_left(50))
   43560       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43561       393934 :          ipack = ipack + 1
   43562       393934 :          packed_data(ipack) = pack_tmp
   43563       393934 :          data_tmp = full_data(idata)
   43564       393934 :          pack_tmp = ISHFT(data_tmp, 60)
   43565       393934 :          pack_tmp = ISHFT(pack_tmp, -54)
   43566       393934 :          idata = idata + 1
   43567       393934 :          data_tmp = full_data(idata)
   43568       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43569       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43570       393934 :          pack_tmp = ISHFT(pack_tmp, -6)
   43571       393934 :          idata = idata + 1
   43572       393934 :          data_tmp = full_data(idata)
   43573       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43574       393934 :          data_tmp = IAND(data_tmp, mask_left(6))
   43575       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43576       393934 :          ipack = ipack + 1
   43577       393934 :          packed_data(ipack) = pack_tmp
   43578       393934 :          data_tmp = full_data(idata)
   43579       393934 :          pack_tmp = ISHFT(data_tmp, 16)
   43580       393934 :          pack_tmp = ISHFT(pack_tmp, -16)
   43581       393934 :          idata = idata + 1
   43582       393934 :          data_tmp = full_data(idata)
   43583       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43584       393934 :          data_tmp = IAND(data_tmp, mask_left(16))
   43585       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43586       393934 :          ipack = ipack + 1
   43587       393934 :          packed_data(ipack) = pack_tmp
   43588       393934 :          data_tmp = full_data(idata)
   43589       393934 :          pack_tmp = ISHFT(data_tmp, 26)
   43590       393934 :          pack_tmp = ISHFT(pack_tmp, -26)
   43591       393934 :          idata = idata + 1
   43592       393934 :          data_tmp = full_data(idata)
   43593       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43594       393934 :          data_tmp = IAND(data_tmp, mask_left(26))
   43595       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43596       393934 :          ipack = ipack + 1
   43597       393934 :          packed_data(ipack) = pack_tmp
   43598       393934 :          data_tmp = full_data(idata)
   43599       393934 :          pack_tmp = ISHFT(data_tmp, 36)
   43600       393934 :          pack_tmp = ISHFT(pack_tmp, -36)
   43601       393934 :          idata = idata + 1
   43602       393934 :          data_tmp = full_data(idata)
   43603       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43604       393934 :          data_tmp = IAND(data_tmp, mask_left(36))
   43605       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43606       393934 :          ipack = ipack + 1
   43607       393934 :          packed_data(ipack) = pack_tmp
   43608       393934 :          data_tmp = full_data(idata)
   43609       393934 :          pack_tmp = ISHFT(data_tmp, 46)
   43610       393934 :          pack_tmp = ISHFT(pack_tmp, -46)
   43611       393934 :          idata = idata + 1
   43612       393934 :          data_tmp = full_data(idata)
   43613       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43614       393934 :          data_tmp = IAND(data_tmp, mask_left(46))
   43615       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43616       393934 :          ipack = ipack + 1
   43617       393934 :          packed_data(ipack) = pack_tmp
   43618       393934 :          data_tmp = full_data(idata)
   43619       393934 :          pack_tmp = ISHFT(data_tmp, 56)
   43620       393934 :          pack_tmp = ISHFT(pack_tmp, -54)
   43621       393934 :          idata = idata + 1
   43622       393934 :          data_tmp = full_data(idata)
   43623       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43624       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43625       393934 :          pack_tmp = ISHFT(pack_tmp, -2)
   43626       393934 :          idata = idata + 1
   43627       393934 :          data_tmp = full_data(idata)
   43628       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43629       393934 :          data_tmp = IAND(data_tmp, mask_left(2))
   43630       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43631       393934 :          ipack = ipack + 1
   43632       393934 :          packed_data(ipack) = pack_tmp
   43633       393934 :          data_tmp = full_data(idata)
   43634       393934 :          pack_tmp = ISHFT(data_tmp, 12)
   43635       393934 :          pack_tmp = ISHFT(pack_tmp, -12)
   43636       393934 :          idata = idata + 1
   43637       393934 :          data_tmp = full_data(idata)
   43638       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43639       393934 :          data_tmp = IAND(data_tmp, mask_left(12))
   43640       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43641       393934 :          ipack = ipack + 1
   43642       393934 :          packed_data(ipack) = pack_tmp
   43643       393934 :          data_tmp = full_data(idata)
   43644       393934 :          pack_tmp = ISHFT(data_tmp, 22)
   43645       393934 :          pack_tmp = ISHFT(pack_tmp, -22)
   43646       393934 :          idata = idata + 1
   43647       393934 :          data_tmp = full_data(idata)
   43648       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43649       393934 :          data_tmp = IAND(data_tmp, mask_left(22))
   43650       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43651       393934 :          ipack = ipack + 1
   43652       393934 :          packed_data(ipack) = pack_tmp
   43653       393934 :          data_tmp = full_data(idata)
   43654       393934 :          pack_tmp = ISHFT(data_tmp, 32)
   43655       393934 :          pack_tmp = ISHFT(pack_tmp, -32)
   43656       393934 :          idata = idata + 1
   43657       393934 :          data_tmp = full_data(idata)
   43658       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43659       393934 :          data_tmp = IAND(data_tmp, mask_left(32))
   43660       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43661       393934 :          ipack = ipack + 1
   43662       393934 :          packed_data(ipack) = pack_tmp
   43663       393934 :          data_tmp = full_data(idata)
   43664       393934 :          pack_tmp = ISHFT(data_tmp, 42)
   43665       393934 :          pack_tmp = ISHFT(pack_tmp, -42)
   43666       393934 :          idata = idata + 1
   43667       393934 :          data_tmp = full_data(idata)
   43668       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43669       393934 :          data_tmp = IAND(data_tmp, mask_left(42))
   43670       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43671       393934 :          ipack = ipack + 1
   43672       393934 :          packed_data(ipack) = pack_tmp
   43673       393934 :          data_tmp = full_data(idata)
   43674       393934 :          pack_tmp = ISHFT(data_tmp, 52)
   43675       393934 :          pack_tmp = ISHFT(pack_tmp, -52)
   43676       393934 :          idata = idata + 1
   43677       393934 :          data_tmp = full_data(idata)
   43678       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43679       393934 :          data_tmp = IAND(data_tmp, mask_left(52))
   43680       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43681       393934 :          ipack = ipack + 1
   43682       393934 :          packed_data(ipack) = pack_tmp
   43683       393934 :          data_tmp = full_data(idata)
   43684       393934 :          pack_tmp = ISHFT(data_tmp, 62)
   43685       393934 :          pack_tmp = ISHFT(pack_tmp, -54)
   43686       393934 :          idata = idata + 1
   43687       393934 :          data_tmp = full_data(idata)
   43688       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43689       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43690       393934 :          pack_tmp = ISHFT(pack_tmp, -8)
   43691       393934 :          idata = idata + 1
   43692       393934 :          data_tmp = full_data(idata)
   43693       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43694       393934 :          data_tmp = IAND(data_tmp, mask_left(8))
   43695       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43696       393934 :          ipack = ipack + 1
   43697       393934 :          packed_data(ipack) = pack_tmp
   43698       393934 :          data_tmp = full_data(idata)
   43699       393934 :          pack_tmp = ISHFT(data_tmp, 18)
   43700       393934 :          pack_tmp = ISHFT(pack_tmp, -18)
   43701       393934 :          idata = idata + 1
   43702       393934 :          data_tmp = full_data(idata)
   43703       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43704       393934 :          data_tmp = IAND(data_tmp, mask_left(18))
   43705       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43706       393934 :          ipack = ipack + 1
   43707       393934 :          packed_data(ipack) = pack_tmp
   43708       393934 :          data_tmp = full_data(idata)
   43709       393934 :          pack_tmp = ISHFT(data_tmp, 28)
   43710       393934 :          pack_tmp = ISHFT(pack_tmp, -28)
   43711       393934 :          idata = idata + 1
   43712       393934 :          data_tmp = full_data(idata)
   43713       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43714       393934 :          data_tmp = IAND(data_tmp, mask_left(28))
   43715       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43716       393934 :          ipack = ipack + 1
   43717       393934 :          packed_data(ipack) = pack_tmp
   43718       393934 :          data_tmp = full_data(idata)
   43719       393934 :          pack_tmp = ISHFT(data_tmp, 38)
   43720       393934 :          pack_tmp = ISHFT(pack_tmp, -38)
   43721       393934 :          idata = idata + 1
   43722       393934 :          data_tmp = full_data(idata)
   43723       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43724       393934 :          data_tmp = IAND(data_tmp, mask_left(38))
   43725       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43726       393934 :          ipack = ipack + 1
   43727       393934 :          packed_data(ipack) = pack_tmp
   43728       393934 :          data_tmp = full_data(idata)
   43729       393934 :          pack_tmp = ISHFT(data_tmp, 48)
   43730       393934 :          pack_tmp = ISHFT(pack_tmp, -48)
   43731       393934 :          idata = idata + 1
   43732       393934 :          data_tmp = full_data(idata)
   43733       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43734       393934 :          data_tmp = IAND(data_tmp, mask_left(48))
   43735       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43736       393934 :          ipack = ipack + 1
   43737       393934 :          packed_data(ipack) = pack_tmp
   43738       393934 :          data_tmp = full_data(idata)
   43739       393934 :          pack_tmp = ISHFT(data_tmp, 58)
   43740       393934 :          pack_tmp = ISHFT(pack_tmp, -54)
   43741       393934 :          idata = idata + 1
   43742       393934 :          data_tmp = full_data(idata)
   43743       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43744       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43745       393934 :          pack_tmp = ISHFT(pack_tmp, -4)
   43746       393934 :          idata = idata + 1
   43747       393934 :          data_tmp = full_data(idata)
   43748       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43749       393934 :          data_tmp = IAND(data_tmp, mask_left(4))
   43750       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43751       393934 :          ipack = ipack + 1
   43752       393934 :          packed_data(ipack) = pack_tmp
   43753       393934 :          data_tmp = full_data(idata)
   43754       393934 :          pack_tmp = ISHFT(data_tmp, 14)
   43755       393934 :          pack_tmp = ISHFT(pack_tmp, -14)
   43756       393934 :          idata = idata + 1
   43757       393934 :          data_tmp = full_data(idata)
   43758       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43759       393934 :          data_tmp = IAND(data_tmp, mask_left(14))
   43760       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43761       393934 :          ipack = ipack + 1
   43762       393934 :          packed_data(ipack) = pack_tmp
   43763       393934 :          data_tmp = full_data(idata)
   43764       393934 :          pack_tmp = ISHFT(data_tmp, 24)
   43765       393934 :          pack_tmp = ISHFT(pack_tmp, -24)
   43766       393934 :          idata = idata + 1
   43767       393934 :          data_tmp = full_data(idata)
   43768       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43769       393934 :          data_tmp = IAND(data_tmp, mask_left(24))
   43770       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43771       393934 :          ipack = ipack + 1
   43772       393934 :          packed_data(ipack) = pack_tmp
   43773       393934 :          data_tmp = full_data(idata)
   43774       393934 :          pack_tmp = ISHFT(data_tmp, 34)
   43775       393934 :          pack_tmp = ISHFT(pack_tmp, -34)
   43776       393934 :          idata = idata + 1
   43777       393934 :          data_tmp = full_data(idata)
   43778       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43779       393934 :          data_tmp = IAND(data_tmp, mask_left(34))
   43780       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43781       393934 :          ipack = ipack + 1
   43782       393934 :          packed_data(ipack) = pack_tmp
   43783       393934 :          data_tmp = full_data(idata)
   43784       393934 :          pack_tmp = ISHFT(data_tmp, 44)
   43785       393934 :          pack_tmp = ISHFT(pack_tmp, -44)
   43786       393934 :          idata = idata + 1
   43787       393934 :          data_tmp = full_data(idata)
   43788       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43789       393934 :          data_tmp = IAND(data_tmp, mask_left(44))
   43790       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43791       393934 :          ipack = ipack + 1
   43792       393934 :          packed_data(ipack) = pack_tmp
   43793       393934 :          data_tmp = full_data(idata)
   43794       393934 :          pack_tmp = ISHFT(data_tmp, 54)
   43795       393934 :          pack_tmp = ISHFT(pack_tmp, -54)
   43796       393934 :          idata = idata + 1
   43797       393934 :          data_tmp = full_data(idata)
   43798       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43799       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43800       393934 :          pack_tmp = ISHFT(pack_tmp, 0)
   43801       393934 :          idata = idata + 1
   43802       393934 :          data_tmp = full_data(idata)
   43803              :          data_tmp = ISHFT(data_tmp, 10)
   43804       393934 :          data_tmp = IAND(data_tmp, mask_left(0))
   43805       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43806       393934 :          ipack = ipack + 1
   43807       393934 :          packed_data(ipack) = pack_tmp
   43808       393934 :          data_tmp = full_data(idata)
   43809       393934 :          pack_tmp = ISHFT(data_tmp, 10)
   43810       393934 :          pack_tmp = ISHFT(pack_tmp, -10)
   43811       393934 :          idata = idata + 1
   43812       393934 :          data_tmp = full_data(idata)
   43813       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43814       393934 :          data_tmp = IAND(data_tmp, mask_left(10))
   43815       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43816       393934 :          ipack = ipack + 1
   43817       393934 :          packed_data(ipack) = pack_tmp
   43818       393934 :          data_tmp = full_data(idata)
   43819       393934 :          pack_tmp = ISHFT(data_tmp, 20)
   43820       393934 :          pack_tmp = ISHFT(pack_tmp, -20)
   43821       393934 :          idata = idata + 1
   43822       393934 :          data_tmp = full_data(idata)
   43823       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43824       393934 :          data_tmp = IAND(data_tmp, mask_left(20))
   43825       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43826       393934 :          ipack = ipack + 1
   43827       393934 :          packed_data(ipack) = pack_tmp
   43828       393934 :          data_tmp = full_data(idata)
   43829       393934 :          pack_tmp = ISHFT(data_tmp, 30)
   43830       393934 :          pack_tmp = ISHFT(pack_tmp, -30)
   43831       393934 :          idata = idata + 1
   43832       393934 :          data_tmp = full_data(idata)
   43833       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43834       393934 :          data_tmp = IAND(data_tmp, mask_left(30))
   43835       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43836       393934 :          ipack = ipack + 1
   43837       393934 :          packed_data(ipack) = pack_tmp
   43838       393934 :          data_tmp = full_data(idata)
   43839       393934 :          pack_tmp = ISHFT(data_tmp, 40)
   43840       393934 :          pack_tmp = ISHFT(pack_tmp, -40)
   43841       393934 :          idata = idata + 1
   43842       393934 :          data_tmp = full_data(idata)
   43843       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43844       393934 :          data_tmp = IAND(data_tmp, mask_left(40))
   43845       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43846       393934 :          ipack = ipack + 1
   43847       393934 :          packed_data(ipack) = pack_tmp
   43848       393934 :          data_tmp = full_data(idata)
   43849       393934 :          pack_tmp = ISHFT(data_tmp, 50)
   43850       393934 :          pack_tmp = ISHFT(pack_tmp, -50)
   43851       393934 :          idata = idata + 1
   43852       393934 :          data_tmp = full_data(idata)
   43853       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43854       393934 :          data_tmp = IAND(data_tmp, mask_left(50))
   43855       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43856       393934 :          ipack = ipack + 1
   43857       393934 :          packed_data(ipack) = pack_tmp
   43858       393934 :          data_tmp = full_data(idata)
   43859       393934 :          pack_tmp = ISHFT(data_tmp, 60)
   43860       393934 :          pack_tmp = ISHFT(pack_tmp, -54)
   43861       393934 :          idata = idata + 1
   43862       393934 :          data_tmp = full_data(idata)
   43863       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43864       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43865       393934 :          pack_tmp = ISHFT(pack_tmp, -6)
   43866       393934 :          idata = idata + 1
   43867       393934 :          data_tmp = full_data(idata)
   43868       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43869       393934 :          data_tmp = IAND(data_tmp, mask_left(6))
   43870       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43871       393934 :          ipack = ipack + 1
   43872       393934 :          packed_data(ipack) = pack_tmp
   43873       393934 :          data_tmp = full_data(idata)
   43874       393934 :          pack_tmp = ISHFT(data_tmp, 16)
   43875       393934 :          pack_tmp = ISHFT(pack_tmp, -16)
   43876       393934 :          idata = idata + 1
   43877       393934 :          data_tmp = full_data(idata)
   43878       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43879       393934 :          data_tmp = IAND(data_tmp, mask_left(16))
   43880       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43881       393934 :          ipack = ipack + 1
   43882       393934 :          packed_data(ipack) = pack_tmp
   43883       393934 :          data_tmp = full_data(idata)
   43884       393934 :          pack_tmp = ISHFT(data_tmp, 26)
   43885       393934 :          pack_tmp = ISHFT(pack_tmp, -26)
   43886       393934 :          idata = idata + 1
   43887       393934 :          data_tmp = full_data(idata)
   43888       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43889       393934 :          data_tmp = IAND(data_tmp, mask_left(26))
   43890       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43891       393934 :          ipack = ipack + 1
   43892       393934 :          packed_data(ipack) = pack_tmp
   43893       393934 :          data_tmp = full_data(idata)
   43894       393934 :          pack_tmp = ISHFT(data_tmp, 36)
   43895       393934 :          pack_tmp = ISHFT(pack_tmp, -36)
   43896       393934 :          idata = idata + 1
   43897       393934 :          data_tmp = full_data(idata)
   43898       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43899       393934 :          data_tmp = IAND(data_tmp, mask_left(36))
   43900       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43901       393934 :          ipack = ipack + 1
   43902       393934 :          packed_data(ipack) = pack_tmp
   43903       393934 :          data_tmp = full_data(idata)
   43904       393934 :          pack_tmp = ISHFT(data_tmp, 46)
   43905       393934 :          pack_tmp = ISHFT(pack_tmp, -46)
   43906       393934 :          idata = idata + 1
   43907       393934 :          data_tmp = full_data(idata)
   43908       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43909       393934 :          data_tmp = IAND(data_tmp, mask_left(46))
   43910       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43911       393934 :          ipack = ipack + 1
   43912       393934 :          packed_data(ipack) = pack_tmp
   43913       393934 :          data_tmp = full_data(idata)
   43914       393934 :          pack_tmp = ISHFT(data_tmp, 56)
   43915       393934 :          pack_tmp = ISHFT(pack_tmp, -54)
   43916       393934 :          idata = idata + 1
   43917       393934 :          data_tmp = full_data(idata)
   43918       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43919       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43920       393934 :          pack_tmp = ISHFT(pack_tmp, -2)
   43921       393934 :          idata = idata + 1
   43922       393934 :          data_tmp = full_data(idata)
   43923       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43924       393934 :          data_tmp = IAND(data_tmp, mask_left(2))
   43925       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43926       393934 :          ipack = ipack + 1
   43927       393934 :          packed_data(ipack) = pack_tmp
   43928       393934 :          data_tmp = full_data(idata)
   43929       393934 :          pack_tmp = ISHFT(data_tmp, 12)
   43930       393934 :          pack_tmp = ISHFT(pack_tmp, -12)
   43931       393934 :          idata = idata + 1
   43932       393934 :          data_tmp = full_data(idata)
   43933       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43934       393934 :          data_tmp = IAND(data_tmp, mask_left(12))
   43935       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43936       393934 :          ipack = ipack + 1
   43937       393934 :          packed_data(ipack) = pack_tmp
   43938       393934 :          data_tmp = full_data(idata)
   43939       393934 :          pack_tmp = ISHFT(data_tmp, 22)
   43940       393934 :          pack_tmp = ISHFT(pack_tmp, -22)
   43941       393934 :          idata = idata + 1
   43942       393934 :          data_tmp = full_data(idata)
   43943       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43944       393934 :          data_tmp = IAND(data_tmp, mask_left(22))
   43945       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43946       393934 :          ipack = ipack + 1
   43947       393934 :          packed_data(ipack) = pack_tmp
   43948       393934 :          data_tmp = full_data(idata)
   43949       393934 :          pack_tmp = ISHFT(data_tmp, 32)
   43950       393934 :          pack_tmp = ISHFT(pack_tmp, -32)
   43951       393934 :          idata = idata + 1
   43952       393934 :          data_tmp = full_data(idata)
   43953       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43954       393934 :          data_tmp = IAND(data_tmp, mask_left(32))
   43955       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43956       393934 :          ipack = ipack + 1
   43957       393934 :          packed_data(ipack) = pack_tmp
   43958       393934 :          data_tmp = full_data(idata)
   43959       393934 :          pack_tmp = ISHFT(data_tmp, 42)
   43960       393934 :          pack_tmp = ISHFT(pack_tmp, -42)
   43961       393934 :          idata = idata + 1
   43962       393934 :          data_tmp = full_data(idata)
   43963       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43964       393934 :          data_tmp = IAND(data_tmp, mask_left(42))
   43965       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43966       393934 :          ipack = ipack + 1
   43967       393934 :          packed_data(ipack) = pack_tmp
   43968       393934 :          data_tmp = full_data(idata)
   43969       393934 :          pack_tmp = ISHFT(data_tmp, 52)
   43970       393934 :          pack_tmp = ISHFT(pack_tmp, -52)
   43971       393934 :          idata = idata + 1
   43972       393934 :          data_tmp = full_data(idata)
   43973       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43974       393934 :          data_tmp = IAND(data_tmp, mask_left(52))
   43975       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43976       393934 :          ipack = ipack + 1
   43977       393934 :          packed_data(ipack) = pack_tmp
   43978       393934 :          data_tmp = full_data(idata)
   43979       393934 :          pack_tmp = ISHFT(data_tmp, 62)
   43980       393934 :          pack_tmp = ISHFT(pack_tmp, -54)
   43981       393934 :          idata = idata + 1
   43982       393934 :          data_tmp = full_data(idata)
   43983       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43984       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43985       393934 :          pack_tmp = ISHFT(pack_tmp, -8)
   43986       393934 :          idata = idata + 1
   43987       393934 :          data_tmp = full_data(idata)
   43988       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43989       393934 :          data_tmp = IAND(data_tmp, mask_left(8))
   43990       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   43991       393934 :          ipack = ipack + 1
   43992       393934 :          packed_data(ipack) = pack_tmp
   43993       393934 :          data_tmp = full_data(idata)
   43994       393934 :          pack_tmp = ISHFT(data_tmp, 18)
   43995       393934 :          pack_tmp = ISHFT(pack_tmp, -18)
   43996       393934 :          idata = idata + 1
   43997       393934 :          data_tmp = full_data(idata)
   43998       393934 :          data_tmp = ISHFT(data_tmp, 10)
   43999       393934 :          data_tmp = IAND(data_tmp, mask_left(18))
   44000       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44001       393934 :          ipack = ipack + 1
   44002       393934 :          packed_data(ipack) = pack_tmp
   44003       393934 :          data_tmp = full_data(idata)
   44004       393934 :          pack_tmp = ISHFT(data_tmp, 28)
   44005       393934 :          pack_tmp = ISHFT(pack_tmp, -28)
   44006       393934 :          idata = idata + 1
   44007       393934 :          data_tmp = full_data(idata)
   44008       393934 :          data_tmp = ISHFT(data_tmp, 10)
   44009       393934 :          data_tmp = IAND(data_tmp, mask_left(28))
   44010       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44011       393934 :          ipack = ipack + 1
   44012       393934 :          packed_data(ipack) = pack_tmp
   44013       393934 :          data_tmp = full_data(idata)
   44014       393934 :          pack_tmp = ISHFT(data_tmp, 38)
   44015       393934 :          pack_tmp = ISHFT(pack_tmp, -38)
   44016       393934 :          idata = idata + 1
   44017       393934 :          data_tmp = full_data(idata)
   44018       393934 :          data_tmp = ISHFT(data_tmp, 10)
   44019       393934 :          data_tmp = IAND(data_tmp, mask_left(38))
   44020       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44021       393934 :          ipack = ipack + 1
   44022       393934 :          packed_data(ipack) = pack_tmp
   44023       393934 :          data_tmp = full_data(idata)
   44024       393934 :          pack_tmp = ISHFT(data_tmp, 48)
   44025       393934 :          pack_tmp = ISHFT(pack_tmp, -48)
   44026       393934 :          idata = idata + 1
   44027       393934 :          data_tmp = full_data(idata)
   44028       393934 :          data_tmp = ISHFT(data_tmp, 10)
   44029       393934 :          data_tmp = IAND(data_tmp, mask_left(48))
   44030       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44031       393934 :          ipack = ipack + 1
   44032       393934 :          packed_data(ipack) = pack_tmp
   44033       393934 :          data_tmp = full_data(idata)
   44034       393934 :          pack_tmp = ISHFT(data_tmp, 58)
   44035       393934 :          pack_tmp = ISHFT(pack_tmp, -54)
   44036       393934 :          idata = idata + 1
   44037       393934 :          data_tmp = full_data(idata)
   44038       393934 :          data_tmp = ISHFT(data_tmp, 10)
   44039       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44040       393934 :          pack_tmp = ISHFT(pack_tmp, -4)
   44041       393934 :          idata = idata + 1
   44042       393934 :          data_tmp = full_data(idata)
   44043       393934 :          data_tmp = ISHFT(data_tmp, 10)
   44044       393934 :          data_tmp = IAND(data_tmp, mask_left(4))
   44045       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44046       393934 :          ipack = ipack + 1
   44047       393934 :          packed_data(ipack) = pack_tmp
   44048       393934 :          data_tmp = full_data(idata)
   44049       393934 :          pack_tmp = ISHFT(data_tmp, 14)
   44050       393934 :          pack_tmp = ISHFT(pack_tmp, -14)
   44051       393934 :          idata = idata + 1
   44052       393934 :          data_tmp = full_data(idata)
   44053       393934 :          data_tmp = ISHFT(data_tmp, 10)
   44054       393934 :          data_tmp = IAND(data_tmp, mask_left(14))
   44055       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44056       393934 :          ipack = ipack + 1
   44057       393934 :          packed_data(ipack) = pack_tmp
   44058       393934 :          data_tmp = full_data(idata)
   44059       393934 :          pack_tmp = ISHFT(data_tmp, 24)
   44060       393934 :          pack_tmp = ISHFT(pack_tmp, -24)
   44061       393934 :          idata = idata + 1
   44062       393934 :          data_tmp = full_data(idata)
   44063       393934 :          data_tmp = ISHFT(data_tmp, 10)
   44064       393934 :          data_tmp = IAND(data_tmp, mask_left(24))
   44065       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44066       393934 :          ipack = ipack + 1
   44067       393934 :          packed_data(ipack) = pack_tmp
   44068       393934 :          data_tmp = full_data(idata)
   44069       393934 :          pack_tmp = ISHFT(data_tmp, 34)
   44070       393934 :          pack_tmp = ISHFT(pack_tmp, -34)
   44071       393934 :          idata = idata + 1
   44072       393934 :          data_tmp = full_data(idata)
   44073       393934 :          data_tmp = ISHFT(data_tmp, 10)
   44074       393934 :          data_tmp = IAND(data_tmp, mask_left(34))
   44075       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44076       393934 :          ipack = ipack + 1
   44077       393934 :          packed_data(ipack) = pack_tmp
   44078       393934 :          data_tmp = full_data(idata)
   44079       393934 :          pack_tmp = ISHFT(data_tmp, 44)
   44080       393934 :          pack_tmp = ISHFT(pack_tmp, -44)
   44081       393934 :          idata = idata + 1
   44082       393934 :          data_tmp = full_data(idata)
   44083       393934 :          data_tmp = ISHFT(data_tmp, 10)
   44084       393934 :          data_tmp = IAND(data_tmp, mask_left(44))
   44085       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44086       393934 :          ipack = ipack + 1
   44087       393934 :          packed_data(ipack) = pack_tmp
   44088       393934 :          data_tmp = full_data(idata)
   44089       393934 :          pack_tmp = ISHFT(data_tmp, 54)
   44090       393934 :          pack_tmp = ISHFT(pack_tmp, -54)
   44091       393934 :          idata = idata + 1
   44092       393934 :          data_tmp = full_data(idata)
   44093       393934 :          data_tmp = ISHFT(data_tmp, 10)
   44094       393934 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44095              :          pack_tmp = ISHFT(pack_tmp, 0)
   44096       393934 :          pack_tmp = ISHFT(pack_tmp, 0)
   44097       393934 :          ipack = ipack + 1
   44098       393948 :          packed_data(ipack) = pack_tmp
   44099              :       END DO
   44100        24810 :       IF (Ndata_rep < Ndata) THEN
   44101          356 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   44102              :       END IF
   44103        24810 :    END SUBROUTINE ints2bits_54
   44104              : 
   44105              : ! **************************************************************************************************
   44106              : !> \brief ...
   44107              : !> \param Ndata ...
   44108              : !> \param packed_data ...
   44109              : !> \param full_data ...
   44110              : ! **************************************************************************************************
   44111       113811 :    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       113811 :       ipack = 0
   44122       113811 :       idata = 0
   44123       113811 :       pack_tmp = 0
   44124       113811 :       Ndata_rep = (Ndata/64)*64
   44125       113811 :       DO kdata = 1, Ndata_rep, 64
   44126      1700922 :          idata = idata + 1
   44127      1700922 :          data_tmp = ISHFT(pack_tmp, 54)
   44128      1700922 :          ipack = ipack + 1
   44129      1700922 :          pack_tmp = packed_data(ipack)
   44130      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   44131      1700922 :          pack_tmp = ISHFT(pack_tmp, -54)
   44132      1700922 :          idata = idata + 1
   44133      1700922 :          data_tmp = ISHFT(pack_tmp, 44)
   44134      1700922 :          ipack = ipack + 1
   44135      1700922 :          pack_tmp = packed_data(ipack)
   44136      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   44137      1700922 :          pack_tmp = ISHFT(pack_tmp, -44)
   44138      1700922 :          idata = idata + 1
   44139      1700922 :          data_tmp = ISHFT(pack_tmp, 34)
   44140      1700922 :          ipack = ipack + 1
   44141      1700922 :          pack_tmp = packed_data(ipack)
   44142      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   44143      1700922 :          pack_tmp = ISHFT(pack_tmp, -34)
   44144      1700922 :          idata = idata + 1
   44145      1700922 :          data_tmp = ISHFT(pack_tmp, 24)
   44146      1700922 :          ipack = ipack + 1
   44147      1700922 :          pack_tmp = packed_data(ipack)
   44148      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   44149      1700922 :          pack_tmp = ISHFT(pack_tmp, -24)
   44150      1700922 :          idata = idata + 1
   44151      1700922 :          data_tmp = ISHFT(pack_tmp, 14)
   44152      1700922 :          ipack = ipack + 1
   44153      1700922 :          pack_tmp = packed_data(ipack)
   44154      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   44155      1700922 :          pack_tmp = ISHFT(pack_tmp, -14)
   44156      1700922 :          idata = idata + 1
   44157      1700922 :          data_tmp = ISHFT(pack_tmp, 4)
   44158      1700922 :          ipack = ipack + 1
   44159      1700922 :          pack_tmp = packed_data(ipack)
   44160      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   44161      1700922 :          pack_tmp = ISHFT(pack_tmp, -4)
   44162      1700922 :          idata = idata + 1
   44163      1700922 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44164      1700922 :          full_data(idata) = data_tmp
   44165      1700922 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44166      1700922 :          idata = idata + 1
   44167      1700922 :          data_tmp = ISHFT(pack_tmp, 48)
   44168      1700922 :          ipack = ipack + 1
   44169      1700922 :          pack_tmp = packed_data(ipack)
   44170      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   44171      1700922 :          pack_tmp = ISHFT(pack_tmp, -48)
   44172      1700922 :          idata = idata + 1
   44173      1700922 :          data_tmp = ISHFT(pack_tmp, 38)
   44174      1700922 :          ipack = ipack + 1
   44175      1700922 :          pack_tmp = packed_data(ipack)
   44176      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   44177      1700922 :          pack_tmp = ISHFT(pack_tmp, -38)
   44178      1700922 :          idata = idata + 1
   44179      1700922 :          data_tmp = ISHFT(pack_tmp, 28)
   44180      1700922 :          ipack = ipack + 1
   44181      1700922 :          pack_tmp = packed_data(ipack)
   44182      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   44183      1700922 :          pack_tmp = ISHFT(pack_tmp, -28)
   44184      1700922 :          idata = idata + 1
   44185      1700922 :          data_tmp = ISHFT(pack_tmp, 18)
   44186      1700922 :          ipack = ipack + 1
   44187      1700922 :          pack_tmp = packed_data(ipack)
   44188      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   44189      1700922 :          pack_tmp = ISHFT(pack_tmp, -18)
   44190      1700922 :          idata = idata + 1
   44191      1700922 :          data_tmp = ISHFT(pack_tmp, 8)
   44192      1700922 :          ipack = ipack + 1
   44193      1700922 :          pack_tmp = packed_data(ipack)
   44194      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   44195      1700922 :          pack_tmp = ISHFT(pack_tmp, -8)
   44196      1700922 :          idata = idata + 1
   44197      1700922 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44198      1700922 :          full_data(idata) = data_tmp
   44199      1700922 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44200      1700922 :          idata = idata + 1
   44201      1700922 :          data_tmp = ISHFT(pack_tmp, 52)
   44202      1700922 :          ipack = ipack + 1
   44203      1700922 :          pack_tmp = packed_data(ipack)
   44204      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   44205      1700922 :          pack_tmp = ISHFT(pack_tmp, -52)
   44206      1700922 :          idata = idata + 1
   44207      1700922 :          data_tmp = ISHFT(pack_tmp, 42)
   44208      1700922 :          ipack = ipack + 1
   44209      1700922 :          pack_tmp = packed_data(ipack)
   44210      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   44211      1700922 :          pack_tmp = ISHFT(pack_tmp, -42)
   44212      1700922 :          idata = idata + 1
   44213      1700922 :          data_tmp = ISHFT(pack_tmp, 32)
   44214      1700922 :          ipack = ipack + 1
   44215      1700922 :          pack_tmp = packed_data(ipack)
   44216      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   44217      1700922 :          pack_tmp = ISHFT(pack_tmp, -32)
   44218      1700922 :          idata = idata + 1
   44219      1700922 :          data_tmp = ISHFT(pack_tmp, 22)
   44220      1700922 :          ipack = ipack + 1
   44221      1700922 :          pack_tmp = packed_data(ipack)
   44222      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   44223      1700922 :          pack_tmp = ISHFT(pack_tmp, -22)
   44224      1700922 :          idata = idata + 1
   44225      1700922 :          data_tmp = ISHFT(pack_tmp, 12)
   44226      1700922 :          ipack = ipack + 1
   44227      1700922 :          pack_tmp = packed_data(ipack)
   44228      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   44229      1700922 :          pack_tmp = ISHFT(pack_tmp, -12)
   44230      1700922 :          idata = idata + 1
   44231      1700922 :          data_tmp = ISHFT(pack_tmp, 2)
   44232      1700922 :          ipack = ipack + 1
   44233      1700922 :          pack_tmp = packed_data(ipack)
   44234      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   44235      1700922 :          pack_tmp = ISHFT(pack_tmp, -2)
   44236      1700922 :          idata = idata + 1
   44237      1700922 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44238      1700922 :          full_data(idata) = data_tmp
   44239      1700922 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44240      1700922 :          idata = idata + 1
   44241      1700922 :          data_tmp = ISHFT(pack_tmp, 46)
   44242      1700922 :          ipack = ipack + 1
   44243      1700922 :          pack_tmp = packed_data(ipack)
   44244      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   44245      1700922 :          pack_tmp = ISHFT(pack_tmp, -46)
   44246      1700922 :          idata = idata + 1
   44247      1700922 :          data_tmp = ISHFT(pack_tmp, 36)
   44248      1700922 :          ipack = ipack + 1
   44249      1700922 :          pack_tmp = packed_data(ipack)
   44250      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   44251      1700922 :          pack_tmp = ISHFT(pack_tmp, -36)
   44252      1700922 :          idata = idata + 1
   44253      1700922 :          data_tmp = ISHFT(pack_tmp, 26)
   44254      1700922 :          ipack = ipack + 1
   44255      1700922 :          pack_tmp = packed_data(ipack)
   44256      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   44257      1700922 :          pack_tmp = ISHFT(pack_tmp, -26)
   44258      1700922 :          idata = idata + 1
   44259      1700922 :          data_tmp = ISHFT(pack_tmp, 16)
   44260      1700922 :          ipack = ipack + 1
   44261      1700922 :          pack_tmp = packed_data(ipack)
   44262      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   44263      1700922 :          pack_tmp = ISHFT(pack_tmp, -16)
   44264      1700922 :          idata = idata + 1
   44265      1700922 :          data_tmp = ISHFT(pack_tmp, 6)
   44266      1700922 :          ipack = ipack + 1
   44267      1700922 :          pack_tmp = packed_data(ipack)
   44268      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   44269      1700922 :          pack_tmp = ISHFT(pack_tmp, -6)
   44270      1700922 :          idata = idata + 1
   44271      1700922 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44272      1700922 :          full_data(idata) = data_tmp
   44273      1700922 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44274      1700922 :          idata = idata + 1
   44275      1700922 :          data_tmp = ISHFT(pack_tmp, 50)
   44276      1700922 :          ipack = ipack + 1
   44277      1700922 :          pack_tmp = packed_data(ipack)
   44278      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   44279      1700922 :          pack_tmp = ISHFT(pack_tmp, -50)
   44280      1700922 :          idata = idata + 1
   44281      1700922 :          data_tmp = ISHFT(pack_tmp, 40)
   44282      1700922 :          ipack = ipack + 1
   44283      1700922 :          pack_tmp = packed_data(ipack)
   44284      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   44285      1700922 :          pack_tmp = ISHFT(pack_tmp, -40)
   44286      1700922 :          idata = idata + 1
   44287      1700922 :          data_tmp = ISHFT(pack_tmp, 30)
   44288      1700922 :          ipack = ipack + 1
   44289      1700922 :          pack_tmp = packed_data(ipack)
   44290      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   44291      1700922 :          pack_tmp = ISHFT(pack_tmp, -30)
   44292      1700922 :          idata = idata + 1
   44293      1700922 :          data_tmp = ISHFT(pack_tmp, 20)
   44294      1700922 :          ipack = ipack + 1
   44295      1700922 :          pack_tmp = packed_data(ipack)
   44296      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   44297      1700922 :          pack_tmp = ISHFT(pack_tmp, -20)
   44298      1700922 :          idata = idata + 1
   44299      1700922 :          data_tmp = ISHFT(pack_tmp, 10)
   44300      1700922 :          ipack = ipack + 1
   44301      1700922 :          pack_tmp = packed_data(ipack)
   44302      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   44303      1700922 :          pack_tmp = ISHFT(pack_tmp, -10)
   44304      1700922 :          idata = idata + 1
   44305      1700922 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44306      1700922 :          full_data(idata) = data_tmp
   44307      1700922 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44308      1700922 :          idata = idata + 1
   44309      1700922 :          data_tmp = ISHFT(pack_tmp, 54)
   44310      1700922 :          ipack = ipack + 1
   44311      1700922 :          pack_tmp = packed_data(ipack)
   44312      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   44313      1700922 :          pack_tmp = ISHFT(pack_tmp, -54)
   44314      1700922 :          idata = idata + 1
   44315      1700922 :          data_tmp = ISHFT(pack_tmp, 44)
   44316      1700922 :          ipack = ipack + 1
   44317      1700922 :          pack_tmp = packed_data(ipack)
   44318      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   44319      1700922 :          pack_tmp = ISHFT(pack_tmp, -44)
   44320      1700922 :          idata = idata + 1
   44321      1700922 :          data_tmp = ISHFT(pack_tmp, 34)
   44322      1700922 :          ipack = ipack + 1
   44323      1700922 :          pack_tmp = packed_data(ipack)
   44324      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   44325      1700922 :          pack_tmp = ISHFT(pack_tmp, -34)
   44326      1700922 :          idata = idata + 1
   44327      1700922 :          data_tmp = ISHFT(pack_tmp, 24)
   44328      1700922 :          ipack = ipack + 1
   44329      1700922 :          pack_tmp = packed_data(ipack)
   44330      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   44331      1700922 :          pack_tmp = ISHFT(pack_tmp, -24)
   44332      1700922 :          idata = idata + 1
   44333      1700922 :          data_tmp = ISHFT(pack_tmp, 14)
   44334      1700922 :          ipack = ipack + 1
   44335      1700922 :          pack_tmp = packed_data(ipack)
   44336      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   44337      1700922 :          pack_tmp = ISHFT(pack_tmp, -14)
   44338      1700922 :          idata = idata + 1
   44339      1700922 :          data_tmp = ISHFT(pack_tmp, 4)
   44340      1700922 :          ipack = ipack + 1
   44341      1700922 :          pack_tmp = packed_data(ipack)
   44342      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   44343      1700922 :          pack_tmp = ISHFT(pack_tmp, -4)
   44344      1700922 :          idata = idata + 1
   44345      1700922 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44346      1700922 :          full_data(idata) = data_tmp
   44347      1700922 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44348      1700922 :          idata = idata + 1
   44349      1700922 :          data_tmp = ISHFT(pack_tmp, 48)
   44350      1700922 :          ipack = ipack + 1
   44351      1700922 :          pack_tmp = packed_data(ipack)
   44352      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   44353      1700922 :          pack_tmp = ISHFT(pack_tmp, -48)
   44354      1700922 :          idata = idata + 1
   44355      1700922 :          data_tmp = ISHFT(pack_tmp, 38)
   44356      1700922 :          ipack = ipack + 1
   44357      1700922 :          pack_tmp = packed_data(ipack)
   44358      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   44359      1700922 :          pack_tmp = ISHFT(pack_tmp, -38)
   44360      1700922 :          idata = idata + 1
   44361      1700922 :          data_tmp = ISHFT(pack_tmp, 28)
   44362      1700922 :          ipack = ipack + 1
   44363      1700922 :          pack_tmp = packed_data(ipack)
   44364      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   44365      1700922 :          pack_tmp = ISHFT(pack_tmp, -28)
   44366      1700922 :          idata = idata + 1
   44367      1700922 :          data_tmp = ISHFT(pack_tmp, 18)
   44368      1700922 :          ipack = ipack + 1
   44369      1700922 :          pack_tmp = packed_data(ipack)
   44370      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   44371      1700922 :          pack_tmp = ISHFT(pack_tmp, -18)
   44372      1700922 :          idata = idata + 1
   44373      1700922 :          data_tmp = ISHFT(pack_tmp, 8)
   44374      1700922 :          ipack = ipack + 1
   44375      1700922 :          pack_tmp = packed_data(ipack)
   44376      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   44377      1700922 :          pack_tmp = ISHFT(pack_tmp, -8)
   44378      1700922 :          idata = idata + 1
   44379      1700922 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44380      1700922 :          full_data(idata) = data_tmp
   44381      1700922 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44382      1700922 :          idata = idata + 1
   44383      1700922 :          data_tmp = ISHFT(pack_tmp, 52)
   44384      1700922 :          ipack = ipack + 1
   44385      1700922 :          pack_tmp = packed_data(ipack)
   44386      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   44387      1700922 :          pack_tmp = ISHFT(pack_tmp, -52)
   44388      1700922 :          idata = idata + 1
   44389      1700922 :          data_tmp = ISHFT(pack_tmp, 42)
   44390      1700922 :          ipack = ipack + 1
   44391      1700922 :          pack_tmp = packed_data(ipack)
   44392      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   44393      1700922 :          pack_tmp = ISHFT(pack_tmp, -42)
   44394      1700922 :          idata = idata + 1
   44395      1700922 :          data_tmp = ISHFT(pack_tmp, 32)
   44396      1700922 :          ipack = ipack + 1
   44397      1700922 :          pack_tmp = packed_data(ipack)
   44398      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   44399      1700922 :          pack_tmp = ISHFT(pack_tmp, -32)
   44400      1700922 :          idata = idata + 1
   44401      1700922 :          data_tmp = ISHFT(pack_tmp, 22)
   44402      1700922 :          ipack = ipack + 1
   44403      1700922 :          pack_tmp = packed_data(ipack)
   44404      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   44405      1700922 :          pack_tmp = ISHFT(pack_tmp, -22)
   44406      1700922 :          idata = idata + 1
   44407      1700922 :          data_tmp = ISHFT(pack_tmp, 12)
   44408      1700922 :          ipack = ipack + 1
   44409      1700922 :          pack_tmp = packed_data(ipack)
   44410      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   44411      1700922 :          pack_tmp = ISHFT(pack_tmp, -12)
   44412      1700922 :          idata = idata + 1
   44413      1700922 :          data_tmp = ISHFT(pack_tmp, 2)
   44414      1700922 :          ipack = ipack + 1
   44415      1700922 :          pack_tmp = packed_data(ipack)
   44416      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   44417      1700922 :          pack_tmp = ISHFT(pack_tmp, -2)
   44418      1700922 :          idata = idata + 1
   44419      1700922 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44420      1700922 :          full_data(idata) = data_tmp
   44421      1700922 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44422      1700922 :          idata = idata + 1
   44423      1700922 :          data_tmp = ISHFT(pack_tmp, 46)
   44424      1700922 :          ipack = ipack + 1
   44425      1700922 :          pack_tmp = packed_data(ipack)
   44426      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   44427      1700922 :          pack_tmp = ISHFT(pack_tmp, -46)
   44428      1700922 :          idata = idata + 1
   44429      1700922 :          data_tmp = ISHFT(pack_tmp, 36)
   44430      1700922 :          ipack = ipack + 1
   44431      1700922 :          pack_tmp = packed_data(ipack)
   44432      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   44433      1700922 :          pack_tmp = ISHFT(pack_tmp, -36)
   44434      1700922 :          idata = idata + 1
   44435      1700922 :          data_tmp = ISHFT(pack_tmp, 26)
   44436      1700922 :          ipack = ipack + 1
   44437      1700922 :          pack_tmp = packed_data(ipack)
   44438      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   44439      1700922 :          pack_tmp = ISHFT(pack_tmp, -26)
   44440      1700922 :          idata = idata + 1
   44441      1700922 :          data_tmp = ISHFT(pack_tmp, 16)
   44442      1700922 :          ipack = ipack + 1
   44443      1700922 :          pack_tmp = packed_data(ipack)
   44444      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   44445      1700922 :          pack_tmp = ISHFT(pack_tmp, -16)
   44446      1700922 :          idata = idata + 1
   44447      1700922 :          data_tmp = ISHFT(pack_tmp, 6)
   44448      1700922 :          ipack = ipack + 1
   44449      1700922 :          pack_tmp = packed_data(ipack)
   44450      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   44451      1700922 :          pack_tmp = ISHFT(pack_tmp, -6)
   44452      1700922 :          idata = idata + 1
   44453      1700922 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44454      1700922 :          full_data(idata) = data_tmp
   44455      1700922 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44456      1700922 :          idata = idata + 1
   44457      1700922 :          data_tmp = ISHFT(pack_tmp, 50)
   44458      1700922 :          ipack = ipack + 1
   44459      1700922 :          pack_tmp = packed_data(ipack)
   44460      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   44461      1700922 :          pack_tmp = ISHFT(pack_tmp, -50)
   44462      1700922 :          idata = idata + 1
   44463      1700922 :          data_tmp = ISHFT(pack_tmp, 40)
   44464      1700922 :          ipack = ipack + 1
   44465      1700922 :          pack_tmp = packed_data(ipack)
   44466      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   44467      1700922 :          pack_tmp = ISHFT(pack_tmp, -40)
   44468      1700922 :          idata = idata + 1
   44469      1700922 :          data_tmp = ISHFT(pack_tmp, 30)
   44470      1700922 :          ipack = ipack + 1
   44471      1700922 :          pack_tmp = packed_data(ipack)
   44472      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   44473      1700922 :          pack_tmp = ISHFT(pack_tmp, -30)
   44474      1700922 :          idata = idata + 1
   44475      1700922 :          data_tmp = ISHFT(pack_tmp, 20)
   44476      1700922 :          ipack = ipack + 1
   44477      1700922 :          pack_tmp = packed_data(ipack)
   44478      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   44479      1700922 :          pack_tmp = ISHFT(pack_tmp, -20)
   44480      1700922 :          idata = idata + 1
   44481      1700922 :          data_tmp = ISHFT(pack_tmp, 10)
   44482      1700922 :          ipack = ipack + 1
   44483      1700922 :          pack_tmp = packed_data(ipack)
   44484      1700922 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   44485      1700922 :          pack_tmp = ISHFT(pack_tmp, -10)
   44486      1700922 :          idata = idata + 1
   44487      1700922 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   44488      1700922 :          full_data(idata) = data_tmp
   44489      1701776 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   44490              :       END DO
   44491       113811 :       IF (Ndata_rep < Ndata) THEN
   44492        14124 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   44493              :       END IF
   44494       113811 :    END SUBROUTINE bits2ints_54
   44495              : 
   44496              : ! **************************************************************************************************
   44497              : !> \brief ...
   44498              : !> \param Ndata ...
   44499              : !> \param packed_data ...
   44500              : !> \param full_data ...
   44501              : ! **************************************************************************************************
   44502        24728 :    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        24728 :       idata = 0
   44513        24728 :       ipack = 0
   44514        24728 :       Ndata_rep = (Ndata/64)*64
   44515        24728 :       DO kdata = 1, Ndata_rep, 64
   44516       393268 :          pack_tmp = 0
   44517       393268 :          idata = idata + 1
   44518       393268 :          data_tmp = full_data(idata)
   44519       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44520       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44521       393268 :          pack_tmp = ISHFT(pack_tmp, -9)
   44522       393268 :          idata = idata + 1
   44523       393268 :          data_tmp = full_data(idata)
   44524       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44525       393268 :          data_tmp = IAND(data_tmp, mask_left(9))
   44526       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44527       393268 :          ipack = ipack + 1
   44528       393268 :          packed_data(ipack) = pack_tmp
   44529       393268 :          data_tmp = full_data(idata)
   44530       393268 :          pack_tmp = ISHFT(data_tmp, 18)
   44531       393268 :          pack_tmp = ISHFT(pack_tmp, -18)
   44532       393268 :          idata = idata + 1
   44533       393268 :          data_tmp = full_data(idata)
   44534       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44535       393268 :          data_tmp = IAND(data_tmp, mask_left(18))
   44536       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44537       393268 :          ipack = ipack + 1
   44538       393268 :          packed_data(ipack) = pack_tmp
   44539       393268 :          data_tmp = full_data(idata)
   44540       393268 :          pack_tmp = ISHFT(data_tmp, 27)
   44541       393268 :          pack_tmp = ISHFT(pack_tmp, -27)
   44542       393268 :          idata = idata + 1
   44543       393268 :          data_tmp = full_data(idata)
   44544       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44545       393268 :          data_tmp = IAND(data_tmp, mask_left(27))
   44546       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44547       393268 :          ipack = ipack + 1
   44548       393268 :          packed_data(ipack) = pack_tmp
   44549       393268 :          data_tmp = full_data(idata)
   44550       393268 :          pack_tmp = ISHFT(data_tmp, 36)
   44551       393268 :          pack_tmp = ISHFT(pack_tmp, -36)
   44552       393268 :          idata = idata + 1
   44553       393268 :          data_tmp = full_data(idata)
   44554       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44555       393268 :          data_tmp = IAND(data_tmp, mask_left(36))
   44556       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44557       393268 :          ipack = ipack + 1
   44558       393268 :          packed_data(ipack) = pack_tmp
   44559       393268 :          data_tmp = full_data(idata)
   44560       393268 :          pack_tmp = ISHFT(data_tmp, 45)
   44561       393268 :          pack_tmp = ISHFT(pack_tmp, -45)
   44562       393268 :          idata = idata + 1
   44563       393268 :          data_tmp = full_data(idata)
   44564       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44565       393268 :          data_tmp = IAND(data_tmp, mask_left(45))
   44566       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44567       393268 :          ipack = ipack + 1
   44568       393268 :          packed_data(ipack) = pack_tmp
   44569       393268 :          data_tmp = full_data(idata)
   44570       393268 :          pack_tmp = ISHFT(data_tmp, 54)
   44571       393268 :          pack_tmp = ISHFT(pack_tmp, -54)
   44572       393268 :          idata = idata + 1
   44573       393268 :          data_tmp = full_data(idata)
   44574       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44575       393268 :          data_tmp = IAND(data_tmp, mask_left(54))
   44576       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44577       393268 :          ipack = ipack + 1
   44578       393268 :          packed_data(ipack) = pack_tmp
   44579       393268 :          data_tmp = full_data(idata)
   44580       393268 :          pack_tmp = ISHFT(data_tmp, 63)
   44581       393268 :          pack_tmp = ISHFT(pack_tmp, -55)
   44582       393268 :          idata = idata + 1
   44583       393268 :          data_tmp = full_data(idata)
   44584       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44585       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44586       393268 :          pack_tmp = ISHFT(pack_tmp, -8)
   44587       393268 :          idata = idata + 1
   44588       393268 :          data_tmp = full_data(idata)
   44589       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44590       393268 :          data_tmp = IAND(data_tmp, mask_left(8))
   44591       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44592       393268 :          ipack = ipack + 1
   44593       393268 :          packed_data(ipack) = pack_tmp
   44594       393268 :          data_tmp = full_data(idata)
   44595       393268 :          pack_tmp = ISHFT(data_tmp, 17)
   44596       393268 :          pack_tmp = ISHFT(pack_tmp, -17)
   44597       393268 :          idata = idata + 1
   44598       393268 :          data_tmp = full_data(idata)
   44599       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44600       393268 :          data_tmp = IAND(data_tmp, mask_left(17))
   44601       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44602       393268 :          ipack = ipack + 1
   44603       393268 :          packed_data(ipack) = pack_tmp
   44604       393268 :          data_tmp = full_data(idata)
   44605       393268 :          pack_tmp = ISHFT(data_tmp, 26)
   44606       393268 :          pack_tmp = ISHFT(pack_tmp, -26)
   44607       393268 :          idata = idata + 1
   44608       393268 :          data_tmp = full_data(idata)
   44609       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44610       393268 :          data_tmp = IAND(data_tmp, mask_left(26))
   44611       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44612       393268 :          ipack = ipack + 1
   44613       393268 :          packed_data(ipack) = pack_tmp
   44614       393268 :          data_tmp = full_data(idata)
   44615       393268 :          pack_tmp = ISHFT(data_tmp, 35)
   44616       393268 :          pack_tmp = ISHFT(pack_tmp, -35)
   44617       393268 :          idata = idata + 1
   44618       393268 :          data_tmp = full_data(idata)
   44619       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44620       393268 :          data_tmp = IAND(data_tmp, mask_left(35))
   44621       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44622       393268 :          ipack = ipack + 1
   44623       393268 :          packed_data(ipack) = pack_tmp
   44624       393268 :          data_tmp = full_data(idata)
   44625       393268 :          pack_tmp = ISHFT(data_tmp, 44)
   44626       393268 :          pack_tmp = ISHFT(pack_tmp, -44)
   44627       393268 :          idata = idata + 1
   44628       393268 :          data_tmp = full_data(idata)
   44629       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44630       393268 :          data_tmp = IAND(data_tmp, mask_left(44))
   44631       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44632       393268 :          ipack = ipack + 1
   44633       393268 :          packed_data(ipack) = pack_tmp
   44634       393268 :          data_tmp = full_data(idata)
   44635       393268 :          pack_tmp = ISHFT(data_tmp, 53)
   44636       393268 :          pack_tmp = ISHFT(pack_tmp, -53)
   44637       393268 :          idata = idata + 1
   44638       393268 :          data_tmp = full_data(idata)
   44639       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44640       393268 :          data_tmp = IAND(data_tmp, mask_left(53))
   44641       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44642       393268 :          ipack = ipack + 1
   44643       393268 :          packed_data(ipack) = pack_tmp
   44644       393268 :          data_tmp = full_data(idata)
   44645       393268 :          pack_tmp = ISHFT(data_tmp, 62)
   44646       393268 :          pack_tmp = ISHFT(pack_tmp, -55)
   44647       393268 :          idata = idata + 1
   44648       393268 :          data_tmp = full_data(idata)
   44649       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44650       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44651       393268 :          pack_tmp = ISHFT(pack_tmp, -7)
   44652       393268 :          idata = idata + 1
   44653       393268 :          data_tmp = full_data(idata)
   44654       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44655       393268 :          data_tmp = IAND(data_tmp, mask_left(7))
   44656       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44657       393268 :          ipack = ipack + 1
   44658       393268 :          packed_data(ipack) = pack_tmp
   44659       393268 :          data_tmp = full_data(idata)
   44660       393268 :          pack_tmp = ISHFT(data_tmp, 16)
   44661       393268 :          pack_tmp = ISHFT(pack_tmp, -16)
   44662       393268 :          idata = idata + 1
   44663       393268 :          data_tmp = full_data(idata)
   44664       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44665       393268 :          data_tmp = IAND(data_tmp, mask_left(16))
   44666       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44667       393268 :          ipack = ipack + 1
   44668       393268 :          packed_data(ipack) = pack_tmp
   44669       393268 :          data_tmp = full_data(idata)
   44670       393268 :          pack_tmp = ISHFT(data_tmp, 25)
   44671       393268 :          pack_tmp = ISHFT(pack_tmp, -25)
   44672       393268 :          idata = idata + 1
   44673       393268 :          data_tmp = full_data(idata)
   44674       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44675       393268 :          data_tmp = IAND(data_tmp, mask_left(25))
   44676       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44677       393268 :          ipack = ipack + 1
   44678       393268 :          packed_data(ipack) = pack_tmp
   44679       393268 :          data_tmp = full_data(idata)
   44680       393268 :          pack_tmp = ISHFT(data_tmp, 34)
   44681       393268 :          pack_tmp = ISHFT(pack_tmp, -34)
   44682       393268 :          idata = idata + 1
   44683       393268 :          data_tmp = full_data(idata)
   44684       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44685       393268 :          data_tmp = IAND(data_tmp, mask_left(34))
   44686       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44687       393268 :          ipack = ipack + 1
   44688       393268 :          packed_data(ipack) = pack_tmp
   44689       393268 :          data_tmp = full_data(idata)
   44690       393268 :          pack_tmp = ISHFT(data_tmp, 43)
   44691       393268 :          pack_tmp = ISHFT(pack_tmp, -43)
   44692       393268 :          idata = idata + 1
   44693       393268 :          data_tmp = full_data(idata)
   44694       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44695       393268 :          data_tmp = IAND(data_tmp, mask_left(43))
   44696       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44697       393268 :          ipack = ipack + 1
   44698       393268 :          packed_data(ipack) = pack_tmp
   44699       393268 :          data_tmp = full_data(idata)
   44700       393268 :          pack_tmp = ISHFT(data_tmp, 52)
   44701       393268 :          pack_tmp = ISHFT(pack_tmp, -52)
   44702       393268 :          idata = idata + 1
   44703       393268 :          data_tmp = full_data(idata)
   44704       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44705       393268 :          data_tmp = IAND(data_tmp, mask_left(52))
   44706       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44707       393268 :          ipack = ipack + 1
   44708       393268 :          packed_data(ipack) = pack_tmp
   44709       393268 :          data_tmp = full_data(idata)
   44710       393268 :          pack_tmp = ISHFT(data_tmp, 61)
   44711       393268 :          pack_tmp = ISHFT(pack_tmp, -55)
   44712       393268 :          idata = idata + 1
   44713       393268 :          data_tmp = full_data(idata)
   44714       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44715       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44716       393268 :          pack_tmp = ISHFT(pack_tmp, -6)
   44717       393268 :          idata = idata + 1
   44718       393268 :          data_tmp = full_data(idata)
   44719       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44720       393268 :          data_tmp = IAND(data_tmp, mask_left(6))
   44721       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44722       393268 :          ipack = ipack + 1
   44723       393268 :          packed_data(ipack) = pack_tmp
   44724       393268 :          data_tmp = full_data(idata)
   44725       393268 :          pack_tmp = ISHFT(data_tmp, 15)
   44726       393268 :          pack_tmp = ISHFT(pack_tmp, -15)
   44727       393268 :          idata = idata + 1
   44728       393268 :          data_tmp = full_data(idata)
   44729       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44730       393268 :          data_tmp = IAND(data_tmp, mask_left(15))
   44731       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44732       393268 :          ipack = ipack + 1
   44733       393268 :          packed_data(ipack) = pack_tmp
   44734       393268 :          data_tmp = full_data(idata)
   44735       393268 :          pack_tmp = ISHFT(data_tmp, 24)
   44736       393268 :          pack_tmp = ISHFT(pack_tmp, -24)
   44737       393268 :          idata = idata + 1
   44738       393268 :          data_tmp = full_data(idata)
   44739       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44740       393268 :          data_tmp = IAND(data_tmp, mask_left(24))
   44741       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44742       393268 :          ipack = ipack + 1
   44743       393268 :          packed_data(ipack) = pack_tmp
   44744       393268 :          data_tmp = full_data(idata)
   44745       393268 :          pack_tmp = ISHFT(data_tmp, 33)
   44746       393268 :          pack_tmp = ISHFT(pack_tmp, -33)
   44747       393268 :          idata = idata + 1
   44748       393268 :          data_tmp = full_data(idata)
   44749       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44750       393268 :          data_tmp = IAND(data_tmp, mask_left(33))
   44751       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44752       393268 :          ipack = ipack + 1
   44753       393268 :          packed_data(ipack) = pack_tmp
   44754       393268 :          data_tmp = full_data(idata)
   44755       393268 :          pack_tmp = ISHFT(data_tmp, 42)
   44756       393268 :          pack_tmp = ISHFT(pack_tmp, -42)
   44757       393268 :          idata = idata + 1
   44758       393268 :          data_tmp = full_data(idata)
   44759       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44760       393268 :          data_tmp = IAND(data_tmp, mask_left(42))
   44761       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44762       393268 :          ipack = ipack + 1
   44763       393268 :          packed_data(ipack) = pack_tmp
   44764       393268 :          data_tmp = full_data(idata)
   44765       393268 :          pack_tmp = ISHFT(data_tmp, 51)
   44766       393268 :          pack_tmp = ISHFT(pack_tmp, -51)
   44767       393268 :          idata = idata + 1
   44768       393268 :          data_tmp = full_data(idata)
   44769       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44770       393268 :          data_tmp = IAND(data_tmp, mask_left(51))
   44771       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44772       393268 :          ipack = ipack + 1
   44773       393268 :          packed_data(ipack) = pack_tmp
   44774       393268 :          data_tmp = full_data(idata)
   44775       393268 :          pack_tmp = ISHFT(data_tmp, 60)
   44776       393268 :          pack_tmp = ISHFT(pack_tmp, -55)
   44777       393268 :          idata = idata + 1
   44778       393268 :          data_tmp = full_data(idata)
   44779       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44780       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44781       393268 :          pack_tmp = ISHFT(pack_tmp, -5)
   44782       393268 :          idata = idata + 1
   44783       393268 :          data_tmp = full_data(idata)
   44784       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44785       393268 :          data_tmp = IAND(data_tmp, mask_left(5))
   44786       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44787       393268 :          ipack = ipack + 1
   44788       393268 :          packed_data(ipack) = pack_tmp
   44789       393268 :          data_tmp = full_data(idata)
   44790       393268 :          pack_tmp = ISHFT(data_tmp, 14)
   44791       393268 :          pack_tmp = ISHFT(pack_tmp, -14)
   44792       393268 :          idata = idata + 1
   44793       393268 :          data_tmp = full_data(idata)
   44794       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44795       393268 :          data_tmp = IAND(data_tmp, mask_left(14))
   44796       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44797       393268 :          ipack = ipack + 1
   44798       393268 :          packed_data(ipack) = pack_tmp
   44799       393268 :          data_tmp = full_data(idata)
   44800       393268 :          pack_tmp = ISHFT(data_tmp, 23)
   44801       393268 :          pack_tmp = ISHFT(pack_tmp, -23)
   44802       393268 :          idata = idata + 1
   44803       393268 :          data_tmp = full_data(idata)
   44804       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44805       393268 :          data_tmp = IAND(data_tmp, mask_left(23))
   44806       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44807       393268 :          ipack = ipack + 1
   44808       393268 :          packed_data(ipack) = pack_tmp
   44809       393268 :          data_tmp = full_data(idata)
   44810       393268 :          pack_tmp = ISHFT(data_tmp, 32)
   44811       393268 :          pack_tmp = ISHFT(pack_tmp, -32)
   44812       393268 :          idata = idata + 1
   44813       393268 :          data_tmp = full_data(idata)
   44814       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44815       393268 :          data_tmp = IAND(data_tmp, mask_left(32))
   44816       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44817       393268 :          ipack = ipack + 1
   44818       393268 :          packed_data(ipack) = pack_tmp
   44819       393268 :          data_tmp = full_data(idata)
   44820       393268 :          pack_tmp = ISHFT(data_tmp, 41)
   44821       393268 :          pack_tmp = ISHFT(pack_tmp, -41)
   44822       393268 :          idata = idata + 1
   44823       393268 :          data_tmp = full_data(idata)
   44824       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44825       393268 :          data_tmp = IAND(data_tmp, mask_left(41))
   44826       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44827       393268 :          ipack = ipack + 1
   44828       393268 :          packed_data(ipack) = pack_tmp
   44829       393268 :          data_tmp = full_data(idata)
   44830       393268 :          pack_tmp = ISHFT(data_tmp, 50)
   44831       393268 :          pack_tmp = ISHFT(pack_tmp, -50)
   44832       393268 :          idata = idata + 1
   44833       393268 :          data_tmp = full_data(idata)
   44834       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44835       393268 :          data_tmp = IAND(data_tmp, mask_left(50))
   44836       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44837       393268 :          ipack = ipack + 1
   44838       393268 :          packed_data(ipack) = pack_tmp
   44839       393268 :          data_tmp = full_data(idata)
   44840       393268 :          pack_tmp = ISHFT(data_tmp, 59)
   44841       393268 :          pack_tmp = ISHFT(pack_tmp, -55)
   44842       393268 :          idata = idata + 1
   44843       393268 :          data_tmp = full_data(idata)
   44844       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44845       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44846       393268 :          pack_tmp = ISHFT(pack_tmp, -4)
   44847       393268 :          idata = idata + 1
   44848       393268 :          data_tmp = full_data(idata)
   44849       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44850       393268 :          data_tmp = IAND(data_tmp, mask_left(4))
   44851       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44852       393268 :          ipack = ipack + 1
   44853       393268 :          packed_data(ipack) = pack_tmp
   44854       393268 :          data_tmp = full_data(idata)
   44855       393268 :          pack_tmp = ISHFT(data_tmp, 13)
   44856       393268 :          pack_tmp = ISHFT(pack_tmp, -13)
   44857       393268 :          idata = idata + 1
   44858       393268 :          data_tmp = full_data(idata)
   44859       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44860       393268 :          data_tmp = IAND(data_tmp, mask_left(13))
   44861       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44862       393268 :          ipack = ipack + 1
   44863       393268 :          packed_data(ipack) = pack_tmp
   44864       393268 :          data_tmp = full_data(idata)
   44865       393268 :          pack_tmp = ISHFT(data_tmp, 22)
   44866       393268 :          pack_tmp = ISHFT(pack_tmp, -22)
   44867       393268 :          idata = idata + 1
   44868       393268 :          data_tmp = full_data(idata)
   44869       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44870       393268 :          data_tmp = IAND(data_tmp, mask_left(22))
   44871       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44872       393268 :          ipack = ipack + 1
   44873       393268 :          packed_data(ipack) = pack_tmp
   44874       393268 :          data_tmp = full_data(idata)
   44875       393268 :          pack_tmp = ISHFT(data_tmp, 31)
   44876       393268 :          pack_tmp = ISHFT(pack_tmp, -31)
   44877       393268 :          idata = idata + 1
   44878       393268 :          data_tmp = full_data(idata)
   44879       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44880       393268 :          data_tmp = IAND(data_tmp, mask_left(31))
   44881       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44882       393268 :          ipack = ipack + 1
   44883       393268 :          packed_data(ipack) = pack_tmp
   44884       393268 :          data_tmp = full_data(idata)
   44885       393268 :          pack_tmp = ISHFT(data_tmp, 40)
   44886       393268 :          pack_tmp = ISHFT(pack_tmp, -40)
   44887       393268 :          idata = idata + 1
   44888       393268 :          data_tmp = full_data(idata)
   44889       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44890       393268 :          data_tmp = IAND(data_tmp, mask_left(40))
   44891       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44892       393268 :          ipack = ipack + 1
   44893       393268 :          packed_data(ipack) = pack_tmp
   44894       393268 :          data_tmp = full_data(idata)
   44895       393268 :          pack_tmp = ISHFT(data_tmp, 49)
   44896       393268 :          pack_tmp = ISHFT(pack_tmp, -49)
   44897       393268 :          idata = idata + 1
   44898       393268 :          data_tmp = full_data(idata)
   44899       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44900       393268 :          data_tmp = IAND(data_tmp, mask_left(49))
   44901       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44902       393268 :          ipack = ipack + 1
   44903       393268 :          packed_data(ipack) = pack_tmp
   44904       393268 :          data_tmp = full_data(idata)
   44905       393268 :          pack_tmp = ISHFT(data_tmp, 58)
   44906       393268 :          pack_tmp = ISHFT(pack_tmp, -55)
   44907       393268 :          idata = idata + 1
   44908       393268 :          data_tmp = full_data(idata)
   44909       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44910       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44911       393268 :          pack_tmp = ISHFT(pack_tmp, -3)
   44912       393268 :          idata = idata + 1
   44913       393268 :          data_tmp = full_data(idata)
   44914       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44915       393268 :          data_tmp = IAND(data_tmp, mask_left(3))
   44916       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44917       393268 :          ipack = ipack + 1
   44918       393268 :          packed_data(ipack) = pack_tmp
   44919       393268 :          data_tmp = full_data(idata)
   44920       393268 :          pack_tmp = ISHFT(data_tmp, 12)
   44921       393268 :          pack_tmp = ISHFT(pack_tmp, -12)
   44922       393268 :          idata = idata + 1
   44923       393268 :          data_tmp = full_data(idata)
   44924       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44925       393268 :          data_tmp = IAND(data_tmp, mask_left(12))
   44926       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44927       393268 :          ipack = ipack + 1
   44928       393268 :          packed_data(ipack) = pack_tmp
   44929       393268 :          data_tmp = full_data(idata)
   44930       393268 :          pack_tmp = ISHFT(data_tmp, 21)
   44931       393268 :          pack_tmp = ISHFT(pack_tmp, -21)
   44932       393268 :          idata = idata + 1
   44933       393268 :          data_tmp = full_data(idata)
   44934       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44935       393268 :          data_tmp = IAND(data_tmp, mask_left(21))
   44936       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44937       393268 :          ipack = ipack + 1
   44938       393268 :          packed_data(ipack) = pack_tmp
   44939       393268 :          data_tmp = full_data(idata)
   44940       393268 :          pack_tmp = ISHFT(data_tmp, 30)
   44941       393268 :          pack_tmp = ISHFT(pack_tmp, -30)
   44942       393268 :          idata = idata + 1
   44943       393268 :          data_tmp = full_data(idata)
   44944       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44945       393268 :          data_tmp = IAND(data_tmp, mask_left(30))
   44946       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44947       393268 :          ipack = ipack + 1
   44948       393268 :          packed_data(ipack) = pack_tmp
   44949       393268 :          data_tmp = full_data(idata)
   44950       393268 :          pack_tmp = ISHFT(data_tmp, 39)
   44951       393268 :          pack_tmp = ISHFT(pack_tmp, -39)
   44952       393268 :          idata = idata + 1
   44953       393268 :          data_tmp = full_data(idata)
   44954       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44955       393268 :          data_tmp = IAND(data_tmp, mask_left(39))
   44956       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44957       393268 :          ipack = ipack + 1
   44958       393268 :          packed_data(ipack) = pack_tmp
   44959       393268 :          data_tmp = full_data(idata)
   44960       393268 :          pack_tmp = ISHFT(data_tmp, 48)
   44961       393268 :          pack_tmp = ISHFT(pack_tmp, -48)
   44962       393268 :          idata = idata + 1
   44963       393268 :          data_tmp = full_data(idata)
   44964       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44965       393268 :          data_tmp = IAND(data_tmp, mask_left(48))
   44966       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44967       393268 :          ipack = ipack + 1
   44968       393268 :          packed_data(ipack) = pack_tmp
   44969       393268 :          data_tmp = full_data(idata)
   44970       393268 :          pack_tmp = ISHFT(data_tmp, 57)
   44971       393268 :          pack_tmp = ISHFT(pack_tmp, -55)
   44972       393268 :          idata = idata + 1
   44973       393268 :          data_tmp = full_data(idata)
   44974       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44975       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44976       393268 :          pack_tmp = ISHFT(pack_tmp, -2)
   44977       393268 :          idata = idata + 1
   44978       393268 :          data_tmp = full_data(idata)
   44979       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44980       393268 :          data_tmp = IAND(data_tmp, mask_left(2))
   44981       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44982       393268 :          ipack = ipack + 1
   44983       393268 :          packed_data(ipack) = pack_tmp
   44984       393268 :          data_tmp = full_data(idata)
   44985       393268 :          pack_tmp = ISHFT(data_tmp, 11)
   44986       393268 :          pack_tmp = ISHFT(pack_tmp, -11)
   44987       393268 :          idata = idata + 1
   44988       393268 :          data_tmp = full_data(idata)
   44989       393268 :          data_tmp = ISHFT(data_tmp, 9)
   44990       393268 :          data_tmp = IAND(data_tmp, mask_left(11))
   44991       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   44992       393268 :          ipack = ipack + 1
   44993       393268 :          packed_data(ipack) = pack_tmp
   44994       393268 :          data_tmp = full_data(idata)
   44995       393268 :          pack_tmp = ISHFT(data_tmp, 20)
   44996       393268 :          pack_tmp = ISHFT(pack_tmp, -20)
   44997       393268 :          idata = idata + 1
   44998       393268 :          data_tmp = full_data(idata)
   44999       393268 :          data_tmp = ISHFT(data_tmp, 9)
   45000       393268 :          data_tmp = IAND(data_tmp, mask_left(20))
   45001       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45002       393268 :          ipack = ipack + 1
   45003       393268 :          packed_data(ipack) = pack_tmp
   45004       393268 :          data_tmp = full_data(idata)
   45005       393268 :          pack_tmp = ISHFT(data_tmp, 29)
   45006       393268 :          pack_tmp = ISHFT(pack_tmp, -29)
   45007       393268 :          idata = idata + 1
   45008       393268 :          data_tmp = full_data(idata)
   45009       393268 :          data_tmp = ISHFT(data_tmp, 9)
   45010       393268 :          data_tmp = IAND(data_tmp, mask_left(29))
   45011       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45012       393268 :          ipack = ipack + 1
   45013       393268 :          packed_data(ipack) = pack_tmp
   45014       393268 :          data_tmp = full_data(idata)
   45015       393268 :          pack_tmp = ISHFT(data_tmp, 38)
   45016       393268 :          pack_tmp = ISHFT(pack_tmp, -38)
   45017       393268 :          idata = idata + 1
   45018       393268 :          data_tmp = full_data(idata)
   45019       393268 :          data_tmp = ISHFT(data_tmp, 9)
   45020       393268 :          data_tmp = IAND(data_tmp, mask_left(38))
   45021       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45022       393268 :          ipack = ipack + 1
   45023       393268 :          packed_data(ipack) = pack_tmp
   45024       393268 :          data_tmp = full_data(idata)
   45025       393268 :          pack_tmp = ISHFT(data_tmp, 47)
   45026       393268 :          pack_tmp = ISHFT(pack_tmp, -47)
   45027       393268 :          idata = idata + 1
   45028       393268 :          data_tmp = full_data(idata)
   45029       393268 :          data_tmp = ISHFT(data_tmp, 9)
   45030       393268 :          data_tmp = IAND(data_tmp, mask_left(47))
   45031       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45032       393268 :          ipack = ipack + 1
   45033       393268 :          packed_data(ipack) = pack_tmp
   45034       393268 :          data_tmp = full_data(idata)
   45035       393268 :          pack_tmp = ISHFT(data_tmp, 56)
   45036       393268 :          pack_tmp = ISHFT(pack_tmp, -55)
   45037       393268 :          idata = idata + 1
   45038       393268 :          data_tmp = full_data(idata)
   45039       393268 :          data_tmp = ISHFT(data_tmp, 9)
   45040       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45041       393268 :          pack_tmp = ISHFT(pack_tmp, -1)
   45042       393268 :          idata = idata + 1
   45043       393268 :          data_tmp = full_data(idata)
   45044       393268 :          data_tmp = ISHFT(data_tmp, 9)
   45045       393268 :          data_tmp = IAND(data_tmp, mask_left(1))
   45046       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45047       393268 :          ipack = ipack + 1
   45048       393268 :          packed_data(ipack) = pack_tmp
   45049       393268 :          data_tmp = full_data(idata)
   45050       393268 :          pack_tmp = ISHFT(data_tmp, 10)
   45051       393268 :          pack_tmp = ISHFT(pack_tmp, -10)
   45052       393268 :          idata = idata + 1
   45053       393268 :          data_tmp = full_data(idata)
   45054       393268 :          data_tmp = ISHFT(data_tmp, 9)
   45055       393268 :          data_tmp = IAND(data_tmp, mask_left(10))
   45056       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45057       393268 :          ipack = ipack + 1
   45058       393268 :          packed_data(ipack) = pack_tmp
   45059       393268 :          data_tmp = full_data(idata)
   45060       393268 :          pack_tmp = ISHFT(data_tmp, 19)
   45061       393268 :          pack_tmp = ISHFT(pack_tmp, -19)
   45062       393268 :          idata = idata + 1
   45063       393268 :          data_tmp = full_data(idata)
   45064       393268 :          data_tmp = ISHFT(data_tmp, 9)
   45065       393268 :          data_tmp = IAND(data_tmp, mask_left(19))
   45066       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45067       393268 :          ipack = ipack + 1
   45068       393268 :          packed_data(ipack) = pack_tmp
   45069       393268 :          data_tmp = full_data(idata)
   45070       393268 :          pack_tmp = ISHFT(data_tmp, 28)
   45071       393268 :          pack_tmp = ISHFT(pack_tmp, -28)
   45072       393268 :          idata = idata + 1
   45073       393268 :          data_tmp = full_data(idata)
   45074       393268 :          data_tmp = ISHFT(data_tmp, 9)
   45075       393268 :          data_tmp = IAND(data_tmp, mask_left(28))
   45076       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45077       393268 :          ipack = ipack + 1
   45078       393268 :          packed_data(ipack) = pack_tmp
   45079       393268 :          data_tmp = full_data(idata)
   45080       393268 :          pack_tmp = ISHFT(data_tmp, 37)
   45081       393268 :          pack_tmp = ISHFT(pack_tmp, -37)
   45082       393268 :          idata = idata + 1
   45083       393268 :          data_tmp = full_data(idata)
   45084       393268 :          data_tmp = ISHFT(data_tmp, 9)
   45085       393268 :          data_tmp = IAND(data_tmp, mask_left(37))
   45086       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45087       393268 :          ipack = ipack + 1
   45088       393268 :          packed_data(ipack) = pack_tmp
   45089       393268 :          data_tmp = full_data(idata)
   45090       393268 :          pack_tmp = ISHFT(data_tmp, 46)
   45091       393268 :          pack_tmp = ISHFT(pack_tmp, -46)
   45092       393268 :          idata = idata + 1
   45093       393268 :          data_tmp = full_data(idata)
   45094       393268 :          data_tmp = ISHFT(data_tmp, 9)
   45095       393268 :          data_tmp = IAND(data_tmp, mask_left(46))
   45096       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45097       393268 :          ipack = ipack + 1
   45098       393268 :          packed_data(ipack) = pack_tmp
   45099       393268 :          data_tmp = full_data(idata)
   45100       393268 :          pack_tmp = ISHFT(data_tmp, 55)
   45101       393268 :          pack_tmp = ISHFT(pack_tmp, -55)
   45102       393268 :          idata = idata + 1
   45103       393268 :          data_tmp = full_data(idata)
   45104       393268 :          data_tmp = ISHFT(data_tmp, 9)
   45105       393268 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45106              :          pack_tmp = ISHFT(pack_tmp, 0)
   45107       393268 :          pack_tmp = ISHFT(pack_tmp, 0)
   45108       393268 :          ipack = ipack + 1
   45109       393282 :          packed_data(ipack) = pack_tmp
   45110              :       END DO
   45111        24728 :       IF (Ndata_rep < Ndata) THEN
   45112          280 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   45113              :       END IF
   45114        24728 :    END SUBROUTINE ints2bits_55
   45115              : 
   45116              : ! **************************************************************************************************
   45117              : !> \brief ...
   45118              : !> \param Ndata ...
   45119              : !> \param packed_data ...
   45120              : !> \param full_data ...
   45121              : ! **************************************************************************************************
   45122       109759 :    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       109759 :       ipack = 0
   45133       109759 :       idata = 0
   45134       109759 :       pack_tmp = 0
   45135       109759 :       Ndata_rep = (Ndata/64)*64
   45136       109759 :       DO kdata = 1, Ndata_rep, 64
   45137      1667438 :          idata = idata + 1
   45138      1667438 :          data_tmp = ISHFT(pack_tmp, 55)
   45139      1667438 :          ipack = ipack + 1
   45140      1667438 :          pack_tmp = packed_data(ipack)
   45141      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   45142      1667438 :          pack_tmp = ISHFT(pack_tmp, -55)
   45143      1667438 :          idata = idata + 1
   45144      1667438 :          data_tmp = ISHFT(pack_tmp, 46)
   45145      1667438 :          ipack = ipack + 1
   45146      1667438 :          pack_tmp = packed_data(ipack)
   45147      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   45148      1667438 :          pack_tmp = ISHFT(pack_tmp, -46)
   45149      1667438 :          idata = idata + 1
   45150      1667438 :          data_tmp = ISHFT(pack_tmp, 37)
   45151      1667438 :          ipack = ipack + 1
   45152      1667438 :          pack_tmp = packed_data(ipack)
   45153      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   45154      1667438 :          pack_tmp = ISHFT(pack_tmp, -37)
   45155      1667438 :          idata = idata + 1
   45156      1667438 :          data_tmp = ISHFT(pack_tmp, 28)
   45157      1667438 :          ipack = ipack + 1
   45158      1667438 :          pack_tmp = packed_data(ipack)
   45159      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   45160      1667438 :          pack_tmp = ISHFT(pack_tmp, -28)
   45161      1667438 :          idata = idata + 1
   45162      1667438 :          data_tmp = ISHFT(pack_tmp, 19)
   45163      1667438 :          ipack = ipack + 1
   45164      1667438 :          pack_tmp = packed_data(ipack)
   45165      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   45166      1667438 :          pack_tmp = ISHFT(pack_tmp, -19)
   45167      1667438 :          idata = idata + 1
   45168      1667438 :          data_tmp = ISHFT(pack_tmp, 10)
   45169      1667438 :          ipack = ipack + 1
   45170      1667438 :          pack_tmp = packed_data(ipack)
   45171      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   45172      1667438 :          pack_tmp = ISHFT(pack_tmp, -10)
   45173      1667438 :          idata = idata + 1
   45174      1667438 :          data_tmp = ISHFT(pack_tmp, 1)
   45175      1667438 :          ipack = ipack + 1
   45176      1667438 :          pack_tmp = packed_data(ipack)
   45177      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   45178      1667438 :          pack_tmp = ISHFT(pack_tmp, -1)
   45179      1667438 :          idata = idata + 1
   45180      1667438 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45181      1667438 :          full_data(idata) = data_tmp
   45182      1667438 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45183      1667438 :          idata = idata + 1
   45184      1667438 :          data_tmp = ISHFT(pack_tmp, 47)
   45185      1667438 :          ipack = ipack + 1
   45186      1667438 :          pack_tmp = packed_data(ipack)
   45187      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   45188      1667438 :          pack_tmp = ISHFT(pack_tmp, -47)
   45189      1667438 :          idata = idata + 1
   45190      1667438 :          data_tmp = ISHFT(pack_tmp, 38)
   45191      1667438 :          ipack = ipack + 1
   45192      1667438 :          pack_tmp = packed_data(ipack)
   45193      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   45194      1667438 :          pack_tmp = ISHFT(pack_tmp, -38)
   45195      1667438 :          idata = idata + 1
   45196      1667438 :          data_tmp = ISHFT(pack_tmp, 29)
   45197      1667438 :          ipack = ipack + 1
   45198      1667438 :          pack_tmp = packed_data(ipack)
   45199      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   45200      1667438 :          pack_tmp = ISHFT(pack_tmp, -29)
   45201      1667438 :          idata = idata + 1
   45202      1667438 :          data_tmp = ISHFT(pack_tmp, 20)
   45203      1667438 :          ipack = ipack + 1
   45204      1667438 :          pack_tmp = packed_data(ipack)
   45205      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   45206      1667438 :          pack_tmp = ISHFT(pack_tmp, -20)
   45207      1667438 :          idata = idata + 1
   45208      1667438 :          data_tmp = ISHFT(pack_tmp, 11)
   45209      1667438 :          ipack = ipack + 1
   45210      1667438 :          pack_tmp = packed_data(ipack)
   45211      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   45212      1667438 :          pack_tmp = ISHFT(pack_tmp, -11)
   45213      1667438 :          idata = idata + 1
   45214      1667438 :          data_tmp = ISHFT(pack_tmp, 2)
   45215      1667438 :          ipack = ipack + 1
   45216      1667438 :          pack_tmp = packed_data(ipack)
   45217      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   45218      1667438 :          pack_tmp = ISHFT(pack_tmp, -2)
   45219      1667438 :          idata = idata + 1
   45220      1667438 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45221      1667438 :          full_data(idata) = data_tmp
   45222      1667438 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45223      1667438 :          idata = idata + 1
   45224      1667438 :          data_tmp = ISHFT(pack_tmp, 48)
   45225      1667438 :          ipack = ipack + 1
   45226      1667438 :          pack_tmp = packed_data(ipack)
   45227      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   45228      1667438 :          pack_tmp = ISHFT(pack_tmp, -48)
   45229      1667438 :          idata = idata + 1
   45230      1667438 :          data_tmp = ISHFT(pack_tmp, 39)
   45231      1667438 :          ipack = ipack + 1
   45232      1667438 :          pack_tmp = packed_data(ipack)
   45233      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   45234      1667438 :          pack_tmp = ISHFT(pack_tmp, -39)
   45235      1667438 :          idata = idata + 1
   45236      1667438 :          data_tmp = ISHFT(pack_tmp, 30)
   45237      1667438 :          ipack = ipack + 1
   45238      1667438 :          pack_tmp = packed_data(ipack)
   45239      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   45240      1667438 :          pack_tmp = ISHFT(pack_tmp, -30)
   45241      1667438 :          idata = idata + 1
   45242      1667438 :          data_tmp = ISHFT(pack_tmp, 21)
   45243      1667438 :          ipack = ipack + 1
   45244      1667438 :          pack_tmp = packed_data(ipack)
   45245      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   45246      1667438 :          pack_tmp = ISHFT(pack_tmp, -21)
   45247      1667438 :          idata = idata + 1
   45248      1667438 :          data_tmp = ISHFT(pack_tmp, 12)
   45249      1667438 :          ipack = ipack + 1
   45250      1667438 :          pack_tmp = packed_data(ipack)
   45251      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   45252      1667438 :          pack_tmp = ISHFT(pack_tmp, -12)
   45253      1667438 :          idata = idata + 1
   45254      1667438 :          data_tmp = ISHFT(pack_tmp, 3)
   45255      1667438 :          ipack = ipack + 1
   45256      1667438 :          pack_tmp = packed_data(ipack)
   45257      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   45258      1667438 :          pack_tmp = ISHFT(pack_tmp, -3)
   45259      1667438 :          idata = idata + 1
   45260      1667438 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45261      1667438 :          full_data(idata) = data_tmp
   45262      1667438 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45263      1667438 :          idata = idata + 1
   45264      1667438 :          data_tmp = ISHFT(pack_tmp, 49)
   45265      1667438 :          ipack = ipack + 1
   45266      1667438 :          pack_tmp = packed_data(ipack)
   45267      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   45268      1667438 :          pack_tmp = ISHFT(pack_tmp, -49)
   45269      1667438 :          idata = idata + 1
   45270      1667438 :          data_tmp = ISHFT(pack_tmp, 40)
   45271      1667438 :          ipack = ipack + 1
   45272      1667438 :          pack_tmp = packed_data(ipack)
   45273      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   45274      1667438 :          pack_tmp = ISHFT(pack_tmp, -40)
   45275      1667438 :          idata = idata + 1
   45276      1667438 :          data_tmp = ISHFT(pack_tmp, 31)
   45277      1667438 :          ipack = ipack + 1
   45278      1667438 :          pack_tmp = packed_data(ipack)
   45279      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   45280      1667438 :          pack_tmp = ISHFT(pack_tmp, -31)
   45281      1667438 :          idata = idata + 1
   45282      1667438 :          data_tmp = ISHFT(pack_tmp, 22)
   45283      1667438 :          ipack = ipack + 1
   45284      1667438 :          pack_tmp = packed_data(ipack)
   45285      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   45286      1667438 :          pack_tmp = ISHFT(pack_tmp, -22)
   45287      1667438 :          idata = idata + 1
   45288      1667438 :          data_tmp = ISHFT(pack_tmp, 13)
   45289      1667438 :          ipack = ipack + 1
   45290      1667438 :          pack_tmp = packed_data(ipack)
   45291      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   45292      1667438 :          pack_tmp = ISHFT(pack_tmp, -13)
   45293      1667438 :          idata = idata + 1
   45294      1667438 :          data_tmp = ISHFT(pack_tmp, 4)
   45295      1667438 :          ipack = ipack + 1
   45296      1667438 :          pack_tmp = packed_data(ipack)
   45297      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   45298      1667438 :          pack_tmp = ISHFT(pack_tmp, -4)
   45299      1667438 :          idata = idata + 1
   45300      1667438 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45301      1667438 :          full_data(idata) = data_tmp
   45302      1667438 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45303      1667438 :          idata = idata + 1
   45304      1667438 :          data_tmp = ISHFT(pack_tmp, 50)
   45305      1667438 :          ipack = ipack + 1
   45306      1667438 :          pack_tmp = packed_data(ipack)
   45307      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   45308      1667438 :          pack_tmp = ISHFT(pack_tmp, -50)
   45309      1667438 :          idata = idata + 1
   45310      1667438 :          data_tmp = ISHFT(pack_tmp, 41)
   45311      1667438 :          ipack = ipack + 1
   45312      1667438 :          pack_tmp = packed_data(ipack)
   45313      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   45314      1667438 :          pack_tmp = ISHFT(pack_tmp, -41)
   45315      1667438 :          idata = idata + 1
   45316      1667438 :          data_tmp = ISHFT(pack_tmp, 32)
   45317      1667438 :          ipack = ipack + 1
   45318      1667438 :          pack_tmp = packed_data(ipack)
   45319      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   45320      1667438 :          pack_tmp = ISHFT(pack_tmp, -32)
   45321      1667438 :          idata = idata + 1
   45322      1667438 :          data_tmp = ISHFT(pack_tmp, 23)
   45323      1667438 :          ipack = ipack + 1
   45324      1667438 :          pack_tmp = packed_data(ipack)
   45325      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   45326      1667438 :          pack_tmp = ISHFT(pack_tmp, -23)
   45327      1667438 :          idata = idata + 1
   45328      1667438 :          data_tmp = ISHFT(pack_tmp, 14)
   45329      1667438 :          ipack = ipack + 1
   45330      1667438 :          pack_tmp = packed_data(ipack)
   45331      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   45332      1667438 :          pack_tmp = ISHFT(pack_tmp, -14)
   45333      1667438 :          idata = idata + 1
   45334      1667438 :          data_tmp = ISHFT(pack_tmp, 5)
   45335      1667438 :          ipack = ipack + 1
   45336      1667438 :          pack_tmp = packed_data(ipack)
   45337      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   45338      1667438 :          pack_tmp = ISHFT(pack_tmp, -5)
   45339      1667438 :          idata = idata + 1
   45340      1667438 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45341      1667438 :          full_data(idata) = data_tmp
   45342      1667438 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45343      1667438 :          idata = idata + 1
   45344      1667438 :          data_tmp = ISHFT(pack_tmp, 51)
   45345      1667438 :          ipack = ipack + 1
   45346      1667438 :          pack_tmp = packed_data(ipack)
   45347      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   45348      1667438 :          pack_tmp = ISHFT(pack_tmp, -51)
   45349      1667438 :          idata = idata + 1
   45350      1667438 :          data_tmp = ISHFT(pack_tmp, 42)
   45351      1667438 :          ipack = ipack + 1
   45352      1667438 :          pack_tmp = packed_data(ipack)
   45353      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   45354      1667438 :          pack_tmp = ISHFT(pack_tmp, -42)
   45355      1667438 :          idata = idata + 1
   45356      1667438 :          data_tmp = ISHFT(pack_tmp, 33)
   45357      1667438 :          ipack = ipack + 1
   45358      1667438 :          pack_tmp = packed_data(ipack)
   45359      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   45360      1667438 :          pack_tmp = ISHFT(pack_tmp, -33)
   45361      1667438 :          idata = idata + 1
   45362      1667438 :          data_tmp = ISHFT(pack_tmp, 24)
   45363      1667438 :          ipack = ipack + 1
   45364      1667438 :          pack_tmp = packed_data(ipack)
   45365      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   45366      1667438 :          pack_tmp = ISHFT(pack_tmp, -24)
   45367      1667438 :          idata = idata + 1
   45368      1667438 :          data_tmp = ISHFT(pack_tmp, 15)
   45369      1667438 :          ipack = ipack + 1
   45370      1667438 :          pack_tmp = packed_data(ipack)
   45371      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   45372      1667438 :          pack_tmp = ISHFT(pack_tmp, -15)
   45373      1667438 :          idata = idata + 1
   45374      1667438 :          data_tmp = ISHFT(pack_tmp, 6)
   45375      1667438 :          ipack = ipack + 1
   45376      1667438 :          pack_tmp = packed_data(ipack)
   45377      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   45378      1667438 :          pack_tmp = ISHFT(pack_tmp, -6)
   45379      1667438 :          idata = idata + 1
   45380      1667438 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45381      1667438 :          full_data(idata) = data_tmp
   45382      1667438 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45383      1667438 :          idata = idata + 1
   45384      1667438 :          data_tmp = ISHFT(pack_tmp, 52)
   45385      1667438 :          ipack = ipack + 1
   45386      1667438 :          pack_tmp = packed_data(ipack)
   45387      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   45388      1667438 :          pack_tmp = ISHFT(pack_tmp, -52)
   45389      1667438 :          idata = idata + 1
   45390      1667438 :          data_tmp = ISHFT(pack_tmp, 43)
   45391      1667438 :          ipack = ipack + 1
   45392      1667438 :          pack_tmp = packed_data(ipack)
   45393      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   45394      1667438 :          pack_tmp = ISHFT(pack_tmp, -43)
   45395      1667438 :          idata = idata + 1
   45396      1667438 :          data_tmp = ISHFT(pack_tmp, 34)
   45397      1667438 :          ipack = ipack + 1
   45398      1667438 :          pack_tmp = packed_data(ipack)
   45399      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   45400      1667438 :          pack_tmp = ISHFT(pack_tmp, -34)
   45401      1667438 :          idata = idata + 1
   45402      1667438 :          data_tmp = ISHFT(pack_tmp, 25)
   45403      1667438 :          ipack = ipack + 1
   45404      1667438 :          pack_tmp = packed_data(ipack)
   45405      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   45406      1667438 :          pack_tmp = ISHFT(pack_tmp, -25)
   45407      1667438 :          idata = idata + 1
   45408      1667438 :          data_tmp = ISHFT(pack_tmp, 16)
   45409      1667438 :          ipack = ipack + 1
   45410      1667438 :          pack_tmp = packed_data(ipack)
   45411      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   45412      1667438 :          pack_tmp = ISHFT(pack_tmp, -16)
   45413      1667438 :          idata = idata + 1
   45414      1667438 :          data_tmp = ISHFT(pack_tmp, 7)
   45415      1667438 :          ipack = ipack + 1
   45416      1667438 :          pack_tmp = packed_data(ipack)
   45417      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   45418      1667438 :          pack_tmp = ISHFT(pack_tmp, -7)
   45419      1667438 :          idata = idata + 1
   45420      1667438 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45421      1667438 :          full_data(idata) = data_tmp
   45422      1667438 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45423      1667438 :          idata = idata + 1
   45424      1667438 :          data_tmp = ISHFT(pack_tmp, 53)
   45425      1667438 :          ipack = ipack + 1
   45426      1667438 :          pack_tmp = packed_data(ipack)
   45427      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   45428      1667438 :          pack_tmp = ISHFT(pack_tmp, -53)
   45429      1667438 :          idata = idata + 1
   45430      1667438 :          data_tmp = ISHFT(pack_tmp, 44)
   45431      1667438 :          ipack = ipack + 1
   45432      1667438 :          pack_tmp = packed_data(ipack)
   45433      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   45434      1667438 :          pack_tmp = ISHFT(pack_tmp, -44)
   45435      1667438 :          idata = idata + 1
   45436      1667438 :          data_tmp = ISHFT(pack_tmp, 35)
   45437      1667438 :          ipack = ipack + 1
   45438      1667438 :          pack_tmp = packed_data(ipack)
   45439      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   45440      1667438 :          pack_tmp = ISHFT(pack_tmp, -35)
   45441      1667438 :          idata = idata + 1
   45442      1667438 :          data_tmp = ISHFT(pack_tmp, 26)
   45443      1667438 :          ipack = ipack + 1
   45444      1667438 :          pack_tmp = packed_data(ipack)
   45445      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   45446      1667438 :          pack_tmp = ISHFT(pack_tmp, -26)
   45447      1667438 :          idata = idata + 1
   45448      1667438 :          data_tmp = ISHFT(pack_tmp, 17)
   45449      1667438 :          ipack = ipack + 1
   45450      1667438 :          pack_tmp = packed_data(ipack)
   45451      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   45452      1667438 :          pack_tmp = ISHFT(pack_tmp, -17)
   45453      1667438 :          idata = idata + 1
   45454      1667438 :          data_tmp = ISHFT(pack_tmp, 8)
   45455      1667438 :          ipack = ipack + 1
   45456      1667438 :          pack_tmp = packed_data(ipack)
   45457      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   45458      1667438 :          pack_tmp = ISHFT(pack_tmp, -8)
   45459      1667438 :          idata = idata + 1
   45460      1667438 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45461      1667438 :          full_data(idata) = data_tmp
   45462      1667438 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45463      1667438 :          idata = idata + 1
   45464      1667438 :          data_tmp = ISHFT(pack_tmp, 54)
   45465      1667438 :          ipack = ipack + 1
   45466      1667438 :          pack_tmp = packed_data(ipack)
   45467      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   45468      1667438 :          pack_tmp = ISHFT(pack_tmp, -54)
   45469      1667438 :          idata = idata + 1
   45470      1667438 :          data_tmp = ISHFT(pack_tmp, 45)
   45471      1667438 :          ipack = ipack + 1
   45472      1667438 :          pack_tmp = packed_data(ipack)
   45473      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   45474      1667438 :          pack_tmp = ISHFT(pack_tmp, -45)
   45475      1667438 :          idata = idata + 1
   45476      1667438 :          data_tmp = ISHFT(pack_tmp, 36)
   45477      1667438 :          ipack = ipack + 1
   45478      1667438 :          pack_tmp = packed_data(ipack)
   45479      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   45480      1667438 :          pack_tmp = ISHFT(pack_tmp, -36)
   45481      1667438 :          idata = idata + 1
   45482      1667438 :          data_tmp = ISHFT(pack_tmp, 27)
   45483      1667438 :          ipack = ipack + 1
   45484      1667438 :          pack_tmp = packed_data(ipack)
   45485      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   45486      1667438 :          pack_tmp = ISHFT(pack_tmp, -27)
   45487      1667438 :          idata = idata + 1
   45488      1667438 :          data_tmp = ISHFT(pack_tmp, 18)
   45489      1667438 :          ipack = ipack + 1
   45490      1667438 :          pack_tmp = packed_data(ipack)
   45491      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   45492      1667438 :          pack_tmp = ISHFT(pack_tmp, -18)
   45493      1667438 :          idata = idata + 1
   45494      1667438 :          data_tmp = ISHFT(pack_tmp, 9)
   45495      1667438 :          ipack = ipack + 1
   45496      1667438 :          pack_tmp = packed_data(ipack)
   45497      1667438 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   45498      1667438 :          pack_tmp = ISHFT(pack_tmp, -9)
   45499      1667438 :          idata = idata + 1
   45500      1667438 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   45501      1667438 :          full_data(idata) = data_tmp
   45502      1667938 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   45503              :       END DO
   45504       109759 :       IF (Ndata_rep < Ndata) THEN
   45505        10436 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   45506              :       END IF
   45507       109759 :    END SUBROUTINE bits2ints_55
   45508              : 
   45509              : ! **************************************************************************************************
   45510              : !> \brief ...
   45511              : !> \param Ndata ...
   45512              : !> \param packed_data ...
   45513              : !> \param full_data ...
   45514              : ! **************************************************************************************************
   45515        24570 :    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        24570 :       idata = 0
   45526        24570 :       ipack = 0
   45527        24570 :       Ndata_rep = (Ndata/64)*64
   45528        24570 :       DO kdata = 1, Ndata_rep, 64
   45529       391998 :          pack_tmp = 0
   45530       391998 :          idata = idata + 1
   45531       391998 :          data_tmp = full_data(idata)
   45532       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45533       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45534       391998 :          pack_tmp = ISHFT(pack_tmp, -8)
   45535       391998 :          idata = idata + 1
   45536       391998 :          data_tmp = full_data(idata)
   45537       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45538       391998 :          data_tmp = IAND(data_tmp, mask_left(8))
   45539       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45540       391998 :          ipack = ipack + 1
   45541       391998 :          packed_data(ipack) = pack_tmp
   45542       391998 :          data_tmp = full_data(idata)
   45543       391998 :          pack_tmp = ISHFT(data_tmp, 16)
   45544       391998 :          pack_tmp = ISHFT(pack_tmp, -16)
   45545       391998 :          idata = idata + 1
   45546       391998 :          data_tmp = full_data(idata)
   45547       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45548       391998 :          data_tmp = IAND(data_tmp, mask_left(16))
   45549       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45550       391998 :          ipack = ipack + 1
   45551       391998 :          packed_data(ipack) = pack_tmp
   45552       391998 :          data_tmp = full_data(idata)
   45553       391998 :          pack_tmp = ISHFT(data_tmp, 24)
   45554       391998 :          pack_tmp = ISHFT(pack_tmp, -24)
   45555       391998 :          idata = idata + 1
   45556       391998 :          data_tmp = full_data(idata)
   45557       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45558       391998 :          data_tmp = IAND(data_tmp, mask_left(24))
   45559       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45560       391998 :          ipack = ipack + 1
   45561       391998 :          packed_data(ipack) = pack_tmp
   45562       391998 :          data_tmp = full_data(idata)
   45563       391998 :          pack_tmp = ISHFT(data_tmp, 32)
   45564       391998 :          pack_tmp = ISHFT(pack_tmp, -32)
   45565       391998 :          idata = idata + 1
   45566       391998 :          data_tmp = full_data(idata)
   45567       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45568       391998 :          data_tmp = IAND(data_tmp, mask_left(32))
   45569       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45570       391998 :          ipack = ipack + 1
   45571       391998 :          packed_data(ipack) = pack_tmp
   45572       391998 :          data_tmp = full_data(idata)
   45573       391998 :          pack_tmp = ISHFT(data_tmp, 40)
   45574       391998 :          pack_tmp = ISHFT(pack_tmp, -40)
   45575       391998 :          idata = idata + 1
   45576       391998 :          data_tmp = full_data(idata)
   45577       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45578       391998 :          data_tmp = IAND(data_tmp, mask_left(40))
   45579       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45580       391998 :          ipack = ipack + 1
   45581       391998 :          packed_data(ipack) = pack_tmp
   45582       391998 :          data_tmp = full_data(idata)
   45583       391998 :          pack_tmp = ISHFT(data_tmp, 48)
   45584       391998 :          pack_tmp = ISHFT(pack_tmp, -48)
   45585       391998 :          idata = idata + 1
   45586       391998 :          data_tmp = full_data(idata)
   45587       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45588       391998 :          data_tmp = IAND(data_tmp, mask_left(48))
   45589       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45590       391998 :          ipack = ipack + 1
   45591       391998 :          packed_data(ipack) = pack_tmp
   45592       391998 :          data_tmp = full_data(idata)
   45593       391998 :          pack_tmp = ISHFT(data_tmp, 56)
   45594       391998 :          pack_tmp = ISHFT(pack_tmp, -56)
   45595       391998 :          idata = idata + 1
   45596       391998 :          data_tmp = full_data(idata)
   45597       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45598       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45599       391998 :          pack_tmp = ISHFT(pack_tmp, 0)
   45600       391998 :          idata = idata + 1
   45601       391998 :          data_tmp = full_data(idata)
   45602              :          data_tmp = ISHFT(data_tmp, 8)
   45603       391998 :          data_tmp = IAND(data_tmp, mask_left(0))
   45604       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45605       391998 :          ipack = ipack + 1
   45606       391998 :          packed_data(ipack) = pack_tmp
   45607       391998 :          data_tmp = full_data(idata)
   45608       391998 :          pack_tmp = ISHFT(data_tmp, 8)
   45609       391998 :          pack_tmp = ISHFT(pack_tmp, -8)
   45610       391998 :          idata = idata + 1
   45611       391998 :          data_tmp = full_data(idata)
   45612       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45613       391998 :          data_tmp = IAND(data_tmp, mask_left(8))
   45614       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45615       391998 :          ipack = ipack + 1
   45616       391998 :          packed_data(ipack) = pack_tmp
   45617       391998 :          data_tmp = full_data(idata)
   45618       391998 :          pack_tmp = ISHFT(data_tmp, 16)
   45619       391998 :          pack_tmp = ISHFT(pack_tmp, -16)
   45620       391998 :          idata = idata + 1
   45621       391998 :          data_tmp = full_data(idata)
   45622       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45623       391998 :          data_tmp = IAND(data_tmp, mask_left(16))
   45624       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45625       391998 :          ipack = ipack + 1
   45626       391998 :          packed_data(ipack) = pack_tmp
   45627       391998 :          data_tmp = full_data(idata)
   45628       391998 :          pack_tmp = ISHFT(data_tmp, 24)
   45629       391998 :          pack_tmp = ISHFT(pack_tmp, -24)
   45630       391998 :          idata = idata + 1
   45631       391998 :          data_tmp = full_data(idata)
   45632       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45633       391998 :          data_tmp = IAND(data_tmp, mask_left(24))
   45634       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45635       391998 :          ipack = ipack + 1
   45636       391998 :          packed_data(ipack) = pack_tmp
   45637       391998 :          data_tmp = full_data(idata)
   45638       391998 :          pack_tmp = ISHFT(data_tmp, 32)
   45639       391998 :          pack_tmp = ISHFT(pack_tmp, -32)
   45640       391998 :          idata = idata + 1
   45641       391998 :          data_tmp = full_data(idata)
   45642       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45643       391998 :          data_tmp = IAND(data_tmp, mask_left(32))
   45644       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45645       391998 :          ipack = ipack + 1
   45646       391998 :          packed_data(ipack) = pack_tmp
   45647       391998 :          data_tmp = full_data(idata)
   45648       391998 :          pack_tmp = ISHFT(data_tmp, 40)
   45649       391998 :          pack_tmp = ISHFT(pack_tmp, -40)
   45650       391998 :          idata = idata + 1
   45651       391998 :          data_tmp = full_data(idata)
   45652       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45653       391998 :          data_tmp = IAND(data_tmp, mask_left(40))
   45654       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45655       391998 :          ipack = ipack + 1
   45656       391998 :          packed_data(ipack) = pack_tmp
   45657       391998 :          data_tmp = full_data(idata)
   45658       391998 :          pack_tmp = ISHFT(data_tmp, 48)
   45659       391998 :          pack_tmp = ISHFT(pack_tmp, -48)
   45660       391998 :          idata = idata + 1
   45661       391998 :          data_tmp = full_data(idata)
   45662       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45663       391998 :          data_tmp = IAND(data_tmp, mask_left(48))
   45664       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45665       391998 :          ipack = ipack + 1
   45666       391998 :          packed_data(ipack) = pack_tmp
   45667       391998 :          data_tmp = full_data(idata)
   45668       391998 :          pack_tmp = ISHFT(data_tmp, 56)
   45669       391998 :          pack_tmp = ISHFT(pack_tmp, -56)
   45670       391998 :          idata = idata + 1
   45671       391998 :          data_tmp = full_data(idata)
   45672       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45673       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45674       391998 :          pack_tmp = ISHFT(pack_tmp, 0)
   45675       391998 :          idata = idata + 1
   45676       391998 :          data_tmp = full_data(idata)
   45677              :          data_tmp = ISHFT(data_tmp, 8)
   45678       391998 :          data_tmp = IAND(data_tmp, mask_left(0))
   45679       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45680       391998 :          ipack = ipack + 1
   45681       391998 :          packed_data(ipack) = pack_tmp
   45682       391998 :          data_tmp = full_data(idata)
   45683       391998 :          pack_tmp = ISHFT(data_tmp, 8)
   45684       391998 :          pack_tmp = ISHFT(pack_tmp, -8)
   45685       391998 :          idata = idata + 1
   45686       391998 :          data_tmp = full_data(idata)
   45687       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45688       391998 :          data_tmp = IAND(data_tmp, mask_left(8))
   45689       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45690       391998 :          ipack = ipack + 1
   45691       391998 :          packed_data(ipack) = pack_tmp
   45692       391998 :          data_tmp = full_data(idata)
   45693       391998 :          pack_tmp = ISHFT(data_tmp, 16)
   45694       391998 :          pack_tmp = ISHFT(pack_tmp, -16)
   45695       391998 :          idata = idata + 1
   45696       391998 :          data_tmp = full_data(idata)
   45697       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45698       391998 :          data_tmp = IAND(data_tmp, mask_left(16))
   45699       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45700       391998 :          ipack = ipack + 1
   45701       391998 :          packed_data(ipack) = pack_tmp
   45702       391998 :          data_tmp = full_data(idata)
   45703       391998 :          pack_tmp = ISHFT(data_tmp, 24)
   45704       391998 :          pack_tmp = ISHFT(pack_tmp, -24)
   45705       391998 :          idata = idata + 1
   45706       391998 :          data_tmp = full_data(idata)
   45707       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45708       391998 :          data_tmp = IAND(data_tmp, mask_left(24))
   45709       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45710       391998 :          ipack = ipack + 1
   45711       391998 :          packed_data(ipack) = pack_tmp
   45712       391998 :          data_tmp = full_data(idata)
   45713       391998 :          pack_tmp = ISHFT(data_tmp, 32)
   45714       391998 :          pack_tmp = ISHFT(pack_tmp, -32)
   45715       391998 :          idata = idata + 1
   45716       391998 :          data_tmp = full_data(idata)
   45717       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45718       391998 :          data_tmp = IAND(data_tmp, mask_left(32))
   45719       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45720       391998 :          ipack = ipack + 1
   45721       391998 :          packed_data(ipack) = pack_tmp
   45722       391998 :          data_tmp = full_data(idata)
   45723       391998 :          pack_tmp = ISHFT(data_tmp, 40)
   45724       391998 :          pack_tmp = ISHFT(pack_tmp, -40)
   45725       391998 :          idata = idata + 1
   45726       391998 :          data_tmp = full_data(idata)
   45727       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45728       391998 :          data_tmp = IAND(data_tmp, mask_left(40))
   45729       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45730       391998 :          ipack = ipack + 1
   45731       391998 :          packed_data(ipack) = pack_tmp
   45732       391998 :          data_tmp = full_data(idata)
   45733       391998 :          pack_tmp = ISHFT(data_tmp, 48)
   45734       391998 :          pack_tmp = ISHFT(pack_tmp, -48)
   45735       391998 :          idata = idata + 1
   45736       391998 :          data_tmp = full_data(idata)
   45737       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45738       391998 :          data_tmp = IAND(data_tmp, mask_left(48))
   45739       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45740       391998 :          ipack = ipack + 1
   45741       391998 :          packed_data(ipack) = pack_tmp
   45742       391998 :          data_tmp = full_data(idata)
   45743       391998 :          pack_tmp = ISHFT(data_tmp, 56)
   45744       391998 :          pack_tmp = ISHFT(pack_tmp, -56)
   45745       391998 :          idata = idata + 1
   45746       391998 :          data_tmp = full_data(idata)
   45747       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45748       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45749       391998 :          pack_tmp = ISHFT(pack_tmp, 0)
   45750       391998 :          idata = idata + 1
   45751       391998 :          data_tmp = full_data(idata)
   45752              :          data_tmp = ISHFT(data_tmp, 8)
   45753       391998 :          data_tmp = IAND(data_tmp, mask_left(0))
   45754       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45755       391998 :          ipack = ipack + 1
   45756       391998 :          packed_data(ipack) = pack_tmp
   45757       391998 :          data_tmp = full_data(idata)
   45758       391998 :          pack_tmp = ISHFT(data_tmp, 8)
   45759       391998 :          pack_tmp = ISHFT(pack_tmp, -8)
   45760       391998 :          idata = idata + 1
   45761       391998 :          data_tmp = full_data(idata)
   45762       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45763       391998 :          data_tmp = IAND(data_tmp, mask_left(8))
   45764       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45765       391998 :          ipack = ipack + 1
   45766       391998 :          packed_data(ipack) = pack_tmp
   45767       391998 :          data_tmp = full_data(idata)
   45768       391998 :          pack_tmp = ISHFT(data_tmp, 16)
   45769       391998 :          pack_tmp = ISHFT(pack_tmp, -16)
   45770       391998 :          idata = idata + 1
   45771       391998 :          data_tmp = full_data(idata)
   45772       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45773       391998 :          data_tmp = IAND(data_tmp, mask_left(16))
   45774       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45775       391998 :          ipack = ipack + 1
   45776       391998 :          packed_data(ipack) = pack_tmp
   45777       391998 :          data_tmp = full_data(idata)
   45778       391998 :          pack_tmp = ISHFT(data_tmp, 24)
   45779       391998 :          pack_tmp = ISHFT(pack_tmp, -24)
   45780       391998 :          idata = idata + 1
   45781       391998 :          data_tmp = full_data(idata)
   45782       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45783       391998 :          data_tmp = IAND(data_tmp, mask_left(24))
   45784       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45785       391998 :          ipack = ipack + 1
   45786       391998 :          packed_data(ipack) = pack_tmp
   45787       391998 :          data_tmp = full_data(idata)
   45788       391998 :          pack_tmp = ISHFT(data_tmp, 32)
   45789       391998 :          pack_tmp = ISHFT(pack_tmp, -32)
   45790       391998 :          idata = idata + 1
   45791       391998 :          data_tmp = full_data(idata)
   45792       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45793       391998 :          data_tmp = IAND(data_tmp, mask_left(32))
   45794       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45795       391998 :          ipack = ipack + 1
   45796       391998 :          packed_data(ipack) = pack_tmp
   45797       391998 :          data_tmp = full_data(idata)
   45798       391998 :          pack_tmp = ISHFT(data_tmp, 40)
   45799       391998 :          pack_tmp = ISHFT(pack_tmp, -40)
   45800       391998 :          idata = idata + 1
   45801       391998 :          data_tmp = full_data(idata)
   45802       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45803       391998 :          data_tmp = IAND(data_tmp, mask_left(40))
   45804       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45805       391998 :          ipack = ipack + 1
   45806       391998 :          packed_data(ipack) = pack_tmp
   45807       391998 :          data_tmp = full_data(idata)
   45808       391998 :          pack_tmp = ISHFT(data_tmp, 48)
   45809       391998 :          pack_tmp = ISHFT(pack_tmp, -48)
   45810       391998 :          idata = idata + 1
   45811       391998 :          data_tmp = full_data(idata)
   45812       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45813       391998 :          data_tmp = IAND(data_tmp, mask_left(48))
   45814       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45815       391998 :          ipack = ipack + 1
   45816       391998 :          packed_data(ipack) = pack_tmp
   45817       391998 :          data_tmp = full_data(idata)
   45818       391998 :          pack_tmp = ISHFT(data_tmp, 56)
   45819       391998 :          pack_tmp = ISHFT(pack_tmp, -56)
   45820       391998 :          idata = idata + 1
   45821       391998 :          data_tmp = full_data(idata)
   45822       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45823       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45824       391998 :          pack_tmp = ISHFT(pack_tmp, 0)
   45825       391998 :          idata = idata + 1
   45826       391998 :          data_tmp = full_data(idata)
   45827              :          data_tmp = ISHFT(data_tmp, 8)
   45828       391998 :          data_tmp = IAND(data_tmp, mask_left(0))
   45829       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45830       391998 :          ipack = ipack + 1
   45831       391998 :          packed_data(ipack) = pack_tmp
   45832       391998 :          data_tmp = full_data(idata)
   45833       391998 :          pack_tmp = ISHFT(data_tmp, 8)
   45834       391998 :          pack_tmp = ISHFT(pack_tmp, -8)
   45835       391998 :          idata = idata + 1
   45836       391998 :          data_tmp = full_data(idata)
   45837       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45838       391998 :          data_tmp = IAND(data_tmp, mask_left(8))
   45839       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45840       391998 :          ipack = ipack + 1
   45841       391998 :          packed_data(ipack) = pack_tmp
   45842       391998 :          data_tmp = full_data(idata)
   45843       391998 :          pack_tmp = ISHFT(data_tmp, 16)
   45844       391998 :          pack_tmp = ISHFT(pack_tmp, -16)
   45845       391998 :          idata = idata + 1
   45846       391998 :          data_tmp = full_data(idata)
   45847       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45848       391998 :          data_tmp = IAND(data_tmp, mask_left(16))
   45849       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45850       391998 :          ipack = ipack + 1
   45851       391998 :          packed_data(ipack) = pack_tmp
   45852       391998 :          data_tmp = full_data(idata)
   45853       391998 :          pack_tmp = ISHFT(data_tmp, 24)
   45854       391998 :          pack_tmp = ISHFT(pack_tmp, -24)
   45855       391998 :          idata = idata + 1
   45856       391998 :          data_tmp = full_data(idata)
   45857       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45858       391998 :          data_tmp = IAND(data_tmp, mask_left(24))
   45859       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45860       391998 :          ipack = ipack + 1
   45861       391998 :          packed_data(ipack) = pack_tmp
   45862       391998 :          data_tmp = full_data(idata)
   45863       391998 :          pack_tmp = ISHFT(data_tmp, 32)
   45864       391998 :          pack_tmp = ISHFT(pack_tmp, -32)
   45865       391998 :          idata = idata + 1
   45866       391998 :          data_tmp = full_data(idata)
   45867       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45868       391998 :          data_tmp = IAND(data_tmp, mask_left(32))
   45869       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45870       391998 :          ipack = ipack + 1
   45871       391998 :          packed_data(ipack) = pack_tmp
   45872       391998 :          data_tmp = full_data(idata)
   45873       391998 :          pack_tmp = ISHFT(data_tmp, 40)
   45874       391998 :          pack_tmp = ISHFT(pack_tmp, -40)
   45875       391998 :          idata = idata + 1
   45876       391998 :          data_tmp = full_data(idata)
   45877       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45878       391998 :          data_tmp = IAND(data_tmp, mask_left(40))
   45879       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45880       391998 :          ipack = ipack + 1
   45881       391998 :          packed_data(ipack) = pack_tmp
   45882       391998 :          data_tmp = full_data(idata)
   45883       391998 :          pack_tmp = ISHFT(data_tmp, 48)
   45884       391998 :          pack_tmp = ISHFT(pack_tmp, -48)
   45885       391998 :          idata = idata + 1
   45886       391998 :          data_tmp = full_data(idata)
   45887       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45888       391998 :          data_tmp = IAND(data_tmp, mask_left(48))
   45889       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45890       391998 :          ipack = ipack + 1
   45891       391998 :          packed_data(ipack) = pack_tmp
   45892       391998 :          data_tmp = full_data(idata)
   45893       391998 :          pack_tmp = ISHFT(data_tmp, 56)
   45894       391998 :          pack_tmp = ISHFT(pack_tmp, -56)
   45895       391998 :          idata = idata + 1
   45896       391998 :          data_tmp = full_data(idata)
   45897       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45898       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45899       391998 :          pack_tmp = ISHFT(pack_tmp, 0)
   45900       391998 :          idata = idata + 1
   45901       391998 :          data_tmp = full_data(idata)
   45902              :          data_tmp = ISHFT(data_tmp, 8)
   45903       391998 :          data_tmp = IAND(data_tmp, mask_left(0))
   45904       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45905       391998 :          ipack = ipack + 1
   45906       391998 :          packed_data(ipack) = pack_tmp
   45907       391998 :          data_tmp = full_data(idata)
   45908       391998 :          pack_tmp = ISHFT(data_tmp, 8)
   45909       391998 :          pack_tmp = ISHFT(pack_tmp, -8)
   45910       391998 :          idata = idata + 1
   45911       391998 :          data_tmp = full_data(idata)
   45912       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45913       391998 :          data_tmp = IAND(data_tmp, mask_left(8))
   45914       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45915       391998 :          ipack = ipack + 1
   45916       391998 :          packed_data(ipack) = pack_tmp
   45917       391998 :          data_tmp = full_data(idata)
   45918       391998 :          pack_tmp = ISHFT(data_tmp, 16)
   45919       391998 :          pack_tmp = ISHFT(pack_tmp, -16)
   45920       391998 :          idata = idata + 1
   45921       391998 :          data_tmp = full_data(idata)
   45922       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45923       391998 :          data_tmp = IAND(data_tmp, mask_left(16))
   45924       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45925       391998 :          ipack = ipack + 1
   45926       391998 :          packed_data(ipack) = pack_tmp
   45927       391998 :          data_tmp = full_data(idata)
   45928       391998 :          pack_tmp = ISHFT(data_tmp, 24)
   45929       391998 :          pack_tmp = ISHFT(pack_tmp, -24)
   45930       391998 :          idata = idata + 1
   45931       391998 :          data_tmp = full_data(idata)
   45932       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45933       391998 :          data_tmp = IAND(data_tmp, mask_left(24))
   45934       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45935       391998 :          ipack = ipack + 1
   45936       391998 :          packed_data(ipack) = pack_tmp
   45937       391998 :          data_tmp = full_data(idata)
   45938       391998 :          pack_tmp = ISHFT(data_tmp, 32)
   45939       391998 :          pack_tmp = ISHFT(pack_tmp, -32)
   45940       391998 :          idata = idata + 1
   45941       391998 :          data_tmp = full_data(idata)
   45942       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45943       391998 :          data_tmp = IAND(data_tmp, mask_left(32))
   45944       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45945       391998 :          ipack = ipack + 1
   45946       391998 :          packed_data(ipack) = pack_tmp
   45947       391998 :          data_tmp = full_data(idata)
   45948       391998 :          pack_tmp = ISHFT(data_tmp, 40)
   45949       391998 :          pack_tmp = ISHFT(pack_tmp, -40)
   45950       391998 :          idata = idata + 1
   45951       391998 :          data_tmp = full_data(idata)
   45952       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45953       391998 :          data_tmp = IAND(data_tmp, mask_left(40))
   45954       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45955       391998 :          ipack = ipack + 1
   45956       391998 :          packed_data(ipack) = pack_tmp
   45957       391998 :          data_tmp = full_data(idata)
   45958       391998 :          pack_tmp = ISHFT(data_tmp, 48)
   45959       391998 :          pack_tmp = ISHFT(pack_tmp, -48)
   45960       391998 :          idata = idata + 1
   45961       391998 :          data_tmp = full_data(idata)
   45962       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45963       391998 :          data_tmp = IAND(data_tmp, mask_left(48))
   45964       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45965       391998 :          ipack = ipack + 1
   45966       391998 :          packed_data(ipack) = pack_tmp
   45967       391998 :          data_tmp = full_data(idata)
   45968       391998 :          pack_tmp = ISHFT(data_tmp, 56)
   45969       391998 :          pack_tmp = ISHFT(pack_tmp, -56)
   45970       391998 :          idata = idata + 1
   45971       391998 :          data_tmp = full_data(idata)
   45972       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45973       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45974       391998 :          pack_tmp = ISHFT(pack_tmp, 0)
   45975       391998 :          idata = idata + 1
   45976       391998 :          data_tmp = full_data(idata)
   45977              :          data_tmp = ISHFT(data_tmp, 8)
   45978       391998 :          data_tmp = IAND(data_tmp, mask_left(0))
   45979       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45980       391998 :          ipack = ipack + 1
   45981       391998 :          packed_data(ipack) = pack_tmp
   45982       391998 :          data_tmp = full_data(idata)
   45983       391998 :          pack_tmp = ISHFT(data_tmp, 8)
   45984       391998 :          pack_tmp = ISHFT(pack_tmp, -8)
   45985       391998 :          idata = idata + 1
   45986       391998 :          data_tmp = full_data(idata)
   45987       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45988       391998 :          data_tmp = IAND(data_tmp, mask_left(8))
   45989       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   45990       391998 :          ipack = ipack + 1
   45991       391998 :          packed_data(ipack) = pack_tmp
   45992       391998 :          data_tmp = full_data(idata)
   45993       391998 :          pack_tmp = ISHFT(data_tmp, 16)
   45994       391998 :          pack_tmp = ISHFT(pack_tmp, -16)
   45995       391998 :          idata = idata + 1
   45996       391998 :          data_tmp = full_data(idata)
   45997       391998 :          data_tmp = ISHFT(data_tmp, 8)
   45998       391998 :          data_tmp = IAND(data_tmp, mask_left(16))
   45999       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46000       391998 :          ipack = ipack + 1
   46001       391998 :          packed_data(ipack) = pack_tmp
   46002       391998 :          data_tmp = full_data(idata)
   46003       391998 :          pack_tmp = ISHFT(data_tmp, 24)
   46004       391998 :          pack_tmp = ISHFT(pack_tmp, -24)
   46005       391998 :          idata = idata + 1
   46006       391998 :          data_tmp = full_data(idata)
   46007       391998 :          data_tmp = ISHFT(data_tmp, 8)
   46008       391998 :          data_tmp = IAND(data_tmp, mask_left(24))
   46009       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46010       391998 :          ipack = ipack + 1
   46011       391998 :          packed_data(ipack) = pack_tmp
   46012       391998 :          data_tmp = full_data(idata)
   46013       391998 :          pack_tmp = ISHFT(data_tmp, 32)
   46014       391998 :          pack_tmp = ISHFT(pack_tmp, -32)
   46015       391998 :          idata = idata + 1
   46016       391998 :          data_tmp = full_data(idata)
   46017       391998 :          data_tmp = ISHFT(data_tmp, 8)
   46018       391998 :          data_tmp = IAND(data_tmp, mask_left(32))
   46019       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46020       391998 :          ipack = ipack + 1
   46021       391998 :          packed_data(ipack) = pack_tmp
   46022       391998 :          data_tmp = full_data(idata)
   46023       391998 :          pack_tmp = ISHFT(data_tmp, 40)
   46024       391998 :          pack_tmp = ISHFT(pack_tmp, -40)
   46025       391998 :          idata = idata + 1
   46026       391998 :          data_tmp = full_data(idata)
   46027       391998 :          data_tmp = ISHFT(data_tmp, 8)
   46028       391998 :          data_tmp = IAND(data_tmp, mask_left(40))
   46029       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46030       391998 :          ipack = ipack + 1
   46031       391998 :          packed_data(ipack) = pack_tmp
   46032       391998 :          data_tmp = full_data(idata)
   46033       391998 :          pack_tmp = ISHFT(data_tmp, 48)
   46034       391998 :          pack_tmp = ISHFT(pack_tmp, -48)
   46035       391998 :          idata = idata + 1
   46036       391998 :          data_tmp = full_data(idata)
   46037       391998 :          data_tmp = ISHFT(data_tmp, 8)
   46038       391998 :          data_tmp = IAND(data_tmp, mask_left(48))
   46039       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46040       391998 :          ipack = ipack + 1
   46041       391998 :          packed_data(ipack) = pack_tmp
   46042       391998 :          data_tmp = full_data(idata)
   46043       391998 :          pack_tmp = ISHFT(data_tmp, 56)
   46044       391998 :          pack_tmp = ISHFT(pack_tmp, -56)
   46045       391998 :          idata = idata + 1
   46046       391998 :          data_tmp = full_data(idata)
   46047       391998 :          data_tmp = ISHFT(data_tmp, 8)
   46048       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46049       391998 :          pack_tmp = ISHFT(pack_tmp, 0)
   46050       391998 :          idata = idata + 1
   46051       391998 :          data_tmp = full_data(idata)
   46052              :          data_tmp = ISHFT(data_tmp, 8)
   46053       391998 :          data_tmp = IAND(data_tmp, mask_left(0))
   46054       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46055       391998 :          ipack = ipack + 1
   46056       391998 :          packed_data(ipack) = pack_tmp
   46057       391998 :          data_tmp = full_data(idata)
   46058       391998 :          pack_tmp = ISHFT(data_tmp, 8)
   46059       391998 :          pack_tmp = ISHFT(pack_tmp, -8)
   46060       391998 :          idata = idata + 1
   46061       391998 :          data_tmp = full_data(idata)
   46062       391998 :          data_tmp = ISHFT(data_tmp, 8)
   46063       391998 :          data_tmp = IAND(data_tmp, mask_left(8))
   46064       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46065       391998 :          ipack = ipack + 1
   46066       391998 :          packed_data(ipack) = pack_tmp
   46067       391998 :          data_tmp = full_data(idata)
   46068       391998 :          pack_tmp = ISHFT(data_tmp, 16)
   46069       391998 :          pack_tmp = ISHFT(pack_tmp, -16)
   46070       391998 :          idata = idata + 1
   46071       391998 :          data_tmp = full_data(idata)
   46072       391998 :          data_tmp = ISHFT(data_tmp, 8)
   46073       391998 :          data_tmp = IAND(data_tmp, mask_left(16))
   46074       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46075       391998 :          ipack = ipack + 1
   46076       391998 :          packed_data(ipack) = pack_tmp
   46077       391998 :          data_tmp = full_data(idata)
   46078       391998 :          pack_tmp = ISHFT(data_tmp, 24)
   46079       391998 :          pack_tmp = ISHFT(pack_tmp, -24)
   46080       391998 :          idata = idata + 1
   46081       391998 :          data_tmp = full_data(idata)
   46082       391998 :          data_tmp = ISHFT(data_tmp, 8)
   46083       391998 :          data_tmp = IAND(data_tmp, mask_left(24))
   46084       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46085       391998 :          ipack = ipack + 1
   46086       391998 :          packed_data(ipack) = pack_tmp
   46087       391998 :          data_tmp = full_data(idata)
   46088       391998 :          pack_tmp = ISHFT(data_tmp, 32)
   46089       391998 :          pack_tmp = ISHFT(pack_tmp, -32)
   46090       391998 :          idata = idata + 1
   46091       391998 :          data_tmp = full_data(idata)
   46092       391998 :          data_tmp = ISHFT(data_tmp, 8)
   46093       391998 :          data_tmp = IAND(data_tmp, mask_left(32))
   46094       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46095       391998 :          ipack = ipack + 1
   46096       391998 :          packed_data(ipack) = pack_tmp
   46097       391998 :          data_tmp = full_data(idata)
   46098       391998 :          pack_tmp = ISHFT(data_tmp, 40)
   46099       391998 :          pack_tmp = ISHFT(pack_tmp, -40)
   46100       391998 :          idata = idata + 1
   46101       391998 :          data_tmp = full_data(idata)
   46102       391998 :          data_tmp = ISHFT(data_tmp, 8)
   46103       391998 :          data_tmp = IAND(data_tmp, mask_left(40))
   46104       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46105       391998 :          ipack = ipack + 1
   46106       391998 :          packed_data(ipack) = pack_tmp
   46107       391998 :          data_tmp = full_data(idata)
   46108       391998 :          pack_tmp = ISHFT(data_tmp, 48)
   46109       391998 :          pack_tmp = ISHFT(pack_tmp, -48)
   46110       391998 :          idata = idata + 1
   46111       391998 :          data_tmp = full_data(idata)
   46112       391998 :          data_tmp = ISHFT(data_tmp, 8)
   46113       391998 :          data_tmp = IAND(data_tmp, mask_left(48))
   46114       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46115       391998 :          ipack = ipack + 1
   46116       391998 :          packed_data(ipack) = pack_tmp
   46117       391998 :          data_tmp = full_data(idata)
   46118       391998 :          pack_tmp = ISHFT(data_tmp, 56)
   46119       391998 :          pack_tmp = ISHFT(pack_tmp, -56)
   46120       391998 :          idata = idata + 1
   46121       391998 :          data_tmp = full_data(idata)
   46122       391998 :          data_tmp = ISHFT(data_tmp, 8)
   46123       391998 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46124              :          pack_tmp = ISHFT(pack_tmp, 0)
   46125       391998 :          pack_tmp = ISHFT(pack_tmp, 0)
   46126       391998 :          ipack = ipack + 1
   46127       392004 :          packed_data(ipack) = pack_tmp
   46128              :       END DO
   46129        24570 :       IF (Ndata_rep < Ndata) THEN
   46130          132 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   46131              :       END IF
   46132        24570 :    END SUBROUTINE ints2bits_56
   46133              : 
   46134              : ! **************************************************************************************************
   46135              : !> \brief ...
   46136              : !> \param Ndata ...
   46137              : !> \param packed_data ...
   46138              : !> \param full_data ...
   46139              : ! **************************************************************************************************
   46140       105683 :    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       105683 :       ipack = 0
   46151       105683 :       idata = 0
   46152       105683 :       pack_tmp = 0
   46153       105683 :       Ndata_rep = (Ndata/64)*64
   46154       105683 :       DO kdata = 1, Ndata_rep, 64
   46155      1632686 :          idata = idata + 1
   46156      1632686 :          data_tmp = ISHFT(pack_tmp, 56)
   46157      1632686 :          ipack = ipack + 1
   46158      1632686 :          pack_tmp = packed_data(ipack)
   46159      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46160      1632686 :          pack_tmp = ISHFT(pack_tmp, -56)
   46161      1632686 :          idata = idata + 1
   46162      1632686 :          data_tmp = ISHFT(pack_tmp, 48)
   46163      1632686 :          ipack = ipack + 1
   46164      1632686 :          pack_tmp = packed_data(ipack)
   46165      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46166      1632686 :          pack_tmp = ISHFT(pack_tmp, -48)
   46167      1632686 :          idata = idata + 1
   46168      1632686 :          data_tmp = ISHFT(pack_tmp, 40)
   46169      1632686 :          ipack = ipack + 1
   46170      1632686 :          pack_tmp = packed_data(ipack)
   46171      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46172      1632686 :          pack_tmp = ISHFT(pack_tmp, -40)
   46173      1632686 :          idata = idata + 1
   46174      1632686 :          data_tmp = ISHFT(pack_tmp, 32)
   46175      1632686 :          ipack = ipack + 1
   46176      1632686 :          pack_tmp = packed_data(ipack)
   46177      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46178      1632686 :          pack_tmp = ISHFT(pack_tmp, -32)
   46179      1632686 :          idata = idata + 1
   46180      1632686 :          data_tmp = ISHFT(pack_tmp, 24)
   46181      1632686 :          ipack = ipack + 1
   46182      1632686 :          pack_tmp = packed_data(ipack)
   46183      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46184      1632686 :          pack_tmp = ISHFT(pack_tmp, -24)
   46185      1632686 :          idata = idata + 1
   46186      1632686 :          data_tmp = ISHFT(pack_tmp, 16)
   46187      1632686 :          ipack = ipack + 1
   46188      1632686 :          pack_tmp = packed_data(ipack)
   46189      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46190      1632686 :          pack_tmp = ISHFT(pack_tmp, -16)
   46191      1632686 :          idata = idata + 1
   46192      1632686 :          data_tmp = ISHFT(pack_tmp, 8)
   46193      1632686 :          ipack = ipack + 1
   46194      1632686 :          pack_tmp = packed_data(ipack)
   46195      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46196      1632686 :          pack_tmp = ISHFT(pack_tmp, -8)
   46197      1632686 :          idata = idata + 1
   46198      1632686 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46199      1632686 :          full_data(idata) = data_tmp
   46200      1632686 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46201      1632686 :          idata = idata + 1
   46202      1632686 :          data_tmp = ISHFT(pack_tmp, 56)
   46203      1632686 :          ipack = ipack + 1
   46204      1632686 :          pack_tmp = packed_data(ipack)
   46205      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46206      1632686 :          pack_tmp = ISHFT(pack_tmp, -56)
   46207      1632686 :          idata = idata + 1
   46208      1632686 :          data_tmp = ISHFT(pack_tmp, 48)
   46209      1632686 :          ipack = ipack + 1
   46210      1632686 :          pack_tmp = packed_data(ipack)
   46211      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46212      1632686 :          pack_tmp = ISHFT(pack_tmp, -48)
   46213      1632686 :          idata = idata + 1
   46214      1632686 :          data_tmp = ISHFT(pack_tmp, 40)
   46215      1632686 :          ipack = ipack + 1
   46216      1632686 :          pack_tmp = packed_data(ipack)
   46217      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46218      1632686 :          pack_tmp = ISHFT(pack_tmp, -40)
   46219      1632686 :          idata = idata + 1
   46220      1632686 :          data_tmp = ISHFT(pack_tmp, 32)
   46221      1632686 :          ipack = ipack + 1
   46222      1632686 :          pack_tmp = packed_data(ipack)
   46223      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46224      1632686 :          pack_tmp = ISHFT(pack_tmp, -32)
   46225      1632686 :          idata = idata + 1
   46226      1632686 :          data_tmp = ISHFT(pack_tmp, 24)
   46227      1632686 :          ipack = ipack + 1
   46228      1632686 :          pack_tmp = packed_data(ipack)
   46229      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46230      1632686 :          pack_tmp = ISHFT(pack_tmp, -24)
   46231      1632686 :          idata = idata + 1
   46232      1632686 :          data_tmp = ISHFT(pack_tmp, 16)
   46233      1632686 :          ipack = ipack + 1
   46234      1632686 :          pack_tmp = packed_data(ipack)
   46235      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46236      1632686 :          pack_tmp = ISHFT(pack_tmp, -16)
   46237      1632686 :          idata = idata + 1
   46238      1632686 :          data_tmp = ISHFT(pack_tmp, 8)
   46239      1632686 :          ipack = ipack + 1
   46240      1632686 :          pack_tmp = packed_data(ipack)
   46241      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46242      1632686 :          pack_tmp = ISHFT(pack_tmp, -8)
   46243      1632686 :          idata = idata + 1
   46244      1632686 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46245      1632686 :          full_data(idata) = data_tmp
   46246      1632686 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46247      1632686 :          idata = idata + 1
   46248      1632686 :          data_tmp = ISHFT(pack_tmp, 56)
   46249      1632686 :          ipack = ipack + 1
   46250      1632686 :          pack_tmp = packed_data(ipack)
   46251      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46252      1632686 :          pack_tmp = ISHFT(pack_tmp, -56)
   46253      1632686 :          idata = idata + 1
   46254      1632686 :          data_tmp = ISHFT(pack_tmp, 48)
   46255      1632686 :          ipack = ipack + 1
   46256      1632686 :          pack_tmp = packed_data(ipack)
   46257      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46258      1632686 :          pack_tmp = ISHFT(pack_tmp, -48)
   46259      1632686 :          idata = idata + 1
   46260      1632686 :          data_tmp = ISHFT(pack_tmp, 40)
   46261      1632686 :          ipack = ipack + 1
   46262      1632686 :          pack_tmp = packed_data(ipack)
   46263      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46264      1632686 :          pack_tmp = ISHFT(pack_tmp, -40)
   46265      1632686 :          idata = idata + 1
   46266      1632686 :          data_tmp = ISHFT(pack_tmp, 32)
   46267      1632686 :          ipack = ipack + 1
   46268      1632686 :          pack_tmp = packed_data(ipack)
   46269      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46270      1632686 :          pack_tmp = ISHFT(pack_tmp, -32)
   46271      1632686 :          idata = idata + 1
   46272      1632686 :          data_tmp = ISHFT(pack_tmp, 24)
   46273      1632686 :          ipack = ipack + 1
   46274      1632686 :          pack_tmp = packed_data(ipack)
   46275      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46276      1632686 :          pack_tmp = ISHFT(pack_tmp, -24)
   46277      1632686 :          idata = idata + 1
   46278      1632686 :          data_tmp = ISHFT(pack_tmp, 16)
   46279      1632686 :          ipack = ipack + 1
   46280      1632686 :          pack_tmp = packed_data(ipack)
   46281      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46282      1632686 :          pack_tmp = ISHFT(pack_tmp, -16)
   46283      1632686 :          idata = idata + 1
   46284      1632686 :          data_tmp = ISHFT(pack_tmp, 8)
   46285      1632686 :          ipack = ipack + 1
   46286      1632686 :          pack_tmp = packed_data(ipack)
   46287      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46288      1632686 :          pack_tmp = ISHFT(pack_tmp, -8)
   46289      1632686 :          idata = idata + 1
   46290      1632686 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46291      1632686 :          full_data(idata) = data_tmp
   46292      1632686 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46293      1632686 :          idata = idata + 1
   46294      1632686 :          data_tmp = ISHFT(pack_tmp, 56)
   46295      1632686 :          ipack = ipack + 1
   46296      1632686 :          pack_tmp = packed_data(ipack)
   46297      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46298      1632686 :          pack_tmp = ISHFT(pack_tmp, -56)
   46299      1632686 :          idata = idata + 1
   46300      1632686 :          data_tmp = ISHFT(pack_tmp, 48)
   46301      1632686 :          ipack = ipack + 1
   46302      1632686 :          pack_tmp = packed_data(ipack)
   46303      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46304      1632686 :          pack_tmp = ISHFT(pack_tmp, -48)
   46305      1632686 :          idata = idata + 1
   46306      1632686 :          data_tmp = ISHFT(pack_tmp, 40)
   46307      1632686 :          ipack = ipack + 1
   46308      1632686 :          pack_tmp = packed_data(ipack)
   46309      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46310      1632686 :          pack_tmp = ISHFT(pack_tmp, -40)
   46311      1632686 :          idata = idata + 1
   46312      1632686 :          data_tmp = ISHFT(pack_tmp, 32)
   46313      1632686 :          ipack = ipack + 1
   46314      1632686 :          pack_tmp = packed_data(ipack)
   46315      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46316      1632686 :          pack_tmp = ISHFT(pack_tmp, -32)
   46317      1632686 :          idata = idata + 1
   46318      1632686 :          data_tmp = ISHFT(pack_tmp, 24)
   46319      1632686 :          ipack = ipack + 1
   46320      1632686 :          pack_tmp = packed_data(ipack)
   46321      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46322      1632686 :          pack_tmp = ISHFT(pack_tmp, -24)
   46323      1632686 :          idata = idata + 1
   46324      1632686 :          data_tmp = ISHFT(pack_tmp, 16)
   46325      1632686 :          ipack = ipack + 1
   46326      1632686 :          pack_tmp = packed_data(ipack)
   46327      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46328      1632686 :          pack_tmp = ISHFT(pack_tmp, -16)
   46329      1632686 :          idata = idata + 1
   46330      1632686 :          data_tmp = ISHFT(pack_tmp, 8)
   46331      1632686 :          ipack = ipack + 1
   46332      1632686 :          pack_tmp = packed_data(ipack)
   46333      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46334      1632686 :          pack_tmp = ISHFT(pack_tmp, -8)
   46335      1632686 :          idata = idata + 1
   46336      1632686 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46337      1632686 :          full_data(idata) = data_tmp
   46338      1632686 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46339      1632686 :          idata = idata + 1
   46340      1632686 :          data_tmp = ISHFT(pack_tmp, 56)
   46341      1632686 :          ipack = ipack + 1
   46342      1632686 :          pack_tmp = packed_data(ipack)
   46343      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46344      1632686 :          pack_tmp = ISHFT(pack_tmp, -56)
   46345      1632686 :          idata = idata + 1
   46346      1632686 :          data_tmp = ISHFT(pack_tmp, 48)
   46347      1632686 :          ipack = ipack + 1
   46348      1632686 :          pack_tmp = packed_data(ipack)
   46349      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46350      1632686 :          pack_tmp = ISHFT(pack_tmp, -48)
   46351      1632686 :          idata = idata + 1
   46352      1632686 :          data_tmp = ISHFT(pack_tmp, 40)
   46353      1632686 :          ipack = ipack + 1
   46354      1632686 :          pack_tmp = packed_data(ipack)
   46355      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46356      1632686 :          pack_tmp = ISHFT(pack_tmp, -40)
   46357      1632686 :          idata = idata + 1
   46358      1632686 :          data_tmp = ISHFT(pack_tmp, 32)
   46359      1632686 :          ipack = ipack + 1
   46360      1632686 :          pack_tmp = packed_data(ipack)
   46361      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46362      1632686 :          pack_tmp = ISHFT(pack_tmp, -32)
   46363      1632686 :          idata = idata + 1
   46364      1632686 :          data_tmp = ISHFT(pack_tmp, 24)
   46365      1632686 :          ipack = ipack + 1
   46366      1632686 :          pack_tmp = packed_data(ipack)
   46367      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46368      1632686 :          pack_tmp = ISHFT(pack_tmp, -24)
   46369      1632686 :          idata = idata + 1
   46370      1632686 :          data_tmp = ISHFT(pack_tmp, 16)
   46371      1632686 :          ipack = ipack + 1
   46372      1632686 :          pack_tmp = packed_data(ipack)
   46373      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46374      1632686 :          pack_tmp = ISHFT(pack_tmp, -16)
   46375      1632686 :          idata = idata + 1
   46376      1632686 :          data_tmp = ISHFT(pack_tmp, 8)
   46377      1632686 :          ipack = ipack + 1
   46378      1632686 :          pack_tmp = packed_data(ipack)
   46379      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46380      1632686 :          pack_tmp = ISHFT(pack_tmp, -8)
   46381      1632686 :          idata = idata + 1
   46382      1632686 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46383      1632686 :          full_data(idata) = data_tmp
   46384      1632686 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46385      1632686 :          idata = idata + 1
   46386      1632686 :          data_tmp = ISHFT(pack_tmp, 56)
   46387      1632686 :          ipack = ipack + 1
   46388      1632686 :          pack_tmp = packed_data(ipack)
   46389      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46390      1632686 :          pack_tmp = ISHFT(pack_tmp, -56)
   46391      1632686 :          idata = idata + 1
   46392      1632686 :          data_tmp = ISHFT(pack_tmp, 48)
   46393      1632686 :          ipack = ipack + 1
   46394      1632686 :          pack_tmp = packed_data(ipack)
   46395      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46396      1632686 :          pack_tmp = ISHFT(pack_tmp, -48)
   46397      1632686 :          idata = idata + 1
   46398      1632686 :          data_tmp = ISHFT(pack_tmp, 40)
   46399      1632686 :          ipack = ipack + 1
   46400      1632686 :          pack_tmp = packed_data(ipack)
   46401      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46402      1632686 :          pack_tmp = ISHFT(pack_tmp, -40)
   46403      1632686 :          idata = idata + 1
   46404      1632686 :          data_tmp = ISHFT(pack_tmp, 32)
   46405      1632686 :          ipack = ipack + 1
   46406      1632686 :          pack_tmp = packed_data(ipack)
   46407      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46408      1632686 :          pack_tmp = ISHFT(pack_tmp, -32)
   46409      1632686 :          idata = idata + 1
   46410      1632686 :          data_tmp = ISHFT(pack_tmp, 24)
   46411      1632686 :          ipack = ipack + 1
   46412      1632686 :          pack_tmp = packed_data(ipack)
   46413      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46414      1632686 :          pack_tmp = ISHFT(pack_tmp, -24)
   46415      1632686 :          idata = idata + 1
   46416      1632686 :          data_tmp = ISHFT(pack_tmp, 16)
   46417      1632686 :          ipack = ipack + 1
   46418      1632686 :          pack_tmp = packed_data(ipack)
   46419      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46420      1632686 :          pack_tmp = ISHFT(pack_tmp, -16)
   46421      1632686 :          idata = idata + 1
   46422      1632686 :          data_tmp = ISHFT(pack_tmp, 8)
   46423      1632686 :          ipack = ipack + 1
   46424      1632686 :          pack_tmp = packed_data(ipack)
   46425      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46426      1632686 :          pack_tmp = ISHFT(pack_tmp, -8)
   46427      1632686 :          idata = idata + 1
   46428      1632686 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46429      1632686 :          full_data(idata) = data_tmp
   46430      1632686 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46431      1632686 :          idata = idata + 1
   46432      1632686 :          data_tmp = ISHFT(pack_tmp, 56)
   46433      1632686 :          ipack = ipack + 1
   46434      1632686 :          pack_tmp = packed_data(ipack)
   46435      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46436      1632686 :          pack_tmp = ISHFT(pack_tmp, -56)
   46437      1632686 :          idata = idata + 1
   46438      1632686 :          data_tmp = ISHFT(pack_tmp, 48)
   46439      1632686 :          ipack = ipack + 1
   46440      1632686 :          pack_tmp = packed_data(ipack)
   46441      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46442      1632686 :          pack_tmp = ISHFT(pack_tmp, -48)
   46443      1632686 :          idata = idata + 1
   46444      1632686 :          data_tmp = ISHFT(pack_tmp, 40)
   46445      1632686 :          ipack = ipack + 1
   46446      1632686 :          pack_tmp = packed_data(ipack)
   46447      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46448      1632686 :          pack_tmp = ISHFT(pack_tmp, -40)
   46449      1632686 :          idata = idata + 1
   46450      1632686 :          data_tmp = ISHFT(pack_tmp, 32)
   46451      1632686 :          ipack = ipack + 1
   46452      1632686 :          pack_tmp = packed_data(ipack)
   46453      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46454      1632686 :          pack_tmp = ISHFT(pack_tmp, -32)
   46455      1632686 :          idata = idata + 1
   46456      1632686 :          data_tmp = ISHFT(pack_tmp, 24)
   46457      1632686 :          ipack = ipack + 1
   46458      1632686 :          pack_tmp = packed_data(ipack)
   46459      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46460      1632686 :          pack_tmp = ISHFT(pack_tmp, -24)
   46461      1632686 :          idata = idata + 1
   46462      1632686 :          data_tmp = ISHFT(pack_tmp, 16)
   46463      1632686 :          ipack = ipack + 1
   46464      1632686 :          pack_tmp = packed_data(ipack)
   46465      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46466      1632686 :          pack_tmp = ISHFT(pack_tmp, -16)
   46467      1632686 :          idata = idata + 1
   46468      1632686 :          data_tmp = ISHFT(pack_tmp, 8)
   46469      1632686 :          ipack = ipack + 1
   46470      1632686 :          pack_tmp = packed_data(ipack)
   46471      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46472      1632686 :          pack_tmp = ISHFT(pack_tmp, -8)
   46473      1632686 :          idata = idata + 1
   46474      1632686 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46475      1632686 :          full_data(idata) = data_tmp
   46476      1632686 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46477      1632686 :          idata = idata + 1
   46478      1632686 :          data_tmp = ISHFT(pack_tmp, 56)
   46479      1632686 :          ipack = ipack + 1
   46480      1632686 :          pack_tmp = packed_data(ipack)
   46481      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   46482      1632686 :          pack_tmp = ISHFT(pack_tmp, -56)
   46483      1632686 :          idata = idata + 1
   46484      1632686 :          data_tmp = ISHFT(pack_tmp, 48)
   46485      1632686 :          ipack = ipack + 1
   46486      1632686 :          pack_tmp = packed_data(ipack)
   46487      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   46488      1632686 :          pack_tmp = ISHFT(pack_tmp, -48)
   46489      1632686 :          idata = idata + 1
   46490      1632686 :          data_tmp = ISHFT(pack_tmp, 40)
   46491      1632686 :          ipack = ipack + 1
   46492      1632686 :          pack_tmp = packed_data(ipack)
   46493      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   46494      1632686 :          pack_tmp = ISHFT(pack_tmp, -40)
   46495      1632686 :          idata = idata + 1
   46496      1632686 :          data_tmp = ISHFT(pack_tmp, 32)
   46497      1632686 :          ipack = ipack + 1
   46498      1632686 :          pack_tmp = packed_data(ipack)
   46499      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   46500      1632686 :          pack_tmp = ISHFT(pack_tmp, -32)
   46501      1632686 :          idata = idata + 1
   46502      1632686 :          data_tmp = ISHFT(pack_tmp, 24)
   46503      1632686 :          ipack = ipack + 1
   46504      1632686 :          pack_tmp = packed_data(ipack)
   46505      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   46506      1632686 :          pack_tmp = ISHFT(pack_tmp, -24)
   46507      1632686 :          idata = idata + 1
   46508      1632686 :          data_tmp = ISHFT(pack_tmp, 16)
   46509      1632686 :          ipack = ipack + 1
   46510      1632686 :          pack_tmp = packed_data(ipack)
   46511      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   46512      1632686 :          pack_tmp = ISHFT(pack_tmp, -16)
   46513      1632686 :          idata = idata + 1
   46514      1632686 :          data_tmp = ISHFT(pack_tmp, 8)
   46515      1632686 :          ipack = ipack + 1
   46516      1632686 :          pack_tmp = packed_data(ipack)
   46517      1632686 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   46518      1632686 :          pack_tmp = ISHFT(pack_tmp, -8)
   46519      1632686 :          idata = idata + 1
   46520      1632686 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   46521      1632686 :          full_data(idata) = data_tmp
   46522      1633052 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   46523              :       END DO
   46524       105683 :       IF (Ndata_rep < Ndata) THEN
   46525         6852 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   46526              :       END IF
   46527       105683 :    END SUBROUTINE bits2ints_56
   46528              : 
   46529              : ! **************************************************************************************************
   46530              : !> \brief ...
   46531              : !> \param Ndata ...
   46532              : !> \param packed_data ...
   46533              : !> \param full_data ...
   46534              : ! **************************************************************************************************
   46535        24494 :    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        24494 :       idata = 0
   46546        24494 :       ipack = 0
   46547        24494 :       Ndata_rep = (Ndata/64)*64
   46548        24494 :       DO kdata = 1, Ndata_rep, 64
   46549       391394 :          pack_tmp = 0
   46550       391394 :          idata = idata + 1
   46551       391394 :          data_tmp = full_data(idata)
   46552       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46553       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46554       391394 :          pack_tmp = ISHFT(pack_tmp, -7)
   46555       391394 :          idata = idata + 1
   46556       391394 :          data_tmp = full_data(idata)
   46557       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46558       391394 :          data_tmp = IAND(data_tmp, mask_left(7))
   46559       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46560       391394 :          ipack = ipack + 1
   46561       391394 :          packed_data(ipack) = pack_tmp
   46562       391394 :          data_tmp = full_data(idata)
   46563       391394 :          pack_tmp = ISHFT(data_tmp, 14)
   46564       391394 :          pack_tmp = ISHFT(pack_tmp, -14)
   46565       391394 :          idata = idata + 1
   46566       391394 :          data_tmp = full_data(idata)
   46567       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46568       391394 :          data_tmp = IAND(data_tmp, mask_left(14))
   46569       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46570       391394 :          ipack = ipack + 1
   46571       391394 :          packed_data(ipack) = pack_tmp
   46572       391394 :          data_tmp = full_data(idata)
   46573       391394 :          pack_tmp = ISHFT(data_tmp, 21)
   46574       391394 :          pack_tmp = ISHFT(pack_tmp, -21)
   46575       391394 :          idata = idata + 1
   46576       391394 :          data_tmp = full_data(idata)
   46577       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46578       391394 :          data_tmp = IAND(data_tmp, mask_left(21))
   46579       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46580       391394 :          ipack = ipack + 1
   46581       391394 :          packed_data(ipack) = pack_tmp
   46582       391394 :          data_tmp = full_data(idata)
   46583       391394 :          pack_tmp = ISHFT(data_tmp, 28)
   46584       391394 :          pack_tmp = ISHFT(pack_tmp, -28)
   46585       391394 :          idata = idata + 1
   46586       391394 :          data_tmp = full_data(idata)
   46587       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46588       391394 :          data_tmp = IAND(data_tmp, mask_left(28))
   46589       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46590       391394 :          ipack = ipack + 1
   46591       391394 :          packed_data(ipack) = pack_tmp
   46592       391394 :          data_tmp = full_data(idata)
   46593       391394 :          pack_tmp = ISHFT(data_tmp, 35)
   46594       391394 :          pack_tmp = ISHFT(pack_tmp, -35)
   46595       391394 :          idata = idata + 1
   46596       391394 :          data_tmp = full_data(idata)
   46597       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46598       391394 :          data_tmp = IAND(data_tmp, mask_left(35))
   46599       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46600       391394 :          ipack = ipack + 1
   46601       391394 :          packed_data(ipack) = pack_tmp
   46602       391394 :          data_tmp = full_data(idata)
   46603       391394 :          pack_tmp = ISHFT(data_tmp, 42)
   46604       391394 :          pack_tmp = ISHFT(pack_tmp, -42)
   46605       391394 :          idata = idata + 1
   46606       391394 :          data_tmp = full_data(idata)
   46607       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46608       391394 :          data_tmp = IAND(data_tmp, mask_left(42))
   46609       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46610       391394 :          ipack = ipack + 1
   46611       391394 :          packed_data(ipack) = pack_tmp
   46612       391394 :          data_tmp = full_data(idata)
   46613       391394 :          pack_tmp = ISHFT(data_tmp, 49)
   46614       391394 :          pack_tmp = ISHFT(pack_tmp, -49)
   46615       391394 :          idata = idata + 1
   46616       391394 :          data_tmp = full_data(idata)
   46617       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46618       391394 :          data_tmp = IAND(data_tmp, mask_left(49))
   46619       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46620       391394 :          ipack = ipack + 1
   46621       391394 :          packed_data(ipack) = pack_tmp
   46622       391394 :          data_tmp = full_data(idata)
   46623       391394 :          pack_tmp = ISHFT(data_tmp, 56)
   46624       391394 :          pack_tmp = ISHFT(pack_tmp, -56)
   46625       391394 :          idata = idata + 1
   46626       391394 :          data_tmp = full_data(idata)
   46627       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46628       391394 :          data_tmp = IAND(data_tmp, mask_left(56))
   46629       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46630       391394 :          ipack = ipack + 1
   46631       391394 :          packed_data(ipack) = pack_tmp
   46632       391394 :          data_tmp = full_data(idata)
   46633       391394 :          pack_tmp = ISHFT(data_tmp, 63)
   46634       391394 :          pack_tmp = ISHFT(pack_tmp, -57)
   46635       391394 :          idata = idata + 1
   46636       391394 :          data_tmp = full_data(idata)
   46637       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46638       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46639       391394 :          pack_tmp = ISHFT(pack_tmp, -6)
   46640       391394 :          idata = idata + 1
   46641       391394 :          data_tmp = full_data(idata)
   46642       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46643       391394 :          data_tmp = IAND(data_tmp, mask_left(6))
   46644       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46645       391394 :          ipack = ipack + 1
   46646       391394 :          packed_data(ipack) = pack_tmp
   46647       391394 :          data_tmp = full_data(idata)
   46648       391394 :          pack_tmp = ISHFT(data_tmp, 13)
   46649       391394 :          pack_tmp = ISHFT(pack_tmp, -13)
   46650       391394 :          idata = idata + 1
   46651       391394 :          data_tmp = full_data(idata)
   46652       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46653       391394 :          data_tmp = IAND(data_tmp, mask_left(13))
   46654       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46655       391394 :          ipack = ipack + 1
   46656       391394 :          packed_data(ipack) = pack_tmp
   46657       391394 :          data_tmp = full_data(idata)
   46658       391394 :          pack_tmp = ISHFT(data_tmp, 20)
   46659       391394 :          pack_tmp = ISHFT(pack_tmp, -20)
   46660       391394 :          idata = idata + 1
   46661       391394 :          data_tmp = full_data(idata)
   46662       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46663       391394 :          data_tmp = IAND(data_tmp, mask_left(20))
   46664       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46665       391394 :          ipack = ipack + 1
   46666       391394 :          packed_data(ipack) = pack_tmp
   46667       391394 :          data_tmp = full_data(idata)
   46668       391394 :          pack_tmp = ISHFT(data_tmp, 27)
   46669       391394 :          pack_tmp = ISHFT(pack_tmp, -27)
   46670       391394 :          idata = idata + 1
   46671       391394 :          data_tmp = full_data(idata)
   46672       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46673       391394 :          data_tmp = IAND(data_tmp, mask_left(27))
   46674       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46675       391394 :          ipack = ipack + 1
   46676       391394 :          packed_data(ipack) = pack_tmp
   46677       391394 :          data_tmp = full_data(idata)
   46678       391394 :          pack_tmp = ISHFT(data_tmp, 34)
   46679       391394 :          pack_tmp = ISHFT(pack_tmp, -34)
   46680       391394 :          idata = idata + 1
   46681       391394 :          data_tmp = full_data(idata)
   46682       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46683       391394 :          data_tmp = IAND(data_tmp, mask_left(34))
   46684       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46685       391394 :          ipack = ipack + 1
   46686       391394 :          packed_data(ipack) = pack_tmp
   46687       391394 :          data_tmp = full_data(idata)
   46688       391394 :          pack_tmp = ISHFT(data_tmp, 41)
   46689       391394 :          pack_tmp = ISHFT(pack_tmp, -41)
   46690       391394 :          idata = idata + 1
   46691       391394 :          data_tmp = full_data(idata)
   46692       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46693       391394 :          data_tmp = IAND(data_tmp, mask_left(41))
   46694       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46695       391394 :          ipack = ipack + 1
   46696       391394 :          packed_data(ipack) = pack_tmp
   46697       391394 :          data_tmp = full_data(idata)
   46698       391394 :          pack_tmp = ISHFT(data_tmp, 48)
   46699       391394 :          pack_tmp = ISHFT(pack_tmp, -48)
   46700       391394 :          idata = idata + 1
   46701       391394 :          data_tmp = full_data(idata)
   46702       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46703       391394 :          data_tmp = IAND(data_tmp, mask_left(48))
   46704       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46705       391394 :          ipack = ipack + 1
   46706       391394 :          packed_data(ipack) = pack_tmp
   46707       391394 :          data_tmp = full_data(idata)
   46708       391394 :          pack_tmp = ISHFT(data_tmp, 55)
   46709       391394 :          pack_tmp = ISHFT(pack_tmp, -55)
   46710       391394 :          idata = idata + 1
   46711       391394 :          data_tmp = full_data(idata)
   46712       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46713       391394 :          data_tmp = IAND(data_tmp, mask_left(55))
   46714       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46715       391394 :          ipack = ipack + 1
   46716       391394 :          packed_data(ipack) = pack_tmp
   46717       391394 :          data_tmp = full_data(idata)
   46718       391394 :          pack_tmp = ISHFT(data_tmp, 62)
   46719       391394 :          pack_tmp = ISHFT(pack_tmp, -57)
   46720       391394 :          idata = idata + 1
   46721       391394 :          data_tmp = full_data(idata)
   46722       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46723       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46724       391394 :          pack_tmp = ISHFT(pack_tmp, -5)
   46725       391394 :          idata = idata + 1
   46726       391394 :          data_tmp = full_data(idata)
   46727       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46728       391394 :          data_tmp = IAND(data_tmp, mask_left(5))
   46729       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46730       391394 :          ipack = ipack + 1
   46731       391394 :          packed_data(ipack) = pack_tmp
   46732       391394 :          data_tmp = full_data(idata)
   46733       391394 :          pack_tmp = ISHFT(data_tmp, 12)
   46734       391394 :          pack_tmp = ISHFT(pack_tmp, -12)
   46735       391394 :          idata = idata + 1
   46736       391394 :          data_tmp = full_data(idata)
   46737       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46738       391394 :          data_tmp = IAND(data_tmp, mask_left(12))
   46739       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46740       391394 :          ipack = ipack + 1
   46741       391394 :          packed_data(ipack) = pack_tmp
   46742       391394 :          data_tmp = full_data(idata)
   46743       391394 :          pack_tmp = ISHFT(data_tmp, 19)
   46744       391394 :          pack_tmp = ISHFT(pack_tmp, -19)
   46745       391394 :          idata = idata + 1
   46746       391394 :          data_tmp = full_data(idata)
   46747       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46748       391394 :          data_tmp = IAND(data_tmp, mask_left(19))
   46749       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46750       391394 :          ipack = ipack + 1
   46751       391394 :          packed_data(ipack) = pack_tmp
   46752       391394 :          data_tmp = full_data(idata)
   46753       391394 :          pack_tmp = ISHFT(data_tmp, 26)
   46754       391394 :          pack_tmp = ISHFT(pack_tmp, -26)
   46755       391394 :          idata = idata + 1
   46756       391394 :          data_tmp = full_data(idata)
   46757       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46758       391394 :          data_tmp = IAND(data_tmp, mask_left(26))
   46759       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46760       391394 :          ipack = ipack + 1
   46761       391394 :          packed_data(ipack) = pack_tmp
   46762       391394 :          data_tmp = full_data(idata)
   46763       391394 :          pack_tmp = ISHFT(data_tmp, 33)
   46764       391394 :          pack_tmp = ISHFT(pack_tmp, -33)
   46765       391394 :          idata = idata + 1
   46766       391394 :          data_tmp = full_data(idata)
   46767       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46768       391394 :          data_tmp = IAND(data_tmp, mask_left(33))
   46769       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46770       391394 :          ipack = ipack + 1
   46771       391394 :          packed_data(ipack) = pack_tmp
   46772       391394 :          data_tmp = full_data(idata)
   46773       391394 :          pack_tmp = ISHFT(data_tmp, 40)
   46774       391394 :          pack_tmp = ISHFT(pack_tmp, -40)
   46775       391394 :          idata = idata + 1
   46776       391394 :          data_tmp = full_data(idata)
   46777       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46778       391394 :          data_tmp = IAND(data_tmp, mask_left(40))
   46779       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46780       391394 :          ipack = ipack + 1
   46781       391394 :          packed_data(ipack) = pack_tmp
   46782       391394 :          data_tmp = full_data(idata)
   46783       391394 :          pack_tmp = ISHFT(data_tmp, 47)
   46784       391394 :          pack_tmp = ISHFT(pack_tmp, -47)
   46785       391394 :          idata = idata + 1
   46786       391394 :          data_tmp = full_data(idata)
   46787       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46788       391394 :          data_tmp = IAND(data_tmp, mask_left(47))
   46789       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46790       391394 :          ipack = ipack + 1
   46791       391394 :          packed_data(ipack) = pack_tmp
   46792       391394 :          data_tmp = full_data(idata)
   46793       391394 :          pack_tmp = ISHFT(data_tmp, 54)
   46794       391394 :          pack_tmp = ISHFT(pack_tmp, -54)
   46795       391394 :          idata = idata + 1
   46796       391394 :          data_tmp = full_data(idata)
   46797       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46798       391394 :          data_tmp = IAND(data_tmp, mask_left(54))
   46799       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46800       391394 :          ipack = ipack + 1
   46801       391394 :          packed_data(ipack) = pack_tmp
   46802       391394 :          data_tmp = full_data(idata)
   46803       391394 :          pack_tmp = ISHFT(data_tmp, 61)
   46804       391394 :          pack_tmp = ISHFT(pack_tmp, -57)
   46805       391394 :          idata = idata + 1
   46806       391394 :          data_tmp = full_data(idata)
   46807       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46808       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46809       391394 :          pack_tmp = ISHFT(pack_tmp, -4)
   46810       391394 :          idata = idata + 1
   46811       391394 :          data_tmp = full_data(idata)
   46812       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46813       391394 :          data_tmp = IAND(data_tmp, mask_left(4))
   46814       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46815       391394 :          ipack = ipack + 1
   46816       391394 :          packed_data(ipack) = pack_tmp
   46817       391394 :          data_tmp = full_data(idata)
   46818       391394 :          pack_tmp = ISHFT(data_tmp, 11)
   46819       391394 :          pack_tmp = ISHFT(pack_tmp, -11)
   46820       391394 :          idata = idata + 1
   46821       391394 :          data_tmp = full_data(idata)
   46822       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46823       391394 :          data_tmp = IAND(data_tmp, mask_left(11))
   46824       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46825       391394 :          ipack = ipack + 1
   46826       391394 :          packed_data(ipack) = pack_tmp
   46827       391394 :          data_tmp = full_data(idata)
   46828       391394 :          pack_tmp = ISHFT(data_tmp, 18)
   46829       391394 :          pack_tmp = ISHFT(pack_tmp, -18)
   46830       391394 :          idata = idata + 1
   46831       391394 :          data_tmp = full_data(idata)
   46832       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46833       391394 :          data_tmp = IAND(data_tmp, mask_left(18))
   46834       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46835       391394 :          ipack = ipack + 1
   46836       391394 :          packed_data(ipack) = pack_tmp
   46837       391394 :          data_tmp = full_data(idata)
   46838       391394 :          pack_tmp = ISHFT(data_tmp, 25)
   46839       391394 :          pack_tmp = ISHFT(pack_tmp, -25)
   46840       391394 :          idata = idata + 1
   46841       391394 :          data_tmp = full_data(idata)
   46842       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46843       391394 :          data_tmp = IAND(data_tmp, mask_left(25))
   46844       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46845       391394 :          ipack = ipack + 1
   46846       391394 :          packed_data(ipack) = pack_tmp
   46847       391394 :          data_tmp = full_data(idata)
   46848       391394 :          pack_tmp = ISHFT(data_tmp, 32)
   46849       391394 :          pack_tmp = ISHFT(pack_tmp, -32)
   46850       391394 :          idata = idata + 1
   46851       391394 :          data_tmp = full_data(idata)
   46852       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46853       391394 :          data_tmp = IAND(data_tmp, mask_left(32))
   46854       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46855       391394 :          ipack = ipack + 1
   46856       391394 :          packed_data(ipack) = pack_tmp
   46857       391394 :          data_tmp = full_data(idata)
   46858       391394 :          pack_tmp = ISHFT(data_tmp, 39)
   46859       391394 :          pack_tmp = ISHFT(pack_tmp, -39)
   46860       391394 :          idata = idata + 1
   46861       391394 :          data_tmp = full_data(idata)
   46862       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46863       391394 :          data_tmp = IAND(data_tmp, mask_left(39))
   46864       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46865       391394 :          ipack = ipack + 1
   46866       391394 :          packed_data(ipack) = pack_tmp
   46867       391394 :          data_tmp = full_data(idata)
   46868       391394 :          pack_tmp = ISHFT(data_tmp, 46)
   46869       391394 :          pack_tmp = ISHFT(pack_tmp, -46)
   46870       391394 :          idata = idata + 1
   46871       391394 :          data_tmp = full_data(idata)
   46872       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46873       391394 :          data_tmp = IAND(data_tmp, mask_left(46))
   46874       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46875       391394 :          ipack = ipack + 1
   46876       391394 :          packed_data(ipack) = pack_tmp
   46877       391394 :          data_tmp = full_data(idata)
   46878       391394 :          pack_tmp = ISHFT(data_tmp, 53)
   46879       391394 :          pack_tmp = ISHFT(pack_tmp, -53)
   46880       391394 :          idata = idata + 1
   46881       391394 :          data_tmp = full_data(idata)
   46882       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46883       391394 :          data_tmp = IAND(data_tmp, mask_left(53))
   46884       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46885       391394 :          ipack = ipack + 1
   46886       391394 :          packed_data(ipack) = pack_tmp
   46887       391394 :          data_tmp = full_data(idata)
   46888       391394 :          pack_tmp = ISHFT(data_tmp, 60)
   46889       391394 :          pack_tmp = ISHFT(pack_tmp, -57)
   46890       391394 :          idata = idata + 1
   46891       391394 :          data_tmp = full_data(idata)
   46892       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46893       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46894       391394 :          pack_tmp = ISHFT(pack_tmp, -3)
   46895       391394 :          idata = idata + 1
   46896       391394 :          data_tmp = full_data(idata)
   46897       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46898       391394 :          data_tmp = IAND(data_tmp, mask_left(3))
   46899       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46900       391394 :          ipack = ipack + 1
   46901       391394 :          packed_data(ipack) = pack_tmp
   46902       391394 :          data_tmp = full_data(idata)
   46903       391394 :          pack_tmp = ISHFT(data_tmp, 10)
   46904       391394 :          pack_tmp = ISHFT(pack_tmp, -10)
   46905       391394 :          idata = idata + 1
   46906       391394 :          data_tmp = full_data(idata)
   46907       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46908       391394 :          data_tmp = IAND(data_tmp, mask_left(10))
   46909       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46910       391394 :          ipack = ipack + 1
   46911       391394 :          packed_data(ipack) = pack_tmp
   46912       391394 :          data_tmp = full_data(idata)
   46913       391394 :          pack_tmp = ISHFT(data_tmp, 17)
   46914       391394 :          pack_tmp = ISHFT(pack_tmp, -17)
   46915       391394 :          idata = idata + 1
   46916       391394 :          data_tmp = full_data(idata)
   46917       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46918       391394 :          data_tmp = IAND(data_tmp, mask_left(17))
   46919       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46920       391394 :          ipack = ipack + 1
   46921       391394 :          packed_data(ipack) = pack_tmp
   46922       391394 :          data_tmp = full_data(idata)
   46923       391394 :          pack_tmp = ISHFT(data_tmp, 24)
   46924       391394 :          pack_tmp = ISHFT(pack_tmp, -24)
   46925       391394 :          idata = idata + 1
   46926       391394 :          data_tmp = full_data(idata)
   46927       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46928       391394 :          data_tmp = IAND(data_tmp, mask_left(24))
   46929       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46930       391394 :          ipack = ipack + 1
   46931       391394 :          packed_data(ipack) = pack_tmp
   46932       391394 :          data_tmp = full_data(idata)
   46933       391394 :          pack_tmp = ISHFT(data_tmp, 31)
   46934       391394 :          pack_tmp = ISHFT(pack_tmp, -31)
   46935       391394 :          idata = idata + 1
   46936       391394 :          data_tmp = full_data(idata)
   46937       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46938       391394 :          data_tmp = IAND(data_tmp, mask_left(31))
   46939       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46940       391394 :          ipack = ipack + 1
   46941       391394 :          packed_data(ipack) = pack_tmp
   46942       391394 :          data_tmp = full_data(idata)
   46943       391394 :          pack_tmp = ISHFT(data_tmp, 38)
   46944       391394 :          pack_tmp = ISHFT(pack_tmp, -38)
   46945       391394 :          idata = idata + 1
   46946       391394 :          data_tmp = full_data(idata)
   46947       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46948       391394 :          data_tmp = IAND(data_tmp, mask_left(38))
   46949       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46950       391394 :          ipack = ipack + 1
   46951       391394 :          packed_data(ipack) = pack_tmp
   46952       391394 :          data_tmp = full_data(idata)
   46953       391394 :          pack_tmp = ISHFT(data_tmp, 45)
   46954       391394 :          pack_tmp = ISHFT(pack_tmp, -45)
   46955       391394 :          idata = idata + 1
   46956       391394 :          data_tmp = full_data(idata)
   46957       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46958       391394 :          data_tmp = IAND(data_tmp, mask_left(45))
   46959       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46960       391394 :          ipack = ipack + 1
   46961       391394 :          packed_data(ipack) = pack_tmp
   46962       391394 :          data_tmp = full_data(idata)
   46963       391394 :          pack_tmp = ISHFT(data_tmp, 52)
   46964       391394 :          pack_tmp = ISHFT(pack_tmp, -52)
   46965       391394 :          idata = idata + 1
   46966       391394 :          data_tmp = full_data(idata)
   46967       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46968       391394 :          data_tmp = IAND(data_tmp, mask_left(52))
   46969       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46970       391394 :          ipack = ipack + 1
   46971       391394 :          packed_data(ipack) = pack_tmp
   46972       391394 :          data_tmp = full_data(idata)
   46973       391394 :          pack_tmp = ISHFT(data_tmp, 59)
   46974       391394 :          pack_tmp = ISHFT(pack_tmp, -57)
   46975       391394 :          idata = idata + 1
   46976       391394 :          data_tmp = full_data(idata)
   46977       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46978       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46979       391394 :          pack_tmp = ISHFT(pack_tmp, -2)
   46980       391394 :          idata = idata + 1
   46981       391394 :          data_tmp = full_data(idata)
   46982       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46983       391394 :          data_tmp = IAND(data_tmp, mask_left(2))
   46984       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46985       391394 :          ipack = ipack + 1
   46986       391394 :          packed_data(ipack) = pack_tmp
   46987       391394 :          data_tmp = full_data(idata)
   46988       391394 :          pack_tmp = ISHFT(data_tmp, 9)
   46989       391394 :          pack_tmp = ISHFT(pack_tmp, -9)
   46990       391394 :          idata = idata + 1
   46991       391394 :          data_tmp = full_data(idata)
   46992       391394 :          data_tmp = ISHFT(data_tmp, 7)
   46993       391394 :          data_tmp = IAND(data_tmp, mask_left(9))
   46994       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   46995       391394 :          ipack = ipack + 1
   46996       391394 :          packed_data(ipack) = pack_tmp
   46997       391394 :          data_tmp = full_data(idata)
   46998       391394 :          pack_tmp = ISHFT(data_tmp, 16)
   46999       391394 :          pack_tmp = ISHFT(pack_tmp, -16)
   47000       391394 :          idata = idata + 1
   47001       391394 :          data_tmp = full_data(idata)
   47002       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47003       391394 :          data_tmp = IAND(data_tmp, mask_left(16))
   47004       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47005       391394 :          ipack = ipack + 1
   47006       391394 :          packed_data(ipack) = pack_tmp
   47007       391394 :          data_tmp = full_data(idata)
   47008       391394 :          pack_tmp = ISHFT(data_tmp, 23)
   47009       391394 :          pack_tmp = ISHFT(pack_tmp, -23)
   47010       391394 :          idata = idata + 1
   47011       391394 :          data_tmp = full_data(idata)
   47012       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47013       391394 :          data_tmp = IAND(data_tmp, mask_left(23))
   47014       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47015       391394 :          ipack = ipack + 1
   47016       391394 :          packed_data(ipack) = pack_tmp
   47017       391394 :          data_tmp = full_data(idata)
   47018       391394 :          pack_tmp = ISHFT(data_tmp, 30)
   47019       391394 :          pack_tmp = ISHFT(pack_tmp, -30)
   47020       391394 :          idata = idata + 1
   47021       391394 :          data_tmp = full_data(idata)
   47022       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47023       391394 :          data_tmp = IAND(data_tmp, mask_left(30))
   47024       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47025       391394 :          ipack = ipack + 1
   47026       391394 :          packed_data(ipack) = pack_tmp
   47027       391394 :          data_tmp = full_data(idata)
   47028       391394 :          pack_tmp = ISHFT(data_tmp, 37)
   47029       391394 :          pack_tmp = ISHFT(pack_tmp, -37)
   47030       391394 :          idata = idata + 1
   47031       391394 :          data_tmp = full_data(idata)
   47032       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47033       391394 :          data_tmp = IAND(data_tmp, mask_left(37))
   47034       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47035       391394 :          ipack = ipack + 1
   47036       391394 :          packed_data(ipack) = pack_tmp
   47037       391394 :          data_tmp = full_data(idata)
   47038       391394 :          pack_tmp = ISHFT(data_tmp, 44)
   47039       391394 :          pack_tmp = ISHFT(pack_tmp, -44)
   47040       391394 :          idata = idata + 1
   47041       391394 :          data_tmp = full_data(idata)
   47042       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47043       391394 :          data_tmp = IAND(data_tmp, mask_left(44))
   47044       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47045       391394 :          ipack = ipack + 1
   47046       391394 :          packed_data(ipack) = pack_tmp
   47047       391394 :          data_tmp = full_data(idata)
   47048       391394 :          pack_tmp = ISHFT(data_tmp, 51)
   47049       391394 :          pack_tmp = ISHFT(pack_tmp, -51)
   47050       391394 :          idata = idata + 1
   47051       391394 :          data_tmp = full_data(idata)
   47052       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47053       391394 :          data_tmp = IAND(data_tmp, mask_left(51))
   47054       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47055       391394 :          ipack = ipack + 1
   47056       391394 :          packed_data(ipack) = pack_tmp
   47057       391394 :          data_tmp = full_data(idata)
   47058       391394 :          pack_tmp = ISHFT(data_tmp, 58)
   47059       391394 :          pack_tmp = ISHFT(pack_tmp, -57)
   47060       391394 :          idata = idata + 1
   47061       391394 :          data_tmp = full_data(idata)
   47062       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47063       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47064       391394 :          pack_tmp = ISHFT(pack_tmp, -1)
   47065       391394 :          idata = idata + 1
   47066       391394 :          data_tmp = full_data(idata)
   47067       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47068       391394 :          data_tmp = IAND(data_tmp, mask_left(1))
   47069       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47070       391394 :          ipack = ipack + 1
   47071       391394 :          packed_data(ipack) = pack_tmp
   47072       391394 :          data_tmp = full_data(idata)
   47073       391394 :          pack_tmp = ISHFT(data_tmp, 8)
   47074       391394 :          pack_tmp = ISHFT(pack_tmp, -8)
   47075       391394 :          idata = idata + 1
   47076       391394 :          data_tmp = full_data(idata)
   47077       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47078       391394 :          data_tmp = IAND(data_tmp, mask_left(8))
   47079       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47080       391394 :          ipack = ipack + 1
   47081       391394 :          packed_data(ipack) = pack_tmp
   47082       391394 :          data_tmp = full_data(idata)
   47083       391394 :          pack_tmp = ISHFT(data_tmp, 15)
   47084       391394 :          pack_tmp = ISHFT(pack_tmp, -15)
   47085       391394 :          idata = idata + 1
   47086       391394 :          data_tmp = full_data(idata)
   47087       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47088       391394 :          data_tmp = IAND(data_tmp, mask_left(15))
   47089       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47090       391394 :          ipack = ipack + 1
   47091       391394 :          packed_data(ipack) = pack_tmp
   47092       391394 :          data_tmp = full_data(idata)
   47093       391394 :          pack_tmp = ISHFT(data_tmp, 22)
   47094       391394 :          pack_tmp = ISHFT(pack_tmp, -22)
   47095       391394 :          idata = idata + 1
   47096       391394 :          data_tmp = full_data(idata)
   47097       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47098       391394 :          data_tmp = IAND(data_tmp, mask_left(22))
   47099       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47100       391394 :          ipack = ipack + 1
   47101       391394 :          packed_data(ipack) = pack_tmp
   47102       391394 :          data_tmp = full_data(idata)
   47103       391394 :          pack_tmp = ISHFT(data_tmp, 29)
   47104       391394 :          pack_tmp = ISHFT(pack_tmp, -29)
   47105       391394 :          idata = idata + 1
   47106       391394 :          data_tmp = full_data(idata)
   47107       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47108       391394 :          data_tmp = IAND(data_tmp, mask_left(29))
   47109       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47110       391394 :          ipack = ipack + 1
   47111       391394 :          packed_data(ipack) = pack_tmp
   47112       391394 :          data_tmp = full_data(idata)
   47113       391394 :          pack_tmp = ISHFT(data_tmp, 36)
   47114       391394 :          pack_tmp = ISHFT(pack_tmp, -36)
   47115       391394 :          idata = idata + 1
   47116       391394 :          data_tmp = full_data(idata)
   47117       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47118       391394 :          data_tmp = IAND(data_tmp, mask_left(36))
   47119       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47120       391394 :          ipack = ipack + 1
   47121       391394 :          packed_data(ipack) = pack_tmp
   47122       391394 :          data_tmp = full_data(idata)
   47123       391394 :          pack_tmp = ISHFT(data_tmp, 43)
   47124       391394 :          pack_tmp = ISHFT(pack_tmp, -43)
   47125       391394 :          idata = idata + 1
   47126       391394 :          data_tmp = full_data(idata)
   47127       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47128       391394 :          data_tmp = IAND(data_tmp, mask_left(43))
   47129       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47130       391394 :          ipack = ipack + 1
   47131       391394 :          packed_data(ipack) = pack_tmp
   47132       391394 :          data_tmp = full_data(idata)
   47133       391394 :          pack_tmp = ISHFT(data_tmp, 50)
   47134       391394 :          pack_tmp = ISHFT(pack_tmp, -50)
   47135       391394 :          idata = idata + 1
   47136       391394 :          data_tmp = full_data(idata)
   47137       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47138       391394 :          data_tmp = IAND(data_tmp, mask_left(50))
   47139       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47140       391394 :          ipack = ipack + 1
   47141       391394 :          packed_data(ipack) = pack_tmp
   47142       391394 :          data_tmp = full_data(idata)
   47143       391394 :          pack_tmp = ISHFT(data_tmp, 57)
   47144       391394 :          pack_tmp = ISHFT(pack_tmp, -57)
   47145       391394 :          idata = idata + 1
   47146       391394 :          data_tmp = full_data(idata)
   47147       391394 :          data_tmp = ISHFT(data_tmp, 7)
   47148       391394 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47149              :          pack_tmp = ISHFT(pack_tmp, 0)
   47150       391394 :          pack_tmp = ISHFT(pack_tmp, 0)
   47151       391394 :          ipack = ipack + 1
   47152       391396 :          packed_data(ipack) = pack_tmp
   47153              :       END DO
   47154        24494 :       IF (Ndata_rep < Ndata) THEN
   47155           60 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   47156              :       END IF
   47157        24494 :    END SUBROUTINE ints2bits_57
   47158              : 
   47159              : ! **************************************************************************************************
   47160              : !> \brief ...
   47161              : !> \param Ndata ...
   47162              : !> \param packed_data ...
   47163              : !> \param full_data ...
   47164              : ! **************************************************************************************************
   47165       102007 :    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       102007 :       ipack = 0
   47176       102007 :       idata = 0
   47177       102007 :       pack_tmp = 0
   47178       102007 :       Ndata_rep = (Ndata/64)*64
   47179       102007 :       DO kdata = 1, Ndata_rep, 64
   47180      1603042 :          idata = idata + 1
   47181      1603042 :          data_tmp = ISHFT(pack_tmp, 57)
   47182      1603042 :          ipack = ipack + 1
   47183      1603042 :          pack_tmp = packed_data(ipack)
   47184      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   47185      1603042 :          pack_tmp = ISHFT(pack_tmp, -57)
   47186      1603042 :          idata = idata + 1
   47187      1603042 :          data_tmp = ISHFT(pack_tmp, 50)
   47188      1603042 :          ipack = ipack + 1
   47189      1603042 :          pack_tmp = packed_data(ipack)
   47190      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   47191      1603042 :          pack_tmp = ISHFT(pack_tmp, -50)
   47192      1603042 :          idata = idata + 1
   47193      1603042 :          data_tmp = ISHFT(pack_tmp, 43)
   47194      1603042 :          ipack = ipack + 1
   47195      1603042 :          pack_tmp = packed_data(ipack)
   47196      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   47197      1603042 :          pack_tmp = ISHFT(pack_tmp, -43)
   47198      1603042 :          idata = idata + 1
   47199      1603042 :          data_tmp = ISHFT(pack_tmp, 36)
   47200      1603042 :          ipack = ipack + 1
   47201      1603042 :          pack_tmp = packed_data(ipack)
   47202      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   47203      1603042 :          pack_tmp = ISHFT(pack_tmp, -36)
   47204      1603042 :          idata = idata + 1
   47205      1603042 :          data_tmp = ISHFT(pack_tmp, 29)
   47206      1603042 :          ipack = ipack + 1
   47207      1603042 :          pack_tmp = packed_data(ipack)
   47208      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   47209      1603042 :          pack_tmp = ISHFT(pack_tmp, -29)
   47210      1603042 :          idata = idata + 1
   47211      1603042 :          data_tmp = ISHFT(pack_tmp, 22)
   47212      1603042 :          ipack = ipack + 1
   47213      1603042 :          pack_tmp = packed_data(ipack)
   47214      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   47215      1603042 :          pack_tmp = ISHFT(pack_tmp, -22)
   47216      1603042 :          idata = idata + 1
   47217      1603042 :          data_tmp = ISHFT(pack_tmp, 15)
   47218      1603042 :          ipack = ipack + 1
   47219      1603042 :          pack_tmp = packed_data(ipack)
   47220      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   47221      1603042 :          pack_tmp = ISHFT(pack_tmp, -15)
   47222      1603042 :          idata = idata + 1
   47223      1603042 :          data_tmp = ISHFT(pack_tmp, 8)
   47224      1603042 :          ipack = ipack + 1
   47225      1603042 :          pack_tmp = packed_data(ipack)
   47226      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   47227      1603042 :          pack_tmp = ISHFT(pack_tmp, -8)
   47228      1603042 :          idata = idata + 1
   47229      1603042 :          data_tmp = ISHFT(pack_tmp, 1)
   47230      1603042 :          ipack = ipack + 1
   47231      1603042 :          pack_tmp = packed_data(ipack)
   47232      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   47233      1603042 :          pack_tmp = ISHFT(pack_tmp, -1)
   47234      1603042 :          idata = idata + 1
   47235      1603042 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47236      1603042 :          full_data(idata) = data_tmp
   47237      1603042 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47238      1603042 :          idata = idata + 1
   47239      1603042 :          data_tmp = ISHFT(pack_tmp, 51)
   47240      1603042 :          ipack = ipack + 1
   47241      1603042 :          pack_tmp = packed_data(ipack)
   47242      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   47243      1603042 :          pack_tmp = ISHFT(pack_tmp, -51)
   47244      1603042 :          idata = idata + 1
   47245      1603042 :          data_tmp = ISHFT(pack_tmp, 44)
   47246      1603042 :          ipack = ipack + 1
   47247      1603042 :          pack_tmp = packed_data(ipack)
   47248      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   47249      1603042 :          pack_tmp = ISHFT(pack_tmp, -44)
   47250      1603042 :          idata = idata + 1
   47251      1603042 :          data_tmp = ISHFT(pack_tmp, 37)
   47252      1603042 :          ipack = ipack + 1
   47253      1603042 :          pack_tmp = packed_data(ipack)
   47254      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   47255      1603042 :          pack_tmp = ISHFT(pack_tmp, -37)
   47256      1603042 :          idata = idata + 1
   47257      1603042 :          data_tmp = ISHFT(pack_tmp, 30)
   47258      1603042 :          ipack = ipack + 1
   47259      1603042 :          pack_tmp = packed_data(ipack)
   47260      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   47261      1603042 :          pack_tmp = ISHFT(pack_tmp, -30)
   47262      1603042 :          idata = idata + 1
   47263      1603042 :          data_tmp = ISHFT(pack_tmp, 23)
   47264      1603042 :          ipack = ipack + 1
   47265      1603042 :          pack_tmp = packed_data(ipack)
   47266      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   47267      1603042 :          pack_tmp = ISHFT(pack_tmp, -23)
   47268      1603042 :          idata = idata + 1
   47269      1603042 :          data_tmp = ISHFT(pack_tmp, 16)
   47270      1603042 :          ipack = ipack + 1
   47271      1603042 :          pack_tmp = packed_data(ipack)
   47272      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   47273      1603042 :          pack_tmp = ISHFT(pack_tmp, -16)
   47274      1603042 :          idata = idata + 1
   47275      1603042 :          data_tmp = ISHFT(pack_tmp, 9)
   47276      1603042 :          ipack = ipack + 1
   47277      1603042 :          pack_tmp = packed_data(ipack)
   47278      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   47279      1603042 :          pack_tmp = ISHFT(pack_tmp, -9)
   47280      1603042 :          idata = idata + 1
   47281      1603042 :          data_tmp = ISHFT(pack_tmp, 2)
   47282      1603042 :          ipack = ipack + 1
   47283      1603042 :          pack_tmp = packed_data(ipack)
   47284      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   47285      1603042 :          pack_tmp = ISHFT(pack_tmp, -2)
   47286      1603042 :          idata = idata + 1
   47287      1603042 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47288      1603042 :          full_data(idata) = data_tmp
   47289      1603042 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47290      1603042 :          idata = idata + 1
   47291      1603042 :          data_tmp = ISHFT(pack_tmp, 52)
   47292      1603042 :          ipack = ipack + 1
   47293      1603042 :          pack_tmp = packed_data(ipack)
   47294      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   47295      1603042 :          pack_tmp = ISHFT(pack_tmp, -52)
   47296      1603042 :          idata = idata + 1
   47297      1603042 :          data_tmp = ISHFT(pack_tmp, 45)
   47298      1603042 :          ipack = ipack + 1
   47299      1603042 :          pack_tmp = packed_data(ipack)
   47300      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   47301      1603042 :          pack_tmp = ISHFT(pack_tmp, -45)
   47302      1603042 :          idata = idata + 1
   47303      1603042 :          data_tmp = ISHFT(pack_tmp, 38)
   47304      1603042 :          ipack = ipack + 1
   47305      1603042 :          pack_tmp = packed_data(ipack)
   47306      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   47307      1603042 :          pack_tmp = ISHFT(pack_tmp, -38)
   47308      1603042 :          idata = idata + 1
   47309      1603042 :          data_tmp = ISHFT(pack_tmp, 31)
   47310      1603042 :          ipack = ipack + 1
   47311      1603042 :          pack_tmp = packed_data(ipack)
   47312      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   47313      1603042 :          pack_tmp = ISHFT(pack_tmp, -31)
   47314      1603042 :          idata = idata + 1
   47315      1603042 :          data_tmp = ISHFT(pack_tmp, 24)
   47316      1603042 :          ipack = ipack + 1
   47317      1603042 :          pack_tmp = packed_data(ipack)
   47318      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   47319      1603042 :          pack_tmp = ISHFT(pack_tmp, -24)
   47320      1603042 :          idata = idata + 1
   47321      1603042 :          data_tmp = ISHFT(pack_tmp, 17)
   47322      1603042 :          ipack = ipack + 1
   47323      1603042 :          pack_tmp = packed_data(ipack)
   47324      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   47325      1603042 :          pack_tmp = ISHFT(pack_tmp, -17)
   47326      1603042 :          idata = idata + 1
   47327      1603042 :          data_tmp = ISHFT(pack_tmp, 10)
   47328      1603042 :          ipack = ipack + 1
   47329      1603042 :          pack_tmp = packed_data(ipack)
   47330      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   47331      1603042 :          pack_tmp = ISHFT(pack_tmp, -10)
   47332      1603042 :          idata = idata + 1
   47333      1603042 :          data_tmp = ISHFT(pack_tmp, 3)
   47334      1603042 :          ipack = ipack + 1
   47335      1603042 :          pack_tmp = packed_data(ipack)
   47336      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   47337      1603042 :          pack_tmp = ISHFT(pack_tmp, -3)
   47338      1603042 :          idata = idata + 1
   47339      1603042 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47340      1603042 :          full_data(idata) = data_tmp
   47341      1603042 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47342      1603042 :          idata = idata + 1
   47343      1603042 :          data_tmp = ISHFT(pack_tmp, 53)
   47344      1603042 :          ipack = ipack + 1
   47345      1603042 :          pack_tmp = packed_data(ipack)
   47346      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   47347      1603042 :          pack_tmp = ISHFT(pack_tmp, -53)
   47348      1603042 :          idata = idata + 1
   47349      1603042 :          data_tmp = ISHFT(pack_tmp, 46)
   47350      1603042 :          ipack = ipack + 1
   47351      1603042 :          pack_tmp = packed_data(ipack)
   47352      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   47353      1603042 :          pack_tmp = ISHFT(pack_tmp, -46)
   47354      1603042 :          idata = idata + 1
   47355      1603042 :          data_tmp = ISHFT(pack_tmp, 39)
   47356      1603042 :          ipack = ipack + 1
   47357      1603042 :          pack_tmp = packed_data(ipack)
   47358      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   47359      1603042 :          pack_tmp = ISHFT(pack_tmp, -39)
   47360      1603042 :          idata = idata + 1
   47361      1603042 :          data_tmp = ISHFT(pack_tmp, 32)
   47362      1603042 :          ipack = ipack + 1
   47363      1603042 :          pack_tmp = packed_data(ipack)
   47364      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   47365      1603042 :          pack_tmp = ISHFT(pack_tmp, -32)
   47366      1603042 :          idata = idata + 1
   47367      1603042 :          data_tmp = ISHFT(pack_tmp, 25)
   47368      1603042 :          ipack = ipack + 1
   47369      1603042 :          pack_tmp = packed_data(ipack)
   47370      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   47371      1603042 :          pack_tmp = ISHFT(pack_tmp, -25)
   47372      1603042 :          idata = idata + 1
   47373      1603042 :          data_tmp = ISHFT(pack_tmp, 18)
   47374      1603042 :          ipack = ipack + 1
   47375      1603042 :          pack_tmp = packed_data(ipack)
   47376      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   47377      1603042 :          pack_tmp = ISHFT(pack_tmp, -18)
   47378      1603042 :          idata = idata + 1
   47379      1603042 :          data_tmp = ISHFT(pack_tmp, 11)
   47380      1603042 :          ipack = ipack + 1
   47381      1603042 :          pack_tmp = packed_data(ipack)
   47382      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   47383      1603042 :          pack_tmp = ISHFT(pack_tmp, -11)
   47384      1603042 :          idata = idata + 1
   47385      1603042 :          data_tmp = ISHFT(pack_tmp, 4)
   47386      1603042 :          ipack = ipack + 1
   47387      1603042 :          pack_tmp = packed_data(ipack)
   47388      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   47389      1603042 :          pack_tmp = ISHFT(pack_tmp, -4)
   47390      1603042 :          idata = idata + 1
   47391      1603042 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47392      1603042 :          full_data(idata) = data_tmp
   47393      1603042 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47394      1603042 :          idata = idata + 1
   47395      1603042 :          data_tmp = ISHFT(pack_tmp, 54)
   47396      1603042 :          ipack = ipack + 1
   47397      1603042 :          pack_tmp = packed_data(ipack)
   47398      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   47399      1603042 :          pack_tmp = ISHFT(pack_tmp, -54)
   47400      1603042 :          idata = idata + 1
   47401      1603042 :          data_tmp = ISHFT(pack_tmp, 47)
   47402      1603042 :          ipack = ipack + 1
   47403      1603042 :          pack_tmp = packed_data(ipack)
   47404      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   47405      1603042 :          pack_tmp = ISHFT(pack_tmp, -47)
   47406      1603042 :          idata = idata + 1
   47407      1603042 :          data_tmp = ISHFT(pack_tmp, 40)
   47408      1603042 :          ipack = ipack + 1
   47409      1603042 :          pack_tmp = packed_data(ipack)
   47410      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   47411      1603042 :          pack_tmp = ISHFT(pack_tmp, -40)
   47412      1603042 :          idata = idata + 1
   47413      1603042 :          data_tmp = ISHFT(pack_tmp, 33)
   47414      1603042 :          ipack = ipack + 1
   47415      1603042 :          pack_tmp = packed_data(ipack)
   47416      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   47417      1603042 :          pack_tmp = ISHFT(pack_tmp, -33)
   47418      1603042 :          idata = idata + 1
   47419      1603042 :          data_tmp = ISHFT(pack_tmp, 26)
   47420      1603042 :          ipack = ipack + 1
   47421      1603042 :          pack_tmp = packed_data(ipack)
   47422      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   47423      1603042 :          pack_tmp = ISHFT(pack_tmp, -26)
   47424      1603042 :          idata = idata + 1
   47425      1603042 :          data_tmp = ISHFT(pack_tmp, 19)
   47426      1603042 :          ipack = ipack + 1
   47427      1603042 :          pack_tmp = packed_data(ipack)
   47428      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   47429      1603042 :          pack_tmp = ISHFT(pack_tmp, -19)
   47430      1603042 :          idata = idata + 1
   47431      1603042 :          data_tmp = ISHFT(pack_tmp, 12)
   47432      1603042 :          ipack = ipack + 1
   47433      1603042 :          pack_tmp = packed_data(ipack)
   47434      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   47435      1603042 :          pack_tmp = ISHFT(pack_tmp, -12)
   47436      1603042 :          idata = idata + 1
   47437      1603042 :          data_tmp = ISHFT(pack_tmp, 5)
   47438      1603042 :          ipack = ipack + 1
   47439      1603042 :          pack_tmp = packed_data(ipack)
   47440      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   47441      1603042 :          pack_tmp = ISHFT(pack_tmp, -5)
   47442      1603042 :          idata = idata + 1
   47443      1603042 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47444      1603042 :          full_data(idata) = data_tmp
   47445      1603042 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47446      1603042 :          idata = idata + 1
   47447      1603042 :          data_tmp = ISHFT(pack_tmp, 55)
   47448      1603042 :          ipack = ipack + 1
   47449      1603042 :          pack_tmp = packed_data(ipack)
   47450      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   47451      1603042 :          pack_tmp = ISHFT(pack_tmp, -55)
   47452      1603042 :          idata = idata + 1
   47453      1603042 :          data_tmp = ISHFT(pack_tmp, 48)
   47454      1603042 :          ipack = ipack + 1
   47455      1603042 :          pack_tmp = packed_data(ipack)
   47456      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   47457      1603042 :          pack_tmp = ISHFT(pack_tmp, -48)
   47458      1603042 :          idata = idata + 1
   47459      1603042 :          data_tmp = ISHFT(pack_tmp, 41)
   47460      1603042 :          ipack = ipack + 1
   47461      1603042 :          pack_tmp = packed_data(ipack)
   47462      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   47463      1603042 :          pack_tmp = ISHFT(pack_tmp, -41)
   47464      1603042 :          idata = idata + 1
   47465      1603042 :          data_tmp = ISHFT(pack_tmp, 34)
   47466      1603042 :          ipack = ipack + 1
   47467      1603042 :          pack_tmp = packed_data(ipack)
   47468      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   47469      1603042 :          pack_tmp = ISHFT(pack_tmp, -34)
   47470      1603042 :          idata = idata + 1
   47471      1603042 :          data_tmp = ISHFT(pack_tmp, 27)
   47472      1603042 :          ipack = ipack + 1
   47473      1603042 :          pack_tmp = packed_data(ipack)
   47474      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   47475      1603042 :          pack_tmp = ISHFT(pack_tmp, -27)
   47476      1603042 :          idata = idata + 1
   47477      1603042 :          data_tmp = ISHFT(pack_tmp, 20)
   47478      1603042 :          ipack = ipack + 1
   47479      1603042 :          pack_tmp = packed_data(ipack)
   47480      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   47481      1603042 :          pack_tmp = ISHFT(pack_tmp, -20)
   47482      1603042 :          idata = idata + 1
   47483      1603042 :          data_tmp = ISHFT(pack_tmp, 13)
   47484      1603042 :          ipack = ipack + 1
   47485      1603042 :          pack_tmp = packed_data(ipack)
   47486      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   47487      1603042 :          pack_tmp = ISHFT(pack_tmp, -13)
   47488      1603042 :          idata = idata + 1
   47489      1603042 :          data_tmp = ISHFT(pack_tmp, 6)
   47490      1603042 :          ipack = ipack + 1
   47491      1603042 :          pack_tmp = packed_data(ipack)
   47492      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   47493      1603042 :          pack_tmp = ISHFT(pack_tmp, -6)
   47494      1603042 :          idata = idata + 1
   47495      1603042 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47496      1603042 :          full_data(idata) = data_tmp
   47497      1603042 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47498      1603042 :          idata = idata + 1
   47499      1603042 :          data_tmp = ISHFT(pack_tmp, 56)
   47500      1603042 :          ipack = ipack + 1
   47501      1603042 :          pack_tmp = packed_data(ipack)
   47502      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   47503      1603042 :          pack_tmp = ISHFT(pack_tmp, -56)
   47504      1603042 :          idata = idata + 1
   47505      1603042 :          data_tmp = ISHFT(pack_tmp, 49)
   47506      1603042 :          ipack = ipack + 1
   47507      1603042 :          pack_tmp = packed_data(ipack)
   47508      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   47509      1603042 :          pack_tmp = ISHFT(pack_tmp, -49)
   47510      1603042 :          idata = idata + 1
   47511      1603042 :          data_tmp = ISHFT(pack_tmp, 42)
   47512      1603042 :          ipack = ipack + 1
   47513      1603042 :          pack_tmp = packed_data(ipack)
   47514      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   47515      1603042 :          pack_tmp = ISHFT(pack_tmp, -42)
   47516      1603042 :          idata = idata + 1
   47517      1603042 :          data_tmp = ISHFT(pack_tmp, 35)
   47518      1603042 :          ipack = ipack + 1
   47519      1603042 :          pack_tmp = packed_data(ipack)
   47520      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   47521      1603042 :          pack_tmp = ISHFT(pack_tmp, -35)
   47522      1603042 :          idata = idata + 1
   47523      1603042 :          data_tmp = ISHFT(pack_tmp, 28)
   47524      1603042 :          ipack = ipack + 1
   47525      1603042 :          pack_tmp = packed_data(ipack)
   47526      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   47527      1603042 :          pack_tmp = ISHFT(pack_tmp, -28)
   47528      1603042 :          idata = idata + 1
   47529      1603042 :          data_tmp = ISHFT(pack_tmp, 21)
   47530      1603042 :          ipack = ipack + 1
   47531      1603042 :          pack_tmp = packed_data(ipack)
   47532      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   47533      1603042 :          pack_tmp = ISHFT(pack_tmp, -21)
   47534      1603042 :          idata = idata + 1
   47535      1603042 :          data_tmp = ISHFT(pack_tmp, 14)
   47536      1603042 :          ipack = ipack + 1
   47537      1603042 :          pack_tmp = packed_data(ipack)
   47538      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   47539      1603042 :          pack_tmp = ISHFT(pack_tmp, -14)
   47540      1603042 :          idata = idata + 1
   47541      1603042 :          data_tmp = ISHFT(pack_tmp, 7)
   47542      1603042 :          ipack = ipack + 1
   47543      1603042 :          pack_tmp = packed_data(ipack)
   47544      1603042 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   47545      1603042 :          pack_tmp = ISHFT(pack_tmp, -7)
   47546      1603042 :          idata = idata + 1
   47547      1603042 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   47548      1603042 :          full_data(idata) = data_tmp
   47549      1603164 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   47550              :       END DO
   47551       102007 :       IF (Ndata_rep < Ndata) THEN
   47552         3420 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   47553              :       END IF
   47554       102007 :    END SUBROUTINE bits2ints_57
   47555              : 
   47556              : ! **************************************************************************************************
   47557              : !> \brief ...
   47558              : !> \param Ndata ...
   47559              : !> \param packed_data ...
   47560              : !> \param full_data ...
   47561              : ! **************************************************************************************************
   47562        24456 :    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        24456 :       idata = 0
   47573        24456 :       ipack = 0
   47574        24456 :       Ndata_rep = (Ndata/64)*64
   47575        24456 :       DO kdata = 1, Ndata_rep, 64
   47576       391092 :          pack_tmp = 0
   47577       391092 :          idata = idata + 1
   47578       391092 :          data_tmp = full_data(idata)
   47579       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47580       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47581       391092 :          pack_tmp = ISHFT(pack_tmp, -6)
   47582       391092 :          idata = idata + 1
   47583       391092 :          data_tmp = full_data(idata)
   47584       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47585       391092 :          data_tmp = IAND(data_tmp, mask_left(6))
   47586       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47587       391092 :          ipack = ipack + 1
   47588       391092 :          packed_data(ipack) = pack_tmp
   47589       391092 :          data_tmp = full_data(idata)
   47590       391092 :          pack_tmp = ISHFT(data_tmp, 12)
   47591       391092 :          pack_tmp = ISHFT(pack_tmp, -12)
   47592       391092 :          idata = idata + 1
   47593       391092 :          data_tmp = full_data(idata)
   47594       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47595       391092 :          data_tmp = IAND(data_tmp, mask_left(12))
   47596       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47597       391092 :          ipack = ipack + 1
   47598       391092 :          packed_data(ipack) = pack_tmp
   47599       391092 :          data_tmp = full_data(idata)
   47600       391092 :          pack_tmp = ISHFT(data_tmp, 18)
   47601       391092 :          pack_tmp = ISHFT(pack_tmp, -18)
   47602       391092 :          idata = idata + 1
   47603       391092 :          data_tmp = full_data(idata)
   47604       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47605       391092 :          data_tmp = IAND(data_tmp, mask_left(18))
   47606       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47607       391092 :          ipack = ipack + 1
   47608       391092 :          packed_data(ipack) = pack_tmp
   47609       391092 :          data_tmp = full_data(idata)
   47610       391092 :          pack_tmp = ISHFT(data_tmp, 24)
   47611       391092 :          pack_tmp = ISHFT(pack_tmp, -24)
   47612       391092 :          idata = idata + 1
   47613       391092 :          data_tmp = full_data(idata)
   47614       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47615       391092 :          data_tmp = IAND(data_tmp, mask_left(24))
   47616       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47617       391092 :          ipack = ipack + 1
   47618       391092 :          packed_data(ipack) = pack_tmp
   47619       391092 :          data_tmp = full_data(idata)
   47620       391092 :          pack_tmp = ISHFT(data_tmp, 30)
   47621       391092 :          pack_tmp = ISHFT(pack_tmp, -30)
   47622       391092 :          idata = idata + 1
   47623       391092 :          data_tmp = full_data(idata)
   47624       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47625       391092 :          data_tmp = IAND(data_tmp, mask_left(30))
   47626       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47627       391092 :          ipack = ipack + 1
   47628       391092 :          packed_data(ipack) = pack_tmp
   47629       391092 :          data_tmp = full_data(idata)
   47630       391092 :          pack_tmp = ISHFT(data_tmp, 36)
   47631       391092 :          pack_tmp = ISHFT(pack_tmp, -36)
   47632       391092 :          idata = idata + 1
   47633       391092 :          data_tmp = full_data(idata)
   47634       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47635       391092 :          data_tmp = IAND(data_tmp, mask_left(36))
   47636       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47637       391092 :          ipack = ipack + 1
   47638       391092 :          packed_data(ipack) = pack_tmp
   47639       391092 :          data_tmp = full_data(idata)
   47640       391092 :          pack_tmp = ISHFT(data_tmp, 42)
   47641       391092 :          pack_tmp = ISHFT(pack_tmp, -42)
   47642       391092 :          idata = idata + 1
   47643       391092 :          data_tmp = full_data(idata)
   47644       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47645       391092 :          data_tmp = IAND(data_tmp, mask_left(42))
   47646       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47647       391092 :          ipack = ipack + 1
   47648       391092 :          packed_data(ipack) = pack_tmp
   47649       391092 :          data_tmp = full_data(idata)
   47650       391092 :          pack_tmp = ISHFT(data_tmp, 48)
   47651       391092 :          pack_tmp = ISHFT(pack_tmp, -48)
   47652       391092 :          idata = idata + 1
   47653       391092 :          data_tmp = full_data(idata)
   47654       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47655       391092 :          data_tmp = IAND(data_tmp, mask_left(48))
   47656       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47657       391092 :          ipack = ipack + 1
   47658       391092 :          packed_data(ipack) = pack_tmp
   47659       391092 :          data_tmp = full_data(idata)
   47660       391092 :          pack_tmp = ISHFT(data_tmp, 54)
   47661       391092 :          pack_tmp = ISHFT(pack_tmp, -54)
   47662       391092 :          idata = idata + 1
   47663       391092 :          data_tmp = full_data(idata)
   47664       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47665       391092 :          data_tmp = IAND(data_tmp, mask_left(54))
   47666       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47667       391092 :          ipack = ipack + 1
   47668       391092 :          packed_data(ipack) = pack_tmp
   47669       391092 :          data_tmp = full_data(idata)
   47670       391092 :          pack_tmp = ISHFT(data_tmp, 60)
   47671       391092 :          pack_tmp = ISHFT(pack_tmp, -58)
   47672       391092 :          idata = idata + 1
   47673       391092 :          data_tmp = full_data(idata)
   47674       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47675       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47676       391092 :          pack_tmp = ISHFT(pack_tmp, -2)
   47677       391092 :          idata = idata + 1
   47678       391092 :          data_tmp = full_data(idata)
   47679       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47680       391092 :          data_tmp = IAND(data_tmp, mask_left(2))
   47681       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47682       391092 :          ipack = ipack + 1
   47683       391092 :          packed_data(ipack) = pack_tmp
   47684       391092 :          data_tmp = full_data(idata)
   47685       391092 :          pack_tmp = ISHFT(data_tmp, 8)
   47686       391092 :          pack_tmp = ISHFT(pack_tmp, -8)
   47687       391092 :          idata = idata + 1
   47688       391092 :          data_tmp = full_data(idata)
   47689       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47690       391092 :          data_tmp = IAND(data_tmp, mask_left(8))
   47691       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47692       391092 :          ipack = ipack + 1
   47693       391092 :          packed_data(ipack) = pack_tmp
   47694       391092 :          data_tmp = full_data(idata)
   47695       391092 :          pack_tmp = ISHFT(data_tmp, 14)
   47696       391092 :          pack_tmp = ISHFT(pack_tmp, -14)
   47697       391092 :          idata = idata + 1
   47698       391092 :          data_tmp = full_data(idata)
   47699       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47700       391092 :          data_tmp = IAND(data_tmp, mask_left(14))
   47701       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47702       391092 :          ipack = ipack + 1
   47703       391092 :          packed_data(ipack) = pack_tmp
   47704       391092 :          data_tmp = full_data(idata)
   47705       391092 :          pack_tmp = ISHFT(data_tmp, 20)
   47706       391092 :          pack_tmp = ISHFT(pack_tmp, -20)
   47707       391092 :          idata = idata + 1
   47708       391092 :          data_tmp = full_data(idata)
   47709       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47710       391092 :          data_tmp = IAND(data_tmp, mask_left(20))
   47711       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47712       391092 :          ipack = ipack + 1
   47713       391092 :          packed_data(ipack) = pack_tmp
   47714       391092 :          data_tmp = full_data(idata)
   47715       391092 :          pack_tmp = ISHFT(data_tmp, 26)
   47716       391092 :          pack_tmp = ISHFT(pack_tmp, -26)
   47717       391092 :          idata = idata + 1
   47718       391092 :          data_tmp = full_data(idata)
   47719       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47720       391092 :          data_tmp = IAND(data_tmp, mask_left(26))
   47721       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47722       391092 :          ipack = ipack + 1
   47723       391092 :          packed_data(ipack) = pack_tmp
   47724       391092 :          data_tmp = full_data(idata)
   47725       391092 :          pack_tmp = ISHFT(data_tmp, 32)
   47726       391092 :          pack_tmp = ISHFT(pack_tmp, -32)
   47727       391092 :          idata = idata + 1
   47728       391092 :          data_tmp = full_data(idata)
   47729       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47730       391092 :          data_tmp = IAND(data_tmp, mask_left(32))
   47731       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47732       391092 :          ipack = ipack + 1
   47733       391092 :          packed_data(ipack) = pack_tmp
   47734       391092 :          data_tmp = full_data(idata)
   47735       391092 :          pack_tmp = ISHFT(data_tmp, 38)
   47736       391092 :          pack_tmp = ISHFT(pack_tmp, -38)
   47737       391092 :          idata = idata + 1
   47738       391092 :          data_tmp = full_data(idata)
   47739       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47740       391092 :          data_tmp = IAND(data_tmp, mask_left(38))
   47741       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47742       391092 :          ipack = ipack + 1
   47743       391092 :          packed_data(ipack) = pack_tmp
   47744       391092 :          data_tmp = full_data(idata)
   47745       391092 :          pack_tmp = ISHFT(data_tmp, 44)
   47746       391092 :          pack_tmp = ISHFT(pack_tmp, -44)
   47747       391092 :          idata = idata + 1
   47748       391092 :          data_tmp = full_data(idata)
   47749       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47750       391092 :          data_tmp = IAND(data_tmp, mask_left(44))
   47751       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47752       391092 :          ipack = ipack + 1
   47753       391092 :          packed_data(ipack) = pack_tmp
   47754       391092 :          data_tmp = full_data(idata)
   47755       391092 :          pack_tmp = ISHFT(data_tmp, 50)
   47756       391092 :          pack_tmp = ISHFT(pack_tmp, -50)
   47757       391092 :          idata = idata + 1
   47758       391092 :          data_tmp = full_data(idata)
   47759       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47760       391092 :          data_tmp = IAND(data_tmp, mask_left(50))
   47761       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47762       391092 :          ipack = ipack + 1
   47763       391092 :          packed_data(ipack) = pack_tmp
   47764       391092 :          data_tmp = full_data(idata)
   47765       391092 :          pack_tmp = ISHFT(data_tmp, 56)
   47766       391092 :          pack_tmp = ISHFT(pack_tmp, -56)
   47767       391092 :          idata = idata + 1
   47768       391092 :          data_tmp = full_data(idata)
   47769       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47770       391092 :          data_tmp = IAND(data_tmp, mask_left(56))
   47771       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47772       391092 :          ipack = ipack + 1
   47773       391092 :          packed_data(ipack) = pack_tmp
   47774       391092 :          data_tmp = full_data(idata)
   47775       391092 :          pack_tmp = ISHFT(data_tmp, 62)
   47776       391092 :          pack_tmp = ISHFT(pack_tmp, -58)
   47777       391092 :          idata = idata + 1
   47778       391092 :          data_tmp = full_data(idata)
   47779       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47780       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47781       391092 :          pack_tmp = ISHFT(pack_tmp, -4)
   47782       391092 :          idata = idata + 1
   47783       391092 :          data_tmp = full_data(idata)
   47784       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47785       391092 :          data_tmp = IAND(data_tmp, mask_left(4))
   47786       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47787       391092 :          ipack = ipack + 1
   47788       391092 :          packed_data(ipack) = pack_tmp
   47789       391092 :          data_tmp = full_data(idata)
   47790       391092 :          pack_tmp = ISHFT(data_tmp, 10)
   47791       391092 :          pack_tmp = ISHFT(pack_tmp, -10)
   47792       391092 :          idata = idata + 1
   47793       391092 :          data_tmp = full_data(idata)
   47794       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47795       391092 :          data_tmp = IAND(data_tmp, mask_left(10))
   47796       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47797       391092 :          ipack = ipack + 1
   47798       391092 :          packed_data(ipack) = pack_tmp
   47799       391092 :          data_tmp = full_data(idata)
   47800       391092 :          pack_tmp = ISHFT(data_tmp, 16)
   47801       391092 :          pack_tmp = ISHFT(pack_tmp, -16)
   47802       391092 :          idata = idata + 1
   47803       391092 :          data_tmp = full_data(idata)
   47804       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47805       391092 :          data_tmp = IAND(data_tmp, mask_left(16))
   47806       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47807       391092 :          ipack = ipack + 1
   47808       391092 :          packed_data(ipack) = pack_tmp
   47809       391092 :          data_tmp = full_data(idata)
   47810       391092 :          pack_tmp = ISHFT(data_tmp, 22)
   47811       391092 :          pack_tmp = ISHFT(pack_tmp, -22)
   47812       391092 :          idata = idata + 1
   47813       391092 :          data_tmp = full_data(idata)
   47814       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47815       391092 :          data_tmp = IAND(data_tmp, mask_left(22))
   47816       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47817       391092 :          ipack = ipack + 1
   47818       391092 :          packed_data(ipack) = pack_tmp
   47819       391092 :          data_tmp = full_data(idata)
   47820       391092 :          pack_tmp = ISHFT(data_tmp, 28)
   47821       391092 :          pack_tmp = ISHFT(pack_tmp, -28)
   47822       391092 :          idata = idata + 1
   47823       391092 :          data_tmp = full_data(idata)
   47824       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47825       391092 :          data_tmp = IAND(data_tmp, mask_left(28))
   47826       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47827       391092 :          ipack = ipack + 1
   47828       391092 :          packed_data(ipack) = pack_tmp
   47829       391092 :          data_tmp = full_data(idata)
   47830       391092 :          pack_tmp = ISHFT(data_tmp, 34)
   47831       391092 :          pack_tmp = ISHFT(pack_tmp, -34)
   47832       391092 :          idata = idata + 1
   47833       391092 :          data_tmp = full_data(idata)
   47834       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47835       391092 :          data_tmp = IAND(data_tmp, mask_left(34))
   47836       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47837       391092 :          ipack = ipack + 1
   47838       391092 :          packed_data(ipack) = pack_tmp
   47839       391092 :          data_tmp = full_data(idata)
   47840       391092 :          pack_tmp = ISHFT(data_tmp, 40)
   47841       391092 :          pack_tmp = ISHFT(pack_tmp, -40)
   47842       391092 :          idata = idata + 1
   47843       391092 :          data_tmp = full_data(idata)
   47844       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47845       391092 :          data_tmp = IAND(data_tmp, mask_left(40))
   47846       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47847       391092 :          ipack = ipack + 1
   47848       391092 :          packed_data(ipack) = pack_tmp
   47849       391092 :          data_tmp = full_data(idata)
   47850       391092 :          pack_tmp = ISHFT(data_tmp, 46)
   47851       391092 :          pack_tmp = ISHFT(pack_tmp, -46)
   47852       391092 :          idata = idata + 1
   47853       391092 :          data_tmp = full_data(idata)
   47854       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47855       391092 :          data_tmp = IAND(data_tmp, mask_left(46))
   47856       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47857       391092 :          ipack = ipack + 1
   47858       391092 :          packed_data(ipack) = pack_tmp
   47859       391092 :          data_tmp = full_data(idata)
   47860       391092 :          pack_tmp = ISHFT(data_tmp, 52)
   47861       391092 :          pack_tmp = ISHFT(pack_tmp, -52)
   47862       391092 :          idata = idata + 1
   47863       391092 :          data_tmp = full_data(idata)
   47864       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47865       391092 :          data_tmp = IAND(data_tmp, mask_left(52))
   47866       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47867       391092 :          ipack = ipack + 1
   47868       391092 :          packed_data(ipack) = pack_tmp
   47869       391092 :          data_tmp = full_data(idata)
   47870       391092 :          pack_tmp = ISHFT(data_tmp, 58)
   47871       391092 :          pack_tmp = ISHFT(pack_tmp, -58)
   47872       391092 :          idata = idata + 1
   47873       391092 :          data_tmp = full_data(idata)
   47874       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47875       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47876       391092 :          pack_tmp = ISHFT(pack_tmp, 0)
   47877       391092 :          idata = idata + 1
   47878       391092 :          data_tmp = full_data(idata)
   47879              :          data_tmp = ISHFT(data_tmp, 6)
   47880       391092 :          data_tmp = IAND(data_tmp, mask_left(0))
   47881       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47882       391092 :          ipack = ipack + 1
   47883       391092 :          packed_data(ipack) = pack_tmp
   47884       391092 :          data_tmp = full_data(idata)
   47885       391092 :          pack_tmp = ISHFT(data_tmp, 6)
   47886       391092 :          pack_tmp = ISHFT(pack_tmp, -6)
   47887       391092 :          idata = idata + 1
   47888       391092 :          data_tmp = full_data(idata)
   47889       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47890       391092 :          data_tmp = IAND(data_tmp, mask_left(6))
   47891       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47892       391092 :          ipack = ipack + 1
   47893       391092 :          packed_data(ipack) = pack_tmp
   47894       391092 :          data_tmp = full_data(idata)
   47895       391092 :          pack_tmp = ISHFT(data_tmp, 12)
   47896       391092 :          pack_tmp = ISHFT(pack_tmp, -12)
   47897       391092 :          idata = idata + 1
   47898       391092 :          data_tmp = full_data(idata)
   47899       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47900       391092 :          data_tmp = IAND(data_tmp, mask_left(12))
   47901       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47902       391092 :          ipack = ipack + 1
   47903       391092 :          packed_data(ipack) = pack_tmp
   47904       391092 :          data_tmp = full_data(idata)
   47905       391092 :          pack_tmp = ISHFT(data_tmp, 18)
   47906       391092 :          pack_tmp = ISHFT(pack_tmp, -18)
   47907       391092 :          idata = idata + 1
   47908       391092 :          data_tmp = full_data(idata)
   47909       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47910       391092 :          data_tmp = IAND(data_tmp, mask_left(18))
   47911       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47912       391092 :          ipack = ipack + 1
   47913       391092 :          packed_data(ipack) = pack_tmp
   47914       391092 :          data_tmp = full_data(idata)
   47915       391092 :          pack_tmp = ISHFT(data_tmp, 24)
   47916       391092 :          pack_tmp = ISHFT(pack_tmp, -24)
   47917       391092 :          idata = idata + 1
   47918       391092 :          data_tmp = full_data(idata)
   47919       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47920       391092 :          data_tmp = IAND(data_tmp, mask_left(24))
   47921       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47922       391092 :          ipack = ipack + 1
   47923       391092 :          packed_data(ipack) = pack_tmp
   47924       391092 :          data_tmp = full_data(idata)
   47925       391092 :          pack_tmp = ISHFT(data_tmp, 30)
   47926       391092 :          pack_tmp = ISHFT(pack_tmp, -30)
   47927       391092 :          idata = idata + 1
   47928       391092 :          data_tmp = full_data(idata)
   47929       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47930       391092 :          data_tmp = IAND(data_tmp, mask_left(30))
   47931       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47932       391092 :          ipack = ipack + 1
   47933       391092 :          packed_data(ipack) = pack_tmp
   47934       391092 :          data_tmp = full_data(idata)
   47935       391092 :          pack_tmp = ISHFT(data_tmp, 36)
   47936       391092 :          pack_tmp = ISHFT(pack_tmp, -36)
   47937       391092 :          idata = idata + 1
   47938       391092 :          data_tmp = full_data(idata)
   47939       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47940       391092 :          data_tmp = IAND(data_tmp, mask_left(36))
   47941       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47942       391092 :          ipack = ipack + 1
   47943       391092 :          packed_data(ipack) = pack_tmp
   47944       391092 :          data_tmp = full_data(idata)
   47945       391092 :          pack_tmp = ISHFT(data_tmp, 42)
   47946       391092 :          pack_tmp = ISHFT(pack_tmp, -42)
   47947       391092 :          idata = idata + 1
   47948       391092 :          data_tmp = full_data(idata)
   47949       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47950       391092 :          data_tmp = IAND(data_tmp, mask_left(42))
   47951       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47952       391092 :          ipack = ipack + 1
   47953       391092 :          packed_data(ipack) = pack_tmp
   47954       391092 :          data_tmp = full_data(idata)
   47955       391092 :          pack_tmp = ISHFT(data_tmp, 48)
   47956       391092 :          pack_tmp = ISHFT(pack_tmp, -48)
   47957       391092 :          idata = idata + 1
   47958       391092 :          data_tmp = full_data(idata)
   47959       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47960       391092 :          data_tmp = IAND(data_tmp, mask_left(48))
   47961       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47962       391092 :          ipack = ipack + 1
   47963       391092 :          packed_data(ipack) = pack_tmp
   47964       391092 :          data_tmp = full_data(idata)
   47965       391092 :          pack_tmp = ISHFT(data_tmp, 54)
   47966       391092 :          pack_tmp = ISHFT(pack_tmp, -54)
   47967       391092 :          idata = idata + 1
   47968       391092 :          data_tmp = full_data(idata)
   47969       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47970       391092 :          data_tmp = IAND(data_tmp, mask_left(54))
   47971       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47972       391092 :          ipack = ipack + 1
   47973       391092 :          packed_data(ipack) = pack_tmp
   47974       391092 :          data_tmp = full_data(idata)
   47975       391092 :          pack_tmp = ISHFT(data_tmp, 60)
   47976       391092 :          pack_tmp = ISHFT(pack_tmp, -58)
   47977       391092 :          idata = idata + 1
   47978       391092 :          data_tmp = full_data(idata)
   47979       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47980       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47981       391092 :          pack_tmp = ISHFT(pack_tmp, -2)
   47982       391092 :          idata = idata + 1
   47983       391092 :          data_tmp = full_data(idata)
   47984       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47985       391092 :          data_tmp = IAND(data_tmp, mask_left(2))
   47986       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47987       391092 :          ipack = ipack + 1
   47988       391092 :          packed_data(ipack) = pack_tmp
   47989       391092 :          data_tmp = full_data(idata)
   47990       391092 :          pack_tmp = ISHFT(data_tmp, 8)
   47991       391092 :          pack_tmp = ISHFT(pack_tmp, -8)
   47992       391092 :          idata = idata + 1
   47993       391092 :          data_tmp = full_data(idata)
   47994       391092 :          data_tmp = ISHFT(data_tmp, 6)
   47995       391092 :          data_tmp = IAND(data_tmp, mask_left(8))
   47996       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   47997       391092 :          ipack = ipack + 1
   47998       391092 :          packed_data(ipack) = pack_tmp
   47999       391092 :          data_tmp = full_data(idata)
   48000       391092 :          pack_tmp = ISHFT(data_tmp, 14)
   48001       391092 :          pack_tmp = ISHFT(pack_tmp, -14)
   48002       391092 :          idata = idata + 1
   48003       391092 :          data_tmp = full_data(idata)
   48004       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48005       391092 :          data_tmp = IAND(data_tmp, mask_left(14))
   48006       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48007       391092 :          ipack = ipack + 1
   48008       391092 :          packed_data(ipack) = pack_tmp
   48009       391092 :          data_tmp = full_data(idata)
   48010       391092 :          pack_tmp = ISHFT(data_tmp, 20)
   48011       391092 :          pack_tmp = ISHFT(pack_tmp, -20)
   48012       391092 :          idata = idata + 1
   48013       391092 :          data_tmp = full_data(idata)
   48014       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48015       391092 :          data_tmp = IAND(data_tmp, mask_left(20))
   48016       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48017       391092 :          ipack = ipack + 1
   48018       391092 :          packed_data(ipack) = pack_tmp
   48019       391092 :          data_tmp = full_data(idata)
   48020       391092 :          pack_tmp = ISHFT(data_tmp, 26)
   48021       391092 :          pack_tmp = ISHFT(pack_tmp, -26)
   48022       391092 :          idata = idata + 1
   48023       391092 :          data_tmp = full_data(idata)
   48024       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48025       391092 :          data_tmp = IAND(data_tmp, mask_left(26))
   48026       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48027       391092 :          ipack = ipack + 1
   48028       391092 :          packed_data(ipack) = pack_tmp
   48029       391092 :          data_tmp = full_data(idata)
   48030       391092 :          pack_tmp = ISHFT(data_tmp, 32)
   48031       391092 :          pack_tmp = ISHFT(pack_tmp, -32)
   48032       391092 :          idata = idata + 1
   48033       391092 :          data_tmp = full_data(idata)
   48034       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48035       391092 :          data_tmp = IAND(data_tmp, mask_left(32))
   48036       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48037       391092 :          ipack = ipack + 1
   48038       391092 :          packed_data(ipack) = pack_tmp
   48039       391092 :          data_tmp = full_data(idata)
   48040       391092 :          pack_tmp = ISHFT(data_tmp, 38)
   48041       391092 :          pack_tmp = ISHFT(pack_tmp, -38)
   48042       391092 :          idata = idata + 1
   48043       391092 :          data_tmp = full_data(idata)
   48044       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48045       391092 :          data_tmp = IAND(data_tmp, mask_left(38))
   48046       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48047       391092 :          ipack = ipack + 1
   48048       391092 :          packed_data(ipack) = pack_tmp
   48049       391092 :          data_tmp = full_data(idata)
   48050       391092 :          pack_tmp = ISHFT(data_tmp, 44)
   48051       391092 :          pack_tmp = ISHFT(pack_tmp, -44)
   48052       391092 :          idata = idata + 1
   48053       391092 :          data_tmp = full_data(idata)
   48054       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48055       391092 :          data_tmp = IAND(data_tmp, mask_left(44))
   48056       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48057       391092 :          ipack = ipack + 1
   48058       391092 :          packed_data(ipack) = pack_tmp
   48059       391092 :          data_tmp = full_data(idata)
   48060       391092 :          pack_tmp = ISHFT(data_tmp, 50)
   48061       391092 :          pack_tmp = ISHFT(pack_tmp, -50)
   48062       391092 :          idata = idata + 1
   48063       391092 :          data_tmp = full_data(idata)
   48064       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48065       391092 :          data_tmp = IAND(data_tmp, mask_left(50))
   48066       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48067       391092 :          ipack = ipack + 1
   48068       391092 :          packed_data(ipack) = pack_tmp
   48069       391092 :          data_tmp = full_data(idata)
   48070       391092 :          pack_tmp = ISHFT(data_tmp, 56)
   48071       391092 :          pack_tmp = ISHFT(pack_tmp, -56)
   48072       391092 :          idata = idata + 1
   48073       391092 :          data_tmp = full_data(idata)
   48074       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48075       391092 :          data_tmp = IAND(data_tmp, mask_left(56))
   48076       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48077       391092 :          ipack = ipack + 1
   48078       391092 :          packed_data(ipack) = pack_tmp
   48079       391092 :          data_tmp = full_data(idata)
   48080       391092 :          pack_tmp = ISHFT(data_tmp, 62)
   48081       391092 :          pack_tmp = ISHFT(pack_tmp, -58)
   48082       391092 :          idata = idata + 1
   48083       391092 :          data_tmp = full_data(idata)
   48084       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48085       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48086       391092 :          pack_tmp = ISHFT(pack_tmp, -4)
   48087       391092 :          idata = idata + 1
   48088       391092 :          data_tmp = full_data(idata)
   48089       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48090       391092 :          data_tmp = IAND(data_tmp, mask_left(4))
   48091       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48092       391092 :          ipack = ipack + 1
   48093       391092 :          packed_data(ipack) = pack_tmp
   48094       391092 :          data_tmp = full_data(idata)
   48095       391092 :          pack_tmp = ISHFT(data_tmp, 10)
   48096       391092 :          pack_tmp = ISHFT(pack_tmp, -10)
   48097       391092 :          idata = idata + 1
   48098       391092 :          data_tmp = full_data(idata)
   48099       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48100       391092 :          data_tmp = IAND(data_tmp, mask_left(10))
   48101       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48102       391092 :          ipack = ipack + 1
   48103       391092 :          packed_data(ipack) = pack_tmp
   48104       391092 :          data_tmp = full_data(idata)
   48105       391092 :          pack_tmp = ISHFT(data_tmp, 16)
   48106       391092 :          pack_tmp = ISHFT(pack_tmp, -16)
   48107       391092 :          idata = idata + 1
   48108       391092 :          data_tmp = full_data(idata)
   48109       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48110       391092 :          data_tmp = IAND(data_tmp, mask_left(16))
   48111       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48112       391092 :          ipack = ipack + 1
   48113       391092 :          packed_data(ipack) = pack_tmp
   48114       391092 :          data_tmp = full_data(idata)
   48115       391092 :          pack_tmp = ISHFT(data_tmp, 22)
   48116       391092 :          pack_tmp = ISHFT(pack_tmp, -22)
   48117       391092 :          idata = idata + 1
   48118       391092 :          data_tmp = full_data(idata)
   48119       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48120       391092 :          data_tmp = IAND(data_tmp, mask_left(22))
   48121       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48122       391092 :          ipack = ipack + 1
   48123       391092 :          packed_data(ipack) = pack_tmp
   48124       391092 :          data_tmp = full_data(idata)
   48125       391092 :          pack_tmp = ISHFT(data_tmp, 28)
   48126       391092 :          pack_tmp = ISHFT(pack_tmp, -28)
   48127       391092 :          idata = idata + 1
   48128       391092 :          data_tmp = full_data(idata)
   48129       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48130       391092 :          data_tmp = IAND(data_tmp, mask_left(28))
   48131       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48132       391092 :          ipack = ipack + 1
   48133       391092 :          packed_data(ipack) = pack_tmp
   48134       391092 :          data_tmp = full_data(idata)
   48135       391092 :          pack_tmp = ISHFT(data_tmp, 34)
   48136       391092 :          pack_tmp = ISHFT(pack_tmp, -34)
   48137       391092 :          idata = idata + 1
   48138       391092 :          data_tmp = full_data(idata)
   48139       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48140       391092 :          data_tmp = IAND(data_tmp, mask_left(34))
   48141       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48142       391092 :          ipack = ipack + 1
   48143       391092 :          packed_data(ipack) = pack_tmp
   48144       391092 :          data_tmp = full_data(idata)
   48145       391092 :          pack_tmp = ISHFT(data_tmp, 40)
   48146       391092 :          pack_tmp = ISHFT(pack_tmp, -40)
   48147       391092 :          idata = idata + 1
   48148       391092 :          data_tmp = full_data(idata)
   48149       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48150       391092 :          data_tmp = IAND(data_tmp, mask_left(40))
   48151       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48152       391092 :          ipack = ipack + 1
   48153       391092 :          packed_data(ipack) = pack_tmp
   48154       391092 :          data_tmp = full_data(idata)
   48155       391092 :          pack_tmp = ISHFT(data_tmp, 46)
   48156       391092 :          pack_tmp = ISHFT(pack_tmp, -46)
   48157       391092 :          idata = idata + 1
   48158       391092 :          data_tmp = full_data(idata)
   48159       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48160       391092 :          data_tmp = IAND(data_tmp, mask_left(46))
   48161       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48162       391092 :          ipack = ipack + 1
   48163       391092 :          packed_data(ipack) = pack_tmp
   48164       391092 :          data_tmp = full_data(idata)
   48165       391092 :          pack_tmp = ISHFT(data_tmp, 52)
   48166       391092 :          pack_tmp = ISHFT(pack_tmp, -52)
   48167       391092 :          idata = idata + 1
   48168       391092 :          data_tmp = full_data(idata)
   48169       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48170       391092 :          data_tmp = IAND(data_tmp, mask_left(52))
   48171       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48172       391092 :          ipack = ipack + 1
   48173       391092 :          packed_data(ipack) = pack_tmp
   48174       391092 :          data_tmp = full_data(idata)
   48175       391092 :          pack_tmp = ISHFT(data_tmp, 58)
   48176       391092 :          pack_tmp = ISHFT(pack_tmp, -58)
   48177       391092 :          idata = idata + 1
   48178       391092 :          data_tmp = full_data(idata)
   48179       391092 :          data_tmp = ISHFT(data_tmp, 6)
   48180       391092 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48181              :          pack_tmp = ISHFT(pack_tmp, 0)
   48182       391092 :          pack_tmp = ISHFT(pack_tmp, 0)
   48183       391092 :          ipack = ipack + 1
   48184       391092 :          packed_data(ipack) = pack_tmp
   48185              :       END DO
   48186        24456 :       IF (Ndata_rep < Ndata) THEN
   48187           24 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   48188              :       END IF
   48189        24456 :    END SUBROUTINE ints2bits_58
   48190              : 
   48191              : ! **************************************************************************************************
   48192              : !> \brief ...
   48193              : !> \param Ndata ...
   48194              : !> \param packed_data ...
   48195              : !> \param full_data ...
   48196              : ! **************************************************************************************************
   48197        99929 :    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        99929 :       ipack = 0
   48208        99929 :       idata = 0
   48209        99929 :       pack_tmp = 0
   48210        99929 :       Ndata_rep = (Ndata/64)*64
   48211        99929 :       DO kdata = 1, Ndata_rep, 64
   48212      1586420 :          idata = idata + 1
   48213      1586420 :          data_tmp = ISHFT(pack_tmp, 58)
   48214      1586420 :          ipack = ipack + 1
   48215      1586420 :          pack_tmp = packed_data(ipack)
   48216      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   48217      1586420 :          pack_tmp = ISHFT(pack_tmp, -58)
   48218      1586420 :          idata = idata + 1
   48219      1586420 :          data_tmp = ISHFT(pack_tmp, 52)
   48220      1586420 :          ipack = ipack + 1
   48221      1586420 :          pack_tmp = packed_data(ipack)
   48222      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   48223      1586420 :          pack_tmp = ISHFT(pack_tmp, -52)
   48224      1586420 :          idata = idata + 1
   48225      1586420 :          data_tmp = ISHFT(pack_tmp, 46)
   48226      1586420 :          ipack = ipack + 1
   48227      1586420 :          pack_tmp = packed_data(ipack)
   48228      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   48229      1586420 :          pack_tmp = ISHFT(pack_tmp, -46)
   48230      1586420 :          idata = idata + 1
   48231      1586420 :          data_tmp = ISHFT(pack_tmp, 40)
   48232      1586420 :          ipack = ipack + 1
   48233      1586420 :          pack_tmp = packed_data(ipack)
   48234      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   48235      1586420 :          pack_tmp = ISHFT(pack_tmp, -40)
   48236      1586420 :          idata = idata + 1
   48237      1586420 :          data_tmp = ISHFT(pack_tmp, 34)
   48238      1586420 :          ipack = ipack + 1
   48239      1586420 :          pack_tmp = packed_data(ipack)
   48240      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   48241      1586420 :          pack_tmp = ISHFT(pack_tmp, -34)
   48242      1586420 :          idata = idata + 1
   48243      1586420 :          data_tmp = ISHFT(pack_tmp, 28)
   48244      1586420 :          ipack = ipack + 1
   48245      1586420 :          pack_tmp = packed_data(ipack)
   48246      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   48247      1586420 :          pack_tmp = ISHFT(pack_tmp, -28)
   48248      1586420 :          idata = idata + 1
   48249      1586420 :          data_tmp = ISHFT(pack_tmp, 22)
   48250      1586420 :          ipack = ipack + 1
   48251      1586420 :          pack_tmp = packed_data(ipack)
   48252      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   48253      1586420 :          pack_tmp = ISHFT(pack_tmp, -22)
   48254      1586420 :          idata = idata + 1
   48255      1586420 :          data_tmp = ISHFT(pack_tmp, 16)
   48256      1586420 :          ipack = ipack + 1
   48257      1586420 :          pack_tmp = packed_data(ipack)
   48258      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   48259      1586420 :          pack_tmp = ISHFT(pack_tmp, -16)
   48260      1586420 :          idata = idata + 1
   48261      1586420 :          data_tmp = ISHFT(pack_tmp, 10)
   48262      1586420 :          ipack = ipack + 1
   48263      1586420 :          pack_tmp = packed_data(ipack)
   48264      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   48265      1586420 :          pack_tmp = ISHFT(pack_tmp, -10)
   48266      1586420 :          idata = idata + 1
   48267      1586420 :          data_tmp = ISHFT(pack_tmp, 4)
   48268      1586420 :          ipack = ipack + 1
   48269      1586420 :          pack_tmp = packed_data(ipack)
   48270      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   48271      1586420 :          pack_tmp = ISHFT(pack_tmp, -4)
   48272      1586420 :          idata = idata + 1
   48273      1586420 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48274      1586420 :          full_data(idata) = data_tmp
   48275      1586420 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48276      1586420 :          idata = idata + 1
   48277      1586420 :          data_tmp = ISHFT(pack_tmp, 56)
   48278      1586420 :          ipack = ipack + 1
   48279      1586420 :          pack_tmp = packed_data(ipack)
   48280      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   48281      1586420 :          pack_tmp = ISHFT(pack_tmp, -56)
   48282      1586420 :          idata = idata + 1
   48283      1586420 :          data_tmp = ISHFT(pack_tmp, 50)
   48284      1586420 :          ipack = ipack + 1
   48285      1586420 :          pack_tmp = packed_data(ipack)
   48286      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   48287      1586420 :          pack_tmp = ISHFT(pack_tmp, -50)
   48288      1586420 :          idata = idata + 1
   48289      1586420 :          data_tmp = ISHFT(pack_tmp, 44)
   48290      1586420 :          ipack = ipack + 1
   48291      1586420 :          pack_tmp = packed_data(ipack)
   48292      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   48293      1586420 :          pack_tmp = ISHFT(pack_tmp, -44)
   48294      1586420 :          idata = idata + 1
   48295      1586420 :          data_tmp = ISHFT(pack_tmp, 38)
   48296      1586420 :          ipack = ipack + 1
   48297      1586420 :          pack_tmp = packed_data(ipack)
   48298      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   48299      1586420 :          pack_tmp = ISHFT(pack_tmp, -38)
   48300      1586420 :          idata = idata + 1
   48301      1586420 :          data_tmp = ISHFT(pack_tmp, 32)
   48302      1586420 :          ipack = ipack + 1
   48303      1586420 :          pack_tmp = packed_data(ipack)
   48304      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   48305      1586420 :          pack_tmp = ISHFT(pack_tmp, -32)
   48306      1586420 :          idata = idata + 1
   48307      1586420 :          data_tmp = ISHFT(pack_tmp, 26)
   48308      1586420 :          ipack = ipack + 1
   48309      1586420 :          pack_tmp = packed_data(ipack)
   48310      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   48311      1586420 :          pack_tmp = ISHFT(pack_tmp, -26)
   48312      1586420 :          idata = idata + 1
   48313      1586420 :          data_tmp = ISHFT(pack_tmp, 20)
   48314      1586420 :          ipack = ipack + 1
   48315      1586420 :          pack_tmp = packed_data(ipack)
   48316      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   48317      1586420 :          pack_tmp = ISHFT(pack_tmp, -20)
   48318      1586420 :          idata = idata + 1
   48319      1586420 :          data_tmp = ISHFT(pack_tmp, 14)
   48320      1586420 :          ipack = ipack + 1
   48321      1586420 :          pack_tmp = packed_data(ipack)
   48322      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   48323      1586420 :          pack_tmp = ISHFT(pack_tmp, -14)
   48324      1586420 :          idata = idata + 1
   48325      1586420 :          data_tmp = ISHFT(pack_tmp, 8)
   48326      1586420 :          ipack = ipack + 1
   48327      1586420 :          pack_tmp = packed_data(ipack)
   48328      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   48329      1586420 :          pack_tmp = ISHFT(pack_tmp, -8)
   48330      1586420 :          idata = idata + 1
   48331      1586420 :          data_tmp = ISHFT(pack_tmp, 2)
   48332      1586420 :          ipack = ipack + 1
   48333      1586420 :          pack_tmp = packed_data(ipack)
   48334      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   48335      1586420 :          pack_tmp = ISHFT(pack_tmp, -2)
   48336      1586420 :          idata = idata + 1
   48337      1586420 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48338      1586420 :          full_data(idata) = data_tmp
   48339      1586420 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48340      1586420 :          idata = idata + 1
   48341      1586420 :          data_tmp = ISHFT(pack_tmp, 54)
   48342      1586420 :          ipack = ipack + 1
   48343      1586420 :          pack_tmp = packed_data(ipack)
   48344      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   48345      1586420 :          pack_tmp = ISHFT(pack_tmp, -54)
   48346      1586420 :          idata = idata + 1
   48347      1586420 :          data_tmp = ISHFT(pack_tmp, 48)
   48348      1586420 :          ipack = ipack + 1
   48349      1586420 :          pack_tmp = packed_data(ipack)
   48350      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   48351      1586420 :          pack_tmp = ISHFT(pack_tmp, -48)
   48352      1586420 :          idata = idata + 1
   48353      1586420 :          data_tmp = ISHFT(pack_tmp, 42)
   48354      1586420 :          ipack = ipack + 1
   48355      1586420 :          pack_tmp = packed_data(ipack)
   48356      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   48357      1586420 :          pack_tmp = ISHFT(pack_tmp, -42)
   48358      1586420 :          idata = idata + 1
   48359      1586420 :          data_tmp = ISHFT(pack_tmp, 36)
   48360      1586420 :          ipack = ipack + 1
   48361      1586420 :          pack_tmp = packed_data(ipack)
   48362      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   48363      1586420 :          pack_tmp = ISHFT(pack_tmp, -36)
   48364      1586420 :          idata = idata + 1
   48365      1586420 :          data_tmp = ISHFT(pack_tmp, 30)
   48366      1586420 :          ipack = ipack + 1
   48367      1586420 :          pack_tmp = packed_data(ipack)
   48368      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   48369      1586420 :          pack_tmp = ISHFT(pack_tmp, -30)
   48370      1586420 :          idata = idata + 1
   48371      1586420 :          data_tmp = ISHFT(pack_tmp, 24)
   48372      1586420 :          ipack = ipack + 1
   48373      1586420 :          pack_tmp = packed_data(ipack)
   48374      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   48375      1586420 :          pack_tmp = ISHFT(pack_tmp, -24)
   48376      1586420 :          idata = idata + 1
   48377      1586420 :          data_tmp = ISHFT(pack_tmp, 18)
   48378      1586420 :          ipack = ipack + 1
   48379      1586420 :          pack_tmp = packed_data(ipack)
   48380      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   48381      1586420 :          pack_tmp = ISHFT(pack_tmp, -18)
   48382      1586420 :          idata = idata + 1
   48383      1586420 :          data_tmp = ISHFT(pack_tmp, 12)
   48384      1586420 :          ipack = ipack + 1
   48385      1586420 :          pack_tmp = packed_data(ipack)
   48386      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   48387      1586420 :          pack_tmp = ISHFT(pack_tmp, -12)
   48388      1586420 :          idata = idata + 1
   48389      1586420 :          data_tmp = ISHFT(pack_tmp, 6)
   48390      1586420 :          ipack = ipack + 1
   48391      1586420 :          pack_tmp = packed_data(ipack)
   48392      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   48393      1586420 :          pack_tmp = ISHFT(pack_tmp, -6)
   48394      1586420 :          idata = idata + 1
   48395      1586420 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48396      1586420 :          full_data(idata) = data_tmp
   48397      1586420 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48398      1586420 :          idata = idata + 1
   48399      1586420 :          data_tmp = ISHFT(pack_tmp, 58)
   48400      1586420 :          ipack = ipack + 1
   48401      1586420 :          pack_tmp = packed_data(ipack)
   48402      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   48403      1586420 :          pack_tmp = ISHFT(pack_tmp, -58)
   48404      1586420 :          idata = idata + 1
   48405      1586420 :          data_tmp = ISHFT(pack_tmp, 52)
   48406      1586420 :          ipack = ipack + 1
   48407      1586420 :          pack_tmp = packed_data(ipack)
   48408      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   48409      1586420 :          pack_tmp = ISHFT(pack_tmp, -52)
   48410      1586420 :          idata = idata + 1
   48411      1586420 :          data_tmp = ISHFT(pack_tmp, 46)
   48412      1586420 :          ipack = ipack + 1
   48413      1586420 :          pack_tmp = packed_data(ipack)
   48414      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   48415      1586420 :          pack_tmp = ISHFT(pack_tmp, -46)
   48416      1586420 :          idata = idata + 1
   48417      1586420 :          data_tmp = ISHFT(pack_tmp, 40)
   48418      1586420 :          ipack = ipack + 1
   48419      1586420 :          pack_tmp = packed_data(ipack)
   48420      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   48421      1586420 :          pack_tmp = ISHFT(pack_tmp, -40)
   48422      1586420 :          idata = idata + 1
   48423      1586420 :          data_tmp = ISHFT(pack_tmp, 34)
   48424      1586420 :          ipack = ipack + 1
   48425      1586420 :          pack_tmp = packed_data(ipack)
   48426      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   48427      1586420 :          pack_tmp = ISHFT(pack_tmp, -34)
   48428      1586420 :          idata = idata + 1
   48429      1586420 :          data_tmp = ISHFT(pack_tmp, 28)
   48430      1586420 :          ipack = ipack + 1
   48431      1586420 :          pack_tmp = packed_data(ipack)
   48432      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   48433      1586420 :          pack_tmp = ISHFT(pack_tmp, -28)
   48434      1586420 :          idata = idata + 1
   48435      1586420 :          data_tmp = ISHFT(pack_tmp, 22)
   48436      1586420 :          ipack = ipack + 1
   48437      1586420 :          pack_tmp = packed_data(ipack)
   48438      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   48439      1586420 :          pack_tmp = ISHFT(pack_tmp, -22)
   48440      1586420 :          idata = idata + 1
   48441      1586420 :          data_tmp = ISHFT(pack_tmp, 16)
   48442      1586420 :          ipack = ipack + 1
   48443      1586420 :          pack_tmp = packed_data(ipack)
   48444      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   48445      1586420 :          pack_tmp = ISHFT(pack_tmp, -16)
   48446      1586420 :          idata = idata + 1
   48447      1586420 :          data_tmp = ISHFT(pack_tmp, 10)
   48448      1586420 :          ipack = ipack + 1
   48449      1586420 :          pack_tmp = packed_data(ipack)
   48450      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   48451      1586420 :          pack_tmp = ISHFT(pack_tmp, -10)
   48452      1586420 :          idata = idata + 1
   48453      1586420 :          data_tmp = ISHFT(pack_tmp, 4)
   48454      1586420 :          ipack = ipack + 1
   48455      1586420 :          pack_tmp = packed_data(ipack)
   48456      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   48457      1586420 :          pack_tmp = ISHFT(pack_tmp, -4)
   48458      1586420 :          idata = idata + 1
   48459      1586420 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48460      1586420 :          full_data(idata) = data_tmp
   48461      1586420 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48462      1586420 :          idata = idata + 1
   48463      1586420 :          data_tmp = ISHFT(pack_tmp, 56)
   48464      1586420 :          ipack = ipack + 1
   48465      1586420 :          pack_tmp = packed_data(ipack)
   48466      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   48467      1586420 :          pack_tmp = ISHFT(pack_tmp, -56)
   48468      1586420 :          idata = idata + 1
   48469      1586420 :          data_tmp = ISHFT(pack_tmp, 50)
   48470      1586420 :          ipack = ipack + 1
   48471      1586420 :          pack_tmp = packed_data(ipack)
   48472      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   48473      1586420 :          pack_tmp = ISHFT(pack_tmp, -50)
   48474      1586420 :          idata = idata + 1
   48475      1586420 :          data_tmp = ISHFT(pack_tmp, 44)
   48476      1586420 :          ipack = ipack + 1
   48477      1586420 :          pack_tmp = packed_data(ipack)
   48478      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   48479      1586420 :          pack_tmp = ISHFT(pack_tmp, -44)
   48480      1586420 :          idata = idata + 1
   48481      1586420 :          data_tmp = ISHFT(pack_tmp, 38)
   48482      1586420 :          ipack = ipack + 1
   48483      1586420 :          pack_tmp = packed_data(ipack)
   48484      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   48485      1586420 :          pack_tmp = ISHFT(pack_tmp, -38)
   48486      1586420 :          idata = idata + 1
   48487      1586420 :          data_tmp = ISHFT(pack_tmp, 32)
   48488      1586420 :          ipack = ipack + 1
   48489      1586420 :          pack_tmp = packed_data(ipack)
   48490      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   48491      1586420 :          pack_tmp = ISHFT(pack_tmp, -32)
   48492      1586420 :          idata = idata + 1
   48493      1586420 :          data_tmp = ISHFT(pack_tmp, 26)
   48494      1586420 :          ipack = ipack + 1
   48495      1586420 :          pack_tmp = packed_data(ipack)
   48496      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   48497      1586420 :          pack_tmp = ISHFT(pack_tmp, -26)
   48498      1586420 :          idata = idata + 1
   48499      1586420 :          data_tmp = ISHFT(pack_tmp, 20)
   48500      1586420 :          ipack = ipack + 1
   48501      1586420 :          pack_tmp = packed_data(ipack)
   48502      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   48503      1586420 :          pack_tmp = ISHFT(pack_tmp, -20)
   48504      1586420 :          idata = idata + 1
   48505      1586420 :          data_tmp = ISHFT(pack_tmp, 14)
   48506      1586420 :          ipack = ipack + 1
   48507      1586420 :          pack_tmp = packed_data(ipack)
   48508      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   48509      1586420 :          pack_tmp = ISHFT(pack_tmp, -14)
   48510      1586420 :          idata = idata + 1
   48511      1586420 :          data_tmp = ISHFT(pack_tmp, 8)
   48512      1586420 :          ipack = ipack + 1
   48513      1586420 :          pack_tmp = packed_data(ipack)
   48514      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   48515      1586420 :          pack_tmp = ISHFT(pack_tmp, -8)
   48516      1586420 :          idata = idata + 1
   48517      1586420 :          data_tmp = ISHFT(pack_tmp, 2)
   48518      1586420 :          ipack = ipack + 1
   48519      1586420 :          pack_tmp = packed_data(ipack)
   48520      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   48521      1586420 :          pack_tmp = ISHFT(pack_tmp, -2)
   48522      1586420 :          idata = idata + 1
   48523      1586420 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48524      1586420 :          full_data(idata) = data_tmp
   48525      1586420 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48526      1586420 :          idata = idata + 1
   48527      1586420 :          data_tmp = ISHFT(pack_tmp, 54)
   48528      1586420 :          ipack = ipack + 1
   48529      1586420 :          pack_tmp = packed_data(ipack)
   48530      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   48531      1586420 :          pack_tmp = ISHFT(pack_tmp, -54)
   48532      1586420 :          idata = idata + 1
   48533      1586420 :          data_tmp = ISHFT(pack_tmp, 48)
   48534      1586420 :          ipack = ipack + 1
   48535      1586420 :          pack_tmp = packed_data(ipack)
   48536      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   48537      1586420 :          pack_tmp = ISHFT(pack_tmp, -48)
   48538      1586420 :          idata = idata + 1
   48539      1586420 :          data_tmp = ISHFT(pack_tmp, 42)
   48540      1586420 :          ipack = ipack + 1
   48541      1586420 :          pack_tmp = packed_data(ipack)
   48542      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   48543      1586420 :          pack_tmp = ISHFT(pack_tmp, -42)
   48544      1586420 :          idata = idata + 1
   48545      1586420 :          data_tmp = ISHFT(pack_tmp, 36)
   48546      1586420 :          ipack = ipack + 1
   48547      1586420 :          pack_tmp = packed_data(ipack)
   48548      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   48549      1586420 :          pack_tmp = ISHFT(pack_tmp, -36)
   48550      1586420 :          idata = idata + 1
   48551      1586420 :          data_tmp = ISHFT(pack_tmp, 30)
   48552      1586420 :          ipack = ipack + 1
   48553      1586420 :          pack_tmp = packed_data(ipack)
   48554      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   48555      1586420 :          pack_tmp = ISHFT(pack_tmp, -30)
   48556      1586420 :          idata = idata + 1
   48557      1586420 :          data_tmp = ISHFT(pack_tmp, 24)
   48558      1586420 :          ipack = ipack + 1
   48559      1586420 :          pack_tmp = packed_data(ipack)
   48560      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   48561      1586420 :          pack_tmp = ISHFT(pack_tmp, -24)
   48562      1586420 :          idata = idata + 1
   48563      1586420 :          data_tmp = ISHFT(pack_tmp, 18)
   48564      1586420 :          ipack = ipack + 1
   48565      1586420 :          pack_tmp = packed_data(ipack)
   48566      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   48567      1586420 :          pack_tmp = ISHFT(pack_tmp, -18)
   48568      1586420 :          idata = idata + 1
   48569      1586420 :          data_tmp = ISHFT(pack_tmp, 12)
   48570      1586420 :          ipack = ipack + 1
   48571      1586420 :          pack_tmp = packed_data(ipack)
   48572      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   48573      1586420 :          pack_tmp = ISHFT(pack_tmp, -12)
   48574      1586420 :          idata = idata + 1
   48575      1586420 :          data_tmp = ISHFT(pack_tmp, 6)
   48576      1586420 :          ipack = ipack + 1
   48577      1586420 :          pack_tmp = packed_data(ipack)
   48578      1586420 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   48579      1586420 :          pack_tmp = ISHFT(pack_tmp, -6)
   48580      1586420 :          idata = idata + 1
   48581      1586420 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   48582      1586420 :          full_data(idata) = data_tmp
   48583      1586420 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   48584              :       END DO
   48585        99929 :       IF (Ndata_rep < Ndata) THEN
   48586         1464 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   48587              :       END IF
   48588        99929 :    END SUBROUTINE bits2ints_58
   48589              : 
   48590              : ! **************************************************************************************************
   48591              : !> \brief ...
   48592              : !> \param Ndata ...
   48593              : !> \param packed_data ...
   48594              : !> \param full_data ...
   48595              : ! **************************************************************************************************
   48596        24432 :    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        24432 :       idata = 0
   48607        24432 :       ipack = 0
   48608        24432 :       Ndata_rep = (Ndata/64)*64
   48609        24432 :       DO kdata = 1, Ndata_rep, 64
   48610       390912 :          pack_tmp = 0
   48611       390912 :          idata = idata + 1
   48612       390912 :          data_tmp = full_data(idata)
   48613       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48614       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48615       390912 :          pack_tmp = ISHFT(pack_tmp, -5)
   48616       390912 :          idata = idata + 1
   48617       390912 :          data_tmp = full_data(idata)
   48618       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48619       390912 :          data_tmp = IAND(data_tmp, mask_left(5))
   48620       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48621       390912 :          ipack = ipack + 1
   48622       390912 :          packed_data(ipack) = pack_tmp
   48623       390912 :          data_tmp = full_data(idata)
   48624       390912 :          pack_tmp = ISHFT(data_tmp, 10)
   48625       390912 :          pack_tmp = ISHFT(pack_tmp, -10)
   48626       390912 :          idata = idata + 1
   48627       390912 :          data_tmp = full_data(idata)
   48628       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48629       390912 :          data_tmp = IAND(data_tmp, mask_left(10))
   48630       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48631       390912 :          ipack = ipack + 1
   48632       390912 :          packed_data(ipack) = pack_tmp
   48633       390912 :          data_tmp = full_data(idata)
   48634       390912 :          pack_tmp = ISHFT(data_tmp, 15)
   48635       390912 :          pack_tmp = ISHFT(pack_tmp, -15)
   48636       390912 :          idata = idata + 1
   48637       390912 :          data_tmp = full_data(idata)
   48638       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48639       390912 :          data_tmp = IAND(data_tmp, mask_left(15))
   48640       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48641       390912 :          ipack = ipack + 1
   48642       390912 :          packed_data(ipack) = pack_tmp
   48643       390912 :          data_tmp = full_data(idata)
   48644       390912 :          pack_tmp = ISHFT(data_tmp, 20)
   48645       390912 :          pack_tmp = ISHFT(pack_tmp, -20)
   48646       390912 :          idata = idata + 1
   48647       390912 :          data_tmp = full_data(idata)
   48648       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48649       390912 :          data_tmp = IAND(data_tmp, mask_left(20))
   48650       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48651       390912 :          ipack = ipack + 1
   48652       390912 :          packed_data(ipack) = pack_tmp
   48653       390912 :          data_tmp = full_data(idata)
   48654       390912 :          pack_tmp = ISHFT(data_tmp, 25)
   48655       390912 :          pack_tmp = ISHFT(pack_tmp, -25)
   48656       390912 :          idata = idata + 1
   48657       390912 :          data_tmp = full_data(idata)
   48658       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48659       390912 :          data_tmp = IAND(data_tmp, mask_left(25))
   48660       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48661       390912 :          ipack = ipack + 1
   48662       390912 :          packed_data(ipack) = pack_tmp
   48663       390912 :          data_tmp = full_data(idata)
   48664       390912 :          pack_tmp = ISHFT(data_tmp, 30)
   48665       390912 :          pack_tmp = ISHFT(pack_tmp, -30)
   48666       390912 :          idata = idata + 1
   48667       390912 :          data_tmp = full_data(idata)
   48668       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48669       390912 :          data_tmp = IAND(data_tmp, mask_left(30))
   48670       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48671       390912 :          ipack = ipack + 1
   48672       390912 :          packed_data(ipack) = pack_tmp
   48673       390912 :          data_tmp = full_data(idata)
   48674       390912 :          pack_tmp = ISHFT(data_tmp, 35)
   48675       390912 :          pack_tmp = ISHFT(pack_tmp, -35)
   48676       390912 :          idata = idata + 1
   48677       390912 :          data_tmp = full_data(idata)
   48678       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48679       390912 :          data_tmp = IAND(data_tmp, mask_left(35))
   48680       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48681       390912 :          ipack = ipack + 1
   48682       390912 :          packed_data(ipack) = pack_tmp
   48683       390912 :          data_tmp = full_data(idata)
   48684       390912 :          pack_tmp = ISHFT(data_tmp, 40)
   48685       390912 :          pack_tmp = ISHFT(pack_tmp, -40)
   48686       390912 :          idata = idata + 1
   48687       390912 :          data_tmp = full_data(idata)
   48688       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48689       390912 :          data_tmp = IAND(data_tmp, mask_left(40))
   48690       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48691       390912 :          ipack = ipack + 1
   48692       390912 :          packed_data(ipack) = pack_tmp
   48693       390912 :          data_tmp = full_data(idata)
   48694       390912 :          pack_tmp = ISHFT(data_tmp, 45)
   48695       390912 :          pack_tmp = ISHFT(pack_tmp, -45)
   48696       390912 :          idata = idata + 1
   48697       390912 :          data_tmp = full_data(idata)
   48698       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48699       390912 :          data_tmp = IAND(data_tmp, mask_left(45))
   48700       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48701       390912 :          ipack = ipack + 1
   48702       390912 :          packed_data(ipack) = pack_tmp
   48703       390912 :          data_tmp = full_data(idata)
   48704       390912 :          pack_tmp = ISHFT(data_tmp, 50)
   48705       390912 :          pack_tmp = ISHFT(pack_tmp, -50)
   48706       390912 :          idata = idata + 1
   48707       390912 :          data_tmp = full_data(idata)
   48708       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48709       390912 :          data_tmp = IAND(data_tmp, mask_left(50))
   48710       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48711       390912 :          ipack = ipack + 1
   48712       390912 :          packed_data(ipack) = pack_tmp
   48713       390912 :          data_tmp = full_data(idata)
   48714       390912 :          pack_tmp = ISHFT(data_tmp, 55)
   48715       390912 :          pack_tmp = ISHFT(pack_tmp, -55)
   48716       390912 :          idata = idata + 1
   48717       390912 :          data_tmp = full_data(idata)
   48718       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48719       390912 :          data_tmp = IAND(data_tmp, mask_left(55))
   48720       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48721       390912 :          ipack = ipack + 1
   48722       390912 :          packed_data(ipack) = pack_tmp
   48723       390912 :          data_tmp = full_data(idata)
   48724       390912 :          pack_tmp = ISHFT(data_tmp, 60)
   48725       390912 :          pack_tmp = ISHFT(pack_tmp, -59)
   48726       390912 :          idata = idata + 1
   48727       390912 :          data_tmp = full_data(idata)
   48728       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48729       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48730       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
   48731       390912 :          idata = idata + 1
   48732       390912 :          data_tmp = full_data(idata)
   48733       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48734       390912 :          data_tmp = IAND(data_tmp, mask_left(1))
   48735       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48736       390912 :          ipack = ipack + 1
   48737       390912 :          packed_data(ipack) = pack_tmp
   48738       390912 :          data_tmp = full_data(idata)
   48739       390912 :          pack_tmp = ISHFT(data_tmp, 6)
   48740       390912 :          pack_tmp = ISHFT(pack_tmp, -6)
   48741       390912 :          idata = idata + 1
   48742       390912 :          data_tmp = full_data(idata)
   48743       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48744       390912 :          data_tmp = IAND(data_tmp, mask_left(6))
   48745       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48746       390912 :          ipack = ipack + 1
   48747       390912 :          packed_data(ipack) = pack_tmp
   48748       390912 :          data_tmp = full_data(idata)
   48749       390912 :          pack_tmp = ISHFT(data_tmp, 11)
   48750       390912 :          pack_tmp = ISHFT(pack_tmp, -11)
   48751       390912 :          idata = idata + 1
   48752       390912 :          data_tmp = full_data(idata)
   48753       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48754       390912 :          data_tmp = IAND(data_tmp, mask_left(11))
   48755       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48756       390912 :          ipack = ipack + 1
   48757       390912 :          packed_data(ipack) = pack_tmp
   48758       390912 :          data_tmp = full_data(idata)
   48759       390912 :          pack_tmp = ISHFT(data_tmp, 16)
   48760       390912 :          pack_tmp = ISHFT(pack_tmp, -16)
   48761       390912 :          idata = idata + 1
   48762       390912 :          data_tmp = full_data(idata)
   48763       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48764       390912 :          data_tmp = IAND(data_tmp, mask_left(16))
   48765       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48766       390912 :          ipack = ipack + 1
   48767       390912 :          packed_data(ipack) = pack_tmp
   48768       390912 :          data_tmp = full_data(idata)
   48769       390912 :          pack_tmp = ISHFT(data_tmp, 21)
   48770       390912 :          pack_tmp = ISHFT(pack_tmp, -21)
   48771       390912 :          idata = idata + 1
   48772       390912 :          data_tmp = full_data(idata)
   48773       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48774       390912 :          data_tmp = IAND(data_tmp, mask_left(21))
   48775       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48776       390912 :          ipack = ipack + 1
   48777       390912 :          packed_data(ipack) = pack_tmp
   48778       390912 :          data_tmp = full_data(idata)
   48779       390912 :          pack_tmp = ISHFT(data_tmp, 26)
   48780       390912 :          pack_tmp = ISHFT(pack_tmp, -26)
   48781       390912 :          idata = idata + 1
   48782       390912 :          data_tmp = full_data(idata)
   48783       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48784       390912 :          data_tmp = IAND(data_tmp, mask_left(26))
   48785       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48786       390912 :          ipack = ipack + 1
   48787       390912 :          packed_data(ipack) = pack_tmp
   48788       390912 :          data_tmp = full_data(idata)
   48789       390912 :          pack_tmp = ISHFT(data_tmp, 31)
   48790       390912 :          pack_tmp = ISHFT(pack_tmp, -31)
   48791       390912 :          idata = idata + 1
   48792       390912 :          data_tmp = full_data(idata)
   48793       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48794       390912 :          data_tmp = IAND(data_tmp, mask_left(31))
   48795       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48796       390912 :          ipack = ipack + 1
   48797       390912 :          packed_data(ipack) = pack_tmp
   48798       390912 :          data_tmp = full_data(idata)
   48799       390912 :          pack_tmp = ISHFT(data_tmp, 36)
   48800       390912 :          pack_tmp = ISHFT(pack_tmp, -36)
   48801       390912 :          idata = idata + 1
   48802       390912 :          data_tmp = full_data(idata)
   48803       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48804       390912 :          data_tmp = IAND(data_tmp, mask_left(36))
   48805       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48806       390912 :          ipack = ipack + 1
   48807       390912 :          packed_data(ipack) = pack_tmp
   48808       390912 :          data_tmp = full_data(idata)
   48809       390912 :          pack_tmp = ISHFT(data_tmp, 41)
   48810       390912 :          pack_tmp = ISHFT(pack_tmp, -41)
   48811       390912 :          idata = idata + 1
   48812       390912 :          data_tmp = full_data(idata)
   48813       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48814       390912 :          data_tmp = IAND(data_tmp, mask_left(41))
   48815       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48816       390912 :          ipack = ipack + 1
   48817       390912 :          packed_data(ipack) = pack_tmp
   48818       390912 :          data_tmp = full_data(idata)
   48819       390912 :          pack_tmp = ISHFT(data_tmp, 46)
   48820       390912 :          pack_tmp = ISHFT(pack_tmp, -46)
   48821       390912 :          idata = idata + 1
   48822       390912 :          data_tmp = full_data(idata)
   48823       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48824       390912 :          data_tmp = IAND(data_tmp, mask_left(46))
   48825       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48826       390912 :          ipack = ipack + 1
   48827       390912 :          packed_data(ipack) = pack_tmp
   48828       390912 :          data_tmp = full_data(idata)
   48829       390912 :          pack_tmp = ISHFT(data_tmp, 51)
   48830       390912 :          pack_tmp = ISHFT(pack_tmp, -51)
   48831       390912 :          idata = idata + 1
   48832       390912 :          data_tmp = full_data(idata)
   48833       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48834       390912 :          data_tmp = IAND(data_tmp, mask_left(51))
   48835       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48836       390912 :          ipack = ipack + 1
   48837       390912 :          packed_data(ipack) = pack_tmp
   48838       390912 :          data_tmp = full_data(idata)
   48839       390912 :          pack_tmp = ISHFT(data_tmp, 56)
   48840       390912 :          pack_tmp = ISHFT(pack_tmp, -56)
   48841       390912 :          idata = idata + 1
   48842       390912 :          data_tmp = full_data(idata)
   48843       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48844       390912 :          data_tmp = IAND(data_tmp, mask_left(56))
   48845       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48846       390912 :          ipack = ipack + 1
   48847       390912 :          packed_data(ipack) = pack_tmp
   48848       390912 :          data_tmp = full_data(idata)
   48849       390912 :          pack_tmp = ISHFT(data_tmp, 61)
   48850       390912 :          pack_tmp = ISHFT(pack_tmp, -59)
   48851       390912 :          idata = idata + 1
   48852       390912 :          data_tmp = full_data(idata)
   48853       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48854       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48855       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
   48856       390912 :          idata = idata + 1
   48857       390912 :          data_tmp = full_data(idata)
   48858       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48859       390912 :          data_tmp = IAND(data_tmp, mask_left(2))
   48860       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48861       390912 :          ipack = ipack + 1
   48862       390912 :          packed_data(ipack) = pack_tmp
   48863       390912 :          data_tmp = full_data(idata)
   48864       390912 :          pack_tmp = ISHFT(data_tmp, 7)
   48865       390912 :          pack_tmp = ISHFT(pack_tmp, -7)
   48866       390912 :          idata = idata + 1
   48867       390912 :          data_tmp = full_data(idata)
   48868       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48869       390912 :          data_tmp = IAND(data_tmp, mask_left(7))
   48870       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48871       390912 :          ipack = ipack + 1
   48872       390912 :          packed_data(ipack) = pack_tmp
   48873       390912 :          data_tmp = full_data(idata)
   48874       390912 :          pack_tmp = ISHFT(data_tmp, 12)
   48875       390912 :          pack_tmp = ISHFT(pack_tmp, -12)
   48876       390912 :          idata = idata + 1
   48877       390912 :          data_tmp = full_data(idata)
   48878       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48879       390912 :          data_tmp = IAND(data_tmp, mask_left(12))
   48880       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48881       390912 :          ipack = ipack + 1
   48882       390912 :          packed_data(ipack) = pack_tmp
   48883       390912 :          data_tmp = full_data(idata)
   48884       390912 :          pack_tmp = ISHFT(data_tmp, 17)
   48885       390912 :          pack_tmp = ISHFT(pack_tmp, -17)
   48886       390912 :          idata = idata + 1
   48887       390912 :          data_tmp = full_data(idata)
   48888       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48889       390912 :          data_tmp = IAND(data_tmp, mask_left(17))
   48890       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48891       390912 :          ipack = ipack + 1
   48892       390912 :          packed_data(ipack) = pack_tmp
   48893       390912 :          data_tmp = full_data(idata)
   48894       390912 :          pack_tmp = ISHFT(data_tmp, 22)
   48895       390912 :          pack_tmp = ISHFT(pack_tmp, -22)
   48896       390912 :          idata = idata + 1
   48897       390912 :          data_tmp = full_data(idata)
   48898       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48899       390912 :          data_tmp = IAND(data_tmp, mask_left(22))
   48900       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48901       390912 :          ipack = ipack + 1
   48902       390912 :          packed_data(ipack) = pack_tmp
   48903       390912 :          data_tmp = full_data(idata)
   48904       390912 :          pack_tmp = ISHFT(data_tmp, 27)
   48905       390912 :          pack_tmp = ISHFT(pack_tmp, -27)
   48906       390912 :          idata = idata + 1
   48907       390912 :          data_tmp = full_data(idata)
   48908       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48909       390912 :          data_tmp = IAND(data_tmp, mask_left(27))
   48910       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48911       390912 :          ipack = ipack + 1
   48912       390912 :          packed_data(ipack) = pack_tmp
   48913       390912 :          data_tmp = full_data(idata)
   48914       390912 :          pack_tmp = ISHFT(data_tmp, 32)
   48915       390912 :          pack_tmp = ISHFT(pack_tmp, -32)
   48916       390912 :          idata = idata + 1
   48917       390912 :          data_tmp = full_data(idata)
   48918       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48919       390912 :          data_tmp = IAND(data_tmp, mask_left(32))
   48920       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48921       390912 :          ipack = ipack + 1
   48922       390912 :          packed_data(ipack) = pack_tmp
   48923       390912 :          data_tmp = full_data(idata)
   48924       390912 :          pack_tmp = ISHFT(data_tmp, 37)
   48925       390912 :          pack_tmp = ISHFT(pack_tmp, -37)
   48926       390912 :          idata = idata + 1
   48927       390912 :          data_tmp = full_data(idata)
   48928       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48929       390912 :          data_tmp = IAND(data_tmp, mask_left(37))
   48930       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48931       390912 :          ipack = ipack + 1
   48932       390912 :          packed_data(ipack) = pack_tmp
   48933       390912 :          data_tmp = full_data(idata)
   48934       390912 :          pack_tmp = ISHFT(data_tmp, 42)
   48935       390912 :          pack_tmp = ISHFT(pack_tmp, -42)
   48936       390912 :          idata = idata + 1
   48937       390912 :          data_tmp = full_data(idata)
   48938       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48939       390912 :          data_tmp = IAND(data_tmp, mask_left(42))
   48940       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48941       390912 :          ipack = ipack + 1
   48942       390912 :          packed_data(ipack) = pack_tmp
   48943       390912 :          data_tmp = full_data(idata)
   48944       390912 :          pack_tmp = ISHFT(data_tmp, 47)
   48945       390912 :          pack_tmp = ISHFT(pack_tmp, -47)
   48946       390912 :          idata = idata + 1
   48947       390912 :          data_tmp = full_data(idata)
   48948       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48949       390912 :          data_tmp = IAND(data_tmp, mask_left(47))
   48950       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48951       390912 :          ipack = ipack + 1
   48952       390912 :          packed_data(ipack) = pack_tmp
   48953       390912 :          data_tmp = full_data(idata)
   48954       390912 :          pack_tmp = ISHFT(data_tmp, 52)
   48955       390912 :          pack_tmp = ISHFT(pack_tmp, -52)
   48956       390912 :          idata = idata + 1
   48957       390912 :          data_tmp = full_data(idata)
   48958       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48959       390912 :          data_tmp = IAND(data_tmp, mask_left(52))
   48960       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48961       390912 :          ipack = ipack + 1
   48962       390912 :          packed_data(ipack) = pack_tmp
   48963       390912 :          data_tmp = full_data(idata)
   48964       390912 :          pack_tmp = ISHFT(data_tmp, 57)
   48965       390912 :          pack_tmp = ISHFT(pack_tmp, -57)
   48966       390912 :          idata = idata + 1
   48967       390912 :          data_tmp = full_data(idata)
   48968       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48969       390912 :          data_tmp = IAND(data_tmp, mask_left(57))
   48970       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48971       390912 :          ipack = ipack + 1
   48972       390912 :          packed_data(ipack) = pack_tmp
   48973       390912 :          data_tmp = full_data(idata)
   48974       390912 :          pack_tmp = ISHFT(data_tmp, 62)
   48975       390912 :          pack_tmp = ISHFT(pack_tmp, -59)
   48976       390912 :          idata = idata + 1
   48977       390912 :          data_tmp = full_data(idata)
   48978       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48979       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48980       390912 :          pack_tmp = ISHFT(pack_tmp, -3)
   48981       390912 :          idata = idata + 1
   48982       390912 :          data_tmp = full_data(idata)
   48983       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48984       390912 :          data_tmp = IAND(data_tmp, mask_left(3))
   48985       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48986       390912 :          ipack = ipack + 1
   48987       390912 :          packed_data(ipack) = pack_tmp
   48988       390912 :          data_tmp = full_data(idata)
   48989       390912 :          pack_tmp = ISHFT(data_tmp, 8)
   48990       390912 :          pack_tmp = ISHFT(pack_tmp, -8)
   48991       390912 :          idata = idata + 1
   48992       390912 :          data_tmp = full_data(idata)
   48993       390912 :          data_tmp = ISHFT(data_tmp, 5)
   48994       390912 :          data_tmp = IAND(data_tmp, mask_left(8))
   48995       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   48996       390912 :          ipack = ipack + 1
   48997       390912 :          packed_data(ipack) = pack_tmp
   48998       390912 :          data_tmp = full_data(idata)
   48999       390912 :          pack_tmp = ISHFT(data_tmp, 13)
   49000       390912 :          pack_tmp = ISHFT(pack_tmp, -13)
   49001       390912 :          idata = idata + 1
   49002       390912 :          data_tmp = full_data(idata)
   49003       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49004       390912 :          data_tmp = IAND(data_tmp, mask_left(13))
   49005       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49006       390912 :          ipack = ipack + 1
   49007       390912 :          packed_data(ipack) = pack_tmp
   49008       390912 :          data_tmp = full_data(idata)
   49009       390912 :          pack_tmp = ISHFT(data_tmp, 18)
   49010       390912 :          pack_tmp = ISHFT(pack_tmp, -18)
   49011       390912 :          idata = idata + 1
   49012       390912 :          data_tmp = full_data(idata)
   49013       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49014       390912 :          data_tmp = IAND(data_tmp, mask_left(18))
   49015       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49016       390912 :          ipack = ipack + 1
   49017       390912 :          packed_data(ipack) = pack_tmp
   49018       390912 :          data_tmp = full_data(idata)
   49019       390912 :          pack_tmp = ISHFT(data_tmp, 23)
   49020       390912 :          pack_tmp = ISHFT(pack_tmp, -23)
   49021       390912 :          idata = idata + 1
   49022       390912 :          data_tmp = full_data(idata)
   49023       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49024       390912 :          data_tmp = IAND(data_tmp, mask_left(23))
   49025       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49026       390912 :          ipack = ipack + 1
   49027       390912 :          packed_data(ipack) = pack_tmp
   49028       390912 :          data_tmp = full_data(idata)
   49029       390912 :          pack_tmp = ISHFT(data_tmp, 28)
   49030       390912 :          pack_tmp = ISHFT(pack_tmp, -28)
   49031       390912 :          idata = idata + 1
   49032       390912 :          data_tmp = full_data(idata)
   49033       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49034       390912 :          data_tmp = IAND(data_tmp, mask_left(28))
   49035       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49036       390912 :          ipack = ipack + 1
   49037       390912 :          packed_data(ipack) = pack_tmp
   49038       390912 :          data_tmp = full_data(idata)
   49039       390912 :          pack_tmp = ISHFT(data_tmp, 33)
   49040       390912 :          pack_tmp = ISHFT(pack_tmp, -33)
   49041       390912 :          idata = idata + 1
   49042       390912 :          data_tmp = full_data(idata)
   49043       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49044       390912 :          data_tmp = IAND(data_tmp, mask_left(33))
   49045       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49046       390912 :          ipack = ipack + 1
   49047       390912 :          packed_data(ipack) = pack_tmp
   49048       390912 :          data_tmp = full_data(idata)
   49049       390912 :          pack_tmp = ISHFT(data_tmp, 38)
   49050       390912 :          pack_tmp = ISHFT(pack_tmp, -38)
   49051       390912 :          idata = idata + 1
   49052       390912 :          data_tmp = full_data(idata)
   49053       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49054       390912 :          data_tmp = IAND(data_tmp, mask_left(38))
   49055       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49056       390912 :          ipack = ipack + 1
   49057       390912 :          packed_data(ipack) = pack_tmp
   49058       390912 :          data_tmp = full_data(idata)
   49059       390912 :          pack_tmp = ISHFT(data_tmp, 43)
   49060       390912 :          pack_tmp = ISHFT(pack_tmp, -43)
   49061       390912 :          idata = idata + 1
   49062       390912 :          data_tmp = full_data(idata)
   49063       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49064       390912 :          data_tmp = IAND(data_tmp, mask_left(43))
   49065       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49066       390912 :          ipack = ipack + 1
   49067       390912 :          packed_data(ipack) = pack_tmp
   49068       390912 :          data_tmp = full_data(idata)
   49069       390912 :          pack_tmp = ISHFT(data_tmp, 48)
   49070       390912 :          pack_tmp = ISHFT(pack_tmp, -48)
   49071       390912 :          idata = idata + 1
   49072       390912 :          data_tmp = full_data(idata)
   49073       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49074       390912 :          data_tmp = IAND(data_tmp, mask_left(48))
   49075       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49076       390912 :          ipack = ipack + 1
   49077       390912 :          packed_data(ipack) = pack_tmp
   49078       390912 :          data_tmp = full_data(idata)
   49079       390912 :          pack_tmp = ISHFT(data_tmp, 53)
   49080       390912 :          pack_tmp = ISHFT(pack_tmp, -53)
   49081       390912 :          idata = idata + 1
   49082       390912 :          data_tmp = full_data(idata)
   49083       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49084       390912 :          data_tmp = IAND(data_tmp, mask_left(53))
   49085       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49086       390912 :          ipack = ipack + 1
   49087       390912 :          packed_data(ipack) = pack_tmp
   49088       390912 :          data_tmp = full_data(idata)
   49089       390912 :          pack_tmp = ISHFT(data_tmp, 58)
   49090       390912 :          pack_tmp = ISHFT(pack_tmp, -58)
   49091       390912 :          idata = idata + 1
   49092       390912 :          data_tmp = full_data(idata)
   49093       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49094       390912 :          data_tmp = IAND(data_tmp, mask_left(58))
   49095       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49096       390912 :          ipack = ipack + 1
   49097       390912 :          packed_data(ipack) = pack_tmp
   49098       390912 :          data_tmp = full_data(idata)
   49099       390912 :          pack_tmp = ISHFT(data_tmp, 63)
   49100       390912 :          pack_tmp = ISHFT(pack_tmp, -59)
   49101       390912 :          idata = idata + 1
   49102       390912 :          data_tmp = full_data(idata)
   49103       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49104       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49105       390912 :          pack_tmp = ISHFT(pack_tmp, -4)
   49106       390912 :          idata = idata + 1
   49107       390912 :          data_tmp = full_data(idata)
   49108       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49109       390912 :          data_tmp = IAND(data_tmp, mask_left(4))
   49110       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49111       390912 :          ipack = ipack + 1
   49112       390912 :          packed_data(ipack) = pack_tmp
   49113       390912 :          data_tmp = full_data(idata)
   49114       390912 :          pack_tmp = ISHFT(data_tmp, 9)
   49115       390912 :          pack_tmp = ISHFT(pack_tmp, -9)
   49116       390912 :          idata = idata + 1
   49117       390912 :          data_tmp = full_data(idata)
   49118       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49119       390912 :          data_tmp = IAND(data_tmp, mask_left(9))
   49120       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49121       390912 :          ipack = ipack + 1
   49122       390912 :          packed_data(ipack) = pack_tmp
   49123       390912 :          data_tmp = full_data(idata)
   49124       390912 :          pack_tmp = ISHFT(data_tmp, 14)
   49125       390912 :          pack_tmp = ISHFT(pack_tmp, -14)
   49126       390912 :          idata = idata + 1
   49127       390912 :          data_tmp = full_data(idata)
   49128       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49129       390912 :          data_tmp = IAND(data_tmp, mask_left(14))
   49130       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49131       390912 :          ipack = ipack + 1
   49132       390912 :          packed_data(ipack) = pack_tmp
   49133       390912 :          data_tmp = full_data(idata)
   49134       390912 :          pack_tmp = ISHFT(data_tmp, 19)
   49135       390912 :          pack_tmp = ISHFT(pack_tmp, -19)
   49136       390912 :          idata = idata + 1
   49137       390912 :          data_tmp = full_data(idata)
   49138       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49139       390912 :          data_tmp = IAND(data_tmp, mask_left(19))
   49140       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49141       390912 :          ipack = ipack + 1
   49142       390912 :          packed_data(ipack) = pack_tmp
   49143       390912 :          data_tmp = full_data(idata)
   49144       390912 :          pack_tmp = ISHFT(data_tmp, 24)
   49145       390912 :          pack_tmp = ISHFT(pack_tmp, -24)
   49146       390912 :          idata = idata + 1
   49147       390912 :          data_tmp = full_data(idata)
   49148       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49149       390912 :          data_tmp = IAND(data_tmp, mask_left(24))
   49150       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49151       390912 :          ipack = ipack + 1
   49152       390912 :          packed_data(ipack) = pack_tmp
   49153       390912 :          data_tmp = full_data(idata)
   49154       390912 :          pack_tmp = ISHFT(data_tmp, 29)
   49155       390912 :          pack_tmp = ISHFT(pack_tmp, -29)
   49156       390912 :          idata = idata + 1
   49157       390912 :          data_tmp = full_data(idata)
   49158       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49159       390912 :          data_tmp = IAND(data_tmp, mask_left(29))
   49160       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49161       390912 :          ipack = ipack + 1
   49162       390912 :          packed_data(ipack) = pack_tmp
   49163       390912 :          data_tmp = full_data(idata)
   49164       390912 :          pack_tmp = ISHFT(data_tmp, 34)
   49165       390912 :          pack_tmp = ISHFT(pack_tmp, -34)
   49166       390912 :          idata = idata + 1
   49167       390912 :          data_tmp = full_data(idata)
   49168       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49169       390912 :          data_tmp = IAND(data_tmp, mask_left(34))
   49170       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49171       390912 :          ipack = ipack + 1
   49172       390912 :          packed_data(ipack) = pack_tmp
   49173       390912 :          data_tmp = full_data(idata)
   49174       390912 :          pack_tmp = ISHFT(data_tmp, 39)
   49175       390912 :          pack_tmp = ISHFT(pack_tmp, -39)
   49176       390912 :          idata = idata + 1
   49177       390912 :          data_tmp = full_data(idata)
   49178       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49179       390912 :          data_tmp = IAND(data_tmp, mask_left(39))
   49180       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49181       390912 :          ipack = ipack + 1
   49182       390912 :          packed_data(ipack) = pack_tmp
   49183       390912 :          data_tmp = full_data(idata)
   49184       390912 :          pack_tmp = ISHFT(data_tmp, 44)
   49185       390912 :          pack_tmp = ISHFT(pack_tmp, -44)
   49186       390912 :          idata = idata + 1
   49187       390912 :          data_tmp = full_data(idata)
   49188       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49189       390912 :          data_tmp = IAND(data_tmp, mask_left(44))
   49190       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49191       390912 :          ipack = ipack + 1
   49192       390912 :          packed_data(ipack) = pack_tmp
   49193       390912 :          data_tmp = full_data(idata)
   49194       390912 :          pack_tmp = ISHFT(data_tmp, 49)
   49195       390912 :          pack_tmp = ISHFT(pack_tmp, -49)
   49196       390912 :          idata = idata + 1
   49197       390912 :          data_tmp = full_data(idata)
   49198       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49199       390912 :          data_tmp = IAND(data_tmp, mask_left(49))
   49200       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49201       390912 :          ipack = ipack + 1
   49202       390912 :          packed_data(ipack) = pack_tmp
   49203       390912 :          data_tmp = full_data(idata)
   49204       390912 :          pack_tmp = ISHFT(data_tmp, 54)
   49205       390912 :          pack_tmp = ISHFT(pack_tmp, -54)
   49206       390912 :          idata = idata + 1
   49207       390912 :          data_tmp = full_data(idata)
   49208       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49209       390912 :          data_tmp = IAND(data_tmp, mask_left(54))
   49210       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49211       390912 :          ipack = ipack + 1
   49212       390912 :          packed_data(ipack) = pack_tmp
   49213       390912 :          data_tmp = full_data(idata)
   49214       390912 :          pack_tmp = ISHFT(data_tmp, 59)
   49215       390912 :          pack_tmp = ISHFT(pack_tmp, -59)
   49216       390912 :          idata = idata + 1
   49217       390912 :          data_tmp = full_data(idata)
   49218       390912 :          data_tmp = ISHFT(data_tmp, 5)
   49219       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49220              :          pack_tmp = ISHFT(pack_tmp, 0)
   49221       390912 :          pack_tmp = ISHFT(pack_tmp, 0)
   49222       390912 :          ipack = ipack + 1
   49223       390912 :          packed_data(ipack) = pack_tmp
   49224              :       END DO
   49225        24432 :       IF (Ndata_rep < Ndata) THEN
   49226            0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   49227              :       END IF
   49228        24432 :    END SUBROUTINE ints2bits_59
   49229              : 
   49230              : ! **************************************************************************************************
   49231              : !> \brief ...
   49232              : !> \param Ndata ...
   49233              : !> \param packed_data ...
   49234              : !> \param full_data ...
   49235              : ! **************************************************************************************************
   49236        98465 :    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        98465 :       ipack = 0
   49247        98465 :       idata = 0
   49248        98465 :       pack_tmp = 0
   49249        98465 :       Ndata_rep = (Ndata/64)*64
   49250        98465 :       DO kdata = 1, Ndata_rep, 64
   49251      1575440 :          idata = idata + 1
   49252      1575440 :          data_tmp = ISHFT(pack_tmp, 59)
   49253      1575440 :          ipack = ipack + 1
   49254      1575440 :          pack_tmp = packed_data(ipack)
   49255      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   49256      1575440 :          pack_tmp = ISHFT(pack_tmp, -59)
   49257      1575440 :          idata = idata + 1
   49258      1575440 :          data_tmp = ISHFT(pack_tmp, 54)
   49259      1575440 :          ipack = ipack + 1
   49260      1575440 :          pack_tmp = packed_data(ipack)
   49261      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   49262      1575440 :          pack_tmp = ISHFT(pack_tmp, -54)
   49263      1575440 :          idata = idata + 1
   49264      1575440 :          data_tmp = ISHFT(pack_tmp, 49)
   49265      1575440 :          ipack = ipack + 1
   49266      1575440 :          pack_tmp = packed_data(ipack)
   49267      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   49268      1575440 :          pack_tmp = ISHFT(pack_tmp, -49)
   49269      1575440 :          idata = idata + 1
   49270      1575440 :          data_tmp = ISHFT(pack_tmp, 44)
   49271      1575440 :          ipack = ipack + 1
   49272      1575440 :          pack_tmp = packed_data(ipack)
   49273      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   49274      1575440 :          pack_tmp = ISHFT(pack_tmp, -44)
   49275      1575440 :          idata = idata + 1
   49276      1575440 :          data_tmp = ISHFT(pack_tmp, 39)
   49277      1575440 :          ipack = ipack + 1
   49278      1575440 :          pack_tmp = packed_data(ipack)
   49279      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   49280      1575440 :          pack_tmp = ISHFT(pack_tmp, -39)
   49281      1575440 :          idata = idata + 1
   49282      1575440 :          data_tmp = ISHFT(pack_tmp, 34)
   49283      1575440 :          ipack = ipack + 1
   49284      1575440 :          pack_tmp = packed_data(ipack)
   49285      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   49286      1575440 :          pack_tmp = ISHFT(pack_tmp, -34)
   49287      1575440 :          idata = idata + 1
   49288      1575440 :          data_tmp = ISHFT(pack_tmp, 29)
   49289      1575440 :          ipack = ipack + 1
   49290      1575440 :          pack_tmp = packed_data(ipack)
   49291      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   49292      1575440 :          pack_tmp = ISHFT(pack_tmp, -29)
   49293      1575440 :          idata = idata + 1
   49294      1575440 :          data_tmp = ISHFT(pack_tmp, 24)
   49295      1575440 :          ipack = ipack + 1
   49296      1575440 :          pack_tmp = packed_data(ipack)
   49297      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   49298      1575440 :          pack_tmp = ISHFT(pack_tmp, -24)
   49299      1575440 :          idata = idata + 1
   49300      1575440 :          data_tmp = ISHFT(pack_tmp, 19)
   49301      1575440 :          ipack = ipack + 1
   49302      1575440 :          pack_tmp = packed_data(ipack)
   49303      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   49304      1575440 :          pack_tmp = ISHFT(pack_tmp, -19)
   49305      1575440 :          idata = idata + 1
   49306      1575440 :          data_tmp = ISHFT(pack_tmp, 14)
   49307      1575440 :          ipack = ipack + 1
   49308      1575440 :          pack_tmp = packed_data(ipack)
   49309      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   49310      1575440 :          pack_tmp = ISHFT(pack_tmp, -14)
   49311      1575440 :          idata = idata + 1
   49312      1575440 :          data_tmp = ISHFT(pack_tmp, 9)
   49313      1575440 :          ipack = ipack + 1
   49314      1575440 :          pack_tmp = packed_data(ipack)
   49315      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   49316      1575440 :          pack_tmp = ISHFT(pack_tmp, -9)
   49317      1575440 :          idata = idata + 1
   49318      1575440 :          data_tmp = ISHFT(pack_tmp, 4)
   49319      1575440 :          ipack = ipack + 1
   49320      1575440 :          pack_tmp = packed_data(ipack)
   49321      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   49322      1575440 :          pack_tmp = ISHFT(pack_tmp, -4)
   49323      1575440 :          idata = idata + 1
   49324      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49325      1575440 :          full_data(idata) = data_tmp
   49326      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49327      1575440 :          idata = idata + 1
   49328      1575440 :          data_tmp = ISHFT(pack_tmp, 58)
   49329      1575440 :          ipack = ipack + 1
   49330      1575440 :          pack_tmp = packed_data(ipack)
   49331      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   49332      1575440 :          pack_tmp = ISHFT(pack_tmp, -58)
   49333      1575440 :          idata = idata + 1
   49334      1575440 :          data_tmp = ISHFT(pack_tmp, 53)
   49335      1575440 :          ipack = ipack + 1
   49336      1575440 :          pack_tmp = packed_data(ipack)
   49337      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   49338      1575440 :          pack_tmp = ISHFT(pack_tmp, -53)
   49339      1575440 :          idata = idata + 1
   49340      1575440 :          data_tmp = ISHFT(pack_tmp, 48)
   49341      1575440 :          ipack = ipack + 1
   49342      1575440 :          pack_tmp = packed_data(ipack)
   49343      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   49344      1575440 :          pack_tmp = ISHFT(pack_tmp, -48)
   49345      1575440 :          idata = idata + 1
   49346      1575440 :          data_tmp = ISHFT(pack_tmp, 43)
   49347      1575440 :          ipack = ipack + 1
   49348      1575440 :          pack_tmp = packed_data(ipack)
   49349      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   49350      1575440 :          pack_tmp = ISHFT(pack_tmp, -43)
   49351      1575440 :          idata = idata + 1
   49352      1575440 :          data_tmp = ISHFT(pack_tmp, 38)
   49353      1575440 :          ipack = ipack + 1
   49354      1575440 :          pack_tmp = packed_data(ipack)
   49355      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   49356      1575440 :          pack_tmp = ISHFT(pack_tmp, -38)
   49357      1575440 :          idata = idata + 1
   49358      1575440 :          data_tmp = ISHFT(pack_tmp, 33)
   49359      1575440 :          ipack = ipack + 1
   49360      1575440 :          pack_tmp = packed_data(ipack)
   49361      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   49362      1575440 :          pack_tmp = ISHFT(pack_tmp, -33)
   49363      1575440 :          idata = idata + 1
   49364      1575440 :          data_tmp = ISHFT(pack_tmp, 28)
   49365      1575440 :          ipack = ipack + 1
   49366      1575440 :          pack_tmp = packed_data(ipack)
   49367      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   49368      1575440 :          pack_tmp = ISHFT(pack_tmp, -28)
   49369      1575440 :          idata = idata + 1
   49370      1575440 :          data_tmp = ISHFT(pack_tmp, 23)
   49371      1575440 :          ipack = ipack + 1
   49372      1575440 :          pack_tmp = packed_data(ipack)
   49373      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   49374      1575440 :          pack_tmp = ISHFT(pack_tmp, -23)
   49375      1575440 :          idata = idata + 1
   49376      1575440 :          data_tmp = ISHFT(pack_tmp, 18)
   49377      1575440 :          ipack = ipack + 1
   49378      1575440 :          pack_tmp = packed_data(ipack)
   49379      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   49380      1575440 :          pack_tmp = ISHFT(pack_tmp, -18)
   49381      1575440 :          idata = idata + 1
   49382      1575440 :          data_tmp = ISHFT(pack_tmp, 13)
   49383      1575440 :          ipack = ipack + 1
   49384      1575440 :          pack_tmp = packed_data(ipack)
   49385      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   49386      1575440 :          pack_tmp = ISHFT(pack_tmp, -13)
   49387      1575440 :          idata = idata + 1
   49388      1575440 :          data_tmp = ISHFT(pack_tmp, 8)
   49389      1575440 :          ipack = ipack + 1
   49390      1575440 :          pack_tmp = packed_data(ipack)
   49391      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   49392      1575440 :          pack_tmp = ISHFT(pack_tmp, -8)
   49393      1575440 :          idata = idata + 1
   49394      1575440 :          data_tmp = ISHFT(pack_tmp, 3)
   49395      1575440 :          ipack = ipack + 1
   49396      1575440 :          pack_tmp = packed_data(ipack)
   49397      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   49398      1575440 :          pack_tmp = ISHFT(pack_tmp, -3)
   49399      1575440 :          idata = idata + 1
   49400      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49401      1575440 :          full_data(idata) = data_tmp
   49402      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49403      1575440 :          idata = idata + 1
   49404      1575440 :          data_tmp = ISHFT(pack_tmp, 57)
   49405      1575440 :          ipack = ipack + 1
   49406      1575440 :          pack_tmp = packed_data(ipack)
   49407      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   49408      1575440 :          pack_tmp = ISHFT(pack_tmp, -57)
   49409      1575440 :          idata = idata + 1
   49410      1575440 :          data_tmp = ISHFT(pack_tmp, 52)
   49411      1575440 :          ipack = ipack + 1
   49412      1575440 :          pack_tmp = packed_data(ipack)
   49413      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   49414      1575440 :          pack_tmp = ISHFT(pack_tmp, -52)
   49415      1575440 :          idata = idata + 1
   49416      1575440 :          data_tmp = ISHFT(pack_tmp, 47)
   49417      1575440 :          ipack = ipack + 1
   49418      1575440 :          pack_tmp = packed_data(ipack)
   49419      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   49420      1575440 :          pack_tmp = ISHFT(pack_tmp, -47)
   49421      1575440 :          idata = idata + 1
   49422      1575440 :          data_tmp = ISHFT(pack_tmp, 42)
   49423      1575440 :          ipack = ipack + 1
   49424      1575440 :          pack_tmp = packed_data(ipack)
   49425      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   49426      1575440 :          pack_tmp = ISHFT(pack_tmp, -42)
   49427      1575440 :          idata = idata + 1
   49428      1575440 :          data_tmp = ISHFT(pack_tmp, 37)
   49429      1575440 :          ipack = ipack + 1
   49430      1575440 :          pack_tmp = packed_data(ipack)
   49431      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   49432      1575440 :          pack_tmp = ISHFT(pack_tmp, -37)
   49433      1575440 :          idata = idata + 1
   49434      1575440 :          data_tmp = ISHFT(pack_tmp, 32)
   49435      1575440 :          ipack = ipack + 1
   49436      1575440 :          pack_tmp = packed_data(ipack)
   49437      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   49438      1575440 :          pack_tmp = ISHFT(pack_tmp, -32)
   49439      1575440 :          idata = idata + 1
   49440      1575440 :          data_tmp = ISHFT(pack_tmp, 27)
   49441      1575440 :          ipack = ipack + 1
   49442      1575440 :          pack_tmp = packed_data(ipack)
   49443      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   49444      1575440 :          pack_tmp = ISHFT(pack_tmp, -27)
   49445      1575440 :          idata = idata + 1
   49446      1575440 :          data_tmp = ISHFT(pack_tmp, 22)
   49447      1575440 :          ipack = ipack + 1
   49448      1575440 :          pack_tmp = packed_data(ipack)
   49449      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   49450      1575440 :          pack_tmp = ISHFT(pack_tmp, -22)
   49451      1575440 :          idata = idata + 1
   49452      1575440 :          data_tmp = ISHFT(pack_tmp, 17)
   49453      1575440 :          ipack = ipack + 1
   49454      1575440 :          pack_tmp = packed_data(ipack)
   49455      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   49456      1575440 :          pack_tmp = ISHFT(pack_tmp, -17)
   49457      1575440 :          idata = idata + 1
   49458      1575440 :          data_tmp = ISHFT(pack_tmp, 12)
   49459      1575440 :          ipack = ipack + 1
   49460      1575440 :          pack_tmp = packed_data(ipack)
   49461      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   49462      1575440 :          pack_tmp = ISHFT(pack_tmp, -12)
   49463      1575440 :          idata = idata + 1
   49464      1575440 :          data_tmp = ISHFT(pack_tmp, 7)
   49465      1575440 :          ipack = ipack + 1
   49466      1575440 :          pack_tmp = packed_data(ipack)
   49467      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   49468      1575440 :          pack_tmp = ISHFT(pack_tmp, -7)
   49469      1575440 :          idata = idata + 1
   49470      1575440 :          data_tmp = ISHFT(pack_tmp, 2)
   49471      1575440 :          ipack = ipack + 1
   49472      1575440 :          pack_tmp = packed_data(ipack)
   49473      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   49474      1575440 :          pack_tmp = ISHFT(pack_tmp, -2)
   49475      1575440 :          idata = idata + 1
   49476      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49477      1575440 :          full_data(idata) = data_tmp
   49478      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49479      1575440 :          idata = idata + 1
   49480      1575440 :          data_tmp = ISHFT(pack_tmp, 56)
   49481      1575440 :          ipack = ipack + 1
   49482      1575440 :          pack_tmp = packed_data(ipack)
   49483      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   49484      1575440 :          pack_tmp = ISHFT(pack_tmp, -56)
   49485      1575440 :          idata = idata + 1
   49486      1575440 :          data_tmp = ISHFT(pack_tmp, 51)
   49487      1575440 :          ipack = ipack + 1
   49488      1575440 :          pack_tmp = packed_data(ipack)
   49489      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   49490      1575440 :          pack_tmp = ISHFT(pack_tmp, -51)
   49491      1575440 :          idata = idata + 1
   49492      1575440 :          data_tmp = ISHFT(pack_tmp, 46)
   49493      1575440 :          ipack = ipack + 1
   49494      1575440 :          pack_tmp = packed_data(ipack)
   49495      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   49496      1575440 :          pack_tmp = ISHFT(pack_tmp, -46)
   49497      1575440 :          idata = idata + 1
   49498      1575440 :          data_tmp = ISHFT(pack_tmp, 41)
   49499      1575440 :          ipack = ipack + 1
   49500      1575440 :          pack_tmp = packed_data(ipack)
   49501      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   49502      1575440 :          pack_tmp = ISHFT(pack_tmp, -41)
   49503      1575440 :          idata = idata + 1
   49504      1575440 :          data_tmp = ISHFT(pack_tmp, 36)
   49505      1575440 :          ipack = ipack + 1
   49506      1575440 :          pack_tmp = packed_data(ipack)
   49507      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   49508      1575440 :          pack_tmp = ISHFT(pack_tmp, -36)
   49509      1575440 :          idata = idata + 1
   49510      1575440 :          data_tmp = ISHFT(pack_tmp, 31)
   49511      1575440 :          ipack = ipack + 1
   49512      1575440 :          pack_tmp = packed_data(ipack)
   49513      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   49514      1575440 :          pack_tmp = ISHFT(pack_tmp, -31)
   49515      1575440 :          idata = idata + 1
   49516      1575440 :          data_tmp = ISHFT(pack_tmp, 26)
   49517      1575440 :          ipack = ipack + 1
   49518      1575440 :          pack_tmp = packed_data(ipack)
   49519      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   49520      1575440 :          pack_tmp = ISHFT(pack_tmp, -26)
   49521      1575440 :          idata = idata + 1
   49522      1575440 :          data_tmp = ISHFT(pack_tmp, 21)
   49523      1575440 :          ipack = ipack + 1
   49524      1575440 :          pack_tmp = packed_data(ipack)
   49525      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   49526      1575440 :          pack_tmp = ISHFT(pack_tmp, -21)
   49527      1575440 :          idata = idata + 1
   49528      1575440 :          data_tmp = ISHFT(pack_tmp, 16)
   49529      1575440 :          ipack = ipack + 1
   49530      1575440 :          pack_tmp = packed_data(ipack)
   49531      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   49532      1575440 :          pack_tmp = ISHFT(pack_tmp, -16)
   49533      1575440 :          idata = idata + 1
   49534      1575440 :          data_tmp = ISHFT(pack_tmp, 11)
   49535      1575440 :          ipack = ipack + 1
   49536      1575440 :          pack_tmp = packed_data(ipack)
   49537      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   49538      1575440 :          pack_tmp = ISHFT(pack_tmp, -11)
   49539      1575440 :          idata = idata + 1
   49540      1575440 :          data_tmp = ISHFT(pack_tmp, 6)
   49541      1575440 :          ipack = ipack + 1
   49542      1575440 :          pack_tmp = packed_data(ipack)
   49543      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   49544      1575440 :          pack_tmp = ISHFT(pack_tmp, -6)
   49545      1575440 :          idata = idata + 1
   49546      1575440 :          data_tmp = ISHFT(pack_tmp, 1)
   49547      1575440 :          ipack = ipack + 1
   49548      1575440 :          pack_tmp = packed_data(ipack)
   49549      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   49550      1575440 :          pack_tmp = ISHFT(pack_tmp, -1)
   49551      1575440 :          idata = idata + 1
   49552      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49553      1575440 :          full_data(idata) = data_tmp
   49554      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49555      1575440 :          idata = idata + 1
   49556      1575440 :          data_tmp = ISHFT(pack_tmp, 55)
   49557      1575440 :          ipack = ipack + 1
   49558      1575440 :          pack_tmp = packed_data(ipack)
   49559      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   49560      1575440 :          pack_tmp = ISHFT(pack_tmp, -55)
   49561      1575440 :          idata = idata + 1
   49562      1575440 :          data_tmp = ISHFT(pack_tmp, 50)
   49563      1575440 :          ipack = ipack + 1
   49564      1575440 :          pack_tmp = packed_data(ipack)
   49565      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   49566      1575440 :          pack_tmp = ISHFT(pack_tmp, -50)
   49567      1575440 :          idata = idata + 1
   49568      1575440 :          data_tmp = ISHFT(pack_tmp, 45)
   49569      1575440 :          ipack = ipack + 1
   49570      1575440 :          pack_tmp = packed_data(ipack)
   49571      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   49572      1575440 :          pack_tmp = ISHFT(pack_tmp, -45)
   49573      1575440 :          idata = idata + 1
   49574      1575440 :          data_tmp = ISHFT(pack_tmp, 40)
   49575      1575440 :          ipack = ipack + 1
   49576      1575440 :          pack_tmp = packed_data(ipack)
   49577      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   49578      1575440 :          pack_tmp = ISHFT(pack_tmp, -40)
   49579      1575440 :          idata = idata + 1
   49580      1575440 :          data_tmp = ISHFT(pack_tmp, 35)
   49581      1575440 :          ipack = ipack + 1
   49582      1575440 :          pack_tmp = packed_data(ipack)
   49583      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   49584      1575440 :          pack_tmp = ISHFT(pack_tmp, -35)
   49585      1575440 :          idata = idata + 1
   49586      1575440 :          data_tmp = ISHFT(pack_tmp, 30)
   49587      1575440 :          ipack = ipack + 1
   49588      1575440 :          pack_tmp = packed_data(ipack)
   49589      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   49590      1575440 :          pack_tmp = ISHFT(pack_tmp, -30)
   49591      1575440 :          idata = idata + 1
   49592      1575440 :          data_tmp = ISHFT(pack_tmp, 25)
   49593      1575440 :          ipack = ipack + 1
   49594      1575440 :          pack_tmp = packed_data(ipack)
   49595      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   49596      1575440 :          pack_tmp = ISHFT(pack_tmp, -25)
   49597      1575440 :          idata = idata + 1
   49598      1575440 :          data_tmp = ISHFT(pack_tmp, 20)
   49599      1575440 :          ipack = ipack + 1
   49600      1575440 :          pack_tmp = packed_data(ipack)
   49601      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   49602      1575440 :          pack_tmp = ISHFT(pack_tmp, -20)
   49603      1575440 :          idata = idata + 1
   49604      1575440 :          data_tmp = ISHFT(pack_tmp, 15)
   49605      1575440 :          ipack = ipack + 1
   49606      1575440 :          pack_tmp = packed_data(ipack)
   49607      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   49608      1575440 :          pack_tmp = ISHFT(pack_tmp, -15)
   49609      1575440 :          idata = idata + 1
   49610      1575440 :          data_tmp = ISHFT(pack_tmp, 10)
   49611      1575440 :          ipack = ipack + 1
   49612      1575440 :          pack_tmp = packed_data(ipack)
   49613      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   49614      1575440 :          pack_tmp = ISHFT(pack_tmp, -10)
   49615      1575440 :          idata = idata + 1
   49616      1575440 :          data_tmp = ISHFT(pack_tmp, 5)
   49617      1575440 :          ipack = ipack + 1
   49618      1575440 :          pack_tmp = packed_data(ipack)
   49619      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   49620      1575440 :          pack_tmp = ISHFT(pack_tmp, -5)
   49621      1575440 :          idata = idata + 1
   49622      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   49623      1575440 :          full_data(idata) = data_tmp
   49624      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   49625              :       END DO
   49626        98465 :       IF (Ndata_rep < Ndata) THEN
   49627            0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   49628              :       END IF
   49629        98465 :    END SUBROUTINE bits2ints_59
   49630              : 
   49631              : ! **************************************************************************************************
   49632              : !> \brief ...
   49633              : !> \param Ndata ...
   49634              : !> \param packed_data ...
   49635              : !> \param full_data ...
   49636              : ! **************************************************************************************************
   49637        24432 :    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        24432 :       idata = 0
   49648        24432 :       ipack = 0
   49649        24432 :       Ndata_rep = (Ndata/64)*64
   49650        24432 :       DO kdata = 1, Ndata_rep, 64
   49651       390912 :          pack_tmp = 0
   49652       390912 :          idata = idata + 1
   49653       390912 :          data_tmp = full_data(idata)
   49654       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49655       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49656       390912 :          pack_tmp = ISHFT(pack_tmp, -4)
   49657       390912 :          idata = idata + 1
   49658       390912 :          data_tmp = full_data(idata)
   49659       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49660       390912 :          data_tmp = IAND(data_tmp, mask_left(4))
   49661       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49662       390912 :          ipack = ipack + 1
   49663       390912 :          packed_data(ipack) = pack_tmp
   49664       390912 :          data_tmp = full_data(idata)
   49665       390912 :          pack_tmp = ISHFT(data_tmp, 8)
   49666       390912 :          pack_tmp = ISHFT(pack_tmp, -8)
   49667       390912 :          idata = idata + 1
   49668       390912 :          data_tmp = full_data(idata)
   49669       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49670       390912 :          data_tmp = IAND(data_tmp, mask_left(8))
   49671       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49672       390912 :          ipack = ipack + 1
   49673       390912 :          packed_data(ipack) = pack_tmp
   49674       390912 :          data_tmp = full_data(idata)
   49675       390912 :          pack_tmp = ISHFT(data_tmp, 12)
   49676       390912 :          pack_tmp = ISHFT(pack_tmp, -12)
   49677       390912 :          idata = idata + 1
   49678       390912 :          data_tmp = full_data(idata)
   49679       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49680       390912 :          data_tmp = IAND(data_tmp, mask_left(12))
   49681       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49682       390912 :          ipack = ipack + 1
   49683       390912 :          packed_data(ipack) = pack_tmp
   49684       390912 :          data_tmp = full_data(idata)
   49685       390912 :          pack_tmp = ISHFT(data_tmp, 16)
   49686       390912 :          pack_tmp = ISHFT(pack_tmp, -16)
   49687       390912 :          idata = idata + 1
   49688       390912 :          data_tmp = full_data(idata)
   49689       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49690       390912 :          data_tmp = IAND(data_tmp, mask_left(16))
   49691       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49692       390912 :          ipack = ipack + 1
   49693       390912 :          packed_data(ipack) = pack_tmp
   49694       390912 :          data_tmp = full_data(idata)
   49695       390912 :          pack_tmp = ISHFT(data_tmp, 20)
   49696       390912 :          pack_tmp = ISHFT(pack_tmp, -20)
   49697       390912 :          idata = idata + 1
   49698       390912 :          data_tmp = full_data(idata)
   49699       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49700       390912 :          data_tmp = IAND(data_tmp, mask_left(20))
   49701       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49702       390912 :          ipack = ipack + 1
   49703       390912 :          packed_data(ipack) = pack_tmp
   49704       390912 :          data_tmp = full_data(idata)
   49705       390912 :          pack_tmp = ISHFT(data_tmp, 24)
   49706       390912 :          pack_tmp = ISHFT(pack_tmp, -24)
   49707       390912 :          idata = idata + 1
   49708       390912 :          data_tmp = full_data(idata)
   49709       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49710       390912 :          data_tmp = IAND(data_tmp, mask_left(24))
   49711       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49712       390912 :          ipack = ipack + 1
   49713       390912 :          packed_data(ipack) = pack_tmp
   49714       390912 :          data_tmp = full_data(idata)
   49715       390912 :          pack_tmp = ISHFT(data_tmp, 28)
   49716       390912 :          pack_tmp = ISHFT(pack_tmp, -28)
   49717       390912 :          idata = idata + 1
   49718       390912 :          data_tmp = full_data(idata)
   49719       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49720       390912 :          data_tmp = IAND(data_tmp, mask_left(28))
   49721       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49722       390912 :          ipack = ipack + 1
   49723       390912 :          packed_data(ipack) = pack_tmp
   49724       390912 :          data_tmp = full_data(idata)
   49725       390912 :          pack_tmp = ISHFT(data_tmp, 32)
   49726       390912 :          pack_tmp = ISHFT(pack_tmp, -32)
   49727       390912 :          idata = idata + 1
   49728       390912 :          data_tmp = full_data(idata)
   49729       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49730       390912 :          data_tmp = IAND(data_tmp, mask_left(32))
   49731       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49732       390912 :          ipack = ipack + 1
   49733       390912 :          packed_data(ipack) = pack_tmp
   49734       390912 :          data_tmp = full_data(idata)
   49735       390912 :          pack_tmp = ISHFT(data_tmp, 36)
   49736       390912 :          pack_tmp = ISHFT(pack_tmp, -36)
   49737       390912 :          idata = idata + 1
   49738       390912 :          data_tmp = full_data(idata)
   49739       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49740       390912 :          data_tmp = IAND(data_tmp, mask_left(36))
   49741       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49742       390912 :          ipack = ipack + 1
   49743       390912 :          packed_data(ipack) = pack_tmp
   49744       390912 :          data_tmp = full_data(idata)
   49745       390912 :          pack_tmp = ISHFT(data_tmp, 40)
   49746       390912 :          pack_tmp = ISHFT(pack_tmp, -40)
   49747       390912 :          idata = idata + 1
   49748       390912 :          data_tmp = full_data(idata)
   49749       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49750       390912 :          data_tmp = IAND(data_tmp, mask_left(40))
   49751       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49752       390912 :          ipack = ipack + 1
   49753       390912 :          packed_data(ipack) = pack_tmp
   49754       390912 :          data_tmp = full_data(idata)
   49755       390912 :          pack_tmp = ISHFT(data_tmp, 44)
   49756       390912 :          pack_tmp = ISHFT(pack_tmp, -44)
   49757       390912 :          idata = idata + 1
   49758       390912 :          data_tmp = full_data(idata)
   49759       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49760       390912 :          data_tmp = IAND(data_tmp, mask_left(44))
   49761       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49762       390912 :          ipack = ipack + 1
   49763       390912 :          packed_data(ipack) = pack_tmp
   49764       390912 :          data_tmp = full_data(idata)
   49765       390912 :          pack_tmp = ISHFT(data_tmp, 48)
   49766       390912 :          pack_tmp = ISHFT(pack_tmp, -48)
   49767       390912 :          idata = idata + 1
   49768       390912 :          data_tmp = full_data(idata)
   49769       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49770       390912 :          data_tmp = IAND(data_tmp, mask_left(48))
   49771       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49772       390912 :          ipack = ipack + 1
   49773       390912 :          packed_data(ipack) = pack_tmp
   49774       390912 :          data_tmp = full_data(idata)
   49775       390912 :          pack_tmp = ISHFT(data_tmp, 52)
   49776       390912 :          pack_tmp = ISHFT(pack_tmp, -52)
   49777       390912 :          idata = idata + 1
   49778       390912 :          data_tmp = full_data(idata)
   49779       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49780       390912 :          data_tmp = IAND(data_tmp, mask_left(52))
   49781       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49782       390912 :          ipack = ipack + 1
   49783       390912 :          packed_data(ipack) = pack_tmp
   49784       390912 :          data_tmp = full_data(idata)
   49785       390912 :          pack_tmp = ISHFT(data_tmp, 56)
   49786       390912 :          pack_tmp = ISHFT(pack_tmp, -56)
   49787       390912 :          idata = idata + 1
   49788       390912 :          data_tmp = full_data(idata)
   49789       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49790       390912 :          data_tmp = IAND(data_tmp, mask_left(56))
   49791       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49792       390912 :          ipack = ipack + 1
   49793       390912 :          packed_data(ipack) = pack_tmp
   49794       390912 :          data_tmp = full_data(idata)
   49795       390912 :          pack_tmp = ISHFT(data_tmp, 60)
   49796       390912 :          pack_tmp = ISHFT(pack_tmp, -60)
   49797       390912 :          idata = idata + 1
   49798       390912 :          data_tmp = full_data(idata)
   49799       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49800       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49801       390912 :          pack_tmp = ISHFT(pack_tmp, 0)
   49802       390912 :          idata = idata + 1
   49803       390912 :          data_tmp = full_data(idata)
   49804              :          data_tmp = ISHFT(data_tmp, 4)
   49805       390912 :          data_tmp = IAND(data_tmp, mask_left(0))
   49806       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49807       390912 :          ipack = ipack + 1
   49808       390912 :          packed_data(ipack) = pack_tmp
   49809       390912 :          data_tmp = full_data(idata)
   49810       390912 :          pack_tmp = ISHFT(data_tmp, 4)
   49811       390912 :          pack_tmp = ISHFT(pack_tmp, -4)
   49812       390912 :          idata = idata + 1
   49813       390912 :          data_tmp = full_data(idata)
   49814       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49815       390912 :          data_tmp = IAND(data_tmp, mask_left(4))
   49816       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49817       390912 :          ipack = ipack + 1
   49818       390912 :          packed_data(ipack) = pack_tmp
   49819       390912 :          data_tmp = full_data(idata)
   49820       390912 :          pack_tmp = ISHFT(data_tmp, 8)
   49821       390912 :          pack_tmp = ISHFT(pack_tmp, -8)
   49822       390912 :          idata = idata + 1
   49823       390912 :          data_tmp = full_data(idata)
   49824       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49825       390912 :          data_tmp = IAND(data_tmp, mask_left(8))
   49826       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49827       390912 :          ipack = ipack + 1
   49828       390912 :          packed_data(ipack) = pack_tmp
   49829       390912 :          data_tmp = full_data(idata)
   49830       390912 :          pack_tmp = ISHFT(data_tmp, 12)
   49831       390912 :          pack_tmp = ISHFT(pack_tmp, -12)
   49832       390912 :          idata = idata + 1
   49833       390912 :          data_tmp = full_data(idata)
   49834       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49835       390912 :          data_tmp = IAND(data_tmp, mask_left(12))
   49836       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49837       390912 :          ipack = ipack + 1
   49838       390912 :          packed_data(ipack) = pack_tmp
   49839       390912 :          data_tmp = full_data(idata)
   49840       390912 :          pack_tmp = ISHFT(data_tmp, 16)
   49841       390912 :          pack_tmp = ISHFT(pack_tmp, -16)
   49842       390912 :          idata = idata + 1
   49843       390912 :          data_tmp = full_data(idata)
   49844       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49845       390912 :          data_tmp = IAND(data_tmp, mask_left(16))
   49846       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49847       390912 :          ipack = ipack + 1
   49848       390912 :          packed_data(ipack) = pack_tmp
   49849       390912 :          data_tmp = full_data(idata)
   49850       390912 :          pack_tmp = ISHFT(data_tmp, 20)
   49851       390912 :          pack_tmp = ISHFT(pack_tmp, -20)
   49852       390912 :          idata = idata + 1
   49853       390912 :          data_tmp = full_data(idata)
   49854       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49855       390912 :          data_tmp = IAND(data_tmp, mask_left(20))
   49856       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49857       390912 :          ipack = ipack + 1
   49858       390912 :          packed_data(ipack) = pack_tmp
   49859       390912 :          data_tmp = full_data(idata)
   49860       390912 :          pack_tmp = ISHFT(data_tmp, 24)
   49861       390912 :          pack_tmp = ISHFT(pack_tmp, -24)
   49862       390912 :          idata = idata + 1
   49863       390912 :          data_tmp = full_data(idata)
   49864       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49865       390912 :          data_tmp = IAND(data_tmp, mask_left(24))
   49866       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49867       390912 :          ipack = ipack + 1
   49868       390912 :          packed_data(ipack) = pack_tmp
   49869       390912 :          data_tmp = full_data(idata)
   49870       390912 :          pack_tmp = ISHFT(data_tmp, 28)
   49871       390912 :          pack_tmp = ISHFT(pack_tmp, -28)
   49872       390912 :          idata = idata + 1
   49873       390912 :          data_tmp = full_data(idata)
   49874       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49875       390912 :          data_tmp = IAND(data_tmp, mask_left(28))
   49876       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49877       390912 :          ipack = ipack + 1
   49878       390912 :          packed_data(ipack) = pack_tmp
   49879       390912 :          data_tmp = full_data(idata)
   49880       390912 :          pack_tmp = ISHFT(data_tmp, 32)
   49881       390912 :          pack_tmp = ISHFT(pack_tmp, -32)
   49882       390912 :          idata = idata + 1
   49883       390912 :          data_tmp = full_data(idata)
   49884       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49885       390912 :          data_tmp = IAND(data_tmp, mask_left(32))
   49886       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49887       390912 :          ipack = ipack + 1
   49888       390912 :          packed_data(ipack) = pack_tmp
   49889       390912 :          data_tmp = full_data(idata)
   49890       390912 :          pack_tmp = ISHFT(data_tmp, 36)
   49891       390912 :          pack_tmp = ISHFT(pack_tmp, -36)
   49892       390912 :          idata = idata + 1
   49893       390912 :          data_tmp = full_data(idata)
   49894       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49895       390912 :          data_tmp = IAND(data_tmp, mask_left(36))
   49896       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49897       390912 :          ipack = ipack + 1
   49898       390912 :          packed_data(ipack) = pack_tmp
   49899       390912 :          data_tmp = full_data(idata)
   49900       390912 :          pack_tmp = ISHFT(data_tmp, 40)
   49901       390912 :          pack_tmp = ISHFT(pack_tmp, -40)
   49902       390912 :          idata = idata + 1
   49903       390912 :          data_tmp = full_data(idata)
   49904       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49905       390912 :          data_tmp = IAND(data_tmp, mask_left(40))
   49906       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49907       390912 :          ipack = ipack + 1
   49908       390912 :          packed_data(ipack) = pack_tmp
   49909       390912 :          data_tmp = full_data(idata)
   49910       390912 :          pack_tmp = ISHFT(data_tmp, 44)
   49911       390912 :          pack_tmp = ISHFT(pack_tmp, -44)
   49912       390912 :          idata = idata + 1
   49913       390912 :          data_tmp = full_data(idata)
   49914       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49915       390912 :          data_tmp = IAND(data_tmp, mask_left(44))
   49916       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49917       390912 :          ipack = ipack + 1
   49918       390912 :          packed_data(ipack) = pack_tmp
   49919       390912 :          data_tmp = full_data(idata)
   49920       390912 :          pack_tmp = ISHFT(data_tmp, 48)
   49921       390912 :          pack_tmp = ISHFT(pack_tmp, -48)
   49922       390912 :          idata = idata + 1
   49923       390912 :          data_tmp = full_data(idata)
   49924       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49925       390912 :          data_tmp = IAND(data_tmp, mask_left(48))
   49926       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49927       390912 :          ipack = ipack + 1
   49928       390912 :          packed_data(ipack) = pack_tmp
   49929       390912 :          data_tmp = full_data(idata)
   49930       390912 :          pack_tmp = ISHFT(data_tmp, 52)
   49931       390912 :          pack_tmp = ISHFT(pack_tmp, -52)
   49932       390912 :          idata = idata + 1
   49933       390912 :          data_tmp = full_data(idata)
   49934       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49935       390912 :          data_tmp = IAND(data_tmp, mask_left(52))
   49936       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49937       390912 :          ipack = ipack + 1
   49938       390912 :          packed_data(ipack) = pack_tmp
   49939       390912 :          data_tmp = full_data(idata)
   49940       390912 :          pack_tmp = ISHFT(data_tmp, 56)
   49941       390912 :          pack_tmp = ISHFT(pack_tmp, -56)
   49942       390912 :          idata = idata + 1
   49943       390912 :          data_tmp = full_data(idata)
   49944       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49945       390912 :          data_tmp = IAND(data_tmp, mask_left(56))
   49946       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49947       390912 :          ipack = ipack + 1
   49948       390912 :          packed_data(ipack) = pack_tmp
   49949       390912 :          data_tmp = full_data(idata)
   49950       390912 :          pack_tmp = ISHFT(data_tmp, 60)
   49951       390912 :          pack_tmp = ISHFT(pack_tmp, -60)
   49952       390912 :          idata = idata + 1
   49953       390912 :          data_tmp = full_data(idata)
   49954       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49955       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49956       390912 :          pack_tmp = ISHFT(pack_tmp, 0)
   49957       390912 :          idata = idata + 1
   49958       390912 :          data_tmp = full_data(idata)
   49959              :          data_tmp = ISHFT(data_tmp, 4)
   49960       390912 :          data_tmp = IAND(data_tmp, mask_left(0))
   49961       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49962       390912 :          ipack = ipack + 1
   49963       390912 :          packed_data(ipack) = pack_tmp
   49964       390912 :          data_tmp = full_data(idata)
   49965       390912 :          pack_tmp = ISHFT(data_tmp, 4)
   49966       390912 :          pack_tmp = ISHFT(pack_tmp, -4)
   49967       390912 :          idata = idata + 1
   49968       390912 :          data_tmp = full_data(idata)
   49969       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49970       390912 :          data_tmp = IAND(data_tmp, mask_left(4))
   49971       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49972       390912 :          ipack = ipack + 1
   49973       390912 :          packed_data(ipack) = pack_tmp
   49974       390912 :          data_tmp = full_data(idata)
   49975       390912 :          pack_tmp = ISHFT(data_tmp, 8)
   49976       390912 :          pack_tmp = ISHFT(pack_tmp, -8)
   49977       390912 :          idata = idata + 1
   49978       390912 :          data_tmp = full_data(idata)
   49979       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49980       390912 :          data_tmp = IAND(data_tmp, mask_left(8))
   49981       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49982       390912 :          ipack = ipack + 1
   49983       390912 :          packed_data(ipack) = pack_tmp
   49984       390912 :          data_tmp = full_data(idata)
   49985       390912 :          pack_tmp = ISHFT(data_tmp, 12)
   49986       390912 :          pack_tmp = ISHFT(pack_tmp, -12)
   49987       390912 :          idata = idata + 1
   49988       390912 :          data_tmp = full_data(idata)
   49989       390912 :          data_tmp = ISHFT(data_tmp, 4)
   49990       390912 :          data_tmp = IAND(data_tmp, mask_left(12))
   49991       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   49992       390912 :          ipack = ipack + 1
   49993       390912 :          packed_data(ipack) = pack_tmp
   49994       390912 :          data_tmp = full_data(idata)
   49995       390912 :          pack_tmp = ISHFT(data_tmp, 16)
   49996       390912 :          pack_tmp = ISHFT(pack_tmp, -16)
   49997       390912 :          idata = idata + 1
   49998       390912 :          data_tmp = full_data(idata)
   49999       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50000       390912 :          data_tmp = IAND(data_tmp, mask_left(16))
   50001       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50002       390912 :          ipack = ipack + 1
   50003       390912 :          packed_data(ipack) = pack_tmp
   50004       390912 :          data_tmp = full_data(idata)
   50005       390912 :          pack_tmp = ISHFT(data_tmp, 20)
   50006       390912 :          pack_tmp = ISHFT(pack_tmp, -20)
   50007       390912 :          idata = idata + 1
   50008       390912 :          data_tmp = full_data(idata)
   50009       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50010       390912 :          data_tmp = IAND(data_tmp, mask_left(20))
   50011       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50012       390912 :          ipack = ipack + 1
   50013       390912 :          packed_data(ipack) = pack_tmp
   50014       390912 :          data_tmp = full_data(idata)
   50015       390912 :          pack_tmp = ISHFT(data_tmp, 24)
   50016       390912 :          pack_tmp = ISHFT(pack_tmp, -24)
   50017       390912 :          idata = idata + 1
   50018       390912 :          data_tmp = full_data(idata)
   50019       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50020       390912 :          data_tmp = IAND(data_tmp, mask_left(24))
   50021       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50022       390912 :          ipack = ipack + 1
   50023       390912 :          packed_data(ipack) = pack_tmp
   50024       390912 :          data_tmp = full_data(idata)
   50025       390912 :          pack_tmp = ISHFT(data_tmp, 28)
   50026       390912 :          pack_tmp = ISHFT(pack_tmp, -28)
   50027       390912 :          idata = idata + 1
   50028       390912 :          data_tmp = full_data(idata)
   50029       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50030       390912 :          data_tmp = IAND(data_tmp, mask_left(28))
   50031       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50032       390912 :          ipack = ipack + 1
   50033       390912 :          packed_data(ipack) = pack_tmp
   50034       390912 :          data_tmp = full_data(idata)
   50035       390912 :          pack_tmp = ISHFT(data_tmp, 32)
   50036       390912 :          pack_tmp = ISHFT(pack_tmp, -32)
   50037       390912 :          idata = idata + 1
   50038       390912 :          data_tmp = full_data(idata)
   50039       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50040       390912 :          data_tmp = IAND(data_tmp, mask_left(32))
   50041       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50042       390912 :          ipack = ipack + 1
   50043       390912 :          packed_data(ipack) = pack_tmp
   50044       390912 :          data_tmp = full_data(idata)
   50045       390912 :          pack_tmp = ISHFT(data_tmp, 36)
   50046       390912 :          pack_tmp = ISHFT(pack_tmp, -36)
   50047       390912 :          idata = idata + 1
   50048       390912 :          data_tmp = full_data(idata)
   50049       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50050       390912 :          data_tmp = IAND(data_tmp, mask_left(36))
   50051       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50052       390912 :          ipack = ipack + 1
   50053       390912 :          packed_data(ipack) = pack_tmp
   50054       390912 :          data_tmp = full_data(idata)
   50055       390912 :          pack_tmp = ISHFT(data_tmp, 40)
   50056       390912 :          pack_tmp = ISHFT(pack_tmp, -40)
   50057       390912 :          idata = idata + 1
   50058       390912 :          data_tmp = full_data(idata)
   50059       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50060       390912 :          data_tmp = IAND(data_tmp, mask_left(40))
   50061       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50062       390912 :          ipack = ipack + 1
   50063       390912 :          packed_data(ipack) = pack_tmp
   50064       390912 :          data_tmp = full_data(idata)
   50065       390912 :          pack_tmp = ISHFT(data_tmp, 44)
   50066       390912 :          pack_tmp = ISHFT(pack_tmp, -44)
   50067       390912 :          idata = idata + 1
   50068       390912 :          data_tmp = full_data(idata)
   50069       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50070       390912 :          data_tmp = IAND(data_tmp, mask_left(44))
   50071       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50072       390912 :          ipack = ipack + 1
   50073       390912 :          packed_data(ipack) = pack_tmp
   50074       390912 :          data_tmp = full_data(idata)
   50075       390912 :          pack_tmp = ISHFT(data_tmp, 48)
   50076       390912 :          pack_tmp = ISHFT(pack_tmp, -48)
   50077       390912 :          idata = idata + 1
   50078       390912 :          data_tmp = full_data(idata)
   50079       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50080       390912 :          data_tmp = IAND(data_tmp, mask_left(48))
   50081       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50082       390912 :          ipack = ipack + 1
   50083       390912 :          packed_data(ipack) = pack_tmp
   50084       390912 :          data_tmp = full_data(idata)
   50085       390912 :          pack_tmp = ISHFT(data_tmp, 52)
   50086       390912 :          pack_tmp = ISHFT(pack_tmp, -52)
   50087       390912 :          idata = idata + 1
   50088       390912 :          data_tmp = full_data(idata)
   50089       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50090       390912 :          data_tmp = IAND(data_tmp, mask_left(52))
   50091       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50092       390912 :          ipack = ipack + 1
   50093       390912 :          packed_data(ipack) = pack_tmp
   50094       390912 :          data_tmp = full_data(idata)
   50095       390912 :          pack_tmp = ISHFT(data_tmp, 56)
   50096       390912 :          pack_tmp = ISHFT(pack_tmp, -56)
   50097       390912 :          idata = idata + 1
   50098       390912 :          data_tmp = full_data(idata)
   50099       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50100       390912 :          data_tmp = IAND(data_tmp, mask_left(56))
   50101       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50102       390912 :          ipack = ipack + 1
   50103       390912 :          packed_data(ipack) = pack_tmp
   50104       390912 :          data_tmp = full_data(idata)
   50105       390912 :          pack_tmp = ISHFT(data_tmp, 60)
   50106       390912 :          pack_tmp = ISHFT(pack_tmp, -60)
   50107       390912 :          idata = idata + 1
   50108       390912 :          data_tmp = full_data(idata)
   50109       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50110       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50111       390912 :          pack_tmp = ISHFT(pack_tmp, 0)
   50112       390912 :          idata = idata + 1
   50113       390912 :          data_tmp = full_data(idata)
   50114              :          data_tmp = ISHFT(data_tmp, 4)
   50115       390912 :          data_tmp = IAND(data_tmp, mask_left(0))
   50116       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50117       390912 :          ipack = ipack + 1
   50118       390912 :          packed_data(ipack) = pack_tmp
   50119       390912 :          data_tmp = full_data(idata)
   50120       390912 :          pack_tmp = ISHFT(data_tmp, 4)
   50121       390912 :          pack_tmp = ISHFT(pack_tmp, -4)
   50122       390912 :          idata = idata + 1
   50123       390912 :          data_tmp = full_data(idata)
   50124       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50125       390912 :          data_tmp = IAND(data_tmp, mask_left(4))
   50126       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50127       390912 :          ipack = ipack + 1
   50128       390912 :          packed_data(ipack) = pack_tmp
   50129       390912 :          data_tmp = full_data(idata)
   50130       390912 :          pack_tmp = ISHFT(data_tmp, 8)
   50131       390912 :          pack_tmp = ISHFT(pack_tmp, -8)
   50132       390912 :          idata = idata + 1
   50133       390912 :          data_tmp = full_data(idata)
   50134       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50135       390912 :          data_tmp = IAND(data_tmp, mask_left(8))
   50136       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50137       390912 :          ipack = ipack + 1
   50138       390912 :          packed_data(ipack) = pack_tmp
   50139       390912 :          data_tmp = full_data(idata)
   50140       390912 :          pack_tmp = ISHFT(data_tmp, 12)
   50141       390912 :          pack_tmp = ISHFT(pack_tmp, -12)
   50142       390912 :          idata = idata + 1
   50143       390912 :          data_tmp = full_data(idata)
   50144       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50145       390912 :          data_tmp = IAND(data_tmp, mask_left(12))
   50146       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50147       390912 :          ipack = ipack + 1
   50148       390912 :          packed_data(ipack) = pack_tmp
   50149       390912 :          data_tmp = full_data(idata)
   50150       390912 :          pack_tmp = ISHFT(data_tmp, 16)
   50151       390912 :          pack_tmp = ISHFT(pack_tmp, -16)
   50152       390912 :          idata = idata + 1
   50153       390912 :          data_tmp = full_data(idata)
   50154       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50155       390912 :          data_tmp = IAND(data_tmp, mask_left(16))
   50156       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50157       390912 :          ipack = ipack + 1
   50158       390912 :          packed_data(ipack) = pack_tmp
   50159       390912 :          data_tmp = full_data(idata)
   50160       390912 :          pack_tmp = ISHFT(data_tmp, 20)
   50161       390912 :          pack_tmp = ISHFT(pack_tmp, -20)
   50162       390912 :          idata = idata + 1
   50163       390912 :          data_tmp = full_data(idata)
   50164       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50165       390912 :          data_tmp = IAND(data_tmp, mask_left(20))
   50166       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50167       390912 :          ipack = ipack + 1
   50168       390912 :          packed_data(ipack) = pack_tmp
   50169       390912 :          data_tmp = full_data(idata)
   50170       390912 :          pack_tmp = ISHFT(data_tmp, 24)
   50171       390912 :          pack_tmp = ISHFT(pack_tmp, -24)
   50172       390912 :          idata = idata + 1
   50173       390912 :          data_tmp = full_data(idata)
   50174       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50175       390912 :          data_tmp = IAND(data_tmp, mask_left(24))
   50176       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50177       390912 :          ipack = ipack + 1
   50178       390912 :          packed_data(ipack) = pack_tmp
   50179       390912 :          data_tmp = full_data(idata)
   50180       390912 :          pack_tmp = ISHFT(data_tmp, 28)
   50181       390912 :          pack_tmp = ISHFT(pack_tmp, -28)
   50182       390912 :          idata = idata + 1
   50183       390912 :          data_tmp = full_data(idata)
   50184       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50185       390912 :          data_tmp = IAND(data_tmp, mask_left(28))
   50186       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50187       390912 :          ipack = ipack + 1
   50188       390912 :          packed_data(ipack) = pack_tmp
   50189       390912 :          data_tmp = full_data(idata)
   50190       390912 :          pack_tmp = ISHFT(data_tmp, 32)
   50191       390912 :          pack_tmp = ISHFT(pack_tmp, -32)
   50192       390912 :          idata = idata + 1
   50193       390912 :          data_tmp = full_data(idata)
   50194       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50195       390912 :          data_tmp = IAND(data_tmp, mask_left(32))
   50196       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50197       390912 :          ipack = ipack + 1
   50198       390912 :          packed_data(ipack) = pack_tmp
   50199       390912 :          data_tmp = full_data(idata)
   50200       390912 :          pack_tmp = ISHFT(data_tmp, 36)
   50201       390912 :          pack_tmp = ISHFT(pack_tmp, -36)
   50202       390912 :          idata = idata + 1
   50203       390912 :          data_tmp = full_data(idata)
   50204       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50205       390912 :          data_tmp = IAND(data_tmp, mask_left(36))
   50206       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50207       390912 :          ipack = ipack + 1
   50208       390912 :          packed_data(ipack) = pack_tmp
   50209       390912 :          data_tmp = full_data(idata)
   50210       390912 :          pack_tmp = ISHFT(data_tmp, 40)
   50211       390912 :          pack_tmp = ISHFT(pack_tmp, -40)
   50212       390912 :          idata = idata + 1
   50213       390912 :          data_tmp = full_data(idata)
   50214       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50215       390912 :          data_tmp = IAND(data_tmp, mask_left(40))
   50216       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50217       390912 :          ipack = ipack + 1
   50218       390912 :          packed_data(ipack) = pack_tmp
   50219       390912 :          data_tmp = full_data(idata)
   50220       390912 :          pack_tmp = ISHFT(data_tmp, 44)
   50221       390912 :          pack_tmp = ISHFT(pack_tmp, -44)
   50222       390912 :          idata = idata + 1
   50223       390912 :          data_tmp = full_data(idata)
   50224       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50225       390912 :          data_tmp = IAND(data_tmp, mask_left(44))
   50226       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50227       390912 :          ipack = ipack + 1
   50228       390912 :          packed_data(ipack) = pack_tmp
   50229       390912 :          data_tmp = full_data(idata)
   50230       390912 :          pack_tmp = ISHFT(data_tmp, 48)
   50231       390912 :          pack_tmp = ISHFT(pack_tmp, -48)
   50232       390912 :          idata = idata + 1
   50233       390912 :          data_tmp = full_data(idata)
   50234       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50235       390912 :          data_tmp = IAND(data_tmp, mask_left(48))
   50236       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50237       390912 :          ipack = ipack + 1
   50238       390912 :          packed_data(ipack) = pack_tmp
   50239       390912 :          data_tmp = full_data(idata)
   50240       390912 :          pack_tmp = ISHFT(data_tmp, 52)
   50241       390912 :          pack_tmp = ISHFT(pack_tmp, -52)
   50242       390912 :          idata = idata + 1
   50243       390912 :          data_tmp = full_data(idata)
   50244       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50245       390912 :          data_tmp = IAND(data_tmp, mask_left(52))
   50246       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50247       390912 :          ipack = ipack + 1
   50248       390912 :          packed_data(ipack) = pack_tmp
   50249       390912 :          data_tmp = full_data(idata)
   50250       390912 :          pack_tmp = ISHFT(data_tmp, 56)
   50251       390912 :          pack_tmp = ISHFT(pack_tmp, -56)
   50252       390912 :          idata = idata + 1
   50253       390912 :          data_tmp = full_data(idata)
   50254       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50255       390912 :          data_tmp = IAND(data_tmp, mask_left(56))
   50256       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50257       390912 :          ipack = ipack + 1
   50258       390912 :          packed_data(ipack) = pack_tmp
   50259       390912 :          data_tmp = full_data(idata)
   50260       390912 :          pack_tmp = ISHFT(data_tmp, 60)
   50261       390912 :          pack_tmp = ISHFT(pack_tmp, -60)
   50262       390912 :          idata = idata + 1
   50263       390912 :          data_tmp = full_data(idata)
   50264       390912 :          data_tmp = ISHFT(data_tmp, 4)
   50265       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50266              :          pack_tmp = ISHFT(pack_tmp, 0)
   50267       390912 :          pack_tmp = ISHFT(pack_tmp, 0)
   50268       390912 :          ipack = ipack + 1
   50269       390912 :          packed_data(ipack) = pack_tmp
   50270              :       END DO
   50271        24432 :       IF (Ndata_rep < Ndata) THEN
   50272            0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   50273              :       END IF
   50274        24432 :    END SUBROUTINE ints2bits_60
   50275              : 
   50276              : ! **************************************************************************************************
   50277              : !> \brief ...
   50278              : !> \param Ndata ...
   50279              : !> \param packed_data ...
   50280              : !> \param full_data ...
   50281              : ! **************************************************************************************************
   50282        98465 :    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        98465 :       ipack = 0
   50293        98465 :       idata = 0
   50294        98465 :       pack_tmp = 0
   50295        98465 :       Ndata_rep = (Ndata/64)*64
   50296        98465 :       DO kdata = 1, Ndata_rep, 64
   50297      1575440 :          idata = idata + 1
   50298      1575440 :          data_tmp = ISHFT(pack_tmp, 60)
   50299      1575440 :          ipack = ipack + 1
   50300      1575440 :          pack_tmp = packed_data(ipack)
   50301      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50302      1575440 :          pack_tmp = ISHFT(pack_tmp, -60)
   50303      1575440 :          idata = idata + 1
   50304      1575440 :          data_tmp = ISHFT(pack_tmp, 56)
   50305      1575440 :          ipack = ipack + 1
   50306      1575440 :          pack_tmp = packed_data(ipack)
   50307      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50308      1575440 :          pack_tmp = ISHFT(pack_tmp, -56)
   50309      1575440 :          idata = idata + 1
   50310      1575440 :          data_tmp = ISHFT(pack_tmp, 52)
   50311      1575440 :          ipack = ipack + 1
   50312      1575440 :          pack_tmp = packed_data(ipack)
   50313      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50314      1575440 :          pack_tmp = ISHFT(pack_tmp, -52)
   50315      1575440 :          idata = idata + 1
   50316      1575440 :          data_tmp = ISHFT(pack_tmp, 48)
   50317      1575440 :          ipack = ipack + 1
   50318      1575440 :          pack_tmp = packed_data(ipack)
   50319      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50320      1575440 :          pack_tmp = ISHFT(pack_tmp, -48)
   50321      1575440 :          idata = idata + 1
   50322      1575440 :          data_tmp = ISHFT(pack_tmp, 44)
   50323      1575440 :          ipack = ipack + 1
   50324      1575440 :          pack_tmp = packed_data(ipack)
   50325      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50326      1575440 :          pack_tmp = ISHFT(pack_tmp, -44)
   50327      1575440 :          idata = idata + 1
   50328      1575440 :          data_tmp = ISHFT(pack_tmp, 40)
   50329      1575440 :          ipack = ipack + 1
   50330      1575440 :          pack_tmp = packed_data(ipack)
   50331      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50332      1575440 :          pack_tmp = ISHFT(pack_tmp, -40)
   50333      1575440 :          idata = idata + 1
   50334      1575440 :          data_tmp = ISHFT(pack_tmp, 36)
   50335      1575440 :          ipack = ipack + 1
   50336      1575440 :          pack_tmp = packed_data(ipack)
   50337      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50338      1575440 :          pack_tmp = ISHFT(pack_tmp, -36)
   50339      1575440 :          idata = idata + 1
   50340      1575440 :          data_tmp = ISHFT(pack_tmp, 32)
   50341      1575440 :          ipack = ipack + 1
   50342      1575440 :          pack_tmp = packed_data(ipack)
   50343      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50344      1575440 :          pack_tmp = ISHFT(pack_tmp, -32)
   50345      1575440 :          idata = idata + 1
   50346      1575440 :          data_tmp = ISHFT(pack_tmp, 28)
   50347      1575440 :          ipack = ipack + 1
   50348      1575440 :          pack_tmp = packed_data(ipack)
   50349      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50350      1575440 :          pack_tmp = ISHFT(pack_tmp, -28)
   50351      1575440 :          idata = idata + 1
   50352      1575440 :          data_tmp = ISHFT(pack_tmp, 24)
   50353      1575440 :          ipack = ipack + 1
   50354      1575440 :          pack_tmp = packed_data(ipack)
   50355      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50356      1575440 :          pack_tmp = ISHFT(pack_tmp, -24)
   50357      1575440 :          idata = idata + 1
   50358      1575440 :          data_tmp = ISHFT(pack_tmp, 20)
   50359      1575440 :          ipack = ipack + 1
   50360      1575440 :          pack_tmp = packed_data(ipack)
   50361      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50362      1575440 :          pack_tmp = ISHFT(pack_tmp, -20)
   50363      1575440 :          idata = idata + 1
   50364      1575440 :          data_tmp = ISHFT(pack_tmp, 16)
   50365      1575440 :          ipack = ipack + 1
   50366      1575440 :          pack_tmp = packed_data(ipack)
   50367      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50368      1575440 :          pack_tmp = ISHFT(pack_tmp, -16)
   50369      1575440 :          idata = idata + 1
   50370      1575440 :          data_tmp = ISHFT(pack_tmp, 12)
   50371      1575440 :          ipack = ipack + 1
   50372      1575440 :          pack_tmp = packed_data(ipack)
   50373      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50374      1575440 :          pack_tmp = ISHFT(pack_tmp, -12)
   50375      1575440 :          idata = idata + 1
   50376      1575440 :          data_tmp = ISHFT(pack_tmp, 8)
   50377      1575440 :          ipack = ipack + 1
   50378      1575440 :          pack_tmp = packed_data(ipack)
   50379      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50380      1575440 :          pack_tmp = ISHFT(pack_tmp, -8)
   50381      1575440 :          idata = idata + 1
   50382      1575440 :          data_tmp = ISHFT(pack_tmp, 4)
   50383      1575440 :          ipack = ipack + 1
   50384      1575440 :          pack_tmp = packed_data(ipack)
   50385      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50386      1575440 :          pack_tmp = ISHFT(pack_tmp, -4)
   50387      1575440 :          idata = idata + 1
   50388      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50389      1575440 :          full_data(idata) = data_tmp
   50390      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50391      1575440 :          idata = idata + 1
   50392      1575440 :          data_tmp = ISHFT(pack_tmp, 60)
   50393      1575440 :          ipack = ipack + 1
   50394      1575440 :          pack_tmp = packed_data(ipack)
   50395      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50396      1575440 :          pack_tmp = ISHFT(pack_tmp, -60)
   50397      1575440 :          idata = idata + 1
   50398      1575440 :          data_tmp = ISHFT(pack_tmp, 56)
   50399      1575440 :          ipack = ipack + 1
   50400      1575440 :          pack_tmp = packed_data(ipack)
   50401      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50402      1575440 :          pack_tmp = ISHFT(pack_tmp, -56)
   50403      1575440 :          idata = idata + 1
   50404      1575440 :          data_tmp = ISHFT(pack_tmp, 52)
   50405      1575440 :          ipack = ipack + 1
   50406      1575440 :          pack_tmp = packed_data(ipack)
   50407      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50408      1575440 :          pack_tmp = ISHFT(pack_tmp, -52)
   50409      1575440 :          idata = idata + 1
   50410      1575440 :          data_tmp = ISHFT(pack_tmp, 48)
   50411      1575440 :          ipack = ipack + 1
   50412      1575440 :          pack_tmp = packed_data(ipack)
   50413      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50414      1575440 :          pack_tmp = ISHFT(pack_tmp, -48)
   50415      1575440 :          idata = idata + 1
   50416      1575440 :          data_tmp = ISHFT(pack_tmp, 44)
   50417      1575440 :          ipack = ipack + 1
   50418      1575440 :          pack_tmp = packed_data(ipack)
   50419      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50420      1575440 :          pack_tmp = ISHFT(pack_tmp, -44)
   50421      1575440 :          idata = idata + 1
   50422      1575440 :          data_tmp = ISHFT(pack_tmp, 40)
   50423      1575440 :          ipack = ipack + 1
   50424      1575440 :          pack_tmp = packed_data(ipack)
   50425      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50426      1575440 :          pack_tmp = ISHFT(pack_tmp, -40)
   50427      1575440 :          idata = idata + 1
   50428      1575440 :          data_tmp = ISHFT(pack_tmp, 36)
   50429      1575440 :          ipack = ipack + 1
   50430      1575440 :          pack_tmp = packed_data(ipack)
   50431      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50432      1575440 :          pack_tmp = ISHFT(pack_tmp, -36)
   50433      1575440 :          idata = idata + 1
   50434      1575440 :          data_tmp = ISHFT(pack_tmp, 32)
   50435      1575440 :          ipack = ipack + 1
   50436      1575440 :          pack_tmp = packed_data(ipack)
   50437      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50438      1575440 :          pack_tmp = ISHFT(pack_tmp, -32)
   50439      1575440 :          idata = idata + 1
   50440      1575440 :          data_tmp = ISHFT(pack_tmp, 28)
   50441      1575440 :          ipack = ipack + 1
   50442      1575440 :          pack_tmp = packed_data(ipack)
   50443      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50444      1575440 :          pack_tmp = ISHFT(pack_tmp, -28)
   50445      1575440 :          idata = idata + 1
   50446      1575440 :          data_tmp = ISHFT(pack_tmp, 24)
   50447      1575440 :          ipack = ipack + 1
   50448      1575440 :          pack_tmp = packed_data(ipack)
   50449      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50450      1575440 :          pack_tmp = ISHFT(pack_tmp, -24)
   50451      1575440 :          idata = idata + 1
   50452      1575440 :          data_tmp = ISHFT(pack_tmp, 20)
   50453      1575440 :          ipack = ipack + 1
   50454      1575440 :          pack_tmp = packed_data(ipack)
   50455      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50456      1575440 :          pack_tmp = ISHFT(pack_tmp, -20)
   50457      1575440 :          idata = idata + 1
   50458      1575440 :          data_tmp = ISHFT(pack_tmp, 16)
   50459      1575440 :          ipack = ipack + 1
   50460      1575440 :          pack_tmp = packed_data(ipack)
   50461      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50462      1575440 :          pack_tmp = ISHFT(pack_tmp, -16)
   50463      1575440 :          idata = idata + 1
   50464      1575440 :          data_tmp = ISHFT(pack_tmp, 12)
   50465      1575440 :          ipack = ipack + 1
   50466      1575440 :          pack_tmp = packed_data(ipack)
   50467      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50468      1575440 :          pack_tmp = ISHFT(pack_tmp, -12)
   50469      1575440 :          idata = idata + 1
   50470      1575440 :          data_tmp = ISHFT(pack_tmp, 8)
   50471      1575440 :          ipack = ipack + 1
   50472      1575440 :          pack_tmp = packed_data(ipack)
   50473      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50474      1575440 :          pack_tmp = ISHFT(pack_tmp, -8)
   50475      1575440 :          idata = idata + 1
   50476      1575440 :          data_tmp = ISHFT(pack_tmp, 4)
   50477      1575440 :          ipack = ipack + 1
   50478      1575440 :          pack_tmp = packed_data(ipack)
   50479      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50480      1575440 :          pack_tmp = ISHFT(pack_tmp, -4)
   50481      1575440 :          idata = idata + 1
   50482      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50483      1575440 :          full_data(idata) = data_tmp
   50484      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50485      1575440 :          idata = idata + 1
   50486      1575440 :          data_tmp = ISHFT(pack_tmp, 60)
   50487      1575440 :          ipack = ipack + 1
   50488      1575440 :          pack_tmp = packed_data(ipack)
   50489      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50490      1575440 :          pack_tmp = ISHFT(pack_tmp, -60)
   50491      1575440 :          idata = idata + 1
   50492      1575440 :          data_tmp = ISHFT(pack_tmp, 56)
   50493      1575440 :          ipack = ipack + 1
   50494      1575440 :          pack_tmp = packed_data(ipack)
   50495      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50496      1575440 :          pack_tmp = ISHFT(pack_tmp, -56)
   50497      1575440 :          idata = idata + 1
   50498      1575440 :          data_tmp = ISHFT(pack_tmp, 52)
   50499      1575440 :          ipack = ipack + 1
   50500      1575440 :          pack_tmp = packed_data(ipack)
   50501      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50502      1575440 :          pack_tmp = ISHFT(pack_tmp, -52)
   50503      1575440 :          idata = idata + 1
   50504      1575440 :          data_tmp = ISHFT(pack_tmp, 48)
   50505      1575440 :          ipack = ipack + 1
   50506      1575440 :          pack_tmp = packed_data(ipack)
   50507      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50508      1575440 :          pack_tmp = ISHFT(pack_tmp, -48)
   50509      1575440 :          idata = idata + 1
   50510      1575440 :          data_tmp = ISHFT(pack_tmp, 44)
   50511      1575440 :          ipack = ipack + 1
   50512      1575440 :          pack_tmp = packed_data(ipack)
   50513      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50514      1575440 :          pack_tmp = ISHFT(pack_tmp, -44)
   50515      1575440 :          idata = idata + 1
   50516      1575440 :          data_tmp = ISHFT(pack_tmp, 40)
   50517      1575440 :          ipack = ipack + 1
   50518      1575440 :          pack_tmp = packed_data(ipack)
   50519      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50520      1575440 :          pack_tmp = ISHFT(pack_tmp, -40)
   50521      1575440 :          idata = idata + 1
   50522      1575440 :          data_tmp = ISHFT(pack_tmp, 36)
   50523      1575440 :          ipack = ipack + 1
   50524      1575440 :          pack_tmp = packed_data(ipack)
   50525      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50526      1575440 :          pack_tmp = ISHFT(pack_tmp, -36)
   50527      1575440 :          idata = idata + 1
   50528      1575440 :          data_tmp = ISHFT(pack_tmp, 32)
   50529      1575440 :          ipack = ipack + 1
   50530      1575440 :          pack_tmp = packed_data(ipack)
   50531      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50532      1575440 :          pack_tmp = ISHFT(pack_tmp, -32)
   50533      1575440 :          idata = idata + 1
   50534      1575440 :          data_tmp = ISHFT(pack_tmp, 28)
   50535      1575440 :          ipack = ipack + 1
   50536      1575440 :          pack_tmp = packed_data(ipack)
   50537      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50538      1575440 :          pack_tmp = ISHFT(pack_tmp, -28)
   50539      1575440 :          idata = idata + 1
   50540      1575440 :          data_tmp = ISHFT(pack_tmp, 24)
   50541      1575440 :          ipack = ipack + 1
   50542      1575440 :          pack_tmp = packed_data(ipack)
   50543      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50544      1575440 :          pack_tmp = ISHFT(pack_tmp, -24)
   50545      1575440 :          idata = idata + 1
   50546      1575440 :          data_tmp = ISHFT(pack_tmp, 20)
   50547      1575440 :          ipack = ipack + 1
   50548      1575440 :          pack_tmp = packed_data(ipack)
   50549      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50550      1575440 :          pack_tmp = ISHFT(pack_tmp, -20)
   50551      1575440 :          idata = idata + 1
   50552      1575440 :          data_tmp = ISHFT(pack_tmp, 16)
   50553      1575440 :          ipack = ipack + 1
   50554      1575440 :          pack_tmp = packed_data(ipack)
   50555      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50556      1575440 :          pack_tmp = ISHFT(pack_tmp, -16)
   50557      1575440 :          idata = idata + 1
   50558      1575440 :          data_tmp = ISHFT(pack_tmp, 12)
   50559      1575440 :          ipack = ipack + 1
   50560      1575440 :          pack_tmp = packed_data(ipack)
   50561      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50562      1575440 :          pack_tmp = ISHFT(pack_tmp, -12)
   50563      1575440 :          idata = idata + 1
   50564      1575440 :          data_tmp = ISHFT(pack_tmp, 8)
   50565      1575440 :          ipack = ipack + 1
   50566      1575440 :          pack_tmp = packed_data(ipack)
   50567      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50568      1575440 :          pack_tmp = ISHFT(pack_tmp, -8)
   50569      1575440 :          idata = idata + 1
   50570      1575440 :          data_tmp = ISHFT(pack_tmp, 4)
   50571      1575440 :          ipack = ipack + 1
   50572      1575440 :          pack_tmp = packed_data(ipack)
   50573      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50574      1575440 :          pack_tmp = ISHFT(pack_tmp, -4)
   50575      1575440 :          idata = idata + 1
   50576      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50577      1575440 :          full_data(idata) = data_tmp
   50578      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50579      1575440 :          idata = idata + 1
   50580      1575440 :          data_tmp = ISHFT(pack_tmp, 60)
   50581      1575440 :          ipack = ipack + 1
   50582      1575440 :          pack_tmp = packed_data(ipack)
   50583      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   50584      1575440 :          pack_tmp = ISHFT(pack_tmp, -60)
   50585      1575440 :          idata = idata + 1
   50586      1575440 :          data_tmp = ISHFT(pack_tmp, 56)
   50587      1575440 :          ipack = ipack + 1
   50588      1575440 :          pack_tmp = packed_data(ipack)
   50589      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   50590      1575440 :          pack_tmp = ISHFT(pack_tmp, -56)
   50591      1575440 :          idata = idata + 1
   50592      1575440 :          data_tmp = ISHFT(pack_tmp, 52)
   50593      1575440 :          ipack = ipack + 1
   50594      1575440 :          pack_tmp = packed_data(ipack)
   50595      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   50596      1575440 :          pack_tmp = ISHFT(pack_tmp, -52)
   50597      1575440 :          idata = idata + 1
   50598      1575440 :          data_tmp = ISHFT(pack_tmp, 48)
   50599      1575440 :          ipack = ipack + 1
   50600      1575440 :          pack_tmp = packed_data(ipack)
   50601      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   50602      1575440 :          pack_tmp = ISHFT(pack_tmp, -48)
   50603      1575440 :          idata = idata + 1
   50604      1575440 :          data_tmp = ISHFT(pack_tmp, 44)
   50605      1575440 :          ipack = ipack + 1
   50606      1575440 :          pack_tmp = packed_data(ipack)
   50607      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   50608      1575440 :          pack_tmp = ISHFT(pack_tmp, -44)
   50609      1575440 :          idata = idata + 1
   50610      1575440 :          data_tmp = ISHFT(pack_tmp, 40)
   50611      1575440 :          ipack = ipack + 1
   50612      1575440 :          pack_tmp = packed_data(ipack)
   50613      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   50614      1575440 :          pack_tmp = ISHFT(pack_tmp, -40)
   50615      1575440 :          idata = idata + 1
   50616      1575440 :          data_tmp = ISHFT(pack_tmp, 36)
   50617      1575440 :          ipack = ipack + 1
   50618      1575440 :          pack_tmp = packed_data(ipack)
   50619      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   50620      1575440 :          pack_tmp = ISHFT(pack_tmp, -36)
   50621      1575440 :          idata = idata + 1
   50622      1575440 :          data_tmp = ISHFT(pack_tmp, 32)
   50623      1575440 :          ipack = ipack + 1
   50624      1575440 :          pack_tmp = packed_data(ipack)
   50625      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   50626      1575440 :          pack_tmp = ISHFT(pack_tmp, -32)
   50627      1575440 :          idata = idata + 1
   50628      1575440 :          data_tmp = ISHFT(pack_tmp, 28)
   50629      1575440 :          ipack = ipack + 1
   50630      1575440 :          pack_tmp = packed_data(ipack)
   50631      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   50632      1575440 :          pack_tmp = ISHFT(pack_tmp, -28)
   50633      1575440 :          idata = idata + 1
   50634      1575440 :          data_tmp = ISHFT(pack_tmp, 24)
   50635      1575440 :          ipack = ipack + 1
   50636      1575440 :          pack_tmp = packed_data(ipack)
   50637      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   50638      1575440 :          pack_tmp = ISHFT(pack_tmp, -24)
   50639      1575440 :          idata = idata + 1
   50640      1575440 :          data_tmp = ISHFT(pack_tmp, 20)
   50641      1575440 :          ipack = ipack + 1
   50642      1575440 :          pack_tmp = packed_data(ipack)
   50643      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   50644      1575440 :          pack_tmp = ISHFT(pack_tmp, -20)
   50645      1575440 :          idata = idata + 1
   50646      1575440 :          data_tmp = ISHFT(pack_tmp, 16)
   50647      1575440 :          ipack = ipack + 1
   50648      1575440 :          pack_tmp = packed_data(ipack)
   50649      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   50650      1575440 :          pack_tmp = ISHFT(pack_tmp, -16)
   50651      1575440 :          idata = idata + 1
   50652      1575440 :          data_tmp = ISHFT(pack_tmp, 12)
   50653      1575440 :          ipack = ipack + 1
   50654      1575440 :          pack_tmp = packed_data(ipack)
   50655      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   50656      1575440 :          pack_tmp = ISHFT(pack_tmp, -12)
   50657      1575440 :          idata = idata + 1
   50658      1575440 :          data_tmp = ISHFT(pack_tmp, 8)
   50659      1575440 :          ipack = ipack + 1
   50660      1575440 :          pack_tmp = packed_data(ipack)
   50661      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   50662      1575440 :          pack_tmp = ISHFT(pack_tmp, -8)
   50663      1575440 :          idata = idata + 1
   50664      1575440 :          data_tmp = ISHFT(pack_tmp, 4)
   50665      1575440 :          ipack = ipack + 1
   50666      1575440 :          pack_tmp = packed_data(ipack)
   50667      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   50668      1575440 :          pack_tmp = ISHFT(pack_tmp, -4)
   50669      1575440 :          idata = idata + 1
   50670      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   50671      1575440 :          full_data(idata) = data_tmp
   50672      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   50673              :       END DO
   50674        98465 :       IF (Ndata_rep < Ndata) THEN
   50675            0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   50676              :       END IF
   50677        98465 :    END SUBROUTINE bits2ints_60
   50678              : 
   50679              : ! **************************************************************************************************
   50680              : !> \brief ...
   50681              : !> \param Ndata ...
   50682              : !> \param packed_data ...
   50683              : !> \param full_data ...
   50684              : ! **************************************************************************************************
   50685        24432 :    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        24432 :       idata = 0
   50696        24432 :       ipack = 0
   50697        24432 :       Ndata_rep = (Ndata/64)*64
   50698        24432 :       DO kdata = 1, Ndata_rep, 64
   50699       390912 :          pack_tmp = 0
   50700       390912 :          idata = idata + 1
   50701       390912 :          data_tmp = full_data(idata)
   50702       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50703       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50704       390912 :          pack_tmp = ISHFT(pack_tmp, -3)
   50705       390912 :          idata = idata + 1
   50706       390912 :          data_tmp = full_data(idata)
   50707       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50708       390912 :          data_tmp = IAND(data_tmp, mask_left(3))
   50709       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50710       390912 :          ipack = ipack + 1
   50711       390912 :          packed_data(ipack) = pack_tmp
   50712       390912 :          data_tmp = full_data(idata)
   50713       390912 :          pack_tmp = ISHFT(data_tmp, 6)
   50714       390912 :          pack_tmp = ISHFT(pack_tmp, -6)
   50715       390912 :          idata = idata + 1
   50716       390912 :          data_tmp = full_data(idata)
   50717       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50718       390912 :          data_tmp = IAND(data_tmp, mask_left(6))
   50719       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50720       390912 :          ipack = ipack + 1
   50721       390912 :          packed_data(ipack) = pack_tmp
   50722       390912 :          data_tmp = full_data(idata)
   50723       390912 :          pack_tmp = ISHFT(data_tmp, 9)
   50724       390912 :          pack_tmp = ISHFT(pack_tmp, -9)
   50725       390912 :          idata = idata + 1
   50726       390912 :          data_tmp = full_data(idata)
   50727       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50728       390912 :          data_tmp = IAND(data_tmp, mask_left(9))
   50729       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50730       390912 :          ipack = ipack + 1
   50731       390912 :          packed_data(ipack) = pack_tmp
   50732       390912 :          data_tmp = full_data(idata)
   50733       390912 :          pack_tmp = ISHFT(data_tmp, 12)
   50734       390912 :          pack_tmp = ISHFT(pack_tmp, -12)
   50735       390912 :          idata = idata + 1
   50736       390912 :          data_tmp = full_data(idata)
   50737       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50738       390912 :          data_tmp = IAND(data_tmp, mask_left(12))
   50739       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50740       390912 :          ipack = ipack + 1
   50741       390912 :          packed_data(ipack) = pack_tmp
   50742       390912 :          data_tmp = full_data(idata)
   50743       390912 :          pack_tmp = ISHFT(data_tmp, 15)
   50744       390912 :          pack_tmp = ISHFT(pack_tmp, -15)
   50745       390912 :          idata = idata + 1
   50746       390912 :          data_tmp = full_data(idata)
   50747       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50748       390912 :          data_tmp = IAND(data_tmp, mask_left(15))
   50749       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50750       390912 :          ipack = ipack + 1
   50751       390912 :          packed_data(ipack) = pack_tmp
   50752       390912 :          data_tmp = full_data(idata)
   50753       390912 :          pack_tmp = ISHFT(data_tmp, 18)
   50754       390912 :          pack_tmp = ISHFT(pack_tmp, -18)
   50755       390912 :          idata = idata + 1
   50756       390912 :          data_tmp = full_data(idata)
   50757       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50758       390912 :          data_tmp = IAND(data_tmp, mask_left(18))
   50759       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50760       390912 :          ipack = ipack + 1
   50761       390912 :          packed_data(ipack) = pack_tmp
   50762       390912 :          data_tmp = full_data(idata)
   50763       390912 :          pack_tmp = ISHFT(data_tmp, 21)
   50764       390912 :          pack_tmp = ISHFT(pack_tmp, -21)
   50765       390912 :          idata = idata + 1
   50766       390912 :          data_tmp = full_data(idata)
   50767       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50768       390912 :          data_tmp = IAND(data_tmp, mask_left(21))
   50769       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50770       390912 :          ipack = ipack + 1
   50771       390912 :          packed_data(ipack) = pack_tmp
   50772       390912 :          data_tmp = full_data(idata)
   50773       390912 :          pack_tmp = ISHFT(data_tmp, 24)
   50774       390912 :          pack_tmp = ISHFT(pack_tmp, -24)
   50775       390912 :          idata = idata + 1
   50776       390912 :          data_tmp = full_data(idata)
   50777       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50778       390912 :          data_tmp = IAND(data_tmp, mask_left(24))
   50779       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50780       390912 :          ipack = ipack + 1
   50781       390912 :          packed_data(ipack) = pack_tmp
   50782       390912 :          data_tmp = full_data(idata)
   50783       390912 :          pack_tmp = ISHFT(data_tmp, 27)
   50784       390912 :          pack_tmp = ISHFT(pack_tmp, -27)
   50785       390912 :          idata = idata + 1
   50786       390912 :          data_tmp = full_data(idata)
   50787       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50788       390912 :          data_tmp = IAND(data_tmp, mask_left(27))
   50789       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50790       390912 :          ipack = ipack + 1
   50791       390912 :          packed_data(ipack) = pack_tmp
   50792       390912 :          data_tmp = full_data(idata)
   50793       390912 :          pack_tmp = ISHFT(data_tmp, 30)
   50794       390912 :          pack_tmp = ISHFT(pack_tmp, -30)
   50795       390912 :          idata = idata + 1
   50796       390912 :          data_tmp = full_data(idata)
   50797       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50798       390912 :          data_tmp = IAND(data_tmp, mask_left(30))
   50799       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50800       390912 :          ipack = ipack + 1
   50801       390912 :          packed_data(ipack) = pack_tmp
   50802       390912 :          data_tmp = full_data(idata)
   50803       390912 :          pack_tmp = ISHFT(data_tmp, 33)
   50804       390912 :          pack_tmp = ISHFT(pack_tmp, -33)
   50805       390912 :          idata = idata + 1
   50806       390912 :          data_tmp = full_data(idata)
   50807       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50808       390912 :          data_tmp = IAND(data_tmp, mask_left(33))
   50809       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50810       390912 :          ipack = ipack + 1
   50811       390912 :          packed_data(ipack) = pack_tmp
   50812       390912 :          data_tmp = full_data(idata)
   50813       390912 :          pack_tmp = ISHFT(data_tmp, 36)
   50814       390912 :          pack_tmp = ISHFT(pack_tmp, -36)
   50815       390912 :          idata = idata + 1
   50816       390912 :          data_tmp = full_data(idata)
   50817       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50818       390912 :          data_tmp = IAND(data_tmp, mask_left(36))
   50819       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50820       390912 :          ipack = ipack + 1
   50821       390912 :          packed_data(ipack) = pack_tmp
   50822       390912 :          data_tmp = full_data(idata)
   50823       390912 :          pack_tmp = ISHFT(data_tmp, 39)
   50824       390912 :          pack_tmp = ISHFT(pack_tmp, -39)
   50825       390912 :          idata = idata + 1
   50826       390912 :          data_tmp = full_data(idata)
   50827       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50828       390912 :          data_tmp = IAND(data_tmp, mask_left(39))
   50829       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50830       390912 :          ipack = ipack + 1
   50831       390912 :          packed_data(ipack) = pack_tmp
   50832       390912 :          data_tmp = full_data(idata)
   50833       390912 :          pack_tmp = ISHFT(data_tmp, 42)
   50834       390912 :          pack_tmp = ISHFT(pack_tmp, -42)
   50835       390912 :          idata = idata + 1
   50836       390912 :          data_tmp = full_data(idata)
   50837       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50838       390912 :          data_tmp = IAND(data_tmp, mask_left(42))
   50839       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50840       390912 :          ipack = ipack + 1
   50841       390912 :          packed_data(ipack) = pack_tmp
   50842       390912 :          data_tmp = full_data(idata)
   50843       390912 :          pack_tmp = ISHFT(data_tmp, 45)
   50844       390912 :          pack_tmp = ISHFT(pack_tmp, -45)
   50845       390912 :          idata = idata + 1
   50846       390912 :          data_tmp = full_data(idata)
   50847       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50848       390912 :          data_tmp = IAND(data_tmp, mask_left(45))
   50849       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50850       390912 :          ipack = ipack + 1
   50851       390912 :          packed_data(ipack) = pack_tmp
   50852       390912 :          data_tmp = full_data(idata)
   50853       390912 :          pack_tmp = ISHFT(data_tmp, 48)
   50854       390912 :          pack_tmp = ISHFT(pack_tmp, -48)
   50855       390912 :          idata = idata + 1
   50856       390912 :          data_tmp = full_data(idata)
   50857       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50858       390912 :          data_tmp = IAND(data_tmp, mask_left(48))
   50859       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50860       390912 :          ipack = ipack + 1
   50861       390912 :          packed_data(ipack) = pack_tmp
   50862       390912 :          data_tmp = full_data(idata)
   50863       390912 :          pack_tmp = ISHFT(data_tmp, 51)
   50864       390912 :          pack_tmp = ISHFT(pack_tmp, -51)
   50865       390912 :          idata = idata + 1
   50866       390912 :          data_tmp = full_data(idata)
   50867       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50868       390912 :          data_tmp = IAND(data_tmp, mask_left(51))
   50869       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50870       390912 :          ipack = ipack + 1
   50871       390912 :          packed_data(ipack) = pack_tmp
   50872       390912 :          data_tmp = full_data(idata)
   50873       390912 :          pack_tmp = ISHFT(data_tmp, 54)
   50874       390912 :          pack_tmp = ISHFT(pack_tmp, -54)
   50875       390912 :          idata = idata + 1
   50876       390912 :          data_tmp = full_data(idata)
   50877       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50878       390912 :          data_tmp = IAND(data_tmp, mask_left(54))
   50879       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50880       390912 :          ipack = ipack + 1
   50881       390912 :          packed_data(ipack) = pack_tmp
   50882       390912 :          data_tmp = full_data(idata)
   50883       390912 :          pack_tmp = ISHFT(data_tmp, 57)
   50884       390912 :          pack_tmp = ISHFT(pack_tmp, -57)
   50885       390912 :          idata = idata + 1
   50886       390912 :          data_tmp = full_data(idata)
   50887       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50888       390912 :          data_tmp = IAND(data_tmp, mask_left(57))
   50889       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50890       390912 :          ipack = ipack + 1
   50891       390912 :          packed_data(ipack) = pack_tmp
   50892       390912 :          data_tmp = full_data(idata)
   50893       390912 :          pack_tmp = ISHFT(data_tmp, 60)
   50894       390912 :          pack_tmp = ISHFT(pack_tmp, -60)
   50895       390912 :          idata = idata + 1
   50896       390912 :          data_tmp = full_data(idata)
   50897       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50898       390912 :          data_tmp = IAND(data_tmp, mask_left(60))
   50899       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50900       390912 :          ipack = ipack + 1
   50901       390912 :          packed_data(ipack) = pack_tmp
   50902       390912 :          data_tmp = full_data(idata)
   50903       390912 :          pack_tmp = ISHFT(data_tmp, 63)
   50904       390912 :          pack_tmp = ISHFT(pack_tmp, -61)
   50905       390912 :          idata = idata + 1
   50906       390912 :          data_tmp = full_data(idata)
   50907       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50908       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50909       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
   50910       390912 :          idata = idata + 1
   50911       390912 :          data_tmp = full_data(idata)
   50912       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50913       390912 :          data_tmp = IAND(data_tmp, mask_left(2))
   50914       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50915       390912 :          ipack = ipack + 1
   50916       390912 :          packed_data(ipack) = pack_tmp
   50917       390912 :          data_tmp = full_data(idata)
   50918       390912 :          pack_tmp = ISHFT(data_tmp, 5)
   50919       390912 :          pack_tmp = ISHFT(pack_tmp, -5)
   50920       390912 :          idata = idata + 1
   50921       390912 :          data_tmp = full_data(idata)
   50922       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50923       390912 :          data_tmp = IAND(data_tmp, mask_left(5))
   50924       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50925       390912 :          ipack = ipack + 1
   50926       390912 :          packed_data(ipack) = pack_tmp
   50927       390912 :          data_tmp = full_data(idata)
   50928       390912 :          pack_tmp = ISHFT(data_tmp, 8)
   50929       390912 :          pack_tmp = ISHFT(pack_tmp, -8)
   50930       390912 :          idata = idata + 1
   50931       390912 :          data_tmp = full_data(idata)
   50932       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50933       390912 :          data_tmp = IAND(data_tmp, mask_left(8))
   50934       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50935       390912 :          ipack = ipack + 1
   50936       390912 :          packed_data(ipack) = pack_tmp
   50937       390912 :          data_tmp = full_data(idata)
   50938       390912 :          pack_tmp = ISHFT(data_tmp, 11)
   50939       390912 :          pack_tmp = ISHFT(pack_tmp, -11)
   50940       390912 :          idata = idata + 1
   50941       390912 :          data_tmp = full_data(idata)
   50942       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50943       390912 :          data_tmp = IAND(data_tmp, mask_left(11))
   50944       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50945       390912 :          ipack = ipack + 1
   50946       390912 :          packed_data(ipack) = pack_tmp
   50947       390912 :          data_tmp = full_data(idata)
   50948       390912 :          pack_tmp = ISHFT(data_tmp, 14)
   50949       390912 :          pack_tmp = ISHFT(pack_tmp, -14)
   50950       390912 :          idata = idata + 1
   50951       390912 :          data_tmp = full_data(idata)
   50952       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50953       390912 :          data_tmp = IAND(data_tmp, mask_left(14))
   50954       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50955       390912 :          ipack = ipack + 1
   50956       390912 :          packed_data(ipack) = pack_tmp
   50957       390912 :          data_tmp = full_data(idata)
   50958       390912 :          pack_tmp = ISHFT(data_tmp, 17)
   50959       390912 :          pack_tmp = ISHFT(pack_tmp, -17)
   50960       390912 :          idata = idata + 1
   50961       390912 :          data_tmp = full_data(idata)
   50962       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50963       390912 :          data_tmp = IAND(data_tmp, mask_left(17))
   50964       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50965       390912 :          ipack = ipack + 1
   50966       390912 :          packed_data(ipack) = pack_tmp
   50967       390912 :          data_tmp = full_data(idata)
   50968       390912 :          pack_tmp = ISHFT(data_tmp, 20)
   50969       390912 :          pack_tmp = ISHFT(pack_tmp, -20)
   50970       390912 :          idata = idata + 1
   50971       390912 :          data_tmp = full_data(idata)
   50972       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50973       390912 :          data_tmp = IAND(data_tmp, mask_left(20))
   50974       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50975       390912 :          ipack = ipack + 1
   50976       390912 :          packed_data(ipack) = pack_tmp
   50977       390912 :          data_tmp = full_data(idata)
   50978       390912 :          pack_tmp = ISHFT(data_tmp, 23)
   50979       390912 :          pack_tmp = ISHFT(pack_tmp, -23)
   50980       390912 :          idata = idata + 1
   50981       390912 :          data_tmp = full_data(idata)
   50982       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50983       390912 :          data_tmp = IAND(data_tmp, mask_left(23))
   50984       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50985       390912 :          ipack = ipack + 1
   50986       390912 :          packed_data(ipack) = pack_tmp
   50987       390912 :          data_tmp = full_data(idata)
   50988       390912 :          pack_tmp = ISHFT(data_tmp, 26)
   50989       390912 :          pack_tmp = ISHFT(pack_tmp, -26)
   50990       390912 :          idata = idata + 1
   50991       390912 :          data_tmp = full_data(idata)
   50992       390912 :          data_tmp = ISHFT(data_tmp, 3)
   50993       390912 :          data_tmp = IAND(data_tmp, mask_left(26))
   50994       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   50995       390912 :          ipack = ipack + 1
   50996       390912 :          packed_data(ipack) = pack_tmp
   50997       390912 :          data_tmp = full_data(idata)
   50998       390912 :          pack_tmp = ISHFT(data_tmp, 29)
   50999       390912 :          pack_tmp = ISHFT(pack_tmp, -29)
   51000       390912 :          idata = idata + 1
   51001       390912 :          data_tmp = full_data(idata)
   51002       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51003       390912 :          data_tmp = IAND(data_tmp, mask_left(29))
   51004       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51005       390912 :          ipack = ipack + 1
   51006       390912 :          packed_data(ipack) = pack_tmp
   51007       390912 :          data_tmp = full_data(idata)
   51008       390912 :          pack_tmp = ISHFT(data_tmp, 32)
   51009       390912 :          pack_tmp = ISHFT(pack_tmp, -32)
   51010       390912 :          idata = idata + 1
   51011       390912 :          data_tmp = full_data(idata)
   51012       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51013       390912 :          data_tmp = IAND(data_tmp, mask_left(32))
   51014       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51015       390912 :          ipack = ipack + 1
   51016       390912 :          packed_data(ipack) = pack_tmp
   51017       390912 :          data_tmp = full_data(idata)
   51018       390912 :          pack_tmp = ISHFT(data_tmp, 35)
   51019       390912 :          pack_tmp = ISHFT(pack_tmp, -35)
   51020       390912 :          idata = idata + 1
   51021       390912 :          data_tmp = full_data(idata)
   51022       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51023       390912 :          data_tmp = IAND(data_tmp, mask_left(35))
   51024       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51025       390912 :          ipack = ipack + 1
   51026       390912 :          packed_data(ipack) = pack_tmp
   51027       390912 :          data_tmp = full_data(idata)
   51028       390912 :          pack_tmp = ISHFT(data_tmp, 38)
   51029       390912 :          pack_tmp = ISHFT(pack_tmp, -38)
   51030       390912 :          idata = idata + 1
   51031       390912 :          data_tmp = full_data(idata)
   51032       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51033       390912 :          data_tmp = IAND(data_tmp, mask_left(38))
   51034       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51035       390912 :          ipack = ipack + 1
   51036       390912 :          packed_data(ipack) = pack_tmp
   51037       390912 :          data_tmp = full_data(idata)
   51038       390912 :          pack_tmp = ISHFT(data_tmp, 41)
   51039       390912 :          pack_tmp = ISHFT(pack_tmp, -41)
   51040       390912 :          idata = idata + 1
   51041       390912 :          data_tmp = full_data(idata)
   51042       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51043       390912 :          data_tmp = IAND(data_tmp, mask_left(41))
   51044       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51045       390912 :          ipack = ipack + 1
   51046       390912 :          packed_data(ipack) = pack_tmp
   51047       390912 :          data_tmp = full_data(idata)
   51048       390912 :          pack_tmp = ISHFT(data_tmp, 44)
   51049       390912 :          pack_tmp = ISHFT(pack_tmp, -44)
   51050       390912 :          idata = idata + 1
   51051       390912 :          data_tmp = full_data(idata)
   51052       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51053       390912 :          data_tmp = IAND(data_tmp, mask_left(44))
   51054       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51055       390912 :          ipack = ipack + 1
   51056       390912 :          packed_data(ipack) = pack_tmp
   51057       390912 :          data_tmp = full_data(idata)
   51058       390912 :          pack_tmp = ISHFT(data_tmp, 47)
   51059       390912 :          pack_tmp = ISHFT(pack_tmp, -47)
   51060       390912 :          idata = idata + 1
   51061       390912 :          data_tmp = full_data(idata)
   51062       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51063       390912 :          data_tmp = IAND(data_tmp, mask_left(47))
   51064       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51065       390912 :          ipack = ipack + 1
   51066       390912 :          packed_data(ipack) = pack_tmp
   51067       390912 :          data_tmp = full_data(idata)
   51068       390912 :          pack_tmp = ISHFT(data_tmp, 50)
   51069       390912 :          pack_tmp = ISHFT(pack_tmp, -50)
   51070       390912 :          idata = idata + 1
   51071       390912 :          data_tmp = full_data(idata)
   51072       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51073       390912 :          data_tmp = IAND(data_tmp, mask_left(50))
   51074       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51075       390912 :          ipack = ipack + 1
   51076       390912 :          packed_data(ipack) = pack_tmp
   51077       390912 :          data_tmp = full_data(idata)
   51078       390912 :          pack_tmp = ISHFT(data_tmp, 53)
   51079       390912 :          pack_tmp = ISHFT(pack_tmp, -53)
   51080       390912 :          idata = idata + 1
   51081       390912 :          data_tmp = full_data(idata)
   51082       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51083       390912 :          data_tmp = IAND(data_tmp, mask_left(53))
   51084       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51085       390912 :          ipack = ipack + 1
   51086       390912 :          packed_data(ipack) = pack_tmp
   51087       390912 :          data_tmp = full_data(idata)
   51088       390912 :          pack_tmp = ISHFT(data_tmp, 56)
   51089       390912 :          pack_tmp = ISHFT(pack_tmp, -56)
   51090       390912 :          idata = idata + 1
   51091       390912 :          data_tmp = full_data(idata)
   51092       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51093       390912 :          data_tmp = IAND(data_tmp, mask_left(56))
   51094       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51095       390912 :          ipack = ipack + 1
   51096       390912 :          packed_data(ipack) = pack_tmp
   51097       390912 :          data_tmp = full_data(idata)
   51098       390912 :          pack_tmp = ISHFT(data_tmp, 59)
   51099       390912 :          pack_tmp = ISHFT(pack_tmp, -59)
   51100       390912 :          idata = idata + 1
   51101       390912 :          data_tmp = full_data(idata)
   51102       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51103       390912 :          data_tmp = IAND(data_tmp, mask_left(59))
   51104       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51105       390912 :          ipack = ipack + 1
   51106       390912 :          packed_data(ipack) = pack_tmp
   51107       390912 :          data_tmp = full_data(idata)
   51108       390912 :          pack_tmp = ISHFT(data_tmp, 62)
   51109       390912 :          pack_tmp = ISHFT(pack_tmp, -61)
   51110       390912 :          idata = idata + 1
   51111       390912 :          data_tmp = full_data(idata)
   51112       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51113       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51114       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
   51115       390912 :          idata = idata + 1
   51116       390912 :          data_tmp = full_data(idata)
   51117       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51118       390912 :          data_tmp = IAND(data_tmp, mask_left(1))
   51119       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51120       390912 :          ipack = ipack + 1
   51121       390912 :          packed_data(ipack) = pack_tmp
   51122       390912 :          data_tmp = full_data(idata)
   51123       390912 :          pack_tmp = ISHFT(data_tmp, 4)
   51124       390912 :          pack_tmp = ISHFT(pack_tmp, -4)
   51125       390912 :          idata = idata + 1
   51126       390912 :          data_tmp = full_data(idata)
   51127       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51128       390912 :          data_tmp = IAND(data_tmp, mask_left(4))
   51129       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51130       390912 :          ipack = ipack + 1
   51131       390912 :          packed_data(ipack) = pack_tmp
   51132       390912 :          data_tmp = full_data(idata)
   51133       390912 :          pack_tmp = ISHFT(data_tmp, 7)
   51134       390912 :          pack_tmp = ISHFT(pack_tmp, -7)
   51135       390912 :          idata = idata + 1
   51136       390912 :          data_tmp = full_data(idata)
   51137       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51138       390912 :          data_tmp = IAND(data_tmp, mask_left(7))
   51139       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51140       390912 :          ipack = ipack + 1
   51141       390912 :          packed_data(ipack) = pack_tmp
   51142       390912 :          data_tmp = full_data(idata)
   51143       390912 :          pack_tmp = ISHFT(data_tmp, 10)
   51144       390912 :          pack_tmp = ISHFT(pack_tmp, -10)
   51145       390912 :          idata = idata + 1
   51146       390912 :          data_tmp = full_data(idata)
   51147       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51148       390912 :          data_tmp = IAND(data_tmp, mask_left(10))
   51149       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51150       390912 :          ipack = ipack + 1
   51151       390912 :          packed_data(ipack) = pack_tmp
   51152       390912 :          data_tmp = full_data(idata)
   51153       390912 :          pack_tmp = ISHFT(data_tmp, 13)
   51154       390912 :          pack_tmp = ISHFT(pack_tmp, -13)
   51155       390912 :          idata = idata + 1
   51156       390912 :          data_tmp = full_data(idata)
   51157       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51158       390912 :          data_tmp = IAND(data_tmp, mask_left(13))
   51159       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51160       390912 :          ipack = ipack + 1
   51161       390912 :          packed_data(ipack) = pack_tmp
   51162       390912 :          data_tmp = full_data(idata)
   51163       390912 :          pack_tmp = ISHFT(data_tmp, 16)
   51164       390912 :          pack_tmp = ISHFT(pack_tmp, -16)
   51165       390912 :          idata = idata + 1
   51166       390912 :          data_tmp = full_data(idata)
   51167       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51168       390912 :          data_tmp = IAND(data_tmp, mask_left(16))
   51169       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51170       390912 :          ipack = ipack + 1
   51171       390912 :          packed_data(ipack) = pack_tmp
   51172       390912 :          data_tmp = full_data(idata)
   51173       390912 :          pack_tmp = ISHFT(data_tmp, 19)
   51174       390912 :          pack_tmp = ISHFT(pack_tmp, -19)
   51175       390912 :          idata = idata + 1
   51176       390912 :          data_tmp = full_data(idata)
   51177       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51178       390912 :          data_tmp = IAND(data_tmp, mask_left(19))
   51179       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51180       390912 :          ipack = ipack + 1
   51181       390912 :          packed_data(ipack) = pack_tmp
   51182       390912 :          data_tmp = full_data(idata)
   51183       390912 :          pack_tmp = ISHFT(data_tmp, 22)
   51184       390912 :          pack_tmp = ISHFT(pack_tmp, -22)
   51185       390912 :          idata = idata + 1
   51186       390912 :          data_tmp = full_data(idata)
   51187       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51188       390912 :          data_tmp = IAND(data_tmp, mask_left(22))
   51189       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51190       390912 :          ipack = ipack + 1
   51191       390912 :          packed_data(ipack) = pack_tmp
   51192       390912 :          data_tmp = full_data(idata)
   51193       390912 :          pack_tmp = ISHFT(data_tmp, 25)
   51194       390912 :          pack_tmp = ISHFT(pack_tmp, -25)
   51195       390912 :          idata = idata + 1
   51196       390912 :          data_tmp = full_data(idata)
   51197       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51198       390912 :          data_tmp = IAND(data_tmp, mask_left(25))
   51199       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51200       390912 :          ipack = ipack + 1
   51201       390912 :          packed_data(ipack) = pack_tmp
   51202       390912 :          data_tmp = full_data(idata)
   51203       390912 :          pack_tmp = ISHFT(data_tmp, 28)
   51204       390912 :          pack_tmp = ISHFT(pack_tmp, -28)
   51205       390912 :          idata = idata + 1
   51206       390912 :          data_tmp = full_data(idata)
   51207       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51208       390912 :          data_tmp = IAND(data_tmp, mask_left(28))
   51209       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51210       390912 :          ipack = ipack + 1
   51211       390912 :          packed_data(ipack) = pack_tmp
   51212       390912 :          data_tmp = full_data(idata)
   51213       390912 :          pack_tmp = ISHFT(data_tmp, 31)
   51214       390912 :          pack_tmp = ISHFT(pack_tmp, -31)
   51215       390912 :          idata = idata + 1
   51216       390912 :          data_tmp = full_data(idata)
   51217       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51218       390912 :          data_tmp = IAND(data_tmp, mask_left(31))
   51219       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51220       390912 :          ipack = ipack + 1
   51221       390912 :          packed_data(ipack) = pack_tmp
   51222       390912 :          data_tmp = full_data(idata)
   51223       390912 :          pack_tmp = ISHFT(data_tmp, 34)
   51224       390912 :          pack_tmp = ISHFT(pack_tmp, -34)
   51225       390912 :          idata = idata + 1
   51226       390912 :          data_tmp = full_data(idata)
   51227       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51228       390912 :          data_tmp = IAND(data_tmp, mask_left(34))
   51229       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51230       390912 :          ipack = ipack + 1
   51231       390912 :          packed_data(ipack) = pack_tmp
   51232       390912 :          data_tmp = full_data(idata)
   51233       390912 :          pack_tmp = ISHFT(data_tmp, 37)
   51234       390912 :          pack_tmp = ISHFT(pack_tmp, -37)
   51235       390912 :          idata = idata + 1
   51236       390912 :          data_tmp = full_data(idata)
   51237       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51238       390912 :          data_tmp = IAND(data_tmp, mask_left(37))
   51239       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51240       390912 :          ipack = ipack + 1
   51241       390912 :          packed_data(ipack) = pack_tmp
   51242       390912 :          data_tmp = full_data(idata)
   51243       390912 :          pack_tmp = ISHFT(data_tmp, 40)
   51244       390912 :          pack_tmp = ISHFT(pack_tmp, -40)
   51245       390912 :          idata = idata + 1
   51246       390912 :          data_tmp = full_data(idata)
   51247       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51248       390912 :          data_tmp = IAND(data_tmp, mask_left(40))
   51249       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51250       390912 :          ipack = ipack + 1
   51251       390912 :          packed_data(ipack) = pack_tmp
   51252       390912 :          data_tmp = full_data(idata)
   51253       390912 :          pack_tmp = ISHFT(data_tmp, 43)
   51254       390912 :          pack_tmp = ISHFT(pack_tmp, -43)
   51255       390912 :          idata = idata + 1
   51256       390912 :          data_tmp = full_data(idata)
   51257       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51258       390912 :          data_tmp = IAND(data_tmp, mask_left(43))
   51259       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51260       390912 :          ipack = ipack + 1
   51261       390912 :          packed_data(ipack) = pack_tmp
   51262       390912 :          data_tmp = full_data(idata)
   51263       390912 :          pack_tmp = ISHFT(data_tmp, 46)
   51264       390912 :          pack_tmp = ISHFT(pack_tmp, -46)
   51265       390912 :          idata = idata + 1
   51266       390912 :          data_tmp = full_data(idata)
   51267       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51268       390912 :          data_tmp = IAND(data_tmp, mask_left(46))
   51269       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51270       390912 :          ipack = ipack + 1
   51271       390912 :          packed_data(ipack) = pack_tmp
   51272       390912 :          data_tmp = full_data(idata)
   51273       390912 :          pack_tmp = ISHFT(data_tmp, 49)
   51274       390912 :          pack_tmp = ISHFT(pack_tmp, -49)
   51275       390912 :          idata = idata + 1
   51276       390912 :          data_tmp = full_data(idata)
   51277       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51278       390912 :          data_tmp = IAND(data_tmp, mask_left(49))
   51279       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51280       390912 :          ipack = ipack + 1
   51281       390912 :          packed_data(ipack) = pack_tmp
   51282       390912 :          data_tmp = full_data(idata)
   51283       390912 :          pack_tmp = ISHFT(data_tmp, 52)
   51284       390912 :          pack_tmp = ISHFT(pack_tmp, -52)
   51285       390912 :          idata = idata + 1
   51286       390912 :          data_tmp = full_data(idata)
   51287       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51288       390912 :          data_tmp = IAND(data_tmp, mask_left(52))
   51289       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51290       390912 :          ipack = ipack + 1
   51291       390912 :          packed_data(ipack) = pack_tmp
   51292       390912 :          data_tmp = full_data(idata)
   51293       390912 :          pack_tmp = ISHFT(data_tmp, 55)
   51294       390912 :          pack_tmp = ISHFT(pack_tmp, -55)
   51295       390912 :          idata = idata + 1
   51296       390912 :          data_tmp = full_data(idata)
   51297       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51298       390912 :          data_tmp = IAND(data_tmp, mask_left(55))
   51299       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51300       390912 :          ipack = ipack + 1
   51301       390912 :          packed_data(ipack) = pack_tmp
   51302       390912 :          data_tmp = full_data(idata)
   51303       390912 :          pack_tmp = ISHFT(data_tmp, 58)
   51304       390912 :          pack_tmp = ISHFT(pack_tmp, -58)
   51305       390912 :          idata = idata + 1
   51306       390912 :          data_tmp = full_data(idata)
   51307       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51308       390912 :          data_tmp = IAND(data_tmp, mask_left(58))
   51309       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51310       390912 :          ipack = ipack + 1
   51311       390912 :          packed_data(ipack) = pack_tmp
   51312       390912 :          data_tmp = full_data(idata)
   51313       390912 :          pack_tmp = ISHFT(data_tmp, 61)
   51314       390912 :          pack_tmp = ISHFT(pack_tmp, -61)
   51315       390912 :          idata = idata + 1
   51316       390912 :          data_tmp = full_data(idata)
   51317       390912 :          data_tmp = ISHFT(data_tmp, 3)
   51318       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51319              :          pack_tmp = ISHFT(pack_tmp, 0)
   51320       390912 :          pack_tmp = ISHFT(pack_tmp, 0)
   51321       390912 :          ipack = ipack + 1
   51322       390912 :          packed_data(ipack) = pack_tmp
   51323              :       END DO
   51324        24432 :       IF (Ndata_rep < Ndata) THEN
   51325            0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   51326              :       END IF
   51327        24432 :    END SUBROUTINE ints2bits_61
   51328              : 
   51329              : ! **************************************************************************************************
   51330              : !> \brief ...
   51331              : !> \param Ndata ...
   51332              : !> \param packed_data ...
   51333              : !> \param full_data ...
   51334              : ! **************************************************************************************************
   51335        98465 :    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        98465 :       ipack = 0
   51346        98465 :       idata = 0
   51347        98465 :       pack_tmp = 0
   51348        98465 :       Ndata_rep = (Ndata/64)*64
   51349        98465 :       DO kdata = 1, Ndata_rep, 64
   51350      1575440 :          idata = idata + 1
   51351      1575440 :          data_tmp = ISHFT(pack_tmp, 61)
   51352      1575440 :          ipack = ipack + 1
   51353      1575440 :          pack_tmp = packed_data(ipack)
   51354      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(61)))
   51355      1575440 :          pack_tmp = ISHFT(pack_tmp, -61)
   51356      1575440 :          idata = idata + 1
   51357      1575440 :          data_tmp = ISHFT(pack_tmp, 58)
   51358      1575440 :          ipack = ipack + 1
   51359      1575440 :          pack_tmp = packed_data(ipack)
   51360      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   51361      1575440 :          pack_tmp = ISHFT(pack_tmp, -58)
   51362      1575440 :          idata = idata + 1
   51363      1575440 :          data_tmp = ISHFT(pack_tmp, 55)
   51364      1575440 :          ipack = ipack + 1
   51365      1575440 :          pack_tmp = packed_data(ipack)
   51366      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   51367      1575440 :          pack_tmp = ISHFT(pack_tmp, -55)
   51368      1575440 :          idata = idata + 1
   51369      1575440 :          data_tmp = ISHFT(pack_tmp, 52)
   51370      1575440 :          ipack = ipack + 1
   51371      1575440 :          pack_tmp = packed_data(ipack)
   51372      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   51373      1575440 :          pack_tmp = ISHFT(pack_tmp, -52)
   51374      1575440 :          idata = idata + 1
   51375      1575440 :          data_tmp = ISHFT(pack_tmp, 49)
   51376      1575440 :          ipack = ipack + 1
   51377      1575440 :          pack_tmp = packed_data(ipack)
   51378      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   51379      1575440 :          pack_tmp = ISHFT(pack_tmp, -49)
   51380      1575440 :          idata = idata + 1
   51381      1575440 :          data_tmp = ISHFT(pack_tmp, 46)
   51382      1575440 :          ipack = ipack + 1
   51383      1575440 :          pack_tmp = packed_data(ipack)
   51384      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   51385      1575440 :          pack_tmp = ISHFT(pack_tmp, -46)
   51386      1575440 :          idata = idata + 1
   51387      1575440 :          data_tmp = ISHFT(pack_tmp, 43)
   51388      1575440 :          ipack = ipack + 1
   51389      1575440 :          pack_tmp = packed_data(ipack)
   51390      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   51391      1575440 :          pack_tmp = ISHFT(pack_tmp, -43)
   51392      1575440 :          idata = idata + 1
   51393      1575440 :          data_tmp = ISHFT(pack_tmp, 40)
   51394      1575440 :          ipack = ipack + 1
   51395      1575440 :          pack_tmp = packed_data(ipack)
   51396      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   51397      1575440 :          pack_tmp = ISHFT(pack_tmp, -40)
   51398      1575440 :          idata = idata + 1
   51399      1575440 :          data_tmp = ISHFT(pack_tmp, 37)
   51400      1575440 :          ipack = ipack + 1
   51401      1575440 :          pack_tmp = packed_data(ipack)
   51402      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   51403      1575440 :          pack_tmp = ISHFT(pack_tmp, -37)
   51404      1575440 :          idata = idata + 1
   51405      1575440 :          data_tmp = ISHFT(pack_tmp, 34)
   51406      1575440 :          ipack = ipack + 1
   51407      1575440 :          pack_tmp = packed_data(ipack)
   51408      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   51409      1575440 :          pack_tmp = ISHFT(pack_tmp, -34)
   51410      1575440 :          idata = idata + 1
   51411      1575440 :          data_tmp = ISHFT(pack_tmp, 31)
   51412      1575440 :          ipack = ipack + 1
   51413      1575440 :          pack_tmp = packed_data(ipack)
   51414      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   51415      1575440 :          pack_tmp = ISHFT(pack_tmp, -31)
   51416      1575440 :          idata = idata + 1
   51417      1575440 :          data_tmp = ISHFT(pack_tmp, 28)
   51418      1575440 :          ipack = ipack + 1
   51419      1575440 :          pack_tmp = packed_data(ipack)
   51420      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   51421      1575440 :          pack_tmp = ISHFT(pack_tmp, -28)
   51422      1575440 :          idata = idata + 1
   51423      1575440 :          data_tmp = ISHFT(pack_tmp, 25)
   51424      1575440 :          ipack = ipack + 1
   51425      1575440 :          pack_tmp = packed_data(ipack)
   51426      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   51427      1575440 :          pack_tmp = ISHFT(pack_tmp, -25)
   51428      1575440 :          idata = idata + 1
   51429      1575440 :          data_tmp = ISHFT(pack_tmp, 22)
   51430      1575440 :          ipack = ipack + 1
   51431      1575440 :          pack_tmp = packed_data(ipack)
   51432      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   51433      1575440 :          pack_tmp = ISHFT(pack_tmp, -22)
   51434      1575440 :          idata = idata + 1
   51435      1575440 :          data_tmp = ISHFT(pack_tmp, 19)
   51436      1575440 :          ipack = ipack + 1
   51437      1575440 :          pack_tmp = packed_data(ipack)
   51438      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   51439      1575440 :          pack_tmp = ISHFT(pack_tmp, -19)
   51440      1575440 :          idata = idata + 1
   51441      1575440 :          data_tmp = ISHFT(pack_tmp, 16)
   51442      1575440 :          ipack = ipack + 1
   51443      1575440 :          pack_tmp = packed_data(ipack)
   51444      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   51445      1575440 :          pack_tmp = ISHFT(pack_tmp, -16)
   51446      1575440 :          idata = idata + 1
   51447      1575440 :          data_tmp = ISHFT(pack_tmp, 13)
   51448      1575440 :          ipack = ipack + 1
   51449      1575440 :          pack_tmp = packed_data(ipack)
   51450      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   51451      1575440 :          pack_tmp = ISHFT(pack_tmp, -13)
   51452      1575440 :          idata = idata + 1
   51453      1575440 :          data_tmp = ISHFT(pack_tmp, 10)
   51454      1575440 :          ipack = ipack + 1
   51455      1575440 :          pack_tmp = packed_data(ipack)
   51456      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   51457      1575440 :          pack_tmp = ISHFT(pack_tmp, -10)
   51458      1575440 :          idata = idata + 1
   51459      1575440 :          data_tmp = ISHFT(pack_tmp, 7)
   51460      1575440 :          ipack = ipack + 1
   51461      1575440 :          pack_tmp = packed_data(ipack)
   51462      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   51463      1575440 :          pack_tmp = ISHFT(pack_tmp, -7)
   51464      1575440 :          idata = idata + 1
   51465      1575440 :          data_tmp = ISHFT(pack_tmp, 4)
   51466      1575440 :          ipack = ipack + 1
   51467      1575440 :          pack_tmp = packed_data(ipack)
   51468      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   51469      1575440 :          pack_tmp = ISHFT(pack_tmp, -4)
   51470      1575440 :          idata = idata + 1
   51471      1575440 :          data_tmp = ISHFT(pack_tmp, 1)
   51472      1575440 :          ipack = ipack + 1
   51473      1575440 :          pack_tmp = packed_data(ipack)
   51474      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   51475      1575440 :          pack_tmp = ISHFT(pack_tmp, -1)
   51476      1575440 :          idata = idata + 1
   51477      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51478      1575440 :          full_data(idata) = data_tmp
   51479      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51480      1575440 :          idata = idata + 1
   51481      1575440 :          data_tmp = ISHFT(pack_tmp, 59)
   51482      1575440 :          ipack = ipack + 1
   51483      1575440 :          pack_tmp = packed_data(ipack)
   51484      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   51485      1575440 :          pack_tmp = ISHFT(pack_tmp, -59)
   51486      1575440 :          idata = idata + 1
   51487      1575440 :          data_tmp = ISHFT(pack_tmp, 56)
   51488      1575440 :          ipack = ipack + 1
   51489      1575440 :          pack_tmp = packed_data(ipack)
   51490      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   51491      1575440 :          pack_tmp = ISHFT(pack_tmp, -56)
   51492      1575440 :          idata = idata + 1
   51493      1575440 :          data_tmp = ISHFT(pack_tmp, 53)
   51494      1575440 :          ipack = ipack + 1
   51495      1575440 :          pack_tmp = packed_data(ipack)
   51496      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   51497      1575440 :          pack_tmp = ISHFT(pack_tmp, -53)
   51498      1575440 :          idata = idata + 1
   51499      1575440 :          data_tmp = ISHFT(pack_tmp, 50)
   51500      1575440 :          ipack = ipack + 1
   51501      1575440 :          pack_tmp = packed_data(ipack)
   51502      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   51503      1575440 :          pack_tmp = ISHFT(pack_tmp, -50)
   51504      1575440 :          idata = idata + 1
   51505      1575440 :          data_tmp = ISHFT(pack_tmp, 47)
   51506      1575440 :          ipack = ipack + 1
   51507      1575440 :          pack_tmp = packed_data(ipack)
   51508      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   51509      1575440 :          pack_tmp = ISHFT(pack_tmp, -47)
   51510      1575440 :          idata = idata + 1
   51511      1575440 :          data_tmp = ISHFT(pack_tmp, 44)
   51512      1575440 :          ipack = ipack + 1
   51513      1575440 :          pack_tmp = packed_data(ipack)
   51514      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   51515      1575440 :          pack_tmp = ISHFT(pack_tmp, -44)
   51516      1575440 :          idata = idata + 1
   51517      1575440 :          data_tmp = ISHFT(pack_tmp, 41)
   51518      1575440 :          ipack = ipack + 1
   51519      1575440 :          pack_tmp = packed_data(ipack)
   51520      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   51521      1575440 :          pack_tmp = ISHFT(pack_tmp, -41)
   51522      1575440 :          idata = idata + 1
   51523      1575440 :          data_tmp = ISHFT(pack_tmp, 38)
   51524      1575440 :          ipack = ipack + 1
   51525      1575440 :          pack_tmp = packed_data(ipack)
   51526      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   51527      1575440 :          pack_tmp = ISHFT(pack_tmp, -38)
   51528      1575440 :          idata = idata + 1
   51529      1575440 :          data_tmp = ISHFT(pack_tmp, 35)
   51530      1575440 :          ipack = ipack + 1
   51531      1575440 :          pack_tmp = packed_data(ipack)
   51532      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   51533      1575440 :          pack_tmp = ISHFT(pack_tmp, -35)
   51534      1575440 :          idata = idata + 1
   51535      1575440 :          data_tmp = ISHFT(pack_tmp, 32)
   51536      1575440 :          ipack = ipack + 1
   51537      1575440 :          pack_tmp = packed_data(ipack)
   51538      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   51539      1575440 :          pack_tmp = ISHFT(pack_tmp, -32)
   51540      1575440 :          idata = idata + 1
   51541      1575440 :          data_tmp = ISHFT(pack_tmp, 29)
   51542      1575440 :          ipack = ipack + 1
   51543      1575440 :          pack_tmp = packed_data(ipack)
   51544      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   51545      1575440 :          pack_tmp = ISHFT(pack_tmp, -29)
   51546      1575440 :          idata = idata + 1
   51547      1575440 :          data_tmp = ISHFT(pack_tmp, 26)
   51548      1575440 :          ipack = ipack + 1
   51549      1575440 :          pack_tmp = packed_data(ipack)
   51550      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   51551      1575440 :          pack_tmp = ISHFT(pack_tmp, -26)
   51552      1575440 :          idata = idata + 1
   51553      1575440 :          data_tmp = ISHFT(pack_tmp, 23)
   51554      1575440 :          ipack = ipack + 1
   51555      1575440 :          pack_tmp = packed_data(ipack)
   51556      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   51557      1575440 :          pack_tmp = ISHFT(pack_tmp, -23)
   51558      1575440 :          idata = idata + 1
   51559      1575440 :          data_tmp = ISHFT(pack_tmp, 20)
   51560      1575440 :          ipack = ipack + 1
   51561      1575440 :          pack_tmp = packed_data(ipack)
   51562      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   51563      1575440 :          pack_tmp = ISHFT(pack_tmp, -20)
   51564      1575440 :          idata = idata + 1
   51565      1575440 :          data_tmp = ISHFT(pack_tmp, 17)
   51566      1575440 :          ipack = ipack + 1
   51567      1575440 :          pack_tmp = packed_data(ipack)
   51568      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   51569      1575440 :          pack_tmp = ISHFT(pack_tmp, -17)
   51570      1575440 :          idata = idata + 1
   51571      1575440 :          data_tmp = ISHFT(pack_tmp, 14)
   51572      1575440 :          ipack = ipack + 1
   51573      1575440 :          pack_tmp = packed_data(ipack)
   51574      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   51575      1575440 :          pack_tmp = ISHFT(pack_tmp, -14)
   51576      1575440 :          idata = idata + 1
   51577      1575440 :          data_tmp = ISHFT(pack_tmp, 11)
   51578      1575440 :          ipack = ipack + 1
   51579      1575440 :          pack_tmp = packed_data(ipack)
   51580      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   51581      1575440 :          pack_tmp = ISHFT(pack_tmp, -11)
   51582      1575440 :          idata = idata + 1
   51583      1575440 :          data_tmp = ISHFT(pack_tmp, 8)
   51584      1575440 :          ipack = ipack + 1
   51585      1575440 :          pack_tmp = packed_data(ipack)
   51586      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   51587      1575440 :          pack_tmp = ISHFT(pack_tmp, -8)
   51588      1575440 :          idata = idata + 1
   51589      1575440 :          data_tmp = ISHFT(pack_tmp, 5)
   51590      1575440 :          ipack = ipack + 1
   51591      1575440 :          pack_tmp = packed_data(ipack)
   51592      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   51593      1575440 :          pack_tmp = ISHFT(pack_tmp, -5)
   51594      1575440 :          idata = idata + 1
   51595      1575440 :          data_tmp = ISHFT(pack_tmp, 2)
   51596      1575440 :          ipack = ipack + 1
   51597      1575440 :          pack_tmp = packed_data(ipack)
   51598      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   51599      1575440 :          pack_tmp = ISHFT(pack_tmp, -2)
   51600      1575440 :          idata = idata + 1
   51601      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51602      1575440 :          full_data(idata) = data_tmp
   51603      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51604      1575440 :          idata = idata + 1
   51605      1575440 :          data_tmp = ISHFT(pack_tmp, 60)
   51606      1575440 :          ipack = ipack + 1
   51607      1575440 :          pack_tmp = packed_data(ipack)
   51608      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   51609      1575440 :          pack_tmp = ISHFT(pack_tmp, -60)
   51610      1575440 :          idata = idata + 1
   51611      1575440 :          data_tmp = ISHFT(pack_tmp, 57)
   51612      1575440 :          ipack = ipack + 1
   51613      1575440 :          pack_tmp = packed_data(ipack)
   51614      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   51615      1575440 :          pack_tmp = ISHFT(pack_tmp, -57)
   51616      1575440 :          idata = idata + 1
   51617      1575440 :          data_tmp = ISHFT(pack_tmp, 54)
   51618      1575440 :          ipack = ipack + 1
   51619      1575440 :          pack_tmp = packed_data(ipack)
   51620      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   51621      1575440 :          pack_tmp = ISHFT(pack_tmp, -54)
   51622      1575440 :          idata = idata + 1
   51623      1575440 :          data_tmp = ISHFT(pack_tmp, 51)
   51624      1575440 :          ipack = ipack + 1
   51625      1575440 :          pack_tmp = packed_data(ipack)
   51626      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   51627      1575440 :          pack_tmp = ISHFT(pack_tmp, -51)
   51628      1575440 :          idata = idata + 1
   51629      1575440 :          data_tmp = ISHFT(pack_tmp, 48)
   51630      1575440 :          ipack = ipack + 1
   51631      1575440 :          pack_tmp = packed_data(ipack)
   51632      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   51633      1575440 :          pack_tmp = ISHFT(pack_tmp, -48)
   51634      1575440 :          idata = idata + 1
   51635      1575440 :          data_tmp = ISHFT(pack_tmp, 45)
   51636      1575440 :          ipack = ipack + 1
   51637      1575440 :          pack_tmp = packed_data(ipack)
   51638      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   51639      1575440 :          pack_tmp = ISHFT(pack_tmp, -45)
   51640      1575440 :          idata = idata + 1
   51641      1575440 :          data_tmp = ISHFT(pack_tmp, 42)
   51642      1575440 :          ipack = ipack + 1
   51643      1575440 :          pack_tmp = packed_data(ipack)
   51644      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   51645      1575440 :          pack_tmp = ISHFT(pack_tmp, -42)
   51646      1575440 :          idata = idata + 1
   51647      1575440 :          data_tmp = ISHFT(pack_tmp, 39)
   51648      1575440 :          ipack = ipack + 1
   51649      1575440 :          pack_tmp = packed_data(ipack)
   51650      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   51651      1575440 :          pack_tmp = ISHFT(pack_tmp, -39)
   51652      1575440 :          idata = idata + 1
   51653      1575440 :          data_tmp = ISHFT(pack_tmp, 36)
   51654      1575440 :          ipack = ipack + 1
   51655      1575440 :          pack_tmp = packed_data(ipack)
   51656      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   51657      1575440 :          pack_tmp = ISHFT(pack_tmp, -36)
   51658      1575440 :          idata = idata + 1
   51659      1575440 :          data_tmp = ISHFT(pack_tmp, 33)
   51660      1575440 :          ipack = ipack + 1
   51661      1575440 :          pack_tmp = packed_data(ipack)
   51662      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   51663      1575440 :          pack_tmp = ISHFT(pack_tmp, -33)
   51664      1575440 :          idata = idata + 1
   51665      1575440 :          data_tmp = ISHFT(pack_tmp, 30)
   51666      1575440 :          ipack = ipack + 1
   51667      1575440 :          pack_tmp = packed_data(ipack)
   51668      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   51669      1575440 :          pack_tmp = ISHFT(pack_tmp, -30)
   51670      1575440 :          idata = idata + 1
   51671      1575440 :          data_tmp = ISHFT(pack_tmp, 27)
   51672      1575440 :          ipack = ipack + 1
   51673      1575440 :          pack_tmp = packed_data(ipack)
   51674      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   51675      1575440 :          pack_tmp = ISHFT(pack_tmp, -27)
   51676      1575440 :          idata = idata + 1
   51677      1575440 :          data_tmp = ISHFT(pack_tmp, 24)
   51678      1575440 :          ipack = ipack + 1
   51679      1575440 :          pack_tmp = packed_data(ipack)
   51680      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   51681      1575440 :          pack_tmp = ISHFT(pack_tmp, -24)
   51682      1575440 :          idata = idata + 1
   51683      1575440 :          data_tmp = ISHFT(pack_tmp, 21)
   51684      1575440 :          ipack = ipack + 1
   51685      1575440 :          pack_tmp = packed_data(ipack)
   51686      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   51687      1575440 :          pack_tmp = ISHFT(pack_tmp, -21)
   51688      1575440 :          idata = idata + 1
   51689      1575440 :          data_tmp = ISHFT(pack_tmp, 18)
   51690      1575440 :          ipack = ipack + 1
   51691      1575440 :          pack_tmp = packed_data(ipack)
   51692      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   51693      1575440 :          pack_tmp = ISHFT(pack_tmp, -18)
   51694      1575440 :          idata = idata + 1
   51695      1575440 :          data_tmp = ISHFT(pack_tmp, 15)
   51696      1575440 :          ipack = ipack + 1
   51697      1575440 :          pack_tmp = packed_data(ipack)
   51698      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   51699      1575440 :          pack_tmp = ISHFT(pack_tmp, -15)
   51700      1575440 :          idata = idata + 1
   51701      1575440 :          data_tmp = ISHFT(pack_tmp, 12)
   51702      1575440 :          ipack = ipack + 1
   51703      1575440 :          pack_tmp = packed_data(ipack)
   51704      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   51705      1575440 :          pack_tmp = ISHFT(pack_tmp, -12)
   51706      1575440 :          idata = idata + 1
   51707      1575440 :          data_tmp = ISHFT(pack_tmp, 9)
   51708      1575440 :          ipack = ipack + 1
   51709      1575440 :          pack_tmp = packed_data(ipack)
   51710      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   51711      1575440 :          pack_tmp = ISHFT(pack_tmp, -9)
   51712      1575440 :          idata = idata + 1
   51713      1575440 :          data_tmp = ISHFT(pack_tmp, 6)
   51714      1575440 :          ipack = ipack + 1
   51715      1575440 :          pack_tmp = packed_data(ipack)
   51716      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   51717      1575440 :          pack_tmp = ISHFT(pack_tmp, -6)
   51718      1575440 :          idata = idata + 1
   51719      1575440 :          data_tmp = ISHFT(pack_tmp, 3)
   51720      1575440 :          ipack = ipack + 1
   51721      1575440 :          pack_tmp = packed_data(ipack)
   51722      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   51723      1575440 :          pack_tmp = ISHFT(pack_tmp, -3)
   51724      1575440 :          idata = idata + 1
   51725      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   51726      1575440 :          full_data(idata) = data_tmp
   51727      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   51728              :       END DO
   51729        98465 :       IF (Ndata_rep < Ndata) THEN
   51730            0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   51731              :       END IF
   51732        98465 :    END SUBROUTINE bits2ints_61
   51733              : 
   51734              : ! **************************************************************************************************
   51735              : !> \brief ...
   51736              : !> \param Ndata ...
   51737              : !> \param packed_data ...
   51738              : !> \param full_data ...
   51739              : ! **************************************************************************************************
   51740        24432 :    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        24432 :       idata = 0
   51751        24432 :       ipack = 0
   51752        24432 :       Ndata_rep = (Ndata/64)*64
   51753        24432 :       DO kdata = 1, Ndata_rep, 64
   51754       390912 :          pack_tmp = 0
   51755       390912 :          idata = idata + 1
   51756       390912 :          data_tmp = full_data(idata)
   51757       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51758       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51759       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
   51760       390912 :          idata = idata + 1
   51761       390912 :          data_tmp = full_data(idata)
   51762       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51763       390912 :          data_tmp = IAND(data_tmp, mask_left(2))
   51764       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51765       390912 :          ipack = ipack + 1
   51766       390912 :          packed_data(ipack) = pack_tmp
   51767       390912 :          data_tmp = full_data(idata)
   51768       390912 :          pack_tmp = ISHFT(data_tmp, 4)
   51769       390912 :          pack_tmp = ISHFT(pack_tmp, -4)
   51770       390912 :          idata = idata + 1
   51771       390912 :          data_tmp = full_data(idata)
   51772       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51773       390912 :          data_tmp = IAND(data_tmp, mask_left(4))
   51774       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51775       390912 :          ipack = ipack + 1
   51776       390912 :          packed_data(ipack) = pack_tmp
   51777       390912 :          data_tmp = full_data(idata)
   51778       390912 :          pack_tmp = ISHFT(data_tmp, 6)
   51779       390912 :          pack_tmp = ISHFT(pack_tmp, -6)
   51780       390912 :          idata = idata + 1
   51781       390912 :          data_tmp = full_data(idata)
   51782       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51783       390912 :          data_tmp = IAND(data_tmp, mask_left(6))
   51784       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51785       390912 :          ipack = ipack + 1
   51786       390912 :          packed_data(ipack) = pack_tmp
   51787       390912 :          data_tmp = full_data(idata)
   51788       390912 :          pack_tmp = ISHFT(data_tmp, 8)
   51789       390912 :          pack_tmp = ISHFT(pack_tmp, -8)
   51790       390912 :          idata = idata + 1
   51791       390912 :          data_tmp = full_data(idata)
   51792       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51793       390912 :          data_tmp = IAND(data_tmp, mask_left(8))
   51794       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51795       390912 :          ipack = ipack + 1
   51796       390912 :          packed_data(ipack) = pack_tmp
   51797       390912 :          data_tmp = full_data(idata)
   51798       390912 :          pack_tmp = ISHFT(data_tmp, 10)
   51799       390912 :          pack_tmp = ISHFT(pack_tmp, -10)
   51800       390912 :          idata = idata + 1
   51801       390912 :          data_tmp = full_data(idata)
   51802       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51803       390912 :          data_tmp = IAND(data_tmp, mask_left(10))
   51804       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51805       390912 :          ipack = ipack + 1
   51806       390912 :          packed_data(ipack) = pack_tmp
   51807       390912 :          data_tmp = full_data(idata)
   51808       390912 :          pack_tmp = ISHFT(data_tmp, 12)
   51809       390912 :          pack_tmp = ISHFT(pack_tmp, -12)
   51810       390912 :          idata = idata + 1
   51811       390912 :          data_tmp = full_data(idata)
   51812       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51813       390912 :          data_tmp = IAND(data_tmp, mask_left(12))
   51814       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51815       390912 :          ipack = ipack + 1
   51816       390912 :          packed_data(ipack) = pack_tmp
   51817       390912 :          data_tmp = full_data(idata)
   51818       390912 :          pack_tmp = ISHFT(data_tmp, 14)
   51819       390912 :          pack_tmp = ISHFT(pack_tmp, -14)
   51820       390912 :          idata = idata + 1
   51821       390912 :          data_tmp = full_data(idata)
   51822       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51823       390912 :          data_tmp = IAND(data_tmp, mask_left(14))
   51824       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51825       390912 :          ipack = ipack + 1
   51826       390912 :          packed_data(ipack) = pack_tmp
   51827       390912 :          data_tmp = full_data(idata)
   51828       390912 :          pack_tmp = ISHFT(data_tmp, 16)
   51829       390912 :          pack_tmp = ISHFT(pack_tmp, -16)
   51830       390912 :          idata = idata + 1
   51831       390912 :          data_tmp = full_data(idata)
   51832       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51833       390912 :          data_tmp = IAND(data_tmp, mask_left(16))
   51834       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51835       390912 :          ipack = ipack + 1
   51836       390912 :          packed_data(ipack) = pack_tmp
   51837       390912 :          data_tmp = full_data(idata)
   51838       390912 :          pack_tmp = ISHFT(data_tmp, 18)
   51839       390912 :          pack_tmp = ISHFT(pack_tmp, -18)
   51840       390912 :          idata = idata + 1
   51841       390912 :          data_tmp = full_data(idata)
   51842       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51843       390912 :          data_tmp = IAND(data_tmp, mask_left(18))
   51844       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51845       390912 :          ipack = ipack + 1
   51846       390912 :          packed_data(ipack) = pack_tmp
   51847       390912 :          data_tmp = full_data(idata)
   51848       390912 :          pack_tmp = ISHFT(data_tmp, 20)
   51849       390912 :          pack_tmp = ISHFT(pack_tmp, -20)
   51850       390912 :          idata = idata + 1
   51851       390912 :          data_tmp = full_data(idata)
   51852       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51853       390912 :          data_tmp = IAND(data_tmp, mask_left(20))
   51854       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51855       390912 :          ipack = ipack + 1
   51856       390912 :          packed_data(ipack) = pack_tmp
   51857       390912 :          data_tmp = full_data(idata)
   51858       390912 :          pack_tmp = ISHFT(data_tmp, 22)
   51859       390912 :          pack_tmp = ISHFT(pack_tmp, -22)
   51860       390912 :          idata = idata + 1
   51861       390912 :          data_tmp = full_data(idata)
   51862       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51863       390912 :          data_tmp = IAND(data_tmp, mask_left(22))
   51864       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51865       390912 :          ipack = ipack + 1
   51866       390912 :          packed_data(ipack) = pack_tmp
   51867       390912 :          data_tmp = full_data(idata)
   51868       390912 :          pack_tmp = ISHFT(data_tmp, 24)
   51869       390912 :          pack_tmp = ISHFT(pack_tmp, -24)
   51870       390912 :          idata = idata + 1
   51871       390912 :          data_tmp = full_data(idata)
   51872       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51873       390912 :          data_tmp = IAND(data_tmp, mask_left(24))
   51874       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51875       390912 :          ipack = ipack + 1
   51876       390912 :          packed_data(ipack) = pack_tmp
   51877       390912 :          data_tmp = full_data(idata)
   51878       390912 :          pack_tmp = ISHFT(data_tmp, 26)
   51879       390912 :          pack_tmp = ISHFT(pack_tmp, -26)
   51880       390912 :          idata = idata + 1
   51881       390912 :          data_tmp = full_data(idata)
   51882       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51883       390912 :          data_tmp = IAND(data_tmp, mask_left(26))
   51884       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51885       390912 :          ipack = ipack + 1
   51886       390912 :          packed_data(ipack) = pack_tmp
   51887       390912 :          data_tmp = full_data(idata)
   51888       390912 :          pack_tmp = ISHFT(data_tmp, 28)
   51889       390912 :          pack_tmp = ISHFT(pack_tmp, -28)
   51890       390912 :          idata = idata + 1
   51891       390912 :          data_tmp = full_data(idata)
   51892       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51893       390912 :          data_tmp = IAND(data_tmp, mask_left(28))
   51894       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51895       390912 :          ipack = ipack + 1
   51896       390912 :          packed_data(ipack) = pack_tmp
   51897       390912 :          data_tmp = full_data(idata)
   51898       390912 :          pack_tmp = ISHFT(data_tmp, 30)
   51899       390912 :          pack_tmp = ISHFT(pack_tmp, -30)
   51900       390912 :          idata = idata + 1
   51901       390912 :          data_tmp = full_data(idata)
   51902       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51903       390912 :          data_tmp = IAND(data_tmp, mask_left(30))
   51904       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51905       390912 :          ipack = ipack + 1
   51906       390912 :          packed_data(ipack) = pack_tmp
   51907       390912 :          data_tmp = full_data(idata)
   51908       390912 :          pack_tmp = ISHFT(data_tmp, 32)
   51909       390912 :          pack_tmp = ISHFT(pack_tmp, -32)
   51910       390912 :          idata = idata + 1
   51911       390912 :          data_tmp = full_data(idata)
   51912       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51913       390912 :          data_tmp = IAND(data_tmp, mask_left(32))
   51914       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51915       390912 :          ipack = ipack + 1
   51916       390912 :          packed_data(ipack) = pack_tmp
   51917       390912 :          data_tmp = full_data(idata)
   51918       390912 :          pack_tmp = ISHFT(data_tmp, 34)
   51919       390912 :          pack_tmp = ISHFT(pack_tmp, -34)
   51920       390912 :          idata = idata + 1
   51921       390912 :          data_tmp = full_data(idata)
   51922       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51923       390912 :          data_tmp = IAND(data_tmp, mask_left(34))
   51924       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51925       390912 :          ipack = ipack + 1
   51926       390912 :          packed_data(ipack) = pack_tmp
   51927       390912 :          data_tmp = full_data(idata)
   51928       390912 :          pack_tmp = ISHFT(data_tmp, 36)
   51929       390912 :          pack_tmp = ISHFT(pack_tmp, -36)
   51930       390912 :          idata = idata + 1
   51931       390912 :          data_tmp = full_data(idata)
   51932       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51933       390912 :          data_tmp = IAND(data_tmp, mask_left(36))
   51934       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51935       390912 :          ipack = ipack + 1
   51936       390912 :          packed_data(ipack) = pack_tmp
   51937       390912 :          data_tmp = full_data(idata)
   51938       390912 :          pack_tmp = ISHFT(data_tmp, 38)
   51939       390912 :          pack_tmp = ISHFT(pack_tmp, -38)
   51940       390912 :          idata = idata + 1
   51941       390912 :          data_tmp = full_data(idata)
   51942       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51943       390912 :          data_tmp = IAND(data_tmp, mask_left(38))
   51944       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51945       390912 :          ipack = ipack + 1
   51946       390912 :          packed_data(ipack) = pack_tmp
   51947       390912 :          data_tmp = full_data(idata)
   51948       390912 :          pack_tmp = ISHFT(data_tmp, 40)
   51949       390912 :          pack_tmp = ISHFT(pack_tmp, -40)
   51950       390912 :          idata = idata + 1
   51951       390912 :          data_tmp = full_data(idata)
   51952       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51953       390912 :          data_tmp = IAND(data_tmp, mask_left(40))
   51954       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51955       390912 :          ipack = ipack + 1
   51956       390912 :          packed_data(ipack) = pack_tmp
   51957       390912 :          data_tmp = full_data(idata)
   51958       390912 :          pack_tmp = ISHFT(data_tmp, 42)
   51959       390912 :          pack_tmp = ISHFT(pack_tmp, -42)
   51960       390912 :          idata = idata + 1
   51961       390912 :          data_tmp = full_data(idata)
   51962       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51963       390912 :          data_tmp = IAND(data_tmp, mask_left(42))
   51964       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51965       390912 :          ipack = ipack + 1
   51966       390912 :          packed_data(ipack) = pack_tmp
   51967       390912 :          data_tmp = full_data(idata)
   51968       390912 :          pack_tmp = ISHFT(data_tmp, 44)
   51969       390912 :          pack_tmp = ISHFT(pack_tmp, -44)
   51970       390912 :          idata = idata + 1
   51971       390912 :          data_tmp = full_data(idata)
   51972       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51973       390912 :          data_tmp = IAND(data_tmp, mask_left(44))
   51974       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51975       390912 :          ipack = ipack + 1
   51976       390912 :          packed_data(ipack) = pack_tmp
   51977       390912 :          data_tmp = full_data(idata)
   51978       390912 :          pack_tmp = ISHFT(data_tmp, 46)
   51979       390912 :          pack_tmp = ISHFT(pack_tmp, -46)
   51980       390912 :          idata = idata + 1
   51981       390912 :          data_tmp = full_data(idata)
   51982       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51983       390912 :          data_tmp = IAND(data_tmp, mask_left(46))
   51984       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51985       390912 :          ipack = ipack + 1
   51986       390912 :          packed_data(ipack) = pack_tmp
   51987       390912 :          data_tmp = full_data(idata)
   51988       390912 :          pack_tmp = ISHFT(data_tmp, 48)
   51989       390912 :          pack_tmp = ISHFT(pack_tmp, -48)
   51990       390912 :          idata = idata + 1
   51991       390912 :          data_tmp = full_data(idata)
   51992       390912 :          data_tmp = ISHFT(data_tmp, 2)
   51993       390912 :          data_tmp = IAND(data_tmp, mask_left(48))
   51994       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   51995       390912 :          ipack = ipack + 1
   51996       390912 :          packed_data(ipack) = pack_tmp
   51997       390912 :          data_tmp = full_data(idata)
   51998       390912 :          pack_tmp = ISHFT(data_tmp, 50)
   51999       390912 :          pack_tmp = ISHFT(pack_tmp, -50)
   52000       390912 :          idata = idata + 1
   52001       390912 :          data_tmp = full_data(idata)
   52002       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52003       390912 :          data_tmp = IAND(data_tmp, mask_left(50))
   52004       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52005       390912 :          ipack = ipack + 1
   52006       390912 :          packed_data(ipack) = pack_tmp
   52007       390912 :          data_tmp = full_data(idata)
   52008       390912 :          pack_tmp = ISHFT(data_tmp, 52)
   52009       390912 :          pack_tmp = ISHFT(pack_tmp, -52)
   52010       390912 :          idata = idata + 1
   52011       390912 :          data_tmp = full_data(idata)
   52012       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52013       390912 :          data_tmp = IAND(data_tmp, mask_left(52))
   52014       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52015       390912 :          ipack = ipack + 1
   52016       390912 :          packed_data(ipack) = pack_tmp
   52017       390912 :          data_tmp = full_data(idata)
   52018       390912 :          pack_tmp = ISHFT(data_tmp, 54)
   52019       390912 :          pack_tmp = ISHFT(pack_tmp, -54)
   52020       390912 :          idata = idata + 1
   52021       390912 :          data_tmp = full_data(idata)
   52022       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52023       390912 :          data_tmp = IAND(data_tmp, mask_left(54))
   52024       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52025       390912 :          ipack = ipack + 1
   52026       390912 :          packed_data(ipack) = pack_tmp
   52027       390912 :          data_tmp = full_data(idata)
   52028       390912 :          pack_tmp = ISHFT(data_tmp, 56)
   52029       390912 :          pack_tmp = ISHFT(pack_tmp, -56)
   52030       390912 :          idata = idata + 1
   52031       390912 :          data_tmp = full_data(idata)
   52032       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52033       390912 :          data_tmp = IAND(data_tmp, mask_left(56))
   52034       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52035       390912 :          ipack = ipack + 1
   52036       390912 :          packed_data(ipack) = pack_tmp
   52037       390912 :          data_tmp = full_data(idata)
   52038       390912 :          pack_tmp = ISHFT(data_tmp, 58)
   52039       390912 :          pack_tmp = ISHFT(pack_tmp, -58)
   52040       390912 :          idata = idata + 1
   52041       390912 :          data_tmp = full_data(idata)
   52042       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52043       390912 :          data_tmp = IAND(data_tmp, mask_left(58))
   52044       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52045       390912 :          ipack = ipack + 1
   52046       390912 :          packed_data(ipack) = pack_tmp
   52047       390912 :          data_tmp = full_data(idata)
   52048       390912 :          pack_tmp = ISHFT(data_tmp, 60)
   52049       390912 :          pack_tmp = ISHFT(pack_tmp, -60)
   52050       390912 :          idata = idata + 1
   52051       390912 :          data_tmp = full_data(idata)
   52052       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52053       390912 :          data_tmp = IAND(data_tmp, mask_left(60))
   52054       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52055       390912 :          ipack = ipack + 1
   52056       390912 :          packed_data(ipack) = pack_tmp
   52057       390912 :          data_tmp = full_data(idata)
   52058       390912 :          pack_tmp = ISHFT(data_tmp, 62)
   52059       390912 :          pack_tmp = ISHFT(pack_tmp, -62)
   52060       390912 :          idata = idata + 1
   52061       390912 :          data_tmp = full_data(idata)
   52062       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52063       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52064       390912 :          pack_tmp = ISHFT(pack_tmp, 0)
   52065       390912 :          idata = idata + 1
   52066       390912 :          data_tmp = full_data(idata)
   52067              :          data_tmp = ISHFT(data_tmp, 2)
   52068       390912 :          data_tmp = IAND(data_tmp, mask_left(0))
   52069       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52070       390912 :          ipack = ipack + 1
   52071       390912 :          packed_data(ipack) = pack_tmp
   52072       390912 :          data_tmp = full_data(idata)
   52073       390912 :          pack_tmp = ISHFT(data_tmp, 2)
   52074       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
   52075       390912 :          idata = idata + 1
   52076       390912 :          data_tmp = full_data(idata)
   52077       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52078       390912 :          data_tmp = IAND(data_tmp, mask_left(2))
   52079       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52080       390912 :          ipack = ipack + 1
   52081       390912 :          packed_data(ipack) = pack_tmp
   52082       390912 :          data_tmp = full_data(idata)
   52083       390912 :          pack_tmp = ISHFT(data_tmp, 4)
   52084       390912 :          pack_tmp = ISHFT(pack_tmp, -4)
   52085       390912 :          idata = idata + 1
   52086       390912 :          data_tmp = full_data(idata)
   52087       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52088       390912 :          data_tmp = IAND(data_tmp, mask_left(4))
   52089       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52090       390912 :          ipack = ipack + 1
   52091       390912 :          packed_data(ipack) = pack_tmp
   52092       390912 :          data_tmp = full_data(idata)
   52093       390912 :          pack_tmp = ISHFT(data_tmp, 6)
   52094       390912 :          pack_tmp = ISHFT(pack_tmp, -6)
   52095       390912 :          idata = idata + 1
   52096       390912 :          data_tmp = full_data(idata)
   52097       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52098       390912 :          data_tmp = IAND(data_tmp, mask_left(6))
   52099       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52100       390912 :          ipack = ipack + 1
   52101       390912 :          packed_data(ipack) = pack_tmp
   52102       390912 :          data_tmp = full_data(idata)
   52103       390912 :          pack_tmp = ISHFT(data_tmp, 8)
   52104       390912 :          pack_tmp = ISHFT(pack_tmp, -8)
   52105       390912 :          idata = idata + 1
   52106       390912 :          data_tmp = full_data(idata)
   52107       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52108       390912 :          data_tmp = IAND(data_tmp, mask_left(8))
   52109       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52110       390912 :          ipack = ipack + 1
   52111       390912 :          packed_data(ipack) = pack_tmp
   52112       390912 :          data_tmp = full_data(idata)
   52113       390912 :          pack_tmp = ISHFT(data_tmp, 10)
   52114       390912 :          pack_tmp = ISHFT(pack_tmp, -10)
   52115       390912 :          idata = idata + 1
   52116       390912 :          data_tmp = full_data(idata)
   52117       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52118       390912 :          data_tmp = IAND(data_tmp, mask_left(10))
   52119       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52120       390912 :          ipack = ipack + 1
   52121       390912 :          packed_data(ipack) = pack_tmp
   52122       390912 :          data_tmp = full_data(idata)
   52123       390912 :          pack_tmp = ISHFT(data_tmp, 12)
   52124       390912 :          pack_tmp = ISHFT(pack_tmp, -12)
   52125       390912 :          idata = idata + 1
   52126       390912 :          data_tmp = full_data(idata)
   52127       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52128       390912 :          data_tmp = IAND(data_tmp, mask_left(12))
   52129       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52130       390912 :          ipack = ipack + 1
   52131       390912 :          packed_data(ipack) = pack_tmp
   52132       390912 :          data_tmp = full_data(idata)
   52133       390912 :          pack_tmp = ISHFT(data_tmp, 14)
   52134       390912 :          pack_tmp = ISHFT(pack_tmp, -14)
   52135       390912 :          idata = idata + 1
   52136       390912 :          data_tmp = full_data(idata)
   52137       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52138       390912 :          data_tmp = IAND(data_tmp, mask_left(14))
   52139       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52140       390912 :          ipack = ipack + 1
   52141       390912 :          packed_data(ipack) = pack_tmp
   52142       390912 :          data_tmp = full_data(idata)
   52143       390912 :          pack_tmp = ISHFT(data_tmp, 16)
   52144       390912 :          pack_tmp = ISHFT(pack_tmp, -16)
   52145       390912 :          idata = idata + 1
   52146       390912 :          data_tmp = full_data(idata)
   52147       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52148       390912 :          data_tmp = IAND(data_tmp, mask_left(16))
   52149       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52150       390912 :          ipack = ipack + 1
   52151       390912 :          packed_data(ipack) = pack_tmp
   52152       390912 :          data_tmp = full_data(idata)
   52153       390912 :          pack_tmp = ISHFT(data_tmp, 18)
   52154       390912 :          pack_tmp = ISHFT(pack_tmp, -18)
   52155       390912 :          idata = idata + 1
   52156       390912 :          data_tmp = full_data(idata)
   52157       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52158       390912 :          data_tmp = IAND(data_tmp, mask_left(18))
   52159       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52160       390912 :          ipack = ipack + 1
   52161       390912 :          packed_data(ipack) = pack_tmp
   52162       390912 :          data_tmp = full_data(idata)
   52163       390912 :          pack_tmp = ISHFT(data_tmp, 20)
   52164       390912 :          pack_tmp = ISHFT(pack_tmp, -20)
   52165       390912 :          idata = idata + 1
   52166       390912 :          data_tmp = full_data(idata)
   52167       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52168       390912 :          data_tmp = IAND(data_tmp, mask_left(20))
   52169       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52170       390912 :          ipack = ipack + 1
   52171       390912 :          packed_data(ipack) = pack_tmp
   52172       390912 :          data_tmp = full_data(idata)
   52173       390912 :          pack_tmp = ISHFT(data_tmp, 22)
   52174       390912 :          pack_tmp = ISHFT(pack_tmp, -22)
   52175       390912 :          idata = idata + 1
   52176       390912 :          data_tmp = full_data(idata)
   52177       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52178       390912 :          data_tmp = IAND(data_tmp, mask_left(22))
   52179       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52180       390912 :          ipack = ipack + 1
   52181       390912 :          packed_data(ipack) = pack_tmp
   52182       390912 :          data_tmp = full_data(idata)
   52183       390912 :          pack_tmp = ISHFT(data_tmp, 24)
   52184       390912 :          pack_tmp = ISHFT(pack_tmp, -24)
   52185       390912 :          idata = idata + 1
   52186       390912 :          data_tmp = full_data(idata)
   52187       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52188       390912 :          data_tmp = IAND(data_tmp, mask_left(24))
   52189       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52190       390912 :          ipack = ipack + 1
   52191       390912 :          packed_data(ipack) = pack_tmp
   52192       390912 :          data_tmp = full_data(idata)
   52193       390912 :          pack_tmp = ISHFT(data_tmp, 26)
   52194       390912 :          pack_tmp = ISHFT(pack_tmp, -26)
   52195       390912 :          idata = idata + 1
   52196       390912 :          data_tmp = full_data(idata)
   52197       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52198       390912 :          data_tmp = IAND(data_tmp, mask_left(26))
   52199       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52200       390912 :          ipack = ipack + 1
   52201       390912 :          packed_data(ipack) = pack_tmp
   52202       390912 :          data_tmp = full_data(idata)
   52203       390912 :          pack_tmp = ISHFT(data_tmp, 28)
   52204       390912 :          pack_tmp = ISHFT(pack_tmp, -28)
   52205       390912 :          idata = idata + 1
   52206       390912 :          data_tmp = full_data(idata)
   52207       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52208       390912 :          data_tmp = IAND(data_tmp, mask_left(28))
   52209       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52210       390912 :          ipack = ipack + 1
   52211       390912 :          packed_data(ipack) = pack_tmp
   52212       390912 :          data_tmp = full_data(idata)
   52213       390912 :          pack_tmp = ISHFT(data_tmp, 30)
   52214       390912 :          pack_tmp = ISHFT(pack_tmp, -30)
   52215       390912 :          idata = idata + 1
   52216       390912 :          data_tmp = full_data(idata)
   52217       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52218       390912 :          data_tmp = IAND(data_tmp, mask_left(30))
   52219       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52220       390912 :          ipack = ipack + 1
   52221       390912 :          packed_data(ipack) = pack_tmp
   52222       390912 :          data_tmp = full_data(idata)
   52223       390912 :          pack_tmp = ISHFT(data_tmp, 32)
   52224       390912 :          pack_tmp = ISHFT(pack_tmp, -32)
   52225       390912 :          idata = idata + 1
   52226       390912 :          data_tmp = full_data(idata)
   52227       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52228       390912 :          data_tmp = IAND(data_tmp, mask_left(32))
   52229       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52230       390912 :          ipack = ipack + 1
   52231       390912 :          packed_data(ipack) = pack_tmp
   52232       390912 :          data_tmp = full_data(idata)
   52233       390912 :          pack_tmp = ISHFT(data_tmp, 34)
   52234       390912 :          pack_tmp = ISHFT(pack_tmp, -34)
   52235       390912 :          idata = idata + 1
   52236       390912 :          data_tmp = full_data(idata)
   52237       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52238       390912 :          data_tmp = IAND(data_tmp, mask_left(34))
   52239       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52240       390912 :          ipack = ipack + 1
   52241       390912 :          packed_data(ipack) = pack_tmp
   52242       390912 :          data_tmp = full_data(idata)
   52243       390912 :          pack_tmp = ISHFT(data_tmp, 36)
   52244       390912 :          pack_tmp = ISHFT(pack_tmp, -36)
   52245       390912 :          idata = idata + 1
   52246       390912 :          data_tmp = full_data(idata)
   52247       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52248       390912 :          data_tmp = IAND(data_tmp, mask_left(36))
   52249       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52250       390912 :          ipack = ipack + 1
   52251       390912 :          packed_data(ipack) = pack_tmp
   52252       390912 :          data_tmp = full_data(idata)
   52253       390912 :          pack_tmp = ISHFT(data_tmp, 38)
   52254       390912 :          pack_tmp = ISHFT(pack_tmp, -38)
   52255       390912 :          idata = idata + 1
   52256       390912 :          data_tmp = full_data(idata)
   52257       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52258       390912 :          data_tmp = IAND(data_tmp, mask_left(38))
   52259       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52260       390912 :          ipack = ipack + 1
   52261       390912 :          packed_data(ipack) = pack_tmp
   52262       390912 :          data_tmp = full_data(idata)
   52263       390912 :          pack_tmp = ISHFT(data_tmp, 40)
   52264       390912 :          pack_tmp = ISHFT(pack_tmp, -40)
   52265       390912 :          idata = idata + 1
   52266       390912 :          data_tmp = full_data(idata)
   52267       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52268       390912 :          data_tmp = IAND(data_tmp, mask_left(40))
   52269       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52270       390912 :          ipack = ipack + 1
   52271       390912 :          packed_data(ipack) = pack_tmp
   52272       390912 :          data_tmp = full_data(idata)
   52273       390912 :          pack_tmp = ISHFT(data_tmp, 42)
   52274       390912 :          pack_tmp = ISHFT(pack_tmp, -42)
   52275       390912 :          idata = idata + 1
   52276       390912 :          data_tmp = full_data(idata)
   52277       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52278       390912 :          data_tmp = IAND(data_tmp, mask_left(42))
   52279       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52280       390912 :          ipack = ipack + 1
   52281       390912 :          packed_data(ipack) = pack_tmp
   52282       390912 :          data_tmp = full_data(idata)
   52283       390912 :          pack_tmp = ISHFT(data_tmp, 44)
   52284       390912 :          pack_tmp = ISHFT(pack_tmp, -44)
   52285       390912 :          idata = idata + 1
   52286       390912 :          data_tmp = full_data(idata)
   52287       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52288       390912 :          data_tmp = IAND(data_tmp, mask_left(44))
   52289       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52290       390912 :          ipack = ipack + 1
   52291       390912 :          packed_data(ipack) = pack_tmp
   52292       390912 :          data_tmp = full_data(idata)
   52293       390912 :          pack_tmp = ISHFT(data_tmp, 46)
   52294       390912 :          pack_tmp = ISHFT(pack_tmp, -46)
   52295       390912 :          idata = idata + 1
   52296       390912 :          data_tmp = full_data(idata)
   52297       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52298       390912 :          data_tmp = IAND(data_tmp, mask_left(46))
   52299       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52300       390912 :          ipack = ipack + 1
   52301       390912 :          packed_data(ipack) = pack_tmp
   52302       390912 :          data_tmp = full_data(idata)
   52303       390912 :          pack_tmp = ISHFT(data_tmp, 48)
   52304       390912 :          pack_tmp = ISHFT(pack_tmp, -48)
   52305       390912 :          idata = idata + 1
   52306       390912 :          data_tmp = full_data(idata)
   52307       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52308       390912 :          data_tmp = IAND(data_tmp, mask_left(48))
   52309       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52310       390912 :          ipack = ipack + 1
   52311       390912 :          packed_data(ipack) = pack_tmp
   52312       390912 :          data_tmp = full_data(idata)
   52313       390912 :          pack_tmp = ISHFT(data_tmp, 50)
   52314       390912 :          pack_tmp = ISHFT(pack_tmp, -50)
   52315       390912 :          idata = idata + 1
   52316       390912 :          data_tmp = full_data(idata)
   52317       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52318       390912 :          data_tmp = IAND(data_tmp, mask_left(50))
   52319       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52320       390912 :          ipack = ipack + 1
   52321       390912 :          packed_data(ipack) = pack_tmp
   52322       390912 :          data_tmp = full_data(idata)
   52323       390912 :          pack_tmp = ISHFT(data_tmp, 52)
   52324       390912 :          pack_tmp = ISHFT(pack_tmp, -52)
   52325       390912 :          idata = idata + 1
   52326       390912 :          data_tmp = full_data(idata)
   52327       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52328       390912 :          data_tmp = IAND(data_tmp, mask_left(52))
   52329       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52330       390912 :          ipack = ipack + 1
   52331       390912 :          packed_data(ipack) = pack_tmp
   52332       390912 :          data_tmp = full_data(idata)
   52333       390912 :          pack_tmp = ISHFT(data_tmp, 54)
   52334       390912 :          pack_tmp = ISHFT(pack_tmp, -54)
   52335       390912 :          idata = idata + 1
   52336       390912 :          data_tmp = full_data(idata)
   52337       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52338       390912 :          data_tmp = IAND(data_tmp, mask_left(54))
   52339       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52340       390912 :          ipack = ipack + 1
   52341       390912 :          packed_data(ipack) = pack_tmp
   52342       390912 :          data_tmp = full_data(idata)
   52343       390912 :          pack_tmp = ISHFT(data_tmp, 56)
   52344       390912 :          pack_tmp = ISHFT(pack_tmp, -56)
   52345       390912 :          idata = idata + 1
   52346       390912 :          data_tmp = full_data(idata)
   52347       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52348       390912 :          data_tmp = IAND(data_tmp, mask_left(56))
   52349       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52350       390912 :          ipack = ipack + 1
   52351       390912 :          packed_data(ipack) = pack_tmp
   52352       390912 :          data_tmp = full_data(idata)
   52353       390912 :          pack_tmp = ISHFT(data_tmp, 58)
   52354       390912 :          pack_tmp = ISHFT(pack_tmp, -58)
   52355       390912 :          idata = idata + 1
   52356       390912 :          data_tmp = full_data(idata)
   52357       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52358       390912 :          data_tmp = IAND(data_tmp, mask_left(58))
   52359       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52360       390912 :          ipack = ipack + 1
   52361       390912 :          packed_data(ipack) = pack_tmp
   52362       390912 :          data_tmp = full_data(idata)
   52363       390912 :          pack_tmp = ISHFT(data_tmp, 60)
   52364       390912 :          pack_tmp = ISHFT(pack_tmp, -60)
   52365       390912 :          idata = idata + 1
   52366       390912 :          data_tmp = full_data(idata)
   52367       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52368       390912 :          data_tmp = IAND(data_tmp, mask_left(60))
   52369       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52370       390912 :          ipack = ipack + 1
   52371       390912 :          packed_data(ipack) = pack_tmp
   52372       390912 :          data_tmp = full_data(idata)
   52373       390912 :          pack_tmp = ISHFT(data_tmp, 62)
   52374       390912 :          pack_tmp = ISHFT(pack_tmp, -62)
   52375       390912 :          idata = idata + 1
   52376       390912 :          data_tmp = full_data(idata)
   52377       390912 :          data_tmp = ISHFT(data_tmp, 2)
   52378       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52379              :          pack_tmp = ISHFT(pack_tmp, 0)
   52380       390912 :          pack_tmp = ISHFT(pack_tmp, 0)
   52381       390912 :          ipack = ipack + 1
   52382       390912 :          packed_data(ipack) = pack_tmp
   52383              :       END DO
   52384        24432 :       IF (Ndata_rep < Ndata) THEN
   52385            0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   52386              :       END IF
   52387        24432 :    END SUBROUTINE ints2bits_62
   52388              : 
   52389              : ! **************************************************************************************************
   52390              : !> \brief ...
   52391              : !> \param Ndata ...
   52392              : !> \param packed_data ...
   52393              : !> \param full_data ...
   52394              : ! **************************************************************************************************
   52395        98465 :    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        98465 :       ipack = 0
   52406        98465 :       idata = 0
   52407        98465 :       pack_tmp = 0
   52408        98465 :       Ndata_rep = (Ndata/64)*64
   52409        98465 :       DO kdata = 1, Ndata_rep, 64
   52410      1575440 :          idata = idata + 1
   52411      1575440 :          data_tmp = ISHFT(pack_tmp, 62)
   52412      1575440 :          ipack = ipack + 1
   52413      1575440 :          pack_tmp = packed_data(ipack)
   52414      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   52415      1575440 :          pack_tmp = ISHFT(pack_tmp, -62)
   52416      1575440 :          idata = idata + 1
   52417      1575440 :          data_tmp = ISHFT(pack_tmp, 60)
   52418      1575440 :          ipack = ipack + 1
   52419      1575440 :          pack_tmp = packed_data(ipack)
   52420      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   52421      1575440 :          pack_tmp = ISHFT(pack_tmp, -60)
   52422      1575440 :          idata = idata + 1
   52423      1575440 :          data_tmp = ISHFT(pack_tmp, 58)
   52424      1575440 :          ipack = ipack + 1
   52425      1575440 :          pack_tmp = packed_data(ipack)
   52426      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   52427      1575440 :          pack_tmp = ISHFT(pack_tmp, -58)
   52428      1575440 :          idata = idata + 1
   52429      1575440 :          data_tmp = ISHFT(pack_tmp, 56)
   52430      1575440 :          ipack = ipack + 1
   52431      1575440 :          pack_tmp = packed_data(ipack)
   52432      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   52433      1575440 :          pack_tmp = ISHFT(pack_tmp, -56)
   52434      1575440 :          idata = idata + 1
   52435      1575440 :          data_tmp = ISHFT(pack_tmp, 54)
   52436      1575440 :          ipack = ipack + 1
   52437      1575440 :          pack_tmp = packed_data(ipack)
   52438      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   52439      1575440 :          pack_tmp = ISHFT(pack_tmp, -54)
   52440      1575440 :          idata = idata + 1
   52441      1575440 :          data_tmp = ISHFT(pack_tmp, 52)
   52442      1575440 :          ipack = ipack + 1
   52443      1575440 :          pack_tmp = packed_data(ipack)
   52444      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   52445      1575440 :          pack_tmp = ISHFT(pack_tmp, -52)
   52446      1575440 :          idata = idata + 1
   52447      1575440 :          data_tmp = ISHFT(pack_tmp, 50)
   52448      1575440 :          ipack = ipack + 1
   52449      1575440 :          pack_tmp = packed_data(ipack)
   52450      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   52451      1575440 :          pack_tmp = ISHFT(pack_tmp, -50)
   52452      1575440 :          idata = idata + 1
   52453      1575440 :          data_tmp = ISHFT(pack_tmp, 48)
   52454      1575440 :          ipack = ipack + 1
   52455      1575440 :          pack_tmp = packed_data(ipack)
   52456      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   52457      1575440 :          pack_tmp = ISHFT(pack_tmp, -48)
   52458      1575440 :          idata = idata + 1
   52459      1575440 :          data_tmp = ISHFT(pack_tmp, 46)
   52460      1575440 :          ipack = ipack + 1
   52461      1575440 :          pack_tmp = packed_data(ipack)
   52462      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   52463      1575440 :          pack_tmp = ISHFT(pack_tmp, -46)
   52464      1575440 :          idata = idata + 1
   52465      1575440 :          data_tmp = ISHFT(pack_tmp, 44)
   52466      1575440 :          ipack = ipack + 1
   52467      1575440 :          pack_tmp = packed_data(ipack)
   52468      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   52469      1575440 :          pack_tmp = ISHFT(pack_tmp, -44)
   52470      1575440 :          idata = idata + 1
   52471      1575440 :          data_tmp = ISHFT(pack_tmp, 42)
   52472      1575440 :          ipack = ipack + 1
   52473      1575440 :          pack_tmp = packed_data(ipack)
   52474      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   52475      1575440 :          pack_tmp = ISHFT(pack_tmp, -42)
   52476      1575440 :          idata = idata + 1
   52477      1575440 :          data_tmp = ISHFT(pack_tmp, 40)
   52478      1575440 :          ipack = ipack + 1
   52479      1575440 :          pack_tmp = packed_data(ipack)
   52480      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   52481      1575440 :          pack_tmp = ISHFT(pack_tmp, -40)
   52482      1575440 :          idata = idata + 1
   52483      1575440 :          data_tmp = ISHFT(pack_tmp, 38)
   52484      1575440 :          ipack = ipack + 1
   52485      1575440 :          pack_tmp = packed_data(ipack)
   52486      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   52487      1575440 :          pack_tmp = ISHFT(pack_tmp, -38)
   52488      1575440 :          idata = idata + 1
   52489      1575440 :          data_tmp = ISHFT(pack_tmp, 36)
   52490      1575440 :          ipack = ipack + 1
   52491      1575440 :          pack_tmp = packed_data(ipack)
   52492      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   52493      1575440 :          pack_tmp = ISHFT(pack_tmp, -36)
   52494      1575440 :          idata = idata + 1
   52495      1575440 :          data_tmp = ISHFT(pack_tmp, 34)
   52496      1575440 :          ipack = ipack + 1
   52497      1575440 :          pack_tmp = packed_data(ipack)
   52498      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   52499      1575440 :          pack_tmp = ISHFT(pack_tmp, -34)
   52500      1575440 :          idata = idata + 1
   52501      1575440 :          data_tmp = ISHFT(pack_tmp, 32)
   52502      1575440 :          ipack = ipack + 1
   52503      1575440 :          pack_tmp = packed_data(ipack)
   52504      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   52505      1575440 :          pack_tmp = ISHFT(pack_tmp, -32)
   52506      1575440 :          idata = idata + 1
   52507      1575440 :          data_tmp = ISHFT(pack_tmp, 30)
   52508      1575440 :          ipack = ipack + 1
   52509      1575440 :          pack_tmp = packed_data(ipack)
   52510      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   52511      1575440 :          pack_tmp = ISHFT(pack_tmp, -30)
   52512      1575440 :          idata = idata + 1
   52513      1575440 :          data_tmp = ISHFT(pack_tmp, 28)
   52514      1575440 :          ipack = ipack + 1
   52515      1575440 :          pack_tmp = packed_data(ipack)
   52516      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   52517      1575440 :          pack_tmp = ISHFT(pack_tmp, -28)
   52518      1575440 :          idata = idata + 1
   52519      1575440 :          data_tmp = ISHFT(pack_tmp, 26)
   52520      1575440 :          ipack = ipack + 1
   52521      1575440 :          pack_tmp = packed_data(ipack)
   52522      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   52523      1575440 :          pack_tmp = ISHFT(pack_tmp, -26)
   52524      1575440 :          idata = idata + 1
   52525      1575440 :          data_tmp = ISHFT(pack_tmp, 24)
   52526      1575440 :          ipack = ipack + 1
   52527      1575440 :          pack_tmp = packed_data(ipack)
   52528      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   52529      1575440 :          pack_tmp = ISHFT(pack_tmp, -24)
   52530      1575440 :          idata = idata + 1
   52531      1575440 :          data_tmp = ISHFT(pack_tmp, 22)
   52532      1575440 :          ipack = ipack + 1
   52533      1575440 :          pack_tmp = packed_data(ipack)
   52534      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   52535      1575440 :          pack_tmp = ISHFT(pack_tmp, -22)
   52536      1575440 :          idata = idata + 1
   52537      1575440 :          data_tmp = ISHFT(pack_tmp, 20)
   52538      1575440 :          ipack = ipack + 1
   52539      1575440 :          pack_tmp = packed_data(ipack)
   52540      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   52541      1575440 :          pack_tmp = ISHFT(pack_tmp, -20)
   52542      1575440 :          idata = idata + 1
   52543      1575440 :          data_tmp = ISHFT(pack_tmp, 18)
   52544      1575440 :          ipack = ipack + 1
   52545      1575440 :          pack_tmp = packed_data(ipack)
   52546      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   52547      1575440 :          pack_tmp = ISHFT(pack_tmp, -18)
   52548      1575440 :          idata = idata + 1
   52549      1575440 :          data_tmp = ISHFT(pack_tmp, 16)
   52550      1575440 :          ipack = ipack + 1
   52551      1575440 :          pack_tmp = packed_data(ipack)
   52552      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   52553      1575440 :          pack_tmp = ISHFT(pack_tmp, -16)
   52554      1575440 :          idata = idata + 1
   52555      1575440 :          data_tmp = ISHFT(pack_tmp, 14)
   52556      1575440 :          ipack = ipack + 1
   52557      1575440 :          pack_tmp = packed_data(ipack)
   52558      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   52559      1575440 :          pack_tmp = ISHFT(pack_tmp, -14)
   52560      1575440 :          idata = idata + 1
   52561      1575440 :          data_tmp = ISHFT(pack_tmp, 12)
   52562      1575440 :          ipack = ipack + 1
   52563      1575440 :          pack_tmp = packed_data(ipack)
   52564      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   52565      1575440 :          pack_tmp = ISHFT(pack_tmp, -12)
   52566      1575440 :          idata = idata + 1
   52567      1575440 :          data_tmp = ISHFT(pack_tmp, 10)
   52568      1575440 :          ipack = ipack + 1
   52569      1575440 :          pack_tmp = packed_data(ipack)
   52570      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   52571      1575440 :          pack_tmp = ISHFT(pack_tmp, -10)
   52572      1575440 :          idata = idata + 1
   52573      1575440 :          data_tmp = ISHFT(pack_tmp, 8)
   52574      1575440 :          ipack = ipack + 1
   52575      1575440 :          pack_tmp = packed_data(ipack)
   52576      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   52577      1575440 :          pack_tmp = ISHFT(pack_tmp, -8)
   52578      1575440 :          idata = idata + 1
   52579      1575440 :          data_tmp = ISHFT(pack_tmp, 6)
   52580      1575440 :          ipack = ipack + 1
   52581      1575440 :          pack_tmp = packed_data(ipack)
   52582      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   52583      1575440 :          pack_tmp = ISHFT(pack_tmp, -6)
   52584      1575440 :          idata = idata + 1
   52585      1575440 :          data_tmp = ISHFT(pack_tmp, 4)
   52586      1575440 :          ipack = ipack + 1
   52587      1575440 :          pack_tmp = packed_data(ipack)
   52588      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   52589      1575440 :          pack_tmp = ISHFT(pack_tmp, -4)
   52590      1575440 :          idata = idata + 1
   52591      1575440 :          data_tmp = ISHFT(pack_tmp, 2)
   52592      1575440 :          ipack = ipack + 1
   52593      1575440 :          pack_tmp = packed_data(ipack)
   52594      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   52595      1575440 :          pack_tmp = ISHFT(pack_tmp, -2)
   52596      1575440 :          idata = idata + 1
   52597      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   52598      1575440 :          full_data(idata) = data_tmp
   52599      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   52600      1575440 :          idata = idata + 1
   52601      1575440 :          data_tmp = ISHFT(pack_tmp, 62)
   52602      1575440 :          ipack = ipack + 1
   52603      1575440 :          pack_tmp = packed_data(ipack)
   52604      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   52605      1575440 :          pack_tmp = ISHFT(pack_tmp, -62)
   52606      1575440 :          idata = idata + 1
   52607      1575440 :          data_tmp = ISHFT(pack_tmp, 60)
   52608      1575440 :          ipack = ipack + 1
   52609      1575440 :          pack_tmp = packed_data(ipack)
   52610      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   52611      1575440 :          pack_tmp = ISHFT(pack_tmp, -60)
   52612      1575440 :          idata = idata + 1
   52613      1575440 :          data_tmp = ISHFT(pack_tmp, 58)
   52614      1575440 :          ipack = ipack + 1
   52615      1575440 :          pack_tmp = packed_data(ipack)
   52616      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   52617      1575440 :          pack_tmp = ISHFT(pack_tmp, -58)
   52618      1575440 :          idata = idata + 1
   52619      1575440 :          data_tmp = ISHFT(pack_tmp, 56)
   52620      1575440 :          ipack = ipack + 1
   52621      1575440 :          pack_tmp = packed_data(ipack)
   52622      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   52623      1575440 :          pack_tmp = ISHFT(pack_tmp, -56)
   52624      1575440 :          idata = idata + 1
   52625      1575440 :          data_tmp = ISHFT(pack_tmp, 54)
   52626      1575440 :          ipack = ipack + 1
   52627      1575440 :          pack_tmp = packed_data(ipack)
   52628      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   52629      1575440 :          pack_tmp = ISHFT(pack_tmp, -54)
   52630      1575440 :          idata = idata + 1
   52631      1575440 :          data_tmp = ISHFT(pack_tmp, 52)
   52632      1575440 :          ipack = ipack + 1
   52633      1575440 :          pack_tmp = packed_data(ipack)
   52634      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   52635      1575440 :          pack_tmp = ISHFT(pack_tmp, -52)
   52636      1575440 :          idata = idata + 1
   52637      1575440 :          data_tmp = ISHFT(pack_tmp, 50)
   52638      1575440 :          ipack = ipack + 1
   52639      1575440 :          pack_tmp = packed_data(ipack)
   52640      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   52641      1575440 :          pack_tmp = ISHFT(pack_tmp, -50)
   52642      1575440 :          idata = idata + 1
   52643      1575440 :          data_tmp = ISHFT(pack_tmp, 48)
   52644      1575440 :          ipack = ipack + 1
   52645      1575440 :          pack_tmp = packed_data(ipack)
   52646      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   52647      1575440 :          pack_tmp = ISHFT(pack_tmp, -48)
   52648      1575440 :          idata = idata + 1
   52649      1575440 :          data_tmp = ISHFT(pack_tmp, 46)
   52650      1575440 :          ipack = ipack + 1
   52651      1575440 :          pack_tmp = packed_data(ipack)
   52652      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   52653      1575440 :          pack_tmp = ISHFT(pack_tmp, -46)
   52654      1575440 :          idata = idata + 1
   52655      1575440 :          data_tmp = ISHFT(pack_tmp, 44)
   52656      1575440 :          ipack = ipack + 1
   52657      1575440 :          pack_tmp = packed_data(ipack)
   52658      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   52659      1575440 :          pack_tmp = ISHFT(pack_tmp, -44)
   52660      1575440 :          idata = idata + 1
   52661      1575440 :          data_tmp = ISHFT(pack_tmp, 42)
   52662      1575440 :          ipack = ipack + 1
   52663      1575440 :          pack_tmp = packed_data(ipack)
   52664      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   52665      1575440 :          pack_tmp = ISHFT(pack_tmp, -42)
   52666      1575440 :          idata = idata + 1
   52667      1575440 :          data_tmp = ISHFT(pack_tmp, 40)
   52668      1575440 :          ipack = ipack + 1
   52669      1575440 :          pack_tmp = packed_data(ipack)
   52670      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   52671      1575440 :          pack_tmp = ISHFT(pack_tmp, -40)
   52672      1575440 :          idata = idata + 1
   52673      1575440 :          data_tmp = ISHFT(pack_tmp, 38)
   52674      1575440 :          ipack = ipack + 1
   52675      1575440 :          pack_tmp = packed_data(ipack)
   52676      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   52677      1575440 :          pack_tmp = ISHFT(pack_tmp, -38)
   52678      1575440 :          idata = idata + 1
   52679      1575440 :          data_tmp = ISHFT(pack_tmp, 36)
   52680      1575440 :          ipack = ipack + 1
   52681      1575440 :          pack_tmp = packed_data(ipack)
   52682      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   52683      1575440 :          pack_tmp = ISHFT(pack_tmp, -36)
   52684      1575440 :          idata = idata + 1
   52685      1575440 :          data_tmp = ISHFT(pack_tmp, 34)
   52686      1575440 :          ipack = ipack + 1
   52687      1575440 :          pack_tmp = packed_data(ipack)
   52688      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   52689      1575440 :          pack_tmp = ISHFT(pack_tmp, -34)
   52690      1575440 :          idata = idata + 1
   52691      1575440 :          data_tmp = ISHFT(pack_tmp, 32)
   52692      1575440 :          ipack = ipack + 1
   52693      1575440 :          pack_tmp = packed_data(ipack)
   52694      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   52695      1575440 :          pack_tmp = ISHFT(pack_tmp, -32)
   52696      1575440 :          idata = idata + 1
   52697      1575440 :          data_tmp = ISHFT(pack_tmp, 30)
   52698      1575440 :          ipack = ipack + 1
   52699      1575440 :          pack_tmp = packed_data(ipack)
   52700      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   52701      1575440 :          pack_tmp = ISHFT(pack_tmp, -30)
   52702      1575440 :          idata = idata + 1
   52703      1575440 :          data_tmp = ISHFT(pack_tmp, 28)
   52704      1575440 :          ipack = ipack + 1
   52705      1575440 :          pack_tmp = packed_data(ipack)
   52706      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   52707      1575440 :          pack_tmp = ISHFT(pack_tmp, -28)
   52708      1575440 :          idata = idata + 1
   52709      1575440 :          data_tmp = ISHFT(pack_tmp, 26)
   52710      1575440 :          ipack = ipack + 1
   52711      1575440 :          pack_tmp = packed_data(ipack)
   52712      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   52713      1575440 :          pack_tmp = ISHFT(pack_tmp, -26)
   52714      1575440 :          idata = idata + 1
   52715      1575440 :          data_tmp = ISHFT(pack_tmp, 24)
   52716      1575440 :          ipack = ipack + 1
   52717      1575440 :          pack_tmp = packed_data(ipack)
   52718      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   52719      1575440 :          pack_tmp = ISHFT(pack_tmp, -24)
   52720      1575440 :          idata = idata + 1
   52721      1575440 :          data_tmp = ISHFT(pack_tmp, 22)
   52722      1575440 :          ipack = ipack + 1
   52723      1575440 :          pack_tmp = packed_data(ipack)
   52724      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   52725      1575440 :          pack_tmp = ISHFT(pack_tmp, -22)
   52726      1575440 :          idata = idata + 1
   52727      1575440 :          data_tmp = ISHFT(pack_tmp, 20)
   52728      1575440 :          ipack = ipack + 1
   52729      1575440 :          pack_tmp = packed_data(ipack)
   52730      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   52731      1575440 :          pack_tmp = ISHFT(pack_tmp, -20)
   52732      1575440 :          idata = idata + 1
   52733      1575440 :          data_tmp = ISHFT(pack_tmp, 18)
   52734      1575440 :          ipack = ipack + 1
   52735      1575440 :          pack_tmp = packed_data(ipack)
   52736      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   52737      1575440 :          pack_tmp = ISHFT(pack_tmp, -18)
   52738      1575440 :          idata = idata + 1
   52739      1575440 :          data_tmp = ISHFT(pack_tmp, 16)
   52740      1575440 :          ipack = ipack + 1
   52741      1575440 :          pack_tmp = packed_data(ipack)
   52742      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   52743      1575440 :          pack_tmp = ISHFT(pack_tmp, -16)
   52744      1575440 :          idata = idata + 1
   52745      1575440 :          data_tmp = ISHFT(pack_tmp, 14)
   52746      1575440 :          ipack = ipack + 1
   52747      1575440 :          pack_tmp = packed_data(ipack)
   52748      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   52749      1575440 :          pack_tmp = ISHFT(pack_tmp, -14)
   52750      1575440 :          idata = idata + 1
   52751      1575440 :          data_tmp = ISHFT(pack_tmp, 12)
   52752      1575440 :          ipack = ipack + 1
   52753      1575440 :          pack_tmp = packed_data(ipack)
   52754      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   52755      1575440 :          pack_tmp = ISHFT(pack_tmp, -12)
   52756      1575440 :          idata = idata + 1
   52757      1575440 :          data_tmp = ISHFT(pack_tmp, 10)
   52758      1575440 :          ipack = ipack + 1
   52759      1575440 :          pack_tmp = packed_data(ipack)
   52760      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   52761      1575440 :          pack_tmp = ISHFT(pack_tmp, -10)
   52762      1575440 :          idata = idata + 1
   52763      1575440 :          data_tmp = ISHFT(pack_tmp, 8)
   52764      1575440 :          ipack = ipack + 1
   52765      1575440 :          pack_tmp = packed_data(ipack)
   52766      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   52767      1575440 :          pack_tmp = ISHFT(pack_tmp, -8)
   52768      1575440 :          idata = idata + 1
   52769      1575440 :          data_tmp = ISHFT(pack_tmp, 6)
   52770      1575440 :          ipack = ipack + 1
   52771      1575440 :          pack_tmp = packed_data(ipack)
   52772      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   52773      1575440 :          pack_tmp = ISHFT(pack_tmp, -6)
   52774      1575440 :          idata = idata + 1
   52775      1575440 :          data_tmp = ISHFT(pack_tmp, 4)
   52776      1575440 :          ipack = ipack + 1
   52777      1575440 :          pack_tmp = packed_data(ipack)
   52778      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   52779      1575440 :          pack_tmp = ISHFT(pack_tmp, -4)
   52780      1575440 :          idata = idata + 1
   52781      1575440 :          data_tmp = ISHFT(pack_tmp, 2)
   52782      1575440 :          ipack = ipack + 1
   52783      1575440 :          pack_tmp = packed_data(ipack)
   52784      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   52785      1575440 :          pack_tmp = ISHFT(pack_tmp, -2)
   52786      1575440 :          idata = idata + 1
   52787      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   52788      1575440 :          full_data(idata) = data_tmp
   52789      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   52790              :       END DO
   52791        98465 :       IF (Ndata_rep < Ndata) THEN
   52792            0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   52793              :       END IF
   52794        98465 :    END SUBROUTINE bits2ints_62
   52795              : 
   52796              : ! **************************************************************************************************
   52797              : !> \brief ...
   52798              : !> \param Ndata ...
   52799              : !> \param packed_data ...
   52800              : !> \param full_data ...
   52801              : ! **************************************************************************************************
   52802        24432 :    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        24432 :       idata = 0
   52813        24432 :       ipack = 0
   52814        24432 :       Ndata_rep = (Ndata/64)*64
   52815        24432 :       DO kdata = 1, Ndata_rep, 64
   52816       390912 :          pack_tmp = 0
   52817       390912 :          idata = idata + 1
   52818       390912 :          data_tmp = full_data(idata)
   52819       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52820       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52821       390912 :          pack_tmp = ISHFT(pack_tmp, -1)
   52822       390912 :          idata = idata + 1
   52823       390912 :          data_tmp = full_data(idata)
   52824       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52825       390912 :          data_tmp = IAND(data_tmp, mask_left(1))
   52826       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52827       390912 :          ipack = ipack + 1
   52828       390912 :          packed_data(ipack) = pack_tmp
   52829       390912 :          data_tmp = full_data(idata)
   52830       390912 :          pack_tmp = ISHFT(data_tmp, 2)
   52831       390912 :          pack_tmp = ISHFT(pack_tmp, -2)
   52832       390912 :          idata = idata + 1
   52833       390912 :          data_tmp = full_data(idata)
   52834       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52835       390912 :          data_tmp = IAND(data_tmp, mask_left(2))
   52836       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52837       390912 :          ipack = ipack + 1
   52838       390912 :          packed_data(ipack) = pack_tmp
   52839       390912 :          data_tmp = full_data(idata)
   52840       390912 :          pack_tmp = ISHFT(data_tmp, 3)
   52841       390912 :          pack_tmp = ISHFT(pack_tmp, -3)
   52842       390912 :          idata = idata + 1
   52843       390912 :          data_tmp = full_data(idata)
   52844       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52845       390912 :          data_tmp = IAND(data_tmp, mask_left(3))
   52846       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52847       390912 :          ipack = ipack + 1
   52848       390912 :          packed_data(ipack) = pack_tmp
   52849       390912 :          data_tmp = full_data(idata)
   52850       390912 :          pack_tmp = ISHFT(data_tmp, 4)
   52851       390912 :          pack_tmp = ISHFT(pack_tmp, -4)
   52852       390912 :          idata = idata + 1
   52853       390912 :          data_tmp = full_data(idata)
   52854       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52855       390912 :          data_tmp = IAND(data_tmp, mask_left(4))
   52856       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52857       390912 :          ipack = ipack + 1
   52858       390912 :          packed_data(ipack) = pack_tmp
   52859       390912 :          data_tmp = full_data(idata)
   52860       390912 :          pack_tmp = ISHFT(data_tmp, 5)
   52861       390912 :          pack_tmp = ISHFT(pack_tmp, -5)
   52862       390912 :          idata = idata + 1
   52863       390912 :          data_tmp = full_data(idata)
   52864       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52865       390912 :          data_tmp = IAND(data_tmp, mask_left(5))
   52866       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52867       390912 :          ipack = ipack + 1
   52868       390912 :          packed_data(ipack) = pack_tmp
   52869       390912 :          data_tmp = full_data(idata)
   52870       390912 :          pack_tmp = ISHFT(data_tmp, 6)
   52871       390912 :          pack_tmp = ISHFT(pack_tmp, -6)
   52872       390912 :          idata = idata + 1
   52873       390912 :          data_tmp = full_data(idata)
   52874       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52875       390912 :          data_tmp = IAND(data_tmp, mask_left(6))
   52876       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52877       390912 :          ipack = ipack + 1
   52878       390912 :          packed_data(ipack) = pack_tmp
   52879       390912 :          data_tmp = full_data(idata)
   52880       390912 :          pack_tmp = ISHFT(data_tmp, 7)
   52881       390912 :          pack_tmp = ISHFT(pack_tmp, -7)
   52882       390912 :          idata = idata + 1
   52883       390912 :          data_tmp = full_data(idata)
   52884       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52885       390912 :          data_tmp = IAND(data_tmp, mask_left(7))
   52886       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52887       390912 :          ipack = ipack + 1
   52888       390912 :          packed_data(ipack) = pack_tmp
   52889       390912 :          data_tmp = full_data(idata)
   52890       390912 :          pack_tmp = ISHFT(data_tmp, 8)
   52891       390912 :          pack_tmp = ISHFT(pack_tmp, -8)
   52892       390912 :          idata = idata + 1
   52893       390912 :          data_tmp = full_data(idata)
   52894       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52895       390912 :          data_tmp = IAND(data_tmp, mask_left(8))
   52896       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52897       390912 :          ipack = ipack + 1
   52898       390912 :          packed_data(ipack) = pack_tmp
   52899       390912 :          data_tmp = full_data(idata)
   52900       390912 :          pack_tmp = ISHFT(data_tmp, 9)
   52901       390912 :          pack_tmp = ISHFT(pack_tmp, -9)
   52902       390912 :          idata = idata + 1
   52903       390912 :          data_tmp = full_data(idata)
   52904       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52905       390912 :          data_tmp = IAND(data_tmp, mask_left(9))
   52906       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52907       390912 :          ipack = ipack + 1
   52908       390912 :          packed_data(ipack) = pack_tmp
   52909       390912 :          data_tmp = full_data(idata)
   52910       390912 :          pack_tmp = ISHFT(data_tmp, 10)
   52911       390912 :          pack_tmp = ISHFT(pack_tmp, -10)
   52912       390912 :          idata = idata + 1
   52913       390912 :          data_tmp = full_data(idata)
   52914       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52915       390912 :          data_tmp = IAND(data_tmp, mask_left(10))
   52916       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52917       390912 :          ipack = ipack + 1
   52918       390912 :          packed_data(ipack) = pack_tmp
   52919       390912 :          data_tmp = full_data(idata)
   52920       390912 :          pack_tmp = ISHFT(data_tmp, 11)
   52921       390912 :          pack_tmp = ISHFT(pack_tmp, -11)
   52922       390912 :          idata = idata + 1
   52923       390912 :          data_tmp = full_data(idata)
   52924       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52925       390912 :          data_tmp = IAND(data_tmp, mask_left(11))
   52926       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52927       390912 :          ipack = ipack + 1
   52928       390912 :          packed_data(ipack) = pack_tmp
   52929       390912 :          data_tmp = full_data(idata)
   52930       390912 :          pack_tmp = ISHFT(data_tmp, 12)
   52931       390912 :          pack_tmp = ISHFT(pack_tmp, -12)
   52932       390912 :          idata = idata + 1
   52933       390912 :          data_tmp = full_data(idata)
   52934       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52935       390912 :          data_tmp = IAND(data_tmp, mask_left(12))
   52936       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52937       390912 :          ipack = ipack + 1
   52938       390912 :          packed_data(ipack) = pack_tmp
   52939       390912 :          data_tmp = full_data(idata)
   52940       390912 :          pack_tmp = ISHFT(data_tmp, 13)
   52941       390912 :          pack_tmp = ISHFT(pack_tmp, -13)
   52942       390912 :          idata = idata + 1
   52943       390912 :          data_tmp = full_data(idata)
   52944       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52945       390912 :          data_tmp = IAND(data_tmp, mask_left(13))
   52946       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52947       390912 :          ipack = ipack + 1
   52948       390912 :          packed_data(ipack) = pack_tmp
   52949       390912 :          data_tmp = full_data(idata)
   52950       390912 :          pack_tmp = ISHFT(data_tmp, 14)
   52951       390912 :          pack_tmp = ISHFT(pack_tmp, -14)
   52952       390912 :          idata = idata + 1
   52953       390912 :          data_tmp = full_data(idata)
   52954       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52955       390912 :          data_tmp = IAND(data_tmp, mask_left(14))
   52956       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52957       390912 :          ipack = ipack + 1
   52958       390912 :          packed_data(ipack) = pack_tmp
   52959       390912 :          data_tmp = full_data(idata)
   52960       390912 :          pack_tmp = ISHFT(data_tmp, 15)
   52961       390912 :          pack_tmp = ISHFT(pack_tmp, -15)
   52962       390912 :          idata = idata + 1
   52963       390912 :          data_tmp = full_data(idata)
   52964       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52965       390912 :          data_tmp = IAND(data_tmp, mask_left(15))
   52966       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52967       390912 :          ipack = ipack + 1
   52968       390912 :          packed_data(ipack) = pack_tmp
   52969       390912 :          data_tmp = full_data(idata)
   52970       390912 :          pack_tmp = ISHFT(data_tmp, 16)
   52971       390912 :          pack_tmp = ISHFT(pack_tmp, -16)
   52972       390912 :          idata = idata + 1
   52973       390912 :          data_tmp = full_data(idata)
   52974       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52975       390912 :          data_tmp = IAND(data_tmp, mask_left(16))
   52976       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52977       390912 :          ipack = ipack + 1
   52978       390912 :          packed_data(ipack) = pack_tmp
   52979       390912 :          data_tmp = full_data(idata)
   52980       390912 :          pack_tmp = ISHFT(data_tmp, 17)
   52981       390912 :          pack_tmp = ISHFT(pack_tmp, -17)
   52982       390912 :          idata = idata + 1
   52983       390912 :          data_tmp = full_data(idata)
   52984       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52985       390912 :          data_tmp = IAND(data_tmp, mask_left(17))
   52986       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52987       390912 :          ipack = ipack + 1
   52988       390912 :          packed_data(ipack) = pack_tmp
   52989       390912 :          data_tmp = full_data(idata)
   52990       390912 :          pack_tmp = ISHFT(data_tmp, 18)
   52991       390912 :          pack_tmp = ISHFT(pack_tmp, -18)
   52992       390912 :          idata = idata + 1
   52993       390912 :          data_tmp = full_data(idata)
   52994       390912 :          data_tmp = ISHFT(data_tmp, 1)
   52995       390912 :          data_tmp = IAND(data_tmp, mask_left(18))
   52996       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   52997       390912 :          ipack = ipack + 1
   52998       390912 :          packed_data(ipack) = pack_tmp
   52999       390912 :          data_tmp = full_data(idata)
   53000       390912 :          pack_tmp = ISHFT(data_tmp, 19)
   53001       390912 :          pack_tmp = ISHFT(pack_tmp, -19)
   53002       390912 :          idata = idata + 1
   53003       390912 :          data_tmp = full_data(idata)
   53004       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53005       390912 :          data_tmp = IAND(data_tmp, mask_left(19))
   53006       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53007       390912 :          ipack = ipack + 1
   53008       390912 :          packed_data(ipack) = pack_tmp
   53009       390912 :          data_tmp = full_data(idata)
   53010       390912 :          pack_tmp = ISHFT(data_tmp, 20)
   53011       390912 :          pack_tmp = ISHFT(pack_tmp, -20)
   53012       390912 :          idata = idata + 1
   53013       390912 :          data_tmp = full_data(idata)
   53014       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53015       390912 :          data_tmp = IAND(data_tmp, mask_left(20))
   53016       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53017       390912 :          ipack = ipack + 1
   53018       390912 :          packed_data(ipack) = pack_tmp
   53019       390912 :          data_tmp = full_data(idata)
   53020       390912 :          pack_tmp = ISHFT(data_tmp, 21)
   53021       390912 :          pack_tmp = ISHFT(pack_tmp, -21)
   53022       390912 :          idata = idata + 1
   53023       390912 :          data_tmp = full_data(idata)
   53024       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53025       390912 :          data_tmp = IAND(data_tmp, mask_left(21))
   53026       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53027       390912 :          ipack = ipack + 1
   53028       390912 :          packed_data(ipack) = pack_tmp
   53029       390912 :          data_tmp = full_data(idata)
   53030       390912 :          pack_tmp = ISHFT(data_tmp, 22)
   53031       390912 :          pack_tmp = ISHFT(pack_tmp, -22)
   53032       390912 :          idata = idata + 1
   53033       390912 :          data_tmp = full_data(idata)
   53034       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53035       390912 :          data_tmp = IAND(data_tmp, mask_left(22))
   53036       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53037       390912 :          ipack = ipack + 1
   53038       390912 :          packed_data(ipack) = pack_tmp
   53039       390912 :          data_tmp = full_data(idata)
   53040       390912 :          pack_tmp = ISHFT(data_tmp, 23)
   53041       390912 :          pack_tmp = ISHFT(pack_tmp, -23)
   53042       390912 :          idata = idata + 1
   53043       390912 :          data_tmp = full_data(idata)
   53044       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53045       390912 :          data_tmp = IAND(data_tmp, mask_left(23))
   53046       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53047       390912 :          ipack = ipack + 1
   53048       390912 :          packed_data(ipack) = pack_tmp
   53049       390912 :          data_tmp = full_data(idata)
   53050       390912 :          pack_tmp = ISHFT(data_tmp, 24)
   53051       390912 :          pack_tmp = ISHFT(pack_tmp, -24)
   53052       390912 :          idata = idata + 1
   53053       390912 :          data_tmp = full_data(idata)
   53054       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53055       390912 :          data_tmp = IAND(data_tmp, mask_left(24))
   53056       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53057       390912 :          ipack = ipack + 1
   53058       390912 :          packed_data(ipack) = pack_tmp
   53059       390912 :          data_tmp = full_data(idata)
   53060       390912 :          pack_tmp = ISHFT(data_tmp, 25)
   53061       390912 :          pack_tmp = ISHFT(pack_tmp, -25)
   53062       390912 :          idata = idata + 1
   53063       390912 :          data_tmp = full_data(idata)
   53064       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53065       390912 :          data_tmp = IAND(data_tmp, mask_left(25))
   53066       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53067       390912 :          ipack = ipack + 1
   53068       390912 :          packed_data(ipack) = pack_tmp
   53069       390912 :          data_tmp = full_data(idata)
   53070       390912 :          pack_tmp = ISHFT(data_tmp, 26)
   53071       390912 :          pack_tmp = ISHFT(pack_tmp, -26)
   53072       390912 :          idata = idata + 1
   53073       390912 :          data_tmp = full_data(idata)
   53074       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53075       390912 :          data_tmp = IAND(data_tmp, mask_left(26))
   53076       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53077       390912 :          ipack = ipack + 1
   53078       390912 :          packed_data(ipack) = pack_tmp
   53079       390912 :          data_tmp = full_data(idata)
   53080       390912 :          pack_tmp = ISHFT(data_tmp, 27)
   53081       390912 :          pack_tmp = ISHFT(pack_tmp, -27)
   53082       390912 :          idata = idata + 1
   53083       390912 :          data_tmp = full_data(idata)
   53084       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53085       390912 :          data_tmp = IAND(data_tmp, mask_left(27))
   53086       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53087       390912 :          ipack = ipack + 1
   53088       390912 :          packed_data(ipack) = pack_tmp
   53089       390912 :          data_tmp = full_data(idata)
   53090       390912 :          pack_tmp = ISHFT(data_tmp, 28)
   53091       390912 :          pack_tmp = ISHFT(pack_tmp, -28)
   53092       390912 :          idata = idata + 1
   53093       390912 :          data_tmp = full_data(idata)
   53094       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53095       390912 :          data_tmp = IAND(data_tmp, mask_left(28))
   53096       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53097       390912 :          ipack = ipack + 1
   53098       390912 :          packed_data(ipack) = pack_tmp
   53099       390912 :          data_tmp = full_data(idata)
   53100       390912 :          pack_tmp = ISHFT(data_tmp, 29)
   53101       390912 :          pack_tmp = ISHFT(pack_tmp, -29)
   53102       390912 :          idata = idata + 1
   53103       390912 :          data_tmp = full_data(idata)
   53104       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53105       390912 :          data_tmp = IAND(data_tmp, mask_left(29))
   53106       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53107       390912 :          ipack = ipack + 1
   53108       390912 :          packed_data(ipack) = pack_tmp
   53109       390912 :          data_tmp = full_data(idata)
   53110       390912 :          pack_tmp = ISHFT(data_tmp, 30)
   53111       390912 :          pack_tmp = ISHFT(pack_tmp, -30)
   53112       390912 :          idata = idata + 1
   53113       390912 :          data_tmp = full_data(idata)
   53114       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53115       390912 :          data_tmp = IAND(data_tmp, mask_left(30))
   53116       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53117       390912 :          ipack = ipack + 1
   53118       390912 :          packed_data(ipack) = pack_tmp
   53119       390912 :          data_tmp = full_data(idata)
   53120       390912 :          pack_tmp = ISHFT(data_tmp, 31)
   53121       390912 :          pack_tmp = ISHFT(pack_tmp, -31)
   53122       390912 :          idata = idata + 1
   53123       390912 :          data_tmp = full_data(idata)
   53124       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53125       390912 :          data_tmp = IAND(data_tmp, mask_left(31))
   53126       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53127       390912 :          ipack = ipack + 1
   53128       390912 :          packed_data(ipack) = pack_tmp
   53129       390912 :          data_tmp = full_data(idata)
   53130       390912 :          pack_tmp = ISHFT(data_tmp, 32)
   53131       390912 :          pack_tmp = ISHFT(pack_tmp, -32)
   53132       390912 :          idata = idata + 1
   53133       390912 :          data_tmp = full_data(idata)
   53134       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53135       390912 :          data_tmp = IAND(data_tmp, mask_left(32))
   53136       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53137       390912 :          ipack = ipack + 1
   53138       390912 :          packed_data(ipack) = pack_tmp
   53139       390912 :          data_tmp = full_data(idata)
   53140       390912 :          pack_tmp = ISHFT(data_tmp, 33)
   53141       390912 :          pack_tmp = ISHFT(pack_tmp, -33)
   53142       390912 :          idata = idata + 1
   53143       390912 :          data_tmp = full_data(idata)
   53144       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53145       390912 :          data_tmp = IAND(data_tmp, mask_left(33))
   53146       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53147       390912 :          ipack = ipack + 1
   53148       390912 :          packed_data(ipack) = pack_tmp
   53149       390912 :          data_tmp = full_data(idata)
   53150       390912 :          pack_tmp = ISHFT(data_tmp, 34)
   53151       390912 :          pack_tmp = ISHFT(pack_tmp, -34)
   53152       390912 :          idata = idata + 1
   53153       390912 :          data_tmp = full_data(idata)
   53154       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53155       390912 :          data_tmp = IAND(data_tmp, mask_left(34))
   53156       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53157       390912 :          ipack = ipack + 1
   53158       390912 :          packed_data(ipack) = pack_tmp
   53159       390912 :          data_tmp = full_data(idata)
   53160       390912 :          pack_tmp = ISHFT(data_tmp, 35)
   53161       390912 :          pack_tmp = ISHFT(pack_tmp, -35)
   53162       390912 :          idata = idata + 1
   53163       390912 :          data_tmp = full_data(idata)
   53164       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53165       390912 :          data_tmp = IAND(data_tmp, mask_left(35))
   53166       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53167       390912 :          ipack = ipack + 1
   53168       390912 :          packed_data(ipack) = pack_tmp
   53169       390912 :          data_tmp = full_data(idata)
   53170       390912 :          pack_tmp = ISHFT(data_tmp, 36)
   53171       390912 :          pack_tmp = ISHFT(pack_tmp, -36)
   53172       390912 :          idata = idata + 1
   53173       390912 :          data_tmp = full_data(idata)
   53174       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53175       390912 :          data_tmp = IAND(data_tmp, mask_left(36))
   53176       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53177       390912 :          ipack = ipack + 1
   53178       390912 :          packed_data(ipack) = pack_tmp
   53179       390912 :          data_tmp = full_data(idata)
   53180       390912 :          pack_tmp = ISHFT(data_tmp, 37)
   53181       390912 :          pack_tmp = ISHFT(pack_tmp, -37)
   53182       390912 :          idata = idata + 1
   53183       390912 :          data_tmp = full_data(idata)
   53184       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53185       390912 :          data_tmp = IAND(data_tmp, mask_left(37))
   53186       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53187       390912 :          ipack = ipack + 1
   53188       390912 :          packed_data(ipack) = pack_tmp
   53189       390912 :          data_tmp = full_data(idata)
   53190       390912 :          pack_tmp = ISHFT(data_tmp, 38)
   53191       390912 :          pack_tmp = ISHFT(pack_tmp, -38)
   53192       390912 :          idata = idata + 1
   53193       390912 :          data_tmp = full_data(idata)
   53194       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53195       390912 :          data_tmp = IAND(data_tmp, mask_left(38))
   53196       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53197       390912 :          ipack = ipack + 1
   53198       390912 :          packed_data(ipack) = pack_tmp
   53199       390912 :          data_tmp = full_data(idata)
   53200       390912 :          pack_tmp = ISHFT(data_tmp, 39)
   53201       390912 :          pack_tmp = ISHFT(pack_tmp, -39)
   53202       390912 :          idata = idata + 1
   53203       390912 :          data_tmp = full_data(idata)
   53204       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53205       390912 :          data_tmp = IAND(data_tmp, mask_left(39))
   53206       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53207       390912 :          ipack = ipack + 1
   53208       390912 :          packed_data(ipack) = pack_tmp
   53209       390912 :          data_tmp = full_data(idata)
   53210       390912 :          pack_tmp = ISHFT(data_tmp, 40)
   53211       390912 :          pack_tmp = ISHFT(pack_tmp, -40)
   53212       390912 :          idata = idata + 1
   53213       390912 :          data_tmp = full_data(idata)
   53214       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53215       390912 :          data_tmp = IAND(data_tmp, mask_left(40))
   53216       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53217       390912 :          ipack = ipack + 1
   53218       390912 :          packed_data(ipack) = pack_tmp
   53219       390912 :          data_tmp = full_data(idata)
   53220       390912 :          pack_tmp = ISHFT(data_tmp, 41)
   53221       390912 :          pack_tmp = ISHFT(pack_tmp, -41)
   53222       390912 :          idata = idata + 1
   53223       390912 :          data_tmp = full_data(idata)
   53224       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53225       390912 :          data_tmp = IAND(data_tmp, mask_left(41))
   53226       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53227       390912 :          ipack = ipack + 1
   53228       390912 :          packed_data(ipack) = pack_tmp
   53229       390912 :          data_tmp = full_data(idata)
   53230       390912 :          pack_tmp = ISHFT(data_tmp, 42)
   53231       390912 :          pack_tmp = ISHFT(pack_tmp, -42)
   53232       390912 :          idata = idata + 1
   53233       390912 :          data_tmp = full_data(idata)
   53234       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53235       390912 :          data_tmp = IAND(data_tmp, mask_left(42))
   53236       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53237       390912 :          ipack = ipack + 1
   53238       390912 :          packed_data(ipack) = pack_tmp
   53239       390912 :          data_tmp = full_data(idata)
   53240       390912 :          pack_tmp = ISHFT(data_tmp, 43)
   53241       390912 :          pack_tmp = ISHFT(pack_tmp, -43)
   53242       390912 :          idata = idata + 1
   53243       390912 :          data_tmp = full_data(idata)
   53244       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53245       390912 :          data_tmp = IAND(data_tmp, mask_left(43))
   53246       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53247       390912 :          ipack = ipack + 1
   53248       390912 :          packed_data(ipack) = pack_tmp
   53249       390912 :          data_tmp = full_data(idata)
   53250       390912 :          pack_tmp = ISHFT(data_tmp, 44)
   53251       390912 :          pack_tmp = ISHFT(pack_tmp, -44)
   53252       390912 :          idata = idata + 1
   53253       390912 :          data_tmp = full_data(idata)
   53254       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53255       390912 :          data_tmp = IAND(data_tmp, mask_left(44))
   53256       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53257       390912 :          ipack = ipack + 1
   53258       390912 :          packed_data(ipack) = pack_tmp
   53259       390912 :          data_tmp = full_data(idata)
   53260       390912 :          pack_tmp = ISHFT(data_tmp, 45)
   53261       390912 :          pack_tmp = ISHFT(pack_tmp, -45)
   53262       390912 :          idata = idata + 1
   53263       390912 :          data_tmp = full_data(idata)
   53264       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53265       390912 :          data_tmp = IAND(data_tmp, mask_left(45))
   53266       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53267       390912 :          ipack = ipack + 1
   53268       390912 :          packed_data(ipack) = pack_tmp
   53269       390912 :          data_tmp = full_data(idata)
   53270       390912 :          pack_tmp = ISHFT(data_tmp, 46)
   53271       390912 :          pack_tmp = ISHFT(pack_tmp, -46)
   53272       390912 :          idata = idata + 1
   53273       390912 :          data_tmp = full_data(idata)
   53274       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53275       390912 :          data_tmp = IAND(data_tmp, mask_left(46))
   53276       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53277       390912 :          ipack = ipack + 1
   53278       390912 :          packed_data(ipack) = pack_tmp
   53279       390912 :          data_tmp = full_data(idata)
   53280       390912 :          pack_tmp = ISHFT(data_tmp, 47)
   53281       390912 :          pack_tmp = ISHFT(pack_tmp, -47)
   53282       390912 :          idata = idata + 1
   53283       390912 :          data_tmp = full_data(idata)
   53284       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53285       390912 :          data_tmp = IAND(data_tmp, mask_left(47))
   53286       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53287       390912 :          ipack = ipack + 1
   53288       390912 :          packed_data(ipack) = pack_tmp
   53289       390912 :          data_tmp = full_data(idata)
   53290       390912 :          pack_tmp = ISHFT(data_tmp, 48)
   53291       390912 :          pack_tmp = ISHFT(pack_tmp, -48)
   53292       390912 :          idata = idata + 1
   53293       390912 :          data_tmp = full_data(idata)
   53294       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53295       390912 :          data_tmp = IAND(data_tmp, mask_left(48))
   53296       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53297       390912 :          ipack = ipack + 1
   53298       390912 :          packed_data(ipack) = pack_tmp
   53299       390912 :          data_tmp = full_data(idata)
   53300       390912 :          pack_tmp = ISHFT(data_tmp, 49)
   53301       390912 :          pack_tmp = ISHFT(pack_tmp, -49)
   53302       390912 :          idata = idata + 1
   53303       390912 :          data_tmp = full_data(idata)
   53304       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53305       390912 :          data_tmp = IAND(data_tmp, mask_left(49))
   53306       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53307       390912 :          ipack = ipack + 1
   53308       390912 :          packed_data(ipack) = pack_tmp
   53309       390912 :          data_tmp = full_data(idata)
   53310       390912 :          pack_tmp = ISHFT(data_tmp, 50)
   53311       390912 :          pack_tmp = ISHFT(pack_tmp, -50)
   53312       390912 :          idata = idata + 1
   53313       390912 :          data_tmp = full_data(idata)
   53314       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53315       390912 :          data_tmp = IAND(data_tmp, mask_left(50))
   53316       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53317       390912 :          ipack = ipack + 1
   53318       390912 :          packed_data(ipack) = pack_tmp
   53319       390912 :          data_tmp = full_data(idata)
   53320       390912 :          pack_tmp = ISHFT(data_tmp, 51)
   53321       390912 :          pack_tmp = ISHFT(pack_tmp, -51)
   53322       390912 :          idata = idata + 1
   53323       390912 :          data_tmp = full_data(idata)
   53324       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53325       390912 :          data_tmp = IAND(data_tmp, mask_left(51))
   53326       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53327       390912 :          ipack = ipack + 1
   53328       390912 :          packed_data(ipack) = pack_tmp
   53329       390912 :          data_tmp = full_data(idata)
   53330       390912 :          pack_tmp = ISHFT(data_tmp, 52)
   53331       390912 :          pack_tmp = ISHFT(pack_tmp, -52)
   53332       390912 :          idata = idata + 1
   53333       390912 :          data_tmp = full_data(idata)
   53334       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53335       390912 :          data_tmp = IAND(data_tmp, mask_left(52))
   53336       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53337       390912 :          ipack = ipack + 1
   53338       390912 :          packed_data(ipack) = pack_tmp
   53339       390912 :          data_tmp = full_data(idata)
   53340       390912 :          pack_tmp = ISHFT(data_tmp, 53)
   53341       390912 :          pack_tmp = ISHFT(pack_tmp, -53)
   53342       390912 :          idata = idata + 1
   53343       390912 :          data_tmp = full_data(idata)
   53344       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53345       390912 :          data_tmp = IAND(data_tmp, mask_left(53))
   53346       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53347       390912 :          ipack = ipack + 1
   53348       390912 :          packed_data(ipack) = pack_tmp
   53349       390912 :          data_tmp = full_data(idata)
   53350       390912 :          pack_tmp = ISHFT(data_tmp, 54)
   53351       390912 :          pack_tmp = ISHFT(pack_tmp, -54)
   53352       390912 :          idata = idata + 1
   53353       390912 :          data_tmp = full_data(idata)
   53354       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53355       390912 :          data_tmp = IAND(data_tmp, mask_left(54))
   53356       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53357       390912 :          ipack = ipack + 1
   53358       390912 :          packed_data(ipack) = pack_tmp
   53359       390912 :          data_tmp = full_data(idata)
   53360       390912 :          pack_tmp = ISHFT(data_tmp, 55)
   53361       390912 :          pack_tmp = ISHFT(pack_tmp, -55)
   53362       390912 :          idata = idata + 1
   53363       390912 :          data_tmp = full_data(idata)
   53364       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53365       390912 :          data_tmp = IAND(data_tmp, mask_left(55))
   53366       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53367       390912 :          ipack = ipack + 1
   53368       390912 :          packed_data(ipack) = pack_tmp
   53369       390912 :          data_tmp = full_data(idata)
   53370       390912 :          pack_tmp = ISHFT(data_tmp, 56)
   53371       390912 :          pack_tmp = ISHFT(pack_tmp, -56)
   53372       390912 :          idata = idata + 1
   53373       390912 :          data_tmp = full_data(idata)
   53374       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53375       390912 :          data_tmp = IAND(data_tmp, mask_left(56))
   53376       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53377       390912 :          ipack = ipack + 1
   53378       390912 :          packed_data(ipack) = pack_tmp
   53379       390912 :          data_tmp = full_data(idata)
   53380       390912 :          pack_tmp = ISHFT(data_tmp, 57)
   53381       390912 :          pack_tmp = ISHFT(pack_tmp, -57)
   53382       390912 :          idata = idata + 1
   53383       390912 :          data_tmp = full_data(idata)
   53384       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53385       390912 :          data_tmp = IAND(data_tmp, mask_left(57))
   53386       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53387       390912 :          ipack = ipack + 1
   53388       390912 :          packed_data(ipack) = pack_tmp
   53389       390912 :          data_tmp = full_data(idata)
   53390       390912 :          pack_tmp = ISHFT(data_tmp, 58)
   53391       390912 :          pack_tmp = ISHFT(pack_tmp, -58)
   53392       390912 :          idata = idata + 1
   53393       390912 :          data_tmp = full_data(idata)
   53394       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53395       390912 :          data_tmp = IAND(data_tmp, mask_left(58))
   53396       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53397       390912 :          ipack = ipack + 1
   53398       390912 :          packed_data(ipack) = pack_tmp
   53399       390912 :          data_tmp = full_data(idata)
   53400       390912 :          pack_tmp = ISHFT(data_tmp, 59)
   53401       390912 :          pack_tmp = ISHFT(pack_tmp, -59)
   53402       390912 :          idata = idata + 1
   53403       390912 :          data_tmp = full_data(idata)
   53404       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53405       390912 :          data_tmp = IAND(data_tmp, mask_left(59))
   53406       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53407       390912 :          ipack = ipack + 1
   53408       390912 :          packed_data(ipack) = pack_tmp
   53409       390912 :          data_tmp = full_data(idata)
   53410       390912 :          pack_tmp = ISHFT(data_tmp, 60)
   53411       390912 :          pack_tmp = ISHFT(pack_tmp, -60)
   53412       390912 :          idata = idata + 1
   53413       390912 :          data_tmp = full_data(idata)
   53414       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53415       390912 :          data_tmp = IAND(data_tmp, mask_left(60))
   53416       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53417       390912 :          ipack = ipack + 1
   53418       390912 :          packed_data(ipack) = pack_tmp
   53419       390912 :          data_tmp = full_data(idata)
   53420       390912 :          pack_tmp = ISHFT(data_tmp, 61)
   53421       390912 :          pack_tmp = ISHFT(pack_tmp, -61)
   53422       390912 :          idata = idata + 1
   53423       390912 :          data_tmp = full_data(idata)
   53424       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53425       390912 :          data_tmp = IAND(data_tmp, mask_left(61))
   53426       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53427       390912 :          ipack = ipack + 1
   53428       390912 :          packed_data(ipack) = pack_tmp
   53429       390912 :          data_tmp = full_data(idata)
   53430       390912 :          pack_tmp = ISHFT(data_tmp, 62)
   53431       390912 :          pack_tmp = ISHFT(pack_tmp, -62)
   53432       390912 :          idata = idata + 1
   53433       390912 :          data_tmp = full_data(idata)
   53434       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53435       390912 :          data_tmp = IAND(data_tmp, mask_left(62))
   53436       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53437       390912 :          ipack = ipack + 1
   53438       390912 :          packed_data(ipack) = pack_tmp
   53439       390912 :          data_tmp = full_data(idata)
   53440       390912 :          pack_tmp = ISHFT(data_tmp, 63)
   53441       390912 :          pack_tmp = ISHFT(pack_tmp, -63)
   53442       390912 :          idata = idata + 1
   53443       390912 :          data_tmp = full_data(idata)
   53444       390912 :          data_tmp = ISHFT(data_tmp, 1)
   53445       390912 :          pack_tmp = IOR(pack_tmp, data_tmp)
   53446              :          pack_tmp = ISHFT(pack_tmp, 0)
   53447       390912 :          pack_tmp = ISHFT(pack_tmp, 0)
   53448       390912 :          ipack = ipack + 1
   53449       390912 :          packed_data(ipack) = pack_tmp
   53450              :       END DO
   53451        24432 :       IF (Ndata_rep < Ndata) THEN
   53452            0 :          CALL ints2bits_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   53453              :       END IF
   53454        24432 :    END SUBROUTINE ints2bits_63
   53455              : 
   53456              : ! **************************************************************************************************
   53457              : !> \brief ...
   53458              : !> \param Ndata ...
   53459              : !> \param packed_data ...
   53460              : !> \param full_data ...
   53461              : ! **************************************************************************************************
   53462        98465 :    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        98465 :       ipack = 0
   53473        98465 :       idata = 0
   53474        98465 :       pack_tmp = 0
   53475        98465 :       Ndata_rep = (Ndata/64)*64
   53476        98465 :       DO kdata = 1, Ndata_rep, 64
   53477      1575440 :          idata = idata + 1
   53478      1575440 :          data_tmp = ISHFT(pack_tmp, 63)
   53479      1575440 :          ipack = ipack + 1
   53480      1575440 :          pack_tmp = packed_data(ipack)
   53481      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(63)))
   53482      1575440 :          pack_tmp = ISHFT(pack_tmp, -63)
   53483      1575440 :          idata = idata + 1
   53484      1575440 :          data_tmp = ISHFT(pack_tmp, 62)
   53485      1575440 :          ipack = ipack + 1
   53486      1575440 :          pack_tmp = packed_data(ipack)
   53487      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(62)))
   53488      1575440 :          pack_tmp = ISHFT(pack_tmp, -62)
   53489      1575440 :          idata = idata + 1
   53490      1575440 :          data_tmp = ISHFT(pack_tmp, 61)
   53491      1575440 :          ipack = ipack + 1
   53492      1575440 :          pack_tmp = packed_data(ipack)
   53493      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(61)))
   53494      1575440 :          pack_tmp = ISHFT(pack_tmp, -61)
   53495      1575440 :          idata = idata + 1
   53496      1575440 :          data_tmp = ISHFT(pack_tmp, 60)
   53497      1575440 :          ipack = ipack + 1
   53498      1575440 :          pack_tmp = packed_data(ipack)
   53499      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(60)))
   53500      1575440 :          pack_tmp = ISHFT(pack_tmp, -60)
   53501      1575440 :          idata = idata + 1
   53502      1575440 :          data_tmp = ISHFT(pack_tmp, 59)
   53503      1575440 :          ipack = ipack + 1
   53504      1575440 :          pack_tmp = packed_data(ipack)
   53505      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(59)))
   53506      1575440 :          pack_tmp = ISHFT(pack_tmp, -59)
   53507      1575440 :          idata = idata + 1
   53508      1575440 :          data_tmp = ISHFT(pack_tmp, 58)
   53509      1575440 :          ipack = ipack + 1
   53510      1575440 :          pack_tmp = packed_data(ipack)
   53511      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(58)))
   53512      1575440 :          pack_tmp = ISHFT(pack_tmp, -58)
   53513      1575440 :          idata = idata + 1
   53514      1575440 :          data_tmp = ISHFT(pack_tmp, 57)
   53515      1575440 :          ipack = ipack + 1
   53516      1575440 :          pack_tmp = packed_data(ipack)
   53517      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(57)))
   53518      1575440 :          pack_tmp = ISHFT(pack_tmp, -57)
   53519      1575440 :          idata = idata + 1
   53520      1575440 :          data_tmp = ISHFT(pack_tmp, 56)
   53521      1575440 :          ipack = ipack + 1
   53522      1575440 :          pack_tmp = packed_data(ipack)
   53523      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(56)))
   53524      1575440 :          pack_tmp = ISHFT(pack_tmp, -56)
   53525      1575440 :          idata = idata + 1
   53526      1575440 :          data_tmp = ISHFT(pack_tmp, 55)
   53527      1575440 :          ipack = ipack + 1
   53528      1575440 :          pack_tmp = packed_data(ipack)
   53529      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(55)))
   53530      1575440 :          pack_tmp = ISHFT(pack_tmp, -55)
   53531      1575440 :          idata = idata + 1
   53532      1575440 :          data_tmp = ISHFT(pack_tmp, 54)
   53533      1575440 :          ipack = ipack + 1
   53534      1575440 :          pack_tmp = packed_data(ipack)
   53535      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(54)))
   53536      1575440 :          pack_tmp = ISHFT(pack_tmp, -54)
   53537      1575440 :          idata = idata + 1
   53538      1575440 :          data_tmp = ISHFT(pack_tmp, 53)
   53539      1575440 :          ipack = ipack + 1
   53540      1575440 :          pack_tmp = packed_data(ipack)
   53541      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(53)))
   53542      1575440 :          pack_tmp = ISHFT(pack_tmp, -53)
   53543      1575440 :          idata = idata + 1
   53544      1575440 :          data_tmp = ISHFT(pack_tmp, 52)
   53545      1575440 :          ipack = ipack + 1
   53546      1575440 :          pack_tmp = packed_data(ipack)
   53547      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(52)))
   53548      1575440 :          pack_tmp = ISHFT(pack_tmp, -52)
   53549      1575440 :          idata = idata + 1
   53550      1575440 :          data_tmp = ISHFT(pack_tmp, 51)
   53551      1575440 :          ipack = ipack + 1
   53552      1575440 :          pack_tmp = packed_data(ipack)
   53553      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(51)))
   53554      1575440 :          pack_tmp = ISHFT(pack_tmp, -51)
   53555      1575440 :          idata = idata + 1
   53556      1575440 :          data_tmp = ISHFT(pack_tmp, 50)
   53557      1575440 :          ipack = ipack + 1
   53558      1575440 :          pack_tmp = packed_data(ipack)
   53559      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(50)))
   53560      1575440 :          pack_tmp = ISHFT(pack_tmp, -50)
   53561      1575440 :          idata = idata + 1
   53562      1575440 :          data_tmp = ISHFT(pack_tmp, 49)
   53563      1575440 :          ipack = ipack + 1
   53564      1575440 :          pack_tmp = packed_data(ipack)
   53565      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(49)))
   53566      1575440 :          pack_tmp = ISHFT(pack_tmp, -49)
   53567      1575440 :          idata = idata + 1
   53568      1575440 :          data_tmp = ISHFT(pack_tmp, 48)
   53569      1575440 :          ipack = ipack + 1
   53570      1575440 :          pack_tmp = packed_data(ipack)
   53571      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(48)))
   53572      1575440 :          pack_tmp = ISHFT(pack_tmp, -48)
   53573      1575440 :          idata = idata + 1
   53574      1575440 :          data_tmp = ISHFT(pack_tmp, 47)
   53575      1575440 :          ipack = ipack + 1
   53576      1575440 :          pack_tmp = packed_data(ipack)
   53577      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(47)))
   53578      1575440 :          pack_tmp = ISHFT(pack_tmp, -47)
   53579      1575440 :          idata = idata + 1
   53580      1575440 :          data_tmp = ISHFT(pack_tmp, 46)
   53581      1575440 :          ipack = ipack + 1
   53582      1575440 :          pack_tmp = packed_data(ipack)
   53583      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(46)))
   53584      1575440 :          pack_tmp = ISHFT(pack_tmp, -46)
   53585      1575440 :          idata = idata + 1
   53586      1575440 :          data_tmp = ISHFT(pack_tmp, 45)
   53587      1575440 :          ipack = ipack + 1
   53588      1575440 :          pack_tmp = packed_data(ipack)
   53589      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(45)))
   53590      1575440 :          pack_tmp = ISHFT(pack_tmp, -45)
   53591      1575440 :          idata = idata + 1
   53592      1575440 :          data_tmp = ISHFT(pack_tmp, 44)
   53593      1575440 :          ipack = ipack + 1
   53594      1575440 :          pack_tmp = packed_data(ipack)
   53595      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(44)))
   53596      1575440 :          pack_tmp = ISHFT(pack_tmp, -44)
   53597      1575440 :          idata = idata + 1
   53598      1575440 :          data_tmp = ISHFT(pack_tmp, 43)
   53599      1575440 :          ipack = ipack + 1
   53600      1575440 :          pack_tmp = packed_data(ipack)
   53601      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(43)))
   53602      1575440 :          pack_tmp = ISHFT(pack_tmp, -43)
   53603      1575440 :          idata = idata + 1
   53604      1575440 :          data_tmp = ISHFT(pack_tmp, 42)
   53605      1575440 :          ipack = ipack + 1
   53606      1575440 :          pack_tmp = packed_data(ipack)
   53607      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(42)))
   53608      1575440 :          pack_tmp = ISHFT(pack_tmp, -42)
   53609      1575440 :          idata = idata + 1
   53610      1575440 :          data_tmp = ISHFT(pack_tmp, 41)
   53611      1575440 :          ipack = ipack + 1
   53612      1575440 :          pack_tmp = packed_data(ipack)
   53613      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(41)))
   53614      1575440 :          pack_tmp = ISHFT(pack_tmp, -41)
   53615      1575440 :          idata = idata + 1
   53616      1575440 :          data_tmp = ISHFT(pack_tmp, 40)
   53617      1575440 :          ipack = ipack + 1
   53618      1575440 :          pack_tmp = packed_data(ipack)
   53619      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(40)))
   53620      1575440 :          pack_tmp = ISHFT(pack_tmp, -40)
   53621      1575440 :          idata = idata + 1
   53622      1575440 :          data_tmp = ISHFT(pack_tmp, 39)
   53623      1575440 :          ipack = ipack + 1
   53624      1575440 :          pack_tmp = packed_data(ipack)
   53625      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(39)))
   53626      1575440 :          pack_tmp = ISHFT(pack_tmp, -39)
   53627      1575440 :          idata = idata + 1
   53628      1575440 :          data_tmp = ISHFT(pack_tmp, 38)
   53629      1575440 :          ipack = ipack + 1
   53630      1575440 :          pack_tmp = packed_data(ipack)
   53631      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(38)))
   53632      1575440 :          pack_tmp = ISHFT(pack_tmp, -38)
   53633      1575440 :          idata = idata + 1
   53634      1575440 :          data_tmp = ISHFT(pack_tmp, 37)
   53635      1575440 :          ipack = ipack + 1
   53636      1575440 :          pack_tmp = packed_data(ipack)
   53637      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(37)))
   53638      1575440 :          pack_tmp = ISHFT(pack_tmp, -37)
   53639      1575440 :          idata = idata + 1
   53640      1575440 :          data_tmp = ISHFT(pack_tmp, 36)
   53641      1575440 :          ipack = ipack + 1
   53642      1575440 :          pack_tmp = packed_data(ipack)
   53643      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(36)))
   53644      1575440 :          pack_tmp = ISHFT(pack_tmp, -36)
   53645      1575440 :          idata = idata + 1
   53646      1575440 :          data_tmp = ISHFT(pack_tmp, 35)
   53647      1575440 :          ipack = ipack + 1
   53648      1575440 :          pack_tmp = packed_data(ipack)
   53649      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(35)))
   53650      1575440 :          pack_tmp = ISHFT(pack_tmp, -35)
   53651      1575440 :          idata = idata + 1
   53652      1575440 :          data_tmp = ISHFT(pack_tmp, 34)
   53653      1575440 :          ipack = ipack + 1
   53654      1575440 :          pack_tmp = packed_data(ipack)
   53655      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(34)))
   53656      1575440 :          pack_tmp = ISHFT(pack_tmp, -34)
   53657      1575440 :          idata = idata + 1
   53658      1575440 :          data_tmp = ISHFT(pack_tmp, 33)
   53659      1575440 :          ipack = ipack + 1
   53660      1575440 :          pack_tmp = packed_data(ipack)
   53661      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(33)))
   53662      1575440 :          pack_tmp = ISHFT(pack_tmp, -33)
   53663      1575440 :          idata = idata + 1
   53664      1575440 :          data_tmp = ISHFT(pack_tmp, 32)
   53665      1575440 :          ipack = ipack + 1
   53666      1575440 :          pack_tmp = packed_data(ipack)
   53667      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(32)))
   53668      1575440 :          pack_tmp = ISHFT(pack_tmp, -32)
   53669      1575440 :          idata = idata + 1
   53670      1575440 :          data_tmp = ISHFT(pack_tmp, 31)
   53671      1575440 :          ipack = ipack + 1
   53672      1575440 :          pack_tmp = packed_data(ipack)
   53673      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(31)))
   53674      1575440 :          pack_tmp = ISHFT(pack_tmp, -31)
   53675      1575440 :          idata = idata + 1
   53676      1575440 :          data_tmp = ISHFT(pack_tmp, 30)
   53677      1575440 :          ipack = ipack + 1
   53678      1575440 :          pack_tmp = packed_data(ipack)
   53679      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(30)))
   53680      1575440 :          pack_tmp = ISHFT(pack_tmp, -30)
   53681      1575440 :          idata = idata + 1
   53682      1575440 :          data_tmp = ISHFT(pack_tmp, 29)
   53683      1575440 :          ipack = ipack + 1
   53684      1575440 :          pack_tmp = packed_data(ipack)
   53685      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(29)))
   53686      1575440 :          pack_tmp = ISHFT(pack_tmp, -29)
   53687      1575440 :          idata = idata + 1
   53688      1575440 :          data_tmp = ISHFT(pack_tmp, 28)
   53689      1575440 :          ipack = ipack + 1
   53690      1575440 :          pack_tmp = packed_data(ipack)
   53691      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(28)))
   53692      1575440 :          pack_tmp = ISHFT(pack_tmp, -28)
   53693      1575440 :          idata = idata + 1
   53694      1575440 :          data_tmp = ISHFT(pack_tmp, 27)
   53695      1575440 :          ipack = ipack + 1
   53696      1575440 :          pack_tmp = packed_data(ipack)
   53697      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(27)))
   53698      1575440 :          pack_tmp = ISHFT(pack_tmp, -27)
   53699      1575440 :          idata = idata + 1
   53700      1575440 :          data_tmp = ISHFT(pack_tmp, 26)
   53701      1575440 :          ipack = ipack + 1
   53702      1575440 :          pack_tmp = packed_data(ipack)
   53703      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(26)))
   53704      1575440 :          pack_tmp = ISHFT(pack_tmp, -26)
   53705      1575440 :          idata = idata + 1
   53706      1575440 :          data_tmp = ISHFT(pack_tmp, 25)
   53707      1575440 :          ipack = ipack + 1
   53708      1575440 :          pack_tmp = packed_data(ipack)
   53709      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(25)))
   53710      1575440 :          pack_tmp = ISHFT(pack_tmp, -25)
   53711      1575440 :          idata = idata + 1
   53712      1575440 :          data_tmp = ISHFT(pack_tmp, 24)
   53713      1575440 :          ipack = ipack + 1
   53714      1575440 :          pack_tmp = packed_data(ipack)
   53715      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(24)))
   53716      1575440 :          pack_tmp = ISHFT(pack_tmp, -24)
   53717      1575440 :          idata = idata + 1
   53718      1575440 :          data_tmp = ISHFT(pack_tmp, 23)
   53719      1575440 :          ipack = ipack + 1
   53720      1575440 :          pack_tmp = packed_data(ipack)
   53721      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(23)))
   53722      1575440 :          pack_tmp = ISHFT(pack_tmp, -23)
   53723      1575440 :          idata = idata + 1
   53724      1575440 :          data_tmp = ISHFT(pack_tmp, 22)
   53725      1575440 :          ipack = ipack + 1
   53726      1575440 :          pack_tmp = packed_data(ipack)
   53727      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(22)))
   53728      1575440 :          pack_tmp = ISHFT(pack_tmp, -22)
   53729      1575440 :          idata = idata + 1
   53730      1575440 :          data_tmp = ISHFT(pack_tmp, 21)
   53731      1575440 :          ipack = ipack + 1
   53732      1575440 :          pack_tmp = packed_data(ipack)
   53733      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(21)))
   53734      1575440 :          pack_tmp = ISHFT(pack_tmp, -21)
   53735      1575440 :          idata = idata + 1
   53736      1575440 :          data_tmp = ISHFT(pack_tmp, 20)
   53737      1575440 :          ipack = ipack + 1
   53738      1575440 :          pack_tmp = packed_data(ipack)
   53739      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(20)))
   53740      1575440 :          pack_tmp = ISHFT(pack_tmp, -20)
   53741      1575440 :          idata = idata + 1
   53742      1575440 :          data_tmp = ISHFT(pack_tmp, 19)
   53743      1575440 :          ipack = ipack + 1
   53744      1575440 :          pack_tmp = packed_data(ipack)
   53745      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(19)))
   53746      1575440 :          pack_tmp = ISHFT(pack_tmp, -19)
   53747      1575440 :          idata = idata + 1
   53748      1575440 :          data_tmp = ISHFT(pack_tmp, 18)
   53749      1575440 :          ipack = ipack + 1
   53750      1575440 :          pack_tmp = packed_data(ipack)
   53751      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(18)))
   53752      1575440 :          pack_tmp = ISHFT(pack_tmp, -18)
   53753      1575440 :          idata = idata + 1
   53754      1575440 :          data_tmp = ISHFT(pack_tmp, 17)
   53755      1575440 :          ipack = ipack + 1
   53756      1575440 :          pack_tmp = packed_data(ipack)
   53757      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(17)))
   53758      1575440 :          pack_tmp = ISHFT(pack_tmp, -17)
   53759      1575440 :          idata = idata + 1
   53760      1575440 :          data_tmp = ISHFT(pack_tmp, 16)
   53761      1575440 :          ipack = ipack + 1
   53762      1575440 :          pack_tmp = packed_data(ipack)
   53763      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(16)))
   53764      1575440 :          pack_tmp = ISHFT(pack_tmp, -16)
   53765      1575440 :          idata = idata + 1
   53766      1575440 :          data_tmp = ISHFT(pack_tmp, 15)
   53767      1575440 :          ipack = ipack + 1
   53768      1575440 :          pack_tmp = packed_data(ipack)
   53769      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(15)))
   53770      1575440 :          pack_tmp = ISHFT(pack_tmp, -15)
   53771      1575440 :          idata = idata + 1
   53772      1575440 :          data_tmp = ISHFT(pack_tmp, 14)
   53773      1575440 :          ipack = ipack + 1
   53774      1575440 :          pack_tmp = packed_data(ipack)
   53775      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(14)))
   53776      1575440 :          pack_tmp = ISHFT(pack_tmp, -14)
   53777      1575440 :          idata = idata + 1
   53778      1575440 :          data_tmp = ISHFT(pack_tmp, 13)
   53779      1575440 :          ipack = ipack + 1
   53780      1575440 :          pack_tmp = packed_data(ipack)
   53781      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(13)))
   53782      1575440 :          pack_tmp = ISHFT(pack_tmp, -13)
   53783      1575440 :          idata = idata + 1
   53784      1575440 :          data_tmp = ISHFT(pack_tmp, 12)
   53785      1575440 :          ipack = ipack + 1
   53786      1575440 :          pack_tmp = packed_data(ipack)
   53787      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(12)))
   53788      1575440 :          pack_tmp = ISHFT(pack_tmp, -12)
   53789      1575440 :          idata = idata + 1
   53790      1575440 :          data_tmp = ISHFT(pack_tmp, 11)
   53791      1575440 :          ipack = ipack + 1
   53792      1575440 :          pack_tmp = packed_data(ipack)
   53793      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(11)))
   53794      1575440 :          pack_tmp = ISHFT(pack_tmp, -11)
   53795      1575440 :          idata = idata + 1
   53796      1575440 :          data_tmp = ISHFT(pack_tmp, 10)
   53797      1575440 :          ipack = ipack + 1
   53798      1575440 :          pack_tmp = packed_data(ipack)
   53799      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(10)))
   53800      1575440 :          pack_tmp = ISHFT(pack_tmp, -10)
   53801      1575440 :          idata = idata + 1
   53802      1575440 :          data_tmp = ISHFT(pack_tmp, 9)
   53803      1575440 :          ipack = ipack + 1
   53804      1575440 :          pack_tmp = packed_data(ipack)
   53805      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(9)))
   53806      1575440 :          pack_tmp = ISHFT(pack_tmp, -9)
   53807      1575440 :          idata = idata + 1
   53808      1575440 :          data_tmp = ISHFT(pack_tmp, 8)
   53809      1575440 :          ipack = ipack + 1
   53810      1575440 :          pack_tmp = packed_data(ipack)
   53811      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(8)))
   53812      1575440 :          pack_tmp = ISHFT(pack_tmp, -8)
   53813      1575440 :          idata = idata + 1
   53814      1575440 :          data_tmp = ISHFT(pack_tmp, 7)
   53815      1575440 :          ipack = ipack + 1
   53816      1575440 :          pack_tmp = packed_data(ipack)
   53817      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(7)))
   53818      1575440 :          pack_tmp = ISHFT(pack_tmp, -7)
   53819      1575440 :          idata = idata + 1
   53820      1575440 :          data_tmp = ISHFT(pack_tmp, 6)
   53821      1575440 :          ipack = ipack + 1
   53822      1575440 :          pack_tmp = packed_data(ipack)
   53823      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(6)))
   53824      1575440 :          pack_tmp = ISHFT(pack_tmp, -6)
   53825      1575440 :          idata = idata + 1
   53826      1575440 :          data_tmp = ISHFT(pack_tmp, 5)
   53827      1575440 :          ipack = ipack + 1
   53828      1575440 :          pack_tmp = packed_data(ipack)
   53829      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(5)))
   53830      1575440 :          pack_tmp = ISHFT(pack_tmp, -5)
   53831      1575440 :          idata = idata + 1
   53832      1575440 :          data_tmp = ISHFT(pack_tmp, 4)
   53833      1575440 :          ipack = ipack + 1
   53834      1575440 :          pack_tmp = packed_data(ipack)
   53835      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(4)))
   53836      1575440 :          pack_tmp = ISHFT(pack_tmp, -4)
   53837      1575440 :          idata = idata + 1
   53838      1575440 :          data_tmp = ISHFT(pack_tmp, 3)
   53839      1575440 :          ipack = ipack + 1
   53840      1575440 :          pack_tmp = packed_data(ipack)
   53841      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(3)))
   53842      1575440 :          pack_tmp = ISHFT(pack_tmp, -3)
   53843      1575440 :          idata = idata + 1
   53844      1575440 :          data_tmp = ISHFT(pack_tmp, 2)
   53845      1575440 :          ipack = ipack + 1
   53846      1575440 :          pack_tmp = packed_data(ipack)
   53847      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(2)))
   53848      1575440 :          pack_tmp = ISHFT(pack_tmp, -2)
   53849      1575440 :          idata = idata + 1
   53850      1575440 :          data_tmp = ISHFT(pack_tmp, 1)
   53851      1575440 :          ipack = ipack + 1
   53852      1575440 :          pack_tmp = packed_data(ipack)
   53853      1575440 :          full_data(idata) = IOR(data_tmp, IAND(pack_tmp, mask_right(1)))
   53854      1575440 :          pack_tmp = ISHFT(pack_tmp, -1)
   53855      1575440 :          idata = idata + 1
   53856      1575440 :          data_tmp = IAND(pack_tmp, mask_right(Nbits))
   53857      1575440 :          full_data(idata) = data_tmp
   53858      1575440 :          pack_tmp = ISHFT(pack_tmp, -Nbits)
   53859              :       END DO
   53860        98465 :       IF (Ndata_rep < Ndata) THEN
   53861            0 :          CALL bits2ints_generic(Nbits, Ndata - Ndata_rep, packed_data(ipack + 1), full_data(Ndata_rep + 1))
   53862              :       END IF
   53863        98465 :    END SUBROUTINE bits2ints_63
   53864              : 
   53865              : ! **************************************************************************************************
   53866              : !> \brief ...
   53867              : !> \param Nbits ...
   53868              : !> \param Ndata ...
   53869              : !> \param packed_data ...
   53870              : !> \param full_data ...
   53871              : ! **************************************************************************************************
   53872      2119902 :    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      2144334 :       SELECT CASE (Nbits)
   53878              :       CASE (1)
   53879        24432 :          CALL ints2bits_1(Ndata, packed_data, full_data)
   53880              :       CASE (2)
   53881        24432 :          CALL ints2bits_2(Ndata, packed_data, full_data)
   53882              :       CASE (3)
   53883        24678 :          CALL ints2bits_3(Ndata, packed_data, full_data)
   53884              :       CASE (4)
   53885        24783 :          CALL ints2bits_4(Ndata, packed_data, full_data)
   53886              :       CASE (5)
   53887        24667 :          CALL ints2bits_5(Ndata, packed_data, full_data)
   53888              :       CASE (6)
   53889        53165 :          CALL ints2bits_6(Ndata, packed_data, full_data)
   53890              :       CASE (7)
   53891        24789 :          CALL ints2bits_7(Ndata, packed_data, full_data)
   53892              :       CASE (8)
   53893        24779 :          CALL ints2bits_8(Ndata, packed_data, full_data)
   53894              :       CASE (9)
   53895        24736 :          CALL ints2bits_9(Ndata, packed_data, full_data)
   53896              :       CASE (10)
   53897        51218 :          CALL ints2bits_10(Ndata, packed_data, full_data)
   53898              :       CASE (11)
   53899        27188 :          CALL ints2bits_11(Ndata, packed_data, full_data)
   53900              :       CASE (12)
   53901        27433 :          CALL ints2bits_12(Ndata, packed_data, full_data)
   53902              :       CASE (13)
   53903        28838 :          CALL ints2bits_13(Ndata, packed_data, full_data)
   53904              :       CASE (14)
   53905        27878 :          CALL ints2bits_14(Ndata, packed_data, full_data)
   53906              :       CASE (15)
   53907        28198 :          CALL ints2bits_15(Ndata, packed_data, full_data)
   53908              :       CASE (16)
   53909        29101 :          CALL ints2bits_16(Ndata, packed_data, full_data)
   53910              :       CASE (17)
   53911        32724 :          CALL ints2bits_17(Ndata, packed_data, full_data)
   53912              :       CASE (18)
   53913        33667 :          CALL ints2bits_18(Ndata, packed_data, full_data)
   53914              :       CASE (19)
   53915        31324 :          CALL ints2bits_19(Ndata, packed_data, full_data)
   53916              :       CASE (20)
   53917        43569 :          CALL ints2bits_20(Ndata, packed_data, full_data)
   53918              :       CASE (21)
   53919        30222 :          CALL ints2bits_21(Ndata, packed_data, full_data)
   53920              :       CASE (22)
   53921        30037 :          CALL ints2bits_22(Ndata, packed_data, full_data)
   53922              :       CASE (23)
   53923        74377 :          CALL ints2bits_23(Ndata, packed_data, full_data)
   53924              :       CASE (24)
   53925        36912 :          CALL ints2bits_24(Ndata, packed_data, full_data)
   53926              :       CASE (25)
   53927        38223 :          CALL ints2bits_25(Ndata, packed_data, full_data)
   53928              :       CASE (26)
   53929        30895 :          CALL ints2bits_26(Ndata, packed_data, full_data)
   53930              :       CASE (27)
   53931        30487 :          CALL ints2bits_27(Ndata, packed_data, full_data)
   53932              :       CASE (28)
   53933        34914 :          CALL ints2bits_28(Ndata, packed_data, full_data)
   53934              :       CASE (29)
   53935        37744 :          CALL ints2bits_29(Ndata, packed_data, full_data)
   53936              :       CASE (30)
   53937        45259 :          CALL ints2bits_30(Ndata, packed_data, full_data)
   53938              :       CASE (31)
   53939        46706 :          CALL ints2bits_31(Ndata, packed_data, full_data)
   53940              :       CASE (32)
   53941        55688 :          CALL ints2bits_32(Ndata, packed_data, full_data)
   53942              :       CASE (33)
   53943        55545 :          CALL ints2bits_33(Ndata, packed_data, full_data)
   53944              :       CASE (34)
   53945        48637 :          CALL ints2bits_34(Ndata, packed_data, full_data)
   53946              :       CASE (35)
   53947        49942 :          CALL ints2bits_35(Ndata, packed_data, full_data)
   53948              :       CASE (36)
   53949        51671 :          CALL ints2bits_36(Ndata, packed_data, full_data)
   53950              :       CASE (37)
   53951        42183 :          CALL ints2bits_37(Ndata, packed_data, full_data)
   53952              :       CASE (38)
   53953        39731 :          CALL ints2bits_38(Ndata, packed_data, full_data)
   53954              :       CASE (39)
   53955        38172 :          CALL ints2bits_39(Ndata, packed_data, full_data)
   53956              :       CASE (40)
   53957        40425 :          CALL ints2bits_40(Ndata, packed_data, full_data)
   53958              :       CASE (41)
   53959        33145 :          CALL ints2bits_41(Ndata, packed_data, full_data)
   53960              :       CASE (42)
   53961        27342 :          CALL ints2bits_42(Ndata, packed_data, full_data)
   53962              :       CASE (43)
   53963        27134 :          CALL ints2bits_43(Ndata, packed_data, full_data)
   53964              :       CASE (44)
   53965        28263 :          CALL ints2bits_44(Ndata, packed_data, full_data)
   53966              :       CASE (45)
   53967        29902 :          CALL ints2bits_45(Ndata, packed_data, full_data)
   53968              :       CASE (46)
   53969        29430 :          CALL ints2bits_46(Ndata, packed_data, full_data)
   53970              :       CASE (47)
   53971        26862 :          CALL ints2bits_47(Ndata, packed_data, full_data)
   53972              :       CASE (48)
   53973        27429 :          CALL ints2bits_48(Ndata, packed_data, full_data)
   53974              :       CASE (49)
   53975        26288 :          CALL ints2bits_49(Ndata, packed_data, full_data)
   53976              :       CASE (50)
   53977        25866 :          CALL ints2bits_50(Ndata, packed_data, full_data)
   53978              :       CASE (51)
   53979        24916 :          CALL ints2bits_51(Ndata, packed_data, full_data)
   53980              :       CASE (52)
   53981        24942 :          CALL ints2bits_52(Ndata, packed_data, full_data)
   53982              :       CASE (53)
   53983        24932 :          CALL ints2bits_53(Ndata, packed_data, full_data)
   53984              :       CASE (54)
   53985        24810 :          CALL ints2bits_54(Ndata, packed_data, full_data)
   53986              :       CASE (55)
   53987        24728 :          CALL ints2bits_55(Ndata, packed_data, full_data)
   53988              :       CASE (56)
   53989        24570 :          CALL ints2bits_56(Ndata, packed_data, full_data)
   53990              :       CASE (57)
   53991        24494 :          CALL ints2bits_57(Ndata, packed_data, full_data)
   53992              :       CASE (58)
   53993        24456 :          CALL ints2bits_58(Ndata, packed_data, full_data)
   53994              :       CASE (59)
   53995        24432 :          CALL ints2bits_59(Ndata, packed_data, full_data)
   53996              :       CASE (60)
   53997        24432 :          CALL ints2bits_60(Ndata, packed_data, full_data)
   53998              :       CASE (61)
   53999        24432 :          CALL ints2bits_61(Ndata, packed_data, full_data)
   54000              :       CASE (62)
   54001        24432 :          CALL ints2bits_62(Ndata, packed_data, full_data)
   54002              :       CASE (63)
   54003      2119902 :          CALL ints2bits_63(Ndata, packed_data, full_data)
   54004              :       END SELECT
   54005      2119902 :    END SUBROUTINE ints2bits_specific
   54006              : 
   54007              : ! **************************************************************************************************
   54008              : !> \brief ...
   54009              : !> \param Nbits ...
   54010              : !> \param Ndata ...
   54011              : !> \param packed_data ...
   54012              : !> \param full_data ...
   54013              : ! **************************************************************************************************
   54014      9654747 :    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      9753212 :       SELECT CASE (Nbits)
   54020              :       CASE (1)
   54021        98465 :          CALL bits2ints_1(Ndata, packed_data, full_data)
   54022              :       CASE (2)
   54023        98465 :          CALL bits2ints_2(Ndata, packed_data, full_data)
   54024              :       CASE (3)
   54025        99851 :          CALL bits2ints_3(Ndata, packed_data, full_data)
   54026              :       CASE (4)
   54027       100666 :          CALL bits2ints_4(Ndata, packed_data, full_data)
   54028              :       CASE (5)
   54029        99690 :          CALL bits2ints_5(Ndata, packed_data, full_data)
   54030              :       CASE (6)
   54031       254685 :          CALL bits2ints_6(Ndata, packed_data, full_data)
   54032              :       CASE (7)
   54033       101997 :          CALL bits2ints_7(Ndata, packed_data, full_data)
   54034              :       CASE (8)
   54035       102054 :          CALL bits2ints_8(Ndata, packed_data, full_data)
   54036              :       CASE (9)
   54037       101368 :          CALL bits2ints_9(Ndata, packed_data, full_data)
   54038              :       CASE (10)
   54039       306579 :          CALL bits2ints_10(Ndata, packed_data, full_data)
   54040              :       CASE (11)
   54041       120014 :          CALL bits2ints_11(Ndata, packed_data, full_data)
   54042              :       CASE (12)
   54043       121959 :          CALL bits2ints_12(Ndata, packed_data, full_data)
   54044              :       CASE (13)
   54045       134209 :          CALL bits2ints_13(Ndata, packed_data, full_data)
   54046              :       CASE (14)
   54047       125874 :          CALL bits2ints_14(Ndata, packed_data, full_data)
   54048              :       CASE (15)
   54049       127993 :          CALL bits2ints_15(Ndata, packed_data, full_data)
   54050              :       CASE (16)
   54051       140683 :          CALL bits2ints_16(Ndata, packed_data, full_data)
   54052              :       CASE (17)
   54053       167645 :          CALL bits2ints_17(Ndata, packed_data, full_data)
   54054              :       CASE (18)
   54055       175285 :          CALL bits2ints_18(Ndata, packed_data, full_data)
   54056              :       CASE (19)
   54057       158468 :          CALL bits2ints_19(Ndata, packed_data, full_data)
   54058              :       CASE (20)
   54059       301588 :          CALL bits2ints_20(Ndata, packed_data, full_data)
   54060              :       CASE (21)
   54061       154236 :          CALL bits2ints_21(Ndata, packed_data, full_data)
   54062              :       CASE (22)
   54063       153439 :          CALL bits2ints_22(Ndata, packed_data, full_data)
   54064              :       CASE (23)
   54065       231496 :          CALL bits2ints_23(Ndata, packed_data, full_data)
   54066              :       CASE (24)
   54067       163883 :          CALL bits2ints_24(Ndata, packed_data, full_data)
   54068              :       CASE (25)
   54069       165302 :          CALL bits2ints_25(Ndata, packed_data, full_data)
   54070              :       CASE (26)
   54071       137284 :          CALL bits2ints_26(Ndata, packed_data, full_data)
   54072              :       CASE (27)
   54073       138233 :          CALL bits2ints_27(Ndata, packed_data, full_data)
   54074              :       CASE (28)
   54075       162275 :          CALL bits2ints_28(Ndata, packed_data, full_data)
   54076              :       CASE (29)
   54077       182665 :          CALL bits2ints_29(Ndata, packed_data, full_data)
   54078              :       CASE (30)
   54079       237740 :          CALL bits2ints_30(Ndata, packed_data, full_data)
   54080              :       CASE (31)
   54081       294882 :          CALL bits2ints_31(Ndata, packed_data, full_data)
   54082              :       CASE (32)
   54083       375620 :          CALL bits2ints_32(Ndata, packed_data, full_data)
   54084              :       CASE (33)
   54085       277566 :          CALL bits2ints_33(Ndata, packed_data, full_data)
   54086              :       CASE (34)
   54087       226916 :          CALL bits2ints_34(Ndata, packed_data, full_data)
   54088              :       CASE (35)
   54089       235202 :          CALL bits2ints_35(Ndata, packed_data, full_data)
   54090              :       CASE (36)
   54091       184779 :          CALL bits2ints_36(Ndata, packed_data, full_data)
   54092              :       CASE (37)
   54093       164321 :          CALL bits2ints_37(Ndata, packed_data, full_data)
   54094              :       CASE (38)
   54095       184015 :          CALL bits2ints_38(Ndata, packed_data, full_data)
   54096              :       CASE (39)
   54097       144913 :          CALL bits2ints_39(Ndata, packed_data, full_data)
   54098              :       CASE (40)
   54099       153704 :          CALL bits2ints_40(Ndata, packed_data, full_data)
   54100              :       CASE (41)
   54101       146424 :          CALL bits2ints_41(Ndata, packed_data, full_data)
   54102              :       CASE (42)
   54103       121260 :          CALL bits2ints_42(Ndata, packed_data, full_data)
   54104              :       CASE (43)
   54105       119661 :          CALL bits2ints_43(Ndata, packed_data, full_data)
   54106              :       CASE (44)
   54107       126227 :          CALL bits2ints_44(Ndata, packed_data, full_data)
   54108              :       CASE (45)
   54109       135031 :          CALL bits2ints_45(Ndata, packed_data, full_data)
   54110              :       CASE (46)
   54111       122973 :          CALL bits2ints_46(Ndata, packed_data, full_data)
   54112              :       CASE (47)
   54113       117617 :          CALL bits2ints_47(Ndata, packed_data, full_data)
   54114              :       CASE (48)
   54115       115334 :          CALL bits2ints_48(Ndata, packed_data, full_data)
   54116              :       CASE (49)
   54117       104755 :          CALL bits2ints_49(Ndata, packed_data, full_data)
   54118              :       CASE (50)
   54119       102867 :          CALL bits2ints_50(Ndata, packed_data, full_data)
   54120              :       CASE (51)
   54121       101545 :          CALL bits2ints_51(Ndata, packed_data, full_data)
   54122              :       CASE (52)
   54123       103477 :          CALL bits2ints_52(Ndata, packed_data, full_data)
   54124              :       CASE (53)
   54125       111123 :          CALL bits2ints_53(Ndata, packed_data, full_data)
   54126              :       CASE (54)
   54127       113811 :          CALL bits2ints_54(Ndata, packed_data, full_data)
   54128              :       CASE (55)
   54129       109759 :          CALL bits2ints_55(Ndata, packed_data, full_data)
   54130              :       CASE (56)
   54131       105683 :          CALL bits2ints_56(Ndata, packed_data, full_data)
   54132              :       CASE (57)
   54133       102007 :          CALL bits2ints_57(Ndata, packed_data, full_data)
   54134              :       CASE (58)
   54135        99929 :          CALL bits2ints_58(Ndata, packed_data, full_data)
   54136              :       CASE (59)
   54137        98465 :          CALL bits2ints_59(Ndata, packed_data, full_data)
   54138              :       CASE (60)
   54139        98465 :          CALL bits2ints_60(Ndata, packed_data, full_data)
   54140              :       CASE (61)
   54141        98465 :          CALL bits2ints_61(Ndata, packed_data, full_data)
   54142              :       CASE (62)
   54143        98465 :          CALL bits2ints_62(Ndata, packed_data, full_data)
   54144              :       CASE (63)
   54145      9654747 :          CALL bits2ints_63(Ndata, packed_data, full_data)
   54146              :       END SELECT
   54147      9654747 :    END SUBROUTINE bits2ints_specific
   54148              : 
   54149              : END MODULE hfx_compression_core_methods
        

Generated by: LCOV version 2.0-1